Zadanie zaliczeniowe z laboratorium Pascala i C. ZSI I. 01/02
-------------------------------------------------------------

Zadane: 23-24.01.2002, odbiór: 30-31.01.2002, 2 punkty.

Zad 6.
Zadanie (2 pkt)
---------------

1) Zaimplementuj modul udostepniajacy listy liczb calkowitych
i operacje na nich. W module powinny znalezc sie nastepujace
elementy:

type
  lista = ^elemlisty;

  elemlisty = record
                w: integer;
                nast: lista
              end


procedure WstawNaPocz (var l: lista; x: integer);
{ wstawia liczbe x jako pierwszy element listy l }

procedure WstawNaKon (var l: lista; x: integer);
{ wstawia liczbe x na koniec listy l }

function Dlugosc (l: lista): integer;
{ przekazuje w wyniku dlugosc listy l }

function CzyPusta (l: lista): boolean;
{ przekazuje w wyniku true wtw, gdy lista jest pusta }

procedure Inicjuj (var l: lista);
{ tworzy liste pusta }

procedure Wstaw (var l: lista; x: integer);
{ wstawia element x na wlasciwe miejsce listy l,
  przy zalozeniu, ze l jest uporzadkowana niemalejaco }

function Znajdz (l: lista; x: integer): lista;
{ odszukuje element x w liscie l i przekazuje w wyniku
  wskaznik do elementu listy lub nil, jesli x nie ma }

procedure Usun (var l: lista; co: lista);
{ usuwa z listy l, element wskazywany przez co.
  Mozna przyjac, ze co pokazuje na pewien element listy l.
  Uwaga na implementacje! }

procedure WypiszListe (l: lista; var f: text);
{ wypisuje liczby z listy l na plik f }

procedure WczytajListe (var l: lista; var f: text);
{ wczytuje liczby z pliku --- dokladna
  specyfikacja na laboratorium }

procedure NiszczListe (var l: lista);
{ usuwa wszystkie elementy z listy l
  i zwalnia pamiec zajmowana przez nie }

procedure Odwroc (var l: lista);
{ odwraca liste l (nie tworzac jej kopii!) }

2) Napisz program, ktory zilustruje dzialanie modulu.
   Specyfikacja programu zostanie podana przez prowadzacego.