# Informatyka — zadanie 5.3

> Źródło: matura.lol — https://matura.lol/question/maturazai-informatyka-inf-2017-05/zad/5.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: Programowanie i algorytmika

## Treść

Kontekst - patrz zadanie 5.1.

Podaj liczby meczów wyjazdowych - wygranych, przegranych i zremisowanych - przez drużynę Galop Kucykowo.

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

## Poprawna odpowiedź

**Mecze wyjazdowe Galop Kucykowo:**
- Wygrane: **579**
- Przegrane: **452**
- Zremisowane: **170**

## Sposób 1 - interpretacja danych

**Kolumna `Gdzie`** w `wyniki.txt`:
- **W** = swoim boisku (u siebie, Galop Kucykowo gra W swoim Kucykowie)
- **D** = na boisku przeciwnika (wyjazdowy)

**UWAGA - KLUCZOWA INTERPRETACJA:** Treść mówi o meczach **WYJAZDOWYCH**, czyli `Gdzie = 'D'` (na wyjeździe).

**Definicja wyniku:**
- Wygrana: Bramki_zdobyte > Bramki_stracone
- Przegrana: Bramki_zdobyte < Bramki_stracone
- Remis: Bramki_zdobyte = Bramki_stracone

## Sposób 2 - SQL

```sql
SELECT
SUM(CASE WHEN Bramki_zdobyte > Bramki_stracone THEN 1 ELSE 0 END) AS Wygrane,
SUM(CASE WHEN Bramki_zdobyte < Bramki_stracone THEN 1 ELSE 0 END) AS Przegrane,
SUM(CASE WHEN Bramki_zdobyte = Bramki_stracone THEN 1 ELSE 0 END) AS Remisy
FROM wyniki
WHERE Gdzie = 'D';

Wynik: 579 | 452 | 170

Lub jako 3 oddzielne zapytania:
```sql
SELECT COUNT(*) FROM wyniki WHERE Gdzie = 'D' AND Bramki_zdobyte > Bramki_stracone; -- 579
SELECT COUNT(*) FROM wyniki WHERE Gdzie = 'D' AND Bramki_zdobyte < Bramki_stracone; -- 452
SELECT COUNT(*) FROM wyniki WHERE Gdzie = 'D' AND Bramki_zdobyte = Bramki_stracone; -- 170

## Sposób 3 - Python

```python
wygrane = przegrane = remisy = 0
with open('wyniki.txt', encoding='utf-8') as f:
next(f)
for line in f:
parts = line.strip().split('\t')
gdzie = parts[2]
bz = int(parts[5])
bs = int(parts[6])
if gdzie == 'D':
if bz > bs:
wygrane += 1
elif bz < bs:
przegrane += 1
else:
remisy += 1

print("Wygrane:", wygrane) # 579
print("Przegrane:", przegrane) # 452
print("Remisy:", remisy) # 170

## Sposób 4 - arkusz kalkulacyjny

1. W kolumnie H: `=JEŻELI(F2>G2; "W"; JEŻELI(F2<G2; "P"; "R"))` - kategoryzacja wyniku.
2. **LICZ.WARUNKI** dla wyjazdowych:
- Wygrane: `=LICZ.WARUNKI(C:C; "D"; H:H; "W")` → 579
- Przegrane: `=LICZ.WARUNKI(C:C; "D"; H:H; "P")` → 452
- Remisy: `=LICZ.WARUNKI(C:C; "D"; H:H; "R")` → 170

## Reference algorytmiczny - CASE WHEN i agregaty

> Reference - kategoryzacja w SQL:
> - `CASE WHEN warunek THEN wartość ELSE inna_wartość END` - odpowiednik if-else.
> - `SUM(CASE WHEN THEN 1 ELSE 0 END)` = liczba wierszy spełniających warunek (alternatywa do COUNT z WHERE).
> - Filtr w SQL może też być wieloma zapytaniami z COUNT + różne WHERE.

## Schemat oceniania CKE

> Klucz CKE (zadanie 5.3, max 3 pkt):
> - **3 pkt** - wszystkie 3 liczby poprawne (po 1 pkt za wiersz)
> - **2 pkt** - odpowiedź BEZ filtru wyjazdowych (910, 352, 1185)
> - **0 pkt** - inna błędna lub brak

## Typowe pułapki

- **Brak filtru `Gdzie = 'D'`** - najczęstszy błąd. Liczba meczów wyjazdowych ≠ wszystkich meczów.
- **Pomylenie W/D** - D może być interpretowane różnie. Tu **D = wyjazdowy** (na boisku przeciwnika). Sprawdzenie: zwykle drużyna ma zbliżoną liczbę meczów u siebie i na wyjeździe. Można też zweryfikować po przykładzie z treści zadania 5.1.
- **Zwracanie tylko jednego wiersza zamiast 3** - wyjście musi mieć 3 osobne liczby (wygrane/przegrane/remisy).
- **Pomylenie remisu z brakiem bramek** - remis to bramki_zdobyte = bramki_stracone (mogą być 3-3, 0-0, itd.).

## Złożoność obliczeniowa

- SQL: O(n) z filtrem WHERE i agregatem.
- Python: O(n) z pojedynczym przejściem pliku.

## Linki

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

## Podobne zadania

- [Zadanie 5.3](https://matura.lol/question/informatyka-2017-maj-matura-rozszerzona-2/zad/5.3) — Kontekst - patrz zadanie 5.1. Podaj liczby meczów wyjazdowych - wygranych, przegranych i zremisowanych - przez drużynę Galop Kucykowo.

_Ostatnia aktualizacja danych: 2026-10-03_
