Другие языки программирования и технологии

Pascal помогите! В чем тут ошибка??

Program radius; Var a,r,l,s,v :real; begin write('r='); readln(r); write('Vvedite comandu'); readln(a); if a=l then l:=2*PI*r; writeln('l=',l) else begin if a=s then s:=PI*r*r; writeln('s=',s) else begin if a=v then v:=4/3*PI*r*r*r; writeln('v=',v) else writeln('Oshibka'); end; end; end.
program radius;
var r,y:real;
a:char;
begin
write('Введите радиус: ');
readln(r);
write('Введите команду (L,S,V): ');
readln(a);
case a of
'L','l':begin
y := 2 * pi * r;
writeln('Длина окружности = ',y:0:4)
end;
'S','s':begin
y := pi * sqr(r);
writeln('Площадь круга = ',y:0:4)
end;
'V','v':begin
y := 4 * pi * r * r * r / 3;
writeln('Объём шара = ',y:0:4)
end
else
writeln('Ошибка. ')
end;
readln
end.

P.S. Очень много лишних переменных. Достаточно всего трёх.
А если вывод на экран делать, например, так:
writeln('Объём шара = ',4 * pi * r * r * r / 3:0:4)
то переменная y тоже не нужна - достаточно двух. И begin - end в операторе case становятся не нужны:

program radius;
var r:real;
a:char;
begin
write('Введите радиус: ');
readln(r);
write('Введите команду (L,S,V): ');
readln(a);
case a of
'L','l':writeln('Длина окружности = ',2 * pi * r:0:4);
'S','s':writeln('Площадь круга = ',pi * sqr(r):0:4);
'V','v':writeln('Объём шара = ',4 * pi * r * r * r / 3:0:4)
else
writeln('Ошибка. ')
end;
readln
end.
**ромка **
**ромка **
51 590
Лучший ответ
Тут половина программы - ошибки.
TL
Thug Life
66 550
1) Вот тут три раза встречается где у вас две команды, их надо написать между begin и end
2) Когда идёт проверка "if a=l" то в этот момент l ничему не равна.. .

Program radius;
Var
r,L,S,V:Real;c:Char;
const PI=3.14;
begin
write('r=');readln(r);
write('Vvedite comandy: ');readln(c);
case c of
'L':begin L:=2*PI*r;writeln('L=',L); end;
'S':begin S:=PI*r*r;writeln('S=',S); end;
'V':begin V:=4/3*PI*r*r*r;writeln('V=',V);end;
else
writeln('Oshibka');
end;
end.
SJ
Sugur Jagipparov
15 838
Что такое PI? почему оно нигде не объявлено?

l,s,v по умолчанию должны быть 0, но можно присвоить для перестраховки.

Константу вообще-то надо объявлять, const [название] = [значение] ; перед var.
Behruz Sherov
Behruz Sherov
5 850
вы сравниваете A с (l,s,v) , хотя у них начальных значений нету.
с PI все нормально, это константа, её не надо определять.
Var
r:real;
a:integer;
begin
write('r=');
readln(r);
write('Vvedite comandu'); //может команда это число?
readln(a);
Case a Of
1 : writeln('l=',2*PI*r);
2 : writeln('s=',PI*r*r);
3 : writeln('v=',4/3*PI*r*r*r);
Else writeln('Fatal error')
end;
end.
AK
Amir Kamalov
3 164
1пи не определена
2откуда он знает, что такое s?