Kategoria: Edukacja

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.

 

Mobilny dziennik elektroniczny

Wszystko dziś jest mobilne. A jak coś nie jest, to wstyd. Takie nastały czasy. W statystykach stron internetowych widać, że nawet i co trzeci użytkownik wchodzi na stronę z smarphone’a lub tablet’u. Wszyscy mają włączoną transmisję danych. Wszędzie jest WiFi. Nie chce się nam wyciągać przenośnego komputera z torby, bo wszystko można zobaczyć na telefonie. Aplikacji mobilnych jest mnóstwo. Większość nikomu niepotrzebnych.

W WizjaNet tworzymy jeden z najbardziej zaawansowanych dzienników elektronicznych – mobiDziennik. Od początku założeniem była mobilność, którą rozumiem nie jako stronę internetową dostosowaną do małych ekranów, tylko szybką, interaktywną aplikację na urządzenia mobilne. Niestety po kilku latach muszę stwierdzić, że ta mobilność trochę kuleje. Bardzo dobrze się sprawdza w zastosowaniach prostych i szybkich. W przypadku rozbudowanego systemu nie jest w stanie zastąpić wszystkich funkcji. I tak w rozwiązaniach mobilnych trzeba stosować pewne uproszczenia wynikające z ograniczenia wielkości ekranu. W szkołach, gdzie dziennik raczkuje i stosowany jest tylko do rejestracji obecności, ocen czy uwag, rozwiązanie mobilne się jeszcze sprawdza. W przypadku, gdy szkoła angażuje się na poważnie i zaczyna korzystać z wszystkich możliwości dużego systemu, to sprawa wygląda już całkiem inaczej. Aplikacja mobilna, choć i tak najbardziej rozbudowana jaka jest na rynku, daje zbyt małe możliwości w stosunku do pełnego systemu na dużym ekranie monitora.

W 2010 roku na konferencji Polskiego Towarzystwa Informatycznego w Szczyrku wygłaszałem referat pt „Mobilny Dziennik Elektroniczny„. Wtedy była to rewolucja. Powstała aplikacja mobilna dziennika elektronicznego, która pozwalała na bardzo wiele w stosunku do pełnej wersji systemu. Do dziś żadna firma na rynku nie zbudowała aplikacji, która pozwala na tak dużo. Wtedy możliwości te ograniczały również platformę mobilną do iOS ze względu na wysokie wymagania aplikacji. System stacjonarny przez 5 lat rozbudował się jednak na tyle, że dziś te funkcje, to kropla w morzu możliwości dziennika elektronicznego.

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

Opłaty za dziennik elektroniczny

Bardzo powszechne w Polsce rozwiązanie dziennika elektronicznego w szkole polega na tym, że szkoła ponosi niewielką opłatą za system a rodzice dobrowolnie mogą zapłacić – bardzo często firmie zewnętrznej – za to żeby mieć dostęp do ocen i frekwencji. Dyskusyjny jest również fakt, czy firma zewnętrzna, która nie jest administratorem danych osobowych ma jakiekolwiek prawo decydować kto ma lub nie ma dostępu do ocen i frekwencji.

Pobieranie opłat za dziennik elektroniczny przez firmę zewnętrzną jest wg mnie nielegalne!

W sieci jest bardzo wiele artykułów na ten temat. Wystarczy w google wpisać opłaty za dziennik elektroniczny. Już w roku 2010, ministerstwo pisało do kuratorów a oni następnie do dyrektorów, że takie praktyki są złe. Zapraszam do przeczytania Pisma MEN do szkół w sprawie opłat za dziennik elektroniczny. Pozwoliłem sobie dla leniwych zaznaczyć najważniejsze sentencje. Już wtedy MEN i kuratorzy sygnalizowali, że „prywatna firma … nie może … swobodnie zarządzać elektronicznym dziennikiem i udostępniać (bądź nie udostępniać) rodzicom uczniów”.

Szkoła powinna samodzielnie finansować dziennik elektroniczny. W moim odczuciu może zwrócić się do rady rodziców o wsparcie takiego celu, jeżeli jednostka nadrzędna nie chce tego finansować. Jeżeli opłaty są rozsądne, to w większości przypadków włodarze miast i gmin się na to zgadzają, bo jest to powiew nowoczesności w każdym mieście, co widzi bardzo wiele rodziców.

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ę.