Сортировка методом вставки - PascalABC.NET
Формулировка задачи:
Программа когда работает , а когда нет .Пишет ошибку в строке 19 , что индекс за границами массива , помогите исправить.
Решение задачи: «Сортировка методом вставки»
textual
Листинг программы
var mas: array[1..7, 1..7] of integer; a, b, c, d: integer; begin randomize; for a := 1 to 7 do for b := 1 to 7 do begin mas[a, b] := random(20); end; for a := 1 to 7 do mas[a, 1] := integer.MinValue; for a := 1 to 7 do begin for b := 1 to 7 do begin Write(mas[a, b]:2, ' '); end; Writeln(); end; for a := 2 to 7 do begin b := a; while mas[4, b] < mas[4, b - 1] do begin c := Mas[4, b]; Mas[4, b] := mas[4, b - 1]; mas[4, b - 1] := c; b := b - 1; end; end; writeln('Result:'); for a := 1 to 7 do begin for b := 1 to 7 do begin Write(mas[a, b]:2, ' '); end; Writeln(); end; Writeln(); end.
Объяснение кода листинга программы
- Объявлены переменные:
mas
- массив размером 7x7 для хранения чиселa
,b
,c
,d
- переменные для выполнения сортировки
- Инициализирован генератор случайных чисел
- Заполняется массив
mas
случайными числами от 0 до 19 - Первая строка массива
mas
заполняется минимальным значением типаinteger
- Выводится на экран содержимое массива
mas
в виде строк по 2 символа с пробелами между ними - Начинается сортировка:
- Цикл перебирает строки массива
mas
- Внутри цикла перебираются столбцы массива
mas
- Если текущий элемент больше следующего, то они меняются местами
- Рекурсивный вызов для сортировки столбца от 4 до 1
- Цикл перебирает строки массива
- Выводится отсортированный массив
mas
на экран - Выводится итоговая строка
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д