{"id":"informatyka-2026-maj-matura-rozszerzona/zad/7","paper_id":"informatyka-2026-maj-matura-rozszerzona","number":"7","points":9,"ptype":"open","subject":"informatyka","category":"matura","year":2026,"month":"maj","level":"rozszerzona","text":"Zadanie 7. Staw\nPan Iksiński stał się właścicielem stawu o powierzchni całkowitej 10 000 m2. Pierwszą\nrośliną, którą postanowił w nim umieścić, jest rzęsa wodna, która osiąga wysoką\nskuteczność rozmnażania wegetatywnego, tzn. przy odpowiedniej temperaturze i wielkości\nopadów potrafi znacząco zwiększyć rozmiar zajmowanej powierzchni.\nW pliku staw.txt są zawarte następujące informacje, rozdzielone znakami tabulacji:\nData\n- data pomiaru\nTemp\n- temperatura w danym dniu w ◦C, zaokrąglona do jednego miejsca po\nprzecinku\nOpady\n- wielkość opadu w mm, zaokrąglona do liczby całkowitej.\nPrzykład:\nData\nTemp\nOpady\n2022-01-01\n9,8\n5\n2022-01-02\n8,1\n1\n2022-01-03\n9\n2\n2022-01-04\n7,3\n1\n2022-01-05\n5,7\n5\nPlik zawiera dane z całego 2022 roku.\nZ wykorzystaniem danych zawartych w pliku oraz dostępnych narzędzi informatycznych\nwykonaj podane zadania. Wyniki zapisz w pliku tekstowym wyniki7.txt. Odpowiedź do\nkażdego zadania poprzedź numerem tego zadania.","answer":null,"answer_text":"0\n0","solution":"Odpowiedź: **7.1.** Średnie miesięczne temperatury: | Miesiąc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |---|---|---|---|---|---|---|---|---|---|---|---|---| | Śr. temp. (°C) | 1,1 | 4,1 | 4,1 | 7,4 | 15,9 | 20,5 | 20,4 | 21,1 | 13,7 | 12,5 | 5,2 | 1,6 | **7.2.** Najdłuższy ciąg dni bez opadów w miesiącu: | Miesiąc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |---|---|---|---|---|---|---|---|---|---|---|---|---| | Długość | 11 | 7 | 20 | 8 | 20 | 11 | 10 | 8 | 14 | 15 | 10 | 10 | **7.3.** **167**, czyli **14 sierpnia 2023**. **7.4.** **94** amury.\n\nTreść zadania (CKE)\n\n7.2 — najdłuższy ciąg zer w miesiącu\n\nKlasyczne liczenie serii: przechodzimy dni po kolei, zwiększamy licznik przy opadach = 0, zerujemy go przy opadach > 0, po drodze zapamiętujemy maksimum. Licznik resetujemy na granicy miesiąca, bo pytanie dotyczy ciągu w tym miesiącu.\n\n```python\nfrom collections import defaultdict\n\nnajd = defaultdict(int)\nbiez = defaultdict(int)\nfor wiersz in open('staw.txt', encoding='utf-8').readlines()[1:]:\ndata, temp, opady = wiersz.split('\\t')\nm = int(data.split('-')[1])\nif int(opady) == 0:\nbiez[m] += 1\nnajd[m] = max(najd[m], biez[m])\nelse:\nbiez[m] = 0\n```\n\n7.3 i 7.4 — model symulacji\n\nDla każdego dnia, w tej kolejności:\n\n1. noc — powierzchnia rośnie: p = p * 1.0175\n2. dzień — amury zjadają: p = p − liczba_amurow * 0.25\n3. piątek — odławianie: p = p − 60\n4. rano następnego dnia — pomiar\n\n```python\nfrom datetime import date, timedelta\n\ndef symuluj(amury):\np = 2000.0\nd = date(2023, 3, 1)\nmaks = p\nfor dzien in range(1, 185):\np *= 1.0175\np -= amury * 0.25\nif d.weekday() == 4: # piątek\np -= 60\nd += timedelta(days=1)\nmaks = max(maks, p)\nif amury == 80 and p > 7500 and 'pierwszy' not in dir():\npass\nreturn maks\n\n7.4 — najmniejsza liczba amurów, przy której maksimum ≤ 5000 m²\nprint(min(a for a in range(1, 200) if symuluj(a) <= 5000))\n```\n\nDlaczego kontrola z 30 kwietnia jest cenna\n\n30 kwietnia to 61. dzień symulacji. Jeśli po tylu krokach model daje 2579 m² (25,79%), to znaczy, że i tempo wzrostu, i jedzenie amurów, i liczba piątków są policzone poprawnie. To najtańszy sposób na wyłapanie błędu przed liczeniem 7.3 i 7.4.\n\nPunktacja CKE\n\n- 7.1. 3 pkt — zestawienie 1 pkt, wykres 2 pkt (dobór danych i typ + czytelny opis).\n- 7.2. 2 pkt · 7.3. 2 pkt · 7.4. 2 pkt.\n- Razem: 9 pkt.\n\nTypowy błąd: **Kolejność operacji w symulacji jest krytyczna.** Treść mówi wyraźnie: przyrost następuje **w nocy**, a pomiar **rano**; amury jedzą **w ciągu dnia**, odławianie też jest **w ciągu dnia**. Dla każdego dnia trzeba więc: pomnożyć przez 1,0175 → odjąć jedzenie amurów → w piątek odjąć 60. Zamiana kolejności daje inny wynik i traci punkty. **Kontrola 25,79% na 30 kwietnia jest po to, żeby sprawdzić model.** Jeśli po zbudowaniu arkusza ta wartość się nie zgadza, błąd jest w kolejności operacji albo w liczeniu piątków — nie ma sensu iść dalej. **7.4 wymaga wyszukiwania, nie wzoru.** Trzeba przetestować kolejne liczby amurów i sprawdzić maksimum zarośnięcia w całym okresie. Wynik 94 to **najmniejsza** taka liczba — odpowiedź „100\" (bezpieczna z zapasem) nie punktuje. **W 7.1 punkty za wykres są dwa i osobne od zestawienia.** 1 pkt za dobór danych i typ wykresu, 1 pkt za czytelny opis. Wykres bez tytułu i opisów osi traci połowę punktów za tę część.","image":"img/informatyka-2026-maj-matura-rozszerzona/zad-7.webp","solution_image":null,"topics":"arkusz kalkulacyjny, analiza danych, wykres kolumnowy, symulacja wzrostu","page_from":16,"source":"ocr","answer_source":null,"answer_text_source":"ocr","solution_source":"maturaonline","text_source":"ocr","source_label":"Informatyka · Matura · maj 2026 (rozszerzona)","subject_label":"Informatyka","category_label":"Matura","text_html":"<p>Zadanie 7. Staw<br>Pan Iksiński stał się właścicielem stawu o powierzchni całkowitej 10 000 m2. Pierwszą<br>rośliną, którą postanowił w nim umieścić, jest rzęsa wodna, która osiąga wysoką<br>skuteczność rozmnażania wegetatywnego, tzn. przy odpowiedniej temperaturze i wielkości<br>opadów potrafi znacząco zwiększyć rozmiar zajmowanej powierzchni.<br>W pliku staw.txt są zawarte następujące informacje, rozdzielone znakami tabulacji:<br>Data</p>\n<ul><li>data pomiaru</li></ul>\n<p>Temp</p>\n<ul><li>temperatura w danym dniu w ◦C, zaokrąglona do jednego miejsca po</li></ul>\n<p>przecinku<br>Opady</p>\n<ul><li>wielkość opadu w mm, zaokrąglona do liczby całkowitej.</li></ul>\n<p>Przykład:<br>Data<br>Temp<br>Opady<br>2022-01-01<br>9,8<br>5<br>2022-01-02<br>8,1<br>1<br>2022-01-03<br>9<br>2<br>2022-01-04<br>7,3<br>1<br>2022-01-05<br>5,7<br>5<br>Plik zawiera dane z całego 2022 roku.<br>Z wykorzystaniem danych zawartych w pliku oraz dostępnych narzędzi informatycznych<br>wykonaj podane zadania. Wyniki zapisz w pliku tekstowym wyniki7.txt. Odpowiedź do<br>każdego zadania poprzedź numerem tego zadania.</p>","answer_text_html":"<p>0<br>0</p>","solutions":[{"source":"maturaonline","label":"matura-online.pl","kind":"text","html":"<p>Odpowiedź: <strong>7.1.</strong> Średnie miesięczne temperatury: | Miesiąc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |---|---|---|---|---|---|---|---|---|---|---|---|---| | Śr. temp. (°C) | 1,1 | 4,1 | 4,1 | 7,4 | 15,9 | 20,5 | 20,4 | 21,1 | 13,7 | 12,5 | 5,2 | 1,6 | <strong>7.2.</strong> Najdłuższy ciąg dni bez opadów w miesiącu: | Miesiąc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |---|---|---|---|---|---|---|---|---|---|---|---|---| | Długość | 11 | 7 | 20 | 8 | 20 | 11 | 10 | 8 | 14 | 15 | 10 | 10 | <strong>7.3.</strong> <strong>167</strong>, czyli <strong>14 sierpnia 2023</strong>. <strong>7.4.</strong> <strong>94</strong> amury.</p>\n<p>Treść zadania (CKE)</p>\n<p>7.2 — najdłuższy ciąg zer w miesiącu</p>\n<p>Klasyczne liczenie serii: przechodzimy dni po kolei, zwiększamy licznik przy opadach = 0, zerujemy go przy opadach &gt; 0, po drodze zapamiętujemy maksimum. Licznik resetujemy na granicy miesiąca, bo pytanie dotyczy ciągu w tym miesiącu.</p>\n<p>```python<br>from collections import defaultdict</p>\n<p>najd = defaultdict(int)<br>biez = defaultdict(int)<br>for wiersz in open(&#x27;staw.txt&#x27;, encoding=&#x27;utf-8&#x27;).readlines()[1:]:<br>data, temp, opady = wiersz.split(&#x27;\\t&#x27;)<br>m = int(data.split(&#x27;-&#x27;)[1])<br>if int(opady) == 0:<br>biez[m] += 1<br>najd[m] = max(najd[m], biez[m])<br>else:<br>biez[m] = 0<br>```</p>\n<p>7.3 i 7.4 — model symulacji</p>\n<p>Dla każdego dnia, w tej kolejności:</p>\n<ol><li>noc — powierzchnia rośnie: p = p * 1.0175</li><li>dzień — amury zjadają: p = p − liczba_amurow * 0.25</li><li>piątek — odławianie: p = p − 60</li><li>rano następnego dnia — pomiar</li></ol>\n<p>```python<br>from datetime import date, timedelta</p>\n<p>def symuluj(amury):<br>p = 2000.0<br>d = date(2023, 3, 1)<br>maks = p<br>for dzien in range(1, 185):<br>p *= 1.0175<br>p -= amury * 0.25<br>if d.weekday() == 4: # piątek<br>p -= 60<br>d += timedelta(days=1)<br>maks = max(maks, p)<br>if amury == 80 and p &gt; 7500 and &#x27;pierwszy&#x27; not in dir():<br>pass<br>return maks</p>\n<p>7.4 — najmniejsza liczba amurów, przy której maksimum ≤ 5000 m²<br>print(min(a for a in range(1, 200) if symuluj(a) &lt;= 5000))<br>```</p>\n<p>Dlaczego kontrola z 30 kwietnia jest cenna</p>\n<p>30 kwietnia to 61. dzień symulacji. Jeśli po tylu krokach model daje 2579 m² (25,79%), to znaczy, że i tempo wzrostu, i jedzenie amurów, i liczba piątków są policzone poprawnie. To najtańszy sposób na wyłapanie błędu przed liczeniem 7.3 i 7.4.</p>\n<p>Punktacja CKE</p>\n<ul><li>7.1. 3 pkt — zestawienie 1 pkt, wykres 2 pkt (dobór danych i typ + czytelny opis).</li><li>7.2. 2 pkt · 7.3. 2 pkt · 7.4. 2 pkt.</li><li>Razem: 9 pkt.</li></ul>\n<p>Typowy błąd: <strong>Kolejność operacji w symulacji jest krytyczna.</strong> Treść mówi wyraźnie: przyrost następuje <strong>w nocy</strong>, a pomiar <strong>rano</strong>; amury jedzą <strong>w ciągu dnia</strong>, odławianie też jest <strong>w ciągu dnia</strong>. Dla każdego dnia trzeba więc: pomnożyć przez 1,0175 → odjąć jedzenie amurów → w piątek odjąć 60. Zamiana kolejności daje inny wynik i traci punkty. <strong>Kontrola 25,79% na 30 kwietnia jest po to, żeby sprawdzić model.</strong> Jeśli po zbudowaniu arkusza ta wartość się nie zgadza, błąd jest w kolejności operacji albo w liczeniu piątków — nie ma sensu iść dalej. <strong>7.4 wymaga wyszukiwania, nie wzoru.</strong> Trzeba przetestować kolejne liczby amurów i sprawdzić maksimum zarośnięcia w całym okresie. Wynik 94 to <strong>najmniejsza</strong> taka liczba — odpowiedź „100&quot; (bezpieczna z zapasem) nie punktuje. <strong>W 7.1 punkty za wykres są dwa i osobne od zestawienia.</strong> 1 pkt za dobór danych i typ wykresu, 1 pkt za czytelny opis. Wykres bez tytułu i opisów osi traci połowę punktów za tę część.</p>"}]}