You are on page 1of 5

ЛАБОРАТОРНА РОБОТА № 9

Складання та налагодження програм розгалужених процесів


з використанням вкладених if.

Мета: придбати практичні навички зі складання та налагодження програм


розгалужених алгоритмів.

Хід роботи
1 Постанова задачі
Для заданого користувачем значення X скласти та налагодити програму
обчислення значення f(x) за формулами:

2 Вхідні данні – загальні a, c.


1 гілка – x
2 гілка – x
3 гілка – x
3 Обмеження на вхідні данні:
1 гілка – немає
2 гілка – x != 0
3 гілка – c != 0
4 Вихідні дані – F.
5 Контрольні приклади рішення задачі.
1 гілка – a = 1, c = 8, x = 2, F = -4
2 гілка – a = 0, c = 10, x = 2, F = -0.4
a = 2, c = 9, x = 6, F = 0.6

Вик. Пахомов О.В. Арк.


Пер. Сайко Т.С. ЛР.ПЗ.22-2.16.ЗВ 0
Змн. Арк. № докум. Підпис Дата
7 Блок-схема алгоритму рішення задачі.
Блок-схема алгоритму рішення задачі представлена на рисунку 9.1.

Рисунок 9.1 – Блок-схема алгоритму рішення задачі

8 Текст програми мовою С/С++.


Лістинг 9.1 – Текст програми мовою С/С++

#include <iostream>
#include <Windows.h>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
SetConsoleCP(1251); // встановлення Windows-1251 в потік введення
SetConsoleOutputCP(1251); // встановлення Windows-1251 в потік виведення

float a, c, x, F; // опис змінних


// введення загальних даних
cout << "Введіть a - ";

Вик. Пахомов О.В. Арк.


Пер. Сайко Т.С. ЛР.ПЗ.22-2.16.ЗВ 1
Змн. Арк. № докум. Підпис Дата
cin >> a;
cout << "Введіть c - ";
cin >> c;

// визначення гілки
if (c < 9 && a != 0)
{
cout << "Введіть x - ";
cin >> x;
F = -a * pow(x, 2);
cout << "При вхідних даних a = " << a << ", c = " << c << " та х = " << x;
cout << " pезультат F = " << F << endl;
}
else if (c > 9 && a == 0) {
cout << "Введіть x - ";
cin >> x;
cout << "При вхідних даних a = " << a << ", c = " << c << " та х = " << x;
if (x != 0.)
{
F = (a - x) / c * x;;
cout << "\nРезультат F = " << F << endl;
}
else
{
cout << "\nВиникла помилка: x = 0" << endl;
}
}
else {
cout << "Введіть x - ";
cin >> x;
cout << "\n\tВхідні дані" << endl << endl;
cout << "-----------------------------" << endl;
cout << "| a | c | x |" << endl;
cout << "-----------------------------" << endl;
cout << "| " << setw(7) << fixed << setprecision(2) << a << " | "
<< setw(7) << fixed << setprecision(3) << c << " | "
<< setw(5) << fixed << setprecision(1) << x << " |" << endl;
cout << "-----------------------------" << endl;

if (c != 0)
{
F = x / c;
cout << "| Результат F = "
<< setw(9) << fixed << setprecision(4) << F << " |" << endl;
cout << "-----------------------------" << endl;
}
else
{
cout << "| Виникла помилка: c = 0 |" << endl;
cout << "-----------------------------" << endl;
}

}
system("pause");
}

9 Копія вікна виконання програми.


Результати рішення задачі наведено на рисунках 9.2-9.6.

Вик. Пахомов О.В. Арк.


Пер. Сайко Т.С. ЛР.ПЗ.22-2.16.ЗВ 2
Змн. Арк. № докум. Підпис Дата
Рисунок 9.2 – Скриншот виконання задачі за першою гілкою

Рисунок 9.3 – Скриншот виконання задачі за другою гілкою без обмеження

Рисунок 9.4 – Скриншот виконання задачі за другою гілкою з обмеженням

Рисунок 9.5 – Скриншот виконання задачі за третьою гілкою без обмеження

Вик. Пахомов О.В. Арк.


Пер. Сайко Т.С. ЛР.ПЗ.22-2.16.ЗВ 3
Змн. Арк. № докум. Підпис Дата
Рисунок 9.6 – Скриншот виконання задачі за третьою гілкою з обмеженням

Висновок: в результаті цієї лабораторної роботи я навчився аналізувати


постанову задачі, будувати алгоритм вирішення завдань із розгалужених алгори-
тмів, створювати програму мовою C/C++ для отримання результатів обчислень,
користуватися IDE Visual Studio.

Вик. Пахомов О.В. Арк.


Пер. Сайко Т.С. ЛР.ПЗ.22-2.16.ЗВ 4
Змн. Арк. № докум. Підпис Дата

You might also like