Безкоштовно

Машина Тюрінга (лабораторна)

views 1716

Лабораторна робота №3

МАШИНА ТЮРІНГА

Мета: Вивчити основні поняття алгоритмічної системи Тюрінга, і закріпити навички по створенню алгоритмів в даній системі.

Завдання: 1.  Побудувати машину Тьюринга і написати програму, яка в алфавіті Х{0,1,2,3,4,5,6,7} виконує операцію додавання 1 до натурального числа n, записаного в восьмирічній системі счислення.

Виконання роботи:

Uses crt;

Type c=array[1..15] of string;

Const a : c=(‘#’,’2′,’6′,’6′,’6′,’2′,’7′,’#’,’#’,’#’,’#’, ‘#’,’#’,’#’,’#’);

N=50;

Var i,k,m,s,flag : integer;

x1,x2,x4,x5,x6,q: string;

kom : array[1..N] of string;

BEGIN

clrscr;

m:=7;

q:=’1′;

kom[1]:=’10>11S’;

kom[2]:=’11>12S’;

kom[3]:=’12>13S’;

kom[4]:=’13>14S’;

kom[5]:=’14>15S’;

kom[6]:=’15>16S’;

kom[7]:=’16>17S’;

kom[8]:=’17>10L’;

kom[9]:=’1#>11S’;

Repeat

flag:=0; s:=s+1;

For i:=1 to N do

begin

x1:=copy(kom[i],1,1);

x2:=copy(kom[i],2,1);

x4:=copy(kom[i],4,1);

x5:=copy(kom[i],5,1);

x6:=copy(kom[i],6,1);

If (flag=0)and(x1=q)and(x2=a[m]) then

begin

q:=x4;

a[m]:=x5;

If x6=’R’ then

m:=m+1;

If x6=’L’ then

m:=m-1;

If x6=’S’ then

break;

flag:=1;

end;

end;

k:=k+1;

For i:=1 to 15 do

write(a[i],’ ‘);

writeln(‘   q=’,q,’   k=’,k);

delay(50);

sound(1000);

Delay(50);

Nosound;

For i:=1 to m-1 do

write(‘==’);

write(‘|’);

writeln;

until x6=’S’;

Readkey;

END.

Результат роботи:

# 2 6 6 6 2 0 # # # # # # # #    q=1   k=1

==========|

# 2 6 6 6 3 0 # # # # # # # #    q=1   k=2

==========|

Висновок: виконуючи цю лабораторну роботу я вивчила поняття алгоритмічної системи Тьюрінга, і закріпила навички по створенню алгоритмів в даній системі.

Звіт і програма здані викладачеві.

Написати коментар:

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *