Program fifo_sor; Const maxN = 20; Type sortype = Record elemek : array[1..maxN] of Integer; e,v : Byte; ures : Boolean; End; Var sor : sortype; i : Integer; Procedure InitSor; Begin sor.e := 1; sor.v := 1; sor.ures := true; End; Function Ures:Boolean; Begin Ures := sor.ures; End; Function Tele:Boolean; Begin Tele := ((sor.e = sor.v) and not Ures); End; Function Sorba(e:Integer):Boolean; Begin If (not Tele) Then Begin sor.elemek[sor.e] := e; Inc(sor.e); If (sor.e = maxN+1) Then sor.e := 1; {End If} Sorba := True; sor.ures:= False; End Else Sorba := False; {End If} End; Function Sorbol(var e:Integer):Boolean; Begin If (not Ures) Then Begin e := sor.elemek[sor.v]; Inc(sor.v); If (sor.v = maxN+1) Then sor.v := 1; {End If} If (sor.v = sor.e) Then sor.ures := True; {End If} Sorbol := True; End Else Sorbol := False; {End If} End; Begin InitSor; writeln(Sorba(1)); writeln(Sorba(2)); writeln(Sorbol(i)); Writeln(i); End. Működk. Elvileg. Nekem ment. Egyszer ha nagyon unatkozom, majd kommentezem. De más is bátran megteheti. ;-)