Egzamin z Javy - Wydział Matematyki i Informatyki UŁ

advertisement
Imię i Nazwisko: …………EGZAMIN Z PARADYGMATÓW PROGRAMOWANIA (Termin I, 12 czerwca 2014)
Egzamin składa się z 15 pytań zamkniętych (test wielokrotnego wyboru, każde z pytań za 2 punkty, właściwe odpowiedzi należy zakreślać w kółko,
wolno tylko raz zmienić wybór) oraz 5 pytań otwartych (każde za 4 punkty).
Ocena:
26p-30p - 3
31p-35p - 3,5
36p-40p - 4
41p-45p - 4,5
46p-50p - 5
1. Do języków imperatywnych nie zaliczamy:
a. Pascal
b. Haskell
c. C++
d. Lisp
2. Funkcją wbudowaną w język Haskell jest:
a. length
b. read
c. putStrLn
d. show
3. Typ [(Int,Int)] w Haskellu oznacza:
a. listę liczb całkowitych o długości ograniczonej do
b. parę list liczb całkowitych
dwóch elementów
c. listę par liczb całkowitych
d. taki typ nie jest poprawny
4. Które użycie operatora dodawania jest w Haskellu poprawne?
a. (+) 1 2
b. (+)(1, 2)
c. 1 + 2
d. (((+) 1) 2)
5. Która lista w Haskellu nie jest poprawna:
a. [1, 2, 3]
b. [’a’,’l’,’a’]
c. [[1], 2]
d. [[’1’,’2’],[’a’]]
6. Wyrażenie sum $ map (^2) [3, 2, 1] daje w Haskellu:
b. to wyrażenie jest niepoprawne
a. liczbę 6
c. listę [9,4,1]
d. liczbę 14
7. Nagłówek bibliotecznej funkcji length w Haskellu, która wyznacza długość dowolnej listy ma postać:
a. length :: [Int] -> Int
b. length :: [Int] -> [Int]
c. length :: [a] -> a
d. length :: [a] -> Int
8. Aby w Haskellu z listy list liczb całkowitych postaci [[1..20]] wybrać liczbę 1 możemy użyć polecenia:
a. head (last [[1..20]])
b. head (head [[1..20]])
c. last (head [[1..20]])
d. last (last [[1..20]])
9. Załóżmy, że program w Prologu zawiera jedną tylko klauzulę postaci:
osoba(imie(a),nazwisko(b),adres(x,y,z)).
Który zapytanie jest poprawne?
a. osoba(X,Y,Z).
b. osoba(X).
c. osoba(imie(Z),nazwisko(Y),X).
d. osoba(_,_,X).
10. Klasyczny operator "mniejsze lub równe" w Prologu, to:
a. <=
b. =<
c. <==
d. ==<
11. Zapytanie w Prologu postaci [X,Y|Z]=[1,2,3]. zwróci:
a. false
b. X=1, Y=[2,3], Z=[].
c. X=1, Y=2, Z=3.
d. X=1, Y=2, Z=[3].
12. Predykat napisany w Prologu do testowania czy lista podawana jako argument jest jednoelementowa może mieć postać:
a. czyListaJeden([X]).
b. czyListaJeden([_]).
c. czyListaJeden([]).
d. czyListaJeden([X|Y]).
13. Co zwróci zapytanie w Prologu postaci X is -3, Y is -X, Z is abs(X+Y).
a. X=-3, Y=-3, Z=3.
b. X=-3, Y=3, Z=3.
c. false
d. X=-3, Y=3, Z=0.
14. Operator odcięcia w Prologu oznaczany jest symbolem:
a. %
b. -:c. !
d. ==
15. Wykonanie w Prologu zapytania member(5,[1,5,1]). zwróci:
a. [1]
b. true
c. [5]
d. false
2012 © Wydział Matematyki i Informatyki UŁ
1/2
Imię i Nazwisko: …………EGZAMIN Z PARADYGMATÓW PROGRAMOWANIA (Termin I, 12 czerwca 2014)
16. Wskaż 2 cechy podobne języków Prolog i Haskell.
17. Jakie znasz wbudowane typy w języku Haskell. Wymień co najmniej 5 i je omów.
18. Napisz funkcję listaLiczb w języku Haskell, która dla zadanej liczby całkowitej k:
a) jeśli k>=0 - utworzy listę kolejnych parzystych liczb całkowitych z przedziału [-k,k],
b) jeśli k<0 - utworzy listę kolejnych nieparzystych liczb całkowitych z przedziału [k,-k].
Np. listaLiczb 9 zwróci [-8,-6,-4,-2,0,2,4,6,8], a
listaLiczb (-5) zwróci [-5,-3,-1,1,3,5].
19. Wymień co najmniej dwa predykaty w języku Prolog, które służą do modyfikowania bazy wiedzy i omów ich działanie.
20. Napisz w Prologu predykat iloczynKwadratow(X,Y), który dla zadanej listy X zwróci pod Y iloczyn kwadratów jej
elementów. Np. zapytanie iloczynKwadratow([4,-3,1],X). da w wyniku: X=144.
2012 © Wydział Matematyki i Informatyki UŁ
2/2
Download