DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем ЗВІТ з лабораторної роботи № 2 з дисципліни «Програмування алгоритмічних структур» Тема «Програмування розгалужених алгоритмів» Варіант №7 Завдання на лабораторну роботу 1. Розробити блок-схеми алгоритмів і написати програми мовою Java із застосуванням умовного оператора if та оператора вибору switch для розв’язання завдань, поданих в табл. 1 – 4 відповідно до індивідуального варіанта. Варіант обрати за списком групи. 2. Розробити програмні проекти в середовищі Intellij IDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками (наприклад, Excel, калькулятор, тощо). 3. Зробити Звіт з лабораторної роботи та вчасно надіслати викладачу на перевірку. Завдання 1: / Завдання 2: / Завдання 3: / Завдання 4: / Опис рішення завдання Для першого та другого завдання було створено окремий файл LR21.java, в якому було реалізовано 3 методи: main, task1, task2. В методі task1 було введено значення a, b та обраховано значення z. Потім використовуючи if, else було створено функції для обрахування значення y, в залежності від значення х. Також було використано бібліотеку java.lang.Math.*. Це дозволило більш зручно використовувати математичні функції, такі як tan(), abs(), pow(), cos(), sin(), sqrt(), log(). В методі task2 було використано оператор switch, завдяки якій було реалізовано 3 варіанти набору значень a, b, c. Потім використовуючи if, else було створено функції для обрахування значення y, в залежності від значення х та набору значень a, b, c. Було використано математичні функції, які були написані в попередньому абзаці. В методі main було введено значення для х1, х2 та х3. Потім було виведено результати завдання 1(3 результати, які були обраховані в залежності від трьох значень х). Нижче виведення результатів завдання 2(9 результатів, які залежать від значень трьох х та трьох наборів значень a, b, c). Вивід було реалізовано завдяки printf(). Це функція форматованого виводу. Завдяки “%4f” виводятся числа тільки з 4 знаками після коми. Для третього та четвертого завдання було створено окремий файл LR22.java, в якому було реалізовано 3 методи: main, task3, task4. В методі task3 перевіряється трикутник на те, чи є він прямокутним. Перевірено було завдяки наслідку з теореми Піфагора (якщо квадрат найбільшої сторони трикутника дорівнює сумі квадратів інших сторін, то трикутник є прямокутним). Цей метод належить до типу Boolean. В методі task4 спочатку створено змінні x0, y0, x1, y1, а потім задано набори цих значень завдяки оператору switch. Потім було визначено яка точка менш віддалена від точки О. Так як точка О має координати (0,0), то для того щоб визначити яка точка менш віддалена від О потрібно знайти суму квадратів координат першої точки та суму квадратів координат другої точки, а потім визначити у якої точки менше число. В залежності від результатів виводяться різні значення завдяки оператору if. В методі main присвоюються значення для a,b,c, які користувач вводе з клавіатури(зроблено це завдяки java.util.Scanner). Потім в залежності від результатів масиву task3 виводиться відповідь. Це все повторюється ще два рази для інших значень a,b,c. Нижче викликається метод task4. Блок-схема для завдання 4 / Код програми LR21 import static java.lang.Math.*; public class LR21 { public static void main(String[] args) { double x1=-2.3, x2=0.6, x3=4.8; System.out.println("------------Task 1------------"); System.out.println("Початкові дані: a=1.5, b=0.7"); System.out.printf("x1=-2.3 ---> y=%.4f\n", task1(x1)); System.out.printf("x2=0.6 ---> y=%.4f\n", task1(x2)); System.out.printf("x3=4.8 ---> y=%.4f\n", task1(x3)); System.out.println("------------Task 2------------"); System.out.println("Case 1 (a=3.2, b=-0.7, c=2.2):"); System.out.printf("x1=-2.3 ---> y=%.4f\n", task2(x1,1)); System.out.printf("x2=0.6 ---> y=%.4f\n", task2(x2,2)); System.out.printf("x3=4.8 ---> y=%.4f\n", task2(x3,3)); System.out.println("Case 2 (a=10.5, b=-2.5, c=5.6):"); System.out.printf("x1=-2.3 ---> y=%.4f\n", task2(x1,1)); System.out.printf("x2=0.6 ---> y=%.4f\n", task2(x2,2)); System.out.printf("x3=4.8 ---> y=%.4f\n", task2(x3,3)); System.out.println("Case 3 (a=5.4, b=3, c=2.6):"); System.out.printf("x1=-2.3 ---> y=%.4f\n", task2(x1,1)); System.out.printf("x2=0.6 ---> y=%.4f\n", task2(x2,2)); System.out.printf("x3=4.8 ---> y=%.4f\n", task2(x3,3)); } public static double task1(double x){ double a=1.5, b=0.7,y = 0, z=tan(abs(tan(b*x))); if(x<=a) { y=a*pow(cos(x),2)+b*pow(sin(z*x),2); } else if(a<x & x<=4.5*b) { y=a*tan(pow(sin(b*x),2)+z); } else if(x>4.5*b) { y=log(a*x-b)+pow(z,2); } return y; } static double task2(double x, int num){ double a, b, c, y; switch (num) { case 1: a=3.2; b=-0.7; c=2.2; break; case 2: a=10.5; b=-2.5; c=5.6; break; case 3: a=5.4; b=3; c=2.6; break; default: a=0; b=0; c=0; break; } if(abs(1-pow(x, 2)) == a+c) { y=x*pow(E,a)+pow(E,abs(b*c)); } else if(abs(1-pow(x,2))>(a+c)){ y=pow(sin(a*x),2)+cos(b*c); } else { y=sqrt(a*pow(b,4)+pow(c*pow(x,2),(1/5))); } return y; } } Код програми LR22 import static java.lang.Math.*; import java.util.Scanner; public class LR22 { public static void main(String[] args) { System.out.println("------------Task 3------------"); Scanner input = new Scanner(System.in); System.out.print("Enter a: ");//набір вхідних данних 1 double a = input.nextDouble(); System.out.print("Enter b: "); double b = input.nextDouble(); System.out.print("Enter c: "); double c = input.nextDouble(); if(task3(a,b,c)) { //Вивід результату 1 System.out.printf("Result is %b%n", task3(a,b,c)); System.out.println("Трикутник зі сторонами " + a + ", " + b + ", " + c + " є прямокутним"); } else { System.out.printf("Result is %b%n", task3(a,b,c)); System.out.println("Трикутник зі сторонами " + a + ", " + b + ", " + c + " не є прямокутним"); } System.out.println(); System.out.print("Enter a: ");//набір вхідних данних 2 a = input.nextDouble(); System.out.print("Enter b: "); b = input.nextDouble(); System.out.print("Enter c: "); c = input.nextDouble(); if(task3(a,b,c)) { //Вивід результату 2 System.out.printf("Result is %b%n", task3(a,b,c)); System.out.println("Трикутник зі сторонами " + a + ", " + b + ", " + c + " є прямокутним"); } else { System.out.printf("Result is %b%n", task3(a,b,c)); System.out.println("Трикутник зі сторонами " + a + ", " + b + ", " + c + " не є прямокутним"); } System.out.println(); System.out.print("Enter a: ");//набір вхідних данних 3 a = input.nextDouble(); System.out.print("Enter b: "); b = input.nextDouble(); System.out.print("Enter c: "); c = input.nextDouble(); if(task3(a,b,c)) { //Вивід результату 3 System.out.printf("Result is %b%n", task3(a,b,c)); System.out.println("Трикутник зі сторонами " + a + ", " + b + ", " + c + " є прямокутним"); } else { System.out.printf("Result is %b%n", task3(a,b,c)); System.out.println("Трикутник зі сторонами " + a + ", " + b + ", " + c + " не є прямокутним"); } System.out.println(); System.out.println(); System.out.println(); System.out.println("------------Task 4------------"); task4(1); task4(2); task4(3); } static boolean task3(double a, double b, double c){ if(((pow(a, 2) == pow(b, 2) + pow(c, 2)) | (pow(b,2)==pow(a,2)+pow(c,2)) | (pow(c,2)==pow(a,2)+pow(b,2))) & (a>0) & (b>0) & (c>0) ){ return true; } else return false; } static void task4(int num){ double x0, y0, x1, y1; switch (num) { case 1: x0=2; y0=2; x1=-4; y1=0; break; case 2: x0=8; y0=9; x1=12; y1=1; break; case 3: x0=-3; y0=0.9; x1=2; y1=3; break; default: x0=0; y0=0; x1=0; y1=0; break; } if((pow(x0,2)+pow(y0,2)) > (pow(x1,2)+pow(y1,2))){ //так як точка О має координати (0;0), то ця рівність є достатньою умовою для визнаення віддстані до точки О(0;0) System.out.println("Точка В("+x1+";"+y1+") менш віддалена від точки O(0;0)."); } else { if ((pow(x0,2)+pow(y0,2)) < (pow(x1,2)+pow(y1,2))){ System.out.println("Точка A("+x0+";"+y0+") менш віддалена від точки O(0;0)."); } else { System.out.println("Точка O(0;0) рівновіддалена від точок A("+x0+";"+y0+") та В("+x1+";"+y1+")."); } } } } Результат програми / / Висновок: Я створив дві програми, в яких було використано декілька методів, різні способи присвоєння значень змінним. В програмах виконано 4 завдання. Було використано умовний оператор if, оператор switch, форматований вивід printf, математичні функції. Створив блок-схему для завдання 4.
Антиботан аватар за замовчуванням

24.05.2023 18:03

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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