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.