KWALIFIKACJA INF2 + INF3 - CZERWIEC 2011

PYTANIE NR 7.
Fragment programu w języku Pascal zawiera deklarację
Ilustracja przedstawia fragment kodu w języku Pascal, który zawiera deklarację zmiennych.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W Pascalu zapis wskaźnika rozpoznaje się po symbolu ^ przed typem.
Jeśli w deklaracji występuje jedna pozycja o typie znakowym (np. char) oraz jedna o typie ^char, to oznacza to jedną zmienną typu znakowego i jeden wskaźnik wskazujący na typ znakowy, a nie dwie zwykłe zmienne.

Pełne wyjaśnienie:

W języku Pascal deklaracje zmiennych najczęściej znajdują się w sekcji var. Kluczowe jest rozróżnienie między:

  • zmienną typu T (np. typu znakowego char) – przechowuje bezpośrednio wartość tego typu,
  • zmienną wskaźnikową typu ^T – przechowuje adres (wskazanie) na obiekt typu T, a nie samą wartość typu T.

Dlatego odpowiedź "1 zmiennej i 1 wskaźnika do typu znakowego." jest poprawna wtedy, gdy w pokazanej deklaracji da się wskazać dokładnie:

  • jeden identyfikator zadeklarowany jako typ znakowy (np. char),
  • oraz drugi identyfikator zadeklarowany jako wskaźnik do typu znakowego (np. ^char).

Pozostałe odpowiedzi są błędne z typowych powodów:

  • "1 zmiennej i 1 wskaźnika do typu całkowitego." – pomyłka polega na błędnym odczytaniu typu bazowego. Wskaźnik nie "zmienia się" w całkowity tylko dlatego, że adres jest liczbą; typ wskaźnika opisuje, na jaki typ danych wskazuje.
  • "2 zmiennych do typu znakowego." – to częsty błąd polegający na nieuwzględnieniu znaku ^ i potraktowaniu wskaźnika jak zwykłej zmiennej.
  • "2 zmiennych do typu całkowitego." – zwykle wynika z heurystyki (założenia, że "najczęściej jest integer") oraz zignorowania informacji o typie znakowym.

Wskazówka egzaminacyjna: analizując deklaracje, podkreśl najpierw wszystkie identyfikatory, a następnie dopisz im typy. Osobno zaznacz wystąpienia symbolu ^, bo to one rozstrzygają, czy masz do czynienia z typem bezpośrednim, czy wskaźnikowym.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Symbol ^ oznacza typ wskaźnikowy, czyli zmienną przechowującą adres. Jeśli widzisz ^char, to jest to wskaźnik do typu znakowego, a nie drugi "zwykły" znak. Na egzaminie to właśnie ^ rozróżnia wskaźnik od zmiennej typu podstawowego.
Sprawdź, czy przy typie pojawia się ^. Zmienna typu T ma deklarację bez ^, np. char. Wskaźnik ma postać ^T, np. ^char. To różne byty: jedna przechowuje wartość, druga przechowuje adres do wartości.
Adres w pamięci może być liczbowo reprezentowany, ale w Pascalu typ ^char opisuje na co wskaźnik wskazuje (czyli na char). To pomaga kompilatorowi kontrolować poprawność operacji i interpretację danych. Nie należy utożsamiać wskaźnika z typem całkowitym.
Typ znakowy (najczęściej char) służy do przechowywania pojedynczego znaku. W zadaniach egzaminacyjnych ważne jest, by nie mylić char (wartość znaku) z ^char (adres miejsca, gdzie taki znak się znajduje).
Najczęstsze pomyłki to: pomijanie symbolu ^, uznawanie, że dwa identyfikatory oznaczają "dwie zmienne" tego samego typu, oraz zgadywanie typu jako "całkowity", bo bywa najpopularniejszy w zadaniach. Pomaga wolne czytanie i wypisanie par: identyfikator → typ.
Najpierw policz identyfikatory (nazwy), a potem przypisz im typy. Każdy identyfikator zadeklarowany jako ^T liczysz jako wskaźnik. Każdy bez ^ liczysz jako zwykłą zmienną. To metoda odporna na "szybkie zgadywanie" i działa także w dłuższych deklaracjach.
W praktyce szkolnej i egzaminacyjnej mogą pojawiać się różne języki, także starsze, jako narzędzie do sprawdzania podstaw: typów danych, deklaracji i czytania kodu. Nawet jeśli na co dzień programujesz inaczej, warto umieć odczytać prostą deklarację i rozpoznać wskaźnik.
Wskaźnik do typu znakowego przechowuje adres, pod którym znajduje się znak. Dzięki temu można przekazywać odwołanie do danych, tworzyć struktury dynamiczne lub pracować na buforach. Na poziomie egzaminu zwykle wystarcza rozpoznanie, że ^char oznacza wskaźnik, a nie "drugi char".
Najbardziej mylące są te, które zmieniają tylko jeden element: "znakowy" vs "całkowity" albo "zmienna" vs "wskaźnik". Student widzi znajome słowa i wybiera intuicyjnie. Dobra strategia to szukanie w kodzie informacji o ^ oraz o typie bazowym (char/integer).
Przećwicz krótkie fragmenty deklaracji: wypisz, co jest zmienną, a co wskaźnikiem, oraz do jakiego typu wskaźnik prowadzi. Zrób sobie fiszki: T vs ^T. Na egzaminie czytaj symbole, nie tylko słowa, bo właśnie znaki specjalne zwykle rozstrzygają zadanie.
info

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

Źródła:

  • Free Pascal Reference Guide (FPC), rozdział "Types" oraz "Pointer types" (dokumentacja projektu Free Pascal) - https://www.freepascal.org/docs-html/ref/refse9.html (dostęp: 2026-03-02)
  • Free Pascal User's Guide (FPC), część o podstawach składni i deklaracjach - https://www.freepascal.org/docs-html/user/ (dostęp: 2026-03-02)
  • Embarcadero Delphi DocWiki, hasło dotyczące typów wskaźnikowych w Object Pascal - https://docwiki.embarcadero.com/ (konkretne hasła dot. pointer types; dostęp: 2026-03-02)

Materiały:

  • Dokumentacja Free Pascal: sekcje o typach i wskaźnikach
  • Podręcznik/kompendium Pascala (rozdział o deklaracjach i typach danych)
  • Krótkie ćwiczenia: rozpoznawanie, ile jest zmiennych i wskaźników w deklaracjach var

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego