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