Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пример 8.10



Дана матрица MAT(5*5), состоящая из вещественных элементов. Поменять местами строки матрицы, содержащие максимальный и минимальный элементы.

program MinMax;

type m = array [1..5] of real;

var mat: array [1..5] of m;

str: m;

maxi, mini, i, j, i1, j1: integer;

begin

write (‘введите матрицу - ‘);

for i:=1 to 5 do

for j:=1 to 5 do read (mat[ i, j]);

i1:=1; j1:=1; {индексы минимального элемента }

i2:=1; j2:=1; {индексы максимального элемента}

for i:=1 to 5 do

for j:=1 to 5 do

if mat [ i, j] > mat[ i2, j2] then

begin

i2:= i; j2:= j {запомнить индексы

нового максимума}

end

else

if mat [i, j] < mat [i1, j1] then

begin

i1:= i; j1:= j; {запомнить индексы

нового минимума}

end;

str:= mat[ i2 ]; {замена строки матрицы mat,}

mat [ i2 ]:= mat[ i1 ]; {содержащей максимальный}

mat [ i1]:= str; {элемент, строкой с мини-

мальным элементом и наоборот}

for i:=1 to 5 do

begin

for j:=1 to 5 do write (mat [ i, j]);

writeln

end

end.

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

Первая задача является разновидностью типовой задачи поиска максимума или минимума (пример 7.11).

Отличие от типовой заключается в том, что определяются не сами максимальный и минимальный элементы матрицы, а их индексы. Для хранения индексов в процессе счета используются переменные i1, j1 - для минимального элемента è i2, j2 - длямаксимального.

Для решения второй задачи используются три оператора присваивания, в которых участвуют строки матрицы с максимальным и минимальным элементами и эквивалентный им вспомогательный одномерный массив str.

Схема алгоритма

       
 
 
   


Вопросы для самопроверки

1) К каким операциям сводится обработка матрицы?

2) Каким образом производится перебор элементов матрицы в процессе выполнения операций над ней?

3) Как описываются двумерные массивы?

4) Как производится обращение к элементу двумерной матрицы в программе?

5) Как в программе осуществляется ввод (вывод) двумерных массивов?

6) Допустимо ли пересечение тел внешнего и внутреннего циклов?

7) Могут ли внешний и внутренний циклы заканчиваться одним оператором?

8) Разрешен ли вход во внутренний цикл, минуя его оператор цикла?

9) В каких случаях возможна передача управления из внутреннего цикла во внешний?

10) Является ли правильным описание массива:

var massiv = array [1..7;0..10] of real?

 
 





Дата публикования: 2015-01-24; Прочитано: 186 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...