Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГИА 2024 Ответы УТС (НЕ ВСЕ).docx
Скачиваний:
17
Добавлен:
10.06.2024
Размер:
3.12 Mб
Скачать
  1. Понятие подпрограммы. Виды подпрограмм, их отличительные особенности. Способы передачи параметров.

Подпрограмма - относительная самостоятельная программная единица (фрагмент прграммы), оформленная спец образом и снабжённая именем, представленная логически законченного алгоритма, которая может исполнятся многократно из вызывающей программы при разных наборах исходный данных.Подпрограмма не может работать сама по себе. Упоминание имени подпрограммы в тексте главной программы называется вызовом подпрограммы. Виды подпрограмм:Procedure и Function

Отличие ф-ии от процедуры: результат исполнения операторов, образующих тело ф-ии всегда явл-ся некоторое единственное значение, поэтому обращение к ф-ции можно использовать в соответствующих выражениях подобно константам или переменным. (подпрограммы с ограничениями).

При программировании подпрограмм надо запрограммировать описание подпрограмм, обращение к ней. Тело подпрограммы: раздел описания (может отсутствовать) и раздел исполняемых операторов. В заголовке подпрогр указывается её уникальное имя и список формальных параметров с описанием их типов. Формальн парам сами по себе не имеют значения, они их приобретут из фактических параметров при обращении к подпрограмме, результат сформированной подрогр при счете с фактическими значениями будет передавать автоматически в точки вызова подпрограммы. В обращении к блоку указывается имя подпрогр со списком фактических параметров, к-ые при работе обращения встанут на место формальных. Списки формальных и фактических параметров должны соответствовать друг другу по количеству, типу и порядку следования.

Функция – подпрогр передающая результат выполнения через значение имени функции. Обращение к функции можно ставить в составе выражения.

function_имя функции(список формальных параметров с описанием их типов):тип результата;

Функция формирует единственный результат в ячейке имени ф-ии

Function _ имя ф(сп):тип;

{раздел описания}

begin{раздел исполняемых операторов} имя ф-ии:=результат;end;

Пр: program main;

Var a,b,c,t:real;

Function min(x,y:real):real;

Begin if x<y then min:=x else min:=y;end;

Begin writeln (‘vv a,b,c’); readln(a,b,c);t:=(min(a,b)+min(b,c))/(min(1,b*c)+2);writeln(‘t=’,t:9:3);readln;end;

Обращение к процедуре – это отдельный оператор, состоящий из имени процедуры и из списка фактических параметров.

procedure_имя процедуры(список формальных параметров с описанием их типов);

{раздел описаний}

begin{раздел исполняемых операторов}end;

Имя процедуры- это не ячейка памяти

Пр:procedure sumkol(A:mass;P:integer; var k,s:integer);

Var i: integer; begin s:=0;k:=0; for i:=1 to p do bigin if a[i]_mod_2=0 then begin s:=s+a[i];k:=k+1;end;end;end;

Begin ... sumkol(x,n,s1,k1)

Список формальных параметров содержит как входные в процедуру параметры, так и передаваемые из процедуры результирующие параметры.

Процедура – это универсальная подпрогр, к-ая не имеет ограничения в своём применении и позволяет получить за одно обращение любое количество результатов.

Способы передачи параметров:

Параметры можно передавать по значению и по ссылке.

Параметра-значения- это локальные переменные подпрогр, стартовое значение к-ых задается при вызове подпрогр. Эти значения поступают в подпрограмму из внешних блоков. Параметры-значения, описанные в заголовке, могут изменять свои значения наряду с остальными, но эти изменения могут быть строго локальными, т е подпрогр доступна только копия значения из параметра-значения. Подпрограмме не доступен адрес этого параметра=> через параметр - значения нельзя передать результат в точку вызова. Через стек передается только копия значения параметра из ячейки памяти.

Чтобы подпрограмма изменила значение переменной надо объявить эту величину как параметр-переменная. Синтаксически в заголовке при описании параметра переменной указывают директиву var, и подпрограмма получает доступ к адресу этой ячейки памяти. Параметры – переменные используются как обычные ячейки памяти. Параметр переменная – передается по ссылке, идет передача адреса через стек, есть адрес и его можно использовать на вх. и на вых.

Все результаты должны быть сохранены в параметры-переменные