
- •Основные понятия алгоритма.
- •Алгоритм и его свойства. Понятие алгоритма
- •Свойства алгоритмов
- •Правила построения алгоритма
- •Формы записи алгоритма
- •Словесная форма записи алгоритмов
- •Графическая форма записи алгоритмов
- •Псевдокод
- •Программная форма записи алгоритма
- •Базовые алгоритмические структуры Типы базовых алгоритмических структур
- •Линейная базовая структура ("последовательность")
- •Базовая структура "ветвление".
- •Базовая структура "цикл".
- •Языки программирования и их уровни
- •Языки программирования. Машинный язык
- •Язык ассемблер
- •Языки программирования высокого уровня
- •Компоненты, образующие алгоритмический язык Отличительные особенности алгоритмических языков
- •Компиляторы и интерпретаторы
- •Преобразование алгоритма в программу
- •Три составляющие алгоритмического языка
- •Общая характеристика языка Турбо Паскаль
- •Язык программирования высокого уровня Turbo Pascal 7.0.
- •Основы языка
- •1.1. Алфавит языка
- •1.2. Составные элементы Паскаль-программы
- •Операторы
- •Идентификаторы и имена
- •Описания
- •Переменные
- •Функции и процедуры
- •1.3. Синтаксис языка
- •Структура программы на языке Паскаль
- •Тело программы
- •Классификация типов данных языка.
- •3.1. Простые типы Целые типы
- •Вещественные типы
- •Логический тип
- •Символьный тип
- •Перечисляемый тип
- •3.2. Структурированные типы Массив
- •Множество;
- •Основные конструкции языка Turbo Pascal
- •Константы
- •Переменные
- •Функции
- •Стандартные функции
- •Математические функции
- •Функции преобразования типа:
- •Функции для величин порядкового типа.
- •Функции, создаваемые пользователем
- •Знаки операций
- •Арифметические операции
- •Логические операции
- •Операции с битами информации
- •Операции отношения
- •Круглые скобки.
- •Порядок вычисления выражений
- •Операторы языка Turbo Pascal
- •Простые операторы
- •Оператор безусловного перехода (“Goto”)
- •Обращение к процедуре (функции)
- •Оператор выбора (Case)
- •Оператор цикла (Repeat)
- •Оператор цикла While;
- •Оператор цикла For;
- •Оператор обращения к записям и объектам With.
- •Процедуры и функции, определяемые пользователем
- •Характеристика подпрограмм в Turbo Pascal
- •Порядок создания и использования процедур
- •Порядок создания и использования функций
- •Механизм формальных параметров
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Параметры без типа
- •Массивы и строки открытого типа
- •Параметры-процедуры и параметры-функции
- •Использование модулей в Турбо Паскаль
- •Стандартные модули Турбо Паскаль
- •Модуль System
- •Модуль Strings
- •Модуль Crt
- •Модуль Graph
- •Модуль Dos
- •Модуль WinDos
- •Модуль Overlay
- •Исполнительная часть модуля
- •Секция инициализации
- •Использование модуля в основной программе
- •Использование идентификаторов элементов модуля
Исполнительная часть модуля
Исполнительная часть модуля содержит элементы, недоступные внешним программам. включая развернутый код полного описания всех подпрограмм (процедур и функций), объявленных в разделе интерфейса модуля. Она может также включать локальные метки, константы, типы, переменные и подпрограммы, доступные только внутри данного модуля.
Исполнительная часть модуля начинается словом implementation. Затем после слова uses указываются имена модулей, которые используются подпрограммами данной исполнительной части (этот раздел необязателен). Если какой-то модуль уже указан в интерфейсе модуля, то в исполнительной части его повторять не следует. Далее могут быть: раздел объявления меток, раздел объявления локальных констант, раздел объявления локальных типов, раздел объявления локальных переменных. Затем идут описания подпрограмм модуля. При описании подпрограмм допустимо использовать сокращенные заголовки, не указывая при этом список формальных параметров.
Секция инициализации
В некоторых случаях перед обращением к модулю следует провести его инициализацию (например, установить связь с теми или иными файлами с помощью процедуры Assign, инициализировать какие-то переменные и т. д.). Необходимые действия можно выполнить в секции инициализации модуля. Эта секция начинается словом begin, после которого идут исполняемые операторы, а затем помещается слово «end..» (с точкой), например:
begin
Assign (Fl, 'FILE1.DAT')
end.
Следует иметь в виду, что операторы секции инициализации выполняются единственный раз в момент запуска программы.
Если инициализация модуля не нужна, то в секции помещается лишь слово end. (с точкой).
Использование модуля в основной программе
Чтобы использовать подпрограммы, константы, типы, переменные, описанные в интерфейсе модуля, в основной программе следует записать слово uses, после которого указать имя (имена) модуля (модулей). После этого в основной программе можно использовать любые идентификаторы (констант, типов, переменных, подпрограмм), указанные в интерфейсах перечисленных модулей.
Пример. Программа, меняющая в массиве максимальное и минимальное числа.
program EXAMPLE26; {заголовок программы}
uses Unitl, Unit2; {используемые модули}
var i: Integer;
begin
Change(Arr); {процедура замены в Unitl,
массив Arr - в Unit2}
for i := 1 to N do {N-B Unit2}
WriteLn(Arr(i])
end.
{модули, расположенные в других файлах}
unit Unitl; {модуль с основной подпрограммой}
interface {интерфейс первого модуля}
uses Unit2; {использование модуля с параметрами}
procedure Change (var Arr: Mass); {заголовок процедуры}
implementation {исполнительная часть}
uses UnitS; {использование модуля с вспомогательной
подпрограммой}
procedure Change; {сокращенный заголовок}
var Max, Min, i; Integer;
begin
Max := 1; Min := 1;
for i := 1 to N do {N-в Units}
begin
if Arr[i] > Arr[Max]
then Max := i;
if Arrti] < Arr[Min]
then Min := i
end;
Swap(Arr[Max], Arr[Min]) {замена местами макс.и мин.чисел, процедура в Units}
end
end. {конец Unitl}
unit Unit2; {модуль с параметрами}
interface {интерфейс второго модуля}
const N = 5; {число элементов}
type Mass = array!1..N] of Real; {тип массива}
const Arr: Mass = (0.5, -2.0, 1.0, 3.5, 7.0);
{типизированная константа}
implementation {исполнительная часть}
end. {конец UNIT2}
unit UnitS; {модуль с вспомогательной подпрограммой}
interface {интерфейс третьего модуля}
procedure Swap(var X, Y: Real}
implementation {исполнительная часть}
procedure Swap(var X, Y: Real) {перемещение двух чисел}
var Z: Real;
begin
Z := X; X :- Y; Y := Z
end
end. {конец UNITS}