25.03.2003 Egzamin ZSI.TP.2002/2003 Zad 1 (p. 12) Należy napisać procedurę: procedure Kopia(NazwaDanych, NazwaWyniku: String; n: integer); która skopiuje plik tekstowy o nazwie podanej jako pierwszy parametr na plik tekstowy o nazwie podanej jako drugi parametr zastępując ciągi spacji tabulacjami. Zakładamy, że pozycje tabulatorów występują co n znaków (pierwszy w n-tej kolumnie, drugi w 2*n-tej itp.). Program ma zastąpić znakiem tabulacji każdy ciąg spacji kończący się na pozycji tabulatora. Np. dla n= 8 wiersz (# oznacza spacje, @ tabulacje, zaś wiersz z liczbami pełni jedynie role pomocniczą): 12345678901234567890123456789012345678901234567890 ##Ala####ma##kota#zaś###Ola#############psa. należy przekształcić w: 12345678901234567890123456789012345678901234567890 ##Ala@#ma##kota#zaś@Ola@@psa. Zakładamy, że: · plik z danymi istnieje i jest plikiem tekstowym, · plik z wynikami nie istnieje (ale nazwa jest poprawna), · plik z danymi nie zawiera tabulacji. Zad 2 (p. 12) Dane są następujące deklaracje: const M = ...; type TLista = ^TElem; TElem = record dane: integer; nast, rowne: TLista end; Napisz procedurę, która przekształci podaną jako argument listę l zgodnie z następującymi zasadami: · usunie z listy elementy mniejsze niż jeden i większe niż M, · pole rowne w każdym elemencie listy, początkowo niezainicjowane, ustawi tak, aby wskazywało na następny element listy o tej samej wartości pola dane, · utworzy tablicę t taką, że dla każdego 1 <= i <= M, t[i] pokazuje na pierwszy element listy l o wartości i; tablica t powinna być drugim parametrem procedury. Zad 3 (p. 16) Dane jest drzewo binarne typu TDrzewaBin. Napisz funkcję: function ZnajdźŚrodkowe(d: TDrzewaBin): TListy; która da jako wynik nowoutworzoną listę środkowych węzłów drzewa d 9tzn. lista ma zawierać wskaźniki do węzłów drzewa). Przez węzeł środkowy rozumiemy taki węzeł w, dla którego suma wartości jego przodków (czyli suma wartości kluczy węzłów drzewa na ścieżce od korzenia do w) jest taka sama, jak suma wartości jego potomków (czyli suma kluczy w obu poddrzewach węzła w). Np. dla: środkowymi węzłami są 6 (0 powyżej 0 poniżej) i 5 (7 powyżej 7 poniżej). Typy TDrzewaBin i TListy takie jak na wykładzie. Powodzenia!