Задание 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.

В программе есть дополнительные выводы промежуточных значений для проверки правильности работы программы. При желании можно их закомментировать – поставить перед ними //.