Wyniki egzaminu

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

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

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

W jakim standardzie języka hipertekstowego wprowadzono do składni znaczniki sekcji <footer>, <header>, <nav>?

A. HTML5
B. HTML4
C. XHTML1.0
D. XHTML 2.0
Tak, znaczników <footer>, <header> i <nav> zaczęto używać w HTML5, który zadebiutował w październiku 2014 roku. To jest ciekawe, bo HTML5 wprowadził sporo nowych semantycznych elementów, które pomagają w lepszej organizacji dokumentów HTML. Dzięki nim, przeglądarki i roboty wyszukiwarek mogą lepiej zrozumieć strukturę stron. Na przykład, <header> to nagłówek strony lub sekcji, <nav> tworzy menu nawigacyjne, a <footer> to stopka. Myślę, że to super sprawa, bo poprawia dostępność strony i jej SEO, bo tak naprawdę pomaga wyszukiwarkom w lepszym indeksowaniu treści, co może prowadzić do lepszych wyników w wyszukiwarkach. Dodatkowo, HTML5 ma też inne ciekawe nowinki, jak wsparcie dla multimediów, lokalne przechowywanie danych, a także lepszą kompatybilność z aplikacjami mobilnymi, więc zdecydowanie warto go wykorzystywać do budowy stron internetowych.

Pytanie 2

W HTML wprowadzono tag a. Co oznacza wartość nofollow w atrybucie rel?

<a href="http://website.com" rel="nofollow">link</a>
A. jest komunikatem dla robota wyszukiwarki Google, by nie śledził tego linku
B. jest wskazówką dla przeglądarki internetowej, aby nie interpretowała słowa 'link' jako hiperłącza
C. oznacza, że kliknięcie na link nie przekieruje do strony website.com
D. oznacza, że naciśnięcie na link spowoduje jego otwarcie w nowej karcie przeglądarki
Atrybut nofollow w linkach jest bardzo ważny dla tego, jak wyszukiwarki podchodzą do linków na stronach. Wprowadzenie go miało na celu ograniczenie spamu w komentarzach i w miejscach, gdzie autorzy stron nie chcieli, żeby te linki były traktowane jako polecenia. Gdy Google napotyka link z nofollow, to nie przekaże PageRank do strony, do której prowadzi. W praktyce oznacza to, że taki link nie pomoże w pozycjonowaniu tej docelowej strony. To jest super przydatne dla adminów, szczególnie przy linkach w komentarzach czy reklamach, gdzie nie zawsze można sprawdzić jakość tych linków. Dobrze jest stosować nofollow, kiedy link pojawia się automatycznie lub gdy nie jesteśmy pewni jego wartości merytorycznej.

Pytanie 3

W kodzie HTML atrybut alt w tagu img służy do określenia

A. ścieżki oraz nazwy pliku źródłowego
B. opisu, który pojawi się pod obrazem
C. atrybutów obrazu, takich jak rozmiar, ramka, wyrównanie
D. tekstu, który będzie prezentowany, gdy obraz nie może być załadowany
Atrybut alt w znaczniku img w HTML to naprawdę ważny element, jeśli chodzi o dostępność stron www. Jego głównym zadaniem jest pomóc osobom z problemami ze wzrokiem zrozumieć, co widnieje na obrazku. Jeśli nie da się wyświetlić grafiki – na przykład przez zły internet czy błąd w ścieżce do pliku – tekst w atrybucie alt pokazuje się jako alternatywa. Na przykład <img src='example.jpg' alt='Zachód słońca nad morzem'>, co by ułatwiło osobom korzystającym z czytników ekranu zrozumienie treści. Warto też pamiętać, że ten atrybut ma znaczenie dla SEO, bo wyszukiwarki mogą go wykorzystać do lepszego zrozumienia zawartości strony, co wpływa na jej indeksowanie. Ogólnie rzecz biorąc, używanie odpowiednich atrybutów alt to dobra praktyka w budowaniu stron www.

Pytanie 4

$i=10; $a=0; while $i) { $a=$a+2; $i--; } W języku PHP przedstawiono fragment kodu. Jaka będzie wartość zmiennej a po zakończeniu pętli?

A. 10
B. 0
C. 20
D. 2
W analizowanym fragmencie kodu PHP, mamy do czynienia z pętlą while, która działa tak długo, jak zmienna $i jest różna od zera. Na początku $i przyjmuje wartość 10, a zmienna $a jest inicjalizowana na 0. W obrębie pętli $a jest zwiększana o 2 w każdej iteracji, a zmienna $i jest dekrementowana o 1. Pętla wykona się więc 10 razy, co oznacza, że $a zostanie zwiększone 10 razy o 2, co daje łącznie: 2 * 10 = 20. Takie podejście do zarządzania pętlami jest zgodne z najlepszymi praktykami programowania, gdzie unika się złożonych operacji wewnątrz pętli na rzecz prostych i efektywnych obliczeń. Warto zauważyć, że sprawdzanie warunków oraz aktualizowanie zmiennych w pętli są kluczowe dla uniknięcia nieskończonych pętli oraz błędów logicznych, co jest istotne w kontekście utrzymania i czytelności kodu.

Pytanie 5

Aby włączyć zewnętrzny skrypt JavaScript o nazwie skrypt.js, konieczne jest umieszczenie w kodzie HTML

A. <link rel="script" href="/skrypt.js" />
B. <script> skrypt.js </script>
C. <link rel="JavaScript" type="js" href="/skrypt.js" />
D. <script src="/skrypt.js"></script>
Poprawna odpowiedź to <script src="/skrypt.js"></script>. Wykorzystanie atrybutu src w tagu <script> to standardowa metoda do ładowania zewnętrznych skryptów JavaScript w HTML. Dzięki temu przeglądarka wie, żeby pobrać i uruchomić kod z pliku skrypt.js. To z kolei pozwala na lepszą organizację, bo możemy używać tego samego skryptu w różnych miejscach projektu. No i w praktyce, to przynosi dużo korzyści, jak łatwiejsze utrzymanie czy debugowanie aplikacji. Jak mamy porządnie zorganizowany kod, to strona się szybciej ładuje, a przeglądarka może buforować te skrypty. Na koniec warto dodać, że dobrze osadzone skrypty wpływają też pozytywnie na SEO, bo wyszukiwarki lubią strony, które są zorganizowane i zoptymalizowane. Warto pamiętać, żeby umieszczać tagi <script> na końcu dokumentu HTML, zaraz przed zamknięciem tagu </body>, bo to pozwala na szybsze wyświetlanie zawartości.

Pytanie 6

Która z pętli w PHP umożliwia przeprowadzenie operacji na wszystkich elementach tablicy z automatycznym nadawaniem indeksów jej elementom?

A. do...while
B. while
C. foreach
D. for
Prawidłowa odpowiedź to 'foreach', ponieważ jest to specjalna pętla w języku PHP, która została stworzona z myślą o iteracji po elementach tablicy. Umożliwia ona wykonanie operacji na każdym elemencie tablicy bez potrzeby manualnego zarządzania indeksami, co jest szczególnie przydatne w sytuacjach, gdy nie znamy z góry liczby elementów w tablicy. Dzięki 'foreach' iteracja wygląda czytelnie i zwięźle, co znacząco poprawia czytelność kodu. Przykład zastosowania: jeśli mamy tablicę z nazwiskami, możemy użyć pętli 'foreach', aby wypisać każde nazwisko na ekranie. Dodatkowo, 'foreach' jest zgodne z najlepszymi praktykami programistycznymi, ponieważ ogranicza ryzyko wystąpienia błędów związanych z błędnymi indeksami i ułatwia utrzymanie kodu. Warto również zauważyć, że 'foreach' działa zarówno na tablicach numerycznych, jak i asocjacyjnych, co czyni ją elastycznym narzędziem dla programistów.

Pytanie 7

