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

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

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

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

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

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем РОЗРАХУНКОВО-ГРАФІЧНА РОБОТА з дисципліни «Програмування алгоритмічних структур» Тема «Програмування базових алгоритмів» Варіант № 16 Мета роботи: набуття практичних навичок розробки розгалужених та циклічних алгоритмів при створюванні програмних проектів для розв’язання практичних завдань. Завдання на лабораторну роботу. 1. Розробити алгоритми і написати програми мовою Java із застосуванням операторів циклів for, while, do while для розв’язання завдань, поданих в додатках 1, 2 відповідно до індивідуального варіанта. Варіант обрати за списком групи. 2. Розробити програмний проект в середовищі Intellij IDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками (наприклад, Excel, калькулятор, тощо) 3. Оформити РГР та вчасно надіслати викладачу на перевірку файл РГР та файл програми. Завдання із додатків 1, 2 для 16-го варіанту: Завдання 1: / Завдання 2: / Короткий опис рішення завдання 1: У завданні 1 потрібно було вирішити СЛАР за допомогою метода Гаусса. Було створено три метода, для вирішення завдання. Task11 приводила СЛАР до трикутного виду прямим ходом. Task12 вже зворотнім ходом з трикутної матриці знаходила вектор результатів для п’яти змінних. Task13 має два варіанта, коли отримує матрицю і коли отримує одновимірний масив(вектор). Якщо це матриця, то він спочатку виводить початкову матрицю з однойменним підписом, другого разу він вже повертає трикутну матрицю з заголовком трикутна матриця. Коли до Task13 поступає одновимірний масив, то він виводить заголовок «Вектор результатів» і потім виводить через пробіл складові вектора. Короткий опис рішення завдання 2: В завданні 2 для мого варіанту потрібно було знайти кількість непарних цифр натурального числа. Task2 отримує ціле число, яке було зчитано сканером в методі main і там також було перевірено це число на натуральність, якщо число не натуральне, виводиться помилка. У Task2 у циклі while поки число не дорівнює 0 виповняеться розкладання числа на цифри за допомогою ділення на 10 та знаходження остачі. В тому ж циклі цифри перевіряються на непарність, і за виконання умови до лічильника додається 1.  Блок-схема алгоритму для 2 завдання: / Програма проекту: import java.util.Arrays; import java.util.Scanner; import java.lang.Math; public class RgrTr15Khav { public static void main(String[] args) { double array[][]={//Присвоення матриці {1,8,-5,3,10,117.5}, {-3,5,-3,5,5,92.2}, {0,2,-2,-1,-10,-91.7}, {-6,-4,-3,-2,5,40.6}, {-6,1,10,-8,8,56.8} }; System.out.printf("Завдання 1\n"); Task13(array);//Вивід початкової матриці array = Task11(array);//Перетворення початкової матриці у трикутну Task13(array);//Вивід трикутної матриці double vid[] = Task12(array);//Обчислювання вектору результатів з трикутної матриці Task13(vid);//Вивід вектору результатів System.out.printf("\n\nЗавдання 2"); Scanner in = new Scanner(System.in); for (int i=0;i<3;i++) {//Виконання 2 завдання три рази System.out.printf("\n\nВведіть натуральне число: "); int x = in.nextInt(); if (x < 1) System.out.printf("Ви ввели не натуральне число");//Перевірка на натуральність System.out.printf("\nКількість непарних цифр у числі: %d ", Task2(x));//Вивід результату обчислювань 2 завдання } } static double[][] Task11(double[][] ar) { double[][] arr = new double[ar.length][ar[0].length]; for (int i = 0; i < ar.length; i++) {//Копіювання матриці for (int j = 0; j < ar[0].length; j++) { arr[i][j] = ar[i][j]; } } double m; int k = 1; while (k-1 < arr.length - 1) {//Приводення матриці до трикутного вигляду for (int j = k; j < arr.length; j++) { m = arr[j][k-1] / arr[k-1][k-1]; for (int i = 0; i < arr[0].length; i++) { arr[j][i] = arr[j][i] - m * arr[k-1][i]; } } k++; } return arr;//Повертання трикутної матриці } static double[] Task12(double[][] ar) { int n =ar.length; double x[]={1,2,3,4,5};//Ініціалізація одновимірного масиву(вектору результатів) for (int i = ar.length-1;i>=0;i-=1){//Знаходження вектору з матриці обратним ходом x[i]=ar[i][ar.length]/ar[i][i]; for (int c=ar.length-1;c>i;c-=1){ x[i]=x[i]-ar[i][c]*x[c]/ar[i][i]; } } return x;//Повертання вектору результатів } static void Task13(double[][] arr){ if (arr[arr.length-1][0]!=0){//Перевірка одного члену, для перевірки трикутності матриці і виводу потрібного заголовка System.out.printf("Початкова матриця:\n x0 x1 x2 x3 x4 y\n"); } else System.out.printf("Трикутрникова матриця:\n"); for (int i = 0; i < arr.length; i++) {//Вивід матриці for (int j = 0; j < arr[0].length; j++) { if (arr[i][j] % 1 == 0) System.out.printf("\t%.0f\t", arr[i][j]); else System.out.printf("\t%.3f", arr[i][j]); } System.out.printf("\n"); } System.out.printf("\n\n"); } static void Task13(double[] arr){ System.out.printf("Вектор результаті:\n x0 x1 x2 x3 x4\n"); for (int i = 0; i < arr.length; i++) {//Вивід вектору результатів if (arr[i] % 1 == 0) System.out.printf("%.0f ", arr[i]); else System.out.printf("%.3f ", arr[i]); } } static int Task2(int x) { int k=0;//Ініціалізація змінних для кількості цифр та тимчасвої змінної х2 int x2=0; while (x>0){ x2 = x % 10;//Знаходження остачі від 10 - цифра if (x2%2!=0)k++;//Перевірка цифри на непарність x=(x-x2)/10;//Відкидання останьої цифри від числа } return k; } } Результати обчислень: / / Висновки: В розрахунковій роботі було набуто практичних навичок з використання розгалуження if разом з операторами циклів for, while при створюванні програмних проектів для розв’язання практичних задач. Було створено методи для обчислювання завдань з Табл.. 1-2 відповідно до індивідуального варіанту. Для завдання 1 було створено три методи: для обчислювання трикутної матриці(Task11), та знаходження вектору результатів(Task12) та виводу всіх трьох масивів(Task13). Так само для завдання 2 був створен метод Task2 для обчислювання кількості непарних цифр у натуральному числі. Була розроблена блок-схема для другого завдання. Розрахункова робота була розроблена у середовищі Intellij IDEA, де, було створено проект, та класс. Результати програми перевіряв вручну за допомогою калькулятора, помилок не було знайдено. Зроблено звіт з лабораторної роботи та вчасно надіслано викладачу на перевірку.
Антиботан аватар за замовчуванням

10.05.2023 18:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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