Wyniki egzaminu

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

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Jakie aspekty powinny być brane pod uwagę przy tworzeniu zestawów danych?

A. Narzędzia do analizy błędów
B. Ilość linii kodu programu
C. Metoda alokacji pamięci dla danych
D. Typ zastosowanego kompilatora

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Sposób alokacji pamięci dla danych to kluczowy element projektowania zestawów danych, ponieważ wpływa na wydajność i efektywność programu. Dynamiczna alokacja pamięci pozwala na tworzenie struktur, których rozmiar jest zmienny i dostosowuje się w trakcie działania aplikacji. Dzięki temu programiści mogą optymalnie zarządzać zasobami systemowymi, unikając marnowania pamięci lub jej niedoboru. Wybór odpowiedniej metody alokacji, np. stosowanie wskaźników, dynamicznych tablic lub struktur danych takich jak lista czy mapa, pozwala na budowanie bardziej skalowalnych i elastycznych aplikacji.

Pytanie 2

Jakie są różnice między typem łańcuchowym a typem znakowym?

A. Typ znakowy przechowuje pojedyncze znaki, a łańcuchowy ciągi znaków
B. Typ znakowy przechowuje dane logiczne, a łańcuchowy tekst
C. Typ łańcuchowy obsługuje liczby całkowite, a znakowy liczby zmiennoprzecinkowe
D. Typ łańcuchowy przechowuje pojedyncze znaki, a znakowy długie ciągi znaków

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Typ znakowy (char) przechowuje pojedyncze znaki, natomiast typ łańcuchowy (string) przechowuje ciągi znaków. Różnica ta ma kluczowe znaczenie w programowaniu, ponieważ typ 'char' jest używany do operacji na pojedynczych literach, cyfrze lub symbolu, podczas gdy 'string' umożliwia przechowywanie i manipulowanie całymi wyrazami lub zdaniami. W wielu językach 'string' to bardziej złożona struktura danych, która zawiera tablicę znaków (array of characters), co pozwala na efektywną pracę z tekstem i budowanie interaktywnych aplikacji.

Pytanie 3

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

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Platforma Xamarin to naprawdę ciekawe narzędzie, które pozwala tworzyć aplikacje mobilne na różne platformy (np. Android, iOS) przy użyciu języka C#. Z mojego doświadczenia wynika, że Xamarin jest bardzo ceniony wśród programistów, którzy już znają .NET, bo w zasadzie pozwala używać tej samej logiki biznesowej w kodzie na wszystkie ważne systemy mobilne. To znacznie przyspiesza pracę, bo nie musisz oddzielnie pisać aplikacji na iOS i Androida, tylko duża część kodu jest współdzielona – zwłaszcza modele danych, logika, a nawet część interfejsu jeśli korzystasz z Xamarin.Forms. Przykładowo, budując prostą aplikację do zarządzania zadaniami, można stworzyć praktycznie cały kod w C#, a potem tylko lekko dostosować szczegóły UI pod każdą platformę. Co ważne, Xamarin udostępnia dostęp do natywnych API każdego systemu przez tzw. bindings, więc nie jesteś ograniczony do najprostszych scenariuszy. Microsoft mocno wspiera to rozwiązanie, a jego integracja z Visual Studio jest naprawdę wygodna. Moim zdaniem, jeśli ktoś zna C# i chce robić mobilki, to Xamarin jest jednym z rozsądniejszych wyborów. Oczywiście, obecnie coraz większą popularność zdobywa .NET MAUI, czyli następca Xamarin.Forms, który idzie jeszcze dalej i oferuje wsparcie również dla desktopów. Ale w praktyce, znajomość Xamarina to wciąż bardzo przydatna rzecz.

Pytanie 4

Który z wymienionych dysków oferuje najszybszy dostęp do danych?

A. HDD 5400 RPM, SATA II, 32 MB Cache
B. HDD 7200 RPM, SATA III, 64 MB Cache
C. SSD NVMe PCIe 3.0, prędkość odczytu do 3500 MB/s
D. SSD SATA III, prędkość odczytu do 550 MB/s

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź wskazująca na SSD NVMe PCIe 3.0 jako najszybszy dysk do odczytu danych jest zgodna z obecnymi standardami technologii przechowywania. Dyski SSD (Solid State Drive) korzystają z pamięci flash, co pozwala na znacznie szybszy dostęp do danych w porównaniu do tradycyjnych dysków HDD (Hard Disk Drive), które działają na zasadzie mechanicznych ruchomych elementów. Dyski NVMe (Non-Volatile Memory Express) są szczególnie wydajne, ponieważ wykorzystują interfejs PCIe (Peripheral Component Interconnect Express), co umożliwia znacznie wyższe prędkości transferu danych. W przypadku SSD NVMe PCIe 3.0, prędkość odczytu może osiągać do 3500 MB/s, co jest znaczącą różnicą w porównaniu do prędkości odczytu w dyskach HDD i SSD SATA. Przykładowo, w zastosowaniach takich jak edycja wideo, renderowanie grafiki 3D czy gry komputerowe, wyższa prędkość odczytu przekłada się na szybsze ładowanie danych i lepszą wydajność systemu. Standardy SATA III dla HDD również mają swoje ograniczenia, ponieważ maksymalna teoretyczna prędkość transferu wynosi 6 Gb/s, co jest dalekie od osiągów oferowanych przez NVMe. Dlatego SSD NVMe PCIe 3.0 jest zdecydowanym liderem w kontekście wydajności odczytu danych w porównaniu do pozostałych opcji.

Pytanie 5

Która z poniższych technik NIE jest związana z optymalizacją wydajności strony internetowej?

A. Minifikacja kodu
B. Deep linking
C. Użycie CDN
D. Lazy loading

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Deep linking to technika, która polega na linkowaniu bezpośrednio do określonego miejsca w treści danej strony internetowej, omijając jej stronę główną czy inne interfejsy nawigacyjne. Nie wpływa jednak na optymalizację wydajności strony, ponieważ koncentruje się na poprawie nawigacji i doświadczenia użytkownika, a nie na szybkości ładowania strony czy efektywnym zarządzaniu zasobami. Przykładem zastosowania deep linking może być sytuacja, w której użytkownik klika w link do konkretnego produktu w sklepie internetowym, co pozwala mu od razu zobaczyć interesującą go ofertę bez zbędnych kroków dodatkowych. W praktyce, techniki optymalizacji wydajności, takie jak minifikacja kodu, lazy loading i użycie CDN, koncentrują się na zmniejszeniu rozmiaru plików, opóźnianiu ładowania nieistotnych zasobów oraz dystrybucji treści z najbliższych lokalizacji serwerów, co przyczynia się do szybszego dostarczania zawartości do użytkownika. Dlatego właśnie deep linking jest odpowiedzią, która nie jest związana z wydajnością strony.

Pytanie 6

Który z poniższych przypadków stanowi test niefunkcjonalny?

A. Sprawdzenie działania przycisku
B. Sprawdzenie obsługi formularza rejestracji
C. Testowanie wydajności aplikacji pod dużym obciążeniem
D. Weryfikacja poprawności logowania użytkownika

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Testowanie wydajności aplikacji pod dużym obciążeniem to przykład testu niefunkcjonalnego. Jego celem jest ocena, jak aplikacja zachowuje się przy dużej liczbie użytkowników lub operacji jednocześnie. Testy te pozwalają na identyfikację wąskich gardeł i optymalizację kodu oraz infrastruktury serwerowej. W ramach testów obciążeniowych analizowane są parametry takie jak czas odpowiedzi, zużycie zasobów (CPU, RAM) oraz stabilność aplikacji w warunkach skrajnego obciążenia. Testowanie wydajności jest kluczowe w aplikacjach webowych, e-commerce oraz systemach o dużej liczbie transakcji, gdzie każdy przestój może generować straty finansowe i negatywnie wpływać na doświadczenia użytkownika.

Pytanie 7

Przedstawiono funkcjonalnie równoważne fragmenty kodu aplikacji Angular oraz React.js.

Angular
submit(f) {
    console.log(f.value); 
}
<form #f="ngForm" (ngSubmit)="submit(f)">
    <input ngModel name="tytul" type="text" id="tytul">
    <button>Dodaj</button>
</form>
React
handleSubmit = e => {
    e.preventDefault();
    console.log('tytul: ' + e.currentTarget.tytul.value);
};
render() {
    return (
        <div>
            <form onSubmit={this.handleSubmit}>
                <input type="text" id="tytul" />
                <button>Dodaj</button>
            </form>
        </div>
    );
}
A. wyświetlanie w konsoli przeglądarki danych pobranych z pól formularza w czasie rzeczywistym, gdy użytkownik je wypełnia
B. funkcję, która zapisuje do zmiennych f lub e dane z pola <input> formularza
C. obsługę zdarzenia przesłania formularza
D. funkcję, która wypełnia dane w formularzu podczas jego inicjalizacji

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Oba fragmenty kodu, zarówno w Angularze jak i React.js, pokazują obsługę zdarzenia zatwierdzenia formularza. W Angularze zdarzenie submit jest obsługiwane poprzez przypisanie funkcji submit do atrybutu ngSubmit. Ta funkcja otrzymuje jako argument obiekt formularza, a następnie wypisuje jego wartość w konsoli za pomocą f.value. Jest to zgodne z dobrymi praktykami Angulara, gdzie korzysta się z dwukierunkowego wiązania danych i obiektu formularza do zarządzania danymi wejściowymi. W przypadku React.js funkcja handleSubmit jest przypisywana do zdarzenia onSubmit formularza. W tej funkcji nie tylko logujemy dane wejściowe, ale również używamy e.preventDefault(), aby zapobiec domyślnemu działaniu formularza, co jest standardową praktyką w React.js, gdzie zarządzamy stanem komponentów samodzielnie. W obu przypadkach kluczową czynnością jest reakcja na zdarzenie wysłania formularza, co pozwala na dalsze przetwarzanie danych wejściowych, walidację lub wysyłanie ich do serwera.

Pytanie 8

Jak przedstawia się liczba dziesiętna 255 w systemie szesnastkowym?

A. 100
B. FE
C. FF
D. EF

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Liczba dziesiętna 255 jest reprezentowana w systemie szesnastkowym jako FF. Aby zrozumieć, dlaczego tak jest, należy przyjrzeć się procesowi konwersji z systemu dziesiętnego na szesnastkowy. System dziesiętny oparty jest na podstawie 10, co oznacza, że używa dziesięciu cyfr od 0 do 9. W systemie szesnastkowym, który ma podstawę 16, używane są cyfry od 0 do 9 oraz litery od A do F, gdzie A odpowiada 10, B - 11, C - 12, D - 13, E - 14, a F - 15. Aby przeliczyć 255 na system szesnastkowy, dzielimy tę liczbę przez 16. Pierwsza operacja daje nam 15 jako wynik całkowity oraz 15 jako resztę, co w systemie szesnastkowym jest reprezentowane literą F. Dalsze dzielenie 15 przez 16 daje wynik 0 oraz resztę 15, co również jest reprezentowane jako F. Zatem, zapisując reszty w odwrotnej kolejności, otrzymujemy FF. Taki zapis jest używany w różnych standardach, takich jak HTML i CSS, gdzie kolory są przedstawiane w formacie szesnastkowym. Przykładem może być kolor czerwony, którego zapis to #FF0000, co oznacza maksymalną wartość czerwonego składnika i zera dla niebieskiego oraz zielonego. Warto znać te konwersje, zwłaszcza w programowaniu i projektowaniu stron internetowych, gdzie często pracuje się z wartościami szesnastkowymi.

Pytanie 9

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

A. Zachować równowagę pomiędzy relacjami w sieci a tymi w rzeczywistości
B. Unikać spotkań z ludźmi w realnym świecie
C. Całkowicie wycofać się z aktywności wirtualnych
D. Zwiększać czas spędzany przy ekranie

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Utrzymywanie równowagi między relacjami online i offline to kluczowy element zapobiegania problemom społecznym wynikającym z nadmiernego korzystania z internetu. Przeplatanie kontaktów wirtualnych z interakcjami twarzą w twarz wzmacnia więzi społeczne i poprawia umiejętności komunikacyjne. Równowaga między życiem cyfrowym a rzeczywistym pozwala unikać izolacji społecznej i wspiera rozwój empatii oraz zdolności interpersonalnych. Jest to szczególnie ważne w kontekście młodzieży, która może być bardziej podatna na negatywne skutki nadmiernej ekspozycji na treści online.

