Назад Зміст Вперед

Функції з одним вхідним параметром і одним значенням, що повертається

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

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

Тобто всі функції обчислювальні функції мають прототип int Name1(int). Ім'я функції може бути будь-яким.

А всі функції, які відповідають на питання вірно чи не вірно, мають прототип bool Name2(int). Ім'я функції може бути будь-яким.

Приклад 1

Написати функцію NumDiv, яка знаходить кількість дільників натурального числа. Використовуючи цю функцію написати таку програму: ввести з клавіатури натуральні числа N, A та B. Знайти N чисел більших А, які мають В дільників.

Результат роботи програми

Код програми

// Підключення необхідних бібліотек
#include <iostream>
using namespace std;

// Оголошення прототипу функції
int NumDiv(int n);

// Головна функція програми
int main()
{
    int a, b, n, k = 0;  // Оголошення змінних
    cin >> n >> a >> b;  // Введення даних: n - кількість чисел, [a,b] - діапазон
    
    // Цикл для пошуку чисел
    do
    {
        a++;  // Перехід до наступного числа
        if (NumDiv(a) == b)  // Перевірка кількості дільників
        {
            k++;  // Лічильник знайдених чисел
            cout << a << " ";  // Виведення числа
        }
    } while (k < n);  // Умова виходу з циклу
    
    return 0;  // Завершення програми
}

// Функція для підрахунку кількості дільників числа
int NumDiv(int n)
{
    if (n <= 0) return -1;  // Обробка некоректного вхідного значення
    int k = 0;  // Лічильник дільників
    
    // Цикл перевірки всіх можливих дільників
    for (int i = 1; i <= n; i++)
    {
        if (n % i == 0)  // Якщо i є дільником n
        {
            k++;  // Збільшуємо лічильник
        }
    }
    return k;  // Повертаємо кількість дільників
}

Приклад 2

Використовуючи функцію NumDiv написати таку програму: ввести з клавіатури N натуральних чисел і число В. Скільки з введених чисел мають В дільників?

Результат роботи програми

Код програми

#include <iostream>
using namespace std;

// Прототип функції для підрахунку дільників
int NumDiv(int n);

int main()
{
    int a, b, n, k = 0;  // Оголошення змінних:
                          // n - кількість чисел, b - шукана кількість дільників
                          // a - поточне число, k - лічильник чисел з b дільниками
    
    cin >> n >> b;  // Введення кількості чисел та шуканої кількості дільників
    
    for(int i = 1; i <= n; i++)  // Цикл для обробки n чисел
    {
        cin >> a;  // Введення поточного числа
        
        if (NumDiv(a) == b)  // Перевірка, чи має число a рівно b дільників
        {
            k++;  // Якщо так, збільшуємо лічильник
        }
    }
    
    cout << k;  // Виведення кількості чисел з b дільниками
    return 0;
}

// Функція для підрахунку кількості дільників числа n
int NumDiv(int n)
{
    if (n <= 0) return -1;  // Обробка некоректного вхідного значення
    
    int k = 0;  // Лічильник дільників
    
    for (int i = 1; i <= n; i++)  // Перебір всіх можливих дільників
    {
        if(n % i == 0)  // Якщо i є дільником n
        {
            k++;  // Збільшуємо лічильник
        }
    }
    return k;  // Повертаємо кількість дільників
}

Приклад 3

Написати функцію IsPal, яка визначає, чи є натуральне число паліндромом. Використовуючи цю функцію написати таку програму: ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти всі числа паліндроми.

Результат роботи програми

Код програми

#include <iostream>
using namespace std;

// Прототип функції для перевірки паліндромів
bool IsPal(int);

int main()
{
    int a, b;  // Межі діапазону [a, b]
    cin >> a >> b;  // Введення меж діапазону
    
    // Перебір всіх чисел у діапазоні
    for (int n = a; n <= b; n++)
    {
        if(IsPal(n))  // Перевірка чи є число паліндромом
        {
            cout << n << " ";  // Виведення паліндрому
        }
    }
    return 0;
}

// Функція перевірки чи є число паліндромом
bool IsPal(int n)
{
    int x = n;  // Зберігаємо оригінальне число
    int m = 0;  // Змінна для зберігання перевернутого числа
    int c;      // Тимчасова змінна для цифр
    
    do
    {
        c = n % 10;    // Отримуємо останню цифру
        m = m * 10 + c; // Додаємо цифру до перевернутого числа
        n = n / 10;     // Видаляємо останню цифру
    } while (n != 0);
    
    // Повертаємо true, якщо перевернуте число дорівнює оригінальному
    return (m == x);
}

Приклад 4

Використовуючи функції NumDiv і IsPal написати таку програму: вводити з клавіатури натуральні числа, поки не введено число 0. Якщо введене число є паліндромом вивести це число та біля нього вивести кількість його дільників.

Результат роботи програми

Код програми


#include <iostream>
using namespace std;

int NumDiv(int); // Функція для обчислення кількості дільників
bool IsPal(int); // Перевірка, чи є число паліндромом

int main()
{
    int a;
    do
    {
        cin >> a;
        if (IsPal(a) && a != 0)
        {
            int divCount = NumDiv(a);
            cout << a << " " << divCount << endl;
        }
    } while (a > 0);
    return 0;
}

bool IsPal(int n)
{
    int reversed = 0, original = n;
    while (n > 0)
    {
        reversed = reversed * 10 + n % 10;
        n /= 10;
    }
    return original == reversed;
}

int NumDiv(int n)
{
    int count = 0;
    for (int i = 1; i <= n; i++)
    {
        if (n % i == 0)
            count++;
    }
    return count;
}

Тексти функцій є у програмі, але на лістингу вони згорнуті.

Варіанти задач

Варіант 1

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти всі числа, що мають С дільників. NumDiv
2 Ввести з клавіатури натуральні числа A та N. Знайти N чисел більших А, які є паліндромами IsPal
3 Ввести з клавіатури N натуральних чисел. Для кожного введеного числа знайти суму його цифр SumDig
4 Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа яке є паліндромом знайти кількість його дільників IsPal, NumDiv

Варіант 2

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури натуральне число N та отримати та вивести на екран N випадкових чисел з інтервалу [1,99999]. Для кожного отриманого числа обчислити та вивести на екран кількість цифр. NumDig
2 Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти всі числа, сума цифр яких дорівнює С. SumDig
3 Ввести з клавіатури натуральні числа A, В та N. Знайти N чисел більших А, які мають В дільників. NumDiv
4 Ввести з клавіатури N натуральних чисел. Для кожного введеного числа яке є паліндромом знайти кількість його цифр. IsPal, NumDig

Варіант 3

№
задачі
Умова задачіЯкі функції
потрібні
1 Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа знайти кількість його цифр. NumDig
2 Ввести з клавіатури натуральне число N та отримати та вивести на екран N випадкових чисел з інтервалу [1,99]. Для кожного отриманого числа обчислити та вивести кількість його дільників. NumDiv
3 Ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти всі числа, що мають парну суму дільників. SumDiv
4 Ввести з клавіатури натуральні числа A, В та N. Знайти N чисел більших А, які є паліндромами та мають В дільників. IsPal, NumDiv

Варіант 4

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури N натуральних чисел. Для кожного введеного числа знайти суму його цифр. SumDig
2 Вводити з клавіатури натуральні числа поки не буде введено число 0. Скільки серед введених чисел прості? IsPrime
3 Ввести з клавіатури натуральні числа N та В. Отримати N випадкових чисел з інтервалу [1,99999]. Вивести на екран ті з них, у яких кількість цифр більше В. NumDig
4 Ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти всі паліндроми, для кожного паліндрома знайти кількість його дільників. IsPal, NumDiv

Варіант 5

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури натуральні числа A, В та N. Знайти N чисел більших А, у яких добуток цифр дорівнює В. ProdDig
2 Ввести з клавіатури N натуральних чисел. Чи всі вони прості? IsPrime
3 Вводити з клавіатури натуральні числа поки не буде введено число 0. Чи є серед них паліндроми, які є простими числами? IsPal, IsPrime
4 Ввести з клавіатури натуральне число N та отримати та вивести на екран N випадкових чисел з інтервалу [1,99]. Для кожного отриманого числа обчислити та вивести на екран кількість його дільників NumDiv

Варіант 6

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти кількість чисел які мають С дільників. NumDiv
2 Ввести з клавіатури натуральні числа A, В та N. Знайти N паліндромів більших А, у яких цифровий корінь дорівнює В. IsPal, DigRoot
3 Ввести з клавіатури N натуральних чисел та число В. Вивести на екран числа, у яких кількість цифр дорівнює В. NumDig
4 Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа вивести його цифровий корінь. DigRoot

Варіант 7

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [100,99999]. Для кожного отриманого числа знайти його першу цифру. FirstDig
2 Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти кількість чисел у яких добуток цифр дорівнює С. ProdDig
3 Ввести з клавіатури натуральні числа A, В та N. Знайти N паліндромів більших А, у яких перша цифра дорівнює В. IsPal, FirstDig
4 Ввести з клавіатури N натуральних чисел та число В. Чи є серед введених чисел такі, у яких кількість дільників дорівнює В? NumDiv

Варіант 8

№
задачі
Умова задачіЯкі функції
потрібні
1 Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа знайти його першу цифру. FirstDig
2 Ввести з клавіатури натуральне число N та отримати та вивести на екран N випадкових чисел з інтервалу [100,99999]. Скільки серед них прості? IsPrime
3 Ввести з клавіатури натуральні числа A і B. В інтервалі [A;B] знайти всі паліндроми. IsPal
4 Ввести з клавіатури натуральні числа A та N. Знайти N досконалих чисел, більших А, та кількість їх дільників. Пояснення: натуральне число називається досконалим (совершенным), якщо воно дорівнює сумі своїх дільників, включаючи 1 і виключаючи само число. Наприклад, число 6 досконале (6=1+2+3). SumDiv, NumDiv

