Добавил:
vk.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
17.11.2024
Размер:
855.22 Кб
Скачать

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

Выполнил: Туев А.В. 23-ЭУД-1 Проверила: Шубина Н.В.

Нижний Новгород 2023

  1. Постановка задачи (1) Разработать алгоритм (в виде блок-схемы), написать программы на языке C++, в Mathcad и Excel, привести результаты расчёта задачи. При помощи разветвления на 3 направления с помощью вложенных операторов “if” (а) и последовательных операторов “if” (б) вычислить и распечатать значение функции U для любых заданных значений аргументов x и y, где:

    Описание переменных x, y, U, a

    «Введите x, y»

    Начало

  2. Блок-схема (1а)

a < 1

a ≤ -1

a = x - y

«Исходные данные:» x = y =

Ввод x, y

«Результаты:» U =

Конец

  1. Листинг программы на С++ (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(); }

  2. Р езультаты программы на C++ (1a)

  3. П рограмма в Mathcad (1a)

Конец

«Результаты:» U =

a ≥ 1

a < 1

a ≤ -1

a = x - y

«Исходные данные:» x = y =

Ввод x, y

«Введите x, y»

Описание переменных x, y, U, a

Начало

  1. Блок-схема (1б)

  2. Листинг программы на С++ (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(); }

  3. Р езультаты программы на C++ (1б)

  4. Программа в Mathcad (1б)

  5. П рограмма в Excel (1)

  6. Постановка задачи (2) Разработать алгоритм (в виде блок-схемы), написать программы на языке C++, в Mathcad и Excel, привести результаты расчёта задачи. Составить программу для вычисления значения функции Z при различных x и y с помощью ручного отбора путём сравнения значений предлагаемых функций (а) или же при помощи использования функций min/max из библиотеки <algorithm> (б):

    a = b =

    «Введите x, y»

    c ≤ 2

    c =

    Начало

    Описание переменных x, y, Z, a, b, c

    Ввод x, y

    «Исходные данные:» x = y =

    c = x + y

    Z = a

    b < Z

    Z = b

    Z =

    Конец

  7. Блок-схема (2а)

  8. Листинг программы на С++ (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(); }

  9. Р езультаты программы на С++ (2а)

  10. Программа в Mathcad (2а)

    Начало

    c ≤ 2

    Z =

    Начало

    Описание переменных x, y, Z, a, b, c

    c =

    Ввод x, y

    «Исходные данные:» x = y =

    c = x + y

    «Введите x, y»

    a = b =

  11. Блок-схема (2б)

  12. Листинг программы на С++ (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 = min(a,b); } else Z = pow(x, 2) + x * pow(y, 2); cout << "\n Результат: \n Z = " << Z << endl; getchar(); }

  13. Р езультаты программы на С++ (2б)

  14. Программа в Mathcad (2б)

  15. Программа в Excel (2)

  16. Постановка задачи (3) Для пары чисел x и y выяснить, попадает ли точка с координатами (x,y) в область 1 (красный цвет) или в область 2( синий цвет) и вывести на экран соответствующее сообщение.

    «Координаты выстрела:» x = y =

    Начало

    Описание переменных x, y, Z, a, b, c

    Ввод x, y

    «Введите x, y»

    a или b

  17. Блок-схема (3)

    Начало

    «Промах!»

    «Попадание!»

  18. Листинг программы на С++ (3) #include “stdafx.h” #include <math.h> #include <iostream> #include <algorithm> #include <iomanip> using namespace std; void main() { double x, y; bool a, b; setlocale(LC_ALL, “Russian”); cout << “Введи x, y: \n”; cin >> x >> y; cout << “\n Координаты точки выстрела: \n x = ” << x << ”\t \t y = ” << y << endl; a = 4 < pow(x, 2) + pow(y, 2) && pow(x, 2) + pow(y, 2) < 9; b = 0 < y && y < 2 - fabs(x); if (a || b) cout << "\n \t Попадание!" << endl; else cout << "\n \t Промах!" << endl; getchar(); }

  19. Результаты программы на С++ (3) Попадание в Область 1: Попадание в Область 2: Промах:

  20. Программа в Mathcad (3)

  21. П рограмма в Excel (3)

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