# Informatyka — zadanie 4.3

> Źródło: matura.lol — https://matura.lol/question/maturazai-informatyka-inf-2017-05/zad/4.3
> Wersja Markdown strony zadania (dla asystentów AI). Przy cytowaniu podaj matura.lol i link powyżej.

- arkusz: Informatyka · Matura · maj 2017 (rozszerzona)
- rok: 2017
- poziom: rozszerzona
- typ: open
- punkty: 3
- działy: Arkusz kalkulacyjny

## Treść

Kontekst - patrz zadanie 4.1.

Wykonaj i podaj zestawienie ilości sprzedanego cukru w kolejnych latach, od roku 2005 do roku 2014 włącznie. Następnie utwórz wykres liniowy ilustrujący sprzedaż cukru w kolejnych latach w podanym okresie. Wyskaluj oś pionową co 5000 kg. Pamiętaj o czytelnym opisie wykresu (tytuł i opis osi).

## Rozwiązanie — maturazai.pl (AI)

## Poprawna odpowiedź

**Zestawienie ilości sprzedanego cukru:**

| Rok | Sprzedaż (kg) |
| 2005 | 27 016 |
| 2006 | 27 226 |
| 2007 | 31 720 |
| 2008 | 36 523 |
| 2009 | 30 764 |
| 2010 | 32 521 |
| 2011 | 23 778 |
| 2012 | 26 976 |
| 2013 | 28 419 |
| 2014 | 35 284 |

Wykres liniowy z osią pionową wyskalowaną co 5000 kg, tytułem „Sprzedaż cukru w latach 2005-2014", osi X opisaną „Rok" i osi Y opisaną „Sprzedaż [kg]".

## Sposób 1 - arkusz kalkulacyjny (LibreOffice/Excel)

1. **Wczytaj cukier.txt** - kolumny: A=Data, B=NIP, C=Kg.
2. **Wydobądź rok** - w D2: `=WARTOŚĆ(LEWY(A2; 4))`.
3. **Lista lat** w F2:F11 - wartości 2005, 2006, , 2014.
4. **Suma per rok** w G2: `=SUMA.JEŻELI($D$2:$D$2163; F2; $C$2:$C$2163)`. Skopiuj na G3:G11.
5. **Wykres liniowy:**
- Zaznacz F1:G11.
- Wstaw → Wykres → Linia (z markerami).
- **Tytuł wykresu:** „Sprzedaż cukru w latach 2005-2014".
- **Oś X:** „Rok".
- **Oś Y:** „Sprzedaż [kg]".
- **Skalowanie osi Y:** kliknij prawym → Właściwości → Skala → Główna jednostka: 5000.

## Sposób 2 - Python z matplotlib

```python
import matplotlib.pyplot as plt
from collections import defaultdict

sumy = defaultdict(int)
with open('cukier.txt', encoding='utf-8') as f:
for linia in f:
data, nip, kg = linia.strip().split('\t')
sumy[int(data[:4])] += int(kg)

lata = sorted(sumy.keys())
ilosci = [sumy[r] for r in lata]

for r, k in zip(lata, ilosci):
print(r, k)

plt.figure(figsize=(10, 6))
plt.plot(lata, ilosci, marker='o', linewidth=2)
plt.title('Sprzedaż cukru w latach 2005-2014')
plt.xlabel('Rok')
plt.ylabel('Sprzedaż [kg]')
plt.yticks(range(0, max(ilosci) + 5000, 5000)) # oś co 5000
plt.grid(True)
plt.savefig('wykres_cukier.png', dpi=150, bbox_inches='tight')
plt.show()

Output:
2005 27016
2006 27226
2007 31720
2008 36523
2009 30764
2010 32521
2011 23778
2012 26976
2013 28419
2014 35284

## Sposób 3 - SQL (dla wsparcia obliczenia)

Jeśli cukier.txt jest w tabeli `sprzedaz`:
```sql
SELECT YEAR(data) AS rok, SUM(kg) AS sprzedaz
FROM sprzedaz
GROUP BY YEAR(data)
ORDER BY rok;

## Reference algorytmiczny - wizualizacja danych szeregu czasowego

> Reference - wykres liniowy w arkuszu:
> - **Wykres liniowy** = punkty połączone liniami, idealny do trendów czasowych.
> - **Skalowanie osi**: Excel/LibreOffice → Format osi → Główna jednostka (Major unit).
> - **Czytelność**: tytuł, etykiety osi, jednostki w nawiasach, legenda (jeśli wiele serii).
> - W matplotlib: `plt.yticks(range(min, max, krok))`.

## Schemat oceniania CKE

> Klucz CKE (zadanie 4.3, max 3 pkt):
> - **3 pkt** - pełna poprawna odpowiedź, w tym:
> - 1 pkt - prawidłowe zestawienie liczbowe (10 wartości rocznych)
> - 1 pkt - prawidłowy dobór danych i typ wykresu (liniowy)
> - 1 pkt - poprawny opis (tytuł + osie) i wyskalowanie osi pionowej co 5000
> - **0 pkt** - odpowiedź błędna albo brak

## Typowe pułapki

- **Wybór typu wykresu** - treść WYRAŹNIE wymaga liniowego, nie kolumnowego/słupkowego.
- **Skalowanie osi Y** - co 5000 kg jest wymaganiem; mile widziane od 0 do max+5000.
- **Opis osi/wykresu** - bez tytułu i etykiet to tylko 1 pkt zamiast 2-3.
- **Konwersja roku z daty** - w arkuszu uważać, czy data jest tekstem czy datą; `LEWY(A; 4)` zadziała tylko na tekście, dla daty użyj `ROK(A2)`.

## Złożoność obliczeniowa

- Agregacja: **O(n)** gdzie n = 2162 transakcji.
- Sortowanie 10 lat: O(10 log 10) = stała.
- Renderowanie wykresu: O(k) gdzie k = 10 punktów.

## Linki

- [dane JSON](https://matura.lol/api/question/maturazai-informatyka-inf-2017-05/zad/4.3)
- [otwórz w wyszukiwarce](https://matura.lol/?problem=maturazai-informatyka-inf-2017-05%2Fzad%2F4.3)

## Podobne zadania

- [Zadanie 6.1](https://matura.lol/question/informatyka-2018-maj-matura-stara-podstawowa-2/zad/6.1) — Zadanie 6.1. (0-4) Dla każdego miesiąca 2017 roku podaj łączną liczbę kilogramów dostarczonej makulatury. Do swojego zestawienia utwórz wykres kolumnowy, prezen
- [Zadanie 5.4](https://matura.lol/question/informatyka-2020-lipiec-matura-rozszerzona-2/zad/5.4) — Zadanie 5.4. (0-3) Ilu klientów przybyło do myjni w pierwszej (czyli od 0 do 59 minut po otwarciu myjni), drugiej, trzeciej, czwartej, piątej i szóstej godzinie
- [Zadanie 4.3](https://matura.lol/question/informatyka-2017-maj-matura-rozszerzona-2/zad/4.3) — Kontekst - patrz zadanie 4.1. Wykonaj i podaj zestawienie ilości sprzedanego cukru w kolejnych latach, od roku 2005 do roku 2014 włącznie. Następnie utwórz wykr
- [Zadanie 5.3](https://matura.lol/question/informatyka-2026-czerwiec-matura-stara-rozszerzona-2/zad/5.3) — Zadanie 5.3. (0-3) Dla każdego miesiąca, podaj łączną liczbę kilogramów dostarczonego materiału do recyklingu. Do wykonanego zestawienia wykonaj wykres kolumnow

_Ostatnia aktualizacja danych: 2026-10-03_
