Для хранения одной точки черно-белого изображения требуется log(2)2 = 1 бит. Память для всего изображения = 16*32*1 бит = 16*32/8 байт = 64 байта.
Непростая задача...
const
n = 16;
type
R = record
v: integer;
p: integer
end;
mR = array[1..n] of R;
function SummOfDigits(n: integer): integer;
{ Сумма цифр в трехзначном числе }
begin
SummOfDigits := (n div 100) + ((n mod 100) div 10) + (n mod 10)
end;
procedure Swp(var a, b: R);
{ Меняет местами элементы a и b }
var
t: R;
begin
t.v := a.v; t.p := a.p;
a.v := b.v; a.p := b.p;
b.v := t.v; b.p := t.p
end;
procedure Shell(var a: mR; n: integer);
{ сортировка методом Шелла }
var
i, j, step: integer;
begin
step := n div 2;
while step > 0 do
begin
for j := n - step downto 1 do
begin
i := j;
while i <= n - step do
begin
if a[i].v > a[i + step].v then Swp(a[i], a[i + step]);
i := i + step
end
end;
step := step div 2
end
end;
var
a: array[1..n] of integer;
b: mR;
i: integer;
begin
Randomize;
Writeln('*** Исходные элементы массива ***');
for i := 1 to n do
begin
a[i] := Random(900) + 100;
b[i].v := SummOfDigits(a[i]);
b[i].p := i;
Write(a[i]:4)
end;
Writeln;
Shell(b, n);
Writeln('*** Упорядоченные по возрастанию суммы цифр элементы массива ***');
for i := 1 to n do
begin
Write(a[b[i].p]:4)
end;
Writeln
end.
Тестовое решение:
*** Исходные элементы массива ***
862 244 599 379 595 840 551 151 614 383 185 893 131 172 139 256
*** Упорядоченные по возрастанию суммы цифр элементы массива ***
131 151 244 172 551 614 840 139 256 185 383 862 595 379 893 599
1)
begin
var a:=ArrRandomReal(15,38,39);
a.Println;
end.
2)
begin
var a := ArrRandom(20, 0, 5);
Writeln('Последовательность ');
a.Println;
Writeln('Нечетные ');
a.Where(x -> odd(x)).Println;
end.
Так. Ну для начала небольшая табличка простейших чисел (3-9);
<u>00=0;</u>
<u>01=1;</u>
<u>02=2;</u>
<u>10=3;</u>
<u>11=4;</u>
<u>12=5;</u>
<u>20=6;</u>
<u>21=7;</u>
<u>22=8;</u>
И так, ситуация у нас почти такая же, как и из двоичной в восмеричную, только мы берем не 3 цифры, а 2. Вот например: 102211<u>02 </u>= (смотрим по таблице(2));
1022<u>11</u> = (смотрим по таблице(4));
10<u>22 </u>= (смотрим по таблице(8));
<u>10</u> = (смотрим по таблице(3));
Итоговое число(снизу вверх)=10221102(3)=3842(9);
А) Пенал, тетрадь, учебник.
Б) Папка "Службы", Папка "Игры", Корзина.
В) Диск, Флеш-карта, дискета.
Г) Растения, животные, клетки.
Д) Уравнения, числа, примеры.
Е) Карты, масштабы, мореплаватели.
Ж)Алгоритмы, схемы, данные.