type lista = record Last : integer; Element : array [1..100] of record Dana : integer; Pos : integer; end; end; // ========================================================================== // // Dokladanie elementu do listy: procedure Insert(Value : integer; var L1 : lista); var i : integer; begin i := 0; L1.Last := L1.Last + 1; while (L1.Element[i].Pos <> 0) do i := i + 1; L1.Element[i].Dana := Value; L1.Element[i].Pos := L1.Last; end; // ========================================================================== // // Usuwanie elementu z listy: function Remove(Index : integer; var L1 : lista) : boolean; var i : integer; begin if (Index > L1.Last) then result := false else begin for i:= 1 to 100 do begin if (L1.Element[i].Pos > Index) then L1.Element[i].Pos := L1.Element[i].Pos - 1 else if (L1.Element[i].pos = Index) then L1.Element[i].Pos := 0; end; L1.Last := L1.Last - 1; result := true; end; end; // ========================================================================== // // Wypisanie zawartosci listy od pierwszego: procedure Listuj(L1 : Lista); var i, j : integer; begin for i := 1 to L1.Last do begin for j := 1 to 100 do if (L1.Element[j].Pos = i) then begin Write('Element ', i ,' ma warotsc: '); WriteLN(L1.Element[j].dana); end; end; end;