1 - 3бит
2 - 128 цветов
3 - 512Кбайт
4 - ≈1406,25 Кбайт
Объяснение:
Напишем формулы, необходимые для решения задач:
1. N = 2^I , где N - кол-во цветов в палитре, I - глубина цвета
2. V = a*I , где V - информационный объем, a - количество пикселей
Задача 1
Воспользуемся формулой 1 и выведем I
I = log2 N = I = log2 8 = 3бит
Задача 2
Воспользуемся формулой 1
N = 2^I = 2^7 = 128 цветов
Задача 3
Воспользуемся формулой 2
V = a*I = 1024*512*8 бит / 2^13 = 2^10 * 2^9 * 2^3 / 2^13 = 2^9 Кбайт = =512Кбайт
Задача 4
Воспользуемся формулой 1 и формулой 2
Выведем I из формулы 1:
I = log2 N = log2 16*10^6 = log2 2^4*10^6 = 2*log2 2^2*10^3 =
= 2*log2 4000 ≈ 2*12 = 24бит
V = a*I = 800*600*24/2^13 = 2^3 * 10^2 * 2*3 * 10^2 * 2^3 * 3 / 2^13 =
= 2^7 * 10^4 * 3^2 / 2^13 = 2^11 * 5^4 * 3^2 / 2^13 = 5^4 * 3^2 / 2^2 =
= 625*9/4 = 1406,25 Кбайт
конкретно в каких стейтментах была ошибка , я не смог разобраться , но фактически у тебя
1.был не правильный вывод (m[1])
2.неправильная итерация по циклу с переменной 'с'
крч легче было просто переделать
var
c, n, i, j: integer;
m: array[1..1000] of integer;
begin
Readln(n);
for i := 1 to n do
begin
m[i] := i;
Write(m[i], ' ');
end;
writeln;
while n >= 1 do
begin
if c+2 < n then c := c + 3 else c := n - c + 3;
for i:=c to n do m[c]:=m[c+1];
n := n - 1;
end;
writeln(m[c]);
end.