Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра автоматизації проектування енергетичних процесів і систем
РОЗРАХУНКОВО-ГРАФІЧНА РОБОТА
з дисципліни “Програмування алгоритмічних структур”
Тема “Програмування базових алгоритмів”
Варіант-22
Завдання на розрахунково-графічну роботу (РГР):
1.Розробити алгоритмиі написати програми мовою Java із застосуванням операторів циклів for, while, do while для розв’язання завдань, поданих вдодатках1,2відповіднодо індивідуального варіанта. Варіант обрати за списком групи.
2.Розробити програмний проект в середовищі IntellijIDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками(наприклад, Excel, калькулятор, тощо).
3.Оформити РГР та вчасно надіслати викладачу на перевірку файл РГР та файл програми
Завдання 1:
/
Завдання 2:
/
Хід роботи
Завдання 1
Розроблено алгоритм рішення СЛАР за допомогою методу Гаусса. У виконнані данох роботи було свторено 3 методи. Перший зводив матрицю, другий виводим корені СЛАР, третій виводив матрицю та результати.
Завдання 2
Розроблено алгоритм знаходження трьохзначних чисел які діляться на 47 з остачею 43. Так як трьохзначних чисел що діляться на 43 з остачею 47 не існує, це перевірено на калькуляторі та доведено у програмі. Тому у консоль виводяться числа що дыляться на 47 і мають остачу 43.
Блоксхема завдання 2
/
Копія коду:
package com.company;
public class RgrTr15Sham {
public static void main(String[] args) {
double[][] arr = {
{8,-2,-10,-10,3,105.5},
{5,-7,-4,-3,-1,54.8},
{9,2,-10,8,-3,107.1},
{3,5,2,-1,6,36.3},
{-10,-5,4,7,-4,-102.3}
};
double[] result;
System.out.println("Завдання 1");
System.out.printf("Початкова матриця:\n");
task13(arr);
task11(arr);
System.out.printf("Трикутна матриця:\n");
task13(arr);
System.out.printf("Корені системи:\n");
result = task12(arr);
task13(result);
System.out.println();
System.out.println("Завдання 2");
task2();
}
static public double[][] task11(double[][] arr) {
int a = 1;
int n=5, m =6;
double koef;
while(a<n){
for (int j = a; j < n; j++) {
koef = arr[j][a-1] / arr[a-1][a-1];
for (int i = 0; i < m; i++) {
arr[j][i] = arr[j][i] - koef * arr[a-1][i];
}
}
a++;
}
return arr;
}
static public double[] task12(double[][] arr) {
int n=5;
int m = n-1;
double[] result = new double[n];
while (m >= 0){
result[m] = arr[m][n] / arr[m][m];
for(int j = n-1; j > m; j--) {
result[m] = result[m] - arr[m][j] * result[j] / arr[m][m];
}
m--;
}
return result;
}
static public void task13(double[][] arr) {
int i = 0;
int n=5, m =6;
while (i < n) {
for (int j = 0; j < m; j++) {
System.out.printf("%.3f ", arr[i][j]);
}
System.out.println();
i++;
}
}
static public void task13(double[] result) {
int n=5;
for (int i = 0; i < n; i++) {
System.out.printf("%.3f ", result[i]);
}
}
static public void task2() {
for(int i = 100; i < 1000; i++) {
if(i%47==43 && i%43==47) {
System.out.printf("%d ", i);
}
}
System.out.println();
for(int i = 100; i < 1000; i++) {
if(i%47==43) {
System.out.printf("%d ", i);
}
}
}
}