program kodavimo_sistemos_nustatytmas;
{ 142 u‘davinys }
{ programa, sukurianti byl…, kurioje eil‚s tvarka ižd‚styti visi }
{ galimi žeži— bit— grup‚s variantai: nuo 000000 iki 111111 }
  procedure bitu_grupes (var f: file);
    var kiek, num, i: integer;
        baitas1, baitas2, baitas3: byte;
        rezultatas: array [1..48] of byte;
  begin
    i := 0;   { bit— grup‚ }
    num := 1; { nagrin‚jamo baito numeris }
    while i < 64 do
      begin
        { sudarysime keturias bit— grupes, kurios u‘ims tris baitus }
        baitas1 := byte(i + (i + 1) shl 6);
        baitas2 := byte((i + 1) shl 2 shr 4 + (i + 2) shl 4);
        baitas3 := byte((i + 2) shr 4 + (i + 3) shl 2);
        rezultatas[num]   := baitas1;
        rezultatas[num+1] := baitas2;
        rezultatas[num+2] := baitas3;
        i := i + 4;
        num := num + 3;
      end;
    { 64 bit— grup‚s po 6 bitus sudarys 48 baitus }
    blockwrite (f, rezultatas, 48, kiek);
  end; { bit—_grup‚s }

  var f: file;
begin
  writeln ('źi programa sukuria byl… TEST.DAT, kurioje eil‚s tvarka');
  writeln ('suražytos 64 bit— grup‚s (po 6 bitus): nuo 000000 iki 111111');
  assign (f, 'TEST.DAT');
  rewrite (f, 1);
  bitu_grupes (f);
  close (f);
end.