var a: array[1..100, 1..100] of real; max, min: real; sum, product: real; i, j, m, n, k: integer;
begin {ввод матрицы} if handsfree then begin n := random(20) + 2; m := random(20) + 2; end else begin write('n, m ='); readln(n, m); end;
writeln('Данные матрицы:'); for i := 1 to m do begin for j := 1 to n do if handsfree then begin a[i, j] := random(100) - 50; write(a[i, j]:4, ' ') end else read(a[i, j]); writeln; end;
{минимумы и максимумы} max := a[1, 1]; min := a[1, 1]; for i := 1 to m do for j := 1 to n do begin if max < a[i, j] then max := a[i, j]; if min > a[i, j] then min := a[i, j]; end; writeln('max = ', max); writeln('min = ', min);
{сумма, произведение, пр. агригаты} sum := 0; product := 1; for i := 1 to m do for j := 1 to n do if a[i, j] <> 0 then {если нужен фильтр} begin sum := sum + a[i, j]; product := product * a[i, j]; k := k + 1; end; writeln('sum = ', sum); writeln('product = ', product); writeln('average = ', sum / (n * m)); writeln('average (selected) = ', sum / k); end.
Всего - 6,5 часов Ожидание 2 часа, осталось 4,5 часов Активен 1 заражённый 1 шаг: Послано на 15, заражено 15*0.2+1=4(3 в ожидании на 2 часа), осталось 3,5 часов 2 шаг Послано на 15, заражено 15*0.2+4=7(3 в ожидании на 1 час, 3 в ожидании на 2 часа), осталось 2,5 часов Активны 4 заражённых 3 шаг Послано на 15*4=60, заражено 60*0.2+7=19(12 в ожидании на 2 часа, 3 в ожидании на 1 час), осталось 1,5 часов Активны 7 заражённых 4 шаг Послано на 15*7=105, заражено 105*0.2+19=40, осталось 0.5 часов За пол часа рассылок не произойдёт. ответ: 40
const
handsfree = true;
var
a: array[1..100, 1..100] of real;
max, min: real;
sum, product: real;
i, j, m, n, k: integer;
begin
{ввод матрицы}
if handsfree then begin
n := random(20) + 2;
m := random(20) + 2;
end
else begin
write('n, m =');
readln(n, m);
end;
writeln('Данные матрицы:');
for i := 1 to m do
begin
for j := 1 to n do
if handsfree then begin
a[i, j] := random(100) - 50;
write(a[i, j]:4, ' ')
end
else
read(a[i, j]);
writeln;
end;
{минимумы и максимумы}
max := a[1, 1];
min := a[1, 1];
for i := 1 to m do
for j := 1 to n do
begin
if max < a[i, j] then max := a[i, j];
if min > a[i, j] then min := a[i, j];
end;
writeln('max = ', max);
writeln('min = ', min);
{сумма, произведение, пр. агригаты}
sum := 0;
product := 1;
for i := 1 to m do
for j := 1 to n do
if a[i, j] <> 0 then {если нужен фильтр}
begin
sum := sum + a[i, j];
product := product * a[i, j];
k := k + 1;
end;
writeln('sum = ', sum);
writeln('product = ', product);
writeln('average = ', sum / (n * m));
writeln('average (selected) = ', sum / k);
end.
Ожидание 2 часа, осталось 4,5 часов
Активен 1 заражённый
1 шаг:
Послано на 15, заражено 15*0.2+1=4(3 в ожидании на 2 часа), осталось 3,5 часов
2 шаг
Послано на 15, заражено 15*0.2+4=7(3 в ожидании на 1 час, 3 в ожидании на 2 часа), осталось 2,5 часов
Активны 4 заражённых
3 шаг
Послано на 15*4=60, заражено 60*0.2+7=19(12 в ожидании на 2 часа, 3 в ожидании на 1 час), осталось 1,5 часов
Активны 7 заражённых
4 шаг
Послано на 15*7=105, заражено 105*0.2+19=40, осталось 0.5 часов
За пол часа рассылок не произойдёт.
ответ: 40