VitalyD

Untitled

Feb 28th, 2019
608
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.65 KB | None | 0 0
  1. const
  2.   n = 5;
  3.   m = 5;
  4.  
  5. var
  6.   a: array[1..m, 1..n] of integer;
  7.   i, j, k, c: integer;
  8.  
  9. //Заполнение рандомными числами и вывод массива
  10.  
  11. begin
  12.   randomize;
  13.   writeln('Исходная матрица:');
  14.   for i := 1 to m do
  15.   begin
  16.     for j := 1 to n do
  17.     begin
  18.       a[i, j] := random(20);
  19.       write(a[i, j]:4);
  20.     end;
  21.     writeln;
  22.   end;
  23.  
  24.   //Задается цикл, пока не будет введен номер строки
  25.  
  26.   repeat
  27.     write('Введите номер строки от 1 до ', m, ': k = ');
  28.     readln(k);
  29.   until k in [1..m];
  30.  
  31.   //Сортировка вставками
  32.  
  33.   for i := 2 to n do //Первый элемент считает отсортированным
  34.   begin
  35.     c := a[k, i];
  36.     j := i - 1;
  37.     while (j >= 1) and (a[k, j] > c) do  // собственно сама сортировка вставками смотрим на второе значение,
  38.     begin               // если ее значение меньше первой, то меняем эти значения местами, в противном случае переменные сохраняют свои позиции, и алгоритм переходит к шагу 2. На 2-ом шаге смотрим на третье значение и тд
  39.       a[k, j + 1] := a[k, j];
  40.       j := j - 1;
  41.     end;
  42.     a[k, j + 1] := c;
  43.   end;
  44.   writeln('Результат:');
  45.   for i := 1 to m do
  46.   begin
  47.     for j := 1 to n do      //просто вывод массива
  48.       write(a[i, j]:4);
  49.     writeln;
  50.   end;
  51. end.
Advertisement
Add Comment
Please, Sign In to add comment