Next:5.4.2
Произведение матриц
Up:5.4
Программы обработки матриц
Previous:5.4
Программы обработки матриц
Рис.5.9. Матрица A с выделенной частью
Решение. При нахождении максимума обычно используют следующее очевидное соотношение:
max(M U {x}}= max(max(M), x),
где M -- произвольное непустое множество чисел, а x -- произвольное
число. Для пустого множества M выражение max(M) не определено. В случае,
если множество чисел из условия задачи
окажется пустым, мы будем печатать текст "нет отрицательных элементов". Заштрихованную часть матрицы можно "обходить" с помощью пересчета индексов строки и столбца 235#121, организуемого следующими двумя заголовками циклов:
for I := 1 to 30 do
if I < 16 then L := 31-I else
L := I end;
(* {L=max(I,
31-I)} *)
for J := L to
30 do ...
При просмотре элементов матрицы будем с помощью значений логической переменной НАЙДЕН различать два состояния: найден хотя бы один отрицательный элемент (НАЙДЕН = true) и такого элемента пока не найдено (НАЙДЕН = false; это будет начальное состояние просмотра). В состоянии not НАЙДЕН обнаружение отрицательного элемента будет переключать текущее состояние в НАЙДЕН и задавать начальное значение переменной МАКС. Неотрицательные элементы при просмотре просто пропускаются. В состоянии НАЙДЕН обнаружение отрицательного элемента может приводить к перевычислению переменной МАКС с тем, чтобы в ней по-прежнему хранился максимум отрицательных элементов уже просмотренной части матрицы.
module ПоискМаксимумаМатрицы;
const R = 30;
var A : array R+1, R+1 of real;
L,I,J : integer;
МАКС : real;
НАЙДЕН : boolean;
begin
for I := 1 to R do for
J := 1 to R do Read(A[I,J]) end;
НАЙДЕН := false;
for I := 1 to R do
if I <=
R div 2 then L := R-I+1 else L := I end;
(* {L=max(I,
31-I)} *)
for J := L
to
R do
if A [I,J]< 0 then
if НАЙДЕН then
if МАКС < A [I,J] then МАКС := A [I,J] end
(*
*)
end
else НАЙДЕН := true; МАКС := A[I,J]
end
end
end;
if НАЙДЕН then
writeLn( 'Максимум равен',МАКС
)
else writeln( 'Нет отрицательных элементов'
)
end
end ПоискМаксимумаМатрицы.
Next:5.4.2
Произведение матриц
Up:5.4
Программы обработки матриц
Previous:5.4
Программы обработки матриц