Pytanie 10

Który z wymienionych algorytmów działających na tablicy jednowymiarowej ma złożoność obliczeniową \( O(n^2) \)?

A. Sortowanie bąbelkowe
B. Wyświetlenie elementów
C. Sortowanie szybkie
D. Wyszukiwanie metodą binarną

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Sortowanie bąbelkowe to taki klasyczny algorytm, który ma złożoność \( O(n^2) \). Chociaż jest dość prosty w zrozumieniu, to nie za bardzo sprawdza się w większych zbiorach danych. Działa tak, że porównuje sąsiadujące ze sobą elementy i zamienia je miejscami, jeśli są w złej kolejności. Trochę to czasochłonne, ale warto znać ten algorytm, bo pokazuje podstawy sortowania.

Pytanie 11

Zgodnie z dokumentacją dotyczącą menu Navbar z biblioteki Bootstrap 4, w celu stworzenia menu należy zdefiniować listę

A standard navigation bar is created with the .navbar class, followed by a responsive collapsing class:
.navbar-expand-xl|lg|md|sm (stacks the navbar vertically on extra large, large, medium or small screens).
To add links inside the navbar, use a <ul> element with class="navbar-nav". Then add <li> elements with a
.nav-item class followed by a <a> element with a .nav-link class...
Use any of the .bg-color classes to change the background color of the navbar (.bg-primary, .bg-success,
.bg-info, .bg-warning, .bg-danger, .bg-secondary, .bg-dark and .bg-light)
Tip: Add a white text color to all links in the navbar with the .navbar-dark class, or use the .navbar-light
class to add a black text color.
Źródło: https://www.w3schools.com/bootstrap4
A. < ul class="navbar-nav" > ... < /ul>
B. < ul class="a, .nav-item" > ... < /ul>
C. < ol class="a, .nav-item" > ... < /ol>
D. < ol class="navbar-nav" > ... < /ol>

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wybrałeś dokładnie taki kod, jaki zaleca oficjalna dokumentacja Bootstrapa 4. Użycie <ul class="navbar-nav"> … </ul> jest podstawą do tworzenia nawigacji w tym frameworku. Cała magia polega na tym, że Bootstrap styluje właśnie elementy listy nieuporządkowanej (ul) z klasą "navbar-nav". To pozwala prawidłowo wyświetlić menu poziomo, z zachowaniem responsywności i spójności z resztą interfejsu. Wewnątrz każdej listy dodaje się <li class="nav-item">, a w nich <a class="nav-link"> z linkami – wtedy całość zachowuje się zgodnie z założeniami Bootstrapa. W praktyce widać to na prawie każdej stronie korzystającej z tego frameworka – niezależnie czy robisz prostą wizytówkę, czy rozbudowaną aplikację webową. Takie podejście zapewnia nie tylko poprawne style, ale też dobre wsparcie dla dostępności (a11y), bo listy są dla czytników ekranu czytelniejsze niż np. <div>. Moim zdaniem, trzymanie się tej struktury jest kluczowe, jeśli chcesz, żeby twoje menu działało dobrze na różnych przeglądarkach i urządzeniach. Z moich doświadczeń wynika, że próby modyfikowania tej struktury kończą się często problemami ze stylami, a nawet łamaniem responsywności. Lepiej nie kombinować i stosować to, co już sprawdzone – oszczędza to mnóstwo nerwów przy późniejszym rozwijaniu projektu.

Pytanie 12

Które z poniższych stwierdzeń jest prawdziwe w kontekście dziedziczenia w języku Java?

