var
n : integer; // длина мвссива
a : integer; // количество замен
begin
write('введите длину массива ');
readln(n);
var d : array of integer := new integer[n]; // создаем массив длиной n
d := ArrRandom(n, 6, 100); // заполняем массив случайными числами от 6 до 100
writeln('был сгенерирован массив ', d);
for var i := 0 to n-1 do begin
if (d[i] mod 3 = 0) and (d[i] mod 6 <> 0) then begin // проверяем содержимое ячейки массимассива на условие задачи
d[i] := 1; // заменяем значение ячейки на 1
a += 1; // увеличиваем счетчик количества замен на 1
end;
end;
writeln('массив после замены ', d);
writeln('было произведено замен ', a);
end.
итак...
генерируем массив указанной длины n
заполняем его случайными числами в диапозоне 6..100
так как паскаль нумерует ячейки массива начиная с 0 то задаем цикл от 0 до n-1
проверяем значение ячеек на соответствие условию
для этого делим значение на число и смотрим поделилось без остатка значит кратно ему, поделилось с остатком значит не кратно.
если соответствует условию то меняем значение на 1 и увеличиваем счетчик количества замен на 1
выводим сам массив и количество произведенных замен.
Тогда нам просто надо закодировать сообщение и вычислить его длину
Наиболее информационнно бы было кодировать так
- 1 бит - кто выиграл первый сет А(0) или В(1)
- 2 бит - кто выиграл второй сет А(0) или В(1)
- 3-4 бит - кто выиграл третий сет А(0) или В(1) или третий сет не играли(11)
итого 4 бита на все сообщение.
или можно кодировать по другому
- 1 бит - кто выиграл матч А(0) или В(1)
- 2 бит - с каким счетом 2:0(0) или 2:1(1)
Итого 2 бита
Почему-то мне кажется что тут подразумевался именно второй вид кодирования, но по нормальному стоило бы выбрать первый, который при наличии анализатора можно сократить до 3 бит