Primero, ese número de 120 cifras va a ser un string y no una variable de tipo numérico. Y tratás al string como un vector de 120 chars. Lo que tenés que hacer es, según la definición de capicúa, comparar primero con último, segundo con penúltimo, tercero con antepenúltimo y así sucesivamente.
Va en Spikódigo porque paja recordar Pascal.
capicua es true
Desde i=1 hasta 60 hacé esto, viejah (?)
Si numero[i] <> numero[121 - i] entonces
a capicua enganchale un false;
fin desde
Si capicua es true entonces
imprimir "aguante todo, es capicúa"
si no
imprimir "todos putos, no es capicúa";
En realidad habría que hacerlo con un while porque con el for hacés las 60 comparaciones sí o sí, y si la primera te da distinto, ya está, no es capicúa y al pedo las otras 59. Paja arreglarlo.
Edad: 43
Registrado: 09 Ago 2005
Mensajes: 176
Ubicación: Once
Carrera: Informática
Lo unico que necesitas es tener una tabla o una funcion boba que te de la cantidad de dias totales de cada mes segun el año (si es bisiesto o no)...
despues es facil... por que no hay años con distinta cantidad de meses
Aca dejo una mini version recursiva que la hice a las apuradas (me tento el comentario de Stoma). Igual no recuerdo bien pascal, asi que puede haber algun pequeño error
Código:
Function capicua(integer posicion): boolean;
begin
if (posicion = mitadVector)
capicua:=true;
if (vector[posicion] != vector[maximoVector-posicion+1])
capicua:=false;
Edad: 36
Registrado: 05 Jul 2007
Mensajes: 732
Ubicación: Frente de Estudiantes Libertarios
Carrera: Informática
che gil no tiene condición de corte la función
edit1: a, si tiene, fucking pascal(conste que josé el fantasma, profesor de algo I, me dijo que no tenía y que ponga que sos un gil )
edit2: leyéndolo de vuelta no tiene, así que: gil.
El error más grave esta en que supones que cuando igualas capicua a un valor la funcion retorna el control al programa principal/el modulo que la invoco. Tenes varios ERRORES más (José Inside).
El codigo correcto chaja+josé:
Código:
program recursivo;
type palabra = array[1..10] of char;
function capicua(posicion:integer;vector:palabra;maximoVector:integer): boolean;
begin
if (posicion = (maximoVector div 2) + 1) then
capicua:=true
else
begin
if ((vector[posicion]) <> (vector[(maximoVector-posicion+1)])) then
capicua:=false
else capicua:=capicua(posicion+1,vector,maximoVector);
end;
end;
Edad: 35
Registrado: 20 Jul 2008
Mensajes: 1287
Ubicación: Al lado del Sub Esp. $ = <(TT,0,2+3i)(3,18,4)(0,0,e)>
Carrera: Electrónica y Informática
Código:
Program Numeros_Capicua;
Uses Crt;
Const
Max=10;
Var
Num: String[max];
n,i,Media,Cont:Integer;
Capicua: Boolean;
Begin
Clrscr;
Capicua:=True;
Writeln('Ingrese Un Numero De Como Maximo ',Max,' Cifras:');
Readln(Num);
N:=Length(Num); {Cantidad de cifras del Numero}
If N < Max Then {me aseguro q tenga las cifras solicitadas}
Writeln('El Numero Elejido no tiene las ',Max,' Cifras solicitadas!!!!')
Else
Begin
Media:= Trunc(max/2+1); {me posiciono en la mitad del numero}
Cont:= 0;
For I:= N Downto (Media+1) Do
Begin
Cont:= Cont + 1;
If Num[cont] <> Num[i] Then
Capicua:= False;
End;
If Capicua = True3 Then
Writeln('El Numero Elegido es Capicua!!!!! =D')
Else
Writeln('El Numero Elegido No Es Capicua!!!!! =(');
End;
Readln
End.
Este es el programa Capicúa mas rebuscado q pueda existir , a mi me compila y funciona lo mas bien...
Aclaro la:
Código:
Const
Max=10;
la podes cambiar a 120 a mi me funciono, lo q pasa es q tengo paja de cambiarlo ahora (a mi me funciono con otros numeros)
[mod Nivel X ON] Bueno esto fue la codificacion de numeros Capicua para el compilador Free Pascal!!!, Espero q les haya gustadoooo CHAUU!!![/mod Nivel X OFF]
Todos los derechos e izquierdos reservados por Sid Bernard®
Ver tema siguiente Ver tema anterior Podés publicar nuevos temas en este foro No podés responder a temas en este foro No podés editar tus mensajes en este foro No podés borrar tus mensajes en este foro No podés votar en encuestas en este foro No Podéspostear archivos en este foro No Podés bajar archivos de este foro
Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker 365 Attacks blocked.