Wyniki egzaminu

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

Egzamin niezdany

Wynik: 17/40 punktów (42,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ść w systemie szesnastkowym przyjmie kolor określony kodem RGB rgb(255, 128, 16)?

A. #ff0f10
B. #008010
C. #ff8011
D. #ff8010
Odpowiedzi takie jak #008010, #ff8011 oraz #ff0f10 są nieprawidłowe z różnych powodów. Zaczynając od #008010, zauważamy, że pierwszy składnik (R) wynosi 0, co oznacza, że kolor nie zawiera czerwonego komponentu. Oryginalny kolor rgb(255, 128, 16) ma maksymalne wartości czerwonego, co wyklucza odpowiedzi z zerowymi wartościami. Przechodząc do #ff8011, widzimy, że ostatnia cyfra jest 1, co wynika z konwersji wartości 16, która w systemie szesnastkowym powinna być 10. Użycie 1 zamiast 10 nie oddaje prawidłowo oryginalnego koloru. Wreszcie, analiza #ff0f10 ujawnia problem z zielonym komponentem, który w tej odpowiedzi wynosi 0, biorąc pod uwagę, że wartość zielona powinna wynosić 128 (80 w systemie szesnastkowym). Te błędy mogą wynikać z nieprecyzyjnego zrozumienia konwersji wartości kolorów między systemami. Ważne jest, aby zrozumieć, że RGB to model addytywny, w którym kolory są tworzone przez łączenie światła czerwonego, zielonego i niebieskiego, a każdy składnik ma swoje przypisane wartości, które muszą być dokładnie odzwierciedlone w kodzie szesnastkowym. Przy pracy z kolorami, szczególnie w projektowaniu cyfrowym, dobrze jest również korzystać z narzędzi do konwersji oraz palet kolorów, aby uniknąć takich pomyłek.

Pytanie 2

Aby pobrać dane z formularza HTML tak, aby nie były widoczne w adresie URL, należy zastosować:

A. metodę GET
B. metodę POST
C. wyłącznie funkcje z biblioteki PDO
D. same kontrolki, bez formularza
Kluczem jest tu sposób, w jaki formularz wysyła dane. Metoda GET dopisuje je bezpośrednio do adresu URL w postaci par nazwa=wartość, więc są od razu widoczne w pasku adresu, w historii i logach serwera – dokładnie tego mieliśmy uniknąć. Wybranie samych kontrolek bez formularza w ogóle nie zadziała: to formularz odpowiada za zebranie i wysłanie danych na serwer. Biblioteka PDO dotyczy zupełnie innego etapu – służy do komunikacji PHP z bazą danych, a nie do decydowania, jak dane opuszczają przeglądarkę. Aby ukryć je przed adresem URL, formularz musi korzystać z metody POST, która przenosi dane w treści żądania.

Pytanie 3

Fragment kodu HTML z JavaScript spowoduje, że po kliknięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz1.png zastąpi obraz2.png
B. obraz2.png zostanie schowany
C. obraz1.png zostanie schowany
D. obraz2.png zastąpi obraz1.png
Poprawna odpowiedź dotyczy ukrycia obrazu obraz2.png poprzez jego identyfikację za pomocą unikalnego atrybutu id. W kodzie HTML każdy element może być zidentyfikowany przez atrybut id, co pozwala na bezpośrednią manipulację jego własnościami w JavaScript. Funkcja document.getElementById służy do wyszukiwania elementu o podanym id w strukturze DOM dokumentu. Następnie, używając stylowania CSS poprzez właściwość style, możliwe jest zmienienie wartości display na 'none', co skutkuje ukryciem elementu w przeglądarce. Taka technika jest często wykorzystywana w interaktywnych aplikacjach webowych, gdzie użytkownik musi mieć możliwość dynamicznego manipulowania elementami interfejsu. Praktyka ta jest zgodna ze standardami W3C i pozwala na tworzenie responsywnych, przyjaznych użytkownikowi aplikacji. Dobrym przykładem zastosowania jest tworzenie galeria obrazów, gdzie tylko wybrane zdjęcia są wyświetlane w danym momencie. Taka funkcjonalność sprzyja również poprawie czytelności strony, ponieważ użytkownik może ukrywać i odkrywać treści według własnych potrzeb. Zrozumienie tego mechanizmu jest kluczowe dla każdego, kto chce budować nowoczesne strony internetowe z użyciem HTML, CSS i JavaScript.

Pytanie 4

W trakcie obróbki dźwięku, by wyeliminować niepożądane hałasy wynikające z niskiej jakości mikrofonu, należy użyć narzędzia

A. wyciszenia
B. usuwania szumów
C. obwiedni
D. odgłosów echa
Usuwanie szumów to technika, która jest kluczowa w procesie przetwarzania dźwięku, szczególnie w kontekście nagrań audio i transmisji. Działa na zasadzie identyfikacji i eliminacji niepożądanych dźwięków, takich jak szumy tła, które mogą pochodzić z niskiej jakości mikrofonów lub hałaśliwych środowisk. W praktyce, narzędzia do usuwania szumów analizują dźwięk w czasie rzeczywistym lub podczas edycji i wykorzystują algorytmy, które rozpoznają różnice między pożądanym sygnałem (np. głosem) a szumem. Standardy branżowe, takie jak AES67, podkreślają znaczenie czystości dźwięku w transmisji mediów, co sprawia, że eliminacja szumów staje się kluczowym elementem produkcji audio. Przykładowo, w studio nagraniowym, inżynierowie dźwięku często korzystają z wtyczek do usuwania szumów, aby poprawić jakość nagrań wokalnych. Dzięki tym technikom można osiągnąć klarowność i profesjonalny standard nagrań, co jest niezbędne w przemyśle muzycznym, radiowym czy filmowym.

Pytanie 5

Tabele: Studenci, Zapisy, Zajecia są powiązane relacją. Aby wybrać jedynie nazwiska studentów oraz odpowiadające im idZajecia dla studentów z grupy 15, należy wydać kwerendę

Ilustracja do pytania
A. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
B. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
C. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;
D. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;
W tej odpowiedzi zostało wszystko zrobione zgodnie z zasadami projektowania relacyjnych baz danych oraz praktyk SQL. Użycie JOIN zamiast starego stylu łączenia tabel przez przecinek i warunek WHERE to nie tylko kwestia czytelności, ale już od dawna standard branżowy. JOIN jasno pokazuje, na jakiej zasadzie łączą się tabele, w tym wypadku Studenci i Zapisy – łączymy po id studenta, bo tylko w taki sposób faktycznie powiążemy konkretne osoby z ich zapisami na zajęcia. WHERE grupa = 15 dodatkowo ogranicza wynik do tej konkretnej grupy studentów, co jest bardzo powszechną praktyką filtrowania wyników w zapytaniach. Przy bardziej złożonych systemach, gdzie mamy dużo relacji, taki zapis jest czytelny i łatwy do modyfikacji. Z mojego doświadczenia, jeżeli ktoś pracuje z większą ilością danych, czy nawet pisze bardziej skomplikowane raporty, to dokładnie taki zapis – z wyraźnie określonym JOIN-em i selekcją kolumn – bardzo ułatwia życie. Warto też pamiętać, że w praktyce biznesowej często chcemy wyciągnąć konkretną informację o użytkownikach lub powiązanych encjach, a nie wszystko naraz. W tym zadaniu to właśnie połączenie po idStudenta i selekcja po grupie daje najprecyzyjniejszy i najczystszy rezultat, zgodny i z logiką, i praktyką codziennej pracy z bazami danych.

Pytanie 6

W SQL, przy użyciu polecenia ALTER, można

A. stworzyć nową tabelę
B. usunąć tabelę
C. dodać dane do tabeli
D. zmienić strukturę tabeli
Odpowiedź jest poprawna, ponieważ polecenie ALTER w języku SQL służy do modyfikacji istniejącej struktury tabeli. Umożliwia ono wykonywanie różnych operacji, takich jak dodawanie nowych kolumn, zmiana typu danych istniejących kolumn, a także usuwanie kolumn. Przykładem użycia może być zmiana typu danych kolumny 'wiek' w tabeli 'Użytkownicy' z INTEGER na VARCHAR, co można osiągnąć za pomocą zapytania: ALTER TABLE Użytkownicy MODIFY COLUMN wiek VARCHAR(3). Zmiana struktury tabeli jest istotna w kontekście dostosowywania bazy danych do zmieniających się wymagań aplikacji i użytkowników, co jest kluczowe dla utrzymania jej elastyczności i wydajności. Warto również pamiętać, że modyfikacje struktury tabeli powinny być przeprowadzane z zachowaniem zasad bezpieczeństwa danych oraz odpowiednich procedur kontroli wersji, aby zminimalizować ryzyko utraty danych lub wprowadzenia błędów. Dzięki zrozumieniu i umiejętnemu stosowaniu polecenia ALTER, administratorzy baz danych mogą skuteczniej zarządzać strukturą i integralnością danych.

Pytanie 7

W kodzie HTML znajdziemy formularz. Jaki rezultat zostanie pokazany przez przeglądarkę, jeśli użytkownik wprowadził do pierwszego pola wartość "Przykładowy text"?

Ilustracja do pytania
A. Efekt 3
B. Efekt 4
C. Efekt 2
D. Efekt 1
Efekt 2 jest prawidłowy, ponieważ odpowiada dokładnemu odwzorowaniu HTML. Kod zawiera element <textarea> oraz dwa pola typu checkbox. Przeglądarka wyświetla pole tekstowe o określonym rozmiarze, gdzie użytkownik może wpisać tekst. Checkboxy pozwalają na wybór opcji, niezależnych od siebie, co odróżnia je od radiobuttonów. Przykładowy text wpisany w pole <textarea> zostanie wyświetlony w miejscu tego pola, co jest dobrze widoczne na obrazie odpowiadającym efektowi 2. Warto pamiętać, że <textarea> stosuje się do dłuższych form tekstu, co jest standardem w projektowaniu formularzy. Użycie checkboxów jest zgodne z dobrymi praktykami, gdy użytkownik może zaznaczyć dowolną liczbę opcji. Jest to ważne, aby dostarczyć użytkownikowi intuicyjny interfejs do wprowadzania i wyboru danych. W HTML ważne jest, aby kod był semantyczny i zgodny z oczekiwaniami użytkowników, co ten przykład dobrze ilustruje. Formularze powinny być zawsze testowane pod kątem użyteczności i poprawności w różnych przeglądarkach.

Pytanie 8

Z ilustracji można odczytać, że użytkownik bazy danych posiada uprawnienia do:

Ilustracja do pytania
A. wyświetlania, dodawania i aktualizacji danych.
B. dodawania, aktualizacji i usuwania danych.
C. wyświetlania, aktualizacji i usuwania danych.
D. wyświetlania, dodawania i usuwania danych.
Na ilustracji widać listę uprawnień do bazy danych w typowym narzędziu administracyjnym (bardzo podobne okno można spotkać np. w phpMyAdminie). Zaznaczone są pola SELECT, UPDATE i DELETE, a niezaznaczone INSERT oraz FILE. W praktyce oznacza to, że użytkownik może odczytywać dane (SELECT), modyfikować istniejące rekordy (UPDATE) oraz je usuwać (DELETE), ale nie ma prawa dodawać nowych wierszy (INSERT) ani operować na plikach na serwerze (FILE). Dlatego poprawna odpowiedź to: „wyświetlania, aktualizacji i usuwania danych”. SELECT odpowiada za wyświetlanie/odczyt danych, UPDATE za aktualizację rekordów, a DELETE za kasowanie danych w tabelach. W administracji bazą danych takie precyzyjne rozróżnienie uprawnień jest jedną z podstawowych dobrych praktyk bezpieczeństwa: użytkownik powinien mieć dokładnie takie prawa, jakich potrzebuje do pracy (zasada najmniejszych uprawnień – least privilege). Na przykład: typowy użytkownik aplikacji raportującej potrzebuje zwykle tylko SELECT, bo ma jedynie oglądać dane. Pracownik działu obsługi klienta może mieć SELECT i UPDATE, aby poprawiać błędne dane klientów, ale niekoniecznie DELETE, żeby przypadkiem nie usuwać rekordów. Z kolei konto techniczne używane przez skrypty migracyjne albo instalator systemu może mieć pełen zestaw: SELECT, INSERT, UPDATE, DELETE. Moim zdaniem warto od razu kojarzyć te nazwy z typowymi poleceniami SQL, bo później, przy pisaniu zapytań w kodzie (PHP, JavaScript z backendem, itp.), dokładnie te same słowa kluczowe pojawiają się w instrukcjach. Jeśli system pokazuje uprawnienia tak jak na obrazku, zawsze patrz najpierw, które checkboxy są zaznaczone, i od razu tłumacz je sobie na: odczyt, dodawanie, zmiana, usuwanie danych.

Pytanie 9

Pokazane pole input pozwala na  

<input type = "checkbox" name = "text1" value = "text2">

A. wprowadzenie hasła
B. wybranie opcji
C. wprowadzenie dowolnego tekstu
D. selekcja opcji z listy o wartościach text1 i text2
Odpowiedzi takie jak "wpisanie dowolnego tekstu", "wpisanie hasła" czy "wybranie opcji z listy o wartości text1 i text2" są mylne, bo nie oddają rzeczywistego działania pola typu checkbox. Jak chodzi o checkboxa, to nie wprowadza się tekstu ani haseł. Checkboxy są do wyboru opcji, a nie do wpisywania danych. Wydaje mi się, że pisanie dowolnego tekstu sugeruje, że chodzi o pole tekstowe, a to jest zupełnie inny typ elementu. Z kolei hasło powinno być wprowadzone w polu typu password, które maskuje to, co wpisujemy dla bezpieczeństwa. A wybieranie opcji z listy kojarzy się z rozwijaną listą (select), a nie checkboxem, co też jest niepoprawne. Często mylimy różne typy elementów formularza i nie do końca rozumiemy ich funkcje. Dlatego warto rzucić okiem na dokumentację i przykłady różnych typów pól formularzy, żeby uniknąć podobnych nieporozumień w przyszłości.

Pytanie 10

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:hover { background-color: Pink; }
B. tr { background-color: Pink; }
C. td, th { background-color: Pink; }
D. tr:active { background-color: Pink; }
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 11

Który ze skrótów oznacza sieć bezprzewodową?

A. WLAN
B. WAN
C. MAN
D. LAN
WLAN (Wireless Local Area Network) to bezprzewodowa sieć lokalna – litera „W” (Wireless) wskazuje brak kabli, a łączność zapewnia technologia Wi-Fi (standardy IEEE 802.11). Pozostałe skróty opisują sieci według zasięgu, nie sposobu transmisji: LAN to sieć lokalna (np. w biurze), MAN obejmuje miasto, a WAN to sieć rozległa, jak internet. Dlatego sieć bezprzewodową oznacza skrót WLAN.

Pytanie 12

W przedstawionym kodzie PHP w miejscu kropek powinno znajdować się polecenie

Ilustracja do pytania
A. mysqli_fetch_row($zapytanie);
B. mysqli_num_fields($zapytanie);
C. mysqli_query($zapytanie);
D. mysqli_free_result($zapytanie);
Funkcja mysqli_fetch_row jest prawidłowa w tym kontekście ponieważ służy do pobierania jednego wiersza wyników z zestawu wyników zapytań do bazy danych. Każde wywołanie tej funkcji zwraca tablicę indeksowaną numerycznie reprezentującą wiersz danych co doskonale pasuje do zaprezentowanego kodu PHP. W przedstawionym kodzie mamy do czynienia z pętlą for która iteruje po każdym wierszu zestawu wyników. W każdym kroku pętli echo wyprowadza wartości z wiersza. Użycie mysqli_fetch_row jest zgodne z najlepszymi praktykami ponieważ pozwala na kontrolowane przetwarzanie danych z bazy danych i jest bardziej efektywne przy pracy z dużymi zbiorami danych niż pobieranie wszystkich danych na raz. Dodatkowo taka metoda pozwala na lepsze zarządzanie pamięcią ponieważ przetwarzamy dane wiersz po wierszu co jest ważne przy dużych zbiorach danych. Warto pamiętać że mysqli_fetch_row zwraca null gdy nie ma więcej wierszy do pobrania co jest przydatne do wykrywania końca zestawu wyników. Jest to częsty wybór w wielu aplikacjach webowych do przetwarzania danych pobranych z bazy danych

Pytanie 13

Ile razy zostanie wykonana pętla przedstawiona w języku PHP, zakładając, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?
for($i = 0; $i <= 10; $i++) { ...... }

A. 10 razy
B. Nieskończoność
C. 0 razy
D. 11 razy
Odpowiedzi 0, 10 oraz nieskończoność są niepoprawne z kilku powodów. Przyjęcie, że pętla wykona się 0 razy, jest błędne, ponieważ pętla for rozpoczyna swoje działanie od zainicjowania zmiennej $i na 0. Zgodnie z konstrukcją pętli, pierwsze sprawdzenie warunku $i <= 10 jest pozytywne, co implikuje, że blok kodu zostanie wykonany przynajmniej raz. W odniesieniu do odpowiedzi 10, zakłada ona, że pętla zakończy się, gdy $i osiągnie wartość 10, co jest mylące. W rzeczywistości, pętla wykonuje się 11 razy, ponieważ ostatnie wykonanie kodu następuje przy $i równym 10, a następnie następuje inkrementacja, co sprawia, że $i osiąga 11 i przerywa działanie pętli. Wreszcie, odpowiedź sugerująca nieskończoną ilość iteracji jest również błędna. Nieskończone pętle często wynikają z braku modyfikacji zmiennej sterującej, jednak w tym przypadku pętla for ma zdefiniowaną inkrementację, co zapewnia, że po pewnym czasie pętla zakończy swoje działanie, nie generując nieskończoności. Każda z tych błędnych odpowiedzi pokazuje różne nieporozumienia dotyczące działania pętli for oraz logiki programistycznej w PHP.

Pytanie 14

Selektor CSS a:link {color:red} w arkuszach stylów nazywanych kaskadowymi określa

A. klasę.
B. pseudoelement.
C. identyfikator.
D. pseudoklasę.
Wybór odpowiedzi związanej z klasą, identyfikatorem lub pseudoelementem nie uwzględnia kluczowej różnicy między tymi pojęciami a pseudoklasami. Klasa w CSS definiuje grupę elementów, które mają wspólne cechy stylistyczne, natomiast identyfikator jest unikalny dla jednego elementu na stronie i powinien być używany tylko raz. Klasy i identyfikatory są przypisywane za pomocą atrybutów 'class' i 'id' w HTML, co czyni je bardziej statycznymi, podczas gdy pseudoklasy odnoszą się do konkretnego stanu elementu, co wprowadza element dynamiki. Pseudoelementy, takie jak '::before' lub '::after', również różnią się, ponieważ pozwalają na stylizację części elementu, a nie jego całego stanu. Typowe błędy myślowe związane z myleniem tych pojęć wynikają często z braku zrozumienia, jak działa kaskadowość i dziedziczenie w CSS. Kluczowe jest zrozumienie, że pseudoklasy są narzędziem do reakcji na interakcje użytkownika, co pozwala na bardziej zaawansowane i intuicyjne projektowanie stron internetowych. Ignorowanie tych różnic prowadzi do nieefektywnego stylowania i może obniżać jakość interfejsów użytkownika.

Pytanie 15

Która jednostka CSS jest WZGLĘDNA i zależy od rozmiaru czcionki?

A.
px
B.
pt
C.
em
D.
in
Pozostałe jednostki są BEZWZGLĘDNE – mają stały rozmiar niezależny od czcionki. px to piksele, pt to punkty typograficzne (1/72 cala), a in to cale. Żadna z nich nie zależy od rozmiaru tekstu. Względna jest em, dlatego pierwsza odpowiedź jest poprawna.

Pytanie 16

Która z poniższych instrukcji jest równoważna z poleceniem switch w języku PHP?

switch ($liczba) {
    case 10:
    case 20: $liczba++; break;
    default: $liczba = 0;
}

Instrukcja 1.
if ($liczba==10)
    $liczba++;
else
    $liczba = 0;

Instrukcja 2.
if ($liczba==10 or $liczba==20)
    $liczba++;
else
    $liczba = 0;

Instrukcja 3.
if ($liczba==10 or $liczba==20)
    $liczba++;

Instrukcja 4.
if ($liczba==10 and $liczba==20)
    $liczba++;
else
    $liczba = 0;
A. Polecenie 1
B. Polecenie 2
C. Polecenie 3
D. Polecenie 4
Instrukcja switch w języku PHP pozwala na wykonywanie różnych bloków kodu w zależności od wartości wyrażenia. W przykładzie, instrukcja switch sprawdza zmienną $liczba. Jeśli $liczba wynosi 10 lub 20, zostaje zwiększona o 1, natomiast w każdym innym przypadku przypisana jest wartość 0. Instrukcja 2 jest równoważna, ponieważ używa operatora or, co oznacza, że warunek zostanie spełniony, jeśli $liczba wynosi 10 lub 20, co dokładnie odwzorowuje logikę switch. Kluczowe jest zrozumienie, że operator or jest zgodny z wymaganiami logicznymi dla tego problemu, umożliwiając zwiększenie wartości zmiennej w obu przypadkach. Takie podejście jest zgodne z dobrymi praktykami programistycznymi, pozwalając na przejrzystość i efektywność kodu. Zrozumienie różnicy między operatorami and, or oraz or pozwala na bardziej elastyczne i zrozumiałe konstrukcje logiczne w programowaniu komercyjnym. Praktyka ta jest szczególnie ważna w optymalizowaniu warunkowych bloków kodu w dużych projektach.

Pytanie 17

SELECT miasto, AVG(pensja) FROM pracownicy GROUP BY miasto;
Podane zapytanie wybierze:
A. nazwy miast z powtórzeniami oraz średnią pensję dla każdego z nich.
B. nazwy miast bez powtórzeń oraz sumę pensji dla każdego z nich.
C. nazwy miast bez powtórzeń oraz średnią pensję dla każdego z nich.
D. nazwy miast z powtórzeniami oraz sumę pensji dla każdego z nich.
Poprawnie – w tym zapytaniu kluczowe są dwie rzeczy: funkcja agregująca AVG(pensja) oraz klauzula GROUP BY miasto. Funkcja AVG oblicza średnią arytmetyczną z wartości w danej kolumnie, a nie sumę. To znaczy, że dla każdego miasta baza danych zbierze wszystkie rekordy pracowników z tym miastem, policzy z ich pensji średnią i zwróci jeden wiersz z wynikiem. GROUP BY powoduje, że kolumna miasto staje się kolumną grupującą, więc w wyniku każde miasto pojawi się tylko raz – bez powtórzeń, niezależnie od tego, ilu pracowników z danego miasta jest w tabeli. W praktyce takie zapytanie jest bardzo często używane w raportach i analizach: można w ten sposób sprawdzić, w którym mieście średnia pensja jest najwyższa, porównać poziomy wynagrodzeń między oddziałami firmy, czy przygotować zestawienie dla działu HR albo zarządu. Dobrą praktyką jest nadawanie aliasów kolumnom z funkcjami agregującymi, np.: SELECT miasto, AVG(pensja) AS srednia_pensja FROM pracownicy GROUP BY miasto; Dzięki temu wynik jest czytelniejszy, zwłaszcza gdy dane eksportuje się dalej, np. do Excela lub do aplikacji webowej. Warto też pamiętać, że w standardowym SQL w części SELECT przy użyciu GROUP BY można umieszczać tylko kolumny, po których grupujemy, oraz funkcje agregujące (AVG, SUM, COUNT, MIN, MAX itd.). Jeżeli spróbujemy dodać tam inną zwykłą kolumnę bez agregacji, większość silników bazodanowych zgłosi błąd albo zwróci nieprzewidywalne wartości. Z mojego doświadczenia znajomość takich prostych konstrukcji jak GROUP BY + AVG to absolutna podstawa przy projektowaniu raportów i aplikacji, które polegają na danych biznesowych.

Pytanie 18

W SQL, aby zmodyfikować strukturę tabeli, na przykład dodając lub usuwając kolumnę, należy użyć polecenia

A. ALTER TABLE
B. DROP TABLE
C. UPDATE
D. TRUNCATE
Wybór odpowiedzi innych niż "ALTER TABLE" wynika z nieporozumienia dotyczącego funkcji poszczególnych poleceń SQL. Polecenie "UPDATE" służy do modyfikacji danych w istniejących rekordach, a nie do zmiany struktury tabeli. Użycie "UPDATE" zmienia wartości w kolumnach, ale sama struktura tabeli pozostaje niezmieniona. "TRUNCATE" to polecenie, które pozwala na usunięcie wszystkich wierszy z tabeli bez usuwania samej tabeli, co oznacza, że nie zapewnia ono możliwości dodawania lub usuwania kolumn. Z kolei "DROP TABLE" całkowicie usuwa tabelę z bazy danych, co prowadzi do utraty wszystkich danych w niej zawartych, co jest zupełnie inną operacją niż zmiana struktury tabeli. Typowym błędem jest mylenie pojęć związanych z modyfikacją danych i strukturą bazy. W pracy z relacyjnymi bazami danych kluczowe jest zrozumienie, kiedy stosować konkretne polecenia, aby uniknąć niezamierzonych konsekwencji, takich jak utrata danych lub usunięcie potrzebnych struktur. Dlatego istotne jest, aby korzystać z odpowiednich narzędzi i poleceń w zależności od zamierzonego celu, co w przypadku zmiany struktury tabeli jednoznacznie wskazuje na użycie "ALTER TABLE".

Pytanie 19

W CSS zapis selektora p > i { color: red; } wskazuje, że kolor czerwony zostanie zastosowany do

A. wyłącznie tekstu w znaczniku <i>, który znajduje się bezpośrednio wewnątrz znacznika <p>
B. wszystkiego tekstu w znaczniku <p> z wyjątkiem tekstu w znaczniku <i>
C. tylko tego tekstu w znaczniku <p>, który ma przypisaną klasę o nazwie i
D. wszelkiego tekstu w znaczniku <p> lub wszelkiego tekstu w znaczniku <i>
Zrozumienie selektorów CSS jest kluczowe dla ich poprawnego zastosowania. W przypadku analizy odpowiedzi, które nie są poprawne, istnieją podstawowe błędy w interpretacji selektorów. Wskazanie, że każdy tekst w znaczniku <p> lub <i> miałby być sformatowany, świadczy o mylnym rozumieniu, jak działają selektory CSS. Selekcja całej zawartości <p> lub <i> ignoruje kluczowy element selektora, jakim jest symbol '>', który precyzyjnie definiuje relację między elementami. Z kolei stwierdzenie, że każdy tekst w znaczniku <p> za wyjątkiem tych w znaczniku <i> byłby formatowany, także wprowadza w błąd, ponieważ nie ma to zastosowania do selektora dzieci. W rzeczywistości, forma ta nie wprowadza w życie żadnych reguł CSS i prowadzi do nieporozumień. Pojęcie przypisania klasy w kontekście selektora określającego <i> jest również mylące; klasy są definiowane oddzielnie i nie mają wpływu na znaczniki bezpośrednio. Kluczowe jest, aby w zrozumieniu CSS zwracać uwagę na hierarchię i relacje między elementami, co pozwala na efektywną kontrolę nad stylem prezentacji treści w dokumentach HTML.

Pytanie 20

Na czym polega walidacja pól formularza?

A. na ustaleniu, który użytkownik wprowadził dane
B. na sprawdzeniu, czy istnieje plik PHP odbierający dane
C. na sprawdzeniu, czy użytkownik jest zalogowany
D. na sprawdzeniu, czy wprowadzone dane spełniają określone reguły
Pozostałe odpowiedzi dotyczą innych zagadnień. Sprawdzanie, czy użytkownik jest zalogowany, to UWIERZYTELNIANIE (kontrola dostępu), a nie walidacja danych. Ustalanie, KTO wprowadził dane, to identyfikacja użytkownika. Istnienie pliku PHP odbierającego dane to kwestia konfiguracji, nie poprawności wpisanych wartości. Walidacja sprawdza, czy dane spełniają reguły, dlatego czwarta odpowiedź jest poprawna.

Pytanie 21

Konstrukcja w języku SQL ALTER TABLE USA... służy do

A. stworzenia nowej tabeli USA
B. nadpisania istniejącej tabeli USA
C. usunięcia tabeli USA
D. zmiany tabeli USA
Polecenie SQL ALTER TABLE jest używane do modyfikacji istniejącej tabeli w bazie danych. W kontekście odpowiedzi na to pytanie, modyfikacja tabeli USA może obejmować różne operacje, takie jak dodawanie nowych kolumn, modyfikowanie istniejących kolumn, usuwanie kolumn lub zmiana typu danych kolumn. Przykładowo, jeśli chcemy dodać kolumnę z datą utworzenia rekordu, moglibyśmy użyć polecenia ALTER TABLE USA ADD COLUMN created_at DATE. Ważne jest, aby pamiętać, że ALTER TABLE nie tworzy nowej tabeli, ani jej nie usuwa, co jest kluczowe dla zrozumienia jego funkcji. Dobre praktyki przy użyciu ALTER TABLE obejmują wykonanie kopii zapasowej bazy danych przed wprowadzeniem zmian, aby uniknąć utraty danych, a także rozważenie wpływu wprowadzanych zmian na już istniejące dane oraz indeksy. Ponadto, każda operacja ALTER TABLE może wymagać zablokowania tabeli, co wpływa na dostępność bazy danych podczas modyfikacji.

Pytanie 22

Jakie właściwości stylu CSS poprawnie definiują dla akapitu czcionkę: Arial; jej wielkość: 16 pt; oraz styl czcionki: kursywa?

A. p {font-family: Arial; font-size: 16px; font-variant: normal;}
B. p {font-style: Arial; size: 16px; font-weight: normal;}
C. p {font-style: Arial; font-size: 16pt; font-variant: normal;}
D. p {font-family: Arial; font-size: 16pt; font-style: italic;}
W analizowanych odpowiedziach zawarte są błędy, które wynikają z niepoprawnego użycia właściwości CSS. Przede wszystkim w przypadku pierwszej odpowiedzi, użycie font-style do definiowania kroju czcionki jest całkowicie błędne, ponieważ ta właściwość powinna odnosić się do stylu (np. italic, normal), a nie do krój czcionki, który powinien być definiowany przez font-family. Druga odpowiedź także zawiera podobne niedociągnięcie, w której zamiast font-family podano font-style, co prowadzi do nieprawidłowego zinterpretowania deklaracji. Dodatkowo, właściwość size jest niepoprawna, ponieważ powinna być font-size; użycie size nie jest zgodne z żadnym standardem CSS. Trzecia odpowiedź z kolei posługuje się jednostką px zamiast pt dla rozmiaru czcionki, co może prowadzić do problemów z wyświetlaniem tekstu na różnych urządzeniach. Chociaż px jest popularną jednostką w CSS, nie jest ona zalecana, gdy mamy do czynienia z typografią opartą na punktach, co jest szczególnie istotne w druku. Wreszcie, czwarta odpowiedź również niepoprawnie używa jednostki px oraz font-variant w kontekście stylu czcionki, co świadczy o braku zrozumienia zastosowań tych właściwości. Kluczowe jest, aby rozumieć funkcję każdej z właściwości CSS i stosować je zgodnie z ich przeznaczeniem, co pozwoli na tworzenie estetycznych i funkcjonalnych stylów w projektach webowych.

Pytanie 23

Funkcja zapisana w języku PHP wygląda tak patrz ramka): Jej celem jest

Ilustracja do pytania
A. zwrócenie wartości 0, gdy liczba jest parzysta
B. wypisanie liczby nieparzystej
C. zwrócenie wartości 1, gdy liczba jest parzysta
D. wypisanie liczby parzystej
Funkcja w języku PHP opisana na egzaminie służy do sprawdzania czy podana liczba jest parzysta. Wybór zwracanych wartości 1 i 0 jest klasycznym przykładem użycia binarnych wartości logicznych w programowaniu. Niektóre niepoprawne odpowiedzi mogą wynikać z błędnego zrozumienia działania operatora modulo %. Operator ten oblicza resztę z dzielenia i w przypadku operacji liczb całkowitych przydaje się do określania parzystości. Jeśli liczba jest podzielna przez 2 bez reszty czyli modulo zwraca 0 funkcja zwraca 1 co oznacza że liczba jest parzysta. Niektóre odpowiedzi sugerują że funkcja zwraca lub wypisuje liczby parzyste bądź nieparzyste co jest błędnym rozumieniem działania funkcji zwracającej wartości w kontekście operacji logicznych. Kluczowe jest zrozumienie że funkcje zwracają wartości a nie wypisują ich w przypadku takich jak ten gdzie celem jest jedynie sprawdzenie a nie wyświetlenie wartości. Wybór wartości zwracanych 1 i 0 jest także zgodny z konwencjami logicznymi stosowanymi w warunkowych instrukcjach programistycznych co może być mylnie postrzegane jako konieczność wyświetlenia wyniku. Ważne jest aby pamiętać że w programowaniu logiczne zwracanie wartości jest często używane do późniejszego wykorzystania przez inne części aplikacji w celu podejmowania decyzji lub sterowania przepływem programu. Zrozumienie tych podstawowych zasad pozwala uniknąć błędnych interpretacji i wykorzystać pełnię możliwości jakie daje programowanie w językach takich jak PHP.

