Título: Ayuda con codificacion en Pascal Publicado por: Nightwinds en 10 Junio 2009, 05:17 am Programa que introduzca 3 numeros enteros y aparescan ordenados primero de menor a mayor y despues de mayor a menor.¿Cual es mi error?
program numeros; uses crt,dos; var num1num2,num3:integer; Begin clrscr; writeln('ingresa un numero'); readln(num1); writeln('ingresa otro numero'); readln(num2); writeln('ingresa otro numero'); readln(num3); if (num1<num2) and (num1<num3) then men:=num1 else may:=num3 write(<<<Oprime cualquier tecla para continuar>>>); repeat until keypressed end. Título: Re: Ayuda con codificacion en Pascal Publicado por: Anibal784 en 11 Junio 2009, 02:21 am Te contesto porque es feo que nadie lo haga :P
Citar if (num1<num2) and (num1<num3) then men:=num1 else may:=num3 con el if lo que estás diciendo es que si num1 < num2 y num1 < num3, seguro num1 es el menor de todos, pero no sabes que pasa si eso no se cumple.Lo que puedes hacer es: Código: si num1 < num2 entonces Título: Re: Ayuda con codificacion en Pascal Publicado por: Nightwinds en 11 Junio 2009, 07:11 am thanks
Título: Re: Ayuda con codificacion en Pascal Publicado por: tincopasan en 16 Junio 2009, 03:27 am por lo q veo y lo poco q se de pascal te está faltando declarar varias variables, x ej may y men a las cuales le asignaste numeros, además como bien dice en la respuesta anterior das por sentado los valores (2 mayor q 1, etc),
que pasa si es alreves o son iguales? si solo queres usar tres números podes codificar con if.. then pero si fuesen 50 números? te volves loco! existen varias rutinas de ordenación. por ej el metodo conocido como de burbuja, q basicamente lo q hace es comparar el primer numero con el segundo si el primero es mayor lo intercambia y si es menor lo deja en el orden q esta, despues compara el segundo con el tercero y así sucesivamente. son pocas líneas de código y funciona bien. Título: Re: Ayuda con codificacion en Pascal Publicado por: h0oke en 16 Junio 2009, 03:34 am Citar por ej el metodo conocido como de burbuja Es poco eficiente. Menos code y mas eficiente es el método de selección directa. Por otra parte está utilizando variables simples con lo cual queda descartado cualquier método de ordenación.La lógica que utilizó doctor77 es la correcta. Título: Re: Ayuda con codificacion en Pascal Publicado por: tincopasan en 17 Junio 2009, 05:10 am dejo un código de como lo hubiese hecho basicamente con el método de burbuja,
son 40 líneas de programa, podes usar hasta 1000 números si tenes ganas de escribir (te recomiendo que lo pruebes con 10 hasta 100) me gustaría ver como haces lo mismo con el método de comparación de if.. then a ver si mato mi ignorancia program ordenar; uses crt; var a:array [1..1000] of integer; cont,conta,cuantos,aux:integer; begin clrscr; writeln('Cuantos numeros desea ordenar?'); readln(cuantos); cont:=1; while (cont<=cuantos) do begin writeln('Escriba un numero: '); readln(a[cont]); cont:=cont+1; end; conta:=1; while conta<cuantos do begin cont:=1; while cont<cuantos do begin if (a[cont]>a[cont+1]) then begin aux:=a[cont]; a[cont]:=a[cont+1]; a[cont+1]:=aux; end; cont:=cont+1; end; conta:=conta+1; end; cont:=1; while cont<=cuantos do begin writeln(' ',a[cont]); cont:=cont+1; end; readkey; end. Título: Re: Ayuda con codificacion en Pascal Publicado por: h0oke en 17 Junio 2009, 22:32 pm Si se desean ordenar elementos en un vector que no está definido es preferible utilizar el método de ordenación por inserción.
Título: Re: Ayuda con codificacion en Pascal Publicado por: hrchacho en 5 Mayo 2016, 14:02 pm Para ordenar 3 números realice lo sgte:
PROGRAM OREN; USES CRT; VAR A,B,C : INTEGER; BEGIN READLN(A,B,C); IF (A< B) AND (A<C) THEN IF (B<C) THEN WRITELN(A,' ',B,' ',C) ELSE WRITELN(A,' ',C,' ',B ); IF (B< A) AND (B<C) THEN IF (A<C) THEN WRITELN(B,' ',A,' ',C) ELSE WRITELN(B,' ',C,' ',A ); IF (C< A) AND (C<B) THEN IF (A<B) THEN WRITELN(C,' ',A,' ',B) ELSE WRITELN(C,' ',B,' ',A ) ; READKEY; END. Ojala les sirva... Saludos |