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;