- •ПОДПРОГРАММЫ
- •Подпрограмма - автономно оформленный алгоритм, который может быть использован другим алгоритмом.
- •Подпрограммы необходимы:
- •Подпрограммы - результат декомпозиции задачи на подзадачи при нисходящем
- •Основной вопрос: передача данных между подпрограммой и главной программой
- •ПОДПРОГРАММЫ
- •ФОРМАЛЬНЫЕ ПАРАМЕТРЫ ПОДПРОГРАММЫ
- •ФАКТИЧЕСКИЕ ПАРАМЕТРЫ ПОДПРОГРАММЫ
- •Соответствие между формальными и фактическими параметрами
- •Замена формальных параметров на фактические (вызов)
- •Замена формальных параметров на фактические по значению
- •Замена формальных параметров на
- •Когда применять замену по адресу,
- •ПОДПРОГРАММЫ
- •ПОДПРОГРАММЫ В СИ -ФУНКЦИИ
- •ПОДПРОГРАММЫ В ПАСКАЛЕ
- •ПАСКАЛЬ: ОПИСАНИЕ ПРОЦЕДУР
- •ПАСКАЛЬ: список формальных параметров подпрограммы
- •Данные подпрограммы
- •Обращение к процедуре
- •Пример. Даны две матрицы: а из 3-х строк и 5 столбцов и b
- •Блок-схема программы
- •Передача n,m,a
- •Программа примера
- •Программа примера (продолжение)
- •Программа примера (продолжение)
- •ПАСКАЛЬ: ОПИСАНИЕ ФУНКЦИЙ
- •Пример функции
- •Обращение к функции
- •Пример. Вычислить значение У:
- •Пример программы, использующей функции
- •Пример программы, использующей функции (продолжение)
- •Пример программы, использующей функции (продолжение)
- •Пример программы, использующей функции (продолжение)
- •Глобальные и локальные имена
- •Область памяти для локальных и глобальных имен
- •Схема заполнения стэка
- •Область действия имени
- •Время жизни (существования) данных
- •Пример
ПОДПРОГРАММЫ
Подпрограмма - автономно оформленный алгоритм, который может быть использован другим алгоритмом.
Подпрограммы необходимы:
•чтобы избежать повторного программирования одинаковых с точностью до обозначений частей алгоритма;
•для улучшения наглядности программы за счет укрупнения операторов;
•для создания библиотек алгоритмов, в том числе библиотек объектных модулей;
•для упрощения отладки программ;
•чтобы упростить разделение труда между несколькими программистами;
Подпрограммы - результат декомпозиции задачи на подзадачи при нисходящем
проектировании
алгоритмов
Основной вопрос: передача данных между подпрограммой и главной программой
Способы передачи данных
|
|
|
|
|
|
|
|
|
|
|
|
через список |
|
|
через глобальные |
||
параметров |
|
|
переменные,общие |
||
подпрограммы |
|
|
области,внешние имена |
||
|
|
|
|
|
|
через имя подпрограммы- функции (один результат)
ПОДПРОГРАММЫ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Описание |
|
|
|
|
|||
|
|
Вызов |
|
||||
(оформление алгоритма |
|
(обращение к, |
|
||||
решения подзадачи |
|
активизация) |
|
||||
специальным образом) |
|
|
|
|
|||
|
|
|
|
||||
|
|
|
|
||||
|
|
|
|
|
|
||
формальные |
|
параметры |
фактические параметры |
||||
|
ФОРМАЛЬНЫЕ ПАРАМЕТРЫ ПОДПРОГРАММЫ
•Формальные параметры действуют только в подпрограмме (являются локальными).
•При обращении к подпрограмме формальные параметры заменяются на данные вызывающей программы (фактические параметры).
•В список формальных параметров подпрограммы включаются переменные, значения которых передаются из основной программы в подпрограмму или из подпрограммы в программу.
Формальные параметры - это «вход» и «выход» подпрограммы.
ФАКТИЧЕСКИЕ ПАРАМЕТРЫ ПОДПРОГРАММЫ
Фактические параметры подпрограммы - это параметры программы, которые подставляются вместо формальных параметров при обращении к подпрограмме.
Фактические параметры должны соответствовать формальным по числу, порядку перечисления и типу.
Соответствие между формальными и фактическими параметрами
|
Формальный параметр |
|
|
|
Фактический параметр |
|
||||||
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
выражение (в частности, |
|
||
|
простая переменная |
|
|
|
простая переменная, |
|
||||||
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
переменная с индексами, |
|
||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
константа) |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
имя массива |
|
|
|
|
|
|
|
имя массива |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
имя подпрограммы |
|
|
|
|
|
имя подпрограммы |
|
|
|||
|
|
|
|
|
|
|
|
Замена формальных параметров на фактические (вызов)
по значению
СALL-BY-VALUE
пересылка значений фактических параметров в ячейки формальных параметров
по адресу (ссылке, имени)
CALL-BY-REFERENCE
пересылка адресов фактических параметров в ячейки формальных параметров