program test; uses crt,queue; var Q1,Q2:pqueue; i:word; n:longint; {eto dlina ocheredi} vib:byte; {---} procedure FillByHand;{s klaviaturi} var i:word; el:Telem; begin clrscr; if q1<>nil then Dispose(q1,destroy); q1:=nil; write('Vvedite gelaemuu dlinu: '); readln(n); new(q1,create(n)); for i:=1 to n do begin write('vvedite element ocheredi(',i,')'); readln(el); q1^.Push(el); end; END; {--------------------------} procedure fillrandom; var el,size:telem; begin q1^.Create(n); size:=0; randomize; while size<100 do for el:=0 to Size-1 do q1^.Push(el); q2^.create(n); size:=0; while size<100 do size:=random(1000); for el:=0 to size-1 do q2^.Push(el*el+1); end; {---------------------------------------------------} procedure PrintLine(L : tQueue); var T : TQueue; begin T.Copy(ptr); WriteLn; while not T.Empty do Write(T.Get(n),' '); readkey; L1^.Destroy; end; {---------------------------------------------------} procedure Make(LI, L2 : tqueue); var Ans : char; K : pqueue; T:tqueue; begin Write (' viberete deystviq 1 -s1, 2 -s2'); Ans := ReadKey; case Ans of '1' : begin Invert(LI); PrintLine(L1^); end; '2': begin T.Create(n); MergeLines(LI, L2, T); PrintLine(L1^); T.Destroy; end; end; ReadLn; L1^.Destroy; L2.Destroy; end; {------------------------------------------} procedure POKAZAT; var L2: PQueue; EL: TElem; begin if L1 = nil then exit; L2:= nil; new(l2, Create(L1^.MaxLen)); if L2 = nil then begin WriteLn('Не хватает памяти для временной очереди'); readkey; exit; end; WriteLn('Исходная очередь:'); while not L1^.Empty do begin L1^.Get(El); Write(El); if EL >= 0 then L2^.Push(El); end; dispose(l1, Destroy); new(L1, Copy(l2)); WriteLn; WriteLn('Отфильтрованная очередь:'); while not L1^.Empty do begin L1^.Pop(El); Write(El); end; Dispose(L1, Destroy); L1:= L2; ReadKey; end; {-----------------------------------------} begin writeln('0. Sozdat ochered'); writeln('2. Sluchayno'); writeln('1. samostoyatelno'); writeln('3. obrabotka'); writeln('4. resultat'); writeln('5. raspechatat'); writeln('6. Vihod'); write('Vibor:_'); readln(vib); case vib of 0: ; 1:fillbyhand; 2:fillrandom; 3:make; 4:printline; readln(vib); end. end; end.