Контрольная работа: Алгоритмический язык Pascal. Программа "Телефонный справочник"
Writeln(' 0- завершение работы:');
Write('Вашвыбор:');
Readln(Vid);
case Vid of
1:Create_Supplementing_library;
2:OutputAllRec;
3:FindTel;
0:End_Menu:=True;
end;
writeln;
Writeln('Для продолжения нажмите Enter');
Readln;
ClrScr;
until End_Menu;
end.
Описание программы
Программа начинается стандартной строкой:
Program;
Далее следует описательная часть программы. Она состоит из нескольких разделов:
Процедура assign (ФайловаяПеременная, ИмяФайла) предшествует другим процедурам, т. к. ставит в соответствие физическому файлу на внешнем устройстве логический файл — файловую переменную, к которой впоследствии будут обращаться все другие файловые процедуры (связывает их). ИмяФайла должно представлять собой выражение строкового типа. Дальнейшие операции с переменной ФайловаяПеременная будут выполняться над физическим файлом ИмяФайла. Это полное имя внешнего файла, удовлетворяющее требованиям операционной системы MS-DOS. Процедуру assign недопустимо использовать для открытого файла. Прежде чем использовать файловую переменную повторно, необходимо закрыть файл с помощью процедуры close. После вызова assign связь файловой переменной с внешним файлом существует до тех пор, пока не будет выполнен другой assign для данной файловой переменной. Следовательно, файл можно повторно открыть без дополнительного использования процедуры assign даже после закрытия close.
Процедура reset (ФайловаяПеременная) открывает существующий файл на чтение (открывает входной файл) и ставит указатель на начало первого элемента файла. При отсутствии внешнего файла с указанным именем возникает сообщение об ошибке Error I: File not found (Ошибка 2: Файл не найден). Если при чтении файла возникнет необходимость вернуть указатель в его начало, достаточно будет просто применить процедуру reset к этому файлу еще раз.
Функция ioresult проверяет существование файла на диске. По умолчанию при всех обращениях к стандартным функциям и процедурам ввода/вывода, используемым при работе с файлами, автоматически производится проверка на наличие ошибок. Программист должен предусмотреть возможность ввода неверных исходных данных пользователем программы, например, имени файла, предназначенного для чтения. Это приведет к завершению работы программы, что нежелательно, особенно при вводе больших объемов данных. Использование директивы компилятора и стандартной функции ioresult в цикле repeat позволит программе корректно обработать эту исключительную ситуацию.
Процедура rewrite (ФайловаяПеременная) создает и открывает новый (выходной) файл для последующей записи данных. После ее успешного выполнения файл готов к записи в него первого элемента.
Обратите внимание — использование rewrite требует особой аккуратности. Если внешний файл с указанным именем уже существует, то он удаляется, и на его месте создается новый пустой файл с тем же именем. Для предотвращения потери информации на практике необходимо создавать резервные копии файлов, над которыми могут производиться опасные действия. Обычно им назначается расширение bak.
Процедура close (ФайловаяПеременная). Используя процедуру close, программист должен закрыть файл, после того как в программе будет завершена его обработка. В противном случае может произойти потеря данных. При закрытии внешний файл обновляется, его автоматически завершает символ конца файла. Впоследствии ФайловаяПеременная может быть связана с другим (или вновь с тем же самым) физическим файлом.
Процедура rename (ФайловаяПеременная, ИмяФайла) используется ДЛЯ ТОГО, чтобы переименовать неоткрытый внешний файл любого типа. Новое имя задается строкой ИмяФайла.
Процедура erase (ФайловаяПеременная) удаляет неоткрытый внешний файл любого типа, задаваемый параметром ФайловаяПеременная.
Обратите внимание — процедуры rename и erase нельзя использовать для открытых файлов. Их необходимо предварительно закрыть. Если файл не существует, возникает ошибка выполнения программы.
Логическая функция eof (ФайловаяПеременная) выполняет проверку, достигнут ли конец файла (End Of File) при чтении из него данных Функция возвращает true, если конец файла обнаружен, и указатель текущей позиции находится в конце файла за его последним символомю Это значит, что последний элемент в файле уже прочитан, или файл по еле открытия оказался пуст. В противном случае функция возвращает – false.