- •Содержание
- •5.Массивы 25
- •Основные этапы решения задач на компьютере
- •Свойства и способы описания алгоритмов
- •Система программирования Турбо Паскаль
- •Диалоговая среда разработчика Турбо Паскаль
- •Элементы языка Турбо Паскаль
- •Алфавит
- •Идентификаторы
- •Данные в языке Паскаль
- •Понятие типа данных в Турбо Паскаль
- •Простые типы данных
- •Структурированные типы данных
- •Указатель (ссылочный тип)
- •Константы
- •Переменные и типы переменных
- •Структура программы на Турбо Паскаль
- •Выражения
- •Математические операции
- •Логические операции
- •Операции отношения
- •Приоритет операций
- •Основные математические функции (стандартные функции)
- •Примеры
- •Тип выражения
- •Виды вычислительных алгоритмов
- •Линейный вычислительный процесс
- •Оператор присваивания
- •Операторы ввода и вывода
- •Ввод данных
- •Вывод данных
- •Управление выводом данных
- •Вывод на печать
- •Разветвляющийся вычислительный процесс
- •Оператор условного перехода
- •Оператор выбора
- •Оператор безусловного перехода
- •Операторы повторений
- •Оператор цикла while-do (цикл с предусловием)
- •Оператор цикла repeat-until (цикл с постусловием)
- •Оператор цикла for (цикл с параметром)
- •Массивы
- •Подпрограммы
- •Понятие подпрограммы
- •Подпрограмма–функция
- •Подпрограмма–процедура
- •Создание и отладка компьютерных программ
- •Общие сведения.
- •Система программирования Турбо Паскаль
- •Диалоговая среда разработчика Турбо Паскаль
- •Основные этапы создания компьютерной программы.
- •Работа в текстовом редакторе среды программирования тр.
- •Сохранение текста программы на диске.
- •Поиск ошибок в тексте программы.
- •Просмотр результатов выполнения программы:
Подпрограммы
Понятие подпрограммы
Если часть программы используется более одного раза, то можно не повторять текст программы, а оформить эту часть программы в виде процедуры или функции. Они вызываются на исполнение каждый раз, когда нужно выполнить эту часть программы. При этом саму программу называют основной программой, а процедуру или функцию подпрограммой.
Отличие функции от процедуры заключается в том, что функция вычисляет одно единственное значение простого, строкового или ссылочного типа. Если результатом работы подпрограммы не может быть единственное значение, то лучше использовать процедуру.
Процедуры и функции являются самостоятельными фрагментами программы, связанными с основной программой лишь с помощью нескольких параметров. Структура подпрограммы повторяет структуру всей программы, но вместо заголовка программы содержит заголовок подпрограммы, который является обязательным. Формат заголовка:
FUNCTION <имя> [ (<список формальных параметров>) ] : <тип> ;
PROCEDURE <имя> [ (<список формальных параметров>) ]
Здесь: <имя> - имя подпрограммы (правильный идентификатор);
<тип> - тип возвращаемого функцией результата.
Например, FUNCTION F(a, b: Real): Real;
PROCEDURE SB (a: Real; b: Integer; c: Char);
Переменные, описанные в основной программе, являются глобальными для подпрограмм. Все переменные из списка формальных параметров подпрограмм могут использоваться в любых выражениях внутри подпрограммы и являются локальными.
Любой из формальных параметров подпрограммы может быть либо параметром–значением, либо параметром–переменной, либо, наконец, параметром–константой. Например,
PROCEDURE MyProcedure (var a: Real; b: Real; const c: String);
Здесь А – параметр-переменная, В – параметр-значение, а С - параметр-константа.
Так как любое имя в программе обязательно описывается перед тем, как оно появится среди исполняемых операторов, то и подпрограмма должна быть предварительно определена в разделе описаний основной программы. Описанием (определением) основной программы является её собственный текст, который содержит заголовок и тело подпрограммы.
Например,
PROGRAM A;
Var x,y: integer;
PROCEDURE REV(a,b: integer);
Begin
Writeln(b:3, a:3);
End;
Упоминание имени подпрограммы в тексте основной программы приводит к активации подпрограммы и называется её вызовом. Сразу после активации подпрограммы начинают выполняться, входящие в неё операторы. После выполнения последнего из них управление возвращается обратно в основную программу и далее выполняются операторы, стоящие непосредственно за оператором вызова подпрограммы.
Для вызова подпрограммы на исполнение используется оператор, который состоит из её имени и списка фактических параметров (если при определении подпрограммы был указан список формальных параметров). Например,
Begin
REV (x,y);
REV (4,5*SQRT(x-y));
End.
Каждый раз при вызове подпрограммы вычисляются фактические параметры, которые могут быть константами (4), переменными (x,y) или выражениями (5*Sqrt(y-x)).
При вызове подпрограммы необходимо соблюдать следующее правило: количество, тип и порядок следования фактических параметров должен строго соответствовать количеству, типу и порядку следования соответствующих формальных параметров.