Скачиваний:
3
Добавлен:
17.11.2024
Размер:
628.21 Кб
Скачать

Нижегородский Государственный Технический Университет Имени Р.Е. Алексеева

Кафедра «Энергетические установки и тепловые двигатели» Дисциплина «Компьютерные технологии»

Лабораторная работа №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а)

Соседние файлы в папке 2 ЛР