Przejdź do treści

Listopadowa cena: matura z informatyki za 100 zł zamiast 120 zł za lekcję. Zgłoś się do 30.11. Umów bezpłatną konsultację →

Dział I

Systemy Liczbowe i Reprezentacja Danych

Zamiana systemów (BIN, HEX, DEC), zapis liczb ujemnych (U2, ZM), liczby zmiennoprzecinkowe, kody ASCII oraz kompresja.

Wstęp: Jak myśli komputer?

Ten dział to starcie z czystą logiką. Kalkulatora programisty na stanowisku nie znajdziesz, a CKE uwielbia testować, czy potrafisz w głowie (lub na marginesie) płynnie żonglować bitami. W tym dziale poznasz absolutny fundament informatyki: dowiesz się, jak maszyna rozumie liczby ujemne, dlaczego myli się przy ułamkach oraz jak szybko przeliczać systemy bez żmudnego mnożenia przez potęgi.

1

Systemy: Dwójkowy, Dziesiętny, Szesnastkowy

Zapis wielomianowy to klasyka. Niezależnie od tego, czy pracujesz w systemie binarnym (podstawa 2), czy szesnastkowym (podstawa 16), każda cyfra na swojej pozycji ma określoną wagę. Systemy te są fundamentem adresacji pamięci i kolorów w informatyce.

BIN na DEC (Dwójkowy na Dziesiętny)
Każdy bit mnożymy przez potęgę liczby 2, idąc od prawej do lewej (zaczynając od potęgi zerowej).
Zapiszmy 101121011_2
1⋅23+0⋅22+1⋅21+1⋅201 \cdot 2^3 + 0 \cdot 2^2 + 1 \cdot 2^1 + 1 \cdot 2^0=8+0+2+1=11,10,= 8 + 0 + 2 + 1 = 11_,10,
DEC na BIN (Dzielenie przez 2)
Dzielimy liczbę przez 2 i zapisujemy reszty z dzielenia. Wynik czytamy od dołu do góry.
11 : 2 = 5
reszta 1
5 : 2 = 2
reszta 1
2 : 2 = 1
reszta 0
1 : 2 = 0
reszta 1
Od dołu: 101121011_2

Gdy już opanujemy konwersję, możemy przejść do arytmetyki. Operacje na liczbach binarnych w słupku wykonujemy analogicznie do systemu dziesiętnego. Główna różnica polega na tym, że operujemy tylko na zbiorze {0,1}\{0, 1\}, więc "przeniesienia" (przy dodawaniu) i "pożyczki" (przy odejmowaniu) następują szybciej.

Dodawanie Binarne
Gdy dodajemy 1+11 + 1, otrzymujemy 10210_2. Zapisujemy 00, a 11 przenosimy do następnej (wyższej) kolumny po lewej.
1111
1011
+0101
10000

Sprawdzenie: 1110+510=161011_{10} + 5_{10} = 16_{10}

Odejmowanie Binarne
Gdy odejmujemy 0−10 - 1, musimy pożyczyć 11 z wyższej pozycji. Ta zapożyczona "jedynka" to u nas 10210_2 (czyli dziesiętne 2). Zatem 102−1=110_2 - 1 = 1.
1 1
1010
-0101
0101

Sprawdzenie: 1010−510=51010_{10} - 5_{10} = 5_{10}

2

Szybkie konwersje (Metoda grupowania)

Na maturze nie masz czasu przeliczać ogromnych ciągów binarnych na dziesiętne, aby potem zamienić je na szesnastkowe. System szesnastkowy (HEX) jest idealnie "kompatybilny" z binarnym – każda cyfra HEX to dokładnie 4 bity w systemie BIN.

Grupowanie po 4 bity

Dzielimy ciąg bitów na grupy po 4 (idąc od prawej strony!). Jeśli brakuje bitów po lewej, dopisujemy zera.

Mamy ciąg: 1011101001

Dzielimy: 0010 | 1110 | 1001
Liczymy wagi (8-4-2-1): 2 | 14 (E) | 9

Wynik w HEX to: 2E9

3

Liczby ujemne: Znak-Moduł (ZM) i U2

Komputer nie ma przycisku "minus". Znak liczby musi być zakodowany za pomocą bitów. Wymagane są dwa formaty: Znak-Moduł (prostszy, ale ma wady) oraz Uzupełnień do Dwóch (U2) – standard we współczesnych procesorach.

Znak-Moduł (ZM)
  • Pierwszy bit od lewej to ZNAK (0 to +, 1 to -).
  • Reszta bitów to zwykła wartość liczby (moduł).
  • Zapis -5 na 8 bitach:
    10000101

  • Wada: Posiada dwa zera (pozytywne 000... i negatywne 100...).
Kod U2 (Uzupełnień do 2)
  • Pierwszy bit wciąż decyduje o znaku (1 to minus).
  • Ale uwaga: ma on wagę ujemną (np. na 8 bitach pierwszy bit to -128).
  • Tworzenie liczby -5 w U2:

    1. Zapisz 5: 00000101
    2. Zaneguj bity: 11111010
    3. Dodaj 1: 11111011
Odczyt w drugą stronę i zakres

Żeby odczytać liczbę zapisaną w U2, nie trzeba niczego negować — wystarczy pamiętać, że najstarszy bit ma wagę ujemną. Dla 11111011 na ośmiu bitach liczymy: −128+64+32+16+8+0+2+1=−5-128 + 64 + 32 + 16 + 8 + 0 + 2 + 1 = -5. Ta jedna obserwacja zastępuje całą procedurę i jest znacznie odporniejsza na pomyłki pod presją czasu.

Zakres liczb w U2 na nn bitach to ⟨−2n−1, 2n−1−1⟩\langle -2^{n-1},\ 2^{n-1}-1 \rangle, czyli dla ośmiu bitów od −128-128 do 127127. Jest on niesymetryczny: liczb ujemnych mieści się o jedną więcej, bo U2 — w przeciwieństwie do znaku-modułu — ma tylko jedno zero. To ulubione pytanie testowe CKE.

Dodanie 1 do 01111111 (127) daje 10000000, czyli −128-128. To nie usterka, tylko przepełnienie — wynik nie zmieścił się w zadeklarowanej liczbie bitów i „zawinął się” na drugi koniec zakresu. Stąd biorą się błędy w programach, w których licznik zadeklarowano jako typ zbyt mały do danych.

4

Tekst, Kolory (RGB) i rozmiar pliku

Nie samymi liczbami żyje komputer. Tekst, obraz i dźwięk też muszą zostać zamienione na zera i jedynki. Na maturze bardzo często pojawiają się zadania z obliczania rozmiaru pliku graficznego.

Tekst (ASCII i Unicode)

ASCII: Koduje znaki na 7 lub 8 bitach. Pozwala to zapisać 128 lub 256 różnych znaków (brak np. polskich znaków diakrytycznych w podstawowym ASCII).

Unicode (UTF-8): Nowoczesny standard rozszerzalny (od 8 do 32 bitów). Zawiera emotikony, polskie znaki i alfabety z całego świata.

Kolory RGB

Każdy piksel składa się z 3 barw: Red, Green, Blue. Na każdy z nich przypada 8 bitów (1 bajt), czyli przyjmują wartości od 0 do 255.

R:255, G:255, B:255 = Biały
R:0, G:0, B:0 = Czarny
Głębia kolorów to 2242^{24} (ponad 16 milionów barw).

Rozmiar Grafiki

Zadanie CKE: Ile KB zajmuje obrazek RGB o wymiarach 100 x 100 px bez kompresji?

  1. Piksele: 100 * 100 = 10 000 px
  2. Waga: 1 px w RGB = 3 Bajty
  3. Wynik: 30 000 Bajtów.
  4. KiloBajty: 30 000 / 1024 = ~29,3 KB.

