Разбиение на слоги

an imageНедавно в русском языке были введены новые правила деления слов на слоги, с которыми можно познакомиться на сайте http://slogi.su/

Правила не всегда очевидны, например, КОТЛЫ разбивается на слоги как КО-ТЛЫ, а КОРМА как КОР-МА. Вам нужно прочитать внимательно правила разбиения на слоги и поэкспериментировать с программой на указанном сайте.

После этого нужно сконструировать автомат, который будет правильно разбивать на слоги слова любой длины, состоящие из букв Р, О, К. При этом в словах не должно идти более 2 гласных или согласных подряд. Например, слово ОКОРОК программа должна преобразовать в строку О-КО-РОК, "слово" КОРРО - в строку КО-РРО, а "слова" КОПРКО или КОООП рассматриваться не будут.

В качестве примера приведен автомат, который разбивает на слоги четырёхбуквенные "слова" из двух букв О и К. Таких слов, в которых согласные и гласные не повторяются  более двух раз, шесть: КОКО, ОККО, ОКОК, КООК, ККОО, ООКК. Однако приведенный автомат не является завершенным и слова, начинающиеся с гласной, не обрабатывает.

Для конструирования автомата на рабочее поле мышкой вытягиваются состояния - кружки.

Для соединения состояний переходами щёлкните мышкой на одно из них и перетяните точку, которая появится на "орбите" этого состояния, в другое. Над стрелкой перехода появятся два символа по умолчанию: первый из них - входной, второй - соответствующий выходной. Чтобы изменить входной или выходной символ, нужно щёлкнуть на него мышкой и выбрать другой. Заметьте, что из одного состояния можно перейти в разные состояния, но символы, по которым делается переход, должны быть разными.

В множестве символов автомата есть #, который называется пустым символом. Если использовать его в качестве входного, то автомат перейдет в новое состояние без ввода очередного символа. Если его использовать как выходной, то в выходную строку ничего не добавится. Если из некоторого состояния сделан переход по пустому символу, то переходы по другим символам из него будут невозможны.

Автомат всегда начинает работу из состояния S0.

Для управления автоматом используйте стандартные кнопки проигрывания, находящиеся внизу рабочей области по центру. После проигрывания не забывайте нажимать первую из кнопок (чёрный квадрат) для возвращения автомата в исходное состояние.

Для проверки работы автомата можно задать любую строку символов, нажав символ карандаша около входной строки. Ввод можно осуществлять только когда автомат возвращён в начальное состояние. В поле выходной строки появится результат

Для удаления построенного перехода подведите к нему мышку и, когда появится крестик, сделайте щелчок. Для удаления вершины перетяните её через нижнюю границу рабочего поля.