Pascal/Turbo Pascal - Ordenar tres numeros de manera ascendente. Ayuda!

 
Vista:
sin imagen de perfil

Ordenar tres numeros de manera ascendente. Ayuda!

Publicado por Luis (3 intervenciones) el 23/09/2015 22:12:14
Hola, que tal, soy nuevo en este foro y hace poco me inicie en la programacion.

En clases empezamos con Pascal y nos asignaron 'Ordenar tres numeros enteros de manera ascendente'

Esto es lo que tengo, no consigo que se impriman en el orden :(

muchas gracias desde ya


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
PROGRAM orden_ascendente;
uses crt;
var n1,n2,n3:integer;
begin
clrscr;
 
writeln('escriba el primer numero: '); readln(n1);
writeln('escriba segundo numero: '); readln(n2);
writeln('escriba tercer numero: ');readln(n3);
 
                 if (n1<n2) and (n2<n3)
                 then
                 writeln('El orden ascendiente es el siguiente: ',n1:n2:n3)
                 else
                 if(n2<n1) and (n1<n3)
                 then
                 writeln('El orden ascendiente es el siguiente: ',n1:n2:n3)
                 else
                 if(n3<n2) and (n2<n1)
                 then
                 writeln('El orden ascendiente es el siguiente: ',n1:n2:n3);
 
readkey;
end.
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

Ordenar tres numeros de manera ascendente. Ayuda!

Publicado por ramon (2158 intervenciones) el 23/09/2015 23:54:58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{Mira esta corrección }
 
PROGRAM orden_ascendente;
uses crt;
var p,n1,n2,n3:integer;
begin
clrscr;
 
writeln('escriba el primer numero: '); readln(n1);
writeln('escriba segundo numero: '); readln(n2);
writeln('escriba tercer numero: ');readln(n3);
 if n1 > n2 then
 begin
 p := n1;
 n1 := n2;
 n2 := p;
 end;
 if n1 > n3 then
 begin
   p := n1;
   n1 := n3;
   n3 := p;
 end;
 if n2 > n3 then
 begin
    p := n2;
    n2 := n3;
    n3 := p;
 end;
  writeln(n1,'  ',n2,'  ',n3);
 
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
2
Comentar
sin imagen de perfil

Ordenar tres numeros de manera ascendente. Ayuda!

Publicado por Luis (3 intervenciones) el 24/09/2015 00:11:11
Ramón, muchísimas gracias, me sirvio! tengo una duda, está mal que yo haya utilizado "Else"? es que veo que en tu corrección no lo utilizaste.


Un saludo y muchas gracias otra vez :)
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

Ordenar tres numeros de manera ascendente. Ayuda!

Publicado por ramon (2158 intervenciones) el 24/09/2015 16:10:52
Eso va a gusto del programador para mi esta forma teniendo en cuenta que se trata de tes números esta bien
tu opción es ponerla como te parezca mejor bajo tus conocimientos del lenguaje.
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
sin imagen de perfil

Ordenar tres numeros de manera ascendente. Ayuda!

Publicado por david (2 intervenciones) el 01/11/2016 05:13:52
Buenas ramon, una pregunta.. podrias explicarme la lógica de tu corrección? es que funciona, pero no la entiendo :s
Gracias :D
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

Ordenar tres numeros de manera ascendente. Ayuda!

Publicado por ramon (2158 intervenciones) el 01/11/2016 20:53:24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
PROGRAM orden_ascendente;
uses crt;
var p,n1,n2,n3:integer;
begin
clrscr;
 
writeln('escriba el primer numero: '); readln(n1);
writeln('escriba segundo numero: '); readln(n2);
writeln('escriba tercer numero: ');readln(n3);
 if n1 > n2 then
 begin
 p := n1;
 n1 := n2; rebiso si n1 es mallor que n2 si loes los cambio
 n2 := p;
 end;
 if n1 > n3 then
 begin
   p := n1;  rebiso si n1 es mallor que n3 si loes los cambio
   n1 := n3;
   n3 := p;
 end;
 if n2 > n3 then
 begin
    p := n2;
    n2 := n3;  rebiso si n2 es mallor que n3 si loes los                cambio
    n3 := p;
 end;
  writeln(n1,'  ',n2,'  ',n3);
 
readkey;
end.
 
Mira alser variables sueltas los pongo detal manera que cada una tenga el numero que corresponde n1 el mas pequeño
n2 el siguiente en valor y n3 el mallor
si esto estuviera en un array no aria falta nadamas que
pasar una vez no tres.
numeros : array[1..3] of integer;
for i := 1 to 3 do
  for t := 3 downto i + 1 do
  if numeros[i] > numeros[t] then
   begin
   temp := numeros[t];
   numeros[t] := numeros[i];
   numeros[i] := temp;
   end;
 
  el resultado seria
  numeros[1 = seria el menor]
  numeros[2 = seria el mediano]
  numeros[3 = seria el mallor]
espero esto te aclare tu duda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Ordenar tres numeros de manera ascendente. Ayuda!

Publicado por david (2 intervenciones) el 01/11/2016 23:43:28
Gracias ramon, me sirvio de mucho tu explicación
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