Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 17:33
  • Data zakończenia: 8 czerwca 2026 17:42

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

W języku JavaScript należy uzyskać dostęp do elementu w pierwszym akapicie podanego kodu HTML. Jak można to zrobić za pomocą funkcji

<p>pierwszy paragraf</p>
<p>drugi paragraf</p>
<p>trzeci paragraf</p>
...
A. getElement('p');
B. getElementById('p1');
C. getElementByTagName('p')[0];
D. getElementByClassName('p.1')[0];
Metoda getElementsByTagName('p')[0] jest prawidłowym sposobem odwołania się do pierwszego elementu <p> w dokumencie HTML. Funkcja getElementsByTagName zwraca kolekcję wszystkich elementów o określonej nazwie tagu. W przypadku użycia tagu 'p', funkcja zwraca tablicę wszystkich paragrafów. Aby uzyskać dostęp do pierwszego paragrafu, korzystamy z indeksu [0], co jest zgodne z konwencją numerowania od zera w językach programowania. Praktyczne zastosowanie tej metody obejmuje manipulację treścią lub stylami pierwszego paragrafu, na przykład zmiana jego tekstu za pomocą innerHTML lub dodanie klasy CSS w celu zmiany jego wyglądu. Stosowanie getElementsByTagName jest zgodne z powszechnymi standardami i dobrymi praktykami w pracy z DOM (Document Object Model) w JavaScript. Ważne jest zrozumienie tego mechanizmu, aby efektywnie operować na elementach HTML oraz tworzyć dynamiczne i interaktywne strony internetowe. Warto również pamiętać, że metoda ta zwraca dynamiczną kolekcję, co oznacza, że zmiany w DOM automatycznie wpływają na zawartość zwróconej kolekcji.

Pytanie 2

Który zestaw zawiera wyłącznie języki programowania działające po stronie serwera?

A. Java, C#, AJAX, Ruby, PHP
B. Java, C#, Python, Ruby, PHP
C. C#, Python, Ruby, PHP, JavaScript
D. Java, C#, Python, ActionScript, PHP
Po stronie serwera działają języki, których kod wykonuje się na serwerze i generuje treść wysyłaną do przeglądarki - zestaw Java, C#, Python, Ruby, PHP zawiera wyłącznie takie języki. Dlatego poprawny jest ten zestaw.

Pytanie 3

Jak w CSS ustawić, aby hiperłącze nieodwiedzone było żółte, a odwiedzone zielone?

A.
a:visited { color: yellow; } a:link { color: green; }
B.
a:hover { color: green; } a:link { color: yellow; }
C.
a:hover { color: yellow; } a:visited { color: green; }
D.
a:link { color: yellow; } a:visited { color: green; }
Wygląd odnośników zależnie od ich stanu ustawiają w CSS pseudoklasy. a:link dotyczy linku jeszcze nieodwiedzonego, a a:visited - już odwiedzonego. Aby nieodwiedzony był żółty, a odwiedzony zielony, zapisuje się a:link { color: yellow; } a:visited { color: green; }. Istnieją też :hover (po najechaniu) i :active (w trakcie kliknięcia); zaleca się definiować je w kolejności LVHA. Dlatego poprawny jest ten zapis.

Pytanie 4

Który z przedstawionych kodów XHTML sformatuje tekst według podanego wzorca?
Ala ma kota
a kot ma Alę

A. <p>Ala ma <b>kota</b><br>
a <b>kot</b> ma Alę</p>
B. <p>Ala ma <b>kota</i><br>
a <b>kot</b> ma Alę</p>
C. <p>Ala ma <b>kota<br>
a <i>kot</i> ma Alę</p>
D. <p>Ala ma <b>kota</b><br>
a <i>kot</i> ma Alę</p>
Poprawna odpowiedź to <p>Ala ma <b>kota</b><br/>a <i>kot</i> ma Alę</p>. W tym kodzie XHTML tekst 'Ala ma kota' jest odpowiednio sformatowany dzięki zastosowaniu znaku <b>, który definiuje tekst pogrubiony, oraz <i>, który oznacza tekst kursywą. Ponadto <br/> jest używane do wstawienia przerwy w linii, co jest zgodne z praktykami formatowania tekstu w HTML/XHTML. Zgodnie ze standardami W3C, XHTML jest stricte oparty na XML, co oznacza, że wszystkie elementy muszą być poprawnie zagnieżdżone i zamknięte. Użycie <i> w drugiej części tekstu jest poprawne, ponieważ wskazuje na pewną formę wyróżnienia, a jednocześnie zachowuje semantykę. Przy tworzeniu stron internetowych ważne jest, aby formatowanie tekstu było zarówno estetyczne, jak i zgodne z regułami semantycznymi, co ta odpowiedź spełnia. Przykładowo, tekst ten można umieścić w dowolnym dokumencie HTML, aby zachować poprawne formatowanie, co wpływa na czytelność.

Pytanie 5

Zaprezentowane pole input daje możliwość

<input type="checkbox" name="text1" value="text2">
A. wprowadzenia hasła
B. wybrania opcji
C. wpisania dowolnego tekstu
D. zaznaczenia opcji z listy zawierającej wartości text1 i text2
Element HTML z atrybutem type="checkbox" jest używany do tworzenia pól wyboru które pozwalają użytkownikowi zaznaczać jedną lub więcej opcji. Checkboxy są częstym elementem formularzy internetowych gdyż umożliwiają elastyczne zbieranie danych od użytkowników. Przykładowo w formularzach rejestracyjnych można używać ich do akceptacji regulaminu zapisów na newslettery czy wyboru zainteresowań. Składnia takiego elementu jest prosta: tag <input> z atrybutami name i value. Atrybut name jest niezbędny do grupowania checkboxów a value do przekazywania wartości zaznaczonej opcji do serwera podczas wysyłania formularza. Dobre praktyki zalecają dodawanie etykiet opisujących znaczenie checkboxa co poprawia dostępność dla osób korzystających z czytników ekranowych. Stosowanie checkboxów powinno być przemyślane by nie przeciążać użytkownika zbyt dużą liczbą opcji co mogłoby negatywnie wpłynąć na UX. Właściwe użycie checkboxów zgodne ze standardami HTML i UX jest kluczowe dla intuicyjnego interfejsu użytkownika.

