- •4. Понятие объекта программы. Виды объектов: константа, переменная, функция. Задание (определение) объектов программы.
- •Константы
- •1. Понятие алгоритма. Свойства алгоритма.
- •9. Неодродные типы (структура). Характеристика основных составляющих неоднородных типов.
- •10. Понятие ссылочного типа (тип указатель). Характеристика основных составляющих типа указатель.
- •11. Понятие файла. Виды файлов: текстовые, двоичные. Способы обращения к элементам файлов. Операции над файлами.
- •14. Языковые средства вычислений над данными: выражение, оператор присваивания. Синтаксис и симантика выражения и опретора присваивания.
- •12. Совместимость типов. Преобразование типов.
- •Циклические управляющие структуры
- •18. Понятие структурного программирования.
- •19. Понятие подпрограммы и модульного программирования. Цели модульного программирования. Виды подпрограмм: функция, процедура.
- •Подпрограммы
- •20. Синтаксис и семантика функции языка с.
- •22. Понятие формального параметра. Использование формального параметра для передачи данных в подпрограмму (исходных данных и результатов).
- •23. Понятие фактического параметра подпрограммы. Правила связывания формального и фактического параметров.
- •25. Понятие рекурсии. Глубина рекурсии. Механизм реализации рекурсий в языках программирования.
- •24. Модульно - блочная структура программы и правила локализации объектов.
- •Местом или областью локализации может быть:
- •Способ связывания:
22. Понятие формального параметра. Использование формального параметра для передачи данных в подпрограмму (исходных данных и результатов).
Формальные параметры – это собственные переменные функции, которым при её вызове присваиваются значения фактических параметров.
В программе с многоуровневой структурой возникает проблема взаимодействия объектов, описанных в разных частях и модулях программы.
В языках с блочной структурой принят следующий принцип локализации объектов: объекты, вводимые в употребление в блоке, могут использоваться только в пределах данного блока. В подпрограмме могут действовать три вида объектов:
– локальные,
– формальные,
– глобальные.
Формальные объекты – это объекты, описанные в заголовке определения подпрограммы. Область действия этих объектов – тело подпрограммы. Формальные параметры это также локальные объекты подпрограммы.
Область действия формальных параметров, описанных в прототипе функции – прототип функции.
В заголовке функции имеется список формальных параметров, в котором они имеют синтаксис определений обычных переменных.
В Си принят единый способ передачи параметров, который называется ПЕРЕДАЧЕЙ ПО ЗНАЧЕНИЮ. Выглядит он так:
-формальные параметры являются собственными переменными функции;
-при вызове функции происходит присваивание значений фактических параметров формальным (копирование первых во вторые);
-при изменении формальных параметров значения соответствующих им фактических параметров не меняются
Формальные параметры задают не какие-то конкретные данные программы, а лишь условно определяют объекты подпрограммы. Это позволяет применять подпрограммы к различным объектам программы, конкретизируя при каждом обращении ее данные в списке фактических параметров. В список формальных параметров необходимо вводить только те объекты, которые изменяются при вызове подпрограммы, т.е. входные и выходные данные. Формальные параметры в Си задаются в списке формальных параметров перечислением через запятую спецификаций отдельных параметров.
Спецификация каждого параметра имеет вид:
<спецификация типа> <имя параметра>
23. Понятие фактического параметра подпрограммы. Правила связывания формального и фактического параметров.
Фактические параметры – переменные, константы или выражения, значения которых при вызове присваиваются соответствующим по списку формальным параметрам.
Список фактических параметров – это список выражений, заменяющих формальные параметры функции. Соответствие между формальными и фактическими параметрами устанавливается по порядку их расположения в списках. Если формальных параметров у функции нет, то не должно быть и фактических параметров при обращении к этой функции. Фактические параметры (аргументы) передаются из вызывающей программы в функцию по значению, т.е. вычисляется значение каждого аргумента, и именно оно используется в теле функции вместо заменяемого формального параметра.
Между списком формальных и списком фактических параметров устанавливается соответствие по их взаимному расположению в списках: первому формальному параметру соответствует первый фактический параметр и т. д. При этом соблюдается соответствие параметров по типам. Связь между фактическими и формальными параметрами может устанавливаться двумя способами:
– связь по значению – значение фактического параметра присваивается формальному. Действия в подпрограмме выполняются над формальной переменной, получившей значение фактического параметра. Такой способ используется, прежде всего, для передачи входных данных в подпрограмму;
– связь по адресу (ссылке) – фактический параметр заменяет в теле подпрограммы формальный и подпрограмма получает доступ к фактическому параметру. Если говорить более точно, то формальному параметру присваивается адрес (ссылка) фактического параметра. Значение такого формального параметра при его использовании в операциях рассматривается как адрес того объекта, над которым надо выполнить эту операцию. Такой способ используется как для передачи входных данных, так, и, прежде всего, для выходных данных (результатов). В Си связь между формальными и фактическими параметрами устанавливается по значению. Фактический параметр в этом случае – выражение того же типа, что и соответствующий ему формальный. В момент вызова функции вычисляется значение фактического параметра и присваивается формальному параметру.