Ссылочный тип данных. Динамическая память - 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.

Объяснение кода листинга программы

  1. Используется библиотека crt.
  2. Определяется тип данных ukz, который является ссылкой на переменную типа abn.
  3. Определяется переменная f типа file of abn, которая представляет собой файл для записи и чтения данных.
  4. Определяются переменные n и i типа integer, которые используются для контроля цикла.
  5. Определяется переменная a типа ukz, которая будет использоваться для записи абонентов в файл.
  6. Определяется переменная fm типа string[20], которая будет использоваться для хранения фамилии абонента, которого нужно найти.
  7. Запускается цикл for, который будет выполняться n раз.
  8. Внутри цикла выводится запрос на ввод номера абонента.
  9. После ввода номера абонента, вызывается функция write, чтобы записать номер, фамилию и телефон абонента в файл.
  10. Затем вызывается функция readln, чтобы получить фамилию абонента для поиска.
  11. Запускается цикл while, который будет выполняться до тех пор, пока не будет достигнут конец файла или не будет найдено совпадение фамилии.
  12. Внутри цикла while считывается информация из файла и сравнивается с фамилией абонента для поиска.
  13. Если информация совпадает, то устанавливается переменная i в 1 и выводится телефон абонента.
  14. После окончания цикла while закрывается файл и выводится сообщение, что абонент с такой фамилией не найден.
  15. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы