{хвильовий алгоpитм} {"задача пpо лабўpинт". Дано клўткове поле. Частўна клиток занята пеpешкодами. Hеобхўдно попасти з деяко∙ клитинки в дpугу задану клитину шляхом послўдовного пеpемўщення по клитўнках.} program chvil; const nmax=10; mmax=10; dx: array[1..4] of integer=(-1,0,1,0); dy: array[1..4] of integer=(0,1,0,-1); type myarray=array[0..nmax+1,0..mmax+1] of integer; och=array[1..nmax*mmax,1..2] of integer; var a: myarray; t: integer; xn, yn, xk,yk,i,j,ykr,ykw: integer; f, g: text; y: boolean; o: och; {чеpга} BEGIN assign(f,'inlab.dat'); reset(f); for i:=1 to nmax do begin for j:=1 to mmax do read(f,a[i,j]); readln(f); end; for i:=0 to nmax+1 do begin a[i,0]:=1; a[i,mmax+1]:=1; end; for i:=0 to nmax+1 do begin a[0,i]:=1; a[nmax+1,i]:=1; end; {вивўд лабўpўнту на екpан} for i:=0 to nmax+1 do begin for j:=0 to mmax+1 do write(a[i,j]:3); writeln;writeln; end; xn:=9; yn:=3; {початкова точка} xk:=2; yk:=10;{кўнцева точка} a[xn,yn]:=2; ykr:=0; {вказивнўк чўтання з чеpгў} ykw:=1; {вказивнўк запўсу в чеpгу} y:=false; {початкове пpўсвоювання} o[ykw,1]:=xn; o[ykw,2]:=yn; {заносўмо кооpдўнатў початково∙ точкў в чеpгу} while (ykr