2017-05-19 3 views
-7

これはコードです:パスカルコンパイルエラー

program pi18; 
var 
    a,b,c,P:real; 
begin 
    read(a,b,c); 
    if(a+b<c) or (b+c<a) or (a+c<b) then 
    writeln('Nu exista asa triunghi') 
    else 
    begin 
    P:=a+b+c; 
    if(a=b) and (a=c) then 
     write('Triunghiul este echil') 
    else 
    if(sqr(a) = sqr(b) + sqr(c)) or (sqr(b) = sqr(a) + sqr(c)) or (sqr(c) = sqr(a) + sqr(b)) then 
     write('Triunghiul este dreptunghic'); readln(); 
    else 
     write('Triunghiul este arbitrar'); readln(); 
    end; 
    writeln('Perimetrul este: ', P); 
end. 

そして、私はこのエラーを持っている:

Syntax error, ";" expected but "ELSE" found

このコードはのためにある: - 三角形の周囲長は述べています。 - a、b、cがいくつかのタイプの三角形の数であるかどうかを比較します。

+2

ようこそスタックオーバーフロー。 [The Tour](http://stackoverflow.com/tour)を読み、[ヘルプセンター](http://stackoverflow.com/help/asking)の資料を参考にしてください。ここに聞いてください。 –

+0

@マホンリそれはもう1つ編集する必要があるように見える;-) –

+0

だから、誰も私を助けることができますか? –

答えて

3

条件が真のときに複数のステートメントを実行する場合は、beginendで囲む必要があります。それらを同じ行に置いても自動的にはグループ化されません。だから、周りbeginendが必要です

write('Triunghiul este dreptunghic'); readln(); 

write('Triunghiul este arbitrar'); readln(); 

あなたがこれをしなかったので、それだけでifブロックとして最初の文を処理します。 elseステートメントが表示されたときには、これに先行する文がないので、エラーを報告します。ifステートメントパスカルで

+0

また、ELSEの前に;(またはそうではない)も特別な意味を持っています。 –

1

あなたはまだ開始し、それらの周りに終わる置く必要があり、その後、他の間に複数のステートメントがある場合:

if(sqr(a) = sqr(b) + sqr(c)) or (sqr(b) = sqr(a) + sqr(c)) or (sqr(c) = sqr(a) + sqr(b)) then 
begin 
    write('Triunghiul este dreptunghic'); 
    readln(); 
end 
else 
+0

また、else文の後に文をグループ化する必要もあります。 – Barmar

0

をあなたのコードがbegin欠けている - ifを以下の複数の文の周りendを:

if(a=b) and (a=c) then 
    write('Triunghiul este echil') // single statement, no begin-end required (but possible) 
else if(sqr(a) = sqr(b) + sqr(c)) or (sqr(b) = sqr(a) + sqr(c)) or (sqr(c) = sqr(a) + sqr(b)) then 
begin 
    write('Triunghiul este dreptunghic'); 
    readln(); 
end 
else 
begin 
    write('Triunghiul este arbitrar'); 
    readln(); 
end; 

これをより一貫させるために、私は次のようにします:

if(a=b) and (a=c) then 
begin 
    write('Triunghiul este echil') 
end 
else etc...