KWALIFIKACJA INF2 + INF3 - CZERWIEC 2015

PYTANIE NR 8.
W języku Pascal odpowiednikiem instrukcji wyboru switch z języka C jest
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W Pascalu odpowiednikiem instrukcji wielowariantowego wyboru switch z C jest konstrukcja case ... of ... end. Umożliwia wybór jednej z wielu gałęzi na podstawie wartości wyrażenia. Pozostałe propozycje (when/do, select case) pochodzą z innych języków, a if... else to zwykle wybór dwuwariantowy.

Pełne wyjaśnienie:

Instrukcja switch w języku C służy do wielowariantowego wyboru: program oblicza wartość wyrażenia i na tej podstawie wykonuje jedną z wielu możliwych gałęzi (case). W języku Pascal tę samą rolę pełni instrukcja case ... of (zakończona zwykle słowem end).

Dlaczego "case ... of ..." jest poprawne?
W Pascalu zapis case wyrazenie of pozwala przypisać konkretne wartości (lub zakresy, zależnie od dialektu) do odpowiednich bloków instrukcji. To bezpośredni odpowiednik idei "wybierz jedną z wielu opcji na podstawie wartości", czyli tego, co robi switch w C.

Dlaczego pozostałe odpowiedzi są błędne?

  • when ... do ... – taka konstrukcja nie jest typową składnią Pascala dla wyboru wielowariantowego; kojarzy się raczej z innymi językami (np. konstrukcjami dopasowania wzorca lub wyrażeń warunkowych w innych rodzinach języków).
  • select... case – to charakterystyczne dla innych środowisk/języków (np. Visual Basic), ale nie dla standardowego Pascala. Może kusić osoby, które znają inne języki, lecz nie jest poprawnym odpowiednikiem w Pascalu.
  • if... else ... – jest instrukcją warunkową, zwykle używaną do wyboru dwuwariantowego (prawda/fałsz). Da się nią zasymulować wielowariantowy wybór przez zagnieżdżanie wielu warunków, ale nie jest to odpowiednik konstrukcji switch/case w sensie składniowej instrukcji wyboru wielowariantowego.

Wskazówka egzaminacyjna: gdy pytanie dotyczy odpowiednika switch, szukaj odpowiedzi związanej z case i wieloma wariantami. Jeśli widzisz "select case", potraktuj to jako pułapkę z innego języka.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Instrukcja wyboru pozwala wykonać różne fragmenty kodu w zależności od warunku lub wartości wyrażenia. Najczęściej spotkasz if...else (zwykle 2 warianty) oraz wybór wielowariantowy typu switch/case lub case...of.
Instrukcja case ... of wybiera jedną gałąź wykonania na podstawie wartości wyrażenia. Dla każdej dopuszczalnej wartości (czasem także zakresu) definiuje się blok instrukcji, a całość kończy się zwykle słowem end.
Obie konstrukcje realizują selekcję wielowariantową: najpierw obliczana jest wartość, a następnie wybierany jest pasujący wariant. Różni się składnia, ale cel jest ten sam: czytelna obsługa wielu możliwych przypadków.
Tak, można zbudować łańcuch if...else if...else i uzyskać podobny efekt logiczny. To jednak nie jest "odpowiednik składniowy". Przy wielu wariantach case...of bywa czytelniejsze i łatwiejsze do utrzymania.
Zapis select case jest typowy dla innych języków, np. rodziny Visual Basic. W testach bywa używany jako dystraktor dla osób, które przenoszą nawyki między językami. W Pascalu standardowo stosuje się case ... of.
W klasycznym Pascalu nie jest to standardowa instrukcja wyboru. Taki zapis kojarzy się raczej z innymi językami i konstrukcjami warunkowymi. Na egzaminie, przy pytaniu o odpowiednik switch, szukaj przede wszystkim case ... of.
Najczęściej myli się: if...else z wyborem wielowariantowym, wybiera się select case z przyzwyczajenia do innego języka, albo ignoruje się fakt, że pytanie dotyczy odpowiednika instrukcji, a nie ogólnej "instrukcji warunkowej".
Sygnałem są słowa typu "odpowiednik switch", "instrukcja wyboru", "wiele przypadków". Wtedy poprawna odpowiedź zwykle dotyczy konstrukcji z case. Pytania o 2 warianty zwykle celują w if...else.
Gdy masz wiele stałych wariantów zależnych od jednej wartości (np. numer opcji menu). case...of porządkuje kod i ułatwia dopisywanie kolejnych przypadków. Łańcuch if...else szybciej staje się mało czytelny.
Ćwicz rozpoznawanie struktur: sekwencja, selekcja, iteracja. Rób krótkie przykłady: menu, oceny, kody błędów. Dodatkowo porównuj konstrukcje z C (if/switch/for/while) z Pascalem (if/case/for/while/repeat).
info

To pytanie poprawnie rozwiązuje 83% zdających egzamin. średnio łatwe

Eksperci podkreślają: "W Pascalu odpowiednikiem instrukcji wielowariantowego wyboru switch z C jest konstrukcja case ..."

Źródła:

  • Free Pascal Reference Guide – rozdział/sekcja "Case statement" (instrukcja case ... of) – https://www.freepascal.org/docs-html/ref/refse46.html (dostęp: 2026-02-18)
  • Embarcadero Delphi DocWiki – opis instrukcji "case" w Object Pascal – https://docwiki.embarcadero.com/RADStudio/en/Case_Statements (dostęp: 2026-02-18)
  • cppreference.com – opis instrukcji "switch statement" w C/C++ (dla porównania pojęcia) – https://en.cppreference.com/w/c/language/switch (dostęp: 2026-02-18)

Materiały:

  • Dokumentacja Free Pascal: rozdział o instrukcji case
  • Materiały do nauki podstaw programowania (struktury sterujące: sekwencja, selekcja, iteracja)
  • Porównania składni C i Pascala w kontekście instrukcji sterujących

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego