KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2012

PYTANIE NR 3.
Do reprezentacji średniej arytmetycznej należy użyć typu danych
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Średnia arytmetyczna często ma część ułamkową (np. (1+2)/2 = 1,5), więc do jej reprezentacji potrzebny jest typ zmiennoprzecinkowy. Spośród podanych odpowiedzi tylko real przechowuje liczby rzeczywiste, a longint, integer i byte są typami całkowitymi.

Pełne wyjaśnienie:

Średnia arytmetyczna jest ilorazem sumy wartości i liczby elementów. Nawet gdy wszystkie dane wejściowe są całkowite, wynik średniej nie musi być całkowity. Przykład: (1 + 2) / 2 = 1,5. Taki wynik wymaga zapisu części ułamkowej, dlatego w programowaniu stosuje się typy zmiennoprzecinkowe (liczby rzeczywiste).

W zestawie odpowiedzi typ real oznacza typ przeznaczony do przechowywania liczb rzeczywistych (z częścią ułamkową), więc jest właściwy do reprezentacji średniej.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • longint – to typ całkowity. Zapisze 1,5 jako 1 (obcięcie) albo wymusi inne niepożądane zachowanie zależne od języka/konwersji, tracąc część ułamkową.
  • integer – również typ całkowity, zatem ma ten sam problem: brak możliwości przechowania części po przecinku.
  • byte – typ całkowity o małym zakresie. Oprócz braku ułamków może szybko doprowadzić do przepełnienia przy sumowaniu większej liczby wartości.

W praktyce (szczególnie w nowoczesnych językach) spotkasz nazwy takie jak float lub double, ale idea jest identyczna: do średniej wybierasz typ, który przechowuje ułamki. Dodatkowo warto pamiętać o rzutowaniu: gdy dzielisz liczby całkowite, upewnij się, że dzielenie jest wykonywane w arytmetyce rzeczywistej, aby nie utracić części ułamkowej.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Typ zmiennoprzecinkowy to typ liczbowy pozwalający zapisywać wartości z częścią ułamkową, np. 1,5. Stosuje się go do obliczeń, w których wynik może nie być całkowity, np. średnie, pomiary, obliczenia fizyczne.
Bo średnia to suma podzielona przez liczbę elementów i często daje wynik niecałkowity. Nawet gdy dane są całkowite, dzielenie może dać ułamek (np. 3/2 = 1,5), którego nie zapiszesz w typie całkowitym.
W typie całkowitym nie przechowasz części ułamkowej, więc wynik może zostać obcięty lub zaokrąglony po konwersji. To prowadzi do błędnych raportów i statystyk. Rozwiązanie: użyj typu rzeczywistego i wykonuj dzielenie w arytmetyce rzeczywistej.
W typowych językach z rodziny Pascal wszystkie trzy (byte, integer, longint) są typami całkowitymi, różnią się głównie zakresem. Nadają się do liczenia sztuk, indeksów i liczników, ale nie do przechowywania ułamków.
Typ real jest przeznaczony do liczb rzeczywistych, czyli takich, które mogą mieć część po przecinku. Dzięki temu można w nim przechowywać wyniki dzielenia, średnie, wartości pomiarów oraz wyniki obliczeń wymagających ułamków.
Nie. Średnia może być całkowita (np. (2+4)/2 = 3), ale nie ma gwarancji, że tak będzie. Ponieważ w zadaniach i w praktyce często trafiają się ułamki, bezpiecznie jest używać typu rzeczywistego do reprezentacji średniej.
Trzeba dopilnować, aby co najmniej jeden operand dzielenia był typu rzeczywistego (np. przez rzutowanie/konwersję) i aby zmienna na wynik była typu rzeczywistego. Wtedy obliczenia wykonają się z częścią ułamkową zamiast obcinania.
Byte jest typem całkowitym, więc nie zapisze części ułamkowej. Dodatkowo ma mały zakres, więc przy sumowaniu wielu wartości łatwo o przepełnienie. Do średniej zwykle stosuje się typ rzeczywisty (np. real) oraz odpowiednio duży typ do sumy.
Najczęściej zakładają, że skoro dane wejściowe są całkowite, to wynik też będzie całkowity. Drugi błąd to wybór większego typu całkowitego (np. longint) zamiast rzeczywistego. Warto zapamiętać: średnia = dzielenie, a dzielenie często daje ułamki.
Powtórz podział na typy całkowite i rzeczywiste oraz ich zastosowania. Ćwicz krótkie zadania: suma, średnia, procenty, dzielenie. Zwracaj uwagę na to, czy wynik może być ułamkowy i kiedy potrzebna jest konwersja typu.
info

Statystycznie 73% uczniów zna prawidłową odpowiedź. średnio łatwe

Według specjalistów z branży: "Średnia arytmetyczna często ma część ułamkową (np. (1+2)/2 = 1,5), więc do jej reprezentacji potrzebny jest typ zmiennoprzecinkowy."

Źródła:

  • Free Pascal Reference Guide (FPC), sekcja "Data types" / "Real types" (dokumentacja online): https://www.freepascal.org/docs-html/ref/refsu4.html - accessed 2026-02-18
  • Embarcadero DocWiki (Delphi), opis typów prostych i typów rzeczywistych (Real/Single/Double): https://docwiki.embarcadero.com/RADStudio/en/Simple_Types_(Delphi) - accessed 2026-02-18
  • IEEE Computer Society, IEEE 754 Floating-Point Standard (opis idei liczb zmiennoprzecinkowych): https://standards.ieee.org/ieee/754/6210/ - accessed 2026-02-18

Materiały:

  • Dokumentacja języka używanego na zajęciach/egzaminie (sekcja o typach liczbowych)
  • Materiały o typach całkowitych i zmiennoprzecinkowych oraz o błędach zaokrągleń
  • Zadania praktyczne: implementacja średniej z listy liczb i testowanie wyników ułamkowych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego