Задание 2 Вариант 3 Самостоятельная работа 5 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)

Решение #1

Изображение 2. Напишите программу. Известны факты выпадения осадков за каждый день лета (0 — нет осадков, 1 — есть осадки). Найдите первый самый продолжительный участок лета без...
Дополнительное изображение
Приложенные файлы
Загрузка...

Рассмотрим вариант решения задания из учебника Босова, Босова, Аквилянов 11 класс, Бином:
2. Напишите программу. Известны факты выпадения осадков за каждый день лета (0 — нет осадков, 1 — есть осадки). Найдите первый самый продолжительный участок лета без осадков, а также месяц начала и месяц конца этого участка.
Запишите текст программы.
program s5_v3_2;
const
n = 92; //июнь - 30, июль - 31, август - 31
var
c: array[1..n] of integer;
i, j, l, lmax, k2, k1m, k2m: integer;
begin
writeln('ввод массива');
randomize;
for i := 1 to n do
begin
c[i] := random(2);//получается массив из 1 и 0
write(c[i], ' ')
end;
writeln;
lmax := 0; i := 1;
while i <= n do
begin
//если встретился 0 и следующий элемент не последний
if (c[i] = 0) and (i + 1 < n) then
begin
l := 1; j := i + 1;
//если следующий тоже 0
while (c[j] = 0) and (j < n) do
begin
l := l + 1;
j := j + 1;
end;
//день завершения текущего периода без осадков
k2 := j - 1;
if l > lmax then
begin
lmax := l;
//последний день максимальной продолжительности без осадков
k2m := k2;
//первый день максимальной продолжительности без осадков
k1m := k2m - lmax + 1;
end;
l := 0; i := j;
end;
//если следующий не 0
i := i + 1
end;
writeln('lmax=', lmax, ' k1m=', k1m, ' k2m=', k2m);
write('Месяц начала максимального периода без осадков');
if k1m <= 30 then writeln(' июнь')
else if (k1m >= 31) and (k1m <= 61) then writeln(' июль')
else if (k1m >= 62) then writeln(' август');
write('Месяц завершения максимального периода без осадков');
if k2m <= 30 then writeln(' июнь')
else if (k2m >= 31) and (k2m <= 61) then writeln(' июль')
else if (k2m >= 62) then writeln(' август')
end.
В программе есть дополнительные выводы промежуточных значений для проверки правильности работы программы. При желании можно их закомментировать – поставить перед ними //.
*Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания.
*размещая тексты в комментариях ниже, вы автоматически соглашаетесь с пользовательским соглашением

Похожие решебники