KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2009

W bazie jest mniej pytań spełniających podane kryteria niż wybrano. Wylosowano 49 pytań.
PYTANIE NR 1.
W zmiennej ma być przechowywana informacja w postaci liczbowej o numerze dnia w każdym miesiącu. Który z typów w języku Pascal należy zastosować, aby kompilator zarezerwował najmniejszą ilość pamięci
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
"Byte" jest typem całkowitym przeznaczonym do przechowywania małych liczb (zwykle 0–255), więc bez problemu obejmuje numery dni 1–31 i jednocześnie zajmuje najmniej pamięci spośród podanych opcji.
"Integer" i "Real" są większe, a "Char" służy do znaków, nie do zapisu liczbowego dnia.

Pełne wyjaśnienie:

W zadaniu trzeba przechować numer dnia miesiąca, czyli wartość całkowitą z niewielkiego zakresu (w praktyce 1–31). Aby kompilator zarezerwował jak najmniej pamięci, należy dobrać typ o możliwie małym rozmiarze, ale nadal mieszczący wymagany zakres.

Odpowiedź "Byte" jest poprawna, ponieważ jest to mały typ całkowity przeznaczony do przechowywania niewielkich wartości nieujemnych (typowo do 255). Zakres ten zdecydowanie wystarcza na liczby 1–31, więc nie ma potrzeby używania większych typów.

Dlaczego pozostałe propozycje są niepoprawne:

  • "Integer" – również przechowuje liczby całkowite, ale zwykle zajmuje więcej pamięci niż Byte. Wybór "na zapas" zwiększa zużycie pamięci bez korzyści, bo zakres 1–31 jest bardzo mały.
  • "Real" – to typ zmiennoprzecinkowy do liczb z częścią ułamkową. Numer dnia nie wymaga ułamków, a typy zmiennoprzecinkowe są większe i mogą wprowadzać problemy z dokładnością (reprezentacja przybliżona).
  • "Char" – służy do przechowywania pojedynczego znaku (np. 'A' albo '7'), a nie wartości liczbowej w sensie arytmetycznym. Da się kodować cyfry jako znaki, ale to zmienia znaczenie danych i utrudnia obliczenia.

W praktyce zasada jest prosta: dobieraj typ danych do rzeczywistego zakresu. Jeśli wartości są małe (jak dni miesiąca), wybór najmniejszego sensownego typu całkowitego pomaga oszczędzać pamięć, zwłaszcza gdy takich pól jest dużo (np. w tablicach lub rekordach).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Byte to prosty typ całkowity przeznaczony do przechowywania małych wartości nieujemnych. Stosuje się go, gdy zakres danych jest niewielki (np. 0–255), dzięki czemu oszczędza się pamięć w porównaniu z większymi typami całkowitymi.
Integer ma dużo większy zakres niż potrzeba do wartości 1–31, więc zwykle zajmuje więcej pamięci. W pojedynczej zmiennej to mały koszt, ale w tablicach lub rekordach (wielu wpisach) różnica rozmiaru typu może realnie zwiększać zużycie pamięci.
Char przechowuje znak (np. '1' lub 'A'), a nie liczbę do obliczeń. Da się zapisać dzień jako znak lub dwa znaki, ale wtedy trudniej wykonywać porównania i działania arytmetyczne. Do liczbowego dnia lepszy jest typ całkowity.
Real służy do liczb zmiennoprzecinkowych (z częścią ułamkową). Dzień miesiąca jest liczbą całkowitą, więc użycie Real jest niepotrzebne i zwykle zajmuje więcej pamięci. Dodatkowo liczby zmiennoprzecinkowe bywają zapisywane przybliżenie.
Najpierw określ minimalną i maksymalną wartość, jaką dane mogą przyjąć. Następnie wybierz najmniejszy typ, który obejmuje ten zakres (np. mały typ całkowity dla wartości 1–31). To typowa metoda optymalizacji pamięci w strukturach danych.
Tak, w wielu implementacjach Pascala istnieją typy podzakresowe (subrange), które pozwalają zadeklarować zakres, np. 1..31. To zwiększa czytelność i może ułatwiać wykrywanie błędów, ale rozmiar w pamięci zależy od kompilatora i ustawień.
Częsty błąd to wybór typu "na zapas" (np. Integer lub Real), bez analizy zakresu danych. Drugi błąd to mylenie typu znakowego z liczbowym (Char vs typy całkowite). Warto zawsze sprawdzić, czy potrzebujesz ułamków i jaki jest zakres wartości.
Gdy przechowujesz dużo rekordów w pamięci (tablice, listy, buforowanie danych) lub zapisujesz duże pliki binarne. Wtedy każdy bajt w polu rekordu mnoży się przez liczbę elementów. Dla pojedynczej zmiennej w małym programie różnica jest zwykle pomijalna.
Typy całkowite (np. Byte, Integer) przechowują liczby bez części ułamkowej i są dobre do indeksów, liczników, dni, sztuk itp. Typy zmiennoprzecinkowe (np. Real) służą do pomiarów i obliczeń z ułamkami, ale zwykle zajmują więcej pamięci i mają ograniczoną dokładność.
Utrwal podstawowe typy (liczbowe, znakowe, logiczne), ich zastosowania i typowe konsekwencje wyboru (pamięć, zakres, dokładność). Ćwicz na krótkich zadaniach: dobierz typ do opisu danych i uzasadnij wybór. To często pojawia się w testach z podstaw programowania.
info

Statystycznie 58% uczniów zna prawidłową odpowiedź. średnie

Źródła:

  • Free Pascal Reference Guide: "Data types" – opis typów całkowitych (m.in. Byte jako 0..255), https://www.freepascal.org/docs-html/ref/refse3.html (dostęp: 2026-02-27)
  • Free Pascal Wiki: "Integer types" – zestawienie typów całkowitych i ich zastosowań, https://wiki.freepascal.org/Integer_types (dostęp: 2026-02-27)
  • Embarcadero Delphi DocWiki: "Simple types (Delphi)" – omówienie typów prostych (w tym Char oraz typów liczbowych), https://docwiki.embarcadero.com/RADStudio/en/Simple_Types_(Delphi) (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja Free Pascal: rozdział o typach danych i zakresach
  • Podręczniki do Pascala dla szkół średnich: typy proste, podzakresy, rekordy
  • Materiały o reprezentacji liczb w pamięci (bajt, słowo, zakresy typów całkowitych)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego