Упр.3.83 ГДЗ Сборник упражнений Босова 7-9 класс (Информатика)
a [1..30] – массив количества миль, пройденных за каждый день
i – номер текущего дня
s1, s2, s3 – суммы путей, пройденных за каждые из трех десятидневок.
max – максимальное из s1, s2, s3
k – номер десятидневки.
program Z_83;
var
a: array [1..30] of integer;
i, k, s1, s2, s3, max: integer;
begin
s1 := 0; s2 := 0; s3 := 0;
for i := 1 to 30 do
begin
readln(a[i]);
if i < = 10 then s1 := s1 + a[i]
else if i < = 20 then s2 := s2 + a[i] else s3 := s3 + a[i];
end;
max := s1; k := 1;
if max < s2 then begin max := s2; k := 2 end;
if max < s3 then begin max := s3; k := 3 end;
writeln('max=', max, ' k =', k)
end.
Разобьём 30 дней на три десятидневки и найдём сумму пройденных миль в каждой из них:
- $$s_1$$ — за 1–10-й дни;
- $$s_2$$ — за 11–20-й дни;
- $$s_3$$ — за 21–30-й дни.
Затем сравним эти суммы и определим, в какой десятидневке путь оказался наибольшим. Для этого запомним максимальную сумму $$max$$ и номер десятидневки $$k$$.
Алгоритм:
- Ввести 30 чисел — количество миль за каждый день.
- Обнулить суммы $$s_1, s_2, s_3$$.
- Для каждого дня прибавлять значение к нужной сумме:
- если $$i \le 10$$, то к $$s_1$$;
- если $$i \le 20$$, то к $$s_2$$;
- иначе к $$s_3$$.
- Считать, что $$max = s_1$$ и $$k = 1$$.
- Если $$s_2 > max$$, то присвоить $$max = s_2$$ и $$k = 2$$.
- Если $$s_3 > max$$, то присвоить $$max = s_3$$ и $$k = 3$$.
- Вывести $$max$$ и $$k$$.
Соответствующая программа на языке Паскаль:
program Z_83;
var
a: array [1..30] of integer;
i, k, s1, s2, s3, max: integer;
begin
s1 := 0; s2 := 0; s3 := 0;
for i := 1 to 30 do
begin
readln(a[i]);
if i <= 10 then s1 := s1 + a[i]
else if i <= 20 then s2 := s2 + a[i]
else s3 := s3 + a[i];
end;
max := s1; k := 1;
if max < s2 then begin max := s2; k := 2; end;
if max < s3 then begin max := s3; k := 3; end;
writeln(‘max=’, max, ‘ k=’, k);
end.
Ответ
Нужно сравнить суммы миль за три десятидневки; программа на Паскале приведена выше.