Поиск в телефонном справочнике - Pascal ABC
Формулировка задачи:
Написать программу, которая позволяет найти нужные сведения в телефонном справочнике (a:\phone.txt). Программа должна запрашивать фамилию человека и выводить его телефон. Если в справочнике есть одинаковые фамилии, то программа должна вывести список всех людей, имеющих эти фамилии. Рекомендуемый вид экрана во время работы программы приведен ниже.
Поиск в телефонном справочнике.
Введите фамилию и нажмите <Enter>. Для завершения работы
с программой сразу после приглашения нажмите <Enter>
—> Петров
В справочнике данных о Петров нет.
никак не могу понять вроде путь указал правильно... но файл постоянно не доступен помогите буду благодарен!
Листинг программы
- { Поиск в телефонном справочнике }
- label bye;
- var
- f: text; { текстовый файл }
- obr: string[15]; { фамилия для поиска }
- n: integer; { кол-во записей, удовлетворяющих запросу }
- fam: string[15]; { фамилия }
- name: string[15]; { имя }
- tel: string[9]; { номер телефона }
- begin
- writeln('Поиск в телефонном .справочнике');
- Assign(f,'D:\phone.txt');
- reset (f); { откроем файл для чтения }
- begin
- writeln('Файл D:\phone.txt не доступен');
- goto bye;
- end;
- repeat
- write('Фамилия ->') ; readln(obr);
- if Length(obr) <> 0 then { пользователь ввел строку }
- begin
- reset(f); { просматриваем файл от начала }
- n:=0;
- while not EOF(f) do { просматриваем весь файл }
- begin
- { читаем из файла }
- readln(f,fam);
- readln(f,name) ;
- readln(f,tel);
- if fam = obr then { найдена нужная фамилия }
- begin
- writeln(fam,' ',name, ' ',tel);
- n:=n+1;
- end;
- end;
- if n = 0 then writeln('Сведений о ' , obr,' нет.');
- end;
- until Length(obr) = 0;
- bye:
- writeln('Для завершения работы нажмите <Enter>.');
- readln;
- end.
Решение задачи: «Поиск в телефонном справочнике»
textual
Листинг программы
- var f: text;
- obr,fam,name: string[15];
- tel: string[9];
- n: integer;
- begin
- writeln('Поиск в телефонном .справочнике');
- if fileexists('D:\phone.txt') then
- begin
- Assign(f,'D:\phone.txt');
- reset (f)
- end
- else
- begin
- writeln('Файл D:\phone.txt не доступен');
- exit;
- end;
- write('Фамилия ->') ; readln(obr);
- n:=0;
- while not EOF(f) do
- begin
- readln(f,fam);
- readln(f,name) ;
- readln(f,tel);
- if fam = obr then
- begin
- writeln(fam,' ',name, ' ',tel);
- n:=1;
- end;
- end;
- if n = 0 then writeln('Сведений о ' , obr,' нет.');
- close(f)
- end.
Объяснение кода листинга программы
- Переменная
f
устанавливается в файлD:\phone.txt
. - Если файл существует, то присваивается значение
f
, иначе выводится сообщение об ошибке и программа завершается. - Выводится сообщение «Фамилия ->» и считывается фамилия из файла.
- Переменная
n
устанавливается в 0. - Запускается цикл чтения данных из файла до конца файла.
- В каждой итерации цикла считываются данные о фамилии, имени и телефоне.
- Если фамилия совпадает с введенной, то выводится информация о человеке и устанавливается значение
n
равным 1. - После окончания цикла выводится сообщение, если не было найдено совпадений.
- Файл закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д