Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 7 stycznia 2025 19:08
  • Data zakończenia: 7 stycznia 2025 19:17

Egzamin zdany!

Wynik: 26/40 punktów (65,0%)

Wymagane minimum: 20 punktów (50%)

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

W zaprezentowanym kodzie zostało ukazane jedno z fundamentalnych założeń programowania obiektowego. Czym ono jest?

Ilustracja do pytania
A. abstrakcja
B. hermetyzacja
C. polimorfizm
D. dziedziczenie
Ten kod świetnie pokazuje, jak działa dziedziczenie, co jest bardzo ważnym elementem programowania obiektowego. Dzięki temu możesz tworzyć nowe klasy bazując na tych, które już masz. To naprawdę ułatwia późniejsze modyfikacje kodu i pozwala na jego ponowne wykorzystanie w różnych miejscach.

Pytanie 2

Który z operatorów w języku C++ służy do pobierania adresu zmiennej?

A. >
B. *
C. &
D. delete
Hmmm, operator '*' rzeczywiście jest do dereferencji wskaźnika, ale nie myl go z innymi operatorami. '>' to operator do porównania, ale nie ma nic wspólnego z adresami czy wskaźnikami. A delete służy do zwalniania pamięci, a nie do uzyskiwania adresów zmiennych. Każdy z tych operatorów ma swoje miejsce w C++, ale jak się pomyli, to może być ciężko, no nie? Warto się przyjrzeć jeszcze raz tym pojęciom.

Pytanie 3

Jaki kod może być związany z treścią wygenerowaną w trakcie działania programu Java?

Ilustracja do pytania
A. Kodu 3
B. Kodu 1
C. Kodu 2
D. Kodu 4
Kod 4 jest prawidłowym rozwiązaniem generującym przedstawioną treść. Prawidłowo wykorzystuje składnię i logikę języka Java, co skutkuje poprawnym działaniem programu i zgodnym wynikiem w konsoli.

Pytanie 4

Na podstawie definicji zamieszczonej w ramce, wskaż, który z rysunków ilustruje komponent Chip zdefiniowany w bibliotece Angular Material?

Ilustracja do pytania
A. Rysunek 4
B. Rysunek 2
C. Rysunek 3
D. Rysunek 1
Rysunek 1 i 2 mogą przedstawiać inne komponenty, takie jak przyciski lub pola tekstowe, które nie pełnią funkcji interaktywnych znaczników. Rysunek 3 najprawdopodobniej reprezentuje suwak lub inny element nawigacyjny, który nie posiada cech charakterystycznych dla komponentu Chip. Komponenty Chip mają specyficzną strukturę, która odróżnia je od standardowych kontrolek interfejsu użytkownika.

Pytanie 5

Do zadań widoku w architekturze MVVM (Model_View-Viewmodel) należy

A. przechowywanie ściągniętych i przetworzonych informacji
B. obsługa interakcji użytkownika, stworzenie UI
C. zarządzanie logiką aplikacji - obejmuje wdrażanie algorytmów
D. przekazywanie danych do widoku oraz wymiana informacji z modelem
Logika aplikacji – To zadanie modelu lub ViewModel. Udostępnianie danych – To rola ViewModel, a nie widoku. Przechowywanie danych – Jest związane z modelem, nie widokiem, który zajmuje się prezentacją danych użytkownikowi.

Pytanie 6

Przeprowadzając analizę kodu interfejsu graficznego napisanego w języku XAML, można zauważyć, że:

Ilustracja do pytania
A. tekst "Fotograf" znajduje się po prawej stronie obrazu
B. obraz znajduje się po lewej stronie, a pozostałe elementy po prawej
C. przyciski są ustawione poziomo obok siebie
D. elementy: tekst, obraz, przycisk Like, przycisk Share, tekst są ułożone jeden pod drugim
W analizowanym kodzie XAML widzimy, że elementz atrybutem Orientation="Horizontal" zawiera przyciski

Pytanie 7

Kod zaprezentowany w filmie w języku C++ nie przechodzi kompilacji. Co należy zmodyfikować w tym kodzie, aby kompilacja odbyła się bez błędów?

