Пример выполнения лабораторной работы 5
Задание: Дан двумерный массив. В каждой строке все его элементы, не равные нулю, переписать (сохраняя порядок) в начало строки, а нулевые элементы - в конец строк массива. Новый массив не заводить.
Этапы решения задачи: 1. Математическая модель: Необходимо " просматривать" массив построчно и находить в каждой строке пару (0: число), а затем менять их местами между собой и так до тех пор, пока в строке таких пар не окажется. 2. Схема алгоритма приведена на рисунке К.1, Логика программы представлена на рисунке К.2.. 3. Листинг программы.
program example4; var V: array[1..100, 1..100] of integer; m, n, i, j, c: integer; flag: boolean; begin write('Введите размерность массива m-n'); readln(m, n); for i: =1 to m do for j: =1 to n do begin write('V[', i, ', ', j, ']= '); readln(V[i, j]); {заполнение массива элементами, с помощью ввода с клавиатуры} end; for i: =1 to m do repeat {поиск пары: нулевой и ненулевой элемент и замена их местами} flag: = true; for j: =1 to n-1 do if (V[i, j]=0) and (V[i, j+1]< > 0) then begin c: =V[i, j]; V[i, j]: =V[i, j+1]; V[i, j+1]: =c; flag: = false; end until flag; for i: = 1 to m do begin for j: =1 to n do write(V[i, j]: 2); {вывод элементов массива на экран} writeln; end; readln; end. 4. Результаты тестирования программы.
|