Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра
автоматизації проектування енергетичних процесів і систем
ЗВІТ
з лабораторної роботи No3
з дисципліни «Програмування алгоритмічних структур»
Тема «Програмуванняциклічнихалгоритмів»
Варіант 3
Завданняна лабораторну роботу.1.Розробити блок-схеми алгоритмів і написати програми мовоюJavaіззастосуваннямоператорів циклівfor, while, do whileдля розв’язання завдань,поданих в табл.1–3відповіднодо індивідуального варіанта.Варіант обратиза списком групи.2.Розробити програмні проекти в середовищіIntellij IDEAдля реалізаціїнаписаних програм. Перевірити результати обчислень альтернативнимирозрахунками(наприклад,Excel, калькулятор, тощо).3. Зробити Звіт з лабораторної роботи та вчасно надіслати викладачу наперевірку.
Завдання 1:
/
Завдання 2:
/
Завдання 3:
/
Короткий опис рішення першого завдання:
Для першого завдання я створив метод task1 в якому написав алгоритм для рішення рівняння для всіх Х від -1 до 1 включно різницею в 0,05. Для цього я використав цикл for.
Короткий опис рішення другого завдання:
Для другого завдання я використав цикл for щоб зрвняти всі сусідні члени масиву. Кожен наступний елемент повинен бути менший за попередній. В такому разі метод воерне true. В іношму випадку поверне false.
Короткий опис рішення третього завдання:
Для третььго завдання треба використати два цикла. Для обчислення факторіалу і для обчислення самої суми ряду. У першому випадку використав цикл while, а у другому - цикл for.
Блок-схема до третього завдання:
/
Блок-схема до методу task3:
/
Копія коду на білому фоні:
package com.company;
import java.lang.Math;
import java.util.Scanner;
public class LR3 {
public static void main(String[] args) {
double startX, endX, h, x1, x2;
Scanner scan = new Scanner(System.in);
startX = -1;
endX = 1;
h = 0.05f;
System.out.println("Task1:");
task1(startX, endX, h);
System.out.printf("\nTask2\nПерша послідовність:\n");
int[] b = {99, 88, 57, 55, 43, 10, 9, 8, 7, 7, 0, -10, -11};
boolean proverka = task2(b);
int i = 0;
System.out.printf("{ ");
while (i < b.length) {
System.out.printf("%d ", b[i]);
i++;
}
System.out.printf("}\n");
if (proverka) {
System.out.print("Послідовність упорядкована за спаданням" );
}
else {
System.out.print("Послідовність не упорядкована за спаданням");
}
System.out.printf("\n\nДруга послідовність:\n");
int[] b2 = {100, 99, 90, 80, 70, 60, 50, 40, 30, 10, 20};
boolean proverka2 = task2(b2);
int i2 = 0;
System.out.printf("{ ");
while (i2 < b2.length) {
System.out.printf("%d ", b2[i2]);
i2++;
}
System.out.printf("}\n");
if (proverka2) {
System.out.print("Послідовність упорядкована за спаданням" );
}
else {
System.out.print("Послідовність не упорядкована за спаданням");
}
System.out.printf("\n\nTask3\n");
System.out.printf("x1 = ");
x1 = scan.nextDouble();
System.out.printf("y1 = %1.4f", task3(x1));
System.out.printf("\nx2 = ");
x2 = scan.nextDouble();
System.out.printf("y2 = %1.4f", task3(x2));
}
public static void task1(double startX, double endX, double h ) {
for (double i = startX; i <= endX+0.01f; i = i + h) {
double y = Math.pow(Math.E, 3 * (i - 0.6));
double z = Math.asin(i);
System.out.printf("x = %1.2f y = %2.4f z = %2.4f\n", i, y, z);
}
}
public static boolean task2(int[] arr){
for (int i = 1; i < arr.length; i ++) {
if (arr[i - 1] < arr[i])
return false;
}
return true;
}
public static double task3(double x) {
int length = 10;
int i = 1;
int k = 1;
double o = 0;
//Цикл для знаходження факторіалу:
while (k <= length) {
i = i * k;
k++;
}
int iFak = i;
//Цикл для знаходження суми ряду:
for (int j = 1; j <= length; j++) {
double y = (Math.pow(-1, j + 1)*iFak)/(Math.pow(2, 2 * j - 1) * Math.sin(x));
o = o + y;
}
return o;
}
}
Результати обчислень (скріншот екрану):
/
/
Висновки:
Під час виконання цієї лабораторної роботи я набув практичних навичок використання циклів while і for. Створив методи циклічної будови для обчислення рівнянь і заданих прикладів. Вдосконалив навички набуті на попередніх практичних і лабораторних заняттях. Майже вчасно здав звіт викладачу на перевірку.