KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2013

PYTANIE NR 11.
W języku C++ chcemy zadeklarować tablicę dwuwymiarową liczb całkowitych o nazwie tab, która ma 5 wierszy i 10 kolumn. Który zapis jest poprawny?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna deklaracja tablicy 2D w C++ ma postać typ nazwa[wiersze][kolumny];
Dlatego zapis "int tab[5][10];" tworzy 5 wierszy po 10 elementów typu int. "int tab[10][5];" ma odwrócone wymiary, "tab[5][10] int;" ma błędną składnię, a "float tab[5][10];" używa złego typu.

Pełne wyjaśnienie:

W C++ tablica dwuwymiarowa jest tablicą tablic: pierwszy nawias kwadratowy określa liczbę "podtablic" (wierszy), a drugi nawias liczbę elementów w każdej podtablicy (kolumn). Poprawny wzorzec deklaracji to:

typ nazwa[wiersze][kolumny];

Z tego powodu odpowiedź "int tab[5][10];" jest poprawna: deklaruje tablicę o 5 wierszach i 10 kolumnach, czyli łącznie 50 elementów typu int (liczby całkowite). Do elementów odwołujemy się jako tab[i][j], gdzie dla takiej tablicy typowo i mieści się w zakresie 0–4, a j w zakresie 0–9.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "int tab[10][5];" używa tego samego typu i poprawnej składni, ale zmienia znaczenie wymiarów: to 10 wierszy i 5 kolumn. W zadaniu wymagane jest dokładnie 5 wierszy i 10 kolumn, więc taki zapis nie spełnia warunku.
  • "tab[5][10] int;" jest błędne, bo w C++ typ musi stać przed nazwą, a średnik kończy deklarację. Taki zapis nie jest poprawną deklaracją zmiennej.
  • "float tab[5][10];" ma poprawną konstrukcję tablicy 2D, ale inny typ danych. Float oznacza liczby zmiennoprzecinkowe, a pytanie dotyczy liczb całkowitych, więc to nie jest właściwa odpowiedź.

Wskazówka egzaminacyjna: jeśli w treści pada "5 wierszy i 10 kolumn", w C++ najczęściej zapisujesz to dokładnie jako [5][10] przy nazwie tablicy (kolejność: wiersze, potem kolumny) i pilnujesz, aby typ (np. int) stał na początku deklaracji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Oznacza deklarację tablicy dwuwymiarowej typu int o 5 wierszach i 10 kolumnach. W praktyce jest to "tablica tablic": 5 podtablic, a w każdej po 10 liczb całkowitych.
W C++ pierwszy wymiar określa liczbę wierszy (ile jest "rzędów" tablic), a drugi wymiar liczbę kolumn w każdym wierszu. Dlatego [5][10] to 5 wierszy po 10 elementów, a [10][5] to inna struktura.
Bo deklaruje 10 wierszy i 5 kolumn, czyli odwraca wymagane wymiary. Choć liczba elementów (50) jest taka sama, układ indeksowania i zakresy indeksów wiersza/kolumny są inne, więc to nie jest to samo.
Stosuje się dwa indeksy: pierwszy to numer wiersza, drugi to numer kolumny, np. tab[i][j]. Dla tablicy 5×10 typowo i jest w zakresie 0–4, a j w zakresie 0–9 (indeksowanie od zera).
Tak, jest poprawną deklaracją tablicy 2D, ale typu float (zmiennoprzecinkowego). Jeśli zadanie wymaga liczb całkowitych, to trzeba użyć int. Na egzaminie często sprawdza się właśnie dopasowanie typu do treści.
W C++ typ musi stać przed nazwą deklarowanej zmiennej, np. int tab. Samo dopisanie typu na końcu nie tworzy poprawnej deklaracji. To częsty błąd wynikający z mylenia składni C++ z innymi zapisami notacyjnymi.
Najczęściej używa się list inicjalizacyjnych z nawiasami klamrowymi, np. dla małej tablicy: {{1,2,3},{4,5,6}}. Każdy wewnętrzny zestaw wartości odpowiada jednemu wierszowi tablicy.
Najczęściej: (1) zamiana kolejności wymiarów, (2) podanie złego typu (np. float zamiast int), (3) błędna składnia z typem po nazwie, (4) mylenie wymiarów z zakresem indeksów (indeksy startują od 0).
Gdy dane naturalnie układają się w siatkę wierszy i kolumn: plansze gier, proste macierze, tabele pomiarów, mapy kafelków. Taki zapis ułatwia czytelne indeksowanie i iterację po wierszach oraz kolumnach.
Sprawdź trzy rzeczy: (1) typ jest na początku (np. int), (2) nazwa jest po typie (np. tab), (3) wymiary są w nawiasach kwadratowych w żądanej kolejności. Na końcu musi być średnik.
info

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

Specjaliści zwracają uwagę: "Poprawna deklaracja tablicy 2D w C++ ma postać typ nazwa[wiersze][kolumny];Dlatego zapis "int tab[5][10];" tworzy 5 wierszy po 10 elementów typu int."

Źródła:

  • cppreference.com: "Array declaration" (C++), https://en.cppreference.com/w/cpp/language/array - accessed 2026-02-27
  • ISO/IEC 14882:2020(E) "Programming languages — C++", section on declarators/array declarators (arrays) (official C++ standard)
  • GNU Compiler Collection (GCC) documentation: "C++ Language" / "C++ Extensions" (supports standard array declarators), https://gcc.gnu.org/onlinedocs/ - accessed 2026-02-27

Materiały:

  • Dokumentacja języka C++ (podstawy: deklaracje i tablice)
  • cppreference: sekcja o tablicach (Array) i deklaratorach
  • Materiały do INF.3 z podstaw C/C++ (typy, tablice, indeksowanie)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego