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

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

,

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

, .

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

Розв’язок.

#define _USE_MATH_DEFINES
#include
#include
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
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
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
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
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 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;
}


7965973383361693.html
7966017115303485.html
    PR.RU™