Pascal/Turbo Pascal - el programa no funciona

   
Vista:

el programa no funciona

Publicado por paola (2 intervenciones) el 18/03/2008 18:30:26
Program ordenar;
uses wincrt;
var
a,b,c,d:integer;
begin
writeln('Ingrese 4 números');
readln(a,b,c,d);
if (a>b)and (a>c)and(a>d) then
begin
writeln('primero ',a);
end;
if (b>c)and(b>d) then
begin
writeln('segundo ',b);
end;
if (c>d) then
begin
writeln('tercero ',c);
end;
if (a<b)and (a<c)and(a<d) then
begin
writeln('cuarto ',a);
end;
if (b>a)and (b>c)and(b>d) then
begin
writeln('primero ',b);
end;
if (a>c)and(a>d) then
begin
writeln('segundo ',a);
end;
if (d>c) then
begin
writeln('tercero ',d);
end;
if (b<a)and (b<c)and(b<d) then
begin
writeln('cuarto ',b);
end;
if (c>a)and (c>b)and(c>d) then
begin
writeln('primero ',c);
end;
if (d>a)and(d>b) then
begin
writeln('segundo ',d);
end;
if (a>b) then
begin
writeln('tercero ',a);
end;
if (c<a)and (c<b)and(c<d) then
begin
writeln('cuarto ',c);
end;
if (d>a)and (d>b)and(d>c) then
begin
writeln('primero ',d);
end;
if (c>a)and(c>b) then
begin
writeln('segundo ',c);
end;
if (b>a) then
begin
writeln('tercero ',b);
end;
if (d<a)and (d<b)and(d<c) then
begin
writeln('cuarto ',d);
end;
end.
{en la salida solo se deberian de mostrar un solo dato de cada uno de ellos porque se repiten; nose donde es que se encuentra el error}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:el programa no funciona

Publicado por Willy De León (181 intervenciones) el 19/03/2008 22:30:24
Hola Paola.
Entiendo que hay varios métodos de ordenación.
Aunque este no es el mejor, he arreglado tu programa.
Saludos!

Program Ordenar;
uses Crt;
var A,B,C,D : Integer;

(* Este procedimiento intercabia los valores de dos variables *)
Procedure Intercambia (Var X, Y : Integer);
Var temp : integer;
begin
temp := X;
X := Y;
Y := temp;
end;

begin
ClrScr;
Writeln('Intruduzca 4 enteros');
Readln(A,B,C,D);

If A > B then Intercambia(A,B);
If B > C then Intercambia(B,C);
If C > D then Intercambia(C,D);
If A > B then Intercambia(A,B);
If B > C then Intercambia(B,C);
If C > D then Intercambia(C,D);
If A > B then Intercambia(A,B);

Writeln(A,' ',B, ' ',C, ' ',D);

ReadKey
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:el programa no funciona

Publicado por cesar de paz (1 intervención) el 21/03/2008 02:17:58
hola, pues en realidad hay cientos de maneras de ordenar numeros, una de ella es usando matrices, aca te dejo el codigo, cualquier problema me mandas un mail .... suerte


program ordenar;

{este programa sirve para ordenar de menor a mayor cualquier cantidad de numeros}

uses crt;
var L :array [1..100] of integer;

n,i,t : integer;

begin

clrscr;
writeln('ingrese el numero de datos a ordenar ');
readln(n);
writeln;
writeln('escriba sus ',n,' datos');

for i:=1 to n do
begin
read(L[i]);
end;

for i:=1 to n-1 do
begin
for j:=1 to n do
begin
if L[i] > L[j] then
begin
t:=L[i];
L[i]:=L[j];
L[j]:=t;
end;
end;
end;

for i:=1 to n do
begin
write(L[i],' ');
end;

readkey;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:el programa no funciona

Publicado por Willy De León (181 intervenciones) el 21/03/2008 19:39:58
Hola Cesar de Paz.

Debe haber algún error en tu programa porque no ordena los números.

Por el hecho de que olvidaste declarar la variable j, supongo que escribiste el programa mientras lo pensabas.

Me gustaría que lo arreglaras porque me parece muy interesante.
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:el programa no funciona

Publicado por paola (2 intervenciones) el 23/03/2008 02:33:36
gracias!!!!!!!!

realmente me sirvio mucho la ayuda que me dieron; no sabia que se podia utilizar asi los procedimientos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar