Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Int a()

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

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

приклад:

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

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

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

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

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

#include <stdio.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.їй




Переглядів: 519

<== попередня сторінка | наступна сторінка ==>
Приклад | Приклад

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.017 сек.