Среднее арифметическое последовательности чисел - Pascal (80608)
Формулировка задачи:
Ввести последовательность целых чисел, заканчивающихся числом k. Вычислить среднее арифметическое чётных чисел. (случайное число k генерируется заранне, до ввода всех чисел)
Решение задачи: «Среднее арифметическое последовательности чисел»
textual
Листинг программы
procedure Rec(sum: LongInt; count: LongWord; const k: ShortInt);
var
temp: ShortInt;
begin
Write('Input number (-128..127): '); ReadLn(temp);
if (temp <> k)
then
begin
if (Not Odd(temp))
then
begin
Inc(sum, temp);
Inc(count);
end;
Rec(sum, count, k);
end
else
if (count = 0)
then
WriteLn('No one positive!')
else
WriteLn('AVG=', (sum / count):0:3);
end;
var
k: ShortInt;
begin
Randomize;
k := Random(256) - 128;
WriteLn('k=', k);
if (Odd(k))
then
Rec(0, 0, k)
else
Rec(k, 1, k);
end.
Объяснение кода листинга программы
- Объявляется процедура
Recс параметрами:sumтипа LongInt (сумма чисел)countтипа LongWord (количество чисел)kтипа ShortInt (значение k)
- Объявляется переменная
tempтипа ShortInt. - Выводится сообщение
Input number (-128..127):и пользователь вводит значение для переменнойtemp. - Если значение
tempне равноk, то выполняется следующий блок кода, в противном случае выполнится другой блок. 4.1. Еслиtempявляется четным числом, то суммаsumувеличивается наtempи количествоcountувеличивается на 1. 4.2. Вызывается процедураRecс передачей параметровsum,countиk. - Если
tempравноkи количествоcountравно 0, то выводится сообщениеNo one positive!. - Если
tempравноkи количествоcountне равно 0, то выводится сообщениеAVG=и среднее арифметическое (sum / count) со значением округления до 3 знаков после запятой. - Объявляется переменная
kтипа ShortInt. - Генерируется случайное значение для
kот -128 до 127. - Выводится сообщение
k=и значение переменнойk. - Если
kявляется нечетным числом, то вызывается процедураRecс передачей параметров 0, 0 иk. В противном случае вызывается процедураRecс передачей параметровk, 1 иk.