

Нижегородский Государственный Технический Университет Имени Р.Е. Алексеева
Кафедра «Энергетические установки и тепловые двигатели» Дисциплина «Компьютерные технологии»
Лабораторная работа №2 Тема: Разветвляющийся алгоритм
Вариант №15
Выполнил: Туев А.В.
23-ЭУД-1
Проверила: Шубина Н.В.
Нижний Новгород
2023

1. Постановка задачи (1)
Разработать алгоритм (в виде блок-схемы), написать программы на языке C++, в Mathcad и Excel, привести результаты расчёта задачи.
При помощи разветвления на 3 направления с помощью вложенных операторов “if” (а) и последовательных операторов “if” (б) вычислить и распечатать значение функции U для любых заданных значений аргументов x и y, где:
|
|
если |
− ≤ −1 |
|
|||
= {ln( 4 + 1) |
если − 1 < − < 1 |
||
2 − |
если |
− ≥ 1 |
2. Блок-схема (1а)
Начало
Описание переменных x, y, U, a
«Введите x, y»
Ввод x, y
«Исходные данные:» x = y =
a = x - y
a ≤ -1
a < 1
= 2 −
= ln( 4 + 1)

= y
«Результаты:»
U =
Конец
3. Листинг программы на С++ (1a)
#include “stdafx.h” #include <math.h> #include <iostream> #include <conio.h> #include <iomanip> using namespace std;
void main()
{
double x, a, y, z; setlocale(LC_ALL, “Russian”); cout << “Введи x, y: \n”;
cin >> x >> y;
cout << “\n x = ” << x << setw(7) << ”y = ” << y << endl; a = x – y;
if (a <= -1) U = y * exp(x);
else if (a < 1) U = log(pow(x,4) + 1); else U = pow(x,2) – y;
cout << “\n Результаты: \n U = ” << U << endl; getchar();
}

4. Результаты программы на C++ (1a)
5. Программа в Mathcad (1a)

6. Блок-схема (1б)
Начало
Описание переменных x, y, U, a
«Введите x, y»
Ввод x, y
«Исходные данные:» x = y =
a = x - y
a ≤ -1
=
a < 1
= ln( 4 + 1)
a ≥ 1
= 2 −
«Результаты:»
U =
Конец

7. Листинг программы на С++ (1б)
#include “stdafx.h” #include <math.h> #include <iostream> #include <conio.h> #include <iomanip> using namespace std;
void main()
{
double x, a, y, z; setlocale(LC_ALL, “Russian”); cout << “Введи x, y: \n”;
cin >> x >> y;
cout << “\n x = ” << x << setw(7) << ”y = ” << y << endl; a = x – y;
if (a <= -1) U = y * exp(x);
if (a > -1 && a < 1) U = log(pow(x,4) + 1); if (a >= 1) U = pow(x,2) – y;
cout << “\n Результаты: \n U = ” << U << endl; getchar();
}

8. Результаты программы на C++ (1б)
9. Программа в Mathcad (1б)
10. Программа в Excel (1)

11. Постановка задачи (2)
Разработать алгоритм (в виде блок-схемы), написать программы на языке C++, в Mathcad и Excel, привести результаты расчёта задачи.
Составить программу для вычисления значения функции Z при различных x и y с помощью ручного отбора путём сравнения значений предлагаемых функций (а) или же при помощи использования функций min/max из библиотеки <algorithm> (б):
= {
{| ( )| ; 5 + 6} , если + ≤ 2
√
2 + 2, если + > 2
12. Блок-схема (2а)
Начало
Описание переменных x, y, Z, a, b, c
«Введите x, y»
Ввод x, y
«Исходные данные:» x = y =
c = x + y
c =
c ≤ 2
= | ( )|
5
= √ + 6
a = b = |
= 2 + 2 |
||
|
|
|
|

Z = a
b < Z
Z = b
Z =
Конец
13. Листинг программы на С++ (2а)
#include “stdafx.h” #include <math.h> #include <iostream> #include <conio.h> #include <iomanip> using namespace std;
void main()
{
double x, y, Z, a, b ,c; setlocale(LC_ALL, “Russian”); cout << “Введи x, y: \n”;
cin >> x >> y;
cout << “\n Исходные данные: \n x = ” << x << setw(7) << ”y = ” << y << endl; c = x + y;
cout << “\n c = ” << c << endl; if (c <= 2)
{
a = pow(fabs(cos(x)), y); b = pow(x + 6, 1.0 / 5.0);
cout << setw(4) << "a = " << setw(10) << a << endl; cout << setw(4) << "b = " << setw(10) << b << endl; Z = a;
if (b < Z) Z = b;
}
else Z = pow(x, 2) + x * pow(y, 2);
cout << "\n Результат: \n Z = " << Z << endl; getchar();
}

14. Результаты программы на С++ (2а)
15. Программа в Mathcad (2а)