Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2011, 18:10   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию Разобраться с case!

Значит , так задание такое: по выбору пользователя (реализуется через оператор case) решить указанную задачу, использовав собственные функции. Программу оформить в оконно-текстовом интерфейсе.
1. силу электростатического притяжения между двумя зарядами, расположенных на расстоянии r друг от друга
2. произведение n членов арифметической прогрессии. (d и a0 указываются пользователем)
3. площадь поверхности конуса
Так вот код
Код:
uses crt;
var y,i,o,p,v,b,n,j:integer; U,W,H:real;
function prit(q1,q2,r:integer):real;
var k:real;
begin
k:=8.988*(exp(ln(10)*9));
prit:=k*(q1*q2/(sqr(r)));
end;
function arifm(a0,n,d:integer):real;
begin
arifm:=a0+(n-1)*d;
end;
function konus(R,l:integer):real;
begin
konus:=pi*R*l;
end;
procedure menu(var k:integer);
begin
Write('МЕНЮ');
WriteLn('выберите один из вариантов');
WriteLn('1-сила електростатического притягивания');
WriteLn('2-произведение n членов арифметической прогресии');
WriteLn('3-площадь поверхности конуса');
WriteLn('выход');
ReadLn(k);
end;
begin
j:=0;
while (j<>4) do
begin
clrscr;
menu(j);
case j of
1:begin
WriteLn('введите величины зарядов и расстояние между ними');
ReadLn(y,i,o);
U:=prit(y,i,o);
WriteLn('сила електростатического притягивания равна',U:1:1);
2:begin
WriteLn('введите первый член, n и d, то есть разницу между предыдущим и следующим членами');
ReadLn(p,v,b);
W:=arifm(p,v,b);
WriteLn('произведение n членов арифметической прогресии равна',w:1:1);
3:begin
WriteLn('введите длину круга основы и образующую');
ReadLn(b,n);
H:=konus(b,n);
WriteLn('площадь поверхности конуса равна',H:1:1);
end;
ReadLn;
end;
end.
Но вся загвоздка в том, что в этой строчке 2:begin на двойке выдает ошибку 2, то есть что неизвестная переменная! Но при чем тут переменная? Это же case, разве это переменная? Помогите, очень прошу! В чем ошибка??

Последний раз редактировалось gylayko; 31.10.2011 в 18:18.
gylayko вне форума Ответить с цитированием
Старый 31.10.2011, 18:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
1:begin
WriteLn('введите величины зарядов и расстояние между ними');
ReadLn(y,i,o);
U:=prit(y,i,o);
WriteLn('сила електростатического притягивания равна',U:1:1);
2:begin
А End; где???
И так для остальных.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.10.2011, 18:24   #3
_Alerter_
Пользователь
 
Регистрация: 25.05.2011
Сообщений: 89
По умолчанию

Код:
1:begin
WriteLn('введите величины зарядов и расстояние между ними');
ReadLn(y,i,o);
U:=prit(y,i,o);
WriteLn('сила електростатического притягивания равна',U:1:1);
end;
2:begin
WriteLn('введите первый член, n и d, то есть разницу между предыдущим и следующим членами');
ReadLn(p,v,b);
W:=arifm(p,v,b);
WriteLn('произведение n членов арифметической прогресии равна',w:1:1);
end;
3:begin
WriteLn('введите длину круга основы и образующую');
ReadLn(b,n);
H:=konus(b,n);
WriteLn('площадь поверхности конуса равна',H:1:1);
end;
end;
Up:
Stilet, всё так, заметил ваше сообщение только после того, как запостил

Последний раз редактировалось _Alerter_; 31.10.2011 в 18:29.
_Alerter_ вне форума Ответить с цитированием
Старый 31.10.2011, 18:34   #4
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

спасибо, все изменил! но теперь она компилится, запускается, но ничего не происходит! то есть я нажимаю Enter другие кнопки, но по идее должно выдавать меню, но его нет! В чем проблема??
gylayko вне форума Ответить с цитированием
Старый 31.10.2011, 18:40   #5
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

А, нет, все работает ! Всем спасибо огромное!
gylayko вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 Case в 1 minamoto Общие вопросы Delphi 7 17.07.2011 05:44
Use case elenSV Помощь студентам 0 09.06.2010 22:28
for и case zloy20 Помощь студентам 4 06.12.2009 02:03