San-ch

Untitled

May 3rd, 2011
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.81 KB | None | 0 0
  1. type
  2. matrica = array [1..10,1..10] of integer;
  3. matrica1 = array [1..10,1..2] of integer;
  4.  
  5.  
  6. function f(m: matrica; j: byte): integer;
  7. var
  8. x,i: integer;
  9. begin
  10.   x:=0;
  11.   for i:=1 to 10 do
  12.     if (m[i,j]>5) and ((m[i,j] mod 2)=1) then
  13.       x:=x+abs(m[i,j]);
  14.   f:=x;
  15. end;
  16.  
  17. procedure sort(var m: matrica1);
  18.  
  19.   procedure obmen(var a,b: integer);
  20.   var
  21.   x: integer;
  22.   begin
  23.     x:=a;
  24.     a:=b;
  25.     b:=x;
  26.   end;
  27.  
  28. var
  29. max,maxn: integer;
  30. i,j: byte;
  31.  
  32. begin
  33.   for i:=1 to 9 do
  34.   begin
  35.     max:=m[i,1];
  36.     maxn:=i;
  37.     for j:=i+1 to 10 do
  38.       if m[j,1]>max then
  39.       begin
  40.         max:=m[j,1];
  41.         maxn:=j;
  42.       end;
  43.     if maxn<>i then
  44.     begin
  45.       obmen(m[i,1],m[maxn,1]);
  46.       obmen(m[i,2],m[maxn,2]);
  47.     end;
  48.   end;
  49. end;
  50.  
  51. procedure generate(var m: matrica);
  52. var
  53. i,j: byte;
  54. begin
  55.   randomize;
  56.   for i:=1 to 10 do
  57.     for j:=1 to 10 do
  58.       m[i,j]:=random(201)-100;
  59. end;
  60.  
  61. procedure print(var m: matrica);
  62. var
  63. i,j: byte;
  64. begin
  65.   for i:=1 to 10 do
  66.   begin
  67.     for j:=1 to 10 do
  68.       write(m[i,j]:5);
  69.     writeln('');
  70.   end;
  71. end;
  72.  
  73. var
  74. m1,m2: matrica;
  75. mm: matrica1;
  76. i,j: byte;
  77.  
  78. begin
  79.  
  80.   generate(m1);
  81.   writeln('Входная матрица:');
  82.   writeln('');
  83.   print(m1);
  84.   writeln('');
  85.  
  86.   for i:=1 to 10 do
  87.   begin
  88.     mm[i,1]:=f(m1,i);
  89.     mm[i,2]:=i;
  90.   end;
  91.  
  92.   writeln('Характеристики столбцов:');
  93.   writeln('');
  94.   for i:=1 to 10 do
  95.     write(mm[i,1]:5);
  96.   writeln('');
  97.   writeln('');
  98.  
  99.   sort(mm);
  100.  
  101.   for i:=1 to 10 do
  102.     for j:=1 to 10 do
  103.       m2[i,j]:=m1[i,mm[j,2]];
  104.  
  105.   writeln('Выходная матрица:');
  106.   writeln('');
  107.   print(m2);
  108.   writeln('');
  109.   writeln('Характеристики столбцов:');
  110.   writeln('');
  111.   for i:=1 to 10 do
  112.     write(mm[i,1]:5);
  113.   writeln('');
  114.  
  115.   readln;
  116.  
  117. end.
Advertisement
Add Comment
Please, Sign In to add comment