Ссылочный тип данных. Динамическая память - Pascal ABC
Формулировка задачи:
Создайте файл состоящий из записей содержащих поля: 1) номер 2) фамилия 3) телефон. Организуйте вывод на экран монитора номера телефона по введённой с клавиатуры фамилии. Помогите сделать через указатель
Решение задачи: «Ссылочный тип данных. Динамическая память»
textual
Листинг программы
uses crt; type ukz=^abn; abn=record nom:integer; fam:string[20]; tel:string[11]; end; var f:file of abn; n,i:integer; a:ukz; fm:string[20]; begin assign(f,'data'); rewrite(f); writeln('Сколько абонентов записать в файл n='); readln(n); for i:=1 to n do begin writeln('Абонент ',i); new(a); write('Номер: ');readln(a^.nom); write('Телефон: ');readln(a^.tel); write('Фамилия: ');readln(a^.fam); write(f,a^); end; writeln('Введите фамилию для поиска'); readln(fm); i:=0; seek(f,0); while not eof(f) do begin read(f,a^); if a^.fam=fm then begin i:=1; writeln(a^.tel); end; end; close(f); if i=0 then write('Абонента с такой фамилией нет') end.
Объяснение кода листинга программы
- Используется библиотека crt.
- Определяется тип данных ukz, который является ссылкой на переменную типа abn.
- Определяется переменная f типа file of abn, которая представляет собой файл для записи и чтения данных.
- Определяются переменные n и i типа integer, которые используются для контроля цикла.
- Определяется переменная a типа ukz, которая будет использоваться для записи абонентов в файл.
- Определяется переменная fm типа string[20], которая будет использоваться для хранения фамилии абонента, которого нужно найти.
- Запускается цикл for, который будет выполняться n раз.
- Внутри цикла выводится запрос на ввод номера абонента.
- После ввода номера абонента, вызывается функция write, чтобы записать номер, фамилию и телефон абонента в файл.
- Затем вызывается функция readln, чтобы получить фамилию абонента для поиска.
- Запускается цикл while, который будет выполняться до тех пор, пока не будет достигнут конец файла или не будет найдено совпадение фамилии.
- Внутри цикла while считывается информация из файла и сравнивается с фамилией абонента для поиска.
- Если информация совпадает, то устанавливается переменная i в 1 и выводится телефон абонента.
- После окончания цикла while закрывается файл и выводится сообщение, что абонент с такой фамилией не найден.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д