Pytanie 6

Co powinien umożliwiać edytor działający w trybie WYSIWYG?

A. tworzenie podstawowej grafiki wektorowej
B. publikację strony przez wbudowany klient FTP
C. obróbkę plików dźwiękowych
D. uzyskanie wyglądu strony zbliżonego do jej obrazu w przeglądarce
WYSIWYG (What You See Is What You Get) oznacza, że podczas edycji widać efekt zbliżony do finalnego wyglądu strony w przeglądarce - bez konieczności pisania kodu i podglądania osobno. Dlatego edytor WYSIWYG ma dawać wygląd zbliżony do obrazu strony w przeglądarce.

Pytanie 7

Która dyrektywa w pliku php.ini decyduje o WYŚWIETLANIU komunikatów o błędach na stronie?

A.
display_errors
B.
log_errors
C.
error_log
D.
max_execution_time
Dyrektywa display_errors w php.ini określa, czy komunikaty o błędach mają pojawiać się w wyniku skryptu (na stronie). Na serwerze produkcyjnym ustawia się ją na Off (by nie ujawniać szczegółów), a podczas tworzenia na On, co ułatwia debugowanie. Dlatego za wyświetlanie błędów odpowiada display_errors.

Pytanie 8

Który format stosuje BEZSTRATNĄ kompresję dźwięku?

A. MP3
B. AAC
C. WWA
D. FLAC
FLAC (Free Lossless Audio Codec) kompresuje dźwięk BEZSTRATNIE - zmniejsza rozmiar pliku, ale zachowuje pełną jakość oryginału. Dlatego bezstratną kompresję dźwięku stosuje FLAC.

Pytanie 9

Co spowoduje zapis

h2 { background-color: green; }
?
A. zielone tło całej strony
B. zieloną czcionkę nagłówków drugiego poziomu
C. zielone tło nagłówków drugiego poziomu (<h2>)
D. zieloną czcionkę wszystkich nagłówków
Reguła h2 { background-color: green; } ustawia zielone TŁO elementom <h2>, czyli nagłówkom drugiego poziomu. Selektor h2 ogranicza działanie tylko do tych nagłówków. Dlatego daje zielone tło nagłówków <h2>.

Pytanie 10

Która właściwość grafiki wektorowej jest prawdziwa?

A. raz utworzonej nie da się edytować
B. jest nieskalowalna
C. nie można jej przekształcić w grafikę rastrową
D. jest niezależna od rozdzielczości
Grafika wektorowa opisuje obraz za pomocą obiektów geometrycznych - punktów, linii i krzywych zadanych wzorami matematycznymi - a nie siatki pikseli. Dzięki temu jest niezależna od rozdzielczości: można ją powiększać i pomniejszać bez utraty ostrości, bo kształty są przeliczane przy każdej skali. Stąd jej zastosowanie w logotypach i materiałach do druku. Można ją też w każdej chwili edytować, a w razie potrzeby zrasteryzować do pikseli. Dlatego prawdziwą cechą jest niezależność od rozdzielczości.

Pytanie 11

Jak nazywa się platforma wspierająca tworzenie oprogramowania w technologii .NET?

A. db2
B. eclipse
C. framework
D. middleware
Platforma wspierająca tworzenie oprogramowania, dostarczająca gotowy zestaw bibliotek i strukturę (jak .NET Framework), nazywa się framework. Dlatego tą platformą jest framework.

Pytanie 12

Jak nazywa się metoda udostępniania bazy danych w programie Microsoft Access, która dotyczy wszystkich obiektów bazy umieszczonych na dysku sieciowym i wykorzystywanych jednocześnie przez kilku użytkowników?

A. folderu sieciowego
B. serwera bazy danych
C. dzielonej bazy danych
D. witryny programu SharePoint
Odpowiedź "folderu sieciowego" jest prawidłowa, ponieważ w kontekście Microsoft Access, metoda udostępniania bazy danych, która obejmuje obiekty bazy umieszczone na dysku sieciowym, opiera się na wykorzystaniu folderów sieciowych. Dzięki temu wiele użytkowników może jednocześnie uzyskiwać dostęp do tych samych danych i obiektów bazy danych, co sprzyja współpracy i zwiększa efektywność pracy. Przykładem zastosowania folderu sieciowego może być sytuacja, w której zespół pracowników korzysta z jednolitej bazy danych klientów, przechowywanej w lokalizacji na serwerze. Wszyscy członkowie zespołu mogą wprowadzać, modyfikować i przeglądać dane, co umożliwia sprawną wymianę informacji i synchronizację działań. Warto również zaznaczyć, że stosowanie folderów sieciowych to jedna z dobrych praktyk w zarządzaniu danymi w organizacjach, ponieważ pozwala na centralizację zasobów oraz kontrolowanie dostępu do nich, co jest zgodne z zasadami bezpieczeństwa informacji.

Pytanie 13

W przedstawionym kodzie JavaScript, który został ponumerowany dla przejrzystości, występuje błąd uniemożliwiający wyświetlenie jakiegokolwiek komunikatu po uruchomieniu. Jak można go naprawić?

1  if(a < b)
2      document.write(a);
3      document.write("jest mniejsze");
4  else
5      document.write(b);
6      document.write("jest mniejsze");
A. dodać znak $ przed nazwami zmiennych
B. wprowadzić nawiasy klamrowe w sekcji if i else
C. umieścić zmienne a i b w cudzysłowie w liniach 2 i 5
D. zmienić znaki cudzysłowu na apostrof w liniach 3 i 6, np. 'jest mniejsze'
Odpowiedź o wstawieniu nawiasów klamrowych do sekcji if oraz else jest prawidłowa, ponieważ w JavaScript, gdy warunek if lub else obejmuje więcej niż jedną instrukcję, należy użyć nawiasów klamrowych, aby zgrupować te instrukcje. W przeciwnym razie, język traktuje jako część bloku kodu tylko pierwszą instrukcję. W omawianym kodzie, bez nawiasów klamrowych, tylko pierwsze wywołanie document.write w każdej z sekcji jest wykonywane, co skutkuje brakiem komunikatu w przypadku, gdy warunek jest spełniony. Przykładowo, poprawny kod powinien wyglądać tak: if (a < b) { document.write(a); document.write('jest mniejsze'); } else { document.write(b); document.write('jest mniejsze'); }. Nawiasy klamrowe są standardową praktyką, która poprawia czytelność kodu oraz ułatwia jego modyfikację w przyszłości, co jest zgodne z zasadami dobrego programowania.