A. naprawić błąd w funkcji sprawdz, który polega na braku nawiasów {} w pętli for
B. dodać deklarację funkcji sprawdz przed funkcją main
C. zadeklarować zmienną sprawdz przed jej wykorzystaniem w linii 11
D. poprawnie zapisać warunek w instrukcji if w linii 11, np. sprawdz(x)==true
Błąd warunku if – Choć poprawny, nie jest przyczyną problemu z kompilacją. Brak nawiasów – Może prowadzić do błędów logicznych, ale nie uniemożliwia kompilacji. Deklaracja zmiennej – Brak zmiennej to inny rodzaj błędu, który może pojawić się na późniejszym etapie.

Pytanie 8

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

A. NetBeans
B. Eclipse
C. PyCharm
D. Visual Studio
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 9

Która funkcja z biblioteki jQuery w JavaScript służy do naprzemiennego dodawania oraz usuwania klasy z elementu?

A. .toggleClass()
B. .changeClass()
C. .bingClass()
D. .switchClass()
Metoda .toggleClass() w jQuery jest mega przydatna, bo pozwala na dodawanie lub usuwanie klasy CSS w czasie rzeczywistym. Dzięki temu można fajnie urozmaicić interakcje na stronie i dodać różne efekty wizualne, co na pewno przyciąga uwagę użytkowników.

Pytanie 10

Czym jest klasa w programowaniu obiektowym?

A. instrukcja
B. typ danych
C. zmienna
D. wskaźnik
Zmienna to jednostka przechowująca dane, ale nie definiuje struktury obiektu. Wskaźnik przechowuje adresy pamięci, lecz sam w sobie nie jest typem danych wyższego poziomu. Instrukcja to pojedyncze polecenie wykonywane przez komputer, które nie opisuje ani nie reprezentuje klasy obiektowej.

Pytanie 11

Jakie znaczenie ma termin "hierarchia dziedziczenia" w kontekście programowania obiektowego?

A. Zespół metod i pól posiadających ten sam modyfikator dostępu
B. Układ klas w strukturę, w której klasy pochodne dziedziczą cechy od klas bazowych
C. Układ klas, który ogranicza występowanie dziedziczenia wielokrotnego
D. Zbiór klas, które nie mają wspólnych powiązań
Hierarchia dziedziczenia to fundamentalna koncepcja programowania obiektowego, polegająca na organizacji klas w strukturę, w której klasy pochodne dziedziczą właściwości (pola i metody) od klas bazowych. Pozwala to na wielokrotne wykorzystanie kodu, co zwiększa jego modularność i zmniejsza redundancję. Klasa bazowa dostarcza ogólne cechy i metody, podczas gdy klasy pochodne rozszerzają lub modyfikują tę funkcjonalność, dostosowując ją do bardziej specyficznych wymagań. Przykładem jest klasa 'Pojazd', po której mogą dziedziczyć klasy 'Samochód' i 'Motocykl', zachowując wspólne atrybuty, takie jak 'maksymalna prędkość' czy 'masa'.

Pytanie 12

Zaprezentowany wykres ilustruje wyniki przeprowadzonych testów

Ilustracja do pytania
A. funkcjonalności
B. ochrony
C. wydajności
D. użyteczności
Wykres przedstawia czasy odpowiedzi strony internetowej co jest kluczowe w kontekście testów wydajnościowych. Testy wydajnościowe mają na celu zmierzenie jak system radzi sobie pod określonym obciążeniem i jak szybko potrafi odpowiedzieć na zapytania użytkowników. Tego typu analiza pomaga zidentyfikować potencjalne wąskie gardła w infrastrukturze IT. Przykładowo jeżeli czasy odpowiedzi DNS lub połączenia są zbyt długie może to wskazywać na potrzebę optymalizacji serwerów DNS lub infrastruktury sieciowej. Testy te są nieodłącznym elementem zapewnienia jakości oprogramowania a ich prawidłowe wykonanie wpływa na doświadczenia użytkowników końcowych. Dobra praktyka w branży IT zakłada regularne przeprowadzanie testów wydajnościowych w celu monitorowania stabilności systemu w warunkach zbliżonych do rzeczywistych. Warto również zauważyć że narzędzia takie jak JMeter czy LoadRunner są powszechnie używane do przeprowadzania takich testów co umożliwia symulację różnorodnych scenariuszy obciążenia i analizę wyników w czasie rzeczywistym.

Pytanie 13

Wzorzec projektowy "Metoda szablonowa" (Template method) stosuje się do:

A. centralizacji zarządzania wieloma instancjami obiektów
B. gromadzenia obiektów w jednorodnej kolekcji
C. organizowania obiektów w hierarchiczne struktury drzewiaste
D. określenia szkieletu algorytmu i pozostawienia szczegółów implementacji dla podklas
Wzorzec Kompozyt (Composite) umożliwia tworzenie hierarchicznych struktur obiektów i pozwala traktować je jednolicie. Przechowywanie obiektów w jednorodnej kolekcji to domena wzorca Kolekcja (Collection) lub Iterator. Centralizacja zarządzania wieloma instancjami obiektów to charakterystyka wzorca Singleton, który zapewnia globalny punkt dostępu do zasobów systemowych, ale nie definiuje szkieletu algorytmu.

Pytanie 14

Podejście obiektowe w rozwiązywaniu problemów obejmuje między innymi:

A. pola, metody, rekurencję oraz kwerendy
B. zmienne, procedury oraz funkcje
C. klasy, obiekty oraz hermetyzację
D. wyzwalacze i polimorfizm
Pola, metody i rekurencja to elementy programowania proceduralnego lub funkcjonalnego, ale nie odnoszą się bezpośrednio do obiektowego podejścia. Wyzwalacze i polimorfizm są elementami programowania, ale wyzwalacze nie są częścią podstaw obiektowości. Zmienne, procedury i funkcje to charakterystyczne dla podejścia proceduralnego, nie obiektowego.

Pytanie 15

Który z paradygmatów programowania najbardziej akcentuje dziedziczenie oraz polimorfizm?

A. Programowanie obiektowe
B. Programowanie strukturalne
C. Programowanie funkcyjne
D. Programowanie proceduralne
Programowanie strukturalne skupia się na podziale kodu na funkcje i procedury, ale nie wspiera dziedziczenia ani polimorfizmu. Programowanie proceduralne to wcześniejszy paradygmat, który koncentruje się na wykonywaniu sekwencji instrukcji i nie obejmuje obiektów ani klas. Programowanie funkcyjne opiera się na funkcjach jako podstawowych jednostkach kodu, które są niemutowalne i nie wspiera takich cech jak dziedziczenie i polimorfizm, co różni je od programowania obiektowego.

Pytanie 16

Jakie znaczenie ma polimorfizm w programowaniu obiektowym?

A. Dzieli program na klasy oraz obiekty
B. Umożliwia jednej metodzie działać w różnorodny sposób w zależności od klasy, do której należy
C. Pozwala na tworzenie obiektów z wielu różnych klas równocześnie
D. Ogranicza dostęp do atrybutów klasy
Tworzenie obiektów z wielu klas jednocześnie nie jest związane z polimorfizmem – jest to raczej przykład wielokrotnego dziedziczenia, gdzie jedna klasa może dziedziczyć po wielu klasach bazowych. Dzielenie programu na klasy i obiekty to podstawowa cecha programowania obiektowego, ale nie jest to definicja polimorfizmu. Ograniczenie dostępu do pól klasy to hermetyzacja, a nie polimorfizm – celem polimorfizmu jest umożliwienie różnym klasom realizacji wspólnego interfejsu, a nie ukrywanie danych wewnętrznych obiektu.

Pytanie 17

Przedstawiony fragment dotyczy funkcji resize w języku C++. Ta funkcja obniży długość elementu string, gdy wartość parametru

Ilustracja do pytania
A. n jest mniejsza od aktualnej długości łańcucha
B. n jest większa od aktualnej długości łańcucha
C. c jest większa od aktualnej długości łańcucha
D. c jest mniejsza od aktualnej długości łańcucha
Funkcja resize zmniejsza długość elementu string, gdy wartość parametru n jest mniejsza niż bieżąca długość łańcucha. Pozwala to na skrócenie ciągu znaków, zachowując jedynie jego część początkową.

Pytanie 18

Zajmując się pracą w zespole oraz dbając o jego efektywne funkcjonowanie, nie powinniśmy

A. przyjmować odpowiedzialności za swoje decyzje
B. wspierać się nawzajem
C. sumiennie i w ustalonym terminie realizować swoje zadania
D. skupiać się jedynie na własnych korzyściach
Dbanie wyłącznie o własny interes jest niekorzystne w pracy zespołowej, ponieważ prowadzi do konfliktów i obniżenia efektywności grupy. Praca zespołowa wymaga współpracy, wzajemnego wsparcia i odpowiedzialności za wspólne działania, co sprzyja osiąganiu lepszych wyników.

Pytanie 19

Oznaczenie ochrony przeciwpożarowej przedstawione na symbolu wskazuje na

Ilustracja do pytania
A. przełącznik zasilania
B. rozdzielnię elektryczną
C. system alarmowy przeciwpożarowy
D. punkt remote release
Ten symbol to alarm pożarowy. Jest naprawdę ważny w systemach przeciwpożarowych, bo pozwala szybko dać znać o zagrożeniu. Dzięki temu można dużo szybciej zadbać o bezpieczeństwo w różnych budynkach.

Pytanie 20

W przypadku przedstawionego fragmentu kodu Java, wyjątek zostanie zgłoszony, gdy wartość zmiennej index wyniesie:

Ilustracja do pytania
A. 0
B. 5
C. 1
D. 7
W podanym kodzie Java mamy do czynienia z tablicą o nazwie liczby zawierającą sześć elementów: {1 2 3 4 5 6}. Indeksy tablicy w Javie zaczynają się od 0 a kończą na n-1 gdzie n to długość tablicy. W tym przypadku tablica ma długość 6 a więc jej indeksy to 0 1 2 3 4 i 5. Kiedy próbujemy uzyskać dostęp do elementu tablicy za pomocą indeksu równego długości tablicy lub większego np. 6 w tym przypadku otrzymujemy wyjątek ArrayIndexOutOfBoundsException. Jest to standardowe zachowanie w języku Java mające na celu ochronę przed błędami związanymi z nieprawidłowym dostępem do pamięci. Tego rodzaju błędy mogą prowadzić do nieprzewidywalnych zachowań programów dlatego obsługa takich wyjątków jest dobrą praktyką programistyczną. Kod zawiera blok try-catch który przechwytuje wszelkie wyjątki w tym przypadku i drukuje komunikat aby poinformować użytkownika o błędzie. Takie podejście jest zgodne z zasadami bezpiecznego programowania oraz ułatwia debugging i zarządzanie błędami w aplikacjach produkcyjnych.

Pytanie 21

Który z podanych algorytmów operujących na jednowymiarowej tablicy posiada złożoność obliczeniową O(n2)?

A. Wypisanie elementów
B. Sortowanie bąbelkowe
C. Wyszukiwanie binarne
D. Sortowanie szybkie
Sortowanie bąbelkowe, znane również jako bubble sort, to prosty algorytm sortowania, który działa na zasadzie wielokrotnego przechodzenia przez tablicę i porównywania sąsiadujących ze sobą elementów. Algorytm ten ma złożoność obliczeniową O(n^2), co oznacza, że w najgorszym przypadku liczba operacji porównania wzrasta kwadratowo wraz ze wzrostem liczby elementów w tablicy. Przykładowo, dla tablicy o 5 elementach algorytm może wykonać do 10 porównań. W praktyce sortowanie bąbelkowe jest rzadko stosowane w dużych zbiorach danych ze względu na swoją niską efektywność, jednak jest to dobry przykład do nauki podstaw algorytmów sortujących. Standardy algorytmów sortujących, takie jak te zawarte w podręcznikach algorytmiki, często używają sortowania bąbelkowego jako przykładu do omówienia prostych koncepcji związanych z sortowaniem. Warto zauważyć, że chociaż algorytm ten jest prosty do zrozumienia, jego złożoność czasowa sprawia, że nie jest on praktyczny do stosowania w produkcyjnych rozwiązaniach, gdyż bardziej optymalne algorytmy, jak sortowanie szybkie czy sortowanie przez scalanie, osiągają złożoność O(n log n).

Pytanie 22

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"
(0, 20, 0, 0)
B. x:TypeArguments="Thickness"
iOS= 20
C. x:TypeArguments="Thickness"
iOS= "0, 20, 0, 0"
Android= "0, 0, 0, 0"
WinPhone= "0, 0, 0, 0"
D. x:TypeArguments="Thickness"
iOS= "0, 0, 0, 0"
Android= "0, 20, 0, 0"
WinPhone= "0, 0, 0, 0"
W pierwszej opcji zastosowano jednolity margines 20 jednostek dla wszystkich platform, co jest niewłaściwe, ponieważ ignoruje specyficzne potrzeby i ograniczenia każdej platformy. Na przykład, na iOS margines ten kompensuje status bar, ale na innych platformach może nie być wymagany, co może prowadzić do nieestetycznego wyglądu aplikacji. Druga odpowiedź wprowadza margines tylko dla iOS, ale w niewłaściwym formacie, ponieważ same liczby nie są wystarczające bez poprawnego kontekstu struktury XAML. Trzecia opcja jest błędna, ponieważ przypisuje nieprawidłowe wartości platformie Android, co skutkuje odwrotnym efektem niż zamierzony. Traktowanie wszystkich platform identycznie pod względem marginesów pomija specyfikę każdej z nich, co jest częstym błędem początkowych deweloperów. Niezrozumienie różnic między platformami może prowadzić do aplikacji, które nie są optymalnie dostosowane do każdej z nich. Ważne jest, aby projektanci aplikacji wieloplatformowych zrozumieli, jak różne urządzenia i systemy operacyjne wpływają na sposób, w jaki aplikacja powinna wyglądać i działać, aby zapewnić użytkownikom spójne i wysokiej jakości doświadczenia niezależnie od platformy, na której aplikacja jest uruchamiana. Dostosowywanie UI do specyfiki każdej platformy jest kluczem do sukcesu w tworzeniu profesjonalnych aplikacji mobilnych.

Pytanie 23

Jakie narzędzie umożliwia testowanie API w aplikacjach internetowych?

A. Microsoft Excel
B. Postman
C. Node.js
D. Blender
Postman to jedno z najczęściej wykorzystywanych narzędzi do testowania API aplikacji webowych. Umożliwia wysyłanie żądań HTTP, testowanie endpointów oraz monitorowanie odpowiedzi serwera. Dzięki Postmanowi programiści mogą w łatwy sposób analizować dane przesyłane między frontendem a backendem, co jest kluczowe w trakcie budowania nowoczesnych aplikacji opartych na architekturze REST lub GraphQL. Narzędzie oferuje możliwość automatyzacji testów, co przyspiesza proces wykrywania błędów i zwiększa jakość dostarczanych aplikacji. Postman pozwala także na tworzenie skryptów pre-request i testowych, umożliwiając weryfikację poprawności danych oraz sprawdzanie integralności aplikacji na różnych etapach jej rozwoju.

Pytanie 24

W przedstawionych funkcjonalnie równoważnych kodach źródłowych po przeprowadzeniu operacji w zmiennej b zostanie zapisany wynik:

Ilustracja do pytania
A. 596
B. 5
C. 6
D. 5.96
Wynik operacji zapisanej w zmiennej 'b' to 5. Jest to rezultat konwersji wartości zmiennoprzecinkowej na liczbę całkowitą, co oznacza odrzucenie części dziesiętnej. Taka operacja jest powszechna w programowaniu, gdy chcemy uzyskać tylko część całkowitą liczby, np. w algorytmach podziału, zaokrąglania w dół (floor) lub obliczania indeksów w tablicach.

Pytanie 25

Jakie są główne cechy architektury klient-serwer?

A. Dane są przechowywane i przetwarzane na serwerze, a klient wysyła żądania i odbiera odpowiedzi
B. Komunikacja odbywa się bezpośrednio między urządzeniami klienckimi
C. Serwer pełni rolę pasywnego odbiorcy danych od klientów
D. Każdy klient funkcjonuje niezależnie od pozostałych
Architektura klient-serwer to model, w którym dane są przechowywane i przetwarzane na serwerze, a klient wysyła żądania i odbiera odpowiedzi. Model ten umożliwia centralizację zasobów, co prowadzi do łatwiejszego zarządzania aplikacjami i zwiększonego bezpieczeństwa. Klient-serwer jest podstawą działania aplikacji webowych, usług sieciowych oraz baz danych. Dzięki temu architektura ta umożliwia wielu użytkownikom jednoczesny dostęp do tych samych danych, co czyni ją wydajnym rozwiązaniem dla rozproszonych systemów informatycznych. Serwery mogą obsługiwać różne rodzaje klientów, takie jak przeglądarki, aplikacje mobilne czy urządzenia IoT, co sprawia, że jest to wszechstronny model stosowany w wielu branżach.

Pytanie 26

Które z wymienionych stanowi przykład zagrożenia fizycznego w miejscu pracy?

A. Promieniowanie UV
B. Obciążenie psychiczne
C. Brak ergonomicznych miejsc pracy
D. Nieodpowiednie relacje w zespole
Przeciążenie psychiczne jest zagrożeniem psychospołecznym, a nie fizycznym – dotyczy zdrowia psychicznego i samopoczucia pracownika. Złe relacje w zespole są również zagrożeniem psychospołecznym, prowadzącym do konfliktów i obniżenia efektywności pracy. Brak ergonomicznych stanowisk pracy to zagrożenie ergonomiczne, które może prowadzić do problemów zdrowotnych, takich jak bóle pleców czy nadgarstków, ale nie jest klasyfikowane jako zagrożenie fizyczne. Zagrożenia fizyczne dotyczą głównie czynników środowiskowych wpływających bezpośrednio na ciało pracownika.

Pytanie 27

Jaką kategorię reprezentuje typ danych "array"?

A. Typ danych złożony
B. Typ logiczny
C. Typ wskaźników
D. Typ danych prosty
Tablica ('array') jest przykładem złożonego typu danych, który pozwala na przechowywanie wielu wartości tego samego typu pod wspólną nazwą. Każdy element tablicy jest dostępny za pomocą indeksu, co umożliwia szybkie i efektywne operacje na dużych zbiorach danych. Tablice są szeroko wykorzystywane w programowaniu do przechowywania list, macierzy i innych struktur, gdzie konieczne jest przechowywanie dużych ilości danych tego samego rodzaju. Dzięki tablicom można zorganizować dane w sposób uporządkowany, co ułatwia ich przetwarzanie, sortowanie i wyszukiwanie.

Pytanie 28

Jaką strukturę danych obrazuje zamieszczony kod w języku C#?

Ilustracja do pytania
A. stos
B. listę
C. tablicę jednowymiarową
D. tablicę dwuwymiarową
Kod w języku C# reprezentuje tablicę dwuwymiarową, która jest deklarowana za pomocą podwójnych nawiasów kwadratowych. Tablica taka pozwala na przechowywanie danych w formie macierzy.

Pytanie 29

Zapisany kod w języku Python ilustruje

Ilustracja do pytania
A. tablicę asocjacyjną (słownik)
B. stos
C. strukturę
D. kolejkę (LIFO)
W tym zadaniu mamy do czynienia z tablicą asocjacyjną, która w Pythonie nazywa się słownikiem. Słownik to taki fajny sposób na przechowywanie par klucz-wartość, co jest naprawdę przydatne. W naszym przypadku kluczami są symbole chemiczne, jak N czy O, a wartościami ich pełne nazwy, czyli Azot oraz Tlen. Dzięki tej strukturze można szybko sięgnąć po konkretne dane, co jest bardzo pomocne w różnych sytuacjach. Na przykład, można używać ich do przechowywania konfiguracji albo do prostych baz danych. Warto też dodać, że słowniki świetnie pasują do obiektów JSON, co jest ważne w tworzeniu aplikacji webowych. Dają nam dużą elastyczność i robią to w bardzo efektywny sposób, dlatego są jednym z kluczowych elementów Pythona. Ułatwiają pisanie kodu, który jest zarówno czytelny, jak i funkcjonalny.

Pytanie 30

Co to jest choroba związana z wykonywaniem zawodu?

A. Stan zdrowia, który uniemożliwia pracę przez okres krótszy niż tydzień
B. Choroba wynikająca z warunków pracy lub związanych z nimi czynników
C. Choroba występująca tylko w sektorze przemysłowym
D. Każda choroba, która występuje w czasie pracy
Choroba zawodowa to stan zdrowotny spowodowany warunkami pracy lub czynnikami związanymi z wykonywaną profesją. Najczęściej wynika z długotrwałego narażenia na szkodliwe substancje, hałas, promieniowanie, pyły lub wykonywanie powtarzalnych czynności. Przykładem chorób zawodowych są pylica płuc, głuchota zawodowa czy zespół cieśni nadgarstka. Kluczowym elementem w zapobieganiu chorobom zawodowym jest odpowiednia profilaktyka, szkolenia BHP oraz dostosowanie środowiska pracy do zasad ergonomii. Pracodawcy są zobowiązani do monitorowania warunków pracy i wdrażania rozwiązań minimalizujących ryzyko wystąpienia chorób zawodowych.

Pytanie 31

Celem zastosowania wzorca Obserwator w tworzeniu aplikacji WEB jest:

A. informowanie obiektów o modyfikacji stanu innych obiektów
B. zarządzanie funkcjami synchronicznymi w kodzie aplikacji
C. dostosowanie interfejsu użytkownika do różnych kategorii użytkowników
D. monitorowanie działań użytkownika oraz generowanie wyjątków
Obserwowanie interakcji użytkownika i obsługa wyjątków to funkcje obsługiwane przez mechanizmy event-driven i bloków try-catch. Funkcje synchroniczne są realizowane przez inne wzorce, a dopasowanie interfejsu do użytkowników jest często osiągane poprzez wzorce strategii lub fabryki, a nie Obserwator.

Pytanie 32

Jakie są kluczowe różnice pomiędzy strukturą (struct) a unią (union) w języku C?

A. Unia umożliwia dynamiczne przypisywanie typów danych, struktura natomiast nie
B. Unia nie jest obsługiwana przez kompilatory współczesnych języków
C. Struktura przechowuje wiele wartości równocześnie, unia tylko jedną
D. Struktura wymaga więcej miejsca w pamięci niż unia
Główna różnica między strukturą ('struct') a unią ('union') w języku C polega na sposobie przechowywania danych. Struktura przechowuje wszystkie pola jednocześnie, przydzielając każdemu z nich osobne miejsce w pamięci, natomiast unia używa wspólnej przestrzeni pamięci dla wszystkich swoich pól – w danym momencie można przechowywać tylko jedną wartość. Unia jest bardziej efektywna pod względem pamięci, ale mniej wszechstronna, ponieważ zmiana wartości jednego pola nadpisuje pozostałe. Struktury są powszechnie wykorzystywane w aplikacjach, gdzie konieczne jest przechowywanie wielu niezależnych danych, podczas gdy unie są używane do oszczędzania pamięci.

Pytanie 33

Jakie rezultaty pojawią się po uruchomieniu poniższego kodu napisanego w języku C++?

Ilustracja do pytania
A. Bazowa. Pochodna.
B. Pochodna. Bazowa.
C. Pochodna. Pochodna.
D. Bazowa. Bazowa.
Kod wyświetla 'Pochodna. Pochodna.', co wskazuje, że metody klasy pochodnej przejęły kontrolę nad tymi z klasy bazowej. To fajny przykład polimorfizmu, jaki mamy w C++. Tutaj metoda w klasie pochodnej jest lepsza od metody w klasie bazowej. To, jakie wywołanie się wykona, zależy od konkretnego obiektu, a nie od tego, jaką metodę zdefiniowaliśmy w klasie bazowej.

Pytanie 34

Podczas programowania kontrolki stepper przedstawionej na ilustracji w aplikacji mobilnej, należy zarządzać zmienną, która zawsze przechowuje jej bieżącą wartość. Jakie zdarzenie można wykorzystać do osiągnięcia tej funkcjonalności?

Ilustracja do pytania
A. DescendantAdded
B. Unfocused
C. ValueChanged
D. SizeChanged
Zdarzenie ValueChanged jest kluczowe w kontekście programowania kontrolek takich jak stepper w aplikacjach mobilnych. To zdarzenie jest wywoływane zawsze, gdy wartość kontrolki zostaje zmieniona przez użytkownika, co umożliwia natychmiastowe przetwarzanie tej zmiany i aktualizację interfejsu użytkownika lub innych powiązanych komponentów. W praktyce, użycie zdarzenia ValueChanged to dobry przykład reaktywnego programowania, gdzie aplikacja reaguje na akcje użytkownika w czasie rzeczywistym. Przy implementacji takiego zdarzenia należy zadbać o poprawne sprawdzanie zakresu wartości, aby uniknąć błędów logicznych. Warto również pamiętać o optymalizacji wydajności takiej obsługi, zwłaszcza w aplikacjach złożonych z wielu komponentów zależnych od wartości steppera. Praktyczne zastosowanie tego zdarzenia można znaleźć w aplikacjach e-commerce, gdzie steppery mogą być używane do wyboru ilości produktów w koszyku, a zmiana wartości natychmiast wpływa na obliczenie ceny całkowitej. Używanie zdarzeń takich jak ValueChanged jest zgodne z dobrymi praktykami projektowania interfejsów użytkownika, poprawiając ich responsywność i interaktywność.

Pytanie 35

Jaką istotną właściwość ma algorytm rekurencyjny?

A. Jest podzielony na wiele niezwiązanych funkcji
B. Wywołuje się wielokrotnie w jednej iteracji
C. Funkcjonuje tylko w przypadku tablic dynamicznych
D. Zawiera wywołanie samego siebie
Wywołanie funkcji wielokrotnie w jednej iteracji jest charakterystyczne dla algorytmów iteracyjnych, a nie rekurencyjnych. Podział algorytmu na wiele niezależnych funkcji to część modularności i nie wskazuje jednoznacznie na rekurencję. Algorytmy działające wyłącznie na tablicach dynamicznych mogą być zarówno iteracyjne, jak i rekurencyjne, jednak to rekurencyjne wywołanie samego siebie stanowi kluczowy wyróżnik rekurencyjnego podejścia do problemów.

Pytanie 36

Tworząc aplikację opartą na obiektach, należy założyć, że program będzie zarządzany przez

A. definicję warunków końcowego rozwiązania
B. zbiór instancji klas współpracujących ze sobą
C. pętlę dyspozytora, która w zależności od zdarzenia wywoła właściwą funkcję
D. moduły zawierające funkcje oraz zmienne globalne
W programowaniu obiektowym aplikacje są sterowane za pomocą instancji klas, które współpracują ze sobą. Obiekty reprezentują elementy rzeczywistego świata i komunikują się, co pozwala na większą elastyczność i modułowość kodu.

Pytanie 37

Jakie narzędzie można wykorzystać do stworzenia mobilnej aplikacji cross-platform w języku C#?

A. bibliotekę React Native
B. środowisko XCode
C. platformę Xamarin
D. środowisko Android Studio
Xamarin to platforma umożliwiająca tworzenie aplikacji mobilnych typu cross-platform w języku C#. Umożliwia programistom tworzenie aplikacji działających na Androidzie i iOS z wykorzystaniem jednego kodu źródłowego. Xamarin integruje się z Visual Studio, co pozwala na efektywne budowanie aplikacji mobilnych w ekosystemie Microsoftu.

Pytanie 38

Jakie są typowe frameworki/biblioteki używane w aplikacjach webowych?

A. ASP.NET Core, jQuery, Joomla!, Wordpress, Angular
B. Visual Studio, Eclipse, angular, React.js, Node.js
C. jquery, Joomla!, Wordpress, android Studio, Xamarin
D. ASP.NET Core, Django, Angular, React.js, Node.js
Joomla! i WordPress – To systemy zarządzania treścią (CMS), a nie frameworki. Android Studio i Xamarin – Służą do tworzenia aplikacji mobilnych, a nie webowych. Eclipse – To środowisko programistyczne, nie framework typowy dla web developmentu.

Pytanie 39

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

A. Dane przechowywane w systemie baz danych
B. Preferencje użytkownika, takie jak język lub styl strony
C. Prywatne dane użytkownika, na przykład hasła
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 40

W jakim języku programowania kod źródłowy musi być skompilowany do kodu maszynowego konkretnej architektury procesora przed jego uruchomieniem?

A. C++
B. Java
C. PHP
D. Perl
C++ to język kompilowany, co oznacza, że kod źródłowy jest najpierw przekształcany do kodu maszynowego przed jego uruchomieniem. Dzięki temu aplikacje napisane w C++ działają szybciej i są bardziej efektywne, ale wymagają kompilacji na każdą platformę oddzielnie.