Исполнитель Чертёжник умеет передвигать перо по линиям сетки. Перо может быть прижато к рабочему полю или поднято над ним. Прижатое перо во время движения оставляет за собой след - отрезок или ломаную линию.
Начальное состояние: перо поднято и находится над левой нижней точкой поля.
Система команд Чертёжника
Имя команды Краткая запись Направление движения пера
ВВЕРХ В вверх
ВНИЗ Н вниз
ВПРАВО П вправо
ВЛЕВО Л влево
ПОДНЯТЬ ПЕРО Д не передвигая
ОПУСТИТЬ ПЕРО О не передвигая
Направление движения пера определяется именем команды. После имени команды в скобках записывается расстояние, на которое передвигается перо. Расстояние может быть задано числом либо переменной, которой раньше присвоили значение.
Если нужно передвинуть перо на 5 клеток влево, команды можно записать двумя способами:
ВЛЕВО (5) или
k:=5
ВЛЕВО (k)
Команду, которая, кроме имени, содержит дополнительные характеристики, будем называть командой с параметрами.
Параметр может быть задан числом либо переменной.
Объект Чертёжник имеет свойство с именем ЦВЕТ. Оно определяет цвет линии, которую рисует Чертёжник. Это свойство может принимать значения: красный, синий, зелёный, жёлтый, голубой, лиловый, чёрный, белый.
Чтобы изменить цвет линий, нужно присвоить значение свойству ЦВЕТ, например:
ЧЕРТЁЖНИК.ЦВЕТ:=КРАСНЫЙ
До выполнения команды присваивания линии будут чёрными.
Домашние задания: Информатика
Исполнитель Алгоритмов Чертёжник.
Ну прочитал я СКИ Чертежник. А прикол-то в чем? Что нужно нарисовать при помощи Чертежника???
Для выполнения задания нужно написать программу, которая будет обрабатывать последовательность команд Чертёжника и выводить на экран сетку с линиями, нарисованными по этим командам.
Пример входных данных:
ВВЕРХ (5)
ВПРАВО (3)
ОПУСТИТЬ ПЕРО
ВПРАВО (5)
ВНИЗ (2)
ВЛЕВО (2)
ВВЕРХ (3)
ПОДНЯТЬ ПЕРО
Пример выходных данных:
Как работает программа:
Создаем переменные x и y для хранения текущей позиции пера на сетке. Начальное значение - левый нижний угол.
Создаем переменную color для хранения текущего цвета линии. Начальное значение - чёрный.
Создаем двумерный массив grid для хранения состояния сетки. Начальное значение - пустая сетка.
Читаем команды из входных данных.
Обрабатываем каждую команду в цикле:
5.1. Если команда - ВВЕРХ, уменьшаем y на указанное расстояние (или на 1, если расстояние не указано).
5.2. Если команда - ВНИЗ, увеличиваем y на указанное расстояние (или на 1, если расстояние не указано).
5.3. Если команда - ВПРАВО, увеличиваем x на указанное расстояние (или на 1, если расстояние не указано).
5.4. Если команда - ВЛЕВО, уменьшаем x на указанное расстояние (или на 1, если расстояние не указано).
5.5. Если команда - ПОДНЯТЬ ПЕРО, изменяем значение переменной is_pen_down на False.
5.6. Если команда - ОПУСТИТЬ ПЕРО, изменяем значение переменной is_pen_down на True.
5.7. Если команда - присваивание переменной, изменяем значение соответствующей переменной.
5.8. Иначе - ошибка, неизвестная команда.
5.9. Если перо опущено, рисуем линию на сетке между текущей позицией и новой позицией, используя текущий цвет линии.
Печатаем сетку на экран.
Пример:
Изначально, перо Чертежника находится над левой нижней точкой поля. Ширина поля равна 5, высота поля равна 3. Команды выполняются в следующем порядке:
ВПРАВО (4) – перо перемещается вправо на 4 клетки
ВНИЗ (2) – перо перемещается вниз на 2 клетки
ВЛЕВО (1) – перо перемещается влево на 1 клетку
ПОДНЯТЬ ПЕРО – перо поднимается
ВЛЕВО (2) – перо перемещается влево на 2 клетки, не оставляя следа
ОПУСТИТЬ ПЕРО – перо опускается
ВПРАВО (2) – перо перемещается вправо на 2 клетки
ВВЕРХ (1) – перо перемещается вверх на 1 клетку
ВЫХОД – программа завершается
В результате выполнения этих команд на поле будет изображен следующий рисунок:
.#....
..###.
...#..
где символ '#' обозначает след, оставленный пером, а точка '.' - незаполненную клетку.
Задание:
Напишите программу, которая симулирует работу Чертежника в соответствии с указанными выше правилами. Программа должна считывать последовательность команд, выполнять их и выводить на экран поле с текущим рисунком.
Входные данные:
В первой строке входного файла записано два целых числа W и H (1 ≤ W, H ≤ 100) – ширина и высота поля.
В следующей строке записана строка C, содержащая одно слово – начальный цвет линий (черный, белый, красный, синий, зеленый, желтый, голубой, фиолетовый).
Далее следуют команды в том же формате, в котором они были описаны выше.
Выходные данные:
Для каждой команды "ОПУСТИТЬ ПЕРО" программа должна выводить на экран текущее состояние поля. Разрешается выводить дополнительные пробелы перед символами в каждой строке рисунка.
Пример входных данных:
ВВЕРХ (5)
ВПРАВО (3)
ОПУСТИТЬ ПЕРО
ВПРАВО (5)
ВНИЗ (2)
ВЛЕВО (2)
ВВЕРХ (3)
ПОДНЯТЬ ПЕРО
Пример выходных данных:
Как работает программа:
Создаем переменные x и y для хранения текущей позиции пера на сетке. Начальное значение - левый нижний угол.
Создаем переменную color для хранения текущего цвета линии. Начальное значение - чёрный.
Создаем двумерный массив grid для хранения состояния сетки. Начальное значение - пустая сетка.
Читаем команды из входных данных.
Обрабатываем каждую команду в цикле:
5.1. Если команда - ВВЕРХ, уменьшаем y на указанное расстояние (или на 1, если расстояние не указано).
5.2. Если команда - ВНИЗ, увеличиваем y на указанное расстояние (или на 1, если расстояние не указано).
5.3. Если команда - ВПРАВО, увеличиваем x на указанное расстояние (или на 1, если расстояние не указано).
5.4. Если команда - ВЛЕВО, уменьшаем x на указанное расстояние (или на 1, если расстояние не указано).
5.5. Если команда - ПОДНЯТЬ ПЕРО, изменяем значение переменной is_pen_down на False.
5.6. Если команда - ОПУСТИТЬ ПЕРО, изменяем значение переменной is_pen_down на True.
5.7. Если команда - присваивание переменной, изменяем значение соответствующей переменной.
5.8. Иначе - ошибка, неизвестная команда.
5.9. Если перо опущено, рисуем линию на сетке между текущей позицией и новой позицией, используя текущий цвет линии.
Печатаем сетку на экран.
Пример:
Изначально, перо Чертежника находится над левой нижней точкой поля. Ширина поля равна 5, высота поля равна 3. Команды выполняются в следующем порядке:
ВПРАВО (4) – перо перемещается вправо на 4 клетки
ВНИЗ (2) – перо перемещается вниз на 2 клетки
ВЛЕВО (1) – перо перемещается влево на 1 клетку
ПОДНЯТЬ ПЕРО – перо поднимается
ВЛЕВО (2) – перо перемещается влево на 2 клетки, не оставляя следа
ОПУСТИТЬ ПЕРО – перо опускается
ВПРАВО (2) – перо перемещается вправо на 2 клетки
ВВЕРХ (1) – перо перемещается вверх на 1 клетку
ВЫХОД – программа завершается
В результате выполнения этих команд на поле будет изображен следующий рисунок:
.#....
..###.
...#..
где символ '#' обозначает след, оставленный пером, а точка '.' - незаполненную клетку.
Задание:
Напишите программу, которая симулирует работу Чертежника в соответствии с указанными выше правилами. Программа должна считывать последовательность команд, выполнять их и выводить на экран поле с текущим рисунком.
Входные данные:
В первой строке входного файла записано два целых числа W и H (1 ≤ W, H ≤ 100) – ширина и высота поля.
В следующей строке записана строка C, содержащая одно слово – начальный цвет линий (черный, белый, красный, синий, зеленый, желтый, голубой, фиолетовый).
Далее следуют команды в том же формате, в котором они были описаны выше.
Выходные данные:
Для каждой команды "ОПУСТИТЬ ПЕРО" программа должна выводить на экран текущее состояние поля. Разрешается выводить дополнительные пробелы перед символами в каждой строке рисунка.
Похожие вопросы
- Прошу помочь с двумя сложными задачами по "Рекурсивным Алгоритмам" по информатике 9 класс, нужно с решением
- Информатика алгоритмы, разжуйте пж
- Алгоритм вычисления значений функций, информатика, помогите пожалуйста
- Объясните подробно задачу 1 и постройте алгоритм решения
- Помогите пожалуйста: Составить алгоритм действий Тома Сойера
- напишите пожалуйста алгоритм деление дробей
- Составление алгоритма по информатике
- Составить алгоритм по информатике
- Помогите пожалуйста с алгоритмом. Его надо переписать на язык программирования - паскаль.. Срочно надо.
- Задача по программированию на любом языке, желательно на питоне или паскале. Хватит даже просто алгоритма решения