Wst¦p do informatyki

Transkrypt

Wst¦p do informatyki
Wst¦p do informatyki
Kolokwium Nr 2.
20 stycznia 2009
II UWr.
1. (2+2 pkt) (basic) Poni»ej znajduje si¦ diagram syntaktyczny pewnej gramatyki.
• Zdeniuj gramatyk¦ (N, T, P, S) opisuj¡c¡ ten sam j¦zyk.
• Zapisz u»ywaj¡c notacji EBNF gramatyk¦ generuj¡c¡ ten sam j¦zyk.
b
c
d
a
b
c
2. (1+2 pkt) (pro) Diagram syntaktyczny nie zawieraj¡cy nieterminali mo»na przerobi¢ na graf
skierowany z wyró»nionymi dwoma wierzchoªkami, którego ka»da kraw¦d¹ etykietowana jest
terminalem. Przerysuj powy»szy diagram w tej konwencji. Opisz algorytm sprawdzaj¡cy czy
zadany graf, opisuje gramatyk¦ z której da si¦ wyprowadzi¢ sªowo zªo»one z nieparzystej liczby
terminali.
3. (2+4 pkt) (basic) Poni»ej znajduje si¦ denicja drzewa binarnych wyszukiwa«.
struct BST{
BST * mniejsze;//NULL je±li brak
BST * wi¦ksze;//NULL je±li brak
int klucz;
};
Napisz funkcje :
• bool sprawd¹(BST * v);
sprawdzaj¡c¡ czy drzewo v jest poprawnym drzewem BST o unikalnych kluczach. Drzewo
puste uwa»amy za poprawne. Przykªadowo drzewo v , w którym v → mniejsze = v nie jest
poprawne.
• bool geneza(BST * v,int p[],int n);
która analizuj¡c ksztaªt drzewa v o n wierzchoªkach ustala permutacj¦ p, liczb 1, . . . , n,
tak¡, »e wstawianie do pustego drzewa elementów w kolejno±ci zadanej przez te permutacj¦
da w wyniku drzewo o ksztaªcie takim jak v . Je±li to niemo»liwe, nale»y zwróci¢ f alse, w
przeciwnym razie nale»y zwróci¢ true. Mo»na zaªo»y¢, »e tablica p pomie±ci n elementów.
Dane przechowywane w polach klucz mo»na potraktowa¢ jako ±mieci. Przykªadowo drzewo
zrównowa»one dla n = 3 mo»na uzyska¢ dla p = (2, 3, 1).
4. (2+2+2 pkt) (basic) Niech B(n), dla n ∈ N oznacza liczb¦ ró»nych n-wierzchoªkowych binarnych drzew wyszukiwa« o kluczach 1, . . . , n. Przykªadowo B(2) = 2.
• Wyra¹ B(n) przy pomocy rekurencji.
• Niech P (n), oznacza liczb¦ ró»nych
P (n) wzorem rekurencyjnym.
peªnych
drzew binarnych o n wierzchoªkach. Wyra¹
• Napisz dynamiczny algorytm obliczaj¡cy P (n) mod 7 dla zadanego n.
5. (2+2 pkt) (pro)
• Poka», »e log B(n) ∈ Ω(n).
• Poka» konstruktywnie, »e log P (n) ∈ O(n).
6. (2 pkt) (basic) Dysponujesz n kanistrami o pojemno±ciach odpowiednio l1 , . . . , ln litrów. Na
stacji benzynowej jest k rodzajów paliwa o warto±ciach w1 , . . . , wk zªotych za litr, których nie
wolno zmiesza¢. Promocja polega na tym, »e je±li zdecydujesz si¦ napeªni¢ t kanistrów, ka»dy innym rodzajem benzyny, to pªacisz tylko t zªotych za caªe zakupy. 1 Opisz algorytm pozwalaj¡cy
ustali¢, ile maksymalnie mo»esz zarobi¢ jednorazowo na takiej promocji.
7. (2 pkt) (basic) Wyra»eniem ONP rachunku mnogo±ciowego, nazwiemy sªowo nale»¡ce do gramatyki
<onp> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | <onp> <onp> + | <onp> <onp> - | <onp> <onp> *
i interpretujemy je tak, »e cyfra x reprezentuje zbiór liczb naturalnych {1, . . . , x}, '+' oznacza
sum¦ mnogo±ciow¡, minus ró»nic¦ dwóch zbiorów, a '*' iloczyn dwóch zbiorów. W szczególno±ci
'0' oznacza zbiór pusty, za± 0 31−0 oznacza zbiór {2, 3}. Napisz w j¦zyku funkcjonalnym procedur¦ oblicz , która dostaj¡c list¦ tokenów (nieterminali) tworz¡cych poprawne wyra»enie ONP
rachunku mnogo±ciowego, zwraca posortowan¡ rosn¡co list¦ elementów nale»¡cych do zbioru
bed¡cego warto±ci¡ wyra»enia. Przykªadowo oblicz([0 30 ,0 10 ,0 −0 ]) powinno zwraca¢ [2, 3].
20 punktów z tego kolokwium stanowi¢ b¦dzie 31 oceny z ¢wicze«.
Pozostaªe 32 zale»e¢ b¦dzie od pierwszego kolokwium i list zada«.
Na ocen¦ dostateczn¡ trzeba b¦dzie mie¢ ponad poªow¦ punktów.
9
punktów.
Na ocen¦ bardzo dobr¡ trzeba b¦dzie mie¢ ponad 10
1 promocja obowi¡zuje dla ka»dego t