Приклади програм
Приклад 1.Дано дійсні числаvіw. Обчислити значення виразу
,
де
,
– відповідно гіперболічний синус і
гіперболічний косинус числаz,
які визначаються такими формулами:
,
.
Визначити функції обчислення гіперболічного синуса і гіперболічного косинуса.
#define _USE_MATH_DEFINES #include <iostream> #include <conio.h> using namespacestd;doubleSh(doublez); // Опис функції (прототип) Sh()doubleCh(doublez); // Опис функції (прототип) Ch()// Визначення головної функціїintmain() {doublev, 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();return0; }doubleSh(doublez) // Визначення функції Sh(){return(exp(z) - exp(-z)) / 2; }doubleCh(doublez) // Визначення функції Ch(){return(exp(z) + exp(-z)) / 2; }
Приклад 2.Даноnоб’єктів,
.
Скільки можна сформувати з них різних
сполучень поm(
)
об’єктів. Число сполучень зnпоmвизначається за
формулою
.
#include <iostream> using namespacestd;intfactorial(int);// Прототип (опис функції) factorial() // Визначення головної функції intmain() { intm, n; intcombination; cout << "n = "; cin >> n; cout << "m = "; cin >> m; combination = factorial(n) / factorial(m) / factorial(n - m); cout << combination << '\n'; system("pause"); return0; }intfactorial(intk)// Визначення функції factorial(){ intResult = 1; for(inti = 1; i <= k; i++) Result *= i; returnResult; }
Приклад 3.Дано цілочисловий масив, що містить не більше 20 елементів. Чи правда, що вміст масиву однаково читається зліва напрво і справа наліво? Для розв’язання задачі використати власну функцію перевірки одно вимірного масиву на його симетричність.
#include <iostream> using namespacestd;booltest(inta[],intn);// Прототип функції test() // Визначення головної функції intmain() {intn;inta[20]; cout << "n = "; cin >> n;for(inti = 0; i < n; i++) { cout << "a[" << i << "] = "; cin >> a[i]; }if(test(a, n)) cout << "Yes\n";elsecout << "No\n"; system("pause");return0; }booltest(inta[],intn)// Визначення функції test(){for(int i = 0; i < n; i++)if(a[i] != a[n - 1 - i])return false;return true; }
Приклад 4.Обчислити слід (суму елементів, розташованих на головній діагоналі) квадратної матриці розміру не більш ніж 2020. Визначити функцію обчислення сліду квадратної матриці.
#include <iostream> using namespacestd;doubletrace(doublea[20][20],intn);// Прототип функції // Визначення головної функції intmain() {intn;doublea[20][20]; cout << "n = "; cin >> n;for(inti = 0; i < n; i++)for(intj = 0; j < n; j++) { cout << "a[" << i << "][" << j << "] = "; cin >> a[i][j]; } cout << "\nMatrix\n";for(inti = 0; i < n; i++) {for(intj = 0; j < n; j++) cout << a[i][j] << '\t'; cout << '\n'; } cout << "\nTrace == " << trace(a, n) << '\n'; system("pause");return0; } doubletrace(doublea[20][20],intn)// Визначення функції{doubletr = 0;for(int i =0; i < n; i++) tr += a[i][i];returntr; }
Приклад 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; }
