Смотри рисунок в низу
Похожее для abcPL
<span>1 шаг)</span><span>Принцип работы программы простой: сначала берутся поочередно все символы из шифруемой строки, потом они конвертируются в числа, например a – 1, b – 2, z – 26 и тд. Потом эти числа переводятся в формат RGB, для конвертации в формат RGB нужно три числа, значит в одном квадрате можно зашифровать три символа. А затем уже рисуется квадрат с заданным цветом.</span>
<span /><span><span>2 шаг)</span>Первое, что нужно сделать – это функцию конвертирования символа в цвет. Я ее назвал "Code”.<span>function Code(str : string): integer;
var i : integer;
begin
For i:=1 to 26 do
begin
if Chr(96+i)=str then Result:=i;
end;</span>For i:=1 to 26 do begin if Chr(64+i)=str then Result:=i+26; end; For i:=1 to 32 do begin if Chr(223+i)=str then Result:=i+52; end; For i:=1 to 32 do begin if Chr(191+i)=str then Result:=i+84; end; end;Если написать команду write(Code(‘a’)); то на экран будет выведен код символа "а”. На экране появится единица.</span>
<span /><span><span>3 шаг)</span>А потом нужно сделать функцию разбивки шифруемой строки и рисования цветных квадратов.</span>
<span><span>For j:=1 to Trunc(Length(in_str)/3) do
begin
x:=j*3-2;
tmpR:=round(Code(Copy(in_str,x,1))<span>li_lv);
tmpG:=round(Code(Copy(in_str,x+1,1))</span>li_lv);
tmpB:=round(Code(Copy(in_str,x+2,1))*li_lv);</span>If debug=1 then begin WriteLn(chr(39),Copy(in_str,x,1),chr(39),’ – ’,tmpR); WriteLn(chr(39),Copy(in_str,x+1,1),chr(39),’ – ’,tmpG); WriteLn(chr(39),Copy(in_str,x+2,1),chr(39),’ – ’,tmpB); WriteLn; end; SetBrushColor(RGB); Rectangle(wc*a,hc*a,(wc+1)a,(hc+1)a); inc(wc); if wc=maxw then begin wc:=0; hc:=hc+1; end; end;
</span>