Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра автоматизації проектування енергетичних процесів і систем
ЗВІТ
до лабораторної роботи № 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(оператор вибору).Під час створення програмних проектів розгалуженої структури набула практичних навичок використання операторів, які зазначені вище.