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

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

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

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

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

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем ЗВІТ з Розрахункової графічної роботи з дисципліни «Програмування алгоритмічних структур» Тема «Програмування базових алгоритмів» Варіант № 3 Завдання на розрахунково-графічну роботу (РГР). 1.Розробити алгоритми і написати програми мовою Java із застосуванням операторів циклів for, while, do while для розв’язання завдань, поданих в додатках 1, 2 відповідно до індивідуального варіанта. Варіант обрати за списком групи. 2.Розробити програмний проект в середовищі IntellijIDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками (наприклад, Excel, калькулятор, тощо). 3.Оформити РГР та вчасно надіслати викладачу на перевіркуфайл РГР та файл програми. Завдвння 1: / Завдання 2: / Короткий опис завдання 1: Для першого завдання я створив метод task1 в якому за допомогою циклів while I for метод перетворює початкову матрицю на трикутну. Далі було написано метод task2 в якому при задаванні трикутної матриці, повертався вектор результатів. Метод task3 створено щоб виводити на екран матриці. Короткий опис другого завдання: Для другого завдання я створив метод task2 в якому за допомогою одного цикла while зміг виводити суму дільників заданого числа. Число задаєтьбся вручну. Блок-схема до другого завдання: / Копія коду на білому фоні: package com.company; import java.util.Scanner; public class RgrTr15Slus { public static void main(String[] args) { double arr[][] = {{-2, 0, 2, 4, -3, 44.8},{-1, 0, -5, 1, -5, 28.6}, {-2, 1, -2, 3, -5, 34.5}, {-1, -4, -5, 0, 5, -23.8}, {-5, 2, -1, -5, 2, -99.6}}; double matrix[][] = new double[arr.length][arr[0].length]; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[1].length; j++) { matrix[i][j] = arr[i][j]; } } //поміняємо рядки матриці так щоб на головній діагоналі не було нулів for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length; j++) { if (arr[i][i] == 0) { matrix[i][j] = matrix[arr.length - 1][j]; matrix[arr.length - 1][j] = arr[i][j]; } } } System.out.print("\nПочаткова матриця:\n"); task13(arr); System.out.print("Трикутна матриця:\n"); task13(task11(matrix)); System.out.print("Вектор результатів: \n"); task12(task11(matrix)); System.out.println("Task2"); int a, b, с; Scanner scan = new Scanner(System.in); System.out.print("Введіть число: "); a = scan.nextInt(); task2(a); System.out.print("Введіть інше число: "); b = scan.nextInt(); task2(b); System.out.print("Введіть ще одне число: "); с = scan.nextInt(); task2(с); } public static double[][] task11(double array[][]) { double[][] array2 = new double[array.length][array[0].length]; int i = 0; while (i < array.length) { for (int j = 0; j < array[i].length; j++) { array2[i][j] = array[i][j]; } i++; } double p; for (int k = 1; k < array2.length; k++) { for (int j = k; j < array2.length; j++) { if (array2[k - 1][k - 1] == 0) { double arr[][] = new double[array.length][array[0].length]; for (int a = 0; a < 5; a++) { for (int b = 0; b < 6; b++) { arr[a][b] = array2[a][b]; } } } p = array2[j][k - 1] / array2[k - 1][k - 1]; int n = k - 1; while (n < array2[j].length) { array2[j][n] = array2[j][n] - p * array2[k - 1][n]; n++; } } } return array2; } public static void task12(double array[][]) { double x1, x2, x3, x4, x5; x5 = array[4][5] / array[4][4]; x4 = (array[3][5] - array[3][4] * x5) /array[3][3]; x3 = (array[2][5] - array[2][4] * x5 - array[2][3] * x4) / array[2][2]; x2 = (array[1][5] - array[1][4] * x5 - array[1][3] * x4 - array[1][2] * x3) / array[1][1]; x1 = (array[0][5] - array[0][4] * x5 - array[0][3] * x4 - array[0][2] * x3 - array[0][1] * x2) / array[0][0]; System.out.printf("x1 = %1.2f \n", x1); System.out.printf("x2 = %1.2f \n", x2); System.out.printf("x3 = %1.2f \n", x3); System.out.printf("x4 = %1.2f \n", x4); System.out.printf("x5 = %1.2f \n", x5); } public static void task13(double array[][]) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 6; j++) { if (array[i][j] % 1 == 0) { System.out.printf("%1.0f\t", array[i][j]); } else { System.out.printf("%1.2f\t", array[i][j]); } } System.out.printf("\n"); } } public static void task2(int a) { int i = 1; int p = 0; while (i <= a) { if (a % i == 0) { p = p + i; i++; } else { i++; } } System.out.printf("Сума дільників числа %d = %d\n", a, p); } } Результати обчислень: / Висновки: Під час даної розрахунково-графічної роботи я вдосконалив свої навички щодо роботи з циклами, матрицями, методами і операціями над змінними. Набув знань щодо використання циклів for і while при створюванні програм циклічної будови. Написав програму для розв’язання СЛАР методом Гаусса. Оформив звіт і здав викладачу на перевірку.
Антиботан аватар за замовчуванням

06.05.2023 11:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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