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

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

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

> Процесс компиляции,отключение проверки ошибок, Процедура вызывает процедуру.
сообщение
Сообщение #1


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Возникла проблемма.

В программе несколько процедур, все немного запутано, одна процедура в последстыии должна вызвать другую, а та какую нибудть еще и обратно, и еще как нибудь smile.gif

Но компилятор ругается, если в процедуре B происходит вызов процедуры A
, которая описана выше. Вроде можно отключить процесс проверки ошибок на этапе компиляции, но в этом случае программа будет правильно работать ?

Можно ли как-то установить последовательность компиляции процедур ?


Спасибо.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Ну вот. Не очень красиво конечно, но работает вроде как по замыслу, осталось только процедуру редактирования написать и дописать поиск.

Если кто-нибудь обнаружит дикие ошибки smile.gif сообщите пожалуйста.



Код
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";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
klem4   Процесс компиляции,отключение проверки ошибок   29.01.2005 21:51
volvo   klem4 Вообще-то в Паскале принята последовательна…   29.01.2005 21:55
Altair   Он бы тогда не ругался!   29.01.2005 22:22
klem4   Процедура output вызывает процедуру menu, которая …   29.01.2005 22:22
klem4   Я просто перепутал, которая находится ниже.   29.01.2005 22:25
Altair   тогда скомпилировать нельзя   29.01.2005 22:28
volvo   klem4 перед описанием Output поставь procedure me…   29.01.2005 22:29
klem4   Эхх, плохи мои дела :) Компилируется -> меню -…   29.01.2005 22:35
volvo   klem4 А знаешь почему? Ты обрабатываешь IOResult?…   29.01.2005 22:49
volvo   Плюс к этому, у тебя в процедуре Menu закрывается …   30.01.2005 1:38
klem4   Ну вот. Не очень красиво конечно, но работает врод…   30.01.2005 20:48
volvo   Ну не знаю, как насчет ошибок, а вот условие (в пр…   30.01.2005 21:08
APAL   Кошмар, какое расточительство.... :) а может ка…   30.01.2005 21:29
klem4   2Apal, учту, исправлю. 2Volvo , учту, исправлю, н…   30.01.2005 21:42
volvo   klem4 Как видно, у тебя в меню Options -> Com…   30.01.2005 21:50
klem4   Я вот что-то не понял, то есть если я на другом ко…   30.01.2005 21:56
volvo   Я сейчас запустил EXE (скомпиленный из твоего исхо…   30.01.2005 22:10
klem4   Даа интересно, я исправил, как ты показал, все, по…   30.01.2005 22:15


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

 





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