Aby włączyć zewnętrzny skrypt JavaScript zatytułowany skrypt.js, należy umieścić w kodzie HTML

A. <link rel="script" href="skrypt.js" />
B. <script> skrypt.js </script>
C. <link rel="JavaScript" type="js" href="skrypt.js" />
D. <script src="skrypt.js"></script>
Wiele z niepoprawnych odpowiedzi opiera się na nieporozumieniach co do właściwej składni używania JavaScript w dokumentach HTML. Odpowiedź <link rel="JavaScript" type="js" href="skrypt.js" /> jest błędna, ponieważ element <link> jest stosowany głównie do łączenia stylów CSS, a nie skryptów JavaScript. Atrybuty rel i type w tym kontekście nie mają zastosowania, co prowadzi do niepoprawnego załączenia skryptu. Kolejny przykład, <link rel="script" href="skrypt.js" />, również jest niewłaściwy, ponieważ nie istnieje atrybut rel o nazwie "script" w kontekście tagu <link>. Użycie atrybutu rel w kontekście skryptów nie jest zgodne z żadnym standardem HTML. Z kolei odpowiedź <script> skrypt.js </script> jest błędna, ponieważ nie używa atrybutu src, co oznacza, że przeglądarka nie będzie wiedziała, gdzie znaleźć plik skrypt.js. To podejście jest zatem nieefektywne i nieintuicyjne. Właściwe podejście do dołączania skryptów JavaScript polega na używaniu tagu <script> z atrybutem src, co jest zgodne z najlepszymi praktykami i standardami branżowymi. Takie zrozumienie składni HTML i JavaScript jest kluczowe dla każdego dewelopera webowego, aby zapewnić właściwą integrację i funkcjonalność stron internetowych.

Pytanie 8

W języku JavaScript rezultat wykonania polecenia ```zmienna1 -= 1;``` będzie tożsamy z wynikiem polecenia

A. zmienna1 = zmienna1 - 0;
B. zmienna1--;
C. zmienna1++;
D. zmienna1 === zmienna1 - 1;
Odpowiedź zmienna1--; jest poprawna, ponieważ jest to skrócona forma wyrażenia zmienna1 -= 1;. Oba wyrażenia mają ten sam efekt, który polega na zmniejszeniu wartości zmiennej zmienna1 o 1. W języku JavaScript operator '--' jest operatorem dekrementacji, który zmienia wartość zmiennej o jeden w dół. Użycie tego operatora jest zgodne z dobrymi praktykami kodowania, gdyż zwiększa czytelność kodu, czyniąc intencje programisty bardziej jasnymi. Użycie dekrementacji jest powszechne w sytuacjach, gdzie iterujemy przez kolekcje z użyciem pętli, co ogranicza potrzebę stosowania bardziej skomplikowanych instrukcji. Na przykład, w przypadku pętli for, zamiast pisać for(let i = n; i > 0; i -= 1), można zastosować for(let i = n; i > 0; i--), co jest bardziej zwięzłe i zrozumiałe. W kontekście standardów kodowania, preferowanym podejściem jest używanie operatorów, które maksymalizują przejrzystość i minimalizują możliwość popełnienia błędów.

Pytanie 9

W CSS należy ustawić tło dokumentu na obraz rys.png, który powinien się powtarzać tylko w poziomie. Którą definicję trzeba przypisać selektorowi body?

A. {background-image: url("rys.png"); background-repeat: repeat;}
B. {background-image: url("rys.png"); background-repeat: repeat-x;}
C. {background-image: url("rys.png"); background-repeat: repeat-y;}
D. {background-image: url("rys.png"); background-repeat: round;}
Wszystkie pozostałe opcje definiują sposób powtarzania tła, lecz każda z nich wprowadza inne zasady, co sprawia, że są one niewłaściwe w kontekście przedstawionego pytania. Wybór background-repeat: round, jak w pierwszej opcji, powoduje, że obrazek będzie powtarzany w taki sposób, aby całość się wpasowała w dostępne miejsce, ale niekoniecznie będzie powtarzany w ustalony sposób, co nie odpowiada założeniom pytania. Druga opcja, background-repeat: repeat, ustawia powtarzanie obrazu zarówno w poziomie, jak i w pionie, co jest sprzeczne z wymaganiem, aby obraz powtarzał się tylko w poziomie. Ostatnia z wyborów, background-repeat: repeat-y, z kolei powtarza obraz w pionie, co również nie spełnia założenia o poziomym powtarzaniu. Niestety, wiele osób myli te właściwości, co może prowadzić do niezamierzonych efektów wizualnych w projektach. Dlatego kluczowe jest zrozumienie różnicy między różnymi typami powtórzeń i ich zastosowaniem w praktyce. Właściwe użycie CSS, w tym dobór właściwych wartości dla background-repeat, wpływa na wydajność oraz na estetykę interfejsów użytkownika. W kontekście dobrych praktyk należy również pamiętać o optymalizacji obrazów oraz zapewnieniu, że używane techniki nie wpływają negatywnie na czas ładowania strony. Rozumienie tych aspektów jest kluczowe dla każdego, kto zajmuje się projektowaniem stron internetowych.

Pytanie 10

W CSS zapisany w ten sposób:

p { background-image: url("rysunek.png"); }

spowoduje, że rysunek.png stanie się

A. tłem każdego akapitu
B. tłem całej witryny
C. widoczny obok każdego akapitu
D. wyświetlony, jeśli w kodzie użyty zostanie znacznik img
W przypadku stylowania elementów za pomocą CSS, bardzo łatwo popełnić błąd interpretacyjny, jeśli nie zna się szczegółów działania selektorów czy właściwości stylów. Zapis p { background-image: url("rysunek.png"); } dotyczy wyłącznie elementów <p>, czyli akapitów, a nie całej witryny. Popularnym nieporozumieniem jest myślenie, że taka reguła zmieni tło całej strony — w rzeczywistości, aby osiągnąć taki efekt, należałoby użyć selektora body, np. body { background-image: ... }, bo to body odpowiada za tło całego dokumentu. Jeśli ktoś zakłada, że obrazek pojawi się tylko wtedy, gdy w HTML użyjemy <img src="rysunek.png">, to miesza dwie zupełnie osobne koncepcje: background-image ustawia grafikę w tle elementu, a <img> osadza ją w strukturze treści jako samodzielny obiekt — to dwie różne rzeczy. Sam background-image nie potrzebuje obecności znacznika <img>; przeglądarka pobierze i wyświetli grafikę tylko jako tło elementu. Natomiast odpowiedź sugerująca, że obrazek będzie widoczny obok każdego akapitu, wynika chyba z niezrozumienia mechanizmu renderowania tła: CSS nie wstawia obrazka "obok" treści, tylko pod nią, w tle elementu, wypełniając całą jego powierzchnię (lub jej fragment w zależności od innych właściwości tła, np. background-repeat czy background-position). To często mylone z dekoracjami typu list-style-image w listach, gdzie obrazek rzeczywiście pojawia się obok tekstu listy. Warto zawsze czytać dokumentację i testować takie rzeczy samodzielnie — praktyka bardzo pomaga zrozumieć niuanse w CSS. Przemyślenie działania selektorów i właściwości to podstawa unikania takich nieporozumień podczas projektowania layoutów.

Pytanie 11

W systemie baz danych stworzono tabelę Mieszkancy zawierającą informacje. Aby usunąć tę tabelę wraz z danymi, należy użyć komendy

A. DROP TABLE Mieszkancy;
B. TRUNCATE TABLE Mieszkancy;
C. ALTER TABLE Mieszkancy;
D. DELETE FROM Mieszkancy;
Polecenie 'DROP TABLE Mieszkancy;' jest właściwym sposobem na usunięcie tabeli wraz z jej zawartością w bazie danych. To polecenie nie tylko usuwa tabelę, ale również wszystkie dane, które w niej się znajdują oraz wszelkie powiązania, takie jak klucze obce. W praktyce, gdy programista chce całkowicie wyeliminować strukturę tabeli oraz jej dane, wykorzystuje 'DROP TABLE'. Jest to szczególnie przydatne w sytuacjach, gdy tabela nie jest już potrzebna w systemie, a jej usunięcie pozwala na zwolnienie zasobów oraz uproszczenie struktury bazy danych. Warto również pamiętać, że przed wykonaniem tego polecenia warto stworzyć kopię zapasową danych, jeśli są one istotne, ponieważ operacja ta jest nieodwracalna. Ponadto, zgodnie z zasadami dobrych praktyk, przed usunięciem tabeli należy upewnić się, że nie ma na nią żadnych zależności w innych częściach bazy danych, aby uniknąć potencjalnych problemów z integralnością danych.

Pytanie 12

W bibliotece mysqli w PHP, aby uzyskać najbardziej aktualny komunikat o błędzie, można użyć funkcji

A. mysqli_errno()
B. mysqli_error()
C. mysqli_use_result()
D. mysqli_error_list()
W kontekście użycia funkcji do uzyskania komunikatów o błędach w bibliotece mysqli, niektóre z odpowiedzi mogą prowadzić do nieporozumień. Na przykład, mysqli_use_result() jest funkcją, która służy do pobierania zestawu wyników z zapytania SELECT w trybie pamięci. Jej głównym zadaniem jest przetwarzanie wyników, a nie błędów, co czyni ją nieodpowiednią w tym kontekście. Użycie tej funkcji nie zapewnia informacji o błędach, czego można się spodziewać w przypadku zapytań, które mogą zakończyć się niepowodzeniem. Z kolei mysqli_errno() zwraca numer błędu związanego z ostatnią operacją, co może być przydatne, ale samo w sobie nie dostarcza opisu błędu, a tym samym nie spełnia wymagań dotyczących uzyskania ostatniego komunikatu o błędzie w formie tekstowej. Mimo że może być użyteczne w niektórych kontekstach, np. w logice warunkowej, nie jest w stanie dostarczyć pełnego opisu, którego można oczekiwać. Funkcja mysqli_error_list() zwraca tablicę wszystkich błędów związanych z ostatnią operacją, co również jest przydatne w określonych sytuacjach, jednak wciąż nie spełnia wymagań dotyczących prostego i bezpośredniego uzyskania ostatniego komunikatu o błędzie. Ostatecznie, przy wyborze metody obsługi błędów, kluczowe jest zrozumienie, że funkcje te mają różne zastosowania i nie każda z nich będzie odpowiednia w kontekście uzyskania pełnego opisu błędu. Podsumowując, wybór odpowiednich funkcji do obsługi błędów jest kluczowy dla efektywnego debugowania i poprawnego działania aplikacji opartych na PHP.

Pytanie 13

Jakie uprawnienia są konieczne do wykonania oraz przywrócenia kopii zapasowej bazy danych Microsoft SQL Server 2005 Express?

A. Administrator systemu
B. Użytkownik lokalny
C. Users
D. Security users
Aby wykonać i odtworzyć kopię zapasową bazy danych Microsoft SQL Server 2005 Express, wymagane jest posiadanie uprawnień administratora systemu. Administratorzy mają pełny dostęp do wszystkich funkcji i zasobów systemu, co jest kluczowe podczas zarządzania kopiami zapasowymi, które są niezbędne dla bezpieczeństwa i integralności danych. W kontekście SQL Server, administratorzy mogą korzystać z różnych narzędzi, takich jak SQL Server Management Studio (SSMS), aby tworzyć kopie zapasowe baz danych oraz przywracać je w razie potrzeby. Dobrą praktyką jest regularne tworzenie kopii zapasowych, co pozwala na minimalizację ryzyka utraty danych wskutek awarii systemu, błędów ludzkich czy ataków złośliwego oprogramowania. Ponadto, znajomość polityk przechowywania kopii zapasowych, takich jak ich rotacja i przechowywanie w bezpiecznych lokalizacjach, stanowi integralną część zarządzania danymi w organizacji. Warto również pamiętać o testowaniu procesów przywracania danych, aby upewnić się, że w sytuacji kryzysowej dostęp do informacji będzie możliwy w sposób szybki i efektywny.

Pytanie 14

Który z akapitów został zapisany w wskazanym stylu, zakładając, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 1
B. Efekt 4
C. Efekt 3
D. Efekt 2
Odpowiedź Efekt 3 jest poprawna, ponieważ odzwierciedla wszystkie zadane style CSS. Styl zawiera padding 20px co oznacza, że wewnętrzna przestrzeń wokół tekstu w paragrafie powinna wynosić 20 pikseli. Daje to efekt przestrzeni pomiędzy tekstem a obramowaniem. Kolor tekstu został ustawiony na niebieski co powoduje, że sam tekst przyjmuje niebieską barwę. Parametr font-weight jest ustawiony na 900 co oznacza, że tekst powinien być bardzo pogrubiony. Obecnie jest to maksymalna wartość dla własności font-weight w standardzie CSS która powoduje, że tekst wygląda na bardzo wyrazisty i wyróżnia się na tle innych elementów. Dodatkowo border ustawiono na 1px solid co oznacza, że paragraf powinien mieć jednolitą linię o grubości jednego piksela otaczającą jego obszar. Wszystkie te style są poprawnie zastosowane w Efekcie 3 gdzie tekst jest niebieski bardzo pogrubiony z przestrzenią 20 pikseli do obramowania oraz otoczony cienką linią. Taki styl jest często wykorzystywany w projektach stron internetowych dla wyraźnego wyróżnienia ważnych sekcji co zgodne jest z dobrymi praktykami projektowania interfejsów użytkownika.

Pytanie 15

Wymiary:4272x2848px
Rozdzielczość:72 dpi
Format:JPG

W ramce przedstawiono właściwości pliku graficznego. W celu optymalizacji czasu ładowania rysunku na stronę WWW należy
A. dostosować proporcje szerokości do wysokości
B. zmienić format grafiki na CDR
C. zmniejszyć rozmiary obrazu
D. zwiększyć rozdzielczość
Zmniejszenie wymiarów rysunku to kluczowy krok w optymalizacji czasu ładowania grafiki na stronę internetową. Wymiary rysunku 4272x2848px są znaczące, co oznacza, że obraz ma dużą ilość pikseli, co przekłada się na większy rozmiar pliku. Przy standardowej rozdzielczości 72 dpi, która jest odpowiednia do wyświetlania na ekranach, mniejsze wymiary skutkują zmniejszeniem liczby pikseli, co automatycznie obniża wagę pliku. Przykładem może być przeskalowanie obrazu do wymiarów 800x600px, co może znacznie przyspieszyć czas ładowania strony. W praktyce, witryny internetowe powinny dążyć do używania obrazów o wymiarach dostosowanych do wyświetlacza, a optymalne wymiary to te, które są zgodne z responsywnym designem. Ponadto, standardy dotyczące wydajności stron, takie jak Web Page Test czy Google PageSpeed Insights, zalecają minimalizację rozmiaru plików graficznych jako kluczowy element poprawy szybkości ładowania. Zmniejszenie wymiarów rysunku jest zatem jednym z najprostszych i najbardziej efektywnych rozwiązań, które mogą przynieść znaczące korzyści w zakresie wydajności stron internetowych.

Pytanie 16

Który z formatów plików używa kompresji stratnej?

A. GIF
B. BMP
C. PNG
D. JPEG
Poprawnie – spośród podanych formatów to właśnie JPEG wykorzystuje kompresję stratną. Oznacza to, że podczas zapisu obrazu część informacji o pikselach jest bezpowrotnie usuwana, żeby zmniejszyć rozmiar pliku. Algorytm JPEG analizuje obraz, rozkłada go na składowe (m.in. za pomocą DCT – dyskretnej transformacji cosinusowej), a następnie odrzuca te detale, których ludzkie oko zazwyczaj i tak nie zauważa, szczególnie w przejściach tonalnych i drobnych teksturach. Dzięki temu zdjęcie może ważyć np. 10 razy mniej niż w BMP, przy akceptowalnej jakości. W praktyce JPEG jest standardem do zapisu fotografii na stronach WWW, w mediach społecznościowych, w aparatach cyfrowych czy telefonach. Stosuje się go tam, gdzie ważniejszy jest mały rozmiar pliku niż idealna, bezstratna jakość – np. galerie produktowe w sklepach internetowych, blogi, portfolia. Dobrą praktyką w webdevie jest używanie JPEG do zdjęć i skomplikowanych obrazów, a PNG lub SVG do grafiki z ostrymi krawędziami, logotypów, ikon. Warto też pamiętać o ustawianiu rozsądnego poziomu kompresji: zbyt mocna kompresja JPEG powoduje widoczne artefakty (blokowe kwadraty, rozmycia krawędzi), zbyt słaba – niepotrzebnie duże pliki. Moim zdaniem sensownie jest testować kilka poziomów jakości (np. 60–80%) i wybierać kompromis między wagą a wyglądem, bo to dokładnie ta decyzja, z którą spotykasz się później w realnych projektach WWW.

Pytanie 17

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. aside {float: left; }
C. nav { float: right; }
D. nav { float: right; } section { float: right; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi. Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego. Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 18

W języku HTML, aby uzyskać następujący efekt formatowania
pogrubiony pochylony lub w górnym indeksie
należy zapisać kod:

A. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
B. <i>pogrubiony </i><b>pochylony </b>lub w <sub>górnym indeksie</sub>
C. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
D. <b>pogrubiony <i>pochylony</i></b> lub w <sup>górnym indeksie</sup>
W analizowanych odpowiedziach widać sporo niepoprawnych interpretacji dotyczących znaczników HTML, co może prowadzić do bałaganu w kodzie. W pierwszej opcji znacznik <i> został użyty do otoczenia całego fragmentu tekstu, a powinno być tak, żeby jedno nie kłóciło się z drugim. Takie błędy w strukturze HTML mogą sprawić, że przeglądarki nie wyświetlą tego, co zamierzałeś. W drugiej odpowiedzi użycie <sub> zamiast <sup> to też zły ruch, jeśli chodzi o górny indeks, bo może to wprowadzać w błąd, szczególnie w tematach naukowych, gdzie precyzja jest ważna. A ten <b> wokół słowa 'pochylony'... no nie wygląda to najlepiej, bo nie powinno się łączyć znaczników w sposób, który wprowadza w błąd co do ich funkcji. W web development ważne jest, żeby trzymać się zasad semantyki HTML, to ułatwia czytanie kodu i wspiera dostępność stron. Jak używasz złych znaczników, to możesz niechcący sprawić, że ludzie korzystający z technologii pomocniczych będą mieli trudności w nawigacji, a to nie jest zgodne z zasadami dostępności WCAG. No i w końcu, źle dobrane znaczniki mogą osłabić efekty wizualne, co wpływa na całą estetykę i funkcjonalność strony.

Pytanie 19

Najłatwiejszym sposobem na zmianę obiektu z numerem 1 na obiekt z numerem 2 jest

Ilustracja do pytania
A. zmiana warstwy obiektu
B. animacja obiektu
C. narysowanie obiektu docelowego
D. geometriczne przekształcenie obiektu
Wybór niewłaściwej metody zamiany obiektu na inny może wynikać z niepełnego zrozumienia zasad manipulacji graficznych. Narysowanie docelowego obiektu to czasochłonny proces, który nie gwarantuje precyzji ani zgodności z oryginałem. Ponadto, ręczne tworzenie obiektów pomija korzyści płynące z automatyzacji i precyzji narzędzi do transformacji. Zmiana warstwy obiektu nie wpływa na jego rozmiar ani kształt; warstwy są wykorzystywane do organizacji elementów w projekcie, a nie do ich transformacji. Animowanie obiektu z kolei odnosi się do nadawania mu ruchu w czasie, co nie zmienia jego statycznej formy. Animacje są stosowane głównie w filmach, grach czy interfejsach użytkownika, gdzie celem jest dynamika. Wszystkie te błędne podejścia wynikają z pomylenia celów i narzędzi odpowiednich do danego zadania. Kluczowym błędem jest brak świadomości, że transformacje geometryczne są najefektywniejszym sposobem na modyfikację samego kształtu i rozmiaru obiektu, co jest standardową praktyką w projektowaniu graficznym i inżynierii komputerowej, zapewniającą dokładność i spójność wyników.

Pytanie 20

W języku PHP symbol "//" oznacza

A. operator alernatywy
B. operator dzielenia całkowitego
C. początek komentarza jednoliniowego
D. początek skryptu
W PHP znak "//" oznacza początek komentarza jednoliniowego. Komentarze są niezwykle ważnym elementem kodu, ponieważ pozwalają programistom na dodawanie objaśnień i notatek, które nie są wykonywane przez interpreter. Dzięki temu kod staje się bardziej czytelny i łatwiejszy w utrzymaniu, zwłaszcza w projektach zespołowych czy przy dłuższych skryptach. Na przykład, można użyć komentarza, aby wyjaśnić, jak działa dana funkcjonalność lub dlaczego podjęto określoną decyzję projektową. Ponadto, stosowanie komentarzy zgodnie z dobrymi praktykami zwiększa jakość dokumentacji projektu oraz ułatwia przyszłym programistom (lub samemu autorowi) zrozumienie logiki kodu. Warto również zauważyć, że w PHP istnieją inne sposoby komentowania, takie jak "#" dla komentarzy jednoliniowych oraz "/* ... */" dla komentarzy wieloliniowych. Użycie komentarzy w kodzie źródłowym jest istotnym aspektem programowania, promującym najlepsze praktyki związane z czytelnością i zarządzaniem projektami.

Pytanie 21

W sekcji nagłówkowej kodu HTML znajduje się tekst przedstawiony na ilustracji. Tekst ten zostanie wyświetlony

<title>Strona miłośników psów</title>
A. na pasku tytułowym przeglądarki
B. w zawartości strony, w pierwszym widocznym nagłówku
C. w polu adresu, obok wpisanego adresu URL
D. w zawartości strony, na banerze
Tag <title> w HTML jest częścią sekcji nagłówkowej dokumentu i służy do określenia tytułu strony wyświetlanego na pasku tytułu przeglądarki. Jest to kluczowy element z punktu widzenia SEO, ponieważ wyszukiwarki internetowe używają informacji z tagu <title> do indeksowania stron i określania ich treści. Tytuł strony powinien być krótki, ale jednocześnie bogaty w słowa kluczowe, dzięki czemu zwiększa szanse na wysoką pozycję w wynikach wyszukiwania. W praktyce dobrze zaprojektowany tytuł wpływa na widoczność strony w sieci i przyciąga uwagę użytkowników. Ważne jest, aby tytuł był unikalny dla każdej strony w witrynie, co pomaga w lepszym zrozumieniu struktury strony przez odwiedzających oraz roboty indeksujące. Zgodnie z dobrymi praktykami, tytuł powinien zawierać od 50 do 60 znaków, aby był w pełni widoczny w wynikach wyszukiwania i nie został przycięty. Tytuł to pierwsze, co użytkownik widzi w zakładkach przeglądarki oraz w wynikach wyszukiwania, dlatego jego odpowiednia konstrukcja jest niezmiernie ważna.

Pytanie 22

Przy edytowaniu obrazu w programie graficznym rastrowym należy usunąć kolory z obrazu, aby uzyskać jego wersję w skali szarości. Jaką funkcję można zastosować, aby osiągnąć ten efekt?

A. filtru rozmycia
B. szumu RGB
C. desaturacji
D. kadrowania
Desaturacja to technika używana w edytorach grafiki rastrowej, polegająca na usunięciu kolorów z obrazu, co prowadzi do uzyskania odcieni szarości. Proces ten jest często stosowany w celu podkreślenia formy, tekstury i kontrastu obiektów w grafice, a także w celu poprawy czytelności w przypadku zdjęć i ilustracji, gdzie kolory mogą rozpraszać uwagę. Aby zastosować desaturację, użytkownik może skorzystać z odpowiedniej opcji w menu edytora, co zazwyczaj odbywa się poprzez wybór narzędzia desaturacji lub konwersji na skalę szarości. Dobrą praktyką jest przetestowanie różnych metod desaturacji, ponieważ niektóre programy oferują różne algorytmy, które mogą dawać różne rezultaty. Na przykład, niektóre edytory pozwalają na kontrolę intensywności desaturacji, co daje większą elastyczność w edytowaniu. W kontekście standardów branżowych, desaturacja jest powszechnie używana w grafikach do druku i w mediach cyfrowych, aby poprawić jakość wizualną i komunikacyjną obrazów.

Pytanie 23

Aby w PHP uzyskać dostęp do danych formularza przesyłanych w sposób bezpieczny, należy użyć tablicy

A. $_FILES
B. $_POST
C. $_SESSION
D. $_SERVER
W języku PHP tablica $_POST jest kluczowym narzędziem do obsługi danych przesyłanych za pomocą metody POST, która jest jedną z najczęściej stosowanych metod przesyłania formularzy w aplikacjach webowych. Odpowiedź ta jest prawidłowa, ponieważ $_POST umożliwia dostęp do danych wprowadzonych przez użytkownika w formularzu, które są wysyłane na serwer. Metoda POST jest bezpieczniejsza od metody GET, ponieważ nie ujawnia danych w URL, co jest istotne w kontekście prywatności i bezpieczeństwa. Przykłady zastosowania obejmują formularze logowania, gdzie dane użytkownika, takie jak hasło, są przesyłane do serwera. Stosując $_POST, programista może w łatwy sposób przetwarzać te dane, walidować je, a następnie zapisać w bazie danych lub wykonać inne operacje. W dobrych praktykach programistycznych zaleca się również stosowanie odpowiednich zabezpieczeń, takich jak filtrowanie i walidacja danych, aby uniknąć ataków typu SQL Injection czy XSS. Użycie $_POST jest kluczowe w tworzeniu nowoczesnych i bezpiecznych aplikacji internetowych.

Pytanie 24

Która z metod wyświetlenia tekstu nie jest określona w języku JavaScript?

A. Właściwość innerHTML
B. Metoda document.write()
C. Funkcja MessageBox()
D. Funkcja window.alert()
Każda z podanych odpowiedzi, oprócz Funkcji MessageBox(), jest technicznie poprawna w kontekście języka JavaScript. Własność innerHTML pozwala na manipulację zawartością HTML elementów na stronie, co jest powszechnie stosowane w aplikacjach webowych do dynamicznego aktualizowania treści. Przykład użycia innerHTML: document.getElementById('elementId').innerHTML = '<p>Nowy tekst!</p>'; co zmienia zawartość elementu o określonym identyfikatorze na nowy tekst. Metoda window.alert() jest również powszechnie używana do informowania użytkowników o ważnych informacjach w prosty sposób, chociaż może być uważana za nieco przestarzałą w kontekście nowoczesnego UX. Dobrą praktyką jest unikanie nadmiernego korzystania z alertów, które mogą irytować użytkowników. Metoda document.write() z kolei, choć używana do dodawania treści do strony, jest zalecana do stosowania wyłącznie w kontekście ładowania strony, ponieważ użycie tej metody po załadowaniu strony może prowadzić do nadpisania całego dokumentu, co może być mylące i problematyczne. Dlatego ważne jest, aby zrozumieć kontekst użycia różnych metod JavaScript, aby uniknąć typowych pułapek i poprawić jakość interakcji użytkownika z aplikacjami webowymi.

Pytanie 25

Utworzono bazę danych z tabelą mieszkancy, która zawiera pola: nazwisko, imie, miasto. Następnie zrealizowano poniższe zapytanie do bazy: ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' UNION ALL SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Kraków';``` Wskaź, które zapytanie zwróci te same dane.

A. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' OR miasto='Kraków';```
B. ```SELECT nazwisko, imie FROM mieszkancy AS 'Poznań' OR 'Kraków';```
C. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto BETWEEN 'Poznań' OR 'Kraków';```
D. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto HAVING 'Poznań' OR 'Kraków';```
Wszystkie niepoprawne odpowiedzi zawierają błędy syntaktyczne lub logiczne, które uniemożliwiają prawidłowe wykonanie zapytania. W pierwszej odpowiedzi użycie aliasu 'AS' jest niewłaściwe w tym kontekście, ponieważ nie można zastosować aliasu dla warunku w klauzuli WHERE. SQL nie interpretuje 'OR' w ten sposób, co powoduje, że zapytanie nie zwróci żadnych wyników. Druga odpowiedź z zastosowaniem klauzuli HAVING jest także błędna, ponieważ HAVING służy do filtrowania wyników po agregacji, a nie do prostego filtrowania danych w kolumnach. W tym przypadku poprawne byłoby użycie WHERE, które jest dedykowane do tego celu. Ostatnia odpowiedź z użyciem 'BETWEEN' jest zupełnie nieprawidłowa, ponieważ operator BETWEEN oczekuje dwóch wartości do porównania oraz nie może być używany z wieloma wartościami za pomocą 'OR'. W przypadku miast, powinno się stosować warunek, który precyzyjnie zdefiniuje, które miasta mają być brane pod uwagę, co w tej sytuacji nie zostało spełnione. Te błędy wskazują na nieprawidłowe zrozumienie zasad działania SQL oraz różnic pomiędzy operatorami logicznymi.

Pytanie 26

Który z przedstawionych ciągów znaków nie pasuje do wzorca wyrażenia regularnego określonego poniżej?

(([A-ZŁŻ][a-ząęóźżćńś]{2,})(-[A-ZŁŻ][a-ząęóźżćńś]{2,})?)
A. Jelenia Góra
B. Kasprowicza
C. Nowakowska-Kowalska
D. Kowalski
Wyrażenie regularne jest narzędziem do precyzyjnego przeszukiwania i manipulowania tekstem zgodnie z określonymi wzorcami. W podanym wzorcu, (([A-ZŁŻ][a-ząęóźżćńś]{2,})(-[A-ZŁŻ][a-ząęóźżćńś]{2,})?)?, szukamy ciągów rozpoczynających się dużą literą, następujących po niej przynajmniej dwóch małych liter, z możliwością oddzielenia myślnikiem i kolejną sekwencją podobnego formatu. Odpowiedź Jelenia Góra nie pasuje do tego wzorca, ponieważ zawiera spację, co łamie ciągłość wzorca. Wyrażenia regularne są kluczowe w przetwarzaniu danych tekstowych i walidacji, ponieważ pozwalają na dynamiczne określanie struktury danych. Przykłady zastosowania obejmują filtrowanie danych wejściowych w formularzach czy analizowanie logów serwerowych. W praktyce, stosując wyrażenia regularne, można skutecznie odróżniać i przetwarzać skomplikowane struktury tekstowe zgodnie z wymaganymi kryteriami, co jest standardem w branżach opartych na danych. Zrozumienie, jak działa taki wzorzec, pomaga w wielu zadaniach związanych z przetwarzaniem tekstu, w tym w programowaniu i analizie danych.

Pytanie 27

Funkcją przedstawionego kodu PHP będzie wypełnienie tablicy

$tab = array();
for ($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}

foreach ($tab as $x) {
    if ($x < 0) echo "$x ";
}
A. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych
B. Kolejnymi liczbami od 0 do 9 i wypisanie ich
C. Kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
D. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
Analizując błędne odpowiedzi, warto zauważyć, że niektóre z nich sugerują nieprawidłowe zrozumienie działania funkcji rand() i pętli for w PHP. Kod pokazuje, że pętla for jest używana do iteracji 10 razy, co oznacza, że tablica będzie wypełniona 10 wartościami, a nie 100. Funkcja rand(-100,100) generuje liczby z przedziału od -100 do 100, a nie tylko dodatnie czy kolejne liczby, co wyklucza możliwość wypełnienia tablicy kolejnymi liczbami od 0 do 9 czy od -100 do 100. Dalsze nieporozumienia mogą wynikać z błędnego zrozumienia instrukcji warunkowej w pętli foreach, która wyświetla tylko wartości ujemne, a nie dodatnie. Częste błędy to także założenie, że wszystkie elementy są przetwarzane jednakowo bez sprawdzenia warunku. Dobre praktyki programistyczne wymagają uważnego czytania i analizy kodu, aby zrozumieć jego logikę. Zrozumienie mechaniki działania pętli i instrukcji warunkowych jest kluczowe w programowaniu i często stanowi podstawę bardziej zaawansowanych algorytmów. Ostatecznie skuteczne przetwarzanie danych w PHP wymaga dokładnego zrozumienia struktury kodu i jego funkcji, co może być wyzwaniem, jeśli koncepcje te są źle zinterpretowane. Ważne jest, aby programista dokładnie rozumiał, jakie wartości są generowane i które z nich są wyświetlane, aby uniknąć niezamierzonych rezultatów w aplikacji.

Pytanie 28

Aby sprawdzić, czy kod JavaScript działa poprawnie, należy skorzystać z

A. interpretera PHP
B. kompilatora C++
C. konsoli w przeglądarce internetowej
D. interpretera PERL
Odpowiedzi, które mówią o interpreterach lub kompilatorach innych języków, nie są dobre, jeśli mówimy o testowaniu kodu JavaScript. Na przykład, interpreter PHP dotyczy zupełnie innego języka, który służy głównie do robienia dynamicznych stron internetowych. Podobnie z kompilatorami C++, które zamieniają kod C++ na pliki wykonywalne, więc nie mają nic wspólnego z JavaScript. Nawet interpreter PERL, mimo że to język skryptowy, nie może być użyty do testowania JavaScript. JavaScript działa w przeglądarkach i korzysta z silników takich jak V8 w Chrome czy SpiderMonkey w Firefoxie. Z tego powodu najlepszym wyborem do testowania kodu JavaScript jest konsola w przeglądarkach, bo jest zaprojektowana specjalnie do tego celu.

Pytanie 29

Wskaż polecenie, które zostało opisane w ramce.

Dla każdego przebiegu pętli aktualna wartość elementu tablicy jest przypisywana do zmiennej, a wskaźnik tablicy jest przesuwany o jeden, aż do osiągnięcia ostatniego elementu tablicy
A. for
B. while
C. foreach
D. next
Instrukcja 'foreach' jest używana do iteracji po elementach zbioru, takich jak tablice lub kolekcje, w sposób bardziej deklaratywny i zwięzły niż tradycyjne pętle 'for'. W wielu językach programowania, takich jak C#, Java czy PHP, pętla 'foreach' pozwala automatycznie przechodzić przez każdy element kolekcji, przypisując go do zmiennej tymczasowej bez konieczności jawnego zarządzania indeksem. Jest to szczególnie przydatne, gdy chcemy po prostu przetwarzać elementy jednej po drugiej, nie martwiąc się o ich indeksy. Przykładowo, w C# można użyć składni: 'foreach (var item in collection)', gdzie 'collection' jest kolekcją, a 'item' to zmienna reprezentująca aktualny element. Takie podejście jest uważane za standardową praktykę w sytuacjach, gdzie chcemy tylko odczytywać wartości. Korzystanie z 'foreach' sprzyja czytelności kodu i minimalizuje ryzyko błędów związanych z obsługą indeksów, co jest zgodne z dobrymi praktykami programistycznymi.

Pytanie 30

Kiedy należy użyć kwerendy SELECT DISTINCT, aby wybrać rekordy?

A. obecne w bazie tylko raz.
B. tak, aby w wskazanej kolumnie nie powtarzały się wartości.
C. uporządkowane w kolejności malejącej lub rosnącej.
D. pogrupowane.
Wybór nieodpowiednich odpowiedzi, takich jak pogrupowane, występujące w bazie tylko raz czy posortowane malejąco lub rosnąco, wskazuje na pewne nieporozumienia dotyczące funkcji kwerendy SELECT DISTINCT. Kwerenda ta nie jest używana do grupowania danych. Gdybyśmy chcieli pogrupować dane, zastosowalibyśmy grupowanie poprzez klauzulę GROUP BY, która agreguje dane na podstawie określonego kryterium, co jest zupełnie inną operacją. Podobnie, stwierdzenie, że SELECT DISTINCT wybiera rekordy występujące w bazie tylko raz, jest mylące. Funkcja DISTINCT nie ma na celu eliminacji wszystkich rekordów, które się powtarzają, ale raczej skupienie się na unikalnych wartościach w kontekście zadanej kolumny. Dodatkowo, posortowanie danych, niezależnie od kierunku (malejącego lub rosnącego), jest zupełnie inną operacją, którą osiągamy za pomocą klauzuli ORDER BY. W rzeczywistości, DISTINCT i ORDER BY mogą być używane razem, ale ich funkcje są różne. Typowe błędy myślowe prowadzące do tych niepoprawnych wniosków obejmują mylenie funkcji agregujących z funkcjami selekcyjnymi, co jest kluczowe do zrozumienia przy pracy z bazami danych. W rezultacie, kluczowym elementem jest umiejętność rozróżnienia funkcji i celów poszczególnych zapytań SQL, co jest niezbędne w efektywnym zarządzaniu danymi.

Pytanie 31

Zdefiniowano bazę danych z tabelą sklepy, która zawiera pola: nazwa, ulica, miasto, branza. W celu zlokalizowania wszystkich nazw sklepów spożywczych, które znajdują się tylko we Wrocławiu, należy wykorzystać kwerendę:

A. SELECT sklepy FROM nazwa WHERE branza="spożywczy" BETWEEN miasto="Wrocław"
B. SELECT sklepy FROM branza="spożywczy" WHERE miasto="Wrocław"
C. SELECT nazwa FROM sklepy WHERE branza="spozywczy" OR miasto="Wrocław"
D. SELECT nazwa FROM sklepy WHERE branza="spozywczy" AND miasto="Wrocław"
W analizowanych odpowiedziach pojawiają się różne błędy w konstruowaniu kwerend SQL. W pierwszej z nich, 'SELECT sklepy FROM branza="spożywczy" WHERE miasto="Wrocław";', użycie słowa kluczowego FROM jest niewłaściwe, ponieważ nie możemy bezpośrednio pobierać danych z kolumny 'branza'. W SQL słowo kluczowe FROM odnosi się do tabeli, a nie do kolumny, co prowadzi do błędnej składni. W drugiej odpowiedzi występuje zastosowanie operatora BETWEEN, który w tym kontekście jest źle użyty. BETWEEN zazwyczaj służy do określenia zakresu wartości dla pól numerycznych lub dat, co nie ma zastosowania w przypadku porównania tekstowego takiego jak miasto. W trzeciej odpowiedzi, 'SELECT nazwa FROM sklepy WHERE branza="spozywczy" OR miasto="Wrocław";', operator OR prowadzi do niepoprawnego wyniku, ponieważ zezwala na wybór sklepów, które mogą być spożywcze lub zlokalizowane w Wrocławiu, co nie spełnia wymogu, aby oba warunki były spełnione jednocześnie. Kluczowym błędem w tych odpowiedziach jest nieodpowiednie rozumienie logiki kwerend SQL, a także brak znajomości poprawnej składni SQL. Ważne jest, aby zawsze stosować odpowiednie operatory oraz rozumieć, jak działa logika zapytań w bazach danych, co jest niezbędne do efektywnego pobierania danych.

Pytanie 32

W języku JavaScript zapisano kod, którego wynikiem działania jest

var osoba = prompt("Podaj imię", "Adam");
A. wyświetlenie okna z pustym polem edycyjnym.
B. wyświetlenie okna z polem edycyjnym, w którym jest wpisany domyślny tekst "Adam".
C. bezpośrednie wpisanie do zmiennej osoba wartości "Adam".
D. pobranie z formularza wyświetlonego na stronie HTML imienia "Adam".
Niepoprawne odpowiedzi sugerują, że kod JavaScript może bezpośrednio wpisać wartość do zmiennej lub pobrać dane z formularza wyświetlanego na stronie HTML. Te rozumowania są jednak błędne. W JavaScript, aby przypisać wartość do zmiennej, musimy użyć operatora przypisania =, a nie metody prompt(). Metoda prompt() służy do wyświetlania okna dialogowego z polem tekstowym dla użytkownika, a nie do manipulowania danymi na stronie. Podobnie, pobieranie danych z formularza wymaga interakcji z DOM, a nie prostego użycia metody prompt(). W przypadku pustego pola edycyjnego, jest to możliwe tylko wtedy, gdy nie podamy drugiego argumentu do metody prompt(). W podanym kodzie drugi argument to 'Adam', co oznacza, że w polu edycyjnym domyślnie będzie wpisany tekst 'Adam'.

Pytanie 33

Która z reguł dotyczących sekcji w języku HTML jest poprawna?

A. W sekcji <head> nie można umieszczać kodu CSS, jedynie odwołanie do pliku CSS
B. W sekcji <head> umieszcza się część <body>
C. W sekcji <head> mogą znajdować się znaczniki <meta>, <title>, <link>
D. W sekcji <head> można zdefiniować szablon strony przy użyciu znaczników <div>
Nieprawidłowe odpowiedzi zawierają koncepcje, które nie są zgodne z zasadami tworzenia struktury dokumentu HTML. W części <head> nie definiuje się szablonu strony za pomocą znaczników <div>, ponieważ znaczniki <div> są przeznaczone do strukturyzacji zawartości, a ich miejsce znajduje się w części <body>. Umieszczanie <div> w sekcji <head> jest niezgodne z semantyką HTML i nie wnosi żadnych korzyści, ponieważ przeglądarki ignorują takie znaczniki w kontekście interpretacji zawartości strony. Również nie jest poprawne stwierdzenie, że część <head> ma zawierać część <body>, ponieważ każda z tych sekcji pełni swoją unikalną rolę – <head> dostarcza metadanych, podczas gdy <body> zawiera widoczną treść strony. Dodatkowo, umieszczanie kodu CSS w <head> nie jest błędem; wręcz przeciwnie, stosowanie odwołania do zewnętrznego pliku CSS w tej sekcji jest standardową praktyką, która umożliwia organizację kodu oraz jego łatwiejszą obsługę i aktualizację. Ważne jest, aby dobrze zrozumieć, że część <head> służy do określenia ogólnych właściwości dokumentu, podczas gdy <body> zapewnia miejsce dla wszystkich elementów, które użytkownik widzi na stronie. Pojawiające się tutaj nieporozumienia często wynikają z braku zrozumienia struktury HTML oraz jej semantyki, co może prowadzić do niskiej jakości kodu i problemów z renderowaniem strony.

Pytanie 34

Rekord w bazie danych identyfikowany jest jednoznacznie przez pole

A. numeryczne
B. klucza obcego
C. relacji
D. klucza podstawowego
Klucz obcy jest to pole, które odnosi się do klucza podstawowego innej tabeli w celu utworzenia relacji pomiędzy nimi. Jego głównym celem jest zapewnienie integralności referencyjnej, co oznacza, że pozwala na łączenie danych z różnych tabel. Dlatego klucz obcy nie może być użyty jako jednoznaczny identyfikator rekordu w danej tabeli, gdyż nie gwarantuje on unikalności, a jedynie odniesienie do innego rekordu. Numeryczne pole samo w sobie nie jest wystarczające do identyfikacji rekordu, ponieważ nie każde pole numeryczne jest unikalne. Pola numeryczne mogą zawierać powtarzające się wartości, co czyni je niewłaściwym wyborem na identyfikator rekordu. Relacje, mimo że są kluczowym elementem w strukturze baz danych, nie są specyficznymi polami, które mogłyby pełnić rolę klucza. Relacje definiują, jak różne tabele interagują ze sobą, ale nie identyfikują konkretnych rekordów. W związku z tym, żadne z wymienionych pól nie mogą pełnić roli jednoznacznego identyfikatora rekordu w bazie danych, poza kluczem podstawowym, który jest fundamentalnym elementem relacyjnych baz danych.

Pytanie 35

Aby wykorzystać skrypt znajdujący się w pliku przyklad.js, konieczne jest połączenie go ze stroną przy użyciu kodu

A. <script link="przyklad.js"></script>
B. <script>przyklad.js</script>
C. <script src="przyklad.js"></script>
D. <link rel="script" href="przyklad.js">
Odpowiedź <script src="przyklad.js"></script> jest naprawdę na miejscu, bo użycie atrybutu 'src' w znaczniku <script> to taki standardowy sposób dołączania zewnętrznych skryptów JS do HTML-a. Atrybut 'src' mówi przeglądarce, gdzie znaleźć ten skrypt, więc może go załadować i wykonać. Dzięki temu, skrypt z pliku 'przyklad.js' wchodzi w interakcję ze stroną i może dodawać różne funkcje, jak na przykład reagowanie na działania użytkownika czy manipulowanie elementami na stronie. Pamiętaj, że najlepiej dołączać skrypty na końcu dokumentu, zaraz przed </body>, bo wtedy cała zawartość strony ładuje się najpierw. Warto też pomyśleć o atrybucie 'defer' lub 'async', żeby lepiej zoptymalizować ładowanie skryptów i nie blokować renderowania strony. Na przykład, <script src="przyklad.js" defer></script> pozwoli na asynchroniczne ładowanie, co z pewnością poprawia wydajność.

Pytanie 36

W języku PHP zmienna globalna $_POST, służąca do odbierania danych z formularza przesłanych metodą POST, jest: 

A. zmienną tekstową.
B. tablicą asocjacyjną.
C. ciągiem znaków zakodowanym w JSON.
D. obiektem klasy stdClass.
Poprawnie – w PHP zmienna superglobalna $_POST jest tablicą asocjacyjną, czyli zbiorem par klucz ⇒ wartość. Kluczami są nazwy pól formularza (atrybut name w HTML), a wartościami – dane przesłane metodą POST. Dzięki temu po stronie PHP możesz wygodnie odwoływać się do konkretnych pól, np.: $imie = $_POST['imie']; $email = $_POST['email'];. To jest bardzo naturalne, bo struktura formularza HTML też opiera się na nazwach pól, więc mapowanie na tablicę asocjacyjną jest po prostu praktyczne. Moim zdaniem ważne jest też zrozumienie, że $_POST zawsze jest tablicą (array w PHP), nawet jeśli w formularzu jest tylko jedno pole. Jeżeli użytkownik nic nie wyśle, to będzie to pusta tablica, a nie null czy ciąg znaków. Z mojego doświadczenia warto zawsze sprawdzać isset($_POST['nazwa']) albo używać filter_input(INPUT_POST, 'nazwa'), co jest zgodne z dobrymi praktykami bezpieczeństwa. $_POST jest jedną z tzw. superglobali, obok $_GET, $_SERVER, $_FILES, $_SESSION itd. Są one dostępne w całym skrypcie, niezależnie od zasięgu (scope) funkcji. W kontekście formularzy webowych przyjętym standardem jest: używamy $_GET do danych z adresu URL (zapytania typu ?id=5), a $_POST do danych z formularzy, szczególnie gdy przesyłamy hasła, większe teksty, dane wrażliwe. To jest zgodne z typową architekturą aplikacji webowych w PHP. Warto też wiedzieć, że wartości w $_POST są zawsze typu string (lub tablica stringów, gdy używasz nazw pól z nawiasami, np. name="interesy[]"), ale sama zmienna $_POST jest tablicą asocjacyjną. Dobra praktyka: nie ufaj ślepo zawartości $_POST – zawsze waliduj i filtruj dane wejściowe przed zapisaniem do bazy czy wyświetleniem użytkownikowi, żeby unikać np. XSS i SQL injection.

Pytanie 37

Polecenie w języku SQL w formie ALTER TABLE 'miasta' ADD 'kod' text?

A. wprowadza do tabeli nową kolumnę o nazwie kod typu text
B. dodaje do tabeli dwie kolumny o nazwach: kod i text
C. zmienia nazwę tabeli miasta na kod
D. w tabeli miasta modyfikuje nazwę kolumny kod na text
Wszystkie pozostałe odpowiedzi są błędne z kilku powodów. Pierwsza z nich sugeruje, że polecenie zmienia nazwę tabeli 'miasta' na 'kod', co jest nieprawdziwe. W SQL, aby zmienić nazwę tabeli, używa się polecenia RENAME TABLE lub ALTER TABLE z odpowiednimi argumentami, a nie polecenia ADD, które służy wyłącznie do dodawania nowych kolumn. Kolejna fałszywa odpowiedź stwierdza, że dodaje dwie kolumny o nazwach 'kod' i 'text'. W rzeczywistości polecenie ALTER TABLE dodaje tylko jedną kolumnę, co jest wyraźnie widoczne w zapytaniu. W przypadku, gdybyśmy chcieli dodać więcej niż jedną kolumnę, musielibyśmy użyć oddzielnych poleceń ADD dla każdej kolumny lub zdefiniować je razem w pojedynczym poleceniu, co również nie ma miejsca w tym przykładzie. Ostatnia niepoprawna odpowiedź sugeruje, że w tabeli 'miasta' następuje zmiana nazwy kolumny 'kod' na 'text'. Tego rodzaju operacja wymagałaby użycia polecenia RENAME COLUMN, a nie ADD. Polecenie ADD nie zmienia istniejących kolumn, lecz dodaje nowe, co jest fundamentalnym zrozumieniem działania komendy ALTER TABLE. Dlatego wszystkie te odpowiedzi są technicznie błędne i nie oddają rzeczywistego działania zapytania SQL.

Pytanie 38

W bazie danych znajduje się tabela uczniowie z kolumnami: imie, nazwisko, klasa. Jakie polecenie SQL należy wykorzystać, aby znaleźć imiona oraz nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = 'M%';
B. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';
C. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN 'M%';
D. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN 'M%';
Wybrana odpowiedź jest poprawna, ponieważ używa operatora LIKE, który jest standardowym rozwiązaniem w SQL do wyszukiwania wzorców w danych. W tym przypadku 'M%' oznacza, że chcemy znaleźć wszystkie nazwiska, które zaczynają się na literę M. Operator LIKE jest szczególnie przydatny w sytuacjach, gdy potrzebujemy elastycznego wyszukiwania, umożliwiającego zastosowanie symboli wieloznacznych, takich jak '%' oznaczający dowolną liczbę znaków. Przykład zastosowania tego zapytania może obejmować generowanie listy uczniów dla nauczycieli, którzy chcą szybko zobaczyć wszystkich uczniów z nazwiskiem zaczynającym się na M, co może być przydatne przy organizowaniu wydarzeń czy klas. Dobrą praktyką jest także używanie odpowiednich indeksów w bazie danych, co może znacznie przyspieszyć wykonanie zapytań, zwłaszcza w dużych zbiorach danych. Znajomość operatorów SQL i ich zastosowań, jak również umiejętność formułowania zapytań, jest kluczowa w pracy z relacyjnymi bazami danych.

Pytanie 39

Dostępna jest tabela z danymi o mieszkaniach, zawierająca kolumny: adres, metraż, liczba_pokoi, standard, status, cena. Wykonanie poniższej kwerendy SQL SELECT spowoduje wyświetlenie

SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3;
A. Wszystkie informacje poza adresem tych mieszkań, które mają więcej niż 3 pokoje
B. Wszystkie informacje o tych mieszkaniach, które mają minimum 3 pokoje
C. Metraż oraz koszt tych mieszkań, które mają więcej niż 3 pokoje
D. Metraż oraz koszt tych mieszkań, które mają przynajmniej 3 pokoje
Czasami odpowiedzi są niepoprawne, bo trudno zrozumieć, jak działają podstawowe elementy SQL. Na przykład, często ludzie mylą operator > z >=, co może prowadzić do złych wyników, bo źle interpretują warunki filtrowania. W zapytaniu SELECT, jeżeli nie wybieramy konkretnych kolumn, to domyślnie będą wybierane wszystkie, co nie jest to, co chcemy. W tej sytuacji interesują nas tylko metraż i cena, a nie wszystkie dane. Zrozumienie, jakie dane się pojawią, wymaga uważności przy pisaniu zapytań SQL. Dobre praktyki to jasne warunki logiczne i dokładne określenie, co chcemy wyciągnąć i kiedy. Często popełnia się błąd, nie uwzględniając operatorów logicznych oraz jak wpływają na końcowy rezultat. Operator > jasno mówi, że chcemy mieszkania z więcej niż trzema pokojami, więc odpowiedzi, które sugerują mieszkania z co najmniej trzema pokojami, są błędne. Te błędy pokazują, jak ważne jest, żeby dokładnie czytać i rozumieć zapytania SQL, bo to naprawdę się przydaje w codziennej pracy z danymi.

Pytanie 40

W języku HTML, aby osiągnąć efekt pogrubienia, kursywy lub zapisu w górnym indeksie, należy wpisać kod:

A. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
B. <b>pogrubiony <i>pochylony</i></b> lub w <sub>górnym indeksie</sub>
C. <i>pogrubiony </i><b>pochylony</b> lub w <sub>górnym indeksie</sub>
D. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
Wybrane odpowiedzi zdają się sugerować nieprawidłowe zastosowanie tagów HTML, co może prowadzić do nieodpowiedniego formatowania tekstu. W pierwszym przypadku tag <i> został użyty do pogrubienia tekstu, co jest błędne, ponieważ <i> powinien być używany do wyświetlania tekstu w kursywie. Pogrubienie powinno być realizowane wyłącznie za pomocą tagu <b>. Z kolei w trzecim przykładzie, połączenie tagów <b> i <i> w jednym elemencie może prowadzić do nieczytelności i zamieszania, ponieważ nie jest jasne, jaki efekt został zamierzony. Takie praktyki są sprzeczne z zasadami semantyki HTML, która kładzie nacisk na logiczne i poprawne użycie tagów w celu zachowania czytelności oraz SEO. Tag <sub> w odpowiedziach jest poprawnie użyty, jednak zastosowanie go w kontekście górnego indeksu jest błędne; tu powinien być użyty <sup>. Warto zwrócić uwagę, że stosowanie niewłaściwych tagów HTML prowadzi do złego renderowania strony przez przeglądarki i może ograniczać dostępność treści dla użytkowników z ograniczeniami, co jest niezgodne z najlepszymi praktykami projektowania stron internetowych. W związku z tym, ważne jest, aby zrozumieć funkcje każdego tagu i stosować je odpowiednio, by poprawić zarówno estetykę, jak i funkcjonalność strony.