Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Program projekt;
  2. Uses crt;
  3. const ilew = 10;
  4.       ilek = 10;
  5. Type
  6.  TTablica=array[1..ilew,1..ilek] of integer;
  7. Var
  8.  tab2d:TTablica;
  9.  m,n,decyzja:integer;
  10.  znak:char;
  11. {--------------------------------------------}
  12. procedure tab1(m,n:integer);
  13. var i,j,k:integer;
  14. Begin
  15.  k:=1;
  16.  For i:=1 to m do
  17.   For j:=1 to n do
  18.    Begin
  19.     tab2d[i,j]:=k;
  20.     inc(k);
  21.    End;
  22. End;
  23. {--------------------------------------------}
  24. procedure tab2(m,n:integer);
  25. var i,j,k:integer;
  26. Begin
  27.  k:=1;
  28.  For i:=1 to m do
  29.   If i mod 2 = 0 Then
  30.    Begin
  31.     For j:=n downto 1 do
  32.      Begin
  33.       tab2d[i,j]:=k;
  34.       inc(k);
  35.      End;
  36.    End
  37.   else
  38.    Begin
  39.     For j:=1 to n do
  40.      Begin
  41.       tab2d[i,j]:=k;
  42.       inc(k);
  43.      End;
  44.    End;
  45. End;
  46. {---------------------------------------------}
  47. procedure tab3(m,n:integer);
  48. var
  49. i,j,x,k: integer;
  50. Begin
  51. {pierwsza czesc tabelki}
  52.  k:=1;
  53.  for i := 1 to m do
  54.   begin
  55.    x := i;
  56.    for j := 1 to m do
  57.     begin
  58.      if x = 0 then
  59.        break;
  60.      tab2d[x, j] := k;
  61.      write(tab2d[x,j]:3);
  62.      Dec(x);
  63.      Inc(k);
  64.     end;
  65.   end;
  66.  
  67.   {for i := 2 to n do
  68.    begin
  69.     x := m;
  70.     for j := i to n do
  71.      begin
  72.       if x = 0 then
  73.        break;
  74.       tab2d[x,j]:=k;
  75.       Dec(x);
  76.       Inc(k);
  77.      end;
  78.    end;}
  79. End;
  80. {---------------------------------------------}
  81. procedure tab4(m,n:integer);
  82. var
  83. szerokosc, wysokosc: integer;
  84. poczatek_l, poczatek_g, poczatek_p, poczatek_dol: integer;
  85. i, k: integer;
  86. Begin
  87.  k:=1;
  88.  poczatek_g:=1; {wiersz od góry}
  89.  poczatek_l:=1; {pierwsza kolumna od lewej}
  90.  poczatek_p:=n; {kolumna z prawej }
  91.  poczatek_dol:=m; {kolumna z dołu }
  92.  szerokosc:=n - 1;
  93.  wysokosc:=m; {ilosc wierszy}
  94.  while k <= m*n do
  95.   begin
  96.    {1}
  97.    for i := poczatek_l to szerokosc do
  98.     if k <= m*n then
  99.      begin
  100.       tab2d[poczatek_g,i]:=k;
  101.       Inc(k);
  102.      end
  103.     else
  104.      break;
  105.    {2}
  106.    for i := poczatek_g to wysokosc do
  107.     if k <= m*n then
  108.      begin
  109.       tab2d[i,poczatek_p]:=k;
  110.       Inc(k);
  111.      end
  112.     else
  113.      break;
  114.    {3}
  115.    for i := szerokosc downto poczatek_l do
  116.     if k <= m*n then
  117.      begin
  118.       tab2d[poczatek_dol,i]:=k;
  119.       Inc(k);
  120.      end
  121.     else
  122.      break;
  123.    {4}
  124.    for i:=poczatek_dol - 1  downto poczatek_g + 1  do
  125.     if k <= m*n then
  126.      begin
  127.       tab2d[i,poczatek_l]:=k;
  128.       Inc(k);
  129.      end
  130.     else
  131.      break;
  132.     Inc(poczatek_l);
  133.     Dec(szerokosc);
  134.     Inc(poczatek_g);
  135.     Dec(wysokosc);
  136.     Dec(poczatek_p);
  137.     Dec(poczatek_dol);
  138.    end;
  139. End;
  140. {----------------------------------------------}
  141. procedure pokaz12(m,n:integer);
  142. var
  143. i, j: integer;
  144. begin
  145.  window(5,5,70,70);
  146.  textcolor(white);
  147.  textbackground(blue);
  148.  clrscr;
  149.  For i:=1 to m do
  150.   For j:=1 to n do
  151.    Begin
  152.     write(tab2d[i,j]:3);
  153.     If j = n Then
  154.      writeln;
  155.    End;
  156. End;
  157. {----------------------------------------------}
  158. procedure okno;
  159. Begin
  160.  Textbackground(blue);
  161.  Window(5,5,75,75);
  162.  clrscr;
  163.  TextColor(white);
  164. ENd;
  165. Begin
  166.  repeat
  167.   clrscr;
  168.   okno;
  169.   writeln('Wybierz jedna pozycje z poszczegolnych numerow przypisanych do danej tabelki:');
  170.   writeln('1 - Wierszami w prawo');
  171.   writeln('2 - Poziomo wezykiem');
  172.   writeln('3 - Skosnie w prawo i w gore');
  173.   writeln('4 - Po spirali w prawo');
  174.   readln(decyzja);
  175.   repeat
  176.    clrscr;
  177.    writeln('Podaj liczbe wierszy');
  178.    readln(m);
  179.   until m<=10;
  180.   repeat
  181.    clrscr;
  182.    writeln('Podaj liczbe kolumn');
  183.    readln(n);
  184.   until n<=10;
  185.   Case decyzja of
  186.    1 : Begin
  187.         tab1(m,n);
  188.         pokaz12(m,n);
  189.        End;
  190.    2 : Begin
  191.         tab2(m,n);
  192.         {pokaz12(m,n);}
  193.        End;
  194.    3 : Begin
  195.         tab3(m,n);
  196.         pokaz12(m,n);
  197.        End;
  198.    4 : Begin
  199.         tab4(m,n);
  200.         {pokaz12(m,n);}
  201.        End;
  202.   End;
  203.   Writeln('Jesli chcesz zakonczyc program nacisnij (t/T)');
  204.   readln(znak);
  205.  until (znak='T') or (znak='t');
  206. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement