- •1. Этапы подготовки задач для решения на пэвм
- •Программное обеспечение эвм
- •2.1.Алгоритмические языки.
- •5. Файлы и каталоги на дисках
- •5.1. Файловая система fat.
- •5.2. Файловая система ntfs
- •6. Интегрированая среда турбо паскаля 7.0
- •6.1. Информационные окна.
- •7. Разработка программ в интегрированной среде
- •8. Система меню ис тurbo рascal
- •8.1. Меню работы с файлами (file).
- •8.2. Меню редактирования (edit).
- •8.3. Меню поиска информации (search).
- •8.4. Меню выполнения программы (run).
- •8.5. Меню компиляции (compile).
- •8.6. Меню отладки (debug).
- •8.7. Меню инструментальных средств (tools).
- •8.8. Меню параметров среды (options).
- •9. Структура программы
- •10. Алфавит языка
- •11. Типы данных
- •Целые типы.
- •11.2.Логический тип boolean.
- •11.3. Символьный тип char.
- •11.4. Перечисляемый тип.
- •Вещественные типы.
- •12. Переменные
- •13. Константы
- •14. Стандартные функции
- •14.1. Арифметические функции.
- •14.2. Функции преобразование типа.
- •14.3. Функции для величин порядкового типа.
- •15. Арифметические операции
- •Логические операции
- •Операции отношения
- •18. Операторы языка
- •18.1. Оператор присваивания.
- •18.2. Оператор безусловного перехода goto.
- •18.3. Пустой оператор.
- •18.4. Составной оператор.
- •18.5. Условный оператор if.
- •18.6. Оператор варианта case.
- •Операторы цикла
- •19.1. Оператор цикла с постусловием repeat.
- •19.2.Оператор цикла с предусловием while.
- •19.3. Оператор цикла с параметром for.
- •19.4. Использование стандартных процедур Break и Continue в операторах циклов.
- •Сложные типы языка паскаль
- •20.1. Массивы.
- •20.2. Символьные массивы.
- •20.3. Строка типа string.
- •20.4. Записи.
- •20.5. Множества.
- •20.6. Файлы.
- •20.6.1. Доступ к файлам.
- •20.6.2. Логические устройства.
- •20.6.3. Процедура открытия файлов.
- •20.6.4. Процедуры и функции для работы с файлами.
- •20.6.5. Типизированные файлы.
- •20.6.6. Процедуры и функции для работы с файлами.
- •20.6.7. Нетипизированные файлы.
- •20.6.8. Текстовые файлы.
- •21. Процедуры и функции
- •21.1. Процедуры.
- •21.2. Функции.
- •21.3. Параметры формальные и фактические.
- •21.4. Параметры-значения.
- •21.5. Параметры-переменные.
- •21.6. Параметры-константы.
- •21.7. Параметры-процедуры и параметры-функции.
- •21.8. Параметры без типа.
- •Модули пользователя
- •22.1. Структура модуля пользователя
- •22.1.1. Заголовок модуля
- •22.1.2. Интерфейс модуля
- •22.1.3. Исполнительная часть модуля
- •22.1.4. Cекция инициализации
- •22.2. Использование модулей
- •23. Оверлей
21.6. Параметры-константы.
Если в ПП надо передать переменную, которую ПП не должна изменять, то целесообразно передать переменную не как параметр-значение, а как параметр-константу. Это позволит не создавать в стеке копию параметра и несколько увеличить быстродействие программы. Такой параметр если он структурированного типа, передается своим адресом, но предусматривается защита от его изменения.
Параметр-константа указывается в заголовке ПП аналогично параметру-значению, но перед именем параметра записывается зарезервированное слово Const, действие которого распространяется до ближайшей точки с запятой. Тип параметра-константы любой за исключением файлового.
21.7. Параметры-процедуры и параметры-функции.
Параметр процедурного типа может быть передаваемым параметром. Этот параметр является параметром-значением, т.е. записывается без Var.
В качестве фактического параметра используется процедура или функция, имеющая необходимое количество параметров требуемых типов.
ПП должна компилироваться с ключом { $F+ }.
Например, программа, печатающая таблицы сложения и умножения двух целых чисел в разном диапазоне.
Program Primer;
Type
Func = function (x, y : integer) : integer;
{ $F+ }
Function Add (x, y : integer) : integer;
begin
Add := x + y;
end;
Function Multiply ( x, y : integer) : integer;
begin
Multiply := x * y;
end;
{ F$- }
Procedure PrintTable (a, b : integer; operation : Func);
Var
I, j : integer;
begin
for i:=1 to a do
begin
for j :=1 to b do
write(operation(i, j));
writeln;
end;
writeln;
end;
Begin
PrintTable (10, 10, Add);
PrintTable (10, 10, Multiply);
End.
Компилятор Турбо Паскаля автоматически выбирает адресацию к ПП. Если ПП находится в одном файле с основной программой, то она компилируется с «ближним» адресом входа и возврата, состоящем только из смещения в текущем сегменте.
Если ПП используется для переменных процедурного типа, то она компилируется с получением «дальнего» адреса. В этом случае компилятору нужно указать ключ { F$+ }.
21.8. Параметры без типа.
В процедурах ТР параметры-переменные и параметры-константы можно использовать без типа. Ответственность за правильность использования параметра возлагается на программиста. Вместо параметров без типа можно использовать в качестве фактических параметров переменные любого типа, типа – массив, типа – запись и т.д.
Пример функции вычисляющей максимальный элемент в массиве.
Function Max (Var Mas; m : byte) : real;
Type
Tmas = array[1..n] of real;
Var
Xmax : real;
i : byte;
begin
Xmax := Tmas (mas)[1];
For i := 2 to m do
If Xmax < Tmas (Mas)[i] then Xmax := Tmas (Mas)[i];
Max := Xmax;
end;
-
Модули пользователя
22.1. Структура модуля пользователя
Модуль - это автономная программируемая и компилируемая программная единица, которая в дальнейшем может быть использована в другой программе путем ее подключения с помощью директивы USES. Модули позволяют программировать и производить отладку программы по частям, создавать библиотеки подпрограмм и данных, использовать возможности стандартных модулей, увеличивать кодовую часть программы.
Модуль состоит из следующих частей, расположенных в определенной последовательности
-
заголовок модуля;
-
интерфейс модуля;
-
исполнительная часть модуля;
-
секция инициализации.
Unit имя; {заголовок модуля}
Interface
{интерфейсная часть}
implementation
{исполнительная часть}
begin
{инициирующая часть}
end.
Первые три раздела являются обязательными.