Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.87 KB | None | 0 0
  1. Informatyka Stosowana 2017/2018
  2. Egzamin końcowy, część praktyczna
  3. Na części praktycznej egzaminu końcowego mogą Państwo korzystać z czego tylko Państwo chcą, za wyjątkiem wiedzy kolegi/koleżanki. Prace (programy) muszą być samodzielne. Jakiekolwiek gotowe kopie kodu znalezione w internecie/u kolegi na monitorze będą oceniane na 0 pkt (u obu posiadaczy tego samego kodu). Prosta zmiana nazw zmiennych to nie jest samodzielny program!
  4.  
  5. Proszę użyć tego arkusza do rozwiązania zadań. Na początek proszę zmienić 'nazwisko_imie' na Państwa nazwisko i imie, bez polskich znaków diakrytycznych. Jak już Państwo zaprogramują wszytsko, proszę zapisać arkusz (File->Save and Checkpoint) oraz zapisać arkusz na dysk (File->Download as->Notebook). Ten plik proszę wgrać na classroom.
  6.  
  7. Zasady punktacji
  8.  
  9. liczba punktow za zadanie podana jest przy zadaniu
  10. 2 pkt w zadaniu przyznaję za użycie funkcji
  11. 2 pkt w zadaniu przyznaję za poprawny docstring
  12. Czas przeznaczony na tą część to 2 godziny zegarowe, łącznie z przesłaniem plików na classroom. Oceny wystawiane będą w/g punktacji ndst:0-50pkt; dst: 51-60pkt, dst+: 61-70pkt; db: 71-80pkt; db+:81-90pkt; bdb: 91-100pkt.
  13.  
  14. Zadanie 1. [15 pkt]
  15. Zadanie rozgrzewkowe. Mamy daną listę literałów liczbowych o typie int. Napisz funkcję podziel_liste sprawdzającą, czy da się podzielić tą listę w taki sposób, że dostaniemy 2 podlisty których suma elementów będzie równa. Jeżeli da się to zrobić, funkcja powinna zwracać obie podlisty, jeżeli nie to powinna zwracać False.
  16.  
  17. Przykładowo:
  18.  
  19. >>> podziel_liste([1, 2, 3, 4, 5, 15])
  20. ([1, 2, 3, 4, 5], [15])
  21.  
  22. >>> podziel_liste([5, 1, 4, 3, 2, 15])
  23. ([5, 1, 4, 3, 2], [15])
  24.  
  25. >>> podziel_liste([1, 2, 3, 4, 5, 6, 15])
  26. False
  27. # funkcja
  28. # testy
  29. Zadanie 2. Lokalizacja wartości w posortowanej tablicy. [20 pkt]
  30. To też bardzo proste zadanie. Polega na napisaniu pewnego wariantu przeszukiwania posortowanej tablicy metodą równego podziału w celu znalezienia szukanego elementu. Tym razem funkcja ma zwracać indeksy dwóch najbliższych elementów położonych bezpośrednio pod i nad szukanym elementem w postaci krotki. Należy zaprogramować takie przypadki
  31.  
  32. jeżeli szukany element jest w tablicy, to zwracamy parę (indeks_elementu_mniejszego, indeks_elementu_wiekszego)
  33. jeżeli szukany element jest pierwszym elementem w tablicy, to zwracamy parę (None, indeks_elementu_wiekszego)
  34. jeżeli szukany element jest pierwszym elementem w tablicy, to zwracamy parę (indeks_elementu_mniejszego, None)
  35. jeżeli szukanego elementu nie ma w tablicy, zwracamy None
  36. # funkcja
  37. # testy
  38. Zadanie 3. Trójki arytmetyczne. [30 pkt]
  39. Rozważmy posortowaną rosnąco listę L co najmniej trzyelementową liczb całkowitych. W tej liście znajdź wszystkie trzyelementowe podlisty, które tworzą ciąg arytmetyczny. Oznacza to, że różnica pomiędzy dwoma pierwszymi elementami danej podlisty musi być taka sama jak pomiedzy dwoma ostatnimi.
  40.  
  41. Przykładowo
  42.  
  43. w liście [1, 2, 3, 4, 8, 12] będziemy mieli trzy takie tryplety: [1, 2, 3], [2, 3, 4] oraz [4, 8, 12]
  44. w liście [1, 2, 3, 4, 6, 7, 9] będziemy mieli ich pięć: [1, 2, 3], [1, 4, 7], [2, 3, 4], [2, 4, 6] oraz [3, 6, 9]
  45. Waszym zadaniem będzie napisanie programu znajdz_trojki_arytmetyczne(L), który wyszukuje wszytskie trzyelementowe ciągi arytmetyczne z posortowanej listy L.
  46.  
  47. Uwaga: w tym zadaniu można otrzymać dodatkowo 10 punktów. Są one nadprogramowe, więc sumują się do 110 pkt za wszystkie zadania. Aby je zdobyć należy napisać funkcję znajdz_trojki_geometryczne(L), która robi to to samo co wyżej ale wynajduje trzyelementowe ciągi geometryczne. W tym przypadku stosunek pierwszego do drugiego elementu trójki musi być równy stosunkowi drugiego do trzeciego.
  48.  
  49. # funkcja
  50. # testy
  51. Zadanie 4. Niespodzianka. [35 pkt]
  52. Dalsze instrukcje pod IP
  53.  
  54. 10011011.10011110.10000110.10001010
  55. # funkcje
  56. # testy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement