Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




На языке 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.

 


Тестирование программы

Ниже приведены результаты выполнения программы на примере различных входных данных.

 

 

 


Приложение 4

ОБРАЗЕЦ РЕШЕНИЯ ЗАДАЧИ





Поделиться с друзьями:


Дата добавления: 2018-11-11; Мы поможем в написании ваших работ!; просмотров: 260 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Свобода ничего не стоит, если она не включает в себя свободу ошибаться. © Махатма Ганди
==> читать все изречения...

2382 - | 2133 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.