ляді: = 20; a: array [1. nmax, 0. nmax] of integer;, m, i, j, l: byte;, b: integer;
де nmax - максимальну кількість рядків, a - маса з розмірністю mxn, m і n - розмірність матриці, i, j і l - лічильники циклу, sm - сума елементів рядка, b - допоміжна змінна для сортування рядків.
Вихідні дані для підпрограми сортування :: integer; {лічильник циклу}
3.4 Розробка алгоритму і його опис
На малюнку 3.1 зображена блок-схема сортування даних методом прямих вставок у бар'єром.
На малюнку 3.2 представлена ​​блок-схема алгоритму розв'язання задачі. Розглянемо її роботу детальніше. br/>В
Малюнок 3.1 - Блок-схема сортування методом прямих вставок у бар'єром
В
Рисунок 3.2 - Блок-схема алгоритму розв'язання задачі № 3
.5 Лістинг програми
constnmax = 20; a: array [1. nmax, 0. nmax] of integer;, m, i, j, l: byte;, b: integer;
{Метод прямих вставок з бар'єром} MetPrVstBar; k: integer; k: = 2 to n doa [l, k-1]> a [l, k] thena [l, 0] = a [l, k];: = k-1; a [l, j]> a [l, 0] doa [l, j +1]: = a [l, j];: = j-1 ;; [l, j +1]: = a [l, 0];;;; ('Колічествострокдо', nmax, 'm ='); (m); m in [1. nmax]; ('Кількість стовпців n ='); (n); n in [1. nmax];
{обчислення сум парних позитивних у рядках
і запис їх у додатковий стовпець} i: = 1 to m do: = 0; j: = 1 to n do [i, j]: = random (20);: = sm + a [i, j];; [i, n +1]: = sm;;; ('Вихідний масив:'); ('Сума': (n * 4 +8)); i: = 1 to m doj: = 1 to n +1 doj = n +1 then write (a [i, j]: 6) write (a [i, j]: 4);;;
{перестановка у стовпцях по зростанню} l: = 1 to m do MetPrVstBar;
{перестановка рядків за зростанням сум (за останнім стовпцю)} i: = 1 to m-1 dol: = i +1 to m doa [i, n +1]> a [l, n +1] thenj: = 1 to n +1 do: = a [i, j]; [i, j]: = a [l, j]; [l, j]: = b;;; ('Відсортований за зростанням: '); (' Сума ': (n * 4 +8)); i: = 1 to m doj: = 1 to n +1 doj = n +1 then write (a [i, j]: 6 ) write (a [i, j]: 4);;;.
3.6 Інструкція з експлуатації програми
Запустити файл program 3.28. pas через середовище розробки Pascal ABC, виконати і ввести розмірність матриці.
3.7 Результати проведених розрахунків та їх аналіз
Логіка роботи програми докладно описана в пункті "Розробка алгоритму і його опис", тому відразу наведемо результати тестування.
В
Малюнок 3.3 - Результат роботи програми
Як видно з малюнка 3.3, на екран виводиться отриманий змінився...