Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
08 Обычные функции.doc
Скачиваний:
7
Добавлен:
01.03.2025
Размер:
201.73 Кб
Скачать

2.Приклади програм

Приклад 1. Дано дійсні числа v і w. Обчислити значення виразу

,

де , – відповідно гіперболічний синус і гіперболічний косинус числа z, які визначаються такими формулами:

, .

Визначити функції обчислення гіперболічного синуса і гіперболіч­но­го косинуса.

Розв’язок.

#define _USE_MATH_DEFINES #include <iostream> #include <conio.h> using namespace std; double Sh(double z); // Опис (прототип) функції Sh() double Ch(double z); // Опис (прототип) функції Ch() // Визначення головної функції int main() { double v, w; cout << "v = "; cin >> v; cout << "w = "; cin >> w; cout << "Value of expression is equal " << Sh(v + cos(w + 1.5)) + Ch(v + sin(w + 1.5)) - exp(Sh(2) + Ch(M_PI)) << endl; cout << "Press any key"; _getch(); return 0; } double Sh(double z) // Визначення функції Sh() { return (exp(z) - exp(-z)) / 2; } double Ch(double z) // Визначення функції Ch() { return (exp(z) + exp(-z)) / 2; }

Приклад 2. Дано n об’єктів, . Скільки можна сформувати з них різних сполучень по m ( ) об’єктів. Число сполучень з n по m визначається за формулою

.

Розв’язок.

#include <iostream> using namespace std; int factorial(int); // Прототип (опис) функції factorial() // Визначення головної функції int main() { int m, n; int combination; cout << "n = "; cin >> n; cout << "m = "; cin >> m; combination = factorial(n) / factorial(m) / factorial(n - m); cout << combination << '\n'; system("pause"); return 0; } int factorial(int k) // Визначення функції factorial() { int Result = 1; for (int i = 1; i <= k; i++) Result *= i; return Result; }

Приклад 3. Дано цілочисловий масив, що містить не більше 20 елемен­тів. Чи правда, що вміст масиву однаково читається зліва направо і справа налі­во? Для розв’язання задачі використати власну функцію перевірки одно вимір­ного масиву на його симетричність.

Розв’язок.

#include <iostream> using namespace std; bool test(int a[], int n); // Прототип функції test() // Визначення головної функції int main() { int n; int a[20]; cout << "n = "; cin >> n; for (int i = 0; i < n; i++) { cout << "a[" << i << "] = "; cin >> a[i]; } if (test(a, n)) cout << "Yes\n"; else cout << "No\n"; system("pause"); return 0; } bool test(int a[], int n) // Визначення функції test() { for (int i = 0; i < n; i++) if (a[i] != a[n - 1 - i]) return false; return true; }

Приклад 4. Обчислити слід (суму елементів, розташованих на головній діагоналі) квадратної матриці розміру не більш ніж 2020. Визначити функцію обчислення сліду квадратної матриці.

Розв’язок.

#include <iostream> using namespace std; double trace(double a[20][20], int n); // Прототип функції // Визначення головної функції int main() { int n; double a[20][20]; cout << "n = "; cin >> n; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) { cout << "a[" << i << "][" << j << "] = "; cin >> a[i][j]; } cout << "\nMatrix\n"; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) cout << a[i][j] << '\t'; cout << '\n'; } cout << "\nTrace == " << trace(a, n) << '\n'; system("pause"); return 0; } double trace(double a[20][20], int n) // Визначення функції { double tr = 0; for (int i =0; i < n; i++) tr += a[i][i]; return tr; }

Приклад 5. Дано два одновимірних масиви a і b, кожен з яких містить не більш 20 дійсних. Чи правда, що мінімальний елемент масиву a більший за міні­мальний елемент масиву b? Розробити і використати функцію визначення мінімального елемента масиву, яка базується на використанні функції визна­чення мінімального з двох дійсних чисел.

Розв’язок.

#include <iostream> using namespace std; // Прототипи функцій int CompareValues(double a, double b); int NumberMinArray(double *a, int n); double MinAB(double a, double b); // Визначення головної функції int main() { int m, n; double a[20], b[20]; cout << "Array a\n"; cout << "m = "; cin >> m; for (int i = 0; i < m; i++) { cout << "a[" << i << "] = "; cin >> a[i]; } cout << "Array b\n"; cout << "n = "; cin >> n; for (int i = 0; i < n; i++) { cout << "b[" << i << "] = "; cin >> b[i]; } if (CompareValues(a[NumberMinArray(a, m)], b[NumberMinArray(b, n)]) == 1) cout << "Yes\n"; else cout << "No\n"; system("pause"); return 0; } // Визначення функцій int CompareValues(double a, double b) { if (a > b) return 1; else if (a <b) return 2; return 0; } int NumberMinArray(double *a, int n) { int num = 0; for (int i = 1; i < n; i++) if (MinAB(a[i], a[num])) num = i; return num; } double MinAB(double a, double b) { if (a < b) return a; return b; }