Programación General > Pascal

 Problema Para Finalizar El Ciclo For

(1/1)

rodo1985:
hola a todos , cuando quiero terminar el programa siempre va el end. pero si quiero continuar tengo que poner end; miren lo que me pasa....

 programe lo siguiente ....

--- Código: Text --- program programa1;var max,min,a,b,c,f:real;      i:integer;begin writeln ('ingrese el primer valor'); readln (a); c:=0; max:=a; min:=a; c:=c+1; f:=f+1;  for i:=1 to 5 do  begin  writeln ('ingrese otro valor para saber si es maximo o minimo');  readln (B);   if b>max then   begin   max:=b;   c:=c+1;   end   else    if b<min then    begin    min:=b;    f:=f+1;    end;   end;  [color=red]end;[/color] ahora end writeln ('el valor maxaimo es', max); writeln ('la posicion del valor maximo es', c); writeln ('el valor minimo es', min); writeln ('la posicion del valor minimo es', f); readln (a);end.  cuando le doy run me pone que tengo error de ¨;¨

cuando arranca el ciclo for para finalizarlo no va ;?
si pongo ¨.¨ si funciona pero claro al darle run lo unico que puedo hacer es ingresar valores y luego finaliza....


lo solucione

lo arregle sacandole el ;

pero tengo un error de ¨identifier readln¨ y ¨identifier writeln¨.....donde?

Editado Escribe el codigo entre los tags [CODE] aca va el codigo [ /CODE]

Enko:
Trata  de marcar bien los bloques begin end.

--- Código: Text --- for i:=1 to 5 dobegin   Writeln ('ingrese otro valor para saber si es maximo o minimo');   Readln (B);   if b > max then   begin      max := b;      c := c+1;   end else   if b<min then   begin      min := b;      f := f+1;   end;end;  
por sierto, el bloque if, else if, else no lleva el ; salgo al final

--- Código: Text --- if a thenbegin   ...end elseif b thenbegin    ...end elsebegin   ...end;  tambien he visto que lo hacen:

--- Código: Text --- if a thenbegin   ...end else if b thenbegin    ...end elsebegin   ...end;  Yo siempre us'e esta ultima, pero cuando vi la primera, resulta mas comoda ya que tenes menos posibilidad de equivocarte.

rodo1985:
gracias lo solucione , la proxima pongo el codigo entre los tags ...

Celsoc23:

--- Cita de: "Enko" ---Trata  de marcar bien los bloques begin end.

--- Código: Text --- for i:=1 to 5 dobegin   Writeln ('ingrese otro valor para saber si es maximo o minimo');   Readln (B);   if b > max then   begin      max := b;      c := c+1;   end else   if b<min then   begin      min := b;      f := f+1;   end;end;  
por sierto, el bloque if, else if, else no lleva el ; salgo al final

--- Código: Text --- if a thenbegin   ...end elseif b thenbegin    ...end elsebegin   ...end;  tambien he visto que lo hacen:

--- Código: Text --- if a thenbegin   ...end else if b thenbegin    ...end elsebegin   ...end;  Yo siempre us'e esta ultima, pero cuando vi la primera, resulta mas comoda ya que tenes menos posibilidad de equivocarte.
--- Fin de la cita ---
El problema que tenes en este programa es de logica, no se porque al final mandas a leer a readln(a), ni siquiera mandas un letrero men. y el otro error es que tenes una instruccion mal escrita que es sobre algo de colo, encerralo entre llaves y compilalo de nuevo. Me tome la molestia de corregirlo....

program programa1;
var
     max,min,a,b,c,f:real;
     i:integer;
begin
    writeln ('ingrese el primer valor');
     readln (a);
     c:=0;
     max:=a;
     min:=a;
     c:=c+1;
     f:=f+1;
     for i:=1 to 5 do
     begin
       writeln ('ingrese otro valor para saber si es maximo o minimo');
       readln (B);

       if b>max then
          begin
          max:=b;
          c:=c+1;
          end
       else
          if b<min then
          begin
          min:=b;
          f:=f+1;
          end;
     end;

   writeln ('el valor maxaimo es:', max:0:2);
   writeln ('la posicion del valor maximo es:', c:0:2);
   writeln ('el valor minimo es:', min:0:2);
   writeln ('la posicion del valor minimo es:', f:0:2);
   readln;
end.

Navegación

[0] Índice de Mensajes

Ir a la versión completa