Програмування циклічних алгоритмів

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
О
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2021
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування алгоритмічних структур

Частина тексту файла (без зображень, графіків і формул):

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем ЗВІТ з лабораторної роботи № 3 з дисципліни «Програмування алгоритмічних структур» Тема «Програмування циклічних алгоритмів» Варіант № 4 Мета роботи: набуття практичних навичок використання операторів циклів for, while, do while при створюванні програмних проектів циклічної структури. Завдання на лабораторну роботу. 1.Розробити блок-схеми алгоритмів і написати програми мовоюJava із застосуванням операторів циклів for, while, do while для розв’язання завдань ,поданих в табл.1–3 відповідно до індивідуального варіанта. Варіант обрати за списком групи. 2.Розробити програмні проекти в середовищі Intellij IDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками (наприклад,Excel, калькулятор, тощо). 3. Зробити Звіт з лабораторної роботи та вчасно надіслати викладачу на перевірку. 1 Завдання за варіантом: / 2 Завдання за варіантом: / 3 Завдання за варіантом: / Блок-схема алгоритму для завдання 3: / Коротке описання рішення для завдання 1: Я створив метод task1 , що приймає максимальне й мінімальне значення х (границі діапазону) та крок приросту аргументу h. Створив вивід початку таблиці. Після чого за допомогою цилку for почав виводити значення функцій y(x) та z(x) зразу будуючи таблицю. Після циклу закрив таблицю. У методі main вивів початок завдання 1 Після чого визвав метод task1 передавши напряму значення діапазону й кроку. Коротке описання рішення для завдання2 : Я створив метод task2, в якому присвоїв res = arr[0] + arr[1]; Написав рядок, що знаходить суму двох елементів. Далі йде умова: якщо ця сума менше за суму двох інших (наступних) елементів, то перевіряємо умову для наступних елементів і так далі, а в кінці виводимо res; якщо більше, то перевіряємо умову вже для елементів, що менші та повторюємо весь цикл. в цінці повернув res У методі main: Вивів початок завдання 2 Ініціалізував масив для випадку 1 Вивів значення масиву за умовою вимог до завдання Потім вивів результат обчислень Теж саме викона в для випадку 2 , але з іншим масивом Коротке описання рішення для завдання3 : Я створив метод task3. В методі виконав ініціалізацію перемінних sum, divided та factorial, після чого за допомогою for повторював обчислення: Обчислення факторіала k; Результат ітерації додається до перемінної sum, що повертається після закінчення циклу. У методі main реалізував: Вивід початку завдання Ініціалізацію перемінних Ввід для перемінної х за допомогою об’єкта scan класу Scanner Вивід результату обчислення Програма проекту (копія коду на білому фоні): package tr15.maksos; import java.util.Arrays; import java.util.Scanner; import static java.lang.Math.*; public class Lr3 { public static void main(String[] args) { int[] arr1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] arr2 = {654, 32, 233, 44, 5325, 346, 27, 58, 932, 130}; double x1, x2; Scanner s = new Scanner(System.in); System.out.println("task1"); System.out.println("x y(x) z(x)"); task1(-4, 10, 0.4); System.out.println("task2"); System.out.println(Arrays.toString(arr1)); System.out.printf("min is: %d%n", task2(arr1)); System.out.println(Arrays.toString(arr2)); System.out.printf("min is: %d%n", task2(arr2)); System.out.println("task3"); System.out.print("x1 = "); x1 = s.nextDouble(); System.out.print("x2 = "); x2 = s.nextDouble(); System.out.printf("x1 = %.4f, sum = %.4f%n", x1, task3(x1)); System.out.printf("x2 = %.4f, sum = %.4f%n", x2, task3(x2)); } public static void task1(double x0, double x1, double h) { int iter = (int) ((x1-x0) / h) + 1; double x, y, z; for (int i = 0; i < iter; i++) { x = i*h + x0; y = sqrt(abs(sin(x + PI/4))); z = sin(pow(x, 2)) + cos(x); System.out.printf("%.1f %.4f %.4f%n", x, y, z); } } public static int task2(int[] arr) { int res = arr[0] + arr[1]; for (int i = 0; i < arr.length-1 ; i++) { if ((arr[i] + arr[i+1]) < res) { res = arr[i] + arr[i+1]; } } return res; } public static double task3(double x) { double sum = 0; double divided, factorial; int i = 1; while (i <= 5) { divided = 2*i - 1; factorial = 1; for (int f = 1; f <= divided; f++) { factorial *= f; } sum = sum + (factorial / pow(x, 2*i - 1)); i++; } return sum; } } Результати обчислень Завдання 1: /// Завдання 2: / Завдання 3: / Перевірка обчислень за допомогою застосунку Photomath: Завдання 1 (Тільки перші та останні значення): / / // Завдання 2: / Завдання 3: / / Висновок: Я набув практичних навичок у використанні операторів циклів for, while, do while при створюванні програмних проектів циклічної структури. Розробив блок-схеми алгоритмів і написав програми мовою Java із застосуванням операторів циклів for while для розв’язання завдань, поданих в табл.1, табл.2, табл.3. Розробив програмні проекти в середовищі Intellij IDEA для реалізації написаних програм. Перевірив результати обчислень альтернативними розрахунками (Photomath). Зробив звіт з лабораторної роботи та вчасно надіслав викладачу на перевірку
Антиботан аватар за замовчуванням

17.05.2023 18:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!