Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра автоматизації проектування енергетичних процесів і систем
РОЗРАХУНКОВО-ГРАФІЧНА РОБОТА
з дисципліни «Програмування алгоритмічних структур»
Тема «Програмування базових алгоритмів»
Варіант № 12
Завдання на РГР разом із скріншотом вирізаного варіанту завдання додатків 1,2
1.Розробити алгоритми і написати програми мовою Java із застосуванням
операторів циклів for, while, do while для розв’язання завдань,поданих в
додатках 1,2 відповідно до індивідуального варіанта.Варіант обрати за списком групи.
2.Розробити програмний проект в середовищі Intellij IDEA для реалізації
написаних програм. Перевірити результати обчислень альтернативними
розрахунками (наприклад, Excel, калькулятор, тощо).
3.Оформити РГР та вчасно надіслати викладачу на перевірку файл РГР
та файл програми.
Короткий опис рішення завдання
Завдавння 1
Введення значень матриці оргазовуємо за допомогою присвоєння. Створюємо чотири методи task11(для обчислення трикутної матриці), task12(для обичслення вектору результатів), task13(для виведення матриць на екран),Task13(для виведення вектору результатів).
В метод task11 передається початкова матриця, в даному методі організовуємо прямий хід методу Гаусса, використовуючи оператори while та for.Обчислену трикутну матрицю повертаємо.
В метод task12 передається трикутна матриця, організовуємо зворотний хід методу Гаусса і повертаємо вектор результатів.
В метод task13 передаємо початкову і трикутну матриці, вектор результатів для виведення їх на консоль.
Завдання 2
За допомогою Scanner вводимо натуральне число. В методі task2 створюємо рядок і додаємо до нього значення х. Створюємо масив символів, значення якого, отримуємо перетворенням заданого нами рядка в масив символів. Створюємо символ first, значення якого буде дорівнювати першому елементу масиву.Задаємо початковому елементу масива значення кінцевого. Останньому елементу масиву присвоюємо значення символу first. Присвоюємо нове значення рядку.Перетворюємо рядок на тип даних int і присвоюємо його х.
Блок-схема алгоритму для другого завдання
/
Програма проекту (копія коду на білому фоні)
package com.company;import java.util.Scanner;public class RgrTr15Tkac { public static void main(String[] args) { double[][] Matrix = { {-4, 3, -1, -5, -2, 2}, {5, -2, -6, -1, 6, 10.4}, {9, -5, -10, -9, 5, -0.3}, {9, -8, -3, -6, -7, -69.7}, {2, 8, 0, -7, 5, 31.6} }; double[][] Matrixtriple = task11(Matrix);//передаємо початкову матрицюсв метод task11 double[] VektorMatrix = task12(Matrixtriple);//передаємо трикутну матрицю в метод task12 System.out.println("\t\t\t\tTask1"); System.out.println("Початкова матриця:"); task13(Matrix);//виведення початкової матриці за допомогою методу task13 System.out.println("Трикутна матриця:"); task13(Matrixtriple);//виведення трикутної матриці за допомогою методу task13 System.out.println("Вектор результатів:"); task13(VektorMatrix);//виведення вектору результатів за допомогою методу Task13 System.out.println("\t\t\t\tTask2"); System.out.print("Введіть натуральне число:"); Scanner in = new Scanner(System.in); int x = in.nextInt();//введення натурального числа для опрацювання x=task2(x);//присвоєння нового значення х через метод task2 System.out.printf("Опрацьоване число:%d",x);//виведнння опрацьованого числа } public static double [][] task11 (double[][] Array)//створення методу переробки звичайної матриці в трикутну { double[][] arr = new double[Array.length][Array[0].length]; int g = 0; double h; while (g < Array.length) {//прописуємо момент до якого будуть проводитися обчислення за допомогою оператора передумови for (int j = 0; j < Array[g].length; j++) {// за допомогою оператора for прописуємо обчислення у матриці arr[g][j] = Array[g][j]; } g++; } for (int l = 1; l < Array.length; l++) { for (int p = l; p < arr.length; p++) { h = arr[p][l - 1] / arr[l - 1][l - 1]; int q = l - 1; while (q < arr[p].length) { arr[p][q] = arr[p][q] - h * arr[l - 1][q]; q++; } } } return arr;//повертаємо трикутну матрицю } public static double [] task12(double[][] triplearr) {//метод для обчислення вектора результатів double[][] Array = new double[triplearr.length][triplearr[0].length]; int g = 0; while (g < triplearr.length) {//прописуємо момент до якого будуть проводитися обчислення за допомогою оператора передумови for (int i = 0; i < triplearr[g].length; i++) { Array[g][i] = triplearr[g][i]; } g++; } double M[] = new double[triplearr.length]; for (int q = triplearr.length - 1; q >= 0; q--) { M[q] = Array[q][triplearr.length] / Array[q][q]; int y = triplearr.length - 1; while (y > q) { M[q] = M[q] - Array[q][y] * M[y] / Array[q][q]; y--; } } return M;//повертаємо вектор } public static void task13(double [][] Array)//метод для виведення результатів обчислення матриць (для початкової і трикутної матриць) { for(int g=0;g<Array.length;g++) { System.out.print("||"); for (int l=0;l<Array[g].length;l++) { if (Array[g][l]%1 == 0) { System.out.printf("%7.0f\t", Array[g][l]); } else { System.out.printf("%7.1f\t", Array[g][l]); } } System.out.print("||\n"); } } public static void task13(double [] Array)//метод для виведення результатів обчислення вектора результатів { System.out.print("{"); for (int j = 0; j < Array.length; j++) { if (Array[j] % 2 == 0) { System.out.printf("%7.0f\t", Array[j]); } else { System.out.printf("%7.3f\t", Array[j]); } } System.out.println("}"); } static int task2(int x) { String str = ""+x; char[] chars = str.toCharArray();//перетворюємо рядок на масив символів char first = chars[0];//вводиммо новий символ,значення якого дорівнює першому елементу масиву chars[0] = chars[chars.length - 1];//присвоюємо першому елементу масиву значення останнього елемента масиву chars[chars.length - 1] = first;//останньому елементу присвоюємо значення символу first str = new String(chars); x = Integer.parseInt (str);//присвоюємо значення рядка,який перетворюємо в тип Int return x;//повертаємо х }}
Результати обчислень (обрізаний скріншот екрану)
/
Висновки
Під час виконання розрахунково-графічної роботи я набула практичних навичок розробки розгалужених та циклічних алгоритмів при створюванні програмних проектів для розв’язання практичних завдань.