Пример выполнения лабораторной работы 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. Результаты тестирования программы.

Рисунок К.1–Схема алгоритма Рисунок К.2–Логика алгоритма программы

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: