program CalculadoraPro;var num1, num2:integer; operacion:char; multiplicacion:integer; suma:integer; resta:integer; division:Real; salir:char; correcto:char;begin writeln('Bienvenido a CalculadoraPro ByFacu'); {Dentro de un repite para preguntar por la salida, una vez termine de operar preguntas si desea salir, Y o N.} repeat begin {Pido primer numero} writeln('Introduzca un numero'); readln(num1); {Pido operacion a realizar} writeln('Elija la operación:/nSuma:+/nResta:-/nMultiplicación:*/nDivision:/'); readln(operacion); repeat begin {Case para definir una accion u otra deacuerdo a la operacion seleccionada} case operacion of '/':begin {Pido el segundo numero} writeln('Introduzca el segundo numero'); readln(num2); {Comprobar que num2 no sea 0} while num2=0 do begin writeln('La division por 0 es imposible, ingrese otro numero porfavor'); readln(num2); end; {Realizar operacion y mostrar resultado} division:=num1/num2; writeln('El resultado de dividir ',num1,' por ',num2,' es ',division); correcto:='y';{Elijio la operacion correcta, el programa no volvera a pedir el valor}end; '*':begin {Pido el segundo numero} writeln('Introduzca el segundo numero'); readln(num2); {Realizar operacion y mostrar resultado} multiplicacion:=num1*num2; writeln('El resultado de multiplicar ',num1,' por ',num2,' es ',multiplicacion); correcto:='y';{Elijio la operacion correcta, el programa no volvera a pedir el valor}end; '+':begin {Pido el segundo numero} writeln('Introduzca el segundo numero'); readln(num2); {Realizar operacion y mostrar el resultado} suma:=num1+num2; writeln('El resultado de sumar ',num1,' por ',num2,' es ',suma); correcto:='y';{Elijio la operacion correcta, el programa no volvera a pedir el valor} end; '-':begin {Pido el segundo numero} writeln('Introduzca el segundo numero'); {Realizar operacion y mostrar el resultado} resta:=num1-num2; writeln('El resultado de restarle ',num2,' a ',num1,' es ',resta); correcto:='y';{Elijio la operacion correcta, el programa no volvera a pedir el valor} end; else begin {Indicar acciones si la operacion introducida es incorrecta} writeln('La operación introducia es incorrecta, vuelva a infresarla'); writeln('Las operaciones disponibles son:/nSuma:+/nResta:-/nMultiplicación:*/nDivision:/'); correcto:='n';{Elijio la operacion incorrecta, el programa volvera a pedir el valor}end end until correcto='y'; {Si es incorrecto pide denuevo el valor} repeat begin writeln('Desea realizar otra operacion? y/n'); readln(salir); end until salir='y' or salir='n';end until salir='n';end.
2.2.pas(70,7) Fatal: Syntax error, ";" expected but "UNTIL" foundFatal: Compilation aborted
program CalculadoraPro;var num1, num2:integer; operacion:char; multiplicacion:integer; suma:integer; resta:integer; division:Real; salir:char; correcto:char;begin writeln('Bienvenido a CalculadoraPro ByFacu'); {Dentro de un repite para preguntar por la salida, una vez termine de operar preguntas si desea salir, Y o N.} repeat begin {Pido primer numero} writeln('Introduzca un numero'); readln(num1); {Pido operacion a realizar} writeln('Elija la operación:/nSuma:+/nResta:-/nMultiplicación:*/nDivision:/'); readln(operacion); repeat begin {Case para definir una accion u otra deacuerdo a la operacion seleccionada} case operacion of '/':begin {Pido el segundo numero} writeln('Introduzca el segundo numero'); readln(num2); {Comprobar que num2 no sea 0} while num2=0 do begin writeln('La division por 0 es imposible, ingrese otro numero porfavor'); readln(num2); end; {Realizar operacion y mostrar resultado} division:=num1/num2; writeln('El resultado de dividir ',num1,' por ',num2,' es ',division); correcto:='y';{Elijio la operacion correcta, el programa no volvera a pedir el valor}end; '*':begin {Pido el segundo numero} writeln('Introduzca el segundo numero'); readln(num2); {Realizar operacion y mostrar resultado} multiplicacion:=num1*num2; writeln('El resultado de multiplicar ',num1,' por ',num2,' es ',multiplicacion); correcto:='y';{Elijio la operacion correcta, el programa no volvera a pedir el valor}end; '+':begin {Pido el segundo numero} writeln('Introduzca el segundo numero'); readln(num2); {Realizar operacion y mostrar el resultado} suma:=num1+num2; writeln('El resultado de sumar ',num1,' y ',num2,' es ',suma); correcto:='y';{Elijio la operacion correcta, el programa no volvera a pedir el valor} end; '-':begin {Pido el segundo numero} writeln('Introduzca el segundo numero'); readLn(num2); {Realizar operacion y mostrar el resultado} resta:=num1-num2; writeln('El resultado de restarle ',num2,' a ',num1,' es ',resta); correcto:='y';{Elijio la operacion correcta, el programa no volvera a pedir el valor} end else begin {Indicar acciones si la operacion introducida es incorrecta} writeln('La operación introducia es incorrecta, vuelva a infresarla'); writeln('Las operaciones disponibles son:/nSuma:+/nResta:-/nMultiplicación:*/nDivision:/'); correcto:='n';{Elijio la operacion incorrecta, el programa volvera a pedir el valor}end;end; end;[color=red]{Faltaba este end}[/color] until correcto='y'; {Si es incorrecto pide denuevo el valor} repeat begin writeln('Desea realizar otra operacion? y/n'); readln(salir); end until (salir='y') or (salir='n'); [color=red]{Faltaban los parentesis}[/color]end[color=red] {Este faltaba}[/color] until salir='n';writeLn('Adios, espero haya disfrutado el programa, pasese por foro.hackxcrack.net');end.