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

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

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

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

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

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем ЗВІТ з лабораторної роботи № 3 з дисципліни «Програмування алгоритмічних структур» Тема «Програмування циклічних алгоритмів» Варіант № 21 Мета роботи: набуття практичних навичок використання операторів циклів for, while, do while при створюванні програмних проектів циклічної структури. Завдання на лабораторну роботу. 1.Розробити блок-схеми алгоритмів і написати програми мовоюJava із застосуванням операторів циклів for, while, do while для розв’язання завдань ,поданих в табл.1–3 відповідно до індивідуального варіанта. Варіант обрати за списком групи. 2.Розробити програмні проекти в середовищі Intellij IDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками (наприклад,Excel, калькулятор, тощо). 3. Зробити Звіт з лабораторної роботи та вчасно надіслати викладачу на перевірку. Завдання для варіанту 21: Завдання 1 / Завдання 2 / *послідовність додатніх цілих чисел Завдання 3 / Короткий опис розв`язання завдань Усі завдання я виконувала у класі LR3. Cпочатку я створила метод main, де задала мінімальне та максимальне значення х, а також значення приросту h. Пізніше я передала їх в метод task1, в якому за допомогою циклу while обраховувалися значення y(x) та z(x). Разом вони утворювали таблицю, яка виводься за допомою System.out.printf. Для виконання другого завдання у методі main я ініалізувала два масиви, вивела їх, а також результат у вигляді виводу першого нульового елементу масиву. У методі main викликала метод task2, у якому використовуючи оператор циклу for було знайдено індекси перших елементів масивів, що дорівнюють 0. Для завдання 3 у методі main я зробила ініціалізацію змінних, додала клас Scanner для вводу значень х, та вивід результату. Далі я створила метод task3, у якому реалізувала обрахунок значеннь у в залежності від х за допомогою оператору циклу while, а факторіалу – використовуючи оператор for. Блок-схема для 3 завдання / Копія коду package com.company; import java.util.Scanner; import static java.lang.Math.*; import static java.lang.Math.pow; public class LR3 { public static void main(String[] args) { System.out.println("Task №1"); task1(0.5, 11, 0.3); System.out.println("\nTask №2"); int[] s1 = {3, 1, 12, 6, 9, 32, 65, 0, 52, 98, 87, 103}; //ініціалізація значень першого масиву System.out.printf("Перший початковий масив:"); //вивід початкового масиву для першого випадку for (int i = 0; i < s1.length; i++) System.out.printf(" %d", s1[i]); System.out.printf("\nІндекс першого нульового елементу для першого випадку: %d\n", task2(s1)); int[] s2 = {2, 0, 15, 52, 76, 87, 103, 65, 79, 123}; //ініціалізація значень другого масиву System.out.printf("Другий початковий масив:"); //вивід початкового масиву для другого випадку for (int i = 0; i < s2.length; i++) System.out.printf(" %d", s2[i]); System.out.printf("\nІндекс першого нульового елементу для другого випадку: %d\n", task2(s2)); double xtask3; Scanner sc = new Scanner(System.in); System.out.print("\nTask №3\n"); for (int i = 0; i < 2; i++) { System.out.printf("Введіть змінну x%d: ", i + 1); xtask3 = sc.nextDouble(); System.out.printf("При х%d = %.1f", (i + 1), xtask3); System.out.printf("\n y = %.4f\n", task3(xtask3)); } } static void task1(double xMin, double xMax, double h) { // вивід отриманих значень у вигляді таблиці System.out.printf("--------------------------\n"); System.out.printf("| x | y(x) | z(x) |\n"); System.out.printf("--------------------------\n"); double x = xMin; while (x < xMax + h) { double y = pow(sin(x), 2) * cos(x - PI), z = sin(x) / pow(x, 2); if (x < 10) { System.out.printf("| %.2f", x); } else { System.out.printf("|%.2f", x); } if (y < 0) { System.out.printf(" |%.4f", y); } else { System.out.printf(" | %.4f", y); } if (z < 0) { System.out.printf(" |%.4f |\n", z); } else { System.out.printf(" | %.4f |\n", z); } System.out.printf("--------------------------\n"); x += h; } } static int task2( int[] array){ int index = 0; for (int i = 0; i < array.length; i++) if (array[i] == 0) index = i + 1; return index; } public static double task3(double x) { double sum = 0; int i = 1; while (i <= 11) { double factorial = 1; for (int j = 1; j <= (2 * i - 1); j++) factorial = factorial * j; sum += (Math.pow(-1, i) * Math.pow(x, 3 * i)) / factorial; i++; } return sum; } } Результати програми Для Завдання 1 / / / / Для Завдання 2 / Для Завдання 3 / Перевірка розрахунків альтернативним шляхом для Завдання 3 При х = 0,6 / При х = 2,8 / Висновки Під час виконання роботи я написала три програми з використанням умовного оператору if та операторів циклу for і while, тож було закріплено навички їх застосування при створюванні програмних проектів циклічної структури. У результаті було реалізовано програму, що досліджує функцію на заданому проміжку х з заданим кроком та утворює таблицю значень; програму, що виводить індекс першого нульового елементу масиву цілих додатніх чисел; та програму, яка розраховує значення у за формулою алгебраїчної суми в залежності від значення х. Для останнього завдання перевірила значення альтернативним калькулятором і переконалася в тому, що відповіді збігаються.
Антиботан аватар за замовчуванням

22.05.2023 11:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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