Next:4.4.3
Упражнения
Up:4.4
Функции на последовательностях
Previous:4.4.1
Подсчет вхождений
Решение. В отличие от задачи из п. 4.4.1, для функции КоМакс (количество максимумов в последовательности) не удается напрямую записать соотношение, позволяющее сводить исходную задачу к задаче для подпоследовательности.
Однако если ввести в рассмотрение дополнительную функцию Макс (максимальный элемент последовательности), такое сведение становится вполне очевидным: зная и X, можно вычислить КоМакс и Макс.
Программа КоличествоМаксимумов реализует решение задачи на основе этих соотношений.
module КоличествоМаксимумов;
var X,M, Ответ: integer;
begin
if Eof then Ответ := 0 (* {Ответ=
КоМак(Input)} *)
else
Ответ := 1; Read(M);
(* {M= Макс(Input1),
Ответ=
КоМак(Input1)} *)
while ~ Eof do
(* Ограничивающее выражение: |Input2| *)
(* {M= Макс(Input1), |Input2|>0, Ответ= КоМак(Input1)}
*)
read(X);
if X = M then Ответ := Ответ + 1
elsif X > M then M := X; Ответ := 1
end
end
(* {M= Макс(Input1),
|Input2|=0, Ответ= КоМак(Input1)}*)
end;
(* {Ответ= КоМак(Input)} *)
write('В последовательности',Ответ,'максимумов':20)
end КоличествоМаксимумов.
Next:4.4.3
Упражнения
Up:4.4
Функции на последовательностях
Previous:4.4.1
Подсчет вхождений