Next:6.2.2
Ханойские башни
Up:6.2
Построение программ с процедурами и функциями
Previous:6.2
Построение программ с процедурами и функциями
Решение. Использование процедур ВВОД и ПЕЧАТЬ и функции Сумма, реализующих соответственно ввод элементов вектора, печать элементов вектора и подсчет суммы нечетных элементов вектора, являющихся точными квадратами, позволяет представить решение задачи в виде, аналогичном решениям задач из п. 4.1.2 (см. программы ПОДСЧЕТ и КОМАК).
module ОбработкаВекторов;
const N = 20;
type НОМЕР = integer; ВЕКТОР = array N+1
of
integer;
var X,Y : ВЕКТОР; CX, CY : Integer;
procedure ВВОД (var X:ВЕКТОР);
var K:НОМЕР; begin for K :=
1 to N do read(X[K]) end end ВВОД ;
procedure ПЕЧАТЬ (Х:ВЕКТОР);
var K:НОМЕР; begin for K :=
1 to N do write(X[K]) end end ПЕЧАТЬ;
procedure Сумма (Х:ВЕКТОР):integer;
var K:НОМЕР; S : integer;
begin S := 0;
for K := 1 to N do
if odd(X[K]) &
(X[K] = sqr(integer(sqrt(X[K]))))
then S := S + X[K]
end
end;
return S
end Сумма ;
begin
CY := -1;
while ~ Eof do
ВВОД(Х); СХ := Сумма(Х);
if CX >=CY then
CY := CX; Y := X end
end;
if CY := -1 then write('На входе
- пустая последовательность')
else ПЕЧАТЬ (Y)
end
end ОбработкаВекторов.
Next:6.2.2
Ханойские башни
Up:6.2
Построение программ с процедурами и функциями
Previous:6.2
Построение программ с процедурами и функциями