Pytanie 24

W języku PHPnie ma możliwości

A. tworzenie dynamicznej zawartości strony internetowej
B. obróbka informacji przechowywanych w bazie danych
C. przetwarzanie danych z formularzy
D. zmienianie dynamiczne treści strony HTML w przeglądarce
Odpowiedź dotycząca zmieniania dynamicznej zawartości strony HTML w przeglądarce jest poprawna, ponieważ PHP jest językiem skryptowym działającym po stronie serwera. Oznacza to, że PHP nie jest w stanie bezpośrednio modyfikować zawartości strony HTML po jej załadowaniu w przeglądarce użytkownika. Zamiast tego, PHP generuje HTML, który następnie jest przesyłany do przeglądarki. Dynamiczna zawartość strony może być generowana na podstawie danych z bazy danych lub formularzy, ale wszelkie zmiany w HTML po stronie klienta wymagają użycia języków, które działają po stronie przeglądarki, takich jak JavaScript. Przykładem może być sytuacja, w której użytkownik wypełnia formularz, a dane są przetwarzane przez PHP, które zwraca zaktualizowaną stronę. W przypadku potrzeby dynamicznych zmian, JavaScript może być użyty do manipulacji DOM po załadowaniu strony. Warto również zauważyć, że zgodnie z dobrymi praktykami, powinno się oddzielać logikę serwerową (PHP) od logiki klienckiej (JavaScript), co przyczynia się do lepszej struktury kodu i ułatwia jego utrzymanie.

Pytanie 25

Która z pętli w PHP umożliwia przeprowadzenie operacji na wszystkich elementach tablicy z automatycznym przypisaniem indeksów tych elementów?

A. while
B. do...while
C. foreach
D. for
Zarówno konstrukcja 'for', 'while', jak i 'do...while' są pętlami, które służą do wykonywania bloków kodu wielokrotnie, jednak każda z nich ma swoje specyficzne zastosowania, które mogą prowadzić do nieefektywności w kontekście iteracji po tablicach. Użycie pętli 'for' wymaga manualnego zarządzania indeksami, co zwiększa ryzyko błędów, zwłaszcza w przypadku tablic o zmiennej długości. Przykładowo, iterując po tablicy za pomocą 'for', musimy ustawić warunki początkowe, końcowe oraz właściwie modyfikować indeks, co może prowadzić do błędów, jeśli nie zostanie to prawidłowo skonfigurowane. Z drugiej strony, pętle 'while' i 'do...while' są bardziej elastyczne, ale również wymagają dodatkowego sprawdzania warunków, co czyni je mniej przejrzystymi w kontekście iteracji po tablicach. Często prowadzi to do sytuacji, w których programiści popełniają błędy logiczne, takie jak zapętlenie się lub pominięcie elementów, co z kolei skutkuje trudnościami w utrzymaniu kodu. Dlatego, zamiast stosować te pętle, lepiej jest korzystać z 'foreach', która jest dedykowana do pracy z tablicami i eliminuje wiele problemów związanych z zarządzaniem indeksami.

Pytanie 26

Parametr face w znaczniku <font> jest używany do określenia

A. koloru czcionki
B. stylów czcionki
C. rozmiaru czcionki
D. typy czcionki
Parametr <b>face</b> znacznika <b>&lt;font&gt;</b> jest używany do określenia nazwy czcionki, co jest kluczowe dla stylizacji tekstu w dokumentach HTML. Umożliwia on deweloperom wybór konkretnej czcionki, która będzie używana do wyświetlania tekstu, co wpływa na jego estetykę oraz czytelność. Przykładowo, można użyć wartości takiej jak 'Arial', 'Times New Roman' czy 'Courier New', aby zdefiniować preferowaną czcionkę, co jest szczególnie ważne w przypadku identyfikacji wizualnej brandu. W praktyce, dobór odpowiedniej czcionki wpływa na doświadczenie użytkownika, a także na dostępność treści. Warto zaznaczyć, że w nowoczesnych praktykach webowych, stosowanie CSS do stylizacji tekstu stało się bardziej zalecane niż używanie znaczników <font>, co wynika z dążenia do separacji treści od prezentacji. Dobre praktyki wskazują na użycie właściwości CSS takich jak 'font-family', co jest bardziej elastyczne i zgodne z aktualnymi standardami sieciowymi.

Pytanie 27

W języku PHP wartość 1 została przypisana do zmiennej $a. Porównanie $a === $b zwraca true, gdy zmienna $b ma wartość

A. C. 1 lub '1'
B. B. '1'
C. D. "1" lub '1'
D. A. *1
W przypadku użycia operatora == w porównaniu zmiennych w PHP, może dojść do automatycznej konwersji typów, co prowadzi do niejasnych wyników. Wiele osób myśli, że porównanie zmiennej typu integer z zmienną typu string zawsze będzie zachodzić poprawnie, co jest jednym z najczęstszych błędów. Na przykład, jeśli zmienna $b jest zainicjowana wartością '1' (string), operator == zwróci true, ponieważ PHP automatycznie przekształci string na liczbę przed porównaniem. To podejście może prowadzić do nieprzewidywalnych wyników, gdy porównujemy różne typy danych, co może być źródłem błędów w bardziej złożonych aplikacjach. Ponadto, w kontekście programowania w PHP, praktyki związane z silnym typowaniem zyskują na znaczeniu, a operator === staje się preferowany, ponieważ zapewnia większą przewidywalność i bezpieczeństwo kodu. Używanie operatora == może prowadzić do sytuacji, gdzie programista nie jest świadomy, że różne typy danych są porównywane, co może skutkować nieprawidłowymi wynikami. Warto również rozważyć, że w przypadku porównania z typem string, takie jak '1', PHP zastosuje konwersję, co może prowadzić do błędów, jeśli nie jesteśmy świadomi tej konwencji. Dlatego kluczowe jest zrozumienie różnicy między tymi operatorami, aby uniknąć niezamierzonych konsekwencji w logicznych warunkach w kodzie.

Pytanie 28

Tworzenie struktury logicznej strony internetowej polega na

A. stworzonym zestawie grafik dla strony
B. określeniu zawartości witryny
C. określeniu adresów URL dla podstron serwisu
D. umiejscowieniu elementów w wyznaczonych lokalizacjach witryny
Wiesz, wiele osób myli projektowanie witryny z robieniem grafik czy pisaniem treści. Całkiem to zrozumiałe, bo jest sporo różnych rzeczy związanych z tworzeniem stron. Jasne, grafiki są istotne, ale to nie wszystko, na czym się skupiamy, bo sama estetyka nie wystarczy, żeby strona była funkcjonalna. No i ustalanie adresów URL dla podstron też jest ważne, ale bardziej dotyczy struktury strony niż samego układu. Definiowanie treści to jedno, ale najważniejsze jest to, jak je prezentujemy. Często ludzie myślą, że układ i treść to to samo, a w rzeczywistości układ to to, jak treści są ułożone i jakie działania ułatwiają. Żeby dobrze zaprojektować stronę, trzeba spojrzeć na całość i zrozumieć, jakie funkcje ma spełniać, nie tylko skupiać się na pojedynczych grafikach czy tekstach. W moim odczuciu kluczowe jest, żeby myśleć o interakcji użytkownika z witryną - to wymaga umiejętności projektowania i analizy, by stworzyć efektywny interfejs.

Pytanie 29

Jakie będzie rezultatem działania poniższego kodu PHP?

$a = $c = true; 
$b = $d = false;
if(($a && $b) || ($c && $d)) echo 'warunek1';
elseif(($a && $b) || ($c || $d)) echo 'warunek2';
elseif(($c && $d) || (!$a)) echo 'warunek3';
else echo 'warunek4';
A. warunek3
B. warunek2
C. warunek1
D. warunek4
Analizowany kod PHP to przykład użycia operatorów logicznych w strukturze sterującej if-else, gdzie każda z odpowiedzi reprezentuje wynik działania konkretnego bloku kodu. Zmienna $a i $c są zainicjalizowane jako true, natomiast $b i $d jako false. Zrozumienie tego jest kluczowe dla poprawnej analizy logicznej. Pierwszy warunek if z ($a && $b) || ($c && $d) nie zostaje spełniony, ponieważ zarówno (true && false) jak i (true && false) zwracają false, co skutkuje false || false, czyli false. Kolejna sekcja elseif obejmuje ($a && $b) || ($c || $d). Tutaj (true && false) zwraca false, ale (true || false) daje true, co prowadzi do false || true, czyli true, co spełnia warunek i 'warunek2' zostaje wyświetlony. Trzeci warunek elseif, sprawdzający ($c && $d) || (!$a), nie jest rozpatrywany, ponieważ poprzedni warunek był już true. Warto podkreślić znaczenie logicznych operatorów w programowaniu: && i || odpowiadają za łączenie warunków, a ich poprawne zrozumienie pozwala na efektywne modelowanie logiki aplikacji. Typowym błędem jest mylenie znaczenia tych operatorów, co może prowadzić do błędnych decyzji warunkowych w kodzie. Programiści powinni zawsze upewniać się, że logika warunków jest zgodna z zamierzonym działaniem programu, a testowanie jest kluczowym elementem tego procesu. Zastosowanie testów jednostkowych może pomóc w zapewnieniu prawidłowego działania skomplikowanych struktur logicznych, pozwalając na wykrycie i korektę potencjalnych błędów logicznych.

Pytanie 30

W pliku CSS znajdują się poniższe style. Kiedy klikniemy na hiperłącze i wrócimy na stronę, jego kolor zmieni się na

a { color: Brown; }
a:link { color: Green; }
a:visited { color: Red; }
a:hover { color: Yellow; }
A. czerwony
B. żółty
C. brązowy
D. zielony
W zrozumieniu działania stylów CSS dla hiperłączy kluczowe jest poznanie zastosowania pseudoklas takich jak a:link a:visited i a:hover. Każda z tych pseudoklas odpowiada za inny stan linku. Pseudoklasa a:link stosuje się do linków które użytkownik jeszcze nie odwiedził dlatego kolor zielony przypisany do tej pseudoklasy oznaczałby nieodwiedzony link co w tym przypadku jest nieprawidłowe. Pseudoklasa a:hover zmienia kolor podczas najechania myszką i tutaj ustalono kolor żółty który jest tylko tymczasowy. Błędne byłoby uznawanie że kolor żółty pozostanie po odwiedzeniu linku ponieważ dotyczy on jedynie stanu przejściowego. Pseudoklasa a:visited która definiuje kolor po odwiedzeniu jest tu kluczowa ponieważ określa właśnie kolor po powrocie na stronę. Zastosowanie odpowiednich stylów pomaga w nawigacji i poprawia dostępność. Typowe błędy związane z rozumieniem pseudoklas wynikają z braku znajomości ich specyfiki działania oraz priorytetu jaki mają w kaskadowym modelu stylów. Dlatego zrozumienie i prawidłowe stosowanie tych zasad jest fundamentalne w projektowaniu intuicyjnych i przyjaznych dla użytkownika stron internetowych co jest zgodne z najlepszymi praktykami branżowymi i standardami WCAG.

Pytanie 31

W języku JavaScript, aby zmienić wartość atrybutu elementu HTML, po uzyskaniu obiektu za pomocą metody getElementById, należy zastosować

A. metodę setAttribute
B. pole innerHTML
C. pole attribute i podać nazwę atrybutu
D. metodę getAttribute
Metoda setAttribute w JavaScript jest kluczowym narzędziem do modyfikacji atrybutów elementów DOM. Po uzyskaniu referencji do elementu za pomocą metody getElementById, możemy wykorzystać setAttribute do ustawienia lub zmiany wartości dowolnego atrybutu HTML. Na przykład, aby zmienić atrybut 'src' obrazka, można użyć następującego kodu: const img = document.getElementById('myImage'); img.setAttribute('src', 'newImage.png');. Takie podejście jest zgodne z najlepszymi praktykami, zapewniając elastyczność i kontrolę nad elementami DOM. Metoda ta przyjmuje dwa argumenty: nazwę atrybutu oraz jego nową wartość. Warto pamiętać, że setAttribute działa nie tylko z atrybutami standardowymi, ale również z niestandardowymi i danymi atrybutami, co pozwala na dynamiczne rozszerzanie możliwości HTML. Dobre praktyki zalecają również użycie setAttribute, gdy chcemy zapewnić pełną zgodność z HTML5 i zachować semantykę dokumentu, co jest kluczowe dla dostępności i SEO.

Pytanie 32

W języku PHP instrukcja foreach jest rodzajem

A. pętli, niezależnie od rodzaju zmiennej
B. instrukcji wyboru, dla elementów tablicy
C. pętli, przeznaczonej wyłącznie dla elementów tablicy
D. instrukcji warunkowej, niezależnie od typu zmiennej
Trochę mylne jest stwierdzenie, że <i>foreach</i> to pętla, która może działać na każdej zmiennej. W rzeczywistości <i>foreach</i> jest ściśle związana z tablicami. Jak spróbujesz użyć jej na zmiennej, która nie jest tablicą, to dostaniesz błąd. I nie ma co mówić, że <i>foreach</i> to instrukcja warunkowa, bo to też nieprawda. Instrukcje warunkowe, jak <i>if</i>, podejmują decyzje, a <i>foreach</i> jest do tego, żeby iterować. I to, co ktoś napisał o pętli wyboru, też wprowadza w błąd. Pętle jak <i>for</i> czy <i>while</i> powtarzają kod na podstawie warunków, a <i>foreach</i> to po prostu iteracja po elementach tablicy. Tak że tu ważne jest, żeby nie mylić pętli iteracyjnych z warunkowymi oraz rozumieć, gdzie można używać <i>foreach</i>, bo jak się tego nie zrozumie, to mogą być problemy w programowaniu w PHP i można nie wykorzystać dostępnych narzędzi jak trzeba.

Pytanie 33

W systemie MySQL przyznanie roli o nazwie DBManager umożliwia użytkownikowi wykonywanie

A. wszystkie operacje związane z bazami danych oraz użytkownikami serwera
B. nadzór nad serwerem
C. wszystkie operacje na bazach danych serwera
D. zakładanie użytkowników serwera oraz definiowanie ich haseł
Wybór odpowiedzi, która sugeruje, że rola DBManager przyznaje prawa do monitorowania serwera, tworzenia użytkowników serwera oraz wykonywania wszystkich operacji na bazach danych i użytkownikach, może prowadzić do mylnych wniosków na temat rzeczywistych możliwości tej roli. Monitorowanie serwera jako funkcja nie jest bezpośrednio związane z rolą DBManager. Chociaż monitorowanie jest istotnym aspektem zarządzania bazami danych, odpowiednie uprawnienia związane z tą funkcjonalnością są przyznawane innym rolom lub użytkownikom posiadającym konkretne przywileje, takie jak rola DBMonitor. Tworzenie użytkowników serwera i ustawianie im haseł również wykracza poza standardowe uprawnienia roli DBManager. Zwykle te czynności są przypisane administratorom systemu, którzy mają kontrolę nad bezpieczeństwem całego środowiska bazodanowego. Odpowiedzi sugerujące możliwość wykonywania wszelkich operacji na bazach danych i użytkownikach mogą sugerować, że rola DBManager obejmuje pełne uprawnienia administracyjne, co nie jest zgodne z praktykami bezpieczeństwa, które zalecają ograniczanie uprawnień w oparciu o zasadę najmniejszych uprawnień. Takie zrozumienie jest kluczowe, ponieważ przyznawanie zbyt szerokich uprawnień może prowadzić do luk w zabezpieczeniach i nadużyć, co narusza standardy zarządzania danymi i bezpieczeństwa w organizacjach. Dlatego ważne jest, aby dokładnie rozumieć zakres dostępnych ról i ich odpowiedzialności, aby zapewnić właściwe zarządzanie dostępem i bezpieczeństwem danych.

Pytanie 34

Dla strony internetowej stworzono grafikę rysunek.jpg o wymiarach: szerokość 200 px, wysokość 100 px. Jak można wyświetlić tę grafikę jako miniaturę – pomniejszoną z zachowaniem proporcji, używając znacznika?

A. <img src="rysunek.png" style="width: 50px">
B. <img src="rysunek.png">
C. <img src="rysunek.png" style="width: 25px; height:50px;">
D. <img src="rysunek.png" style="width: 25px; height:25px;">
Pozostałe odpowiedzi niestety nie trzymają się zasady zachowania proporcji, jak zmniejszamy grafikę. W pierwszej opcji, <img src="rysunek.png" style="width: 25px; height:50px"> zestawione wartości szerokości i wysokości są krzywe, co powoduje zniekształcenie obrazu. Oryginalny rysunek ma proporcje 2:1, a tu wychodzi 1:2, co może wprowadzać ludzi w błąd. W trzeciej opcji, <img src="rysunek.png"> brak wskazania szerokości i wysokości sprawia, że obrazek wyświetla się w swoim pierwotnym rozmiarze, a to nie jest cel, bo chcemy mieć miniaturę. A ostatnia odpowiedź, <img src="rysunek.png" style="width: 25px; height:25px;"> ustala jednakowe wymiary, przez co wychodzi kwadratowa miniaturka, co nie zgadza się z oryginalnymi proporcjami. Generalnie, niepoprawne odpowiedzi mogą wynikać z braku zrozumienia, dlaczego dbanie o proporcje w grafikach jest takie ważne. To kluczowe zagadnienie w projektowaniu stron, bo dobre proporcje to podstawa estetyki i funkcjonalności wizualnych elementów na stronie.

