它说:
prog.pas(57,14)错误:不兼容的类型:得到" Char"预期" LongInt" prog.pas(66,4)致命:编译模块有1个错误,停止
program telesa;
uses crt;
var a,b,c,r,v: real;
valce,koule,i,j: integer; {a, pocet valcu a kouli}
objemy: array[1..50] of real; {b, objemy vsech teles}
povrchy_valcu: array[1..50] of real; {c, povrchy vsech krychli a valcu}
povrchy_krychli: array[1..50] of real;
status: char;
begin
clrscr;
valce:=0;
koule:=0;
i:=0;
writeln('R - krychle, V - kvádr, O - koule, C - válec, J - jehlan, A - vypsat výsledky');
repeat
begin
i:=i+1;
write('Zadejte jaké těleso chcete zapsat: ');
readln(status);
if status='R' then begin {krychle}
write('Zadejte délku strany krychle v cm: ');
readln(a);
objemy[i]:=a*a*a;
povrchy_krychli[i]:=6*a*a;
end else
if status='V' then begin {kvadr}
write('Zadejte délku první strany kvádru v cm: ');
readln(a);
write('Zadejte délku druhé strany kvádru v cm: ');
readln(b);
write('Zadejte délku třetí strany kvádru v cm: ');
readln(c);
objemy[i]:=a*b*c;
end else
if status='O' then begin {koule}
write('Zadejte poloměr koule v cm: ');
readln(r);
koule:=koule+1;
objemy[i]:=(4*pi*r*r*r)/3;
end else
if status='C' then begin {valec}
write('Zadejte poloměr podstavy válce v cm: ');
readln(r);
write('Zadejte výšku válce v cm: ');
readln(v);
valce:=valce+1;
objemy[i]:=pi*r*r*v;
povrchy_valcu[i]:=2*pi*r*(r+v);
end else
if status='J' then begin {jehlan}
write('Zadejte hranu podstavy jehlanu v cm: ');
readln(a);
write('Zadejte výšku jehlanu v cm: ');
readln(v);
objemy[i]:=(a*a*v)/3;
end else
if i=1 and status='A' then write('Nezadal jste žádné těleso.');
end;
until status='A';
writeln('Počet válců: ',valce);
writeln('Počet koulí: ',koule);
for j:=1 to 50 do writeln('Objem ',j,'. tělesa je: ',objemy[j]:2:2,' cm3');
for j:=1 to 50 do writeln('Povrch ',j,'. válce je: ',povrchy_valcu[j]:2:2,' cm2');
for j:=1 to 50 do writeln('Povrch ',j,'. krychle je: ',povrchy_krychli[j]:2:2,' cm2');
readln;
end.
答案 0 :(得分:2)
缺少括号,写
if (i=1) and (status='A') then write('Nezadal jste žádné těleso.');
有关详细信息,请参阅手册或在线帮助(e.g. Free Pascal)中的运算符优先级规则部分。如果没有括号,编译器会将表达式解释为
i = (1 and status) = 'A'
这将计算整数1的按位 - 和以及不允许的char状态。