Pytanie 14

Jak nazywa się podzbiór SQL związany z formułowaniem zapytań do bazy (polecenie SELECT)?

A. SQL DML (Data Manipulation Language)
B. SQL DDL (Data Definition Language)
C. SQL DCL (Data Control Language)
D. SQL DQL (Data Query Language)
Podzbiór SQL służący do formułowania zapytań i pobierania danych (polecenie SELECT) to DQL - Data Query Language. Wydziela się go ze względu na cel: nie zmienia danych ani struktury, tylko je odczytuje. Dlatego mowa o SQL DQL.

Pytanie 15

W języku JavaScript stworzono funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Jak powinno wyglądać prawidłowe wywołanie tej funkcji oraz uzyskanie jej wyniku?

A. liczba_max(a,b,c);
B. liczba_max(a,b,c,wynik);
C. liczba_max(a,b,c)=wynik;
D. var wynik=liczba_max(a,b,c);
Odpowiedzi takie jak "liczba_max(a,b,c);" nie są poprawne, ponieważ brak w nich przypisania wyniku funkcji do zmiennej. W języku JavaScript funkcje są wywoływane, ale ich rezultat musi być z miejsca przechowywany, jeśli mamy zamiar go wykorzystać. Prawidłowe wywołanie funkcji powinno zawsze uwzględniać kontekst, w którym wynik ma być użyty. W przypadku "liczba_max(a,b,c,wynik);" występuje nieprawidłowa liczba argumentów, ponieważ funkcja nie wymaga czwartego parametru, co prowadzi do błędów wykonania. Odpowiedź "liczba_max(a,b,c)=wynik;" również nie jest poprawna, ponieważ w JavaScript nie możemy przypisać wartości bezpośrednio do wywołania funkcji. To podejście narusza zasady składniowe języka. W przypadku kiedy spróbujemy zastosować takie zapisy, interpreter języka zgłosi błąd. Warto zauważyć, że błędne myślenie o strukturze funkcji i jej wywołaniu wynika często z nieznajomości podstaw składni oraz koncepcji programowania. Dobre praktyki w programowaniu rekomendują, aby zawsze przy wywołaniu funkcji, której wynik chcemy przechować, użyć operatora przypisania. W przeciwnym wypadku, nie będziemy mogli uzyskać dostępu do wartości, które funkcja generuje.

Pytanie 16

W języku PHP uzyskano wyniki kwerend z bazy danych przy użyciu polecenia mysql_query. Aby wydobyć z otrzymanej kwerendy pojedynczy wiersz danych, konieczne jest użycie polecenia

A. mysql_field_len
B. mysql_list_fields
C. mysql_fetch_row
D. mysql_fetch_lengths
Odpowiedź mysql_fetch_row jest poprawna, ponieważ to funkcja, która pozwala na pobranie pojedynczego wiersza danych z zasobu zwróconego przez mysql_query. Zwraca ona tablicę, która zawiera wartości poszczególnych pól w wierszu, co umożliwia ich dalsze przetwarzanie. Dzięki tej funkcji programista może łatwo iterować przez wyniki kwerendy, co jest kluczowe w przypadku przetwarzania danych z baz danych. Na przykład, po wykonaniu kwerendy SELECT, można użyć pętli while, aby pobierać kolejne wiersze danych i je wyświetlać. Dobrą praktyką jest również sprawdzenie, czy zasób kwerendy jest poprawny przed użyciem tej funkcji, co pozwoli uniknąć błędów w czasie wykonywania skryptu. Warto dodać, że w nowszych wersjach PHP zaleca się korzystanie z rozszerzenia mysqli lub PDO, które oferują bardziej zaawansowane możliwości i większe bezpieczeństwo przy pracy z bazami danych.

Pytanie 17

Który znacznik służy do budowania hierarchii (struktury) tekstu nagłówkami?

A.
<u>
B.
<h6>
C.
<head>
D.
<style>
Hierarchię tekstu buduje się nagłówkami <h1> do <h6> - od najważniejszego do najmniej ważnego. <h6> to nagłówek najniższego poziomu, ale wciąż element tej struktury. Dlatego do hierarchii nagłówków należy <h6>.

Pytanie 18

Po uszkodzeniu serwera bazy danych, aby jak najszybciej przywrócić pełną bazę, należy użyć:

A. najnowszej wersji instalacyjnej serwera
B. kompletnej listy użytkowników serwera
C. aktualnej kopii zapasowej
D. opisów struktur danych w tabelach
Po uszkodzeniu serwera najszybciej odtworzysz PEŁNĄ bazę z aktualnej KOPII ZAPASOWEJ (backupu) - zawiera ona zarówno strukturę, jak i dane. Dlatego regularne kopie to podstawa bezpieczeństwa: im świeższy backup, tym mniejsza strata. Zapamiętaj: awaria danych = przywrócenie z kopii zapasowej.

Pytanie 19

Która z poniższych technologii działa po stronie klienta (front-end, w przeglądarce)?

A. CSS
B. Node.js
C. Perl
D. PHP
Technologie front-endowe działają po stronie klienta - w przeglądarce użytkownika. CSS jest właśnie taką technologią: przeglądarka pobiera arkusz stylów i sama renderuje wygląd strony (kolory, czcionki, układ). Razem z HTML i JavaScriptem tworzy „trójkę” front-endu. Choć CSS to język opisu wyglądu, a nie pełny język programowania, jego przetwarzanie odbywa się u klienta. Przeciwieństwem są technologie serwerowe, gdzie kod wykonuje się na serwerze przed wysłaniem strony. Dlatego po stronie klienta działa CSS.

