lab2_Skorikov
.docx
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
АНАЛИЗ ЗАДАЧИ. АБСТРАКЦИЯ ПРОГРАММ И ДАННЫХ. СИНТАКСИС ЯЗЫКА ПРОГРАММИРОВАНИЯ
Отчет по лабораторной работе №2
по дисциплине «Языки программирования»
Выполнил:
Студент гр. 724
_______ _____ Скориков И.И.
05.10.2015
Принял:
Кандидат технических наук
кафедры КИБЭВС
_______ _____ Романов А.С.
05.10.2015
2015
1 Цель работы
Знакомство с основными элементами языка программирования, расширенной формой записи Бэкуса-Наура для записи синтаксиса языка программирования.
2 Ход работы
Рисунок 1 – Взаимодействие модулей игры «Тетрис»
Модуль 1
-
Наименование – ПОЛЕ.
Назначение – задание игрового поля.
-
Входные данные: ширина и высота поля (ширина 10, высота 20).
-
Выходные данные: отображение игрового поля (short stock[10][20]).
-
Ошибки – нет.
Модуль 2
-
Наименование – ФИГУРЫ.
Назначение – создание случайной фигуры в верхней части игрового поля.
-
Входные данные: начальные координаты фигуры (int curX int curY), тип фигуры (bool cells[4][4]).
-
Выходные данные: координаты фигуры (int curX int curY), тип фигуры (bool cells[4][4]).
-
Ошибки – нет.
Модуль 3
-
Наименование – ОЧКИ.
Назначение – набранные очки.
-
Входные данные: количество очищенных строк (int countString).
-
Выходные данные: счет игры (int countGame).
-
Ошибки – переполнение счета игры.
Модуль 4
-
Наименование – ЛОГИКА.
Назначение – сдвиг фигуры вправо на единичное значение, сдвиг фигуры влево на единичное значение, поворот фигуры на 90 градусов, быстрое перемещение фигуры на дно поля, проверка наложения фигур, окрашивание ячейки поля в определенный цвет.
-
Входные данные: координаты фигуры (int curX int curY), тип фигуры, цвет ячейки поля, игровое поле (bool cells[4][4]), int color, short stock[10][20], действие int action.
-
Выходные данные: координаты фигуры (int curX int curY), тип фигуры (bool cells[4][4]), игровое поле short stock[10][20].
-
Ошибки – нет.
Синтаксис языка программирования
<program>::=<open_tag>,<body>,<close_tag>
<open_tag> ::= "<?program"
<body>::=[<var>],[<for>],[<while>],[<if>]
<close_tag>::="?>"
<var>::=<type>,<var_name>|<var_name>
<type>::="int", "short", "bool"
<var_name>::="$",<char>,<char>|<int>
<char>::= "а" | "b" | ... | "y" | "z" | "A" | "B" | ... | "Y" | "Z" | "_"
<int>::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
<value>::= <char>|<int>
<assignment>::= "="
<conditions>:: =">" | "<" | "==" | "!="|">="|"<="
<arithmetic>::="+" | "-" | "*" | "/"
<for>::= "for"(<var>,<assignment>,<value>,";", <conditions>,<value>, ";",<var>,<assignment>,<var>,< arithmetic >,<value>){<var >|<var>,<assignment>,<value>|<for>|<if>|<while>}
<while>::="while"(<var>,<conditions>,<value>){<var>|<var>,<assignment>,<value>|<for>|<if>|<while>}
<if>::="if"(<var>,<conditions>,<value>){<var>|<var>,<assignment>,<value>|<for>|<if>|<while>}
Программа, строящая игровое поле
<?program
for(int $i= 0; <10; $i = $i + 1)
{
for(int $ j = 0; <20; $j = $j + 1)
{
short $stock[$i][$j] = 0;
}
}
?>
3 Заключение
В процессе выполнения лабораторной работы были получены знания об основных элементах программирования, о форме записи Бэкуса-Наура для записи синтаксиса языка программирования.