5

Kompresja i zapis dźwięku

Rozmiar policzony w poprzedniej sekcji dotyczy pliku bez kompresji. Realne pliki są mniejsze, a pytanie „o ile i jakim kosztem” wraca w arkuszach regularnie — razem z zadaniem o rozmiarze nagrania dźwiękowego.

Kompresja bezstratna
Po rozpakowaniu odzyskujesz dokładnie oryginalne dane, co do bitu. Używa się jej wszędzie tam, gdzie utrata choć jednego znaku byłaby katastrofą: teksty, arkusze, programy, archiwa.
Formaty: ZIP, 7z, PNG, GIF, FLAC.
Kodowanie długości serii (RLE)
AAAAABBBCCCCCCCC  →  5A3B8C
16 znaków → 6 znaków
RLE działa świetnie na długich powtórzeniach, ale na danych bez powtórzeń potrafi plik powiększyć — to częste pytanie „podaj przykład danych, dla których ta metoda jest nieopłacalna”.
Kompresja stratna
Część informacji zostaje bezpowrotnie usunięta — zwykle taka, której człowiek i tak nie zauważy. W zamian pliki są wielokrotnie mniejsze. Proces jest nieodwracalny, a każdy kolejny zapis pogarsza jakość.
Formaty: JPG, MP3, MP4.

Zasada wyboru na egzaminie
Zdjęcie z wakacji na stronę → JPG.
Logo z ostrymi krawędziami i przezroczystością → PNG.
Skan dokumentu do archiwum → format bezstratny.

Druga metoda bezstratna warta zapamiętania to kod Huffmana: znakom częstym przypisuje krótsze ciągi bitów, rzadkim dłuższe. Dlatego tekst po kompresji zajmuje mniej niż stałe 8 bitów na znak.
Dźwięk: próbkowanie i rozmiar nagrania

Dźwięk jest z natury falą ciągłą, więc żeby go zapisać, mierzy się jego wartość wiele razy na sekundę. Częstotliwość próbkowania mówi, ile pomiarów przypada na sekundę (płyta CD: 44 100 Hz), a głębia bitowa — na ilu bitach zapisano pojedynczy pomiar (CD: 16 bitów).

rozmiar = czas × czestotliwosc × glebia × liczba kanalow / 8

10 s stereo w jakosci CD:
10 × 44 100 × 16 × 2 / 8 = 1 764 000 B ≈ 1,68 MiB

Uwaga na jednostki: informatyka liczy zwykle 1 KiB = 1024 B, a producenci dysków 1 KB = 1000 B. Jeśli arkusz nie precyzuje, napisz przy wyniku, którego przelicznika użyłeś — to wystarcza, żeby odpowiedź została uznana.

6

Ułamki i liczby zmiennoprzecinkowe

To jedyny temat z tego działu, który potrafi zaskoczyć również przy komputerze: program wypisuje 0.30000000000000004 zamiast 0.3 i nie jest to błąd w twoim kodzie.

Ułamek w systemie dwójkowym
Cyfry po przecinku mają wagi będące ujemnymi potęgami dwójki: 12,14,18\frac{1}{2}, \frac{1}{4}, \frac{1}{8} i tak dalej.
101,1012=4+1+0,5+0,125=5,625101{,}101_2 = 4 + 1 + 0{,}5 + 0{,}125 = 5{,}625
W drugą stronę część ułamkową mnożysz przez 2 i spisujesz części całkowite z góry na dół: 0,625 → 1,25 (1) → 0,5 (0) → 1,0 (1), czyli 0,101.
Dlaczego 0,1 nie istnieje dokładnie
Powtórz tę procedurę dla 0,1: 0,2 → 0,4 → 0,8 → 1,6 → 1,2 → 0,4 — i wracasz do wartości, która już była. Rozwinięcie jest nieskończone i okresowe, dokładnie jak 13\frac{1}{3} w systemie dziesiętnym.
Komputer musi je gdzieś uciąć, więc przechowuje wartość odrobinę różną od 0,1. Suma trzech takich liczb nie daje równo 0,3 i stąd bierze się słynny wydruk z końcówką.

Wniosek praktyczny: liczb rzeczywistych nigdy nie porównuj przez równość. Zamiast a == b sprawdzaj, czy |a - b| < 0,000001. Kwoty pieniężne trzymaj w groszach jako liczby całkowite.

Budowa liczby zmiennoprzecinkowej (IEEE 754)
Liczba rzeczywista jest zapisywana jak w notacji naukowej, tyle że dwójkowo: (−1)znak⋅mantysa⋅2cecha(-1)^{znak} \cdot mantysa \cdot 2^{cecha}. Pamięć dzieli się na trzy części:
float  (32 bity):  1 bit znak | 8 bitow cecha  | 23 bity mantysa
double (64 bity):  1 bit znak | 11 bitow cecha | 52 bity mantysa

Mantysa odpowiada za precyzję — ile cyfr znaczących liczba zachowa. Cecha (wykładnik) odpowiada za zakres — jak bardzo dużą lub małą liczbę da się zapisać. Dlatego typ float obsługuje liczby rzędu 103810^{38}, ale gwarantuje tylko około siedmiu cyfr znaczących, a double około piętnastu.

Stąd praktyczna zasada z zadań programistycznych: liczniki, indeksy i identyfikatory trzymamy w typach całkowitych, a typów rzeczywistych używamy tam, gdzie naprawdę potrzebny jest ułamek — i nigdy do warunku sprawdzającego równość.

7

Grafika Cyfrowa: Rastrowa i Wektorowa

W informatyce obraz cyfrowy można zapisać na dwa zasadnicze sposoby. Wybór odpowiedniego formatu zależy od tego, czy zależy nam na oddaniu fotorealistycznych detali, czy na bezstratnym skalowaniu i małym rozmiarze pliku przy prostych kształtach.

Grafika Rastrowa (Piksele)
Obraz zbudowany jest z prostokątnej siatki małych kwadratów (pikseli), z których każdy ma przypisaną wartość koloru. Świetnie sprawdza się w fotografii, ale przy mocnym powiększeniu traci na jakości (pojawia się "pikseloza").
Popularne rozszerzenia
.JPG.PNG.GIF.WebP
Grafika Wektorowa (Matematyka)
Obraz definiowany jest za pomocą równań matematycznych opisujących punkty, linie, krzywe i figury geometryczne. Można go skalować w nieskończoność bez żadnej utraty jakości. Idealna do logotypów, ikon i typografii.
Popularne rozszerzenia
.SVG.EPS.AI.PDF
Teoria opanowana? Sprawdź się!

Konwersja U2 i obliczanie wagi plików graficznych lubią wypadać z głowy. Przetestuj swoją pamięć i weź udział w szybkim quizie z reprezentacji danych przygotowanym specjalnie pod arkusz CKE.

Rozwiąż Quiz z Reprezentacji Danych 🚀

Przeczytaj też
Informatyka czy fizyka na rozszerzeniu?

Porównanie obu egzaminów: forma, materiał, czas przygotowania i test decyzyjny na dziesięć pytań.

Korepetycje z informatyki

Zdajesz maturę rozszerzoną z informatyki?

Prowadzimy indywidualne przygotowanie do matury z informatyki — algorytmy, Python i C++, bazy danych i arkusz kalkulacyjny. Zajęcia online, na arkuszach CKE. Zobacz program i cennik.

Zobacz korepetycje z informatyki

Uczysz się w technikum informatycznym? Prowadzimy też przygotowanie do kwalifikacji INF.02, INF.03 i INF.04. Zobacz egzaminy zawodowe →