Pytanie 20

W systemie baz danych sklepu komputerowego znajduje się tabela o nazwie komputery. Aby stworzyć raport, który wyświetla dane z tabeli dla komputerów z co najmniej 8 GB pamięci oraz procesorem Intel, można użyć kwerendy

A. SELECT * FROM komputery WHERE procesor = "Intel" AND pamiec >= 8
B. SELECT * FROM komputery WHERE procesor = "Intel" AND pamiec < 8
C. SELECT * FROM komputery WHERE procesor = "Intel" OR pamiec < 8
D. SELECT * FROM komputery WHERE procesor = "Intel" OR pamiec >= 8
Odpowiedź "SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec >= 8;" jest poprawna, ponieważ wykorzystuje operator AND do jednoczesnego spełnienia dwóch warunków: procesor musi być równy 'Intel', a pamięć musi wynosić co najmniej 8 GB. Taki zapis jest zgodny z najlepszymi praktykami w programowaniu zapytań SQL, którymi są m.in. precyzyjność oraz jednoznaczność. Dzięki użyciu operatora AND, zapytanie filtruje wyniki w sposób, który jest zgodny z wymaganiami użytkownika. W praktyce, takie kwerendy są niezwykle ważne dla analizy danych w bazach danych, ponieważ umożliwiają wyodrębnienie specyficznych informacji, które są krytyczne dla podejmowania decyzji biznesowych. Na przykład, w kontekście sklepu komputerowego, analiza komputerów z określonymi parametrami technicznymi może pomóc w lepszym dostosowaniu oferty do potrzeb klientów. Ponadto, rozumienie składni SQL oraz umiejętność formułowania efektywnych zapytań to kluczowa umiejętność dla specjalistów w dziedzinie zarządzania danymi.

Pytanie 21

Jakie polecenie należy zastosować, aby w trakcie tworzenia tabeli dodać klucz obcy obejmujący wiele kolumn?

A. CONSTRAINT(nazwisko,imie) FOREIGN REFERENCES KEY osoby (nazwisko, imie)
B. CONSTRAINT(nazwisko,imie) FOREIGN KEY REFERENCES osoby (nazwisko, imie)
C. CONSTRAINT fk_osoba_uczen FOREIGN KEY (nazwisko, imie) REFERENCES osoby (nazwisko,imie)
D. CONSTRAINT fk_osoba_uczen FOREIGN KEY ON (nazwisko, imie) REFERENCES osoby (nazwisko,imie)
Odpowiedź 'CONSTRAINT fk_osoba_uczen FOREIGN KEY (nazwisko, imie) REFERENCES osoby (nazwisko,imie)' jest poprawna, ponieważ poprawnie definiuje klucz obcy na wielu kolumnach. Klucz obcy jest używany do ustanawiania relacji między tabelami, co jest kluczowe w modelowaniu danych w relacyjnych bazach danych. W tym przypadku, 'fk_osoba_uczen' to nazwa ograniczenia, która pozwala na łatwe identyfikowanie klucza obcego w przyszłości. Wskazanie wielu kolumn w nawiasach po słowie kluczowym 'FOREIGN KEY' jasno określa, które kolumny tworzą klucz obcy w tabeli, podczas gdy 'REFERENCES osoby (nazwisko, imie)' precyzuje, że te kolumny odnoszą się do kolumn w tabeli 'osoby'. Tego rodzaju konstrukcja jest zgodna ze standardami SQL i dobrymi praktykami, ponieważ umożliwia zachowanie integralności danych oraz zapewnia spójność między związaną tabelą a tabelą główną. Przykładowo, gdy mamy rekordy ucznia i chcemy, aby każdy uczeń był powiązany z jego rodzicem w tabeli 'osoby', dobrze zdefiniowany klucz obcy z użyciem wielu kolumn zapobiegnie wprowadzeniu nieprawidłowych danych. Zastosowanie tej techniki ułatwia także późniejsze zapytania do bazy danych oraz zapewnia lepszą organizację danych.

Pytanie 22

W dokumencie HTML zdefiniowano pewne elementy w klasie o nazwie "nomargin". W celu przeprowadzenia operacji na tych elementach za pomocą języka JavaScript, można wykorzystać funkcję

A. getElement("nomargin")
B. getElementById("nomargin")
C. getElementsByClassName("nomargin")
D. getElementsByTagName("nomargin")
Funkcja getElementsByClassName("nomargin") jest poprawnym sposobem na uzyskanie dostępu do elementów HTML przypisanych do klasy o nazwie 'nomargin'. Jest to metoda dostępna w obiekcie document, która zwraca kolekcję wszystkich elementów, które mają wskazaną klasę. W przeciwieństwie do getElementById, która zwraca pojedynczy element o podanym identyfikatorze, getElementsByClassName zwraca listę, co jest szczególnie przydatne, gdy mamy do czynienia z wieloma elementami oznaczonymi tą samą klasą. Przykładowo, jeśli mamy kilka divów z klasą 'nomargin', możemy w łatwy sposób iterować przez wszystkie z nich i stosować różne operacje, takie jak zmiana stylów czy dodawanie zdarzeń. Używanie tej metody jest zgodne z najlepszymi praktykami, ponieważ pozwala na selekcję grupy elementów, co z kolei wspiera modularność i łatwość zarządzania kodem. Warto również pamiętać, że w przypadku użycia tej metody, zmiany w DOM będą miały wpływ na wszystkie elementy, co może być przydatne w złożonych interfejsach użytkownika.

Pytanie 23

Testy aplikacji webowej, mające na celu ocenę wydajności aplikacji oraz bazy danych, a także architektury serwera i konfiguracji, noszą nazwę testów

