Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 9 stycznia 2025 18:45
  • Data zakończenia: 9 stycznia 2025 18:53

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

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

A. Skracają czas tworzenia aplikacji dzięki gotowym komponentom i narzędziom
B. Gwarantują dostęp do niskopoziomowego kodu systemowego
C. Ułatwiają kontrolę nad wersjami systemu operacyjnego
D. Redukują zapotrzebowanie na pamięć operacyjną aplikacji
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 2

Jaki będzie rezultat operacji logicznej AND dla wartości binarnych 1010 oraz 1100?

A. 1000
B. 1010
C. 1110
D. 1100
Wynik logicznej operacji AND dla liczb binarnych 1010 i 1100 uzyskuje się poprzez porównywanie odpowiadających sobie bitów obu liczb. W systemie binarnym, operacja AND zwraca 1 tylko wtedy, gdy oba bity są równe 1. W przypadku liczb 1010 (co w systemie dziesiętnym odpowiada 10) oraz 1100 (co w systemie dziesiętnym odpowiada 12), analizujemy każdy bit od prawej do lewej. Pierwszy bit: 0 AND 0 = 0, drugi bit: 1 AND 0 = 0, trzeci bit: 0 AND 1 = 0, czwarty bit: 1 AND 1 = 1. Zatem wynik operacji AND to 1000 (co w systemie dziesiętnym odpowiada 8). Takie operacje logiczne są podstawą działania systemów cyfrowych i stosowane są w programowaniu oraz w projektowaniu układów cyfrowych, gdzie logika binarna jest niezbędna. Operacje AND są również używane w bazach danych oraz w językach programowania, gdzie umożliwiają filtrowanie danych na podstawie logicznych warunków. W kontekście standardów, operacje logiczne są definiowane przez różne normy, takie jak IEEE 754 dla arytmetyki zmiennoprzecinkowej, co podkreśla ich fundamentalne znaczenie w informatyce.

Pytanie 3

Który z wymienionych objawów może sugerować nagłe zagrożenie dla zdrowia?

A. Ostry ból w klatce piersiowej
B. Zwiększona efektywność pracy
C. Obniżony nastrój w ciągu dnia
D. Intensywne pocenie się w gorącym otoczeniu
Ostry ból w klatce piersiowej to jeden z najbardziej alarmujących objawów wskazujących na nagłe zagrożenie zdrowotne, takie jak zawał serca lub zatorowość płucna. Tego rodzaju ból jest często opisywany jako gniotący, ściskający lub rozlewający się na inne części ciała, takie jak ramię, szyja czy żuchwa. W takich przypadkach kluczowe jest szybkie wezwanie pomocy medycznej, ponieważ każda minuta opóźnienia może zwiększyć ryzyko powikłań lub śmierci. Edukacja w zakresie rozpoznawania tego objawu może uratować życie, dlatego tak ważne jest rozróżnianie go od innych mniej groźnych objawów.

Pytanie 4

Jaką wartość jest w stanie przechować tablica jednowymiarowa?

A. Wiele wartości pod tym samym indeksem
B. Jedną wartość
C. Wiele wartości pod różnymi indeksami
D. Wartość logiczną true lub false
Tablica jednowymiarowa przechowuje wiele wartości pod różnymi indeksami. Każdy element tablicy jest dostępny za pomocą indeksu, co pozwala na szybkie i efektywne przechowywanie oraz przetwarzanie danych. W programowaniu tablice jednowymiarowe są podstawą do implementacji algorytmów sortowania, wyszukiwania oraz przechowywania sekwencji danych. Tego rodzaju tablice są niezwykle użyteczne w organizowaniu danych o powtarzalnej strukturze, takich jak listy imion, wyniki testów czy współrzędne.

Pytanie 5

Jakie jest znaczenie klasy abstrakcyjnej?

A. Klasa, która zawsze dziedziczy z klasy bazowej
B. Klasa, która może zawierać zarówno metody zdefiniowane, jak i niezdefiniowane (czysto wirtualne)
C. Klasa, która może być dziedziczona, ale nie można jej instancjonować
D. Klasa, która nie może posiadać żadnych metod
Klasa abstrakcyjna to klasa, która może zawierać zarówno metody zdefiniowane, jak i niezdefiniowane (czysto wirtualne). Jest to kluczowy element programowania obiektowego, który pozwala na tworzenie hierarchii klas i wymuszanie implementacji określonych metod w klasach pochodnych. Klasy abstrakcyjne nie mogą być instancjonowane – służą jedynie jako szablony dla innych klas. Przykładem jest klasa 'Figura', która zawiera metodę 'ObliczPole()', ale konkretna implementacja tej metody jest dostarczana przez klasy pochodne, takie jak 'Kwadrat' czy 'Koło'.

Pytanie 6

Wskaź rodzaj testowania, które realizuje się w trakcie tworzenia kodu źródłowego?

A. testy wydajnościowe
B. testy wdrożeniowe
C. testy jednostkowe
D. testy kompatybilności
Testy jednostkowe są przeprowadzane podczas fazy tworzenia kodu źródłowego. Pozwalają one na sprawdzenie poprawności działania poszczególnych funkcji i modułów w izolacji, co pomaga wcześnie wykrywać błędy.

Pytanie 7

Który z frameworków pozwala na tworzenie aplikacji z graficznym interfejsem użytkownika oraz obsługą wydarzeń?

A. Express.js
B. Qt
C. TensorFlow
D. Django
Django to framework do tworzenia aplikacji webowych w języku Python, a nie narzędzie do budowy aplikacji desktopowych z interfejsem graficznym. TensorFlow to biblioteka do uczenia maszynowego i sztucznej inteligencji, która nie ma bezpośredniego związku z projektowaniem GUI. Express.js to framework dla Node.js, który służy do budowy aplikacji serwerowych i API, ale nie jest narzędziem do projektowania interfejsów użytkownika w aplikacjach desktopowych.

Pytanie 8

Jaką kategorię reprezentuje typ danych "array"?

A. Typ logiczny
B. Typ wskaźników
C. Typ danych złożony
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 9

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 10

Wskaż fragment kodu, który stanowi realizację przedstawionego algorytmu w języku C++

Ilustracja do pytania
A. kod 3
B. kod 1
C. kod 2
D. kod 4
Jak się przyjrzysz innym opcjom, można zauważyć sporo problemów, które mogą wprowadzać w błąd przy implementacji algorytmu związanym z schematem blokowym. Opcja Kod 2 stosuje instrukcję if-else, co już jest dużym błędem. W związku z tym operacje dodawania i zwiększania zmiennej `i` wykonają się tylko raz, jeśli początkowy warunek jest spełniony. Z tego wynika brak powtarzalności, co ważne w algorytmach, gdzie trzeba coś robić wielokrotnie, aż warunek będzie spełniony. Z kolei Kod 3 używa pętli for, która lepiej nadaje się do przypadków, gdzie liczba powtórzeń jest znana. Ale tutaj zmienna `i` jest źle umiejscowiona i nie pasuje do logiki algorytmu. Dodatkowo, sama konstrukcja pętli for nie pokazuje, że musimy coś zrobić przynajmniej raz, zanim sprawdzimy warunek. Kod 4 chociaż używa pętli while, to i tak nie spełnia warunku, że operacja musi się wykonać przynajmniej raz przed sprawdzeniem tego warunku. Pętla while najpierw weryfikuje warunek, więc jeśli na początku jest nieprawdziwy, to nie wejdzie w żadną iterację, co jest sprzeczne z logiką algorytmu. Dlatego tylko Kod 1 jest naprawdę zgodny z wymaganiami algorytmu i może być traktowany jako poprawna implementacja według tego schematu.

Pytanie 11

Jaką rolę pełni debugger w trakcie programowania?

A. Do konwersji kodu źródłowego na język maszynowy
B. Do automatycznego generowania dokumentacji projektu
C. Do wykrywania błędów w czasie działania programu
D. Do kontrolowania wersji kodu źródłowego
Debugger to takie narzędzie, które pomaga programistom w znajdowaniu błędów i śledzeniu, co się dzieje z programem, kiedy go uruchamiamy. Można go zatrzymać w dowolnym momencie, co nazywamy breakpoints, i wtedy można zobaczyć, jakie zmienne mają jakie wartości. Dzięki temu można łatwiej dostrzegać błędy logiczne czy składniowe. Wydaje mi się, że to naprawdę ważne narzędzie w pracy każdego programisty, bo ułatwia życie!

Pytanie 12

W programie stworzonym w języku C++ trzeba zadeklarować zmienną, która będzie przechowywać wartość rzeczywistą. Jakiego typu powinna być ta zmienna?

