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

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

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

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

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

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем РОЗРАХУНКОВО-ГРАФІЧНА РОБОТА з дисципліни «Програмування алгоритмічних структур» Тема «Програмування базових алгоритмів» Варіант № 4 Завдання на розрахунково-графічну роботу (РГР) 1.Розробити алгоритми і написати програми мовою Java із застосуванням операторів циклів for, while, do while для розв’язання завдань, поданих в додатках 1, 2 відповідно до індивідуального варіанта. Варіант обрати за списком групи. 2.Розробити програмний проект в середовищі Intellij IDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками (наприклад, Excel, калькулятор, тощо). 3.Оформити РГР та вчасно надіслати викладачу на перевірку файл РГР та файл програми. Завдання 1 за варіантом: / Завдання 2 за варіантом: / Короткий опис рішення завдання: Завдання 1: В методы main переписуємо всі числа із поданої СЛАР в масив, а далі робимо розподіл етапів на методи, як зазначено в завданні (task11 для перетворення матриці до трикутникового вигляду, task12 для отримання значень невідомих змінних СЛАР, task13 для виведення виводу результатів розрахунку завдання 1). У task11 матриця зводиться до трикутного виду (віднімаємо від нижніх рядків верхні, роблячи нулі). У task12 знаходимо невідомі змінні СЛАР, рухаючись знизу вгору, щоб невідомі знаходилися одна за одною. У task13 початковий і зведений до трикутного вигляду масиви, виводяться у вигляді матриці, а невідомі змінні під відповідним рядком (вектор відповіді). Завдання 2: Вводимо у main сканер, який буде зчитувати задані користувачем числа. Далі завдяки циклу повертаємо кількість парних цифр числа. Блок-схема алгоритму для другого завдання: / Програма проекту (копія коду на білому фоні): package tr15.smirnov; import java.util.Scanner; public class RgrTr15Smir { public static void main (String[] args) { Scanner s = new Scanner(System.in); int[] t3 = new int[3]; double[][] matrix = {{5, 0, -1, 5, -2, -56.1}, {-1, 5, 6, 1, 1, -51.1}, {2, 4, 3, 5, 0, -81.3}, {3, 3, 2, 3, 2, -77.2}, {0, 0, 2, -1, 6, -31.3}}; double[][] triangle = task11(matrix); double[][] vector = task12(triangle); System.out.print("Початкова матриця:\n"); task13(matrix); System.out.print("Трикутникова матриця:\n"); task13(triangle); System.out.print("Вектор результатів:\n"); task13(vector); for (int i = 0; i < t3.length; i++) { System.out.printf("Варіант %d = ", i+1); t3[i] = s.nextInt(); } for (int i = 0; i < t3.length; i++) { System.out.printf("У числі %d кількість парних цифр дорівнює %d.\n", t3[i], task2(t3[i])); } } public static double[][] task11 (double[][] m) { double[][] res = new double[m.length][m[0].length]; for (int i = 0; i < m.length; i++) { for (int j = 0; j < m[0].length; j++) { res[i][j] = m[i][j]; } } double[] var; double k; int num = 1; while (num < res.length) { for (int i = num; i < res.length; i++) { if (res[num-1][num-1] == 0) { var = res[num-1]; res[num] = var; res[num-1] = res[num]; i--; } else if (res[i][num-1] != 0) { k = res[num-1][num-1] / res[i][num-1]; for (int j = num-1; j < res[0].length; j++) { res[i][j] = res[num-1][j] - k * res[i][j]; } } } num++; } return res; } public static double[][] task12 (double[][] tM) { double[][] r = new double[1][tM.length]; int num = tM.length-1; int jRes = 0; double x, sum, var; while (num >= 0) { sum = tM[num][tM[0].length-1]; for (int j = 0; j < jRes; j++) { sum -= r[0][j] * tM[num][tM[0].length-2-j]; } x = sum / tM[num][num]; r[0][jRes] = x; jRes++; num--; } for (int i = 0; i < r[0].length/2; i++) { var = r[0][i]; r[0][i] = r[0][r[0].length-i-1]; r[0][r[0].length-i-1] = var; } return r; } public static void task13 (double[][] m) { String s = "\t"; for (int i = 0; i < m.length; i++) { if (m.length == 1) { s = " "; } for (int j = 0; j < m[0].length; j++) { if (Math.abs(Math.round(m[i][j]) - m[i][j]) < Math.pow(10, -4)) { System.out.printf("%.0f\t" + s, m[i][j]); } else { System.out.printf("%.2f" + s, m[i][j]); } } System.out.print("\n"); } } public static int task2 (int n) { int res, var; res = 0; for (int i = 0; i < 10; i++) { var = (int) Math.pow(10, i); if (var <= n) { if ((n/var) % 2 == 0) { res++; } } else { return res; } } return res; } } Результати обчислень: Завдання 1: / Завдання 2: / Перевірка результатів за допомогою онлайн-калькулятора: / / Висновок: Я набув практичних навичок у розробці розгалужених та циклічних алгоритмів при створюванні програмних проектів для розв’язання практичних завдань. Розробив алгоритми і написав програми мовою Java із застосуванням операторів циклів for, while, do while для розв’язання завдань, поданих в додатках 1, 2 відповідно до індивідуального варіанта (4). Розробив програмний проект в середовищі Intellij IDEA для реалізації написаних програм. Перевірив результати обчислень альтернативними розрахунками (). Оформити РГР та вчасно надіслати викладачу на перевірку файл РГР та файл програми.
Антиботан аватар за замовчуванням

16.05.2023 09:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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