Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

laba1

.pdf
Скачиваний:
1
Добавлен:
12.12.2024
Размер:
347.7 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра безопасности информационных систем (БИС)

Анализ задачи. Абстракция программ и данных. Синтаксис языка программирования

Отчет по лабораторной работе №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

Заключение В ходе выполнения лабораторной работы были изучены основные

элементы языка программирования и расширенная форма записи Бэкуса-Наура.

Также была сделана декомпозиция и небольшая программа для «шифра скитала».

Были описаны основные модули программы.

Соседние файлы в предмете Языки программирования