turbo then multiple estructura else ejemplos dentro condicional anidado if-statement pascal

if statement - then - Error de sintaxis del programa Pascal if/else



if then else pascal syntax (2)

No puede usar punto y coma en su última declaración antes de su declaración else.

program Quadratic_Equation_Solver; {$mode objfpc}{$H+} uses Classes, SysUtils, CustApp; var a, b, c : real; begin writeln(''Insert the Value for a please''); readln(a); writeln(''Insert the Value for b please''); readln(b); writeln(''Insert the Value for c please''); readln(c); if (-4*a*c>b*b) then begin writeln(''These variables return an imaginary quantity that''); writeln(''Cannot be computed. Please try again'') end (*When using an else statement dont use semicolons*) else Writeln(''The Answer is x = '',(-b+sqrt((b*b)-(4*a*c))/(2*a)):8:2); readln; end.

He creado un programa para determinar si una ecuación cuadrática da un número "real" como respuesta y, de ser así, de qué se trata. Sin embargo, esta es la primera vez que trabajo con if / else, por lo que mi programa no compila más allá de lo demás y, después de buscar durante media hora, no estoy más cerca de descubrir por qué Code es el siguiente:

program Quadratic_Equation_Solver; {$mode objfpc}{$H+} uses Classes, SysUtils, CustApp; var a, b, c : real; begin writeln(''Insert the Value for a please''); readln(a); writeln(''Insert the Value for b please''); readln(b); writeln(''Insert the Value for c please''); readln(c); if (-4*a*c<b*b) then writeln(''These variables return an imaginary quantity that''); writeln(''Cannot be computed. Please try again''); readln; (*here it breaks*) else Writeln(''The Answer is x = '',(-b+sqrt((b*b)-(4*a*c))/(2*a)):8:2); readln; end.

En el descanso dice que necesita un punto y coma, pero eso no ha funcionado


Parece que te falta una declaración de begin y end dentro de las secciones if else . El compilador necesita estos para determinar qué línea de código se incluye en la ruta de acceso if o else :

if some condition then begin ... end else begin ... end

entonces en tu caso:

program Quadratic_Equation_Solver; {$mode objfpc}{$H+} uses Classes, SysUtils, CustApp; var a, b, c : real; begin writeln(''Insert the Value for a please''); readln(a); writeln(''Insert the Value for b please''); readln(b); writeln(''Insert the Value for c please''); readln(c); if (-4*a*c>b*b) then begin writeln(''These variables return an imaginary quantity that''); writeln(''Cannot be computed. Please try again''); end else begin Writeln(''The Answer is x = '',(-b+sqrt((b*b)-(4*a*c))/(2*a)):8:2); end readln; end.