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

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

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

Добавлен: 18.08.2024

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

Скачиваний: 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] знаходить друге за величиною число (вивести на друк число, яке менше максимального елементу масиву, але більше всіх інших елементів).

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

Написати програму для обчислення суми факторіалів всіх непарних чисел від 1 до 9.

Дани дві дроби 

 і 

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

2

  • Дан масив A(N). Сформувати масив(М), елементами якого є великі з двох що поруч стоять в масиві А чисел. (Наприклад, масив А складається з елементів 1; 3; 5; -2; 0; 4; 0. Елементами масиву В будуть 3; 5; 4).

  • Дан масив A(N) (N — парне). Сформувати масив(М), елементами якого є середні арифметичні сусідніх пар тих, що поруч стоять в масиві А чисел. (Наприклад, масив А складається з елементів 1; 3; 5; -2; 0; 4; 0; 3. Елементами масиву В будуть 2; 1,5; 2; 1,5).

  • Дано просте число. Скласти функцію, яка знаходитиме наступне за ним просте число.

  • Скласти функцію для знаходження найменшого непарного натурального дільника k (k ≠ 1) будь-якого заданого натурального числа п.

3

  • Дані натуральні числа K і N. Скласти програму формування масиву А, елементами якого є числа, сума цифр яких рівна K і які не більше N.

  • Дано три квадратні матриці А, В, C n-го порядку. Вивести на друк ту з них, норма якої найменша. Пояснення: Нормой матриці назвемо максимум з абсолютних величин її елементів.

  • Два натуральні числа називаються «дружніми», якщо кожне з них дорівнює сумі всіх дільників (окрім його самого) іншого числа (наприклад, числа 220 і 284). Знайти всі пари «дружніх чисел», які не більше даного числа N.

  • Два прості числа називаються «близнятами», якщо вони відрізняються один від одного на 2 (наприклад, 41 і 43). Надрукувати всі пари «близнят» з відрізку [n, 2n], де n — задане натуральне число більше 2.


4

  • Дані натуральні числа n і k, n > 1. Надрукувати до десяткових знаків числа 1/n. Програма повинна використовувати лише цілі змінні.

  • Дано натуральне число n > 1. Визначити довжину періоду десяткового запису дробу 1/n.

  • Функція f з натуральними аргументами і значеннями визначена так: f(0)= 0, f(1)= 1, f(2n)= f(n),  f(2n +1)= f(n)+ f(n + 1). Скласти програму обчислення f(n) по заданому n.

  • На відрізку [100, N] (210< N< 231) знайти кількість чисел, складених з цифр а, b, с.

***Написати функцію, яка обчислює опір ланцюгу, що складається з двох резисторів. Параметрами функції є величини опорів і тип з'єднання (послідовне або паралельне). Функція повинна перевіряти коректність параметрів: якщо невірно вказаний тип з'єднання, то функція повинна повертати - 1.

13