A. kompatybilności
B. użyteczności
C. funkcjonalnych
D. bezpieczeństwa
Testy kompatybilności to naprawdę ważna część oceny, czy nasza aplikacja www dobrze działa w różnych środowiskach i na różnych systemach. Gdy myślimy o skalowalności aplikacji oraz baz danych, te testy pomagają sprawdzić, jak aplikacja znosi rosnące obciążenia i jak współpracuje z różnymi bazami danych czy serwerami. Przykładowo, możemy przetestować działanie aplikacji na różnych wersjach systemów operacyjnych lub przeglądarek. W branży sporo ludzi korzysta z takich narzędzi jak Selenium czy QUnit, które pomagają w automatyzacji tych testów. Z mojej perspektywy, te testy powinny być częścią cyklu życia oprogramowania, aby użytkownicy mogli cieszyć się spójnym i niezawodnym doświadczeniem. Zrozumienie testów kompatybilności jest kluczowe, nie tylko dla programistów, ale też dla inżynierów jakości, ponieważ ma to bezpośredni wpływ na to, jak użytkownicy odbierają nasz produkt oraz jego sukces na rynku.

Pytanie 24

Wskaż wynik wykonania skryptu napisanego w języku PHP

<?php
$tablica = array(10 => "Perl", 14 => "PHP", 20 => "Python", 22 => "Pike");
asort($tablica);
print("<pre>");
print_r($tablica);
print("</pre>");
?>
A
Array
(
    [14] => PHP
    [10] => Perl
    [22] => Pike
    [20] => Python
)
B
Array
(
    [0] => PHP
    [1] => Perl
    [2] => Pike
    [3] => Python
)
C
Array
(
    [0] => Python
    [1] => Pike
    [2] => Perl
    [3] => PHP
)
D
Array
(
    [10] => Perl
    [14] => PHP
    [20] => Python
    [22] => Pike
)
A. A.
B. B.
C. C.
D. D.
Nieźle to ogarnąłeś z tym skryptem w PHP i funkcją asort(). Fajnie, że rozumiesz, jak działa ta tablica asocjacyjna z czterema elementami. Widzisz, asort() sortuje wartości, ale nie zmienia kluczy, co jest super przydatne. Po wykonaniu tej funkcji dostajemy na przykład: `[14] => PHP`, `[10] => Perl`, `[22] => Pike`, `[20] => Python`. Zrozumienie tego, jak to działa, naprawdę pomaga, gdy tworzysz bardziej skomplikowane aplikacje, które muszą porządkować dane. Polecam też zerknąć na inne funkcje sortujące w PHP, bo każda z nich ma swój styl i może znacznie ułatwić Ci życie jako programiście.

Pytanie 25

Wskaż stwierdzenie, które nie jest prawdziwe dla następującej definicji funkcji w języku C++?

