Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Informatyka Stosowana 2017/2018
- Egzamin końcowy, część praktyczna
- 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!
- 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.
- Zasady punktacji
- liczba punktow za zadanie podana jest przy zadaniu
- 2 pkt w zadaniu przyznaję za użycie funkcji
- 2 pkt w zadaniu przyznaję za poprawny docstring
- 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.
- Zadanie 1. [15 pkt]
- 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.
- Przykładowo:
- >>> podziel_liste([1, 2, 3, 4, 5, 15])
- ([1, 2, 3, 4, 5], [15])
- >>> podziel_liste([5, 1, 4, 3, 2, 15])
- ([5, 1, 4, 3, 2], [15])
- >>> podziel_liste([1, 2, 3, 4, 5, 6, 15])
- False
- # funkcja
- # testy
- Zadanie 2. Lokalizacja wartości w posortowanej tablicy. [20 pkt]
- 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
- jeżeli szukany element jest w tablicy, to zwracamy parę (indeks_elementu_mniejszego, indeks_elementu_wiekszego)
- jeżeli szukany element jest pierwszym elementem w tablicy, to zwracamy parę (None, indeks_elementu_wiekszego)
- jeżeli szukany element jest pierwszym elementem w tablicy, to zwracamy parę (indeks_elementu_mniejszego, None)
- jeżeli szukanego elementu nie ma w tablicy, zwracamy None
- # funkcja
- # testy
- Zadanie 3. Trójki arytmetyczne. [30 pkt]
- 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.
- Przykładowo
- 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]
- 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]
- Waszym zadaniem będzie napisanie programu znajdz_trojki_arytmetyczne(L), który wyszukuje wszytskie trzyelementowe ciągi arytmetyczne z posortowanej listy L.
- 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.
- # funkcja
- # testy
- Zadanie 4. Niespodzianka. [35 pkt]
- Dalsze instrukcje pod IP
- 10011011.10011110.10000110.10001010
- # funkcje
- # testy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement