Kategoria: Informatyka

Matura 2017 – informatyka – rozwiązania

Tegoroczna matura z informatyki nie była łatwa. Zwłaszcza relatywnie trudna wydała mi się teoria, czyli część pierwsza, którą rozwiązuje się bez komputera. Przyjrzałem się tym zadaniom i dałem sobie również ograniczenie czasowe 1h tak jak na maturze.

Zadanie 1 dotyczyło operacji na tablicy liczb całkowitych.

matura-2017-informatyka-zadanie-1-1

Zadanie 1.1 było raczej proste. Należało znaleźć dwie największe liczby w tablicy, które są niepodzielnie przez zadany parametr p. W przykładzie to oczywiście 11 i 7 (bo 33 jest podzielne przez 3). Dalej to 12 i 6, bo 15 i 10 są podzielne przez 5, więc wynik to 72. W trzecim wierszu to liczby 18 i 12 , bo 28 i 14 są podzielne przez 7, więc wynik to 216. W ostatnim wierszu jest mała pułapka, ponieważ tylko jedna liczba jest niepodzielna przez 2, zatem nie da się stworzyć prostokąta, więc wynik jest 0.

matura 2017 informatyka zadanie 1-2

 

Zadanie 1.2 to napisanie algorytmu, który znajduje te liczby. Zadanie również nie jest banalne. Należy uwzględnić podzielność oraz założyć, że nie istnieje rozwiązanie. Oczywiście nie trzeba jeszcze uwzględniać podzielności samego wyniku, bo p to liczba pierwsza. Gdyby tak nie było komplikowałoby to bardzo algorytm, bo np. składniki mogą nie być podzielne, a ich iloczyn już tak (prosty przykład to dla p=4 mogą być liczby 6 i 10, które same nie są podzielne, ale już ich iloczyn tak). Algorytm zaplanowałbym najpierw ogólnie tak:

  1. Pętla po tablicy szukająca największą wartość niepodzielną przez p. Wynik zapisać w zmiennej max1
  2. Jeżeli jej nie ma – zwracamy 0
  3. Pętla po tablicy szukająca największą wartość, ale mniejszą niż max1 oraz niepodzielną przez p. Wynik zapisać w zmiennej max2
  4. Jeżeli jej nie ma – zwracamy 0
  5. Zwracamy max1*max2

