Next:5.4.5
Упражнения
Up:5.4
Программы обработки матриц
Previous:5.4.3
Преобразование матриц
Решение. Если в матрице есть хотя бы одна строка-серия, то при обработке строк "с конца" требуемая строка будет обнаружена первой. Чтобы определить, является ли строка серией, достаточно сравнить каждый ее элемент с первым элементом строки. Для распознавания серии естественно выделить функцию Паскаля, решающую эту задачу. В этой функции мы предусмотрим логическую переменную РАВНЫ, которая становится ложной, когда в строке обнаруживается элемент, отличный от первого. Переменная РАВНЫ используется для управления циклом, в котором элементы строки сравниваются с ее первым элементом: процесс итерации можно оборвать, когда переменная РАВНЫ станет ложной.
module НомерСтрокиСерии;
const M = 30;
var A : array M+1, M+1 of integer;
I : integer;
procedure СЕРИЯ (I:Integer): boolean;
var РАВНЫ : boolean;
F, (* Первый элемент I-й строки матрицы A *)
J :integer;
begin
F := A[I,1];
J := 2; РАВНЫ := True;
while
(J # M) & РАВНЫ do
(* {Ограничивающее выражение: M-J} *)
РАВНЫ := (F = A[I,J]);
J := J+1
end;
return
РАВНЫ
end СЕРИЯ;
begin I := M;
(* Ниже I-й строки нет строк-серий *)
while ~ СЕРИЯ (I) & (I
0) do
I := I-1 (* Ниже I-й
строки нет строк-серий *)
end;
if I = 0 then writeln(' В матрице
нет строк-серий ')
else writeln(I,'- номер последней строки-серии
')
end
end.
Next:5.4.5
Упражнения
Up:5.4
Программы обработки матриц
Previous:5.4.3
Преобразование матриц