Условие Задачи №7.

Медвежата-киберфизики работают над проектом по распознаванию сигналов с древней Земли. Для этого они собрали специального помощника — строчника, который умеет читать строки по буквам и подавать сигналы, если находит что-то важное.

Как работает строчник: каждую секунду он получает одну букву и двигается дальше. Его задача — внимательно следить за последовательностью символов и подавать сигналы в нужный момент.

Вот какие сигналы он должен подавать:

  • Сигнал А — если подряд встретились буквы О-С-А.
  • Сигнал Б — если встретилась буква Ь, а через одну букву после неё появилась Ъ. При этом в середине не может быть ещё одного Ь. (то есть последовательность вида: Ь _ Ъ, где _ — любая буква, кроме Ь).
  • Сигнал В — если до конца всей строки ни разу не встретилась буква И.

Подробнее про строчника можно узнать в образовательном курсе: https://orbita.education/ru/RU/events/101/488/7429

Постройте схему ПРИМС, по которой строчник сможет правильно обрабатывать входную строку и подавать сигналы А, Б и В в нужные моменты.

Для построения диаграммы ПРИМС нужна Кибериада IDE, её можно скачать по этой ссылке. При создании схемы выберите исполнителя «(Junior) Строчник». В ответе вставьте содержимое файла диаграммы в переменную state_machine.

Решение Задачи №7.

Мы принимаем буквы по очереди. С помощью иерархии мы постоянно проверяем, появляется ли буква И, и если является, то выставляем флаг в счетчике, который мы проверяем при окончании получаемой строки. Также с помощью иерархии мы всегда проверяем букву Ь. Если встречается буква О, то мы ждем последовательность О-С-А. Если встретилась буква Ь, то мы ее обрабатываем в отдельном состоянии, в котором одновременно ожидаем либо последовательность О-С, либо Ъ.

Файл диаграммы проверяется путём его интерпретации в среде симулятора с исполнителем. Производится несколько запусков симуляции, в каждом из которых исполнителю передаются разные входные данные. Результат работы исполнителя на загруженной диаграмме ПРИМС сравнивается с эталонными выходными данными. Решение оценивается на полный балл, если оно проходит все тесты.

Изображение диаграммы, принимаемой в качестве правильного ответа:

Видеоразбор задачи:

Last modified: Monday, 15 December 2025, 1:59 PM