Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра автоматизації проектування енергетичних процесів і систем
ЗВІТ
з лабораторної роботи № 2
з дисципліни «Програмування алгоритмічних структур»
Тема «Програмування розгалужених алгоритмів»
Варіант 21
Мета роботи: набуття практичних навичок використання умовного оператора if та оператора вибору switch при створюванні програмних проектів розгалуженої структури.
Завдання на лабораторну роботу:
1.Розробити блок-схеми алгоритмів і написати програми мовою Java із застосуванням умовного оператора if та оператора вибору switch для розв’язання завдань, поданих в табл.1–4 відповідно до індивідуального варіанта. Варіант обрати за списком групи.
2.Розробити програмні проекти в середовищі Intellij IDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками
3. Зробити Звіт з лабораторної роботи та вчасно надіслати викладачу на перевірку.
Завдання 1:
Завдання 2:
/
Завдання 3:
/
Завдання 4:
/
Короткий опис виконання завдань
Завдання 1: Для виконання завдання було створено клас Lr21 У методі main я ввела змінні x, s, r та k, після цього створила метод task1, де проводила розрахунки математичних формул. Я використала умовний оператор if…else для реалізації розгалуженого алгоритму, а також математичні методи. Результатом виконання завдання є те, що метод task1 повертає обраховане значення y.
Завдання 2: У створеному раніше класі Lr21 я ввела нові змінні типу double та створила метод task2. У цьому методі було виконано розгалужений алгоритм. Для його реалізації знову ж таки було використано умовний оператор if…else, а за допомогою бібліотеки java.lang.Math були застосовані різні математичні методи. В результаті метод повертає значення у, що залежить від значеннь заданих змінних.
Завдання 3: Для виконання цього завдання було створено клас Lr22. Для отримання можливості вводити значення з клавіатури було оголошено клас java.util.Scanner. Після цього я створила метод task3. За допомогю умовного оператора if…else перевірялося чи перше число є більшим за друге і третє; якщо ні – чи друге число більше за перше і третє. Таким чином в результаті виводиться відповідь, яке число є найбільшим.
Завдання 4: Завдання було виконане у класі Lr22, значення змінним я задала в методі main, а також створила метод task4, у якому зробила масив s dbrjhbcnfkf цикл for. З використанням умовного оператора if…else визначалося яким є задане число: додатнім чи від’ємним. Якщо додатнім, число підноситься до квадрату за допомогою відповідного математичного методу, якщо від’ємним – залишається без змін. Такі операції проводяться з усіма змінними, а кінцеві значення виводяться у методі main.
Блок-схема до завдання 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; System.out.println("Task 1"); System.out.printf("x1 = %.4f ", x1); System.out.printf("x2 = %.4f ", x2); System.out.printf("x3 = %.4f \n", x3); System.out.printf("y1 = %.4f ",Lr21.task1(x1)); System.out.printf("y2 = %.4f ",Lr21.task1(x2)); System.out.printf("y3 = %.4f \n",Lr21.task1(x3)); double a1=0.8 ,b1=2.4 ,f1=pow(E,1.5*a1*x1) ; double a2=1.2 ,b2=4.2 ,f2=pow(E,2*a2*x2); double a3=3.4 ,b3=8.1 ,f3=pow(E,3*a3*x3); System.out.println("Task 2"); System.out.printf("x1 = %.4f, a1 = %.4f, b1 = %.4f, f1 = %.4f \n", x1, a1, b1, f1); System.out.printf("x2 = %.4f, a2 = %.4f, b2 = %.4f, f2 = %.4f \n", x2, a2, b2, f2); System.out.printf("x3 = %.4f, a3 = %.4f, b3 = %.4f, f3 = %.4f \n", x3, a3, b3, f3); System.out.printf("y1 = %.4f \n",Lr21.task2(x1,a1,b1,f1)); System.out.printf("y2 = %.4f \n",Lr21.task2(x2,a2,b2,f2)); System.out.printf("y3 = %.4f \n",Lr21.task2(x3,a3,b3,f3)); } static double task1(double x) { double y; double s=0.15 , r=10 ,k=0.7; if (cos(x) == cos(r*s)) { y = pow(x,2)*pow(E,2*k)+log(abs(r*x)); } else if (cos(x) > cos(r*s)) { y = cbrt(x*x) + sqrt(abs(k+r*s*x)); } else { y = atan(k*x+r*s); } return y; } static double task2(double x, double a, double b, double f) { double y; if (x <= a) { y = exp(a*x) + f * pow(cos(b*x), 5); } else if(x > a && x <= pow(b,2)) { y = a + pow(cos(b * x),2) - log(f * x); } else { y = pow(cos(a + b * f * x),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 \n", num1); System.out.printf("num2 = %.4f \n", num2); System.out.printf("num3 = %.4f \n", num3); System.out.printf("Найбільше число: %.4f \n", Lr22.task3(num1,num2,num3)); System.out.println("Task 4"); double a11 = 0; double a12 = 1.5; double a13 = -31.1; double a21 = 2; double a22 = -1.56; double a23 = 2.55; double a31 = -1.9; double a32 = 2.9; double a33 = -2.9; System.out.printf("a1 = %.4f ", a11); System.out.printf("b1 = %.4f ", a12); System.out.printf("c1 = %.4f \n", a13); Lr22.task4(a11,a12,a13); System.out.println(); System.out.printf("a2 = %.4f ", a21); System.out.printf("b2 = %.4f ", a22); System.out.printf("c2 = %.4f \n", a23); Lr22.task4(a21,a22,a23); System.out.println(); System.out.printf("a3 = %.4f ", a31); System.out.printf("b3 = %.4f ", a32); System.out.printf("c3 = %.4f \n", a33); Lr22.task4(a31,a32,a33); } static double task3( double a, double b, double c) { if(a >= b && a >= c) { return a; } else if(b >= a && b >= c) { return b; } else { return c; } } static void task4(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],2); } } for (int i = 0; i<arr.length; i++) { System.out.printf("%.4f ", arr[i]); } }}
Результати
/
/
Висновки
В результаті виконання роботи я написала 4 алгоритми із застосуванням умовного оператора if…else відповідно до свого індивідуального варіанту. Крім цього, я знайомилася з невідомими мені раніше математичними методами та операторами розгалуження, а також створила блок схему для 4-го завдання.