Wyniki egzaminu

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

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Ile kilobajtów (KB) znajduje się w jednym megabajcie (MB)?

A. 1024
B. 10
C. 1000
D. 100
W informatyce jednostki pamięci są często używane do określenia pojemności danych. 1 megabajt (MB) równa się 1024 kilobajtom (KB) w systemie binarnym, który jest podstawowym systemem liczbowym używanym w komputerach. Wynika to z faktu, że komputery operują w systemie binarnym, gdzie wartości są potęgami liczby 2. Z definicji, 1 MB to 2 do potęgi 20 bajtów, co daje 1048576 bajtów. Kiedy dzielimy tę wartość przez 1024, otrzymujemy 1024 kilobajty. W praktyce, ta konwersja jest niezwykle istotna w kontekście zarządzania pamięcią oraz określania rozmiarów plików. Na przykład, przy pobieraniu plików z internetu, znając tę konwersję, można lepiej oszacować czas pobierania oraz zarządzanie przestrzenią dyskową. Warto również zauważyć, że niektóre systemy operacyjne i producenci sprzętu używają systemu dziesiętnego, w którym 1 MB to 1000 KB, co prowadzi do nieporozumień. Dlatego znajomość różnic między systemami binarnym i dziesiętnym jest kluczowa dla zrozumienia pojemności pamięci komputerowej i odpowiednich jednostek.

Pytanie 2

Która z funkcji powinna zostać zrealizowana w warstwie back-end aplikacji webowej?

A. sprawdzanie formularzy w czasie rzeczywistym
B. zarządzanie bazą danych
C. wyświetlanie danych z formularza w przeglądarce
D. zarządzanie zdarzeniami elementów
Obsługa bazy danych jest fundamentalną częścią warstwy back-end w aplikacjach internetowych. Backend odpowiada za przetwarzanie logiki biznesowej, przechowywanie i zarządzanie danymi, a także komunikację z bazą danych. Dane przesyłane z front-endu (interfejsu użytkownika) są walidowane i przetwarzane po stronie serwera, zanim trafią do bazy danych lub zostaną zwrócone użytkownikowi. W przypadku aplikacji dynamicznych, serwer pobiera informacje z bazy danych, przekształca je zgodnie z wymogami aplikacji i przesyła z powrotem na front-end. Właściwe zarządzanie danymi i bezpieczeństwo operacji na bazie danych to kluczowe zadania back-endu. Równie ważne jest zapobieganie wstrzykiwaniu SQL (SQL Injection) i zapewnienie integralności danych, co stanowi podstawę skalowalnych i bezpiecznych aplikacji.

Pytanie 3

Która grupa typów zawiera wyłącznie typy złożone?

A. char, struct, union
B. unsigned, struct, float
C. class, struct, float
D. class, struct, union
Char, unsigned i float to typy proste, a nie złożone. Class i struct są typami złożonymi, ale bool i float są typami podstawowymi. Union to typ złożony, ale unsigned i float należą do typów prostych, co nie czyni ich typami złożonymi.

Pytanie 4

Jakie jest rozwiązanie dla dodawania binarnego liczb 1011 oraz 110?

A. 10101
B. 11001
C. 10001
D. 11101
W analizie błędnych odpowiedzi, pierwsza niepoprawna odpowiedź 11001 wynika z błędu w dodawaniu ostatniej kolumny. Osoba, która udzieliła tej odpowiedzi, mogła popełnić pomyłkę, nie uwzględniając przeniesienia z drugiej kolumny. W systemie binarnym nie można uzyskać wyniku 11001, ponieważ suma 0 + 1 w ostatnich kolumnach prowadzi do przeniesienia, a nie do dodania wartości. Druga propozycja, 10101, może być efektem pomylenia wartości i przeniesień w trakcie dodawania. Wartości w odpowiednich kolumnach są zinterpretowane niepoprawnie. Tutaj również brakuje uwzględnienia przeniesienia, co prowadzi do wyniku, który nie odzwierciedla rzeczywistego sumowania w systemie binarnym. Ostatnia niepoprawna odpowiedź, 11101, zawiera błąd związany z dodawaniem wartości bez przeniesienia. Sumowanie 1 + 1 w drugiej kolumnie prowadzi do 0 z przeniesieniem, co zostało pominięte. W każdej z tych odpowiedzi występuje zrozumienie błędów w arytmetyce binarnej, które są fundamentalne dla prawidłowego obliczania w systemach cyfrowych.

Pytanie 5

Co to jest choroba związana z wykonywaniem zawodu?

A. Każda choroba, która występuje w czasie pracy
B. Stan zdrowia, który uniemożliwia pracę przez okres krótszy niż tydzień
C. Choroba wynikająca z warunków pracy lub związanych z nimi czynników
D. Choroba występująca tylko w sektorze przemysłowym
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 6

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

A. moduły zawierające funkcje oraz zmienne globalne
B. definicję warunków końcowego rozwiązania
C. zbiór instancji klas współpracujących ze sobą
D. pętlę dyspozytora, która w zależności od zdarzenia wywoła właściwą funkcję
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 7

Jaką komendę w języku C++ używa się do wielokrotnego uruchamiania tego samego bloku kodu?

A. if
B. break
C. switch
D. while
Instrukcja `while` w języku C++ i innych językach programowania pozwala na wielokrotne wykonanie tego samego fragmentu kodu, dopóki warunek logiczny jest spełniony. Przykład: `while (x < 10) { x++; }` będzie zwiększać zmienną `x` o 1, dopóki jej wartość nie osiągnie 10. Pętle `while` są przydatne, gdy liczba iteracji nie jest z góry znana i zależy od spełnienia określonego warunku w trakcie wykonywania programu.

Pytanie 8

Jakie są różnice między dialogiem modalnym a niemodalnym?

A. Dialog modalny umożliwia interakcję z innymi oknami aplikacji, a dialog niemodalny tego nie pozwala
B. Dialog modalny działa w tle, podczas gdy dialog niemodalny jest zawsze wyświetlany na pierwszym planie
C. Dialog modalny jest ograniczony wyłącznie do aplikacji konsolowych
D. Dialog modalny wymaga zamknięcia, aby powrócić do głównego okna aplikacji, natomiast dialog niemodalny tego nie wymaga
Dialog modalny to okno dialogowe, które wymaga interakcji użytkownika przed powrotem do głównego okna aplikacji. Tego rodzaju okna są często wykorzystywane do wyświetlania komunikatów, potwierdzeń lub formularzy wymagających danych wejściowych. Modalność zapewnia, że użytkownik nie może przejść do innej części aplikacji bez uprzedniego zamknięcia okna dialogowego. To rozwiązanie pomaga w wymuszeniu ważnych akcji, takich jak potwierdzenie usunięcia pliku lub zatwierdzenie płatności. Dialog niemodalny natomiast pozwala na interakcję z resztą aplikacji nawet wtedy, gdy okno dialogowe jest otwarte, co sprawdza się w mniej krytycznych sytuacjach, np. podczas wyświetlania dodatkowych opcji.

Pytanie 9

Jakie jest podstawowe użycie metod wirtualnych?

A. Umożliwienie korzystania z metod bezpośrednio z klasy bazowej
B. Umożliwienie wielokrotnego dziedziczenia
C. Umożliwienie dynamicznego wiązania metod w czasie wykonania
D. Zapewnienie, że metoda działa wyłącznie na danych statycznych
Umożliwienie korzystania z metod bezpośrednio z klasy bazowej nie jest funkcją metod wirtualnych – to raczej standardowa cecha metod publicznych. Metody działające wyłącznie na danych statycznych nie mogą być wirtualne, ponieważ ich działanie nie jest zależne od instancji klasy. Umożliwienie wielokrotnego dziedziczenia jest funkcją konstrukcji dziedziczenia w językach takich jak C++, ale samo w sobie nie wymaga metod wirtualnych, chociaż mogą one być używane w kontekście wielokrotnego dziedziczenia.

Pytanie 10

Diagram Gantta, który został zaprezentowany, odnosi się do projektu IT. Przyjmując, że każdy członek zespołu posiada odpowiednie kompetencje do realizacji każdego z zadań, a każde zadanie może być przypisane tylko jednej osobie, która poświęca na nie pełen dzień pracy, to minimalna liczba osób w zespole wynosi

Ilustracja do pytania
A. 5 osób
B. 4 osoby
C. 2 osoby
D. 1 osobę
Diagram Gantta to narzędzie wizualne używane do planowania i zarządzania projektami. Pokazuje harmonogram zadań w czasie. Na przedstawionym diagramie mamy pięć zadań projektowych: Projekt aplikacji Grafika Strona WWW Aplikacja front-end i Aplikacja back-end. Aby określić minimalną liczbę osób potrzebnych do realizacji projektu należy zidentyfikować które zadania mogą być realizowane równocześnie. Z diagramu wynika że w pierwszym tygodniu (1.02 - 7.02) realizowane są zadania Projekt aplikacji i Grafika które wymagają dwóch osób. W kolejnych tygodniach zadania są ułożone tak by unikać nakładania się co oznacza że w każdej kolejnej fazie projektu można kontynuować prace przydzielając jedną osobę do każdego zadania. Dlatego minimalna liczba osób wymagana do realizacji tego projektu to dwie. Taki sposób planowania jest zgodny z zasadami efektywnego zarządzania zasobami w projektach informatycznych co pozwala na optymalne wykorzystanie czasu i umiejętności zespołu. Zastosowanie metody diagramu Gantta jest powszechną praktyką w branży IT pozwalającą na lepsze zobrazowanie zależności i potrzeb kadrowych w projektach.

Pytanie 11

Jakiego typu funkcja jest tworzona poza klasą, ale ma dostęp do jej prywatnych i chronionych elementów?

A. Konstruktor
B. Destruktor
C. Funkcja zaprzyjaźniona
D. Metoda statyczna
Funkcja zaprzyjaźniona to specjalny typ funkcji, który jest deklarowany jako 'friend' w ciele klasy, co pozwala jej na dostęp do prywatnych i chronionych składowych tej klasy. Chociaż funkcja zaprzyjaźniona jest definiowana poza klasą, może operować na jej wewnętrznych danych, co czyni ją bardzo użytecznym narzędziem w programowaniu obiektowym. Tego rodzaju funkcje są często wykorzystywane w przypadkach, gdy konieczne jest współdziałanie dwóch klas lub funkcji narzędziowych, które muszą manipulować danymi wewnętrznymi klasy, ale nie powinny być jej metodami członkowskimi. Dzięki funkcjom zaprzyjaźnionym można zapewnić elastyczność w dostępie do danych przy jednoczesnym zachowaniu hermetyzacji klasy. Przykładem może być przeciążenie operatorów, np. operator +, który musi mieć dostęp do prywatnych składowych obu operandów.

Pytanie 12

Zapisany kod w języku Python ilustruje

Ilustracja do pytania
A. strukturę
B. stos
C. tablicę asocjacyjną (słownik)
D. kolejkę (LIFO)
Żeby zrozumieć, czemu inne struktury danych nie zadziałały w tym przykładzie, trzeba się przyjrzeć, jak one działają. Stos, czyli kolejka LIFO, to taki układ, w którym ostatni dodany element idzie jako pierwszy. Przykłady to różne algorytmy przeszukiwania czy cofniki w edytorach tekstu. Problem w tym, że stos nie przechowuje par klucz-wartość, przez co nie nadaje się do tego zadania. Zwykła struktura to raczej szerokie pojęcie i nie daje jasnej odpowiedzi na pytanie, jakie mamy w Pythonie. W przeciwieństwie do tego, słownik idealnie pasuje, bo przechowuje dane w formie klucz-wartość, co pozwala na szybki dostęp do informacji. W stosie brak jest też kolejności, jaką można by stosować. Często, gdy wybieramy błędne odpowiedzi, zapominamy o specyfice działania tych struktur, co może prowadzić do pomyłek. Dlatego ważne jest, żeby rozumieć, jak odpowiednio przypisać struktury danych do ich zastosowań, co jest istotne w programowaniu.

Pytanie 13

Programista pragnie wybrać algorytm, który najszybciej przetwarza dane w jego aplikacji. Na podstawie złożoności obliczeniowej przedstawionej w tabeli, należy wskazać algorytm numer

Ilustracja do pytania
A. 3
B. 4
C. 1 lub 5
D. 2 lub 3
Algorytm numer 4 w tabeli złożoności obliczeniowej działa najszybciej, co wynika z jego niskiej złożoności czasowej. Algorytmy o niższej złożoności są bardziej efektywne przy dużych zbiorach danych.

Pytanie 14

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

A. RSA
B. DES
C. MD5
D. AES
MD5 to popularny algorytm haszujący, który generuje skróty (hash) dla danych wejściowych. Jest stosowany w kryptografii do tworzenia sum kontrolnych i weryfikacji integralności danych, choć obecnie jest uważany za podatny na kolizje.

Pytanie 15

Jakie elementy zostaną wyświetlone w przeglądarce po wykonaniu kodu źródłowego stworzonego za pomocą dwóch funkcjonalnie równoważnych fragmentów?

Ilustracja do pytania
A. trzy paragrafy, w każdym z nich tekst o treści: {tag}
B. jeden paragraf z pierwszym elementem tablicy tags
C. jeden paragraf zawierający wszystkie elementy tablicy tags w kolejności
D. Trzy paragrafy, każdy odpowiadający kolejnemu elementowi tablicy tags
Kod generuje trzy paragrafy, każdy z kolejnym elementem tablicy tags. Jest to standardowy sposób iteracji po elementach tablicy i renderowania ich jako oddzielnych elementów HTML. W praktyce, takie podejście jest szeroko stosowane w aplikacjach frontendowych, gdzie dynamicznie tworzone elementy interfejsu użytkownika są generowane na podstawie tablic lub list danych. Każdy element tablicy jest iterowany i osobno przekształcany w znacznik HTML, co pozwala na łatwe zarządzanie i aktualizowanie treści strony w czasie rzeczywistym. To podejście jest zgodne z najlepszymi praktykami dotyczącymi manipulacji DOM i zapewnia wysoką wydajność aplikacji.

Pytanie 16

Jakie jest podstawowe zadanie firewalla w systemie komputerowym?

A. Ochrona danych na poziomie aplikacji internetowych
B. Zarządzanie ruchem sieciowym i blokowanie nieautoryzowanego dostępu
C. Zapobieganie wyciekom informacji na skutek awarii systemu
D. Szyfrowanie danych przesyłanych w sieci
Firewall to narzędzie, które zarządza ruchem sieciowym i blokuje nieautoryzowane połączenia. Jego głównym celem jest ochrona przed nieuprawnionym dostępem do systemu poprzez analizę i filtrowanie pakietów danych. Firewall działa na poziomie sieciowym i aplikacyjnym, co pozwala na skuteczne zatrzymywanie prób włamań, ataków DDoS oraz złośliwego oprogramowania próbującego komunikować się z serwerami zewnętrznymi. To niezbędny element ochrony każdej infrastruktury IT.

Pytanie 17

Podaj przykład incydentu w miejscu pracy?

A. złe samopoczucie spowodowane przewlekłą chorobą zatrudnionego, które wystąpiło w biurze
B. złamanie nogi w trakcie urlopu wypoczynkowego przyznanego przez pracodawcę
C. oparzenie dłoni, które miało miejsce podczas nieobowiązkowego szkolenia w czasie prywatnym pracownika
D. kontuzja stawu skokowego, która zdarzyła się w trakcie bezpośredniej drogi do miejsca zatrudnienia
Oparzenie ręki podczas doszkalania w czasie wolnym to już inna sprawa. To nie jest wypadek przy pracy, bo przecież nie chodziło o obowiązki służbowe. Zresztą, jak masz jakieś przewlekłe schorzenie i czujesz się źle, to też nie można tego zaklasyfikować jako wypadek. A złamanie nogi na urlopie? No, to też nie spełnia definicji wypadku przy pracy, bo było poza czasem pracy.

Pytanie 18

Który z podanych terminów najlepiej odnosi się do składnika statycznego w klasie?

A. Pole lub metoda, która jest przypisana do klasy, a nie do jej instancji
B. Metoda z dostępem ograniczonym tylko do tej samej klasy
C. Funkcja, która wywołuje destruktor danej klasy
D. Zmienna lokalna wewnątrz danej klasy
Metoda z dostępem ograniczonym do tej samej klasy to przykład modyfikatora `private`, a nie cecha składnika statycznego. Funkcja wywołująca destruktor nie jest statycznym składnikiem klasy – destruktory są specyficzne dla każdej instancji obiektu. Zmienna lokalna wewnątrz klasy to zmienna zadeklarowana w metodzie klasy i istnieje tylko w czasie jej wykonywania, co różni się od pól statycznych, które są trwałe i współdzielone przez wszystkie obiekty danej klasy. Składniki statyczne odnoszą się do klasy jako całości, a nie do pojedynczych instancji.

Pytanie 19

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

A. .switchClass()
B. .bingClass()
C. .toggleClass()
D. .changeClass()
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 20

Jaką funkcję spełniają atrybuty klasy w programowaniu obiektowym?

A. Określają globalne stałe programu
B. Umożliwiają przeprowadzanie operacji na obiektach
C. Zapisują wartości lokalne w funkcjach
D. Zawierają informacje opisujące stan obiektu
Pola klasy w programowaniu obiektowym to zmienne, które przechowują dane opisujące stan obiektu. Każdy obiekt posiada swoje własne kopie pól, co oznacza, że różne instancje tej samej klasy mogą przechowywać różne wartości. Przykład w C++: `class Samochod { public: string marka; int przebieg; }`. Pola `marka` i `przebieg` przechowują informacje o konkretnym samochodzie. Pola są kluczowym elementem modelowania rzeczywistych obiektów i umożliwiają przechowywanie oraz modyfikowanie danych w trakcie działania programu. Mogą mieć różne poziomy dostępu (`public`, `private`), co pozwala na lepszą kontrolę nad danymi.

Pytanie 21

W zaprezentowanym wideo przedstawiono narzędzie do tworzenia interfejsu użytkownika, dla którego automatycznie generuje się

A. kod XML
B. obsługa przycisku ekranu dotykowego
C. obsługa wciśniętego przycisku
D. kod Java
W kreatorze interfejsu użytkownika automatycznie generowany jest kod XML, który opisuje układ i właściwości elementów interfejsu. XML jest standardem w tworzeniu interfejsów dla aplikacji na platformy Android i WPF.

Pytanie 22

Jakie obliczenia można wykonać za pomocą poniższego algorytmu, który operuje na dodatnich liczbach całkowitych?

Ilustracja do pytania
A. największy wspólny dzielnik wprowadzonej liczby
B. liczbę cyfr w wprowadzonej liczbie
C. sumę cyfr wprowadzonej liczby
D. sumę wprowadzonych liczb
Algorytm oblicza liczbę cyfr we wczytanej liczbie całkowitej. Iteracyjnie dzieli liczbę przez 10, licząc, ile razy można to zrobić, zanim wynik będzie równy 0. Jest to standardowa metoda na określenie długości liczby w systemie dziesiętnym.

Pytanie 23

Jaki rodzaj licencji umożliwia dowolne zmienianie oraz rozpowszechnianie kodu źródłowego?

A. Licencja shareware
B. Licencja komercyjna
C. Licencja OEM
D. Licencja GNU GPL
Licencja komercyjna ogranicza możliwość modyfikacji kodu i zazwyczaj wymaga zakupu oprogramowania na określonych warunkach. Licencja shareware pozwala na testowanie oprogramowania przed zakupem, ale nie uprawnia do modyfikacji ani redystrybucji kodu. Licencja OEM (Original Equipment Manufacturer) jest związana z oprogramowaniem dostarczanym przez producenta sprzętu i ogranicza możliwość instalacji na innym urządzeniu lub modyfikacji kodu źródłowego.

Pytanie 24

Który z wymienionych terminów dotyczy klasy, która stanowi podstawę dla innych klas, lecz nie może być tworzona w instancji?

A. Klasa finalna
B. Klasa statyczna
C. Klasa pochodna
D. Klasa abstrakcyjna
Klasa abstrakcyjna to klasa, która nie może być instancjonowana i służy jako szablon dla innych klas. Definiuje ona ogólną strukturę oraz interfejs, który klasy pochodne muszą zaimplementować. Klasy abstrakcyjne mogą zawierać zarówno metody z ciałem (zdefiniowane), jak i metody czysto wirtualne (bez implementacji), które muszą być przesłonięte w klasach pochodnych. W C++ deklaracja czysto wirtualnej metody odbywa się za pomocą '= 0'. Klasa abstrakcyjna zapewnia spójność interfejsu i narzuca implementację określonych metod we wszystkich klasach dziedziczących, co prowadzi do bardziej przewidywalnego i bezpiecznego kodu.

Pytanie 25

Która z metod zarządzania projektami jest najbardziej odpowiednia, gdy w początkowej fazie projektu zakres nie jest w pełni określony, wymagania mogą zmieniać się podczas realizacji, a także mogą wystąpić nowe potrzeby?

A. PRINCE2
B. Agile
C. Model kaskadowy
D. Model V
PRINCE2 to metodyka oparta na sztywnym planie projektowym, co ogranicza możliwość dynamicznych zmian. Model V jest liniowy i koncentruje się na testowaniu w kolejnych fazach projektu. Model kaskadowy zakłada realizację projektu etapami, co utrudnia wprowadzanie zmian po rozpoczęciu kolejnych faz.

Pytanie 26

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

A. Visual Studio, Eclipse, angular, React.js, Node.js
B. ASP.NET Core, Django, Angular, React.js, Node.js
C. ASP.NET Core, jQuery, Joomla!, Wordpress, Angular
D. jquery, Joomla!, Wordpress, android Studio, Xamarin
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 27

Jak nazywa się wzorzec projektowy, do którego odnosi się ta definicja?

Ilustracja do pytania
A. Prototyp
B. Dekorator
C. Fasada
D. Kompozyt
Wzorzec projektowy Fasada jest jednym z kluczowych wzorców strukturalnych używanych w inżynierii oprogramowania. Jego głównym celem jest uproszczenie i ujednolicenie interakcji z złożonym systemem poprzez wystawienie uproszczonego i uporządkowanego interfejsu programistycznego. Fasada ukrywa złożoność systemu, zapewniając jednolity punkt dostępu do zestawu funkcji lub klas. W praktyce fasada jest używana do tworzenia prostych interfejsów dla bardziej złożonych bibliotek lub systemów, co ułatwia ich użycie przez programistów. Na przykład w systemie bankowym fasada może zintegrować różne usługi jak autoryzacja płatności, zarządzanie kontami i generowanie wyciągów, oferując jeden interfejs do ich obsługi. Fasada wspiera dobre praktyki poprzez promowanie niskiej zależności i wysokiej spójności. Zmiany w wewnętrznym działaniu systemu są mniej widoczne na zewnątrz, co zwiększa elastyczność systemu. Fasada jest zgodna z zasadą projektowania SOLID, zwłaszcza z zasadą pojedynczej odpowiedzialności, umożliwiając lepsze zarządzanie kodem i jego utrzymanie. Jej użycie jest powszechne w systemach złożonych, gdzie upraszczanie interfejsów jest kluczowe dla efektywności programistycznej i skalowalności systemu.

Pytanie 28

Fragment kodu w języku JavaScript to

Ilustracja do pytania
A. prototyp interfejsu
B. definicja funkcji strzałkowej
C. definicja zmiennej typu tablicowego
D. prototyp metody klasy
Kod w JavaScript opisuje definicję funkcji strzałkowej, która jest nowoczesnym i bardziej zwięzłym sposobem definiowania funkcji. Funkcje strzałkowe mają też specyficzne zachowanie w kontekście 'this', co czyni je często preferowanymi przy pracy z obiektami i metodami callback.

Pytanie 29

Które z wymienionych poniżej błędów podczas wykonywania programu można obsłużyć poprzez zastosowanie wyjątków?

A. Błąd dzielenia przez zero
B. Niekompatybilność typów danych w kodzie
C. Błąd w składni
D. Błąd kompilacyjny
Błędy składniowe są wykrywane na etapie kompilacji i nie mogą być obsługiwane za pomocą wyjątków – kompilator generuje komunikat o błędzie, zanim program zostanie uruchomiony. Błędy kompilacji, takie jak niezgodność typów danych, również są wychwytywane na etapie kompilacji i wymagają poprawienia kodu źródłowego. Wyjątki są przeznaczone do obsługi błędów, które występują w czasie wykonywania programu, a nie błędów wykrywanych przez kompilator. Dlatego obsługa błędów składniowych i kompilacyjnych wymaga innego podejścia niż mechanizm wyjątków.

Pytanie 30

Jednym z rodzajów testów funkcjonalnych, które można przeprowadzić na aplikacji webowej, jest ocena

A. bezpieczeństwa aplikacji
B. poprawności wyświetlanych elementów aplikacji
C. wydajności aplikacji
D. poziomu optymalizacji kodu aplikacji
Bezpieczeństwo aplikacji to sprawa testów penetracyjnych, a nie funkcjonalnych. Wiesz, to trochę jak sprawdzenie, czy można się włamać do systemu, a nie sprawdzanie, czy przyciski działają. Co do optymalizacji kodu, to tam są testy wydajnościowe, ale nie związane bezpośrednio z tym, co testujemy w funkcjonalności. Zresztą, wydajność aplikacji to z kolei obszar testów obciążeniowych i stresowych. W skrócie, chodzi o to, jak system działa pod dużym obciążeniem, a nie jakie ma funkcje.

Pytanie 31

Który z poniższych problemów jest najczęściej rozwiązywany z zastosowaniem algorytmu rekurencyjnego?

A. Obliczanie sumy elementów w tablicy
B. Wyszukiwanie binarne w uporządkowanej tablicy
C. Sortowanie za pomocą metody QuickSort
D. Generowanie ciągu Fibonacciego
Generowanie ciągu Fibonacciego to klasyczny przykład problemu, który najczęściej rozwiązuje się za pomocą algorytmu rekurencyjnego. Algorytm rekurencyjny wywołuje sam siebie, dzieląc problem na mniejsze podproblemy, aż do osiągnięcia przypadku bazowego. W przypadku Fibonacciego każda liczba jest sumą dwóch poprzednich, a algorytm rekurencyjny odwzorowuje to wprost poprzez wywołania fib(n-1) + fib(n-2). Rekurencja jest intuicyjna i często stosowana w zadaniach matematycznych, takich jak obliczanie silni czy rozwiązywanie problemów związanych z przeszukiwaniem drzew. Choć rekurencja jest elegancka, dla dużych n może prowadzić do nadmiarowych obliczeń, dlatego często optymalizuje się ją za pomocą pamięci podręcznej (memoizacji) lub iteracyjnych wersji algorytmu.

Pytanie 32

Wskaż uproszczoną wersję kodu XAML dla elementów w pokazanym oknie dialogowym?

Ilustracja do pytania
A. Kod 4
B. Kod 2
C. Kod 1
D. Kod 3
Kod 2 jest poprawnym uproszczonym kodem XAML dla przedstawionych kontrolek. XAML (Extensible Application Markup Language) jest używany do definiowania interfejsów użytkownika w aplikacjach WPF (Windows Presentation Foundation) i UWP (Universal Windows Platform). Jego czytelność i deklaratywny charakter pozwalają na tworzenie i zarządzanie kontrolkami w sposób przejrzysty i elastyczny, co przyspiesza proces projektowania interfejsów.

Pytanie 33

Kod w bibliotece React.js oraz w frameworku Angular, który został zaprezentowany, ma na celu wyświetlenie

Ilustracja do pytania
A. liczby kliknięć przycisku
B. tylko napisu BTN_1
C. wartości 0 po naciśnięciu przycisku
D. wyłącznie przycisku oraz obsłużenie zdarzenia click, które ono generuje
Wyświetlanie samego przycisku bez licznika jest możliwe, ale nie spełnia założeń tego fragmentu kodu. Generowanie liczby 0 po kliknięciu sugeruje błędne zarządzanie stanem komponentu. Wyświetlanie napisu BTN_1 wskazuje na statyczny tekst, który nie zmienia się w odpowiedzi na interakcję użytkownika.

Pytanie 34

Jakiego kwalifikatora powinno się użyć dla metody, aby umożliwić do niej dostęp jedynie z wnętrza tej klasy oraz klas dziedziczących, a także, by metoda ta nie była dostępna w żadnej funkcji?

A. public
B. reinterpret_cast
C. private
D. protected
Metoda oznaczona jako 'protected' jest dostępna tylko z poziomu klasy oraz jej klas potomnych. Chroni to przed bezpośrednim dostępem spoza klasy, zapewniając większe bezpieczeństwo kodu i ograniczenie dostępu.

Pytanie 35

Które z wymienionych narzędzi nie znajduje zastosowania w tworzeniu aplikacji desktopowych?

A. Kompilator
B. Debugger
C. Przeglądarka internetowa
D. Edytor graficzny
Przeglądarka internetowa nie jest narzędziem wykorzystywanym bezpośrednio w procesie tworzenia aplikacji desktopowych. Chociaż może służyć do przeszukiwania dokumentacji lub testowania aplikacji webowych, jej funkcjonalność nie wspiera bezpośredniego tworzenia aplikacji desktopowych. W tworzeniu aplikacji desktopowych kluczowe są narzędzia takie jak kompilatory, debugery i edytory kodu. Kompilatory przekształcają kod źródłowy na kod wykonywalny, debugery pozwalają na śledzenie błędów, a edytory kodu umożliwiają pisanie i edytowanie aplikacji.

Pytanie 36

Który z wymienionych parametrów określa prędkość procesora?

A. Wielkość pamięci podręcznej
B. Liczba rdzeni
C. Rodzaj złącza
D. Częstotliwość taktowania
Częstotliwość taktowania procesora, wyrażana najczęściej w gigahercach (GHz), jest kluczowym parametrem opisującym szybkość działania jednostki centralnej. Określa, ile cykli zegara procesor jest w stanie wykonać w ciągu jednej sekundy. Wyższa częstotliwość oznacza większą ilość operacji, które procesor może przetworzyć w danym czasie, co bezpośrednio wpływa na jego wydajność. Przykładowo, procesor o częstotliwości 3,0 GHz może wykonać 3 miliardy cykli na sekundę, co sprawia, że jest w stanie przeprowadzać bardziej skomplikowane obliczenia i efektywniej zarządzać zadaniami. W praktyce jednak sama częstotliwość nie jest jedynym wskaźnikiem wydajności; istotne są też inne czynniki, takie jak architektura procesora, liczba rdzeni czy szybkość pamięci RAM. Standardy, takie jak Intel Core i9 czy AMD Ryzen 5000, dostarczają informacji na temat maksymalnej częstotliwości taktowania, co pozwala konsumentom lepiej dobierać sprzęt do swoich potrzeb. Warto również zauważyć, że wielu nowoczesnych procesorów stosuje technologię Turbo Boost, która pozwala na chwilowe zwiększenie częstotliwości w celu uzyskania lepszej wydajności przy intensywnych obciążeniach.

Pytanie 37

Jaką wartość dziesiętną reprezentuje liczba binarna 1010?

A. 14
B. 12
C. 10
D. 8
Odpowiedzi 8, 12 i 14 są błędne w kontekście konwersji liczby binarnej 1010 na wartość dziesiętną. Liczba 8 w systemie dziesiętnym odpowiada binarnej wartości 1000. W tym przypadku, 1 * 2^3 daje 8, co oznacza, że w zapisie binarnym nie ma cyfr odpowiadających wartościom 2^2, 2^1 oraz 2^0. Liczba 12 w systemie dziesiętnym jest reprezentowana jako 1100 w systemie binarnym, co oznacza, że ma ona 1 na pozycji 2^3, 1 na pozycji 2^2, a 0 na pozycjach 2^1 oraz 2^0. Natomiast liczba 14 jest reprezentowana jako 1110 w systemie binarnym, co wskazuje, że ma 1 na pozycjach 2^3, 2^2 oraz 2^1, a 0 na pozycji 2^0. W każdym z tych przypadków, niepoprawne odpowiedzi wynikają z błędnej interpretacji wartości binarnych oraz ich odpowiedników w systemie dziesiętnym. Zrozumienie systemów liczbowych jest kluczowe w informatyce i inżynierii, ponieważ liczby binarne są podstawą funkcjonowania komputerów oraz cyfrowych systemów obliczeniowych. Dlatego tak ważne jest precyzyjne wykonanie konwersji oraz znajomość reguł związanych z tym procesem.

Pytanie 38

Który z wymienionych etapów w procesie przetwarzania instrukcji przez procesor odbywa się jako pierwszy?

A. Realizacja instrukcji (Execution)
B. Rozkodowanie rozkazu (Decode)
C. Pobranie rozkazu z pamięci (Fetch)
D. Zapis wyników do pamięci (Write Back)
Pierwszą rzeczą, jaką robi procesor, jest pobranie rozkazu z pamięci, co nazywamy Fetch. To bardzo ważny etap w budowie komputera. Normalnie cykl wykonywania instrukcji składa się z trzech głównych kroków: pobierania, dekodowania i wykonania. W fazie Fetch procesor dobiera się do pamięci i ściąga instrukcję, którą zaraz wykona. Do tego używa rejestru wskaźnika instrukcji, czyli Instruction Pointer, który pokazuje, gdzie w pamięci jest następna instrukcja. Jak to działa w praktyce? Można to zobaczyć na przykładzie procesora x86, gdzie CPU na początku cyklu sprawdza pamięć RAM, szukając instrukcji według adresu, który podaje wskaźnik. Standardy takie jak ISA (Instruction Set Architecture) mówią, że ten krok to podstawa, bo to właśnie od niego zaczyna się wszystko, co robi procesor.

Pytanie 39

Jakie znaczenie ma określenie "klasa zaprzyjaźniona" w kontekście programowania obiektowego?

A. Klasa, która może być dziedziczona przez inne klasy
B. Klasa, w której wszystkie komponenty są publiczne
C. Klasa, która ma dostęp do prywatnych i chronionych elementów innej klasy
D. Klasa, która nie ma możliwości zawierania metod statycznych
Klasa, która może być dziedziczona przez inne klasy, to zwykła klasa bazowa, nie klasa zaprzyjaźniona. Klasa z publicznymi składowymi nie jest automatycznie klasą zaprzyjaźnioną, a jedynie posiada publiczne pola dostępne z zewnątrz. Stwierdzenie, że klasa nie może zawierać metod statycznych, jest błędne – klasa zaprzyjaźniona może zawierać dowolne typy metod, w tym statyczne, jeśli jej projektowanie tego wymaga.

Pytanie 40

Wykorzystując React.js oraz Angular, stworzono funkcjonalnie równoważne kody źródłowe. Aby móc w metodzie handleSubmit pokazać zawartość kontrolki input w miejscu oznaczonym ???, należy odwołać się do atrybutu o nazwie

Ilustracja do pytania
A. nazwa4
B. nazwa3
C. nazwa2
D. nazwa1
nazwa4 – Odnosi się do innej części kodu, niepowiązanej z polem input. nazwa2 – Może odnosić się do innego elementu interfejsu, ale nie kontrolki input. nazwa3 – Choć bliska, nie jest poprawnym identyfikatorem dla tej kontrolki.