KWALIFIKACJA INF2 + INF3 - CZERWIEC 2008

PYTANIE NR 18.
Programowanie w językach wysokiego poziomu wiąże się z częstym podejmowaniem wielu decyzji. W związku z tym w programie źródłowym języka Pascal należy zastosować instrukcję
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Instrukcja case ... of służy w Pascalu do wyboru jednej z wielu gałęzi wykonania na podstawie wartości wyrażenia, czyli do podejmowania "wielu decyzji". Pozostałe odpowiedzi (while, for, repeat until) opisują pętle, a więc wielokrotne powtarzanie, nie wybór wielowariantowy.

Pełne wyjaśnienie:

W Pascalu konstrukcje sterujące dzielą się m.in. na instrukcje wyboru (selekcja) oraz instrukcje iteracyjne (pętle). Sformułowanie "częste podejmowanie wielu decyzji" odnosi się do sytuacji, w której program ma wybrać jedną z wielu możliwych ścieżek działania.

Do tego celu służy instrukcja case wyrażenie of. Działa ona jak wybór wielowariantowy: najpierw obliczane jest wyrażenie, a następnie wykonywany jest dokładnie ten fragment kodu, który odpowiada dopasowanej wartości (jednej z wielu możliwych). Taka konstrukcja porządkuje logikę programu i często zastępuje długi łańcuch if-then-else, gdy rozgałęzienie zależy od jednej zmiennej lub wyrażenia.

Pozostałe propozycje nie są "wieloma decyzjami", tylko mechanizmem powtarzania:

  • While warunek Do to pętla z warunkiem sprawdzanym na początku. Decyzja dotyczy tego, czy wykonać kolejną iterację, ale nie jest to wybór jednej z wielu opcji.
  • For wartość_początkowa To wartość_końcowa Do to pętla licznikowa, używana do wykonania bloku kodu określoną liczbę razy. To nadal iteracja, nie selekcja wielowariantowa.
  • Repeat Until to pętla z warunkiem sprawdzanym na końcu (blok wykona się co najmniej raz). Ponownie: decyzja dotyczy kontynuacji powtarzania, a nie wyboru spośród wielu wariantów.

Wskazówka egzaminacyjna: gdy w treści pojawia się "wiele opcji", "menu", "różne wartości" albo "kilka wariantów działania" zależnych od jednej zmiennej, najczęściej chodzi o instrukcję wyboru typu case, a nie o pętlę.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Instrukcja case to wybór wielowariantowy: na podstawie wartości wyrażenia wykonywana jest jedna z wielu gałęzi kodu. Stosuje się ją, gdy logika programu zależy od jednej zmiennej (np. numeru opcji menu), a alternatyw jest więcej niż dwie.
Gdy opis mówi o wyborze jednej z wielu opcji (np. "kilka wariantów", "różne przypadki", "menu"), zwykle pasuje selekcja (case/if). Pętla jest właściwa, gdy zadanie dotyczy powtarzania tych samych działań aż do spełnienia warunku lub określonej liczby iteracji.
Pętla while podejmuje w kółko jedną decyzję: czy wykonać następną iterację (warunek prawda/fałsz). Nie wybiera jednej z wielu gałęzi działania. Do rozgałęzień wielowariantowych w Pascalu służy raczej case lub rozbudowane if-then-else.
Pętli for używa się, gdy z góry znasz zakres powtórzeń (liczbę kroków), np. przetworzenie elementów tablicy od 1 do N. case służy do wyboru wariantu wykonania zależnie od wartości, a nie do wielokrotnego powtarzania tego samego bloku kodu.
repeat ... until to pętla z warunkiem sprawdzanym na końcu, więc jej ciało wykona się co najmniej raz. Działa do momentu, gdy warunek po until stanie się prawdziwy. To mechanizm iteracji, a nie wybór jednej z wielu ścieżek, jak w case.
Najczęściej są to: menu programu (wybór opcji 1/2/3…), obsługa kodów lub stanów (np. typ zdarzenia), przypisanie działania do konkretnej wartości zmiennej. Case poprawia czytelność w porównaniu do wielu zagnieżdżonych if.
Nie zawsze. case jest najlepszy, gdy wybór zależy od jednej wartości (np. liczby, znaku, typu wyliczeniowego) i masz jasno rozdzielone przypadki. Gdy warunki są złożone (np. zakresy, wiele zmiennych), często wygodniejszy jest if-then-else.
Typowy błąd to utożsamienie "wielu decyzji" z "wieloma powtórzeniami". Pętle (while/for/repeat) odpowiadają na pytanie "czy powtarzać dalej?", a case odpowiada "którą gałąź wybrać?". Na egzaminie warto szukać słów: wybór opcji vs powtarzaj.
Selekcja wybiera jednorazowo jedną ścieżkę na podstawie warunku lub wartości (case/if). Iteracja wykonuje ten sam fragment kodu wielokrotnie (for/while/repeat). Jeśli w opisie zadania jest "dla każdego elementu", "N razy", "aż do", to zwykle iteracja.
Powtórz role i składnię: if, case, for, while, repeat. Trenuj rozpoznawanie z treści: czy problem wymaga wyboru wariantu, czy powtarzania. Pomaga też pisanie krótkich programów: menu (case) i przetwarzanie tablic (for/while).
info

Statystycznie 59% uczniów zna prawidłową odpowiedź. średnie

Specjaliści zwracają uwagę: "Instrukcja case ... of służy w Pascalu do wyboru jednej z wielu gałęzi wykonania na podstawie wartości wyrażenia, czyli do podejmowania "wielu decyzji"."

Źródła:

  • Free Pascal Reference Guide: "Statements" (Case statement) – https://www.freepascal.org/docs-html/ref/refsu43.html (dostęp: 2026-02-27)
  • Free Pascal Reference Guide: "Statements" (While / For / Repeat statements) – https://www.freepascal.org/docs-html/ref/refsu41.html (dostęp: 2026-02-27)
  • Wikibooks: "Pascal (język programowania)" – sekcja o instrukcjach sterujących i case – https://pl.wikibooks.org/wiki/Pascal (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja Free Pascal: rozdział o instrukcjach sterujących (case, while, for, repeat)
  • Podręcznik do podstaw programowania (selekcja vs iteracja) dla szkół ponadpodstawowych
  • Zestawy zadań z algorytmiki: rozgałęzienia wielowariantowe i pętle

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego