Professional Documents
Culture Documents
Лабораторна робота № 5
з дисципліни « Основи програмування »
назва дисципліни
на тему: «ЦИКЛІЧНІ АЛГОРИТМИ. РЕКУРЕНТНІ СПІВВІДНОШЕННЯ»
Харків – 2022
2
ПОСТАНОВКА ЗАДАЧІ
Оператори циклу
Цикл з параметром
while (<Умова>)
<Оператор>;
4
Оператор тіла циклу виконується доти, поки логічний вираз набуде
значення False. Блок-схему оператора показано на рисунку 2.
do
<Оператор>;
while (<Умова>);
Умова являє собою вираз логічного типу. Тіло циклу повторюється при
значенні логічного виразу, який дорівнює True. Оскільки умова перевіряється
тільки в кінці циклу, то оператори тіла циклу виконуються мінімум один раз.
Блок-схему оператора зображено на рисунку 3.
Варіант 6
Завдання
Вхідні дані:
x – змінна дробового типу (float), складова елементу обчислюваного ряду;
n – змінна цілочисельного типу (int), кількість членів розкладання;
e– змінна дробового типу (float), задана точність обчислень;
a – змінна цілочисельного типу (int), відповідає за повтор обчислень.
Вихідні дані:
текстове повідомлення 1 – “Input x: ”, cповіщає про те що треба ввести х;
текстове повідомлення 2 – “Error. Out of range.”, якщо введене значення для
x перевищує 1 або менше за 0;
текстове повідомлення 3 – “Input n: ”, cповіщає про те що треба ввести n;
текстове повідомлення 4 – “Error. Out of range or negative num.”, якщо
введене значення для n перевищує максимальне значення int або менше за 0;
текстове повідомлення 5 – “Input e: ”, cповіщає про те що треба ввести e;
текстове повідомлення 6 – “Error. Out of range.”, якщо введене значення для
e перевищує max float або менше за min float;
текстове повідомлення 7 – “S: ” + sum, обчислене значення першої суми;
текстове повідомлення 8 – “S with e: ” + sum, обчислене значення першої
суми з точністю ε доти;
текстове повідомлення 8 – “C: ” + c, обчислене значення другої суми;
текстове повідомлення 10 – “ If you want to stop press - 0: ”, запитує чи хоче
користувач повторити обчислення.
9
Лістинг програми
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
int main()
{
SetConsoleOutputCP(1251);
int n, a = true;
float x, e, b, sum, up, dw, c;
while (a)
{
cout << "Input x: ";
cin >> x;
while (x <= 0 || x >= 1)
{
cout << "Error. Out of range";
cout << "Input x: ";
cin >> x;
}
cout << "Input n: ";
cin >> n;
while (n <= 0 || n >= MAXINT32)
{
cout << "Error. Out of range or negative
num.";
cout << "Input n: ";
cin >> n;
}
cout << "Input e: ";
cin >> e;
while (e < 0 || e > 1)
{
cout << "Error. Out of range";
cout << "Input e: ";
cin >> e;
}
up = x;
dw = 2;
sum = 0;
for (int k = 1; k <= n;)
{
b = up * (4 * k - 2 * k * x + x) / dw;
up *= x * x;
k++;
10
dw = (2 * k - 1) * 2 * k;
sum += b;
}
cout << "S: " << sum << endl;
for (int k = 1; fabs(b) >= e;)
{
b = up * (4 * k - 2 * k * x + x) / dw;
up *= x * x;
k++;
dw = (2 * k - 1) * 2 * k;
sum += b;
}
cout << "S with e: " << sum << endl;
c = log(sqrt(pow(1 + x, 3) / (1 - x)));
cout << "C: " << c << endl;
cout << "If you want to stop press - 0: ";
cin >> a;
if (a == 0) return 0;
}
}
11
Тестування програми
String – –
float int float int
“Error. Out of Рис.
1 200 – – – нормальний
range.” №7
“Error.
Рис.
2 0.5 2147483648 – – Out of range or аномальний
№8
negative num.”
3.402823466E+3 “Error. Out of Рис.
3 0.56 472 – аномальний
9 range.” №9
Рис.
4 0.22 73 1e-10 – 0.422507 №1 нормальний
0
Рис.
5 0.47 475 0.3 0 0.895333 №1 нормальний
1
2385 1e-10 1 1.05664
Рис.
6 0.55 №1 нормальний
1 1 0 1.05664 2
12
Результати роботи програми
Аналізи результатів