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

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2023
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування

Частина тексту файла (без зображень, графіків і формул):

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем ЗВІТ з лабораторної роботи № 2 з дисципліни «Програмування алгоритмічних структур» Тема «Програмування розгалужених алгоритмів» Варіант-15 Завдання на лабораторну роботу: 1. Розробити блок-схеми алгоритмів і написати програми мовою Java із застосуванням умовного оператора if та оператора вибору switch для розв’язання завдань, поданих в табл. 1 – 4 відповідно до індивідуального варіанта. Варіант обрати за списком групи. 2. Розробити програмні проекти в середовищі Intellij IDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками (наприклад, Excel, калькулятор, тощо). 3. Зробити Звіт з лабораторної роботи та вчасно надіслати викладачу на перевірку. Завдання 1-4: 1) / 2) / 3) / 4) / Короткий опис рішення завдання: Завдання №1. Дане завдання було виконане у класі Lr21. Усі змінні x, a, b i z були введені у методі main. Далі був створений метод task1 у якому і були проведені всі математичні розрахунки. У ньому знаходиться весь розгалужений алгоритм, для реалізації якого були використані умовний оператор if та інші математичні методи, які додаються за допомогою бібліотеки Math(pow, cos, sin, sqrt, abs). В результаті метод task1 повертає нам значення у, яке виводиться разом із всіма початковими значеннями у методі main. Завдання №2. Дане завдання було виконане у класі Lr21. Усі значення змінних, що використовуються у завданні №2 вводяться у методі main. Для самого завдання №2 був створений метод task2. У цьому методі і виконується весь розгалужений алгоритм, для реалізації якого були використані умовний оператор if та інші математичні методи, які додаються за допомогою бібліотеки Math(pow, cos, sin, tan, log). В результаті виконання методу нам повертається значення у, яке пізніше виводиться у методі main. У ньому виводяться всі варіанти у, залежно від поданих значеннь змінних за умовою. Завдання №3. Дане завдання було виконане у класі Lr22. Для цього завдання було організоване введення значень з клавіатури, за допомогою Scanner. Присвоєння значень було проведене у методі main. Далі був створений метод task3. У ньому всі введені значення створювали масив, який через цикл for перебирався і за допомогою умовного оператора if визначалось яке число – додатнє чи від’ємне. Якщо елемент масиву виявлявся додатнім – він підносився до кубу, якщо від’ємним – замінявся на нуль. І в кінці було проведене виведення масив за допомогою циклу for. Кінцеві значення завдання також були виведені у метод main. Завдання №4. Дане завдання було виконане у класі Lr22. Значення змінних Х та У були присвоєні у методі main. Для виконання цього завдання був створений метод task4. У нього вводили два числа Х та У. За допомогою умовного оператора if виконувалась перевірка на належність точки до 4-ї координатної чверті (X>0 i Y<0). Якщо виявляється що точка належить 4-й координатній чветі метод повертає значення true, якщо ні – false. Блок-схма до Завдання №4: / Копія коду класу Lr21: package com.company; import static java.lang.Math.*; public class Lr21 { public static void main(String[] args) { double x1=-2.3 ,x2=0.6, x3=4.8, a = 0.9, b = 1.25, z11 = pow(x1,2), z22 = pow(x2,2), z33 = pow(x3,2); System.out.println("---Task 1---"); System.out.printf("x1 = %.4f, x2 = %.4f, x3 = %.4f \n", x1, x2, x3); System.out.printf("y1 = %.4f, y2 = %.4f, y3 = %.4f \n", Lr21.task1(x1,a,b,z11), Lr21.task1(x2,a,b,z22), Lr21.task1(x3,a,b,z33)); double a1=4.5 ,b1=8.4 ,z1 = pow(tan(b1 * x1),2) ; double a2=8.2 ,b2=15.2 ,z2 = pow(tan(b2 * x2),2); double a3=1.7 ,b3=0.5 ,z3 = tan(b3 * pow(x3,2)); System.out.println("---Task 2---"); System.out.printf("x1 = %.4f, a1 = %.4f, b1 = %.4f, z1 = %.4f \n", x1, a1, b1, z1); System.out.printf("y1 = %.4f \n", Lr21.task2(x1,a1,b1,z1)); System.out.printf("x2 = %.4f, a2 = %.4f, b2 = %.4f, z2 = %.4f \n", x2, a2, b2, z2); System.out.printf("y2 = %.4f \n", Lr21.task2(x2,a2,b2,z2)); System.out.printf("x3 = %.4f, a3 = %.4f, b3 = %.4f, z3 = %.4f \n", x3, a3, b3, z3); System.out.printf("y3 = %.4f \n", Lr21.task2(x3,a3,b3,z3)); } static double task1(double x,double a, double b, double z) { double y; if (x < pow(a,3)) { y = a * pow(sin(x),2) + b * cos(z * x); } else if ( x >= pow(a,3) && x <= b) { y = pow((a + b * x),2) - sin(z * x); } else { y = sqrt(abs(x - sin(b * x + z))); } return y; } static double task2(double x, double a, double b, double z) { double y; if (x <= a) { y = a * pow(cos(x),2) + b * sin(z * x); } else if (x > a && x <= 1.5*b) { y = tan(a * x + z) + pow(sin(b * x),2); } else { y = log(a * x - b) + pow(z,2); } return y; } } Копія коду класу Lr22: package com.company; import static java.lang.Math.*; import java.util.Scanner; public class Lr22 { public static void main(String[] args) { System.out.println("---Task 3---"); Scanner scan = new Scanner(System.in); System.out.println("Введіть три числа:"); double num1 = scan.nextDouble(); double num2 = scan.nextDouble(); double num3 = scan.nextDouble(); System.out.printf("num1 = %.4f num2 = %.4f num3 = %.4f \n", num1, num2, num3); Lr22.task3(num1, num2, num3); System.out.println(); System.out.println("---Task 4---"); double cordX1 = -2.8, cordY1 = 0.7, cordX2 = 0, cordY2 = -9.5, cordX3 = 2, cordY3 = -51; System.out.printf("x = %.4f, y = %.4f \n", cordY1, cordY1); System.out.println(Lr22.task4(cordX1,cordY1)); System.out.printf("x = %.4f, y = %.4f \n", cordX2, cordY2); System.out.println(Lr22.task4(cordX2,cordY2)); System.out.printf("x = %.4f, y = %.4f \n", cordX3, cordY3); System.out.println(Lr22.task4(cordX3,cordY3)); } static void task3( double a, double b, double c) { double[] arr = {a, b, c}; for (int i=0; i<arr.length; i++) { if (arr[i] > 0 ) arr[i] = pow(arr[i], 3); else arr[i] = 0; } for (int i = 0; i<arr.length; i++) { System.out.printf("%.4f ", arr[i]); } } static boolean task4(double x, double y) { if ( x > 0 && y < 0) return true; else return false; } } Результати обчислень: / / Перевірка обчислень: Для перевірки правильності виконаних мною методів був використаний додаток PhotoMath. Перевірка Завдання №1(y1): / Перевірка Завдання №2(y2): / Видно, що у значеннях присутні малі похибки, але це вийшло через те, що у калькуляторі, значення деяких змінних були взяті приблізні. Тому вважається що завдання виконане правильно. Висновок: Виконуючи дану лабораторну роботу ми удосконалили своє володіння умовними операторами, класами, математичними методами і власними, створеними методами. А також вирішили декілька задач. Усі рішення завдань були описані у пункті Короткий опис рішення завдання.
Антиботан аватар за замовчуванням

03.05.2023 18:54

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!