A. Klasa pochodna dziedziczy po jednej klasie bazowej.
B. Klasa pochodna może dziedziczyć po wielu klasach bazowych.
C. Dziedziczenie jest niezalecane w języku Java.
D. Java nie wspiera dziedziczenia.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Dziedziczenie jest jednym z kluczowych mechanizmów programowania obiektowego, a Java wspiera dziedziczenie jednokrotne. Oznacza to, że klasa pochodna może dziedziczyć tylko po jednej klasie bazowej. Jest to zgodne z modelem dziedziczenia stosowanym w wielu językach obiektowych. Dzięki temu mechanizmowi możemy ponownie wykorzystywać kod, co jest zgodne z zasadą DRY (Don't Repeat Yourself). Dziedziczenie pozwala na tworzenie hierarchii klas, gdzie klasa pochodna dziedziczy właściwości i metody klasy bazowej, co ułatwia rozszerzanie funkcjonalności bez konieczności ponownego pisania kodu. Przykład zastosowania to tworzenie klasy 'Samochód', która dziedziczy po klasie 'Pojazd', co pozwala na automatyczne odziedziczenie wszystkich cech pojazdu, takich jak metoda 'uruchom', a jednocześnie dodanie specyficznych funkcji dla samochodu, jak 'otwórz bagażnik'. Dziedziczenie ułatwia zarządzanie złożonymi systemami, umożliwiając organizację kodu w sposób bardziej zrozumiały i zarządzalny.

Pytanie 13

Jakie jest zastosowanie języka XAML przy tworzeniu aplikacji desktopowych?

A. Do optymalizacji działania aplikacji
B. Do zarządzania bazami danych
C. Do projektowania graficznego interfejsu użytkownika
D. Do obsługi zdarzeń klawiatury

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
XAML (Extensible Application Markup Language) to język znaczników wykorzystywany w technologii WPF (Windows Presentation Foundation) oraz UWP (Universal Windows Platform) do projektowania graficznego interfejsu użytkownika (GUI). XAML pozwala na definiowanie układów, przycisków, etykiet oraz innych elementów interaktywnych w aplikacjach desktopowych. Dzięki XAML, projektowanie interfejsu jest intuicyjne, a kod interfejsu jest oddzielony od logiki aplikacji, co sprzyja przejrzystości projektu. XAML wspiera animacje, style i szablony, co umożliwia budowę nowoczesnych, dynamicznych aplikacji. Jego elastyczność i możliwość współpracy z C# sprawiają, że XAML jest niezastąpiony w środowisku Windows.

Pytanie 14

Co to jest klasa abstrakcyjna?

A. Klasa, która może zawierać zarówno metody zdefiniowane, jak i niezdefiniowane (czysto wirtualne)
B. Klasa, która może być dziedziczona, ale nie można jej instancjonować
C. Klasa, która nie może posiadać żadnych metod
D. Klasa, która zawsze dziedziczy z klasy bazowej

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź „Klasa, która może być dziedziczona, ale nie można jej instancjonować” jest poprawna, ponieważ najtrafniej oddaje istotę klasy abstrakcyjnej w programowaniu obiektowym. Klasa abstrakcyjna służy jako wzorzec lub szablon dla klas pochodnych, określając wspólne cechy i zachowania, które powinny zostać zaimplementowane w klasach dziedziczących. Nie tworzy się z niej bezpośrednio obiektów, ponieważ sama w sobie nie reprezentuje kompletnego bytu, lecz raczej koncepcję lub ogólny typ. Dzięki temu mechanizmowi programista może narzucić strukturę kodu, zwiększyć jego czytelność oraz ułatwić dalsze rozszerzanie aplikacji. Takie podejście sprzyja stosowaniu zasad programowania obiektowego, takich jak dziedziczenie i polimorfizm, a także pomaga w tworzeniu bardziej uporządkowanych i łatwiejszych w utrzymaniu projektów.

Pytanie 15

Które narzędzie najlepiej nadaje się do analizy wydajności aplikacji JavaScript?

A. Chrome DevTools Performance
B. npm
C. Webpack
D. Babel

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Chrome DevTools Performance to potężne narzędzie, które jest integralną częścią przeglądarki Google Chrome i służy do analizy wydajności aplikacji JavaScript. Dzięki niemu możemy monitorować czas ładowania, identyfikować wąskie gardła w kodzie oraz analizować, jak różne elementy strony wpływają na ogólną wydajność. Narzędzie to umożliwia nagrywanie sesji wydajności, co pozwala na szczegółowe zbadanie, jak różne operacje wpływają na czas odpowiedzi aplikacji. Przykładowo, możemy użyć DevTools do analizy, które skrypty zajmują najwięcej czasu lub które zadania blokują wątek główny, co jest kluczowe dla zapewnienia płynności interfejsu użytkownika. Dodatkowo, narzędzie to oferuje różne metryki, takie jak FPS (frames per second), co jest niezbędne do oceny płynności animacji. Warto również podkreślić, że DevTools jest zgodne z najlepszymi praktykami branżowymi, a jego umiejętne wykorzystanie może znacząco poprawić jakość aplikacji.

Pytanie 16

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

A. Gdy poszkodowany jest nieprzytomny, ale oddycha
B. Gdy poszkodowany nie oddycha
C. Gdy poszkodowany jest świadomy, lecz ma uraz kończyny
D. Gdy poszkodowany cierpi na krwotok zewnętrzny

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Pozycja bezpieczna (czyli pozycja boczna ustalona) to jedno z kluczowych narzędzi w udzielaniu pierwszej pomocy. Stosuje się ją wtedy, gdy poszkodowany jest nieprzytomny, ale oddycha samodzielnie i nie ma podejrzenia urazu kręgosłupa. Chodzi przede wszystkim o zabezpieczenie dróg oddechowych przed ewentualnym zadławieniem np. przez ślinę, krew czy wymiociny. Niby proste, ale w praktyce często ludzie mają wątpliwości, czy powinni ruszać nieprzytomną osobę. Ja sam widziałem jak ktoś bał się tego zrobić, bo nie był pewny, czy to bezpieczne. Moim zdaniem lepiej tu działać niż zwlekać – oczywiście, jeśli nie podejrzewasz złamania kręgosłupa. Ważne jest, by pozycję bezpieczną stosować dopiero po sprawdzeniu oddechu – to naprawdę podstawa i tak uczą na wszystkich szkoleniach BLS według standardów Europejskiej Rady Resuscytacji. Przykład z życia: ktoś zasłabł na przystanku, jest nieprzytomny, ale oddycha. Przekręcasz go na bok, głowa odchylona, żeby język nie zablokował gardła – i masz spokój, dużo zmniejszone ryzyko uduszenia. Warto też pamiętać, że trzeba regularnie monitorować stan poszkodowanego, bo sytuacja może się pogorszyć, wtedy przechodzisz do resuscytacji. Pozycja bezpieczna to taki złoty środek kiedy nie musisz jeszcze reanimować, ale musisz chronić życie przez zabezpieczenie oddechu.

Pytanie 17

Jakie elementy powinny być ujęte w dokumentacji programu?

A. Szczegóły dotyczące konfiguracji serwera
B. Opis funkcji, klas i zmiennych w kodzie
C. Strategia marketingowa aplikacji
D. Zestawienie błędów zidentyfikowanych w trakcie testów

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Opis funkcji, klas i zmiennych w kodzie to kluczowy element dokumentacji programu. Tego rodzaju dokumentacja pozwala na lepsze zrozumienie struktury aplikacji, jej logiki biznesowej oraz wzajemnych zależności pomiędzy poszczególnymi komponentami. Dokumentacja techniczna obejmuje szczegółowe informacje na temat implementacji, interfejsów API, schematów baz danych oraz sposobów integracji z innymi systemami. Dzięki niej programiści mogą szybciej wdrażać się w projekt, a błędy i niejasności są minimalizowane. Kompleksowa dokumentacja zawiera także przykłady użycia poszczególnych funkcji, co dodatkowo ułatwia rozwój i rozbudowę aplikacji. W dobrze prowadzonym projekcie dokumentacja kodu jest na bieżąco aktualizowana, co zwiększa jego przejrzystość i wspiera proces refaktoryzacji.

Pytanie 18

Jakie oprogramowanie służy do monitorowania błędów oraz zarządzania projektami?

A. Jasmine
B. Bugzilla
C. Jira
D. Git

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Jira to zaawansowane oprogramowanie do zarządzania projektami oraz śledzenia błędów, stworzone przez firmę Atlassian. Jest powszechnie stosowane w zespołach zajmujących się rozwijaniem oprogramowania, ale również znajduje zastosowanie w różnych dziedzinach, takich jak zarządzanie projektami, wsparcie techniczne oraz śledzenie zadań. Jira oferuje bogaty zestaw funkcji, które umożliwiają planowanie sprintów, monitorowanie postępów prac, zarządzanie backlogiem oraz raportowanie wydajności zespołu. Użytkownicy mogą tworzyć niestandardowe workflow, co pozwala dostosować procesy pracy do specyficznych potrzeb organizacji. Dzięki integracji z innymi narzędziami Atlassian, takimi jak Confluence czy Bitbucket, Jira jest elementem ekosystemu, który wspiera współpracę w zespołach. Przykładem zastosowania Jira może być zarządzanie cyklem życia produktu, gdzie zespół deweloperski wykorzystuje to narzędzie do śledzenia błędów, zarządzania wymaganiami oraz planowania wydań. Korzystanie z Jira wspiera podejście Agile, co jest zgodne z nowoczesnymi standardami zarządzania projektami.

Pytanie 19

Który z wymienionych procesów NIE jest częścią etapu kompilacji?

A. Optymalizacja kodu
B. Analiza działania programu w czasie rzeczywistym
C. Tłumaczenie kodu źródłowego na język maszynowy
D. Weryfikacja błędów składniowych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Analiza działania programu w czasie rzeczywistym nie należy do etapu kompilacji, lecz do etapu wykonywania programu. Kompilacja obejmuje tłumaczenie kodu źródłowego na język maszynowy, optymalizację kodu i weryfikację błędów składniowych. Analiza w czasie rzeczywistym to rola debuggera, który działa na uruchomionym programie i umożliwia śledzenie jego działania krok po kroku.

Pytanie 20

W wyniku realizacji zaprezentowanego kodu na ekranie pojawią się:

int tablica[10];

for (int i = 0; i < 10; i++) {
    if (i % 3 != 0)
        std::cout << tablica[i] << ", ";
}
A. wszystkie elementy tablicy, które są wielokrotnością 3
B. elementy z indeksów tablicy, które są podzielne przez 3
C. wszystkie elementy tablicy, które mają wartość nieparzystą
D. elementy tablicy o indeksach: 1, 2, 4, 5, 7, 8

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W tym zadaniu najważniejsze było zrozumienie warunku if oraz sposobu działania instrukcji for. Kod przechodzi po wszystkich elementach tablicy o 10 pozycjach, ale wyświetla tylko te, dla których indeks nie jest podzielny przez 3. Sprawdzenie tego realizuje się przez resztę z dzielenia: i % 3 != 0. Czyli dla i=0,3,6,9 warunek nie zostanie spełniony, więc te elementy zostaną pominięte. Zostaną więc wyświetlone elementy o indeksach 1, 2, 4, 5, 7, 8. To jest bardzo popularny patent w programowaniu, kiedy chcemy pominąć pewne elementy w tablicy lub kolekcji na podstawie prostego warunku logicznego. Często używa się podobnych konstrukcji przy analizie danych, np. przy wykluczaniu co któregoś rekordu z przetwarzania, czy też przy operacjach na grafach lub macierzach. Moim zdaniem warto zapamiętać taki sposób sprawdzania, bo pozwala pisać kod bardziej czytelny i łatwy do modyfikacji. Z mojego doświadczenia, gdy programuje się coś na konkursy albo optymalizuje zadania, takie triki z modulo przyspieszają proces myślowy. Dodam jeszcze, że domyślne wartości w tablicy typu int nie są zainicjalizowane, więc wynik jest zależny od środowiska, ale w tym pytaniu chodzi tylko o indeksy, nie wartości.

Pytanie 21

Jakie narzędzie może zostać wykorzystane do automatyzacji testów aplikacji internetowych?

A. Selenium
B. Postman
C. Visual Studio Code
D. Blender

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Selenium to jedno z najpopularniejszych narzędzi do automatycznego testowania aplikacji webowych. Umożliwia symulowanie interakcji użytkownika z przeglądarką, takich jak kliknięcia, wypełnianie formularzy, przewijanie stron i nawigowanie po witrynie. Dzięki Selenium możliwe jest testowanie aplikacji w różnych przeglądarkach (np. Chrome, Firefox, Safari) oraz na różnych systemach operacyjnych. Narzędzie to jest nieocenione w testach regresyjnych, funkcjonalnych i integracyjnych, ponieważ pozwala na automatyzację powtarzalnych czynności, co znacząco przyspiesza proces testowania. Selenium integruje się z wieloma językami programowania, w tym Python, Java i C#, co czyni je wszechstronnym i uniwersalnym narzędziem w ekosystemie deweloperskim.

Pytanie 22

Jak zostanie przedstawiony poniższy kod XAML?

Ilustracja do pytania
A. Rysunek 1
B. Rysunek 2
C. Rysunek 4
D. Rysunek 3

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W przedstawionym kodzie XAML widoczna jest struktura składająca się z kilku elementów UI ułożonych w pionowym StackLayout co skutkuje wyświetleniem ich w pionowej kolejności. Pierwszym elementem jest Entry z placeholderem Imię a kolejnym Entry z placeholderem Nazwisko co determinuje obecność dwóch pól tekstowych tak jak w Rysunku 4. Następnie w kodzie znajduje się poziomy StackLayout z etykietą Zgoda RODO i przełącznikiem ustawionym na wartość true co oznacza że przełącznik jest domyślnie włączony. To również odpowiada widokowi na Rysunku 4. Kolejny element to Slider z ustawionymi kolorami MinimumTrackColor i MaximumTrackColor co pozwala na zmianę koloru paska suwaka co również jest widoczne w Rysunku 4. Na końcu znajduje się Button z tekstem Zapisz i jest to jedyny przycisk w całym układzie co także zgadza się z Rysunkiem 4. Rozumienie kodu XAML i jego renderowania jest kluczowe w tworzeniu aplikacji mobilnych ponieważ pozwala na precyzyjne określenie wyglądu i funkcjonalności interfejsu użytkownika i jest zgodne z najlepszymi praktykami w projektowaniu UI.

Pytanie 23

Co należy zrobić w sytuacji silnego krwawienia z rany?

A. Założyć opatrunek uciskowy oraz unieść kończynę powyżej poziomu serca
B. Nałożyć elastyczny bandaż bez ucisku
C. Przepłukać ranę wodą utlenioną i zostawić do wyschnięcia
D. Poczekać, aż krwawienie ustanie samoistnie

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Założenie opatrunku uciskowego i uniesienie kończyny powyżej poziomu serca to najskuteczniejszy sposób na zatrzymanie silnego krwotoku z rany. Opatrunek uciskowy powoduje mechaniczne zamknięcie naczyń krwionośnych, co spowalnia lub całkowicie zatrzymuje wypływ krwi. Podniesienie kończyny dodatkowo zmniejsza ciśnienie krwi w obszarze rany, co ogranicza krwawienie. Ważne jest, aby nie zdejmować opatrunku, nawet jeśli przesiąknie krwią – należy dołożyć kolejną warstwę materiału. W sytuacjach ekstremalnych, gdy opatrunek uciskowy nie zatrzymuje krwawienia, można zastosować opaskę uciskową (tzw. stazę), ale tylko w ostateczności, gdy inne metody zawiodą. Takie działania mogą zapobiec wstrząsowi krwotocznemu i uratować życie poszkodowanego.

Pytanie 24

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

A. 1010
B. 1100
C. 1110
D. 1000

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 25

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

A. PHP
B. CSS
C. JavaScript
D. HTML

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 26

Które z wymienionych narzędzi najlepiej chroni dane na urządzeniach mobilnych?

A. Szyfrowanie danych na urządzeniu
B. Nieaktualne oprogramowanie
C. Hasło ustawione na urządzeniu
D. Zainstalowanie aplikacji rozrywkowych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Szyfrowanie danych na urządzeniu przenośnym to jedna z najskuteczniejszych metod zabezpieczania poufnych informacji. Szyfrowanie przekształca dane w formę, która jest nieczytelna dla osób nieposiadających odpowiedniego klucza deszyfrującego. Dzięki temu, nawet jeśli urządzenie zostanie zgubione lub skradzione, dane pozostają zabezpieczone przed nieautoryzowanym dostępem. Szyfrowanie to standardowa praktyka stosowana przez największe firmy technologiczne i jest zalecana we wszystkich urządzeniach przenośnych, takich jak laptopy i smartfony.

Pytanie 27

Co zostanie wyświetlone w konsoli po wykonaniu poniższego kodu?

console.log(0.1 + 0.2 === 0.3);
console.log(0.1 + 0.2);
A. false, 0.30000000000000004
B. true, 0.30000000000000004
C. false, 0.3
D. true, 0.3

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wynik wyrażenia `0.1 + 0.2` w JavaScript nie jest równy `0.3` ze względu na sposób reprezentacji liczb zmiennoprzecinkowych w pamięci komputera. W programowaniu, liczby zmiennoprzecinkowe są przechowywane zgodnie z normą IEEE 754, co prowadzi do drobnych błędów zaokrągleń. W przypadku `0.1` oraz `0.2` ich suma w rzeczywistości daje wynik `0.30000000000000004`, co jest nieco większe niż `0.3`. Z tego powodu, porównując `0.1 + 0.2` z `0.3`, otrzymujemy `false`. To zjawisko ilustruje potrzebę ostrożności przy porównywaniu wartości zmiennoprzecinkowych i zachęca do używania metod porównawczych, które uwzględniają tolerancję błędu, takich jak `Math.abs(a - b) < epsilon`, gdzie `epsilon` to bardzo mała liczba. W praktyce, zrozumienie tych zasad jest kluczowe dla zapobiegania błędom w obliczeniach finansowych czy innych zastosowaniach wymagających wysokiej precyzji.

Pytanie 28

Który z wymienionych frameworków służy do budowy aplikacji webowych w C#?

A. Angular
B. ASP.NET Core
C. React.js
D. Django

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
ASP.NET Core to nowoczesny, wydajny i skalowalny framework opracowany przez Microsoft, który jest przeznaczony do budowy aplikacji webowych w języku C#. ASP.NET Core umożliwia tworzenie dynamicznych stron internetowych, API oraz aplikacji mikroserwisowych. Jego modularność i wsparcie dla kontenerów (Docker) oraz chmury sprawiają, że jest to jeden z najczęściej wybieranych frameworków w środowiskach enterprise. ASP.NET Core obsługuje zarówno aplikacje serwerowe, jak i aplikacje klient-serwer, a dzięki technologii Razor Pages i Blazor pozwala na budowanie aplikacji, w których logika biznesowa jest ściśle zintegrowana z warstwą prezentacji. Dodatkowo ASP.NET Core oferuje wbudowane mechanizmy do zarządzania tożsamością użytkowników, autoryzacji i autentykacji, co czyni go doskonałym wyborem do tworzenia aplikacji biznesowych oraz korporacyjnych.

Pytanie 29

Jaki framework umożliwia tworzenie interaktywnych interfejsów użytkownika w języku TypeScript?

A. Angular
B. jQuery
C. ASP.NET Core
D. Django

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Angular to popularny framework oparty na TypeScript, który umożliwia tworzenie dynamicznych i rozbudowanych interfejsów użytkownika. Jest rozwijany przez Google i używany do budowy aplikacji typu Single Page Applications (SPA), które cechują się płynnością działania i interaktywnością. Angular oferuje bogaty ekosystem narzędzi wspierających programistów, takich jak Angular CLI, który pozwala na szybkie generowanie komponentów, serwisów i modułów. Wsparcie dla TypeScript oznacza, że Angular pozwala na wykorzystywanie typów, interfejsów oraz zaawansowanych narzędzi do refaktoryzacji kodu, co przekłada się na większą czytelność i bezpieczeństwo aplikacji. Dzięki modularnej architekturze Angular wspiera tworzenie aplikacji, które są łatwe w utrzymaniu i skalowaniu. Jego dwukierunkowe wiązanie danych (two-way data binding) oraz możliwość dynamicznej aktualizacji widoków czynią go jednym z liderów na rynku frameworków frontendowych.

Pytanie 30

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

int[,] array = new int[3, 3];
A. tablicę jednowymiarową
B. tablicę dwuwymiarową
C. listę
D. stos

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kod, który widzisz, tworzy tablicę dwuwymiarową w języku C#. Zapis int[,] array = new int[3, 3]; oznacza, że deklarujesz strukturę, gdzie każdy element jest dostępny przez dwa indeksy – pierwszy wskazuje wiersz, drugi kolumnę. Tablice dwuwymiarowe są bardzo popularne przy przechowywaniu macierzy, plansz w grach (na przykład szachownicy czy sudoku), a nawet obrazów, gdzie każdy piksel opisuje się przez współrzędne. Moim zdaniem, znajomość takich struktur naprawdę ułatwia tworzenie bardziej złożonych algorytmów, bo niekiedy dostępu do danych nie da się zamknąć w jednej linii, tylko trzeba się poruszać w dwóch wymiarach. Jeżeli chodzi o dobre praktyki, to warto pamiętać, że tablica dwuwymiarowa w .NET jest strukturą "prostokątną", czyli każdy wiersz ma tyle samo kolumn – coś jak klasyczna tabela w Excelu. To różni się od tzw. tablic tablic (ang. jagged arrays), które pozwalają mieć nierówną liczbę elementów w wierszach, ale to już trochę inna bajka. W twoim przykładzie stworzyłeś tablicę o rozmiarze 3x3, czyli 9 elementów, do których odwołujesz się za pomocą array[wiersz, kolumna]. Może się to wydawać proste, ale z mojego doświadczenia to właśnie takie zrozumienie podstawowych konstrukcji pozwala pisać czytelny i wydajny kod. W branży często spotyka się sytuacje, gdzie optymalizacja działania na tablicach – zwłaszcza tych dwuwymiarowych – robi różnicę, więc warto to mieć dobrze opanowane.

Pytanie 31

Jakie jest fundamentalne zagadnienie w projektowaniu aplikacji w architekturze klient-serwer?

A. Brak podziału na role klienta i serwera
B. Przeniesienie wszystkich obliczeń na stronę klienta
C. Funkcjonowanie aplikacji wyłącznie w trybie offline
D. Użycie serwera jako głównego miejsca przetwarzania danych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Użycie serwera jako centralnego miejsca przetwarzania danych jest kluczowym elementem architektury klient-serwer. Serwer pełni rolę centralnego punktu, który zarządza żądaniami klientów, przechowuje dane i zapewnia odpowiedzi na zapytania. Taki model zapewnia większe bezpieczeństwo danych, ułatwia zarządzanie zasobami i umożliwia skalowanie aplikacji w miarę wzrostu liczby użytkowników. Architektura klient-serwer jest szeroko stosowana w aplikacjach webowych, systemach bankowych oraz usługach chmurowych, gdzie konieczna jest centralizacja danych i ich ochrona.

Pytanie 32

Który z poniższych opisów najlepiej charakteryzuje Node.js?

A. System zarządzania bazami danych NoSQL
B. Framework do budowania aplikacji mobilnych przy użyciu JavaScript
C. Biblioteka do tworzenia interfejsów użytkownika w aplikacjach webowych
D. Środowisko uruchomieniowe JavaScript poza przeglądarką, używające silnika V8 z Chrome

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Node.js to środowisko uruchomieniowe JavaScript, które działa na serwerze, a nie tylko w przeglądarkach. Jest zbudowane na silniku V8, który jest również używany w przeglądarce Google Chrome. Dzięki temu, Node.js pozwala na wykonywanie kodu JavaScript na serwerze, co otwiera nowe możliwości dla programistów. Aplikacje napisane w Node.js są zazwyczaj asynchroniczne i oparte na zdarzeniach, co sprawia, że są one wydajne i responsywne. Przykłady zastosowania Node.js obejmują tworzenie serwisów webowych, API oraz aplikacji w czasie rzeczywistym, jak czaty czy gry online. Node.js zapewnia również bogaty ekosystem bibliotek i frameworków, takich jak Express.js, co pozwala na szybkie i efektywne tworzenie aplikacji. Zastosowanie standardów, takich jak RESTful API, w połączeniu z architekturą mikroserwisów, jest przykładami dobrych praktyk przy używaniu Node.js w projektach komercyjnych.

Pytanie 33

Jakie korzyści płyną z użycia pseudokodu przy tworzeniu algorytmu?

A. Łatwość w zmianie kodu maszynowego
B. Zrozumiałość dla osób nieznających się na programowaniu
C. Możliwość szybkie zrealizowania algorytmu w którymkolwiek języku
D. Generowanie dynamicznych struktur danych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Zaletą wykorzystania pseudokodu podczas projektowania algorytmu jest jego czytelność i prostota, dzięki czemu jest zrozumiały nawet dla osób, które nie są biegłe w programowaniu. Pseudokod pozwala skupić się na logice działania algorytmu bez konieczności przestrzegania ścisłej składni konkretnego języka programowania. Dzięki temu proces projektowania jest szybszy, a algorytm można łatwo przełożyć na dowolny język programowania. Pseudokod ułatwia również współpracę między programistami i analitykami, wspierając tworzenie i dokumentowanie złożonych rozwiązań.

Pytanie 34

Który z poniższych przykładów ilustruje deklarację złożonego typu w języku C++?

A. bool status;
B. int wynik = 100;
C. class Student {};
D. float ocena = 4.5;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Deklaracja `class Student {};` w języku C++ przedstawia przykład tworzenia typu złożonego w postaci klasy. Klasa to podstawowy element programowania obiektowego, który pozwala na łączenie danych (pól) i funkcji (metod) w jednej strukturze. Klasy umożliwiają modelowanie rzeczywistych obiektów i ich zachowań, co prowadzi do bardziej zorganizowanego i skalowalnego kodu. Klasy mogą być rozszerzane przez dziedziczenie, co jest kluczową zaletą programowania obiektowego.

Pytanie 35

Jaki model zarządzania projektami przewiduje, że wszystkie etapy są realizowane jeden po drugim, bez możliwości wrócenia do wcześniejszych faz?

A. Model kaskadowy (waterfall)
B. Model przyrostowy
C. Metodyki zwinne (Agile)
D. Model spiralny

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Model kaskadowy (Waterfall) zakłada, że każda faza projektu jest realizowana sekwencyjnie, bez możliwości powrotu do wcześniejszych etapów. Każda faza musi zostać zakończona przed rozpoczęciem kolejnej, co sprawia, że model ten jest przewidywalny i dobrze nadaje się do projektów o jasno określonych wymaganiach. Dzięki temu ryzyko błędów jest minimalizowane na wczesnym etapie, co zwiększa stabilność projektu. Waterfall jest często stosowany w projektach infrastrukturalnych i rządowych, gdzie istotna jest dokładność i zgodność z pierwotnym planem.

Pytanie 36

Jaką wartość zwróci poniższa funkcja dla argumentu n = 5?

function silnia(n) {
  if (n <= 1) return 1;
  return n * silnia(n - 1);
}
A. 24
B. 60
C. 5
D. 120

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja silnia(n) oblicza wartość silni z liczby n, co jest matematyczną operacją polegającą na mnożeniu wszystkich liczb całkowitych dodatnich od 1 do n. Dla argumentu n = 5, obliczamy silnię w następujący sposób: silnia(5) = 5 * silnia(4). Następnie, silnia(4) = 4 * silnia(3), a silnia(3) = 3 * silnia(2), gdzie silnia(2) = 2 * silnia(1), a silnia(1) zwraca 1, ponieważ jest to warunek bazowy. Teraz możemy podstawić wartości: silnia(2) = 2 * 1 = 2, silnia(3) = 3 * 2 = 6, silnia(4) = 4 * 6 = 24, a na końcu silnia(5) = 5 * 24 = 120. Tak więc, wartość zwrócona przez funkcję dla n = 5 to 120. W praktyce, obliczanie silni jest przydatne w różnych dziedzinach, takich jak kombinatoryka, statystyka czy analiza danych. Zrozumienie tej koncepcji jest kluczowe w programowaniu, ponieważ często wykorzystuje się rekurencję do rozwiązywania problemów, które można podzielić na mniejsze podproblemy. Korzystając z rekurencyjnych funkcji, warto pamiętać o podstawowych warunkach, które kończą wywołania rekurencyjne, aby uniknąć nieskończonych pętli.

Pytanie 37

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

A. Wyszukiwanie i usuwanie błędów w kodzie
B. Wdrażanie aplikacji w środowisku produkcyjnym
C. Tworzenie nowych funkcjonalności aplikacji
D. Przygotowywanie dokumentacji kodu

Brak odpowiedzi na to pytanie.

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

Pytanie 38

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

A. obsługa przycisku ekranu dotykowego
B. kod Java
C. obsługa wciśniętego przycisku
D. kod XML

Brak odpowiedzi na to pytanie.

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

Pytanie 39

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

A. Aplikacja typu zegar
B. Aplikacja z rozbudowanym systemem zarządzania projektami
C. Aplikacja do monitorowania użycia pamięci RAM
D. Aplikacja do analizy danych finansowych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Aplikacja typu zegar to jeden z najprostszych przykładów aplikacji mobilnej. Jej podstawowa funkcjonalność polega na wyświetlaniu aktualnego czasu oraz alarmów, a dodatkowo może zawierać funkcje takie jak minutnik czy stoper. Tego rodzaju aplikacje charakteryzują się niewielką liczbą funkcji, przejrzystym interfejsem i minimalnym zapotrzebowaniem na zasoby sprzętowe. Dzięki swojej prostocie, aplikacje typu zegar są doskonałym przykładem na to, jak przy użyciu niewielkiej liczby komponentów można stworzyć przydatne narzędzie dla użytkownika.

Pytanie 40

Jedną z zasad standardu WCAG 2.0 jest

A. używanie jednego, odpowiednio dużego rozmiaru czcionki
B. ograniczanie treści na stronie przez rezygnację z używania alternatywnych tekstów dla obrazów i filmów
C. unikanie przedstawiania informacji w formie uproszczonej
D. stosowanie różnych palet kolorystycznych, w tym o wysokim kontraście

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Stosowanie różnych palet kolorystycznych, zwłaszcza takich z wysokim kontrastem, to naprawdę kluczowa sprawa w dostępności cyfrowej. Tak mówi standard WCAG 2.0, dokładniej zasada 1 – Postrzegalność. Chodzi tu głównie o kryterium sukcesu 1.4.3 (Kontrast – minimum), które wyraźnie określa, że tekst i treść graficzna muszą być czytelne dla osób z różnymi potrzebami, np. słabszym wzrokiem albo daltonizmem. Moim zdaniem warto sobie uświadomić, jak wielka to różnica. Przykładowo, jeśli tekst na stronie jest szary na białym tle, osoby starsze lub z wadami wzroku mogą po prostu nie być w stanie nic przeczytać. W praktyce, wysokokontrastowe kombinacje, np. biały tekst na czarnym tle lub na żółtym, bardzo poprawiają dostępność strony. Widać to choćby w trybach "high contrast" w systemach Windows – często osoby pracujące długo przy komputerze z tego korzystają, bo wzrok się mniej męczy. Branżowe dobre praktyki zalecają również nie polegać wyłącznie na kolorze podczas przekazywania informacji – przykładowo, jeśli błąd w formularzu jest oznaczony tylko na czerwono, osoba z daltonizmem tego nie zauważy. To wszystko pokazuje, że kolory i kontrast to nie tylko estetyka, ale klucz do równego dostępu. Z mojego doświadczenia, gdy projektuje się strony zgodnie z WCAG, dobrze jest testować różne ustawienia kontrastu albo korzystać z narzędzi jak Colour Contrast Analyser, żeby mieć pewność, że wszyscy użytkownicy skorzystają ze strony bez problemów.