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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2008, 00:18   #1
TheKnyazz
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 40
По умолчанию Помогите отладить программу.

Столкнулся с проблемой, что у меня никак не получается отладить программу, вроде бы все написал, и вроде бы писал как в учебниках, но чет жестко не хочет компилироваться(
Сама программа сделана для решения вот такого задания:
Описать структуру с именем Note, содержащую поля:
-фамилия, имя.
-номер телефона.
-дата рождения(массив из 3 чисел).
Написать программу выполняющую следующие действия с помощью процедур и функций:
-ввод с клавиатуры данных в файл, состоящий из элементов типа Note,
записи должны быть упорядочены по датам рождения.
-чтение данных из этого файла.
-вывод информации о человеке, номер телефона которого введен с клавы.
-Если такого нет, то вывести соотвествующее сообщение.

Вот в общей сложности мои труды)
Код:
uses crt;
  type 
    Note=record
       First_Last_name:string[20];
       Phone_number:string[14];
        B_date:record
           year:1990..2000;
           month:string[8];
           day:1..31;
          end;
  Var   tab_file: file of note;
        f1,f2:Note;
        Tab:array[1..50] of note;
        i:integer;

Procedure create_file;
 begin
    seek(tab_file,FileSise(tab_file));
   Writeln('vvedite svedenia');
   writeln('esli hotite viyti napejatayte *');
    while true do
      begin
         write ('vvedite familiu i Ima');
         readln(f1.First_Last_name);
         if f1.First_Last_name='*' then break;
            write ('vvedite nomer telefona v mejdunarondom formate +38(cod)nomer');
            readln(f1.Phone_number);
            write('vvedite god rojdenia');
            readln(f1.b_date.year);
            writeln('vvedite mesiac rojdenia')
            readln(f1.b_date.month);
            writeln('vvedite den rojdenia')
            readln(f1.b_date.day);
         write(tab_file,f1);
    end
 end;
 
 Procedure Sort_tab;
 var i,j:integer;
 begin
 seek(tab_file,0);
   for i:filesize(tab)-1 downto 1 do
   for j:=1 to i-1 do
      begin
       seek(tab_file,j);
       read(tab_file,f1,f2);
       if f1.b_date.year > f2.b_date.year
        Then
          begin 
          seek(tab_file,j);
          write(tab,f2.b_date.year,f1.b_date.year);
         end
    end
end;
 
 Procedure print_file;
 begin
 seek(tab,0);
 writeln('Familiya ima':20,'nomer telefona':14,'data rojdeniya':30);
 while not eof (tab) do 
 begin
 read(tab_file,f1);
 writeln(f1.First_Last_name:20,f1.Phone_number:14,f1.b_date.year,f1.b_date.month,f1.b_date.day);
 end
 readln;
 end;
 
 procedure Search;
 var found:boolean;
     S;string[15];
     f_person:integer;
 
 begin
 f_person:=0;
 while true do
   writeln('vvedite nomer ili *');
   readln(s);
   if s='*' then break;
   found:=0;
   seek(tab,0);
   
     while not eof and not Found do
       begin
       read(tab_file,f1);
       if pos(s,f1.phone_number)<>0 then
       begin 
       writeln(f1.First_Last_name:20,f1.Phone_number:14,f1.b_date.year,f1.b_date.month,f1.b_date.day);
       found=true;
       end;
    end;
       if not Found then 
             Writeln('takix net'); 
   end;
        readln;
   end;
  
  begin
  Assign (tab_file,d:\gogi.txt)
  {$|-}
  reset(tab_file);
  {$|+}
  if IOResult=0 then
         writeln('dobavlenie v sushestv file');
  else
    begin
    rewrite(tab_file);
    writeln('zapis v noviy file')
  end;
  readln;
  
  while true do
  begin
  clrScr;
  writeln('1 sozdanie file');
  writeln('2 sortirovka file');
  writeln('3 vyvod soderjimogo');
  writeln('4 poisk po telefonu');
  writeln('5 exit');
  writeln('-------------------');
  writeln('vvedyte nomer punkta menu');
  readln(i);
  case i of
      1:create_file;
      2:Sort_tab;
      3:print_file;
      4:Search;
      5:exit
  end
  end.
помогите пожалуйста отладить...извиняюсь, что нету коментов..
TheKnyazz вне форума Ответить с цитированием
Старый 26.11.2008, 00:29   #2
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

а какую ошибку выдает и в каком месте?
Викдон вне форума Ответить с цитированием
Старый 26.11.2008, 00:35   #3
TheKnyazz
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 40
По умолчанию

Да в самом начале на слове вар...пишет ожидался идентификатор.. а я не могу понять чтож это такое...((
TheKnyazz вне форума Ответить с цитированием
Старый 26.11.2008, 00:58   #4
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

FileSise(tab_file)); замени на ,FileSize(tab_file));
Викдон вне форума Ответить с цитированием
Старый 26.11.2008, 01:01   #5
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

ну и там много мелких недочетов)) типа for i:filesize(tab)-1 downto 1 do
а надо for i:=filesize(tab_file)-1 downto 1 do
Викдон вне форума Ответить с цитированием
Старый 26.11.2008, 01:06   #6
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

и вот эта строка что по твоему делает? write(tab_file,f2.b_date.year,f1.b_ date.year);
Получается ты в файл поля записываешь?, но это вроде как типизированный файл! туда записываются только записи!!

Последний раз редактировалось Викдон; 26.11.2008 в 01:09.
Викдон вне форума Ответить с цитированием
Старый 26.11.2008, 01:07   #7
TheKnyazz
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 40
По умолчанию

Блин, я балбес... енд забыл.... да и еще куча ошибок..
TheKnyazz вне форума Ответить с цитированием
Старый 26.11.2008, 01:08   #8
TheKnyazz
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 40
По умолчанию

ну это как бы сортировка....ну и совсем небольшая кривость рук...)
TheKnyazz вне форума Ответить с цитированием
Старый 26.11.2008, 01:11   #9
TheKnyazz
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 40
По умолчанию

Теперь застрял на IOResult=0 мой компилятор почему воспринимает это как неизвестную переменную, хотя в учебнике написано, что это можно использовать везде..
TheKnyazz вне форума Ответить с цитированием
Старый 26.11.2008, 01:16   #10
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

есть такая переменная)) в нее записывается код ошибки))
Викдон вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Просьба отладить программу!! на языке СИ Лидия Общие вопросы C/C++ 1 25.05.2008 17:57
надо отладить программу Daddic Помощь студентам 3 20.04.2008 18:24
помогите отладить EDIT photozaz Общие вопросы Delphi 4 08.04.2008 20:44
как можно отладить программу????? Николай969 Помощь студентам 2 13.01.2008 19:33