Programación General > Pascal

 Detectar Numero Mayor Y Meror

<< < (2/3) > >>

Enko:
No necesitas un vector.!!!!!!!!!!!!!!!!!1

--- Código: Text --- var  Min, Max, N: Integer;begin   Min := 65025;    Max := 0;  repeat        Readln(N);      if N &#62; Max then  Max := N;      if N &#60; Min then Min := N;      WriteLn('el mayor es ', Max);      WriteLn('el menor es ', Min);      WriteLn('el actual es ' , N);  until 1 = 2end.  Te explico usando solo en numeor Menor que es el que se ve un toque mas complicado.
Le asigno al Min (numero menor) el mayor numero posible para entero de 2 bytes. es 255x255=65025.
En el primer ciclo lees un numero N, por ejemplo es 155, lo comparamos con el Menor que al principio es 65025. N es menor que Min entonces Min para a ser 155.

En la segunda vuelta, si por ejemplo se ingresa 366, como Min es 155 en el ejemplo, es menor que N que es 366, no pasa nada entonces.

Si en la tercera vuelta, se ingresa 1, N es 1 y es menor que Min que es 155, se asinga entonces un 1 a Min.

Enko:
Por sierto, NO PUEDES USAR VECTORES ya que no conseguirias que la seria fuera infinita. :hola:

luisoswaldo:
yo declare la variable n como real puesto que tengo que hacer muchos procesos que lo requieren. entonces cundo introduzco un numero cualquiera no lo acepta se queda en un ciclo. lo unico distinto es el tipo de dato pero hasta donde yo se pascal no puede comparar distintos tipos de datos. ¿como hago con los demas procesos que tengo que utilizar real. por que no creo que sea logico pedir lo mismo con 2 tipos de dato diferente!!!!!!

luisoswaldo:
disculpen era un error que tenia pero sigue sin funcionar.

este es parte de mi codigo pero se queda trancado en el segundo bucle y no se que tengo que hacer para salir de el.

emay:= 0;
eme := 999;

          repeat
                       
                 
                  gotoxy (30,7); write ('Edad: ');
                  readln (ed);
                  if (ed < 0) and (ed > 100) then
                  gotoxy (10,8); write ('ERROR EDAD DEBE SER >= 0 Y <= 100');

          until(ed >= 0) and (ed <= 100);

             repeat
                       If ed > emay then emay := ed;
                       if ed < eme then  eme:=ed;
            {se queda en este bucle y no puedo salir}
             until 1=2;

                       gotoxy (5,18); write ('Edad mayor es: ',emay:2:0);
                        gotoxy (5,19); write ('Edad menor es: ',eme:2:0);

Enko:
tenes más puestos los bloques repeat, van uno dentro del otro. Vos hiciste 2 por separado.

--- Código: Text --- emay:= 0;eme := 999; repeat   {aca se hace la comprobacion que el numero este entre 0 y 100    repeat          gotoxy (30,7); write ('Edad: ');          readln (ed);          if (ed &#60; 0) and (ed &#62; 100) then          gotoxy (10,8); write ('ERROR EDAD DEBE SER &#62;= 0 Y &#60;= 100');     until(ed &#62;= 0) and (ed &#60;= 100);      If ed &#62; emay then emay := ed;     if ed &#60; eme then eme:=ed;     {este repeat corresponde al primero y no al segudno como esta en tu codigo}until 1=2;  puedes cambiar mejor un repeat por un while tal vez....

--- Código: Text --- var   resuesta: char;begin     emay:= 0;     eme := 999;     respuesta := 'y'; while respuesta = 'y' dobegin   {aca se hace la comprobacion que el numero este entre 0 y 100    repeat          gotoxy (30,7); write ('Edad: ');          readln (ed);          if (ed &#60; 0) and (ed &#62; 100) then          gotoxy (10,8); write ('ERROR EDAD DEBE SER &#62;= 0 Y &#60;= 100');     until(ed &#62;= 0) and (ed &#60;= 100);      If ed &#62; emay then emay := ed;     if ed &#60; eme then eme:=ed;     {este repeat corresponde al primero y no al segudno como esta en tu codigo}    WriteLn('desea continuar Y/N');    respuesta := ReadKey;end;end.  

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa