Сумма наибольших элементов равна 3.645

Пример 3. Задан двумерный массив , где ; по правилу . Упорядочить массив по возрастанию элементов дробной части третьего столбца. Вывести на печать исходный и отсортированный массивы.

Решение.

1. Анализ задачи.

Сортировку массива проведем методом прямого обмена. В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого, сравнивается со следующим и если он больше следующего, то элементы меняются местами. Таким образом, элементы с меньшим значением продвигаются к началу массива (всплывают), а элементы с большим значением – к концу массива (тонут), поэтому этот метод иногда называют «пузырьковым». Этот процесс повторяется на единицу меньшее число раз, чем число элементов в массиве. Дробная часть числа вычисляется функцией .

2. Блок-схема:

3. Программа:

program Sortirovka;

TYPE

Matrix=array [1..6,1..4] of real;

VAR

a: Matrix;

R: Real;

k, i,j: Integer;

BEGIN

for i:=1 to 6 do

for j:=1 to 4 do

a[i,j]:= sin(2*i-j); {Вычисляем элементы массива}

{ Печатаем массив в виде таблицы }

WriteLn('Матрица A');

for i:=1 to 6 do begin

for j:=1 to 4 do write(a[i,j]:6:3,' '); { Вывод на экран массива A }

writeln; end;

writeln; {Пропуск пустой строки}

for i:=2 to 6 do for j:=6 downto i do

if Frac(a[j-1,3]) > Frac(a[j,3]) then

for k:= 1 to 4 do {Перестановка строк}

begin R:= a[j-1,k];

a[j-1,k]:= A[j,k];

a[j,k]:= R;

end;

WriteLn('отсортированная матрица A имеет вид ');

for i:=1 to 6 do begin for j:=1 to 4 do

write(a[i,j]:6:3,' '); { Вывод на экран отсортированного массива A }

writeln;

end;

End.

4. Вид печати:


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



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