Частина тексту файла (без зображень, графіків і формул):
Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Алгоритмізація та програмування 1: Базові концепції програмування
ЗВІТ
до модульної контрольної роботи № 1
Варіант 16(1)
Дата «01» грудня 2021
Завдання за варіантом: (16)
/
Ввод та вивід програми:
/
Код програми:
Посилання на Repl.it:
https://replit.com/join/wastpgepcm-tr-15khavkin
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void printMatrix(int arr[3][3]){//Метод для виводу матриці
printf("Задана матриця");
for(int i=0; i<3;i++){
printf("\n");
for(int j=0;j<3;j++){
printf("\t%d\t", arr[i][j]);
}
}
}
float getN(int arr[3][3]){//Метод для обчислювання визначинка 3
float N=0;
N = arr[0][0]*arr[1][1]*arr[2][2] + arr[1][0]*arr[2][1]*arr[0][2] + arr[0][1]*arr[1][2]*arr[2][0] - arr[0][2]*arr[1][1]*arr[2][0] - arr[0][1]*arr[1][0]*arr[2][2] - arr[1][2]*arr[2][1]*arr[0][0];
if (N == 0){
printf("\nВизначник дорівнєю 0, обчислення неможливе \n");
} else {
printf("\n\nВизначникт: %f\n", N);
}
return N;
}
float getM(int arr[3][3], int h, int v){//Метод для обчислювання мінора
float M=0;
M = pow(-1,h+v);
if(h==0 && v==0) M=M*(arr[1][1]*arr[2][2]-arr[2][1]*arr[1][2]);
if(h==0 && v==1) M=M*(arr[1][0]*arr[2][2]-arr[2][0]*arr[1][2]);
if(h==0 && v==2) M=M*(arr[1][0]*arr[2][1]-arr[2][0]*arr[1][1]);
if(h==1 && v==0) M=M*(arr[0][1]*arr[2][2]-arr[2][1]*arr[0][2]);
if(h==1 && v==1) M=M*(arr[0][0]*arr[2][2]-arr[2][0]*arr[0][2]);
if(h==1 && v==2) M=M*(arr[0][0]*arr[2][1]-arr[2][0]*arr[0][1]);
if(h==2 && v==0) M=M*(arr[0][1]*arr[1][2]-arr[1][1]*arr[0][2]);
if(h==2 && v==1) M=M*(arr[0][0]*arr[1][2]-arr[1][0]*arr[0][2]);
if(h==2 && v==2) M=M*(arr[0][0]*arr[1][1]-arr[1][0]*arr[0][1]);
return M;
}
int main(void){
int a[3][3], i, j;
float mat[3][3];
float det;
printf("Ввести початкову данні для матриці:\n");
for(i = 0; i < 3; i++)//Ввод початкових данних
for(j = 0; j < 3; j++)
scanf("%d", &a[i][j]);
printMatrix(a);
//знаходження изначникту
det = getN(a);
for(int i=0; i<3;i++)//Знаходження оберненої матриці
for(int j=0;j<3;j++)
mat[j][i]=getM(a,i,j)/det;
printf("\nОбернена матриця");//Вивід оберненої матриці
for(int i=0; i<3;i++){
printf("\n");
for(int j=0;j<3;j++){
printf(" %.4f ", mat[i][j]);
}
}
return 0;
}
Висновок:
У контрольній роботі потрібно було знайти обернену матрицю. Створенні допоміжні методи для обчислювання визначника та мінора. Присвоєння змінним для виконання завдання було виконану за допомогою зчитування з командної строки. Було обчислено завдання згідно до варіанту 1(16) з Додатку за допомогою бібліотечних функцій та створених методів. Виведені обидві матриці та визначник. Зроблено звіт з лабораторної роботи та вчасно надіслано викладачу на перевірку.