
laba1
.pdf
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра безопасности информационных систем (БИС)
Анализ задачи. Абстракция программ и данных. Синтаксис языка программирования
Отчет по лабораторной работе №1 по дисциплине «Языки программирования»
Выполнил:
Студент гр. 730-2
____Подойницын К.В.
29.03.2022
Принял:
Преподаватель кафедры КИБЭВС
Полюга В.А. 29.03.2022
Томск 2022
2
1 Введение Цель работы: знакомство с основными элементами языка
программирования и расширенной формой записи Бэкуса-Наура для записи синтаксиса языка программирования.

3
2 Ход работы На рис. 1 приведена декомпозиция программы.
Рис. 1 - Декомпозиция программы
Опишем модули программы:
Модуль 1:
1)Наименование-"Защита от дурака";
Назначение-исключение ввода некорректных для задачи входных данных. 2)Входные данные:text-текст с которым будет работать программа; d-диаметр типа Integer(–2147483648 …2147483647).
3)Выходные данные: если некорректных данных найдено не было, программа переходит к следующему этапу, если найдены, то в диалоговом окне отображается ошибка и пользователю предлагается снова ввести текст и диаметр. 4)Ошибки–переполнение, выход за диапазон.
Модуль 2: 1)Наименование-Шифрование;
Назначение-зашифровать написанный текст.
4
2)Входные данные:text-текст с которым будет работать программа; d-диаметр типа Integer(–2147483648 …2147483647).
3)Выходные данные:зашифрованный текст.
4)Ошибки–нет.
Напишем свой язык на основе РБНФ: program::= 'PROGRAM',
'BEGIN', {body, ";"} 'END'.
body::= for, if, var, length, string. identifier::= var alphavit, {alphavit | chisla}.
alphavit::= "а" | "b" | ... | "y" | "z" | "A" | "B" | ... | "Y" | "Z". chisla::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10". znakisr::= "=" | "<>" | "<" | ">"|">="|"<=".
arifm::= "+" | "-" | "*" | "/" | "div". count::= "i" | "j".
perem::= "p" | "d" | "k" | "r".
for::= (for "count" = 0; "count" < "perem"; "count"++). if::= ("perem" "znakisr" "chisla").
types:= ("int", "string", "var").
program begin
var k = length(text) div d; if (k > 0)
{
text = string('',d-k);
}
var p = length(text) / d; var r = "";
for (int i = 0; i < p; i++)
{
5
for (int j = 0; j < d; j++)
{
r = text[i + p * j];
}
}
return r;
}
end.
6
Заключение В ходе выполнения лабораторной работы были изучены основные
элементы языка программирования и расширенная форма записи Бэкуса-Наура.
Также была сделана декомпозиция и небольшая программа для «шифра скитала».
Были описаны основные модули программы.