{"paper":{"id":"informator-maturalny-informatyka-2015","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"variant":null,"exam_pdf":"informator-maturalny-informatyka-2015/informator-maturalny-informatyka-2015.pdf","key_pdf":null,"question_count":22,"source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},"questions":[{"id":"informator-maturalny-informatyka-2015/zad/1","paper_id":"informator-maturalny-informatyka-2015","number":"1","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 1. (0-1)\nDana jest tabela:\nSprawdzian\nuczen\nklasowka\negzamin\nAbacki\n45\n0\nBabacki\n50\n80\nCabacki\n100\n90\nDabacki\n80\n70\nDla powyższej tabeli utworzono następujące zapytanie w SQL:\nSELECT uczen\nFROM Sprawdzian\nWHERE (klasowka > egzamin AND egzamin > 75) OR klasowka < 50\nWynikiem tego zapytania jest\nP\nF\nAbacki, Babacki.\nBabacki, Cabacki.\nAbacki, Cabacki.\nAbacki, Dabacki.\nWymagania ogólne\nII. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera.\nWymagania szczegółowe\n2. Wyszukiwanie, gromadzenie, selekcjonowanie,\nprzetwarzanie i wykorzystywanie informacji, korzystanie\nz różnych źródeł i sposobów zdobywania informacji.\nZdający:\n2) stosuje metody wyszukiwania i przetwarzania informacji\nw relacyjnej bazie danych.\nRozwiązanie\nFFPF\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.\n14 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-1.webp","solution_image":null,"topics":null,"page_from":13,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/2","paper_id":"informator-maturalny-informatyka-2015","number":"2","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 2. (0-1)\nLiczba CB(16) jest równa liczbie\nP\nF\n1010101111(2).\n313(8).\n112011120(3).\n203(10).\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, z zastosowaniem podejścia\nalgorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n11) opisuje podstawowe algorytmy.\nRozwiązanie\nFPFP\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-2.webp","solution_image":null,"topics":null,"page_from":14,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/3","paper_id":"informator-maturalny-informatyka-2015","number":"3","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 3. (0-1)\nW grafice rastrowej\nP\nF\nkażdy piksel ma jednoznacznie określony kolor.\nobraz pamiętany jest w postaci obiektów geometrycznych.\nzaletą jest skalowalność obrazu.\nmogą być zapisywane zdjęcia z aparatu cyfrowego.\nWymagania ogólne\nI. Bezpieczne posługiwanie się komputerem i jego\noprogramowaniem, wykorzystanie sieci komputerowej;\nkomunikowanie się za pomocą komputera i technologii\ninformacyjno-komunikacyjnych.\nWymagania szczegółowe\n1. Posługiwanie się komputerem i jego oprogramowaniem,\nkorzystanie z sieci komputerowej.\nZdający:\n1) przedstawia sposoby reprezentowania różnych form\ninformacji w komputerze: liczb, znaków, obrazów, animacji,\ndźwięków.\nRozwiązanie\nPFFP\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.\nPrzykładowe zadania z rozwiązaniami 15","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-3.webp","solution_image":null,"topics":null,"page_from":14,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/4","paper_id":"informator-maturalny-informatyka-2015","number":"4","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 4. (0-1)\nDo szyfrowania informacji służy\nP\nF\nalgorytm RSA.\nmetoda bisekcji.\nPGP.\nalgorytm Huffmana.\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, z zastosowaniem podejścia\nalgorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n11) opisuje podstawowe algorytmy.\nRozwiązanie\nPFPF\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-4.webp","solution_image":null,"topics":null,"page_from":15,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/5","paper_id":"informator-maturalny-informatyka-2015","number":"5","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 5. (0-1)\nDynamicznym przydzielaniem numerów IP w sieci zajmuje się serwer\nP\nF\nDNS.\nDHCP.\nSMTP.\nFTP.\nWymagania ogólne\nI. Bezpieczne posługiwanie się komputerem i jego\noprogramowaniem, wykorzystanie sieci komputerowej;\nkomunikowanie się za pomocą komputera i technologii\ninformacyjno-komunikacyjnych.\nWymagania szczegółowe\n1. Posługiwanie się komputerem i jego oprogramowaniem,\nkorzystanie z sieci komputerowej.\nZdający:\n3) prawidłowo posługuje się terminologią sieciową.\nRozwiązanie\nFPFF\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.\n16 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-5.webp","solution_image":null,"topics":null,"page_from":15,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/6","paper_id":"informator-maturalny-informatyka-2015","number":"6","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 6. (0-1)\nDane: n - liczba naturalna większa od zera\nFunkcja K(n)\n1. dla\n4\nn \nwynikiem jest 1\n2. dla\n4\nn \nwynikiem jest K(n-1) - K(n-3)\nDla funkcji K zachodzi\nP\nF\ndla każdego n>4 zachodzi K(n)<0.\nK(2) > K(5).\nK(10) = 3.\nfunkcja jest niemalejąca.\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, z zastosowaniem podejścia\nalgorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n16) opisuje właściwości algorytmów na podstawie ich analizy.\nRozwiązanie\nFPPF\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-6.webp","solution_image":null,"topics":null,"page_from":16,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/7","paper_id":"informator-maturalny-informatyka-2015","number":"7","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 7. (0-1)\nRozważ poniższy algorytm, gdzie n jest liczbą całkowitą nieujemną.\n(1) wynik  0;\n(2) dopóki n ≠ 0 wykonuj\n(3)\nwynikwynik + (n mod 10)\n(4)\nnn div 10\ngdzie: mod to operator reszty z dzielenia,\ndiv to operator dzielenia całkowitego.\nDla podanego algorytmu zachodzi\nP\nF\ndla n = 36789 wynik = 30.\ndla n = 11111111 wynik = 8.\nwynik jest równy sumie cyfr w zapisie dziesiętnym liczby n.\ndla n = 1234 zmienna wynik w kolejnych iteracjach przyjmuje wartości\n1,3,6,10.\nPrzykładowe zadania z rozwiązaniami 17\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, z zastosowaniem podejścia\nalgorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n16) opisuje właściwości algorytmów na podstawie ich analizy.\nRozwiązanie\nFPPF\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-7.webp","solution_image":null,"topics":null,"page_from":16,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/8","paper_id":"informator-maturalny-informatyka-2015","number":"8","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 8. (0-1)\nRozważ poniższy algorytm, gdzie n jest liczbą całkowitą nieujemną, a[0 n] jest tablicą liczb\ncałkowitych, z - liczbą rzeczywistą.\n(1) in;y a[n];\n(2) dopóki i≠ 0 wykonuj\n(3)\nii-1\n(4)\nyy*z + a[i]\nAlgorytm ten przedstawia realizację\nP\nF\nobliczania wartości wielomianu dla danej wartości z.\nobliczenia NWW dla n liczb naturalnych.\nobliczenia NWD dla n liczb naturalnych.\nschematu Hornera.\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, z zastosowaniem podejścia\nalgorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n11) opisuje podstawowe algorytmy.\nRozwiązanie\nPFFP\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.\n18 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-8.webp","solution_image":null,"topics":null,"page_from":17,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/9","paper_id":"informator-maturalny-informatyka-2015","number":"9","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 9. (0-1)\nProgram komputerowy na licencji freeware można\nP\nF\nrozpowszechniać, jednak z zachowaniem informacji o autorze.\nwykorzystać do tworzenia nowych programów przez wprowadzanie w nim\nzmian.\nstosować do obliczeń.\nsprzedawać.\nWymagania ogólne\nV. Ocena zagrożeń i ograniczeń, docenianie społecznych\naspektów rozwoju i zastosowań informatyki.\nWymagania szczegółowe\n7. Wykorzystywanie komputera i technologii informacyjno-\nkomunikacyjnych do rozwijania zainteresowań, opisywanie\nzastosowań informatyki, ocena zagrożeń i ograniczeń, aspekty\nspołeczne rozwoju i zastosowań informatyki.\nZdający:\n3) stosuje normy etyczne i prawne związane\nz rozpowszechnianiem programów komputerowych,\nbezpieczeństwem i ochroną danych oraz informacji\nw komputerze i w sieciach komputerowych.\nRozwiązanie\nPFPF\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-9.webp","solution_image":null,"topics":null,"page_from":18,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/10","paper_id":"informator-maturalny-informatyka-2015","number":"10","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 10. (0-1)\nZgodnie z przepisami prawa autorskiego dozwolone jest\nP\nF\npublikowanie pod własnym nazwiskiem, na swojej stronie WWW,\nskopiowanych zasobów internetowych (zdjęć i artykułów).\nzamieszczanie na własnej stronie linków do innych stron WWW.\nzamieszczanie na własnej stronie cudzych programów na licencji freeware.\nzamieszczenie na stronie internetowej treści utworów, do których wygasły\nmajątkowe prawa autorskie.\nWymagania ogólne\nV. Ocena zagrożeń i ograniczeń, docenianie społecznych\naspektów rozwoju i zastosowań informatyki.\nWymagania szczegółowe\n7. Wykorzystywanie komputera i technologii informacyjno-\nkomunikacyjnych do rozwijania zainteresowań, opisywanie\nzastosowań informatyki, ocena zagrożeń i ograniczeń, aspekty\nspołeczne rozwoju i zastosowań informatyki.\nZdający:\n3) stosuje normy etyczne i prawne związane\nz rozpowszechnianiem programów komputerowych,\nbezpieczeństwem i ochroną danych oraz informacji\nw komputerze i w sieciach komputerowych.\nRozwiązanie\nFPPP\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.\nPrzykładowe zadania z rozwiązaniami 19","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-10.webp","solution_image":null,"topics":null,"page_from":18,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/11","paper_id":"informator-maturalny-informatyka-2015","number":"11","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 11. (0-1)\nDo jednoznacznej identyfikacji osoby podpisującej cyfrowy dokument służy\nP\nF\npodpis elektroniczny.\nwpisanie imienia i nazwiska.\nzaszyfrowanie dokumentu.\nwstawienie zeskanowanego podpisu autora.\nWymagania ogólne\nV. Ocena zagrożeń i ograniczeń, docenianie społecznych\naspektów rozwoju i zastosowań informatyki.\nWymagania szczegółowe\n7. Wykorzystywanie komputera i technologii informacyjno-\nkomunikacyjnych do rozwijania zainteresowań, opisywanie\nzastosowań informatyki, ocena zagrożeń i ograniczeń, aspekty\nspołeczne rozwoju i zastosowań informatyki.\nZdający:\n3) stosuje normy etyczne i prawne związane\nz rozpowszechnianiem programów komputerowych,\nbezpieczeństwem i ochroną danych oraz informacji\nw komputerze i w sieciach komputerowych.\nRozwiązanie\nPFFF\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-11.webp","solution_image":null,"topics":null,"page_from":19,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/12","paper_id":"informator-maturalny-informatyka-2015","number":"12","points":1,"ptype":"true_false","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 12. (0-1)\nAlgorytmem sortowania przez porównania jest\nP\nF\nsortowanie przez wybór.\nsortowanie kubełkowe.\nsortowanie przez wstawianie.\nsortowanie szybkie.\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, z zastosowaniem podejścia\nalgorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n11) opisuje podstawowe algorytmy.\nRozwiązanie\nPFPP\nSchemat punktowania\n1 pkt - poprawne zaznaczenie wszystkich odpowiedzi.\n0 pkt - błędne zaznaczenia lub ich brak.\n20 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-12.webp","solution_image":null,"topics":null,"page_from":19,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/13","paper_id":"informator-maturalny-informatyka-2015","number":"13","points":null,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 13. Zapisy binarne (0-7)\nW tym zadaniu badamy zapisy binarne dodatnich liczb całkowitych. Rozważamy następujący\nalgorytm:\nSpecyfikacja\nDane: dodatnia liczba całkowita n\nWynik: dodatnia liczba całkowita j równa\n(1) j 0;\n(2) powtarzaj\n(3)\njeśli n mod 2 = 1, to\n(4)\njj+1;\n(5)\nnn div 2;\n(6) aż n = 0;\nUwaga: użyte operatory mod i div oznaczają odpowiednio resztę z dzielenia i dzielenie\ncałkowite. Na przykład 5 mod 2 = 1, 5 div 2 = 2, 6 mod 2 = 0, 6 div 2 = 3.\na) Przeanalizuj powyższy algorytm i podaj wartości zmiennej j po zakończeniu jego\ndziałania dla n = 183 oraz dla n = 1022. Uzupełnij brakujący fragment specyfikacji.\nn\nj\n183\n1022\nMiejsce na obliczenia.\nb) Ułóż algorytm i zapisz go w wybranej przez siebie notacji (lista kroków lub język\nprogramowania, który wybrałeś na egzamin), który dla danej dodatniej liczby całkowitej\nn oblicza maksymalną liczbę kolejnych jedynek pojawiających się w zapisie binarnym tej\nliczby.\nSpecyfikacja\nDane: dodatnia liczba całkowita n\nWynik: dodatnia liczba całkowita m - maksymalna liczba kolejnych jedynek w zapisie\nbinarnym n\nPrzykład: dla n = 187 wynikiem jest m = 3, ponieważ 187 = (10111011)2\nPrzykładowe zadania z rozwiązaniami 21\nAlgorytm\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie\ndecyzji z wykorzystaniem komputera, z zastosowaniem\npodejścia algorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n2) stosuje podejście algorytmiczne do rozwiązywania\nproblemu,\n4) dobiera efektywny algorytm do rozwiązania\nsytuacji problemowej i zapisuje go w wybranej\nnotacji,\n5) posługuje się podstawowymi technikami\nalgorytmicznymi,\n11) opisuje podstawowe algorytmy,\n12) projektuje rozwiązanie problemu (realizację\nalgorytmu) i dobiera odpowiednią strukturę danych.\n22 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nSchemat punktowania\nPodpunkt\nCzynność\nLiczba\npunktów\nza\npodpunkt\nLiczba\npunktów\nza\nzadanie\na\nZa każdą poprawną odpowiedź - 1 punkt.\n3\n7\nb\nZa poprawny algorytm - 4 punkty.\nW przypadku niepoprawnego algorytmu:\n za prawidłowe wyznaczanie maksimum długości\nbloków jedynek - 1 punkt.\n za prawidłowe wyznaczanie długości bloków\njedynek - 1 punkt.\n4\nZadanie 13. Zapisy binarne (0-7) - rozwiązanie\nW tym zadaniu badamy zapisy binarne dodatnich liczb całkowitych. Rozważamy następujący\nalgorytm:\nSpecyfikacja\nDane: dodatnia liczba całkowita n\nWynik: dodatnia liczba całkowita j równa liczbie jedynek w zapisie binarnym liczby n\n(1) j 0;\n(2) powtarzaj\n(3)\njeśli n mod 2 = 1, to\n(4)\njj+1;\n(5)\nn :n div 2;\n(6) aż n = 0;\nUwaga: użyte operatory mod i div oznaczają odpowiednio resztę z dzielenia i dzielenie\ncałkowite, np. 5 mod 2 = 1, 5 div 2 = 2, 6 mod 2 = 0, 6 div 2 = 3.\na) Przeanalizuj powyższy algorytm i podaj wartości zmiennej j po zakończeniu jego\ndziałania dla n = 183 oraz dla n = 1022. Uzupełnij brakujący fragment specyfikacji.\nn\nj\n183\n6\n1022\n9\nMiejsce na obliczenia.\n183 = (10110111)2\n1022 = (1111111110)2\nPrzykładowe zadania z rozwiązaniami 23\nb) Ułóż algorytm i zapisz go w wybranej przez siebie notacji (lista kroków lub język\nprogramowania, który wybrałeś na egzamin), który dla danej dodatniej liczby całkowitej\nn oblicza maksymalną liczbę kolejnych jedynek pojawiających się w zapisie binarnym tej\nliczby.\nSpecyfikacja\nDane: dodatnia liczba całkowita n\nWynik: dodatnia liczba całkowita m - maksymalna liczba kolejnych jedynek w zapisie\nbinarnym n\nPrzykład: dla n = 187 wynikiem jest m = 3, ponieważ 187 = (10111011)2\nAlgorytm\nKażdy ciąg kolejnych jedynek w zapisie binarnym liczby, który nie można już wydłużyć,\nnazywamy blokiem. W zapisie binarnym liczby 187 mamy trzy bloki jedynek o długościach\njeden, trzy i dwa: (10111011)2. Naszym celem jest policzenie długości najdłuższego bloku.\nModyfikujemy algorytm z podpunktu a), wyznaczając kolejne cyfry liczby n, od cyfr najmniej\nznaczących do cyfr najbardziej znaczących. W momencie wykrycia bloku (pierwszej jedynki\nw tym bloku) rozpoczynamy zliczanie jedynek w nim zawartych, aż w zapisie binarnym\nnapotkamy zero lub wyznaczymy już wszystkie cyfry zapisu. Po przetworzeniu bloku\nporównujemy jego długość z długością dotychczas najdłuższego bloku i jeśli policzona\ndługość jest większa od dotychczas największej, aktualizujemy informację o długości\nnajdłuższego bloku.\nOto zapis opisanego słowami algorytmu:\n(1) m  0;\n(2) powtarzaj\n// m - długość dotychczas najdłuższego bloku\n(3)\njeśli n mod 2 = 1, to\n// nowy blok\n(4)\ndl_bloku 0; // tu zliczamy liczbę jedynek w bloku\n(5)\npowtarzaj\n(6)\ndl_blokudl_bloku + 1;\n(7)\nn n div 2;\n(8)\naż n mod 2 = 0;\n(9)\njeśli dl_bloku >m, to\n(10)\nm dl_bloku;\n(11)\nnn div 2;\n(12) aż n = 0;\nKomentarz\nPodpunkt a) w tym zadaniu nie powinien sprawić żadnych trudności. Przedstawiony w nim\nalgorytm jest typowym szkolnym algorytmem wyznaczania kolejnych cyfr dodatniej liczby\ncałkowitej w jej zapisie binarnym, poczynając od cyfry najmniej znaczącej, a kończąc na\ncyfrze najbardziej znaczącej. Warto zauważyć, że w ten sam sposób można wyznaczyć cyfry\nw zapisie pozycyjnym przy dowolnej podstawie p, 2 ≤ p ≤ 10. Wystarczy wykonywać\n24 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\noperacje dzielenia całkowitego i brania reszty z dzielenia z parametrem p zamiast 2. Dla\nliczby naturalnej n, n mod p jest najmniej znaczącą cyfrą w zapisie pozycyjnym liczby n przy\npodstawie p. Dla przykładu 187 mod 10 = 7, 187 mod 2 = 1. Jeśli najmniej znaczącą cyfrą\nw zapisie przy podstawie p liczby n jest cyfra c, to n = n’•p + c, dla pewnej liczby naturalnej\nn’. Wówczas n div p = n’ i kolejna cyfrą w zapisie n jest najmniej znacząca cyfra w zapisie\nn’. Te własności właśnie wykorzystano w algorytmie z podpunktu a).\nW punkcie b), oprócz wyznaczania cyfr liczby n, należy zliczać jedynki w blokach kolejnych\njedynek. Tutaj najpierw trzeba wykryć blok. To jest proste - blok rozpoczyna się od jedynki.\nNastępnie należy zliczać w pętli kolejne napotkane jedynki, aż pojawi się zero. Tak\nnaprawdę w tym celu wykorzystujemy pętlę z algorytmu w punkcie a). Tak więc cały\nalgorytm składa się z dwóch zagnieżdżonych pętli, których struktury są podobne do pętli\nz punktu a).\nMożna sobie wyobrazić inne rozwiązanie. W tym nowym rozwiązaniu zliczamy jedynki za\nkażdym razem od momentu pojawienia się pierwszej jedynki w bloku. Pojawienie się zera\npowoduje wyzerowanie licznika jedynek. Oto formalny zapis tego algorytmu:\n(1) m  0;\n(2) dl_bloku 0;\n(3) dopóki n ≠ 0 wykonuj\n(4)\njeśli n mod 2 = 1 to\n(5)\ndl_blokudl_bloku + 1;\n(6) w przeciwnym wypadku\n(7)\njeśli dl_bloku >m to\n(8)\nm := dl_bloku;\n(9)\ndl_bloku 0;\n(10)\nn n div 2;\nPrzykładowe zadania z rozwiązaniami 25","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-13.webp","solution_image":null,"topics":null,"page_from":20,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/14","paper_id":"informator-maturalny-informatyka-2015","number":"14","points":null,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 14. Fani (0-9)\nFani spotykają się z ulubionymi gwiazdami filmowymi w sali, której podłoga ma kształt\nkwadratu. Podłogę podzielono pionowymi i poziomymi liniami na mniejsze kwadraty\nrozmiaru 1x1. Zaproszona gwiazda zawsze siada w środku sali. Fani zajmują miejsca w sali\nna przecięciach linii. Jedno miejsce może zająć co najwyżej jedna osoba.\nPo wejściu na salę wypełniają oni kolejno strefy zaznaczone na Rys.2. kwadratami, każdą\nstrefę maksymalnie, jak się da. Fani zajmują tylko te miejsca, z których gwiazda jest\nwidoczna, co oznacza, że na odcinku łączącym ich miejsce z miejscem zajmowanym przez\ngwiazdę nie ma żadnej innej osoby. Na potrzeby zadania fanów i gwiazdę utożsamiamy\nz punktami, które zajmują. Na Rys. 1. przedstawione jest przykładowe rozmieszczenie\nwszystkich osób zgodnie z opisem. Na Rys. 2. pokazany jest przykładowe całkowite\nwypełnienie sali w 3 strefach. Jak widać w I strefie zasiądzie 8 fanów, w II strefie - 8, a w III\naż 16.\n14.1 Uzupełnij poniższą tabelę\nStrefa\nMaksymalna liczba\nfanów w kwadracie\nPrzyrost fanów w stosunku\ndo poprzedniego poziomu\nI\n8\nII\n16\n8\nIII\n32\n16\nIV\nV\nVI\n26 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\n14.2 Potraktuj salę (Rys. 1.) jako układ kartezjański, przyjmując pozycję gwiazdy jako punkt\n(0,0), a pozycje fanów jako punkty kratowe o określonych współrzędnych (x,y),\nodpowiedz na pytania:\na) W której strefie znajduje się pozycja o współrzędnych (17-18)?\nb) Podaj dwie pozycje, najbliżej położone względem pozycji (4,3), zasłaniane przez\nfana stojącego na tej pozycji.\nc) Podaj współrzędne dwóch miejsc, których zajęcie przez fanów uniemożliwi\noglądanie gwiazdy przez fana znajdującego się w polu (8; 12).\nd) Czy fan może stanąć na każdej pozycji, której jedna ze współrzędnych jest równa 1?\ne) Czy fan może stanąć w miejscu o współrzędnych (13; 39)? Odpowiedź uzasadnij.\n14.3 Zapisz algorytm (w postaci listy kroków, schematu blokowego lub w wybranym języku\nprogramowania) sprawdzający, czy fan może stanąć w miejscu o danych współrzędnych\n(x,y).\nSpecyfikacja\nDane: x,y - liczby całkowite określające położenie fana względem gwiazdy\nWynik: Komunikat TAK, jeżeli fan widzi gwiazdę lub komunikat NIE, jeżeli fan gwiazdy nie\nwidzi.\nPrzykładowe zadania z rozwiązaniami 27\nAlgorytm\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie\ndecyzji z wykorzystaniem komputera, z zastosowaniem\npodejścia algorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n1) analizuje, modeluje i rozwiązuje sytuacje\nproblemowe z różnych dziedzin,\n5) posługuje się podstawowymi technikami\nalgorytmicznymi,\n6) ocenia własności rozwiązania algorytmicznego\n(komputerowego), np. zgodność ze specyfikacją,\nefektywność działania,\n11) opisuje podstawowe algorytmy.\n28 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nSchemat punktowania\nNr\npodpunktu\nCzynność\nLiczba\npunktów\nza\npodpunkt\nLiczba\npunktów\nza\nzadanie\n14.1.\nZa poprawną uzupełnienie tabeli - 3 punkty.\nZa poprawnie uzupełnienie każdego wiersza - 1 punkt.\n3\n9\n14.2.\nZa poprawne podanie odpowiedzi do każdego\npodpunktu - 1 punkt; razem 4 punkty.\n4\n14.3.\nZa poprawny algorytm - 2 punkty.\nW przypadku algorytmu z błędnymi warunkami\nbrzegowymi - 1 punkt.\n2\nZadanie 14. Fani (0-9)- rozwiązanie\nFani spotykają się z ulubionymi gwiazdami filmowymi w sali, której podłoga ma kształt\nkwadratu. Podłogę podzielono pionowymi i poziomymi liniami na mniejsze kwadraty rozmiaru\n1x1. Zaproszona gwiazda zawsze siada w środku sali. Fani zajmują miejsca w sali na\nprzecięciach linii. Jedno miejsce może zająć co najwyżej jedna osoba.\nPo wejściu na salę wypełniają oni kolejno strefy zaznaczone na Rys. 2. kwadratami, każdą\nstrefę maksymalnie, jak się da. Fani zajmują tylko te miejsca, z których gwiazda jest widoczna,\nco oznacza, że na odcinku łączącym ich miejsce z miejscem zajmowanym przez gwiazdę nie ma\nżadnej innej osoby. Na potrzeby zadania fanów i gwiazdę utożsamiamy z punktami, które\nzajmują. Na Rys. 1. przedstawione jest przykładowe rozmieszczenie wszystkich osób zgodnie\nz opisem. Na Rys. 2. pokazany jest przykładowe całkowite wypełnienie sali w 3 strefach. Jak\nwidać w I strefie zasiądzie 8 fanów, w II strefie - 8, a w III aż 16.\nPrzykładowe zadania z rozwiązaniami 29\n14.1. Uzupełnij poniższą tabelę\nStrefa\nMaksymalna liczba\nfanów w kwadracie\nPrzyrost fanów w stosunku\ndo poprzedniego poziomu\nI\n8\nII\n16\n8\nIII\n32\n16\nIV\n48\n16\nV\n80\n32\nVI\n96\n16\n14.2.Traktując salę (Rys.1.) jako układ kartezjański, przyjmując pozycję gwiazdy jako punkt\n(0,0), a pozycje fanów jako punkty kratowe o określonych współrzędnych (x,y) odpowiedź\nna pytania:\na) W której strefie znajduje się pozycja o współrzędnych (17; -18)?\nXVIII…(max z |x| lub |y|)\nb) Podaj dwie pozycje, najbliżej położone względem pozycji (4,3), zasłaniane przez fana\nstojącego na tej pozycji.\n(8; 6) oraz (12; 9)\nc) Podaj współrzędne dwóch miejsc, których zajęcie przez fanów uniemożliwi oglądanie\ngwiazdy przez fana znajdującego się w polu (8; 12).\n(2; 3) oraz (4; 6)\nd) Czy fan może stanąć w każdym punkcie, którego jedna ze współrzędnych jest równa 1?\nTAK\ne) Czy fan może stanąć w miejscu o współrzędnych (13; 39)? Odpowiedź uzasadnij.\nNIE. Współrzędne x i y fana muszą być liczbami względnie pierwszymi.\n14.3.Zapisz algorytm (w postaci listy kroków, schematu blokowego lub w wybranym języku\nprogramowania) sprawdzający, czy fan może stanąć w miejscu o danych współrzędnych\n(x,y).\nSpecyfikacja\nDane: x,y - liczby całkowite określające położenie fana względem gwiazdy\nWynik: komunikat TAK, jeżeli fan widzi gwiazdę lub komunikat NIE- jeżeli fan gwiazdy nie\nwidzi\nAlgorytm\nPoniżej zamieszczony jest algorytm zapisany w języku programowania C:\nint nwd(int a, int b)\n{ while (a != b)\nif (a > b) a -= b; else b -=a;\nreturn a;\n}\nint main()\n{\ncin>>x>>y;\n30 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nif (x<0)x=-x; if(y<0)y=-y; //sprowadzenie problemu do liczb\n//nieujemnych\nif (((x==0)&&(y==0))cout<<”NIE”; else\nif ((x==0)&&(y!=1)||(x!=1)&&(y==0))) cout<<”NIE”; else\nif (((x==0)&&(y==1))||((y==0)&&(x==1))) cout<<”TAK”;else\nif (nwd(x,y)==1) cout<<”TAK”; else\ncout<<”NIE”;\n}\nKomentarz\nKluczem do poprawnego sformułowania algorytmu jest spostrzeżenie, że fani mogą zająć tylko\nte punkty kratowe o współrzędnych (x, y) , które nie zostaną przesłonięte przez żaden inny punkt\nkratowy. Inaczej, na odcinku, łączącym punkt (0, 0) i punkt kratowy (x, y), który ma zająć fan,\nnie może wystąpić żaden inny punkt o współrzędnych całkowitych. Punktami spełniającymi ten\nwarunek są punkty, których NWD(x, y)=1, czyli takie, których współrzędne są liczbami\nwzględnie pierwszymi. Dlaczego? Gdyby współrzędne (x, y) nie były względnie pierwsze, to\nznaczyłoby, że na wymienionym odcinku musiałby się znaleźć punkt o współrzędnych\ncałkowitych (x / NWD(x, y), y/ NWD(x, y)), który zasłaniałby gwiazdę.\nDla uproszczenia algorytmu można sprowadzić warunki zadania do przypadku, gdy x> 0\ni y>0, ponieważ NWD(x,y)=NWD(|x|,|y|). Jeżeli którakolwiek współrzędna jest równa zero, to\nmożna wykorzystać fakt, że NWD(x, 0)=|x|.\nPunkt 14.1 oraz 14.2 z podpunktami od a) do e) pomagają w analizie problemu przed\nsformułowaniem i zapisaniem algorytmu. Po poprawnym uzasadnieniu odpowiedzi z punktu\n14.2.e) zapisanie algorytmu nie powinno przysporzyć trudności zdającym.\nPrzykładowe zadania z rozwiązaniami 31","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-14.webp","solution_image":null,"topics":null,"page_from":25,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/15","paper_id":"informator-maturalny-informatyka-2015","number":"15","points":null,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 15. Sortowanie (0-6)\nW tym zadaniu rozważamy algorytmy sortujące niemalejąco n-elementową tablicę liczb\ncałkowitych a[1 n], gdzie n jest dodatnią liczbą całkowitą. Algorytm sortowania nazywamy\nlokalnym, gdy podczas sortowania można porównywać i zamieniać ze sobą tylko sąsiednie\nelementy tablicy. Na przykład dopuszczalne jest porównanie i zamiana elementów a[5] i a[6],\nnatomiast nie można bezpośrednio porównywać i zamieniać ze sobą elementów a[5] i a[7].\na) Które z następujących algorytmów sortowania są algorytmami lokalnymi: bąbelkowy,\nprzez wstawianie liniowe, szybki? Udziel odpowiedzi wpisując słowa TAK lub NIE\nw prawej kolumnie tabeli poniżej.\nAlgorytm\nCzy jest lokalny?\nBąbelkowy\nPrzez wstawianie liniowe\nSzybki\nb) Dla tablicy a[1 4] = [3,2,4,1] algorytm sortowania przez wstawianie liniowe wykona\ndokładnie 4 zamiany sąsiednich elementów: (3 z 2), (4 z 1), (3 z 1), (2 z 1). Uzupełnij luki\nw podanych poniżej tablicach różnymi liczbami całkowitymi tak, aby algorytm\nsortowania przez wstawianie liniowe wykonał na każdej z nich dokładnie 11 zamian\nsąsiednich elementów.\nTablica 1.\nPozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nZawartość\n10\n1\n2\n4\n5\n6\n7\n8\nTablica 2.\nPozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nZawartość\n1\n2\n3\n5\n4\nc) Załóżmy teraz, że w jednym kroku możemy posortować blok kolejnych elementów\ntablicy dłuższy niż 2. Na przykład gdybyśmy mogli sortować bloki o długościach\ndo 9 elementów, wówczas tablicę 10-elementową można by posortować w trzech\nkrokach: najpierw w jednym kroku sortujemy ostatnie 9 elementów. W następnym kroku\nsortujemy pierwsze 9 elementów. Teraz wiemy, że element najmniejszy jest już na swojej,\nczyli pierwszej, pozycji w tablicy. Jeszcze jedno sortowanie ostatnich 9 elementów\nkończy sortowanie całego ciągu. Oznaczmy przez Sort(i,j) sortowanie w jednym kroku\nbloku kolejnych elementów z pozycji od i do j. Wówczas powyższe sortowanie można\nzapisać w następujący sposób:\n(1) Sort(2,10);\n(2) Sort(1,9);\n(3) Sort(2,10);\n32 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nPrzykład:\nPoczątkowa zawartość tablicy:\na = [10, 2, 8, 4, 6, 5, 7, 9, 3, 1]\nSortowanie ostatnich 9 elementów (Sort(2,10)):\na = [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]\nSortowanie pierwszych 9 elementów (Sort(1,9)):\na = [1, 2, 3, 4, 5, 6, 7, 8, 10, 9]\nSortowanie ostatnich 9 elementów (Sort(2,10)):\na = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].\nZapisz algorytm sortowania tablicy 1000-elementowej w co najwyżej 6 krokach, przy\nzałożeniu, że w jednym kroku można posortować blok złożony z co najwyżej 500 elementów.\nKolejne kroki algorytmu:\n1.\n2.\n3.\n4.\n5.\n6.\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie\ndecyzji z wykorzystaniem komputera, z zastosowaniem\npodejścia algorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n2) stosuje podejście algorytmiczne do rozwiązywania\nproblemu,\n5) posługuje się podstawowymi technikami\nalgorytmicznymi,\n11) opisuje podstawowe algorytmy,\n16) opisuje własności algorytmów na podstawie ich\nanalizy.\nPrzykładowe zadania z rozwiązaniami 33\nSchemat punktowania\nPodpunkt\nCzynność\nLiczba\npunktów\nza\npodpunkt\nLiczba\npunktów\nza\nzadanie\na\nZa poprawne uzupełnienie wszystkich wierszy tabeli\n- 1 punkt.\n1\n6\nb\nZa poprawne uzupełnienie pierwszej tabeli (pozycja 4\n- 3, pozycja 8 - 9) - 1 punkt.\nZa poprawne uzupełnienie drugiej tabeli (10,9,8,7,6)\n- 1 punkt.\n2\nc\nZa poprawny algorytm - 3 punkty.\nW przypadku błędnego algorytmu:\nustawienie minimum na pierwszej pozycji - 1 punkt.\nustawienie maksimum na ostatniej pozycji - 1 punkt.\n3\nZadanie 15. Sortowanie (0-6) - rozwiązanie\nW tym zadaniu rozważamy algorytmy sortujące niemalejąco n-elementową tablicę liczb\ncałkowitych a[1 n], gdzie n jest dodatnią liczbą całkowitą. Algorytm sortowania nazywamy\nlokalnym, gdy podczas sortowania można porównywać i zamieniać ze sobą tylko sąsiednie\nelementy tablicy.\nNa przykład dopuszczalne jest porównanie i zamiana elementów a[5] i a[6], natomiast nie\nmożna bezpośrednio porównywać i zamieniać ze sobą elementów a[5] i a[7].\na) Które z następujących algorytmów sortowania są algorytmami lokalnymi: bąbelkowy,\nprzez wstawianie liniowe, szybki? Udziel odpowiedzi wpisując słowa TAK lub NIE\nw prawej kolumnie tabeli poniżej:\nAlgorytm\nCzy jest lokalny?\nBąbelkowy\nTAK\nPrzez wstawianie liniowe\nTAK\nSzybki\nNIE\nb) Dla tablicy a[1 4] = [3,2,4,1] algorytm sortowania przez wstawianie liniowe wykona\ndokładnie 4 zamiany sąsiednich elementów. Uzupełnij luki w podanych poniżej tablicach\nróżnymi liczbami całkowitymi tak, aby algorytm sortowania przez wstawianie liniowe\nwykonał na każdej z nich dokładnie 11 zamian sąsiednich elementów.\nTablica 1.\nPozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nZawartość\n10\n1\n2\n3\n4\n5\n6\n9\n7\n8\nTablica 2.\nPozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nZawartość\n1\n2\n3\n5\n4\n10\n9\n8\n7\n6\nc) Załóżmy teraz, że w jednym kroku możemy posortować blok kolejnych elementów\ntablicy dłuższy niż 2. Na przykład, gdybyśmy mogli sortować bloki o długościach do\n9 elementów, wówczas tablicę 10-elementową można by posortować w trzech krokach:\n34 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nnajpierw w jednym kroku sortujemy ostatnie 9 elementów. W następnym kroku\nsortujemy pierwsze 9 elementów. Teraz wiemy, że element najmniejszy jest już na\nswojej, czyli pierwszej pozycji w tablicy. Jeszcze jedno sortowanie ostatnich\n9 elementów kończy sortowanie całego ciągu. Oznaczmy przez Sort(i,j) sortowanie\nw jednym kroku bloku kolejnych elementów z pozycji od i do j. Wówczas powyższe\nsortowanie można zapisać w następujący sposób:\n(4) Sort(2,10);\n(5) Sort(1,9);\n(6) Sort(2,10);\nPrzykład:\nPoczątkowa zawartość tablicy:\na = [10, 2, 8, 4, 6, 5, 7, 9, 3, 1]\nSortowanie ostatnich 9 elementów (Sort(2,10)):\na = [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]\nSortowanie pierwszych 9 elementów (Sort(1,9)):\na = [1, 2, 3, 4, 5, 6, 7, 8, 10, 9]\nSortowanie ostatnich 9 elementów (Sort(2,10)):\na = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].\nZapisz algorytm sortowania tablicy 1000-elementowej w co najwyżej 6 krokach, przy\nzałożeniu, że w jednym kroku można posortować blok złożony z co najwyżej 500\nelementów.\nKolejne kroki algorytmu:\n1.\nSort(1,500)\n2.\nSort(251,750)\n3.\nSort(501,1000)\n4.\nSort(1,500)\n5.\nSort(251,750)\n6.\nSort(1,500)\nKomentarz\nTo zadanie sprawdza rozumienie zasad działania podstawowych algorytmów sortowania.\nWszystkie trzy algorytmy wymienione w punkcie a), to algorytmy sortujące polegające na\nporównywaniu wartości elementów znajdujących się na różnych pozycjach w tablicy\na i zamianie ich miejscami, jeśli element o większej wartości poprzedza w tablicy element\no mniejszej wartości. W algorytmach sortowania, bąbelkowym i przez wstawianie liniowe,\nporównywane i zamieniane są tylko pary sąsiednich elementów w tablicy. Tak nie jest\nw algorytmie szybkim, ponieważ w przeciwnym razie stracilibyśmy walor „szybkości”.\nŻeby rozwiązać punkt b) zastanówmy się, ile zamian wykonamy sortując algorytmem przez\nwstawianie tablicę a[1 n] o zadanej zawartości. Oznaczmy przez b[i] liczbę elementów\nw tablicy a znajdujących się na pozycjach o indeksach mniejszych od i, ale o wartościach\nwiększych od wartości elementu a[i]. Nietrudno zauważyć, że podczas wstawiania elementu\na[i] do uporządkowanego już fragmentu tablicy a[1 i-1], zostanie on zamieniony ze\nwszystkimi elementami o wartościach większych, a jest ich dokładnie b[i]. Zatem łączna\nliczba zamian wykonywanych w algorytmie sortowania przez wstawianie tablicy a wyniesie\nb[1]+b[2]+ … +b[n]. Poniżej pokazujemy zawartość tablicy b dla przykładów z punktu b).\nPrzykładowe zadania z rozwiązaniami 35\nTablica 1.\npozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nZawartość\n10\n1\n2\n3\n4\n5\n6\n9\n7\n8\ntablica b\n0\n1\n1\n1\n1\n1\n1\n1\n2\n2\nTablica 2.\npozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nzawartość\n1\n2\n3\n5\n4\n10\n9\n8\n7\n6\ntablica b\n0\n0\n0\n0\n1\n0\n1\n2\n3\n4\nDo rozwiązania punktu c) możemy zaadoptować algorytm sortowania bąbelkowego. Gdyby\ntablica a liczyła tylko cztery elementy, to do jej posortowania wystarczy (i potrzeba) 6\nwywołań procedury Sort:\nSort(1,2), Sort(2,3), Sort(3,4), Sort(1,2), Sort(2,3), Sort(1,2).\nPo trzech pierwszych wywołaniach Sort element o największej wartości znajdzie się już na\nswojej docelowej pozycji nr 4. Dwa następne wywołania zagwarantują, że na pozycji nr 3\nw a znajdzie się element drugi, licząc od największego. Ostatnie wywołanie Sort porządkuje\ndwa najmniejsze elementy i ustawia je na właściwych, dwóch pierwszych pozycjach w tablicy\na. Podobnie dzieje się w zaproponowanym rozwiązaniu sortowania tablicy 1000\nelementowej. Pierwsze trzy wywołania Sort gwarantują umieszczenie 250 największych\nelementów na ich docelowych pozycjach. Kolejne dwa wywołania Sort umieszczają\nw dobrym porządku, na docelowych pozycjach od 501 do 750, kolejne 250 elementów.\nOstatnie sortowanie porządkuje pierwszych 500 najmniejszych elementów. Alternatywne\nrozwiązanie mogłoby polegać na zaadaptowaniu sortowania przez wstawianie, kiedy to\nwstawiamy bloki po 250 elementów:\nSort(1,500), Sort(251,750), Sort(1,500), Sort(501,1000), Sort(251,750), Sort(1,500).\n36 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-15.webp","solution_image":null,"topics":null,"page_from":31,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/16","paper_id":"informator-maturalny-informatyka-2015","number":"16","points":null,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 16. Miejsce zerowe (0-6)\nPrzedstawiona poniżej rekurencyjna funkcja Mzer znajduje metodą bisekcji miejsce zerowe\nfunkcji f , ciągłej w przedziale\n,a b , z dokładnością do 2\n [epsilon].\nSpecyfikacja\nDane: liczby a i b takie, że a\nb\n\noraz\n\n\n0\nf a\nf b\n\n\nliczba\n0\n\nWynik: liczba rzeczywista x z przedziału\n,a b taka, że \n\n0\nf x \n\n\ndla pewnego  takiego,\nże\n2\n2\n\n\n\n\n\n\nFunkcja\n\n\n, ,\nMzer a b \n1. jeżelib\na\n\n\n\n, to wykonaj:\na.\n\n/ 2\ns\na b\n\n\nb. jeżeli\n\n0\nf s \n, to podaj s jako wynik\nc. jeżeli\n\n\n0\nf a\nf s\n\n\n, to podaj\n\n\n, ,\nMzer a s  jako wynik\nw przeciwnym przypadku podaj\n\n\n, ,\nMzer s b  jako wynik\n2. w przeciwnym przypadku podaj \n/ 2\na\nb\n\njako wynik\na)\nPoniżej prezentujemy fragment wykresu funkcji f , dla której wywołujemy funkcję Mzer:\nWykres funkcji f w przedziale <0,128>\n-40\n-20\n0\n20\n40\n60\n80\n100\n0\n5\n10\n15\n20\n25\n30\n35\n40\n45\n50\n55\n60\n65\n70\n75\n80\n85\n90\n95 100 105 110 115 120 125\nPrzykładowe zadania z rozwiązaniami 37\nWykres przecina oś OX w punkcie 72,7. Załóżmy, że funkcja Mzer została wywołana\ndla\n0\na \ni\n128\nb \n. W poniższej tabelce podaj liczbę kolejnych rekurencyjnych wywołań\nfunkcji Mzer przy podanych poniżej początkowych wartościach .\n\nliczba wywołań Mzer\n10\n4\n32\n25\n5\n1\n5\nMiejsce na obliczenia\nb) Poniżej\nprezentujemy\nzapis\nalgorytmu\nopisanego\nfunkcją\nMzer\nw\npostaci\nnierekurencyjnej. Zapis poniższego algorytmu jest niepełny, uzupełnij brakujące\nelementy tak, aby realizował tę samą metodę poszukiwania miejsca zerowego, którą\nopisuje funkcja Mzer.\nAlgorytm:\n1. dopóki b\na\n\n\n\nwykonuj\na)\ns \nb) jeżeli\n\n0\nf s \n, to podaj s jako wynik i zakończ wykonywanie algorytmu\nc) jeżeli\n\n\n0\nf a\nf s\n\n\n, to\nb \nw przeciwnym przypadku\n2. podaj \n/ 2\na\nb\n\njako wynik\n38 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie\ndecyzji z wykorzystaniem komputera, z zastosowaniem\npodejścia algorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n2) stosuje podejście algorytmiczne do rozwiązywania\nproblemu,\n5) posługuje się podstawowymi technikami\nalgorytmicznymi,\n9) stosuje rekurencję w prostych sytuacjach\nproblemowych,\n11) opisuje podstawowe algorytmy.\nSchemat punktowania\nPodpunkt\nCzynność\nLiczba\npunktów\nza\npodpunkt\nLiczba\npunktów\nza\nzadanie\na\nZa wszystkie poprawne odpowiedzi - 3 punkty.\nZa trzy poprawne odpowiedzi - 2 punkty.\nZa dwie poprawne odpowiedzi - 1 punkt.\n3\n6\nb\nZa każde poprawne uzupełnienie brakującego\nelementu - 1 punkt.\n3\nZadanie 16. Miejsce zerowe (0-6) - rozwiązanie\nPrzedstawiona poniżej rekurencyjna funkcja Mzer znajduje metodą bisekcji miejsce zerowe\nfunkcji f ciągłejw przedziale\n,a b z dokładnością do 2\n [epsilon].\nSpecyfikacja:\nDane: liczby a i b takie, że a\nb\n\noraz\n\n\n0\nf a\nf b\n\n\nliczba\n0\n\nWynik: liczba rzeczywista x z przedziału\n,a b taka, że \n\n0\nf x \n\n\ndla pewnego \ntakiego, że\n2\n2\n\n\n\n\n\n\nFunkcja\n\n\n, ,\nMzer a b \n1. jeżelib\na\n\n\n\n, to wykonaj:\na.\n2\na\nb\ns\n\n\nb. jeżeli\n\n0\nf s \n, to podaj s jako wynik\nc. jeżeli\n\n\n0\nf a\nf s\n\n\n, topodaj\n\n\n, ,\nMzer a s  jako wynik\nw przeciwnym przypadku podaj\n\n\n, ,\nMzer s b  jako wynik\nPrzykładowe zadania z rozwiązaniami 39\n2. w przeciwnym przypadku podaj \n/ 2\na\nb\n\njako wynik\n)\nPoniżej prezentujemy fragment wykresu funkcji f , dla której wywołujemyfunkcję Mzer:\nWykres przecina oś OX w punkcie 72,7. Załóżmy, że funkcja Mzer została wywołana\ndla\n0\na \ni\n128\nb \n. W poniższej tabelce podaj liczbę kolejnych rekurencyjnych wywołań\nfunkcji Mzerprzy podanych poniżej wartościach \n\nliczba wywołań Mzer\n10\n4\n32\n2\n25\n3\n5\n5\n1\n5\n10\nb) Poniżej prezentujemy zapis algorytmu opisanego funkcją Mzer w postaci\nnierekurencyjnej. Zapis poniższego algorytmu jest niepełny, uzupełnij brakujące\nelementy tak, aby realizował tę samą metodę poszukiwania miejsca zerowego, którą\nopisuje funkcja Mzer.\nAlgorytm\n1. dopóki b\na\n\n\n\nwykonuj\na)\n2\na\nb\ns\n\n\nb) jeżeli\n\n0\nf s \n, to podaj s jako wynik i zakończ wykonywanie algorytmu\nWykres funkcji f w przedziale <0,128>\n-40\n-20\n0\n20\n40\n60\n80\n100\n0\n5\n10\n15\n20\n25\n30\n35 40\n45\n50 55\n60\n65\n70 75\n80\n85\n90\n95 100 105 110 115 120 125\n40 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nc) jeżeli\n\n\n0\nf a\nf s\n\n\n, to b\ns\n\nw przeciwnym przypadku a\ns\n\n2. podaj \n/ 2\na\nb\n\njako wynik\nKomentarz\nPodpunkt a\nAby obliczyć liczbę kolejnych rekurencyjnych wywołań funkcji Mzer dla każdej podanej\nwartości , należy ustalić wartości zmiennych z jakimi będzie ona wywoływana w kolejnych\nkrokach. Funkcja zakończy działanie w momencie, gdy b\na\n\n\n\nDla każdej dokładności startujemy od wywołania funkcji\n\n\n0,128,\nMzer\n, zaś kolejne\nwywołania to:\nDla\n32\n\nmamy dwa wywołania:\n\n\n64,128,32\nMzer\n\n\n64,96,32\nMzer\nDla\n25\n\nmamy trzy wywołania:\n\n\n64,128,25\nMzer\n\n\n64,96,25\nMzer\n\n\n64,80,25\nMzer\nDla\n5\n\nmamy pięć wywołań:\n\n\n64,128,5\nMzer\n\n\n64,96,5\nMzer\n\n\n64,80,5\nMzer\n\n\n72,80,5\nMzer\n\n\n72,76,5\nMzer\nDla\n1\n5\n\nmamy dziesięć wywołań:\n1\n64,128, 5\nMzer \n\n\n\n\n\n1\n64,96, 5\nMzer \n\n\n\n\n\n1\n64,80, 5\nMzer \n\n\n\n\n\n1\n72,80, 5\nMzer \n\n\n\n\n\n1\n72,76, 5\nMzer \n\n\n\n\n\n1\n72,74, 5\nMzer \n\n\n\n\n\nPrzykładowe zadania z rozwiązaniami 41\n1\n72,73, 5\nMzer \n\n\n\n\n\n1\n72,5;73; 5\nMzer \n\n\n\n\n\n1\n72,5;72,75; 5\nMzer \n\n\n\n\n\n1\n72,625;72,75; 5\nMzer \n\n\n\n\n\nPodpunkt b\nAby uzupełnić luki w przedstawionej nierekurencyjnej wersji funkcji Mzer, należy zauważyć\nprostą własność: w kolejnych krokach zawsze ustalamy środek aktualnego przedziału, tzn.\n2\na\nb\ns\n\n\n, a następnie sprawdzamy czy miejsce zerowe funkcji leży na lewo od punktu s\n(wtedy b\ns\n\n), czy na prawo od punktu s(as).\nPodpunkt a) sprowadza się do przeanalizowania algorytmu zaprezentowanego w treści\nzadania na konkretnych danych i wyznaczenia liczby wywołań funkcji rekurencyjnej. Funkcja\nMzer opisuje podręcznikowy algorytm znajdowania miejsca zerowego funkcji ciągłej f\nmetodą bisekcji. Zadaniem zaprezentowanej implementacji tego algorytmu jest podanie\nmiejsca zerowego funkcji w przedziale \n\n,a b , z dokładnością do 2\n przy założeniu, że\n\n\n0\nf a\nf b\n\n\n(zauważmy, że ciągłość funkcji f w powiązaniu z warunkiem\n\n\n0\nf a\nf b\n\n\ngwarantuje, że f ma miejsce zerowe w przedziale \n\n,a b ).\nW treści zadania przedstawiono pseudokod rekurencyjnej wersji algorytmu, która\nrozpoczyna się od sprawdzenia czy odległość między krańcami przedziału [a,b] jest większa\nod  (czyli podwojonej dokładności wyniku):\n1. Gdy b - a , wówczas mamy gwarancję że środek przedziału \n\n,a b znajduje się nie dalej\nniż 2\n od miejsca zerowego funkcji f. Dlatego też jako wynik zwracany jest właśnie\nśrodek przedziału, czyli wartość (a+b)/2.\n2. Gdy b - a  , mamy dwie możliwości. Jeśli środek przedziału \n\n,a b jest miejscem\nzerowym funkcji f, zwracamy go oczywiście jako wartość. W przeciwnym razie\nredukujemy zadanie wyszukania miejsca zerowego w \n\n,a b do zadania poszukiwania\nmiejsca zerowego w [a,s] lub [s,b], gdzie s to środek przedziału \n\n,a b . Efektem redukcji\njest więc dwukrotne zmniejszenie długości przedziału, w którym poszukujemy miejsca\nzerowego.\nZauważmy, że gdyby wywołania funkcji Mzer dla a=0 i b=128 oraz podanych w punkcie a)\nwartości  nigdy nie kończyły się znalezieniem dokładnej wartości miejsca zerowego (czyli\nspełnieniem warunku f(s)=0), odpowiedzi w punkcie a) sprowadzałyby się do wskazania\nilokrotnie trzeba „połowić” przedział o długości 128 aby uzyskać przedział o długości nie\nwiększej niż . W rozwiązaniu można by więc ograniczyć się do policzenia, ile takich\n„połowień” należy wykonać. Aby jednak mieć pewność poprawności rozwiązania, trzeba\nsprawdzić że wartość środka przedziału s rzeczywiście w naszym przykładzie nie „trafi”\nidealnie w miejsce zerowe (równe 72,7) w kolejnych wywołaniach rekurencyjnych. Taką\nskrupulatną analizę przedstawiliśmy omawiając rozwiązanie punktu a).\n42 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nPunkt b) zadania wymaga zastosowania standardowej techniki zamiany rekurencji na\niterację. Zamiast wywoływać funkcję z nowymi wartościami krańców przedziałów,\nzmieniamy w pętli wartości zmiennych a i b tak, aby odpowiadały one końcom coraz\nmniejszych przedziałów dla których wywoływana jest funkcja rekurencyjna Mzer.\nPrzedstawiony szkielet algorytmu z pozostawionymi miejscami do uzupełnienia sugeruje\nsposób, w jaki w tym przypadku należy dokonać zamiany rekurencji na iterację.\nPrzykładowe zadania z rozwiązaniami 43","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-16.webp","solution_image":null,"topics":null,"page_from":36,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/17","paper_id":"informator-maturalny-informatyka-2015","number":"17","points":null,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 17. Bruker (0-11)\nFirma Bruker wygrała w przetargu kontrakt na ułożenie kostki na rynku starego miasta.\nDocelowo Bruker miała ułożyć 16 500 m2 kostki obu rodzajów. Firma Bruker rozpoczęła\nprace w dniu 1.03.2013 roku i planowała je zakończyć w drugiej połowie listopada 2013 roku.\nW dniu 1.03.2013 roku, przed rozpoczęciem pracy, na rynku zgromadzono 500 m2 kostki\ngranitowej i 200 m2 kostki bazaltowej.\nW firmie zatrudniono 20 pracowników, każdy z nich dziennie potrafi ułożyć 4,5 m2\npowierzchni granitowej lub 3,8 m2 powierzchni bazaltowej. Firma pracuje 5 dni w tygodniu\noprócz sobót i niedziel3. Bruker posiada samochody ciężarowe, każdy z nich jednorazowo\nmoże dostarczyć 32 m2 kostki granitowej lub 28 m2 kostki bazaltowej.\nKierownik opracował następujący system pracy: wszyscy pracownicy (20 osób) układają\nkostkę granitową do dnia, w którym rano zapas kostki granitowej jest mniejszy, niż ten\nzużywany codziennie przez cały zespół 20 pracowników. Wówczas połowa pracowników\nzostaje oddelegowana do pracy z kostką bazaltową, a połowa układa nadal kostkę granitową.\nKiedy zapas kostki granitowej zostanie uzupełniony (rano zapas kostki wystarczy na cały\ndzień pracy dla wszystkich 20 pracowników) wszyscy ponownie układają tylko kostkę\ngranitową.\nUzupełnianie zapasów następuje wieczorem, po pracy brukarzy, wg opisanej reguły: jeżeli\npo pracy zapas kostki granitowej jest mniejszy niż 40 m2, to przyjeżdżają 3 samochody\nz dostawą, jeżeli zapas wynosi od 40 m2 do 100 m2 włącznie - przyjeżdża 1 samochód, jeżeli\nzapas kostki jest większy niż 100 m2, wówczas nie ma dostawy. Zapas kostki bazaltowej jest\nuzupełniany w każdy poniedziałek i środę z użyciem jednego samochodu.\nKorzystając z dostępnych narzędzi informatycznych, wykonaj poniższe polecenia.\nOdpowiedzi do podpunktów a), b), c) i e) zapisz w pliku wyniki.txt, a każdą z nich\npoprzedź literą oznaczającą ten podpunkt.\nUwaga: Pamiętaj, że firma Bruker pracuje 5 dni w tygodniu oprócz sobót i niedziel. Dostawy\nkostki odbywają się również tylko w dni robocze, zatem w swoich obliczeniach pomiń soboty\ni niedziele.\na) Podaj liczbę dostaw kostki bazaltowej, przy założeniu, że prace trwały do końca listopada.\nb) Podaj datę pierwszej dostawy kostki granitowej.\nc) Dla każdego pierwszego roboczego dnia miesiąca w okresie od 1.03.2013 do 1.11.2013\nutwórz zestawienie złożone z daty i liczby metrów kwadratowych kostki granitowej oraz\nliczby metrów kwadratowych kostki bazaltowej ułożonych do dnia wskazanego datą\nwłącznie (stan wieczorny).\nd) Utwórz wykres liniowy obrazujący poranny zapas kostki granitowej i kostki bazaltowej\ndla danych z okresu od 1.03.2013 do 1.11.2013 włącznie.\ne) Sprawdź, czy firmie Bruker uda się zakończyć pracę w planowanym terminie. Jeżeli tak,\nto podaj dzień zakończenia prac. Jeżeli nie, podaj powierzchnię ułożonej kostki\nw ostatnim dniu roboczym listopada 2013 roku.\nDo oceny oddajesz plik(i) o nazwie(ach) , zawierający(e)\ntu wpisz nazwę(y) pliku (ów)\nkomputerową(e) realizację(e) Twoich obliczeń, plik tekstowy wyniki.txt zawierający\nodpowiedzi do podpunktów a), b), c) i e) oraz plik ,\ntu wpisz nazwę pliku\nzawierający reprezentację graficzną rozwiązania podpunktu d) zadania.\n3 Dla uproszczenia symulacji pomiń występowanie świąt państwowych i kościelnych.\n44 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie\ndecyzji z wykorzystaniem komputera, z zastosowaniem\npodejścia algorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n1) analizuje, modeluje i rozwiązuje sytuacje\nproblemowe z różnych dziedzin,\n12) projektuje rozwiązanie problemu (realizację\nalgorytmu) i dobiera odpowiednią strukturę danych,\n25) dobiera właściwy program użytkowy lub samodzielnie\nnapisany program do rozwiązania zadania.\nSchemat punktowania\nPodpunkt\nCzynność\nLiczba\npunktów\nza\npodpunkt\nLiczba\npunktów\nza\nzadanie\na\nZa poprawną odpowiedź - 2 punkty.\n2\n11\nb\nZa poprawną odpowiedź - 2 punkty.\n2\nc\nZa poprawną odpowiedź - 3 punkty.\nW przypadku jednego błędnego wiersza - 2 punkty.\nW przypadku dwóch błędnych wierszy - 1 punkt.\n3\nd\nZa poprawną odpowiedź - 2 punkty,\nw tym za:\n typ wykresu i zakres danych,\n pełny opis wykresu (tytuł, z wykresu można odczytać\nstan zapasów kostki granitowej i kostki bazaltowej\nw wybranym dniu).\n2\ne\nZa poprawną odpowiedź - 2 punkty.\n2\nZadanie 17. Bruker (0-11) - rozwiązanie\nPlik zawierający komputerową realizację obliczeń bruker.xlsx oraz plik tekstowy\nzawierający odpowiedzi wyniki.txt znajdują się w folderze BRUKER.\nKomentarz\nZadanie Bruker należy do typowych zadań symulacyjnych. Najtrudniejszą częścią zadania\njest prawidłowe zasymulowanie cyklicznie powtarzających się wydarzeń, które są ze sobą\npowiązane. Rozwiązanie rozpoczynamy od wypisania dni, w których będą odbywały się\nprace, czyli wszystkich dni roboczych, począwszy od 1 marca 2013 roku do dnia 30 listopada\n2013 roku oraz utworzenia kolumny z nazwą (numerem) dnia tygodnia.\nW ciągu całego dnia zachodzi wiele wydarzeń, które są od siebie zależne. Żeby nie doszło do\npomyłki, dobrze jest rozpisać wydarzenia dnia: stan początkowy (poranny) kostek obu\nrodzajów, liczbę ułożonych metrów kwadratowych dla granitu i dla bazaltu, stan\npopołudniowy (pomniejszony o liczbę wykorzystanej kostki w czasie pracy), dane dotyczące\nrealizowanych dostaw.\nPoranny stan zgromadzonej na rynku kostki w dniu 1.03.2013 roku wynosił odpowiednio dla\ngranitu 500 m2 i dla bazaltu 200 m2. Liczba metrów układanej kostki zależy od porannego\nstanu kostki granitowej: wszyscy pracownicy (20 osób) układają kostkę granitową do dnia,\nPrzykładowe zadania z rozwiązaniami 45\nw którym rano zapas kostki granitowej jest mniejszy niż ten zużywany codziennie przez cały\nzespół 20 pracowników (90 m2). Wówczas połowa pracowników zostaje oddelegowana\ndo pracy z kostką bazaltową (10*3,8 m2=38 m2), a połowa układa nadal kostkę granitową\n(10*4,5m2=45 m2). Kiedy zapas kostki granitowej zostanie uzupełniony, wszyscy ponownie\nukładają tylko kostkę granitową. Powyższy opis odpowiada formule w arkuszu\nkalkulacyjnym:\n=JEŻELI(C6>=$A$1*$F$2;$A$1*$F$2;$A$1/2*$F$2),\nktóra jest również przedstawiona na poniższym rysunku.\nPo pracy brukarzy sytuacja stanu kostki się zmieniła. Od stanu porannego należy odjąć\nliczbę ułożonych metrów kwadratowych. Będzie to dla granitu formuła: =C6-E6, a dla\nbazaltu formuła: =D6-F6.\nPrzeanalizujmy dostawy kostki. Uzupełnianie zapasów następuje wieczorem, po pracy\nbrukarzy. Jeżeli po pracy zapas kostki granitowej jest mniejszy niż 40 m2 to przyjeżdżają\n3 samochody z dostawą, jeżeli zapas wynosi od 40 m2 do 100 m2 włącznie - przyjeżdża\n1 samochód, jeżeli zapas kostki jest większy niż 100 m2, wówczas nie ma dostawy. Dla\nobliczenia wielkości dostawy zastosujemy funkcję jeżeli:\n=JEŻELI(G6<40;3*$F$3;JEŻELI(G6<=100;1*$F$3;0))\nZapas kostki bazaltowej jest uzupełniany w każdy poniedziałek i środę z użyciem jednego\nsamochodu, co możemy zapisać za pomocą funkcji jeżeli i zagnieżdżonej funkcji LUB:\n=JEŻELI(LUB(B6=3;B6=1);28;0)\nJak będzie wyglądać stan kostki w następnym dniu roboczym rano? Pozostaje nam\nuwzględnić wieczorne dostawy. Dla granitu będzie to formuła: =G6+I6, a dla bazaltu:\n=H6+J6.\nWykonaliśmy w ten sposób całą symulację dobowych działań firmy Bruker. Teraz wystarczy\nwpisane formuły i funkcje skopiować aż do dnia 30.11.2013 roku.\nAby odpowiedzieć na polecenie a), należy sprawdzić liczbę dostaw bazaltu, czyli liczbę\nponiedziałków i śród w okresie od 1.03.2013 roku do 30.11.2013 roku, stosując funkcję\nLICZ.JEŻELI.\nPolecenie b) sprawdza czy prawidłowo zbudowaliśmy formułę dotyczącą pracy z granitem.\nDo dnia 7.03.2013 stan kostki jest powyżej 100 m2 i dopiero po pracy w tym dniu spada do\n46 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\n50 m2, co skutkuje pierwszą dostawą kostki granitowej (1 samochód).\nDopiero polecenie c) kontroluje prawidłowe wykonanie całej symulacji. Aby obliczyć liczby\nmetrów kwadratowych kostki granitowej oraz liczby metrów kwadratowych kostki bazaltowej\nułożonych do dnia wskazanego datą włącznie (stan wieczorny), należy utworzyć kolumnę\nsuma dla granitu i suma dla bazaltu (są to odpowiednio kolumny K oraz L na poniższym\nrysunku), w których będziemy dodawać kolejne metry kwadratowe ułożonej kostki.\nW poleceniu d) należy utworzyć wykres liniowy porannych stanów kostki granitowej\ni bazaltowej. Należy pamiętać o prawidłowym zaznaczeniu zakresu danych i opisaniu\nwykresu w sposób umożliwiający odczytanie stanu konkretnego rodzaju kostki w wybranym\ndniu.\nJeżeli podsumujemy liczbę ułożonej kostki granitowej oraz ułożonej kostki bazaltowej,\notrzymamy liczbę metrów kwadratowych, które firma ułożyła do tego właśnie dnia włącznie.\nOkazuje się, że w dniu 19.11.2013 zostanie pokryta cała powierzchnia rynku starego miasta\ni firma Bruker zakończy pracę.\nNa końcu musimy wspomnieć, że to zadanie niemal w całości można również rozwiązać,\npisząc odpowiedni program. Jedyną problematyczną rzeczą jest utworzenie wykresu, który\nmożna wykonać w arkuszu kalkulacyjnym, zapisując wcześniej potrzebne dane do plików\ntekstowych.\nPoranny zapas kostki granitowej i kostki bazaltowej\n0\n100\n200\n300\n400\n500\n600\n2013-03-01\n2013-04-01 2013-05-01\n2013-06-01 2013-07-01\n2013-08-01\n2013-09-01 2013-10-01\n2013-11-01\nrano granit\nrano baz\nPrzykładowe zadania z rozwiązaniami 47","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-17.webp","solution_image":null,"topics":null,"page_from":43,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/18","paper_id":"informator-maturalny-informatyka-2015","number":"18","points":null,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 18. Telefony (0-11)\nFirma „Ciasteczko” wprowadziła na rynek nowy baton czekoladowy. Z tej okazji\nprzeprowadziła konkurs SMS-owy. Zadanie konkursowe polega na przesłaniu odpowiedzi\nna pytanie: „Czy smakuje Ci nasz nowy baton czekoladowy? Odpowiedz: Tak lub Nie.”\nWiele osób, licząc na zwiększenie szansy wygranej, wysyłało SMS-y wielokrotnie. W pliku\ntekstowym o nazwie telefony.txt znajduje się 2000 zarejestrowanych numerów telefonów\nwraz z wysłaną odpowiedzią. Każdy numer telefonu i udzielona odpowiedź umieszczona jest\nw jednym wierszu, informacje rozdzielone są pojedynczym znakiem odstępu.\nKorzystając z danych umieszczonych w pliku telefony.txt, wykonaj następujące\npolecenia.\nOdpowiedzi\ndo\nposzczególnych\npodpunktów\nzapisz\nw\npliku\nwyniki_konkursu.txt (poza wykresem do podpunktu a), a każdą z nich poprzedź\nliterą oznaczającą ten podpunkt.\na) Podaj, ile razy wysłano odpowiedź „Tak”, a ile razy odpowiedź „Nie”. Sporządź wykres\nprocentowy ilustrujący otrzymane wyniki. Pamiętaj o prawidłowym i czytelnym opisie\nwykresu.\nb) Numery telefonów należą do czterech grup numeracyjnych rozpoczynających się cyframi:\n5, 6, 7, 8. Ile numerów telefonów należy do każdej z grup? W swoim zestawieniu\nuwzględnij powtarzające się numery telefonów.\nc) Nagrodę I stopnia otrzymała osoba, w której numerze telefonu suma cyfr jest największa.\nPodaj numer telefonu oraz sumę cyfr numeru.\nd) Najdłuższym malejącym numerem telefonu nazywamy taki numer, którego początkowe\ncyfry tworzą najdłuższy malejący ciąg, tzn. kolejna jego cyfra, począwszy od drugiej, jest\nmniejsza od cyfry ją poprzedzającej, np. w numerze 654209192 pięć pierwszych cyfr\ntworzy malejący ciąg, zaś w numerze 865320542 sześć pierwszych cyfr tworzy malejący\nciąg. Do nagrody II stopnia wybrano te numery telefonów, których cyfry tworzą\nnajdłuższy malejący ciąg. Podaj numery telefonów, które otrzymały tą nagrodę.\ne) Firma postanowiła wręczyć nagrodę pocieszenia właścicielowi tego numeru, z którego\nwysłano najwięcej SMS-ów. Jaką największą liczbę SMS-ów wysłano z jednego numeru?\nDo oceny oddajesz plik(i) o nazwie ,\ntu wpisz nazwę(y) pliku(ów)\nzawierający(e)\nkomputerową(e)\nrealizację(e)\nTwoich\nobliczeń,\nplik\ntekstowy\nwyniki_konkursu.txt z odpowiedziami do punktów a-e (odpowiedź do każdego\npodpunktu powinna być poprzedzona jego nazwą) oraz plik ,\ntu wpisz nazwę pliku\nzawierający wykres do podpunktu a.\n48 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie\ndecyzji z wykorzystaniem komputera, z zastosowaniem\npodejścia algorytmicznego.\nWymagania szczegółowe\n4. Opracowywanie informacji za pomocą komputera,\nw tym: rysunków, tekstów, danych liczbowych,\nanimacji, prezentacji multimedialnych i filmów.\nZdający:\n4) wykorzystuje arkusz kalkulacyjny do obrazowania\nzależności funkcyjnych i do zapisywania algorytmów.\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n1) analizuje, modeluje i rozwiązuje sytuacje\nproblemowe z różnych dziedzin;\n2) stosuje podejście algorytmiczne do rozwiązywania\nproblemu;\n21) przeprowadza komputerową realizację algorytmu\ni rozwiązania problemu.\nSchemat punktowania\nPodpunkt\nCzynność\nLiczba\npunktów\nza\npodpunkt\nLiczba\npunktów\nza\nzadanie\na\nZa podanie poprawnej liczby odpowiedzi \"Tak\" oraz\npoprawnej liczby odpowiedzi \"Nie\" - 1 punkt.\nZa poprawny wykres - 2 punkty, w tym:\n\npoprawny dobór danych i typ wykresu - 1 punkt,\n\nczytelny opis wykresu - 1 punkt.\n3\n11\nb\nZa podanie poprawnej liczby numerów telefonów dla\nczterech grup - 2 punkty.\nZa podanie poprawnej liczby numerów telefonów dla\nco najmniej dwóch grup - 1 punkt.\n2\nc\nZa podanie poprawnego numeru telefonu - 1 punkt.\nZa podanie poprawnej sumy cyfr dla poprawnego\nnumeru - 1 punkt.\n2\nd\nZa podanie poprawnych trzech numerów - 3 punkty,\npo 1 punkcie za każdy poprawny numer.\n3\ne\nZa podanie poprawnej liczby - 1 punkt.\n1\nPrzykładowe zadania z rozwiązaniami 49\nZadanie 18. Telefony (0-11) - rozwiązanie\nPliki zawierające rozwiązania znajdują się w folderze TELEFONY.\nKomentarz\nWiększość podpunktów zadania sprowadza się do zliczania wierszy spełniających określone\nkryteria. Naturalnym narzędziem do rozwiązania takiego zadania jest język programowania\nbądź arkusz kalkulacyjny. Ponieważ podpunkty b, c oraz d wymagają dostępu nie tylko do\ncałych pól naszej tabeli (czyli numer telefonu i odpowiedź), ale do poszczególnych cyfr\nnumeru, wygodniejszym narzędziem wydaje się język programowania. Niemniej rozwiązanie\nzadania jest również możliwe w oparciu o arkusz kalkulacyjny. Poniżej omówimy dwa różne\nrozwiązania: w pierwszym napiszemy program w języku C, a w drugim korzystać będziemy\nz funkcji i innych narzędzi dostępnych w MS Excel.\nRozwiązanie 1: język programowania.\nKorzystając z dostępnych operacji wejścia/wyjścia z wykorzystaniem plików (lub strumieni),\nmożemy zapisać tabelę z pliku w tablicach. W naszym rozwiązaniu numery telefonów\nzapisujemy jako napisy w tablicy num, natomiast odpowiadające im odpowiedzi\n(„Tak”/”Nie”) reprezentujemy w tablicy liczb całkowitych odp, gdzie 1 odpowiada wartości\n„Tak” a 0 wartości „Nie”:\n#define n 2000 // liczba wierszy\ntypedef char napis9[10]; // typ dla napisow o długości 9\nint odp[n]; // odp[i]=1/0 gdy odpowiedz „Tak”/”Nie” w i-tym\nwierszu\nnapis9 num[n]; // num[i] to numer telefonu w i-tym wierszu\nPodpunkt a\nPrzy powyższej reprezentacji danych punkt a) sprowadza się do policzenia sumy\nodp[0]+odp[1]+…+odp[1999].\nPodpunkt b\nAby wyznaczyć liczbę numerów zaczynających się od cyfry i dla i=5, 6, 7, 8, utworzyliśmy\ntablicę liczb całkowitych grupa, gdzie grupa[i] ma spełniać rolę licznika dla numerów\nzaczynających się od i. Przeglądając w pętli wartości num[j][0] dla j=0, 1,…, 1999,\nuzupełniliśmy odpowiednio wartości liczników. Aby zamienić znak reprezentowany przez\nnum[j][0] na odpowiadającą mu cyfrę, użyliśmy podstawienia:\ncyf=num[j][0]-'0';\nPodpunkt c\nUtworzyliśmy osobną funkcję sumaCyfr, która w pętli zlicza sumę cyfr liczby podanej jako\nciąg cyfr w tablicy typu napis9. Z użyciem tej funkcji punkt c) sprowadzony został do\nklasycznego problemu wyznaczania największej wartości w ciągu.\nPodpunkt d\nW podpunkcie d również zastosowaliśmy modularyzację, wydzielając osobno funkcję\nmalejacy, której wynikiem jest liczba elementów najdłuższego ciągu malejącego,\n50 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nzłożonego z początkowych cyfr ciągu podanego na wejściu. Używając tej funkcji:\n najpierw wyznaczyliśmy maxD, największą długość malejącego ciągu złożonego\nz początkowych cyfr numeru telefonu,\n następnie przejrzeliśmy raz jeszcze wszystkie numery telefonów, wypisując jako wynik te\nnumery, których początkowe maxD cyfr tworzy ciąg malejący.\nPodpunkt e\nPolecenie w podpunkcie e) jest o tyle trudne, że zliczanie wystąpień poszczególnych numerów\nwymaga wielokrotnego przeglądania listy telefonów. W naszym rozwiązaniu zliczamy\nwystąpienia kolejnych numerów, stosując dwie zagnieżdżone pętle. Zastosowaliśmy jednak\ndrobną optymalizację. Wspomogliśmy się dodatkową tablicą liczony, ustawiając\nliczony[i] na 1 tylko wtedy, gdy i-ty numer jest równy numerowi występującemu\nwcześniej. Mogliśmy wówczas pominąć zliczanie tych elementów, dla których wartość\nw tablicy zliczony była równa 1.\nMożna sobie oczywiście wyobrazić inne rozwiązania tego podpunktu. Gdyby numery\ntelefonów były uporządkowane w pliku wejściowym, mielibyśmy pewność, że wszystkie\nwystąpienia danego numeru pojawiają się „obok siebie” (w kolejnych wierszach). A to\nz kolei ułatwiłoby znacznie zliczanie wystąpień poszczególnych numerów. Można zatem\nzacząć od sortowania ciągu numerów lub np. zastosować funkcje sortujące dostępne\nz biblioteki algorithm, dostępnej w większości kompilatorów języka C. W naszym rozwiązaniu\nprzyjęliśmy jednak, że samodzielna implementacja sortowania byłaby utrudnieniem sobie\nzadania, natomiast wykorzystanie bibliotecznych funkcji sortujących pozostawiamy jako\nćwiczenie dla czytelnika (wygodniej przy tym byłoby reprezentować numery jako tablicę\nliczb, nie napisów).\nRozwiązanie 2: arkusz kalkulacyjny.\nOmówimy teraz rozwiązanie utworzone w oparciu o MS Excel. Po zaimportowaniu danych\nz pliku tekstowego przyjmujemy, że numery telefonów i odpowiedzi „Tak”/”Nie” znajdują się\nodpowiednio w kolumnach A i B arkusza, w wierszach 2, 3, …, 2001 (dodajemy nowy wiersz\nna początku dla opisu kolumn). Rozwiązania punktów a), b) i e) możemy wówczas uzyskać\nz pomocą funkcji LICZ.JEŻELI.\nPodpunkt a\nAby zliczyć liczbę odpowiedzi „Tak”, dla funkcji LICZ.JEŻELI wskazujemy obszar\nB2:B2001 oraz jako kryterium wyszukiwania podajemy „Tak”:\n=LICZ.JEŻELI(B2:B2001;”Tak”)\nPodpunkty b - d\nRozwiązanie dla podpunktów b), c) i d) zadania wymaga wydzielenia cyfr kolejnych\nnumerów telefonów. Można do tego wykorzystać bardziej ogólną funkcję\nFRAGMENT.TEKSTU, która pozwala „wyciąć” z podanego tekstu fragment o wskazanej\ndługości i od podanej pozycji. Na przykład wartością formuły\n= FRAGMENT.TEKSTU(A2;2;1) będzie fragment tekstu z komórki A2, zaczynający się\nod drugiej pozycji, o długości jeden (czyli drugi znak z tekstu w A2). Co więcej, jeśli\nw komórce A2 znajduje się liczba, funkcja „automatycznie” przekształci ją na tekst przed\nwydzieleniem odpowiedniego fragmentu. W naszym rozwiązaniu „zautomatyzowaliśmy”\nproces wydzielania wszystkich 9 cyfr z kolejnych numerów w następujący sposób:\nPrzykładowe zadania z rozwiązaniami 51\n w komórkach D1…L1 umieszczone zostały cyfry 1, 2,…,9,\n w komórce D2 wpisana została formuła: = FRAGMENT.TEKSTU($A2;D$1;1),\n skopiowanie tej formuły do całego bloku D2:L1999 pozwoliło wydzielić wszystkie cyfry\nz każdego numeru.\nZwróćmy uwagę na sposób adresowania w formule z komórki D2:\n adres $A2 gwarantuje, że po skopiowaniu formuły nie zmieni się kolumna, z której\npobieramy tekst,\n adres D$1 z kolei gwarantuje, że numer pozycji, od której zaczyna się wycinany fragment\ntekstu, zawsze pobierany będzie z pierwszego wiersza.\nW rezultacie kolejne cyfry liczb z kolumny A umieścimy w kolumnach D…L. Nie możemy\njednak wykonywać na nich operacji arytmetycznych, ponieważ wynikiem funkcji\nFRAGMENT.TEKSTU jest napis, nie liczba. Zastosujemy zatem funkcję WARTOŚĆ, która\n„zamienia” tekst na liczbę. Wzorcowa formuła w komórce D2 będzie więc wyglądać\nnastępująco:\n= WARTOŚĆ(FRAGMENT.TEKSTU($A2;D$1;1))\nPodpunkt b\nAby zliczyć liczbę numerów telefonów zaczynających się od wskazanej cyfry, wykorzystamy\nfakt, że w kolumnie D wydzieliliśmy pierwsze cyfry numerów telefonów. Aby uzyskać liczbę\nnumerów zaczynających się od 5, możemy użyć formuły: =LICZ.JEŻELI(A2:A2001;5).\nAby uniknąć kilkukrotnego „ręcznego” wpisywania formuły wg powyższego schematu,\nmożemy zastosować adresowanie pośrednie i wskazać jako kryterium komórki, w których\nkolejno umieścimy liczby 5, 6, 7 i 8. Poniżej zamieszczamy przykładowe rozwiązanie\nzapisane w komórkach A9 B12 drugiego arkusza.\nFormuły w komórkach odpowiadających wartościom 6, 7, 8 i 9 możemy otrzymać, kopiując\nformułę wpisaną dla cyfry 5.\nPodpunkt c\nAby rozwiązać podpunkt c, wystarczy zsumować wartości z kolumn D…L w każdym wierszu,\nwyznaczyć największą z tych sum i wyszukać numer odpowiadający tej sumie.\n52 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nPodpunkt d\nW podpunkcie d) zapiszemy przy pomocy formuł następujący algorytm wyznaczania długości\nnajdłuższego ciągu malejącego, będącego początkiem wskazanego ciągu c1, c2,…,ck:\nKrok 1:\nJeśli c1c2 to r2 1\nw przeciwnym przypadku r2 0\nKrok 2:\nPowtarzaj dla i=3,4,…,k:\nJeśli (ci - 1c i) oraz (ri - 1=1) to ri 1\nw przeciwnym przypadku ri 0\nKrok 3:\nZwróć (1 + r2 + r3 + … + rk )\nW naszym przypadku wartość k z powyższego algorytmu to 9, a pierwszy ciąg znajduje się\nw komórkach D2, E2, …, L2. Formuły wyznaczające wartości r2,…,r9 w komórkach\nN2,…,U2 realizujące powyższy algorytm mogą wyglądać następująco:\n unikalna formuła w komórce N2:\n=JEŻELI(D2>E2;1;0)\n formuła w komórce O2, którą kopiujemy do P2,…,U2:\n=JEŻELI(N2=1;JEŻELI(E2>F2;1;0);0)\nNastępnie możemy:\n skopiować powyższe formuły do kolejnych wierszy arkusza,\n w kolumnie V każdego wiersza wyliczyć wartość jeden plus największa z wartości r2, r3,\n…, r9 (czyli maksimum wartości z kolumn N, M,…,U tego wiersza),\n wybrać największą wartość z kolumny V,\n wyszukać numery telefonów z wierszy, w których pojawia się ta największa wartość\nw kolumnie V.\nPodpunkt e\nPo raz kolejny zastosujemy funkcję LICZ.JEŻELI, umiejętnie wykorzystując też\nadresowanie pośrednie. Jeśli w komórce C2 arkusza z danymi wpiszemy formułę\n=LICZ.JEŻELI($A$2:$A$2001;A2), wówczas uzyskamy nie tylko liczbę wystąpień\npierwszego numeru (znajdującego się w komórce A2) w bloku A2:A2001, ale po\nskopiowaniu tej formuły do kolejnych komórek kolumny C wyznaczymy liczby wystąpień\nkolejnych numerów.\nPodpunkty a) i e) zadania nie wymagają wydzielania elementów (cyfr) numerów telefonów,\nmożna je więc zaliczyć do klasycznych ćwiczeń z zakresu analizowania i filtrowania danych,\nktóre bez większych trudności można zrealizować w wybranym arkuszu kalkulacyjnym.\nW pozostałych punktach zadania uzyskanie wyniku zasadniczo wymaga dostępu do\nposzczególnych cyfr numerów telefonów. Co prawda wyniki punktu b) zależą jedynie od\npierwszych cyfr a zatem możliwe jest rozwiązanie w oparciu o porównania całych numerów\n(np. numery zaczynające się od 5 są nie mniejsze niż 500000000 i nie większe niż\n599999999), jednak w punktach c) i d) wyniki zależą od wszystkich cyfr w numerach\ntelefonów. Dlatego rozwiązanie z wykorzystaniem języka programowania wydaje się bardziej\nnaturalne. Zaprezentowaliśmy jednak również rozwiązanie w arkuszu kalkulacyjnym, aby\nzademonstrować, że stosując odpowiednie formuły można „implementować” proste\nalgorytmy, gdzie komórki arkusza służą do przechowywania wartości zmiennych w kolejnych\netapach obliczeń. Niemniej szczególnie w podpunkcie d) (gdzie konieczne było ustalanie\nnajdłuższego malejącego ciągu początkowych cyfr numeru), nasze rozwiązanie wymagało\nniestandardowych i dość nienaturalnych pomysłów.\nPrzykładowe zadania z rozwiązaniami 53\nW zaprezentowanym rozwiązaniu programistycznym numery telefonów reprezentowane są\njako ciągi znaków, co ułatwia dostęp do poszczególnych cyfr. Warto wspomnieć,\nże reprezentacja numerów w postaci liczb również daje wygodny dostęp do cyfr. Zauważmy,\nże dla zmiennej n typu int wartość n%10 jest równa ostatniej jej cyfrze, natomiast n/10\nto wartość uzyskana po usunięciu z zapisu dziesiętnego n ostatniej cyfry (pamiętajmy,\nże w języku C wartość n/10 dla zmiennej n typu int jest równa wynikowi dzielenia\ncałkowitego n przez 10). Taki sposób dostępu do cyfr numeru jest jednak niewygodny\nw podpunkcie d) zadania, gdzie konieczne jest „przeglądanie” kolejnych cyfr w kolejności\nod pierwszej (najbardziej znaczącej), a nie od ostatniej (najmniej znaczącej).\nNa końcu należy podkreślić, że zadanie nie narzuca żadnego sposobu rozwiązania, więc nic\nnie stoi nic na przeszkodzie, aby odpowiednio dobrać takie narzędzia informatyczne do\nrozwiązania zadań w kolejnych podpunktach, aby część z nich rozwiązać przy pomocy języka\nprogramowania, a część przy pomocy arkusza kalkulacyjnego.\n54 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-18.webp","solution_image":null,"topics":null,"page_from":47,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/19","paper_id":"informator-maturalny-informatyka-2015","number":"19","points":null,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 19. Korek (0-11)\nW plikach sprzedaz.txt, produkt.txt i kategoria.txt znajdują się informacje\no sprzedaży produktów z korka w sklepie Koreczek. Pierwszy wiersz każdego z plików jest\nwierszem nagłówkowym, a dane w wierszach rozdzielone są znakami tabulacji.\nW pliku sprzedaz.txt znajduje się 2200 wierszy z informacjami o sprzedanych\nproduktach w ciągu całego roku 2012: Id_zakupu, Id_produktu, Data_zakupu, Ilosc (liczba\nsprzedanych jednostek danego produktu).\nPrzykład:\nId_zakupu Id_produktu\nData_zakupu\nIlosc\n1\np34\n2012-08-09\n9\n2\np87\n2012-08-07\n12\n3\np86\n2012-08-03\n26\n4\np20\n2012-01-05\n2\nW pliku produkt.txt znajduje się 99 wierszy z informacjami o produktach: Id_produktu,\nNazwa, Cena, Jednostka, Id_kategoria.\nPrzykład:\nId_produkt\nNazwa\nCena\nJednostka Id_kategoria\np1\nEspecial_Big\n24,99\nm2\nk1\np2\nToledo_Natural 23,99\nm2\nk1\np3\nToledo_Red\n23,99\nm2\nk1\nW pliku kategoria.txt znajduje się 21 wierszy z opisem kategorii sprzedawanych\nproduktów: Id_kategoria, Nazwa (nazwa kategorii do której należy grupa produktów).\nPrzykład:\nId_kategoria\nNazwa\nk1\nkorek_scienny\nk2\npodklad_korkowy\nk3\ngranulat_korkowy\nWykorzystując dane zawarte w tych plikach i dostępne narzędzia informatyczne, wykonaj\nponiższe polecenia. Odpowiedzi do poszczególnych podpunktów zapisz w pliku tekstowym\no nazwie wyniki_korek.txt. Odpowiedź do każdego podpunktu poprzedź literą\noznaczającą ten podpunkt.\na) Podaj zestawienie zawierające informacje o liczbie dokonanych zakupów w każdym\nmiesiącu. Zestawienie posortuj rosnąco ze względu na liczbę zakupów.\nb) Dla każdej kategorii oblicz łączną wartość sprzedanych produktów. Utwórz zestawienie\no kolumnach: nazwa kategorii, łączna wartość sprzedanych produktów w danej kategorii.\nZestawienie uporządkuj alfabetycznie według nazw.\nc) Podaj nazwę produktu z kategorii wyroby_korkowe, którego sprzedano najwięcej oraz\nwielkość jego sprzedaży.\nd) Podaj zestawienie zawierające dla każdego produktu z kategorii parkiet_korkowy\ni panele_korkowe informacje o łącznej liczbie m2 sprzedanego produktu.\nPrzykładowe zadania z rozwiązaniami 55\nDo oceny oddajesz plik(i) o nazwie , zawierający\ntu wpisz nazwę pliku(ów)\nkomputerową realizację Twoich obliczeń oraz plik tekstowy wyniki_korek.txt,\nzawierający odpowiedzi do wszystkich podpunktów zadania. Odpowiedź do każdego\npodpunktu w pliku wyniki_korek.txt powinna być poprzedzona nazwą podpunktu.\nWymagania ogólne\nII. Wyszukiwanie, gromadzenie i przetwarzanie\ninformacji z różnych źródeł; opracowywanie\nza pomocą komputera: rysunków, tekstów danych\nliczbowych, motywów, animacji, prezentacji\nmultimedialnych.\nWymagania szczegółowe\n2. Wyszukiwanie, gromadzenie, selekcjonowanie,\nprzetwarzanie i wykorzystywanie informacji,\nkorzystanie z różnych źródeł i sposobów zdobywania\ninformacji.\nZdający:\n1) projektuje relacyjną bazę danych z zapewnieniem\nintegralności danych,\n2) stosuje metody wyszukiwania i przetwarzania\ninformacji w relacyjnej bazie danych,\n3) tworzy aplikację bazodanową, wykorzystującą\njęzyk zapytań, kwerendy, raporty; zapewnia\nintegralność danych na poziomie pól, tabel, relacji.\nSchemat punktowania\nPodpunkt\nCzynność\nLiczba\npunktów\nza\npodpunkt\nLiczba\npunktów\nza\nzadanie\na\nZa podanie poprawnego zestawienia zawierającego\ninformacje o liczbie zakupów w każdym miesiącu -\n1 punkt.\nZa posortowanie otrzymanego zestawienia ze względu\nna liczbę zakupów - 1 punkt.\n2\n10\nb\nZa podanie poprawnego zestawienia zawierającego\nnazwy kategorii i łączną wartość sprzedanego towaru dla\nkażdej kategorii - 2 punkty.\nZa podanie zestawienia zawierającego poprawne\nwartości dla co najmniej 10 kategorii - 1 punkt.\nZa posortowanie otrzymanego zestawienia\nalfabetycznie - 1 punkt.\n3\nc\nZa podanie poprawnej nazwy produktu - 1 punkt.\nZa podanie poprawnej liczby sprzedanego produktu -\n1 punkt.\n2\nd\nZa poprawne zestawienie zawierające łączną liczbę\nsprzedanych produktów w każdej z podanych kategorii\n- 3 punkty.\nZa zestawienie zawierające błędny jeden wiersz albo\njedną kolumnę - 1 punkt.\n3\n56 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nZadanie 19. Korek (0-11) - rozwiązanie\nPliki zawierające rozwiązania znajdują się w folderze KOREK.\nKomentarz\nCechą wyróżniającą zadanie „Korek” spośród pozostałych zadań jest konieczność\npowiązania ze sobą danych rozmieszczonych w trzech różnych plikach. Każdy z tych plików\nmoże odpowiadać innej tabeli relacyjnej bazy danych, w której mamy następujące powiązania\ntypu „jeden do wielu”:\n tabele produkt.txt i sprzedaz.txt wiąże pole ID_produkt w produkt.txt\ni pole Id_produktu w sprzedaz.txt;\n tabele kategoria.txt i produkt.txt wiąże pole Id_kategoria z obu tabel.\nNaturalnym narzędziem do analizy takich danych jest aplikacja służąca do zarządzania bazą\ndanych, np. MS Access. Poniżej zaprezentujemy rozwiązanie z użyciem tego narzędzia.\nAplikacja bazodanowa wymaga dość dużego „wstępnego” nakładu pracy związanego\nz zakładaniem tabel, ustalaniem typów i rozmiarów pól, powiązań (relacji między tabelami).\nDlatego warto czasem spróbować alternatywnych rozwiązań, na przykład w arkuszu\nkalkulacyjnym. Zaprezentujemy taką próbę na przykładzie zadania „Korek”, pozostawiając\nczytelnikom ocenę, które narzędzie jest lepiej dopasowane do specyfiki zadania.\nRozwiązanie 1: baza danych (MS Access)\nPrzed przystąpieniem do rozwiązania podpunktów a) - d) zadania, musimy założyć tabele\nodpowiadające trzem plikom z danymi. Wygodnym rozwiązaniem jest utworzenie ich poprzez\nimport danych (Plik  Pobierz dane zewnętrzne  Importuj w MS Office 2003 lub Dane\nZewnętrzne  Importowanie  Plik tekstowy w MS Office 2007) i skorzystanie z kreatora\nimportu tekstu. Przyjmijmy, że po zakończeniu tego procesu mamy tabele Sprzedaz,\nProdukt i Kategoria, a pola tych tabel mają takie nazwy, jak podano w przykładach\nw treści zadania.\nNastępnie ustalimy relacje między tabelami i w efekcie uzyskujemy następujący schemat bazy\ndanych4:\n4 Rysunki w niniejszym opisie pochodzą z MS Office 2003 i MS Office 2007.\nPrzykładowe zadania z rozwiązaniami 57\nTeraz możemy przystąpić do rozwiązania podpunktów a) - d) zadania, tworząc odpowiednie\nkwerendy\nPodpunkt a\nWszystkie dane do podpunktu a znajdują się w tabeli Sprzedaz, brakuje w niej jednak pola\nidentyfikującego miesiąc każdej sprzedaży. Dodajemy więc pole wyliczane, w którym\nwyznaczamy miesiąc sprzedaży w oparciu o wartość pola Data_zakupu. Co prawda\nskładnia wyrażeń definiujących pola wyliczane jest dość skomplikowana, jednak w MS Access\nmożemy tworzyć takie pola za pomocą konstruktora wyrażeń, w którym wybieramy\nposzczególne elementy wyrażenia z odpowiednich list.\nAby wyznaczyć liczbę transakcji w każdym miesiącu, grupujemy dane według nowo\nutworzonego pola identyfikującego miesiąc sprzedaży, zliczamy liczbę wierszy w każdej\ngrupie (funkcja Policz) oraz sortujemy wynikowe zestawienie wg tych wyliczonych\nwartości. Szczegóły prezentujemy na załączonym obrazie okna projektu kwerendy:\n58 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nPodpunkt b\nZanim będziemy mogli sumować wartości sprzedaży w obrębie kategorii produktów, musimy\nwyznaczyć wartość każdej sprzedaży, co wymaga dostępu do tabel Sprzedaz i Produkt.\nW tym celu tworzymy pomocniczą kwerendę, w której korzystamy z powiązania obu tabel\ni tworzymy pole wyliczane, w którym wartość Ilosc z każdej sprzedaży mnożymy przez\nwartość Cena z tabeli Produkt:\nPrzykładowe zadania z rozwiązaniami 59\nNastępnie wystarczy zsumować wartości poszczególnych sprzedaży w obrębie kategorii\nproduktów, co możemy zrobić tworząc sprzężenie między tabelą Kategoria i nowo\nzałożoną kwerendą poprzez pole Id_kategoria. Wynikową kwerendę prezentujemy\nponiżej.\nPodpunkt c\nAby ustalić ilość jednostek sprzedaży każdego produktu, wystarczyłoby pogrupować tabelę\nSprzedaz wg pola Id_produktu i wyznaczyć sumę wartości pola Ilosc w każdej\ngrupie. Moglibyśmy też posortować zestawienie wg wyliczonych sum.\nTakie rozwiązanie nie daje jednak dostępu do nazw produktów, nie pozwala też wydzielić\nproduktów z kategorii wyroby_korkowe. Dlatego do rozwiązania punktu c) wykorzystamy\nwszystkie trzy tabele wraz z łączącymi je relacjami. Aby w wyniku uzyskać tylko produkty\nz kategorii wyroby_korkowe, zastosujemy filtrowanie wpisując frazę „wyroby_korkowe”\nw wierszu kryteriów dla nazwy kategorii. Przykładowy projekt kwerendy załączamy poniżej.\n60 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nPodpunkt d\nChcielibyśmy uzyskać zestawienie, w którego wierszach znajdują się nazwy kategorii,\nw kolumnach nazwy produktów, a na przecięciach wierszy i kolumn wielkości sprzedaży\nodpowiednich produktów. Zastosujemy w tym celu kwerendę krzyżową, której funkcjonalność\njest podobna do tabel przestawnych w MS Excel. Poniżej prezentujemy nasze rozwiązanie dla\npunktu d), w którym chcielibyśmy zwrócić uwagę na następujące elementy:\n w wierszu o nazwie „Krzyżowe” wskazujemy rolę poszczególnych pól w kwerendzie\nkrzyżowej: nagłówków kolumn, nagłówków wierszy, wartości uwzględnianych\nw obliczeniach,\n w wierszach „Kryteria” kolumny Kategoria wpisane zostały kategorie, do których\nograniczone miały być wyniki punktu d) zadania.\nPrzykładowe zadania z rozwiązaniami 61\nRozwiązanie 2: arkusz kalkulacyjny (MS Excel)\nRozwiązanie zadania w arkuszu kalkulacyjnym rozpoczniemy od wczytania zawartości plików\nsprzedaz.txt, produkt.txt i kategoria.txt do trzech różnych arkuszy\no nazwach sprzedaz, produkt i kategoria z takimi nagłówkami kolumn, jak podane\nw treści zadania. Możemy to zrobić, importując odpowiednie pliki tekstowe w MS Excel\n(Dane  Importuj dane zewnętrzne  Importuj dane w MS Office 2003 lub Dane  Dane\nzewnętrzne  Z tekstu w MS Office 2007), każdy do innego arkusza.\nRozwiązując kolejne podpunkty zadania, tworzyć będziemy tabele przestawne w oparciu\no dane z zaimportowanych tabel. Aby utworzyć tabelę przestawną, wskazujemy:\n1. kolumny względem których grupowane będą dane,\n2. kolumnę, z której brane będą wartości do obliczeń,\n3. funkcję, którą stosować będziemy na wartościach z kolumny podanej w 2.\nPowyższe parametry ustalamy w projekcie tabeli przestawnej, ustalając wartości obszarów\nEtykiety wierszy, Etykiety kolumn i Wartości (terminy takie stosowane są w MS Office 2007;\nich odpowiednikami w MS Office 2003 są obszary Wiersz, Kolumna i Dane). Obszary Etykiety\nwierszy i Etykiety kolumn odpowiadają kryteriom grupowania (jeśli stosujemy tylko jedno\nkryterium, obszar Etykiety wierszy lub Etykiety kolumn pozostaje pusty). W obszarze Wartości\numieszczamy pole do obliczeń, wybieramy również odpowiednią funkcję (np. suma, średnia,\nlicznik).\n62 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nPodpunkt a\nAby rozwiązać podpunkt a), dodamy do zestawienia kolumnę Miesiąc, w której wyznaczymy\nmiesiąc każdej sprzedaży, korzystając z funkcji wbudowanej (=MIESIĄC(C2)). Następnie\ntworzymy i sortujemy tabelę przestawną dla tabeli sprzedaz, grupującą dane wg miesięcy\ni sumującą liczbę zakupów w każdym miesiącu. Poniżej prezentujemy projekt układu dla\ntworzonej tabeli:\nPodpunkty b - d\nPonieważ podpunkty b - d zadania wymagają powiązań między poszczególnymi tabelami,\nspróbujemy zbudować jedną tabelę kumulującą wszystkie te powiązania. W tym celu\ntworzymy kopię tabeli sprzedaz w nowym arkuszu (B) i dodajemy do niej kolumny:\nProdukt_nazwa, Id_kategorii, Cena, Kategoria_nazwa, Wartość.\nPoszczególne pola uzupełniamy korzystając z następujących zależności:\nPrzykładowe zadania z rozwiązaniami 63\n wartości Produkt_nazwa, Kategoria i Cena można odczytać z tabeli produkt,\nw oparciu o Id_produktu,\n wartość Kategoria_nazwa można odczytać z tabeli kategoria, po wyznaczeniu\nId_kategorii,\n pole Wartość jest równe iloczynowi pól Ilosc i Cena.\nDocelowo chcielibyśmy uzyskać poniższy efekt:\nAby możliwe było utworzenia opisanej powyżej tabeli, potrzebna jest nam metoda na\nwyszukiwanie w tabeli wierszy z ustaloną wartością pewnego pola i wybieranie z takich\nwierszy wartości innych pól. Wykorzystaliśmy do tego funkcję WYSZUKAJ.PIONOWO\no czterech parametrach:\n pierwszy określa wyszukiwaną wartość,\n drugi definiuje obszar przeszukiwania (wartość szukana jest w pierwszej kolumnie\nobszaru),\n trzeci parametr wskazuje, z której kolumny obszaru należy pobrać wynikową wartość,\n czwarty parametr określa czy wyszukiwanie ma być dokładne czy też przedziałowe\n(w naszym przypadku wpisujemy wartość FAŁSZ oznaczającą dokładne wyszukiwanie).\nDziałanie funkcji zilustrujemy na przykładzie. Załóżmy, że w kolumnie B znajdują się wartości\nId_produktu z kolejnych wierszy tabeli sprzedaz. Aby w kolumnie C uzyskać nazwę\nproduktu, wpisujemy następujące parametry funkcji WYSZUKAJ.PIONOWO (w wierszu 2):\n B2 jako wyszukiwaną wartość;\n obszar zajmowany przez tabelę produktów (w naszym przykładzie\nprodukt!$A$2:$E$100); stosujemy adresowanie bezpośrednie, aby obszar nie\nzmieniał się przy kopiowaniu;\n liczbę 2 jako trzeci parametr, gdyż nazwy produktów znajdują się w drugiej kolumnie\ntabeli produkt.\nPoniżej załączamy ilustrację tego przykładu:\n64 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nMając dostęp do tabeli, w której wiersze z tabeli sprzedaz uzupełnione są o powiązane\nz nimi informacje z tabel produkt i kategoria, punkty b), c) i d), możemy rozwiązać,\nstosując tabele przestawne w powiązaniu z sortowaniem i filtrowaniem danych.\nPodpunkt b\nStosujemy grupowanie wg nazwy kategorii przeciągając Kategoria_nazwa jako pole\nwierszy.\nW obszarze wartości umieszczamy sumę pola Wartość (przeciągamy nazwę pola do\nodpowiedniego obszaru).\nPodpunkt c\nSortujemy dane malejąco względem nazwy kategorii, co spowoduje, że „wyroby_korkowe”\npojawią się w początkowym bloku tabeli. Tabelę przestawną tworzymy tylko dla tego\nfragmentu tabeli. Wybieramy Produkt_nazwa jako pole wierszy, a w obszarze wartości\numieszczamy sumę pola Ilość (i wg niej sortujemy).\nPodpunkt d\nAby ograniczyć analizę do podanych kategorii, najpierw sortujemy dane wg nazwy kategorii\ni usuwamy wiersze z innych kategorii niż parkiet_korkowy i panele_korkowe. Za pole wierszy\nprzyjmujemy Produkt_nazwa, pole kolumn to Kategoria_nazwa, a w obszarze\nwartości umieszczamy sumę pola Ilość.\nZapalonym programistom zalecić warto lepsze poznanie języka SQL, w którym można\nsamodzielnie formułować zapytania do bazy danych lub modyfikować zapytania utworzone za\npomocą interaktywnych narzędzi do tworzenia kwerend. Pozwoli to rozwiązywać zadania\ntego typu z wykorzystaniem bardzo elastycznego języka, unikając ograniczeń bądź\nniedogodności interaktywnego tworzenia kwerend w MS Access.\nRozwiązania bazodanowe dla podpunktów a) - c) uzyskać można, tworząc dość standardowe\nkwerendy wybierające z zastosowaniem grupowania. Po utworzeniu relacji łączących\nwszystkie trzy tabele, punkty te nie powinny nastręczać większych trudności wprawnym\nużytkownikom MS Access lub innych systemów bazodanowych. W rozwiązaniu podpunktu d)\nzaprezentowaliśmy potencjał kwerend krzyżowych, choć punkt ten można również rozwiązać\nw sposób bardziej standardowy, korzystając z faktu, że wynik należy uzyskać tylko dla dwóch\nkategorii produktów (można na przykład utworzyć dwie kwerendy - jedną dla kategorii\nparkiet_korkowy, a drugą dla kategorii panele_korkowe).\nOdnośnie zaprezentowanego rozwiązania zadania w arkuszu kalkulacyjnym należy zaznaczyć,\nże wiązanie tabel poprzez funkcję WYSZUKAJ.PIONOWO jest nieefektywne dla dużych\nzbiorów danych oraz niewygodne przy aktualizacji danych. Zaprezentowaliśmy to\nrozwiązanie, aby podkreślić uniwersalność różnych narzędzi i zwrócić uwagę, że maturzysta\nsamodzielnie podejmuje decyzję o wyborze narzędzia do rozwiązania zadania (uwzględniając\nczas dostępny w trakcie egzaminu maturalnego).\nPrzykładowe zadania z rozwiązaniami 65","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-19.webp","solution_image":null,"topics":null,"page_from":54,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/20","paper_id":"informator-maturalny-informatyka-2015","number":"20","points":null,"ptype":"closed","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 20. Hotel Panorama (0-10)\nDane są trzy pliki tekstowe o nazwach: klienci.txt; pokoje.txt; noclegi.txt.\nZawierają one informacje na temat zrealizowanych usług hotelowych hotelu Panorama\nw okresie wakacyjnym, tzn. zameldowanie gościa nastąpiło od 1.07.2013 do 31.08.2013.\nPierwszy wiersz każdego z plików jest wierszem nagłówkowym, a dane w wierszach\nrozdzielone są znakami tabulacji.\nPlik o nazwie klienci.txt zawiera informacje o gościach hotelu. W każdym wierszu\npliku znajdują się następujące dane: numer dowodu osobistego gościa hotelu (nr_dowodu),\nnazwisko (nazwisko), imię (imie) i miejsce zamieszkania (miejscowosc).\nPrzykład:\nnr_dowodu nazwisko imie\nmiejscowosc\nSAS253401 Pastuszak Joanna\nSzczecin\nUNC608098 Siudut\nAnna\nJaworzno\nNMZ567271 Konopka\nKamil\nTarnowskie Gory\nPlik o nazwie pokoje.txt zawiera w każdym wierszu: numer pokoju (nr_pokoju),\nmaksymalną liczbę osób, które mogą nocować w pokoju (liczba_osob), standard pokoju\n(standard), gdzie S - oznacza pokój standardowy, W - pokój o podwyższonym\nstandardzie oraz cenę wynajęcia pokoju na jedną dobę (cena).\nPrzykład:\nnr_pokoju liczba_osob\nstandard cena\n101\n2\nS\n220\n102\n2\nS\n220\n103\n2\nS\n220\nPlik o nazwie noclegi.txt zawiera w każdym wierszu: identyfikator noclegu (id_noc),\ndatę przyjazdu gościa hotelu (data_przyjazdu), datę wyjazdu gościa (data_wyjazdu),\nnumer dowodu osobistego gościa korzystającego z danego noclegu (nr_dowodu), numer\npokoju (nr_pokoju), oraz dodatkowe usługi, z których skorzystał gość podczas noclegu\n(uslugi).\nPrzykład:\nid_noc data_przyjazdu\ndata_wyjazdu\nnr_dowodu\nnr_pokoju\nuslugi\n198\n2013-07-10\n2013-07-12\nJAA932190\n501\n2020\n199\n2013-07-10\n2013-07-11\nSIS395155\n108\n1010\n206\n2013-07-10\n2013-07-13\nRMS452742\n113\n0030\nKorzystanie z dodatkowych usług odnotowane jest w postaci liczb jednocyfrowych.\nNa pierwszej pozycji od lewej strony odnotowana jest liczba konsumowanych śniadań (cena\njednostkowa 20 zł), na drugiej pozycji - liczba wejść na basen (cena jednostkowa 30 zł),\nna trzeciej - parking (cena jednostkowa 15 zł), a na ostatniej pozycji - czyszczenie ubrania\n(cena jednostkowa 35 zł).\nNa przykład zapis:\n2020 - oznacza, że gość 2 razy jadł śniadanie w hotelu (2*20 zł), nie korzystał z basenu,\nprzez 2 doby parkował samochód na hotelowym parkingu (2*15 zł) oraz nie oddawał ubrania\ndo czyszczenia. W związku z tym do kosztu noclegu dopisuje się koszt dodatkowych usług\nw wysokości 70 zł.\n66 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\n1130 - oznacza, że gość zjadł jeden raz śniadanie w hotelu (1*20 zł), jeden raz skorzystał\nz basenu (1*30 zł) i przez 3 doby parkował samochód na hotelowym parkingu (3*15 zł) oraz\nnie oddawał ubrania do czyszczenia. Gościowi do kosztu noclegu dopisuje się koszt\ndodatkowych usług w wysokości 95 zł.\nUwaga: Żadna z usług nie była zamawiana więcej niż 9 razy.\nKorzystając z danych zawartych w tych plikach oraz z dostępnych narzędzi informatycznych,\nwykonaj poniższe polecenia. Każdą odpowiedź umieść w pliku wyniki.txt, poprzedzając\nją oznaczeniem odpowiedniego podpunktu od a) do e).\na) Podaj imię i nazwisko gościa, który skorzystał z największej liczby noclegów podczas\njednorazowego pobytu w hotelu Panorama. Podaj liczbę tych noclegów.\nb) Podaj zestawienie (imię i nazwisko) osób z Krakowa goszczących w hotelu Panorama,\nktórzy korzystali z parkingu.\nc) Utwórz listę miejscowości, z których co najmniej 15 różnych osób nocowało choć raz\nw hotelu Panorama. Zestawienie posortuj alfabetycznie.\nd) Podaj kwotę uzyskaną z tytułu wynajmu pokoi oraz kwotę uzyskaną z opłat za korzystanie\nprzez gości z dodatkowych usług w okresie od 1.07.2013 do 31.08.2013.\ne) Podaj numery pokoi o podwyższonym standardzie, z których nigdy nie korzystali goście\nz Krakowa.\nDo oceny oddajesz plik(i) o nazwie(ach) ,\ntu wpisz nazwę(y) pliku(ów)\nzawierający(e) komputerową(e) realizację(e) Twoich obliczeń oraz plik tekstowy o nazwie\nwyniki.txt z odpowiedziami do podpunktów a), b), c), d), e).\nWymagania ogólne\nII. Wyszukiwanie, gromadzenie i przetwarzanie\ninformacji z różnych źródeł; opracowywanie\nza pomocą komputera: rysunków, tekstów danych\nliczbowych, motywów, animacji, prezentacji\nmultimedialnych.\nWymagania szczegółowe\n2. Wyszukiwanie, gromadzenie, selekcjonowanie,\nprzetwarzanie i wykorzystywanie informacji,\nkorzystanie z różnych źródeł i sposobów zdobywania\ninformacji.\nZdający:\n2) projektuje relacyjną bazę danych z zapewnieniem\nintegralności danych,\n3) stosuje metody wyszukiwania i przetwarzania\ninformacji w relacyjnej bazie danych; tworzy\naplikację bazodanową, wykorzystującą język zapytań,\nkwerendy, raporty; zapewnia integralność danych\nna poziomie pól, tabel, relacji.\nPrzykładowe zadania z rozwiązaniami 67\nSchemat punktowania\nPodpunkt\nCzynność\nLiczba\npunktów\nza\npodpunkt\nLiczba\npunktów\nza\nzadanie\na\nZa poprawną odpowiedź - 2 punkty,\nw tym za:\n imię i nazwisko - 1 punkt.\n liczbę noclegów - 1 punkt.\n2\n10\nb\nZa poprawną odpowiedź - 2 punkty.\nW przypadku powtórzeń - 1 punkt.\n2\nc\nZa poprawną odpowiedź - 2 punkty,\nw tym za:\n podanie listy - 1 punkt.\n za prawidłowe posortowanie - 1 punkt.\n2\nd\nZa poprawną odpowiedź - 2 punkty,\nw tym za:\n kwotę uzyskaną z tytułu wynajmu pokoi - 1 punkt.\n kwotę uzyskaną z opłat za korzystania przez gości\nz dodatkowych usług - 1 punkt.\n2\ne\nZa poprawną odpowiedź - 2 punkty.\nW przypadku braku jednego numeru lub wystąpienia\njednego numeru nieprawidłowego - 1 punkt.\n2\nZadanie 20. Hotel Panorama (0-10) - rozwiązanie\nPlik zawierający rozwiązanie znajdują się w folderze HOTEL.\nKomentarz\nZadanie Hotel Panorama należy do grupy zadań, które mogą być rozwiązywane narzędziami\nbazodanowymi lub z wykorzystaniem arkusza kalkulacyjnego. Baza składa się z trzech tabel:\nklienci (klucz główny - nr_dowodu), pokoje (klucz główny - nr_pokoju) i noclegi (klucz\ngłówny - Id_noclegu). Tabela klienci połączona zostanie z tabelą noclegi relacją typu „jeden\ndo wielu”, podobnie tabelę pokoje z tabelą noclegi łączy relacja typu „jeden do wielu”.\n68 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nW Accessie import plików z danymi jest prosty. Ambitni maturzyści mogą utworzyć bazę\ni zapytania w języku SQL:\n-- utworzenie bazy danych hotel\ncreate database hotel;\n-- ustawienie bazy hotel jako domyślnej\nuse hotel;\n-- utworzenie tabeli noclegi\nCREATE TABLE `noclegi` (\n`id_noc` int NOT NULL,\n`data_przyjazdu` date NOT NULL,\n`data_wyjazdu` date NOT NULL,\n`nr_dowodu` char(9) NOT NULL,\n`nr_pokoju` int NOT NULL,\n`uslugi` int(1) NOT NULL,\nPRIMARY KEY (`id_noc`)\n);\n-- zaladowanie danych do tabeli noclegi\nLOAD DATA INFILE\n\"C:\\\\Dane_hotel\\\\noclegi.csv\" INTO TABLE `noclegi` FIELDS\nTERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES\nTERMINATED BY '\\n' (id_noc,data_przyjazdu,data_wyjazdu,nr_dowodu,nr_pokoju,uslugi);\n-- utworzenie tabeli klienci\nCREATE TABLE `klienci` (\n`nr_dowodu` char(9) NOT NULL,\n`nazwisko` char(20) NOT NULL,\n`imie` char(20) NOT NULL,\n`miejscowosc` char(20) NOT NULL,\nPRIMARY KEY (`nr_dowodu`)\n);\n-- zaladowanie danych do tabeli klienci\nLOAD DATA INFILE\n\"C:\\\\Dane_hotel\\\\klienci.csv\" INTO TABLE `klienci` FIELDS\nTERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES\nTERMINATED BY '\\n' (nr_dowodu,nazwisko,imie,miejscowosc);\n-- utworzenie tabeli pokoje\nCREATE TABLE `pokoje` (\n`nr_pokoju` int(11) NOT NULL,\n`liczba_osob` int(11) NOT NULL,\n`standard` char(1) NOT NULL,\n`cena` int(11) NOT NULL,\nPRIMARY KEY (`nr_pokoju`)\n);\nPrzykładowe zadania z rozwiązaniami 69\n-- zaladowanie danych do tabeli pokoje\nLOAD DATA INFILE\n\"C:\\\\Dane_hotel\\\\pokoje.csv\" INTO TABLE `pokoje` FIELDS\nTERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES\nTERMINATED BY '\\n' (nr_pokoju,liczba_osob,standard,cena);\nW poleceniu a) należy podać imię i nazwisko gościa, który skorzystał z największej liczby\nnoclegów podczas jednorazowego pobytu w hotelu Panorama oraz liczbę tych noclegów. Aby\npodać odpowiedź na tak postawione pytanie, należy obliczyć liczbę nocy, odejmując od daty\nwyjazdu datę przyjazdu, znaleźć maksimum i odpowiadającą temu maksimum osobę.\nZapytanie a:\nSELECT Klienci.imie, Klienci.nazwisko, (data_wyjazdu-data_przyjazdu) AS Liczba_nocy\nFROM Klienci, Noclegi\nWHERE ((Klienci.nr_dowodu)=(Noclegi.nr_dowodu))\nORDER BY (data_wyjazdu-data_przyjazdu) DESC;\nW MySQLu do obliczenia liczby noclegów należy użyć funkcji TO_DAYS:\nSELECT imie, nazwisko, to_days(data_wyjazdu)-to_days(data_przyjazdu) AS liczba_nocy\nFROM Klienci, Noclegi\nWHERE ((Klienci.nr_dowodu)=( Noclegi.nr_dowodu))\nORDER BY liczba_nocy DESC;\nAby wykonać zestawienie gości z Krakowa, którzy korzystali z parkingu, należy utworzyć\nzapytanie odnoszące się do dwóch tabel: Klienci i Noclegi. Informacja o korzystaniu gościa\nz parkingu zapisana została w kolumnie „usługi” na trzeciej pozycji, licząc od strony lewej.\nCyfra oznaczająca liczbę parkowań powinna być różna od zera. Jeżeli kolumna „usługi”\nprzechowuje dane typu char, to wyodrębnienie informacji o parkowaniu można uzyskać za\npomocą funkcji MID(nazwa_kolumny,pierwszy_znak,liczba_znaków).\nJeżeli ktoś preferuje pracę w arkuszu kalkulacyjnym, może zastosować funkcję\nFRAGMENT.TEKSTU(tekst,liczba_początkowa,liczba_znaków). Dodatkowym warunkiem\njest pochodzenie gości z Krakowa (tabela Klienci, kolumna miejscowość).\nZapytanie b:\nSELECT klienci.nr_dowodu, imie, nazwisko\nFROM Klienci, Noclegi\nWHERE Klienci.nr_dowodu = Noclegi.nr_dowodu AND Miejscowosc='Krakow' AND\nMid(uslugi,3,1)<>'0'\nGROUP BY klienci.nr_dowodu, imie, nazwisko;\nW poleceniu SELECT obok imienia i nazwiska dodano pole nr_dowodu, które jednoznacznie\nidentyfikuje klienta, aby wykluczyć pominięcie osób o takim samym imieniu i nazwisku.\nW celu utworzenia listy miejscowości, z których co najmniej 15 różnych osób nocowało choć\nraz w hotelu Panorama, należy utworzyć zapytanie pomocnicze w wyniku którego otrzymamy\nzestawienie numerów dowodów osobistych (z tabeli Noclegi) oraz miejscowości (z tabeli\nKlienci). Dzięki grupowaniu otrzymamy zestawienie bez powtórzeń (czyli noclegi różnych\nosób).\nZapytanie c:\nSELECT Noclegi.nr_dowodu, Klienci.miejscowosc\nFROM Noclegi, Klienci\nWHERE ((Noclegi.nr_dowodu)=(Klienci.nr_dowodu))\nGROUP BY Noclegi.nr_dowodu, Klienci.miejscowosc;\n70 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nKorzystając z wyników pomocniczego zapytania, policzymy miejscowości i wypiszemy tylko\nte, które występowały w zestawieniu pomocniczym przynajmniej 15 razy (HAVING\ncount(*)>=15). Na koniec należy je uporządkować alfabetycznie (ORDER BY miejscowość).\nKwerenda c1:\nSELECT miejscowosc,\nFROM c\nGROUP BY miejscowosc\nHAVING count(*)>=15\nORDER BY miejscowosc;\nAby podać kwotę uzyskaną z tytułu wynajmu pokoi, należy w pierwszej kolejności dla każdego\nidentyfikatora noclegu obliczyć iloczyn liczby nocy i ceny pojedynczego noclegu\nw wynajmowanym pokoju.\nKwerenda d:\nSELECT id_noc, (to_days(data_wyjazdu)-to_days(data_przyjazdu))*cena AS cena_noclegow\nFROM Pokoje, Noclegi\nWHERE Pokoje.nr_pokoju=Noclegi.nr_pokoju;\nPo zsumowaniu wartości wszystkich noclegów otrzymamy kwotę uzyskaną z tytułu wynajmu\npokoi:\nKwerenda d1:\nSELECT Sum(cena_noclegow) AS Za_noclegi\nFROM d;\nAby obliczyć kwotę uzyskaną z opłat za korzystanie przez gości z dodatkowych usług, należy\ndla każdego identyfikatora noclegu wyodrębnić liczbę wykorzystanych usług i pomnożyć\nprzez cenę tej usługi. Funkcja VAL zamienia wartość typu char na wartość typu int.\nW MySQLu będzie to funkcja CAST.\nKwerenda d2:\nSELECT Sum(20*Val(Mid(uslugi,1,1))) AS sniadanie,\nSum(30*Val(Mid(uslugi,2,1))) AS basen,\nSum(15*Val(Mid(uslugi,3,1))) AS parking,\nSum(35*Val(Mid(uslugi,4,1))) AS czyszczenie\nFROM Noclegi;\nKwerenda d2:\nSELECT sniadanie+basen+parking+czyszczenie AS Za_uslugi\nFROM d2;\nW ostatnim poleceniu należy podać numery pokoi o podwyższonym standardzie, z których\nnigdy nie korzystali goście z Krakowa. W tym celu zostało utworzone podzapytanie dające\nw wyniku numery pokoi o podwyższonym standardzie w których byli goście z Krakowa,\na następnie pytanie zewnętrzne: wybierz numery pokoi o podwyższonym standardzie z tabeli\npokoje nie występujące w zestawieniu będącym wynikiem podzapytania.\nKwerenda e:\nSELECT Pokoje.nr_pokoju\nFROM pokoje\nWHERE standard='W' AND pokoje.nr_pokoju NOT IN\n(SELECT Noclegi.nr_pokoju\nFROM Noclegi,Pokoje, Klienci\nPrzykładowe zadania z rozwiązaniami 71\nWHERE Klienci.nr_dowodu = Noclegi.nr_dowodu AND Noclegi.nr_pokoju =\nPokoje.nr_pokoju\nAND standard='W' AND miejscowosc='krakow'\nGROUP BY Noclegi.nr_pokoju);","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-20.webp","solution_image":null,"topics":null,"page_from":65,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/21","paper_id":"informator-maturalny-informatyka-2015","number":"21","points":null,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 21. Podzielność (0-10)\nW trzech plikach tekstowych liczby1.txt, liczby2.txt i liczby3.txt zapisano\npo 1000 dodatnich liczb binarnych. W każdym pliku liczby zapisano w kolejnych wierszach\npo jednej liczbie w wierszu. W pliku liczby1.txt długość zapisu każdej z liczb jest nie\nwiększa od 12. W pliku liczby2.txt długość zapisu każdej z liczb jest nie większa od 30,\nzaś w pliku liczby3.txt długość zapisu każdej liczby nie przekracza 200.\nDla każdego z plików z danymi wyznacz, ile zawiera on\n- liczb podzielnych przez 2,\n- liczb podzielnych przez 3,\n- liczb podzielnych przez 5.\nPrzykład:\nW pliku z 3 liczbami binarnymi:\n10101\n1100\n1110\nsą 2 liczby podzielne przez 2, 1 liczba podzielna przez 3 i 1 liczba podzielna przez 5.\nDo oceny oddajesz plik(i) o nazwie zawierający\ntu wpisz nazwę pliku/plików\nkomputerową realizację Twoich obliczeń oraz plik tekstowy podzielnosc.txt\nzawierający w dziewięciu kolejnych wierszach dziewięć liczb, po jednej w wierszu. Pierwsze\ntrzy wiersze powinny zawierać liczby liczb z pliku liczby1.txt podzielnych odpowiednio\nprzez 2, 3 i 5. Kolejne trzy wiersze powinny zawierać liczby liczb z pliku liczby2.txt\npodzielnych odpowiednio przez 2, 3 i 5, a ostatnie trzy wiersze liczby liczb z pliku\nliczby3.txt podzielnych odpowiednio przez 2, 3 i 5.\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie\ndecyzji z wykorzystaniem komputera, z zastosowaniem\npodejścia algorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n1) analizuje, modeluje i rozwiązuje sytuacje\nproblemowe z różnych dziedzin,\n11) opisuje podstawowe algorytmy i stosuje algorytmy\nna liczbach całkowitych,\n12) projektuje rozwiązanie problemu (realizację\nalgorytmu) i dobiera odpowiednią strukturę danych,\n15) stosuje zasady programowania strukturalnego\ni modularnego do rozwiązywania problemu,\n23) stosuje podstawowe konstrukcje programistyczne\nw wybranym języku programowania, instrukcje\niteracyjne i warunkowe, rekurencję i procedury,\n72 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\ninstrukcje wejścia i wyjścia, poprawnie tworzy\nstrukturę programu,\n24) dobiera najlepszy algorytm, odpowiednie\nstruktury danych i oprogramowanie do rozwiązania\npostawionego problemu,\n26) ocenia poprawność komputerowego rozwiązania\nna podstawie jego testowania.\nSchemat punktowania\nCzynność\nLiczba\npunktów\nza zadanie\nZa poprawne wyniki dla pliku 1 - 2 punkty.\nZa poprawne wyniki dla pliku 2 - 3 punkty.\nZa poprawne wyniki dla pliku 3 - 4 punkty.\n9\nZadanie 21. Podzielność (0-10) - rozwiązanie\nPliki z danymi, plik programu źródłowego oraz plik podzielnosc.txt zawierający\nodpowiedzi znajdują się w folderze PODZIELNOSC.\nKomentarz\nJedna z metod rozwiązania tego zadania mogła by polegać na przytoczeniu i wykorzystaniu\nwłasności podzielności liczb binarnych. O ile własność podzielności przez 2 jest oczywista\ni powszechnie znana - najmniej znaczącą cyfrą takiej liczby musi być 0 - to już własności\npodzielności liczby binarnych przez inne liczby nie są tak naturalne i znane. Dla każdego\ndzielnika taka własność byłaby pewnie inna i prowadziłaby do algorytmu właściwego tylko\ndla tej własności. Przedstawimy algorytm, który jest jednakowy dla wszystkich dzielników\nz dokładnością do parametru, którym jest właśnie dzielnik.\nJest naturalne rozwiązanie, które pozwala stwierdzić, czy dana, dodatnia liczba binarna b,\njest podzielna całkowicie przez dodatnią (dziesiętną) liczbę całkowitą p. Wystarczy obliczyć\n(dziesiętną) wartość d liczby b i sprawdzić, czy p dzieli całkowicie d. W tym celu\nwykorzystujemy dostępny w większości języków programowania operator mod obliczania\nreszty z dzielenia liczb całkowitych i sprawdzamy, czy d mod p = 0. Do zamiany liczby\nbinarnej b na jej odpowiednik dziesiętny d można zastosować schemat Hornera. Prawda\njakie to proste? Jest tylko jeden mały problem. W kolejnych plikach z danymi są coraz\nwiększe liczby. W pliku liczby1.txt długość zapisu każdej z liczb jest nie większa niż 12\ni do zapisu każdej takiej liczby wystarczają dwa bajty, do zapisu jednej liczby z pliku\nliczby2.txt potrzeba już 4 bajtów, natomiast do zapisu liczby z pliku liczby3.txt\nmoże być potrzebnych 25 bajtów na każdą z nich. Jeśli język programowania użyty do\nrozwiązania pozwala reprezentować tak duże liczby i umożliwia wykonywanie na nich\npodstawowych arytmetycznych - dodawanie, mnożenie i branie modulo - to powyżej opisane\nrozwiązanie jest wystarczające. Często jednak języki programowania nie umożliwiają\nbezpośredniego operowania na bardzo dużych liczbach. Wówczas pozostaje albo\nzaprogramować własną arytmetykę dużych liczb, albo, jak w tym przypadku, skorzystać\nz pewnych własności używanych operacji arytmetycznych. Tutaj skorzystamy z własności\noperacji modulo brania reszty z dzielenia, które to własności pozwalają nam operować tylko\nna resztach z dzielenia przez dzielnik p, a nie na całych liczbach. Każda taka reszta jest nie\nwiększa od p. Dwie podstawowe, wykorzystywane przez nas własności są następujące:\nPrzykładowe zadania z rozwiązaniami 73\nDla dodatnich liczb całkowitych a, b i p mamy:\n(1) (a + b) mod p =( a mod p + b mod p) mod p\n(2) (a*b) mod p = ((a mod p) * (b mod p)) mod p\nTak więc do policzenia reszty z dzielenia przez p dodatniej liczby całkowitej d, której wartość\njest taka sama jak wartość liczby binarnej b, należy po prostu zastosować schemat Hornera\nobliczania wartości d z zapisu b pamiętając, żeby wszystkie obliczenia wykonywać modulo p.\nOto funkcja zapisana w języku programowania C++, która dla liczby binarnej b podanej\nw postaci zero-jedynkowego napisu i dodatniego, całkowitego podzielnika p, oblicza resztę\nz dzielenia wartości dziesiętnej liczby b przez p.\nint Reszta(string b, int p){\nconst char zero = '0';\nint dl = b.length(); //obliczenie długości zapisu liczby b\nint d = 0; // po zakończeniu obliczeń wartością d będzie\n// wartość dziesiętna liczby b modulo p\n// schemat Hornera modulo p\nfor (int j = 0; j < dl; j++){\nint cyfra = b[j] - zero;//odzyskanie kolejnej cyfry liczby b\n// poczynając od najbardziej znaczącej\nd = (d*2 + cyfra) % p; // % jest operatorem modulo w C++\n}\nreturn d;\n}\nNależy zwrócić jeszcze uwagę na drobiazg, jakim jest odzyskiwanie wartości liczbowych\nkolejnych cyfr zapisu liczby b. Liczba b jest zadana jako napis złożony ze znaków ‘0’ i ‘1’.\nKażdy ze znaków ‘0’ lub ‘1’ do obliczeń arytmetycznych należy zamienić odpowiednio na\nliczbę 0 lub 1. Do tego celu najprościej wykorzystać fakt, że cyfry ‘0’, ‘1’, …, ‘9’ są\nkodowane kolejnymi liczbami naturalnymi poczynając od kodu znaku ‘0’. Tak więc, gdy od\nkodu cyfry odejmiemy kod cyfry ‘0’, to otrzymamy liczbę odpowiadającą tej cyfrze.\nW przedstawionym powyżej rozwiązaniu wykorzystujemy ten fakt - wartość wyrażenia b[j]\n- zero jest obliczana z wykorzystaniem kodów cyfr b[j] i zero.\nPoniżej przedstawiamy program Podzielnosc zapisany w języku C++, który oblicza\nżądane wyniki dla jednego pliku. Dla przykładu, żeby uzyskać wyniki dla pliku\nliczby1.txt można program wykonywalny Podzielnosc uruchomić w katalogu\nzawierającym plik liczby1.txt następującą komendą z wiersza poleceń:\nPodzielnosc < liczby1.txt > wyniki1.txt\nWyniki znajdą się w pliku tekstowym wyniki1.txt w tym samym katalogu. Na koniec\ntrzeba pamiętać, żeby wyniki obliczeń dla wszystkich trzech plików umieścić w jednym pliku\ntekstowym podzielnosc.txt zgodnie z opisem w treści zadania.\n//Program Podzielnosc\n#include <iostream>\nusing namespace std;\nint Reszta(string b, int p){\nconst char zero = '0';\n74 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nint dl = b.length(); //obliczenie długości zapisu liczby b\nint d = 0; //po zakończeniu obliczeń wartością d będzie\n// wartość dziesiętna liczby b modulo p\n// schemat Hornera modulo p\nfor (int j = 0; j < dl; j++){\nint cyfra = b[j] - zero; //odzyskanie kolejnej cyfry liczby\nb\n//poczynając od najbardziej znaczącej\nd = (d*2 + cyfra) % p; //% jest operatorem modulo w C++\n}\nreturn d;\n}\nint main(){\nstring liczba;\nconst int n = 1000; //rozmiar danych\nint podz_2 = 0, podz_3 = 0, podz_5 = 0; // podz_p - liczba\nliczb\n// podzielnych przez p\nfor (int i = 0; i < n; i++){\ncin >> liczba; //wczytanie kolejnej liczby;\nif (Reszta(liczba,2) == 0) podz_2++;\nif (Reszta(liczba,3) == 0) podz_3++;\nif (Reszta(liczba,5) == 0) podz_5++;\n}\ncout << \"podzielne przez \" << 2 << \" : \" << podz_2 << \"\\n\";\ncout << \"podzielne przez \" << 3 << \" : \" << podz_3 << \"\\n\";\ncout << \"podzielne przez \" << 5 << \" : \" << podz_5 << \"\\n\";\nreturn 0;\n}\nPrzykładowe zadania z rozwiązaniami 75","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-21.webp","solution_image":null,"topics":null,"page_from":71,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"},{"id":"informator-maturalny-informatyka-2015/zad/22","paper_id":"informator-maturalny-informatyka-2015","number":"22","points":null,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 22. Bloki trójkowe (0-12)\nNiech n będzie dodatnią liczbą całkowitą i niech a1, a2, …, an będzie ciągiem nieujemnych\nliczb całkowitych. Dla pary liczb i, j takich, że 1 ≤\n≤\n≤\n, blokiem b(i,j) nazywamy\npodciąg kolejnych elementów ciągu a z pozycji od i do j, czyli ai, ai+1, …, aj. Długością\nbloku nazywamy liczbę jego elementów. O bloku, którego suma elementów jest podzielna\nprzez 3 mówimy, że jest blokiem trójkowym.\nPrzykład:\nW ciągu 0,0,2,3,2,1,2 najdłuższym blokiem trójkowym jest b(4,6) = 3,2,1.\nW plikach tekstowych bloki1.txt, bloki2.txt i bloki3.txt zapisano ciągi\nodpowiednio 1000, 30000 i 1000000 nieujemnych liczb całkowitych mniejszych od 10 000.\nW każdym pliku liczby zapisano w kolejnych wierszach, po jednej liczbie w każdym wierszu.\nDla każdego pliku z danymi wyznacz długość najdłuższego bloku trójkowego w ciągu\nzapisanym w tym pliku.\nPrzykład:\nDla danych z pliku z 7 liczbami:\n0\n0\n2\n3\n2\n1\n2\ndługość najdłuższego bloku trójkowego wynosi 3.\nDo oceny oddajesz plik(i) o nazwie(ach)\ntu wpisz nazwę/nazwy pliku/plików\nzawierający(e) komputerową realizację Twoich obliczeń oraz pliki tekstowe wyniki1.txt,\nwyniki2.txt, wyniki3.txt, gdzie każdy z nich zawiera liczbę równą długości\nnajdłuższego bloku trójkowego w ciągach zapisanych odpowiednio w plikach bloki1.txt,\nbloki2.txt i bloki3.txt.\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie\ndecyzji z wykorzystaniem komputera, z zastosowaniem\npodejścia algorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n1) analizuje, modeluje i rozwiązuje sytuacje\nproblemowe z różnych dziedzin,\n11) opisuje podstawowe algorytmy i stosuje algorytmy\nna liczbach całkowitych,\n14) dobiera odpowiednie struktury danych\ndo realizacji algorytmu, w tym struktury dynamiczne,\n15) stosuje zasady programowania strukturalnego\ni modularnego do rozwiązywania problemu,\n76 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\n23) stosuje podstawowe konstrukcje programistyczne\nw wybranym języku programowania, instrukcje\niteracyjne i warunkowe, rekurencję i procedury,\ninstrukcje wejścia i wyjścia, poprawnie tworzy\nstrukturę programu,\n24) dobiera najlepszy algorytm, odpowiednie\nstruktury danych i oprogramowanie do rozwiązania\npostawionego problemu,\n26) ocenia poprawność komputerowego rozwiązania\nna podstawie jego testowania.\nSchemat punktowania\nCzynność\nLiczba\npunktów\nza zadanie\nZa poprawne wyniki dla pliku 1 - 3 punkty.\nZa poprawne wyniki dla pliku 2 - 4 punkty.\nZa poprawne wyniki dla pliku 3 - 5 punktów.\n12\nZadanie 22. Bloki trójkowe (0-12) - rozwiązanie\nPliki z danymi, plik programu źródłowego oraz pliki wynikowe zawierające odpowiedzi\nznajdują się w folderze BLOKI TROJKOWE.\nKomentarz\nUważny czytelnik szybko zauważy, że proste rozwiązanie jest ukryte w treści zadania.\nWystarczy przejrzeć wszystkie bloki, dla każdego bloku zsumować jego elementy, sprawdzić,\nczy otrzymana suma jest podzielna przez 3 i spośród wszystkich bloków spełniających ten\nwarunek wybrać najdłuższy. Oto fragment algorytmu zapisany w pseudo-języku C++, będący\nrealizacją tego prostego pomysłu:\nnajdluzszy = 0; // długość najdłuższego z dotychczas\n//przejrzanych bloków trójkowych\nfor (i = 1; i <= n; i++)\nfor (j = i; j <= n; j++){\n// obliczamy sumę elementów w bloku b(i,j)\nsuma = 0;\nfor (k = i; k <= j; k++)\nsuma = suma + ak; // (*)\n// sprawdzamy, czy suma jest podzielna przez 3, czyli\n// czy reszta z dzielenia suma przez 3 daje 0\nif (suma % 3 == 0){\n// jeśli suma jest podzielna przez 3 i blok b(i,j)\n// jest dłuższy od dotychczas najdłuższego bloku\n// trójkowego, to zapamiętujemy jego długość\ndl = j - i + 1;\nif (dl >= najdluzszy)\nnajdluzszy = dl;\n}\n}\n// najdluzszy jest długością najdłuższego bloku trójkowego w\n// ciągu a\nPrzykładowe zadania z rozwiązaniami 77\nJedyną dobrą cechę powyższego rozwiązania jest jego prostota i to, że w ogóle mamy\njakiekolwiek rozwiązanie. Poza tym przedstawione rozwiązanie ma same wady.\nPo pierwsze musimy pamiętać o tym, żeby arytmetyka języka programowania, którego\nużywamy, umożliwiała operowanie na liczbach pojawiających się w obliczeniach.\nZauważmy, że największa liczba jaka mogłaby się w obliczeniach dla opisanych danych\nwynosi 1 000 000 * 9 999 = 9 999 000 000. W języku programowania C++ największa\nliczba typu int ze znakiem ma wartość 2 147 483 647, a bez znaku 4 294 967 295. Tak jest,\ngdy typ int jest 32-bitowy. Dla 16-bitowego typu int odpowiednie wielkości są znacząco\nmniejsze. Oczywiście można by użyć typów pozwalających na operowanie na dużo większych\nliczbach, ale za chwilę okaże się, że nie jest to konieczne.\nDrugą wadą powyższego rozwiązania jest to, że musimy wielokrotnie przeglądać te same\nelementu ciągu, a co za tym idzie najlepiej byłoby cały ciąg wczytać do tablicy. To\nw przypadku największego pliku wymaga tablicy o 1 000 000 elementów. W przypadku\njęzyka programowania C++ i 32-bitowego typu int wymaga to 4 000 000 bajtów, czyli około\n4 gigabajtów pamięci. Nie jest to może dużo dla współczesnych komputerów, ale co gdyby\ndane liczyły nie milion, a miliard, bilion elementów?\nTrzecią wadą, chyba najistotniejszą, jest powolność zaproponowanego algorytmu.\nZastanówmy się, ile łącznie dodawań wykonamy w kroku (*). Nietrudno zauważyć, że tych\ndodawań jest tyle, ile wynosi łączna suma długości wszystkich przedziałów. Tę wielkość\nłatwo oszacować z dołu. Przedziałów o długości co najmniej n/3 jest co najmniej (n/3)2. A\nzatem łączna suma wszystkich przedziałów wynosi co najmniej (n/3)3. To dla n = 1 000 000\ndaje więcej niż 3*1016. Komputer wykonujący 109 dodawań na sekundę spędzałby na\nrozwiązywaniu naszego zadania więcej niż 3*107 sekund, a to jest więcej niż 8 tysięcy\ngodzin. To jest trochę za długo jak na czas przeznaczony na rozwiązywanie zadań\nmaturalnych!\nJeden ze sposobów poszukiwania lepszych, szybszych algorytmów polega na przyjrzeniu się\nrozwiązaniu, które już mamy w ręku i zastanowieniu się, czy nie prowadzi ono do\nwykonywania wielu zbędnych operacji. Tak jest właśnie w tym przypadku. Zauważmy, że dla\nkażdych dwóch bloków b(i,j-1) i b(i,j), różniących się tylko jednym elementem aj, liczymy\nniezależnie dwie sumy ai+ ai+1 + + aj-1 oraz ai+ ai+1 + + aj, a przecież, żeby dostać\ndrugą sumę wystarczy do pierwszej dodać tylko aj. Jaki zysk! Zamiast j-i+1 dodawań\nwykonujemy tylko jedno. Ten pomysł pozwala nam natychmiast zaproponować następujący\nalgorytm:\nnajdluzszy = 0; // długość najdłuższego z dotychczas\n//przejrzanych bloków trójkowych\nfor (i = 1; i <= n; i++){\n//liczymy sumy elementów w blokach o początkach na pozycji i\n//wartością suma będzie suma elementów ostatniego\n//przetworzonego bloku; inicjalnie suma == 0\nsuma = 0;\nfor (j = i; j <= n; j++){\n// obliczamy sumę elementów w bloku b(i,j)\n// suma jest równa sumie elementów w bloku b(i,j-1)\n// plus aj\nsuma = suma + aj; // (*)\n78 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\n// sprawdzamy, czy suma jest podzielna przez 3, czyli\n// czy reszta z dzielenia suma przez 3 daje 0\nif (suma % 3 == 0){\n// jeśli jest podzielna przez 3 i blok b(i,j)\n// jest dłuższy od dotychczas najdłuższego bloku\n// trójkowego, to zapamiętujemy jego długość\ndl = j - i + 1;\nif (dl >= najdluzszy)\nnajdluzszy = dl;\n}\n}\n// najdluzszy jest długością najdłuższego bloku trójkowego w\n// ciągu a\nIle tym razem wykonujemy dodawań (*)? Nietrudno zauważyć, że tyle, ile jest bloków. Żeby\npoliczyć sumę elementów w bloku b(i,j), wykonujemy tylko jedno dodawanie - do sumy\nelementów z bloku b(i,j-1) dodajemy aj. Ile jest wszystkich bloków? Bloków o początku na\npozycji 1 jest n, bloków o początku na pozycji 2 jest n-1, bloków o początku na pozycji 3 jest\nn-2, itd. Tak więc bloków o początku na pozycji i jest n-i+1. Wszystkich bloków jest\nn + n-1 + + 1 = n(n-1)/2. Dla n = 1 000 000 ta wartość wynosi 499 999 500 000. A zatem\nkomputer wykonujący 109 dodawań na sekundę wykonałby nasze zadanie w około 500\nsekund, czyli w około 7 minut. Natomiast dla ciągu o długości 30 000 odpowiedź\ndostalibyśmy natychmiast.\nW przypadku rozpatrywanego zadania myślenie algorytmiczne może dać jeszcze lepsze\nefekty. Najpierw pozbądźmy się problemu dużych liczb. To łatwe. W wierszu (*) wystarczy\nsumować modulo 3. Inaczej mówiąc, w zmiennej suma zamiast sumy elementów pamiętamy\nresztę z dzielenia tej sumy przy dzieleniu przez 3. Więcej o wykonywaniu operacji\narytmetycznych modulo napisaliśmy w komentarzu do zadania Podzielność. Przy tym\npodejściu wiersz (*) miałby postać:\nsuma = (suma + aj) % 3;// (*)\nNatomiast instrukcja warunkowa if (suma % 3 == 0)przybrałaby postać:\nif (suma == 0)\nW ten sposób poradziliśmy sobie z problemem dużych liczb, ale czasowa złożoność\nobliczeniowa naszego algorytmu pozostała bez zmian. Następujące spostrzeżenia pozwolą\nprzyśpieszyć poszukiwanie najdłuższego bloku trójkowego. Dla każdego k = 1, 2, …, n\noznaczmy przez sk sumę pierwszych k elementów w ciągu a. Innymi słowy sk jest sumą\nelementów w bloku b(1,k). Dla wygody przyjmijmy, że mamy też element a0 = 0 i w naturalny\nsposób weźmy s0 = 0. Zauważmy teraz, że suma elementów w bloku b(i,j),\n1 ≤ i≤ j ≤n , jest równa sj - si-1. Dla naszych celów wartości s wystarczy liczyć modulo 3.\nW takim przypadku wartością sk może być tylko 0, 1 lub 2. Teraz najważniejsze:\nBlok b(i,j) jest blokiem trójkowym wtedy i tylko, gdy sj oraz si-1 mają taką samą wartość 0, 1,\nlub 2.\nPrzykładowe zadania z rozwiązaniami 79\nPowyższe spostrzeżenie daje bardzo proste rozwiązanie naszego zadania. Dla każdej\nwartości w = 0, 1, 2 poszukujemy pierwszej i ostatniej pozycji, dla której wartości sum s są\ntakie same. Najbardziej odległe pozycje wyznaczają długość najdłuższego bloku trójkowego.\nPozostaje jeszcze pytanie, czy zawsze taki blok istnieje. Osobom o zainteresowaniach\nbardziej matematycznych proponujemy wykazanie, że w każdym ciągu o długości co najmniej\n3 taki blok musi istnieć. Dla naszych potrzeb przyjmijmy, że blok długości 0 jest blokiem\ntrójkowym. Wówczas, jeśli wynikiem działania naszego algorytmu jest 0, oznacza to, że\nżaden blok w danym ciągu nie jest trójkowy.\nPoniżej przedstawiamy program napisany w języku C++, który konkretyzuje opisane\npowyżej idee.\n#include <iostream>\n#include <algorithm>\nusing namespace std;\nint najdluzszy_blok(){\nint poczatki = {0,-1,-1};\n//poczatki[w] - pierwsza pozycja, dla której suma s jest\n//równa w\n// -1 oznacza, że takiej pozycjijeszcze nie\n// znaleziono\nint suma_mod_3 = 0;\nint liczba_wczytanych = 0;\nint element;\nint najdluzszy;\nwhile (cin>> element){\nliczba_wczytanych++;\nsuma_mod_3 = (suma_mod_3 + element) % 3; //(*)\nif (poczatki[suma_mod_3] == -1)\npoczatki[suma_mod_3] = liczba_wczytanych;\nelse\nnajdluzszy = max(najdluzszy, liczba_wczytanych\n- poczatki[suma_mod_3])\n}\nreturn najdluzszy;\n}\nint main(){\ncout << \"Dl bloku: \" << najdluzszy_blok() << endl;\nreturn 0;\n}\nNa koniec zauważmy, że w tym algorytmie liczba dodawań (*) wynosi tylko n i na dodatek\nnie musieliśmy najpierw wczytać całego ciągu do tablicy.\n80 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nOpinia KRASP o informatorach maturalnych od 2015 roku 81\nOpinia Konferencji Rektorów Akademickich Szkół Polskich\no informatorach maturalnych od 2015 roku\nKonferencja Rektorów Akademickich Szkół Polskich z wielką satysfakcją odnotowuje\nkonsekwentne dążenie systemu oświaty do poprawy jakości wykształcenia absolwentów\nszkół średnich. Konferencja z uwagą obserwuje kolejne działania Ministerstwa Edukacji\nNarodowej w tym zakresie, zdając sobie sprawę, że od skuteczności tych działań w dużym\nstopniu zależą także efekty kształcenia osiągane w systemie szkolnictwa wyższego.\nW szczególności dotyczy to kwestii właściwego przygotowania młodzieży do studiów\nrealizowanych z uwzględnieniem nowych form prowadzenia procesu kształcenia.\nPodobnie jak w przeszłości, Konferencja konsekwentnie wspiera wszystkie działania\nzmierzające do tego, by na uczelnie trafiali coraz lepiej przygotowani kandydaci na studia.\nTemu celowi służyła w szczególności pozytywna opinia Komisji Edukacji KRASP z 2008 roku\nw sprawie nowej podstawy programowej oraz uchwała Zgromadzenia Plenarnego KRASP\nz dn. 6 maja 2011 r. w sprawie nowych zasad egzaminu maturalnego.\nZ satysfakcją dostrzegamy, że ważne zmiany w egzaminie maturalnym, postulowane\nw cytowanej wyżej uchwale zostały praktycznie wdrożone przez MEN poprzez zmianę\nodpowiednich rozporządzeń.\nPrzedłożone do zaopiniowania informatory o egzaminach maturalnych opisują formę\nposzczególnych egzaminów maturalnych, przeprowadzanych na podstawie wymagań\nokreślonych w nowej podstawie programowej, a także ilustrują te wymagania wieloma\nprzykładowymi zadaniami egzaminacyjnymi.\nPo zapoznaniu się z przedłożonymi materiałami, KRASP z satysfakcją odnotowuje:\nw zakresie języka polskiego:\nwzmocnienie roli umiejętności komunikacyjnych poprzez odejście od prezentacji na\negzaminie ustnym i zastąpienie jej egzaminem ustnym, na którym zdający będzie musiał\nad hoc przygotować samodzielną wypowiedź argumentacyjną,\nrezygnację z klucza w ocenianiu wypowiedzi pisemnych,\nzwiększenie roli tekstów teoretycznoliterackich i historycznoliterackich na maturze\nrozszerzonej;\nw zakresie historii:\nkompleksowe sprawdzanie umiejętności z zakresu chronologii historycznej, analizy\ni interpretacji historycznej oraz tworzenia narracji historycznej za pomocą rozbudowanej\nwypowiedzi pisemnej na jeden z zaproponowanych tematów, łącznie pokrywających\nwszystkie epoki oraz obszary historii;\nw zakresie wiedzy o społeczeństwie:\npołożenie silniejszego akcentu na sprawdzanie umiejętności złożonych (interpretowanie\ninformacji, dostrzeganie związków przyczynowo-skutkowych) w oparciu o poszerzony\nzasób materiałów źródłowych: teksty (prawne, naukowe, publicystyczne), materiały\nstatystyczne, mapy, rysunki itp.\n82 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nw zakresie matematyki:\nistotne zwiększenie wymagań na poziomie rozszerzonym poprzez włączenie zadań\nz rachunku różniczkowego i pojęć zaawansowanej matematyki,\nistotne poszerzenie wymagań z zakresu kombinatoryki oraz teorii prawdopodobieństwa;\nw zakresie biologii oraz chemii:\nzwiększenie znaczenia umiejętności wyjaśniania procesów i zjawisk biologicznych\ni chemicznych,\nmierzenie\numiejętności\nanalizy\neksperymentu\nsposobu\njego\nplanowania,\nprzeprowadzania, stawianych hipotez i wniosków formułowanych na podstawie\ndołączonych wyników;\nw zakresie fizyki:\nzwiększenie znaczenia rozumienia istoty zjawisk oraz tworzenie formuł matematycznych\nłączących kilka zjawisk,\nmierzenie umiejętności planowania i opisu wykonania prostych doświadczeń, a także\numiejętności analizy wyników wraz z uwzględnieniem niepewności pomiarowych;\nw zakresie geografii:\nuwzględnienie interdyscyplinarności tej nauki poprzez sprawdzanie umiejętności\nintegrowania wiedzy z nauk przyrodniczych do analizy zjawisk i procesów zachodzących\nw środowisku geograficznym,\nznaczne wzbogacenie zasobu materiałów źródłowych (mapy, wykresy, tabele\nstatystyczne, teksty źródłowe, barwne zdjęcia, w tym lotnicze i satelitarne), także\nw postaci barwnej.\nKonferencja Rektorów Akademickich Szkół Polskich z zadowoleniem przyjmuje też\ninformację o wprowadzeniu na świadectwach maturalnych od 2015 roku dodatkowej formy\nprzedstawiania wyniku uzyskanego przez zdającego w postaci jego pozycji na skali\ncentylowej, tj. określenie, jaki odsetek zdających uzyskał taki sam lub słabszy wynik od\nposiadacza świadectwa. Wprowadzenie tej dodatkowej skali uwolni szkoły wyższe od\ndotychczasowego dylematu odnoszenia do siebie surowych wyników kandydatów na studia\nrekrutowanych na podstawie wyników egzaminów maturalnych o istotnie różnym poziomie\ntrudności - rekrutacja stanie się prostsza i bardziej obiektywna.\nReasumując, w opinii Konferencji Rektorów Akademickich Szkół Polskich zaprezentowana\nw przedłożonych informatorach forma matury istotnie przyczyni się do tego, że młodzież\nprzekraczająca progi uczelni będzie lepiej przygotowana do podjęcia studiów wyższych.\n5 lipca 2013 r.\nPrzewodniczący KRASP\nprof. zw. dr hab. Wiesław Banyś","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-22.webp","solution_image":null,"topics":null,"page_from":75,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny"}]}