Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра автоматизації проектування енергетичних процесів і систем
ЗВІТ
з лабораторної роботи № 2
з дисципліни «Програмування алгоритмічних структур»
Тема «Програмування розгалужених алгоритмів»
Варіант № 14
Завдання на лабораторну роботу.
1. Розробити блок-схеми алгоритмів і написати програми мовою Java із застосуванням умовного оператора if та оператора вибору switch для розв’язання завдань, поданих в табл. 1 – 4 відповідно до індивідуального варіанта. Варіант обрати за списком групи.
2. Розробити програмні проекти в середовищі Intellij IDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками (наприклад, Excel, калькулятор, тощо).
3. Зробити Звіт з лабораторної роботи та вчасно надіслати викладачу на перевірку.
1 завдання:
2 завдання:
3 завдання:
4 завдання:
Короткий опис рішення завдання (для кожного завдання)
1 завдання. Створила метод task1 , де реалізувала всі розрахунки. Змінним х1 , х2 , х3 присвоїла задані значення. Задала значення змінним a, b, c. Вивела вхідні данні та результати розрахунку за допомогою System.out.printf форматованого виводу значень. Для дробових чисел – не більше 4 знаків після коми.
2 завдання.
Створила метод task2 , де реалізувала всі розрахунки. Змінним х1 , х2 , х3 присвоїла задані значення. Задала значення змінним a, b, z. Викликала метод calcTask2 для виконання математичних дій для завдання 2. Вивела вхідні данні та результати розрахунку за допомогою System.out.printf форматованого виводу значень. Для дробових чисел – не більше 4 знаків після коми.
3 завдання.
В класі Lr22 створила метод task3, де обрахувала 3 завдання. В методі main організувала вивід x i y.
4 завдання.
В методі task4 задала значення змінним x та y. Перевірила умову та вивела відповідь за допомогою System.out,println. У методі calcTask4 виконала відповідні математичні дії з 4 завдання.
Блок-схема алгоритму для завдання 4:
Наведу дві блок-схеми для методів task4 та calcTask4.
task4 calcTask4
yes no
Програма проекту:
package com.company;import java.lang.Math;import java.util.Scanner;public class Lr21 { // оголошення змінних static double a , b , c , z , x1 , x2 , x3 , x ,y; //вводжу метод main public static void main(String[] args) { //задаю значення змінним x1 = -2.3; x2 = 0.6; x3 = 4.8; System.out.println("Task1"); //форматований вивід відповідей до 1 завдання System.out.printf("x1 = %.4f\ty1 = %.4f\nx2 = %.4f\t\ty2 = %.4f\nx3 = %.4f\t\ty3 = %.4f\n\n" ,x1 ,task1(x1) ,x2 ,task1(x2) ,x3 , task1(x3)); System.out.println("Task2"); task2(x1); task2(x2); task2(x3); } //виклик методу task1 public static double task1(double x){ //задаю значення змінним a=0.5; b=0.7; c=3.4; //перевіряю умову і проводжу відповідні математичні обрахунки if(x<a) return c*Math.pow(Math.sin(Math.pow(b,2)*x),2)+Math.log1p(c*x+a); else if (a<=x && x<b) return a+Math.log1p(b*x)-Math.sin(c*x); else return Math.sqrt(Math.abs(Math.cos(a+b*x)+c*Math.pow(x,2))); } //виклик методу task2 public static void task2(double x){ double a=0.5, b=4.5,z=Math.exp(a*x); //форматований вивід відповідей до 2 завдання System.out.printf("x = %.4f\nу1 = %.4f\n", x , calcTask2(x)); a=0.5; b=3.7; z=Math.exp(2*a*x); System.out.printf("у2 = %.4f\n", x , calcTask2(x)); a=0.5; b=2.7; z=Math.exp(2.5*a*x); System.out.printf("у3 = %.4f\n\n", x , calcTask2(x)); } //виклик методу для обрахунку 2 завдання public static double calcTask2(double x){ if(x<=5*a) return 2.5*Math.pow(b,2)+a*x-4.5*Math.cos(x*z); else if(x>b) return Math.pow((Math.pow(a,2)-5.4*x),3)+Math.log1p(x*z); else return Math.sqrt(6.5 * Math.pow(b, 2) + (a - Math.pow(x, 3) * z)); }}
package com.company;import java.lang.Math;import java.util.Scanner;public class Main { //оголошення змінних static double x,y,y1; public static void main(String[] args) { //використовую клас Scanner ждя вводу з клавіатури Scanner scan = new Scanner(System.in); System.out.println("Task3"); // створюю цикл для того, щоб тричі ввести значення x та y for (int i = 0; i < 3; i++) { System.out.println("Input x: "); x = scan.nextDouble(); System.out.println("Input y:"); y = scan.nextDouble(); task3( x , y); // Перевіряю за умовою чи належить точка прямій if(Math.abs(y1-y)<Math.pow(10, -3)) System.out.println("This point belongs to the line"); else System.out.println("This point does not belong to the line"); } System.out.println("Task4"); task4(x,y);} // метод для обрахунку task3 private static void task3(double x, double y) { y1=6*Math.pow(Math.cos(x),2)-0.25*Math.pow(x,5)+3.2*Math.pow(x,2)-2.7; } private static void task4(double x, double y){ //задаю значення змінним x=-3; y=27; y1=calcTask4(x,y); //Перевіряю умову if(Math.abs(y1-y)<Math.pow(10, -3)) System.out.println("Belongs to the curve"); else System.out.println("Does not belong to the curve"); x=-2; y=56; y1=calcTask4(x,y); if(Math.abs(y1-y)<Math.pow(10, -3)) System.out.println("Belongs to the curve"); else System.out.println("Does not belong to the curve"); x=-1; y=1; y1=calcTask4(x,y); if(Math.abs(y1-y)<Math.pow(10, -3)) System.out.println("Belongs to the curve"); else System.out.println("Does not belong to the curve"); x=-3; y=-27; y1=calcTask4(x,y); if(Math.abs(y1-y)<Math.pow(10, -3)) System.out.println("Belongs to the curve"); else System.out.println("Does not belong to the curve"); } public static double calcTask4(double x,double y){ if(Math.abs(x)>1) return Math.pow(x,3); else return Math.sqrt(2-Math.pow(x,2)); } }
Результати обчислень (обрізаний скриншот екрану)
Висновки: Під час виконання 2 лабораторної роботи було розроблено блок-схему алгоритмів 4 завдання і написано програми мовою Java із застосуванням умовного оператора if для розв’язання завдань, поданих в табл. 1 – 4 відповідно до індивідуального варіанта. Результати обчислень перевірено альтернативними розрахунками (калькулятором). Оформлено звіт з лабораторної роботи.