A. int
B. numeric
C. double
D. number
Typ zmiennej 'double' przechowuje liczby rzeczywiste (zmiennoprzecinkowe) w języku C++. Jest to najczęściej używany typ do operacji wymagających precyzji, takich jak obliczenia matematyczne czy fizyczne. Double oferuje większą dokładność niż 'float' i jest standardem w większości aplikacji.

Pytanie 13

Który rodzaj kolekcji pozwala na dostęp do elementów w porządku FIFO (First In First Out)?

A. Sekwencja
B. Kolekcja LIFO
C. Tablica
D. Kolejka
Kolejka to struktura danych, która działa na zasadzie FIFO (First In First Out), co oznacza, że element dodany jako pierwszy zostaje usunięty jako pierwszy. Kolejki są szeroko wykorzystywane w zarządzaniu zadaniami, buforowaniu danych oraz w implementacji algorytmów, takich jak BFS (przeszukiwanie wszerz). Struktura ta jest idealna do obsługi zadań w kolejności ich przybycia, co jest kluczowe w aplikacjach takich jak systemy operacyjne, sieci komputerowe i przetwarzanie danych.

Pytanie 14

Jakie metody umożliwiają przesyłanie danych z serwera do aplikacji front-end?

A. protokołem SSH
B. biblioteki jQuery
C. formatu JSON
D. metody POST
JSON, czyli JavaScript Object Notation, to dość lekki format wymiany danych. Jest prosty do zrozumienia zarówno dla ludzi, jak i komputerów. To dlatego jest tak popularny w aplikacjach webowych, gdzie przesyła się dane między serwerem a klientem. Dzięki strukturze klucz-wartość łatwo jest mapować obiekty w JavaScript, co przyspiesza cały proces z danymi. Pomysł na zastosowanie? Na przykład, gdy przesyłasz dane użytkownika z serwera do swojej aplikacji, to często zamieniasz obiekt JavaScript na format JSON i wysyłasz go przez AJAX. A co ważne, JSON jest zgodny z różnymi standardami, więc możesz go używać praktycznie wszędzie. Co ciekawe, w nowoczesnych aplikacjach JSON jest zdecydowanie bardziej popularny niż XML, bo jest prostszy i mniej obciążający dla sieci. To wszystko sprawia, że strony ładują się szybciej, a użytkownicy mają lepsze doświadczenia.

Pytanie 15

Który z poniższych przykładów stanowi aplikację mobilną wykorzystującą bazę danych?

A. Aplikacja gromadząca listę kontaktów użytkownika
B. Aplikacja wyświetlająca lokalny czas
C. Aplikacja do robienia zdjęć
D. Aplikacja kalkulator
Aplikacja przechowująca listę kontaktów użytkownika korzysta z bazy danych do przechowywania, odczytywania i zarządzania danymi. Tego typu aplikacje mobilne muszą efektywnie zarządzać dużą ilością danych i zapewniać ich szybki dostęp. Bazy danych, takie jak SQLite czy Firebase, są szeroko stosowane w aplikacjach mobilnych, umożliwiając przechowywanie kontaktów, wiadomości, notatek i innych informacji użytkownika. Dzięki bazom danych możliwe jest także synchronizowanie danych pomiędzy urządzeniami i przechowywanie ich w chmurze.

Pytanie 16

Który z języków programowania jest najczęściej wykorzystywany do budowania aplikacji internetowych po stronie serwera?

A. JavaScript
B. CSS
C. HTML
D. PHP
PHP to jeden z najczęściej używanych języków programowania do tworzenia aplikacji webowych po stronie serwera. Jest to język skryptowy, który umożliwia dynamiczne generowanie treści stron internetowych, zarządzanie sesjami użytkowników, obsługę formularzy oraz integrację z bazami danych. PHP napędza popularne systemy zarządzania treścią (CMS), takie jak WordPress, Joomla czy Drupal. Dzięki swojej prostocie, szerokiemu wsparciu społeczności oraz dużej liczbie gotowych bibliotek i frameworków (np. Laravel), PHP pozostaje jednym z czołowych języków backendowych. PHP pozwala również na szybkie wdrażanie aplikacji i jest kompatybilny z wieloma serwerami WWW, co czyni go uniwersalnym wyborem w budowie aplikacji webowych.

