Программа строит полный граф перекрытия слов(граф де Брёйна) для заданных параметров: значности алфавита последовательности и длины слов (размерности пространства).
В полном графе де Брёйна всем различным словам заданной длины сопоставлены различные вершины . Слово, сопоставленное вершине является именем (меткой) вершины. Вершина A соединяется дугой с вершиной B , если слово имени вершины A без начального символа совпадает с началом имени вершины B.
Если при запуске программы не задано имя файла с начальным графом, то производится построение полного графа де Брёйна со случайным размещением вершин на экране, в противном случае граф с начальным расположением считывается из заданного файла.
Начальный граф изображается на экране. На левой и нижней сторонах экрана располагаются кнопки управления. В нижней строке экрана расположены также кнопки меню установки режима работы программы. В верхней части экрана выводится отрезок обрабатываемой последовательности на котором выделено текущее слово и несколько строк текущей информации.
Пользователь может в любое время изменять расположение вершин графа на экране. Для этого достаточно указать вершину и переместить её в нужное положение при нажатой левой клавише мыши. При перемещении указателя по пустому полю с нажатой левой клавишей сдвигается весь граф. Передвижение указателя при нажатой правой клавише изменяет размер изображения графа.
После изображения начального графа открывается файл с последовательностью символов для анализа. Далее работой программы управляет пользователь. Команды задаются нажатием кнопок управления расположенных у левой и нижней границ экрана.
Z+ | увеличить длину змеи |
Z0 | занулить длину змеи |
Z- | уменьшить длину змеи |
Z> | змея увеличение толщины |
Z< | - " - уменьшение толщины |
>- | скорость пробега уменьшить |
>+ | - " - - " - увеличить |
> | один шаг по последовательности / стоп |
>> | пробег одного отрезка последовательности / стоп |
>& | пробег всех отрезков как единого / стоп |
сетка | вершины рисуются в позиции с координатами кратными 10 пикселам |
имя | в позиции вершины пишется её имя, т.е. слово из последовательности |
необходимость | name | value |
---|---|---|
нет | alfa | строка с алфавитом |
обязательный | znachn | значность алфавита(число) |
обязательный | razmer | размерность пространства |
нет | namebeg | имя файла с начальным графом |
нет | nameinp | имя файла для ввода графа |
нет | nameout | имя файла для записи графа |
обязательный | namefile | имя файла с последовательностью |
нет | zmej | начальная длина змеи |