Autor |
Mensaje |
joephantom
Nivel 9
Edad: 87
Registrado: 30 Jul 2007
Mensajes: 1510
Ubicación: Violando tus prejuicios
Carrera: Electrónica y Informática
|
|
Sid Bernard escribió:
|
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...
|
Posta . Hasta el recursivo que esta en el post de martin . es más simple.
|
|
|
|
_________________ LA UNIÓN EN EL REBAÑO OBLIGA AL LEÓN A ACOSTARSE CON HAMBRE.
Es buscando lo imposible que el hombre ha siempre realizado y reconocido lo posible. Aquellos que sabiamente se han limitado a lo que les pareciera posible no han dado un solo paso adelante - Mijail Bakunin
La teoría política no es una ciencia enigmática cuya jerarquía cabalística manejan unos pocos iniciados, sino un instrumento de las masas para desatar la tremenda potencia contenida en ellas. No les llega como un conjunto de mandamientos dictados desde las alturas, sino por un proceso de su propia conciencia hacia la comprensión del mundo que han de transformar - John William Cooke
Personally I'm in favor of democracy, which means that the central institutions in the society have to be under popular control. Now, under capitalism we can't have democracy by definition. Capitalism is a system in which the central institutions of society are in principle under autocratic control. Thus, a corporation or an industry is, if we were to think of it in political terms, fascist; that is, it has tight control at the top and strict obedience has to be established at every level -- there's a little bargaining, a little give and take, but the line of authority is perfectly straightforward. Just as I'm opposed to political fascism, I'm opposed to economic fascism. I think that until major institutions of society are under the popular control of participants and communities, it's pointless to talk about democracy. - Noam Chomsky
http://joephantom.net
Verborragia de mes yeux
|
|
|
|
|
Pastore
Nivel 6
Registrado: 06 Ene 2009
Mensajes: 283
Carrera: Informática
|
|
El codigo que pusiste Sid Bernard, solo sirve si pones exactamente la cantidad de numeros del Max, si pones mas de eso ya no sirve, o sea toma solo los primeros 10 elementos los demas no los tiene en cuenta es asi??
|
|
|
|
|
|
|
|
|
Dx9
Moderador
Edad: 37
Registrado: 03 Ene 2007
Mensajes: 1552
Carrera: Informática
|
|
martin. escribió:
|
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;
var miPalabra:palabra;
begin
miPalabra[1]:='a';
miPalabra[2]:='b';
miPalabra[3]:='c';
miPalabra[4]:='b';
miPalabra[5]:='a';
writeln(capicua(1,miPalabra,5));
end.
|
Podes cambiar los valores de miPalabra, o la cantidad de letras y probrarlo. Anda de chaco.
return Pete.
|
Yo avise:
Dx9 escribió:
|
Igual no recuerdo bien pascal, asi que puede haber algun pequeño error
|
Hice una mezcla de C++ y Pascal
|
|
|
|
_________________ Biblioteca Apuntes
|
|
|
|
|
Sid Bernard
Nivel 9
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
|
|
Pastore escribió:
|
El codigo que pusiste Sid Bernard, solo sirve si pones exactamente la cantidad de numeros del Max, si pones mas de eso ya no sirve, o sea toma solo los primeros 10 elementos los demas no los tiene en cuenta es asi??
|
Es asi, el tema es q el enunciado decia Hacer un programa q al ingresar un numero de 10 cifras, muestre si es Capicúa o no...
Interprete q tenia q ser estrictamente un numero de 10 cifras, ni mas ni menos
|
|
|
|
_________________
SOY ACERISTA Y QUE!!!!!
|
|
|
|
|
Fido Nadal
Nivel 3
Registrado: 18 Jun 2009
Mensajes: 26
|
|
{-
Especificación del problema
problema capicua (a:[Int]) result:Bool{
asegura a == reverso (a)
}
aux reverso (a:[Int]):[Int]=
[ a[|a|-i-1] | i<0> Bool
capicua xs = auXcapicua xs xs
auXcapicua :: [Int] -> [Int] -> Bool
auXcapicua xs ys
| xs == reverse ys = True
| otherwise = False
---- º ----
--otra forma: el aux te dice que si la cabeza de las listas son iguales
--hagas una recursión con la misma función quitandoles la cabeza a las listas
capicua2 :: [Int] -> Bool
capicua2 [] = True
capicua2 xs = auXcapicua2 xs (reverse xs)
auXcapicua2 :: [Int] -> [Int] -> Bool
auXcapicua2 [] [] = True
auXcapicua2 (xs) (y:ys)
| x == y = auXcapicua2 xs ys
| otherwise = False
---- º ----
-- otra forma más! (solo con Pattern Matching y sin guardas)
capicua3 :: [Int] -> Bool
capicua3 xs = xs == reverse xs
|
|
|
|
|
|
|
|
|
Fido Nadal
Nivel 3
Registrado: 18 Jun 2009
Mensajes: 26
|
|
che, puse copy paste y no salió todo tal cual lo escribí
una parte se la comió y en otra parte salió una carita en el medio del código
jajajaja
|
|
|
|
|
|
|
|
|
|
Ir a página Anterior 1, 2
|
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 CrackerTracker365 Attacks blocked.
|