Pytanie 17

Które z wymienionych stanowi przykład struktury dziedziczenia?

A. Klasa Pojazd ma dziedziczenie od klasy Samochód
B. Klasa Samochód i Pojazd nie są ze sobą powiązane
C. Klasa Pojazd nie dziedziczy z żadnej klasy
D. Klasa Samochód ma dziedziczenie od klasy Pojazd
Hierarchia dziedziczenia to struktura klas, w której klasa pochodna dziedziczy właściwości i metody klasy bazowej. Klasa 'Samochód' dziedzicząca po klasie 'Pojazd' jest przykładem prawidłowej hierarchii dziedziczenia – klasa 'Samochód' rozszerza klasę 'Pojazd', dziedzicząc ogólne właściwości pojazdu, takie jak prędkość czy typ silnika. Dziedziczenie umożliwia rozszerzanie istniejącej funkcjonalności bez konieczności przepisywania tego samego kodu, co jest jednym z fundamentów programowania obiektowego.

Pytanie 18

Który z dokumentów stosowanych w metodologii Agile zawiera listę funkcjonalności produktu uporządkowanych według ich ważności?

A. Backlog sprintu
B. Harmonogram projektu
C. Diagram Gantta
D. Product backlog
Backlog sprintu zawiera jedynie zadania przypisane do aktualnego sprintu i jest podzbiorem całego backlogu produktu, co oznacza, że nie zawiera całości funkcjonalności. Diagram Gantta to narzędzie do planowania harmonogramu projektów, ale nie służy do zarządzania wymaganiami czy funkcjonalnościami produktu. Harmonogram projektu określa czas realizacji poszczególnych etapów, ale nie odnosi się do listy funkcji, jakie muszą zostać wdrożone, co jest celem backlogu.

Pytanie 19

Jakie cechy posiada kod dopełniający do dwóch?

A. Umożliwia reprezentację liczb ujemnych w systemie binarnym
B. Umożliwia konwersję systemu binarnego na szesnastkowy
C. Reprezentuje liczbę w odwrotnej formie binarnej
D. Służy do przekształcania liczb binarnych na dziesiętne
Kod uzupełnieniowy do dwóch jest powszechnie stosowany w systemach komputerowych do reprezentacji liczb całkowitych, w tym liczb ujemnych. W tym systemie najstarsza cyfra (bit) określa znak liczby, gdzie 0 oznacza liczbę dodatnią, a 1 liczbę ujemną. Aby uzyskać reprezentację liczby ujemnej w systemie binarnym, należy najpierw przedstawić jej wartość bezwzględną w postaci binarnej, a następnie odwrócić wszystkie bity i dodać 1 do wyniku, co daje nam liczbę w kodzie uzupełnieniowym do dwóch. Na przykład, aby uzyskać -5 w systemie 8-bitowym, zaczynamy od 5, co w postaci binarnej to 00000101. Następnie odwracamy bity, co daje 11111010, a dodając 1 uzyskujemy 11111011, co stanowi -5 w kodzie uzupełnieniowym do dwóch. Ta metoda umożliwia łatwe wykonywanie arytmetyki, ponieważ dodawanie i odejmowanie liczb ujemnych i dodatnich można realizować z użyciem tych samych operacji binarnych. Kod uzupełnieniowy do dwóch stał się standardem w większości architektur komputerowych, takich jak x86 czy ARM, dzięki swojej efektywności i prostocie.

Pytanie 20

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

A. PHP
B. C++
C. Perl
D. Java
PHP i Perl to języki interpretowane, a nie kompilowane – kod jest wykonywany linia po linii. Java wymaga kompilacji, ale do kodu bajtowego, który następnie jest interpretowany przez maszynę wirtualną (JVM), a nie bezpośrednio do kodu maszynowego.

Pytanie 21

Jakie znaczenie ma framework w kontekście programowania?

A. Moduł do zarządzania systemami baz danych
B. Zbiór gotowych bibliotek, narzędzi i zasad ułatwiających tworzenie aplikacji
C. Program do graficznego projektowania interfejsów użytkownika
D. System operacyjny, który umożliwia uruchamianie aplikacji
Framework to zbiór gotowych bibliotek, narzędzi i reguł, które wspierają tworzenie aplikacji poprzez dostarczanie struktury ułatwiającej pracę programistów. Frameworki definiują standardowe komponenty aplikacji, umożliwiając programistom skoncentrowanie się na logice biznesowej zamiast na podstawowej architekturze aplikacji. Przykłady popularnych frameworków to .NET, Angular, Django i Spring. Frameworki przyspieszają proces programowania, poprawiają jakość kodu i wspierają skalowalność aplikacji, co czyni je nieodłącznym elementem nowoczesnego programowania.

