DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем ЗВІТ з лабораторної роботи № 3 з дисципліни «Програмування алгоритмічних структур» Тема «Програмування циклічних алгоритмів» Варіант-15 Завдання на лабораторну роботу. 1. Розробити блок-схеми алгоритмів і написати програми мовою Java із застосуванням операторів циклів for, while, do while для розв’язання завдань, поданих в табл. 1 – 3 відповідно до індивідуального варіанта. Варіант обрати за списком групи. 2. Розробити програмні проекти в середовищі Intellij IDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками (наприклад, Excel, калькулятор, тощо). 3. Зробити Звіт з лабораторної роботи та вчасно надіслати викладачу на перевірку Завдання 1: / Завдання 2: / Завдання 3: / Короткий опис рішення завдань: Завдання №1. У завданні 1 потрібно було розробити програму, яка допомогою заданих функцій, заданого кроку h змінної х, та обмеження значень змінної х для цієї функції досліджуються самі задані функції, і їхнє дослідження має виводитись у вигляді таблиці. Дану програму було розроблено у одному методі task1 типу void. У сам метод передаються мінімальне та максимальне значення х та крок цієї змінної. Дві функції досліджуються за допомогою циклу for() , у якому поступово із заданим кроком збільшується змінна х і підставляється у задані функції. Усі результати виводяться за допомогою форматованого виводу у вигляді таблиці у консоль. Завдання №2. Завдання 2 було виконане у двох методах task21 i task22. У методі task21 організовано обрахунок та виведення к-сті елементів послідовності, що діляться на 5 і не діляться на 7. У методі task22 організовано обчислення суми цих елементів. У методі main організовано вивід самої послідовності, виведення к-сті елементів, та їхня сума. Завдання №3 Для виконання завдання 3 було створено 3 методи: task31, task32, task33. У методі task33 розроблено обчислення факторіалу заданого у нього числа, він був розроблений для його використання у методах task31, task32. У методі task31 організовано обчислення суми данного у завданні ряду. У методі task32 організовано обчислення добутку усіх членів даного у завданні ряду. У методі main організовано введення та виведення усіх даних що використовуються та визначаються у цих методах. У методах були використані різні цикли( for(), while()). Блок-схема рішення завдання 3: Task33() // Знаходження факторіалу числа / task31() // Обчислення суми членів ряду / task32() // Обчислення добутку членів ряду / Копія коду: package com.company; import static java.lang.Math.*; import java.util.Scanner; public class Main { public static void main(String[] args) { // ---- Task1 ---- double min = 4.5; double max = 18.5; double h = 0.4; task1(min,max,h); System.out.printf("\n"); // ---- Task2 ---- int[] arr1 = {2,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35}; // y = 2n+1 int[] arr2 = {13,5,7,14,15,35,86,60,23,21,54,76,45}; // rand natural numbers System.out.printf("-------- Task 2 -------\n"); System.out.printf("Послідовність: {"); for(int i = 0 ; i < arr1.length; i++) { System.out.printf("%d, ", arr1[i]); } System.out.printf("}\n"); System.out.printf("К-сть елементів послідовності, що діляться на 5 і не діляться на 7: %d\n",task21(arr1)); System.out.printf("Сума цих елементів: %d\n",task22(arr1)); System.out.printf("\n\n"); System.out.printf("Послідовність: {"); for(int i = 0 ; i < arr2.length; i++) { System.out.printf("%d, ", arr2[i]); } System.out.printf("}\n"); System.out.printf("К-сть елементів послідовності, що діляться на 5 і не діляться на 7: %d\n",task21(arr2)); System.out.printf("Сума цих елементів: %d\n",task22(arr2)); System.out.printf("\n"); // ---- Task3 ---- System.out.println("---- Task 3 ----"); Scanner scan = new Scanner(System.in); System.out.printf("Уведіть число, для якого потрібно обрахувати суму чи добуток ряду: \n"); double x1 = scan.nextDouble(); System.out.printf("Введене число: x = %.4f \n", x1); System.out.printf("Сума ряду: %.4f\nДобуток ряду: %.4f\n",task31(x1),task32(x1)); System.out.printf("Уведіть число, для якого потрібно обрахувати суму чи добуток ряду: \n"); double x2 = scan.nextDouble(); System.out.printf("Введене число: x = %.4f \n", x2); System.out.printf("Сума ряду: %.4f\nДобуток ряду: %.4f\n",task31(x2),task32(x2)); } public static void task1(double min, double max, double h) { System.out.printf("-------- Task 1 -------\n\n"); System.out.printf("+-------+---------------+----------------+\n"); System.out.printf("| x = | y = x/(x-3)^2 | z = |cos(x/3)| |\n"); System.out.printf("+-------+---------------+----------------+\n"); for (double i = min; i <= max; i = i + h) { double x = i; double y1 = x/pow((x-3),2); double y2 = abs(cos(x/3)); System.out.format("| %-6.1f| %-12.4f| %-13.4f|%n", x, y1, y2); } System.out.printf("+-------+---------------+----------------+\n"); } public static int task21(int[] arr) { // Обраховуємо к-сть елементів послідовності, що діляться на 5 і не діляться на 7 int count = 0; for(int i = 0 ; i < arr.length; i++) { if(arr[i] % 5 == 0 && arr[i] % 7 != 0) { count++; } } return count; } public static int task22(int[] arr) { // Обчислення суму цих елементів int sum = 0; for(int i = 0 ; i < arr.length; i++) { if(arr[i] % 5 == 0 && arr[i] % 7 != 0) { sum += arr[i]; } } return sum; } public static double task31(double x){ // Обчислення суми членів ряду double sum = 0; for(int k = 1; k <= 5; k++) { sum += task33(k+1)/pow(x,k+2); } return sum; } public static double task32(double x){ // Обчислення добутку членів ряду double sum = 1; int k = 1; while ( k <= 5 ) { sum *= task33(k+1)/pow(x,k+2); k++; } return sum; } public static double task33(double num){ // Обчислення факторіалу заданого числа double fact = 1; int i = 1; while( i <= num) { fact *= i; i++; } return fact; } } Скріншоти результатів обчислень: / / Висновок: Під час виконання даної лабораторної роботи набуто практичних навичок з використання операторів циклів при створюванні програмних проектів циклічної структури. Набуто навичок з створювання таблиць при виводі, обрахунку добутку, суми рядів та факторіалу. Усі розрахунки є вірними і були перевірені на калькуляторі.
Антиботан аватар за замовчуванням

03.05.2023 18:55

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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