Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
oaip.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
293.98 Кб
Скачать

5) Файлы языка Pascal. Типизированные файлы.

Файлом называют именованную последовательность элементов данных, расположенных, обычно, во внешней памяти.

В Паскале файл определяется как последовательность компонентов, относящихся к одному типу: файл записей, файл целых чисел, файл строк и т. п.

Особенностью файлов является то, что в любой момент доступен только один компонент.

Количество компонентов файла заранее не определяется.

Максимальный размер файла, ограничивается лишь техническими возможностями вычислительной системы.

Когда нужно использовать файлы:

- если объем входных данных превосходит посильный при ручном вводе.

- если приходится многократно вводить одну и ту же информацию, с минимальными изменениями или вовсе без изменений (например, при отладке программы).

- если нужно сохранять информацию о результатах работы программы, полученных при вводе различных входных данных (то есть: при поиске ошибок в программе).

Типизированные файлы

Типизированный файл – это файл, все компоненты которого одного типа, заданного при объявлении файловой переменной.

Компоненты файла хранятся на диске во внутреннем (двоичном) формате и нумеруются с 0.

Компонентами таких файлов могут быть как простые (integer, longint, real и т.д.) типы данных, так и структурированные типы данных (массивы, записи и др.)

Если посмотреть такой файл любым текстовым редактором, то можно распознать только символьную информацию, на месте же чисел в файле будут располагаться пробелы или символы псевдографики.

Процедура read-чтение

Write-запись

После открытия файла для чтения или записи указатель файла стоит в его начале и указывает на первый компонент, имеющий номер 0.

После каждого чтения или записи указатель сдвигается к следующему компоненту файла.

Поскольку длина каждой компоненты файла строго постоянна, помимо последовательного возможно осуществление прямого доступа к компонентам файла.

Если требуется изменить компонент файла, то не обязательно переписывать компоненты в другой файл, а достаточно установить указатель файла на изменяемый компонент и записать новый компонент на место старого.

Удаление компонент обычно требует перезаписи файла.

Добавление компонентов в конец файла выполняется в режиме чтения. Для этого указатель файла устанавливается на его конец (как показано выше), после чего все выводимые компоненты дописываются в конец файла.

Добавление компонентов в середину или начало файла может выполняться следующим образом:

- определяем место, в которое должны быть добавлены элементы,

- все последующие компоненты переписываем во временный файл,

- вставляем новые компоненты

- дописываем в файл компоненты, переписанные во временный файл.

6)Рекурсивные подпрограммы

В общем случае рекурсией называется ситуация, когда какой-то алгоритм вызывает себя прямо или через другие алгоритмы в качестве вспомогательного.

Сам алгоритм при этом называется рекурсивным.

Без конца такие вызовы продолжаться не могут, так как в противном случае получится бесконечный цикл.

Поэтому при построении рекурсивного алгоритма предусматриваются случаи, когда результат вычисляется явно (непосредственно) без самовызова.

Т.0., любая рекурсия обязательно должна содержать два условия:

1) Вычисление результата через другие значения

2) Вычисление значения с помощью самовызова функции (рекурсивный вызов).

При выполнении этой программы, пока выполняется вспомогательный алгоритм, основной алгоритм приостанавливается.

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

При удалении копии рекурсивного алгоритма из памяти удаляются и все его переменные.

Активизируется предыдущая копия рекурсивного алгоритма, становятся доступными ее переменные.

Существуют три разных формы рекурсивных подпрограмм:

1) Форма с выполнением действий до рекурсивного вызова.

procedure Rec;

begin

S;

if условие then Rec;

end;

2) Форма с выполнением действий после рекурсивного вызова.

procedure Rec;

begin

if условие then Rec;

S;

end;

3) Форма с выполнением действий как до, так и после рекурсивного вызова.

procedure Rec;

begin

S1;

if условие then Rec;

S2;

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]