Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Infa_ekzamen.doc
Скачиваний:
76
Добавлен:
09.06.2015
Размер:
2.16 Mб
Скачать

5.Передача параметров в подпрограмму,параметры входные и выходные,параметры,передаваемые по значению и по адресу.

Формальные — Параметры, указанные в описании программы.

Фактические — В обращении к программе.

Формальные: 1)Входные (должны быть известны до обращения подпрограмме, передаются по значению)

2)Выходные (получают значения в подпрограмме, передаются по адресу)

Пример: #include<iostream.h>

# include<conio.h>

Void fun f(int I; int *j;int &h){ i++;(j*)++;k++;};

int main() {int i=1; j=2;k=3; cout<<”ijk/n”; cout<<i<< “ “<<j<< “ “<<k<< “/n”;

fun(i,&j,k); cout<<i<< “ “<<j<< “ “<<k<< “/n”; return 0;}

I j k

1 2 3

1 3 4

6.Использование подпрограмм, параметры формальные, локальные, глобальные, обращения к подпрограммам, фактические параметры.

Подпрограмма — отдельная структурная единица, имеющая собственное имя и реализующая вспомогательный алгоритм.

Чтобы использовать подпрограмму, ее нужно описать, а затем в нужном месте обратится к ней с конкретными значениями параметров.

Описать программу — выбрать для нее имя, определить величины от которых будет зависеть вычисление подпрограммы в точках обращения и записать последовательность операторов, реализующих вспомогательный алгоритм.

Достоинства подпрограмм: 1) Избежание дублирования одинаковых частей программы. 2) Делает структуру программы более четкой и понятной. 3) Отдельные подпрограммы можно хранить в отдельных файлах. 4) позволяет расширить язык программирования. 5) позволяет повторно использовать раннее разработанные программы.

Формальные — параметры, указанные в описании подпрограммы.

Фактические — указанные в обращении к ней

Локальные — все величины, описанные в подпрограмме, область действия - тело ф-ии.

Глобальные — описываются вне функций, и вне main,видны во всех функциях программы и могут использоваться для передачи данных между всеми функциями.

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

7.Рекурсивные подпрограммы, примеры рекурсивных функций в С/С++.

Рекурсия — вызов функции из нее же самой, непосредственно.

Глубина рекурсии — количество вложенных вызовов функции или процедуры.

Функция Рекурсивная — если она вызывает сама себя в качестве вспомогательной.

Подпрограмма Рекурсивная — если содержит обращение к самой себе.

n!=1 при n=0 и n!=1*2*3*...*n при n>0 – итерационное(итеративное) определение

n!=1 при n=0 и n!=(n-1)!*n при n>0 — рекурсивное определение

Рекурсия Прямая — подпрограмма обращается сама к себе.

Рекурсия Косвенная — несколько подпрограмм обращается друг к другу.

#include <iostream> using namespace std;

unsigned long F(short n)//рекурсивный метод

{ if (n==0 || n==1) return 1;//нерекурсивная ветвь

//шаг рекурсии — повторный вызов функции с другим параметром.

return n*F(n-1); } int main() { short n; cout<<”n=”; cin>>n;

unsigned long f=F(n); //нерекурсивный вызов функции F

cout<<n<<”!=”<<f<<endl; return 0; }

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]