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: 19 kwietnia 2026 15:07
  • Data zakończenia: 19 kwietnia 2026 15:25

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

W kodzie HTML stworzono link do strony internetowej. Aby otworzyć tę stronę w nowym oknie lub zakładce przeglądarki, należy dodać do definicji linku atrybut

<a href="http://google.com" >strona Google</a>
A. rel = "external"
B. target = "_blank"
C. rel = "next"
D. target = "_parent"
Atrybut target w języku HTML służy do określenia, w jaki sposób ma otworzyć się dokument, do którego prowadzi odnośnik. Użycie wartości '_blank' dla atrybutu target jest standardowym sposobem na otwarcie nowej strony w nowym oknie lub zakładce przeglądarki. Przykład zastosowania to: <a href="http://google.com" target="_blank">strona Google</a>. Jest to niezwykle przydatne w kontekście UX, ponieważ pozwala użytkownikom na łatwe porównanie informacji bez utraty dostępu do oryginalnej strony. Warto również zauważyć, że użycie tego atrybutu jest zgodne z najlepszymi praktykami w tworzeniu stron internetowych, gdyż umożliwia użytkownikom zachowanie kontekstu przeglądania. W HTML5 atrybut target pozostaje wspierany, co czyni go istotnym elementem w projektowaniu interfejsów użytkownika. Oprócz '_blank' istnieją inne wartości, takie jak '_self', '_parent' i '_top', które również spełniają różne funkcje w zależności od potrzeb nawigacyjnych w aplikacji webowej.

Pytanie 2

Jaką klauzulę należy wykorzystać w instrukcji CREATE TABLE w SQL, by dane pole rekordu pozostawało wypełnione?

A. NULL
B. CHECK
C. DEFAULT
D. NOT NULL
Odpowiedź 'NOT NULL' jest poprawna, ponieważ klauzula ta jest używana w SQL do definiowania, że dane pole w tabeli nie może przyjmować wartości NULL, co oznacza, że musi zawierać jakąś wartość. Użycie klauzuli NOT NULL jest kluczowe w zapewnieniu integralności danych, szczególnie w sytuacjach, gdy brak wartości w danym polu może prowadzić do błędów w logice aplikacji lub nieprawidłowych wyników zapytań. Na przykład, w przypadku tworzenia tabeli dla użytkowników w systemie, pole 'email' powinno być oznaczone jako NOT NULL, aby zapobiec sytuacji, w której użytkownik mógłby zostać dodany bez podania adresu e-mail, co uniemożliwiłoby kontaktowanie się z nim. Dobrą praktyką jest również stosowanie klauzuli NOT NULL tam, gdzie dane są wymagane do poprawnego działania aplikacji. Użycie tej klauzuli jest zgodne z zasadami normalizacji baz danych, które z kolei mają na celu redukcję redundancji i poprawę integralności danych.

Pytanie 3

Pojęcie krotka odpowiada

A. relacji
B. tabeli
C. kolumnie
D. wierszowi
Relacje, tabele i kolumny są istotnymi pojęciami w kontekście baz danych, ale nie można ich mylić z pojęciem krotki. Relacja jest abstrakcyjnym pojęciem odnoszącym się do zbioru danych w tabeli oraz opisuje sposób, w jaki dane są związane ze sobą. To nie jest to samo, co konkretne wpisy w tabeli. Tabela to struktura, która organizuje dane w formie wierszy i kolumn, ale sama w sobie nie reprezentuje jednostkowego rekordu danych. Kolumna z kolei odnosi się do pojedynczego atrybutu w tabeli, który przechowuje dane jednego typu, na przykład wszystkich adresów e-mail. Typowym błędem jest mylenie tych pojęć, co może prowadzić do niepoprawnych założeń na temat struktury danych oraz ich interakcji. Właściwe zrozumienie tego, czym jest krotka, jest kluczowe dla efektywnej pracy z bazami danych, ponieważ pozwala uniknąć problemów z integracją danych i ich późniejszym przetwarzaniem. W praktyce, brak znajomości różnic między tymi pojęciami może prowadzić do błędów w projektowaniu baz danych oraz w zapytaniach SQL, co negatywnie wpływa na wydajność i jakość danych.

Pytanie 4

Która z list jest interpretacją pokazanego kodu?

Ilustracja do pytania
A. Odpowiedź B
B. Odpowiedź C
C. Odpowiedź A
D. Odpowiedź D
Odpowiedzi A B i D są nieprawidłowe, ponieważ nie odzwierciedlają poprawnie struktury zagnieżdżonych list w HTML. Odpowiedź A przedstawia listę nieuporządkowaną jako główną strukturę, podczas gdy kod źródłowy wyraźnie używa listy uporządkowanej <ol>, która wymaga numeracji głównych elementów. To niezgodne z semantycznym znaczeniem użycia list uporządkowanych które powinny być stosowane, gdy kolejność elementów ma znaczenie. Odpowiedź B myli strukturę przedstawiając listę jako w pełni numerowaną, co również nie jest zgodne z kodem, ponieważ użyto listy nieuporządkowanej <ul> dla elementów podrzędnych, które powinny być oznaczone punktami. Taka interpretacja nie tylko jest błędna, ale również może prowadzić do mylącej prezentacji danych zwłaszcza w kontekście semantycznym i dostępności. Odpowiedź D również nie oddaje prawidłowej struktury ponieważ nie zagnieżdża wpisów 'Wpis1' 'Wpis2' 'Wpis3' i 'Wpis4' wewnątrz odpowiednich kategorii 'muzyka' i 'filmy'. Wiedza o prawidłowej interpretacji list HTML poprawia użyteczność stron internetowych i ułatwia ich optymalizację pod kątem wyszukiwarek co jest kluczowe w nowoczesnym projektowaniu stron internetowych.

Pytanie 5

Aby zapewnić integralność danych w bazie programu Microsoft Access, należy zastosować

A. więzy integralności
B. archiwizację bazy
C. defragmentację bazy
D. kwerendę aktualizującą
Wybór więzów integralności jako metody zapewnienia spójności danych w programie Microsoft Access jest właściwy, ponieważ więzy te definiują zasady, które muszą być spełnione w bazie danych, aby utrzymać spójność i poprawność danych. Przykładowo, można ustawić więzy integralności, które zapobiegają wprowadzeniu duplikatów w kluczowych polach, takich jak identyfikator klienta, co jest kluczowe dla unikania konflikty i błędów w analityce danych. Więzy integralności mogą obejmować takie elementy jak klucze główne, klucze obce oraz unikalne ograniczenia, które pomagają w zachowaniu logiki relacyjnej w bazie danych. Dobrą praktyką jest regularne przeglądanie i aktualizowanie więzów integralności, aby zapewnić ich adekwatność do zmieniających się potrzeb danych. Ponadto, w sytuacjach, gdy dane są wprowadzane przez wiele źródeł, więzy integralności stają się kluczowym narzędziem w zarządzaniu jakością i spójnością danych, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi.

Pytanie 6

Jakie czynniki wpływają na wysokość dźwięku?

A. metoda wzbudzania drgań
B. intensywność wzbudzenia drgań
C. częstotliwość drgań fali akustycznej
D. czas oscylacji źródła dźwięku
Częstotliwość drgań fali akustycznej to taki kluczowy element, który wpływa na to, jak wysoko brzmi dźwięk. Mówiąc prosto, to ilość drgań, które źródło dźwięku wykonuje w danym czasie, zwykle mierzona w Hertzach (Hz). Im wyższa ta częstotliwość, tym wyższy dźwięk wydobywają instrumenty muzyczne. Na przykład na gitarze, jak skrócisz strunę, to dźwięk staje się wyższy, co jest zgodne z tym, co mówi fizyka akustyczna. W inżynierii dźwięku często korzysta się z filtrów i equalizerów, żeby odpowiednio dostosować dźwięki w nagraniach. Rozumienie tego jest ważne nie tylko w muzyce, ale i w technologiach audio. Projektanci dźwięku muszą dobrze znać te zasady, aby móc stworzyć odpowiednie efekty dźwiękowe. Więc, ogólnie mówiąc, znajomość tego, jak częstotliwość wiąże się z wysokością dźwięku, jest istotna dla każdej osoby związanej z dźwiękiem, zarówno w teorii, jak i w praktyce.

Pytanie 7

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Barwienie.
B. Krzywe.
C. Inwersja.
D. Progowanie.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 8

Atrybut NOT NULL kolumny jest konieczny w przypadku

A. użycia atrybutu DEFAULT
B. określenia wszystkich pól tabeli
C. określenia wszystkich pól typu numerycznego
D. klucza podstawowego
Atrybut NOT NULL jest kluczowym elementem w definicji kolumn w bazach danych, szczególnie w kontekście klucza podstawowego. Klucz podstawowy ma na celu unikalne identyfikowanie każdego rekordu w tabeli, co wymaga, aby wszystkie jego kolumny były wypełnione wartościami. Oznaczenie kolumny jako NOT NULL zapewnia, że nie można wprowadzić rekordu bez podania wartości dla tej kolumny, co jest zgodne z zasadą integralności danych. Przykładem może być tabela użytkowników, gdzie kolumna 'ID' jest kluczem podstawowym. Oznaczenie jej jako NOT NULL zapobiega sytuacji, w której mogłoby istnieć kilka rekordów bez unikalnego identyfikatora. Przy projektowaniu baz danych, zgodnie z zasadami normalizacji, klucze podstawowe powinny zawsze mieć atrybut NOT NULL, aby zachować spójność danych oraz ułatwić operacje związane z łączeniem tabel. Dobre praktyki sugerują również, aby każdy klucz podstawowy był prosty i jednoznaczny, co dodatkowo podkreśla potrzebę tego atrybutu.

Pytanie 9

Funkcja, która wywołuje samą siebie to

A. iteracja
B. dziedziczenie
C. rekurencja
D. hermetyzacja
Rekurencja to technika programistyczna, w której funkcja wywołuje samą siebie w celu rozwiązania problemu. Jest to szczególnie użyteczne w sytuacjach, gdy problem można podzielić na mniejsze, podobne podproblemy. Przykładem rekurencji może być obliczanie silni liczby. Silnia n (n!) jest definiowana jako n * (n-1)!, co oznacza, że obliczenie silni dla n wymaga obliczenia silni dla n-1, aż do osiągnięcia podstawowego przypadku, którym jest 0! = 1. Rekurencja ma zastosowanie w wielu algorytmach, w tym w wyszukiwaniu binarnym, sortowaniu przez scalanie oraz w rozwiązywaniu problemów związanych z drzewami, takich jak przechodzenie przez struktury drzewiaste. Ważne jest, aby prawidłowo zdefiniować warunki zakończenia rekurencji, aby uniknąć nieskończonego wywoływania funkcji, co prowadzi do przekroczenia limitu stosu. Rekurencja jest często stosowana w językach programowania takich jak Python, Java i C++, a jej zrozumienie jest kluczowe dla każdego programisty, który chce efektywnie rozwiązywać złożone problemy.

Pytanie 10

Do ilu pól edycyjnych zostanie przypisane tło Teal dla przedstawionego fragmentu dokumentu HTML i stylu CSS?

<input type="text">
<input type="number">
<input type="email">
<input type="number">
<input>

input[type="number"] {
    background-color: Teal;
}
A. Do wszystkich.
B. Do dwóch.
C. Do trzech.
D. Do żadnego.
Bardzo dobrze! Wybrałeś prawidłową odpowiedź, mówiącą, że tło Teal zostanie przypisane do dwóch pól edycyjnych. W przedstawionym fragmencie dokumentu HTML mamy pięć pól edycyjnych (input), z których tylko dwa mają typ 'number'. Tło Teal jest zdefiniowane w stylu CSS i ma być zastosowane tylko do pól typu 'number'. Jest to zgodne z dobrymi praktykami stosowania selektorów atrybutów w CSS, które pozwalają na precyzyjne określenie, do jakich elementów strony internetowej powinien być zastosowany dany styl. Dzięki temu możemy na przykład zastosować różne style dla różnych typów pól wejściowych, jak to jest w tym przypadku. To jest przykład, jak możemy wykorzystać moc CSS do kontroli wyglądu różnych elementów na naszej stronie.

Pytanie 11

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;
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 WHERE ocena = 5;
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.

Pytanie 12

Instrukcja w języku SQL GRANT ALL PRIVILEGES ON klienci TO pracownik

A. przyznaje uprawnienie grupie klienci dla tabeli pracownik
B. cofa wszystkie uprawnienia pracownikowi do tabeli klienci
C. przeniesie uprawnienia z grupy klienci do użytkownika pracownik
D. przyznaje wszystkie uprawnienia do tabeli klienci użytkownikowi pracownik
Polecenie SQL "GRANT ALL PRIVILEGES ON klienci TO pracownik" jest używane do nadawania pełnych uprawnień do określonej tabeli, w tym przypadku do tabeli "klienci", użytkownikowi o nazwie "pracownik". To polecenie jest kluczowe w zarządzaniu dostępem w bazach danych, ponieważ pozwala administratorom na precyzyjne kontrolowanie, kto i w jakim zakresie może modyfikować dane. W praktyce, nadawanie uprawnień za pomocą komendy GRANT jest standardową praktyką w zarządzaniu bazami danych, pozwalającą na delegowanie odpowiedzialności oraz przydzielanie ról, co zwiększa bezpieczeństwo danych. Warto również zauważyć, że standardową praktyką jest ograniczanie uprawnień do niezbędnego minimum, stosując zasady najmniejszych uprawnień (principle of least privilege). Przykładowo, zamiast nadawania pełnych uprawnień, można przyznać użytkownikowi jedynie prawo do odczytu, co ogranicza ryzyko nieautoryzowanych zmian w danych.

Pytanie 13

Które z wymienionych par znaczników HTML mają identyczny efekt wizualny na stronie internetowej, jeśli nie zastosowano żadnych stylów CSS?

A. <p> oraz <h2>
B. <meta> oraz <title>
C. <b> i <big>
D. <b> i <strong>
Odpowiedź <b> i <strong> jest poprawna, ponieważ oba znaczniki służą do wyróżniania tekstu, przy czym nie mają one różnicy w wizualizacji, jeśli nie zastosowano żadnych stylów CSS. Z punktu widzenia semantyki HTML, <strong> jest znacznikiem, który wyraża większe znaczenie dla zawartego w nim tekstu, co jest korzystne dla dostępności oraz SEO, ale wizualnie, bez dodatkowych stylów, obie etykiety wykazują te same cechy. Przykładowo, można ich używać w sytuacjach, gdy chcemy wyróżnić ważne informacje w artykule lub nagłówku. Zastosowanie tych znaczników zgodnie z dobrymi praktykami HTML pozwala na lepsze zrozumienie struktury strony przez wyszukiwarki oraz czytniki ekranu, co ma znaczenie w kontekście dostępności. W związku z tym, wyróżnianie tekstu za pomocą <b> i <strong> jest nie tylko estetyczne, ale także funkcjonalne, wspierając zarówno użytkowników, jak i algorytmy wyszukiwania.

Pytanie 14

Używając komendy BACKUP LOG w MS SQL Server, można

A. zrealizować pełną kopię zapasową
B. odczytać komunikaty generowane podczas tworzenia kopii
C. zalogować się do kopii zapasowej
D. wykonać kopię zapasową dziennika transakcyjnego
Wybór odpowiedzi dotyczący logowania się do kopii bezpieczeństwa wykazuje nieporozumienie dotyczące funkcji, jakie pełnią operacje backupu w MS SQL Server. Proces tworzenia kopii zapasowej dziennika transakcyjnego nie ma nic wspólnego z logowaniem się do wygenerowanej kopii; jest to osobny proces, który polega głównie na archiwizacji danych transakcyjnych. Kolejne stwierdzenie, że możliwe jest przeczytanie komunikatów wygenerowanych podczas tworzenia kopii, zakłada, że operacja backupu dostarcza interaktywnych danych na temat jej przebiegu, co nie jest zgodne z rzeczywistością. MS SQL Server zwykle loguje wyniki operacji do dziennika zdarzeń lub plików logów, ale nie jest to funkcjonalność, na którą można liczyć w codziennym użytkowaniu. Wreszcie, stwierdzenie, że BACKUP LOG pozwala na wykonanie pełnej kopii bezpieczeństwa, jest także błędne. BACKUP LOG dotyczy tylko dziennika transakcyjnego, podczas gdy pełna kopia bezpieczeństwa wykonana jest przy użyciu polecenia BACKUP DATABASE. W praktyce, wiele osób myli te dwa procesy, co prowadzi do nieefektywnego zarządzania danymi i ryzyka utraty informacji. Zrozumienie technicznych aspektów działania tych poleceń jest kluczowe dla prawidłowego administrowania bazami danych.

Pytanie 15

W języku PHP należy stworzyć warunek, który będzie prawdziwy, gdy zmienna $a będzie dowolną liczbą całkowitą mniejszą niż -10 lub gdy zmienna $b będzie jakąkolwiek liczbą z zakresu (25, 75). Wyrażenie logiczne w tym warunku przyjmuje postać

A. ($a < -10) or (($b > 25) or ($b < 75))
B. ($a < -10) and (($b > 25) and ($b < 75))
C. ($a < -10) or (($b > 25) and ($b < 75))
D. ($a < -10) and (($b > 25) or ($b < 75))
Wyrażenie logiczne ($a < -10) or (($b > 25) and ($b < 75)) jest poprawne, ponieważ spełnia przedstawione w pytaniu warunki. Wszelka liczba całkowita mniejsza od -10 dla zmiennej $a spełnia pierwszy warunek. Drugi warunek definiuje, że zmienna $b musi należeć do przedziału (25, 75), co oznacza, że $b musi być większe niż 25 i mniejsze niż 75. Użycie operatora 'or' jest kluczowe, ponieważ oznacza, że przynajmniej jedno z warunków musi być prawdziwe, aby całe wyrażenie zwróciło wartość prawda. Takie podejście jest zgodne z zasadami programowania, które preferują jednoznaczne i klarowne definiowanie warunków. Przykład użycia takiego wyrażenia mógłby być w kontekście walidacji danych wejściowych w formularzu, gdzie chcemy sprawdzić, czy użytkownik wprowadza poprawne wartości. Dobre praktyki programistyczne zalecają testowanie każdego warunku oddzielnie oraz czytelne komentowanie kodu, aby późniejsza analiza była łatwiejsza dla innych programistów.

Pytanie 16

Do którego akapitu przypisano podaną właściwość stylu CSS?
border-radius: 20%;

Ilustracja do pytania
A. Rys. A
B. Rys. B
C. Rys. D
D. Rys. C
Właściwość CSS border-radius służy do zaokrąglania rogów elementu na stronie internetowej. W przypadku wartości procentowej jak 20% zaokrąglenie jest obliczane w stosunku do wymiarów elementu co pozwala na uzyskanie proporcjonalnego wyglądu niezależnie od rozmiaru ramki. Wybranie odpowiedzi Rys. B jest poprawne ponieważ widoczny jest tam efekt zaokrąglonych rogów co jednoznacznie wskazuje na zastosowanie border-radius. Takie stylizacje są powszechnie używane w projektowaniu nowoczesnych interfejsów użytkownika aby nadać im bardziej miękki i przyjazny wygląd. Dobre praktyki projektowe zalecają umiarkowane stosowanie zaokrągleń aby nie przesadzić z efektami wizualnymi co mogłoby pogorszyć czytelność i funkcjonalność. Warto również pamiętać o aspekcie responsywności – używanie wartości procentowych pozwala na lepsze dostosowanie się do różnych rozdzielczości ekranów co jest kluczowe w nowoczesnym web designie. Dzięki border-radius można także tworzyć zaawansowane efekty graficzne łącząc go z innymi właściwościami CSS jak cienie czy gradienty co pozwala na osiągnięcie atrakcyjnych wizualnie elementów bez potrzeby użycia obrazów.

Pytanie 17

W SQL przy użyciu kwerendy ALTER można

A. dodać dane do tabeli
B. stworzyć tabelę
C. zmienić strukturę tabeli
D. zlikwidować tabelę
Kwerenda SQL <i>ALTER</i> jest kluczowym narzędziem do modyfikacji istniejących struktur tabel w bazach danych. Umożliwia programistom dostosowanie tabel do zmieniających się wymagań aplikacji lub organizacji. Przykładowo, za pomocą polecenia <i>ALTER TABLE</i> możemy dodać nową kolumnę, usunąć istniejącą, zmienić typ danych kolumny czy również ustawić nowe ograniczenia, takie jak klucze obce. W praktyce, gdy firma rozwija swoje usługi, często zachodzi potrzeba dostosowania struktury bazy danych, co może być realizowane przez odpowiednie kwerendy <i>ALTER</i>. Dobrą praktyką jest również regularne przeglądanie i aktualizowanie struktury bazy danych, aby zapewnić optymalizację wydajności oraz zgodność z wymaganiami biznesowymi. Standard SQL, który definiuje te operacje, jest szeroko używany i uznawany za fundamentalny w pracy z relacyjnymi bazami danych. Znajomość kwerendy <i>ALTER</i> jest zatem niezbędna dla wszystkich, którzy zajmują się administracją baz danych i programowaniem aplikacji opartych na danych.

Pytanie 18

Który ze sposobów komentowania kodu nie jest stosowany w kodzie jako komentarz PHP?

A. // komentarz
B. <!-- komentarz -->
C. /* komentarz */
D. # komentarz
W tym pytaniu kluczowe jest odróżnienie komentarzy w samym języku PHP od komentarzy w otaczającym go kodzie HTML. Wiele osób myli te dwie warstwy, bo pliki .php bardzo często zawierają jednocześnie kod HTML i PHP, i wtedy łatwo założyć, że skoro coś wygląda jak komentarz w przeglądarce, to na pewno jest też komentarzem dla interpretera PHP. To jest właśnie podstawowy błąd myślowy. W PHP obowiązuje składnia komentarzy przejęta głównie z języka C i powiązanych z nim technologii. Znak # oraz podwójny ukośnik // oznaczają komentarz jednolinijkowy – wszystko od tego znaku do końca linii jest ignorowane przez interpreter. Z kolei konstrukcja /* ... */ tworzy komentarz blokowy, który może obejmować wiele linii i jest bardzo wygodny do opisywania większych fragmentów kodu, np. funkcji, klas czy bardziej skomplikowanych algorytmów. Te trzy formy są pełnoprawnymi komentarzami PHP i są dokładnie opisane w oficjalnej dokumentacji języka. Problem pojawia się, gdy ktoś uzna, że <!-- komentarz --> też jest komentarzem PHP, bo „przecież używa się go w plikach .php”. Ten zapis jest jednak komentarzem HTML, rozumianym przez przeglądarkę internetową, a nie przez interpreter PHP. Działa on tylko w części dokumentu, którą przeglądarka widzi jako czysty HTML. Jeżeli taki komentarz wstawimy wewnątrz bloku <?php ... ?>, to PHP nie potraktuje go jako komentarz, tylko jako nieznane znaki, co w praktyce skończy się błędem składni. Z mojego doświadczenia wynika, że zamieszanie bierze się z tego, że w jednym pliku mieszają się dwa światy: serwerowy (PHP) i kliencki (HTML). Dobrą praktyką jest więc świadome rozdzielanie: w sekcjach PHP używamy wyłącznie #, // i /* */, a w czystym HTML – tylko <!-- -->. Pozwala to uniknąć trudnych do wykrycia błędów i sprawia, że kod jest czytelniejszy dla innych programistów, którzy od razu widzą, co jest komentarzem dla serwera, a co tylko dla frontendu.

Pytanie 19

Przedstawiona jest tabela pracownicy, w której umieszczono rekordy widoczne obok. Jaką wartość zwróci wykonanie umieszczonej w ramce kwerendy SQL?

SELECT MAX(pensja) FROM pracownicy WHERE pensja < 3000;
idimienazwiskopensja
1AnnaKowalska3400
2MonikaNowak1300
3EwelinaNowakowska2600
4AnnaPrzybylska4600
5MariaKowal2200
6EwaNowacka5400
A. 1300
B. 2600
C. 2200
D. 5400
Kwerenda SQL SELECT MAX(pensja) FROM pracownicy WHERE pensja < 3000; służy do znalezienia maksymalnej wartości w kolumnie pensja z rekordów spełniających warunek pensja mniejsza niż 3000. Przeszukując tabelę pracownicy widzimy że wartości spełniające ten warunek to 1300 2600 i 2200. Najwyższą z tych wartości jest 2600 co czyni tę odpowiedź poprawną. Zrozumienie tego typu kwerend SQL jest kluczowe w pracy z bazami danych ponieważ pozwala na wyciąganie konkretnych informacji z dużych zbiorów danych. W praktyce takie zapytania mogą być używane do analizowania danych pracowniczych w firmach gdzie na przykład chcemy zidentyfikować pracowników z wynagrodzeniem poniżej określonego progu. Jest to zgodne z dobrymi praktykami w branży gdzie używa się agregacji danych do celów analitycznych. Zrozumienie jak działa funkcja MAX() w połączeniu z klauzulą WHERE umożliwia efektywne filtrowanie i przetwarzanie danych co jest niezbędne w wielu aplikacjach biznesowych.

Pytanie 20

Głównym celem systemu CMS jest oddzielenie treści portalu informacyjnego od jego wyglądu. Taki efekt osiąga się przez generowanie zawartości

A. ze statycznych plików HTML oraz wyglądu ze zdefiniowanego szablonu
B. z bazy danych oraz wyglądu za pomocą atrybutów HTML
C. ze statycznych plików HTML oraz wyglądu za pomocą technologii FLASH
D. z bazy danych oraz wyglądu ze zdefiniowanego szablonu
Wybór błędnych odpowiedzi wskazuje na niepełne zrozumienie architektury systemów zarządzania treścią. Odpowiedzi sugerujące generowanie zawartości z 'statycznych plików HTML' nie uwzględniają kluczowej zasady, jaką jest elastyczność i efektywność dynamicznego zarządzania treścią. Statyczne pliki HTML są trudne do aktualizacji, co powoduje, że zmiany w treści są czasochłonne i zwiększają ryzyko błędów. Przykładowo, w przypadku wprowadzenia istotnych zmian w treści, takich jak aktualizacje informacji o produktach, każda zmiana wymagałaby ręcznej edycji wielu plików, co jest niepraktyczne i nieefektywne. Ponadto, wykorzystanie technologii FLASH do generowania wyglądu jest przestarzałym podejściem, które nie jest już wspierane przez większość nowoczesnych przeglądarek internetowych. FLASH nie tylko ogranicza dostępność treści na urządzeniach mobilnych, ale także stwarza zagrożenia związane z bezpieczeństwem. Ostatecznie, podejścia te nie są zgodne z najlepszymi praktykami branżowymi, które kładą nacisk na wykorzystanie responsywnych, łatwych w zarządzaniu szablonów i dynamicznych baz danych, co jest kluczowe dla sukcesu nowoczesnych aplikacji internetowych.

Pytanie 21

W katalogu www znajdują się foldery html oraz style, w których umieszczone są odpowiednio pliki o rozszerzeniu html i pliki o rozszerzeniu css. Aby dołączyć styl.css do pliku HTML, należy użyć

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" />
W kontekście programowania stron internetowych istnieje wiele aspektów związanych z dołączaniem stylów CSS w dokumentach HTML, które mogą prowadzić do niepoprawnych ścieżek. Wybrane przez nas niepoprawne odpowiedzi zawierają błędy związane głównie z nieprawidłowym określeniem lokalizacji pliku styl.css. W przypadku pierwszej odpowiedzi, href='/styl.css' wskazuje na to, że plik CSS znajduje się w głównym folderze serwera, co jest niezgodne z przedstawioną strukturą folderów. Z kolei w drugiej odpowiedzi, href='/style/styl.css' sugeruje bezpośrednią ścieżkę do folderu 'style' z poziomu głównego katalogu serwera, co również nie odpowiada układowi folderów, gdzie 'style' jest zagnieżdżony w katalogu 'www'. W trzeciej odpowiedzi, href='/www/style/styl.css' nie jest poprawne, ponieważ sugeruje, że folder 'www' jest katalogiem głównym serwera, co jest niezgodne z rzeczywistością. W rzeczywistości, folder 'www' jest folderem, z którego zwykle serwowane są pliki, a nie folderem, który jest bezpośrednio dostępny z poziomu WWW. Te wszystkie błędy ilustrują potrzebę zrozumienia struktury katalogów i zasad dotyczących ścieżek w HTML i CSS, by zapewnić, że pliki zostaną prawidłowo załadowane i będą dostępne dla przeglądarek internetowych.

Pytanie 22

Termin "front-end" w kontekście projektowania stron WWW odnosi się do

A. organizacji informacji na serwerze WWW
B. bazy danych z danymi publikowanymi na stronie
C. interfejsu witryny internetowej powiązanego z technologiami operującymi w przeglądarce internetowej
D. działania skryptów oraz aplikacji realizowanych po stronie serwera WWW
Front-end to wszystko to, co widzisz w przeglądarce, czyli ogólnie mówiąc, wygląd strony i to, jak się z nią bawisz. Mówię tu o kolorach, czcionkach, układzie czy różnych akcjach, które możesz wykonać. Technologie jak HTML, CSS i JavaScript są tu na czołowej pozycji, bo to dzięki nim strona jest taka interaktywna i przyjemna dla oka. Przykłady? Budowa responsywnych interfejsów, które zmieniają rozmiar na różnych ekranach, albo skrypty, które potrafią zmieniać treści na stronie bez przeładowania jej. Dobrze jest też pomyśleć o tym, żeby strona ładowała się jak najszybciej, bo to wpływa na to, jak użytkownicy będą ją odbierać. A jeśli znasz nowe frameworki, jak React czy Angular, to naprawdę ułatwia stworzenie bardziej złożonych aplikacji webowych, co w dzisiejszych czasach jest mega ważne.

Pytanie 23

W PHP, aby stworzyć obiekt pkt dla klasy Punkt, której definicja znajduje się poniżej, należy użyć polecenia

class Punkt {
  public $x;
  public $y;
}
A. pkt Punkt;
B. pkt = new Punkt();
C. pkt Punkt();
D. Punkt() pkt;
W języku PHP tworzenie obiektu z zdefiniowanej klasy wymaga użycia słowa kluczowego new. Poprawna instrukcja to pkt = new Punkt();. Słowo new jest używane do dynamicznego alokowania pamięci na nowy obiekt klasy Punkt. W tym przypadku Punkt jest klasą, która została wcześniej zdefiniowana w kodzie i zawiera właściwości publiczne takie jak $x i $y. Kiedy wykonujemy new Punkt(), wywoływany jest konstruktor klasy, który w tym przypadku jest domyślny, ponieważ klasa Punkt nie definiuje własnego konstruktora. Warto zauważyć, że zgodnie z dobrymi praktykami programowania w PHP, każda deklaracja nowego obiektu powinna być poprzedzona słowem new, co zapewnia czytelność i jednoznaczność kodu. Ten sposób tworzenia obiektów jest zgodny ze standardem PSR-12. Praktyczne zastosowanie tworzenia obiektów w PHP jest szerokie i obejmuje m.in. modelowanie danych w aplikacjach, obsługę struktur danych oraz implementację wzorców projektowych, takich jak singleton czy fabryka. Korzystanie z obiektów pozwala na przejrzyste i zorganizowane zarządzanie kodem oraz łatwą jego rozbudowę o nowe funkcje.

Pytanie 24

W CSS, aby określić typ czcionki, powinno się zastosować właściwość

A. font-size
B. font-style
C. font-family
D. font-face
Właściwość 'font-family' w CSS jest kluczowa dla określenia kroju czcionki, który ma być używany na stronie internetowej. Dzięki tej właściwości możemy wskazać jedną lub więcej czcionek, które będą stosowane dla danego elementu. Wartością może być nazwa konkretnej czcionki, na przykład 'Arial', lub rodzina czcionek, jak 'sans-serif'. Przykład użycia to: 'font-family: Arial, sans-serif;'. W przypadku braku dostępności danej czcionki, przeglądarka wybierze następną z listy, co pozwala na zapewnienie spójności i czytelności tekstu na różnych urządzeniach. Zgodnie z najlepszymi praktykami, zaleca się użycie kilku opcji czcionek, aby zapewnić lepszą dostępność. Warto również pamiętać, aby unikać stosowania zbyt wielu różnych krojów czcionek, co mogłoby wpływać negatywnie na estetykę i czytelność strony. Użycie 'font-family' w połączeniu z innymi właściwościami, takimi jak 'font-size' czy 'font-weight', pozwala na pełne dostosowanie wyglądu tekstu zgodnie z wymaganiami projektu.

Pytanie 25

Jak nazywa się metoda dodawania arkusza stylów do dokumentu HTML zastosowana w poniższym kodzie?

<p style="color: red;">tekst paragrafu</p>
A. Styl zewnętrzny
B. Styl wewnętrzny
C. Styl wpisany, lokalny
D. Styl alternatywny, zewnętrzny
Podczas analizy alternatywnych metod dołączania arkuszy stylów do HTML, warto skupić się na ich kontekście i funkcjonalności. Styl alternatywny, zewnętrzny, najczęściej odnosi się do zewnętrznych plików CSS, które są dołączane do dokumentu HTML przy użyciu tagu <link>. Jest to podejście, które pozwala na centralne zarządzanie stylami dla całej strony, co zwiększa modularność i ułatwia aktualizacje. Styl wewnętrzny to metoda, w której style są umieszczane w sekcji <style> w nagłówku dokumentu. Chociaż oba te podejścia mają swoje zastosowania, ich niepoprawne zrozumienie może prowadzić do chaosu w kodzie. Styl wpisany, lokalny, z kolei, jest odpowiedni tylko dla niewielkich, jednorazowych stylizacji. W przypadku bardziej złożonych projektów, poleganie na stylach wpisanych może prowadzić do problemów z zarządzaniem i duplikacją kodu. Użytkownicy mogą mylić styl wpisany z innymi metodami, co może wynikać z braku wiedzy na temat ich zastosowań. Kluczowym błędem jest utożsamianie lokalnych stylów z bardziej uniwersalnymi rozwiązaniami, co w dłuższej perspektywie może prowadzić do trudności w utrzymaniu i aktualizacji projektów. Teoretyczne podejście do stylizacji w HTML wymaga zrozumienia, że różne metody mają swoje miejsce i zastosowanie, a ich wybór powinien być uzależniony od specyfiki projektu.

Pytanie 26

W języku PHP zmienna $_GET jest zmienną

A. utworzoną przez autora strony, używaną do przesyłania danych z formularza przez adres URL
B. predefiniowaną, używaną do przesyłania informacji do skryptów PHP za pośrednictwem adresu URL
C. zwykłą, utworzoną przez autora witryny
D. predefiniowaną, wykorzystywaną do zbierania wartości formularza po nagłówkach żądania HTTP (dane z formularza nie są widoczne w adresie)
Niepoprawne odpowiedzi prowadzą do nieporozumień dotyczących funkcji i konstrukcji zmiennej $_GET. W przeciwieństwie do stwierdzenia, że zmienna ta jest zdefiniowana przez twórcę strony, $_GET jest predefiniowaną zmienną, co oznacza, że jest dostarczana przez PHP jako część jego standardowej biblioteki. Również błędne jest twierdzenie, że dane przekazywane przez $_GET nie są widoczne w adresie URL. W rzeczywistości, jednym z kluczowych elementów działania $_GET jest to, że dane są rzeczywiście dołączane do adresu URL, co czyni je publicznie dostępnymi. Takie podejście może być użyteczne w przypadku, gdy chcemy, aby dane były łatwe do udostępnienia lub w przypadku, gdy chcemy umożliwić użytkownikom zakładanie zakładek na konkretne wyniki wyszukiwania. Niedopuszczalne jest także określanie $_GET jako 'zwykłej' zmiennej, ponieważ jej funkcjonalność jest ściśle związana z interakcją z protokołem HTTP i sposobem, w jaki dane są przesyłane pomiędzy klientem a serwerem. W kontekście aplikacji webowych, kluczowe jest, aby deweloperzy rozumieli nie tylko techniczne aspekty używania $_GET, ale także konsekwencje związane z bezpieczeństwem, takie jak ryzyko ataków XSS (Cross-site scripting) i potrzeba sanitizacji danych, które mogą pochodzić od użytkowników.

Pytanie 27

Który modyfikator jest związany z opisem podanym poniżej?

Metoda oraz zmienna jest dostępna wyłącznie dla innych metod własnej klasy.
A. protected
B. static
C. public
D. private
Modyfikator dostępu private w językach programowania takich jak Java i C# umożliwia ukrywanie szczegółów implementacji danej klasy przed jej użytkownikami. Deklarowanie zmiennych i metod jako private chroni je przed nieumyślnymi zmianami z zewnątrz, co zwiększa bezpieczeństwo i integralność danych. Daje to kontrolę nad tym, jak dane są używane i modyfikowane, co jest kluczowe w projektowaniu solidnych systemów. Prywatne elementy są dostępne jedynie w obrębie klasy, co pozwala zachować enkapsulację, jedną z podstaw programowania obiektowego. Dzięki temu, można łatwo modyfikować wewnętrzne mechanizmy klasy, bez wpływu na inne części programu, które z niej korzystają. Używanie private umożliwia również tworzenie metod pomocniczych, które są niewidoczne dla użytkowników zewnętrznych, ale wspomagają działanie publicznych interfejsów. To podejście zgodne ze standardami projektowania, takimi jak zasada najmniejszej wiedzy, która zaleca ograniczanie dostępu do niezbędnego minimum dla poprawy modularności i utrzymania kodu. Przykładem może być klasa KontoBankowe, gdzie saldo konta jest prywatne, a dostęp do jego zmiany odbywa się poprzez metody publiczne, co pozwala na weryfikację operacji finansowych.

Pytanie 28

Technologia, w której komunikacja użytkownika z serwerem odbywa się bez konieczności przeładowywania całego dokumentu HTML, to

A. PHP
B. AJAX
C. Ruby
D. Django
W tym pytaniu łatwo się pomylić, bo wszystkie podane technologie w jakiś sposób kojarzą się z tworzeniem aplikacji webowych, ale tylko jedna opisuje mechanizm komunikacji bez przeładowania całej strony. Kluczowe jest zrozumienie różnicy między językiem programowania, frameworkiem backendowym a techniką asynchronicznej komunikacji po stronie przeglądarki. Django to framework działający po stronie serwera, napisany w Pythonie. Służy do obsługi logiki biznesowej, generowania szablonów HTML, pracy z bazą danych, routingu adresów URL itd. Samo użycie Django nie powoduje automatycznie, że strona staje się „dynamiczna bez przeładowania”. To, czy strona przeładowuje się w całości, zależy od tego, jak zachowuje się kod w przeglądarce, a nie od tego, jaki framework stoi po stronie serwera. Podobnie PHP to język skryptowy po stronie serwera. Generuje HTML, JSON lub inne odpowiedzi HTTP, ale komunikacja odbywa się standardowo: przeglądarka wysyła żądanie, serwer z PHP odsyła odpowiedź. Bez zastosowania JavaScript i mechanizmów asynchronicznych każda interakcja użytkownika, która wymaga kontaktu z serwerem, kończy się pełnym przeładowaniem dokumentu. Częsty błąd myślowy polega na tym, że skoro PHP „tworzy dynamiczne strony”, to odpowiada też za ich dynamiczne odświeżanie w przeglądarce. W rzeczywistości dynamika po stronie serwera i dynamika interfejsu w przeglądarce to dwie różne warstwy. Ruby również jest tylko językiem programowania, a w świecie webowym najczęściej używany jest z frameworkiem Ruby on Rails. Znowu – świetnie nadaje się do tworzenia API, generowania widoków, obsługi baz danych, ale sam z siebie nie rozwiązuje problemu komunikacji asynchronicznej w przeglądarce. Bez JavaScriptu i odpowiednich wywołań HTTP od strony klienta, strona w Ruby zachowuje się tak samo jak w przypadku PHP czy Django: każda odpowiedź to nowy dokument HTML. Sedno jest takie, że AJAX opisuje konkretną technikę po stronie klienta: asynchroniczne wysyłanie żądań HTTP z przeglądarki i aktualizowanie tylko fragmentów strony. Django, PHP i Ruby mogą być serwerowym „końcem” tych zapytań AJAX, ale nie są samą technologią odpowiedzialną za brak przeładowania strony. Rozdzielenie w głowie: frontendowa komunikacja asynchroniczna vs backendowa logika serwera, to bardzo ważna dobra praktyka w programowaniu webowym.

Pytanie 29

Określ złożoność obliczeniową algorytmu prostego (standardowego) wyszukiwania najmniejszej wartości w zestawie liczb?

A. O(n)
B. O(n!)
C. O(n3 )
D. O(n2 )
Algorytm naiwnego wyszukiwania minimum jest dość prosty, bo jego złożoność obliczeniowa to O(n). To znaczy, że im więcej mamy elementów w zbiorze, tym dłużej trwa jego działanie, ale w prosty sposób, czyli liniowo. W praktyce algorytm przeszukuje każdy element, porównując go z innymi, co jest dosyć klasyczne i używane w wielu podstawowych programach. Na przykład, gdy programujemy w Pythonie, możemy użyć pętli do przejścia przez listę, co sprawia, że łatwo to zrozumieć. W branży programistycznej często mówimy o tym w kontekście analizy złożoności obliczeniowej, co czyni go naprawdę istotnym tematem dla każdego programisty. Moim zdaniem, zrozumienie O(n) jest kluczowe, gdy chcemy optymalizować nasz kod i oceniać, jak nasze algorytmy radzą sobie z większymi zbiorami danych. To chyba jeden z podstawowych tematów w inżynierii oprogramowania i analizie danych.

Pytanie 30

W bazie danych księgarni znajduje się tabela ksiazki, która zawiera pola: id, idAutor, tytul, ileSprzedanych, oraz tabela autorzy z polami: id, imie, nazwisko. Jak można utworzyć raport sprzedanych książek zawierający tytuły oraz nazwiska autorów?

A. należy zdefiniować relację 1..1 pomiędzy tabelami ksiazki a autorzy, a następnie stworzyć kwerendę łączącą obie tabele
B. należy zdefiniować relację l..n pomiędzy tabelami ksiazki a autorzy, a następnie stworzyć kwerendę łączącą obie tabele
C. konieczne jest stworzenie kwerendy, która wyszukuje tytuły książek
D. trzeba utworzyć dwie oddzielne kwerendy: pierwsza do wyszukiwania tytułów książek, druga do wyszukiwania nazwisk autorów
Jak się przyjrzysz innym odpowiedziom, to zauważysz, że zdefiniowanie relacji 1..1 dla tabel 'ksiazki' i 'autorzy' to trochę nieporozumienie. Takie założenie sugeruje, że każdy autor mógłby napisać tylko jedną książkę, co jest mało prawdopodobne w rzeczywistości. Przecież jeden autor może mieć na swoim koncie wiele tytułów, więc prawidłowa relacja to l..n. Kwerenda, która tylko wyszukuje tytuły książek, nie bierze pod uwagę autorów, co sprawia, że nie dostajemy pełnych informacji o książkach. Dwie osobne kwerendy na tytuły i nazwiska autorów to jakieś nieporozumienie – jest to nieefektywne i nie pozwala na zebranie wyników w jednej, sensownej formie. Często w takich sytuacjach ludzie mylą się, bo nie rozumieją zasad relacyjnych baz danych i nie mają dobrego podejścia do projektowania schematu. To prowadzi później do problemów z zarządzaniem danymi i ich analizą.

Pytanie 31

Proces zmierzający do osiągnięcia przez stronę internetową jak najwyższych pozycji w rankingach wyszukiwarek internetowych nosi nazwę

A. walidacji HTML.
B. optymalizacji wydajności.
C. responsywności.
D. pozycjonowania.
Proces, o który chodzi w pytaniu, dotyczy bezpośrednio widoczności strony w wynikach wyszukiwania, a nie tylko jej technicznej jakości czy wyglądu. Wiele osób myli pojęcia, bo wszystkie wymienione hasła są związane z tworzeniem stron WWW, ale ich cele są inne. Walidacja HTML to sprawdzanie, czy kod strony jest zgodny ze standardami W3C. Używa się do tego np. W3C Markup Validation Service. To ważne dla poprawności, dostępności i czasem też dla późniejszego łatwiejszego pozycjonowania, ale sama walidacja nie „podciągnie” strony w wynikach Google, jeśli nie ma przemyślanej strategii SEO. To raczej fundament techniczny, a nie proces zdobywania pozycji w wyszukiwarce. Optymalizacja wydajności z kolei skupia się na szybkości ładowania strony, zużyciu zasobów serwera, kompresji grafik, cache’owaniu, minimalizacji plików CSS i JavaScript. Jasne, wyszukiwarki biorą pod uwagę performance jako czynnik rankingowy, ale jest to tylko jeden z elementów większej układanki. Samo przyspieszenie strony bez pracy nad treścią, słowami kluczowymi czy linkami nie będzie pełnym procesem pozycjonowania. Responsywność oznacza dostosowanie wyglądu i układu strony do różnych rozdzielczości i urządzeń, głównie smartfonów i tabletów. Stosuje się do tego media queries w CSS, elastyczne siatki (grid, flexbox), obrazki skalujące się do szerokości ekranu. To bardzo ważny aspekt UX i zgodności z wytycznymi Google dotyczącymi mobile‑first, ale nadal jest to tylko jeden z czynników technicznych. Typowy błąd myślowy polega na uznaniu, że jeśli strona jest poprawna, szybka i ładnie wygląda na telefonie, to „samo się wypozycjonuje”. W rzeczywistości pozycjonowanie to szersza strategia SEO, obejmująca analizę fraz kluczowych, optymalizację treści, strukturę linków wewnętrznych, pozyskiwanie linków zewnętrznych i ciągłe monitorowanie efektów. Dlatego tylko odpowiedź związana z pozycjonowaniem dokładnie oddaje sens procesu opisanego w pytaniu.

Pytanie 32

Podaj polecenie SQL, które pozwoli na dodanie kolumny miesiacSiewu do tabeli rośliny znajdującej się w bazie danych

A. ALTER TABLE rośliny ADD miesiacSiewu int;
B. INSERT INTO rośliny VALUES (miesiacSiewu int);
C. CREATE TABLE rośliny {miesiacSiewu int};
D. UPDATE rośliny ADD miesiacSiewu int;
Odpowiedź 'ALTER TABLE rośliny ADD miesiacSiewu int;' jest jak najbardziej na miejscu. Używasz tutaj komendy SQL 'ALTER TABLE', co jest standardem, jeśli chcesz coś zmienić w już istniejącej tabeli. W tym przypadku dodajesz nowe pole 'miesiacSiewu' w formacie 'int' do tabeli 'rośliny'. Fajnie, bo dodawanie kolumn w relacyjnych bazach danych to chleb powszedni, zwłaszcza gdy musisz dodać nowe informacje. Na przykład, jak chcesz wiedzieć, kiedy siać rośliny, to zrobienie tego przy pomocy tej komendy pozwoli Ci trzymać te dane blisko innych szczegółów roślin. Warto też pamiętać, żeby nowe kolumny były dobrze indeksowane lub miały jakieś wartości domyślne, bo to może przyspieszyć zapytania do bazy. Tego typu operacje są naprawdę ważne w zarządzaniu bazami danych, bo dają Ci elastyczność, żeby dostosować strukturę bazy do potrzeb Twojej aplikacji.

Pytanie 33

W kodzie HTML5 znajduje się fragment, który zawiera błąd walidacji. Jakiego rodzaju jest to błąd?

<h6>tekst</h6>
<p>pierwsza <b>linia</b><br>
<p>Druga linia</p>
A. Znaczniki powinny być zapisane wielkimi literami.
B. Nagłówek szóstego poziomu nie istnieje.
C. Pierwszy znacznik <p> nie został zamknięty.
D. Znacznik <br> musi być zamknięty.
W pytaniu pojawia się kilka typowych nieporozumień dotyczących składni HTML5, które często się przewijają podczas nauki. Jednym z nich jest przekonanie, że znaczniki HTML powinny być pisane wielkimi literami – to nieprawda. Współczesny HTML, zgodnie ze standardem HTML5, jest case-insensitive, ale powszechną best practice jest używanie małych liter dla lepszej czytelności i zgodności z narzędziami walidującymi. Wielkie litery to już raczej relikt epoki XHTML, a nawet tam nie były konieczne. Kolejna sprawa to rzekomy brak nagłówka szóstego poziomu – <h6> – co nie ma pokrycia w rzeczywistości. <h6> to absolutnie poprawny i często używany element HTML, szczególnie przy rozbudowanej hierarchii nagłówków w dużych dokumentach. Pominięcie lub zakwestionowanie istnienia tego znacznika może świadczyć o powierzchownym zapoznaniu się ze strukturą HTML. Inna wątpliwość dotyczy znacznika <br> i jego zamykania. W HTML5 nie jest wymagane samo-domykanie tego znacznika (czyli <br />), ponieważ parsery przeglądarek rozumieją zarówno wersję z ukośnikiem, jak i bez niego – to różnica względem XHTML, gdzie domknięcie było obowiązkowe. Często spotykam się też z mylnym przeświadczeniem, że pojedyncze <br> bez ukośnika powoduje błąd – to nieprawda. Prawdziwym źródłem problemu w tym kodzie jest nieuwzględnienie zamknięcia pierwszego paragrafu przed rozpoczęciem kolejnego bloku <p>. To właśnie ten aspekt narusza poprawną strukturę dokumentu HTML5 i prowadzi do niezgodności z walidacją. Moim zdaniem, zrozumienie, które elementy muszą być jawnie domykane, a które mogą być samo-domykające się, to klucz do uniknięcia niepotrzebnych błędów i frustracji podczas kodowania stron internetowych.

Pytanie 34

Zdefiniowana jest tabela o nazwie wycieczki z atrybutami nazwa, cena oraz miejsca (jako liczba dostępnych miejsc). Aby wyświetlić jedynie nazwy tych wycieczek, dla których cena jest mniejsza niż 2000 złotych i które mają co najmniej cztery wolne miejsca, należy użyć zapytania

A. SELECT nazwa FROM wycieczki WHERE cena<2000 OR miejsca>4;
B. SELECT nazwa FROM wycieczki WHERE cena<2000 AND miejsca>3;
C. SELECT * FROM wycieczki WHERE cena<2000 OR miejsca>3;
D. SELECT * FROM wycieczki WHERE cena<2000 AND miejsca>4;
Zapytanie SQL, które pozwala na wyświetlenie nazw wycieczek, dla których cena jest niższa niż 2000 złotych i które mają przynajmniej cztery wolne miejsca, jest poprawnie sformułowane jako: SELECT nazwa FROM wycieczki WHERE cena<2000 AND miejsca>3. W tym zapytaniu używamy klauzuli SELECT, aby wskazać, że interesuje nas tylko kolumna 'nazwa'. Warunki zawarte w klauzuli WHERE filtrują wyniki na podstawie określonych kryteriów. Operator AND zapewnia, że oba warunki muszą być spełnione jednocześnie, co oznacza, że interesują nas tylko te wycieczki, które są tańsze niż 2000 zł i mają więcej niż 3 wolne miejsca. Technicznie rzecz biorąc, operator < jest używany do porównywania wartości, a operator > do określenia, że liczba miejsc musi być większa od 3. Przykładem działania tego zapytania może być sytuacja, w której w tabeli wycieczki znajdują się dane o takich wycieczkach jak: 'Wakacje w górach' (cena: 1800 zł, miejsca: 5) oraz 'Wczasy nad morzem' (cena: 2200 zł, miejsca: 2). W wyniku działania zapytania uzyskamy jedynie 'Wakacje w górach', ponieważ spełnia ono oba kryteria. Tego rodzaju zapytania są powszechnie stosowane w systemach baz danych, aby efektywnie przeszukiwać i filtryzować dane zgodnie z wymaganiami użytkownika.

Pytanie 35

Aby zdefiniować stylizację tabeli w języku CSS w sposób, który umożliwi wyróżnienie wiersza, na który aktualnie najeżdża kursor myszy np. innym kolorem, należy użyć

A. nowego selektora klasy dla wiersza tabeli
B. pseudoelementu :first-line
C. pseudoklasy :visited
D. pseudoklasy :hover
Pseudoklasa :hover jest techniką CSS, która pozwala na zastosowanie stylów do elementu, gdy użytkownik na niego najedzie kursorem myszy. Dzięki temu można w prosty sposób wyróżnić wiersze tabeli, co zwiększa interaktywność i czytelność danych. W przypadku tabeli, aby wyróżnić aktualnie wskazywany wiersz, należy użyć reguły CSS, która odnosi się do elementu <tr> (wiersza tabeli) z zastosowaniem pseudoklasy :hover. Przykładowy kod CSS może wyglądać następująco: table tr:hover { background-color: #f0f0f0; } co spowoduje, że tło wiersza zmieni się na jasno szare, gdy kursor myszy znajdzie się nad tym wierszem. Taki sposób formatowania jest szczególnie przydatny w przypadku długich tabel, które mogą być trudne do przeglądania. Pseudoklasa :hover jest powszechnie stosowana w projektowaniu stron internetowych, w zgodności z W3C CSS Specification, co zapewnia jej szeroką kompatybilność z różnymi przeglądarkami. Warto także zauważyć, że można łączyć pseudoklasę :hover z innymi selektorami, aby uzyskać bardziej zaawansowane efekty wizualne.

Pytanie 36

Znacznik <ins> w języku HTML jest używany do wskazania

A. cytowanego fragmentu tekstu
B. tekstu, który został dodany
C. tekstu o zmienionym formacie
D. tekstu, który został usunięty
Odpowiedzi dotyczące oznaczania cytowanego bloku tekstu, tekstu przeformatowanego oraz tekstu, który został usunięty, nie są poprawne w kontekście znacznika <ins>. Znacznik używany do cytowania tekstu to <blockquote>, który służy do wyodrębnienia dłuższych cytatów, zazwyczaj z innymi źródłami. Z kolei do oznaczania tekstu, który został usunięty, stosuje się znacznik <del>, który wskazuje na treść, która została usunięta z dokumentu, co jest sprzeczne z funkcją <ins>. Oznaczenie tekstu przeformatowanego nie ma związku z tagiem, ponieważ nie ma on bezpośredniego związku z formatowaniem; formatowanie tekstu odbywa się przy użyciu znaczników takich jak <strong> lub <em>, które nadają różne style wizualne, ale nie zmieniają semantyki tekstu. W związku z tym, wszystkie te niepoprawne odpowiedzi dotyczą różnych aspektów zarządzania treścią w HTML, ale nie są związane z oznaczaniem tekstu dodanego, co jest kluczowym zastosowaniem znacznika <ins>. Zrozumienie różnic między tymi znacznikami jest istotne, aby poprawnie stosować HTML w praktyce oraz zapewniać jasność i dostępność treści w sieci.

Pytanie 37

Aby przyspieszyć operacje na bazie danych należy dla pól często wyszukiwanych lub sortowanych

A. utworzyć indeks.
B. dodać więzy integralności.
C. dodać klucz obcy.
D. utworzyć osobną tabelę przechowującą tylko te pola.
Prawidłowo – kluczem do przyspieszenia wyszukiwania i sortowania w relacyjnej bazie danych jest utworzenie indeksu na kolumnach, po których najczęściej filtrujesz (WHERE), łączysz tabele (JOIN) albo sortujesz (ORDER BY). Indeks działa podobnie jak spis treści czy indeks na końcu książki – zamiast przeglądać każdą stronę po kolei, silnik bazy danych korzysta z dodatkowej struktury danych (najczęściej drzewa B-drzewiastego, tzw. B-tree), żeby bardzo szybko znaleźć interesujące wiersze. W praktyce oznacza to, że zapytania, które wcześniej skanowały całą tabelę (full table scan), zaczynają wykorzystywać indeks, co drastycznie zmniejsza liczbę odczytanych stron danych z dysku. W SQL jest to standardowa dobra praktyka: dla kolumn używanych w warunkach wyszukiwania i sortowania tworzy się indeksy, ale z umiarem, żeby nie przesadzić. Z mojego doświadczenia w projektach webowych typowe indeksy to np. indeks na kolumnie email w tabeli użytkowników, indeks na data_dodania w tabeli z artykułami albo indeks złożony (wielokolumnowy) na (user_id, created_at) w tabeli logów czy zamówień. Dzięki temu zapytania typu SELECT * FROM zamowienia WHERE user_id = ? ORDER BY created_at DESC działają bardzo szybko. Warto też wiedzieć, że dobry administrator lub programista zawsze sprawdza plany wykonania zapytań (EXPLAIN w MySQL/PostgreSQL) i na tej podstawie decyduje, które indeksy są naprawdę potrzebne. Tworzenie indeksów na oślep nie jest najlepszym pomysłem, ale sensowne indeksowanie jest absolutnym standardem w profesjonalnych systemach bazodanowych i jedną z podstawowych technik optymalizacji wydajności.

Pytanie 38

W języku JavaScript należy sformułować warunek, który będzie prawdziwy, gdy zmienna a będzie jakąkolwiek liczbą naturalną dodatnią (również nie zerową) lub gdy zmienna b będzie liczbą mieszczącą się w przedziale od 10 do 100, włącznie. Wyrażenie logiczne zastosowane w tym warunku powinno mieć formę

A. (a>0) && ((b>=10) || (b<=100))
B. (a>0) && ((b>=10) && (b<=100))
C. (a>0) || ((b>=10) && (b<=100))
D. (a>0) || ((b>=10) || (b<=100))
Odpowiedź (a>0) || ((b>=10) && (b<=100)) jest poprawna, ponieważ precyzyjnie odwzorowuje wymagane warunki. Warunek logiczny składa się z dwóch głównych części. Pierwsza część, (a>0), sprawdza, czy zmienna a jest liczbą naturalną dodatnią. Liczby naturalne dodatnie to liczby całkowite większe od zera, co oznacza, że a musi być większe od zera, aby warunek był spełniony. Druga część warunku, ((b>=10) && (b<=100)), wymaga, aby zmienna b znajdowała się w przedziale od 10 do 100, włącznie z tymi wartościami. Zastosowanie operatora && w tej części oznacza, że obie nierówności muszą być spełnione jednocześnie. Operator || łączy te dwie części, co oznacza, że wystarczy spełnić jeden z warunków, aby cały wyrażenie logiczne zwróciło prawdę. Jest to zgodne z zasadami programowania, które wskazują na konieczność precyzyjnego definiowania warunków w celu uniknięcia niejasności. W praktyce takie wyrażenie jest niezwykle przydatne w sytuacjach, gdy konieczne jest weryfikowanie wartości zmiennych przed ich dalszym przetwarzaniem, co pozwala na zwiększenie bezpieczeństwa i stabilności aplikacji.

Pytanie 39

Jakim zapisem w języku PHP można określić komentarz, który rozciąga się na wiele linii?

A. <!-- -->
B. /*  */
C. #
D. //
W języku PHP komentarz wieloliniowy definiuje się za pomocą zapisu /* */. Taki komentarz może obejmować wiele linii tekstu, co czyni go niezwykle przydatnym do opisywania fragmentów kodu, które są zbyt obszerne, by umieścić je w pojedynczej linii. Używanie komentarzy wieloliniowych pozwala programistom na dodawanie szczegółowych wyjaśnień dotyczących funkcji, algorytmów czy też sposobu działania poszczególnych sekcji kodu. Dobrą praktyką jest stosowanie takich komentarzy, aby ułatwić innym programistom zrozumienie kodu lub przypomnienie sobie samego siebie, co dany fragment robi. Przykładowo: /* Funkcja oblicza sumę dwóch liczb Parametr 1: pierwsza liczba Parametr 2: druga liczba Zwraca: suma obu liczb */ Ponadto, stosowanie komentarzy jest zgodne z zasadami programowania zorientowanego na zrozumiałość, które są kluczowe w projektach zespołowych oraz w długofalowym utrzymaniu kodu. Poprawne stosowanie komentarzy pomaga w dokumentowaniu kodu oraz w jego przyszłym rozwoju.

Pytanie 40

Jaką wartość uzyska zmienna x po wykonaniu poniższego kodu PHP?

mysqli_query($db, "DELETE FROM produkty WHERE status < 0");
$x = mysqli_affected_rows($db);
A. Liczbę wierszy przetworzonych przez zapytanie DELETE FROM.
B. Liczbę wierszy w tabeli produkty, dla których pole status przekracza zero.
C. Liczbę wierszy, które znajdują się w bazie danych.
D. Liczbę wierszy, które zostały dodane do tabeli produkty.
Poprawna odpowiedź dotyczy liczby wierszy przetworzonych przez zapytanie DELETE FROM w bazie danych. Funkcja mysqli_affected_rows($db) zwraca liczbę wierszy, które zostały zmodyfikowane przez ostatnie wykonane zapytanie na danym połączeniu z bazą danych. W przypadku zapytania DELETE, zwróci ona liczbę wierszy, które zostały usunięte w wyniku działania tego zapytania. W kontekście dobrych praktyk, zawsze warto sprawdzać, jakie operacje zostały wykonane na bazie danych, aby zrozumieć wpływ zapytań na dane. Na przykład, w aplikacjach e-commerce, przed usunięciem produktów, można wykorzystać tę informację do potwierdzenia, że usunięcie danych nie wpływa negatywnie na inne elementy systemu. Użycie tej funkcji pozwala na efektywne zarządzanie danymi oraz na utrzymanie spójności w bazie danych, co jest kluczowe w kontekście bezpieczeństwa i integralności danych.