Чтобы это узнать нам потребуется разобрать это на примере. допустим у нас есть изображение размером 1024х1024 пикселя. чтобы определить объем занимаемой памяти при наличии на нем 65 536 цветов для начала нужно выяснить сколькими битами кодировать один пиксель. 65 536 = 2^16 => один пиксель кодируется 16 битами. значит объем памяти изображения будет составлять: 1024*1024*16= 16 777 216 бит. теперь вычислим объем памяти при наличии 16 цветов на изображении. 16=2^4 => 1024*1024*4=4 194 304 теперь чтобы определить во сколько раз уменьшился объем памяти изображения мы выполняем следующее действие: 16 777 216 : 4 194 304 = 4 т е объем памяти изображения уменьшился в 4 раза.
Попробуй Program PascalGuru; var s:string; f,t:text; function preobr(s:string):string;var i,j,p,n,sered:integer; gl,zp,slovo:string; m:array [1..80] of string;beginzp:='!?*,.'; gl:='аоуыэяеёюи'; p:=pos(' ',s); i:=0; repeat inc(i); slovo:=copy(s,1,p-1); m[i]:=slovo; delete(s,1,p); p:=pos(' ',s); until p=0; n:=i+1; m[n]:=s; for i:=1 to n do begin s:=m[i]; if pos(s[length(s)],zp)<>0 then p:=length(s)-1 else p:=length(s); sered:=(p div 2)+1; if (not odd(p)) or (p<3) then continue; if pos(s[1],gl)=0 then continue; if pos(s[sered],gl)=0 then continue; if pos(s[p],gl)=0 then continue; s[1]:=UpCase(s[1]); s[sered]:=UpCase(s[sered]); s[p]:=UpCase(s[p]); m[i]:=s+'('+s[1]+','+s[sered]+','+s[p]+')'; end; s:=''; for i:=1 to n do s:=s+m[i]+' '; preobr:=s;end; beginassign(f,'input.txt'); reset(f);assign(t,'output.txt'); rewrite(t); while not eof(f) do begin readln(f,s); writeln(t, preobr(s) ); end; writeln('Файл успешно записан...'); close(f);close(t);readln;end.
допустим у нас есть изображение размером 1024х1024 пикселя.
чтобы определить объем занимаемой памяти при наличии на нем 65 536 цветов для начала нужно выяснить сколькими битами кодировать один пиксель. 65 536 = 2^16 => один пиксель кодируется 16 битами.
значит объем памяти изображения будет составлять:
1024*1024*16= 16 777 216 бит.
теперь вычислим объем памяти при наличии 16 цветов на изображении.
16=2^4 =>
1024*1024*4=4 194 304
теперь чтобы определить во сколько раз уменьшился объем памяти изображения мы выполняем следующее действие:
16 777 216 : 4 194 304 = 4
т е объем памяти изображения уменьшился в 4 раза.
function preobr(s:string):string;var i,j,p,n,sered:integer; gl,zp,slovo:string; m:array [1..80] of string;beginzp:='!?*,.'; gl:='аоуыэяеёюи'; p:=pos(' ',s); i:=0; repeat inc(i); slovo:=copy(s,1,p-1); m[i]:=slovo; delete(s,1,p); p:=pos(' ',s); until p=0; n:=i+1; m[n]:=s; for i:=1 to n do begin s:=m[i]; if pos(s[length(s)],zp)<>0 then p:=length(s)-1 else p:=length(s); sered:=(p div 2)+1; if (not odd(p)) or (p<3) then continue; if pos(s[1],gl)=0 then continue; if pos(s[sered],gl)=0 then continue; if pos(s[p],gl)=0 then continue; s[1]:=UpCase(s[1]); s[sered]:=UpCase(s[sered]); s[p]:=UpCase(s[p]); m[i]:=s+'('+s[1]+','+s[sered]+','+s[p]+')'; end; s:=''; for i:=1 to n do s:=s+m[i]+' '; preobr:=s;end;
beginassign(f,'input.txt'); reset(f);assign(t,'output.txt'); rewrite(t); while not eof(f) do begin readln(f,s); writeln(t, preobr(s) ); end; writeln('Файл успешно записан...'); close(f);close(t);readln;end.