<h3>PascalABC.NET 3.4.2, сборка 1864 от 11.11.2018</h3><h3>Внимание! Если программа не работает, обновите версию!</h3>
begin
var a := SeqRandom(10000, -10, 10).Where(t -> t.IsEven)
.Take(15).ToArray;
a.Println;
a.Where(t -> t < 0).Count.Println;
a.Transform(t -> t < 0 ? 0 : t);
a.Println
end.
<h2>Пример</h2><h3>-6 10 2 4 -2 -4 2 2 10 -10 -6 -8 -8 2 -6</h3><h3>8 </h3><h3>0 10 2 4 0 0 2 2 10 0 0 0 0 2 0</h3>
Пусть 1 цвет кодируется 1 битом, тогда:
<span>16 = 2^4 = 8*2 = 16 бит</span>
Я не знаю конкретно что вы используете как условные обозначения (я взял TRUE and FALSE) у вас же могут быть как вариант (1 и 0).
1 это TRUE
0 это FALSE
Var
a: array[1..10, 1..10] of integer;
i, j, k: integer;
begin
k := 1;
for i := 1 to 10 do
begin
for j := 1 to 10 do
begin
if(j >= i) then begin
a[i, j] := k;
k += 1;
end
else a[i, j] := 0;
write(a[i, j]:3);
end;
k := 1;
writeln();
end;
<span>end.</span>