Описание блоков укрупненной схемы алгоритма

На языке Pascal

 

Ввод элементов двумерного массива

Для того, чтобы прокомментировать, что вначале будет выведен исходный массив на экран, используем оператор writeln('исходная матрица:').  

Рассмотренный фрагмент блок-схемы для реализации ввода элементов двумерного массива на языке Pascal будет представлен в следующем виде:


for i:=1 to n do


Begin

for i:=1 to n do begin

a[i,j]:=random(21)-5;

write(a[i,j]:4); end;

    writeln;

End; 

                     writeln;

Запись write(a[i,j]:4) обозначает, что для вывода каждого элемента на экран отводится 4 позиции.

Следующий далее оператор writeln без параметров просто переводит курсор на другую строку. Это необходимо для того, чтобы данные выводились на экран в виде матрицы.

Добавим еще оператор writeln без параметров для более удобного восприятия информации с экрана.

 

Поиск минимального элемента в каждом столбце

Далее начинаем обработку массива. Обработка массива осуществляется в цикле с параметром.

Для того, чтобы прокомментировать, что вначале будет выведен исходный массив на экран, используем оператор writeln('Минимальные элементы столбцов'). Обработка массива заключается в сравнении минимальных элементов столбцов двумерного массива.

Поиск минимального элемента в каждом столбце, изложенный графическим способом, реализуем в следующем фрагменте программы:

min:=a[1,1];

imin:=1;

for j:=1 to m do

Begin

    minst:=a[1,j]; 

    for i:=2 to n do  

    if a[i,j] < minst 

    then 

    minst:=a[i,j];

    write(minst:4);

Чтобы проконтролировать работу программы с помощью оператора write(minst:4) выводим значения минимальных элементов столбцов на экран.

 



Поиск минимального элемента

Среди найденных минимальных элементов столбцов

 

Далее с помощью условия if minst < min then находимминимальный элемент среди минимальных элементов столбцов и запоминаем его значение и номер begin min:= minst; imin:= j end. Как только рассмотрим все элементы массива значение минимального элемента и его номера выведем на экран. Фрагмент программы, реализующий поиск минимального элемента среди минимальных элементов столбцов двумерного массива целых чисел приведен ниже.

min:=a[1,1];

imin:=1;

for j:=1 to m do

…………………………

if minst < min  then

Begin 

min:= minst;

imin:= j

end;

end;

writeln;

writeln('Минимальный элемент ', min);

writeln('Номер столбца с минимальным элементом ', imin);

writeln;

 

 

Сортировка столбца с минимальным элементом

 

Следующий цикл реализует алгоритм сортировки массива методом обмена.

Запись for i:=1 to n-1 do означает, что элементы массива будут обрабатываться, начиная с первого до предпоследнего. Внутренний цикл просматривает элементы от i+1 до n -того элемента массива (for j:=i+1 to n do). Если сравниваемый элемент больше следующего (if a[i,imin] > a[j,imin]), то значения соответствующих элементов меняются местами. Для того, чтобы поменять их местами, используем буферную переменную k. Сначала в переменной k сохраняется значение сравниваемого элемента массива (k:=a[i,imin]), затем элементу с этим номером присваивается значение следующего элемента (a[i,imin]:=a[j,imin]), после чего этому элементу присваивается значение буферной переменной k (a[j,imin]:=k).


Фрагмент программы:

for i:=1 to n-1 do

   for j:=i+1 to n do

         if a[i,imin] > a[j,imin] then


Begin

k:=a[i,imin];

a[i,imin]:=a[j,imin];

a[j,imin]:=k;

end;

 

Вывод преобразованного массива

После сортировки выводим полученный массив на экран стандартными средствами вывода:

for i:=1 to n do

        begin

              for i:=1 to n do

               write(a[i,j]:4);

               writeln;

      end; 

где write(a[i,j]:4) – вывод элементов двумерного массива в строку с указанием количества занимаемых позиций.  

 



Листинг программы

 

Program Var_14;

Uses crt;

Const n=4; m=5

Var a: array[1..n, 1..m] of integer; 

i, j, k, min, imin, minst: integer;

Begin  

Clrscr; randomize;

Writeln('исходная матрица:');

For i:=1 to n do

Begin

for i:=1 to n do begin

a[i,j]:=random(21)-5;

write(a[i,j]:4); end;

    writeln;

End; 

Writeln;

Writeln('Минимальные элементы столбцов ');

min:=a[1,1]; imin:=1;

For j:=1 to m do

Begin

    minst:=a[1,j]; 

    for i:=2 to n do if a[i,j] < minst then minst:=a[i,j];

write(minst:4);

if minst < min then begin min:= minst; imin:= j end;

End;

Writeln;

Writeln('Минимальный элемент ', min);

Writeln('Номер столбца с минимальным элементом ', imin);

Writeln;

For i:=1 to n-1 do

for j:=i+1 to n do

      if a[i,imin] > a[j,imin] then

begin k:=a[i,imin]; a[i,imin]:=a[j,imin]; a[j,imin]:=k; end;

Writeln;

Writeln('Массив с упорядоченным', imin, 'столбцом в порядке возрастания'); 

For i:=1 to n do

Begin

for i:=1 to n do write(a[i,j]:4);

    Writeln;

End; 

End.

 




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



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