Record ArrIntCisla ;definuje strukturu, ktera se pouzije pro Array Pokladna:Word; PocStav :Double; Stav :Double; Prijmu :LongInt; Vydaju :LongInt; end; MaxPocetPokladen:Word=65448/SizeOf(ArrPokladny); Pokladny:Array[1..MaxPocetPlateb] of ArrIntCisla PocetPokladen:Word DeklareRec('KeyPokladna1'); DeklareRec('Pokladna'); PomVeta:LongInt; PomPozice:Word; SearchL:LongInt; SearchH:LongInt; SearchI:Word; Procedure HledejPokladnu(Pozice:Word); Pozice=0 SearchL=1 SearchH=PocetPokladen While(SearchL<=SearchH) begin SearchI := Shr(SearchL + SearchH) if(Pokladna.CisPoklPokladny[SearchI]) SearchH=SearchI-1; else begin Pozice=SearchI; Exit; end; end; end; Procedure ZustatekPokladny(OdData:Word,DoData:Word); ClearKey(KeyPokladna1) While((NextKey(KeyPokladna1,PomVeta)) and (Swap(KeyPokladna1.Datum)<=DoData)) begin ReadRec(Pokladna,PomVeta); HledejPokladnu(Pozice); if(Pozice=0) begin if(PocetPokladen>=MaxPocetPokladen) Halt('Příliš mnoho pokladen'); Inc(PocetPokladen); ClearRec(Pokladny[PocetPokladen]); Pokladny[PocetPokladen].Pokladna=Pokladna.CisPokl; Pozice=PocetPokladen end; if(Pokladna.Datum