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

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

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

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

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

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп'ютерних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Захист інформації

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

Рік:
2009
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Алгоритмічні основи криптології
Група:
ІБ – 44
Коротко про документ

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

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

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

  • Довгі числа
  • Криптографія
  • Арифметичні операції
  • Мова програмування C
  • Алгоритми обробки даних

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

  1. Мета роботи
  2. Завдання
  3. Блок-схеми підпрограм та функцій
  4. Текст програми
  5. Результат виконання програми
  6. Список ідентифікаторів
  7. Висновок
Для кого:Студенти технічних спеціальностей, викладачі та дослідники у галузі криптографії і захисту інформації.
Викладачі:Не вказано

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

довге числоадитивні операціїпорiвняннямасиввведення данихвиведення данихблок-схемафункціярозрядкриптологія

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” ІКТА кафедра «Захист інформації»  Звіт про виконання лабораторної роботи №1 з дисципліни "АЛГОРИТМІЧНІ ОСНОВИ КРИПТОЛОГІЇ" ОПЕРАЦІЇ З ДОВГИМИ ЧИСЛАМИ Варіант 23 Мета роботи - вивчити способи представлення та алгоритми для виконання операцій введення-виведення, порівняння, підсумовування, віднімання довгих чисел та навчитися розробляти програмне забезпечення для реалізації перерахованих алгоритмів на комп’ютері. ЗАВДАННЯ 1. Домашня підготовка до роботи 1) Вивчити основні способи представлення довгих чисел та алгоритми для реалізації операцій введення, виведення, порівняння, а також арифметичних операцій додавання-віднімання довгих чисел. 2) Скласти блок-схеми алгоритмів та підпрограми для реалізації операцій введення та виведення довгих чисел. Варіанти представлення довгих чисел та способи заповнення невикористаних розрядів беруться за вказівкою викладача з таблиці 1. 3) Скласти блок-схеми алгоритмів, підпрограми та програму для реалізації адитивних операцій та операцій порівняння для роботи з довгими числами. Дані для роботи беруться з таблиці 5 за вказівкою викладача. Таблиця 1. № з/п Варіант представлення числа Заповнення невикористаних розрядів Операції з довгими числами  23 3 -1 Додавання, не рівно   2. Робота в лабораторії 1) Ввести в комп'ютер програми згідно з отриманим завданням. 2) Відлагодити програми. При необхідності скоригувати блок-схеми алгоритмів та програми у відповідності з виявленими логічними та синтаксичними помилками. 3) Остаточні версії блок-схем, програм та отримані результати занести у звіт з лабораторної роботи. 4) Здати звіт з лабораторної роботи. Блок-схеми підпрограм та функцій. А) алгоритм введення довгого числа.  Б) алгоритм виведення довгого числа.  В) алгоритм порівняння довгих чисел  Г) алгоритм додавання довгих чисел  Текст програми #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> #define max 50 #define osn 1000 long int *vvid( char mas[ ]) { long int *a, res, a22; char ch; a = (long int*)malloc(max*sizeof(int)); int i = 0; int j = 0; for(i = 0; i < max; i++) a[i] = 0; for(j = 0; mas[j] != 0; j++) { if ( isdigit(mas[j]) ) { for (i = a[0]; i >= 1; i--) { a[i + 1] = a[i + 1] + (a[i] * 10) / osn; a[i] = a[i] * 10 % osn; } ch = mas[j]; a22 = atoi(&ch); a[1] = a[i+1] + a22; if (a[a[0] + 1] > 0) a[0]++; } } return a; } void vyvid(long int *b) { long int res; int N = 0; int NN = 1; int p; int b_osn = b[0]; int i = 0; for(i = b[0]; i>=1 ; i--) { N = b[i]; if (N == 0) NN = 0; for (p = 1; N > 0; p = p*10) N = N / 10; while (osn - p != 0) { if (b[0] == i) break; printf("%c",'0'); p = p*10; } if (NN == 1) { res = b[i]; printf("%d",res); } NN = 1; N = 0; } } long int *sum(long int a[], long int b[]) { int k; long int *c; c = (long int*)malloc(max*sizeof(int)); int i; for( i = 0; i < max; i++) c[i] = 0; if(a[0] > b[0]) k = a[0]; else k = b[0]; for(i = 1; i <= k; i++) { c[i + 1] = (c[i] + a[i] + b[i]) / osn; c[i] = (c[i] + a[i] + b[i]) % osn; } if (c[k + 1] == 1) c[0] = k + 1; else c[0] = k; return c; } int nerivne(long int a[], long int b[]) { int e,i=0; while (i++<max) if (a[i]==b[i]) {e=0; continue;} else {break; e=1;} return e; } int main() { long int *a = 0, *b = 0, *c = 0, g; char mas1[100], mas2[100]; puts("vvedit 1 chyslo:"); gets(mas1); a = vvid(mas1); puts("vvedit 2 chyslo:"); gets(mas2); b = vvid(mas2); vyvid(a); printf("\n"); vyvid(b); c = sum(a,b); printf("\na + b ="); vyvid(c); printf("\na nerivne b:"); g=nerivne(a,b); if(g) puts("true"); else puts("false"); system("PAUSE"); getch(); return 0; } Результат виконання програми: vvedit 1 chyslo: 1423412413142345235 vvedit 2 chyslo: 4675467476547676574576 1423412413142345235 4675467476547676574576 a + b =4676890888960818919811 a nerivne b:true Список ідентифікаторів констант, змінних, процедур і функцій, використаних у блок-схемах алгоритмів і програм, та їх пояснення. max Максимальна довжина матриці  osn Основа ділення  vvid Функція введення довгого числа  vyvid Функція виведення довгого числа  nerivne Функція порівняння « не рівне»  sum Функція додавання 2-х довгих чисел  main Основна функція  mas[] Масив для тимчасового зберігання чисел  I,J Рахівники  max Довжина довгого числа  a[max] Матриця для зберігання першого числа  b[max] Матриця для зберігання другого числа  c[max] Матриця для зберігання результату додавання  Fn Значення даного елементу масиву  g Змінна, якій присвоюється значення функції nerivne   Висновок: на цій лабораторній роботі я вивчив способи представлення та алгоритми для виконання операцій введення-виведення, порівняння, підсумовування довгих чисел та навчився розробляти програмне забезпечення для реалізації перерахованих алгоритмів на комп’ютері.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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