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

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

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

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

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

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем ЗВІТ з лабораторної роботи № 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:05-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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