KWALIFIKACJA INF2 + INF3 - CZERWIEC 2013

PYTANIE NR 10.
W języku C++ zmienna o pojedynczej precyzji, to zmienna typu
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Pojedyncza precyzja w C++ odnosi się do standardowego typu zmiennoprzecinkowego przeznaczonego do liczb rzeczywistych o mniejszej dokładności niż double. Tym typem jest float. Pozostałe propozycje nie odpowiadają pojęciu "single precision" w C++ lub nie są kanonicznymi nazwami typów języka.

Pełne wyjaśnienie:

W C++ pojęcie pojedynczej precyzji jest używane w kontekście liczb zmiennoprzecinkowych (ang. floating-point). W praktyce oznacza to typ, który zwykle oferuje mniejszą dokładność i zakres niż typ podwójnej precyzji, a jednocześnie często jest szybszy i zajmuje mniej pamięci.

Typem zmiennoprzecinkowym pojedynczej precyzji w C++ jest float. Dlatego odpowiedź "float" jest poprawna: to podstawowy (wbudowany) typ przeznaczony do przechowywania wartości z częścią ułamkową, typowo z mniejszą precyzją niż double.

Dlaczego pozostałe odpowiedzi są niepoprawne:

  • "byte" – w samym języku C++ nie jest to klasyczna, wbudowana nazwa typu zmiennoprzecinkowego pojedynczej precyzji. W praktyce "byte" kojarzy się z bajtem (8 bitów) i typami do danych binarnych, a nie z "single precision".
  • "char" – jest to typ znakowy/całkowity używany do przechowywania znaków lub małych wartości całkowitych. Nie służy do reprezentacji liczb rzeczywistych w formacie zmiennoprzecinkowym.
  • "integer" – taka nazwa nie jest kanonicznym wbudowanym typem w C++ (w C++ występuje m.in. int). Dodatkowo typy całkowite nie są typami zmiennoprzecinkowymi i nie opisuje się ich zwykle kategoriami "pojedyncza/podwójna precyzja".

Wskazówka egzaminacyjna: gdy w pytaniu pojawia się "pojedyncza precyzja", myśl o parze float (single) i double (double). Jeśli mowa o typach znakowych lub całkowitych, to inne zagadnienie niż precyzja zmiennoprzecinkowa.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Pojedyncza precyzja oznacza standardowy format liczb zmiennoprzecinkowych o mniejszej dokładności niż podwójna precyzja. W C++ odpowiada temu typ float. Używa się go do liczb rzeczywistych, gdy wystarcza mniejsza dokładność i liczy się pamięć lub wydajność.
W C++ podstawowe typy zmiennoprzecinkowe to najczęściej float, double oraz long double. Różnią się typową precyzją i zakresem. W praktyce "pojedyncza precyzja" jest kojarzona z float, a "podwójna" z double.
Bo float jest w C++ wbudowanym typem do liczb zmiennoprzecinkowych klasyfikowanym jako format pojedynczej precyzji. Pytanie dotyczy precyzji zmiennoprzecinkowej, więc właściwy jest typ z tej grupy, a nie typ całkowity czy znakowy.
Nie. char jest typem znakowym (i jednocześnie całkowitym w sensie kategorii typów), używanym do znaków lub małych wartości całkowitych. "Pojedyncza precyzja" odnosi się do liczb zmiennoprzecinkowych, więc dotyczy typu float, a nie char.
W C++ typy całkowite mają nazwy takie jak short, int, long (oraz ich wersje ze znakiem/bez znaku). Nazwa integer bywa spotykana w innych językach lub opisach, ale nie jest kanoniczną nazwą wbudowanego typu w C++.
W zadaniach egzaminacyjnych najczęściej oczekuje się typów podstawowych języka, takich jak int, char, float, double. Określenie "byte" bywa używane potocznie na 8 bitów danych, ale nie jest klasyczną nazwą typu zmiennoprzecinkowego i może wprowadzać w błąd.
Szukaj słów związanych z liczbami rzeczywistymi: "zmiennoprzecinkowy", "ułamek", "precyzja", "single/double precision". To wskazuje na float lub double. Gdy mowa o liczbach całkowitych bez ułamka, wtedy pasują typy całkowite, np. int.
float stosuje się m.in. w grafice i grach (pozycje, wektory), w odczytach z czujników i pomiarach oraz w obliczeniach, gdzie nie jest wymagana maksymalna dokładność. To kompromis między precyzją a zużyciem pamięci i szybkością obliczeń.
double zwykle oferuje większą dokładność obliczeń i mniejszy błąd zaokrągleń, co jest ważne np. w obliczeniach finansowych, naukowych lub przy długich łańcuchach działań. Jeśli w zadaniu liczy się precyzja wyniku, double bywa bezpieczniejszym wyborem niż float.
Częste błędy to mylenie typów całkowitych ze zmiennoprzecinkowymi oraz interpretowanie "pojedynczej precyzji" jako "mały rozmiar" dowolnego typu. Drugi typ błędu to sugerowanie się nazwami z innych języków (np. "integer", "byte") zamiast rozpoznania, że w C++ chodzi o float.
info

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

W praktyce zawodowej kluczowe jest to, że pojedyncza precyzja w C++ odnosi się do standardowego typu zmiennoprzecinkowego przeznaczonego do liczb rzeczywistych o mniejszej dokładności niż double.

Źródła:

  • cppreference.com: "Fundamental types" (sekcja o floating-point types) https://en.cppreference.com/w/cpp/language/types (dostęp: 2026-03-01)
  • cppreference.com: "float" (opis typu i klasyfikacja jako floating-point) https://en.cppreference.com/w/cpp/language/types#Floating-point_types (dostęp: 2026-03-01)
  • Microsoft Learn: "Floating-point types (C++)" https://learn.microsoft.com/en-us/cpp/cpp/floating-point-types (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja cppreference: fundamental types i opis typu float
  • Materiały kursowe z podstaw C++ (typy, deklaracje zmiennych, literały)
  • Zadania praktyczne: porównanie wyników obliczeń w float i double

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego