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: 14 sierpnia 2026 09:49
  • Data zakończenia: 14 sierpnia 2026 10:09

Egzamin niezdany

Wynik: 1/40 punktów (2,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Jaką wartość uzyska zmienna x po wykonaniu kodu PHP zaprezentowanego w ramce?

Ilustracja do pytania
A. Ilość wierszy w tabeli produkty, gdzie pole status jest większe od zera
B. Ilość wierszy dodanych do tabeli produkty
C. Ilość wierszy w bazie danych
D. Ilość wierszy przetworzonych przez zapytanie DELETE FROM
W przedstawionym kodzie PHP funkcja mysqli_affected_rows() jest używana do uzyskania liczby wierszy zmienionych przez ostatnie zapytanie MySQL. W tym przypadku zapytanie DELETE FROM produkty WHERE status < 0 próbuje usunąć wszystkie rekordy z tabeli produkty, których pole status ma wartość mniejszą od zera. Po wykonaniu tego zapytania funkcja mysqli_affected_rows($db) zwróci liczbę wierszy, które zostały rzeczywiście usunięte. To jest szczególnie przydatne w kontekście sprawdzania wpływu operacji na bazę danych i pozwala na dynamiczne podejmowanie decyzji w aplikacjach bazodanowych. Przykładowo, jeśli po usunięciu chcemy wykonać dodatkowe operacje tylko wtedy, gdy co najmniej jeden rekord został usunięty, możemy użyć tej funkcji. Zgodnie z dobrymi praktykami, korzystanie z mysqli_affected_rows() jest standardem, gdyż pozwala również na obsługę wyjątków i błędów bazy danych. Optymalizacja operacji DELETE poprzez precyzyjne filtrowanie w WHERE, jak w naszym przykładzie, jest kluczowa dla zachowania wydajności bazy danych szczególnie w dużych systemach produkcyjnych.

Pytanie 2

W katalogu www znajdują się podkatalogi html oraz styles, w których umieszczone są pliki o rozszerzeniu html oraz pliki z rozszerzeniem css. Aby dołączyć styl.css do pliku HTML, należy zastosować

A. <link rel=" Stylesheet" type="text/css" href="www/style/styl. css" />
B. <link rel="Stylesheet" type="text/css" href="/style/styl.css" />
C. <link rel="Stylesheet" type="text/css" href="../style/styl.css" />
D. <link rel="Stylesheet" type="text/css" href="styl.css" />
Przy analizie pozostałych odpowiedzi można dostrzec pewne powszechne błędy w rozumieniu ścieżek do zasobów w dokumentach HTML. W pierwszej odpowiedzi, użycie ścieżki 'www/style/styl.css' sugeruje, że autor zakłada, że jest to pełna ścieżka dostępu, co jest mylące, ponieważ taka ścieżka nie jest względna w kontekście pliku HTML znajdującego się w folderze 'html'. Ponadto, użycie dużych liter w atrybucie 'rel' (np. 'Stylesheet') jest niepoprawne, ponieważ HTML jest językiem case-insensitive, lecz konwencjonalnie zaleca się używanie małych liter. Druga odpowiedź, wskazująca na '/style/styl.css', implikuje, że 'style' jest umiejscowione w katalogu głównym serwera, co również jest błędne w kontekście podanej struktury folderów. Takie podejście jest typowym błędem przy zrozumieniu relatywnych i bezwzględnych ścieżek URL. Ostatnia odpowiedź, 'styl.css', zakłada, że plik CSS znajduje się w tym samym folderze co plik HTML, co nie odpowiada rzeczywistości w przedstawionym układzie folderów. Wszyscy, którzy pracują nad projektami webowymi, muszą zrozumieć, jak ważne jest precyzyjne określenie lokalizacji zasobów, ponieważ błędy te mogą prowadzić do ładowania nieprawidłowych plików, co w efekcie negatywnie wpływa na wygląd i funkcjonalność strony. Wiedza na temat struktury folderów oraz umiejętność nawigacji po nich jest kluczowym elementem w pracy programisty.

Pytanie 3

Które zapytanie posortuje listę uczniów według roku urodzenia?

A.
SELECT imie, nazwisko, klasa FROM uczniowie GROUP BY rok_urodzenia
B.
SELECT imie, nazwisko, klasa FROM uczniowie ORDER BY rok_urodzenia
C.
SELECT imie, nazwisko, klasa FROM uczniowie WHERE rok_urodzenia = 1994
D.
SELECT imie, nazwisko, klasa FROM uczniowie ORDER BY nazwisko

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Sortowanie wyniku zapewnia klauzula <code><span class="code-keyword">ORDER</span> <span class="code-keyword">BY</span></code>, więc listę uczniów wg roku urodzenia da <code><span class="code-keyword">SELECT</span> <span class="code-variable">imie</span><span class="code-text">,</span> <span class="code-variable">nazwisko</span><span class="code-text">,</span> <span class="code-variable">klasa</span> <span class="code-keyword">FROM</span> <span class="code-variable">uczniowie</span> <span class="code-keyword">ORDER</span> <span class="code-keyword">BY</span> <span class="code-variable">rok_urodzenia</span></code> (domyślnie rosnąco; <code><span class="code-variable">DESC</span></code> odwraca kolejność). To <code><span class="code-keyword">ORDER</span> <span class="code-keyword">BY</span></code> decyduje o KOLEJNOŚCI wierszy w wyniku. Zapamiętaj: chcesz uporządkować wynik - użyj <code><span class="code-keyword">ORDER</span> <span class="code-keyword">BY</span></code> z nazwą kolumny.

Pytanie 4

Aby z tabeli Pracownicy wybrać tylko nazwiska kończące się na literę „i”, można zastosować następującą kwerendę SQL

A. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i%";
B. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i";
C. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i%";
D. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa kwerenda SQL do wyszukania nazwisk pracowników, których ostatnią literą jest 'i', to 'SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i";'. Operator LIKE w SQL jest używany do wyszukiwania wzorców w danych tekstowych. W tym przypadku symbol '%' przed literą 'i' oznacza, że przed 'i' może występować dowolna liczba znaków (w tym zero), co umożliwia znalezienie wszystkich nazwisk kończących się na tę literę. Przykładowe nazwiska, które mogą być zwrócone przez tę kwerendę to 'Kowalski', 'Nowak', czy 'Wiśniewski'. Zgodnie z standardem SQL, użycie podwójnych cudzysłowów dla wzorca jest właściwe w kontekście baz danych, jednak w wielu systemach baz danych, w tym MySQL, częściej stosuje się pojedyncze cudzysłowy. Warto także zauważyć, że technika ta jest przydatna przy pracy z bazami danych, gdyż umożliwia elastyczne wyszukiwanie informacji oraz jest szczególnie cenne w aplikacjach wymagających filtrowania danych według specyficznych kryteriów.

Pytanie 5

Które zdarzenie JavaScript zachodzi, gdy kursor myszy znajdzie się nad elementem, do którego jest przypisane?

A.
onmousedown
B.
onmouseover
C.
onmouseout
D.
onmouseup

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Zdarzenie <code><span class="code-variable">onmouseover</span></code> jest wyzwalane w chwili, gdy kursor myszy najedzie na element, do którego je przypisano - wykorzystuje się je np. do podświetlania elementów czy wyświetlania podpowiedzi. Parą do niego jest <code><span class="code-variable">onmouseout</span></code>, zachodzące przy opuszczeniu elementu. Inne zdarzenia myszy dotyczą klikania: <code><span class="code-variable">onmousedown</span></code> (naciśnięcie) i <code><span class="code-variable">onmouseup</span></code> (zwolnienie). Dlatego najechanie kursorem obsługuje <code><span class="code-variable">onmouseover</span></code>.

Pytanie 6

Jakie możliwości daje funkcja phpinfo()?

A. uruchomienie kodu w języku PHP
B. zweryfikowanie wartości zmiennych użytych w kodzie PHP
C. analizowanie kodu PHP
D. uzyskanie informacji o środowisku pracy serwera obsługującego PHP

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja phpinfo() jest niezwykle przydatnym narzędziem, które dostarcza szczegółowych informacji na temat konfiguracji środowiska PHP na serwerze. Wywołanie tej funkcji generuje stronę HTML z danymi takimi jak wersja PHP, załadowane rozszerzenia, zmienne konfiguracyjne oraz informacje o systemie operacyjnym. Przykładowo, podczas rozwiązywania problemów z aplikacjami PHP, programiści mogą skorzystać z phpinfo() w celu weryfikacji, czy odpowiednie rozszerzenia są załadowane, co może być kluczowe dla poprawnego działania aplikacji. Dodatkowo, funkcja ta umożliwia identyfikację potencjalnych problemów z konfiguracją, takich jak niewłaściwie ustawione ścieżki do skryptów czy braki w wymaganych rozszerzeniach. Zgodnie z najlepszymi praktykami, phpinfo() powinno być używane tylko w środowiskach deweloperskich, a nie produkcyjnych, aby nie ujawniać wrażliwych informacji o serwerze. Dobrą praktyką jest również usunięcie lub zabezpieczenie dostępu do stron, które wywołują tę funkcję, aby zminimalizować ryzyko ataków.

Pytanie 7

Formularz przesyła informacje do pliku skrypt.php po naciśnięciu przycisku oznaczonego jako "WYŚLIJ". Wskaż właściwą definicję formularza.

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

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W formularzu HTML do wysłania danych do określonego skryptu należy użyć atrybutu action w znaczniku form co określa adres URL do którego zostaną przesłane dane. Ponadto kluczowy jest atrybut type elementu input który powinien być ustawiony na submit aby umożliwić wysłanie danych po naciśnięciu przycisku. Skrypt 4 jest poprawny ponieważ zawiera zarówno poprawną definicję action="skrypt.php" jak i właściwe określenie typu przycisku jako submit. Taka konstrukcja jest zgodna ze standardami HTML5 i jest powszechnie stosowana w tworzeniu interaktywnych formularzy internetowych. Poprawne wysyłanie formularzy jest kluczowe w wielu aplikacjach webowych szczególnie w kontekście przesyłania danych użytkownika do serwera gdzie mogą być one przetwarzane lub przechowywane. Przy projektowaniu formularza ważne jest również uwzględnienie bezpieczeństwa danych używając metod takich jak POST zamiast GET co zapobiega wyciekom danych w adresie URL. Dobre praktyki obejmują także walidację po stronie klienta oraz serwera aby upewnić się że przesyłane informacje spełniają wymagane kryteria co minimalizuje ryzyko błędów i potencjalnych ataków."

Pytanie 8

W poniższym zapytaniu SQL, co oznacza symbol gwiazdki w jego wyniku?

SELECT * FROM mieszkancy WHERE imie = 'Anna';
A. zignorowanie warunku dotyczącego imienia
B. pokazanie pola o nazwie '*' (gwiazdka)
C. wyświetlenie wszystkich rekordów z tabeli mieszkancy
D. wyświetlenie wszystkich kolumn z tabeli mieszkancy

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Znak gwiazdki (*) w zapytaniu SQL służy do wskazania, że chcemy otrzymać wszystkie kolumny z wybranej tabeli. W kontekście podanego zapytania SQL SELECT * FROM mieszkancy WHERE imie = 'Anna'; gwiazdka odnosi się do wszystkich kolumn tabeli o nazwie mieszkancy. Oznacza to, że wynik zapytania będzie zawierał wszystkie dostępne kolumny dla rekordów spełniających warunek WHERE czyli takich, gdzie wartość w kolumnie imie jest równa 'Anna'. Stosowanie znaku gwiazdki jest powszechne w przypadkach, gdy potrzebujemy pełnych danych z tabeli bez konieczności wymieniania nazw wszystkich kolumn. Jednak w praktyce dobre praktyki zalecają użycie gwiazdki ostrożnie, zwłaszcza w dużych bazach danych, aby uniknąć niepotrzebnego obciążenia systemu oraz zwrócić uwagę na bezpieczeństwo i wydajność. W aplikacjach produkcyjnych często korzysta się z precyzyjnego określania potrzebnych kolumn co pozwala na optymalizację procesu pobierania danych.

Pytanie 9

W każdej iteracji wartość bieżącego elementu tablicy jest przypisywana do zmiennej, a wskaźnik przesuwa się o jeden - aż do ostatniego elementu. Opis ten pasuje do instrukcji:

A.
switch
B.
if
C.
foreach
D.
next

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Opisane zachowanie - „weź bieżący element, przypisz do zmiennej, przejdź do następnego, aż do końca” - to dokładnie pętla <code><span class="code-keyword">foreach</span></code>. Iteruje ona po wszystkich elementach tablicy (lub kolekcji), w każdym obrocie udostępniając wartość (a opcjonalnie i klucz), np. <code><span class="code-keyword">foreach</span> <span class="code-text">(</span><span class="code-text">$</span><span class="code-variable">tab</span> <span class="code-variable">as</span> <span class="code-text">$</span><span class="code-variable">element</span><span class="code-text">)</span> <span class="code-text">{</span> <span class="code-keyword">echo</span> <span class="code-text">$</span><span class="code-variable">element</span><span class="code-text">;</span> <span class="code-text">}</span></code>. Programista nie musi sam pilnować indeksu ani warunku końca - pętla robi to automatycznie, co czyni ją wygodniejszą od klasycznego <code><span class="code-keyword">for</span></code> przy przeglądaniu tablic. Dlatego opis pasuje do instrukcji <code><span class="code-keyword">foreach</span></code>.

Pytanie 10

Co robi funkcja przedstawiona w kodzie JavaScript?

function tekst() {
var h = location.hostname;
document.getElementById("info").innerHTML = h;
}
A. wyświetlić w elemencie o id = "info" adres hosta wskazany przez pierwszy odnośnik
B. pokazać na przycisku lokalizację hosta, a po jego naciśnięciu umożliwić przejście do określonej lokalizacji
C. umożliwić przejście do wskazanej lokalizacji hosta
D. wyświetlić w elemencie o id = "info" nazwę hosta, z którego pochodzi wyświetlona strona

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź wskazuje, że kod JavaScript wywołuje metodę location.hostname, która zwraca nazwę hosta aktualnie odwiedzanej strony. Hostname jest częścią obiektu Location, który reprezentuje bieżący URL dokumentu. Kod przypisuje wynik tej metody do zmiennej h, a następnie ustawia innerHTML elementu o id info na wartość tej zmiennej. Dzięki takim operacjom, kod efektywnie wyświetla nazwę hosta w elemencie o konkretnym identyfikatorze na stronie HTML. Jest to częsta technika używana w aplikacjach webowych, gdzie istotne jest dynamiczne wyświetlanie informacji o aktualnym połączeniu. Znajomość obiektu Location oraz jego właściwości, takich jak hostname, to podstawowa umiejętność w pracy z językiem JavaScript, szczególnie w kontekście manipulacji DOM. Takie podejście jest zgodne z dobrymi praktykami, gdyż unika bezpośredniego wpisywania danych w kodzie, co zwiększa elastyczność i ułatwia utrzymanie aplikacji.

Pytanie 11

Wskaż pętlę w języku JavaScript, która wypisze sześć kolejnych liczb parzystych.

A. for(i=2;i<12;i+=2) {document.write(i);}
B. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
C. for(i=2;i<=12;i+=2) {document.write(i);}
D. for(i=2;i<12;i++) {i++; document.write(i);}

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź to pętla for(i=2;i<=12;i+=2) {document.write(i);}, ponieważ jest ona skonstruowana w sposób, który pozwala na wyświetlenie sześciu kolejnych liczb parzystych, zaczynając od 2 do 12 włącznie. Pętla for składa się z trzech głównych części: inicjalizacji (i=2), warunku (i<=12) oraz inkrementacji (i+=2). Inicjalizacja ustawia zmienną i na 2, co jest pierwszą liczbą parzystą. Warunek i<=12 zapewnia, że pętla będzie kontynuowana do momentu, gdy i osiągnie wartość większą niż 12, co oznacza, że ostatnią liczbą, która zostanie wyświetlona, będzie 12. Inkrementacja i+=2 powoduje, że przy każdej iteracji wartość i zwiększa się o 2, co pozwala na przechodzenie pomiędzy kolejnymi liczbami parzystymi (2, 4, 6, 8, 10, 12). Taki sposób konstrukcji pętli jest zgodny z zasadami programowania w JavaScript oraz pozwala na efektywne i kontrolowane wyświetlanie danych na stronie. Istotne jest również, że wykorzystanie metody document.write() jest jedną z prostszych form wyświetlania danych w JavaScript, aczkolwiek w praktyce jest zalecane korzystanie z bardziej nowoczesnych metod, takich jak manipulacja DOM, aby uniknąć nadpisywania całej zawartości strony.

Pytanie 12

Co przechowuje w PHP predefiniowana zmienna $_SESSION?

A. zmienne przesłane przez ciasteczka
B. zmienne zarejestrowane w bieżącej sesji
C. zmienne przesłane z formularza
D. listę wszystkich sesji na serwerze

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Superglobalna <code><span class="code-text">$</span><span class="code-variable">_SESSION</span></code> przechowuje zmienne zarejestrowane w BIEŻĄCEJ sesji użytkownika - dane utrzymywane między kolejnymi stronami, np. login zalogowanej osoby czy zawartość koszyka. Dlatego trzyma zmienne bieżącej sesji.

Pytanie 13

Która funkcja PHP służy do załadowania (dołączenia) pliku z serwera?

A.
mysqli_connect()
B.
parse_str()
C.
include()
D.
echo()

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja <code><span class="code-keyword">include</span><span class="code-text">(</span><span class="code-text">)</span></code> dołącza (ładuje) zawartość innego pliku do bieżącego skryptu i wykonuje zawarty w nim kod PHP. Dlatego do dołączania pliku służy <code><span class="code-keyword">include</span><span class="code-text">(</span><span class="code-text">)</span></code>.

Pytanie 14

Tabela filmy zawiera klucz główny id oraz klucz obcy rezyserID, natomiast tabela rezyserzy ma klucz główny id. Obydwie tabele są połączone relacją jeden do wielu, gdzie strona rezyserzy odnosi się do strony filmy. Jak należy zapisać kwerendę SELECT, aby połączyć tabele filmy i rezyserzy?

A. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmyID ...
B. ... filmy JOIN rezyserzy ON filmy.rezyserID = rezyserzy.id ...
C. ... filmy JOIN rezyserzy ON filmy.rezyserID = rezyserzy.filmyID ...
D. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź, która wskazuje na połączenie tabeli filmy z tabelą rezyserzy za pomocą klauzuli JOIN, z warunkiem ON filmy.rezyserID = rezyserzy.id, jest prawidłowa, ponieważ bezpośrednio odzwierciedla relację pomiędzy tymi dwiema tabelami. Klucz obcy rezyserID w tabeli filmy wskazuje na klucz główny id w tabeli rezyserzy. W związku z tym, aby prawidłowo połączyć te tabele w kwerendzie SELECT, musimy użyć tego klucza obcego w warunku połączenia. Przykładowo, w realnych zastosowaniach chcesz uzyskać informacje o filmach oraz ich reżyserach; więc pisząc zapytanie, możesz z łatwością uzyskać dane, takie jak tytuł filmu i imię reżysera, co jest kluczowe w systemach zarządzania bazą danych. Dobre praktyki wskazują, że zawsze należy używać poprawnych kluczy do łączenia tabel, aby uzyskać wiarygodne i dokładne wyniki, co jest fundamentalne w projektowaniu baz danych i tworzeniu zapytań SQL.

Pytanie 15

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:active { background-color: Pink; }
B. tr { background-color: Pink; }
C. tr:hover { background-color: Pink; }
D. td, th { background-color: Pink; }

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 16

Parametr face elementu <font> jest używany do wskazania

A. koloru czcionki
B. nazwa czcionki
C. rozmiaru czcionki
D. efektów czcionki

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Parametr face znacznika <font> w HTML definiuje konkretną nazwę czcionki, która ma być używana do wyświetlania tekstu. Umożliwia to projektantom stron internetowych precyzyjne określenie, jak tekst będzie wyglądał, co jest istotne dla estetyki oraz czytelności strony. W praktyce, zamiast stosować ogólne czcionki systemowe, projektanci mogą wskazać konkretne nazwy czcionek, jak 'Arial', 'Verdana' czy 'Times New Roman', aby osiągnąć zamierzony efekt wizualny. Warto jednak pamiętać, że stosowanie znacznika <font> oraz jego atrybutu face jest już przestarzałe, a w nowoczesnym kodowaniu lepiej jest korzystać z CSS, gdzie właściwość 'font-family' pełni tę samą funkcję, ale z większą elastycznością i lepszym wsparciem dla różnych urządzeń. Przykładowo, zamiast <font face='Arial'>Tekst</font>, w CSS można użyć: <style> p { font-family: Arial; } </style>. Z perspektywy dobrych praktyk, zaleca się używanie CSS do stylizacji tekstu, co pozwala na lepszą separację treści od prezentacji oraz łatwiejsze zarządzanie stylami w całym dokumencie.

Pytanie 17

Jakim rodzajem instrukcji jest w PHP konstrukcja foreach?

A. pętli, niezależnie od typu zmiennej
B. pętli, wyłącznie dla elementów tablicy
C. wyboru, dla elementów tablicy
D. warunkową, niezależnie od typu zmiennej

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W PHP <code><span class="code-keyword">foreach</span></code> to pętla przeznaczona WYŁĄCZNIE do iterowania po elementach tablicy (lub obiektu) - automatycznie przechodzi przez kolejne pary klucz-wartość. Dlatego <code><span class="code-keyword">foreach</span></code> to pętla działająca tylko na tablicach.

Pytanie 18

Podano tabelę ksiazki z kolumnami: tytul, autor (w formacie tekstowym), cena (w formacie liczbowym). Aby zapytanie SELECT zwracało jedynie tytuły, dla których cena jest niższa niż 50zł, należy użyć:

A. SELECT tytul FROM ksiazki WHERE cena > '50 zł'
B. SELECT tytul FROM ksiazki WHERE cena < 50
C. SELECT * FROM ksiazki WHERE cena < 50
D. SELECT ksiazki FROM tytul WHERE cena < '50 zł'

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'SELECT tytul FROM ksiazki WHERE cena < 50;' jest poprawna, ponieważ precyzyjnie formułuje zapytanie w języku SQL, które ma na celu wyodrębnienie z tabeli 'ksiazki' tylko tych tytułów, których cena jest niższa niż 50. W tym przypadku użycie operatora porównania '<' skutkuje filtracją danych według określonego kryterium. Jest to zgodne z dobrą praktyką w programowaniu baz danych, ponieważ pozwala uzyskać potrzebne informacje w sposób efektywny i zrozumiały. Przykładem praktycznego zastosowania może być stworzenie raportu dla księgarni, która chce zobaczyć, które książki są w sprzedaży w przystępnej cenie. Zwracając tylko potrzebne kolumny (tytuł), minimalizujesz ilość przesyłanych danych, co jest ważne w kontekście wydajności i szybkości działania aplikacji korzystających z bazy danych. Dodatkowo, unikanie podawania ceny w formacie tekstowym (np. '50 zł') jest zgodne z zasadami dobrego projektowania baz danych, które zalecają stosowanie odpowiednich typów danych, co w tym przypadku oznacza liczbę bez jednostki walutowej.

Pytanie 19

Tabela odlotów zawiera dane przedstawione na ilustracji. Wykonanie zapytania SQL spowoduje zwrócenie informacji:

SELECT id FROM odloty WHERE samoloty_id > 2 AND kierunek LIKE '_a%';
idsamoloty_idnr_rejsukierunekczasdzienstatus_lotu
11FR1646Neapol09:20:002019-07-25wystartowal
21FR1327ALICANTE09:10:002019-07-25Opóźniony 10 min
32W63425Warszawa09:45:002019-07-25odprawa
43LX5647Londyn LT10:03:002019-07-25odprawa
53LX5673Malta10:06:002019-07-25opoznienie 20 min
63LX5622Wieden10:13:002019-07-25
74LH9821Berlin10:16:002019-07-25
84LH9888Hamburg10:19:002019-07-25
A. 3; 5; 8
B. 5; 8
C. 4; 5; 6; 7; 8
D. zbiór pusty

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Zapytanie SQL SELECT id FROM odloty WHERE samoloty_id > 2 AND kierunek LIKE '_a%' używa dwóch warunków w klauzuli WHERE. Pierwszy warunek samoloty_id > 2 filtruje rekordy, których pole samoloty_id jest większe niż 2. Drugi warunek kierunek LIKE '_a%' szuka w kolumnie kierunek ciągów znaków, które mają literę 'a' jako drugi znak, co jest osiągane przez użycie znaku podkreślenia '_' jako symbolu jednego dowolnego znaku. Operator LIKE pozwala na dopasowanie wzorca z użyciem symboli wieloznacznych, co jest przydatne w sytuacjach, gdy potrzebujemy znaleźć dane na podstawie częściowego dopasowania tekstu. Zastosowanie wzorca '_a%' oznacza, że szukamy tylko takich wartości, które mają co najmniej dwa znaki, a drugim znakiem musi być 'a'. W tabeli odloty, rekordy spełniające oba te warunki to rekordy 5 i 8, ponieważ ich pole samoloty_id jest odpowiednio 3 i 4 (czyli większe niż 2), a pole kierunek to odpowiednio Malta i Hamburg, które pasują do wzorca '_a%' gdzie 'M' i 'H' to odpowiednio pierwszy znak. Praktyczne zastosowanie takich zapytań SQL pozwala na efektywne przeszukiwanie baz danych pod kątem specyficznych potrzeb użytkownika, co ma kluczowe znaczenie w zarządzaniu informacjami w dużych systemach.

Pytanie 20

Prostokątne zniekształcenia obrazu, które występują przy zapisie pliku graficznego, są typowe dla formatu

Ilustracja do pytania
A. BMP bez kompresji
B. PNG z kompresją bezstratną LZ77
C. GIF z kompresją bezstratną LZW
D. JPEG z dużym stopniem kompresji stratnej

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Format JPEG jest powszechnie używany do kompresji obrazów fotograficznych z uwagi na jego zdolność do znacznego zmniejszania rozmiaru pliku przy zachowaniu akceptowalnej jakości obrazu. JPEG wykorzystuje kompresję stratną, opartą na odrzucaniu niektórych informacji wizualnych, które są mniej zauważalne dla ludzkiego oka. Przy wysokim stopniu kompresji, nadmierna utrata danych może prowadzić do wyraźnych zniekształceń obrazu, często w postaci prostokątnych artefaktów zwanych blokowaniem. Wynika to z podziału obrazu na bloki 8x8 pikseli, które są kompresowane niezależnie. W praktyce, JPEG jest szeroko stosowany w środowiskach, gdzie istotna jest oszczędność miejsca na dysku, na przykład w fotografiach internetowych czy archiwizacji zdjęć cyfrowych. Jednak dla profesjonalnej fotografii, gdzie jakość jest kluczowa, zaleca się zachowanie oryginalnych plików w formatach bezstratnych do dalszej edycji. Standard JPEG jest jednym z najważniejszych w branży graficznej i jest poparty międzynarodowymi standardami, takimi jak ISO/IEC 10918, co czyni go niezawodnym wyborem w wielu zastosowaniach komercyjnych.

Pytanie 21

Którego znacznika należy użyć, aby przejść do nowej linii tekstu, nie tworząc nowego akapitu?

A.
</br>
B.
<br>
C.
</b>
D.
<p>

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Znacznik <code><span class="code-text">&lt;</span><span class="code-keyword">br</span><span class="code-text">&gt;</span></code> wymusza złamanie wiersza - przenosi dalszy tekst do nowej linii, nie rozpoczynając przy tym nowego akapitu ani dodatkowych odstępów. Jest to element pusty (void), więc w HTML5 zapisuje się go bez ukośnika i bez znacznika zamykającego (poprawnie <code><span class="code-text">&lt;</span><span class="code-keyword">br</span><span class="code-text">&gt;</span></code>, a nie <code><span class="code-text">&lt;/</span><span class="code-keyword">br</span><span class="code-text">&gt;</span></code>). Używa się go np. w adresach czy wierszach wiersza, gdzie liczy się dokładny podział linii. Do oddzielania bloków tekstu właściwy jest jednak akapit <code><span class="code-text">&lt;</span><span class="code-keyword">p</span><span class="code-text">&gt;</span></code>. Dlatego nową linię bez akapitu daje <code><span class="code-text">&lt;</span><span class="code-keyword">br</span><span class="code-text">&gt;</span></code>.

Pytanie 22

W dziedzinie grafiki komputerowej termin kanał alfa odnosi się do

A. przezroczystości
B. barwienia
C. koloryzacji
D. pikselizacji

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kanał alfa jest kluczowym elementem w grafice komputerowej, który odpowiada za reprezentowanie przezroczystości pikseli w obrazie. W praktyce oznacza to, że każdy piksel w obrazie może mieć przypisany poziom przezroczystości, co pozwala na tworzenie efektów takich jak cieniowanie, nakładanie różnych warstw oraz efekty specjalne. Kanał alfa jest zwykle reprezentowany jako dodatkowy kanał w formacie RGBA, gdzie R, G, i B oznaczają odpowiednio kolory czerwony, zielony i niebieski, a A to kanał alfa, który definiuje stopień przezroczystości. Na przykład, w przypadku edytorów graficznych, takich jak Adobe Photoshop, użytkownicy mogą łatwo manipulować przezroczystością warstw, co jest bardzo przydatne w procesie tworzenia złożonych kompozycji. W standardach graficznych, takich jak OpenGL i DirectX, kanał alfa również odgrywa istotną rolę w renderowaniu obiektów 3D, umożliwiając realistyczne efekty wizualne. Zrozumienie działania kanału alfa jest niezbędne dla artystów cyfrowych i projektantów, aby w pełni wykorzystać możliwości, jakie oferuje nowoczesna grafika komputerowa.

Pytanie 23

Aby zdefiniować krój czcionki w stylu CSS, należy użyć właściwości:

A.
text-family
B.
font-style
C.
text-style
D.
font-family

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Krój (rodzinę) czcionki ustawia w CSS właściwość <code><span class="code-variable">font-family</span></code>. Podaje się w niej nazwę czcionki, a zwykle także listę zapasowych i ogólną rodzinę, na przykład <code><span class="code-keyword">font-family</span><span class="code-text">:</span> <span class="code-variable">Arial</span><span class="code-text">,</span> <span class="code-variable">sans-serif</span></code> - przeglądarka użyje pierwszej dostępnej. Pozwala to zachować spójny wygląd tekstu nawet, gdy konkretna czcionka nie jest zainstalowana. Dlatego do zdefiniowania kroju czcionki służy <code><span class="code-variable">font-family</span></code>.

Pytanie 24

Której pseudoklasy CSS użyć, aby element zmieniał kolor po najechaniu kursorem?

A.
:coursor
B.
:hover
C.
:active
D.
:visited

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Pseudoklasa <code><span class="code-text">:</span><span class="code-variable">hover</span></code> zmienia wygląd elementu, gdy najedzie na niego kursor, np. <code><span class="code-keyword">a</span><span class="code-text">:</span><span class="code-variable">hover</span> <span class="code-text">{</span> <span class="code-keyword">color</span><span class="code-text">:</span> <span class="code-variable">red</span><span class="code-text">;</span> <span class="code-text">}</span></code> podświetli link pod myszą. To podstawowy sposób na interaktywne reakcje bez JavaScriptu. Zapamiętaj: „hover” = unoszenie kursora nad elementem.

Pytanie 25

Co oznacza jednostka ppi (pixels per inch)?

A. określa rozdzielczość wydruków drukarek i ploterów
B. określa rozdzielczość grafiki wektorowej
C. to parametr cyfrowych urządzeń pomiarowych
D. określa rozdzielczość obrazów rastrowych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Jednostka ppi (pixels per inch) określa rozdzielczość obrazów RASTROWYCH - liczbę pikseli na cal, czyli gęstość, z jaką obraz jest odwzorowany. Im wyższe ppi, tym więcej szczegółów na tej samej powierzchni. Zapamiętaj: ppi opisuje gęstość PIKSELI, więc dotyczy grafiki rastrowej (pikselowej).

Pytanie 26

Które tabele będą analizowane w wyniku tego polecenia?

CHECK TABLE pracownicy CHANGED;
A. Tabele, które zmieniły się od poprzedniej weryfikacji lub nie zostały poprawnie zamknięte
B. Jedynie tabele odwołujące się do innych
C. Tabele, które zostały zmodyfikowane w bieżącej sesji
D. Wyłącznie tabele, które nie zostały poprawnie zamknięte

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Polecenie CHECK TABLE z opcją CHANGED służy do weryfikacji integralności danych w tabelach, które zmieniły się od ostatniej kontroli lub nie zostały poprawnie zamknięte. Jest to kluczowe w kontekście baz danych opartych na systemach takich jak MySQL, gdzie stabilność i poprawność danych są priorytetem. Tabele mogą ulec zmianom w wyniku różnych operacji, takich jak aktualizacje, usunięcia czy wstawienia nowych wierszy. Ponadto, nieprawidłowe zamknięcie serwera bazy danych może prowadzić do sytuacji, w której tabele nie zostaną poprawnie wyczyszczone, co wymaga ich weryfikacji. Praktyczne zastosowanie tego polecenia pozwala na szybką diagnostykę problemów oraz zapewnia stabilność działania aplikacji korzystających z danej bazy danych. Dobre praktyki branżowe zalecają regularne wykonywanie takich kontroli zwłaszcza po operacjach masowych na danych, aby zminimalizować ryzyko wystąpienia błędów logicznych i zapewnić spójność informacji. Wiedza ta jest niezbędna dla administratorów dbających o bezpieczeństwo i sprawność działania systemów bazodanowych.

Pytanie 27

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

A. float fun1(void a)
B. float fun1(int a)
C. int fun1(float a)
D. void fun1(int a)

Brak odpowiedzi na to pytanie.

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

Cookie stworzony za pomocą polecenia PHP

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. wygaśnie po dobie od momentu jego utworzenia
B. wygaśnie po jednej godzinie od momentu jego utworzenia
C. będzie przechowywany na serwerze przez jedną godzinę
D. będzie przechowywany na serwerze przez 24 godziny

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź wygaśnie po jednej dobie od jego utworzenia jest prawidłowa, ponieważ w funkcji setcookie() parametr time() + (3600 * 24) ustala czas wygaśnięcia ciasteczka na 24 godziny, licząc od momentu jego utworzenia. W praktyce oznacza to, że ciasteczko będzie dostępne dla przeglądarki przez całą dobę, co jest przydatne w wielu aplikacjach webowych. Ciasteczka są używane do przechowywania informacji o sesji użytkownika, preferencjach oraz stanach aplikacji. Przykładem zastosowania może być pamiętanie, że użytkownik jest zalogowany, co ułatwia korzystanie z serwisu. Zgodnie z najlepszymi praktykami, zaleca się ustawianie odpowiednich parametrów dla ciasteczek, takich jak HttpOnly i Secure, a także ich właściwe zarządzanie, aby nie narażać danych użytkowników na niebezpieczeństwo. Ponadto, dobrze jest regularnie przeglądać i aktualizować politykę dotycząca ciasteczek, aby spełniać wymogi przepisów o ochronie danych osobowych, takich jak RODO.

Pytanie 29

Który z poniższych kodów XHTML sformatuje tekst zgodnie z podanym przykładem?

Ala ma kota
a kot ma Alę

A. <p>Ala ma <b>kota</b> <br/> a <i>kot</i> ma Alę</p>
B. <p>Ala ma <b>kota</i><br/> a <b>kot</b> ma Alę</p>
C. <p>Ala ma <b>kota</b> <br/> a <b>kot</b> ma Alę</p>
D. <p>Ala ma <b>kota <br /> a <i>kot</i> ma Alę</p>

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź <p>Ala ma <b>kota</b> <br/> a <i>kot</i> ma Alę</p> jest poprawna, ponieważ zgodnie z zasadami XHTML, użycie znaczników <b> i <i> do formatowania tekstu jest odpowiednie; <b> stosowany jest do wyróżniania tekstu pogrubionego, a <i> do kursywy. W tej odpowiedzi zastosowano również poprawny znacznik <br/>, który jest samodzielnym znacznikiem i nie wymaga zamknięcia w parze. Zgodnie z dobrymi praktykami, kod XHTML powinien być poprawnie sformatowany, a każdy otwierający znacznik powinien mieć odpowiadający mu zamykający znacznik, chyba że jest to znacznik samodzielny, jak <br/>. Warto zaznaczyć, że XHTML wymaga również, aby wszystkie atrybuty były zapisane w formacie małych liter, co zostało spełnione w tej odpowiedzi. Przykład zastosowania tej wiedzy można znaleźć w tworzeniu stron internetowych, gdzie poprawne sformatowanie kodu HTML lub XHTML jest kluczowe dla prawidłowego wyświetlania treści w przeglądarkach.

Pytanie 30

Jakie jest zadanie funkcji przedstawionej w języku JavaScript?

 function fun1(a, b) {
    if (a % 2 != 0) a++;
    for (n = a; n <= b; n+=2)
        document.write(n);
}
A. zwrócenie wartości liczb parzystych od a do b
B. sprawdzenie, czy liczba a jest nieparzysta; w przypadku potwierdzenia, wypisanie jej
C. wypisanie liczb parzystych z zakresu od a do b
D. wypisanie wszystkich liczb z zakresu od a do b

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "wypisanie liczb parzystych z przedziału od a do b" jest prawidłowa, ponieważ funkcja fun1(a, b) w języku JavaScript ma na celu wyświetlenie wszystkich liczb parzystych w zdefiniowanym zakresie. Funkcja najpierw sprawdza, czy liczba a jest nieparzysta; jeśli tak, to zwiększa ją o 1, co zapewnia, że zaczynamy od najbliższej liczby parzystej. Następnie, za pomocą pętli for, iteruje przez liczby od a do b, zwiększając n o 2 w każdej iteracji. Dzięki temu wypisujemy tylko liczby parzyste. Przykładowo, jeśli a = 3 i b = 9, to funkcja zacznie od 4 i wypisze 4, 6, i 8. Tego typu funkcje są przydatne w różnych kontekstach programistycznych, takich jak generowanie sekwencji liczb dla algorytmów matematycznych, generowanie danych testowych czy też przy pracy z interfejsami użytkownika, gdzie występują interwały liczbowe. Dobrą praktyką jest zawsze jasno określać zakres przetwarzanych danych, co ta funkcja realizuje, zapewniając, że wyniki są zgodne z oczekiwaniami użytkownika.

Pytanie 31

W języku skryptowym JavaScript operatory: || oraz && należą do grupy operatorów

A. bitowych.
B. przypisania.
C. logicznych.
D. arytmetycznych.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Operatory || oraz && w JavaScript to klasyczne operatory logiczne. Działają na wartościach, które można zinterpretować jako prawdę lub fałsz (tzw. wartości truthy i falsy) i zwracają wynik wyrażenia logicznego. && oznacza „i” logiczne – całe wyrażenie jest prawdziwe tylko wtedy, gdy oba operandy są traktowane jako prawdziwe. || oznacza „lub” logiczne – wystarczy, że jeden z operandów jest prawdziwy, żeby całe wyrażenie było uznane za prawdę. W praktyce bardzo często wykorzystuje się je w instrukcjach warunkowych, np.: if (isLoggedIn && isAdmin) { … } albo if (isMobile || isTablet) { … }. W JavaScript te operatory mają jeszcze jedną, moim zdaniem bardzo przydatną cechę: nie zwracają po prostu true/false, tylko konkretną wartość jednego z operandów. Na przykład: const name = userName || "Gość"; – jeśli userName jest wartością „falsy” (np. pusty string, null, undefined), to do name trafi "Gość". To jest tzw. krótkie spięcie (short-circuit evaluation): przy operatorze &&, jeśli pierwszy operand jest falsy, drugi nie jest już w ogóle obliczany; przy ||, jeśli pierwszy jest truthy, drugi też nie jest sprawdzany. W dobrych praktykach front-endu wykorzystuje się to do prostego ustawiania wartości domyślnych, zabezpieczania wywołań funkcji (np. callback && callback()) oraz budowania bardziej czytelnych warunków. Warto też pamiętać o różnicy między operatorami logicznymi (&&, ||, !) a porównania (===, !==), bo to są różne grupy operatorów, chociaż często używa się ich razem w tych samych warunkach. Z mojego doświadczenia, świadome używanie tych operatorów logicznych bardzo upraszcza kod i zmniejsza liczbę if-ów rozrzuconych po skryptach.

Pytanie 32

Która deklaracja w C++ przyjmuje argument typu RZECZYWISTEGO i zwraca wynik typu CAŁKOWITEGO?

A.
void fun1(int a);
B.
float fun1(int a);
C.
int fun1(float a);
D.
float fun1(void a);

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja ma przyjmować argument RZECZYWISTY i zwracać CAŁKOWITY. Argument rzeczywisty to <code><span class="code-variable">float</span> <span class="code-variable">a</span></code>, a typ zwracany całkowity to <code><span class="code-variable">int</span></code> przed nazwą - czyli <code><span class="code-variable">int</span> <span class="code-function">fun1</span><span class="code-text">(</span><span class="code-variable">float</span> <span class="code-variable">a</span><span class="code-text">)</span></code>. Dlatego poprawna deklaracja to <code><span class="code-variable">int</span> <span class="code-function">fun1</span><span class="code-text">(</span><span class="code-variable">float</span> <span class="code-variable">a</span><span class="code-text">)</span><span class="code-text">;</span></code>.

Pytanie 33

<script>
  var imiona = ["Ala", "Ola", "Ela", ""];
  tymczasowa=imiona.length;
</script>
Przedstawiony kod JavaScript powoduje przypisanie do zmiennej tymczasowa wartości:
A. 9
B. 1
C. 4
D. 3

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W tym fragmencie kodu tworzona jest tablica `imiona` z czterema elementami: "Ala", "Ola", "Ela" oraz pusty łańcuch znaków `""`. W JavaScript właściwość `.length` tablicy zwraca liczbę elementów w tablicy, a nie długość tekstu, ani sumę długości napisów. Niezależnie od tego, że ostatni element jest pustym stringiem, on nadal jest pełnoprawnym elementem tablicy. Dlatego `imiona.length` zwraca wartość 4, która następnie jest przypisywana do zmiennej `tymczasowa`. Moim zdaniem warto zapamiętać jedną prostą zasadę: dla obiektów typu Array w JavaScript `.length` oznacza ilość elementów, a dla stringów `.length` oznacza ilość znaków w napisie. To jest częste źródło pomyłek, szczególnie na początku nauki. Gdybyśmy napisali `"Ala".length`, wtedy dostalibyśmy 3, bo napis ma trzy znaki. Ale `imiona.length` patrzy tylko na to, ile pozycji ma tablica, więc wynik to 4. W praktyce `.length` jest bardzo często używane w pętlach, np. `for (var i = 0; i < imiona.length; i++) { ... }`, żeby przejść po wszystkich elementach tablicy. Dobrą praktyką jest też świadome operowanie na długości tablicy, bo w JavaScript można ją zmienić: ustawienie `imiona.length = 2` przytnie tablicę do dwóch elementów, a ustawienie większej wartości doda puste miejsca (tzw. `empty slots`). W nowoczesnym kodzie warto też pamiętać o metodach takich jak `forEach`, `map`, `filter`, które ukrywają bezpośrednią pracę z `.length`, ale nadal działają na tej samej koncepcji liczby elementów w tablicy. Z mojego doświadczenia dokładne rozumienie, co zwraca `.length` w różnych typach danych, bardzo ułatwia debugowanie i pisanie czytelnego kodu.

Pytanie 34

Na podstawie fragmentu dokumentu HTML, określ co należy wpisać w miejsce kropek w odnośniku w menu, aby przenosił on do rozdziału 2.

Fragment menu
<a ...>Rozdział 2</a>

Fragment dalej w dokumencie
<h1 id="r2" name="sekcja2" class="rozdzial2">Rozdział 2<h1>
A. href = "#r2"
B. href = "sekcja2"
C. href = "r2"
D. href = "#sekcja2"

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Gratulacje, Twoja odpowiedź jest prawidłowa. Wybrałeś 'href="#r2"', co jest poprawne, ponieważ w HTML, atrybut 'href' w tagu 'a' służy do określenia miejsca docelowego odnośnika. W tym przypadku, miejsce docelowe to identyfikator (id) elementu na tej samej stronie. Przed identyfikatorem umieszcza się znak '#', który informuje przeglądarkę, że ma poszukać elementu z danym 'id' na tej samej stronie. W tym konkretnym przypadku, 'r2' jest identyfikatorem rozdziału 2 na stronie, dlatego 'href="#r2"' skieruje odnośnik do tego rozdziału. W praktyce, używanie identyfikatorów pozwala na tworzenie skomplikowanych stron z wieloma sekcjami, gdzie odsyłacze umożliwiają łatwe i szybkie nawigowanie. To jest zgodne ze standardami i dobrymi praktykami dla tworzenia stron internetowych.

Pytanie 35

W tabeli pracownicy zdefiniowano klucz główny jako INTEGER z atrybutami NOT NULL oraz AUTO_INCREMENT. Dodatkowo zdefiniowano kolumny imie oraz nazwisko. W przypadku wykonania poniższej kwerendy SQL wprowadzającej dane, w której pominięto pole klucza, w bazie danych MySQL wystąpi:

INSERT INTO pracownicy (imie, nazwisko) VALUES ('Anna', 'Nowak');
A. błąd związany z nieprawidłową liczbą kolumn
B. ignorowanie polecenia, tabela nie ulegnie zmianie
C. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
D. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Jak używasz polecenia INSERT w MySQL i masz klucz główny ustawiony jako AUTO_INCREMENT, to system sam zajmie się przydzieleniem nowej, unikalnej wartości dla tego klucza dla każdego nowego rekordu. Kiedy wprowadzasz dane o pracowniku, takie jak imię i nazwisko, to nie musisz martwić się o podawanie wartości klucza głównego. MySQL świetnie to rozumie i dodaje kolejny wolny numer. To jest zgodne z dobrymi praktykami w bazach danych, gdzie klucz główny musi być unikalny dla każdego rekordu, ale niekoniecznie musisz go podawać ręcznie, szczególnie gdy korzystasz z mechanizmu AUTO_INCREMENT. Weźmy na przykład tabelę zamówień – tam każdy nowy wpis automatycznie dostaje unikalny numer zamówienia, co eliminuje ryzyko błędów i ułatwia późniejsze śledzenie danych. Dzięki AUTO_INCREMENT wprowadzanie danych staje się dużo prostsze, a szansa na pomyłki przy manualnym wpisywaniu wartości klucza głównego znacznie maleje.

Pytanie 36

Jaką funkcję pełni CONCAT w języku SQL?

A. łączy (skleja) teksty w jeden ciąg
B. przycina wyświetlany tekst
C. usuwa wskazany fragment tekstu
D. zwraca podłańcuch z tekstu wejściowego

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja <code><span class="code-variable">CONCAT</span></code> łączy (skleja) kilka wartości tekstowych w jeden ciąg, np. <code><span class="code-keyword">SELECT</span> <span class="code-function">CONCAT</span><span class="code-text">(</span><span class="code-variable">imie</span><span class="code-text">,</span> <span class="code-string">' '</span><span class="code-text">,</span> <span class="code-variable">nazwisko</span><span class="code-text">)</span> <span class="code-keyword">FROM</span> <span class="code-variable">klienci</span></code> zwróci pełne imię i nazwisko w jednej kolumnie. Przyjmuje dowolną liczbę argumentów i często służy do budowania czytelnych etykiet, adresów czy komunikatów z kolumn bazy. W MySQL pokrewna <code><span class="code-variable">CONCAT_WS</span></code> pozwala dodatkowo podać separator wstawiany między elementy. Dlatego <code><span class="code-variable">CONCAT</span></code> odpowiada za łączenie tekstu.

Pytanie 37

Zastosowanie poniższej kwerendy SQL spowoduje usunięcie

DELETE FROM mieszkania WHERE status=1;
A. tabel, w których pole status ma wartość 1, z bazy danych mieszkania
B. pola o nazwie status w tabeli mieszkania
C. tabeli mieszkania z systemu baz danych
D. rekordów, dla których pole status ma wartość 1, z tabeli mieszkania

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź, którą zaznaczyłeś, jest jak najbardziej trafna i dotyczy działania kwerendy SQL, szczególnie polecenia DELETE. W tym przypadku, to DELETE FROM mieszkania WHERE status=1 oznacza, że zamierzamy usunąć wszystkie rekordy z tabeli mieszkania, gdzie status jest równy 1. To jest ważne, bo w zarządzaniu bazami danych kluczowe jest precyzyjne ustalenie, które dane chcemy usunąć. Z mojej perspektywy, przed wykonaniem takiej operacji warto najpierw wykonać zapytanie SELECT z tymi samymi warunkami, żeby zobaczyć, co dokładnie usuniemy. Przykład? Możesz chcieć usunąć mieszkania, które są zarezerwowane lub niedostępne, co może być oznaczone statusem 1. To naprawdę dobra praktyka, bo pozwala na lepsze zarządzanie danymi i na utrzymanie porządku w bazie. A wiesz, co jeszcze? Zawsze warto zrobić kopię zapasową danych przed masowym usuwaniem, żeby nie stracić czegoś ważnego.

Pytanie 38

Systemem zarządzania wersjami w projekcie programistycznym, który działa w trybie rozproszonym, jest

A. Eclipse
B. FileZilla
C. GIT
D. TotalCommander

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
GIT jest rozproszonym systemem kontroli wersji, który pozwala na efektywne zarządzanie kodem źródłowym projektu programistycznego. Jego architektura umożliwia każdemu programiście posiadanie lokalnej kopii repozytorium, co przyspiesza operacje takie jak commit, diff czy log, ponieważ nie wymaga dostępu do zdalnego serwera. GIT wspiera równoległą pracę wielu deweloperów, umożliwiając tworzenie gałęzi (branch) do rozwijania funkcji czy naprawy błędów bez wpływania na główną wersję kodu. Przykładami praktycznego zastosowania są: rozwijanie nowych funkcjonalności w oddzielnych gałęziach, zarządzanie kodem w projektach open source, czy współpraca w zespołach rozproszonych geograficznie, gdzie deweloperzy mogą synchronizować swoje zmiany poprzez operacje push i pull. Warto także zaznaczyć, że GIT jest szeroko stosowany w standardach branżowych, takich jak Continuous Integration/Continuous Deployment (CI/CD), co podkreśla jego znaczenie w nowoczesnym procesie wytwarzania oprogramowania.

Pytanie 39

W celu wykonania kopii bazy danych biblioteka w systemie MySQL należy w konsoli użyć polecenia

A. backupmysql -u root biblioteka kopia.sql
B. mysqlduplicate –u root biblioteka > kopia.sql
C. copymysql –u root biblioteka kopia.sql
D. mysqldump -u root biblioteka > kopia.sql

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawne polecenie do wykonania kopii bazy danych MySQL to „mysqldump -u root biblioteka > kopia.sql”. Narzędzie mysqldump jest oficjalnym, standardowym programem dostarczanym razem z serwerem MySQL i właśnie ono służy do tworzenia logicznych kopii zapasowych baz danych. Działa tak, że łączy się z serwerem MySQL, odczytuje strukturę tabel oraz dane, a następnie generuje plik tekstowy zawierający instrukcje SQL typu CREATE TABLE i INSERT. Taki plik można potem w prosty sposób wgrać z powrotem, np. poleceniem „mysql -u root biblioteka < kopia.sql”. To jest bardzo wygodne w praktyce, bo backup jest przenośny między serwerami, wersjami MySQL, a nawet można go edytować ręcznie w razie potrzeby. W tym poleceniu „-u root” oznacza użytkownika bazy danych, czyli logujemy się jako użytkownik root. W realnym środowisku produkcyjnym zwykle używa się konta z mniejszymi uprawnieniami i dodatkowo opcji „-p”, żeby podać hasło (np. „mysqldump -u backup_user -p biblioteka > kopia.sql”). Nazwa „biblioteka” to nazwa bazy, którą archiwizujemy. Znak „>” to przekierowanie powłoki systemowej (bash, cmd itp.), które zapisuje wynik działania programu mysqldump do pliku „kopia.sql” zamiast wypisywać go na ekran. To przekierowanie nie jest częścią MySQL, tylko mechanizmem systemu operacyjnego, co czasem bywa mylące dla początkujących. Moim zdaniem warto od razu wyrabiać sobie dobre nawyki: używać mysqldump regularnie, najlepiej w skryptach cron (Linux) lub Harmonogramie zadań (Windows), trzymać kopie na innym serwerze i testować odtwarzanie. W praktyce administracji serwerami i bezpieczeństwa danych takie kopie logiczne są podstawą procedur disaster recovery. W dokumentacji MySQL mysqldump jest wymieniony jako jedno z głównych narzędzi do backupu i migracji baz danych, więc znajomość dokładnie tego polecenia to absolutna podstawa pracy z MySQL w środowiskach webowych i nie tylko.

Pytanie 40

Z przedstawionych tabel Artykuly i Autorzy należy wybrać jedynie nazwiska autorów i tytuły ich artykułów, które zostały ocenione na 5. Kwerenda wybierająca te dane ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
C. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
D. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Gratulacje! Wybrałeś poprawne zapytanie SQL, które dokładnie odpowiada na postawione pytanie. Zapytanie 'SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;' jest prawidłowe, bo łączy dwie tabele 'autorzy' i 'artykuly' za pomocą klucza obcego 'autorzy_id' w tabeli 'artykuly'. Dzięki temu uzyskujemy dostęp do nazwisk autorów i tytułów artykułów. Dodatkowo, część 'WHERE ocena = 5' filtruje wyniki tak, aby wyświetlane były tylko te rekordy, gdzie ocena wynosi 5. To jest kluczowy element, który pozwala nam skupić się tylko na tych danych, które są istotne dla pytania. W praktyce, tego typu zapytania pomagają nam w analizie wydajności autorów i jakości artykułów, co jest niezwykle ważne w branży wydawniczej.