Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 12 kwietnia 2026 13:30
  • Data zakończenia: 12 kwietnia 2026 13:45

Egzamin zdany!

Wynik: 31/40 punktów (77,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu— sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Która z wymienionych aplikacji stanowi przykład prostego rozwiązania mobilnego?

A. Aplikacja typu zegar
B. Aplikacja do analizy danych finansowych
C. Aplikacja z rozbudowanym systemem zarządzania projektami
D. Aplikacja do monitorowania użycia pamięci RAM
Aplikacja typu zegar to jeden z najprostszych przykładów aplikacji mobilnej. Jej podstawowa funkcjonalność polega na wyświetlaniu aktualnego czasu oraz alarmów, a dodatkowo może zawierać funkcje takie jak minutnik czy stoper. Tego rodzaju aplikacje charakteryzują się niewielką liczbą funkcji, przejrzystym interfejsem i minimalnym zapotrzebowaniem na zasoby sprzętowe. Dzięki swojej prostocie, aplikacje typu zegar są doskonałym przykładem na to, jak przy użyciu niewielkiej liczby komponentów można stworzyć przydatne narzędzie dla użytkownika.

Pytanie 2

Która z wymienionych topologii sieci wykazuje cechę, że wszystkie urządzenia są połączone jednym kablem?

A. Topologia siatki
B. Topologia gwiazdy
C. Topologia magistrali
D. Topologia pierścienia
Topologia magistrali to jedna z podstawowych topologii sieci komputerowych, w której wszystkie urządzenia są podłączone do jednego kabla, zwanego magistralą. W tej konfiguracji dane przesyłane są w obu kierunkach na wspólnym przewodzie, a każde urządzenie musi odczytać dane i zidentyfikować, czy są one przeznaczone dla niego. Kluczową zaletą topologii magistrali jest jej prostota oraz niskie koszty instalacji, ponieważ wymaga mniej kabli niż inne topologie. Jest to jednak także jej największa wada - awaria jednego segmentu kabla może spowodować przerwanie komunikacji w całej sieci. Topologia magistrali jest często wykorzystywana w małych sieciach lokalnych oraz w systemach, gdzie nie ma potrzeby dużej niezawodności. Standardy, takie jak IEEE 802.3, definiują zasady działania sieci Ethernet korzystających z tej topologii. W praktyce, zastosowanie topologii magistrali można zaobserwować w starszych instalacjach sieciowych, gdzie budżet na infrastrukturę był ograniczony, a wymogi dotyczące skomplikowania sieci były minimalne.

Pytanie 3

Jaką instrukcję należy wykorzystać do poprawnej deklaracji zmiennej typu string w C++?

A. float name = "Jan"
B. string name = "Jan"
C. int name = "Jan"
D. bool name = "Jan"
Ta deklaracja 'string name = "Jan"' to naprawdę dobry sposób na zdefiniowanie zmiennej łańcuchowej w C++. Wiesz, 'string' to typ danych, 'name' to nazwa tej zmiennej, a 'Jan' to wartość, która jest jej przypisana. Typ 'string' jest częścią biblioteki <string> i daje nam wiele możliwości, gdy pracujemy z tekstem. Możemy łączyć, porównywać i modyfikować różne łańcuchy znaków bez większego problemu. To jest mega ważne w aplikacjach, które mają do czynienia z danymi tekstowymi, interfejsami użytkownika czy analizą danych, które wprowadzamy.

Pytanie 4

Który z wymienionych przykładów przedstawia typ rekordowy?

A. bool w języku Java
B. float w języku C
C. int w języku Python
D. struct w języku C++
Typ 'struct' w języku C++ jest przykładem typu rekordowego, który pozwala na grupowanie zmiennych różnego typu pod jedną nazwą. Struktury pozwalają na przechowywanie powiązanych danych, np. informacji o pracowniku (imię, nazwisko, wiek) w jednym obiekcie. Struktury są kluczowe w programowaniu proceduralnym i obiektowym, umożliwiając efektywne zarządzanie danymi złożonymi. Typy rekordowe pozwalają na budowanie bardziej złożonych i zorganizowanych aplikacji, co zwiększa ich czytelność i ułatwia zarządzanie kodem.

Pytanie 5

Który z wymienionych frameworków jest charakterystyczny dla aplikacji komputerowych pisanych w C#?

A. WPF (Windows Presentation Foundation)
B. Spring
C. React
D. Qt
WPF (Windows Presentation Foundation) to framework firmy Microsoft, który jest powszechnie wykorzystywany do tworzenia aplikacji desktopowych w języku C#. WPF pozwala na projektowanie zaawansowanych interfejsów użytkownika (UI) z wykorzystaniem XAML (Extensible Application Markup Language), co umożliwia oddzielenie logiki aplikacji od warstwy prezentacyjnej. WPF wspiera grafikę wektorową, animacje oraz różne efekty wizualne, co czyni go idealnym narzędziem do budowy nowoczesnych, estetycznych aplikacji dla systemu Windows. Integracja z .NET i Visual Studio umożliwia szybkie tworzenie aplikacji oraz korzystanie z bogatych bibliotek i gotowych komponentów UI. WPF jest szczególnie ceniony za elastyczność, obsługę danych i możliwość tworzenia aplikacji responsywnych.

Pytanie 6

Która z dokumentacji funkcji odpowiada przedstawionemu kodowi źródłowemu?

static int Abs(int liczba)
{
    if (liczba < 0)
        liczba *= -1;
    return liczba;
}
Dokumentacja 1:
/*******************
* nazwa: Abs
* opis: liczy wartość bezwzględną
* zwracana: brak
* argumenty: liczba całkowita
*******************/
Dokumentacja 2:
/*******************
* nazwa: Abs
* opis: liczy wartość bezwzględną
* zwracana: wartość bezwzględna z liczby całkowitej
* argumenty: liczba całkowita
*******************/
Dokumentacja 3:
/*******************
* nazwa: Abs
* opis: liczy potęgę liczby
* zwracana: potęga z liczby całkowitej
* argumenty: dwie liczby całkowite
*******************/
Dokumentacja 4:
/*******************
* nazwa: Abs
* opis: liczy potęgę liczby
* zwracana: potęga z liczby całkowitej
* argumenty: liczba całkowita
*******************/
A. Dokumentacja 3
B. Dokumentacja 1
C. Dokumentacja 4
D. Dokumentacja 2
Dokumentacja 2 zdecydowanie najlepiej pasuje do przedstawionej funkcji. Zwróć uwagę, że sama definicja funkcji „Abs” w kodzie przyjmuje jeden argument typu całkowitego (int) i zwraca także liczbę całkowitą. Jej zadaniem jest zwrócenie wartości bezwzględnej tej liczby, co dokładnie opisuje fragment: „zwracana: wartość bezwzględna z liczby całkowitej”. To bardzo ważne, bo w programowaniu – a szczególnie w językach takich jak C# czy C++ – jasna i kompletna dokumentacja pozwala potem innym korzystać z funkcji bez konieczności zaglądania do jej wnętrza. W praktyce, takie szczegółowe opisywanie co zwraca dana funkcja i jakie przyjmuje argumenty, znacznie przyspiesza pracę w większych zespołach. Standardem branżowym jest właśnie precyzyjne określanie typu zwracanego i opisu działania, a nie tylko suchy komentarz typu „zwraca: brak” (co byłoby niezgodne z kodem!). Co ciekawe, w wielu firmach stosuje się rozbudowane systemy dokumentacji (np. Doxygen czy XML doc w .NET), które niejako wymuszają takie dokładne opisy. Osobiście uważam, że przyzwyczajenie się do dobrych praktyk dokumentowania funkcji już na etapie nauki procentuje w przyszłości – mniej pytań w zespole, mniej nieporozumień. Ta konkretna dokumentacja spełnia wszystkie kluczowe kryteria: podaje nazwę, precyzyjny opis, prawidłowy typ zwracanej wartości oraz właściwy typ i opis argumentu. Idealnie odzwierciedla, co robi ten fragment kodu, a to podstawa w pisaniu czytelnych i bezpiecznych aplikacji.

Pytanie 7

Który z wymienionych typów stanowi przykład typu znakowego?

A. float
B. string
C. boolean
D. char
Typ 'string' to struktura lub klasa, która przechowuje sekwencję znaków, a nie pojedynczy znak. 'Boolean' przechowuje wartości logiczne 'true' lub 'false', a nie znaki. 'Float' przechowuje liczby zmiennoprzecinkowe i jest używany w operacjach matematycznych, a nie w przetwarzaniu tekstu czy znaków. Typ 'char' różni się od 'string' tym, że przechowuje dokładnie jeden znak, podczas gdy 'string' może zawierać wiele znaków.

Pytanie 8

Co należy do zadań interpretera?

A. przekładanie kodu na kod maszynowy
B. sprawdzanie składni całego programu przed jego uruchomieniem
C. wykonanie skryptu instrukcja po instrukcji
D. ulepszanie większej części kodu, aby przyspieszyć jego wykonanie
Często spotykam się z myleniem interpretera z kompilatorem i optymalizatorami kodu, co prowadzi do błędnych wyobrażeń o jego działaniu. Zacznijmy od podstaw: przekładanie kodu źródłowego na kod maszynowy to domena kompilatorów, które analizują cały program, optymalizują go i generują plik wykonywalny, który można uruchomić niezależnie od środowiska. Interpreter natomiast nie zajmuje się takim tłumaczeniem, tylko odczytuje kod i wykonuje go na bieżąco, bez zapisywania gotowego programu w formie binarnej. Kolejna kwestia to ulepszanie kodu w celu przyspieszenia jego wykonania – to zadanie specjalistycznych narzędzi optymalizujących, często wbudowanych w kompilatory. Interpreter rzadko kiedy ingeruje w optymalizację kodu, bo jego głównym zadaniem jest wierne odtworzenie logiki programu krok po kroku, a nie poprawianie jego wydajności. Jeżeli chodzi o sprawdzanie składni całego programu przed uruchomieniem, to znów domena kompilatorów – interpreter najczęściej wykrywa błędy dopiero w momencie, gdy dociera do konkretnej instrukcji podczas wykonywania skryptu. To właśnie sprawia, że łatwiej eksperymentować, ale też czasem trudniej jest znaleźć błędy, które ujawniają się dopiero w trakcie działania aplikacji. W mojej ocenie te nieporozumienia wynikają z utożsamiania terminów używanych w teorii kompilacji – warto rozróżniać narzędzia na podstawie ich faktycznej roli w cyklu życia programu. Praktyka pokazuje, że zrozumienie różnicy pomiędzy interpretacją a kompilacją jest kluczowe przy wyborze technologii do realizacji konkretnego projektu. Jeżeli zależy nam na szybkim prototypowaniu lub pracy z kodem interaktywnym – interpreter jest świetny, ale nie będzie generował kodu maszynowego ani zaawansowanie go optymalizował.

Pytanie 9

Jaki typ złośliwego oprogramowania funkcjonuje w tle, zbierając dane o wprowadzanych hasłach?

A. Adware
B. Keylogger
C. Spyware
D. Trojan
Keylogger to takie złośliwe oprogramowanie, które działa w tle i rejestruje wszystkie naciśnięcia klawiszy. To naprawdę niebezpieczne, bo może przechwytywać hasła i inne ważne dane osobowe. Keyloggery mogą się dostawać na komputer na różne sposoby, na przykład przez zainfekowane pliki, złośliwe reklamy albo w ramach innych niebezpiecznych programów. Przykładami takich keyloggerów są Spyrix czy Perfect Keylogger, które mogą monitorować, co robisz na komputerze. Z punktu widzenia bezpieczeństwa, standardy takie jak ISO/IEC 27001 mówią, jak ważna jest ochrona informacji. Dlatego tak istotne jest, żeby użytkownicy mieli świadomość zagrożeń, jakie niosą keyloggery i używali dobrego oprogramowania antywirusowego, żeby chronić swoje urządzenia i dane.

Pytanie 10

Jakie środowisko deweloperskie jest najczęściej używane do programowania w C#?

A. Eclipse
B. NetBeans
C. Visual Studio
D. PyCharm
Visual Studio to najczęściej wykorzystywane środowisko programistyczne (IDE) do tworzenia aplikacji w języku C#. Oferuje pełne wsparcie dla platformy .NET i umożliwia szybkie tworzenie aplikacji desktopowych, webowych i mobilnych. Visual Studio jest wyposażone w zaawansowane narzędzia do debugowania, projektowania interfejsów oraz integrację z systemami kontroli wersji. Dzięki rozbudowanemu ekosystemowi wtyczek i rozszerzeń Visual Studio jest idealnym rozwiązaniem zarówno dla początkujących, jak i zaawansowanych programistów, którzy tworzą aplikacje na system Windows oraz inne platformy.

Pytanie 11

Jakie informacje mogą być zapisywane w cookies przeglądarki?

A. Prywatne dane użytkownika, na przykład hasła
B. Preferencje użytkownika, takie jak język lub styl strony
C. Dane przechowywane w systemie baz danych
D. Kod źródłowy aplikacji internetowej
Preferencje użytkownika, takie jak język strony, motyw kolorystyczny lub preferencje dotyczące układu, są typowymi danymi przechowywanymi w ciasteczkach przeglądarki. Mechanizm ciasteczek pozwala na personalizację doświadczenia użytkownika i jest szeroko stosowany w aplikacjach webowych w celu dostosowania interfejsu do indywidualnych potrzeb. Cookies umożliwiają także zapamiętywanie sesji użytkownika, co pozwala uniknąć konieczności wielokrotnego logowania. Informacje te są przechowywane lokalnie w przeglądarce użytkownika i mogą być odczytywane przez aplikację podczas każdej wizyty. Stosowanie ciasteczek zgodnie z przepisami, takimi jak RODO (GDPR), wymaga informowania użytkownika o ich przeznaczeniu oraz uzyskiwania jego zgody na ich przechowywanie, co zapewnia transparentność i zgodność z prawem.

Pytanie 12

Który element HTML5 służy do wyświetlania zawartości video?

A. &lt;play&gt;
B. &lt;media&gt;
C. &lt;film&gt;
D. &lt;video&gt;
Element HTML5 <video> jest kluczowym składnikiem do wyświetlania treści wideo w przeglądarkach. Dzięki niemu można łatwo osadzić filmy na stronach internetowych, co sprawia, że są one bardziej interaktywne i atrakcyjne dla użytkowników. Przykład użycia tego tagu wygląda następująco: <video src='film.mp4' controls></video>. Atrybut 'controls' pozwala na dodanie prostych przycisków odtwarzania, pauzy i regulacji głośności, co znacząco poprawia doświadczenia użytkownika. Warto również wspomnieć, że element <video> wspiera różne formaty wideo, takie jak MP4, WebM czy Ogg, co jest istotne w kontekście zgodności z różnymi przeglądarkami i urządzeniami. W praktyce, stosowanie <video> pozwala na łatwe zarządzanie wideo, w tym na dodawanie napisów, ustawienie automatycznego odtwarzania czy loopowania. To sprawia, że jest on niezwykle popularny w tworzeniu nowoczesnych stron internetowych, które chcą dostarczać wartościowe multimedia. Zastosowanie tego elementu jest zgodne z najlepszymi praktykami w zakresie dostępności i użyteczności, co czyni go niezwykle ważnym w dzisiejszym web development.

Pytanie 13

Programem służącym do monitorowania błędów oraz organizacji projektów jest:

A. Jira
B. Bugzilla
C. Git
D. Jasmine
Jira to narzędzie, które zdecydowanie wyróżnia się w kwestii zarządzania projektami programistycznymi oraz monitorowania błędów. Z mojego doświadczenia wynika, że praktycznie każda większa firma IT używa Jiry do śledzenia zgłoszeń, tzw. ticketów, które mogą dotyczyć zarówno zadań, jak i błędów do naprawienia. Co istotne, Jira pozwala na bardzo rozbudowaną konfigurację – można tworzyć workflow, automatyzować przypisania zadań, integrować ją z repozytoriami kodów (np. GitHub, Bitbucket), testami automatycznymi, a nawet narzędziami do continuous integration. Standardem branżowym jest prowadzenie rejestru błędów (bug tracker) i backlogu zadań właśnie w Jirze, bo wszystko odbywa się w jednym miejscu, a zespół ma przejrzysty widok postępów. Bardzo fajna jest opcja generowania raportów – łatwo można sprawdzić, ile błędów zostało naprawionych, ile czeka na poprawki czy jak poszczególni członkowie zespołu realizują swoje zadania. Jira jest też zgodna z metodykami Agile, np. Scrum czy Kanban, co dodatkowo ułatwia zarządzanie sprintami, planowanie i retrospektywy. Uważam, że znajomość tego narzędzia to podstawa dla każdego, kto myśli o pracy w branży IT na poważnie. Warto też wiedzieć, że Jira obsługuje zarówno małe zespoły, jak i międzynarodowe projekty, bo jest bardzo skalowalna i można ją dostosować praktycznie do każdego procesu.

Pytanie 14

Który protokół jest wykorzystywany do transferu plików między klientem a serwerem?

A. HTTP
B. POP3
C. FTP
D. SMTP
Protokół FTP (File Transfer Protocol) jest standardowym protokołem sieciowym, który został zaprojektowany do przesyłania plików między klientem a serwerem. Dzięki FTP użytkownicy mogą łatwo wysyłać i pobierać pliki w sieci, co czyni go nieocenionym narzędziem w administracji serwerami oraz w środowiskach deweloperskich. Protokół ten działa na zasadzie architektury klient-serwer, gdzie klient łączy się z serwerem FTP, autoryzuje się i następnie może przesyłać pliki. W praktyce FTP często wykorzystywane jest do przesyłania dużych plików, tworzenia kopii zapasowych, a także do publikowania stron internetowych na serwerach hostingowych. Istnieje wiele implementacji FTP, w tym wersje bezpieczne, takie jak FTPS i SFTP, które zapewniają dodatkowe warstwy bezpieczeństwa, szyfrując dane podczas transferu. W kontekście standardów branżowych, FTP jest powszechnie akceptowany i stosowany w różnych systemach operacyjnych oraz aplikacjach, co czyni go standardem w zakresie transferu plików w Internecie.

Pytanie 15

Który z przedstawionych poniżej przykładów ilustruje prawidłową deklarację zmiennej typu całkowitego w języku C++?

A. float liczba;
B. char liczba;
C. bool liczba;
D. int liczba;
W języku C++ zmienna typu całkowitego jest deklarowana za pomocą słowa kluczowego `int`. Przykładowa poprawna deklaracja to `int liczba;`, co oznacza, że `liczba` jest zmienną, która może przechowywać wartości całkowite, takie jak 1, 42 lub -15. Deklarowanie zmiennych w C++ pozwala na statyczne typowanie, co oznacza, że każda zmienna ma określony typ i nie może przechowywać wartości innego typu. Dzięki temu kod jest bardziej przejrzysty i mniej podatny na błędy związane z niezgodnością typów.

Pytanie 16

Co to jest local storage w kontekście aplikacji webowych?

A. Mechanizm pozwalający na przechowywanie danych w przeglądarce użytkownika bez określonego czasu wygaśnięcia
B. Technologia przechowywania danych w pamięci RAM aplikacji
C. System plików tymczasowych używany przez przeglądarkę
D. Baza danych NoSQL działająca na serwerze aplikacji
Local storage to mechanizm dostępny w przeglądarkach internetowych, który pozwala na przechowywanie danych w formacie klucz-wartość. W przeciwieństwie do cookies, które mają czas wygaśnięcia, dane w local storage są przechowywane bezterminowo, co oznacza, że pozostają dostępne nawet po zamknięciu przeglądarki. Dzięki temu deweloperzy mogą tworzyć aplikacje webowe, które pamiętają preferencje użytkowników, stany formularzy czy inne istotne informacje. Typowym zastosowaniem local storage może być zapisywanie ustawień użytkownika w grach przeglądarkowych lub aplikacjach do zarządzania zadaniami. Warto również wspomnieć, że local storage ma limit pojemności wynoszący zazwyczaj około 5 MB na domenę, co czyni go odpowiednim dla przechowywania małych ilości danych. Ponadto, korzystając z local storage, deweloperzy powinni pamiętać o kwestiach bezpieczeństwa, takich jak unikanie przechowywania wrażliwych danych, a także o stosowaniu technik takich jak serializacja danych w formacie JSON, co ułatwia ich późniejsze wykorzystanie.

Pytanie 17

W systemie RGB kolor Pale Green przedstawia się jako RGB(152, 251, 152). Jaki jest szesnastkowy kod tego koloru?

A. 98 FE98
B. AO FB AO
C. 98FB98
D. AO FE AO
Kolor Pale Green w systemie RGB jest reprezentowany przez wartości RGB(152, 251, 152). Aby przekształcić te wartości na format szesnastkowy, należy każdy z komponentów koloru (czerwony, zielony, niebieski) przekształcić na format heksadecymalny. Wartość 152 w systemie dziesiętnym odpowiada 98 w systemie szesnastkowym, a 251 w systemie dziesiętnym odpowiada FE w systemie szesnastkowym. Dlatego, łącząc te wartości w kolejności od komponentu czerwonego, zielonego, do niebieskiego, uzyskujemy kod szesnastkowy 98FE98. Kod ten może być używany w projektach graficznych oraz w CSS do definiowania kolorów tła, tekstów i innych elementów. Użycie formatu szesnastkowego w projektowaniu stron internetowych oraz w aplikacjach jest zgodne z zasadami standardu W3C dotyczącego kolorów w HTML i CSS, co zapewnia spójność wizualną i ułatwia pracę z kolorami.

Pytanie 18

Zalecenia standardu WCAG 2.0 dotyczące percepcji koncentrują się na

A. zrozumieniu i wiarygodności prezentowanych treści na stronie
B. umożliwieniu interakcji między komponentami użytkownika za pomocą klawiatury
C. zapewnieniu odpowiedniej ilości czasu na przeczytanie i zrozumienie treści
D. prezentacji elementów interfejsu użytkownika
Pierwsza z niepoprawnych odpowiedzi odnosi się do zrozumienia i rzetelności w dostarczonych treściach na stronie, co jest ważnym aspektem, ale nie dotyczy bezpośrednio percepcji komponentów interfejsu użytkownika. Zrozumienie treści jest związane z czytelnością tekstu oraz jego strukturalną formą, co nie jest bezpośrednio związane z interfejsem. Kolejna niepoprawna odpowiedź, dotycząca zapewnienia wystarczającej ilości czasu na przeczytanie i przetworzenie treści, odnosi się bardziej do zasad dostępności dotyczących czasu, które są istotne dla użytkowników z różnymi zdolnościami przetwarzania informacji, ale nie dotyczą samej percepcji komponentów interfejsu. Ostatnia odpowiedź, dotycząca zapewnienia interakcji pomiędzy komponentami użytkownika przy użyciu klawiatury, również nie odnosi się bezpośrednio do percepcji, a bardziej do interakcji użytkownika z systemem. Choć interakcja jest istotna, kluczowe jest zrozumienie, że percepcja skupia się na sposobie, w jaki użytkownicy dostrzegają i interpretują te komponenty, a nie na ich interakcji. Dlatego też, te odpowiedzi, choć dotyczą ważnych kwestii dostępności, nie są zgodne z istotą pytania.

Pytanie 19

W przedstawionym filmie ukazano kreator interfejsu użytkownika, dla którego automatycznie powstaje

A. obsługa wciśniętego przycisku
B. kod Java
C. obsługa przycisku ekranu dotykowego
D. kod XML
Kod XML jest obecnie najczęściej stosowanym formatem do definiowania wyglądu interfejsów użytkownika w takich narzędziach jak Android Studio czy różnego rodzaju designery graficzne. Kiedy projektujesz layout aplikacji mobilnej albo desktopowej, duża część nowoczesnych narzędzi tworzy właśnie pliki XML, które następnie są interpretowane przez system w czasie uruchamiania aplikacji. Ułatwia to rozdzielenie logiki aplikacji od jej prezentacji, co wydaje się fundamentalne przy większych projektach. Moim zdaniem takie podejście daje ogromne korzyści – można łatwo modyfikować wygląd bez dotykania kodu źródłowego. W praktyce, jeśli używasz np. Android Studio, zbudujesz interfejs przeciągając przyciski czy pola tekstowe, a pod spodem dostaniesz czytelny plik XML. To przyspiesza pracę, zwiększa czytelność projektu i pozwala na późniejsze automatyczne generowanie dokumentacji albo testów interfejsu. Takie standardy są rekomendowane nie tylko przez Google, ale też szeroko stosowane w innych środowiskach, jak chociażby XAML w Microsoft czy FXML w JavaFX. Przezroczystość działania tych narzędzi sprawia, że łatwiej jest pracować zespołowo, bo każdy może szybko zorientować się w strukturze UI patrząc na XML-a. Samo generowanie kodu XML przez narzędzia graficzne to duży krok w kierunku lepszej organizacji pracy i zgodności ze współczesnymi praktykami branżowymi.

Pytanie 20

Jaka jest składnia komentarza jednoliniowego w języku Python?

A. #
B. //
C. ""
D. !
W programowaniu bardzo ważne jest rozróżnianie składni danego języka, bo nawet drobny błąd może skutkować tym, że kod nie zadziała albo zachowa się nieprzewidywalnie. Jeśli chodzi o komentarze jednoliniowe, Python stosuje do tego wyłącznie znak #. Często osoby zaczynające naukę Pythona mylą ten język np. z C#, C++ czy Javą, gdzie do komentarzy jednoliniowych używa się dwóch ukośników, czyli //. Takie podejście w Pythonie niestety nie działa – interpreter potraktuje // jako operator dzielenia całkowitego, a nie jako sygnał zignorowania reszty linii. Z kolei cudzysłowy, czyli "", są w Pythonie używane do oznaczania łańcuchów znaków (stringów), natomiast pojedynczy wykrzyknik (!) nie ma żadnego specjalnego zastosowania w kontekście komentarzy. To typowy błąd początkujących: mylą składnię z innych języków lub próbują zgadywać, zamiast sprawdzić dokumentację. Przy projektach zespołowych takie nieporozumienia mogą spowodować, że kod staje się mniej czytelny albo wręcz wywołuje błędy. Warto pamiętać, że dobry komentarz to nie tylko kwestia znaków – to też wyjaśnienie intencji i logiki działania kodu dla siebie i innych. W standardzie Pythona (PEP 8) jasno określono, że jedyną poprawną formą komentarza jednoliniowego jest użycie #. Pomijanie tej reguły może skutkować nie tylko błędami, ale też nieczytelnością kodu i trudnościami w jego utrzymaniu. W praktyce im szybciej wypracuje się nawyk poprawnego komentowania, tym lepiej dla całego procesu programowania i wspólnej pracy nad projektem.

Pytanie 21

Jakie działania można podjąć, aby uniknąć pogorszenia wzroku podczas korzystania z komputera?

A. Używać filtrów przeciwodblaskowych na ekranie
B. Zachować stałą temperaturę w biurze
C. Stosować ergonomiczne podkładki pod ręce
D. Korzytać ze słuchawek tłumiących dźwięki
Stosowanie filtrów przeciwodblaskowych na monitorze to skuteczny sposób na zapobieganie pogorszeniu wzroku podczas pracy przy komputerze. Filtry te redukują odbicia światła, zmniejszając zmęczenie oczu i poprawiając komfort pracy. Długotrwała praca przy komputerze bez odpowiedniej ochrony może prowadzić do zespołu suchego oka, bólu głowy i problemów z widzeniem. Filtry przeciwodblaskowe to prosty, ale bardzo efektywny sposób na poprawę ergonomii stanowiska pracy. W połączeniu z odpowiednim ustawieniem monitora, regularnymi przerwami oraz ćwiczeniami wzrokowymi, pomagają one w utrzymaniu zdrowia oczu.

Pytanie 22

Która z operacji logicznych zwróci wartość "true", gdy obie zmienne są sobie równe?

A. x && y
B. x || y
C. x != y
D. x == y
Operator `==` w języku C++ i wielu innych językach programowania (np. Python, Java, JavaScript) służy do porównywania dwóch wartości. Zwraca `true`, jeśli obie wartości są sobie równe, oraz `false`, jeśli są różne. Przykład: `if (x == y)` sprawdza, czy zmienna `x` jest równa zmiennej `y`. Operator ten jest kluczowy w instrukcjach warunkowych oraz pętlach, gdzie konieczne jest porównywanie wartości w celu podejmowania decyzji na podstawie wyniku tego porównania.

Pytanie 23

Które z podejść do tworzenia aplikacji najlepiej uwzględnia przyszłe zmiany w funkcjonalności?

A. Pisanie kodu bez jakiejkolwiek dokumentacji
B. Tworzenie bez wcześniejszej specyfikacji technicznej
C. Zastosowanie modularnej architektury aplikacji
D. Skupienie się tylko na estetce aplikacji
Użycie modularnej architektury aplikacji to najlepsze podejście do projektowania systemów, które muszą uwzględniać przyszłe modyfikacje funkcjonalności. Modularność pozwala na podział aplikacji na mniejsze, niezależne komponenty, które mogą być rozwijane, testowane i aktualizowane niezależnie od siebie. Takie podejście zwiększa elastyczność, ułatwia zarządzanie kodem i pozwala na szybkie wdrażanie nowych funkcji bez konieczności ingerencji w cały system. Architektura modularna jest szczególnie przydatna w dużych projektach, gdzie zmiany są częste, a wymagania dynamicznie się zmieniają.

Pytanie 24

Jaką funkcję pełni operator "|" w języku C++?

A. Bitowe "xor"
B. Operację przesunięcia bitów w prawo
C. Bitowe "lub"
D. Logiczne "lub"
Operator `|` w języku C++ jest operatorem bitowym `OR`, który porównuje bity dwóch liczb i zwraca `1` w pozycji bitu, jeśli przynajmniej jeden z odpowiadających sobie bitów jest `1`. Przykład: `5 | 3` (w notacji binarnej `0101 | 0011`) zwróci `0111`, co odpowiada liczbie `7`. Operatory bitowe są często używane w programowaniu systemowym, kryptografii oraz manipulacji danymi na poziomie bitowym.

Pytanie 25

Jaką cechą odznacza się framework w porównaniu do biblioteki?

A. Framework zapewnia API do szerszego zestawu funkcji
B. Framework stanowi zbiór funkcji, które programista ma możliwość wykorzystania
C. Framework oferuje funkcje użyteczne w konkretnej dziedzinie problemu
D. Framework określa strukturę aplikacji i zapewnia jej fundament
Biblioteka to zestaw funkcji i klas, które programista może wykorzystywać według własnego uznania, ale to on decyduje o strukturze aplikacji. API dostarcza zestaw metod do komunikacji z innymi aplikacjami, ale nie narzuca architektury. Framework to coś więcej niż zbiór funkcji – określa cały proces tworzenia aplikacji, czego nie można powiedzieć o zwykłej bibliotece lub narzędziach użytkowych.

Pytanie 26

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

A. ASP.NET Core
B. Angular
C. Django
D. React.js
Django to framework stworzony specjalnie do budowy aplikacji webowych w języku Python. Jest jednym z najbardziej popularnych i zaawansowanych frameworków typu full-stack, który oferuje szeroki wachlarz narzędzi umożliwiających szybkie i efektywne tworzenie aplikacji internetowych. Django pozwala na tworzenie aplikacji zgodnych z zasadą DRY (Don't Repeat Yourself), co oznacza minimalizację powtarzalnego kodu. Posiada wbudowany panel administracyjny, system ORM (Object-Relational Mapping) oraz zabezpieczenia przed atakami CSRF i XSS. Dzięki Django programiści mogą skupić się na rozwijaniu logiki biznesowej, a nie na konfiguracji podstawowych funkcji aplikacji, co znacznie skraca czas wdrożenia gotowego produktu.

Pytanie 27

W jaki sposób procesor nawiązuje komunikację z pamięcią podręczną (cache)?

A. Za pomocą systemu przerwań
B. Bezpośrednio, omijając mostki systemowe
C. Poprzez linie danych w magistrali systemowej
D. Używając wyłącznie pamięci RAM
Komunikacja między procesorem a pamięcią podręczną nie odbywa się poprzez system przerwań, ponieważ przerwania są mechanizmem umożliwiającym procesorowi reagowanie na zdarzenia zewnętrzne, a nie transfer danych między pamięcią a procesorem. Przerwania są używane głównie do komunikacji z urządzeniami peryferyjnymi, które informują procesor o konieczności przetworzenia danych, a nie do bezpośredniej interakcji z pamięcią podręczną. Ponadto stwierdzenie, że procesor komunikuje się z pamięcią podręczną, wykorzystując jedynie pamięć RAM, jest błędne, ponieważ pamięć RAM i pamięć podręczna to różne typy pamięci, o różnych szybkościach i funkcjach. Pamięć podręczna jest znacznie szybsza i działa jako pośrednik między procesorem a wolniejszą pamięcią RAM, co oznacza, że procesor nie korzysta z pamięci RAM do komunikacji z pamięcią podręczną. Warto również zaznaczyć, że komunikacja bezpośrednia z pominięciem mostków systemowych jest niepraktyczna i technicznie niemożliwa. Mostki systemowe są niezbędne do zarządzania ruchem danych między różnymi komponentami w architekturze komputerowej, a ich pominięcie mogłoby prowadzić do chaosu w komunikacji oraz znacznie obniżyć wydajność systemu.

Pytanie 28

Przedstawione logo praw Creative Commons umożliwia bezpłatne użytkowanie dzieła:

Ilustracja do pytania
A. pod warunkiem zachowania go w oryginalnej formie
B. w celu modyfikacji lub remiksowania
C. pod warunkiem udostępnienia go na tej samej zasadzie licencyjnej
D. w działaniach komercyjnych
Analizując przedstawione odpowiedzi, warto dokładnie zrozumieć, jakie uprawnienia daje licencja Creative Commons BY-NC. Często spotykanym błędem jest przekonanie, że taka licencja automatycznie pozwala na dowolne wykorzystanie dzieła, także komercyjne, albo że wymaga zachowania oryginalnej formy utworu. Tymczasem skrót NC oznacza wyłącznie użycie niekomercyjne – czyli nie można zarabiać na tym materiale ani go wykorzystywać w działaniach, które mogą mieć charakter komercyjny. To wyklucza możliwość legalnego użycia go np. w reklamie, na płatnych szkoleniach czy produktach na sprzedaż, co jest dość istotne w kontekście praw autorskich. Kolejnym często powielanym nieporozumieniem jest założenie, że tego typu licencje zabraniają modyfikacji lub remiksowania – a wręcz przeciwnie, dopuszczają takie działania, jeśli tylko nie narusza się warunków licencji. Ta pomyłka bierze się zapewne z mylenia BY-NC z licencją BY-NC-ND, gdzie „ND” to „NoDerivatives”, czyli zakaz tworzenia utworów zależnych. Z kolei warunek konieczności udostępnienia dzieła na tej samej zasadzie licencyjnej, czyli tzw. CC SA (ShareAlike), tutaj nie występuje – to osobny warunek licencyjny i jeśli nie ma go w oznaczeniu, nie trzeba się nim przejmować. Generalnie mylenie symboli lub nieczytanie oznaczeń powoduje takie nieporozumienia. W branży IT i szeroko pojętej edukacji bardzo często korzysta się z dzieł Creative Commons i znajomość tych niuansów jest wręcz kluczowa dla świadomego, legalnego działania. Jeśli w praktyce nie masz pewności, czy coś wolno – zawsze warto zajrzeć bezpośrednio do opisu licencji na oficjalnej stronie Creative Commons albo skonsultować się z kimś bardziej doświadczonym. To pozwoli uniknąć typowych błędów, które potem mogą się okazać kosztowne, zwłaszcza w projektach publicznych czy komercyjnych.

Pytanie 29

Która z poniższych technologii służy do tworzenia interaktywnych aplikacji webowych bez przeładowania strony?

A. AJAX
B. CSS3
C. SQL
D. HTML5
AJAX, czyli Asynchronous JavaScript and XML, to technologia umożliwiająca tworzenie interaktywnych aplikacji webowych bez konieczności przeładowywania całej strony. Dzięki AJAX, możliwe jest asynchroniczne przesyłanie danych pomiędzy klientem a serwerem, co pozwala na dynamiczne aktualizowanie treści na stronie bez interakcji użytkownika w postaci odświeżania. Przykładem wykorzystania AJAX może być formularz kontaktowy, który po wysłaniu nie przeładowuje całej strony, ale zamiast tego zaktualizowuje tylko wybraną sekcję, informując użytkownika o sukcesie lub błędzie. AJAX jest wykorzystywany w wielu nowoczesnych aplikacjach webowych, takich jak Gmail czy Facebook, gdzie interaktywność i szybkość są kluczowe. W kontekście standardów, AJAX najlepiej współpracuje z technologiami takimi jak RESTful API oraz JSON, co optymalizuje wymianę danych. Przy implementacji AJAX ważne jest również przestrzeganie zasad związanych z wydajnością i bezpieczeństwem, takich jak unikanie ataków XSS oraz odpowiednie zarządzanie sesjami użytkowników.

Pytanie 30

Do implementacji w aplikacji jednokierunkowej funkcji skrótu, zwanej funkcją haszującą, można wykorzystać algorytm

A. RSA
B. DES
C. AES
D. MD5
MD5 to przykład klasycznej funkcji skrótu, czyli właśnie tej funkcji, która generuje z dowolnie długych danych wejściowych stałej długości skrót (hash). Funkcje haszujące są szeroko stosowane w informatyce, szczególnie tam, gdzie potrzebna jest szybka weryfikacja integralności danych albo przechowywanie haseł w bazie danych w sposób bezpieczny (chociaż MD5 dziś już nie poleca się do haseł przez znane luki bezpieczeństwa – lepsze są SHA-256 czy bcrypt). To, co wyróżnia funkcje skrótu jak MD5, to ich jednokierunkowość: znając wynik, praktycznie nie jesteśmy w stanie odtworzyć oryginalnych danych wejściowych, a nawet minimalnie różniące się dane dają zupełnie inne hashe. Przykład praktyczny? Sprawdzenie sumy kontrolnej pliku po pobraniu z internetu – porównujemy hash MD5 z podanym na stronie wydawcy i mamy pewność, że plik nie został podmieniony. W praktyce branżowej, zgodnie z normami bezpieczeństwa jak np. ISO/IEC 27001, funkcje haszujące są podstawą wielu procesów kryptograficznych. Moim zdaniem, znajomość takich algorytmów jak MD5, nawet jeśli już nie jest zalecany w nowych systemach, to podstawa do zrozumienia ogólnego działania funkcji skrótu i różnicy między nimi a szyfrowaniem. Często spotykałem się z myleniem tych pojęć, więc warto to dobrze rozumieć.

Pytanie 31

Jaki komponent środowiska IDE jest niezbędny do tworzenia aplikacji webowych?

A. Emulator urządzeń mobilnych
B. Narzędzie do tworzenia grafiki
C. Debugger, edytor kodu, integracja z systemem kontroli wersji
D. Zarządzanie bazami danych
Debugger, edytor kodu oraz integracja z systemem kontroli wersji to kluczowe elementy środowiska IDE, które umożliwiają efektywną pracę nad aplikacjami webowymi. Debugger pozwala na wykrywanie i naprawianie błędów w czasie rzeczywistym, edytor kodu umożliwia szybkie pisanie i modyfikowanie kodu, a integracja z systemem kontroli wersji (np. Git) pozwala śledzić zmiany i współpracować w zespołach programistycznych. Te narzędzia stanowią podstawę pracy każdego dewelopera webowego.

Pytanie 32

Jakie są kluczowe etapy resuscytacji krążeniowo-oddechowej?

A. 30 wdechów ratowniczych bez uciśnięć
B. 10 uciśnięć klatki piersiowej bez wdechów
C. 30 uciśnięć klatki piersiowej na przemian z 2 wdechami ratowniczymi
D. 20 uciśnięć klatki piersiowej na przemian z 5 wdechami ratowniczymi
30 uciśnięć klatki piersiowej na przemian z 2 wdechami ratowniczymi to standardowy protokół resuscytacji krążeniowo-oddechowej (RKO) zgodny z wytycznymi Europejskiej Rady Resuscytacji (ERC). Uciśnięcia wykonywane są na głębokość około 5-6 cm w tempie 100-120 uciśnięć na minutę. Po 30 uciśnięciach wykonuje się 2 wdechy ratownicze, które powinny być wykonywane z odpowiednią siłą, aby unieść klatkę piersiową poszkodowanego. Taka sekwencja jest podstawą pierwszej pomocy i może uratować życie osoby, u której doszło do zatrzymania akcji serca. Resuscytację należy kontynuować do momentu przybycia służb ratunkowych lub odzyskania przytomności przez poszkodowanego.

Pytanie 33

Jakie zdarzenie jest wywoływane, gdy kliknięta zostaje myszą nieaktywna kontrolka lub okno?

A. keyup
B. validating
C. focus
D. blur
W momencie, kiedy klikamy na nieaktywną kontrolkę lub okno w aplikacji, wywoływane jest zdarzenie focus. To jest dość kluczowe w interakcji człowieka z interfejsem graficznym — focus decyduje, która kontrolka staje się „aktywnym” odbiorcą zdarzeń klawiatury oraz innych operacji wejścia. W praktyce, np. w aplikacjach webowych czy desktopowych, jeśli użytkownik kliknie w pole tekstowe, to właśnie focus oznacza, że to pole jest gotowe do przyjęcia tekstu. Co ciekawe, focus można też ustawiać programowo, np. za pomocą metody focus() w JavaScript, co jest często używane do poprawiania użyteczności formularzy (od razu ustawiamy kursor w pierwszym polu). Z mojego doświadczenia, dobrze jest zawsze przemyśleć, które elementy mogą i powinny otrzymywać focus, bo to wpływa na dostępność (ang. accessibility) aplikacji – osoby korzystające z klawiatury czy czytników ekranu są bardzo zależne od logiki focusowania. Branżowe standardy, szczególnie WCAG, mocno podkreślają, żeby nie blokować możliwości uzyskania focusa przez kluczowe kontrolki. Zdarzenie focus ma też kilka niuansów – na przykład nie bąbelkuje w DOM, co czasem zaskakuje początkujących. Moim zdaniem, zrozumienie roli focus w każdej aplikacji interaktywnej to taki absolutny fundament, bez którego łatwo pogubić się w późniejszych, bardziej złożonych interakcjach.

Pytanie 34

W języku Java wyjątek ArrayIndexOutOfBoundsException występuje, gdy następuje próba dostępu do elementu tablicy, którego

A. indeks jest równy lub większy od rozmiaru tablicy
B. wartość przewyższa jego indeks
C. wartość przekracza rozmiar tablicy
D. indeks mieści się w zakresie od 0 do n-1, gdzie n oznacza rozmiar tablicy
Temat ArrayIndexOutOfBoundsException w Javie często rodzi nieporozumienia, zwłaszcza gdy ktoś nie do końca rozumie sposób indeksowania tablic w tym języku. Wydaje się naturalne myśleć, że błąd pojawia się, gdy wartość przechowywana w tablicy przekracza jakiś limit albo że indeksy są liczone od jeden czy od wartości logicznych, ale to nie tak. Tablica w Javie zawsze ma indeksy zaczynające się od 0, a kończące na długość minus jeden. Przekonanie, że wyjątek pojawia się, gdy wartość przekracza rozmiar tablicy, jest dość mylące, bo silnik Javy w ogóle nie analizuje wartości elementów, tylko patrzy na indeks. W innym błędnym podejściu wskazuje się, że wyjątek wystąpi, gdy indeks mieści się w zakresie od 0 do n-1 – to przeczy całej idei tablicy w Javie, bo właśnie te indeksy są w pełni poprawne: to jest naturalny, dozwolony zakres. Jeszcze inny mylny trop to przekonanie, że chodzi o wartość elementu przewyższającą jego indeks – nie ma to żadnego znaczenia, bo tablica może przechowywać dowolne wartości pod dowolnym indeksami, a wyjątek jest związany wyłącznie z odwołaniem się do nieistniejącego indeksu, czyli np. próbą dostępu do szóstego elementu w pięcioelementowej tablicy. Takie nieporozumienia zwykle wynikają z braku praktycznego doświadczenia lub z mylenia zasad działania tablic z innymi strukturami danych. Z mojego doświadczenia wynika, że najlepsze efekty daje po prostu pamiętanie, by zawsze operować na indeksach w zakresie 0 do length - 1 oraz korzystać z length w warunkach pętli. Profesjonalni programiści często automatyzują testy na takich przypadkach, bo to klasyczne źródło bugów w dużych projektach – lepiej nauczyć się od razu, niż potem szukać błędów na produkcji.

Pytanie 35

Jakie kroki należy podjąć, aby skutecznie zabezpieczyć dane na komputerze?

A. Przechowywać dane na niezabezpieczonych nośnikach przenośnych
B. Systematycznie aktualizować oprogramowanie i wykonywać kopie zapasowe
C. Nie używać kopii zapasowych
D. Dzielić się hasłami do plików z współpracownikami
Regularne aktualizowanie oprogramowania oraz tworzenie kopii zapasowych to kluczowe działania zapewniające bezpieczeństwo danych na komputerze. Aktualizacje łatają luki w zabezpieczeniach i eliminują błędy, które mogą zostać wykorzystane przez hakerów. Kopie zapasowe chronią dane przed utratą spowodowaną awarią sprzętu, atakiem ransomware lub przypadkowym usunięciem. Najlepszą praktyką jest przechowywanie kopii zapasowych w różnych miejscach – lokalnie i w chmurze – co dodatkowo zwiększa poziom zabezpieczenia przed nieprzewidzianymi sytuacjami.

Pytanie 36

W jakim celu wykorzystuje się diagram Gantta?

A. do wizualizacji powiązań między elementami systemów
B. do przedstawiania funkcjonalności systemu
C. do dokładnej analizy czasowo-kosztowej projektu
D. do planowania i zarządzania projektem
Diagram Gantta to jeden z podstawowych i – moim zdaniem – najfajniejszych narzędzi używanych w zarządzaniu projektami, zwłaszcza w budowlance, IT czy produkcji. Jest bardzo praktyczny, bo pozwala wizualnie rozplanować, jakie zadania są do wykonania, ile mają trwać i co od czego zależy. Dzięki prostemu układowi poziomych pasków na osi czasu można szybko ogarnąć całość projektu, zobaczyć które zadania się pokrywają i gdzie mogą być wąskie gardła. Branżowe standardy, np. PMBOK, zalecają korzystanie z diagramu Gantta właśnie do planowania i monitorowania postępu. Z mojego doświadczenia to narzędzie, które łączy ludzi – wszyscy od razu widzą, kto co robi i na kiedy. Fajne jest też to, że łatwo aktualizować taki diagram w miarę zmian w projekcie. Diagram Gantta pomaga też w kontroli terminowości i identyfikacji opóźnień. Jeśli ktoś kiedyś miał styczność z programami jak MS Project czy nawet prostym Excelem – na pewno widział taki wykres. Można tam nawet dodać kamienie milowe czy zależności między zadaniami (np. jedno musi się skończyć, zanim drugie się zacznie). Tak naprawdę, w profesjonalnych firmach, zarządzanie projektem bez takiego narzędzia byłoby trochę strzałem w stopę.

Pytanie 37

Na przedstawionym obrazie widać fragment emulacji systemu iOS z prostą aplikacją. Górna część ekranu nachodzi na pasek stanu baterii. Który z poniższych zapisów powinien zostać użyty w miejscu znaków zapytania, aby ustawić jedynie marginesy górne tylko dla systemu iOS?

Ilustracja do pytania
A. x:TypeArguments="Thickness"<br/> iOS= 20
B. x:TypeArguments="Thickness" <br/> (0, 20, 0, 0)
C. x:TypeArguments="Thickness"<br/> iOS= "0, 20, 0, 0"<br/> Android= "0, 0, 0, 0"<br/> WinPhone= "0, 0, 0, 0"
D. x:TypeArguments="Thickness"<br/> iOS= "0, 0, 0, 0"<br/> Android= "0, 20, 0, 0"<br/> WinPhone= "0, 0, 0, 0"
Odpowiedź czwarta jest prawidłowa, ponieważ prawidłowo wykorzystuje mechanizm OnPlatform w XAML do zastosowania specyficznych ustawień dla różnych platform. W przypadku iOS zastosowano margines górny wynoszący 20 jednostek, co jest konieczne, aby uwzględnić przestrzeń zajmowaną przez status bar systemowy. Takie podejście jest zgodne z dobrymi praktykami projektowania aplikacji wieloplatformowych, gdzie różne platformy mogą wymagać różnych ustawień interfejsu użytkownika. Przykładowo, w aplikacjach tworzonych przy użyciu Xamarin.Forms, korzystanie z OnPlatform pozwala na dynamiczne dostosowywanie interfejsu w zależności od platformy, co zwiększa elastyczność i poprawia doświadczenie użytkownika. Dodatkowo, zastosowanie marginesów tylko dla platformy iOS pozwala na zachowanie spójności i pełną kontrolę nad wyglądem aplikacji na innych platformach takich jak Android czy Windows Phone, gdzie takie dostosowanie nie jest konieczne. Uwzględnienie tych różnic jest kluczowe dla tworzenia aplikacji, które wyglądają i działają dobrze na wszystkich docelowych urządzeniach.

Pytanie 38

Algorytm wyszukiwania sekwencyjnego z wykorzystaniem wartownika opiera się na założeniu, że

A. zbiór ma zawsze 100 elementów
B. na końcu analizowanego zbioru należy dodać wartownika
C. szukany element powinien wystąpić wielokrotnie w zbiorze
D. zbiór danych wejściowych musi być uporządkowany
Algorytm sekwencyjnego wyszukiwania elementu z wartownikiem jest techniką optymalizacji procesu wyszukiwania w strukturach danych, która znacząco zwiększa efektywność operacji w przypadkach, gdy zbiór danych jest duży. Wartownik to specjalny element, który jest dodawany na końcu przeszukiwanego zbioru, co pozwala na uproszczenie warunków zakończenia pętli przeszukiwania. Kiedy algorytm przeszukuje zbiór, porównuje każdy element z poszukiwanym, a gdy znajdzie element, może zakończyć działanie. Dodanie wartownika pozwala uniknąć potrzeby sprawdzania, czy aktualnie przeszukiwany element jest ostatnim z oryginalnego zbioru, co z kolei zmniejsza liczbę porównań i przyspiesza proces wyszukiwania. W praktyce algorytm ten jest szczególnie użyteczny w przypadku niewielkich zbiorów danych, gdzie efektywność jest kluczowa. Przykładem zastosowania może być edytor tekstu, w którym użytkownik wyszukuje konkretne słowa w dokumencie, a dodanie wartownika usprawnia ten proces. Zgodnie z zasadami wydajnego programowania, ta technika stanowi jeden z podstawowych mechanizmów stosowanych w algorytmice, co czyni ją fundamentalnym konceptem w nauce o komputerach.

Pytanie 39

Która z poniższych informacji o pojęciu obiekt jest prawdziwa?

A. obiekt pozwala na zdefiniowanie klasy
B. obiekt to typ złożony
C. obiekt oraz klasa są identyczne
D. obiekt jest instancją klasy
Prawidłowo, obiekt w programowaniu obiektowym to konkretny egzemplarz, czyli instancja klasy. Wyobraź sobie klasę jako przepis (np. instrukcja budowy samochodu), a obiekt to już gotowy samochód wyprodukowany według tej instrukcji. W praktyce, kiedy definiujesz klasę w języku takim jak Java, C++ czy Python, tworzysz pewnego rodzaju szablon opisujący, co dany obiekt będzie mógł robić (metody) i jakie będzie miał dane (pola/atrybuty). Dopiero utworzenie instancji tej klasy, czyli wywołanie np. new Car(), powoduje, że powstaje prawdziwy, działający obiekt, z którym możesz coś zrobić – na przykład ustawić mu kolor, zapalić światła czy uruchomić silnik. Z mojego doświadczenia wynika, że właśnie rozróżnienie klasy i obiektu pozwala pisać kod bardziej uniwersalny i czytelny. W dobrych praktykach, na przykład zgodnie z zasadami SOLID, klasa powinna być zrozumiała i opisująca pewien spójny koncept, zaś obiekty powstające na jej podstawie mogą zachowywać się różnie zależnie od wprowadzonych danych. To podejście jest fundamentem programowania nowoczesnych aplikacji, bo pozwala łatwo zarządzać złożonością, testować kod i rozwijać projekty. Warto też pamiętać, że instancja klasy może mieć swój własny, unikalny stan, co odróżnia ją od samej definicji klasy. Bez tworzenia obiektów klasy nie mają praktycznego zastosowania – to właśnie obiekty wykonują zadania w programie.

Pytanie 40

Która biblioteka JavaScript jest najczęściej używana do tworzenia testowalnych funkcji asynchronicznych?

A. Axios
B. Moment.js
C. Underscore.js
D. D3.js
Moment.js, D3.js i Underscore.js to biblioteki, które pełnią zupełnie inne funkcje w porównaniu do Axios. Moment.js jest używany głównie do manipulacji datami i czasem, co jest niezwykle przydatne w kontekście tworzenia aplikacji, które wymagają zaawansowanej obsługi dat i stref czasowych. Z drugiej strony, D3.js to potężne narzędzie do wizualizacji danych, pozwalające na tworzenie skomplikowanych wykresów i diagramów w przeglądarkach. Jego zastosowanie w asynchronicznym programowaniu jest ograniczone, ponieważ koncentruje się na prezentacji danych, a nie na ich pozyskiwaniu czy przetwarzaniu. Underscore.js jest z kolei biblioteką, która dostarcza funkcje pomocnicze do programowania funkcyjnego, ułatwiając pracę z kolekcjami danych, ale nie ma bezpośredniego związku z asynchronicznymi żądaniami HTTP. Typowym błędem może być mylenie funkcji każdej z tych bibliotek. Często programiści mogą pomyśleć, że każda z tych bibliotek wspiera asynchroniczność, jednak to Axios w tej dziedzinie jest liderem. Warto zwrócić uwagę, że wybór odpowiedniego narzędzia do konkretnego zadania jest kluczowy w programowaniu, a zrozumienie funkcji każdej biblioteki pozwala na efektywniejsze rozwiązywanie problemów.