void zamien( float &x, float &y){
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja nie zwraca wartości.
B. Funkcja zwraca wartość.
C. Funkcja posiada dwa parametry.
D. Funkcja odwołuje się do parametrów przez referencję.
Dobrze zrobione! Wybrałeś właściwą odpowiedź, która pasuje do tego, co mamy w kodzie funkcji w C++. Mówimy tu o funkcji typu 'void', co oznacza, że nie zwraca żadnej wartości. W C++ 'void' oznacza, że nie ma zwracanego typu, ale to nie znaczy, że taka funkcja nic nie robi. Ona może wykonać różne operacje, ale na koniec nie zwraca żadnego wyniku. To jest dość istotne, bo w programowaniu często z takich funkcji korzystamy, kiedy chcemy coś zmienić, a nie potrzebujemy nowej wartości. Fajnie, że zauważyłeś, że ta funkcja ma dwa parametry typu float, które są przekazywane przez referencję. Dzięki temu możemy zmieniać wartości tych zmiennych w funkcji, co jest przydatne w wielu sytuacjach.

Pytanie 26

W języku PHP zapisano fragment kodu. Plik cookie stworzony tym poleceniem

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. będzie przechowywany na serwerze przez jedną godzinę.
B. będzie przechowywany na serwerze przez jeden dzień.
C. zostanie usunięty po jednej godzinie od jego utworzenia.
D. zostanie usunięty po jednym dniu od jego utworzenia.
Widzę, że pomyślałeś, że plik cookie będzie trzymany na serwerze. To nie tak, bo wszystkie pliki cookie są przechowywane na komputerze użytkownika, a nie na serwerze. Serwer tylko korzysta z tych cookies, żeby wiedzieć, kto jest użytkownikiem i jak zarządzać sesjami. Kolejna sprawa – niektórzy myślą, że cookie wygasa po godzinie. Ale to nieprawda, bo w PHP argument wygaszenia to 3600 * 24, czyli 86400 sekund, co daje jeden dzień, a nie tylko godzinę. Te nieporozumienia mogą wynikać z braku zrozumienia funkcji setcookie() i tego, jak działają pliki cookie w webowych aplikacjach. Dobrze jest to wiedzieć, by tworzyć lepsze i bezpieczniejsze aplikacje.

Pytanie 27

Aby w języku PHP odwołać się do danych formularza przesłanych metodą POST, należy użyć tablicy:

A.
$_SERVER
B.
$_FILES
C.
$_POST
D.
$_SESSION
Dane pól formularza wysłanego metodą POST PHP udostępnia w tablicy superglobalnej $_POST. Odwołujesz się do konkretnego pola po jego atrybucie name, na przykład $_POST["login"]. Jest ona dostępna w każdym miejscu skryptu bez deklarowania. Analogicznie dane wysłane metodą GET trafiają do $_GET. Dlatego do odczytania pól formularza przesłanego przez POST używa się właśnie $_POST.

Pytanie 28

Jakie jest zadanie poniższej pętli?

int x = 0;
while (x < 10)
{
    mojeKsiazki[x] = new Ksiazka();
    x++;
}
A. Uzupełnienie tablicy mojeKsiazki danymi.
B. Wyświetlenie na ekranie informacji z tabeli Ksiazka.
C. Stworzenie dziesięciu instancji obiektów typu Ksiazka.
D. Stworzenie jednego obiektu typu mojeKsiazki.
Prawidłowa odpowiedź to utworzenie dziesięciu obiektów typu Ksiazka, co jest jasno widoczne w kodzie przedstawionym w pytaniu. Pętla while wykonuje się, dopóki zmienna x jest mniejsza niż 10, co oznacza, że iteracje będą miały miejsce od 0 do 9. W każdej iteracji tworzony jest nowy obiekt typu Ksiazka za pomocą operatora new, a następnie przypisywany do odpowiedniego indeksu w tablicy mojeKsiazki. Koncepcja dynamicznego tworzenia obiektów jest kluczowa w programowaniu obiektowym, ponieważ pozwala na elastyczne zarządzanie zasobami, co jest szczególnie przydatne w sytuacjach, gdy liczba obiektów jest nieznana z góry. Przykładowo, w aplikacjach do zarządzania bibliotekami, gdzie liczba książek może się zmieniać w zależności od użytkowników, pętle takie jak ta umożliwiają efektywne dodawanie nowych książek do systemu. Dobrą praktyką jest również zapewnienie, że tablica, do której przypisujemy obiekty, jest odpowiednio zainicjowana, aby uniknąć błędów podczas próby dostępu do jej elementów.

Pytanie 29

Która z definicji funkcji w języku C++ przyjmuje parametr typu zmiennoprzecinkowego i zwraca wartość typu całkowitego?

A. void fun1(int a)
B. int fun1(float a)
C. float fun1(int a)
D. float fun1(void a)
Odpowiedź 'int fun1(float a);' jest poprawna, ponieważ funkcja ma parametr wejściowy typu 'float', co oznacza, że przyjmuje dane rzeczywiste. Zwracany typ 'int' wskazuje, że funkcja będzie generować wynik w formacie całkowitym. W praktyce, taka funkcjonalność może być użyteczna, gdy chcemy przetworzyć dane zmiennoprzecinkowe i uzyskać wynik jako liczbę całkowitą, na przykład w obliczeniach, gdzie zaokrąglamy wartości do najbliższej liczby całkowitej. W kontekście programowania w języku C++, standardowe praktyki zalecają, aby zwracać typ, który jest odpowiedni do kontekstu użycia funkcji. Często stosuje się konwersje typów, co w tym przypadku może być zastosowane do przekształcenia wartości zmiennoprzecinkowej na całkowitą. Dobrą praktyką jest również odpowiednie dokumentowanie funkcji, aby jasno określić, jakie typy danych są oczekiwane i jakie będą wyniki ich przetworzenia. Dzięki temu, kod staje się bardziej czytelny i łatwy do utrzymania.

Pytanie 30

Podaj nazwę Systemu Zarządzania Treścią, którego logo jest widoczne na zamieszczonym rysunku?

Ilustracja do pytania
A. Drupal
B. Joomla!
C. WordPress
D. MediaWiki
Joomla! to popularny system zarządzania treścią CMS który jest szeroko stosowany do tworzenia stron internetowych aplikacji online i portali. Dzięki swojej elastyczności Joomla! jest wybierany przez wiele firm i organizacji do zarządzania treścią online. System ten charakteryzuje się modułową architekturą która umożliwia łatwe rozszerzanie jego funkcjonalności za pomocą komponentów modułów i wtyczek. Jednym z głównych atutów Joomla! jest intuicyjny interfejs użytkownika który umożliwia zarządzanie treścią bez potrzeby głębokiej wiedzy technicznej. Dodatkowo Joomla! wspiera wiele języków co czyni go idealnym wyborem dla międzynarodowych organizacji. Warto również zaznaczyć że Joomla! jest open-source co oznacza że jest rozwijany przez społeczność programistów z całego świata którzy regularnie aktualizują i ulepszają oprogramowanie. Wybranie Joomla! jako CMS pozwala na korzystanie z dużej liczby szablonów i dodatków które umożliwiają personalizację witryny zgodnie z wymaganiami klienta. Dzięki solidnej bazie użytkowników i deweloperów Joomla! oferuje wsparcie techniczne i dokumentację która ułatwia rozwiązywanie problemów. W praktyce Joomla! jest wykorzystywany przez różnorodne witryny od małych blogów po rozbudowane platformy e-commerce co potwierdza jego wszechstronność i skuteczność.

Pytanie 31

Podana linia kodu została napisana w języku?

document.getElementById("paragraf1").innerHTML = wynik;
A. C#
B. PHP
C. Python
D. JavaScript
Odpowiedź JavaScript jest prawidłowa, ponieważ linia kodu, którą przedstawiono, wykorzystuje standardową metodę DOM (Document Object Model) do dynamicznej manipulacji zawartością HTML. W kodzie 'document.getElementById("paragraf1").innerHTML = wynik;' funkcja 'getElementById' służy do odnajdywania elementu HTML o identyfikatorze 'paragraf1'. Następnie, przypisanie wartości zmiennej 'wynik' do 'innerHTML' tego elementu zmienia jego zawartość tekstową. JavaScript jest głównym językiem do tworzenia interaktywnych stron internetowych i umożliwia programistom tworzenie dynamicznych funkcjonalności. Przykład praktycznego użycia to sytuacja, gdy na stronie internetowej chcemy wyświetlić obliczone wyniki w czasie rzeczywistym, np. w aplikacjach kalkulatorów online. W kontekście standardów branżowych, używanie DOM do manipulacji elementami HTML w JavaScript jest uważane za dobrą praktykę, a jego znajomość jest niezbędna dla każdego web developera.

Pytanie 32

Zawarte polecenie SQL wykonuje

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. ustalić wartość pola Uczen na 1
B. powiększyć wartość pola Uczen o jeden
C. ustalić wartość kolumny id_klasy na 1 dla wszystkich rekordów w tabeli Uczen
D. zwiększyć o jeden wartość w kolumnie id_klasy dla wszystkich rekordów tabeli Uczen
Polecenie SQL, które analizujemy, to: `UPDATE Uczen SET id_klasy = id_klasy + 1;`. Jego celem jest zwiększenie wartości w kolumnie `id_klasy` o jeden dla wszystkich rekordów w tabeli `Uczen`. Wykorzystanie operacji `SET` w poleceniu `UPDATE` umożliwia modyfikację istniejących danych w bazie. W tym przypadku każda wartość w kolumnie `id_klasy` zostaje powiększona o jeden. To technika często stosowana przy aktualizacjach, gdzie potrzebujemy inkrementować wartości, np. w przypadku liczników, numeracji czy przesuwania pozycji. Stosowanie `UPDATE` zgodnie z dobrymi praktykami wymaga ostrożności, zwłaszcza przy operacjach masowych, aby unikać niezamierzonych zmian w danych. Ważne jest, aby przed wykonaniem takich operacji upewnić się, że kopia zapasowa danych jest dostępna, a operacja została przetestowana w środowisku testowym, aby uniknąć potencjalnych problemów w środowisku produkcyjnym.

Pytanie 33

Który z czynników ma negatywny wpływ na efektywną współpracę w zespole?

A. wzajemny szacunek
B. efektywna komunikacja
C. jasny podział ról i obowiązków
D. rywalizacja między członkami zespołu
Efektywna współpraca w zespole opiera się na zaufaniu, wzajemnym szacunku, dobrej komunikacji i jasnym podziale ról. Czynnikiem, który ją osłabia, jest rywalizacja między członkami zespołu - zamiast dążyć do wspólnego celu, ludzie zaczynają konkurować, ukrywać informacje i przypisywać sobie zasługi, co rodzi konflikty. Zdrowa współpraca stawia na wspólny wynik, a nie na pokonanie kolegów. Dlatego negatywny wpływ ma rywalizacja w zespole.

Pytanie 34

W danym środowisku programistycznym, aby uzyskać dostęp do listy błędów składniowych po nieudanej kompilacji, należy użyć kombinacji klawiszy

Ilustracja do pytania
A. Ctrl+W, E
B. Ctrl+W, O
C. Ctrl+W, T
D. Ctrl+W, N
W środowisku Visual Studio, które jest jednym z najpopularniejszych zintegrowanych środowisk programistycznych (IDE) dla języków takich jak C# czy C++, kombinacja klawiszy Ctrl+W, E pozwala na szybkie wyświetlenie listy błędów składniowych i innych problemów związanych z kodem. Lista błędów Error List jest kluczowym narzędziem w codziennej pracy programisty, ponieważ pozwala na szybkie zidentyfikowanie i naprawienie błędów bez konieczności przeszukiwania całego kodu. Dzięki temu programista może skupić się na poprawianiu najważniejszych błędów i optymalizacji kodu. Standardy i dobre praktyki w programowaniu zalecają regularne monitorowanie listy błędów w celu utrzymania wysokiej jakości kodu i minimalizacji ryzyka wystąpienia błędów w działającej aplikacji. To narzędzie jest nieocenione podczas procesu debugowania, gdyż pozwala na szybkie zlokalizowanie i zrozumienie problemów składniowych oraz logicznych wpływających na działanie aplikacji. Używanie skrótów klawiszowych do nawigacji w IDE jest również zalecane jako dobra praktyka, która zwiększa efektywność pracy.

Pytanie 35

W języku PHP tablice asocjacyjne to tablice, w których

A. indeks jest dowolnym napisem.
B. istnieją przynajmniej dwa wymiary.
C. w każdej komórce tablicy przechowywana jest inna tablica.
D. elementy tablicy są zawsze indeksowane od liczby równej 0.
Prawidłowo – w PHP tablice asocjacyjne to takie, w których indeks (klucz) może być dowolnym napisem, czyli łańcuchem znaków. Z technicznego punktu widzenia PHP w ogóle nie rozróżnia osobnego typu „mapa” czy „słownik” – wszystko jest tablicą, a to, czy używasz indeksów numerycznych czy tekstowych, zależy wyłącznie od ciebie. Przykład: $uzytkownik = ['imie' => 'Jan', 'wiek' => 25, 'miasto' => 'Kraków']; Tutaj 'imie', 'wiek' i 'miasto' to właśnie napisy pełniące rolę kluczy. Dzięki temu kod staje się czytelniejszy, bo zamiast $dane[0], $dane[1] masz jasne $dane['imie'], $dane['wiek']. W praktyce takie tablice asocjacyjne bardzo często wykorzystuje się do przechowywania rekordów z bazy danych (np. wynik fetch_assoc w MySQLi), konfiguracji aplikacji, danych z formularzy ($_POST, $_GET) czy parametrów przekazywanych do funkcji. Co ważne, kluczem może być też liczba całkowita, ale w definicji tablic asocjacyjnych zwykle podkreśla się, że nie jesteśmy ograniczeni do automatycznego indeksowania 0,1,2,..., tylko możemy sami nadawać znaczące klucze tekstowe. W dobrych praktykach programowania webowego w PHP przyjmuje się, że tam, gdzie dane mają strukturę „nazwa pola → wartość”, używamy tablic asocjacyjnych, bo to zmniejsza ryzyko pomyłek i ułatwia późniejsze utrzymanie kodu. Moim zdaniem, im szybciej człowiek przyzwyczai się do świadomego używania kluczy tekstowych, tym łatwiej mu będzie później przeskoczyć na inne języki i struktury danych, jak mapy czy słowniki.

Pytanie 36

W języku PHP funkcja trim ma za zadanie

A. wyznaczyć długość napisu.
B. porównywać dwa napisy i wypisywać część wspólną.
C. zmniejszać napis o wskazaną w parametrze liczbę znaków.
D. z obu końców napisu usuwać białe znaki lub inne znaki podane w parametrze.
Poprawnie – funkcja trim() w PHP służy do usuwania z obu końców napisu tzw. znaków niechcianych, domyślnie białych znaków, czyli spacji, tabulatorów, znaków nowej linii, powrotu karetki itp. Kluczowe jest tu słowo „z końców” – trim nie rusza środka łańcucha, modyfikuje tylko początek i koniec. Składnia jest prosta: trim(string $string, string $characters = " \n\r\t\0\x0B"). Drugi parametr jest opcjonalny i pozwala samodzielnie określić zestaw znaków, które mają być usunięte. Przykład z praktyki: bardzo często po odebraniu danych z formularza stosuje się $name = trim($_POST['name']); żeby usunąć przypadkowe spacje przed i po imieniu użytkownika. Dzięki temu porównywanie napisów, walidacja czy zapisywanie do bazy danych jest bardziej przewidywalne i zgodne z dobrymi praktykami. Moim zdaniem trim to jedna z takich małych funkcji, które powinny wejść w nawyk – szczególnie przy obsłudze inputów użytkownika, importu danych z plików CSV, parsowaniu logów czy przygotowywaniu danych do serializacji. Warto też znać powiązane funkcje: ltrim() usuwa znaki tylko z lewej strony, a rtrim() (alias chop()) tylko z prawej. Dobrą praktyką jest stosowanie trim bezpośrednio po pobraniu danych z zewnętrznych źródeł, zanim zaczniemy robić jakiekolwiek porównania, zapisy do bazy czy generowanie kluczy. Pozwala to uniknąć bardzo irytujących błędów typu „ten sam użytkownik, ale inne spacje”, które potem trudno debugować. W profesjonalnych aplikacjach webowych obróbka łańcuchów, w tym właśnie trim, jest standardowym elementem warstwy walidacji i normalizacji danych wejściowych.

Pytanie 37

Którego znacznika HTML5 użyć do GRUPOWANIA powiązanych elementów formularza?

A.
<summary>
B.
<option>
C.
<fieldset>
D.
<optgroup>
Znacznik <fieldset> grupuje powiązane elementy formularza w logiczną sekcję (zwykle z ramką), a <legend> daje jej opis. Porządkuje to formularz i poprawia dostępność. Dlatego do grupowania pól formularza służy <fieldset>.

Pytanie 38

Który typ danych SQL jest optymalny do przechowywania numeru PESEL?

A.
TINYINT
B.
FLOAT(11)
C.
CHAR(11)
D.
BLOB
PESEL to ciąg dokładnie 11 cyfr traktowany jak identyfikator (nie liczy się na nim), więc najlepszy jest typ tekstowy o STAŁEJ długości CHAR(11) - nie gubi zer wiodących i zajmuje przewidywalne miejsce. Dlatego optymalny jest CHAR(11).

Pytanie 39

Który typ danych najlepiej nadaje się do zapisania daty urodzenia ucznia?

A.
TIME
B.
BLOB
C.
DATE
D.
ENUM
Datę urodzenia - samą datę, bez godziny - najlepiej zapisać typem DATE, który przechowuje rok, miesiąc i dzień (format RRRR-MM-DD). Pozwala to porównywać daty, sortować je i liczyć wiek bezpośrednio w bazie. Gdyby potrzebny był też czas, użyłoby się DATETIME lub TIMESTAMP, ale dla daty urodzenia wystarcza DATE. Dlatego to on jest właściwym typem.

Pytanie 40

1       <script>
2       const liczba = 1;
3       let gora = 10, dol = 1;
4       let podaj = parseInt(prompt("Podaj liczbę całkowitą z zakresu <1-10>"));
5       liczba = Math.random() * ( gora - dol + 1 ) + dol;
6       liczba = parseInt(liczba);
7       if (liczba == podaj) {
8           document.write("Liczba została odgadnięta");
9       } else {
10          document.write("Niestety nie tym razem");
11      }
12      </script>
Przedstawiony fragment kodu JavaScript powinien wylosować liczbę całkowitą z zakresu <1 , 10> i porównać ją z liczbą podaną przez użytkownika w oknie dialogowym. Skrypt po uruchomieniu generuje błąd, którego przyczyną jest
A. przypisanie wartości do stałej liczba w piątej linii skryptu .
B. błędna składnia deklaracji zmiennych gora i dol w drugiej linii skryptu.
C. błędna składnia instrukcji warunkowej if ... else.
D. niepotrzebne użycie konwersji z funkcji prompt do liczby całkowitej.
Przyczyną błędu w tym skrypcie jest próba nadpisania stałej zadeklarowanej słowem kluczowym const. W drugiej linii kodu mamy `const liczba = 1;`, czyli tworzymy stałą o nazwie `liczba` i nadajemy jej wartość początkową 1. Zgodnie ze specyfikacją ECMAScript, zmienne zadeklarowane przez `const` nie mogą być później modyfikowane poprzez przypisanie. Innymi słowy: raz ustawiona wartość const jest niezmienna. Tymczasem w piątej linii skryptu występuje instrukcja `liczba = Math.random() * (gora - dol + 1) + dol;`, która dokładnie próbuje przypisać nową wartość do tej stałej. Przeglądarka reaguje na to błędem typu `TypeError` lub `Assignment to constant variable`, i skrypt się sypie zanim w ogóle dojdzie do porównania z wartością wprowadzoną przez użytkownika. W praktyce, jeśli chcemy losować liczbę, zmienna powinna być zadeklarowana przez `let` lub `var`, np. `let liczba;` w drugiej linii, a dopiero potem przypisywać wartość wylosowaną z `Math.random()`. Dobra praktyka jest taka, żeby do `const` dawać rzeczy, które naprawdę nie będą zmieniane w logice programu, np. `const GORA = 10; const DOL = 1;` albo stałe konfiguracyjne, adresy URL API itp. Natomiast zmienne, które w czasie działania skryptu mają się zmieniać (liczniki pętli, wyniki obliczeń, losowania), deklarujemy jako `let`. Z mojego doświadczenia jednym z częstszych błędów początkujących jest właśnie mechaniczne używanie `const` „bo jest nowoczesne” bez zrozumienia, że to blokuje późniejsze przypisania. Warto też zauważyć, że sama konstrukcja losowania liczby całkowitej z przedziału <1,10> jest poprawna: `Math.random()` daje liczbę z zakresu <0,1), potem skalujemy ją do odpowiedniego przedziału i na końcu obcinamy część ułamkową przez `parseInt` lub lepiej `Math.floor`. Gdyby `liczba` była zadeklarowana jako `let`, skrypt by działał zgodnie z założeniami.