1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| klem4 |
29.01.2005 17:51
Сообщение
#1
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Возникла проблемма.
В программе несколько процедур, все немного запутано, одна процедура в последстыии должна вызвать другую, а та какую нибудть еще и обратно, и еще как нибудь Но компилятор ругается, если в процедуре B происходит вызов процедуры A , которая описана выше. Вроде можно отключить процесс проверки ошибок на этапе компиляции, но в этом случае программа будет правильно работать ? Можно ли как-то установить последовательность компиляции процедур ? Спасибо. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
| klem4 |
30.01.2005 16:48
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Ну вот. Не очень красиво конечно, но работает вроде как по замыслу, осталось только процедуру редактирования написать и дописать поиск.
Если кто-нибудь обнаружит дикие ошибки Код program DataBase; uses crt; const n=30; type STUD=record NAME1 : string; {Имя} NAME2 : string; {Фамилия} NAME3 : string; {Отчество} DOB : string; {Дата рождения} HT : string; {Домашний телефон} MT : string; {Мобильный телефон} EMail : string; {E-mail адрес} ICQ : string; {Номер ICQ} end; var s : stud; i,all : byte; studs : array[1..n] of stud; EndRec : boolean; file_s : file of stud; EndInput : boolean; {-------------------------------------------------} procedure menu; forward; procedure search; var nfind:byte; lastname:string; SearchPoint:boolean; Begin clrscr; assign(file_s,'Data.dat'); reset(file_s); writeln('Введите Фамилию для поиска :'); readln(lastname); SearchPoint:=false; i:=1; nfind:=0; while (not(eof(file_s)))and(not(SearchPoint)) do begin read(file_s,s); with s do if name2=lastname then begin nfind:=i; SearchPoint:=True; end; inc(i); end; writeln('nfind=',nfind); close(file_s); repeat keypressed; until keypressed; menu; end; {-------------------------------------------------} procedure output; Begin clrscr; writeln; assign(file_s,'Data.dat'); reset(file_s); i:=1; while (not(eof(file_s))) do begin read(file_s,s); with s do begin writeln(i,'-й студент :'); write('ФИО : ');writeln(name2,' ',name1,' ',name3); write('Дата рождения :');writeln(dob); write('Домашний телефон :');writeln(ht); write('Мобилный телефон :');writeln(mt); write('ICQ : ');writeln(icq); write('E-mail : ');writeln(email); writeln; inc(i); end; end; close(file_s); repeat keypressed; until keypressed; menu; end; {-------------------------------------------------} procedure if_next; var ch:char; Begin writeln('Будете вводить еще студента [Y/N] ?'); repeat ch:=upcase(readkey); until (ch in ['Y','N']); clrscr; if ch in ['Y'] then begin inc(i); inc(all); EndRec:=true; end else begin close(file_s); exit; EndInput:=true; end; end; {--------------------------------------------------} procedure rewr; forward; procedure menu; var ch:char; begin clrscr; writeln('Выберите номер из пункта меню'); writeln; writeln('1). Просмотр информации'); writeln('2). Поиск'); writeln('3). Редактирование'); writeln('4). Выход'); repeat ch:=readkey; until ch in ['1','2','3','4']; case ch of '1': output; '2': search; '3': rewr; '4': exit; end; end; {--------------------------------------------------} procedure rewr; begin writeln('тут что-то будет'); repeat keypressed; until keypressed; menu; end; {--------------------------------------------------} Begin clrscr; assign(file_s,'Data.dat'); reset(file_s); if not(IOResult<>0) then begin close(file_s); menu; end else begin assign(file_s,'Data.dat'); rewrite(file_s); i:=1; all:=1; EndRec:=true; while (i<=n)and(EndRec) do with s do begin writeln('Введите информацию для ',i,'-го студента'); write('Введите Имя : ');readln(name1); write('Введите Фамилию : ');readln(name2); write('Введите Отчество :');readln(name3); writeln('Введите Дату Рождения'); readln(DOB); writeln('Введите Номер Домашнего Телефона'); readln(HT); writeln('Введите Номер Мобильного Телефона'); readln(MT); writeln('Введите E-mail Адрес'); readln(EMail); writeln('Введите Номер ICQ'); readln(ICQ); studs[i]:=s; write(file_s,s); EndRec:=false; if_next; end; end; End. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
klem4 Процесс компиляции,отключение проверки ошибок 29.01.2005 17:51
volvo klem4
Вообще-то в Паскале принята последовательна... 29.01.2005 17:55
Altair
Он бы тогда не ругался! 29.01.2005 18:22
klem4 Процедура output вызывает процедуру menu, которая ... 29.01.2005 18:22
klem4
Я просто перепутал, которая находится ниже. 29.01.2005 18:25
Altair тогда скомпилировать нельзя 29.01.2005 18:28
volvo klem4
перед описанием Output поставь
procedure me... 29.01.2005 18:29
klem4 Эхх, плохи мои дела :)
Компилируется -> меню -... 29.01.2005 18:35
volvo klem4
А знаешь почему? Ты обрабатываешь IOResult?... 29.01.2005 18:49
volvo Плюс к этому, у тебя в процедуре Menu закрывается ... 29.01.2005 21:38
volvo Ну не знаю, как насчет ошибок, а вот условие (в пр... 30.01.2005 17:08
APAL Кошмар, какое расточительство.... :)
а может ка... 30.01.2005 17:29
klem4 2Apal, учту, исправлю.
2Volvo , учту, исправлю, н... 30.01.2005 17:42
volvo klem4
Как видно, у тебя в меню Options -> Com... 30.01.2005 17:50
klem4 Я вот что-то не понял, то есть если я на другом ко... 30.01.2005 17:56
volvo Я сейчас запустил EXE (скомпиленный из твоего исхо... 30.01.2005 18:10
klem4 Даа интересно, я исправил, как ты показал, все, по... 30.01.2005 18:15![]() ![]() |
|
Текстовая версия | 15.11.2025 10:02 |