ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.08.2024

Просмотров: 12

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Приклад 7.

Тут обмін значеннями між основною і допоміжною функцією func() відбувається через загальну глобальну змінну var, для якої під час компіляції виділяється місце в зовнішньому розділі пам'яті. В результаті виконання даної програми на екран виведеться число 50.

Локальні змінні, оголошені усередині блоків, розподіляються в автоматичній пам'яті, що працює за принципом стека. Виділення пам'яті відбувається при вході виконання програми в блок, а при виході з блоку пам'ять звільняється. Ключове слово auto писати необов'язково (мається на увазі за умовчанням).

Статична пам'ять виділяється під змінні, локалізовані усередині блоку, але на відміну від автоматичної пам'яті не звільняється при виході з блоку. Таким чином, при повторному входженні в блок статична змінна зберігає своє колишнє значення. Приклад оголошення статичній змінній:

f()

{static int schet=10; ...}

Ініціалізація статичної змінної відбувається лише при першому входженні в блок. Якщо ініціалізація явно не вказана, то змінній автоматично привласнюється нульове початкове значення. Статичні змінні можна використовувати, наприклад, для організації лічильника числа входжень в блок.

Регістрова пам'ять виділяється під локальні змінні. Регістри процесора — найшвидший і найменший вигляд пам'яті. Вони задіяні при виконанні практично всіх операцій в програмі. Тому можливість розпоряджатися регістровою пам'яттю краще залишити за компілятором.

Нарешті розглянемо приклад, в якому використовуються різні способи опису змінних.

Приклад 8.

Контрольні питання

1. Знайти помилку в програмі:

2. Визначити результат виконання програми:

3. Скласти програму для обчислення площі кільця по значеннях внутрішнього і зовнішнього радіусів, використовуючи функцію обчислення площі круга.


4. Дано три цілі числа. Визначити, сума цифр якого з них більша. Підрахунок суми цифр організувати через функцію.

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

6. Описати рекурсивну функцію stepen (x, n) від речового х (х >= 0) і цілого n, яка обчислює величину xn згідно формулі

7. Дані натуральні числа n і m; знайти НОД(n, m). Скласти рекурсивну функцію обчислення НОД, засновану на співвідношенні НОД(n, m)= НОД(m, r), де r — залишок від ділення n на m (n > m)..

1

  • Обчислити площу правильного шестикутника із стороною а, використовуючи підпрограму обчислення площі трикутника.

  • На площині задані своїми координатами п крапок. Скласти програму, що визначає, між якими з пар крапок найбільша відстань. Вказівка. Координати крапок занести в масив.

  • Скласти програму, яка в масиві A[N] знаходить друге за величиною число (вивести на друк число, яке менше максимального елементу масиву, але більше всіх інших елементів).

  • Скласти програму, перевіряючу, чи є дані три числа взаємні простими.

2 Вирішити наступні завдання, використовуючи рекурсивну підпрограму.

  • Знайти суму цифр заданого натурального числа.

  • Підрахувати кількість цифр в заданому натуральному числі.

  • Скласти програму для обчислення суми: 2! + 4! + 6! + ... + n! (п ≤ 16, n — парне).

Примітка. Тип результату значення функції — LongInt.

  • 3. Дано два дробових вираза 

і 

 (А, В, С, D — натуральні числа). Скласти програму для віднімання з першого дробу другої. Результат має бути нескоротним дробом.

4. Дано два дробових вираза 

і 

 (А, В, С, D — натуральні числа). Скласти програму для віднімання з першого дробу другої. Результат має бути нескоротним дробом.


  • Дано два дробових вираза 

 і

 (А, В, С, D— натуральні числа). Скласти програму для складання цих дробів. Результат має бути нескоротним дробом.

  • Скласти програму для обчислення суми: 1! + 2! + 3!  + ... + n! (n ≤ 15).

Примітка. Тип результату значення функції — LongInt.

12