Pytanie 22

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

A. Zachować stałą temperaturę w biurze
B. Używać filtrów przeciwodblaskowych na ekranie
C. Korzytać ze słuchawek tłumiących dźwięki
D. Stosować ergonomiczne podkładki pod ręce
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 23

Która z metod zarządzania projektami stawia na przejrzystość oraz wizualizację bieżących zadań?

A. Kanban
B. Scrum
C. Agile
D. Waterfall
Kanban to metodologia zarządzania projektami, która kładzie nacisk na transparentność i wizualizację pracy w toku (work in progress). Tablica Kanban, podzielona na kolumny oznaczające różne etapy realizacji zadań, pozwala na bieżąco śledzić postęp prac i identyfikować ewentualne blokady. Transparentność procesów umożliwia zespołowi optymalizację przepływu zadań i minimalizację zaległości. W Kanbanie ważna jest elastyczność i możliwość dostosowywania liczby zadań w toku (WIP), co pozwala na uniknięcie przeciążenia zespołu i zwiększenie produktywności.

Pytanie 24

Z analizy złożoności obliczeniowej algorytmów sortowania dla dużych zbiorów danych (powyżej 100 elementów) wynika, że najefektywniejszą metodą jest algorytm sortowania:

Ilustracja do pytania
A. bąbelkowego
B. kubełkowego
C. przez scalanie
D. przez zliczanie
Sortowanie bąbelkowe jest jednym z najwolniejszych algorytmów i rzadko jest używane w praktyce ze względu na złożoność O(n^2). Sortowanie kubełkowe może być szybkie, ale jego efektywność zależy od równomiernego rozkładu danych. Sortowanie przez scalanie jest bardziej uniwersalne, ale ma większą złożoność obliczeniową niż Counting Sort i może być mniej efektywne dla dużych zbiorów danych o ograniczonym zakresie.

Pytanie 25

W jakiej sytuacji należy umieścić poszkodowanego w bezpiecznej pozycji bocznej?

A. gdy osoba omdleje, ale oddycha
B. w sytuacji omdlenia i braku tętna
C. w przypadku urazu pleców, gdy osoba jest przytomna
D. gdy wystąpi uszkodzenie kręgosłupa
Osobę po omdleniu, która oddycha, należy ułożyć w pozycji bocznej bezpiecznej. Taka pozycja zapobiega zadławieniu i zapewnia drożność dróg oddechowych, co jest kluczowe dla bezpieczeństwa poszkodowanego.

Pytanie 26

Które z wymienionych praw autorskich nie wygasa po pewnym czasie?

A. Autorskie prawa osobiste
B. Prawa pokrewne
C. Autorskie prawa majątkowe
D. Licencje wolnego oprogramowania
Autorskie prawa majątkowe wygasają zazwyczaj po 70 latach od śmierci autora, co oznacza, że po tym czasie utwory przechodzą do domeny publicznej. Prawa pokrewne, które dotyczą m.in. artystów wykonawców i producentów fonogramów, mają ograniczony czas trwania (zwykle 50 lat od publikacji). Licencje wolnego oprogramowania, takie jak GNU GPL, również podlegają określonym warunkom czasowym i mogą wygasnąć lub zostać zmienione, jeśli autor zdecyduje się na aktualizację licencji.

Pytanie 27

Jakie działanie związane z klasą abstrakcyjną jest niedozwolone?

A. Rozszerzanie tej klasy
B. Określenie metody wirtualnej
C. Utworzenie instancji tej klasy
D. Definiowanie pól publicznych
Klasy abstrakcyjne w programowaniu obiektowym to fundament, który umożliwia wprowadzenie abstrakcji i polimorfizmu. Ich głównym celem jest zdefiniowanie wspólnego interfejsu dla klas pochodnych, natomiast nie można tworzyć ich instancji. Przykładem może być klasa abstrakcyjna 'Pojazd', która definiuje metody takie jak 'przyspiesz' i 'hamuj', ale sama nie ma implementacji tych metod. Klasy, które dziedziczą po 'Pojazd', takie jak 'Samochód' czy 'Motocykl', implementują te metody, co umożliwia ich użycie. Zgodnie z zasadami SOLID, klasa abstrakcyjna powinna być używana jako baza dla innych klas, a nie jako samodzielny obiekt. W związku z tym, próbując stworzyć instancję klasy abstrakcyjnej, napotkamy błąd kompilacji. Takie zachowanie jest zgodne z wieloma językami programowania, takimi jak Java, C# czy C++, gdzie klasy abstrakcyjne są kluczowym elementem budowy hierarchii klas oraz wzorów projektowych.

Pytanie 28

Jakie będzie działanie przedstawionych dwóch równoważnych fragmentów kodu źródłowego?

Ilustracja do pytania
A. wyświetlony na stronie tekst w nagłówku: "Egzamin zawodowy"
B. nadany tytuł każdego elementu HTML: "Egzamin zawodowy"
C. nadany tytuł strony: "Egzamin zawodowy"
D. wyświetlony na stronie tekst w akapicie: "Egzamin zawodowy"
Twój kod rzeczywiście sprawia, że w nagłówku strony pojawia się tekst 'Egzamin zawodowy' (tak jak w <h1>). To ważne, bo nagłówki HTML są kluczowe dla struktury strony i pomagają w lepszym pozycjonowaniu treści w wyszukiwarkach. Z mojego doświadczenia, dobrze zrobiony nagłówek może znacznie poprawić czytelność strony.

Pytanie 29

Który z protokołów w modelu TCP/IP odpowiada za pewne przesyłanie danych?

A. IP
B. HTTP
C. UDP
D. TCP
Protokół IP (Internet Protocol) działa na poziomie sieci i jest odpowiedzialny za adresowanie oraz routing pakietów w sieci, ale nie zapewnia niezawodności w przesyłaniu danych. IP może dostarczać pakiety w dowolnej kolejności, a także nie oferuje mechanizmów do ponownego przesyłania utraconych danych. Z tego powodu nie jest odpowiedni do zastosowań wymagających gwarancji dostarczenia. Z kolei UDP (User Datagram Protocol) jest protokołem transportowym, który również nie zapewnia niezawodności. UDP umożliwia szybkie przesyłanie danych bez ustanawiania połączenia, co czyni go idealnym dla aplikacji takich jak strumieniowanie audio i wideo, gdzie opóźnienia są mniej krytyczne niż utrata niektórych pakietów. Wreszcie, HTTP (Hypertext Transfer Protocol) jest protokołem aplikacyjnym, który działa na szczycie TCP, ale nie jest odpowiedzialny za przesyłanie danych w niezawodny sposób samodzielnie, ponieważ korzysta z TCP, aby zapewnić te funkcje. HTTP używa TCP do transportu danych, co oznacza, że niezawodność komunikacji nie jest bezpośrednio przypisana do HTTP, ale raczej do protokołu, na którym jest oparty.

Pytanie 30

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. aplikacji po wystąpieniu zdarzenia utraty focusa przez pole opcji
D. naciśnięcia przycisku zatwierdzającego dialog
Obsługa zdarzeń związanych z przyciskami zatwierdzającymi dialogi jest kluczową częścią interakcji użytkownika z aplikacją. W wielu środowiskach programistycznych, takich jak JavaScript, C# czy Java, przyciski te wywołują funkcje obsługi zdarzeń (event handlers), które mogą walidować dane, przetwarzać informacje lub wykonywać inne działania po naciśnięciu przycisku. Implementacja funkcji obsługującej przycisk jest nieodzowna w aplikacjach graficznych, gdzie interakcja z użytkownikiem wymaga dynamicznego reagowania na jego działania. Dzięki temu aplikacje stają się bardziej interaktywne i responsywne, co zwiększa komfort użytkownika i poprawia ogólną użyteczność oprogramowania.

Pytanie 31

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

A. Dla tablicy uporządkowanej rosnąco
B. Dla tablicy losowej
C. Dla tablicy z dużą liczbą powtórzeń
D. Dla tablicy uporządkowanej malejąco
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 32

W klasie pracownik zdefiniowano opisane metody. Która z nich jest odpowiednia do dodania elementu diagnostycznego o treści: cout << "Obiekt został usunięty";

Ilustracja do pytania
A. pracownik
B. wypisz
C. ~pracownik
D. operator==
Destruktor to specjalna metoda w języku C++ oznaczona tyldą przed nazwą klasy która jest wywoływana automatycznie w momencie usuwania obiektu danego typu z pamięci. Dlatego dodanie elementu diagnostycznego cout<<Obiekt został usunięty; jest najbardziej sensowne w destruktorze ponieważ pozwala na śledzenie momentu w którym obiekt przestaje istnieć. Takie podejście jest zgodne z dobrymi praktykami programistycznymi ponieważ pomaga w debugowaniu i zarządzaniu zasobami w programie. Warto zauważyć że destruktory są kluczowe w kontekście zarządzania pamięcią szczególnie gdy klasa dynamicznie alokuje zasoby. Wówczas destruktor powinien zawierać kod zwalniający te zasoby aby uniknąć wycieków pamięci. Dodawanie diagnostycznych komunikatów może pomóc programistom w identyfikacji potencjalnych błędów związanych z zarządzaniem cyklem życia obiektów i poprawić ogólną stabilność i czytelność kodu. Praktyka ta jest szczególnie ważna w dużych projektach gdzie ręczne śledzenie wszystkich obiektów byłoby trudne i czasochłonne. Warto stosować taką diagnostykę w połączeniu z nowoczesnymi narzędziami do profilowania i analizy pamięci co zwiększa efektywność procesu programistycznego.

Pytanie 33

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

A. Visual Studio, Eclipse, angular, React.js, Node.js
B. jquery, Joomla!, Wordpress, android Studio, Xamarin
C. ASP.NET Core, Django, Angular, React.js, Node.js
D. ASP.NET Core, jQuery, Joomla!, Wordpress, Angular
Frameworki i biblioteki typowe dla aplikacji webowych to ASP.NET Core, Django, Angular, React.js i Node.js. Umożliwiają one tworzenie dynamicznych aplikacji front-end i back-end, zapewniając szeroką funkcjonalność, skalowalność oraz obsługę nowoczesnych technologii webowych.

Pytanie 34

Jakie jest oznaczenie komentarza wieloliniowego w języku Java?

A. // ... //
B. """ ... """
C. /* ... */
D. <!-- ... -->
Komentarze wieloliniowe w języku Java są oznaczane za pomocą /* ... */. Pozwalają na komentowanie większych fragmentów kodu, co jest przydatne podczas tymczasowego wyłączania kodu lub dodawania obszernych opisów do funkcji i klas.

Pytanie 35

Jaką wydajność posiada sieć, która przesyła 500 MB danych w czasie 10 sekund?

A. 50 Mbps
B. 400 Mbps
C. 500 Mbps
D. 40 Mbps
Przepustowość sieci to tak naprawdę miara, jak dobrze potrafimy przesyłać dane w określonym czasie, najczęściej podawana w bitach na sekundę (bps). Jeśli mamy 500 MB danych do przesłania w ciągu 10 sekund, to najpierw musimy zamienić megabajty na megabity. Pamiętaj, że 1 bajt to 8 bitów, więc 500 MB to 4000 Mb (500 MB * 8 = 4000 Mb). Jak już to zrobimy, dzielimy 4000 Mb przez 10 sekund i wychodzi nam 400 Mb/s. Ale warto też wspomnieć, że generalnie przepustowość mierzona jest w megabitach na sekundę. Tak więc 500 Mbps to w zasadzie to samo co 500 Mb/s w kontekście przesyłania danych. Podsumowując, obliczając 4000 Mb dzielone przez 10 sekund, dostajemy przepustowość 400 Mbps. Wiesz, to pokazuje, że przy takim transferze danych potrzeba sporego pasma, żeby wszystko działało jak należy. W dzisiejszych czasach, szybkość transferu danych to kluczowy element, żeby sieć była wydajna.

Pytanie 36

Który z poniższych opisów najlepiej charakteryzuje system informatyczny?

A. Sieć komputerowa, która umożliwia komunikację pomiędzy użytkownikami
B. Oprogramowanie wspierające jedynie zarządzanie danymi osobowymi
C. Zbiór urządzeń technicznych używanych w pracy biurowej
D. Zespół ludzi, procedur, oprogramowania i sprzętu służący do przetwarzania danych
System informatyczny to kompleksowy zbiór elementów, który obejmuje ludzi, procedury, oprogramowanie oraz sprzęt, mający na celu przetwarzanie danych w sposób efektywny i zorganizowany. Kluczowym aspektem systemu informatycznego jest jego zdolność do integracji różnych komponentów w celu realizacji określonych zadań i osiągania wyznaczonych celów. Przykładem może być system ERP (Enterprise Resource Planning), który integruje finanse, produkcję, sprzedaż oraz zarządzanie zasobami ludzkimi w jednym środowisku. Takie zintegrowane podejście umożliwia nie tylko efektywne zarządzanie danymi, ale również generowanie raportów, analizę trendów oraz podejmowanie informowanych decyzji. Standardy, takie jak ITIL (Information Technology Infrastructure Library) czy CMMI (Capability Maturity Model Integration), podkreślają znaczenie procedur i zarządzania w kontekście systemów informatycznych, co wpływa na jakość usług i zadowolenie użytkowników. Systemy informatyczne są wykorzystywane w różnych branżach, od finansów po opiekę zdrowotną, gdzie przetwarzanie i zarządzanie danymi jest kluczowe dla efektywności operacyjnej.

Pytanie 37

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

A. RSA
B. MD5
C. DES
D. AES
DES to algorytm szyfrowania symetrycznego, nie funkcja haszująca. RSA to algorytm asymetryczny wykorzystywany do szyfrowania i podpisów cyfrowych. AES to zaawansowany standard szyfrowania blokowego, ale nie jest funkcją skrótu.

Pytanie 38

Termin ryzyko zawodowe odnosi się do

A. zagrożenia wypadkowego, które może wystąpić w miejscu pracy
B. prawdopodobieństwa, że zdarzenia niepożądane związane z pracą spowodują straty, w szczególności negatywne skutki zdrowotne dla pracowników
C. ciężkości skutków niepożądanych zdarzeń związanych z pracą
D. efektów zagrożeń wypadkowych, jakie występują w miejscu zatrudnienia
Ryzyko zawodowe to prawdopodobieństwo wystąpienia niepożądanych zdarzeń związanych z pracą, mogących prowadzić do strat zdrowotnych lub materialnych. Ocena ryzyka to kluczowy element zarządzania bezpieczeństwem pracy.

Pytanie 39

Który z komponentów interfejsu użytkownika umożliwia użytkownikowi wprowadzanie danych tekstowych?

A. Przycisk
B. Pasek narzędziowy
C. Pole tekstowe
D. Dialog wyboru pliku
Pole tekstowe to element interfejsu użytkownika, który pozwala użytkownikowi na wprowadzanie danych tekstowych. Jest to jeden z najczęściej używanych komponentów UI w aplikacjach desktopowych, mobilnych i webowych. Pole tekstowe umożliwia wprowadzanie haseł, adresów e-mail, wiadomości i innych danych. W nowoczesnych aplikacjach często zawiera walidację, która sprawdza poprawność wpisywanych danych w czasie rzeczywistym. Dzięki swojej elastyczności, pola tekstowe mogą być wykorzystywane w różnorodnych formularzach, ankietach i systemach rejestracji użytkowników, co czyni je nieodzownym elementem aplikacji o dowolnym przeznaczeniu.

Pytanie 40

Który z wymienionych elementów NIE stanowi części instrukcji dla użytkownika programu?

A. Instrukcje dotyczące obsługi poszczególnych funkcji aplikacji
B. Opis metody instalacji aplikacji
C. Opis testów jednostkowych
D. Rozwiązywanie problemów związanych z użytkowaniem aplikacji
Instrukcja użytkownika programu zawiera opisy dotyczące sposobu instalacji aplikacji, konfiguracji oraz obsługi poszczególnych funkcji. Jest to kluczowy dokument pomagający użytkownikom w szybkim wdrożeniu się w pracę z oprogramowaniem. Zawiera również sekcje dotyczące rozwiązywania typowych problemów oraz wskazówki, jak efektywnie korzystać z narzędzi i funkcji aplikacji. Instrukcja użytkownika może być dostępna w formie elektronicznej (PDF, strony WWW) lub papierowej, a jej celem jest uproszczenie procesu wdrażania oraz ograniczenie liczby zgłoszeń do działu wsparcia technicznego. Dokumentacja tego typu stanowi również ważny element budowania pozytywnego doświadczenia użytkownika (UX).