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

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

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

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

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

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

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

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

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

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

У звіті представлено програму на мові C для розшифрування повідомлень за допомогою матриць. Проведено обчислення визначника та оберненої матриці.

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

  • Програмування на C
  • Матричні обчислення
  • Шифрування
  • Визначник матриці
  • Обернена матриця
  • Алгоритми

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

  1. Завдання на МКР №2
  2. Код програми
  3. Результати та посилання на Replit
  4. Висновок
Для кого:Студенти технічних спеціальностей та викладачі програмування
Викладачі:Не вказано

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

матрицядетермінантобернена матрицяшифруваннярозшифруванняалгоритммова Cмасивфункція mainprintf

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

Національний технічний університет України  «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 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 Висновок В ході виконання модульної контрольної роботи було складено алгоритм обчислення оберненої матриці, детермінанту, перетворення буквеної матриці на звичайну і навпаки, розшифровує отримані дані . На екран виводяться початкова матриця (матриця шифрування), визначник ,обернена матриця, матриця розшифрування і розшифроване слово.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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