DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт з лабораторної роботи № 3 з дисципліни «Програмування алгоритмічних структур»

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

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

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

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

Про що ця робота

У звіті наведено розв'язання задач програмування циклічних алгоритмів мовою Java. Описано реалізацію табулювання функцій, перевірки числових послідовностей та обчислення сум і добутку рядів.

У роботі розглядаються

  • Програмування мовою Java
  • Циклічні алгоритми
  • Табулювання функцій
  • Числові послідовності
  • Обчислення факторіала
  • Сума та добуток рядів

Зміст і розділи

  1. Мета роботи
  2. Завдання на лабораторну роботу
  3. Короткий опис рішення завдань
  4. Програма проекту
  5. Результат обчислень
  6. Висновки
Для кого:Студенти технічних спеціальностей та викладачі програмування
Викладачі:Викладач кафедри

Ключові поняття

цикл forцикл whileцикл do whileтабулювання функційзростаюча послідовністьфакторіалсума рядудобуток рядуIntelliJ IDEAJava

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем ЗВІТ з лабораторної роботи № 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) обрахунку суми та добутку певного ряду із скінченим значенням ітератора.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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