CS 워크숍 003 자동 단어 수신

1494 단어 Kuin
그렇다면 정규어를 단숨에 설명하기 위해 비결정적 자동어를 도입한다.이것은 여러 개의 자동 기어가 동시에 움직이는 자동 기어다.클래스를 사용하여 여러 개의 자동 기어를 처리합니다.학급의 기본적인 사용 방법에 관해서는 "Kuin closure"라는 글을 보십시오.
그러면 우리는 특정한 문자를 식별하는 유한한 자동도를 고려할 것이다.이것은 세 가지 상태에서 실현할 수 있다.초기 상태 및 수리 상태(지정된 문자 1자를 수락한 상태) 및 기타 상태 3가지.
소스 코드에 링크 automaton.kn는 자동화 호스트이고 test_onechar.kn는 테스트 코드이다.automaton.kn 반복할 때마다 코드가 추가됩니다.Kuin 편집기에서 test_onechar.kn 를 실행하면 자동으로 문자를 식별하는 테스트가 진행됩니다.
test_onechar.kn
func runAutomaton(automaton: \automaton@Automaton, str: []char): bool
    var a: \automaton@Automaton :: automaton.clone()
    for i(0, ^str - 1)
        do a.put(str[i])
    end for
    ret a.isAccepted()
end func

func check(str: []char)
    var res: []char ::
    |@runAutomaton(\automaton@makeOneChar('く'), str) ?("受理", "拒否")
    do cui@print("入力=\"\{str}\", 結果=\{res}\n")
end func

func main()
    do @check("")
    do @check("く")
    do @check("くい")
    do @check("い")
end func
\automaton@makeOneChar는 문자를 자동으로 식별하는 함수를 생성할 수 있다.이 테스트 코드는'쿠'를 식별하는 자동 그림을 생성하고 4가지 상황을 테스트한다.테스트 결과는 다음과 같습니다.

좋은 웹페이지 즐겨찾기