
- •Файлы языка Pascal. Файловые переменные, описание текстовых, бинарных файлов.
- •2) Файлы языка Pascal. Порядок работы с файлами, используемые функции.
- •3) Файлы языка Pascal. Стандартные процедуры и функции обслуживания файлов.
- •4) Файлы языка Pascal. Текстовые файлы.
- •5) Файлы языка Pascal. Типизированные файлы.
- •6)Рекурсивные подпрограммы
- •7) Записи: определение, объявление, обращения к записи и её полям, оператор with.
- •8) Записи: определение, объявление. Массив записей: объявление, обращения к полям.
- •9) . Тип данных строки: описание символьных строк, способы задания, обращение к строковым переменным.
- •10) Тип данных строки: описание символьных строк. Стандартные функции и процедуры обработки строк.
- •11) Тип данных множества: описание множества, операции с множествами.
- •12) Файлы языка Pascal. Разновидности файлов, способы описания и объявления файловых переменных.
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;