Другие языки программирования и технологии
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.
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.
Тут половина программы - ошибки.
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.
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.
Что такое PI? почему оно нигде не объявлено?
l,s,v по умолчанию должны быть 0, но можно присвоить для перестраховки.
Константу вообще-то надо объявлять, const [название] = [значение] ; перед var.
l,s,v по умолчанию должны быть 0, но можно присвоить для перестраховки.
Константу вообще-то надо объявлять, const [название] = [значение] ; перед var.
вы сравниваете 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.
с 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.
1пи не определена
2откуда он знает, что такое s?
2откуда он знает, что такое s?
Похожие вопросы
- pascal, помогите с ошибкой
- Pascal помогите пожалуйста найти ошибку в задаче.
- (PASCAL)помогите найти ошибку в коде задачи, и исправить
- Turbo Pascal . Помогите составить простенькую програмку!
- Turbo Pascal помогите пожалуйста. помогите пожалуйста с написание программы для вычисления 1-й и 2-й производной функции
- Кто неплохо понимает в Pascal ПОМОГИТЕ С ЗАДАЧЕЙ!!
- Товарищи программисты на Delphi и Pascal помогите девушке!!!)) вопрос глупый..насчет паскаля..
- Pascal помогите!!!!
- Кто шарит в Borland Pascal помогите написать прогу
- Доброго дня. Есть вопрос по PASCAL. Помогите пожалуйста.