[ Foro de Pascal ]

Error al compilar //Principiante.

02-Dec-2014 22:20
Manuel De la Paz Aragon
3 Respuestas

Hola a todos, recien estoy empezando en este mundillo un poco por mi cuenta y he de decir que mis conocimientos son practicamente nulos. Sé que el codigo se puede optimizar mucho y todo eso, pero de momento, con la "estructura" que tiene (ya que no se nada más), donde esta el fallo al compilar? Imagino que sera un pequeño error de sintaxis, pero me estoy volviedo loco!


program EligeOperacion;
    uses
    crt,math;
    var
    s,r,m,dv,sq,cb:real;
    a,b:real;
    opcion:integer;
    begin
    writeln('Defina los valores de A y B: ');
    write('A: ');readln(a);
    write('B: ');readln(b);
    write('Escoja el tipo de operacion a realizar: ');
    writeln('1: Suma');
    writeln('2: Resta');
    writeln('3: Multiplicacion');
    writeln('4: Division');
    writeln('5: Cuadrado');
    writeln('6: Cubo');
    writeln('NOTA: Si quiere elevar un numero al cuadrado o al cubo, ingrese "0" como valor de "b"');
    readln(opcion);
    begin
    s:=a+b;r:=a-b;m:=a*b;dv:=a/b;sq:=sqr(a)+b;cb:=a**3+b;
    if opcion=1 then
    writeln(s);
    else if opcion=2 then
    writeln(r);
    else if opcion=3 then
    writeln(m);
    else if opcion=4 then
    writeln(dv);
    else if opcion=5 then
    writeln(sq);
    else if opcion:=6 then
    writeln(cb);
    else
    writeln('Introduzca un numero correcto');
    readkey();
    end;
    end.




02-Dec-2014 22:31
Nacho Cabanes (+84)

¿Por qué no pones el mensaje de error que recibes?  El mensaje te dirá la línea en la que se encuentra el error (o, más exactamente, la línea en la que lo ha detectado, que a veces no es justo la misma) y el tipo de error que ha encontrado.

Yo, en un primer vistazo, veo un error en


else if opcion:=6 then


no debería ser ":=" sino "=", porque estás comparando.

También tienes dos "begin" en vez de uno, no entiendo para qué, y ese tipo de errores se verían mejor si el fuente estuviera bien tabulado.


02-Dec-2014 22:42
Manuel De la Paz Aragon

Primero que nada perdon por el doble hilo >.<
El error que me tira (25,1) syntax error ";" expected but "else" found. Pero no veo el error.
Y si, es cierto, estoy comparando no definiendo.
Muchas gracias Nacho.
Gran pagina con la que me he topado ;).


02-Dec-2014 22:50
Nacho Cabanes (+84)

El mensaje es claro: en la línea 25, posición 1, esperaba un "punto y coma" pero he encontrado un "else".

Si hay un "else" no debe haber punto y coma antes de él, como puedes leer aquí:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=549






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)