Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 10.03.2010, 13:00   #1 (permalink)
#Andrew#
Новичок
 
Регистрация: 10.03.2010
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите с проектом...

Синопсис
В данном проекте Вам необходимо реализовать простой интерпретатор команд для управления объектом на поле определённого размера. Основные операции, которые может выполнять объект – повороты на любой угол кратный 90°, передвижение на одну клетку вперёд (за объектом остаётся след движения), а также прыжки без следов на посещённых клетках. Таким образом, при помощи определённого набора команд можно рисовать простые изображения. Такие программы часто используется для преподавания основ алгоритмического анализа в школах на уроках информатики.

Общие требования
Консольное приложение должно:
1. считать команды из входного файла,
2. сделать попытку их исполнения,
3. записать результат передвижений объекта в выходной файл.
4. Имена входного и выходного файла, а также размеры поля даются как параметры командной строки. Пример вызова программы:
z:\ConsoleProject1 <input.txt> <output.txt> <width> <height>
В случае возникновения всех возможных ошибок во время исполнения необходимо оповестить пользователя о возникших проблемах в удобной для пользователя форме.

Оконное приложение должно
1. Дать пользователю возможность набирать программу для рисования
2. Запускать программу для рисования
3. Давать возможность изменять параметры поля (высота, ширина)
4. Показывать результат работы программы в красивой графической форме
5. Очищать список команд и поле для рисования
В случае возникновения всех возможных ошибок во время исполнения необходимо оповестить пользователя о возникших проблемах в удобной для пользователя форме.
После первой недели работы необходимо показать общую структуру консольного приложения

Формат входных данных
Для описания синтаксиса формата входных данных используется расширенный формализм Бэкуса-Наура (РФБН):
• альтернативы разделяются символом “|”,
• квадратные скобки “[“ и “]“ означают необязательность заключённого в них выражения
• фигурные скобки “{“ и ”}” означают возможное повторение (от 0 или более раз),
• для групп лексем используются круглые скобки “(“ и “)”.
Стоит отметить, что между командами и лексемами может стоять любое количество пробелов.
• цифра = “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9”
• число = цифра { цифра }
• команда = (“u” | “d” | “l” | “r” | ([число]“m”) | ([число]“j”))“;”
где “u”, “d”, “l”, “r” – команды поворота объекта вверх, вниз, влево и вправо соответственно
([число]“m”) – команда передвинуть объект на определённое количество клеток вперёд (объект оставляет за собой след)
([число]“j”) – команда передвинуть объект на определённое количество клеток вперёд (объект НЕ оставляет след за собой)
• выражение = {команда}

Примеры
Предполагается, что объект изначально стоит в левом верхнем углу и смотрит вправо.
Размер поля: 11 на 11 клеток.
• пустые клетки отображаются символом “-”,
• след от объекта в клетке отображается символом “*”,
• объект выражен символом (“U” | “D” | “L“ | ”R”) в зависимости от его направления.

Пример №1
INPUT.TXT
5j; d; 10m; u; 5m; r; 5m; l; 10m;
OUTPUT.TXT
-----*-----
-----*-----
-----*-----
-----*-----
-----*-----
L**********
-----*-----
-----*-----
-----*-----
-----*-----
-----*-----

Пример №2
INPUT.TXT
10m; d; 10m; l; 10m; u; 8m; r; 8m; d; 6m; l; 6m; u; 4m; r; 4m; d; 2m; l; 2m;
OUTPUT.TXT
***********
----------*
*********-*
*-------*-*
*-*****-*-*
*-*---*-*-*
*-*-L**-*-*
*-*-----*-*
*-*******-*
*---------*
***********
#Andrew# вне форума   Ответить с цитированием

Старый 10.03.2010, 13:00
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Стоит обратить внимание на аналогичные темы

Помогите девушке с проектом
Проблемы с проектом на Visual Studio 2005.
Помоги новичку с моддинг проектом.

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 00:51.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.