Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

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

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

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

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

Частина тексту файла

Національний технічний університет України  «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 1: Базові концепції програмування ЗВІТ До модульної контрольної роботи №2 Варіант 7(3) Дата «15» грудня 2021 Завдання: / Результат: / Висновок: було створено програму, яка розшифровує слово, що зашифроване методом Хілла. https://replit.com/join/ltvtyoviig-vladsosiedskii Код програми: //15.12.2021 МКР2 ТР-15 Сосєдський Владислав #include<stdio.h> #include<math.h> #define SIZE 2 int main(void){ int mat[SIZE][SIZE] = {6, 9, 3, 5}; int word[4]; //dvdz float determinant = 0; int i, j; double invers[SIZE][SIZE], invers2[SIZE][SIZE]; char charr[26] = {'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'}; int n[26] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}; printf("\nВведіть 4 літери латинецею: "); char charWord[4]; for (i=0; i<4; i++){ scanf("%c", &charWord[i]); for(j=0;j<26;j++){ if(charWord[i] == charr[j]){ word[i] = j; } } } printf("Дано ключ матриці:"); for(i = 0; i < SIZE; i++){ printf("\n"); for(j = 0; j < SIZE; j++) printf("%d\t", mat[i][j]); } determinant = mat[0][0] * mat[1][1] - mat[0][1] * mat[1][0]; if (determinant == 0){ printf("\nДетермінант дорівнєю 0, обчислення неможливе \n"); } else { printf("\nДетермінант: %f", determinant); printf("\nОбернена матриця: "); invers[0][0]=mat[1][1]/determinant; invers[1][1]=mat[0][0]/determinant; invers[0][1]=-mat[0][1]/determinant; invers[1][0]=-mat[1][0]/determinant; invers2[0][0]=mat[1][1]; invers2[1][1]=mat[0][0]; invers2[0][1]=-mat[0][1]; invers2[1][0]=-mat[1][0]; for(i = 0; i < SIZE; i++){ printf("\n"); for(j = 0; j < SIZE; j++){ printf("%.2f\t", invers[i][j]); } } } int reverse[SIZE][SIZE]; int t=0; for(int i = 0;i<SIZE;i++){ for(int j = 0;j<SIZE;j++){ if(invers[i][j]>0 && (round(invers[i][j]) == invers[i][j])){ } else{ if(invers[i][j]<0 && (round(invers[i][j]) == invers[i][j])){ invers[i][j]=invers[i][j]+26; break; } if(round(invers[i][j]) != invers[i][j]){ for(int k=1;round(invers[i][j]) != invers[i][j];k++){ invers[i][j]= ((invers2[i][j]+26*k)/determinant); } } } } } for(i = 0; i < SIZE; i++){ for(j = 0; j < SIZE; j++){ reverse[i][j] = invers[i][j]; reverse[i][j] = reverse[i][j]%26; } } printf("\nОбернена матриця з натуральними числами:"); for(i = 0; i < SIZE; i++){ printf("\n"); for(j = 0; j < SIZE; j++){ printf("%i\t", reverse[i][j]); } } int mat21[SIZE][1], mat22[SIZE][1]; mat21[0][0]=(reverse[0][0]*word[0]+reverse[0][1]*word[1])%26; mat21[1][0]=(reverse[1][0]*word[0]+reverse[1][1]*word[1])%26; mat22[0][0]=(reverse[0][0]*word[2]+reverse[0][1]*word[3])%26; mat22[1][0]=(reverse[1][0]*word[2]+reverse[1][1]*word[3])%26; printf("\nЧисла отримані пілся множення: %i %i %i %i", mat21[0][0], mat21[1][0], mat22[0][0], mat22[1][0]); printf("\nРозшифроване слово: "); for(i = 0; i < SIZE; i++){ for(j = 0; j < 1; j++){ int k = mat21[i][j]; for(j = 0; j < 1; j++){ printf("%c",charr[k]); } } } for(i = 0; i < SIZE; i++){ for(j = 0; j < 1; j++){ int k = mat22[i][j]; for(j = 0; j < 1; j++){ printf("%c",charr[k]); } } } return 0; }
Антиботан аватар за замовчуванням

26.05.2023 07:05

Коментарі

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

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

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

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

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини