KWALIFIKACJA INF2 + INF3 - CZERWIEC 2008

PYTANIE NR 13.
Po wykonaniu podanego ciągu instrukcji zmienna z przyjmie wartość


Var
x, y, z: Byte
------------------
x:=3;
y:=2;
z:=(x + y) div y;



A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Najpierw oblicza się (x + y): 3 + 2 = 5.
Następnie wykonywane jest dzielenie całkowite: 5 div 2 daje 2 (część ułamkowa jest odrzucana, reszta nie jest zwracana). Dlatego zmienna z przyjmie wartość 2, co mieści się w zakresie typu Byte.

Pełne wyjaśnienie:

W kodzie wykonujesz kolejno przypisania: x:=3 oraz y:=2. Kluczowe jest wyrażenie z:=(x + y) div y.

Najpierw działają nawiasy, więc liczysz sumę: (x + y) = 3 + 2 = 5. Dopiero potem wykonywany jest operator div, czyli dzielenie całkowite (iloraz całkowity). Oznacza to, że wynik dzielenia jest "obcięty" do części całkowitej, bez zaokrąglania i bez części ułamkowej.

Dla 5 i 2 otrzymujesz: 5 ÷ 2 = 2 z resztą 1, więc 5 div 2 = 2. To różni się od dzielenia zmiennoprzecinkowego, gdzie 5 / 2 dałoby 2,5.

Dlaczego pozostałe odpowiedzi nie pasują?

  • "5" to wynik samego dodawania (x + y), ale w programie jest jeszcze dzielenie.
  • "3" to wartość x, ale z jest obliczane z całego wyrażenia, a nie kopiowane z x.
  • "1" to typowa pułapka: jest to reszta z dzielenia 5 przez 2, czyli wynik operatora mod, a nie div.

Warto też pamiętać o typie Byte: przechowuje liczby całkowite z ograniczonego zakresu, więc operacje te pozostają w arytmetyce całkowitej, a wynik 2 jest poprawny i bezpieczny.

Dodatkowe pytania

Dodatkowe pytania (FAQ):

div to dzielenie całkowite (integer division).

Zwraca tylko część całkowitą ilorazu, bez reszty i bez zaokrąglania. Przykład: 5 div 2 = 2, bo 2*2 = 4 i zostaje reszta 1, która jest pomijana w wyniku.

Bo div działa na liczbach całkowitych i zwraca iloraz całkowity.

Wynik ułamkowy (0,5) jest odrzucany. Jeśli chcesz 2,5, używasz dzielenia rzeczywistego / (z odpowiednim typem zmiennoprzecinkowym).

div zwraca iloraz całkowity, a mod zwraca resztę z dzielenia.

Dla 5 i 2: 5 div 2 = 2, natomiast 5 mod 2 = 1. Na egzaminie to częsta pułapka: 1 kusi, ale dotyczy mod, nie div.

Postępuj zgodnie z kolejnością działań.

  • Najpierw nawias: (x + y)
  • Potem dzielenie całkowite przez y

Dla x=3 i y=2: (3+2)=5, a następnie 5 div 2 = 2.

Tak. Nawiasy mają najwyższy priorytet, więc wymuszają wykonanie obliczeń wewnątrz nich jako pierwszych.

W tym typie zadań nawias zwykle decyduje, czy najpierw liczysz sumę, czy dzielenie, więc zawsze zaczynaj od uproszczenia wyrażeń w nawiasach.

Typ Byte jest typem całkowitym, więc wspiera arytmetykę całkowitą i pasuje do operatora div.

Wpływa głównie na zakres wartości (ograniczony), ale w tym przykładzie wynik 2 mieści się w zakresie, więc nie ma ryzyka przepełnienia.

Operator / oznacza dzielenie rzeczywiste (z wynikiem ułamkowym), ale w praktyce zależy też od użytych typów i kompilatora.

Na egzaminie przyjmuje się rozróżnienie: div daje część całkowitą, a / służy do dzielenia z częścią ułamkową.

Najczęściej myli się div z / albo z mod.

Drugi typ błędu to pomijanie nawiasów i zła kolejność działań. Dobra metoda: policz najpierw nawiasy, potem wykonaj div i sprawdź, czy wynik jest "ucięty", a nie zaokrąglony.

Gdy interesuje Cię liczba pełnych jednostek.

Przykłady: ile pełnych paczek po 2 sztuki zrobisz z 5 elementów (5 div 2 = 2), ile pełnych godzin mieści się w 130 minutach (130 div 60 = 2). Resztę możesz wtedy liczyć operatorem mod.

Użyj metody "ile razy dzielnik mieści się w dzielnej".

Dla 5 div 2: 2 mieści się w 5 dwa razy (2*2=4), a kolejny raz dałby 6, czyli za dużo. Wynik to 2. Reszta (1) nie trafia do wyniku div.

info

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

W praktyce zawodowej kluczowe jest to, że najpierw oblicza się (x + y): 3 + 2 = 5.Następnie wykonywane jest dzielenie całkowite: 5 div 2 daje 2 (część ułamkowa jest odrzucana, reszta nie jest zwracana).

Źródła:

  • Free Pascal Reference Guide (FPC), rozdział "Expressions / Operators" – opis operatorów div i mod: https://www.freepascal.org/docs-html/ref/refsu4.html (dostęp: 2026-03-02)
  • Embarcadero DocWiki (Delphi/Object Pascal), hasło dotyczące operatorów "div" i "mod": https://docwiki.embarcadero.com/RADStudio/en/Arithmetic_Operators_(Delphi) (dostęp: 2026-03-02)
  • Free Pascal Wiki, opis typu Byte i typów całkowitych: https://wiki.freepascal.org/Byte (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja Free Pascal: rozdział o operatorach arytmetycznych (div, mod)
  • Materiały szkolne z podstaw programowania strukturalnego (Pascal)
  • Zestawy zadań z wyrażeń arytmetycznych i kolejności działań w Pascalu

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego