Предмет: Информатика, автор: vladdavydov4200

ДАЮ 90 БАЛЛОВ СРОЧНООО ПОЖАЛУЙСТА
Напишите программы в среде графического исполнителя Робот для решения следующих задач:

закрасить рабочее поле горизонтальными пунктирными линиями (30 баллов);
закрасить квадраты во всех углах рабочего поля (35 баллов);
закрасить рабочее поле в клетку (35 баллов).
На проверку по каждому пункту задания нужно прислать скриншоты окна графического исполнителя с кодом, результатом работы и временем выполнения работы.


DobriyKaban: а на каком языке програмирования?
Ziorar: Если это в Кумире задавали, то например такие программы можно:

использовать Робот
цел г,в
алг |рисуем пунктирные линии (начальное положение - левый верхний угол)
нач
в:=0
нц
г:=0
нц пока mod(в,3)=0 |смещение до следующей линии
если mod(г,3)<2 то закрасить всё |длина цикла / длина пунктира
если справа свободно то вправо иначе выход всё
г:=г+1
кц
если снизу свободно то вниз иначе выход всё
нц пока слева свободно
влево
кц
в:=в+1
кц
кон
Ziorar: использовать Робот
алг |закраска всех углов (начальное положение - левый верхний угол)
нач
закрасить
нц пока справа свободно
вправо
кц
закрасить
нц пока снизу свободно
вниз
кц
закрасить
нц пока слева свободно
влево
кц
закрасить
кон
Ziorar: использовать Робот
цел г,в
алг |рисуем клетки (начальное положение - левый верхний угол)
нач
в:=0
нц
г:=0
нц |смещение до следующей линии (по горизонтали и вертикали)
если mod(г,3)=0 или mod(в,3)=0 то закрасить всё
если справа свободно то вправо иначе выход всё
г:=г+1
кц
если снизу свободно то вниз иначе выход всё
нц пока слева свободно
влево
кц
в:=в+1
кц
кон
vladdavydov4200: спасибо большое
Ziorar: Пожалуйста ) Добавлю тогда в ответ, раз это действительно для Кумира задание было.

Ответы

Автор ответа: Ziorar
12

Для робота в системе Кумир такие программы например подойдут: (размеры поля- любые (от 1x1), размеры узоров настраиваются- задавайте любое смещение между линиями пунктирными и линиями клеток (начиная от 1, т.е. без зазоров), любой размер пунктира- задаётся длина самого штриха пунктира и его длина вместе с пробелом)

1) Закраска всего поля горизонтальными пунктирными линиями:

использовать Робот

цел г,в

алг |рисуем пунктирные линии (начальное положение - левый верхний угол)

нач

в:=0

нц

г:=0

нц пока mod(в,3)=0 |смещение до следующей линии

если mod(г,3)<2 то закрасить всё |длина цикла / длина пунктира

если справа свободно то вправо иначе выход всё

г:=г+1

кц

если снизу свободно то вниз иначе выход всё

нц пока слева свободно

влево

кц

в:=в+1

кц

кон

2) Закраска только углов поля:

использовать Робот

алг |закраска всех углов (начальное положение - левый верхний угол)

нач

закрасить

нц пока справа свободно

вправо

кц

закрасить

нц пока снизу свободно

вниз

кц

закрасить

нц пока слева свободно

влево

кц

закрасить

кон

3) Закраска всего поля узором в клетку:

использовать Робот

цел г,в

алг |рисуем клетки (начальное положение - левый верхний угол)

нач

в:=0

нц

г:=0

нц |смещение до следующей линии (по горизонтали и вертикали)

если mod(г,3)=0 или mod(в,3)=0 то закрасить всё

если справа свободно то вправо иначе выход всё

г:=г+1

кц

если снизу свободно то вниз иначе выход всё

нц пока слева свободно

влево

кц

в:=в+1

кц

кон

Начальное положение везде- левый верхний угол. Если нужно другое- то либо в программе меняйте все команды верх-низ местами (или даже лев-прав если надо), либо в начале программы можно добавить циклы приведения робота откуда угодно в верхний левый угол.

Что то типа:

нц пока слева свободно; влево кц

нц пока сверху свободно; вверх кц

Приложения:

Ziorar: Или, прога попроще, без изысков (для мелой клеточки, но если накопировать по третьей строке в конце каждого цикла, то и крупная клетка будет):
Ziorar: использовать Робот
алг
нач
нц
нц пока справа свободно; вправо; закрасить кц
нц пока слева свободно; влево кц
если снизу свободно то вниз иначе выход всё
если снизу свободно то вниз иначе выход всё
кц
нц пока сверху свободно; вверх кц
закрасить
нц
нц пока снизу свободно; вниз; закрасить кц
нц пока сверху свободно; вверх кц
если справа свободно то вправо иначе выход всё
если справа свободно то вправо иначе выход всё
кц
кон
KreiserA: господи... какая-то китайская грамота. что такое цел г,в... кумир мне пишет - мусор между "алг" ..."нач" и все дальше г:=г+1 - имя не обьявлено... пошла топиться я((
Ziorar: Извините, что поздно. Возможно, перед тем как скопировать отсюда программу вы не стёрли полностью заготовку программы, которая есть в Кумире при старте.
1) цел г,в -это объявление целых переменных с именами г (для счёта клеток по горизонтали) и в (для вертикали). Тут всё правильно, можете разве что пробел после запятой добавить для красоты: цел г, в
Ziorar: 2) мусор между алг нач -видимо у вас не скопировался символ начала текстовых комментариев, либо другая версия Кумира
решение- уберите всё между "алг" и "нач" (начало программы), вот так получится, они стоят на разных строках:
алг
нач
3) имя не объявлено -это потому, что строка "цел г, в" стоит где то не там, где должна (может быть, вы не стёрли полностью заготовку программы, которая есть в Кумире при старте)
Похожие вопросы
Предмет: Українська мова, автор: 28CRAZYOWL03