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

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

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

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

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем ЗВІТ з лабораторної роботи № 3 з дисципліни «Програмування алгоритмічних структур» Тема «Програмування циклічних алгоритмів» Варіант № 13 Мета роботи: набуття практичних навичок використання операторів циклів for, while, do while при створюванні програмних проектів циклічної структури. Завдання на лабораторну роботу. 1. Розробити блок-схеми алгоритмів і написати програми мовою Java із застосуванням операторів циклів for, while, do while для розв’язання завдань, поданих в табл. 1 – 3 відповідно до індивідуального варіанта. Варіант обрати за списком групи. 2. Розробити програмні проекти в середовищі Intellij IDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками (наприклад, Excel, калькулятор, тощо). Короткий опис рішення завдань Завдання дозволяє виконати і табулювання функцій, і відповідний вивід одразу в одному циклі. У розділі ініціалізації циклу створюємо змінну х, яка одразу буде відігравати роль і ітератора, і змінної для обрахунку двох функцій, її початкове значення дорівнює лівої границі вказаного інтервалу табулювання функцій. У розділі критерія маємо обмежити зростання змінної, доки вона менше або дорівнює правій границі вказаного інтервалу табулювання. Замість звичайного ітерування х збільшується рівно на значення кроку. У методі створюємо цикл, який перебирає всі члени послідовності, починаючи з другого. Як тільки перевірка з’ясовує, що поточний член менше або дорівнює минулому(поточний – 1), то одразу повертаємо відповідне значення, що числа не складають зростаючу послідовність. Треба створити два методи для обрахунку добутку і суми ряду відповідно. В обох імітуємо операцію ітерування ряду, використовуючи цикл, в тілі якого або дододаємо суму, або домножуємо добуток. / Рисунок 4 Блок-схема до завдання 3 Програма проекту public class Lr3 { public static void main(String[] args) { System.out.println("\nЗАВДАННЯ 1"); task1(0.5, 11, 0.3); System.out.println("\nЗАВДАННЯ 2\n"); int[][] progressions = new int[][]{{-5,1,2,3,4,5,6,7,8,9,10,15}, {0,1,2,3,4,5,4,3,2,1,0}}; for (int i = 0; i< 2;i++) { boolean isGrowingProgression = task2(progressions[i]); String message = isGrowingProgression ? "Так, числа складають зростаючу полсідовність." : "Ні, числа не складають зростауючу послідовність."; System.out.println("Числова послідновність "+(i+1)+":\n" + Arrays.toString(progressions[i])); System.out.println(message + "\n"); } System.out.println("ЗАВДАННЯ 3\n"); double[] x = new double[] { 0.6, 2.8 }; for (int i = 0; i<2; i++) { System.out.println("\tПРИ Х = " + x[i]); System.out.printf("Сума ряду = %.3f", task31(x[i])); System.out.printf("\nДобуток ряду = %.3f\n\n", task32(x[i])); } } static void task1(double starting, double ending, double step) { System.out.printf("\n X | Y(X) | Z(X)\n"); double x = starting; while(Math.round(x*10)/10.0<=ending) { double y = Math.pow(Math.sin(x), 2) * Math.cos(x - Math.PI); double z = Math.cos(x)/x; System.out.printf("%.1f | %.4f | %.4f\n", x, y, z); x+=step; } } static boolean task2(int[] progression) { for (int i = 1; i< progression.length; i++) if (progression[i] <= progression[i-1]) return false; return true; } static double task31(double x) { double sum = 0.0; for (int i = 1; i<=11; i++) { sum+=(Math.pow(-1,i) * Math.pow(x,i))/(factorial(i) * Math.cos(i + Math.PI/4)); } return sum; } static double task32(double x) { double product = 1.0; for (int i = 1; i<=11; i++) { product*=(Math.pow(-1,i) * Math.pow(x,i))/(factorial(i) * Math.cos(i + Math.PI/4)); } return product; } static int factorial(int n) { if (n <= 1) return 1; return n * factorial(n - 1); } } Результат обчислень Висновки: навчився програмувати циклічні алгоритми на прикладах 1) знаходження значень функцій з різними значеннями аргументу під час табулювання (дослідження) певних функцій з заданим кроком, 2) перевірки заданих набір чисел на те, чи складають вони зростаючу послідовність, 3) знаходження факторіала, 4) обрахунку суми та добутку певного ряду із скінченим значенням ітератора.
Антиботан аватар за замовчуванням

25.07.2023 18:07-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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