2017-08-12 105 views
0

我只是开始了Pascal和我做下面的代码历久弥新卜哈斯卡瑞求解:帕斯卡尔:后一句话,如果

Program bhaskara; 
var 
    a,b,c: real; 
begin 
    writeln('Ingrese a, b y c'); 
    readln(a,b,c); 
    if sqr(b) >= 4*a*c then 
     begin 
     writeln('tiene raices reales'); 
     end 
    else 
     begin 
     writeln('no tiene raices reales'); 
     end 
    readln(a); 
end. 

最后一行:readln(一),这是那里只是暂停程序,看输出使程序无法编译(程序工作正常,没有它),它说:

bhaskara.pas(15,2) Fatal: Syntax error, ";" expected but "identifier READLN" found 

我敢肯定它的东西简单,但我无法找到答案,请大家帮忙。

+2

我觉得你错误地引用了错误。在'readln(a);'(换句话说,你需要';''readln'前面的'end')之前,它抱怨没有';'。 – lurker

+0

这是从prevoius尝试编译,我编辑现在 – tacofisher

+0

好了,现在它加入后的工作“;”谢谢! – tacofisher

回答

3

帕斯卡尔需要一个分号作为语句分隔符语句之间。

else块是一个声明,因为它不是程序的最后一行 ,后面跟着你readln(a),它需要一个“;” 后。

事实上,因为你的else条款中只包含一个声明, 它不需要begin & end。在Readln语句前右侧的“结束”语句之后;

所以,你可以简单地写

else 
    writeln('no tiene raices reales'); 
readln(a); 
0

你需要一个分号(;)。