Jako schemat blokowy (//EDIT – schemat nie zostałby uznany jako pseudokod), wydaje mi się, że każdy maturzysta z informatyki by sobie już poradził, więc pozwolę sobie go tu nie zamieszczać. Oceniana jest tutaj złożoność obliczeniowa, więc, żeby uzyskać maksymalną punktację, należałoby to zrobić jedną pętlą szukając od razu dwóch największych liczb niepodzielnych przez p. Ale to już nieznaczna modyfikacja algorytmu.

Kolejne zadanie 2.

matura 2017 informatyka zadanie 2

To funkcja rekurencyjna, która zwraca zmieniony o 1 (gdy x nieparzyste) lub -1 (gdy parzyste) wynik siebie samej podzielonej bez reszty przez 2. Niestety nie jest ona zależna od bezpośrednio poprzednich elementów, co wprowadza dodatkowe zamieszanie. W praktyce to dziwna funkcja, gdzie na szybko nie udało mi się znaleźć reguły zwracającej wyniki. Być może mając więcej czasu udało by się ją znaleźć, więc postanawiam liczyć na piechotę. Dla pewnych wyrazów widać regułę np. licz(2), licz(4), licz(8), licz(16) itd., ale to nie rozwiązuje sprawy. Na spokojnie nie mając ograniczenia czasowego zobaczyłem później, że można się było odnieść do jedynek w wartości binarnej liczby.

matura 2017 informatyka zadanie 2.1

W zad. 2.1 należy wyznaczyć 3 wartości tej funkcji. Zatem zostaje żmudne liczenie ręczne i nie liczę po kolei bo szkoda na to czasu. Żeby wyznaczyć te 3 wartości muszę wyznaczyć tylko kilka wartości tej funkcji. Dla sprawdzenia, czy dobrze ją rozumiem liczę przykład dla licz(11) potrzebuję licz(5) oraz licz(2), więc liczę je od końca i zapisuje sobie na przyszłość. Licz(1)=1, licz(2)=0, licz(5)=1, licz(11)=2, więc wychodzi, zatem przystępuję do liczenia dla x=13. Muszę wyznaczyć licz(13), licz(6) oraz licz(3). Zatem od końca licz(3)=2, licz(6)=1, i licz(13) daje wynik 2. Analogicznie postępuję z licz(21), gdzie brakuje mi tylko licz(10) a resztę mam już wcześniej policzone. Szybko zatem wychodzi, że licz(10)=0 a licz(21) daje wynik 1. Dla x=32 muszę policzyć licz(16), licz(8), licz(4), licz(2) co od końca daje ładne wartości 0,-1,-2,-3 zatem licz(32) zwraca wynik -4.

Zadanie nie wydawało się zbyt trudne i nie straciłem na niego dużo czasu.

matura 2017 informatyka zadanie 2.2 Kolejne zadanie na pierwszy rzut oka wydaje się trudne i zapewne wielu się tutaj poddało i strzeliło. Sam po minucie myślenia złapałem się za głowę. Ale na spokojnie zacząłem wyznaczać ile wywołań będzie dla kolejnych x. Zatem dla x=1 jest 1 wywołanie funkcji (k=1). Dla x=2 oraz x=3 wywołań jest 2 (czyli k=2). Dla x=4, x=5, x=6, x=7 wywołań jest 3. Z tego już wprost widać, że dla danego k np. równego 4 najmniejszą wartością x jest 8, czyli 2^3. Odpowiedź prawidłowa zatem to B.

matura 2017 informatyka zadanie 2.3

Kolejne zadanie jest naprawdę trudne. Z racji, że nie znalazłem uniwersalnej metody na wyznaczanie licz(x) musiałem liczyć to ręcznie. Zaczynam oczywiście od x=101. Wyznaczam od końca licz(51), licz(25), licz(12). Wychodzi mi licz(25)=1, więc wiadomo już, że wynik nie będzie 0 bo mamy jeszcze 2 zmniejszenia lub zwiększenia wyniku. Przerywam dalsze obliczenia. Analogicznie nie sprawdzam dla x=102, bo tu też wykluczę ze względu na licz(25). Postępuję tam dalej wykluczając wiele niepotrzebnych przeliczeń stosując oczywiste zasady logiki. W niektórych przypadkach wykluczam nawet i 4 wyniki pod rząd, aż dochodzę do x=135. To zadanie zajęło naprawdę dużo czasu i trzeba być naprawdę maksymalnie skupionym, żeby nie popełnić błędu.

Kolejne pytania to pytania testowe z SQL’a. Na żółto zaznaczam prawidłowe odpowiedzi.

matura 2017 informatyka zadanie 3.1

Tu raczej nie było podchwytliwych przypadków. Mógł ewentualnie ktoś pomyśleć, że GROUP BY zwraca również posortowane wyniki.

matura 2017 informatyka zadanie 3.2

Tutaj teoretycznie też nie ma niespodzianek. No może poza warunkiem 4, gdzie trzeba dostrzec wartość 1 i wykluczający warunek HAVING w zapytaniu.

matura 2017 informatyka zadanie 3.3

Tutaj niestety można by się trochę pokłócić z komisją :). Zgodnie ze sztuką zaznaczone powinny być odpowiedzi jak powyżej. Spokojnie jednak można by polemizować czy rozsyłanie wiadomości z serwisu społecznościowego jako „Jan Kowalski” z innym emailem, można by uznać za podszywanie się. Przecież może być wielu Janów Kowalskich. Również w pozycji 4 przy aktualnych zabezpieczeniach wprowadzanych w system DNS i serwery pocztowe tego typu operacja nie bardzo jest możliwa.

 

Office dla OS X

Po 10 latach przeprosiłem się z Microsoftem w końcu. Kiedyś dawno obraziłem się na system Windows i zmieniłem sprzęt na Apple. System Mac OS X sprawdza się świetnie, a całe środowisko aplikacyjne jest wyborne. Aplikacje są naprawdę dopracowane i działają bez większych problemów. Idealnego systemu niestety nie ma i wpadki też się zdarzają, ale jest to sprawa marginalna.

Niestety zamienniki Microsoft Office’a są nadal niedopracowane. Programy Apple takie jak Numbers i Pages (aktualnie za darmo) są niezłe, ale przy bardziej skomplikowanych działaniach lub większych arkuszach są po prostu nieużywalne. Opensource’owe pakiety takiej jak Libre Office czy Open Office naprawdę przez lata zrobiły ogromny postęp i w zasadzie spełniają wszystkie potrzeby dnia codziennego.

Niestety brak pracy na oryginalnym Office rodzi kilka problemów, z którymi przez lata walczyłem. Oto one:

  • Problemy z zagnieżdżoną grafiką – zwłaszcza w nagłówkach i stopkach.
  • Problemy z różnicami w układzie i podziale stron.
  • Problemy z trybem śledzenia zmian.

Radziłem sobie z tymi niewygodami na różne sposoby, ale czas z tym skończyć. W końcu musiałem się przeprosić z Microsoftem i zainstalować oryginalny pakiet Office’a. Niestety on też nie jest bez wad. Zdarzają się crash’e aplikacji. Występują również niestety problemy z niekompatybilnością układu strony, ale to przypuszczam, że wynika z różnic w czcionkach w środowisku OSX i Windows.

Nie wiem jak na to patrzeć? Zdrada zasad czy może w końcu przychodzący z wiekiem zdrowy rozsądek?

Po cichu liczę na jakąś większą aktualizację Office na Maca z roku 2011, więc wybrałem rozwiązanie Office 365

Koniec zbierania muzyki

W moim życiu w kwestii słuchania muzyki wreszcie nastąpił poważny przełom. Wreszcie czuję, że technologia mi służy a nie tylko komplikuje życie.

Zaczynałem od zbierania muzyki jak wszyscy na płytach CD. Było to bardzo kosztowne zajęcie jak na moje w tamtych czasach dochody. Zajęcie to niestety miało jeden tylko plus – mogłem sobie fizycznie zobaczyć i dotknąć tej kolekcji. Miało jednak wiele minusów. Otóż kupowałem tylko płyty, które uznawałem za muzykę ponadczasową i naprawdę świetną, czyli taką, którą zakładałem, że za rok czy dwa również chętnie przesłucham. Słuchanie muzyki w samochodzie i domu wymagało ciągłego przenoszenia tych płyt. Rysowanie płyt podczas użytkowania również powodowało problemy.

W końcu nadeszła era MP3. Strata jakości kompensowana była przez dużo większą wygodę. Można było płytę CD przenieść do MP3 i już można było słuchać w domu, w samochodzie czy na komputerze. Przez długi czas nie dało się kupować muzyki w ten sposób wygodnie, co również się skończyło. Dziś można kupić muzykę za rozsądne pieniądze. Od wielu lat korzystam np. z takiego serwisu jak Muzodajnia. Ale pojawił się kolejny problem – otóż zakupiona muzyka zaczęła zajmować duże objętości danych. Musiałem przesiąść się z telefonem na pojemność 32GB. Ciągłe kopiowanie gigabajtów do auta czy pracy zaczęło doprowadzać mnie do szału. Nie mam w zwyczaju kasowania muzyki, za którą zapłaciłem. Nie znikła wada słuchania muzyki na próbę, bo MP3 trzeba kupić nawet jeżeli przesłuchałem coś tylko raz.

No i pojawiły się czasy słuchania muzyki strumieniowej. Rozwiązań jest kilka do wyboru np. Wimp, Deezer czy ten który ja wybrałem czyli Spotify. Płaci się stały abonament i ma się dostęp do praktycznie całej muzyki. Nie ma się nic na własność, tylko płaci się za dostęp. Jest to świetne rozwiązanie do przesłuchiwania muzyki, gdzie nie ma żadnych dodatkowych kosztów. Mogę muzyki słuchać w domu, w pracy, na rowerze czy w samochodzie. Wydaje mi się, że to jest wreszcie to co mi się najbardziej podoba. No i mam całą muzykę wszędzie, nie zajmując przy tym cennej pojemności.

Alternatywne podejście dość tradycyjne prezentuje Apple. Ale stwierdziłem, że ten etap przeskakuję. Usługa iTunes Match polega w skrócie na tradycyjnym kupowaniu MP3 tylko przechowywaniu ich w chmurze. Czyli dalej mam swoją kolekcję płyt, lecz nie zajmują mi już dysku i telefonu. Jak coś chcę posłuchać, to się z chmury dociąga. Fajne, ale jak coś chcę przesłuchać na próbę to niestety muszę kupić a nie zawsze wiem czy warto. Wprowadzenie usługi iTunes radio w jakimś sensie zapewnia przeszukiwania nowej muzyki na próbę, ale jednak to nie jest to samo.

Programowanie na platformę iOs

Wygrzebałem gdzieś w zakamarkach komputera starą prezentację z roku 2010. Niestety było tylko jedno miejsce, gdzie ją pokazywałem (chyba) i w sumie się raczej zmarnowała.

Niestety jak ją przejrzałem na szybko, to te 3 lata dużo zmieniło i niestety jest już trochę nieaktualna. Teraz od wersji iOS7 Apple zmieniło filozofie pracy aplikacji w tle, wg mnie zdecydowanie na gorsze. Teoretycznie daje to dużo większe możliwości dla aplikacji, ale niestety pozwala im działać w pełnym wymiarze w tle, co powoduje szybkie rozładowywanie baterii i w efekcie tą funkcje najczęściej się wyłącza.

Zaszły również zmiany w samym programowaniu w języku Objective C. Najtrudniejsza rzecz związana z zarządzaniem pamięcią została bardzo uproszczona. No nie jest to jeszcze to co w Javie, ale już bardzo blisko.

Zapraszam mimo tego do obejrzenia jako Wstęp do programowania na iOS. Możliwe, że kiedyś jeszcze ją uaktualnię.

Waze – społecznościowa nawigacja

Od wielu lat mocno kibicuje nowym ciekawym projektom i trzymam za nie kciuki, żeby udało się im znaleźć pomysł na zarabianie pieniędzy, bo każda robota za darmo na dłuższy dystans z założenia jest marna. Waze jest dostępne jako aplikacja na iPhony oraz Androidy. W przeglądarce można edytować mapy i przeglądać swoje trasy. Można dodawać nowe ulice czy zmieniać ich nazwy.

Od wielu miesięcy korzystam z WAZE i uważam to za wspaniałe rozwiązanie do darmowej nawigacji, ale przede wszystkim do społecznościowej komunikacji na drodze. Wszelkie utrudnienia, wypadki czy policjantów użytkownicy mogą zgłaszać, co innym pozwala na lepszy obraz tego co się dzieje na trasie. Bardzo fajną funkcją jest wykrywanie spowolnień na drodze, które są rozgłaszane oraz nawigacja może je wykorzystywać w znajdywaniu najszybszych tras.

Jedyną wadą całego projektu jest mała liczba użytkowników. Wśród moich znajomych aktywnie jeździ tylko kilku. W moim regionie miasta w sumie jest kilkunastu aktywnych użytkowników. To jednak zdecydowanie za mało, żeby wszystkie zalety działały.