ответ по конкретной задаче: 4 цветов можно закодировать 3 битами (100 = 4 )
Значит для изображения размером 320х200 в котором будет 64000 пикселя, нужно будет 64000пикселя*3бита = 192000 бит
"Nelle987 почему именно тремя битами надо кодировать 4 цвета? Кто мешает их кодировать как 00, 01, 10, 11?" 00 - может быть пустым пикселем. Отсутствие любого цвета из 4. Задание изначально спорное, чтобы вы не говорили, т.к. речь может идти о 4х цветах конкретных или о 4х цветах и их отсутствие. Ибо как записать тогда "пустое" изображение n x n пикселей? В случае с градациями цвета, то там может быть значение 0...255, как наиболее распространённый случай, если конечно не любители извращаться с другими палитрами (что явно уже не школьный курс, и противоречит правилам сервиса, т.к RGB палитра это легче для восприятия, и еще может изучаться в школе). Но это другая история. И тут 0 будет указывать на градацию цвета, а не на его отсутствие. Но специально для вас (видимо вам понравилось отправлять это задание на переделку) решу для 2х бит: 64000пикселя*2бита=128000бит.
В комментариях признаю ошибку, спутал количество фильтров(4) и кол-во палитр (3) для RGB, который я думаю целесообразно рассматривать в данном случае в примере, не смотря на наличие таких замечательных как RGBA и CMYK. Отредактировать ответ не смог, т.к. истек срок. Комментарии можно удалить.
Program primer; procedure random(c,x,y:integer; var r:integer); begin case c of 1 : r:=Random(ABS(Y)+ABS(x)+1)+x; 2 : r:=Random(ABS(Y)+ABS(x)+1)+y; 3 : r:=Random(Y-x+1)+x; 4 : r:=Random(x-y+1)+y; 5 : r:=Random(x+y); 6 : r:=Random(ABS(x+y))-ABS(x+y); 7 : r:=x; 8 : r:=Random(ABS(ABS(x)-ABS(y)))-ABS(x); 9 : r:=Random(ABS(ABS(x)-ABS(y)))-ABS(y); end; end; var a,b: array of array of integer; i,j,x,y,c,m,p,sum:integer; begin Randomize; sum:=0; writeln('Кол-во строк и столбцов массива? //X,Y\\ '); read(i,j); //Размерность массива writeln('Диапазон чисел //от X,до Y\\ '); read(x,y); //и диапазон генерации вводятся с клавиатуры. if (x=y) then c:=7 else if(x<0) and (y<0) then if (x<y) then c:=8 else c:=9 else if (x=0) or (y=0) then if(x<0) or (y<0) then c:=6 else c:=5 else if(x<0) or (y<0) then if (x<y) then c:=1 else c:=2 else if (x<y) then c:=3 else c:=4; SetLength(a,i); for m:=0 to i-1 do SetLength(a[m],j); SetLength(b,i); for m:=0 to i-1 do SetLength(b[m],j); for m:=0 to i-1 do begin writeln(); for p:=0 to j-1 do begin random(c,x,y,a[m,p]); {Заполнить двумерный массив случайными числами.} sum:=sum+a[m,p]; {вычисляет сумму всех элементов массива} write (a[m,p]:3,' ':3); end; end; c:=0; writeln('summa=',sum); for m:=0 to i-1 do begin {Затем организовать новый массив В } writeln(); for p:=0 to j-1 do begin if (a[m,p] <0) then begin b[m,p]:=1; {в котором заменить отрицательные элементы исходного массива на 1} inc(c); {Подсчитать количество замен. } end else b[m,p]:=a[m,p]; {а значения остальных элементов оставить без изменения } write(b[m, p]:3, ' ':3); end; end; writeln('kol=',c); a:=NIL; b:=NIL; end. // ABC Pascal
4 цветов можно закодировать 3 битами (100 = 4 )
Значит для изображения размером 320х200 в котором будет 64000 пикселя, нужно будет 64000пикселя*3бита = 192000 бит
"Nelle987 почему именно тремя битами надо кодировать 4 цвета? Кто мешает их кодировать как 00, 01, 10, 11?"
00 - может быть пустым пикселем. Отсутствие любого цвета из 4. Задание изначально спорное, чтобы вы не говорили, т.к. речь может идти о 4х цветах конкретных или о 4х цветах и их отсутствие. Ибо как записать тогда "пустое" изображение n x n пикселей? В случае с градациями цвета, то там может быть значение 0...255, как наиболее распространённый случай, если конечно не любители извращаться с другими палитрами (что явно уже не школьный курс, и противоречит правилам сервиса, т.к RGB палитра это легче для восприятия, и еще может изучаться в школе). Но это другая история.
И тут 0 будет указывать на градацию цвета, а не на его отсутствие.
Но специально для вас (видимо вам понравилось отправлять это задание на переделку) решу для 2х бит:
64000пикселя*2бита=128000бит.
В комментариях признаю ошибку, спутал количество фильтров(4) и кол-во палитр (3) для RGB, который я думаю целесообразно рассматривать в данном случае в примере, не смотря на наличие таких замечательных как RGBA и CMYK.
Отредактировать ответ не смог, т.к. истек срок. Комментарии можно удалить.