Advertisement
Guest User

Laba7

a guest
Dec 18th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.92 KB | None | 0 0
  1. program Laba7;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. Uses
  8.   System.SysUtils;
  9.  
  10. const
  11.   Row = 10;
  12.   Col = 7;
  13.  
  14. var
  15.   X: array[1..Row, 1..Col] of integer;
  16.   Sum: array[1..Row] of integer;
  17.   i, j, k, swap: integer;
  18.   f: boolean;
  19.  
  20. begin
  21.   Randomize;
  22.  
  23.   for i := 1 to Row do
  24.     for j := 1 to Col do
  25.       X[i, j] := random(10);
  26.  
  27.   Write('ВВЕДЕННАЯ МАТРИЦА:');
  28.  
  29.   writeln;
  30.  
  31.   for i := 1 to Row do
  32.   begin
  33.     writeln;
  34.     for j := 1 to Col do
  35.       write(X[i, j]:3, '   ');
  36.   end;
  37.  
  38.   writeln;
  39.   writeln('---------------------------------------------');
  40.   writeln;
  41.  
  42.   Write('ОТСОРТИРОВАННАЯ ПО УБЫВАНИЮ ЭЛЕМЕНТОВ СТРОК ');
  43.  
  44.   writeln;
  45.  
  46.     //сортировка пузырьком с флагом строк матрицы по неубываюнию элементов
  47.  
  48.   for i := 1 to Row do
  49.   begin
  50.     f := true;
  51.     k := 1;
  52.     while (k <= Col - 1) and F do
  53.     begin
  54.       F := false;
  55.       for j := Col - 1 downto k do
  56.         if X[i, j] < X[i, j + 1] then
  57.         begin
  58.           swap := X[i, j];
  59.           X[i, j] := X[i, j + 1];
  60.           X[i, j + 1] := swap;
  61.           f := true;
  62.         end;
  63.       inc(k);
  64.     end;
  65.   end;
  66.  
  67.   for i := 1 to Row do
  68.   begin
  69.     writeln;
  70.     for j := 1 to Col do
  71.       write(X[i, j]:3, '   ');
  72.   end;
  73.  
  74.     //нахождение суммы четных неотрицательных элементов каждой строки
  75.   for i := 1 to Row do
  76.     for j := 1 to Col do
  77.       if (X[i, j] mod 2 = 0) and (X[i, j] > 0) then
  78.         SUM[i] := SUM[i] + X[i, j];
  79.  
  80.   writeln;
  81.   writeln;
  82.  
  83.   write('Сумма четных неотрицательных элементов строк:');
  84.   writeln;
  85.   writeln;
  86.     {|-------------------------------------------------------------|}
  87.     {|}for i := 1 to Row do                                       {|}            {                                   }
  88.     {|}  write(SUM[i], ' ');                                      {|}  {--------}{ этого в коде не будет, для отладки}
  89.     {|}writeln;                                                   {|}            {                                   }
  90.     {|}writeln('---------------------------------------------');  {|}
  91.     {|-------------------------------------------------------------|}
  92.  
  93.         //сортировка строк матрицы выбором по неубыванию суммы четных и неотрицательных элементов в соответствующих строках  
  94.   for k := 1 to Row - 1 do
  95.     for i := 1 to Row - 1 do
  96.       if Sum[i + 1] < Sum[i] then
  97.         for j := 1 to Col do
  98.                 begin
  99.           Swap := X[i + 1, j];
  100.           X[i + 1, j] := X[i, j];
  101.           X[i, j] := Swap;
  102.           Swap := Sum[i];
  103.           Sum[i] := Sum[i + 1];
  104.           Sum[i + 1] := Swap;
  105.         end;
  106.  
  107.   writeln;
  108.  
  109.   Write('ОТСОРТИРОВАННАЯ ПО СУММЕ ЧЕТНЫХ НЕОТРИЦАТЕЛЬНЫХ ЭЛЕМЕНТОВ В СТРОКЕ');
  110.  
  111.   writeln;
  112.  
  113.   for i := 1 to Row do
  114.   begin
  115.     writeln;
  116.     for j := 1 to Col do
  117.       write(X[i, j]:3, '   ');
  118.   end;
  119.  
  120.   writeln;
  121.   writeln;
  122.  
  123.   write('Сумма четных неотрицательных элементов строк');
  124.  
  125.   writeln;
  126.   writeln;
  127.  
  128.     {|-------------------------------------------------------------|}
  129.     {|}for i := 1 to Row do                                       {|}            {                                   }
  130.     {|}  write(SUM[i], ' ');                                      {|}  {--------}{ этого в коде не будет, для отладки}
  131.     {|}writeln;                                                   {|}            {                                   }
  132.     {|}writeln('---------------------------------------------');  {|}
  133.     {|-------------------------------------------------------------|}
  134.  
  135.   readln;
  136.  
  137. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement