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: 13 kwietnia 2026 09:43
  • Data zakończenia: 13 kwietnia 2026 10:07

Egzamin zdany!

Wynik: 30/40 punktów (75,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

Dla celu strony internetowej stworzono grafikę rysunek.jpg o wymiarach: szerokość 200 px, wysokość 100 px. Aby zaprezentować tę grafikę jako miniaturę – pomniejszoną z zachowaniem proporcji, można użyć znacznika

A. <img src="/rysunek.png">
B. <img src="/rysunek.png" style="width: 50px">
C. <img src="/rysunek.png" style="width: 25px; height:25px;">
D. <img src="/rysunek.png" style="width: 25px; height:50px;">
Wybór innych opcji, takich jak <img src="/rysunek.png" style="width: 25px; height:50px;"> czy <img src="/rysunek.png" style="width: 25px; height:25px;"> prowadzi do nieproporcjonalnego wyświetlenia obrazu, co skutkuje jego zniekształceniem. Ustalenie zarówno szerokości, jak i wysokości w stylach CSS sprawia, że obrazek jest zmuszony do dopasowania się do tych wymiarów, co narusza jego naturalne proporcje. To podejście jest niezgodne z zaleceniami dotyczącymi responsywności, które sugerują, aby ograniczać się do jednego wymiaru, co pozwala drugiemu na automatyczne dostosowanie. Typowym błędem jest przyjęcie, że podanie obu wymiarów w pikselach zawsze przyniesie optymalny efekt wizualny, co jest mylące i może prowadzić do złego doświadczenia użytkownika. Zniekształcenie obrazów nie tylko obniża estetykę strony, ale także może wpływać na jej użyteczność oraz SEO. Dobrą praktyką jest również używanie atrybutów 'alt' w znacznikach obrazów, aby poprawić dostępność i SEO, co nie zostało uwzględnione w żadnej z opcji. Warto także zauważyć, że stosowanie odpowiednich formatów obrazów i ich optymalizacja pod względem rozmiaru pliku są kluczowe dla przyspieszenia ładowania strony.

Pytanie 2

Która z komórek tabeli została sformatowana przedstawionym stylem CSS zakładając, że pozostałe własności przyjmują wartości domyślne?

td {
  border: 1px solid black;
  padding: 15px;
  height: 40px;
  vertical-align: bottom;
}
dane w tabeli


dane w tabelidane w tabelidane w tabeli
Komórka 1Komórka 2Komórka 3Komórka 4
A. Komórka 1.
B. Komórka 4.
C. Komórka 2.
D. Komórka 3.
Niestety, ta odpowiedź jest nieprawidłowa. Wybór jakiejkolwiek innej komórki oprócz komórki 3. oznacza niezrozumienie, jak działają style CSS w kontekście formatowania komórek tabeli. Obramowanie, padding, wysokość i wyrównanie tekstu to atrybuty CSS, które wpływają na wygląd komórki tabeli. Często błędem jest mylenie paddingu (wewnętrznego marginesu) z marginesem (zewnętrznym marginesem) lub niezrozumienie, jak działa wyrównanie tekstu. Warto pamiętać, że w CSS 'vertical-align: bottom' oznacza wyrównanie tekstu do dolnej krawędzi komórki. Wybór innej komórki, która nie spełnia podanych kryteriów, sugeruje, że nie zrozumiałeś prawidłowo tych konceptów. Radzę powtórzyć materiał dotyczący stylizacji komórek tabeli w CSS i spróbować ponownie. Pamiętaj, że kluczem do zrozumienia CSS jest praktyka, więc nie bój się eksperymentować z różnymi stylami!

Pytanie 3

Wskaż fragment kodu HTML5, który zostanie uznany przez walidator za niepoprawny?

A. <p class="stl" id="a">tekst</p>
B. <p class="stl"><style>.a{color:#F00}</style>tekst</p>
C. <p class="stl" style="color: #F00">tekst</p>
D. <p class="stl">tekst</p>
Odpowiedź <p class="stl"><style>.a{color:#F00}</style>tekst</p> jest błędna, ponieważ zawiera element <style>, który jest nieprawidłowo umieszczony wewnątrz znacznika <p>. W HTML5, elementy <style> powinny występować w sekcji <head> dokumentu lub w kontekście, gdzie są dozwolone, a nie wewnątrz elementów blokowych takich jak <p>. Walidatory HTML5, zgodne z standardami W3C, wskazują na to jako błąd, ponieważ takie umiejscowienie stylu może prowadzić do nieprzewidzianych efektów wizualnych oraz problemów z rozumieniem struktury dokumentu. Zamiast tego, właściwe byłoby umieszczenie stylu w sekcji <head> lub zastosowanie atrybutu style bezpośrednio w elemencie, co jest zgodne z dobrymi praktykami projektowania stron internetowych. Umożliwia to zachowanie semantyki HTML oraz lepszą organizację kodu.

Pytanie 4

Która z wymienionych funkcji sortowania w języku PHP służy do sortowania tablicy asocjacyjnej według kluczy?

A. asort()
B. rsort()
C. ksort()
D. sort()
Funkcje asort(), rsort() i sort() w języku PHP są używane do sortowania tablic, ale różnią się one znacząco od ksort(). Funkcja asort() służy do sortowania tablicy asocjacyjnej na podstawie wartości, pozostawiając klucze niezmienionymi. To podejście, choć może być przydatne w niektórych sytuacjach, nie odpowiada na pytanie dotyczące sortowania według indeksów, co prowadzi do nieporozumienia. Z kolei rsort() sortuje tablicę indeksowaną w porządku malejącym, a sort() wykonuje sortowanie rosnące, również dla tablic indeksowanych. Obie funkcje są nieprzydatne dla tablic asocjacyjnych, gdyż nie zachowują kluczy i nie dostosowują ich do zmieniającego się porządku wartości. Typowym błędem jest przyjmowanie, że wszystkie funkcje sortujące mogą działać na tablicach asocjacyjnych w taki sam sposób, co jest dalekie od prawdy. Kluczowe jest zrozumienie, jak różne funkcje sortujące wpływają na struktury danych i ich właściwości. Właściwe podejście do sortowania danych asocjacyjnych jest nie tylko kluczowe dla utrzymania porządku, ale również dla zapewnienia efektywności w przetwarzaniu danych w aplikacjach, co jest zgodne z najlepszymi praktykami rozwoju oprogramowania.

Pytanie 5

Atrybut colspan służy do poziomego łączenia komórek tabeli, natomiast rowspan pozwala na łączenie ich w pionie. Którą z poniższych tabel ukazuje fragment kodu napisany w języku HTML?
<table border="1" cellspaing="0" cellpadding="10" >
<tr> <td rowspan="2"> </td> <td> </td> </tr>
<tr> <td> </td> </tr>
</table>

Ilustracja do pytania
A. rys. B
B. rys. A
C. rys. D
D. rys. C
W języku HTML atrybut rowspan w znaczniku <td> pozwala na scalanie komórek w pionie co oznacza że dana komórka zajmuje miejsce w kilku wierszach tabeli W podanym kodzie pierwsza komórka w pierwszym wierszu posiada atrybut rowspan z wartością 2 co sprawia że zajmuje ona miejsce w dwóch wierszach Pierwszy wiersz zawiera dwie komórki z czego pierwsza jest połączona pionowo z komórką w drugim wierszu Druga komórka w pierwszym wierszu oraz jedyna komórka w drugim wierszu nie posiadają atrybutu rowspan ani colspan dlatego nie są połączone z innymi komórkami Takie użycie rowspan jest zgodne z praktykami HTML które umożliwiają tworzenie bardziej złożonych układów tabeli dzięki czemu można lepiej zarządzać przestrzenią w interfejsie użytkownika Jako że kod tworzy tabelę z dwiema kolumnami i dwoma wierszami gdzie pierwsza komórka po lewej stronie zajmuje dwa wiersze przedstawia to układ jak na rysunku B Możliwości jakie daje rowspan są niezwykle przydatne w sytuacjach gdy chcemy aby dane w tabeli były czytelniejsze i bardziej zorganizowane szczególnie w raportach czy formularzach gdzie różne kategorie danych muszą być jasno oddzielone

Pytanie 6

Kwerenda umożliwiająca modyfikację wielu rekordów lub przeniesienie ich przy pomocy jednego działania, określana jest jako kwerenda

A. funkcjonalnej
B. wybierająca
C. krzyżowej
D. parametrycznej
Kwerenda funkcjonalna to naprawdę przydatne narzędzie w bazach danych, które pozwala na wprowadzanie zmian w wielu rekordach na raz. To świetnie działa, jeśli masz dużo danych do przetworzenia, bo oszczędza czas i zasoby. Przykładem, który przychodzi mi do głowy, jest aktualizacja statusu zamówień w sklepie online. Można na przykład zmienić wszystkie zamówienia z "oczekujące" na "zrealizowane" jednym kliknięciem. To jest zgodne z dobrymi praktykami zarządzania danymi, bo utrzymuje porządek i spójność. A jeśli mówimy o standardach, kwerendy funkcjonalne są zgodne z SQL i jego różnymi rozszerzeniami, co ułatwia integrację z innymi systemami. Ważne jest tylko, żeby dobrze zabezpieczać dane, by przypadkiem nie usunąć lub nie zmienić czegoś ważnego. W branży często podkreśla się, że trzeba testować i walidować operacje na bazach, żeby wszystko działało jak należy.

Pytanie 7

Na ilustracji przedstawiającej tabelę muzyka, zrealizowano poniższe zapytanie SQL. Jaki rezultat zwróci ta kwerenda?

SELECT wykonawca FROM`muzyka`
WHERE wykonawca LIKE 'C%w';
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzesław Niemen2005Przyjdź W Taka Noc itp.
2IkonaStan Borys2014
3AerolitCzesław Niemen2017Winylowa reedycja płyty "Aerolit"
4JourneyMikołaj Czechowski2013
A. pusty wynik
B. Czesław, Niemen
C. Czesław
D. Czesław, Czechowski
W przypadku zapytania SQL które wykorzystuje operator LIKE z wzorcem C%W często dochodzi do nieporozumienia dotyczącego działania tego operatora. LIKE jest używany do porównywania wzorców tekstowych a procent % służy do zastępowania dowolnej liczby znaków. Można by błędnie założyć że skoro zapytanie ma zwrócić wykonawców których imiona zaczynają się na C i kończą na W to którąś z dostępnych opcji w tabeli spełnia ten warunek. Jednakże w tej konkretnej tabeli nie ma wykonawcy który by spełniał te kryteria. Czesław Niemen kończy się na M a nie na W natomiast Mikołaj Czechowski rozpoczyna się od litery M zamiast C. Przykładem typowego błędu jest nieprawidłowa interpretacja tego jak działają wzorce w operatorze LIKE lub przeoczenie że wzorzec musi być dokładnie zgodny z wymaganiami. Ważnym aspektem jest też zrozumienie że w praktyce biznesowej dokładność danych jest kluczowa a niepoprawne zrozumienie wzorców prowadzi do niepoprawnych wyników zapytań. Dlatego zawsze warto przetestować zapytanie na mniejszym zbiorze danych aby upewnić się że zwraca oczekiwane wyniki co jest dobrą praktyką w zarządzaniu bazami danych.

Pytanie 8

ID_PracownikaNazwiskoImięStanowiskoWynagrodzenie
1KowalskiKrzysztofkasjer3215,76
2NowakAntonikierownik5350,00
3ZającAlicjaksięgowy4568,70
4KrólWitoldkasjer3045,00
5NowikGrzegorzkasjer2750,65
6KotulskiAndrzejkierowca3467,00
7TutkaKatarzynakierownik4935,33
8PoradaJakubmagazynier3321,56
Które zapytanie SQL należy wykonać na tabeli Pracownicy, aby otrzymać średnie wynagrodzenie dla pracownika na stanowisku kasjer?
A. SELECT SUM(*) FROM Pracownicy AND Stanowisko= 'kasjer';
B. SELECT AVG(kasjer.Wynagrodzenie) FROM Pracownicy;
C. SELECT SREDNIA(Wynagrodzenie) AND Stanowisko='kasjer' FROM Pracownicy;
D. SELECT AVG(Wynagrodzenie) FROM Pracownicy WHERE Stanowisko='kasjer';
Poprawne zapytanie to SELECT AVG(Wynagrodzenie) FROM Pracownicy WHERE Stanowisko='kasjer';, bo dokładnie robi to, o co chodzi w treści zadania. Funkcja AVG() w SQL jest standardową funkcją agregującą, która liczy średnią arytmetyczną z wartości liczbowych w danej kolumnie. W tym przypadku kolumna to Wynagrodzenie, czyli kwoty wypłat, a klauzula WHERE Stanowisko='kasjer' zawęża zestaw rekordów tylko do pracowników na stanowisku kasjera. Najpierw więc silnik bazy danych filtruje wiersze (kasjerów), a dopiero potem na tej ograniczonej grupie liczy średnią. To jest bardzo typowy i poprawny schemat pracy z danymi w SQL: najpierw filtrujesz, potem agregujesz. Moim zdaniem warto zauważyć, że taka konstrukcja jest uniwersalna – w praktyce w firmach często liczy się średnie wynagrodzenia dla różnych stanowisk, działów, lokalizacji. Wtedy zmienia się tylko warunek w klauzuli WHERE. Można też pójść krok dalej i użyć GROUP BY, np. SELECT Stanowisko, AVG(Wynagrodzenie) FROM Pracownicy GROUP BY Stanowisko; żeby dostać średnie dla wszystkich stanowisk naraz, co jest wygodne np. w raportach HR. To, co masz w odpowiedzi, to w zasadzie „wersja jednostanowiskowa” takiego raportu. Ważna dobra praktyka: zawsze filtrujemy w klauzuli WHERE, a nie próbujemy wpychać warunków do funkcji agregującej. Dzięki temu zapytanie jest czytelne, zgodne ze standardem SQL i dobrze optymalizowane przez silnik bazy. W realnych projektach staramy się też nadać alias wynikom agregacji, np. SELECT AVG(Wynagrodzenie) AS SredniaKasjera FROM Pracownicy WHERE Stanowisko='kasjer';, żeby w raportach i w kodzie aplikacji od razu było wiadomo, co oznacza zwracana kolumna.

Pytanie 9

W SQL, aby usunąć wszystkie rekordy z tabeli, ale zachować jej strukturę, należy użyć polecenia:

A. TRUNCATE
B. REMOVE
C. DELETE FROM
D. DROP TABLE
Istnieje kilka nieporozumień związanych z usuwaniem danych z tabel SQL, co może prowadzić do błędów. Polecenie <code>DROP TABLE</code> jest często mylone z <code>DELETE FROM</code>. Jednak <code>DROP TABLE</code> usuwa zarówno dane, jak i strukturę tabeli, co oznacza, że po jego użyciu nie będzie można odzyskać tabeli bez jej ponownego stworzenia. To polecenie jest destrukcyjne i powinno być używane tylko wtedy, gdy mamy pewność, że tabela nie jest już potrzebna. Z kolei <code>REMOVE</code> nie jest poprawnym poleceniem SQL. To może wynikać z mylnego przekonania, że istnieje takie polecenie w języku SQL, jednak w rzeczywistości nie jest ono częścią standardu SQL. Tego typu błędy wynikają często z nieznajomości składni SQL lub mylenia z innymi językami programowania, które mogą mieć podobne polecenia. Na koniec, <code>ERASE TABLE</code> również nie jest poprawnym poleceniem SQL. Może to być wynikiem intuicyjnego podejścia do nazewnictwa poleceń, ale w rzeczywistości SQL posługuje się innymi komendami. Kluczowe jest, by dobrze zrozumieć standardy języka SQL i znać właściwe polecenia dla zamierzonych operacji, aby uniknąć potencjalnie destrukcyjnych działań na bazie danych.

Pytanie 10

W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie

$z = mysqli_query($db, "SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a = mysqli_fetch_row($z);
echo "$a[1], $a[2]";
A. miasta i kodu pocztowego z pierwszego zwróconego rekordu.
B. ulicy i miasta z pierwszego zwróconego rekordu.
C. miasta i kodu pocztowego ze wszystkich zwróconych rekordów.
D. ulicy i miasta ze wszystkich zwróconych rekordów.
Niestety, wybrałeś niepoprawną odpowiedź. W twoim fragmencie kodu PHP, wykonujesz zapytanie SQL, które wybiera kolumny 'ulica', 'miasto', 'kod pocztowy' z tabeli 'adresy'. Następnie używasz funkcji mysqli_fetch_row(), która pobiera pierwszy zwrócony rekord jako indeksowaną tablicę. Funkcja echo wyświetla drugi i trzeci element tej tablicy (indeksy 1 i 2), które odpowiadają kolumnom 'miasto' i 'kod pocztowy'. Niepoprawne odpowiedzi sugerują, że twój kod wypisze 'ulicę i miasto' lub 'miasto i kod pocztowy' ze wszystkich zwróconych rekordów, co jest nieprawdą. Niezrozumienie, jak funkcje PHP działają z MySQL i jaki jest ich wynik, może prowadzić do poważnych błędów w kodzie. Wskazane jest dokładne zrozumienie, jakie dane są zwracane przez SQL i jak je przetwarzać w PHP.

Pytanie 11

Jaki zapis w HTML służy do określenia kodowania znaków w dokumencie?

A. &lt;meta encoding=&quot;UTF-8&quot;&gt;
B. &lt;meta charset=&quot;UTF-8&quot;&gt;
C. &lt;charset=&quot;UTF-8&quot;&gt;
D. &lt;encoding=&quot;UTF-8&quot;&gt;
Poprawna odpowiedź to &lt;meta charset=&quot;UTF-8&quot;&gt;, która jest standardowym sposobem deklaracji kodowania znaków w dokumentach HTML. Użycie tego tagu w sekcji &lt;head&gt; dokumentu HTML informuje przeglądarki internetowe o tym, jakie znaki będą używane w danym dokumencie, co jest kluczowe dla prawidłowego wyświetlania treści. Deklaracja 'UTF-8' jest szczególnie powszechna, ponieważ obsługuje wiele różnych znaków i symboli z różnych języków, co czyni ją uniwersalnym wyborem dla większości stron internetowych. Przykłady zastosowań obejmują strony wielojęzyczne, gdzie ważne jest, aby tekst został prawidłowo wyświetlony bez błędów z powodu nieodpowiedniego kodowania. Zgodnie z najlepszymi praktykami w branży, zawsze zaleca się umieszczanie tego tagu na początku sekcji &lt;head&gt; dokumentu, aby zapewnić, że wszystkie elementy strony będą renderowane zgodnie z zamierzeniem twórcy. Użycie odpowiedniego kodowania znaków jest również istotne z punktu widzenia SEO, ponieważ wyszukiwarki mogą mieć problemy z indeksowaniem treści, jeśli kodowanie jest nieprawidłowo ustawione.

Pytanie 12

Na podstawie jakiego parametru oraz z ilu tabel zostaną zwrócone wiersze w wyniku przedstawionego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis
WHERE producent.nr_id = hurtownia.nr_id
AND producent.wyrob_id = serwis.wyrob_id
AND hurtownia.nr_id = sklep.nr_id
AND sklep.nr_id = serwis.nr_id
AND producent.nr_id = 1;
A. Na podstawie parametru nr_id ze wszystkich tabel
B. Na podstawie parametru wyrob_id wyłącznie z trzech tabel
C. Na podstawie parametru wyrob_id ze wszystkich tabel
D. Na podstawie parametru nr_id wyłącznie z trzech tabel
Zapytanie SQL używa parametru nr_id jako kluczowego elementu łączącego cztery tabele producent hurtownia sklep oraz serwis Dzięki temu zapytanie zwraca wiersze dla wszystkich tych tabel gdzie istnieje wspólna wartość nr_id W praktyce klucz taki jak nr_id jest używany do tworzenia relacji pomiędzy różnymi tabelami co jest podstawą w relacyjnych bazach danych Użycie tego samego klucza w zapytaniu umożliwia efektywne łączenie danych i jest zgodne z zasadami normalizacji danych która zmniejsza redundancję i poprawia integralność danych Praktycznym przykładem może być analiza danych sprzedażowych gdzie nr_id reprezentuje unikalny identyfikator zamówienia łączący dane producenta dystrybutora sklepu i serwisu W ten sposób można uzyskać pełny widok na procesy biznesowe we wszystkich etapach cyklu życia produktu Zachowanie tej struktury relacyjnej pozwala na szybkie i dokładne analizy co jest kluczowe w podejmowaniu decyzji biznesowych

Pytanie 13

W HTML-u znacznik tekst będzie prezentowany przez przeglądarkę w sposób identyczny do znacznika

A. <b>tekst</b>
B. <big>tekst</big>
C. <sub>tekst</sub>
D. <h1>tekst</h1>
Znacznik <strong> w HTML jest używany do oznaczania tekstu, który ma być wyróżniony jako ważny. Jego domyślne stylizowanie w przeglądarkach polega na pogrubieniu tekstu, co jest również funkcją znacznika <b>. Oba znaczniki mają podobne zastosowanie, ale <strong> niesie dodatkowe znaczenie semantyczne, co oznacza, że informuje przeglądarki i maszyny o tym, że dany tekst jest istotny. Przykładem może być użycie <strong> w nagłówkach lub w miejscach, gdzie chcemy zwrócić uwagę na kluczowe informacje, jak np. 'Zamówienie <strong>pilne</strong> musi być dostarczone do jutra.' W kontekście dobrych praktyk zaleca się używanie znaku <strong> zamiast <b>, gdyż wspiera to dostępność i SEO - wyszukiwarki lepiej interpretują semantykę treści, co może wpłynąć na pozycjonowanie strony. Warto również pamiętać, że zgodnie z W3C, semantyka HTML ma kluczowe znaczenie dla strukturyzacji dokumentów oraz ich dostępności.

Pytanie 14

Jakiego polecenia SQL należy użyć, aby usunąć z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?

A. DELETE * FROM artykuly WHERE tresc LIKE "%sto%";
B. DELETE * FROM artykuly WHERE tresc = "%sto%";
C. DELETE FROM artykuly WHERE tresc = "%sto%";
D. DELETE FROM artykuly WHERE tresc LIKE "%sto%";
Wszystkie błędne odpowiedzi opierają się na niezrozumieniu podstawowej funkcji operatora DELETE w języku SQL oraz zasad dotyczących dopasowywania wzorców. Przykłady takie jak 'DELETE * FROM artykuly WHERE tresc = "%sto%";' oraz 'DELETE * FROM artykuly WHERE tresc LIKE "%sto%";' zawierają nieprawidłowe użycie składni, które nie jest zgodne z standardem SQL. W SQL nie używa się znaku '*' w poleceniach DELETE, gdyż zapis 'DELETE * FROM' jest poprawny tylko dla zapytań SELECT. W kontekście usuwania danych, należy używać jedynie 'DELETE FROM', co jest wystarczające dla określenia, z jakiej tabeli mają zostać usunięte rekordy. Ponadto, pierwsza błędna odpowiedź zdobija wszystkie potencjalne błędy związane z niepoprawnym użyciem operatora '='. Operator '=' wymaga dokładnego dopasowania, co oznacza, że nie może być stosowany do wyszukiwania wzorców, w przeciwieństwie do operatora LIKE, który umożliwia elastyczne dopasowanie z użyciem znaków wieloznacznych. Typowym błędem jest więc przekonanie, że '=' oraz LIKE mogą być stosowane zamiennie bez uwzględnienia, że '=' nie przyjmuje znaków procentowych. Dlatego kluczowe jest, aby przed użyciem poleceń SQL upewnić się, że rozumie się ich składnię oraz zasady działania, co pozwoli uniknąć wielu pułapek w codziennej pracy z bazami danych.

Pytanie 15

Aby wprowadzić rekord do tabeli Pracownicy, jakie polecenie SQL należy zastosować?

A. INSERT VALUES Pracownicy INTO (Jan, Kowalski);
B. INSERT VALUES (Jan, Kowalski) INTO Pracownicy;
C. INSERT (Jan, Kowalski) INTO Pracownicy;
D. INSERT INTO Pracownicy (imie, nazwisko) VALUES (Jan, Kowalski);
Odpowiedź 'INSERT INTO Pracownicy (imie, nazwisko) VALUES (Jan, Kowalski);' jest poprawna, ponieważ jest zgodna z ogólną składnią polecenia SQL do dodawania danych do tabeli. W składni tej najpierw wskazujemy, do której tabeli chcemy wprowadzić dane, używając frazy 'INSERT INTO', a następnie w nawiasach podajemy nazwy kolumn, do których mają być wprowadzone wartości. Wartości te umieszczamy po słowie kluczowym 'VALUES', również w nawiasach. Takie podejście jest zgodne z normami SQL i zapewnia, że dane będą poprawnie wstawione. Przykładem praktycznym może być dodanie nowego pracownika do bazy danych firmy, co jest kluczowym elementem zarządzania informacjami o pracownikach. Prawidłowa składnia pozwala również na łatwe wprowadzenie wielu rekordów jednocześnie, co jest efektywne w dużych systemach baz danych. Ponadto, użycie poprawnej składni ułatwia przyszłe modyfikacje oraz optymalizację zapytań, co jest istotne w kontekście dobrą praktyką w programowaniu baz danych.

Pytanie 16

Wynikiem realizacji zamieszczonego kodu PHP jest pokazanie komunikatu

Ilustracja do pytania
A. warunek4
B. warunek2
C. warunek1
D. warunek3
Kod w języku PHP przedstawia warunki logiczne, które oceniają wartości zmiennych $a, $b, $c i $d. Zmienna $a i $c są ustawione na true, natomiast $b i $d na false. Pierwszy warunek sprawdza, czy zarówno $a && $b (czyli true && false, co daje false) lub $c && $d (czyli true && false, co również daje false) jest prawdziwe. Oba wyrażenia są fałszywe, więc warunek if nie zostanie spełniony. Drugi warunek elseif sprawdza, czy $a && $b (false) lub $c || $d (true || false, co daje true) jest prawdziwe. Ponieważ $c || $d jest prawdziwe, cały warunek jest spełniony i zostanie wyświetlony komunikat warunek2. Dobrym przykładem praktycznego zastosowania takich konstrukcji jest walidacja danych w aplikacjach webowych, gdzie można łączyć różne warunki logiczne w celu osiągnięcia wymaganej logiki decyzyjnej. Ważne jest, by rozumieć priorytety operatorów logicznych i zasady działania operatora „OR” (||) i „AND” (&&) w języku PHP, zgodnie z dokumentacją PHP.

Pytanie 17

W języku PHP nie można wykonać

A. Dynamicznej zmiany treści strony HTML w przeglądarce
B. Obsługiwania danych z formularzy
C. Operacji na danych zgromadzonych w bazie danych
D. Tworzenia dynamicznej treści strony
Zmienianie dynamiczne zawartości strony HTML w przeglądarce nie jest możliwe za pomocą języka PHP, ponieważ PHP jest językiem skryptowym działającym po stronie serwera. Oznacza to, że PHP generuje kod HTML, który jest następnie przesyłany do przeglądarki, ale nie ma możliwości modyfikacji tego kodu po jego załadowaniu. Przykładowo, gdy użytkownik wypełnia formularz na stronie i przesyła dane, PHP może przetworzyć te dane na serwerze, ale wszelkie zmiany muszą być wysłane do przeglądarki jako nowa strona lub w odpowiedzi Ajax. W praktyce oznacza to, że dla dynamicznych interakcji na stronie, takich jak zmiana zawartości bez przeładowania, stosuje się JavaScript, który działa po stronie klienta i jest odpowiedzialny za manipulację DOM. W kontekście dobrych praktyk, warto pamiętać o rozdzieleniu logiki przetwarzania danych (PHP) i interakcji użytkownika (JavaScript), co prowadzi do bardziej modułowych i łatwych w utrzymaniu aplikacji webowych.

Pytanie 18

Wskaż wynik wykonania skryptu napisanego w języku PHP

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

Pytanie 19

W języku SQL podczas używania polecenia CREATE TABLE atrybut, który wskazuje na to, która kolumna jest kluczem podstawowym, to

A. UNIQUE
B. GŁÓWNY KLUCZ
C. IDENTITY FIELD
D. PRIMARY KEY
Odpowiedź "PRIMARY KEY" jest prawidłowa, ponieważ w języku SQL klucz podstawowy (ang. primary key) to unikalny identyfikator dla każdego rekordu w tabeli. Klucz podstawowy zapewnia, że żadne dwa rekordy nie mają tej samej wartości w kolumnie, co jest kluczowe dla integralności danych. Zwyczajowo klucz podstawowy definiuje się podczas tworzenia tabeli za pomocą polecenia CREATE TABLE, co zwiększa wydajność operacji wyszukiwania oraz modyfikacji danych. Przykład wykorzystania: tworząc tabelę pracowników, można zdefiniować kolumnę "id_pracownika" jako klucz podstawowy, co zapewni, że każdy pracownik będzie miał unikalny identyfikator. W standardach SQL zgodnych z ANSI, klucz podstawowy może składać się z jednej lub więcej kolumn, co pozwala na tworzenie bardziej skomplikowanych struktur danych. Dobrą praktyką jest również oznaczanie klucza podstawowego jako NOT NULL, co uniemożliwia wprowadzenie pustych wartości, co dodatkowo zwiększa integralność bazy danych.

Pytanie 20

Jakie słowo kluczowe w języku SQL należy zastosować, aby usunąć powtarzające się rekordy?

A. ORDER BY
B. DISTINCT
C. LIKE
D. GROUP BY
Słowo DISTINCT w SQL to taki sprytny sposób na pozbycie się duplikatów w wynikach zapytań. Jak robisz zapytanie SELECT, które zwraca różne wiersze, to dzięki DISTINCT dostaniesz tylko unikalne wartości w kolumnach, które wybierzesz. Na przykład, mając tabelę 'pracownicy' z kolumną 'miasto', jak użyjesz zapytania 'SELECT DISTINCT miasto FROM pracownicy;', to dostaniesz listę wszystkich miast, w których są pracownicy, a powtórzenia polecą w odstawkę. Warto pamiętać, że DISTINCT działa na całej kombinacji kolumn, które zwracasz. Jak dodasz więcej kolumn w zapytaniu, to SQL wyciągnie unikalne zestawienia tych kolumn. To naprawdę przydatne, zwłaszcza przy dużych zbiorach danych, gdzie duplikaty mogą namieszać w analizach i raportach. DISTINCT jest standardowym elementem w SQL i działa praktycznie w każdym systemie zarządzania bazami danych, jak MySQL czy PostgreSQL, co czyni to narzędzie mega uniwersalnym w codziennym grzebaniu w danych.

Pytanie 21

Jak w języku PHP można przypisać wartość 4 do zmiennej sesyjnej o nazwie wyborID?

A. session.wyborID = {4};
B. session.wyborID = 4;
C. $_SESSION["wyborID"] = 4;
D. $_SESSION[4] = wyborID;
Wszystkie niepoprawne odpowiedzi wykazują fundamentalne błędy związane z zarządzaniem sesjami w PHP. W pierwszym przypadku, session.wyborID = {4}; użycie notacji z kropką jest nieodpowiednie, ponieważ w PHP nie istnieje coś takiego jak obiekt session. Zamiast tego, sesje są zarządzane przez superglobalną tablicę $_SESSION, co oznacza, że każda zmienna sesji musi być przypisana w kontekście tej tablicy. Kolejna odpowiedź, session.wyborID = 4;, ponownie nieodpowiednio korzysta z notacji obiektowej, co prowadzi do błędu wykonania, ponieważ PHP nie rozumie, że session to tablica. Ostatnia odpowiedź, $_SESSION[4] = wyborID;, wykorzystuje nieprawidłowy klucz, ponieważ klucz powinien być ciągiem znaków, a nie liczbą. Dodatkowo, nie zdefiniowano wcześniej zmiennej 'wyborID', co prowadzi do nieosiągalnego odniesienia. Takie błędy myślowe mogą wynikać z niepełnego zrozumienia struktury tablic w PHP oraz różnicy między zmiennymi lokalnymi a superglobalnymi. Zrozumienie, że sesje w PHP są przechowywane jako tablica asocjacyjna, jest kluczowe dla ich wykorzystania i unikania takich pomyłek.

Pytanie 22

Formularz, który pełni rolę pośrednika w nawigacji po bazie danych pomiędzy formularzami i kwerendami dostępnymi w systemie, określany jest jako formularz

A. głównym
B. pierwotnym
C. zagnieżdżonym
D. sterującym
Formularz sterujący jest kluczowym elementem w projektowaniu baz danych, który pozwala na efektywną nawigację pomiędzy różnymi formularzami oraz kwerendami. Jego główną funkcją jest dostarczanie użytkownikowi centralnego punktu dostępu do różnych części aplikacji, co ułatwia zarządzanie danymi oraz ich przeglądanie. Przykładowo, w aplikacjach biznesowych formularz sterujący może zawierać przyciski, które kierują użytkownika do formularzy wprowadzania danych, formularzy raportowych, czy kwerend do wyszukiwania informacji. Dobrą praktyką jest, aby formularz sterujący był intuicyjny i estetyczny, co zwiększa użyteczność i efektywność aplikacji. W standardach projektowania baz danych, formularze sterujące są często powiązane z koncepcją MVC (Model-View-Controller), gdzie pełnią rolę kontrolera, który zarządza przepływem danych między modelem a widokiem, co umożliwia lepsze organizowanie interakcji użytkownika z systemem.

Pytanie 23

Opracowanie logicznego układu strony internetowej wiąże się z

A. określeniem zawartości strony.
B. zdefiniowaniem adresów URL dla podstron strony.
C. stworzeniem zbioru grafik dla strony.
D. umiejscowieniem elementów w konkretnych punktach strony.
Projektowanie logicznego układu witryny polega na efektywnym rozmieszczeniu elementów w konkretnych miejscach witryny, co jest kluczowe dla zapewnienia optymalnej użyteczności oraz nawigacji. Proces ten obejmuje analizę interakcji użytkowników z treścią oraz zaprojektowanie układu, który umożliwia intuicyjne poruszanie się po stronie. Przykładowo, umiejscowienie menu nawigacyjnego w górnej części strony oraz umieszczenie najważniejszych informacji w widocznych miejscach zwiększa szanse na konwersję. Warto również uwzględnić zasady projektowania responsywnego, co oznacza, że układ powinien być dostosowany do różnych rozmiarów ekranów, zapewniając spójne doświadczenie na urządzeniach mobilnych i stacjonarnych. Standardy takie jak WCAG (Web Content Accessibility Guidelines) również podkreślają znaczenie logicznego rozmieszczenia elementów, aby zapewnić dostępność dla osób z niepełnosprawnościami. Ponadto, dobrze zaprojektowany układ pomaga w optymalizacji SEO, umożliwiając lepsze indeksowanie przez wyszukiwarki.

Pytanie 24

Można przypisać wartości: static, relative, fixed, absolute oraz sticky do właściwości

A. list-style-type
B. display
C. text-transform
D. position
Właściwość CSS 'position' służy do określenia, w jaki sposób element jest pozycjonowany na stronie. Wartości takie jak static, relative, fixed, absolute oraz sticky definiują różne metody pozycjonowania elementów w kontekście innych obiektów oraz w kontekście samego okna przeglądarki. Na przykład, 'static' jest wartością domyślną, co oznacza, że elementy są umieszczane w naturalnym porządku w dokumencie HTML. 'Relative' pozwala na przesunięcie elementu względem jego normalnej pozycji, co daje większą elastyczność w projektowaniu layoutów. 'Absolute' pozycjonuje element względem najbliższego przodka, który również ma ustawioną właściwość 'position' różną od 'static', co umożliwia precyzyjne umiejscowienie elementów. 'Fixed' sprawia, że element pozostaje w tym samym miejscu w oknie przeglądarki, nawet podczas przewijania strony, co jest często wykorzystywane w przypadku nagłówków i stopki. 'Sticky' łączy cechy 'relative' i 'fixed', umożliwiając elementowi bycie na stałe w zasięgu widoku, ale tylko do momentu, gdy nie zostanie przewinięty poza jego kontener. Używanie tych wartości w praktyce pozwala na tworzenie responsywnych i dynamicznych interfejsów użytkownika, które są zgodne z dobrymi praktykami projektowania stron internetowych.

Pytanie 25

Który selektor stosuje formatowanie dla akapitów tekstu z klasą tekst oraz dla elementu blokowego o ID obrazki?

A. p.tekst + div#obrazki
B. p.tekst, div#obrazki
C. p#tekst + div.obrazki
D. p#tekst, div.obrazki
Odpowiedź 'p.tekst, div#obrazki' jest poprawna, ponieważ selektor 'p.tekst' odnosi się do elementów <p> z klasą 'tekst', a selektor 'div#obrazki' odnosi się do elementu <div> z identyfikatorem 'obrazki'. Oba selektory są zgodne z zasadami CSS, które pozwalają na stylizację elementów na podstawie ich klas i ID. Na przykład, jeśli chcemy zmienić kolor tekstu w akapitach oraz dodać ramkę do elementu div, możemy zastosować następujący kod: css p.tekst { color: blue; } div#obrazki { border: 1px solid black; } Praktyczne zastosowanie selektorów klas i ID w CSS pozwala na precyzyjne dostosowanie stylu poszczególnych elementów na stronie. Zgodność z najlepszymi praktykami oznacza, że stosujemy jednoznaczne i czytelne nazwy klas oraz ID, co ułatwia późniejszą konserwację kodu oraz współpracę z innymi deweloperami. Warto także pamiętać, że wyższej specyfiki selektory, takie jak ID, mają pierwszeństwo wobec klas, co może wpłynąć na końcowy wygląd elementów na stronie.

Pytanie 26

W SQL przeprowadzono zapytanie, jednak jego realizacja nie powiodła się, co skutkowało błędem: #1396 - Operation CREATE USER failed for 'anna'@'localhost'. Możliwą przyczyną takiego zachowania bazy danych może być

CREATE USER 'anna'@'localhost' IDENTIFIED BY '54RTu8';
A. istnienie użytkownika anna w bazie
B. niewystarczające hasło dla konta anna
C. błędna składnia polecenia CREATE USER
D. nieznane polecenie CREATE USER
Odpowiedź wskazująca na istnienie użytkownika 'anna' w bazie jest prawidłowa, ponieważ MySQL nie pozwala na tworzenie nowego użytkownika, jeśli użytkownik o takiej samej nazwie już istnieje. W przypadku próby wykonania kwerendy CREATE USER dla istniejącego użytkownika, system generuje błąd #1396, co jest zgodne z zasadami zarządzania użytkownikami w bazach danych. Dobra praktyka polega na sprawdzaniu, czy użytkownik już istnieje przed próbą jego utworzenia, co można zrobić za pomocą zapytania SELECT z tabeli mysql.user. Jeśli użytkownik 'anna' byłby już zdefiniowany, aby uniknąć błędów, programista powinien najpierw usunąć istniejącego użytkownika lub zmodyfikować jego uprawnienia, jeżeli to konieczne. Stosowanie poprawnych procedur zarządzania użytkownikami oraz regularne audyty kont użytkowników są kluczowe dla bezpieczeństwa i wydajności systemu baz danych.

Pytanie 27

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: left; } aside { float: left; }
B. nav { float: right; } section { float: right; }
C. aside {float: left; }
D. nav { float: right; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie. W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie. Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 28

Na obrazie przedstawiono projekt układu bloków witryny internetowej. Zakładając, że bloki są realizowane za pomocą znaczników sekcji, ich formatowanie w CSS, oprócz ustawionych szerokości dla bloków: 1, 2,
3, 4 (blok 5 nie ma ustawionej szerokości), powinno zawierać właściwość

Ilustracja do pytania
A. clear: both dla wszystkich bloków.
B. clear: both dla bloku 5 oraz float: left dla pozostałych bloków.
C. float: left dla wszystkich bloków.
D. clear: both dla bloku 5 oraz float: left jedynie dla 1 i 2 bloku.
Twoja odpowiedź jest poprawna. Bloki 1, 2, 3 i 4 powinny być ustawione obok siebie na stronie. Możemy tego dokonać, stosując dla nich właściwość 'float: left' w CSS, która sprawia, że elementy są wyświetlane po lewej stronie swojego kontenera. Często stosuje się tę technikę przy projektowaniu layoutów stron internetowych, umożliwiając rozmieszczenie bloków w jednym rzędzie. Blok 5 powinien natomiast znajdować się poniżej tych bloków, co osiągniemy stosując właściwość 'clear: both'. Ta właściwość zapewnia, że element nie będzie obok żadnego z poprzednich bloków, nawet jeśli mają one ustawiony float. Jest to szczególnie przydatne w sytuacjach, gdy chcemy, aby pewien element (np. stopka strony) był wyświetlany poniżej innych bloków, niezależnie od ich położenia czy szerokości. W praktyce, prawidłowe zastosowanie tych dwóch właściwości jest kluczowe dla tworzenia responsywnych i atrakcyjnych layoutów stron.

Pytanie 29

W pokazanym fragmencie zapytania w języku SQL, polecenie SELECT ma na celu uzyskanie wyników z komendy SELECT COUNT(wartosc) FROM....?

A. sumę wartości w kolumnie wartosc
B. liczbę rekordów
C. średnią wartości w kolumnie wartosc
D. średnią wartości w tabeli
W kontekście zapytania SQL, komenda SELECT COUNT(wartosc) ma na celu zwrócenie liczby wierszy w danej tabeli, które spełniają określone kryteria. Funkcja COUNT jest jedną z agregujących funkcji zapytań SQL, która zlicza liczbę niepustych wartości w kolumnie. Jeżeli argumentem funkcji jest konkretna kolumna, to zostaną zliczone tylko te wiersze, w których ta kolumna zawiera wartości, natomiast jeżeli użyjemy COUNT(*) bez podawania kolumny, zliczymy wszystkie wiersze tabeli, niezależnie od tego, czy kolumny zawierają wartości. Przykład praktyczny: jeśli mamy tabelę 'Zamówienia' i chcemy zliczyć liczbę dokonanych zamówień, można użyć zapytania SELECT COUNT(*) FROM Zamówienia; co zwróci całkowitą liczbę zamówień w tabeli. Istotne jest, aby zrozumieć, że COUNT zwraca liczbę wierszy, a nie sumę, średnią lub inne statystyki. W standardzie SQL nie ma specyfikacji, która by zmieniała tę funkcjonalność, co czyni ją uniwersalną w różnych bazach danych, takich jak MySQL, PostgreSQL, czy SQL Server.

Pytanie 30

Mamy do czynienia z tablicą o nazwie tab, która zawiera liczby całkowite różniące się od zera. Zawarty w języku PHP kod ma na celu:

foreach ($tab as &$liczba)
    $liczba = $liczba * (-1);
unset($liczba);
A. przekształcić elementy tablicy na wartości zapisane w zmiennej liczba
B. obliczyć wartość bezwzględną elementów tej tablicy
C. wyliczenie iloczynu wszystkich wartości w tablicy
D. zmienić wszystkie elementy tablicy na liczby o przeciwnym znaku
Odpowiedź jest prawidłowa, ponieważ przedstawiony kod w języku PHP używa pętli foreach do iteracji po tablicy o nazwie tab. Dzięki zastosowaniu operatora & przed nazwą zmiennej $liczba, zmienna ta jest przekazywana przez referencję. Oznacza to, że każda modyfikacja dokonywana na zmiennej $liczba wpływa bezpośrednio na odpowiedni element tablicy. Wewnątrz pętli każda liczba w tablicy jest mnożona przez -1, co skutkuje zmianą jej znaku na przeciwny. W praktyce taka operacja jest powszechnie stosowana, gdy istnieje potrzeba szybkiej zmiany wszystkich wartości w strukturze danych na ich negatywne odpowiedniki, na przykład w algorytmach matematycznych lub finansowych. Istotnym aspektem jest również unikanie modyfikacji oryginalnych danych, co jest kluczowe w procesie przetwarzania danych. Po zakończeniu pętli unset($liczba) usuwa referencję, aby uniknąć niepożądanych efektów ubocznych. Takie podejście jest zgodne z dobrymi praktykami programowania, które kładą nacisk na zarządzanie pamięcią i poprawność danych.

Pytanie 31

W językach programowania o strukturze, aby przechować dane dotyczące 50 uczniów (ich imion, nazwisk i średniej ocen), należy zastosować

A. tablicę 50 elementów o składowych strukturalnych
B. tablicę 50 elementów o składowych typu łańcuchowego
C. strukturę 50 elementów o składowych typu tablicowego
D. klasę 50 elementów typu tablicowego
W strukturalnych językach programowania, takich jak C czy C++, do przechowywania informacji o uczniach, w tym ich imionach, nazwiskach i średnich ocenach, najbardziej optymalnym rozwiązaniem jest zastosowanie tablicy 50 elementów o składowych strukturalnych. Struktura to złożony typ danych, który pozwala na grupowanie różnych typów danych w jedną jednostkę. W przypadku uczniów, możemy stworzyć strukturę zawierającą pola na imię, nazwisko oraz średnią ocenę. Przykładowa definicja struktury może wyglądać następująco: struct Uczen { char imie[30]; char nazwisko[30]; float srednia_ocen; }; Następnie możemy zadeklarować tablicę 50 takich struktur: Uczen uczniowie[50]; Taki sposób organizacji danych zapewnia przejrzystość i łatwość w dostępie do informacji, a także pozwala na prostą rozbudowę, np. o dodatkowe pola, jeśli zajdzie taka potrzeba. Użycie struktur jest zgodne z najlepszymi praktykami programistycznymi i standardami języków strukturalnych, co czyni je idealnym narzędziem do zarządzania złożonymi danymi. W praktyce, taki sposób organizacji danych zwiększa czytelność kodu i ułatwia jego utrzymanie.

Pytanie 32

Zmienna zadeklarowana w C++ jako double x*; to

A. parametr formalny typu zmiennoprzecinkowego
B. zmienna zmiennoprzecinkowa
C. zmienna typu całkowitego
D. wskaźnik
Element zadeklarowany w języku C++ jako 'double x*;' odnosi się do wskaźnika na zmienną typu podwójnej precyzji. Wskaźniki w C++ są zmiennymi, które przechowują adresy innych zmiennych, co pozwala na dynamiczne zarządzanie pamięcią oraz efektywną manipulację danymi. W przypadku 'double x*;', zmienna 'x' jest wskaźnikiem, który może wskazywać na obiekt typu double. Użycie wskaźników jest kluczowe w programowaniu obiektowym oraz przy tworzeniu struktur danych, takich jak listy połączone czy tablice dynamiczne. Przykład użycia wskaźnika: double a = 5.0; double* x = &a; pozwala na manipulację wartością 'a' przez wskaźnik 'x'. C++ umożliwia również operacje na wskaźnikach, takie jak dereferencja, co pozwala na uzyskiwanie wartości przechowywanych pod wskazywanym adresem. W standardzie C++ wskaźniki są fundamentalnym elementem, który jest niezbędny do zrozumienia zaawansowanych konceptów, takich jak zarządzanie pamięcią oraz dynamiczne alokacje. Warto zaznaczyć, że wskaźniki muszą być używane ostrożnie, aby uniknąć błędów typu 'null pointer dereference' czy 'memory leaks'.

Pytanie 33

W formularzu umieszczono kontrolki do podania imienia oraz nazwiska. Który z atrybutów odpowiada za wyświetlanie sugestii w polu kontrolki, która znika, gdy użytkownik zaczyna wpisywanie wartości?

<label for="imie">Imię: </label> 
<input id="imie" value="Wpisz dane" title="Wpisz imię"><br>
<label for="nazw">Nazwisko: </label>
<input id="nazw" placeholder="Wpisz dane" title="Wpisz nazwisko">
A. placeholder
B. title
C. value
D. for
Atrybut "placeholder" jest kluczowym elementem w formularzach HTML, który definiuje tekst podpowiedzi umieszczony w polu kontrolki. Tekst ten zniknie, gdy użytkownik zacznie wpisywać dane, co pozwala na zapewnienie bardziej intuicyjnego interfejsu. W przypadku przykładowego formularza, atrybut "placeholder" jest użyty w polu nazwiska, co stanowi doskonały przykład jego praktycznego zastosowania. Dobrą praktyką jest stosowanie atrybutu "placeholder" w formularzach, ponieważ wprowadza on klarowność i ułatwia użytkownikom wypełnianie formularzy, jednocześnie zmniejszając ryzyko błędów. Atrybut ten nie tylko poprawia doświadczenia użytkownika, ale także zwiększa dostępność formularzy, ponieważ pozwala osobom korzystającym z czytników ekranu lepiej zrozumieć, jakie dane są wymagane. Warto również zauważyć, że "placeholder" nie powinien być używany jako substytut etykiety, która jest niezbędna do poprawnej dostępności i użyteczności. Etykiety powinny być zawsze stosowane, a "placeholder" powinien pełnić jedynie funkcję pomocniczą.

Pytanie 34

W języku SQL, aby dodać atrybut klucza podstawowego do pola id w istniejącej tabeli produkt należy użyć składni

A. ALTER TABLE produkt DROP PRIMARY KEY
B. ALTER TABLE produkt DROP CONSTRAINT id
C. ALTER TABLE produkt ALTER COLUMN id INT
D. ALTER TABLE produkt ADD PRIMARY KEY (id)
Poprawna składnia to ALTER TABLE produkt ADD PRIMARY KEY (id), bo dokładnie to polecenie dodaje do istniejącej tabeli nowy klucz podstawowy oparty na kolumnie id. Instrukcja ALTER TABLE służy do modyfikowania struktury tabeli, a klauzula ADD PRIMARY KEY definiuje ograniczenie (constraint) typu klucz podstawowy dla wskazanej kolumny lub zestawu kolumn. W praktyce oznacza to, że kolumna id musi być unikalna i nie może przyjmować wartości NULL. Silnik bazy danych (np. MySQL, PostgreSQL, SQL Server) zwykle tworzy do tego indeks typu UNIQUE, który przyspiesza wyszukiwanie po kluczu głównym. Moim zdaniem warto pamiętać, że takie polecenie będzie działać tylko wtedy, gdy dane w kolumnie id już spełniają warunki klucza podstawowego: brak duplikatów i brak wartości pustych. W realnym projekcie często robi się to w dwóch krokach: najpierw uzupełnia się brakujące wartości, usuwa lub poprawia duplikaty, a dopiero potem dodaje PRIMARY KEY. Przykładowo: ALTER TABLE produkt ADD PRIMARY KEY (id); W wielu systemach, zwłaszcza w aplikacjach webowych, kolumna id jest też często ustawiana jako AUTO_INCREMENT (MySQL) lub używa sekwencji (PostgreSQL, Oracle). Wtedy definicja tabeli przy tworzeniu może wyglądać np. tak: CREATE TABLE produkt (id INT PRIMARY KEY AUTO_INCREMENT, nazwa VARCHAR(100)); Jeśli jednak tabela już istnieje i kolumna id była zwykłą kolumną, to właśnie ALTER TABLE ... ADD PRIMARY KEY (id) jest standardowym, poprawnym sposobem nadania jej roli klucza głównego. To rozwiązanie jest zgodne z ogólną składnią SQL i dobrą praktyką modelowania relacyjnych baz danych, gdzie każda tabela powinna mieć jasno zdefiniowany klucz podstawowy, najlepiej prosty, stabilny i jednoznaczny.

Pytanie 35

Jak umieścić komentarz w kodzie PHP?

A. /? ... ?/
B. <? ... ?>
C. /* ... */
D. <!-- ... -->
Komentarze w kodzie PHP są kluczowym elementem, który pozwala programistom na dodawanie wyjaśnień, notatek czy informacji o kodzie, co znacznie ułatwia jego późniejsze zrozumienie i konserwację. Komentarze w PHP można umieszczać za pomocą podwójnego ukośnika (//) dla pojedynczych linii lub za pomocą /* ... */ dla komentarzy wieloliniowych. Wybrana odpowiedź /* ... */ jest poprawna, ponieważ umożliwia dodawanie dłuższych bloków tekstu, co jest praktyczne w przypadku skomplikowanych funkcji czy klas. Stosowanie komentarzy jest zgodne z dobrymi praktykami programowania, które zalecają dokumentowanie kodu, aby ułatwić współpracę w zespole oraz pomóc innym programistom w zrozumieniu funkcji i celu poszczególnych fragmentów kodu. Na przykład, podczas tworzenia złożonej aplikacji webowej, dobrze udokumentowany kod pozwoli zespołowi szybciej rozwiązywać problemy i wprowadzać zmiany, co jest kluczowe w dynamicznie zmieniającym się środowisku IT.

Pytanie 36

W systemie baz danych sklepu znajdują się dwie tabele połączone relacją: produkty oraz oceny. Tabela oceny zawiera dowolną liczbę ocen wystawionych przez klientów dla konkretnego produktu, opisaną poprzez pola: id, ocena (pole numeryczne), produktID (klucz obcy). Aby uzyskać maksymalną ocenę dla produktu o ID wynoszącym 10, należy wykorzystać zapytanie

A. SELECT MAX COUNT(ocena) FROM oceny WHERE produktID = 10;
B. COUNT MAX SELECT ocena FROM oceny WHERE produktID = 10;
C. SELECT MAX(ocena) FROM oceny WHERE produktID = 10;
D. MAX SELECT ocena FROM oceny WHERE produktID = 10;
Analizując pozostałe odpowiedzi, można zauważyć, że każda z nich zawiera błędy w składni i logice SQL, które prowadzą do niewłaściwych wniosków. W przypadku pierwszej niepoprawnej odpowiedzi, sformułowanie 'COUNT MAX SELECT' jest niepoprawne, ponieważ łączy niezgodne ze sobą komendy. Nie ma takiej funkcji jak 'COUNT MAX'; COUNT służy do zliczania wierszy, a nie do obliczania maksymalnej wartości. W kolejnej odpowiedzi 'MAX SELECT' z kolei jest niepoprawnym użyciem słów kluczowych SQL. MAX powinien występować jako część złożonego zapytania SELECT, a nie jako osobna funkcja. Takie podejście może być wynikiem braku zrozumienia struktury komend SQL. Ostatnia odpowiedź, 'SELECT MAX COUNT(ocena)', również jest błędna, ponieważ nie możemy jednocześnie używać MAX i COUNT w taki sposób. MAX zwraca jedną wartość, podczas gdy COUNT zlicza, co wprowadza zamieszanie. Zastosowanie niepoprawnych konstrukcji SQL może prowadzić do błędów w wykonaniu zapytań oraz do zwracania nieoczekiwanych wyników, co jest szczególnie niebezpieczne w kontekście aplikacji produkcyjnych oraz baz danych, w których precyzyjne dane są kluczowe dla podejmowania właściwych decyzji. Dlatego ważne jest, aby dokładnie zrozumieć sposób działania funkcji agregujących oraz ich prawidłowe zastosowanie w zapytaniach.

Pytanie 37

Wskaź komentarz, który zajmuje wiele linii, w języku PHP?

A. #
B. /* */
C. / /
D. <!-- -->
Komentarze wieloliniowe w języku PHP są definiowane za pomocą znaków '/*' na początku i '*/' na końcu bloku tekstu, co pozwala na umieszczanie komentarzy obejmujących wiele linii. Tego rodzaju komentarze są niezwykle przydatne w sytuacjach, gdy chcemy opisać bardziej złożone fragmenty kodu, jak również w celu wyłączenia większych sekcji kodu podczas debugowania. Komentarze wieloliniowe są zgodne ze standardem PHP, co czyni je preferowanym rozwiązaniem w wielu projektach programistycznych. Przykład użycia: /* To jest komentarz komentarz wieloliniowy w PHP */. W odróżnieniu od komentarzy jedno-liniowych, które są ograniczone do jednej linii (używając // lub #), komentarze wieloliniowe umożliwiają umieszczanie dłuższych opisów. Ważne jest, aby używać komentarzy z umiarem, aby kod pozostał czytelny i zrozumiały dla innych programistów oraz dla przyszłych wersji projektu.

Pytanie 38

Znaczniki HTML <strong> oraz <em>, które służą do wyróżniania istotności tekstu, odpowiadają pod względem formatowania znacznikom

A. <b> oraz <u>
B. <u> oraz <sup>
C. <b> oraz <i>
D. <i> oraz <mark>
Odpowiedzi wskazujące na <u> oraz <sup> nie są właściwe w kontekście wyróżniania istotności tekstu. Znacznik <u> oznacza tekst podkreślony, co nie jest związane z jego semantycznym znaczeniem w HTML. W przeszłości używano go do podkreślania tekstu, ale nie ma on związku z wagi treści, co czyni go mniej odpowiednim do tworzenia treści dostępnych i zrozumiałych. Użytkownicy technologii wspomagających mogą mieć trudności w zrozumieniu, dlaczego tekst jest podkreślony, gdyż niekoniecznie oznacza to, że jest on ważny. Podobnie, <sup> jest znacznikiem używanym do oznaczania tekstu w indeksie górnym, co ma zastosowanie w kontekście matematycznym lub chemicznym, ale także nie ma związku z semantycznym wyróżnianiem treści. Z kolei odpowiedzi wskazujące na <i> oraz <mark> także są niepoprawne, ponieważ <mark> służy do oznaczania tekstu, który został wyróżniony, na przykład w kontekście wyszukiwania, ale niekoniecznie odzwierciedla istotność. Ostatecznie, znacznik <i> jest używany do stylizacji tekstu w kursywie, co także nie koresponduje z semantycznym znaczeniem wyróżnienia ważności. Przy opracowywaniu treści w HTML należy unikać stosowania znaczników jedynie do celów formatowania, a zamiast tego korzystać z semantycznych znaczników, aby poprawić dostępność oraz interpretację contentu.

Pytanie 39

Jakie wartości zostaną wyświetlone kolejno w wyniku wykonania podanego skryptu?

<script language = "JavaScript">
var x = 1;
var y;
++y;
document.write(++x);
document.write(" ");
document.write(x--);
document.write(" ");
document.write(x);
</script>
A. 1 2 2
B. 2 1 1
C. 1 2 1
D. 2 2 1
Poprawna odpowiedź to 2 2 1 ponieważ skrypt modyfikuje wartość zmiennej x krok po kroku. Pierwsza instrukcja ++x zwiększa wartość x z 1 do 2 i wypisuje ją na ekranie. Jest to przykład preinkrementacji gdzie wartość zmiennej jest zwiększana przed jej użyciem w wyrażeniu. Drugie wywołanie x-- to postdekrementacja która najpierw zwraca bieżącą wartość zmiennej x czyli 2 a dopiero potem ją zmniejsza. Dlatego w wyniku druga wartość to również 2. Wreszcie ostatnia instrukcja wypisuje aktualną wartość x po dekrementacji która wynosi teraz 1. Tego typu operacje na zmiennych są kluczowe w programowaniu gdyż pozwalają na efektywną kontrolę nad przepływem danych i logiką sterującą w aplikacjach. Zrozumienie różnicy między pre- i post- inkrementacją jest istotne w kontekście optymalizacji kodu i zapobiegania potencjalnym błędom logicznym.

Pytanie 40

Na ilustracji przedstawiono schemat rozmieszczenia elementów na stronie WWW, gdzie zazwyczaj umieszcza się stopkę strony?

Ilustracja do pytania
A. 1
B. 2
C. 5
D. 4
Odpowiedź 5 jest poprawna ponieważ w typowym układzie strony WWW stopka umieszczana jest na samym dole strony i obejmuje całą jej szerokość. Stopka to sekcja strony internetowej która zawiera istotne informacje takie jak prawa autorskie polityka prywatności linki do mediów społecznościowych oraz dane kontaktowe. Jest to zgodne z konwencjami projektowania stron internetowych gdzie stopka pełni rolę miejsca do umieszczania informacji które są ważne lecz niekoniecznie powinny być umieszczone na samej górze strony. W praktyce projektowania stron internetowych stosuje się różne technologie takie jak HTML CSS oraz frameworki jak Bootstrap które umożliwiają łatwe tworzenie responsywnych stopek. Stopka powinna być dostępna na każdej podstronie co ułatwia nawigację użytkownikom. Takie rozmieszczenie poprawia również SEO poprzez umieszczanie linków wewnętrznych. Dbałość o szczegóły w projektowaniu stopki zgodnie z dobrymi praktykami UX/UI przyczynia się do lepszej użyteczności strony oraz zadowolenia użytkowników co jest kluczowe w nowoczesnym web designie.