Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 14 stycznia 2025 21:55
  • Data zakończenia: 14 stycznia 2025 22:05

Egzamin zdany!

Wynik: 29/40 punktów (72,5%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

W pokazanych fragmentach kodu zdefiniowano funkcję pod nazwą fun1. W tej funkcji należy zaimplementować obsługę

Ilustracja do pytania
A. inicjacji elementów interfejsu użytkownika
B. usunięcia kontrolek z pamięci RAM
C. naciśnięcia przycisku zatwierdzającego dialog
D. aplikacji po wystąpieniu zdarzenia utraty focusa przez pole opcji
Obsługa zdarzeń utraty focusa dotyczy pól tekstowych i formularzy, a nie przycisków zatwierdzających dialog. Inicjalizacja elementów interfejsu użytkownika jest wykonywana na etapie ładowania aplikacji, a nie w odpowiedzi na interakcję z przyciskiem. Usuwanie kontrolek z pamięci jest ważnym elementem zarządzania zasobami, ale nie ma związku z obsługą zdarzeń przycisków dialogowych. Każda z tych operacji dotyczy innego etapu cyklu życia aplikacji i nie odnosi się bezpośrednio do zatwierdzania danych przez użytkownika.

Pytanie 2

Jakie znaczenie ma pojęcie "debugowanie" w kontekście programowania?

A. Wdrażanie aplikacji w środowisku produkcyjnym
B. Tworzenie nowych funkcjonalności aplikacji
C. Wyszukiwanie i usuwanie błędów w kodzie
D. Przygotowywanie dokumentacji kodu
Debugowanie to proces wyszukiwania i eliminowania błędów (bugów) w kodzie źródłowym programu. Polega na analizowaniu działania aplikacji linia po linii, śledzeniu wartości zmiennych, analizie stosu wywołań i wykrywaniu miejsc, w których program działa niezgodnie z oczekiwaniami. Debugowanie umożliwia programistom szybkie odnajdywanie błędów logicznych, składniowych oraz problemów z wydajnością aplikacji. Narzędzia takie jak Visual Studio, PyCharm, IntelliJ IDEA czy Chrome DevTools oferują zaawansowane funkcje debugowania, takie jak punkty przerwań (breakpoints), krokowe wykonywanie kodu i podgląd pamięci. Proces debugowania jest kluczowy w każdym etapie rozwoju oprogramowania, ponieważ znacząco wpływa na stabilność i jakość finalnego produktu.

Pytanie 3

Z analizy złożoności obliczeniowej różnych algorytmów sortowania na dużych zbiorach danych (przekraczających 100 elementów) wynika, że najefektywniejszą metodą jest algorytm sortowania

sortowanie bąbelkoweO(n2)
sortowanie przez wstawianieO(n2)
sortowanie przez scalanieO(n log n)
sortowanie przez zliczanieO(n)
sortowanie kubełkoweO(n2)

A. bąbelkowego
B. kubełkowego
C. przez scalanie
D. przez zliczanie
Sortowanie przez zliczanie jest jedną z najszybszych metod sortowania w przypadku określonych typów danych wejściowych. W szczególności działa ono efektywnie, gdy znamy ograniczenia co do zakresu wartości w zbiorze danych, ponieważ jego złożoność obliczeniowa wynosi O(n+k), gdzie n to liczba elementów do posortowania, a k to zakres wartości. Dzięki temu, w przeciwieństwie do metod sortowania porównawczego, takich jak sortowanie przez scalanie czy bąbelkowe, sortowanie przez zliczanie może osiągnąć liniową złożoność czasową, jeśli k jest stosunkowo małe w porównaniu do n. Algorytm ten działa poprzez zliczanie wystąpień każdego elementu, co pozwala na szybkie umieszczenie go w odpowiedniej pozycji w posortowanej tablicy. Przykładowe zastosowania sortowania przez zliczanie to sortowanie wyników egzaminów czy organizacja danych liczbowych w określonym przedziale, co jest często spotykane w analizach statystycznych. Standardy branżowe często korzystają z tej metody, gdy operujemy na dużych zbiorach danych o ograniczonym zakresie, co jest zgodne z najlepszymi praktykami efektywnego przetwarzania danych.

Pytanie 4

Jakie narzędzie służy do zarządzania wersjami?

A. Git
B. Trello
C. Jira
D. Bugzilla
Git to system kontroli wersji, który pozwala na śledzenie zmian w kodzie źródłowym. Jest to narzędzie szeroko stosowane w zespołach programistycznych, umożliwiające współpracę i zarządzanie historią projektu.

Pytanie 5

Który framework jest powszechnie wykorzystywany do tworzenia aplikacji internetowych w języku Python?

A. React.js
B. ASP.NET Core
C. Django
D. Angular
Angular to framework oparty na języku JavaScript i TypeScript, wykorzystywany głównie do budowy aplikacji frontendowych, a nie webowych backendów w Pythonie. React.js jest biblioteką JavaScript służącą do tworzenia interfejsów użytkownika, ale nie posiada narzędzi do budowy backendu w Pythonie. ASP.NET Core to framework firmy Microsoft, używany do tworzenia aplikacji webowych w języku C#, co czyni go nieodpowiednim wyborem dla programistów Pythona.

Pytanie 6

W jaki sposób można ograniczyć problemy społeczne wynikające z nadmiernego używania internetu?

A. Całkowicie wycofać się z aktywności wirtualnych
B. Unikać spotkań z ludźmi w realnym świecie
C. Zwiększać czas spędzany przy ekranie
D. Zachować równowagę pomiędzy relacjami w sieci a tymi w rzeczywistości
Utrzymywanie równowagi między relacjami online i offline to kluczowy element zapobiegania problemom społecznym wynikającym z nadmiernego korzystania z internetu. Przeplatanie kontaktów wirtualnych z interakcjami twarzą w twarz wzmacnia więzi społeczne i poprawia umiejętności komunikacyjne. Równowaga między życiem cyfrowym a rzeczywistym pozwala unikać izolacji społecznej i wspiera rozwój empatii oraz zdolności interpersonalnych. Jest to szczególnie ważne w kontekście młodzieży, która może być bardziej podatna na negatywne skutki nadmiernej ekspozycji na treści online.

Pytanie 7

Jakie narzędzie najlepiej sprawdza się w przekształcaniu liczby szesnastkowej na binarną?

A. Kalkulator programisty
B. Program do arkuszy kalkulacyjnych
C. Program do edycji tekstu
D. Aplikacja internetowa
Kalkulator programisty jest najbardziej odpowiednim narzędziem do konwersji liczby szesnastkowej na binarną ze względu na swoje wyspecjalizowane funkcje matematyczne i programistyczne. Narzędzia te umożliwiają użytkownikom łatwe przekształcanie różnych systemów liczbowych, w tym konwersji z systemu szesnastkowego (hex) na system binarny. Kalkulatory programistyczne często zawierają dedykowane opcje dla konwersji liczbowej, co pozwala na szybkie i dokładne uzyskanie wyników bez potrzeby stosowania skomplikowanych algorytmów lub wzorów. Na przykład, aby przekształcić liczbę szesnastkową '1A' na binarną, użytkownik wprowadza '1A' do kalkulatora, a wynik '00011010' zostaje automatycznie wygenerowany. Dodatkowo, wiele kalkulatorów programistycznych jest zgodnych z międzynarodowymi standardami, co zapewnia ich wiarygodność w obliczeniach. Warto również zauważyć, że kalkulatory programistyczne mogą obsługiwać konwersje z różnych systemów liczbowych, co czyni je wszechstronnym narzędziem w pracy z danymi cyfrowymi i kodowaniem. Dzięki temu, kalkulator programisty stanowi idealne rozwiązanie dla programistów i inżynierów, którzy regularnie pracują z różnymi formatami danych.

Pytanie 8

Jakie jest poprawne określenie interfejsu (szablonu klasy) w języku Java?

Ilustracja do pytania
A. Definicja 2
B. Definicja 1
C. Definicja 3
D. Definicja 4
W pierwszej definicji interfejsu obecność zmiennej prywatnej i konstruktora jest niezgodna z zasadami definiowania interfejsów w języku Java. Interfejsy nie mogą zawierać żadnych konstruktorów, ponieważ nie są klasami i nie można ich instancjonować. Dodatkowo, zmienne w interfejsach są domyślnie publiczne, statyczne i finalne, co oznacza, że nie mogą być prywatne jak w tej definicji. Druga definicja popełnia podobne błędy przez deklarowanie prywatnej zmiennej i implementację metody wewnątrz interfejsu, co przed Java 8 było niemożliwe. Trzecia definicja zawiera metodę z ciałem, co w kontekście starszych wersji Javy nie jest zgodne z zasadami, choć od Java 8 można deklarować metody domyślne z ciałem, jednak w tej sytuacji nie jest to poprawne bez specyfikacji default. Błędnie przyjęte podejścia do definicji interfejsów mogą wynikać z niezrozumienia, że interfejsy służą jedynie do deklarowania metod i ewentualnie statycznych finalnych zmiennych, nie zaś do implementacji logiki. Prawidłowe zrozumienie roli interfejsów jest kluczowe dla wykorzystania ich w tworzeniu elastycznego i rozszerzalnego kodu. Błędy te podkreślają potrzebę dbałości o zgodność ze specyfikacją języka oraz znajomość jego wersji i nowości wprowadzanych w kolejnych iteracjach.

Pytanie 9

Jaki z wymienionych komponentów jest kluczowy do inicjalizacji pola klasy podczas tworzenia instancji obiektu?

A. Instrukcja warunkowa
B. Funkcja zaprzyjaźniona
C. Metoda statyczna
D. Konstruktor
Konstruktor jest niezbędny do inicjalizacji pól klasy podczas tworzenia nowego obiektu. Bez konstruktora obiekt mógłby zostać utworzony w stanie nieokreślonym, co może prowadzić do błędów w działaniu programu. Konstruktor automatycznie przypisuje wartości do pól lub wykonuje inne niezbędne operacje przygotowawcze. Przykład w C++: `class Samochod { public: Samochod() { marka = "Nieznana"; } }`. W tym przypadku konstruktor ustawia domyślną wartość dla pola `marka`, co eliminuje konieczność ręcznego przypisywania wartości po utworzeniu obiektu.

Pytanie 10

Zaproponowany fragment kodu w Android Studio realizuje metodę nasłuchującą do obsługi wydarzenia

Ilustracja do pytania
A. naciśnięcia przycisku
B. zmiany stanu kontrolki Switch
C. wybór daty
D. zmiany w polu tekstowym
Metoda OnClickListener, to coś, co na pewno warto znać, gdy pracujesz z aplikacjami na Androida. Gdy użytkownik klika przycisk, wywoływana jest metoda onClick. I tu możesz zrobić różne rzeczy, jak na przykład przejść do innego ekranu, zapisać dane albo uruchomić jakąś akcję w tle. To jest dobry przykład wzorca projektowego zwanego Delegacja, który pomaga oddzielić to, co widzisz w interfejsie, od tego, co dzieje się w aplikacji. Dzięki temu łatwiej zarządzać kodem i wprowadzać zmiany. Fajnie jest, gdy logikę umieszczasz w osobnych metodach, bo wtedy testowanie całej aplikacji staje się prostsze. Przykłady? Możesz na przykład użyć OnClickListenera, żeby zrobić logowanie po kliknięciu przycisku lub wysłać formularz. Pamiętaj też, żeby unikać ciężkich operacji w metodzie onClick, żeby aplikacja działała płynnie.

Pytanie 11

Wskaż odpowiedź, która używa parafrazowania jako metodę aktywnego słuchania, gdy klient mówi: "Interesuje mnie aplikacja, która działa szybko, niezależnie od tego, czy korzysta z niej kilku czy tysiąc użytkowników"?

A. Jeśli dobrze zrozumiałam, chodzi o aplikację, która efektywnie obsługuje różne obciążenia
B. Dlaczego Pani potrzebuje takiej aplikacji?
C. Ilu użytkowników planuje z niej skorzystać?
D. Czuję pewne wątpliwości w Pani głosie. Czy mogę zadać kilka pytań?
Parafraza to świetna technika, która pomaga zrozumieć, co rozmówca ma na myśli. Jak w tym przypadku – odpowiedź, która mówi: 'Jeśli dobrze rozumiem, chodzi o aplikację, która radzi sobie z różnym obciążeniem,' naprawdę dobrze oddaje to, co klient próbował przekazać. Klient podkreśla, że ważne jest dla niego, aby aplikacja była wydajna, niezależnie od tego, ile osób z niej korzysta. Użycie terminu 'radzi sobie z obciążeniem' jest trafne, bo dotyczy zdolności systemu do przystosowywania się do zmieniającej się liczby użytkowników i ich aktywności. To pokazuje, że konsultant dobrze zrozumiał potrzeby klienta i otwiera możliwości do dalszej rozmowy o technicznych detalach aplikacji, a to jest kluczowe w sprzedaży i budowaniu dobrych relacji z klientem.

Pytanie 12

Jakie ma znaczenie "operacja wejścia" w kontekście programowania?

A. Zmiana wartości zmiennych globalnych
B. Wprowadzanie nowych funkcji do aplikacji
C. Przekazywanie danych do programu z zewnętrznych źródeł
D. Naprawianie błędów w kodzie aplikacji
Operacja wejścia w programowaniu polega na przekazywaniu danych do programu z zewnętrznego źródła, takiego jak klawiatura, plik lub strumień danych. W języku C++ typowym przykładem operacji wejścia jest `cin >> zmienna;`, która pobiera dane od użytkownika i przypisuje je do zmiennej. Operacje wejścia są niezbędne w interaktywnych aplikacjach, które wymagają danych od użytkownika w czasie rzeczywistym, umożliwiając dynamiczne przetwarzanie informacji.

Pytanie 13

W jakim przypadku algorytm sortowania bąbelkowego osiąga najlepszą wydajność?

A. Dla tablicy uporządkowanej malejąco
B. Dla tablicy uporządkowanej rosnąco
C. Dla tablicy z dużą liczbą powtórzeń
D. Dla tablicy losowej
W przypadku tablicy posortowanej malejąco algorytm bąbelkowy działa najmniej efektywnie, ponieważ wymaga pełnej liczby przejść i zamian, osiągając złożoność O(n²). Dla losowych tablic sortowanie bąbelkowe również wykonuje dużą liczbę porównań i zamian. Tablice o dużej liczbie powtórzeń mogą zwiększać liczbę iteracji, ponieważ algorytm nadal musi porównać wszystkie elementy, aby upewnić się, że są one we właściwej kolejności.

Pytanie 14

Jakie z poniższych narzędzi wspomaga projektowanie interfejsu użytkownika w aplikacjach mobilnych?

A. Kompilator Javy
B. Narzędzie do zarządzania bazami danych
C. Android Studio Layout Editor
D. PyCharm Debugger
Android Studio Layout Editor to narzędzie umożliwiające projektowanie interfejsu użytkownika aplikacji mobilnych w sposób wizualny, za pomocą metody 'przeciągnij i upuść'. Layout Editor pozwala na szybkie tworzenie responsywnych interfejsów, które automatycznie dostosowują się do różnych rozmiarów ekranów i rozdzielczości. Dzięki niemu programiści mogą łatwo dodawać elementy UI, takie jak przyciski, pola tekstowe, listy czy obrazy, oraz dostosowywać ich właściwości bez konieczności pisania dużych fragmentów kodu XML. Narzędzie to jest kluczowe dla szybkiego prototypowania aplikacji oraz iteracyjnego podejścia do budowy interfejsu użytkownika w środowisku Android Studio.

Pytanie 15

Jakie oznaczenie posiada norma krajowa w Polsce?

A. IEC
B. PN
C. EN
D. ISO
ISO to coś międzynarodowego, a nie krajowego. EN to jakieś standardy, które obowiązują w całej Unii Europejskiej. Jeszcze IEC, to międzynarodowe normy dotyczące elektrotechniki i nie są to normy, które znajdziesz w Polsce. Polska Norma, czyli PN, to coś, co mamy tylko w naszym kraju i odnosi się tylko do polskiego systemu normalizacyjnego.

Pytanie 16

Które z podanych logo reprezentuje narzędzie, które nie jest używane do tworzenia aplikacji mobilnych?

Ilustracja do pytania
A. 2
B. 4
C. 3
D. 1
Logo przedstawiające narzędzie niewykorzystywane do tworzenia aplikacji mobilnych to narzędzie graficzne lub biurowe, które nie posiada funkcji programistycznych.

Pytanie 17

W zaprezentowanym kodzie stworzono abstrakcyjną klasę Figura oraz klasę Prostokąt, która po niej dziedziczy, zawierającą określone pola i konstruktory. Wskaż najprostszą implementację sekcji /* metody klasy */ dla klasy Prostokąt

Ilustracja do pytania
A. Kod 1
B. Kod 2
C. Kod 4
D. Kod 3
Kod 1 jest prawidłowy ponieważ zapewnia implementację abstrakcyjnych metod Pole i Obwod z klasy Figura co jest wymagane dla każdej klasy dziedziczącej po klasie abstrakcyjnej W Javie kiedy klasa dziedziczy po klasie abstrakcyjnej musi zaimplementować wszystkie jej abstrakcyjne metody Kod 1 definiuje metodę Pole która oblicza pole prostokąta jako iloczyn długości boków a i b oraz metodę Obwod która oblicza obwód jako sumę dwóch razy długości a i dwóch razy długości b Jest to zgodne z konwencjami programowania obiektowego które promują enkapsulację i polimorfizm Kod odnosi się bezpośrednio do konkretnego zastosowania jakim jest obliczanie parametrów prostokąta co jest częstym przypadkiem w programowaniu graficznym oraz w aplikacjach matematycznych Implementacja metod w ten sposób zapewnia prostotę oraz czytelność kodu co jest zgodne z dobrymi praktykami w inżynierii oprogramowania Ponadto dzięki poprawnej implementacji można z powodzeniem rozszerzać funkcjonalność obiektową programu umożliwiając jego łatwiejsze modyfikowanie i rozwijanie w przyszłości

Pytanie 18

Błędy w interpretacji kodu stworzonego za pomocą React.js lub Angular można wykryć dzięki

A. kompilatorowi języka JavaScript
B. konsoli przeglądarki internetowej
C. narzędziom zainstalowanym po stronie serwera aplikacji
D. wbudowanemu debuggerowi w danym środowisku
Konsola przeglądarki to naprawdę super narzędzie do śledzenia błędów w JavaScript, a szczególnie przydatna jest, gdy piszemy coś w React.js albo Angular. Dzięki niej możesz łatwo sprawdzać logi i błędy, a nawet na żywo testować różne fragmenty swojego kodu. To naprawdę szybki sposób, żeby znaleźć problemy, bez potrzeby grzebania w całym kodzie aplikacji.

Pytanie 19

Wskaż język programowania, który pozwala na stworzenie aplikacji mobilnej w środowisku Android Studio?

A. Objective-C
B. Swift
C. C++
D. Java
Java to jeden z podstawowych języków programowania używanych do tworzenia aplikacji mobilnych na platformę Android. Jest to język, który został stworzony przez firmę Sun Microsystems, a jego pierwsza wersja została wydana w 1995 roku. Java charakteryzuje się silnym typowaniem, obiektowością oraz wsparciem dla programowania wielowątkowego, co czyni go idealnym do tworzenia wydajnych aplikacji mobilnych. Android Studio, oficjalne zintegrowane środowisko programistyczne (IDE) dla Androida, oferuje pełne wsparcie dla Javy, w tym możliwość korzystania z bibliotek Android SDK. Dzięki temu programiści mogą łatwo tworzyć interfejsy użytkownika, zarządzać zasobami oraz implementować logikę aplikacji. Przykładowo, pisząc aplikację do zarządzania zadaniami, programista może użyć Javy do stworzenia klas modelujących zadania oraz do obsługi interfejsu graficznego z wykorzystaniem XML i Java. Ponadto, Java jest zgodna z zasadami programowania obiektowego, co pozwala na łatwe zarządzanie kodem i jego ponowne wykorzystanie. Warto również zaznaczyć, że Java jest wspierana przez dużą społeczność, co zapewnia bogaty ekosystem bibliotek oraz narzędzi, ułatwiających rozwój aplikacji na Androida.

Pytanie 20

Która z wymienionych zasad jest istotna dla bezpiecznego użytkowania portali społecznościowych?

A. Udostępnianie jak największej ilości informacji osobowych
B. Unikanie stosowania silnych haseł do konta
C. Regularne kontrolowanie ustawień prywatności
D. Zgłaszanie treści, które naruszają regulamin
Regularne sprawdzanie ustawień prywatności jest kluczowym aspektem bezpiecznego korzystania z portali społecznościowych, ponieważ to właśnie te ustawienia decydują o tym, jakie informacje udostępniamy innym użytkownikom. Użytkownicy powinni być świadomi, że domyślne ustawienia prywatności często są skonfigurowane w sposób, który umożliwia szeroką dostępność ich danych osobowych. Przykładowo, wiele platform społecznościowych domyślnie ustawia profile jako publiczne, co oznacza, że każdy może zobaczyć ich zawartość. Zmieniając te ustawienia, użytkownicy mogą ograniczyć widoczność swoich postów, zdjęć, a także informacji osobistych tylko do wybranej grupy osób, co znacząco zwiększa ich bezpieczeństwo. Warto także regularnie aktualizować te ustawienia, ponieważ platformy często wprowadzają nowe funkcje, które mogą zmieniać domyślne zasady dotyczące prywatności. Zgodnie z wytycznymi RODO oraz innymi standardami ochrony danych osobowych, użytkownicy mają prawo do kontrolowania swoich informacji, co czyni regularne sprawdzanie ustawień prywatności nie tylko zaleceniem, ale również obowiązkiem każdego świadomego użytkownika internetu.

Pytanie 21

Jakie cechy posiada model prototypowy w zakresie zarządzania projektami?

A. Szczegółowym planowaniem każdego etapu projektu przed jego realizacją
B. Rozwojem produktu w sposób iteracyjny w krótkich cyklach
C. Przygotowaniem wersji systemu w ograniczonym zakresie w celu uzyskania opinii od użytkownika
D. Realizowaniem pełnej wersji produktu przed przeprowadzeniem testów
Model prototypowy w zarządzaniu projektami to taka sprytna technika, gdzie tworzymy coś w rodzaju wczesnej wersji systemu, czyli prototypu. To nam pozwala zebrać opinie od użytkowników i przetestować różne pomysły zanim w ogóle weźmiemy się za pełną wersję. Fajną sprawą jest to, że gdy mamy ten prototyp, to łatwiej wyłapać błędy, zanim wszystko zostanie w pełni zbudowane. Największa zaleta? Możemy dostosować i poprawiać aplikację na podstawie tego, co mówią użytkownicy. Dzięki temu ryzyko, że stworzymy coś, co nie spełnia ich oczekiwań, jest znacznie mniejsze. Prototypy to często chleb powszedni w projektach UX/UI, aplikacjach webowych czy oprogramowaniu dla firm, gdzie tak istotne jest, by dobrze trafiać w potrzeby końcowych użytkowników.

Pytanie 22

Jaką rolę pełni element statyczny w klasie?

A. Automatycznie likwiduje obiekty klasy po zakończeniu działania programu
B. Pozwala na dynamiczne dodawanie nowych metod
C. Ogranicza dostęp do metod publicznych w klasie
D. Zachowuje wspólną wartość dla wszystkich instancji tej klasy
Dynamiczne tworzenie nowych metod to zadanie metaprogramowania lub refleksji, a nie funkcjonalność składników statycznych. Ograniczenie dostępu do metod publicznych jest realizowane za pomocą modyfikatorów dostępu, takich jak 'private' czy 'protected', a nie przez składniki statyczne. Automatyczne usuwanie obiektów klasy jest zadaniem destruktora i mechanizmu garbage collection (GC), a nie cechą składnika statycznego.

Pytanie 23

Która z wymienionych bibliotek pozwala na obsługę zdarzeń związanych z myszą w aplikacjach desktopowych?

A. Numpy
B. TensorFlow
C. Qt
D. Django
Qt to jedna z najpopularniejszych bibliotek, która umożliwia obsługę zdarzeń myszy i klawiatury w aplikacjach desktopowych. Dzięki Qt możliwe jest tworzenie interaktywnych aplikacji, które reagują na kliknięcia, przesunięcia kursora oraz inne zdarzenia generowane przez urządzenia wejściowe. Qt oferuje obszerną dokumentację i gotowe klasy, takie jak QPushButton, QLabel czy QSlider, które mogą nasłuchiwać zdarzeń i dynamicznie zmieniać stan aplikacji. Co więcej, Qt pozwala na implementację niestandardowych zdarzeń i tworzenie zaawansowanych interfejsów graficznych, które są w pełni interaktywne i responsywne.

Pytanie 24

Po wykonaniu podanego kodu na konsoli wyświetli się liczba

Ilustracja do pytania
A. 108
B. 115
C. 73
D. 0
Kod generuje liczbę 115 w konsoli, co jest wynikiem przetwarzania wartości ASCII znaków lub obliczeń matematycznych na poziomie bajtów. W języku C++ konwersja i manipulowanie wartościami liczbowymi często obejmuje użycie operacji na typach całkowitych oraz zmiennych pomocniczych, co umożliwia precyzyjne zarządzanie wynikiem wyjściowym.

Pytanie 25

Jaką nazwę elementu interfejsu należy wprowadzić w pierwszej linii kodu, na miejscu

Ilustracja do pytania
A. RatingBar
B. Spinner
C. Switch
D. SeekBar
Kontrolka 'Switch' to taki przycisk, który służy do zmiany stanu, na przykład włączania i wyłączania czegoś. W Androidzie mamy klasę Switch, która często jest używana do aktywacji lub dezaktywacji różnych funkcji w ustawieniach aplikacji. Moim zdaniem, to bardzo przydatne narzędzie, bo pozwala użytkownikom łatwo zarządzać opcjami.

Pytanie 26

Który z wymienionych typów kolekcji pozwala na dostęp do ostatnio dodanego elementu w pierwszej kolejności?

A. Stos
B. Lista
C. Tablica dwuwymiarowa
D. Kolejka
Stos to struktura danych działająca na zasadzie LIFO (Last In First Out), co oznacza, że ostatnio dodany element jest usuwany jako pierwszy. Stos znajduje zastosowanie w implementacji mechanizmu wywołań rekurencyjnych, zarządzaniu pamięcią oraz w operacjach związanych z cofaniem i przywracaniem stanu (np. cofanie operacji w edytorach tekstów). Dzięki swojej prostocie stosy są fundamentalnym elementem w programowaniu, szczególnie w językach niskopoziomowych.

Pytanie 27

Jakie są kluczowe korzyści z wykorzystania frameworków podczas programowania aplikacji desktopowych?

A. Gwarantują dostęp do niskopoziomowego kodu systemowego
B. Redukują zapotrzebowanie na pamięć operacyjną aplikacji
C. Ułatwiają kontrolę nad wersjami systemu operacyjnego
D. Skracają czas tworzenia aplikacji dzięki gotowym komponentom i narzędziom
Jedną z głównych zalet stosowania frameworków w programowaniu aplikacji desktopowych jest znaczne skrócenie czasu tworzenia oprogramowania dzięki gotowym komponentom i narzędziom. Frameworki dostarczają struktury, która standaryzuje rozwój aplikacji i minimalizuje konieczność pisania kodu od podstaw. Frameworki takie jak WPF, Qt czy Electron umożliwiają szybkie tworzenie interfejsów użytkownika, obsługę zdarzeń oraz integrację z bazami danych i API. Ponadto frameworki wspierają modularność i umożliwiają łatwe zarządzanie dużymi projektami, co przekłada się na lepszą organizację kodu i wyższą jakość oprogramowania.

Pytanie 28

Definicja konstruktora dla zaprezentowanej klasy w języku C++ może być sformułowana jak w

Ilustracja do pytania
A. Deklaracji 3
B. Deklaracji 2
C. Deklaracji 4
D. Deklaracji 1
Deklaracja 2 może zawierać błędną składnię lub brak odpowiedniej definicji, co prowadzi do błędów kompilacji. Deklaracja 3 może używać nieprawidłowych modyfikatorów dostępu. Deklaracja 4 może zawierać błędne parametry lub brak wymaganej inicjalizacji zmiennych, co czyni ją niepoprawną jako konstruktor.

Pytanie 29

Jedną z dolegliwości, która pojawia się u programistów w wyniku długotrwałego korzystania z myszki komputerowej lub klawiatury, objawiającą się bólem, drętwieniem oraz zaburzeniami czucia w rejonie 1-3 palca ręki jest

A. kifoza
B. zespół suchego oka
C. zespół cieśni kanału nadgarstka
D. dyskopatia
Zespół cieśni kanału nadgarstka to schorzenie występujące często u programistów i innych osób pracujących przy komputerze. Objawia się bólem, mrowieniem i drętwieniem palców, co wynika z ucisku nerwu pośrodkowego w nadgarstku. Długotrwałe korzystanie z klawiatury i myszy bez ergonomicznych przerw może prowadzić do tego schorzenia. Profilaktyka obejmuje ćwiczenia rozciągające, stosowanie ergonomicznych urządzeń oraz regularne przerwy w pracy.

Pytanie 30

Jakie informacje można uzyskać na temat metod w klasie Point?

Ilustracja do pytania
A. Są przeciążone.
B. Służą jako konstruktory w zależności od liczby argumentów.
C. Zawierają błąd, ponieważ nazwy metod powinny być różne.
D. Zawierają przeciążenie operatora.
Metody klasy Point są przeciążone, co oznacza, że mogą mieć tę samą nazwę, ale różnią się liczbą lub typem parametrów. Przeciążenie metod to jedna z podstawowych technik programowania obiektowego, która pozwala na bardziej elastyczne projektowanie kodu. Dzięki temu programista może tworzyć metody dostosowane do różnych sytuacji, zachowując spójność nazw i intuicyjność użycia. To zwiększa czytelność i utrzymanie kodu, ponieważ wywołania metod o tej samej nazwie, ale różnych parametrach, są łatwe do zrozumienia i odnalezienia.

Pytanie 31

Jaką nazwę kontrolki powinno się umieścić w początkowej linii kodu, w miejscu <???, aby została ona wyświetlona w podany sposób?

Ilustracja do pytania
A. Spinner
B. RatinoBar
C. Switch
D. SeekBar
Switch to kontrolka używana w Androidzie do stworzenia elementu interfejsu użytkownika, który pozwala użytkownikowi przełączać się między dwoma stanami. Domyślnie stany te są identyfikowane jako włączone i wyłączone, co jest szczególnie przydatne w przypadku funkcji wymagających prostego wyboru binarnego, jak na przykład włączanie lub wyłączanie ustawień. Kod XML użyty w pytaniu zawiera atrybuty android:textOff i android:textOn, które są typowe dla klasy Switch i pozwalają zdefiniować tekst, jaki ma być wyświetlany w stanie wyłączonym i włączonym. W praktyce Switch jest często stosowany w aplikacjach mobilnych do kontroli ustawień użytkownika, co pozwala na łatwą i intuicyjną obsługę. Dobrymi praktykami jest używanie Switch w kontekście jednoznacznego wyboru, aby nie wprowadzać użytkownika w błąd. Warto również zadbać o dostępność i odpowiednie etykietowanie kontrolki, co zapewnia jej zrozumiałość dla wszystkich użytkowników.

Pytanie 32

Sposób deklaracji Klasa2 wskazuje, że

Ilustracja do pytania
A. Klasa1 jest dzieckiem Klasy2
B. Klasa2 dziedziczy od Klasa1
C. Klasa2 stanowi klasę bazową
D. Klasa1 dziedziczy od Klasa2
Deklaracja Klasa2 jako klasy dziedziczącej po Klasa1 oznacza, że Klasa2 przejmuje wszystkie publiczne i chronione (protected) pola oraz metody klasy bazowej (Klasa1). Dziedziczenie to jeden z filarów programowania obiektowego, który umożliwia ponowne wykorzystanie kodu i rozszerzanie funkcjonalności istniejących klas. Dzięki temu Klasa2 może nie tylko korzystać z metod Klasa1, ale także nadpisywać je, co jest kluczowe dla implementacji polimorfizmu. Dziedziczenie pozwala na budowanie hierarchii klas, co prowadzi do lepszego zarządzania kodem i ułatwia jego skalowalność. Przykładem może być klasa Pojazd, z której dziedziczy klasa Samochod, rozszerzając jej funkcjonalność o dodatkowe cechy i metody specyficzne dla samochodów.

Pytanie 33

Jakie znaczenie ma poziom dostępności AAA w WCAG 2.0?

A. Średni standard dostępności
B. Najwyższy poziom dostępności
C. Dostosowanie tylko do użytkowników mobilnych
D. Najnizszy poziom dostępności
Niepoprawne odpowiedzi dotyczące poziomu dostępności w WCAG 2.0 wprowadzają w błąd i nie odzwierciedlają rzeczywistego znaczenia poziomów dostępności. Po pierwsze, stwierdzenie o minimalnym poziomie dostępności jest mylące, ponieważ poziom A nie jest jedynie minimalnym standardem, ale również zawiera kluczowe wytyczne. Uznanie poziomu AAA za minimalny standard mogłoby prowadzić do sytuacji, w której użytkownicy niepełnosprawni nie otrzymaliby odpowiedniej pomocy. Kolejnym błędnym podejściem jest określenie poziomu AAA jako średniego poziomu dostępności, co jasno sugeruje błędne zrozumienie hierarchii poziomów w WCAG. W rzeczywistości poziom AAA jest znacznie bardziej wymagający i zawiera dodatkowe kryteria, które są kluczowe dla pełnej dostępności. Ostatnia niepoprawna odpowiedź sugeruje, że poziom AAA dotyczy jedynie użytkowników mobilnych, co jest całkowicie mylne. WCAG 2.0 jest zaprojektowane tak, aby dotyczyło wszystkich platform i urządzeń, nie ograniczając się tylko do mobilnych. Koncentruje się na zapewnieniu dostępności treści dla wszystkich, niezależnie od używanego urządzenia.

Pytanie 34

Która z wymienionych reguł należy do netykiety?

A. Zaniechanie odpowiadania na wiadomości od innych użytkowników
B. Stosowanie nieformalnego języka w każdej rozmowie
C. Unikanie używania dużych liter w komunikacji
D. Udostępnianie treści bez zgody właścicieli
Unikanie pisania wielkimi literami w wiadomościach jest kluczowym elementem netykiety, ponieważ tekst pisany dużymi literami w internecie jest powszechnie interpretowany jako krzyk. To zasada, która ma na celu utrzymanie kultury komunikacji online oraz zapewnienie komfortu odbiorcy. Gdy użytkownik korzysta z wielkich liter, może to być odbierane jako agresywne lub dominujące, co może prowadzić do nieporozumień oraz negatywnych reakcji. Przykładem może być sytuacja, w której osoba, pisząc do grupy na forum internetowym, używa wyłącznie wielkich liter, co może zniechęcić innych do interakcji. Dobrą praktyką jest pisanie w sposób przystępny i zrozumiały, co sprzyja pozytywnej atmosferze w komunikacji. Standardy netykiety, takie jak te przedstawione w dokumentach związanych z etyką w internecie, podkreślają znaczenie szacunku i zrozumienia w interakcjach online, co obejmuje również sposób formułowania wiadomości. Warto także pamiętać o tym, że różne platformy społecznościowe mają swoje zasady, które podkreślają unikanie pisania krzykiem, co potwierdza ogólne podejście do netykiety.

Pytanie 35

Zmienna o typie logicznym może mieć następujące wartości:

A. true, false
B. 0 oraz każda liczba całkowita
C. trzy dowolne liczby naturalne
D. 1, -1
Typ logiczny (boolean) może przyjąć jedynie dwie wartości: true (prawda) i false (fałsz). Jest to fundamentalna zasada w programowaniu, ponieważ zmienne logiczne są podstawą operacji warunkowych, pętli oraz sterowania przepływem programu. W językach takich jak C++, Java, Python i wielu innych, wartości logiczne pozwalają na budowanie złożonych struktur decyzyjnych. Dzięki nim programista może precyzyjnie kontrolować, które fragmenty kodu zostaną wykonane, co jest kluczowe w implementacji algorytmów oraz walidacji danych.

Pytanie 36

Który z wymienionych wzorców projektowych jest najbardziej odpowiedni do uproszczenia interfejsu złożonego systemu?

A. Fasada (Facade)
B. Singleton (Singleton)
C. Metoda szablonowa (Template method)
D. Kompozyt (Composite)
Wzorzec Kompozyt (Composite) umożliwia traktowanie pojedynczych obiektów i ich grup w jednakowy sposób, co ułatwia zarządzanie hierarchicznymi strukturami. Metoda szablonowa (Template Method) definiuje szkielet algorytmu w klasie bazowej, pozwalając podklasom na dostosowanie poszczególnych kroków. Singleton to wzorzec zapewniający istnienie tylko jednej instancji klasy, co jest użyteczne w zarządzaniu zasobami systemowymi, ale nie służy do upraszczania interfejsu do złożonego systemu.

Pytanie 37

Jakie środowisko jest natywne do tworzenia aplikacji desktopowych w języku C#?

A. Eclipse
B. PyCharm
C. NetBeans
D. MS Visual Studio
MS Visual Studio to środowisko natywne do programowania aplikacji desktopowych w języku C#. To jedno z najczęściej używanych IDE do programowania w ekosystemie Microsoftu, oferujące wsparcie dla debugowania, projektowania interfejsu użytkownika i integracji z .NET. Visual Studio posiada również zaawansowane narzędzia do refaktoryzacji kodu, analizy oraz tworzenia aplikacji webowych i mobilnych.

Pytanie 38

Jakie są kluczowe zasady WCAG 2.0?

A. Ewolucyjna, interaktywna, efektywna
B. Percepcyjna, operacyjna, zrozumiała, solidna
C. Dostosowana, błyskawiczna, mobilna, dostępna
D. Elastyczna, prosta, przejrzysta, trwała
Zasady WCAG 2.0, czyli Wytycznych dotyczących dostępności treści internetowych, skupiają się na zapewnieniu, że strony internetowe są dostępne dla wszystkich użytkowników, niezależnie od ich zdolności. Główne zasady to percepcyjna, operacyjna, zrozumiała i solidna. Percepcyjna oznacza, że ​​wszystkie elementy na stronie muszą być przedstawione w sposób, który umożliwia ich percepcję przez różne zmysły, takie jak wzrok i słuch. Na przykład, tekst alternatywny dla obrazów pozwala osobom niewidomym zrozumieć zawartość wizualną. Operacyjna dotyczy interakcji użytkownika z treścią; nawigacja powinna być intuicyjna, a elementy interaktywne łatwo osiągalne. Zrozumiała oznacza, że ​​treść powinna być zrozumiała dla wszystkich użytkowników, co można osiągnąć poprzez prosty język i jasne instrukcje. Solidna koncentruje się na tym, aby treść była wystarczająco elastyczna, aby działała w różnych przeglądarkach i urządzeniach, co jest kluczowe w dobie różnorodności technologii. Przykładem wdrożenia tych zasad może być wykorzystanie ARIA (Accessible Rich Internet Applications), które wspomagają dostępność dynamicznych treści w aplikacjach internetowych.

Pytanie 39

Dziedziczenie jest używane, gdy zachodzi potrzeba

A. określenia zasięgu dostępności metod i pól danej klasy
B. asynchronicznej realizacji długotrwałych zadań
C. wykorzystania stałych wartości, niezmieniających się w trakcie działania aplikacji
D. sformułowania klasy bardziej szczegółowej niż już stworzona
Asynchroniczna obsługa operacji nie jest związana z dziedziczeniem, raczej chodzi tu o programowanie współbieżne. A jeśli chodzi o stałe, to definiuje się je jako stałe (const), a dziedziczenie to zupełnie inna bajka. Pamiętaj, że widoczność metod i pól kontrolują modyfikatory dostępu, takie jak private, protected i public, więc to też jest ważne.

Pytanie 40

Wskaż algorytm sortowania, który nie jest stabilny?

A. sortowanie przez wstawianie
B. sortowanie szybkie
C. sortowanie bąbelkowe
D. sortowanie przez zliczanie
Sortowanie bąbelkowe (Bubble Sort) jest stabilne, ponieważ nie zmienia kolejności elementów o równej wartości. Sortowanie przez wstawianie (Insertion Sort) również zachowuje stabilność. Sortowanie przez zliczanie (Counting Sort) to algorytm stabilny, szczególnie efektywny dla danych o ograniczonym zakresie wartości.