Передача параметрів до функцій за значенням та за посиланням
Список параметрів, що передається до функцій, як було показано раніше, складається з імен параметрів та вказівок їх типів. Наприклад, у заголовку
double FSum(double x1, double x2, int A)
вказано три параметри x1, x2, A та визначено їх типи. Виклик такої функції може мати вигляд:
double F = FSum (Y, x2, 5);
Це лише один із способів передачі параметрів у функцію, що називаєтьсяпередачею за значенням. Працює він так. У момент виклику функції пам'яті створюються тимчасові змінні з іменами x1, x2, A, у яких копіюються значення аргументів Y, x2 і константи 5. цьому зв'язок між аргументами і змінними x1, x2, A розривається. Можна змінювати всередині функції значення x1, x2, A, але це ніяк не вплине на значення аргументів.
Можливий інший спосіб передачі параметрів –дзвінок за посиланням. У цьому випадку оператор виклику дає функції, що викликається, можливість прямого доступу до передаваних даних, а також можливість зміни цих даних. Щоб показати, що параметр функції передано за посиланням, після типу параметра у прототипі функції ставиться символ амперсанта (&); таке ж позначення використовується у списку типів параметрів у заголовку функції. Наприклад:
void square(int&);//прототип функції обчислення квадрата
void square(int& a) // заголовок функції
Викликатися подібна функція може звичайним способом передачі в неї імені аргументу. Наприклад:
В результаті подібного дзвінка змінна x1 отримає значення 4.
Якщо параметром функції є масив, знак посилання вказувати не потрібно, передача параметра за посиланням відбувається автоматично. Також не слід для формального параметра масиву вказувати в квадратних дужках його розмір (ставляться порожні дужки). Розмір можна передатиокремим параметром.
Передача як параметри функцій матриць здійснюється через покажчики і буде розглядатися в наступному семестрі.
Настройки за замовчуванням
Зазвичай під час виклику функції до неї передається конкретне значення кожного параметра. Але при розробці програми можна вказати, що параметр є стандартним параметром, і приписати цьому параметру значення за замовчуванням. Робиться це завданням у заголовку функції після імені параметра символу =, після якого записується значення за замовчуванням. Наприклад, опишемо функцію обчислення площі трикутника по трьох сторонах (формула Герона):
double Area(double a=1.0, double b=1.0, double c=1.0)
Тут усім трьом параметрам-сторонам дано значення за промовчанням, рівні 1.
Якщо параметр дзвінка за замовчуванням не вказано, автоматично передається його значення за промовчанням. Наприклад, якщо викликати наведену функцію оператором
то значення S дорівнюватиме площі при значеннях всіх сторін за умовчанням.
Аргументи за промовчанням мають бути найправішими (останніми) аргументами у списку параметрів функції. Наприклад, виклик тієї ж функції оператором
дозволяє розрахувати площу трикутника, якщо довжина однієї сторони дорівнює 1,5, а решта довжини беруться за умовчанням.
Приклади програм
1. Програма знаходження та друку значень функції у заданому діапазоні: Dx = 0.2.
Функція Func1 Функція Func2

Головна функція програми

double Func1(double x)
double Func2(double x)
const double dx=0.2;
void Generate(int N, int mas[])
for (int i = 0; i m × sin m (xm)
для значень аргументів:xвід–1.1до0.3зкроком0.2;mвід1до5з кроком1.
2. Описати функції введення з клавіатури елементів одномірного масиву та визначення кількості нулів у цьому масиві.
Варіант 10
1. Знайти всі тризначні числа, які можна уявити різницею між квадратом числа, утвореного першими двома цифрами, і квадратом третьої цифри.
2. Описати функції формування елементів одномірного масиву за допомогою генератора випадкових чисел та визначення суми його елементів, що лежать між його максимальним та мінімальним елементами.
Варіант 11
1. Трикутник заданий координатами своїх вершин. Знайти його периметр та площу. (Описати функцію обчислення довжини сторони).
2. Описати функції введення з клавіатури елементів одномірного масиву та визначення твору його елементів, що лежать між першим і останнім нулями.
Варіант 12
1. Описати функціюттах(х,у),яка надає першому параметру більше, а другому – менше зі значеньхіу.Використовуючи цю функцію, перерозподілити введені значення зміннихА, В, Стак, щоб сталоА2 + bх + с = 0 іdx 2 + ex + f = 0мають речові корені і при цьому все коріння першого рівняння лежить між корінням другого рівняння. В іншому випадку зміннійsприсвоїти значення0. (Для знаходження коренів квадратного рівняння використовувати функцію).
2. Описати функції формування елементів одномірного масиву за допомогою генератора випадкових чисел та заміни непарних елементів на задане число.
Варіант 15
1. Знайти натуральне число з інтервалу[n1,n2]з максимальною сумою дільників. (Для знаходження суми дільників числа використовувати функцію).
2. Описатифункції введення з клавіатури елементів одномірного масиву та знаходження суми та різниці всіх елементів з парними та непарними номерами відповідно.
Варіант 16
1. Знайти всі двоцифрові числа, сума цифр яких не змінюється при множенні числа на 2.
2. Описати функції формування елементів одновимірного масиву за допомогою генератора випадкових чисел та сортування масиву методом бульбашки.
Варіант 17
1. Надрукувати всі трицифрові натуральні числа, у десятковому записі яких немає двох однакових цифр і вони впорядковані за зростанням зліва направо.
2. Описати функції введення з клавіатури елементів одновимірного масиву та зсуву його елементів за правилом 1®2®…n®1.
Варіант 18
1. Дано натуральне числоN>19, роздрукувати четвірки простих чисел, що не перевищуютьN, що належать одному десятку. Наприклад, для числа112треба надрукувати четвірки
101103107109
2. Описати функції формування елементів одномірного масиву за допомогою генератора випадкових чисел та знаходження суми двох масивів.
Варіант 19
1. Два натуральні числа називаються дружніми, якщо кожне з них дорівнює сумі простих дільників іншого. Знайти всі пари дружніх чисел у діапазоні[n1,n2].
2. Описати функції введення з клавіатури елементів одномірного масиву та визначення того, чи утворюють елементи масиву незнищувальну послідовність (функція повинна повертати «0», якщо все в порядку, або індекс першого елемента масиву, на якому умова порушується.)
Варіант 20
1. Дано натуральне числоn>13. Видати всі пари простих чисел, різниця між якими дорівнює4, а самі числа меншіn.
2. Описати функціїформування елементів одномірного масиву за допомогою генератора випадкових чисел та визначення середньоарифметичного значення елементів та максимального відхилення від нього.
Варіант 21
1. Визначити, скільки чисел міжmтаn (m xi+1).