KWALIFIKACJA INF2 + INF3 - CZERWIEC 2014

PYTANIE NR 20.
W wyniku działania programu wyświetlona wartość zapisana w zmiennej i będzie zawierała
Ilustracja przedstawia fragment kodu źródłowego napisanego w języku C.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Zmienna i ma przechowywać wynik zliczania znaków będących literami (zarówno małymi, jak i wielkimi) występujących w pierwszym wyrazie wprowadzonego zdania. Pozostałe odpowiedzi dotyczą innych jednostek zliczania (słów, zdań, spacji), więc nie opisują tego samego wyniku.

Pełne wyjaśnienie:

Pytanie dotyczy interpretacji wyniku działania programu: jaka informacja zostanie wypisana jako wartość zapisana w zmiennej i. Poprawna interpretacja wskazuje, że program zlicza litery (a nie słowa czy spacje) oraz że interesuje go pierwszy wyraz wprowadzonego zdania. Dodatkowo podkreślono, że liczone są zarówno małe, jak i wielkie litery, czyli wielkość liter nie wyklucza znaku z liczenia.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "liczbę słów…" – to inny poziom analizy tekstu. Zliczanie słów wymagałoby tokenizacji całej wypowiedzi (np. podziału po białych znakach) i sumowania wyrazów, a nie sprawdzania znak po znaku w obrębie pierwszego wyrazu.
  • "liczbę zdań…" – zliczanie zdań zwykle opiera się na analizie znaków interpunkcyjnych (np. kropka, znak zapytania, wykrzyknik) i granic zdań. To nie ma bezpośredniego związku z liczeniem liter w jednym wyrazie.
  • "liczbę spacji…" – spacje są białymi znakami oddzielającymi wyrazy; ich liczenie jest inną operacją niż liczenie liter. Gdyby program liczył spacje, wynik zależałby głównie od liczby separatorów, a nie od zawartości literowej pierwszego wyrazu.

W praktyce takie zadania sprawdzają, czy potrafisz odróżnić:

  • zliczanie znaków (np. liter) od zliczania tokenów (np. słów),
  • analizę całego tekstu od analizy fragmentu (tu: pierwszego wyrazu),
  • warunki dotyczące klasy znaków (litera vs spacja) oraz wielkości liter (mała/wielka).

Wskazówka egzaminacyjna: w pytaniach o "wynik działania programu" zawsze wypisz sobie w myślach: co jest jednostką zliczania (znaki/słowa/spacje), jaki jest zakres (pierwszy wyraz/całe zdanie) oraz jakie są warunki (np. litery małe i wielkie). To zwykle pozwala szybko wyeliminować mylące odpowiedzi.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Oznacza to, że do wyniku wliczane są litery niezależnie od tego, czy są zapisane jako wielkie (np. A) czy małe (np. a). W praktyce program sprawdza, czy znak jest literą, a nie czy ma konkretny rozmiar. To odróżnia liczenie liter od liczenia np. spacji.
Liczenie znaków dotyczy pojedynczych symboli (litera, spacja, kropka), a liczenie słów dotyczy fragmentów oddzielonych separatorami (najczęściej białymi znakami). Jeśli mowa o "małych i wielkich literach", to zwykle chodzi o znaki. Jeśli o "liczbie słów" – o tokeny po podziale tekstu.
Najczęściej pobiera się cały tekst jako łańcuch znaków, usuwa nadmiarowe spacje z początku i dzieli tekst na wyrazy po białych znakach. Pierwszym wyrazem jest pierwszy element po takim podziale. Trzeba uważać na wiele spacji lub tabulatory, bo też są separatorami.
Spacja jest separatorem (białym znakiem), a litery są znakami budującymi wyrazy. Program liczący spacje mierzy, ile jest odstępów między wyrazami, a program liczący litery mierzy długość/strukturę wyrazu. To daje zupełnie inne wyniki, nawet dla tego samego zdania wejściowego.
Zależy od tego, jak program definiuje "literę". W większości nowoczesnych języków i środowisk znaki takie jak ą, ć, ł są traktowane jako litery (jeśli używa się obsługi Unicode). Jeśli jednak program działa na uproszczonych zakresach znaków, może je błędnie pominąć. Na egzaminie zwykle zakłada się poprawną obsługę liter.
Najczęstsze pomyłki to: mylenie jednostki zliczania (słowa vs znaki), nieuwzględnienie ograniczenia do pierwszego wyrazu, oraz automatyczne kojarzenie "zdania" z "liczbą zdań". Warto zawsze sprawdzić, czy program analizuje cały tekst, czy tylko fragment oraz jakie znaki wlicza.
Najczęściej w walidacji formularzy (np. czy pole zawiera tylko litery), w analizie danych (np. statystyki treści), w normalizacji wejścia (usuwanie znaków niedozwolonych) i w prostych algorytmach NLP. W aplikacjach webowych takie operacje wykonuje się przed zapisaniem danych do bazy lub wysłaniem do API.
Liczba słów zwykle wynika z podziału tekstu po białych znakach (spacja, tabulator, nowe linie). Liczba zdań częściej wynika z analizy znaków kończących zdanie (np. kropka, znak zapytania). To różne metody i dają inne wyniki, zwłaszcza gdy tekst zawiera skróty albo wielokrotne spacje.
Tak, ale wtedy wynik zależy od warunku w kodzie. Jeśli program zlicza tylko litery, to cyfry i znaki specjalne są pomijane. Jeśli zlicza wszystkie znaki w pierwszym wyrazie, to cyfry też zwiększą wynik. W takich zadaniach kluczowe jest, czy w opisie wyniku pojawia się słowo "litery".
Ćwicz czytanie krótkich fragmentów kodu i odpowiadanie na pytania: co jest wejściem, co jest warunkiem, co jest liczone i jaki jest zakres danych. Pomaga też ręczne przejście po przykładowym wejściu znak po znaku. Na egzaminie szukaj słów-kluczy: "pierwszy wyraz", "spacje", "litery".
info

Około 60% zdających odpowiada poprawnie na to pytanie. średnie

Eksperci podkreślają: "Zmienna i ma przechowywać wynik zliczania znaków będących literami (zarówno małymi, jak i wielkimi) występujących w pierwszym wyrazie wprowadzonego zdania."

Źródła:

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, "Wprowadzenie do algorytmów", rozdziały o przetwarzaniu danych i złożoności operacji na sekwencjach, wydania polskie (źródło książkowe).
  • Robert W. Sebesta, "Koncepcje języków programowania", rozdziały dotyczące typów danych i łańcuchów znaków (string) oraz podstaw przetwarzania tekstu, wydania polskie (źródło książkowe).

Materiały:

  • Podręcznik do podstaw programowania: operacje na łańcuchach znaków i wczytywanie danych
  • Materiały o przetwarzaniu tekstu: tokenizacja, podział na wyrazy, rozpoznawanie białych znaków
  • Zadania egzaminacyjne INF.3 z interpretacji kodu i analizy danych wejściowych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego