1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Босова 7-9 класс (Сборник упр-й)
Упр.3.83 ГДЗ Сборник упражнений Босова 7-9 класс (Информатика)
Босова, Аквилянов
9 класс
Автор
Босова, Аквилянов

Упр.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$$.

Алгоритм:

  1. Ввести 30 чисел — количество миль за каждый день.
  2. Обнулить суммы $$s_1, s_2, s_3$$.
  3. Для каждого дня прибавлять значение к нужной сумме:
    • если $$i \le 10$$, то к $$s_1$$;
    • если $$i \le 20$$, то к $$s_2$$;
    • иначе к $$s_3$$.
  4. Считать, что $$max = s_1$$ и $$k = 1$$.
  5. Если $$s_2 > max$$, то присвоить $$max = s_2$$ и $$k = 2$$.
  6. Если $$s_3 > max$$, то присвоить $$max = s_3$$ и $$k = 3$$.
  7. Вывести $$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.

Ответ

Нужно сравнить суммы миль за три десятидневки; программа на Паскале приведена выше.



Общая оценка
4.9 / 5
Другие учебники
Другие предметы