KWALIFIKACJA INF3 - CZERWIEC 2015

PYTANIE NR 27.
W strukturalnych językach programowania w celu przechowania informacji o 50 uczniach (ich imionach, nazwiskach, średniej ocen) należy użyć
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Aby przechować dane o wielu uczniach, potrzebna jest kolekcja 50 rekordów. Najprościej realizuje to tablica o 50 elementach, gdzie każdy element jest strukturą/rekordem zawierającym pola: imię, nazwisko i średnią. Pozostałe odpowiedzi mieszają pojęcia lub nie opisują poprawnie takiej kolekcji.

Pełne wyjaśnienie:

Trzeba zapisać informacje o 50 uczniach, a więc o wielu obiektach o tej samej budowie. Dane pojedynczego ucznia są złożone (kilka pól: imię, nazwisko, średnia), dlatego naturalnym typem dla jednego ucznia jest struktura/rekord (np. struct w C/C++ lub record w Pascalu).

Skoro uczniów jest 50, potrzebujemy kolekcji 50 elementów tego samego typu. W zadaniu liczba elementów jest stała i z góry znana, więc właściwym wyborem jest tablica 50 elementów o składowych strukturalnych, czyli tablica, której elementami są struktury (rekordy) ucznia.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • Tablica o składowych łańcuchowych sugeruje, że każdy element tablicy jest łańcuchem znaków. To nie pasuje, bo uczeń ma co najmniej jedno pole liczbowe (średnia), a także kilka pól jednocześnie.
  • Struktura 50 elementów myli pojęcia: struktura to zwykle pojedynczy typ z polami, a nie "50 egzemplarzy". Owszem, struktura może mieć pole będące tablicą, ale wtedy otrzymujemy jeden obiekt zawierający tablicę, a nie prostą listę 50 rekordów jako kolekcję.
  • Klasa 50 elementów typu tablicowego jest nieadekwatna do paradygmatu programowania strukturalnego i dodatkowo nie opisuje wprost 50 rekordów ucznia. W tym zadaniu nie potrzeba mechanizmów OOP, a najważniejszy jest dobór podstawowych typów danych.

W praktyce takie dane przechowuje się jako "tablicę struktur" (czasem później zastępowaną listą dynamiczną), a dostęp odbywa się przez indeks: od 0 do 49 (lub 1 do 50 zależnie od języka).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Struktura (rekord) to typ danych złożony z wielu pól, które mogą mieć różne typy (np. tekst i liczby). Pozwala opisać jeden "obiekt" danych, np. ucznia: imię, nazwisko i średnia jako osobne pola w jednej całości.
Tablica to uporządkowana kolekcja elementów tego samego typu, dostępnych przez indeks. Stosuje się ją, gdy liczba elementów jest znana lub ograniczona (np. dokładnie 50 rekordów) i potrzebny jest szybki dostęp do konkretnej pozycji.
Bo mamy wiele obiektów (50 uczniów), a każdy obiekt ma kilka pól różnego typu. Struktura opisuje jednego ucznia, a tablica przechowuje 50 takich samych struktur. To najprostszy model: "lista rekordów ucznia".
Teoretycznie tak (np. osobne tablice imion, nazwisk i średnich), ale to utrudnia spójność danych i operacje typu sortowanie po średniej. Tablica struktur trzyma dane jednego ucznia razem, co zmniejsza ryzyko rozjechania indeksów.
Najczęściej imię i nazwisko jako łańcuch znaków (lub tablica znaków w C), a średnia jako liczba zmiennoprzecinkowa. Kluczowe jest, że struktura pozwala łączyć pola różnych typów w jednym rekordzie.
Bo wtedy element tablicy byłby tylko napisem, a dane ucznia obejmują też wartość liczbową (średnią) i kilka pól naraz. Łańcuch znaków nie reprezentuje naturalnie kompletnego rekordu ucznia bez dodatkowego kodowania/parsowania.
Nie jest konieczna. Klasa to konstrukcja typowa dla programowania obiektowego, a zadanie dotyczy podstawowego doboru struktur danych w podejściu strukturalnym. Do samego przechowania i iteracji wystarczy struktura/rekord i tablica.
Pomaga reguła: struktura = jeden obiekt z wieloma polami, a tablica = wiele obiektów tego samego typu. Gdy w treści jest "50 uczniów", prawie zawsze potrzebujesz kolekcji (tablicy/listy) elementów.
Łatwe są: wypełnianie danych w pętli, wyszukiwanie ucznia po nazwisku, liczenie średniej klasy, filtrowanie (np. uczniowie ze średnią powyżej progu) oraz sortowanie po średniej lub nazwisku, bo rekord ucznia jest spójny.
Ćwicz mapowanie opisu "z życia" na model danych: pojedynczy obiekt → struktura/rekord, wiele obiektów → tablica/lista. Rozwiązuj zadania: tablica rekordów, odczyt/zapis pól, sortowanie, proste walidacje.
info

To pytanie poprawnie rozwiązuje 47% zdających egzamin. trudne

Według specjalistów z branży: "Aby przechować dane o wielu uczniach, potrzebna jest kolekcja 50 rekordów."

Źródła:

  • cppreference.com: "Array declaration" (C) — https://en.cppreference.com/w/c/language/array (dostęp: 2026-02-18)
  • cppreference.com: "struct declaration" (C) — https://en.cppreference.com/w/c/language/struct (dostęp: 2026-02-18)
  • Free Pascal Reference Guide: "Records" — https://www.freepascal.org/docs-html/ref/refse11.html (dostęp: 2026-02-18)

Materiały:

  • Dokumentacja języka C/C++: typy złożone (struct) oraz tablice
  • Materiały do podstaw programowania: rekordy/struktury i tablice (zadania z modelowaniem danych)
  • Kurs lub rozdział o projektowaniu prostych modeli danych w pamięci (rekord/struct + kolekcja)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego