Int a()

{.....a().....}

Непрямою рекурсією є рекурсія, що здійснює рекурсивний виклик функції за допомогою ланцюжка виклику інших функцій. Всі функції, що входять в ланцюжок, теж вважаються рекурсивними.

приклад:

a(){.....b().....} b(){.....c().....} c(){.....a().....} .

Всі функції а,b,c є рекурсивними, оскільки при виклику однієї з них, здійснюється виклик інших і самій себе.

Всі функції в мові Сі можуть бути рекурсивними, тобто будь-яка з них може непрямо викликати саму себе.

/* Програма обчислення факторіала */

/* n!=1*2*3*...*(n-1)*n */

#include <iostream.h>

unsigned long F(unsigned long n);

main()

{ unsigned long n,fac;

сout<<"\n Введіть N=";

cin>>n;

fac=F(N);

cout<<“\n N!="<<fac);

}

unsigned long F(unsigned n);

{

return n==1?1:n*F(n-1); }

Приклад: Скласти функцію для обчислення n!, де використовуючи рекурсію, можна так:

Long factorial (int n)

{

Long fact;

If (n>1) fact=n*factorial(n-1);

else fact=1;

return fact;

}

 

П р и к л а д: Рекурсивна функція обчислення суми цілих чисел від а до b має вигляд:

Int Suma (int a, int b)

{

Int S;

If (a==b) S=a;

else S=b+Suma(a,b-1);

return S;

}

 

 

Тема. Класи пам’яті . Локальні та глобальні змінні. Шаблони функцій.

План

1. Класи пам’яті.

2. Локальні та глобальні змінні

3. Шаблони функцій

 

1. Класи пам’яті.

Для того, щоб безпосередньо вказати комп’ютеру як і де у його пам’яті мають зюерігатися значення змінних чи функцій, як можна отримати доступ до цих даних, як визначити область видимості цих даних, використовують специфікатори класу пам’яті. Є п’ять спецтфікаторів:

· Auto

· Regicter

· Static

· Extern

· Volatile

 

Дія цих специфікаторів.

Auto – застосовується для локальних змінних по замовчуванню.

Область видимості – обмежена блоком, в якому вони оголошені.

Register – вказує компілятору, що значення слід зберігати в регістрах процесора (не в оперативній пам’яті). Це зменшує час доступу до змінної, що прискорює виконання програми

Область видимості – обмежена блоком, в якому вони оголошені.

Static – застосовується як для локальних, так і для глобальних змінних.

Область видимості – значення локальної статичної змінної зберігається після виходу з блока чи функції, де ця змінна оголошена. Під час повторного виклику функції змінна зберігає своє попереднє значення. Якщо змінна явно не ініцілізована, то за замовчуванням надається значення 0.їй








Дата добавления: 2015-08-26; просмотров: 471;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.