Варіант 9

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури N натуральних чисел та число В. Скільки серед введених чисел мають В дільників? NumDiv
2 Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа знайти його факторіал. Fact
3 Ввести з клавіатури натуральне число N та отримати та вивести на екран N випадкових чисел з інтервалу [10,99999]. Для кожного числа знайти його максимальну цифру. MaxDig
4 Ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти паліндроми, які є простими числами. IsPal, IsPrime

Варіант 10

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури натуральні числа A, В та N. Знайти N чисел більших А, у яких мінімальна цифра дорівнює В. MinDig
2 Ввести з клавіатури N натуральних чисел. Скільки з введених чисел є числами Фібоначчи? IsFib
3 Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа знайти його подвійний факторіал. FactDouble
4 Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [1,99999]. Для кожного числа, що є паліндромом вивести кількість його дільників. IsPal, NumDiv

Варіант 11

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти всі числа які мають С дільників. NumDiv
2 Ввести з клавіатури натуральні числа A та N. Знайти N паліндромів більших А, які є простими числами. IsPal, IsPrime
3 Ввести з клавіатури N натуральних чисел. Для кожного введеного числа знайти суму введеного та перевернутого числа. Наприклад, для числа 167 вивести 928 (167+761). ReverseInt
4 Вводити з клавіатури натуральні числа поки не буде введено число 0. Кожне з введених чисел вважати номером числа Фібоначчі і для кожного з них вивести відповідне число Фібоначчі. FibByPos

Варіант 12

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [1,99999]. Для кожного числа з’ясувати, воно паліндром чи ні? IsPal
2 Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти всі числа у яких С дільників. NumDiv
3 Ввести з клавіатури натуральні числа A, В та N. Знайти N чисел більших А, у яких сума цифр дорівнює В. SumDig
4 Ввести з клавіатури N натуральних чисел. Для кожного введеного числа, що є числом Фібоначчі знайти цифровий корінь DigRoot, IsFib

Варіант 13

№
задачі
Умова задачіЯкі функції
потрібні
1 Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа знайти різницю введеного та перевернутого числа. Наприклад, для числа 167 вивести -594 (167-761). ReverseInt
2 Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [1,30]. Кожне з чисел вважати номером числа Фібоначчі і для кожного з них вивести відповідне число Фібоначчі, а також кількість його цифр. FibByPos, NumDig
3 Ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти всі числа паліндроми. IsPal
4 Ввести з клавіатури натуральні числа A,В та N. Знайти N чисел більших А, у яких кількість дільників кратна В. NumDiv

Варіант 14

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури дійсне число х. Обчислити та вивести на екран точне та приблизне значення функції ex, яке обчислюється за допомогою розкладання цієї функції в ряд

e=2.71828, x=2
Fact
2 Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного простого числа знайти суму його цифр. IsPrime, SumDig
3 Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [10,99999]. Знайти кількість отриманих паліндромів. IsPal
4 Ввести з клавіатури натуральні числа A та B. Кожне з чисел інтервалу [A;B] вважати номером числа Фібоначчі і для кожного з них вивести відповідне число Фібоначчі. FibByPos

Варіант 15

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури дійсне число х. Обчислити та вивести на екран точне та приблизне значення функції sin(x), яке обчислюється за допомогою розкладання цієї функції в ряд

pi=3.1415926, x=pi/6
Fact
2 Ввести з клавіатури натуральні числа A та N. Знайти N простих чисел більших А, що є паліндромами. IsPrime, IsPal
3 Ввести з клавіатури N натуральних чисел. Для кожного введеного числа, знайти кількість його цифр. NumDig
4 Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [10,99999]. Знайти серед них числа Фібоначчі. Для кожного такого числа обчислити кількість дільників. IsFib, NumDiv

Варіант 16

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури дійсне число х. Обчислити та вивести на екран точне та приблизне значення функції cos(x), яке обчислюється за допомогою розкладання цієї функції в ряд

pi=3.1415926, x=pi/6
Fact
2 Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [10,999]. Знайти серед них кількість простих чисел. IsPrime
3 Два натуральних числа називаються дружніми, якщо кожне з них дорівнює сумі всіх дільників іншого (виключаючи саме число). Ввести з клавіатури натуральні числа A та N. Знайти N пар дружніх чисел більших А. SumDiv
4 Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного числа яке є числом Армстронга, знайти кількість його дільників. NumDiv, IsArm

Варіант 17

№
задачі
Умова задачіЯкі функції
потрібні
1 Ввести з клавіатури натуральні числа A та N. Знайти N чисел більших А, які є числами Армстронга. IsArm
2 Ввести з клавіатури N натуральних чисел. Переверніть кожне введене число. ReverseInt
3 Два простих числа, різниця між якими дорівнює числу 2, називаються «близнюками». Ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти всі числа «близнюки» IsPrime
4 Вводити з клавіатури натуральні числа поки не буде введено число 0. Знайти серед введених чисел паліндроми які є простими числами. IsPal, IsPrime

Назад Зміст Вперед