Pytanie 35

W tabeli artykuly w bazie danych sklepu znajduje się pole o nazwie nowy. Jak należy wykonać kwerendę, aby wypełnić to pole wartościami TRUE dla wszystkich rekordów?

A. INSERT INTO artykuly VALUE nowy=TRUE;
B. UPDATE artykuly SET nowy=TRUE;
C. UPDATE nowy FROM artykuly VALUE TRUE;
D. INSERT INTO nowy FROM artykuly SET TRUE;
Pozostałe odpowiedzi są błędne z kilku powodów. Pierwsza, 'INSERT INTO artykuly VALUE nowy=TRUE;', jest niepoprawna, bo instrukcja INSERT służy do dodawania nowych rekordów, a nie do aktualizacji tych, które już są. Używanie tej komendy w kontekście aktualizacji to poważny błąd w zrozumieniu baz danych. Druga odpowiedź, 'UPDATE nowy FROM artykuly VALUE TRUE;', też nie jest dobra, bo składnia tutaj jest błędna. Komenda UPDATE nie używa słowa 'FROM' w taki sposób i brakuje też struktury, która określałaby, które rekordy mają być zmienione. Ostatnia odpowiedź, 'INSERT INTO nowy FROM artykuly SET TRUE;', jeszcze bardziej myli, bo 'INSERT INTO' nie służy do zmiany wartości w kolumnie. Raczej dodaje nowe wiersze do tabeli. Takie podejście łamie zasady SQL i może prowadzić do błędów w zapytaniach. Ważne jest, żeby zrozumieć różnice pomiędzy INSERT a UPDATE, aby skutecznie zarządzać danymi.

Pytanie 36

Aby nałożyć na zdjęcie półprzezroczysty znak wodny (logo prześwitujące przez obraz), należy:

A. poprawić nasycenie kolorów
B. zastosować filtr Gaussa
C. odpowiednio przyciąć obraz
D. wykorzystać kanał alfa
Półprzezroczysty znak wodny powstaje dzięki KANAŁOWI ALFA – steruje on kryciem (przezroczystością) pikseli, więc nałożone logo może częściowo prześwitywać przez zdjęcie. Ustawiając pośrednią wartość alfa (np. 50%), uzyskuje się efekt „prześwitywania”. Dlatego należy wykorzystać kanał alfa.

Pytanie 37

Która metoda obiektu Math dla x = 2.8 zwróci 2?

A.
Math.exp(x)
B.
Math.ceil(x)
C.
Math.floor(x)
D.
Math.sqrt(x)
Pozostałe metody dają inny wynik. Math.ceil(2.8) zaokrągla W GÓRĘ – zwróci 3, a nie 2. Math.exp(x) oblicza wartość e podniesionego do potęgi x (wynik daleki od 2). Math.sqrt(x) liczy pierwiastek kwadratowy (sqrt(2.8)1,67). Zaokrąglenie w dół do 2 daje Math.floor(2.8), dlatego czwarta odpowiedź jest poprawna.

Pytanie 38

Język HTML posiada nagłówki, które służą do tworzenia hierarchii treści. Nagłówki te występują tylko w zakresie

A. h1 – h6
B. h1 – h4
C. h1 – h8
D. h1 – h10
Wybór h1 – h4 jako zakresu nagłówków jest błędny, ponieważ nie odzwierciedla pełnej specyfikacji HTML. HTML oferuje sześć poziomów nagłówków, a ograniczenie się do h4 pomija istotne elementy struktury dokumentu. Użytkownicy mogą myśleć, że wystarczy ograniczyć hierarchię nagłówków do czterech poziomów, co prowadzi do nieoptymalnego zarządzania treścią. Prawidłowe wykorzystanie nagłówków jest kluczowe dla dostępności i SEO. Gdy nie używamy h5 i h6, jesteśmy narażeni na utratę możliwości precyzyjnego wskazywania podtematów oraz organizacji treści. Dodatkowo, pomijając niższe poziomy nagłówków, możemy wprowadzać w błąd czytelników, którzy mogą mieć trudności z nawigacją po stronie. Kluczowe jest, aby każdy nagłówek miał swoje miejsce w hierarchii, co ułatwia zarówno ludziom, jak i algorytmom zrozumienie struktury treści. Ponadto standardy W3C oraz najlepsze praktyki w zakresie tworzenia stron internetowych zalecają pełne wykorzystanie wszystkich dostępnych poziomów nagłówków, aby zapewnić spójność i logiczność w organizacji treści. Dlatego wybór h1 – h4 jest niezgodny z rzeczywistością techniczną języka HTML.

Pytanie 39

Do czego służy polecenie mysqldump?

A. do utworzenia kopii zapasowej bazy
B. do naprawy niespójnej bazy
C. do sprawdzenia integralności bazy
D. do optymalizacji bazy
Narzędzie mysqldump tworzy KOPIĘ ZAPASOWĄ bazy MySQL – generuje plik tekstowy (zrzut) z poleceniami SQL, które odtwarzają strukturę i dane, np. mysqldump -u root -p baza > kopia.sql. Z takiej kopii bazę przywraca się klientem mysql. Dlatego mysqldump służy do tworzenia kopii zapasowej.

Pytanie 40

Definicja formularza została wykorzystana na stronie www, która przesyła dane do pliku w języku PHP. W której tablicy będą dostępne informacje z formularza?

<form action="plik.php" method="post">
A. $_GET
B. $_COOKIE
C. $_POST
D. $_ACTION
W kontekście przesyłania danych z formularza w PHP, zrozumienie funkcji różnych superglobalnych tablic jest kluczowe. Odpowiedzi takie jak $_GET, $_COOKIE i $_ACTION wskazują na nieporozumienia dotyczące sposobu, w jaki formularze interagują z PHP. Tablica $_GET jest używana do odbierania danych przesyłanych metodą GET, co oznacza, że dane są dołączane do URL jako parametry. To podejście ma istotne ograniczenia, zwłaszcza w zakresie bezpieczeństwa oraz maksymalnej długości danych, co czyni je nieodpowiednim do bardziej złożonych formularzy, w których przesyłane informacje mogą być poufne. $_COOKIE z kolei służy do obsługi danych przechowywanych w plikach cookie, które są wykorzystywane głównie do śledzenia sesji użytkowników, a nie do bezpośredniego przesyłania danych z formularzy. Warto również zauważyć, że $_ACTION nie jest standardową superglobalną tablicą w PHP, co sprawia, że jest to odpowiedź błędna, ponieważ taka tablica po prostu nie istnieje w kontekście PHP. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków obejmują mylenie metod przesyłania danych oraz niewłaściwe zrozumienie roli poszczególnych superglobalnych tablic. Zrozumienie tych różnic jest kluczowe dla prawidłowego projektowania aplikacji webowych i zapewnienia bezpieczeństwa przesyłanych danych.