Advertisement
EvgeniiKraaaaaaaav

matrixwork

Dec 18th, 2018
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 5.08 KB | None | 0 0
  1. //https://vk.com/evgenykravchenko0
  2.  
  3.                 ___                                        ___                   ___    
  4.                /  /\                  ___                 /  /\                 /  /\    
  5.               /  /:/_                /__/\               /  /:/_               /  /:/_  
  6.              /  /:/ /\               \  \:\             /  /:/ /\             /  /:/ /\  
  7.             /  /:/ /:/_               \  \:\           /  /:/_/::\           /  /:/ /:/_
  8.            /__/:/ /:/ /\          ___  \__\:\         /__/:/__\/\:\         /__/:/ /:/ /\
  9.            \  \:\/:/ /:/         /__/\ |  |:|         \  \:\ /~~/:/         \  \:\/:/ /:/
  10.             \  \::/ /:/          \  \:\|  |:|          \  \:\  /:/           \  \::/ /:/
  11.              \  \:\/:/            \  \:\__|:|           \  \:\/:/             \  \:\/:/  
  12.               \  \::/              \__\::::/             \  \::/               \  \::/  
  13.                \__\/                   ~~~~               \__\/                 \__\/    
  14.                             ___                                            
  15.                            /__/\                ___                 ___    
  16.                            \  \:\              /  /\               /  /\    
  17.                             \  \:\            /  /:/              /  /:/    
  18.                         _____\__\:\          /__/::\             /__/::\    
  19.                        /__/::::::::\         \__\/\:\__          \__\/\:\__
  20.                        \  \:\~~\~~\/            \  \:\/\            \  \:\/\
  21.                         \  \:\  ~~~              \__\::/             \__\::/
  22.                          \  \:\                  /__/:/              /__/:/
  23.                           \  \:\                 \__\/               \__\/  
  24.                            \__\/                      
  25. var
  26.   a: array[1..20,1..20] of real;
  27.   b: array[1..20] of real; // вспомогательный одномерный массив (суммы положительных элементов строк)
  28.   n , m, i, j, s, k: integer;
  29.   tmp : real;
  30. begin
  31.   tmp := 0; //изначально избавляемся от мусора
  32.   // приглашение на ввод и ввод размеров матрицы
  33.   write('Введите размеры матрицы ');
  34.   readln(n, m);
  35.   random;//рандом
  36.   {инициализация и вывод исходной матрицы
  37.   b[i] = 0 изначально.(b[i] будет подсчитывать сумму для каждой строки. i увеличивается с каждым проходом строки
  38.   записывая результат в соответствующий элемент b[1],b[2] итд массива этого.
  39.   }
  40.   for i := 1 to n do
  41.   begin
  42.     b[i] := 0; //изначальная сумма для каждой строки = 0
  43.     for j := 1 to m do
  44.     begin
  45.       a[i, j] := random(10); // в каждый элемент двумерного массива
  46.       //записываем рандомное число от 0 до 9(всегда начинается с 0)
  47.       write(a[i, j]:4:0);//выводим элементы массива,тем самым формируя типа матрицу
  48.       //вывод происходит построчно
  49.       if a[i, j] > 0 then //просто проверка больше ли элемент
  50.         b[i] := b[i] + a[i, j]; // записываем в сумму текущий элемент
  51.     end;
  52.     write('  сумма = ', b[i]:4:0); // выводим сумму для каждой строки
  53.     writeln;
  54.   end;
  55.   writeln;
  56.  
  57.   // сортировка массива и матрицы
  58.   for i := 2 to n do
  59.     for j := n downto i do
  60.     //downto - переменная счетчика будет уменьшаться с каждым разом на 1
  61.       if b[j-1] < b[j] then // если предпоследняя сумма больше текущей суммы(последней)
  62.       begin
  63.       {
  64.           меняем местами суммы(применяем переменную tmp)
  65.           Напримеp:
  66.           b[j-1] = 15 а b[j] = 20;
  67.           в tmp пихаем 15 ,потом в b[j-1] пихаем 20,
  68.           а в b[j] пихаем 15.Теперь b[j] = 15,b[j-1] =20
  69.           tmp нам просто помогает менять местами
  70.       }
  71.         tmp := b[j - 1];
  72.         b[j - 1] := b[j];
  73.         b[j] := tmp;
  74.         for k := 1 to m do
  75.         begin
  76.         {
  77.             здесь тоже самое, что и выше описал,только меняем местами элементы
  78.             в самой матрице(производим перестановку)
  79.         }
  80.           tmp := a[ j - 1 , k];
  81.           a[j - 1, k] := a[j, k];
  82.           a[j, k] := tmp;
  83.         end;
  84.       end;
  85.   // вывод на экран упорядоченной матрицы
  86.   for i := 1 to n do
  87.   begin
  88.     for j := 1 to m do
  89.       write(a[i, j]:4:0);
  90.     writeln('  сумма  = ', b[i]:4:0);
  91.   end;
  92. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement