18.03.2003
                        ZSI.TP.Klasówka
                               
Zad 1 (10 p.)

Dany jest typ:
    TElt = record
            dane: TDane;
            nast: integer;
        end;

Napisz procedurę

    procedure kopia(nazwa_we, nazwa_wy: String);
    
która przepisze dane z pliku (o nazwie nazwa_we) rekordów  TElt
do  pliku  (o nazwie nazwa_wy) elementów typu TDane, zachowując
kolejność  wyznaczoną przez pola nast. i usuwając  przy  okazji
sąsiadujące (w sensie kolejności wg pól nast.) elementy o taiej
samej wartości pola dane jak element poprzedni (tzn. pierwszy z
ciągu powtarzających się elementów zostawiamy).  Zakładamy,  że
pierwsza dana znajduje się w pierwszym rekordzie pliku z danymi
(o  ile  ten  plik jest niepusty), zaś pole nast  informuje,  w
którym elemencie pliku jest następna dana do przepisania. Jeśli
już  nie ma następnej danej, to pole nast ma wartość -1.  Można
założyć,  że plik z danymi istnieje i jest poprawny, a  plik  z
wynikami nie istnieje. Nie wnikamy w to, czy pola nast  pozwolą
skopiować   wszystkie,  czy  tylko  część,   danych   z   pliku
wejściowego.



Zad 2 (10 p.)

Dane są typy:
    TDane =            ; { Jakiś typ z operacjami <, <=, >,
>=. <>, = }
    TLista = ^TElt;
    TElt = record
            dane: TDane;
            nast: TLista;
        end;

Napisz procedurę

    procedure Usuń(var l1: Tlista; l2: TLista);
    
która usunie z posortowanej rosnąco (wzgl. pola dane) listy  l1
wszystkie liczby występujące na posortowanej rosnąco liście l2.

Powodzenia!