KWALIFIKACJA INF3 - CZERWIEC 2021 (test 2)

PYTANIE NR 8.
W języku JavaScript zadeklarowana zmienna i, która ma przechowywać wynik dzielenia wynoszący 1, to
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Wyrażenie 3/2 w JavaScript daje 1.5 (liczbę zmiennoprzecinkową).
parseInt(3/2) odcina część ułamkową i zwraca 1, więc zmienna i przechowuje wynik 1. Instrukcje z Number, samym 3/2 oraz parseFloat pozostawiają 1.5. To sposób uzyskania części całkowitej, choć często używa się też Math.floor/Math.trunc.

Pełne wyjaśnienie:

W JavaScript operator dzielenia / zwraca wynik jako wartość typu Number. Oznacza to, że nawet gdy dzielisz liczby wyglądające na całkowite (3 i 2), rezultat nie jest "dzieleniem całkowitym", tylko liczbą z częścią ułamkową: 3/2 = 1.5.

Jeżeli celem jest uzyskanie wartości 1 (bez części ułamkowej), trzeba wykonać dodatkową operację konwersji lub obcięcia ułamka. Wyrażenie parseInt(3/2) najpierw daje 1.5, a następnie parseInt zwraca część całkowitą, czyli w efekcie 1. Dlatego instrukcja var i = parseInt(3/2); spełnia warunek z treści zadania.

Dlaczego pozostałe propozycje nie pasują?

  • var i = Number(3/2); – funkcja Number konwertuje do typu Number, ale tu wynik 3/2 już jest liczbą (1.5). Nie następuje odcięcie ułamka, więc i będzie równe 1.5.
  • var i = 3/2; – bez żadnej konwersji i przechowuje dokładny wynik dzielenia, czyli 1.5.
  • var i = parseFloat(3/2);parseFloat zachowuje część ułamkową; przyjmując 1.5, zwróci 1.5, więc nie otrzymasz 1.

W praktyce, gdy chodzi o świadome obcięcie części ułamkowej liczby, często spotkasz też podejścia oparte o funkcje matematyczne (np. obcięcie w dół lub do zera). Na egzaminie kluczowe jest jednak rozpoznanie, że samo dzielenie nie da 1, tylko 1.5, a dopiero dodatkowa operacja (tu: parseInt) zmieni wynik na całkowity.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
W JavaScript operator / zwraca wynik jako liczbę typu Number, więc 3/2 daje 1.5, a nie 1. Nie ma tu automatycznego dzielenia całkowitoliczbowego.
Bo wynik dzielenia to 1.5, a parseInt zwraca część całkowitą (bez części po kropce). Dla 1.5 daje to 1, czyli efekt "odcięcia" ułamka.
Nie. Number(3/2) zwróci nadal 1.5, ponieważ 3/2 już jest liczbą. Number służy do konwersji na typ Number, a nie do usuwania części ułamkowej.
parseFloat zachowuje część ułamkową (np. 1.5 pozostaje 1.5), a parseInt zwraca część całkowitą. Dlatego parseFloat nie nadaje się do uzyskania wyniku 1 z 3/2.
Do obcięcia części ułamkowej często używa się funkcji matematycznych, np. obcięcia do zera albo w dół. W zadaniach egzaminacyjnych ważne jest, by rozumieć różnicę: jedne metody tylko zmieniają typ, a inne zmieniają wartość liczbową.
parseInt jest typowe do parsowania liczby całkowitej z tekstu (np. z pola formularza), a Number do konwersji całego zapisu na liczbę (często z częścią ułamkową). Wybór zależy od tego, czy ułamek ma zostać zachowany.
Ponieważ JavaScript nie wykonuje tu dzielenia całkowitego. Wynik 3/2 to 1.5, więc zmienna i będzie równa 1.5. Aby otrzymać 1, trzeba jawnie usunąć część ułamkową.
Nie zawsze należy przenosić intuicję z liczb dodatnich. Dla liczb ujemnych "obcięcie" może dawać inny efekt niż zaokrąglanie w dół. Na egzaminie warto odróżniać: obcięcie części ułamkowej to co innego niż klasyczne zaokrąglenie.
Częsty błąd to założenie dzielenia całkowitoliczbowego (jak w niektórych językach) i wybór odpowiedzi bez sprawdzenia, że 3/2 daje 1.5. Drugi błąd to mylenie konwersji typu (Number) z usuwaniem ułamka.
Przećwicz na przykładach różnice między parseInt, parseFloat i Number, szczególnie dla wartości z kropką. Warto też rozumieć, że operatory (np. /) zwracają liczby zmiennoprzecinkowe, a konwersje mogą zmienić wynik.
info

To pytanie poprawnie rozwiązuje 61% zdających egzamin. średnie

Eksperci podkreślają: "Wyrażenie 3/2 w JavaScript daje 1.5 (liczbę zmiennoprzecinkową).parseInt(3/2) odcina część ułamkową i zwraca 1, więc zmienna i przechowuje wynik 1."

Źródła:

  • MDN Web Docs: parseInt() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt (dostęp: 2026-02-27)
  • MDN Web Docs: Number() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number (dostęp: 2026-02-27)
  • MDN Web Docs: parseFloat() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja MDN: parseInt, Number, parseFloat
  • Kurs podstaw JavaScript: typy danych i konwersje
  • Ćwiczenia: porównanie Math.floor, Math.trunc, parseInt na różnych wartościach

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego