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

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

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

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

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

Національний технічний університет України  «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 1: Базові концепції програмування ЗВІТ До модульної контрольної роботи №2 Варіант 4 Дата «15» грудня 2021 Завдання на МКР№2 / Код програми #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[],char *env[]) { int Matrix [2][2] = { {7,6}, {4,5} }; int inverse [2][2]; int X[2][2]; char RESULT[4]; char Alphabet[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; char message [] = {'k','p','a','h'}; printf("\t\t\t\t\t~>>>МКР №2<<<~\n"); printf("Матриця шифрування (початкова) :\n\n"); for(int i=0;i<2;i++) { printf("||"); for(int j=0;j<2;j++) { printf("\t%i\t",Matrix[i][j]); } printf("||"); printf("\n"); } double Determinant = Matrix[0][0] * Matrix[1][1] - Matrix[0][1] * Matrix[1][0]; if(Determinant!=0) { printf("\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); printf("Визначник :\nDeterminant = %lf",Determinant); printf("\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); for(int i=0;i<4;i++) { for(int g=0;g<26;g++) { if(message[i]==Alphabet[g]) { message[i]=g; } } } int messageMatrix [2][2]={ {message[0],message[1]}, {message[2],message[3]} }; printf("Матриця із символів повідомлення :\n\n"); for(int i=0;i<2;i++) { printf("||"); for(int g=0;g<2;g++) { printf("\t%i\t",messageMatrix[i][g]); } printf("||"); printf("\n"); } printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); for(int i=0;i<1;i++) { for(int j=0;j<1;j++) { inverse[i][j]=Matrix[i+1][j+1]; } } for(int i=1;i<2;i++) { for(int j=1;j<2;j++) { inverse[i][j]=Matrix[i-1][j-1]; } } for(int i=1;i<2;i++) { for(int j=0;j<1;j++) { inverse[i][j]= (-1)*Matrix[i][j]; } } for(int i=0;i<1;i++) { for(int j=1;j<2;j++) { inverse[i][j]=(-1)*Matrix[i][j]; } } printf("Обернена ціла матриця :\n"); for(int i=0;i<2;i++) { printf("||"); for(int j=0;j<2;j++) { printf("\t%i\t",inverse[i][j]); } printf("||"); printf("\n"); } for(int i=0; i<2; i++) { for(int j=0; j<2; j++) { for(int M=0; M<10; M++){ if(inverse[i][j]%11!=0 || inverse[i][j]<0){ inverse[i][j]=inverse[i][j]+26; } if(inverse[i][j]%11==0 && inverse[i][j]>=0){ inverse[i][j]=inverse[i][j]/11; if(inverse[i][j]>=26) { inverse[i][j]=inverse[i][j]%26; } break; } } } } printf("\n"); for(int i = 0; i < 2; i++){ for(int j = 0; j < 2; j++){ X[i][j] = 0; for(int g = 0; g < 2; g++){ X[i][j] = X[i][j] + inverse[i][g] * messageMatrix[g][j]; } } } printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); printf("Матриця розшифрування:\n\n"); for(int i=0;i<2;i++) { printf("||"); for(int j=0;j<2;j++) { printf("\t%i\t",X[i][j]); } printf("||"); printf("\n"); } printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); printf("Розшифроване слово:"); char RESULT [4]={Alphabet[X[0][0]%26], Alphabet[X[0][1]%26], Alphabet[X[1][0]%26], Alphabet[X[1][1]%26]}; printf("\n%s ",RESULT); } else printf("Подальше розв'язання неможливе, адже визначник рівний нулю!"); } Результати / Посилання на Replit https://replit.com/join/prhaezsnna-tr-15tkachienko Висновок В ході виконання модульної контрольної роботи було складено алгоритм обчислення оберненої матриці, детермінанту, перетворення буквеної матриці на звичайну і навпаки, розшифровує отримані дані . На екран виводяться початкова матриця (матриця шифрування), визначник ,обернена матриця, матриця розшифрування і розшифроване слово.
Антиботан аватар за замовчуванням

14.05.2023 09:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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