Приклади програм
Приклад 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; }
|