alvsjo

spirala

Feb 22nd, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.32 KB | None | 0 0
  1. //za zadati broj n formira i stampa matrica sa prvih n*n prirodnih brojeva
  2. //zapisanih u obliku spirale
  3. //1 2 3
  4. //8 9 4
  5. //7 6 5
  6. program spirala;
  7. type
  8.     niz=array[1..20]of integer;
  9.     matrica=array[1..20]of niz;
  10. var
  11.     m,n,i,j,s,k,b,br,l:integer;
  12.     x,y,z:niz;
  13.     a:matrica;
  14.  
  15. procedure UnosMatrice(var m,n:integer; var a:matrica);
  16. var i,j:integer;
  17. begin
  18.     write('Broj vrsta: ');
  19.     readln(m);
  20.     write('Broj kolona: ');
  21.     readln(n);
  22.     for i:=1 to m do
  23.     begin
  24.         for j:=1 to n do
  25.         begin
  26.         write('A[',i,',',j,']= ');
  27.         readln(A[i,j]);
  28.         writeln;
  29.         end;
  30.     end;
  31. end;
  32.  
  33.  
  34. procedure StampaMatrice(m,n:integer; A:matrica);
  35. var i,j:integer;
  36. begin
  37.     writeln;
  38.     for i:=1 to m do
  39.     begin
  40.         for j:=1 to n do
  41.         begin
  42.         write(A[i,j]:4);
  43.         end;
  44.  
  45.                 writeln;
  46.                 writeln;
  47.     end;
  48.     writeln;
  49. end;
  50.  
  51.  
  52.  
  53. begin
  54. write('Dimenzija matrice: ');
  55. readln(n);
  56. b:=n div 2;
  57. l:=n-1;
  58. i:=1;
  59. j:=1;
  60. br:=0;
  61. for k:=1 to b do
  62. begin
  63.     i:=k;
  64.     j:=k;
  65.     for s:=1 to l do
  66.     begin
  67.         br:=br+1;
  68.         a[i,j]:=br;
  69.         j:=j+1;
  70.     end;
  71.     for s:=1 to l do
  72.     begin
  73.         br:=br+1;
  74.         a[i,j]:=br;
  75.         i:=i+1;
  76.     end;
  77.     for s:=1 to l do
  78.     begin
  79.         br:=br+1;
  80.         a[i,j]:=br;
  81.         j:=j-1;
  82.     end;
  83.     for s:=1 to l do
  84.     begin
  85.         br:=br+1;
  86.         a[i,j]:=br;
  87.         i:=i-1;
  88.     end;
  89.     l:=l-2;
  90. end;
  91. if(n mod 2=1) then a[b+1,b+1]:=n*n;
  92.  
  93. StampaMatrice(n,n,a);
  94. readln;
  95. end.
Add Comment
Please, Sign In to add comment