Как правильно объявить в модуле переменную, тип данных которой описан в основной программе? - Pascal
Формулировка задачи:
Как обратиться из модуля к записе, которая определена в программе?
Например, есть такой код основной программы:
И есть такой модуль, в котором используется тип данных, описанный в основной программе:
Выдаёт ошибку: неизвестное имя TSubsciber.
Пробовал разные варианты и ничего не помогло. Как правильно объявить в модуле переменную, тип данных которой описан в основной программе?
uses add_sub1; type TSubscriber = record public surname : string[20]; tel : LongInt; end; var s : TSubscriber; begin s.surname := 'asdf'; s.tel := 1234; ad_rec(s); end.
unit add_sub1; interface procedure ad_rec(new_s : TSubscriber); implementation procedure ad_rec(new_s : TSubscriber); var f : file of TSubscriber; begin end; end.
Решение задачи: «Как правильно объявить в модуле переменную, тип данных которой описан в основной программе?»
textual
Листинг программы
unit add_sub1; interface uses my_record; procedure ad_rec(new_s : TSubscriber); implementation procedure ad_rec(new_s : TSubscriber); var s : TSubscriber; f : file of TSubscriber; begin assign(f,'type_file.dat'); reset(f); // открытие уже существующего while not eof(f) do begin read(f,s); if(s.tel = new_s.tel) then write('Телефоны совпадают'); end; write(f,new_s); close(f); end; end.
Объяснение кода листинга программы
- Создание переменной
new_s
типаTSubscriber
для хранения новой записи в процедуреad_rec(new_s : TSubscriber)
. - Объявление локальных переменных:
s
типаTSubscriber
для временного хранения записи из файла.f
типаfile of TSubscriber
для работы с файлом.
- Присвоение переменной
f
значения 'type_file.dat' с помощью процедуры assign(f,'type_file.dat'), что указывает на файл типаTSubscriber
. - Открытие файла для доступа к его содержимому с помощью процедуры reset(f).
- Цикл чтения записей из файла и проверки на совпадение номеров телефонов, если совпадение найдено, выводится сообщение
Телефоны совпадают
. - Запись новой записи
new_s
в файл с помощью процедуры write(f,new_s). - Закрытие файла с помощью процедуры close(f).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д