
- •102.Что такое подпрограмма?
- •103. Для чего нужно разбиение программы на подпрограммы?
- •104. Назовите способы передачи параметров в подпрограмму.
- •105. Перечислите недостатки разработки программы снизу-вверх.
- •106. Где располагаются динамические структуры данных?
- •107. На каком этапе происходит выделение памяти под динамическую структуру данных?
- •108. Какую дисциплину обслуживания реализует стек?
- •109. Какую дисциплину обслуживания реализует очередь?
- •110. Какие операции определены для стека и очереди?
- •111. Какое свойство объектно-ориентированного программирования позволяет скрыть детали реализации объекта от других частей программы?
- •112. Какое свойство объектно-ориентированного программирования позволяет называть одним и тем же именем разные методы в разных объектах иерархии?
- •113. Что обычно содержит класс?
102.Что такое подпрограмма?
Подпрограмма (англ. subroutine) — поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма - это отдельная функционально независимая часть программы.
Подпрограммы решают три важные задачи:
-избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты;
-улучшают структуру программы, облегчая ее понимание;
-повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификациях программы.
103. Для чего нужно разбиение программы на подпрограммы?
При создании средних по размеру приложений используется структурное программирование (его суть – структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста) Для этого нужны средства для создания программы не только с помощью 3х простых операторов, но и с помощью средств более точно отражающих конкретную структуру алгоритма. С этой целью в программирование введено понятие подпрограммы. Использование подпрограмм позволяет улучшить структурированность программы, так как основная программа содержит основной алгоритм решения задачи, а в подпрограммах оформляются вспомогательные алгоритмы. Применение подпрограмм дает возможность уменьшать число повторений одной и той же последовательности операторов, а также конструировать программу как набор отдельных подпрограмм. Это позволяет получить более логичный процесс программирования.
104. Назовите способы передачи параметров в подпрограмму.
По значению - формальному параметру присваивается значение фактического параметра. Тогда формальный параметр будет содержать копию значения, имеющегося в фактическом, и никакое воздействие, производимое внутри подпрограммы на формальные параметры, не отражается на параметрах фактических.
Передача параметров по ссылке - в формальный параметр может быть помещён сам фактический параметр (обычно это реализуется путём помещения в формальный параметр ссылки на фактический). При этом любое изменение формального параметра в подпрограмме отразится на фактическом параметре — оба параметра во время вызова подпрограммы суть одно и то же. Параметры, передаваемые по ссылке, дают возможность передавать параметры внутрь подпрограммы и возвращать вычисленные значения в точку вызова. Для этого параметру внутри подпрограммы просто присваивается нужное значение, и после возврата из подпрограммы переменная, использованная в качестве фактического параметра, получает это значение.
Передача параметров по имени - в формальный параметр может быть помещено произвольное выражение. При этом вычисление этого выражения произойдёт внутри подпрограммы в тот момент, когда потребуется его значение. Если это значение фигурирует несколько раз, то и вычисляться оно будет тоже несколько раз. Параметры, передаваемые по имени, дают возможность писать довольно универсальные подпрограммы. Такой способ передачи параметров используется в языках Алгол или Алгол 68.
Передача параметров через стек - Это фактически разновидность передачи параметра по значению «с ручным приводом», в данном случае отсутствует понятие формальных и фактических параметров. Все параметры лежат на стеке, причём их типы, количество и порядок не контролируются компилятором. Данный подход реализован в языке Форт.