Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра автоматизації проектування енергетичних процесів і систем
ЗВІТ
до лабораторної роботи № 2
з дисципліни «Програмування алгоритмічних структур»
Тема «Програмування розгалужених алгоритмів»
Варіант № 12
Завдання на лабораторну роботу.
1. Розробити блок-схеми алгоритмів і написати програми мовою Java із
застосуванням умовного оператора if та оператора вибору switch для
розв’язання завдань, поданих в табл. 1 – 4 відповідно до індивідуального
варіанта. Варіант обрати за списком групи.
2. Розробити програмні проекти в середовищі Intellij IDEA для реалізації
написаних програм. Перевірити результати обчислень альтернативними
розрахунками (наприклад, Excel, калькулятор, тощо).
3. Зробити Звіт з лабораторної роботи та вчасно надіслати викладачу на
перевірку.
Короткий опис рішення завдань разом із скриншотом варіанту завдання
1.Завдання
/
В методі task1типу double організовую введення вхідних даних m,b,n також типу double.За допомогою оператора if прописую умови, задані в завданні. Так як метод має тип double, то в кінці, після умов, необхідно зазначити, що має повертати функція,тому прописую return y.
2.Завдання
/
В методі task2 типу double за допомогою оператора switch описуємо три набори даних. Потім, використовуючи оператор if записую умови для обрахунку у, після цього знову зазначаю return y.
3.Завдання
/
В методі task3 типу double в параметрах зазначаю змінні A,R, які за допомогою Scanner вводимо з клавіатури і S(площа фігури, яку необхідно обчислити).Використовуючи оператор if записую вимоги для обчислення і виведення S.
4.Завдання
/
В методі task4 за допомогою оператора вибору switch вводжу три набори даних. Далі, в прописую умови для виведення на екран найменшого з чисел за допомогою умовного оператора.
Блок-схема алгоритму для 4 завдання
/
Текст програми
Завдання 1-2
package com.company;import java.lang.Math;// імпорт пакетівpublic class Lr21 { public static void main(String[] args) { double x1=-2.3;//введення даних за допомогою присвоєння значень double x2=0.6; double x3=4.8; double m=0.5; double b=-2; double n=0.2; System.out.printf("Вхідні дані:\nx1=%.4f; x2=%.4f; x3=%.4f\n",x1,x2,x3);// виведення вхідних даних на екран System.out.printf("Task1\nm=%.4f,b=%.4f,n=%.4f\n",m,b,n); System.out.printf("Результати обчислень task1 з х1: y=%.4f\n", task1(x1));//виведення результатів завдання 1 System.out.printf("Результати обчислень task1 з х2: y=%.4f\n", task1(x2)); System.out.printf("Результати обчислень task1 з х3: y=%.4f\n", task1(x3)); System.out.print("Task2\n");//виведення результатів завданння 2 System.out.printf("Результати обчислень task2 з х1 і першим варіантом вхідних даних: y = %.4f\n", task2(x1, 1)); System.out.printf("Результати обчислень task2 з х2 і першим варіантом вхідних даних: y = %.4f\n", task2(x2, 1)); System.out.printf("Результати обчислень task2 з х3 і першим варіантом вхідних даних: y = %.4f\n", task2(x3, 1)); System.out.printf("Результати обчислень task2 з х1 і другим варіантом вхідних даних: y = %.4f\n", task2(x1, 2)); System.out.printf("Результати обчислень task2 з х2 і другим варіантом вхідних даних: y = %.4f\n", task2(x2, 2)); System.out.printf("Результати обчислень task2 з х3 і другим варіантом вхідних даних: y = %.4f\n", task2(x3, 2)); System.out.printf("Результати обчислень task2 з х1 і третім варіантом вхідних даних: y = %.4f\n", task2(x1, 3)); System.out.printf("Результати обчислень task2 з х1 і третім варіантом вхідних даних: y = %.4f\n", task2(x2, 3)); System.out.printf("Результати обчислень task2 з х1 і третім варіантом вхідних даних: y = %.4f\n", task2(x3, 3)); } public static double task1(double x) { double m=0.5;//введення вхідних даних для завдання 1 double b=-2; double n=0.2; double y = 0; if (Math.abs(b*m)>Math.pow(x,2)){// перша умова y= Math.sin(b*m+Math.cos(n*x)); } else if (Math.abs(b*m)<Math.pow(x,2)){//друга умова y= Math.cos(b*m-Math.sin(x)); } else if (Math.abs(b*m)==Math.pow(x,2)){//третя умова y=Math.sqrt(Math.exp(Math.abs(Math.cos(x)))+Math.sqrt(Math.abs(b*m*x))); } return y; } public static double task2(double x, int witch){ double a = 0,b=0,z=0; switch (witch){//оператор вибору case 1://перший набір даних a =-1; b=3.4; z=Math.tan(b*x); break; case 2://другий набір даних a=-3.2; b=5.5; z=Math.tan(b*Math.pow(x,2)); break; case 3://третій набір даних a=-5.2; b=7.2; z=Math.tan(b*Math.pow(x,3)); break; } double y=0; if (a >= x){//опис першої умови y=Math.exp(a*x)-3.5*Math.pow(Math.cos(z+b*x),2); } else if (a<x && x<=Math.pow(b,3.5)){//опис другої умови return a +Math.log(Math.abs(a+b*x))-2*x; } else if (x>Math.pow(b,3.5)){//опис третьої умови return a+Math.pow(Math.cos(a+b*x*z),3.5); } return y; }}
Завдання 3-4
package com.company;//імпорт пакетівimport java.util.Scanner;import java.lang.Math;public class Lr22 { public static void main(String[] args) { System.out.println("Task3:"); Scanner input = new Scanner(System.in); System.out.print("Введіть А(сторона квадрата):"); double A = input.nextDouble();//введення даних з клавіатури за допомогою Scanner System.out.print("Введіть R(радіус кола):"); double R = input.nextDouble(); double S = 0; System.out.printf("\nПлоща більшої фігури:%.4f\n",task3(S,A,R));//виведення результатів обчислення завдання 3 System.out.printf("Результати обчислень task4 з першим варіантом вхідних даних:\n Найменше значення = %.4f\n", task4(1)); System.out.printf("Результати обчислень task4 з другим варіантом вхідних даних:\n Найменше значення = %.4f\n", task4(2)); System.out.printf("Результати обчислень task4 з третім варіантом вхідних даних:\n Найменше значення = %.4f\n", task4(3)); //виведення результатів обчислення завдання 4 } public static double task3(double A, double R, double S) { if (A > R) {//перша умова S = Math.pow(A, 2); return S; } else if (A < R) { S = Math.PI * Math.pow(R, 2);//друга умова return S; } else if(A<=0||R<=0){/*третя умова(оскільки задані величини є відрізками,отже мають бути строго більшими за нуль, для цього пропишемо дану умову)*/ return S=0; } return S; } public static double task4(int witch) { double a = 0, b = 0, c = 0; switch (witch) {//оператор вибору case 1://перший набір вхідних даних a = 23; b = 17; c = 47; break; case 2://другий набір вхідних даних a = 9; b = -8.1; c = 9.1; break; case 3://третій набір вхідних даних a = 36; b = 65; c = 62; break; } if (a < b && a< c) { return a;//умови для виведення на екран найменшого числа з набору } if (b < a && b < c) { return b; } if (c<a && c<b){ return c; } return 0; }}
Результати рішень програми
Завдання 1-2
/
Завдання 3-4
/
Висновок
Виконуючи дану лабараторну роботу, я написала програму за допомогою операторів if (умовний оператор) та switch(оператор вибору).Під час створення програмних проектів розгалуженої структури набула практичних навичок використання операторів, які зазначені вище.