KWALIFIKACJA INF3 - CZERWIEC 2014

PYTANIE NR 31.
Co definiuje w języku C++ przedstawiony fragment kodu?
Ilustracja przedstawia fragment kodu w języku C++, który definiuje strukturę o nazwie 'CONTACT'.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Typ strukturalny w C++ (najczęściej tworzony przez struct) grupuje kilka pól składowych pod jedną nazwą typu. Jeśli fragment kodu definiuje strukturę z trzema deklaracjami pól, to nie są to trzy niezależne zmienne, lecz jeden typ złożony zawierający trzy pola, które później mogą tworzyć obiekty tego typu.

Pełne wyjaśnienie:

W C++ typ strukturalny (najczęściej definiowany słowem kluczowym struct) służy do zgrupowania kilku powiązanych danych w jedną całość. Taka definicja tworzy nowy typ, a elementy zapisane wewnątrz to jego pola składowe (członkowie struktury).

Odpowiedź "Typ strukturalny składający się z trzech pól." jest poprawna, gdy pokazany fragment kodu ma postać definicji struktury zawierającej trzy deklaracje pól. Oznacza to, że programista opisuje "szablon danych", z którego później można tworzyć zmienne/obiekty tego typu (np. pojedynczy rekord przechowujący trzy atrybuty).

Dlaczego pozostałe odpowiedzi są niepoprawne:

  • "Trzy zmienne niepowiązane ze sobą." – to opis pasujący do sytuacji, gdy w kodzie występują trzy oddzielne deklaracje zmiennych. W definicji struktury deklaracje wewnątrz nie są samodzielnymi zmiennymi programu, tylko składnikami typu.
  • "Hierarchię zmiennych." – typowa struktura w C++ nie tworzy "hierarchii" w sensie zależności nadrzędny–podrzędny; tworzy kompozycję (złożenie pól) w jednym typie danych.
  • "Kontakt pomiędzy zmiennymi globalnymi i lokalnymi." – zasięg (globalny/lokalny) to osobne zagadnienie. Definicja typu strukturalnego nie opisuje "kontaktu" między zmiennymi o różnych zasięgach, tylko definiuje układ pól w typie.

Wskazówka egzaminacyjna: aby odróżnić definicję typu od deklaracji zmiennych, szukaj nazwy typu oraz konstrukcji, która obejmuje pola w jednym bloku (np. ciało struktury). Jeżeli kod tworzy nowy typ, to odpowiedzi o "kilku niezależnych zmiennych" zwykle są pułapką.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Struktura w C++ to typ złożony, który grupuje kilka pól (składowych) pod jedną nazwą typu. Służy do przechowywania powiązanych danych razem, np. danych rekordu (imię, wiek, e-mail) lub punktu (x, y, z), zamiast wielu osobnych zmiennych.
Definicja typu zwykle zawiera nazwę typu i blok z polami (np. ciało struktury). Wtedy deklaracje wewnątrz są polami składowymi. Trzy zmienne to najczęściej trzy niezależne deklaracje na poziomie funkcji lub globalnie, bez tworzenia nowego typu.
Pola (członkowie) są częścią typu i "żyją" wewnątrz obiektu tej struktury. Zasięg globalny/lokalny dotyczy tego, gdzie zadeklarowano konkretną zmienną/obiekt. Struktura definiuje układ danych, a dopiero obiekt struktury może być globalny albo lokalny.
Typowe przykłady to: punkt 3D (x, y, z), data (dzień, miesiąc, rok) lub prosty rekord (id, nazwa, status). W każdym przypadku istotą jest to, że trzy pola są logicznie powiązane i wygodniej przechowywać je jako jedną całość.
Tak. W C++ struktura i klasa są bardzo podobne: obie mogą mieć pola, metody i konstruktory. Najczęstsza różnica dotyczy domyślnego poziomu dostępu: w strukturze jest on zwykle publiczny, a w klasie prywatny (jeśli nie określono inaczej).
Najczęściej myli się definicję typu z deklaracją kilku zmiennych, bo oba zapisy mogą zawierać kilka nazw i typów. Drugi błąd to ignorowanie słowa kluczowego i nawiasów/bloku, które wskazują, że tworzy się nowy typ z polami, a nie niezależne zmienne.
Struktura przypomina rekord z bazy danych: ma pola odpowiadające kolumnom. W programie można użyć struktury jako modelu danych (np. użytkownik, produkt), który później wypełnia się danymi z bazy i przekazuje między warstwami aplikacji.
Tak. Zamiast zwracać kilka wartości osobno, można zdefiniować strukturę z polami i zwrócić jeden obiekt. To upraszcza interfejs funkcji i zmniejsza ryzyko pomylenia kolejności parametrów, bo wartości są nazwane jako pola.
Kluczowe jest policzenie deklaracji składowych wewnątrz definicji typu (wewnątrz bloku struktury). Każda deklaracja pola (np. typ i nazwa) zwiększa liczbę pól. To różni się od sytuacji, gdy deklaracje znajdują się poza definicją typu.
Ćwicz na krótkich fragmentach kodu: rozpoznawaj, czy tworzony jest nowy typ, czy tylko zmienne. Rób też proste zadania: zdefiniuj strukturę, utwórz obiekt i odwołaj się do pól. To uczy odróżniania "pól" od "zmiennych".
info

Statystycznie 41% uczniów zna prawidłową odpowiedź. trudne

Specjaliści zwracają uwagę: "Typ strukturalny w C++ (najczęściej tworzony przez struct) grupuje kilka pól składowych pod jedną nazwą typu."

Źródła:

  • cppreference.com: "struct (C++)" (opis typu struct i pól składowych) https://en.cppreference.com/w/cpp/language/struct (dostęp: 2026-02-28)
  • Microsoft Learn: "struct (C++)" (definicja struktury i jej składowe) https://learn.microsoft.com/en-us/cpp/cpp/struct-cpp (dostęp: 2026-02-28)
  • cplusplus.com: "Structures" (wprowadzenie do struktur i pól) https://www.cplusplus.com/doc/tutorial/structures/ (dostęp: 2026-02-28)

Materiały:

  • Dokumentacja C++: rozdział o typach złożonych i słowie kluczowym struct
  • Ćwiczenia: odróżnianie "definicja typu" vs "deklaracja zmiennych" na krótkich przykładach
  • Kurs/lekcje o strukturach danych i reprezentacji rekordów

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego