2017-08-12 52 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

你需要一個分號(;)。