Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Дана матрица 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!