DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт до модульної контрольної роботи №1 з дисципліни «Алгоритмізація та програмування»

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

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

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

Рік:
2023
Тип роботи:
Звіт
Предмет:
Алгоритмізація та програмування
Група:
ТР-15
Коротко про документ

Про що ця робота

Звіт містить виконання модульної контрольної роботи №1 з програмування на мові C. Робота охоплює створення алгоритму для знаходження оберненої матриці та її перевірку.

У роботі розглядаються

  • Програмування на C
  • Робота з матрицями
  • Обчислення визначника
  • Обернена матриця
  • Консольні параметри
  • Множення матриць

Зміст і розділи

  1. Завдання на модульну контрольну роботу
  2. Хід роботи
  3. Код програми
Для кого:Студенти технічних спеціальностей, викладачі програмування
Викладачі:Викладач з дисципліни Алгоритмізація та програмування

Ключові поняття

матрицявизначникобернена матрицяконсольні параметриодинична матрицяалгоритмCмасивперевіркакод програми

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

Національний технічний університет України  «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 1: Базові концепції програмування ЗВІТ До модульної контрольної роботи №1 Варіант 5 Дата «1» грудня 2021 Завдання на Модульну контрольну роботу: Матриця 3 на 3 Значення від 0 0 до 2 2 як додаткові- початкові параметри (9 повинно бути, після імені програми) Алгоритм оберненої матриці Перед цим перевірка на не рівність визначника нулю Вивести на екран початкову та А-1 матрицю За бажанням виконати перевірку (множ. початкової та оберненої матриці= Е) Хід роботи: Введення матрицю було зроблене за допомогою додаткових параметрів консолі, Далі було виведено початкову матрицю, знайдено її визначник, перевірно на його рівність 0, якщо він не рівний нулю було обраховано та виведено обернену матрицю. Після виконання основних завдань було зроблено перевірку на те чи правильно виконане завдання, множення двух матриць.( Якщо у результаті виходить одинична матриця, то її знайдено правильно). У моєму випадку перевірка встановила що обернену матрицю знайдено правильно. Силка на Repl.it: https://replit.com/join/tkxkwycogz-tr-15fundamient Код програми: #include <stdio.h> #include <stdlib.h> #define SIZE 3 int main(int argc, char *argv[]) { double mat[SIZE][SIZE]; if(argc == 10) { //введення матриці for (int i = 0; i < SIZE; i++){ for (int j = 0; j < SIZE; j++) { mat[i][j] = atoi(argv[i*SIZE + j + 1]); } } printf("Початкова матриця: \n"); for (int i = 0; i < SIZE; i++){ for (int j = 0; j < SIZE; j++) { printf("%f ", mat[i][j]); } printf("\n"); } // Оголошуємо визначник і знаходимо його double det = 0; for(int i = 0; i < SIZE; i++) { det = det + (mat[0][i] * (mat[1][(i+1)%SIZE] * mat[2][(i+2)%SIZE] - mat[1][(i+2)%SIZE] * mat[2][(i+1)%SIZE])); } printf("\n"); if(det == 0) { printf("EROR"); return 0; } else { printf("Визначник матриці: %f\n",det); } // Обрахунок оберненої матриці double obertMat[SIZE][SIZE]; printf("\n"); printf("Обернена матриця: \n"); for(int i = 0; i < SIZE; i++){ for(int j = 0; j < SIZE; j++) { obertMat[i][j] = ((mat[(j+1)%SIZE][(i+1)%SIZE] * mat[(j+2)%SIZE][(i+2)%SIZE]) - (mat[(j+1)%SIZE][(i+2)%SIZE] * mat[(j+2)%SIZE][(i+1)%SIZE])) / det; } } for(int i = 0; i < SIZE; i++){ for(int j = 0; j < SIZE; j++) { printf("%f ",obertMat[i][j]); } printf("\n"); } // Перевірка матриці на те чи вона обернена, у результаті множення має вийти одининчна матриця double resultMat[SIZE][SIZE]; for(int i = 0; i < SIZE; i++) { for( int j =0; j < SIZE; j++) { for(int k = 0; k < SIZE; k++) { resultMat[i][j] += mat[i][k]*obertMat[k][j]; } } } printf("\n"); printf("Результат перевірки(множення оберненої на початкову матрицю): \n"); for(int i = 0; i < SIZE; i++){ for(int j = 0; j < SIZE; j++) { printf("%f ",resultMat[i][j]); } printf("\n"); } printf("\nЯкщо унаслідок множення вийшла одинична матриця, то оберенена знайдена правильно!"); } else { printf("EROR"); return 0; } }
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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