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


Ниже вариант решения задания из учебника Босова, Босова, Аквилянов 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(taskввод массиваtask);
randomize;
for i := 1 to n do
begin
c[i] := random(2);//получается массив из 1 и 0
write(c[i], task task)
end;
writeln;
lmax := 0; i := 1;
while i
begin
//если встретился 0 и следующий элемент не последний
if (c[i] = 0) and (i + 1
begin
l := 1; j := i + 1;
//если следующий тоже 0
while (c[j] = 0) and (j
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(tasklmax=task, lmax, task k1m=task, k1m, task k2m=task, k2m);
write(taskМесяц начала максимального периода без осадковtask);
if k1m
else if (k1m >= 31) and (k1m
else if (k1m >= 62) then writeln(task августtask);
write(taskМесяц завершения максимального периода без осадковtask);
if k2m
else if (k2m >= 31) and (k2m
else if (k2m >= 62) then writeln(task августtask)
end.
В программе есть дополнительные выводы промежуточных значений для проверки правильности работы программы. При желании можно их закомментировать – поставить перед ними //.