- •Принципы модульного программирования
- •1. Процедуры
- •1.1.Пример программы с процедурой
- •1.2. Расположение процедур в программе
- •2. Функции
- •2.1. Пример программы с функцией
- •3. Внешние процедуры и функции
- •3.1. Модули пользователей
- •Сложные типы данных, применяемые в Паскале
- •1. Множества
- •1.1. Примеры программ с использованием множеств
- •2. Записи
- •2.1.Пример программы обработки записей
- •Файлы и наборы данных
- •1.Текстовые файлы
- •1.1. Создание текстового файла
- •1.2. Работа с существующим текстовым файлом
- •2. Последовательные файлы
- •2.1.Примеры программ с файлами, содержащими данные простого типа
- •2.2.Работа с файлами, содержащими данные сложного типа
- •2.2.1. Создание последовательного файла
- •2.2.2. Работа с файлом filan
- •3. Файлы с произвольным (прямым) доступом
- •3.1. Создание файла с прямым доступом
- •3.2. Работа с файлом: поиск и коррекция записей
- •3.3. Упорядочение записей в файле
- •3.4. Удаление записей из файла
- •3.5. Вставка записей в файл
- •Динамическое распределение памяти. Указатели и списки
- •1. Использование указателей. Списки
- •2. Очереди
- •2.1. Очередь типа Lifo
- •2.2. Очередь Fifo
- •Стандартные модули Турбо Паскаля
- •Модуль Crt
- •Модуль dos
- •Модуль Graph
- •1. Инициирование графического режима
- •2. Вывод текста (надписей) в графическом режиме
- •3. Вывод точек на экран
- •4. Построение графических изображений
- •5. Запоминание и вывод изображений
- •Библиографический список
- •Содержание
- •Процедуры 3
- •2. Функции 12
2.1. Очередь типа Lifo
Для очереди типа LIFO достаточно задать адрес начала списка и текущее значение указателя в списке, которое будет перемещаться вниз. Элемент добавляется и убирается только в начало очереди. Это – наиболее простая очередь. Пусть элементы списка вводятся с клавиатуры. Признак окончания – символ `*`. Программа будет иметь вид:
Program Lifo;
Type
Ptr = ^Sp;
Sp = Record
Buk:Char;
Sl:Ptr;
End;
Var
Pp,Np,Tp:Ptr; {Последующий, начальный и текущий указатели}
C:Char;
Begin
{Начало очереди}
Pp:=Nil; { очередь пустая}
Writeln (` Введите элемент очереди`);
Readln(C);
While C<>`*`do
Begin
{Выделение памяти для текущего адреса}
New (Tp);
Tp^.Buk:=C;
{Сдвигаем указатель}
Tp^.Sl:=Pp; { Ссылки из последнего элемента и}
Pp:=Tp; { на последний очереди}
Writeln (` Введите элемент очереди`);
Readln(C);
End;
{Теперь Pp и Tp- cсылка на последний, (верхний), элемент,}
{ Выборка с конца очереди}
Tp:=Pp; { Tекущий указатель = ссылке на первый элемент }
While Tp <> Nil do
Begin
Write (Tp^.Buk); { вывод информационного Элемента }
Tp:=Tp^.Sl; { переход к следующему элементу }
End;
Writeln(`Конец`);
End.
2.2. Очередь Fifo
Для очередей типа Fifo есть правый и левый элемент. Добавление элементов в очередь выполняется слева, а выборка – справа. (Добавление – в "хвост", а выборка – с начала ). Обозначим Fp – первый, Lp – последний, Tp – текущий элемент. Программа будет иметь вид:
Program Fifo;
Type
Ptr = ^Sp;
Sp = Record
Buk:Char;
Sl:Ptr;
End;
Var
Fp,Lp,Tp:Ptr; { Первый, последний и текущий указатели }
C:Char;
Begin
{Начало очереди}
Fp: =Nil; { очередь пустая}
Writeln (` Введите элемент очереди`);
Readln (C);
While C < > `*` do
Begin
{Выделение памяти для текущего адреса}
New (Tp);
Tp^.Buk:=C;
Tp^.Sl:=Nil;
If Fp = Nil then {1-й элемент}
Fp:=Tp { указатель "головы" очереди }
Else
Lp^.Sl:=Tp; { включаем Tp в состав списка }
Lp:=Tp; { указатель "хвоста" очереди }
Writeln (` Введите элемент очереди`);
Readln(C);
End;
{ Выборка с "головы" очереди}
Tp:=Fp; { Tекущий указатель = ссылке на первый элемент }
While Tp < > Nil do
Begin
Write (Tp^.Buk);
Tp: = (Tp^.Buk);
Tp:=Tp^.Sl;
End;
End.
Стандартные модули Турбо Паскаля
Библиотека Турбо Паскаля содержит большое количество стандартных процедур, функций, констант, типов и переменных, которые разделены на связанные группы, называемые стандартными модулями. Они хранятся в файле turbo.tpl. Таких модулей 7. Каждый модуль содержит все описания, процедуры и функции, необходимые для выполнения определенных операций. Наиболее распространенные модули:
1. System – содержит все стандартные функции и процедуры Турбо Паскаля (математические, тригонометрические, обработки строк, Read и Write и т.д.). Присоединяется ко всем программам автоматически при их загрузке и выполнении.
2. Printer – связывает программу с устройством печати, используется совместно с модулем Crt.
3. Crt – позволяет использовать возможности клавиатуры, экрана и звукового генератора.
4. Dos – обеспечивает связь программы с MS Dos.
5. Graph – позволяет использовать графические возможности компьютора.
Для использования любого модуля в программе необходимо после заголовка указать его имя в предложении Uses. В общем виде это предложение записывается так:
Uses
список имен;
Пример.
Uses
crt,dos;
или
Uses
Crt,Graph,Dos;
