Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > ПОМОГИТЕ СОВМЕСТИТЬ ТИПЫ


Автор: Murielpro 20.4.2015, 01:51
program PARKET;
 const m=2; n=2; finish=(m*n)/2;
 type massiv=array[1..m,1..n] of byte;
      move=array[1..2] of 0..1;
 var tab: massiv;
     i,j,s: byte;
     ss: longint;
     const mvi: move=(1,0);
           mvj: move=(0,1);

 function mozno(var tab: massiv; i,j: byte): boolean;
 (* функция проверки: свободно ли место I,J *)
  begin
   if (tab[i,j]=0) and (i>0) and (i<=m) and (j>0) and (j<=n)
                                          then mozno:=true
                                          else mozno:=false
   end; (* конец процедуры проверки  *)

 procedure nachalo(var tab: massiv; var u,v: byte);
  var i,j: byte;
      nul: boolean;
      begin
       nul:=false; i:=0;
       while (i<m) and not nul do
          begin
            i:=i+1; j:=0;
            while (j<n) and not nul do
               begin
                 j:=j+1; if tab[i,j]=0 then nul:=true
               end
          end;
       v:=j; u:=i
      end; (* конец процедуры нахождения начальной точки *)

 procedure step(var tab: massiv; var s: byte; var ss: longint);
 (* процедура ставит плитку *)
  var l,u,v,uu,vv: byte;
   begin
    nachalo(tab,u,v); l:=0;
    repeat
     l:=l+1; uu:=u+mvi[l]; vv:=v+mvj[l];
     if mozno(tab,uu,vv) then
      begin
       tab[u,v]:=s; tab[uu,vv]:=s; s:=s+1;
       if s>finish then ss:=ss+1
                   else   step(tab,s,ss); (* рекурсивный шаг вперёд *)
      s:=s-1; tab[u,v]:=0; tab[uu,vv]:=0;   (* шаг назад *)
      end;
    until (l=2)
   end; (* конец процедуры установки плитки *)

 (* начало основной программы *)
 begin
  for i:=1 to m do
   for j:=1 to n do tab[i,j]:=0;
  ss:=0; s:=1;
  step(tab,s,ss);
  writeln('всего способов укладки паркета -  ',ss);
  readln
 end.


Пишет - выход за границы диапозона изменения индекса 1..2
Подправьте кто может


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)