Объяснение:
a - массив;
sum - сумма элементов массива;
avrg - среднее значение.
Пример алгоритма решения задачи:
Заполняем массив (например, случайными числами).
Переменной sum изначально присваиваем значение 0.
Вычисляем сумму элементов, в цикле перебирая массив и добавляя значение каждого к переменной sum.
Находим среднее арифметическое, путем деления суммы на количество элементов (хранится в константе N).
Выводим на экран весь массив и найденное среднее значение. (Это не обязательно, но необходимо для удобства.)
Снова в цикле перебираем массив. Если очередной элемент больше среднего арифметического, то выводим этот элемент на экран.
const N = 10;
var
a: array[1..N] of integer;
i: byte;
avrg: real;
sum: integer;
begin
randomize;
for i:=1 to N do a[i]:=random(50)+1;
sum := 0;
for i:=1 to N do sum := sum + a[i];
avrg := sum/N;
// весь массив
for i:=1 to N do write(a[i]:3);
writeln;
writeln('Среднее арифм.: ',avrg:4:2
for i:=1 to N do if a[i]>avrg then write(a[i]:3);
writeln;
end.
Пример выполнения программы:
7 36 21 48 33 46 7 17 19 41
Среднее арифм.: 27.50
36 48 33 46 41
Для того, чтобы решить данную задачу, необходимо воспользоваться формулой N = 2^i, где N - максимальное количество цветов в палитре, а i - глубина цвета.
2^8 < 312 < 2^9
Если мы будем использовать глубину цвета равную 8 битам, то максимальное допустимое количество цветов в палитре будет равняться 256 (так как 2^8 = 256), что не удовлетворяет условиям задачи.
Значит, нам необходимо использовать глубину цвета равную 9 битам, так как при этом значении максимальное допустимое количество цветов в палитре будет равняться 512(так как 2^9 = 512), а значит для кодирования 312 цветов памяти хватит с избытком.
ответ: 9