
- •Var «Имя переменной »:set of «базовый тип » ;
- •Построение множеств :
- •Массив множеств.
- •Операция со множествами .
- •Операция включения и исключения одиночного элемента: реализуется с помощью .
- •Достоинство и недостатки множеств:
- •1 Способ : через определение соответствие типа
- •2 Способ : в разделе описания переменных:
- •Массивы записей
- •Записи со стартовыми значениями .
- •Вложенные записи
- •Оператор присоединения.
- •Вариантные записи .
- •Глобальные и локальные переменные
- •Вызов подпрограмм .
- •Формальные и фактические параметры .
- •Параметры подпрограмм.
- •Параметры – переменные.
- •Параметры –константы.
- •Функции
- •Обособленный вызов функций
- •Вложенные подпрограммы
- •Дальний и ближний вызов подпрограмм . Дальний вызов
- •Ближний вызов.
- •Подпрограмма с не типизированными параметрами .
- •Опережающее описание подпрограмм .
- •Рекурсивные подпрограммы
- •Внешние подпрограммы.
- •Процедуры и функции как параметры подпрограмм .
- •Расположение блоков программы в памяти .
- •Сегментный и адресный типы данных .
- •Динамическое распределение памяти
- •Динамические структуры используются в следующих случаях :
- •Ссылочный тип данных . Работа с адресами.
- •Синтаксис описания переменой ссылочного типа :
- •Основные операции с ссылочными переменными
- •Операция разыменования к указателям типа pointer .
- •Присваивание разыменование ссылок
- •Операция сравнивания
- •Процедуры работы с динамической памятью
- •Выделение блока памяти.
- •Процедура освобождения памяти
- •Выделение блока памяти из кучи
- •Процедура очистки памяти
- •Процедура маркировки адреса динамической памяти.
- •Процедура освобождения памяти
- •Функции анализа свободной памяти в «куче»
- •Управление размерами динамической памяти и размером стека.
- •Предопределенные указатели Администратор дп(кучи) .
- •Особенности при выделение блоков
- •Анализ ресурсов дп при размещение динамических данных.
- •Линейные динамические списки.
- •Определение элемента однонаправленного линейного списка.
- •Организация динамических списков и операции над ними.
- •1.Организация списка типа стек.
- •2.Формирование списка типа очередь(fifo).
- •Добавление элемента
- •Просмотр списка
- •Вставка элемента
- •Удаление узла из существующего списка.
- •Удаление текущего узла списка.
- •Удаление всего списка.
- •Открытие файла на запись (перезапись).
- •Буфер ввода-вывода.
- •Запись данных в файл.
- •Чтение данных из файла(read,readln).
- •Файлы ввода/вывода. Текстовые файлы. Процедуры работы с текстовыми файлами. Запись и чтение в текстовый файл информации различного типа (числовая, строковая). Процедуры работы с текстовым файлами.
- •Запись и чтение символьной информации.
- •Запись и чтение числовой информации
- •Запись и чтение строковой информации.
- •Типизированные файлы.
- •Доступ к компонентам файла осуществляется с помощью следующих процедур:
- •Добавление записи в типизированный файл
- •Удаление записи
- •Другие функции используемые при прямом доступе
- •Не типизированные файлы и операции над ними.
- •Структура модуля .
- •Var «библиотечные переменные »
- •Раздел реализации.
- •Компиляция модулей .
- •Подключение модулей
- •Закольцованность модуля.
Запись и чтение символьной информации.
Запись символов осуществляется посимвольно, разделителей не требуется. При считывании символа, считанное значение присваивается переменной в процедуре Read и указатель в файле переходит к следующему символу.
Пример: необходимо создать файл, в который надо записать все прописные буквы латинского алфавита по 3 буквы в строке. После необходимо прочитать содержимое файла и вывести на экран.
var
f:text;
ch:char;
I:byte;
begin
Assign(f, ‘t.txt’);
rewrite(f);
I:=1;
for ch:=‘a’ to ‘z’ do
begin
if i=3 then writeln(f,ch)
else write(f,ch);
inc(i);
end;
close(f);
***
reset(f);
while not eof(f) do
begin
while not eoln(f) do
begin
read(f, ch);
write(ch);
end;
readln(f);
writeln
end;
***
Запись и чтение числовой информации
Любая числовая информация хранится в текстовом файле в символьном виде. Чтобы одно отличить от другого, в файл должны записываться разделители. Чтение числовой информации производится так: выделяется подстрока, в которой исключаются пробелы, символы табуляции и маркеры конца строк. Происходит преобразование выбранной подстроки в числовой вид к типу переменной, установленному в процедуре Read.
Пример записи и чтения числовой информации.
***
Assign(f, ‘t.txt’);
rewrite(f0;
randomize;
for i:=1 to 5 do
begin
j:=random(101);
write(f,’ ‘,j);
end;
close(f);
***
reset(f);
while not eof(f0 do
begin
while not Seekeoln(f) do
begin
read(f,i);
write(I, ‘ ‘ );
end;
readln(f);
writeln;
end;
***
Для добавление в файл обычно используется следящее:
Assign(f,’t.txt’);
{$i-}
Reset(f);
{$i+}
If ioresult<>0 then rewrite(f);
Else append(f);
Запись и чтение строковой информации.
При считывание из файла строки в переменную строку в неё помещается количество символов установленное при объявление сроки или меньше если раньше встретится признак конца строки или конца файла.
Пример: необходимо записать в созданный файл слово program на каждой из двух строк, после необходимо прочитать содержимое файла и вывести на экран.
Const
S:string=’program’;
Var
S1:string[4];
F:text;
I:byte;
Begin
.
.
Rewrite(f);
For i:=1 to 2 do
Writeln(f,s);
Close(f);
Reset(f);
S1:=’’;
While not eof(f) do
Begin
While ot eoln(f) do
Begin
Read(f,s1);
Write(s1);
S1:=’’;
End;
Readln(f);
Writeln;
End;
Close(f);
Лекция №13
Файлы ввода/вывода. Типизированный файлы ввода/вывода. Объявление типизированного файла. Последовательный доступ к типизированному файлу. Добавление записи, удаление записи.
Типизированные файлы.
Это файлы, состоящие из данных одного и того же типа, длина которых постоянна, в котором нет разбиения на строки, все данные располагаются последовательно. Исходя из этого к данным этого файла можно обращаться с помощью последовательного доступа и прямого доступа. Прямой доступ означает возможность позиционировать внутри файла указатель на интересующую запись
Структура файла.
В файле нумеруется не записи, а границы между ними при обращение к файлу указатель в файле устанавливается на первую запись т.е. на нулевую границу. При чтение записи указатель переходит на следующую границу.
Объявление типизированного файла
<файловая переменная>:file of <тип>;
Компонентами файла может быть любой тип, определенный пользователем, за исключением самих файлов и объектов, а также структурированных типов, включающих в себя типы и объекты.