Отчеты / ЯП1
.pdfМинистерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
АНАЛИЗ ЗАДАЧИ. АБСТРАКЦИЯ ПРОГРАММ И ДАННЫХ. СИНТАКСИС ЯЗЫКА ПРОГРАММИРОВАНИЯ
Отчет по лабораторной работе №1 по дисциплине «Языки программирования»
Выполнил:
Студент гр. 710-2
_______ _____Кузьмина А.А.
__.04.2022
Принял:
Младший научный сотрудник
Кафедры КИБЭВС
_______ ________Полюга В.А.
___.04.2022
Томск - 2022
2
1 Введение
Цель работы: знакомство с основными элементами языка программирования, расширенной формой записи Бэкуса-Наура для записи синтаксиса языка программирования.
Для работы был взят 5 вариант задания «шифр Хилла».
3
2 Ход работы На рисунке 1 представлена декомпозиция программы.
Рисунок 1 – Декомпозиция программы «Шифр Хилла».
Модуль 1:
1) Наименование – «Проверка данных»;
Назначение – исключение ввода некорректных для задачи входных данных.
2)Входные данные: message – вводимый текст с консоли типа string, key
– вводимый ключ с консоли типа string.
3)Выходные данные: если некорректных данных найдено не было,
программа переходит к следующему этапу, если найдены, то в диалоговом окне отображается ошибка и пользователю предлагается заново ввести шифруемый текст или ключ.
4
4) Ошибки – выход за диапазон ключа.
Модуль 2:
1)Наименование – «Кодирование»;
Назначение – кодирование текста с помощью алфавита и преобразование текста в массив.
2)Входные данные: message – вводимый текст с консоли типа string, key – вводимый ключ с консоли типа string.
3)Выходные данные: массив типа int, содержащий кодированный текст с помощью алфавита.
4)Ошибок нет.
Модуль 3:
1) Наименование – «Шифр Хилла»;
Назначение – шифрование кодированного текста типа int.
2)Входные данные: массив типа int, содержащий кодированный текст с помощью алфавита.
3)Выходные данные: зашифрованный текст типа string.
4)Ошибок нет.
5
Синтаксис языка
identifier ::= alphabetic character, {alphabetic character | digit}.
dataType ::= "string" | "int" | "int[,]".
number ::= [ "-" ], digit, { digit } . string ::= '"' , { all characters }, '"' .
assignment ::= identifier , ":=" , (number | identifier | string).
alphabetic character ::= "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".
digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" .
vvod ::= inditifier, “=“input” “(“ “)".
vivod ::= “output” “(", indetifier, ")"
shif ::= inditifier, “=” encrypt "(", inditifier, ",", inditifier, ")"
Пример программы с использованием синтаксиса
string strIn;
int[,] key;
string strOut;
strIn = input();
key = input();
strOut = encrypt(key, strIn);
output(strOut);
6
3 Заключение
Проведен анализ задачи программы «Шифр Хилла», разработан синтаксис языка программирования и записан в форме РБНФ, приведен пример программы, записанной на разработанном языке.