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