Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра автоматизації проектування енергетичних процесів і систем
ЗВІТ
з лабораторної роботи № 2
з дисципліни «Програмування алгоритмічних структур»
Тема «Програмування розгалужених алгоритмів»
Варіант № 3
/
Завдання 1:
/
Завдання 2:
/
Завдання 3:
/
Завдання 4:
/
Короткий опис рішення кожного завдання:
У першому завданні я створив новий клас Lr21, потім написав метод task1, який обчислює приклад в залежності від значення Х. Для цього я використав оператор if.
Для другого завдання я в цьому же класі створив метод task2, який обчислює приклад в залежності від Х і варіацій інших змінних яких всого три. Щоб вибрати правильну варіацію я використав оператор switch. В кожному Case я присвоїв змінним свої значення, щоб при виклику цього метода кожен раз не вводити три значення змінним а вибрати один з варіантів в яких вже є значення змінних.
Третє завдання я робив у новому класі Lr22 в якому зробив метод task3. За допомогою класа Scanner я присваїваю змінним значення з клавіатури. Даний метод порівнює три числа між собою і виводить з них середнє за значенням.
Для 4 завдання створив метод task4, який говорить чи лежить точка всередині кола, якщо дан його радіус, координати даної точки і центр кола лежить в початку координат. Щоб знайти відстань від точки до центра кола скористаємось теоремою Піфагора, бо відрізок між точкою і центром це є гіпотенуза, а перпендикуляр опущений з точки на вісь і проекція гіпотенузи на ту ж вісь це є катети.
Блок-схема до завдання 4:
/
Код програми Task1 і Task2 на білому фоні:
import java.lang.Math;import java.util.Scanner;public class Lr21 { public static void main(String[] args) { double x1, x2, x3; x1 = -2.3; x2 = 0.6; x3 = 4.8; System.out.printf("\nTask1\nif x = -2,3 y = %1$.4f", task1(x1)); System.out.printf("\nif x = 0,6 y = %1$.4f", task1(x2)); System.out.printf("\nif x = 4,8 y = %1$.4f\n\n", task1(x3)); System.out.printf("Task2\n if x = -2,3 with first set of b, m, n y = %1$.4f", task2(x1, 1)); System.out.printf("\n with second set of b, m, n y = %1$.4f", task2(x1, 2)); System.out.printf("\n with third set of b, m, n y = %1$.4f", task2(x1, 3)); System.out.printf("\n\nif x = 0.6 with first set of b, m, n y = %1$.4f", task2(x2, 1)); System.out.printf("\n with second set of b, m, n y = %1$.4f", task2(x2, 2)); System.out.printf("\n with third set of b, m, n y = %1$.4f", task2(x2, 3)); System.out.printf("\n\nif x = 4.8 with first set of b, m, n y = %1$.4f", task2(x3, 1)); System.out.printf("\n with second set of b, m, n y = %1$.4f", task2(x3, 2)); System.out.printf("\n with third set of b, m, n y = %1$.4f", task2(x3, 3)); } public static double task1(double x) { double a, b, z; a = 0.1; b = 3.25; z = Math.pow(Math.cos(x), 2); if (x < 0) return (a + z) * Math.pow(Math.cos((b * x) + Math.pow(x, 3)), 2); else if (a <= x && x <= b) return a * Math.log(z * x) + Math.pow(Math.sin(Math.pow(b, 2)), 2); return Math.pow(0.3 * b + Math.sqrt(Math.abs(a - Math.pow(z, 2))) , 1/3); } public static double task2(double x, int numb) { double b, m, n; switch (numb) { case 1: b = -1.6; m = 0.9; n = -1.4; break; case 2: b = 4.5; m = -2; n = 2.2; break; case 3: b = -4.5; m = 0.5; n = -1.5; break; default: b = 0; m = 0; n = 0; } if (Math.abs(b * m) > Math.pow(x, 2)) return Math.sin(b * m + Math.cos(n * x)); else if (Math.abs(b * m) < Math.pow(x, 2)) return Math.cos(b * m - Math.sin(x)); return Math.sqrt(Math.pow(Math.E, Math.abs(Math.cos(x))) + Math.sqrt(Math.abs(b * m * x))); }}
Код програми Task3 і Task4 на білому фоні:
import java.util.Scanner;import java.lang.Math;public class Lr22 { public static void main(String[] args) { double a, b, c, x1, x2, x3, y1, y2, y3, R1, R2, R3; x1 = 3; y1 = -7; R1 = 5; x2 = 12; y2 = 11; R2 = 16; x3 = -9; y3 = 6; R3 = 11; Scanner scan = new Scanner(System.in); System.out.print("task3"); for (int i = 0; i < 3; i++) { System.out.print("\na = "); a = scan.nextDouble(); System.out.print("b = "); b = scan.nextDouble(); System.out.print("c = "); c = scan.nextDouble(); System.out.printf("Середнє значення серед цих є %1$.4f\n", task3(a, b, c)); } System.out.printf("\n\ntask4\n1):\n x = 3\n y = -7\n R = 5 \n %1s", task4(x1, y1, R1)); System.out.printf("\n\n2):\n x = 12\n y = 11\n R = 16 \n %1s", task4(x2, y2, R2)); System.out.printf("\n\n3):\n x = -9\n y = 6\n R = 11 \n %1s", task4(x3, y3, R3)); } public static double task3(double a, double b, double c) { if ((a <= b && b <= c) | (c <= b && b <= a)) return b; else if ((b <= c && c <= a) | (a <= c && c <= b)) return c; return a; } public static String task4(double x, double y, double R) { if (Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) <= R) return "Точка лежить всередині кола"; return "Точка не лежить всередині кола"; }
Результати:
/
/
/
Висновок:
Я написав 4 програми мовою java використавши оператори if і switch, для розв'язання завдань поданих в табл 1-4 відповідно до індивідуального варіанту. набув практичних навичок при створенні проектів розгалуженої структури. Створив блок-схему до 4 завдання. Зробив звіт з лабораторної роботи і майже вчасно надіслав викладачу на перевірку.