KWALIFIKACJA INF2 + INF3 - CZERWIEC 2007

PYTANIE NR 31.
W programach strukturalnych nie należy stosować instrukcji
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W programowaniu strukturalnym dąży się do przepływu sterowanego przez sekwencję, instrukcje warunkowe i pętle. Instrukcja goto wprowadza skoki do dowolnego miejsca kodu, co utrudnia analizę, testowanie i utrzymanie programu. Pozostałe opcje (pętle i warunek) są typowymi konstrukcjami strukturalnymi.

Pełne wyjaśnienie:

Programowanie strukturalne opiera się na założeniu, że program powinien być budowany z czytelnych, zagnieżdżalnych bloków sterujących, które pozwalają łatwo prześledzić przebieg wykonania. Klasycznie wyróżnia się trzy podstawowe formy sterowania: sekwencję (wykonywanie instrukcji po kolei), selekcję (wybór gałęzi na podstawie warunku) oraz iterację (powtarzanie fragmentu kodu).

Dlaczego poprawna jest odpowiedź "goto"?
Instrukcja goto realizuje skok do wskazanego miejsca programu (np. etykiety). Taki skok może "przerywać" naturalną strukturę blokową, tworzyć wiele wejść/wyjść z fragmentu kodu i powodować, że kontrola przepływu staje się trudna do przewidzenia. W praktyce prowadzi to do gorszej czytelności, większego ryzyka błędów i trudniejszego debugowania. Z tego powodu w ujęciu strukturalnym jej stosowanie jest co do zasady niezalecane (wyjątki zależą od języka i konwencji, ale nie zmienia to ogólnej zasady egzaminacyjnej).

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • repeat until – to pętla (iteracja) o strukturze blokowej. Należy do podstawowych konstrukcji sterujących w podejściu strukturalnym.
  • if then else – to instrukcja warunkowa (selekcja), czyli kluczowy element programowania strukturalnego.
  • for – to pętla o z góry określonej liczbie iteracji (iteracja), również typowa dla programowania strukturalnego.

Wskazówka egzaminacyjna: jeśli pytanie dotyczy programowania strukturalnego, szukaj odpowiedzi związanej ze "swobodnym skokiem" zaburzającym strukturę bloków. Pętle i warunki to zwykle rozwiązania preferowane, bo porządkują przepływ i ułatwiają weryfikację algorytmu.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Programowanie strukturalne to sposób tworzenia programów oparty na budowaniu logicznych bloków: sekwencji, instrukcji warunkowych i pętli. Celem jest przewidywalny przepływ sterowania, czytelność oraz łatwiejsze testowanie i utrzymanie kodu.
goto wprowadza skok do dowolnego miejsca w kodzie, przez co przepływ programu staje się mniej czytelny i trudniejszy do analizy. W większych projektach zwiększa to ryzyko pomyłek, utrudnia debugowanie i refaktoryzację.
Zwykle nie jest formalnie "zakazana" składnią języka, ale bywa niezalecana przez metodykę i konwencje projektowe. Na egzaminach pytanie dotyczy głównie podejścia strukturalnego, które preferuje pętle i warunki zamiast swobodnych skoków.
Kluczowe są trzy formy sterowania: sekwencja (instrukcje po kolei), selekcja (np. if/else) oraz iteracja (np. for, while, repeat). Te konstrukcje tworzą czytelne bloki i ułatwiają kontrolę przepływu.
Pętla (np. for, repeat) ma jasno określony blok, który się powtarza. Instrukcja skoku (np. goto) przenosi wykonanie do wskazanego miejsca, niekoniecznie zgodnego ze strukturą blokową. Na testach "skok" to zwykle sygnał odpowiedzi niezgodnej ze структурą.
Nadużywanie goto może prowadzić do "poplątanych" ścieżek wykonania, trudności w przewidywaniu, co stanie się po spełnieniu warunku, oraz do problemów z obsługą wyjątków i sprzątaniem zasobów. Skutkiem są błędy trudne do odtworzenia.
Najczęściej stosuje się instrukcje if/else, pętle (for, while, repeat) oraz wydzielanie fragmentów do funkcji i wcześniejsze zakończenie funkcji (return). Dzięki temu przepływ sterowania pozostaje lokalny i łatwy do zrozumienia.
Tak. repeat until to klasyczna konstrukcja iteracyjna (pętla), która ma jednoznaczny blok wykonywany wielokrotnie aż do spełnienia warunku zakończenia. Jest typowym elementem programowania strukturalnego i wspiera czytelność algorytmu.
if then else realizuje selekcję: wybór jednej z dwóch (lub więcej) ścieżek na podstawie warunku. Ma jasną strukturę blokową, ogranicza liczbę możliwych ścieżek i pozwala łatwo testować przypadki. To fundament algorytmiki strukturalnej.
Skup się na rozpoznawaniu konstrukcji sterujących (warunki i pętle) oraz na pojęciach jakości kodu: czytelności, zagnieżdżenia i przewidywalnego przepływu. W testach często pytają o to, co zaburza strukturę, np. instrukcje swobodnego skoku.
info

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

Eksperci podkreślają: "W programowaniu strukturalnym dąży się do przepływu sterowanego przez sekwencję, instrukcje warunkowe i pętle."

Źródła:

  • Edsger W. Dijkstra, "Go To Statement Considered Harmful", Communications of the ACM, 1968
  • Ole-Johan Dahl, Edsger W. Dijkstra, C.A.R. Hoare, "Structured Programming", Academic Press, 1972
  • Wikipedia (hasło): https://en.wikipedia.org/wiki/Structured_programming - accessed 2026-02-18

Materiały:

  • Podręczniki do podstaw programowania (rozdziały o instrukcjach sterujących i jakości kodu)
  • Materiały o paradygmatach programowania (strukturalne vs. niestrukturalne)
  • Artykuły/eseje o wpływie "goto" na czytelność i złożoność sterowania

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego