{"id":"informatyka-2016-maj-matura-rozszerzona/zad/2.2","paper_id":"informatyka-2016-maj-matura-rozszerzona","number":"2.2","points":1,"ptype":"open","subject":"informatyka","category":"matura","year":2016,"month":"maj","level":"rozszerzona","text":"Zadanie 2.2. (0-1)\nPodaj przykład siedmioelementowej tablicy A, dla której funkcja przestaw(A) dokładnie\n5 razy wykona zamień.\nMiejsce na obliczenia.\nOdp. A =","answer":null,"answer_text":"Zadanie 2.2. (0-1)\nIII. Rozwiązywanie problemów i\npodejmowanie decyzji […], z zastosowaniem\npodejścia algorytmicznego.\n5. Rozwiązywanie problemów i podejmowanie\ndecyzji […], stosowanie podejścia algorytmicznego.\nZdający:\n2) stosuje podejście algorytmiczne do rozwiązywania\nproblemu;\n7) opracowuje i przeprowadza wszystkie etapy\nprowadzące do otrzymania poprawnego rozwiązania\nproblemu: od sformułowania specyfikacji problemu\npo testowanie rozwiązania;\n11) opisuje podstawowe algorytmy i stosuje: […]\nb) algorytmy wyszukiwania i porządkowania\n(sortowania);\n17) Zdający ocenia zgodność algorytmu ze\nspecyfikacją problemu.\nSchemat punktowania\n1 p. - za poprawną odpowiedź.\n0 p. - za podanie odpowiedzi z tablicą większą niż 7-elementową lub odpowiedź błędną albo brak\nodpowiedzi.\nPrzykładowa odpowiedź\n[8,1,2,3,4,5,9]\nUwaga\nPoprawną odpowiedzią jest podanie dowolnej siedmioelementowej tablicy, w której dokładnie pięć\nelementów z pozycji 2…7 jest mniejszych od elementu pierwszego.","solution":"## Poprawna odpowiedź\n\n**A = [8, 1, 2, 3, 4, 5, 9]**\n\n## Sposób 1 - analiza warunku zamiany\n\n**Kiedy `zamień` jest wykonywany?** Tylko gdy `A[k] < klucz`, gdzie `klucz = A[1]`.\n\nDla tablicy 7-elementowej iterujemy k od 2 do 7 (6 razy). Aby `zamień` wykonał się **dokładnie 5 razy**, dokładnie 5 z elementów A[2 7] musi być **mniejszych od A[1]**.\n\n**Konstrukcja przykładu:**\n1. Wybierz dużą wartość jako klucz: np. **A[1] = 8**.\n2. Wstaw 5 wartości MNIEJSZYCH od 8 na pozycjach 2-7: np. 1, 2, 3, 4, 5.\n3. Wstaw 1 wartość WIĘKSZĄ lub równą 8 na jednej z pozycji 2-7: np. **A[7] = 9**.\n\n**A = [8, 1, 2, 3, 4, 5, 9]** → 5 elementów (1, 2, 3, 4, 5) < klucza 8; jeden (9) ≥ 8.\n\n## Sposób 2 - weryfikacja symulacją\n\n**Stan:** A = [8, 1, 2, 3, 4, 5, 9], klucz = 8, w = 1.\n\n| k | A[k] | < 8? | zamień(A[w], A[k]) | A po | w po |\n| 2 | 1 | TAK | zamień(A[1], A[2]) | [1,8,2,3,4,5,9] | 2 |\n| 3 | 2 | TAK | zamień(A[2], A[3]) | [1,2,8,3,4,5,9] | 3 |\n| 4 | 3 | TAK | zamień(A[3], A[4]) | [1,2,3,8,4,5,9] | 4 |\n| 5 | 4 | TAK | zamień(A[4], A[5]) | [1,2,3,4,8,5,9] | 5 |\n| 6 | 5 | TAK | zamień(A[5], A[6]) | [1,2,3,4,5,8,9] | 6 |\n| 7 | 9 | NIE | - | [1,2,3,4,5,8,9] | 6 |\n\n**Liczba zamian: 5** ✓\n\n## Sposób 3 - inne poprawne przykłady\n\nKażda tablica `[K, a, b, c, d, e, X]` gdzie:\n- `K` to klucz (dowolna wartość),\n- `a, b, c, d, e` to 5 wartości mniejszych od K (mogą być takie same),\n- `X` to 1 wartość ≥ K,\n- pozycje 5 mniejszych i 1 większego mogą być w dowolnej kolejności wśród A[2 7].\n\n**Inne poprawne odpowiedzi:**\n- A = [10, 1, 1, 1, 1, 1, 10]\n- A = [5, 3, 2, 9, 1, 4, 0] → wartości < 5: 3, 2, 1, 4, 0 (5 sztuk); ≥ 5: 9 (jeden)\n- A = [100, 99, 50, 1, 200, 25, 30]\n\n```python\ndef policz_zamiany(A):\nklucz = A[0]\nzamiany = 0\nfor k in range(1, len(A)):\nif A[k] < klucz:\nzamiany += 1\nreturn zamiany\n\nprint(policz_zamiany([8, 1, 2, 3, 4, 5, 9])) # 5\nprint(policz_zamiany([10, 1, 1, 1, 1, 1, 10])) # 5\n\n## Reference informatyczny - liczba operacji w algorytmach partycji\n\n> Reference - Analiza operacji partycji:\n> - Liczba wywołań `zamień` w `przestaw` = liczba elementów A[2 n] mniejszych od A[1].\n> - **Maksimum**: gdy wszystkie n-1 elementów są < klucza → n-1 zamian.\n> - **Minimum**: gdy żaden element nie jest < klucza → 0 zamian (tablica posortowana niemalejąco, klucz na pierwszej pozycji).\n> - Tutaj dokładnie 5 z 6 elementów po prawej musi być mniejszych.\n\n## Schemat oceniania CKE\n\n> Klucz CKE (zadanie 2.2, max 1 pkt):\n> - **1 pkt** - dowolny poprawny przykład (klucz + 5 mniejszych + 1 ≥ klucz wśród A[2 7])\n> - **0 pkt** - tablica większa/mniejsza niż 7 elementów ALBO odpowiedź błędna ALBO brak\n\n## Typowe pułapki\n\n- **Tablica nie 7-elementowa** - punkt nie zostanie przyznany. Klucz CKE wyraźnie: \"7-elementowej tablicy\".\n- **6 mniejszych** zamiast 5 - wynikiem byłoby 6 zamian, nie 5.\n- **4 mniejsze** - wynikiem byłoby 4 zamiany.\n- **Pomylenie ostrej nierówności** - wartość RÓWNA kluczowi NIE wywoła zamian (warunek to `<`, nie `≤`).\n- **Klucz na innej pozycji niż A[1]** - definicja jasno mówi `klucz ← A[1]`, więc klucz to ZAWSZE pierwszy element.\n\n## Złożoność obliczeniowa\n\n- Konstrukcja przykładu: O(1).\n- Weryfikacja przykładu (symulacja): O(n) = O(7) = O(1).","image":"img/informatyka-2016-maj-matura-rozszerzona/zad-2.2.webp","solution_image":null,"topics":null,"page_from":5,"source":"ocr","answer_source":null,"answer_text_source":"ocr","solution_source":"maturazai","text_source":"ocr","source_label":"Informatyka · Matura · maj 2016 (rozszerzona)","subject_label":"Informatyka","category_label":"Matura","text_html":"<p>Zadanie 2.2. (0-1)<br>Podaj przykład siedmioelementowej tablicy A, dla której funkcja przestaw(A) dokładnie<br>5 razy wykona zamień.<br>Miejsce na obliczenia.<br>Odp. A =</p>","answer_text_html":"<p>Zadanie 2.2. (0-1)<br>III. Rozwiązywanie problemów i<br>podejmowanie decyzji […], z zastosowaniem<br>podejścia algorytmicznego.</p>\n<ol><li>Rozwiązywanie problemów i podejmowanie</li></ol>\n<p>decyzji […], stosowanie podejścia algorytmicznego.<br>Zdający:</p>\n<ol><li>stosuje podejście algorytmiczne do rozwiązywania</li></ol>\n<p>problemu;</p>\n<ol><li>opracowuje i przeprowadza wszystkie etapy</li></ol>\n<p>prowadzące do otrzymania poprawnego rozwiązania<br>problemu: od sformułowania specyfikacji problemu<br>po testowanie rozwiązania;</p>\n<ol><li>opisuje podstawowe algorytmy i stosuje: […]</li></ol>\n<p>b) algorytmy wyszukiwania i porządkowania<br>(sortowania);</p>\n<ol><li>Zdający ocenia zgodność algorytmu ze</li></ol>\n<p>specyfikacją problemu.<br>Schemat punktowania<br>1 p. - za poprawną odpowiedź.<br>0 p. - za podanie odpowiedzi z tablicą większą niż 7-elementową lub odpowiedź błędną albo brak<br>odpowiedzi.<br>Przykładowa odpowiedź<br>[8,1,2,3,4,5,9]<br>Uwaga<br>Poprawną odpowiedzią jest podanie dowolnej siedmioelementowej tablicy, w której dokładnie pięć<br>elementów z pozycji 2…7 jest mniejszych od elementu pierwszego.</p>","solutions":[{"source":"maturazai","label":"maturazai.pl (AI)","kind":"text","html":"<h4>Poprawna odpowiedź</h4>\n<p><strong>A = [8, 1, 2, 3, 4, 5, 9]</strong></p>\n<h4>Sposób 1 - analiza warunku zamiany</h4>\n<p><strong>Kiedy <code>zamień</code> jest wykonywany?</strong> Tylko gdy <code>A[k] &lt; klucz</code>, gdzie <code>klucz = A[1]</code>.</p>\n<p>Dla tablicy 7-elementowej iterujemy k od 2 do 7 (6 razy). Aby <code>zamień</code> wykonał się <strong>dokładnie 5 razy</strong>, dokładnie 5 z elementów A[2 7] musi być <strong>mniejszych od A[1]</strong>.</p>\n<p><strong>Konstrukcja przykładu:</strong></p>\n<ol><li>Wybierz dużą wartość jako klucz: np. <strong>A[1] = 8</strong>.</li><li>Wstaw 5 wartości MNIEJSZYCH od 8 na pozycjach 2-7: np. 1, 2, 3, 4, 5.</li><li>Wstaw 1 wartość WIĘKSZĄ lub równą 8 na jednej z pozycji 2-7: np. <strong>A[7] = 9</strong>.</li></ol>\n<p><strong>A = [8, 1, 2, 3, 4, 5, 9]</strong> → 5 elementów (1, 2, 3, 4, 5) &lt; klucza 8; jeden (9) ≥ 8.</p>\n<h4>Sposób 2 - weryfikacja symulacją</h4>\n<p><strong>Stan:</strong> A = [8, 1, 2, 3, 4, 5, 9], klucz = 8, w = 1.</p>\n<p>| k | A[k] | &lt; 8? | zamień(A[w], A[k]) | A po | w po |<br>| 2 | 1 | TAK | zamień(A[1], A[2]) | [1,8,2,3,4,5,9] | 2 |<br>| 3 | 2 | TAK | zamień(A[2], A[3]) | [1,2,8,3,4,5,9] | 3 |<br>| 4 | 3 | TAK | zamień(A[3], A[4]) | [1,2,3,8,4,5,9] | 4 |<br>| 5 | 4 | TAK | zamień(A[4], A[5]) | [1,2,3,4,8,5,9] | 5 |<br>| 6 | 5 | TAK | zamień(A[5], A[6]) | [1,2,3,4,5,8,9] | 6 |<br>| 7 | 9 | NIE | - | [1,2,3,4,5,8,9] | 6 |</p>\n<p><strong>Liczba zamian: 5</strong> ✓</p>\n<h4>Sposób 3 - inne poprawne przykłady</h4>\n<p>Każda tablica <code>[K, a, b, c, d, e, X]</code> gdzie:</p>\n<ul><li><code>K</code> to klucz (dowolna wartość),</li><li><code>a, b, c, d, e</code> to 5 wartości mniejszych od K (mogą być takie same),</li><li><code>X</code> to 1 wartość ≥ K,</li><li>pozycje 5 mniejszych i 1 większego mogą być w dowolnej kolejności wśród A[2 7].</li></ul>\n<p><strong>Inne poprawne odpowiedzi:</strong></p>\n<ul><li>A = [10, 1, 1, 1, 1, 1, 10]</li><li>A = [5, 3, 2, 9, 1, 4, 0] → wartości &lt; 5: 3, 2, 1, 4, 0 (5 sztuk); ≥ 5: 9 (jeden)</li><li>A = [100, 99, 50, 1, 200, 25, 30]</li></ul>\n<p>```python<br>def policz_zamiany(A):<br>klucz = A[0]<br>zamiany = 0<br>for k in range(1, len(A)):<br>if A[k] &lt; klucz:<br>zamiany += 1<br>return zamiany</p>\n<p>print(policz_zamiany([8, 1, 2, 3, 4, 5, 9])) # 5<br>print(policz_zamiany([10, 1, 1, 1, 1, 1, 10])) # 5</p>\n<h4>Reference informatyczny - liczba operacji w algorytmach partycji</h4>\n<blockquote>Reference - Analiza operacji partycji:<br>- Liczba wywołań <code>zamień</code> w <code>przestaw</code> = liczba elementów A[2 n] mniejszych od A[1].<br>- <strong>Maksimum</strong>: gdy wszystkie n-1 elementów są &lt; klucza → n-1 zamian.<br>- <strong>Minimum</strong>: gdy żaden element nie jest &lt; klucza → 0 zamian (tablica posortowana niemalejąco, klucz na pierwszej pozycji).<br>- Tutaj dokładnie 5 z 6 elementów po prawej musi być mniejszych.</blockquote>\n<h4>Schemat oceniania CKE</h4>\n<blockquote>Klucz CKE (zadanie 2.2, max 1 pkt):<br>- <strong>1 pkt</strong> - dowolny poprawny przykład (klucz + 5 mniejszych + 1 ≥ klucz wśród A[2 7])<br>- <strong>0 pkt</strong> - tablica większa/mniejsza niż 7 elementów ALBO odpowiedź błędna ALBO brak</blockquote>\n<h4>Typowe pułapki</h4>\n<ul><li><strong>Tablica nie 7-elementowa</strong> - punkt nie zostanie przyznany. Klucz CKE wyraźnie: &quot;7-elementowej tablicy&quot;.</li><li><strong>6 mniejszych</strong> zamiast 5 - wynikiem byłoby 6 zamian, nie 5.</li><li><strong>4 mniejsze</strong> - wynikiem byłoby 4 zamiany.</li><li><strong>Pomylenie ostrej nierówności</strong> - wartość RÓWNA kluczowi NIE wywoła zamian (warunek to <code>&lt;</code>, nie <code>≤</code>).</li><li><strong>Klucz na innej pozycji niż A[1]</strong> - definicja jasno mówi <code>klucz ← A[1]</code>, więc klucz to ZAWSZE pierwszy element.</li></ul>\n<h4>Złożoność obliczeniowa</h4>\n<ul><li>Konstrukcja przykładu: O(1).</li><li>Weryfikacja przykładu (symulacja): O(n) = O(7) = O(1).</li></ul>"}]}