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