Главная страница

Основы теории чисел. Защита информации. Отчёт по лабораторной работе Основы теории чисел по дисциплине Защита информации


Скачать 31.25 Kb.
НазваниеОтчёт по лабораторной работе Основы теории чисел по дисциплине Защита информации
АнкорОсновы теории чисел
Дата25.12.2022
Размер31.25 Kb.
Формат файлаdocx
Имя файлаЗащита информации.docx
ТипДокументы
#863248





ОТЧЁТ

по лабораторной работе «Основы теории чисел»

по дисциплине «Защита информации»

вариант № 21














































































































2022

ЦЕЛЬ РАБОТЫ
изучить основные понятия, теоремы и алгоритмы теории чисел, используемые в криптографии.
ВАРИАНТ ЗАДАНИЯ
Задание:

Составить схему алгоритма и написать программу, реализующую

следующие функции:

  • нахождения наибольшего общего делителя двух чисел на основе алгоритма Евклида;

  • нахождения последовательности простых чисел, не превосходящих данного N, на основе алгоритма Эратосфена;

  • отыскания функции Эйлера для положительного целого числа;

  • отыскания решения линейного сравнения.


Полученные алгоритмы оформить в виде отдельного модуля (библиотеки).

ХОД РАБОТЫ
Написана программа, которая из трех заданных пользователем чисел выбирает наибольшее.

#include "iostream"
using namespace std;

int main() {

int n[3];
int num;

cout << "Enter three numbers" << endl;
for (int i = 0; i < 3; ++i) {

cin >> n[i];

}
int max = n[0];

for (int i = 1; i < 3; i++) {

if (n[i] > max) max = n[i];

}

cout << "The max number: " << max << endl;

}


Составим 4 таблицы лексического анализатора

Внутренние таблицы лексического анализатора

Таблица ключевых слов




Таблица разделителей

№ п/п

Ключевое слово 10




№ п/п

Разделитель 20

1

include




1

#

2

iostream




2



3

using




3



4

namespace




4

;

5

std




5

(

6

int




6

)

7

main




7

{

8

cout




8

[

9

endl




9

]

10

for




10

<

11

cin




11

=

12

if




12

+

13







13

>

14







14

}










15

:


Вывод лексического анализатора

Таблица идентификаторов




Таблица констант

№ п/п

Идентификатор 30




№ п/п

Значение константы 40

1

n




1

3

2

num




2

0

3

Enter




3

1

4

three




4




5

numbers




5




6

i




6




7

max




7




8

The




8




9

Number




9





Согласно таблицам, составим дескрипторный текст исходного кода программы:

Дескрипторный текст:

(20,1) (10,1) (20,2) (10,2) (20,3)
(10,3) (10,4) (10,5) (20,4)
(10,6) (10,7) (20,5) (20,6) (20,7)
(10,6) (30,1) (20,8) (40,1) (20,9) (20,4)
(10,6) (30,2) (20,4)
(10,8) (20,10) (20,10) (20,2) (30,3) (30,4) (30,5) (20,3) (20,10) (20,10) (10,9) (20,4)
(10,10) (20,5) (10,6) (30,6) (20,11) (40,2) (20,4) (30,6) (20,10) (40,1) (20,4) (20,12) (20,12) (30,6) (20,6) (20,7)
(10,11) (20,13) (20,13) (30,1) (20,8) (30,6) (20,9) (20,4)
(20,14)
(10,6) (30,7) (20,11) (30,1) (20,8) (40,2) (20,9) (20,4)
(10,10) (20,5) (10,6) (30,6) (20,11) (40,3) (20,4) (30,6) (20,10) (40,1) (20,4) (30,6) (20,12) (20,12) (20,6) (20,7)
(10,12) (20,5) (30,1) (20,8) (30,6) (20,9) (20,13) (30,7) (20,6) (30,7) (20,11) (30,1) (20,8) (30,6) (20,9) (20,4)
(20,14)
(10,8) (20,10) (20,10) (20,2) (30,8) (30,7) (30,9) (20,15) (20,3) (20,10) (20,10) (30,7) (20,10) (20,10) (10,9) (20,4)
(20,14)


ВЫВОД
В ходе выполнения лабораторной работы были разработаны и реализованы программа поиска наибольше числа из трёх, составлены таблицы лексического анализатора, а также дескрипторный текст исходного кода программы.

ЛИСТИНГ ПРОГРАММЫ
#include "iostream"
using namespace std;

int main() {

int n[3];
int num;

cout << "Enter three numbers" << endl;
for (int i = 0; i < 3; ++i) {

cin >> n[i];

}
int max = n[0];

for (int i = 1; i < 3; i++) {

if (n[i] > max) max = n[i];

}

cout << "The max number: " << max << endl;

}


написать администратору сайта