
- •Язык программирования паскаль
- •I. Общая характеристика языков программирования
- •1.1. Языки программирования
- •1.2. Трансляторы
- •1.3. История создания языков
- •1.4. Базовые структуры языков программирования
- •II. Описание языка паскаль
- •2.1. Основные объекты языка
- •Лексемы
- •Разделители
- •2.2. Структура Паскаль - программы
- •Синтаксическая диаграмма паскаль – программы
- •2.3. Типизация данных
- •Синтаксическая диаграмма
- •2.4. Объявление данных
- •Синтаксическая диаграмма:
- •Синтаксическая диаграмма
- •III. Простые операторы. Ввод/вывод данных
- •3.1. Оператор присваивания и выражения
- •3.2. Операторы процедур. Ввод/вывод информации
- •3.2.1. Процедуры ввода read и readln
- •Общая форма записи
- •3.2.2. Процедуры вывода write и writeln
- •Синтаксическая диаграмма оператора write
- •Синтаксическая диаграмма формата вывода
- •IV. Структурные операторы. Организация ветвлений и циклов
- •4.1. Составной и пустой операторы
- •Синтаксическая диаграмма
- •Синтаксическая диаграмма
- •4.2. Организация ветвлений. Операторы выбора
- •4.2.1. Оператор ветвления if
- •4.2.2. Оператор варианта case
- •4.3. Организация циклов. Операторы повторения
- •4.3.1. Оператор while
- •Синтаксическая диаграмма
- •4.3.2. Оператор repeat
- •Синтаксическая диаграмма
- •4.3.3. Оператор for
- •Синтаксическая диаграмма
- •V. Организация подпрограмм. Процедуры и функции
- •5.1. Процедуры и их типизация
- •5.1.1. Встроенные процедуры
- •5.1.2. Процедуры пользователя
- •Общий вид паскаль-программы
- •5.1.3. Процедуры без параметров
- •5.1.4. Фактические и формальные параметры
- •5.1.5. Локальные и глобальные переменные
- •5.1.6. Процедуры с параметрами-значениями
- •5.1.7. Процедуры с параметрами-переменными
- •5.1.8. Комбинированные процедуры
- •Диаграмма заголовка
- •5.2. Функции пользователя. Рекурсивные функции
- •5.2.1. Определение функции
- •Синтаксическая диаграмма
- •5.2.2. Функции пользователя
- •5.2.3. Рекурсивные функции
- •5.3 Модульное программирование
- •VI. Массивы. Данные типа array
- •Синтаксическая диаграмма
- •6.1 Одномерные массивы
- •6.2. Многомерные массивы
- •6.3. Способы работы с массивами
- •VII. Обработка литерных величин. Данные типа char и string
- •7.1. Тип данных char
- •7.2. Массивы литер
- •7.3. Тип данных string
- •Синтаксическая диаграмма
- •7.4. Строковые функции и процедуры
- •IIX. Комбинированный тип - записи. Данные типа record
- •8.1. Определение типа record
- •Синтаксическая диаграмма
- •8.2. Оператор with
- •Синтаксическая диаграмма
- •IX. Файловый тип
- •9.1. Определение и описание файла
- •9.2. Типы файлов. Процедуры работы с файлами
- •9.3. Буферная переменная
- •9.4. Основные приемы работы с файлами
- •9.5. Текстовые файлы
- •Литература
5.3 Модульное программирование
Прогрессивным подходом в программировании считается использование модулей и блоков. Модуль – это подключаемая к программе библиотека ресурсов. Он может содержать описания типов, констант, переменных и подпрограмм. В модуль обычно объединяют связанные между собой ресурсы.
Модули применяются для разбиения сложной программы на составные части (возрастает скорость ее компиляции) или в качестве библиотеки подпрограмм.
Модули можно разделить на встроенные, которые входят в состав системы программирования, и пользовательские, то есть создаваемые программистом.
Чтобы использовать модуль, достаточно знать только его интерфейс: детали его реализации скрыты от пользователя. Для подключения модуля к программе необходимо предварительно его скомпилировать. Результат компиляции хранится на диске в отдельном файле с расширением .tpu.
Структура модуля. Исходный текст каждого модуля хранится в отдельном файле с расширением .pas. Модуль состоит из секций.
unit <Имя модуля>; {заголовок модуля}
interface {интерфейсная секция модуля}
………………………
{описание глобальных элементов модуля (видимых извне)}
…………………..
implementation {секция реализации модуля}
………………………
{описание локальных (внутренних) элементов модуля}
…………………..
begin {секция инициализации}
{может отсутствовать}
end.
Имя файла, в котором хранится модуль, должно совпадать с именем модуля.
В интерфейсной секции модуля определяют константы, типы данных, переменные, а также заголовки процедур и функций.
В секции реализации описываются подпрограммы, заголовки которых приведены в интерфейсной части. Заголовок подпрограммы должен быть идентичен указанному в секции интерфейса.
Секция инициализации предназначена для присваивания начальных значений переменным, используемым в модуле. Операторы, расположенные в данной секции, выполняются перед операторами основной программы.
Для подключения модуля к программе необходимо указать его имя в разделе описания модулей (USES).
Пример. Составить модуль для нахождения факториала числа и вычисления степени.
unit Matematika;
interface
procedure Factorial(m:integer;var F: integer);
function POWER(FACTOR:real; EXPONENT:integer): REAL;
implementation
procedure Factorial(m:integer;var F: integer);
var i:integer;
begin
F:=1; for i:=1 to m do F:=F*i;
end;
function POWER(FACTOR:real; EXPONENT:integer): REAL;
begin
if EXPONENT < 0
then POWER:=1/POWER(FACTOR,abs(EXPONENT))
else if EXPONENT > 0
then POWER := FACTOR*POWER(FACTOR,EXPONENT-1)
else POWER:=1
end;
end.
program Primer;
uses Matematika;
var k, n: integer; S:real
begin
Factorial(5,k); Factorial(10,n);
S:=n+k+ POWER (2,-5)+ POWER (6.23, 3)
Writeln(‘ S = ’, S:7:3);
readln
end.
В данной программе подключается модуль Matematika и используются процедура и функция, описанные в данном модуле.
VI. Массивы. Данные типа array
Скалярный тип - простой тип данных. Скалярное данное неделимо. Массивы - это структурированные типы данных. Массив состоит из нескольких элементов. Ко всему массиву можно обращаться по его имени. Можно обращаться к его элементу, но для этого надо задать индекс (индексы). Массивы бывают одномерные и многомерные. Для объявления массива необходимо задать типы его индексов и компонент.