Програмування базових алгоритмів

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

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

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

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

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем Звіт З лабораторної роботи №3 з дисципліни «Програмування циклічних алгоритмів» Тема «Програмування базових алгоритмів» Варіант № 25 Мета роботи: набуття практичних навичок використання операторів циклів for, while, do while при створюванні програмних проектів циклічної структури. Завдання на лабораторну роботу. 1.Розробити блок-схеми алгоритмів і написати програми мовою Java із застосуванням операторів циклів for, while, do while для розв’язання завдань, поданих в табл.1–3 відповідно до індивідуального варіанта. Варіант обрати за списком групи. 2.Розробити програмні проекти в середовищі IntellijIDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками(наприклад, Excel, калькулятор, тощо). 3. Зробити Звіт з лабораторної роботи та вчасно надіслати викладачу на перевірку Так як варіант №25, виконуємо задачі під номером 25 Завдання №1 / Завдання №2 / Завдання №3 / Короткі описи рішення завдань: Створено в Java клас Main . В цьому класі розміщено методи main, task1, ,task2, ,task3, task13. Метод Main є головним і виконується першим, тому у ньому викликаємо метод task1. Метод task1: Сюди передаються три значення: нижня межа перевірки, верхня межа перевірки і крок. Створені масиви, у які будуть записані значення функції в певній точці. Відбувається виконання функції і присвоєння значень масиву. Далі відбувається форматований вивід значень з вказаним кроком. Далі, у Main створюємо масив для завдання №2. Значення вводимо шляхом присвоєння. Викликаємо метод task2 Метод task2: У метод передаємо масив чисел, що задані присвоєнням. Далі іде перевірка чисел: якщо воно більше 0, то додається до суми, якщо менше нуля, то виводиться сума всіх попередніх. Далі, у Main виводимо початкові значення (масив чисел), за допомогою методу Arrays.toString() і результат обчислень. Далі, у методі Main даємо можливість користувачеві вибрати, що знайти з заданого числового ряду: суму чи добуток. Виводимо відповідний ряд при різних значення х, а3 саме, коли х=0,6 і х=2,8. Викликаємо метод task3 Метод task3: В цей метод передаємо вибір користувача і зміну х. Потім, за допомогою циклів for i while розраховуємо необхідні значення і повертаємо результат. (Зауваження: у методі використано метод task13, у якому рекурсивним способом обчислюється факторіал переданого числа). Блок-схема для завдання №3 / Копія коду на білому фоні package com.company; import java.util.Arrays; import java.util.Scanner; import static java.lang.Math.*; public class Main { public static void main(String[] args) { System.out.println("---------Завдання №1----------"); task1(4.5, 18.5, 0.4); // Завдання 2 int[] arr = {5, 47, 18, 25, 3, 54, -2, 0, 1, 12, 81}; int res = task2(arr); System.out.println("\n\n---------Завдання №2----------"); System.out.print("Вхідні дані (набір чисел) - "); System.out.println(Arrays.toString(arr)); System.out.printf("Результат обчислень: %d", res); // Завдання 3 System.out.println("\n\n---------Завдання №3----------"); System.out.println("Якщо ви бажаєте знайти суму ряду - натисніть 0, " + "якщо добуток - натисніть 1"); Scanner scan = new Scanner(System.in); int choice = scan.nextInt(); System.out.print("Числовий ряд при х = 0,6:"); for (int k = 1; k < 7; k++) { System.out.printf(" %.4f ", pow(-1, k) * pow(0.6, 4 * k + 1) / task31(2)); } double res1 = task3(choice, 0.6); System.out.printf("\nРезультат виконання завдання: %.4f \n", res1); System.out.println(); System.out.print("Числовий ряд при х = 2,8:"); for (int k = 1; k < 7; k++) { System.out.printf(" %.4f ", pow(-1, k) * pow(2.8, 4 * k + 1) / task31(2)); } double res2 = task3(choice, 2.8); System.out.printf("\nРезультат виконання завдання: %.4f \n", res2); } public static void task1 ( double lim1, double lim2, double step){ double number = (lim2 - lim1) / step + 1; double[] Y = new double[(int) number]; double[] Z = new double[(int) number]; double x = lim1; for (int i = 0; i < number; i++, x += step) { Y[i] = abs(cos(x / 3)); Z[i] = tan(sqrt(x)); System.out.printf("%2d. x = %.2f ", i + 1, x); System.out.printf("y(x) = %2.4f ", Y[i]); System.out.printf("z(x) = %2.4f ", Z[i]); System.out.println(); } } public static int task2 ( int[] array){ int result = 0; for (int i = 0; i < array.length; i++) { if (array[i] < 0) break; else result += array[i]; } return result; } public static double task3 ( int choice, double x){ double Y; int factorial = task31(2); double result = 1; if (choice == 0) { for (int k = 1; k < 7; k++) { Y = pow(-1, k) * pow(x, 4 * k + 1) / factorial; result += Y; } return (result - 1); } if (choice == 1) { int i = 0; while (i < 7) { Y = pow(-1, i) * pow(x, 4 * i + 1) / factorial; result *= Y; i++; } } return result; } public static int task31(int num){ if (num < 1) return 1; else { return (num * task31(num - 1)); } } } Отримані результати / / Висновок: В процесі виконання лабораторної роботи №3 набуто практичних навичок програмування циклічних алгоритмів, використання операторів циклів for, while, do while при створюванні програмних проектів циклічної структури. Побудовано блок-схему, що коротко і доступно описує процеси, що відбуваються при вирішенні завдання №3.
Антиботан аватар за замовчуванням

08.05.2023 18:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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