А ты уже научился заряжать левой ногой свой телефон?
Прога на прологе ))



domains



sost = integer

m_ch=char*



predicates



nondeterm next( char, sost, char, sost )

nondeterm avtomat( m_ch, sost, m_ch )

nondeterm put(sost,sost,integer,m_ch)



clauses



%переходы

next( 'a',1,'v',2 ).



next( 'b',2,'g',3 ).

next( 'b',2,'z',1).

next( 'b',2,'W',4).



next( 'c',3,'j',4 ).

next( 'e',3,'h',1).

next( 'd',4,'k',1).



%avtomat( A, B, C )

%при входных символах A и начальном состоянии B будут выходные символы B

avtomat( [],_,[] ).

avtomat( [A1|A2], S ,[B1|B2] ):- next( A1, S, B1, L ), avtomat( A2, L, B2 ).



%put(A,B,C,D)

%из состояния A можно попасть в состояние B за C переходов с помощью входных символов D

put(S1,S1,0,[]).

put( S1,S2,N,[M1|M2] ):- next(M1,S1,_,L),N>0,NP=N-1,put(L,S2,NP,M2).



goal



%avtomat( ['a','b'],1,X).

put( 1,1,3,X ).