Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Поиск используемого алфавита в заданной строке.
- //В процессе работы программы генерируемый алфавит будет находится слева и отделяться пустыми символами от строки.
- //Результат работы программы - строка из символов, используемых в заданной строке.
- stop = terminate empty = 0
- //сдвигаемся в начало заданной строки
- [q0]1 -> [q0]L
- [q0]2 -> [q0]L
- [q0]3 -> [q0]L
- [q0]0 -> [i0]R
- //---------------------------------------вспомогательные переходы--------------------------------------
- //поиск разделителя алфавита и строки
- [findRightDelimiter]1 -> [findRightDelimiter]R
- [findRightDelimiter]2 -> [findRightDelimiter]R
- [findRightDelimiter]3 -> [findRightDelimiter]R
- [findRightDelimiter]0 -> [rightDelimiterIsFound]0
- //проверка, является ли текущий символ последним в строке
- [checkIfLastSymbol]1 -> [notLastSymbol]L
- [checkIfLastSymbol]2 -> [notLastSymbol]L
- [checkIfLastSymbol]3 -> [notLastSymbol]L
- [checkIfLastSymbol]0 -> [lastSymbol]L
- //поиск следующего символа
- [findNextSymbol]0 -> [findNextSymbol]R
- [findNextSymbol]1 -> [nextSymbolIsFound]1
- [findNextSymbol]2 -> [nextSymbolIsFound]2
- [findNextSymbol]3 -> [nextSymbolIsFound]3
- //поиск генерируемого алфавита
- [findAlphabet1]0 -> [findAlphabet1]L
- [findAlphabet2]0 -> [findAlphabet2]L
- [findAlphabet3]0 -> [findAlphabet3]L
- [findAlphabet1]1 -> [alphabetIsFound1]1
- [findAlphabet1]2 -> [alphabetIsFound1]2
- [findAlphabet1]3 -> [alphabetIsFound1]3
- [findAlphabet2]1 -> [alphabetIsFound2]1
- [findAlphabet2]2 -> [alphabetIsFound2]2
- [findAlphabet2]3 -> [alphabetIsFound2]3
- [findAlphabet3]1 -> [alphabetIsFound3]1
- [findAlphabet3]2 -> [alphabetIsFound3]2
- [findAlphabet3]3 -> [alphabetIsFound3]3
- //проверка, имеется ли в алфавите текущий символ
- [checkIfExists1]1 -> [exists1]1
- [checkIfExists1]2 -> [checkIfExists1]L
- [checkIfExists1]3 -> [checkIfExists1]L
- [checkIfExists1]0 -> [doesNotExist1]0
- [checkIfExists2]1 -> [checkIfExists2]L
- [checkIfExists2]2 -> [exists2]2
- [checkIfExists2]3 -> [checkIfExists2]L
- [checkIfExists2]0 -> [doesNotExist2]0
- [checkIfExists3]1 -> [checkIfExists3]L
- [checkIfExists3]2 -> [checkIfExists3]L
- [checkIfExists3]3 -> [exists3]3
- [checkIfExists3]0 -> [doesNotExist3]0
- //последний поиск генерируемого алфавита
- [lastFindAlphabet1]0 -> [lastFindAlphabet1]L
- [lastFindAlphabet2]0 -> [lastFindAlphabet2]L
- [lastFindAlphabet3]0 -> [lastFindAlphabet3]L
- [lastFindAlphabet1]1 -> [alphabetIsFoundForLastTime1]1
- [lastFindAlphabet1]2 -> [alphabetIsFoundForLastTime1]2
- [lastFindAlphabet1]3 -> [alphabetIsFoundForLastTime1]3
- [lastFindAlphabet2]1 -> [alphabetIsFoundForLastTime2]1
- [lastFindAlphabet2]2 -> [alphabetIsFoundForLastTime2]2
- [lastFindAlphabet2]3 -> [alphabetIsFoundForLastTime2]3
- [lastFindAlphabet3]1 -> [alphabetIsFoundForLastTime3]1
- [lastFindAlphabet3]2 -> [alphabetIsFoundForLastTime3]2
- [lastFindAlphabet3]3 -> [alphabetIsFoundForLastTime3]3
- //последняя проверка, имеется ли в алфавите текущий символ
- [lastCheckIfExists1]1 -> [existsForLastTime1]1
- [lastCheckIfExists1]2 -> [lastCheckIfExists1]L
- [lastCheckIfExists1]3 -> [lastCheckIfExists1]L
- [lastCheckIfExists1]0 -> [doesNotExistForLastTime1]0
- [lastCheckIfExists2]1 -> [lastCheckIfExists2]L
- [lastCheckIfExists2]2 -> [existsForLastTime2]2
- [lastCheckIfExists2]3 -> [lastCheckIfExists2]L
- [lastCheckIfExists2]0 -> [doesNotExistForLastTime2]0
- [lastCheckIfExists3]1 -> [lastCheckIfExists3]L
- [lastCheckIfExists3]2 -> [lastCheckIfExists3]L
- [lastCheckIfExists3]3 -> [existsForLastTime3]3
- [lastCheckIfExists3]0 -> [doesNotExistForLastTime3]0
- //-----------------------------------------------------------------------------------------------------
- //---------------------------------- основная логика программы ----------------------------------------
- //инициализация
- [i0]1 -> [i1]L
- [i0]2 -> [i2]L
- [i0]3 -> [i3]L
- [i1]0 -> [ii1]L
- [i2]0 -> [ii2]L
- [i3]0 -> [ii3]L
- [ii1]0 -> [findRightDelimiter]1
- [ii2]0 -> [findRightDelimiter]2
- [ii3]0 -> [findRightDelimiter]3
- //начало цикла
- [rightDelimiterIsFound]0 -> [findNextSymbol]R
- [nextSymbolIsFound]1 -> [checkIfLastSymbol]R
- [nextSymbolIsFound]2 -> [checkIfLastSymbol]R
- [nextSymbolIsFound]3 -> [checkIfLastSymbol]R
- //если символ не последний
- [notLastSymbol]1 -> [findAlphabet1]0
- [notLastSymbol]2 -> [findAlphabet2]0
- [notLastSymbol]3 -> [findAlphabet3]0
- [alphabetIsFound1]1 -> [checkIfExists1]1
- [alphabetIsFound1]2 -> [checkIfExists1]2
- [alphabetIsFound1]3 -> [checkIfExists1]3
- [alphabetIsFound2]1 -> [checkIfExists2]1
- [alphabetIsFound2]2 -> [checkIfExists2]2
- [alphabetIsFound2]3 -> [checkIfExists2]3
- [alphabetIsFound3]1 -> [checkIfExists3]1
- [alphabetIsFound3]2 -> [checkIfExists3]2
- [alphabetIsFound3]3 -> [checkIfExists3]3
- [exists1]1 -> [findRightDelimiter]1
- [exists2]2 -> [findRightDelimiter]2
- [exists3]3 -> [findRightDelimiter]3
- [doesNotExist1]0 -> [findRightDelimiter]1
- [doesNotExist2]0 -> [findRightDelimiter]2
- [doesNotExist3]0 -> [findRightDelimiter]3
- //конец цикла
- //если символ последний
- [lastSymbol]1 -> [lastFindAlphabet1]0
- [lastSymbol]2 -> [lastFindAlphabet2]0
- [lastSymbol]3 -> [lastFindAlphabet3]0
- [alphabetIsFoundForLastTime1]1 -> [lastCheckIfExists1]1
- [alphabetIsFoundForLastTime1]2 -> [lastCheckIfExists1]2
- [alphabetIsFoundForLastTime1]3 -> [lastCheckIfExists1]3
- [alphabetIsFoundForLastTime2]1 -> [lastCheckIfExists2]1
- [alphabetIsFoundForLastTime2]2 -> [lastCheckIfExists2]2
- [alphabetIsFoundForLastTime2]3 -> [lastCheckIfExists2]3
- [alphabetIsFoundForLastTime3]1 -> [lastCheckIfExists3]1
- [alphabetIsFoundForLastTime3]2 -> [lastCheckIfExists3]2
- [alphabetIsFoundForLastTime3]3 -> [lastCheckIfExists3]3
- [existsForLastTime1]1 -> [terminate]1
- [existsForLastTime2]2 -> [terminate]2
- [existsForLastTime3]3 -> [terminate]3
- [doesNotExistForLastTime1]0 -> [terminate]1
- [doesNotExistForLastTime2]0 -> [terminate]2
- [doesNotExistForLastTime3]0 -> [terminate]3
- //-----------------------------------------------------------------------------------------------------
Add Comment
Please, Sign In to add comment