# Informatyka — zadanie 5.2

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

- arkusz: Informatyka · Matura · maj 2015 (rozszerzona)
- rok: 2015
- poziom: rozszerzona
- typ: open
- punkty: 2
- działy: Programowanie i algorytmika

## Treść

Kontekst - patrz zadanie 5.1.

Przeanalizuj dane i wybierz województwa, w których liczba kobiet w 2014 roku była większa niż w 2013 roku i jednocześnie liczba mężczyzn w 2014 roku była większa niż w 2013 roku. Podaj liczbę wszystkich takich województw w całym kraju oraz w każdym z regionów: A, B, C i D.

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

## Poprawna odpowiedź

- **Cały kraj: 19 województw**
- Region A: **3**
- Region B: **4**
- Region C: **8**
- Region D: **4**

## Sposób 1 - filtr w Pythonie + groupby

```python
import pandas as pd

df = pd.read_csv('kraina.txt', sep=';', header=None,
names=['nazwa', 'k2013', 'm2013', 'k2014', 'm2014'])
df['region'] = df['nazwa'].str[-1]

# Warunek: kobiety 2014 > kobiety 2013 AND mężczyźni 2014 > mężczyźni 2013
rosnace = df[(df['k2014'] > df['k2013']) & (df['m2014'] > df['m2013'])]

print('Razem:', len(rosnace)) # 19
print(rosnace.groupby('region').size())
# A 3
# B 4
# C 8
# D 4

## Sposób 2 - arkusz kalkulacyjny

**Krok 1: kolumna pomocnicza (H) - flaga rosnący**
- H2: `=JEŻELI(I(D2>B2; E2>C2); 1; 0)` (D, E to 2014; B, C to 2013).
- Skopiuj H2:H51.

**Krok 2: suma flag**
- Cały kraj: `=SUMA(H2:H51)` → **19**.
- Region A: `=SUMA.JEŻELI(F2:F51; "A"; H2:H51)` → **3**.
- Region B: 4, C: 8, D: 4.

**Sposób alternatywny - Excel:**
=LICZ.WARUNKI(F2:F51; "A"; D2:D51; ">" & B2:B51; E2:E51; ">" & C2:C51)
UWAGA: LICZ.WARUNKI nie obsługuje porównań między kolumnami - lepiej kolumna pomocnicza.

## Sposób 3 - Pascal

```pascal
program WzrostLudnosci;
var
f: TextFile;
linia, nazwa: String;
k13, m13, k14, m14, razem: LongInt;
region: Char;
countA, countB, countC, countD: Integer;
pozycja: Integer;
begin
AssignFile(f, 'kraina.txt');
Reset(f);
countA := 0; countB := 0; countC := 0; countD := 0; razem := 0;
while not Eof(f) do
begin
Readln(f, linia);
// Parse: nazwa;k13;m13;k14;m14
pozycja := Pos(';', linia);
nazwa := Copy(linia, 1, pozycja-1);
region := nazwa[Length(nazwa)];
Delete(linia, 1, pozycja);
pozycja := Pos(';', linia); k13 := StrToInt(Copy(linia, 1, pozycja-1)); Delete(linia, 1, pozycja);
pozycja := Pos(';', linia); m13 := StrToInt(Copy(linia, 1, pozycja-1)); Delete(linia, 1, pozycja);
pozycja := Pos(';', linia); k14 := StrToInt(Copy(linia, 1, pozycja-1)); Delete(linia, 1, pozycja);
m14 := StrToInt(linia);
if (k14 > k13) and (m14 > m13) then
begin
Inc(razem);
case region of
'A': Inc(countA);
'B': Inc(countB);
'C': Inc(countC);
'D': Inc(countD);
end;
end;
end;
CloseFile(f);
Writeln('Razem: ', razem); // 19
Writeln('A: ', countA); // 3
Writeln('B: ', countB); // 4
Writeln('C: ', countC); // 8
Writeln('D: ', countD); // 4
end.

## Reference informatyczny - filtrowanie z wieloma warunkami

> Reference - Compound filter:
> - **Pandas**: `df[(cond1) & (cond2)]` - AND. `df[(cond1) | (cond2)]` - OR.
> - **SQL**: `WHERE cond1 AND cond2`.
> - **Excel**: `=JEŻELI(I(c1; c2); 1; 0)` (I = AND), `=JEŻELI(LUB(c1; c2); 1; 0)` (LUB = OR).
> - **Liczenie po grupach**: `groupby().size()`, `LICZ.JEŻELI`, `COUNT() GROUP BY`.

## Schemat oceniania CKE

> Klucz CKE (zadanie 5.2, max 2 pkt):
> - **2 pkt** - poprawne wszystkie liczby (cały kraj + A + B + C + D)
> - **1 pkt** - poprawna tylko liczba całego kraju ALBO tylko liczby regionów
> - **0 pkt** - niepełna lub błędna albo brak

## Typowe pułapki

- **Pomylenie kolejności kolumn**: w pliku k2013 jest PRZED m2013 - pomylenie kobiet z mężczyznami zaburzy wynik.
- **Operator < zamiast >** - kobieta wzrosła znaczy 2014 > 2013, nie odwrotnie.
- **OR zamiast AND** - warunek to JEDNOCZEŚNIE (oba muszą rosnąć), więc AND.
- **Sumowanie 19 ≠ 3+4+8+4 = 19** - spójne, ale czasem uczniowie sumują źle.
- **Wyodrębnienie regionu**: ostatni znak NAZWY, nie całej linii.

## Złożoność obliczeniowa

- Filtrowanie: O(N), gdzie N = 50 województw.
- Liczenie po grupach: O(N).
- **Całkowita: O(N)**.

## Linki

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

## Podobne zadania

- [Zadanie 5.2](https://matura.lol/question/informatyka-2017-maj-matura-stara-rozszerzona-2/zad/5.2) — Zadanie 5.2 (0-3) Podaj, ile razy w całym sezonie grzewczym (od 15.09.2015 r. do 31.03.2016 r. włącznie): - dostarczano drewno panu Binarnemu - pan Binarny ogrz
- [Zadanie 5.2](https://matura.lol/question/informatyka-2024-czerwiec-matura-stara-rozszerzona-2/zad/5.2) — Zadanie 5.2. (0-2) Znajdź najdłuższy ciąg kolejnych dni, w których liczba kuracjuszy, którzy przyjechali, była większa niż liczba wyjeżdżających. Podaj daty poc
- [Zadanie 4.2](https://matura.lol/question/informatyka-2018-maj-matura-stara-rozszerzona-2/zad/4.2) — Zadanie 4.2. (0-2) Podaj nazwę firmy, dla której odnotowano najdłuższy ciąg rosnący kursów akcji. Podaj jego długość. Jest tylko jedna taka firma. Przykład ciąg
- [Zadanie 5.2](https://matura.lol/question/informatyka-2015-maj-matura-rozszerzona-2/zad/5.2) — Kontekst - patrz zadanie 5.1. Przeanalizuj dane i wybierz województwa, w których liczba kobiet w 2014 roku była większa niż w 2013 roku i jednocześnie liczba mę

_Ostatnia aktualizacja danych: 2026-10-03_
