IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Вызов процедуры через case
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Здраствуйте, форумчани!
Я недавно занимаюсь Паскалем и у меня появилась одна проблема.
Есть две процедуры. При создании программы проверялась работа при одной процедуре. ПРограмма работала. После создания второй процедуры я ввел конструкцию case такого типа:
Код
Program ...
var x:char; a,b,c,d,f:real;
Procedure1(a,b:real; var c:real);
begin
...
end;
Procedure2(c,d:real; var f:real);
begin
...
end;
begin
readln(x);
case x of
'Y':procedure1(a,b,c);
'Z':procedure2(c,d,f);
end;
readln
end.


При отсутсвии case и использования одной процедуры программа работает отлично.
При использовании программы, приведенной выше программа считывает Х и после етого должна запускаться процедура 1 (или 2). Но после ввода каких либо данных окно программы закрываеться.
Помогите пожалуйста решить ету проблему.
Надеюсь на понимание.

P.S Процедура 2 аналогична Процедуре 1, но только с другими данными.

Сообщение отредактировано: KIngSpades -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Во-первых, так быть не должно. То есть, программа должна нормально работать. Почему она вылетает - это тебе предстоит выяснить. Пройди по программе пошагово (через F7), отладчиком, и выясни, где именно она валится, на какой строке (подробнее об отладке можно почитать здесь)... Я надеюсь, все возможные проверки в Options -> Compiler -> Runtime Errors включены? Это тоже может помочь обнаружить проблему...

А во-вторых, не совсем понятно. Если процедуры одинаковые, и только данные разные, то зачем их две? Передавай в том же Case в одну и ту же процедуру разные данные. Для этого подпрограммы и существуют. Какой смысл делать несколько версий, отличающихся только названиями параметров?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.05.2024 4:10
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name