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: 21 marca 2026 20:27
  • Data zakończenia: 21 marca 2026 20:34

Egzamin niezdany

Wynik: 15/40 punktów (37,5%)

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Na ilustracji przedstawiono schemat rozmieszczenia elementów na stronie WWW. W której z jej sekcji zazwyczaj znajduje się stopka strony?

Ilustracja do pytania
A. 2
B. 1
C. 4
D. 5
Odpowiedź 5 jest poprawna ponieważ w standardach projektowania stron internetowych stopka strony zazwyczaj znajduje się na dole każdej podstrony. Stopka to miejsce gdzie umieszczane są informacje takie jak prawa autorskie prywatność i linki do kontaktu. Dobrze zaprojektowana stopka może także zawierać skróty nawigacyjne które pomagają użytkownikowi szybko przemieszczać się po stronie. W praktyce projektanci stron WWW stosują podejście oparte na responsywnym designie co oznacza że stopka powinna być łatwo dostępna i czytelna na różnych urządzeniach. Wykorzystanie CSS Grid lub Flexbox pozwala na elastyczne zarządzanie układem strony co jest szczególnie przydatne przy projektowaniu stopki. Ponadto stopki są elementami które odpowiadają za spójność wizualną całej strony internetowej zapewniając użytkownikowi intuicyjne doświadczenie. Umieszczanie stopki w dolnej części strony jest zgodne z oczekiwaniami użytkowników co zwiększa użyteczność serwisu i pozytywnie wpływa na jego odbiór. Praktyczne zastosowanie tego podejścia można zauważyć na wielu profesjonalnych stronach gdzie stopka jest wyraźnie oddzielona i przejrzysta co ułatwia użytkownikowi odnalezienie potrzebnych informacji.

Pytanie 2

Który z poniższych kodów stanowi alternatywę dla kodu umieszczonego w ramce?

Ilustracja do pytania
A. <?php for($x=2;$x<=54;$x+=2){echo $x." ";} ?>
B. <?php for($x=1;$x<=55;$x+=1){echo $x." ";} ?>
C. <?php for($x=2;$x<=56;$x+=2){echo $x." ";} ?>
D. <?php for($x=1;$x<=55;$x++){echo $x." ";} ?>
W wielu odpowiedziach widać, że nie do końca rozumiesz, jak działają pętle i warunki w PHP. Kod w ramce przyzwoicie wypisuje liczby parzyste od 2 do 54, ale pomija nieparzyste tylko dzięki warunkowi if i continue. Jak masz niepoprawne odpowiedzi, to pojawia się kilka problemów. Na przykład, jak pętla startuje od x=1 i zwiększa x o 1, to wszystkie liczby się drukują, a to nie jest to, co chcesz uzyskać. Zmiana kroku na zwiększanie x o 2 byłaby dobra, ale możesz też mieć za szeroki lub zbyt wąski zakres, tak jak w przypadku, gdy pętla kończy się na 56 zamiast 54. Żeby kod był poprawny, musisz zrozumieć, że każda iteracja musi spełniać konkretny warunek, który rozwiązuje problem. Często mylimy się, myśląc, że drobne zmiany w kodzie, jak zmiana zakresu czy kroku, same z siebie załatwią sprawę. Ważne, żeby przemyśleć, jak zaplanować strukturę pętli i warunków, żeby wszystko działało tak, jak powinno i wykorzystanie zasobów było efektywne.

Pytanie 3

Aby w JavaScript wykonać wymienione kroki, należy w znaczniku <script> umieścić kod

1. Wyświetlić okno do wpisania wartości z poleceniem "Podaj kwalifikację: ",
    następnie po zatwierdzeniu

2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się
    wartość pobrana z okna "Kwalifikacja: ..."
A. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A);
B. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: ".A);
C. A << prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A);
D. A = alert("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A);
Wybrana odpowiedź nie jest prawidłowa. W JavaScript, funkcja 'alert()' jest używana do wyświetlania okienka z komunikatem, ale nie pozwala na wprowadzenie przez użytkownika żadnej wartości, w przeciwieństwie do funkcji 'prompt()'. Operator '<<' nie jest odpowiedni w tym kontekście, ponieważ jest to operator przesunięcia bitowego, a nie służy do przypisywania wartości do zmiennej. W niektórych niepoprawnych odpowiedziach, próbowano połączyć łańcuchy znaków (stringi) za pomocą kropki ('.'), co jest niepoprawne w JavaScript. Operator do łączenia łańcuchów znaków w tym języku to '+'. Kropka jest używana do dostępu do właściwości obiektów. Pamiętaj, że zrozumienie różnicy między różnymi funkcjami interaktywnymi, takimi jak 'alert()', 'prompt()' i 'confirm()', oraz kiedy ich używać, jest kluczowe do efektywnego tworzenia interaktywnych stron internetowych.

Pytanie 4

Zapis CSS w postaci: ```ul{ list-style-image:url('rys.gif');}``` spowoduje, że na stronie internetowej

A. rysunek rys.gif zostanie wyświetlony jako punkt listy nienumerowanej
B. punktorem nienumerowanej listy stanie się rys.gif
C. każdy element listy zyska indywidualne tło pochodzące z grafiki rys.gif
D. rys.gif będzie służyć jako tło dla nienumerowanej listy
Podane odpowiedzi, które sugerują alternatywne interpretacje, nie są zgodne z rzeczywistością techniczną CSS. Przede wszystkim, twierdzenie, że rys.gif będzie stanowił ramkę dla listy nienumerowanej, jest błędne, ponieważ właściwość 'list-style-image' nie ma wpływu na obramowanie listy, a jedynie na sposób, w jaki są wyświetlane punkty listy. CSS do definiowania obramowań używa innych właściwości, takich jak 'border'. Z kolei stwierdzenie o wyświetlaniu rysunku rys.gif jako tł listy nienumerowanej jest mylące; to nie jest tło całej listy, ale pojedyncze punkty, które zastępują tradycyjne znaczniki. Ostatnia niepoprawna odpowiedź sugeruje, że każdy punkt listy miałby osobne tło pobrane z grafiki rys.gif. Jest to błędne, ponieważ definicja tła w CSS dotyczy całego elementu, a nie poszczególnych znaczników. Aby uzyskać różne tła dla elementów listy, należałoby użyć oddzielnych właściwości CSS dla każdego z nich zamiast 'list-style-image'. Dlatego wszystkie te odpowiedzi nie uwzględniają zasadniczej funkcji właściwości CSS, jaką jest kontrolowanie wizualnych markerów listy.

Pytanie 5

Jaką funkcję agregującą można zastosować, aby uzyskać ilość rekordów?

A. COUNT
B. AVG
C. SUM
D. NUMBER
Funkcja agregująca COUNT jest używana w bazach danych do zwracania liczby rekordów spełniających określone kryteria. Jest to jedna z podstawowych funkcji agregujących, która pozwala na szybkie uzyskanie informacji o objętości danych w tabeli. Na przykład, w zapytaniu SQL, które ma na celu policzenie liczby wszystkich klientów w tabeli "klienci", możemy użyć: SELECT COUNT(*) FROM klienci. Zwróci to całkowitą liczbę rekordów. Funkcja COUNT może być również używana z warunkami, co pozwala na bardziej zaawansowane analizy, takie jak: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska', co policzy tylko tych klientów, którzy są z Polski. W praktyce, COUNT jest nieoceniony w raportowaniu i analizie danych, umożliwiając analitykom i programistom szybkie zrozumienie struktury danych. Dobra praktyka to zawsze stosować COUNT w kontekście grupowania danych przy użyciu klauzuli GROUP BY, co pozwala na uzyskanie liczby rekordów w poszczególnych grupach.

Pytanie 6

Aby dodać nowy rekord do tabeli Pracownicy, konieczne jest zastosowanie polecenia SQL

A. INSERT (Jan, Kowalski) INTO Pracownicy
B. INSERT INTO Pracownicy VALUES ('Jan',' Kowalski')
C. INSERT VALUES Pracownicy INTO (Jan, Kowalski)
D. INSERT VALUES (Jan, Kowalski) INTO Pracownicy
Aby dodać nowy rekord do tabeli Pracownicy w bazie danych, należy skorzystać z polecenia SQL INSERT INTO, które jest standardowym sposobem na wprowadzenie nowych danych do tabeli. Poprawna składnia polecenia to 'INSERT INTO <nazwa_tabeli> VALUES (<wartości>)'. W przypadku podanego przykładu, używamy 'INSERT INTO Pracownicy VALUES ('Jan', 'Kowalski');', co jest zgodne z wymaganiami SQL. Polecenie to wprowadza dwa nowe atrybuty: imię 'Jan' oraz nazwisko 'Kowalski' do tabeli Pracownicy. Ważne jest, aby wartości były poprawnie otoczone apostrofami w przypadku typów danych tekstowych. Zgodnie z normami SQL, zapis ten pozwala na dodanie rekordu, pod warunkiem, że kolumny tabeli są zgodne z wprowadzanymi danymi, a tabela Pracownicy została wcześniej zdefiniowana w bazie danych. Przykładem może być sytuacja, w której tabela Pracownicy ma kolumny 'Imie' i 'Nazwisko', a wprowadzenie wartości bezpośrednio do tych kolumn jest zgodne z ich definicją.

Pytanie 7

Tabele Osoby i Adresy są połączone relacją jeden do wielu. Jakie zapytanie SQL należy zapisać, aby korzystając z tej relacji, prawidłowo wyświetlić nazwiska oraz przyporządkowane im miasta?

Ilustracja do pytania
A. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;
B. SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id = Adresy.id;
C. SELECT nazwisko, Miasto FROM Osoby, Adresy;
D. SELECT nazwisko, Miasto FROM Osoby.Adresy_id = Adresy.id FROM Osoby, Adresy;
Błędne odpowiedzi pokazują typowe nieporozumienia związane ze składnią i logiką SQL. Niektóre z nich opierają się na błędnym założeniu, że po prostu wymienienie tabel w instrukcji FROM automatycznie połączy te tabele - to nie jest prawda, ponieważ wymaga to jasno określonego warunku połączenia. Inne błądne odpowiedzi sugerują, że można po prostu porównać wartości kolumny 'id' w obu tabelach, aby je połączyć. To jest błędne, ponieważ nie uwzględnia to faktu, że relacja między tabelami jest określona przez klucz obcy, który może nie mieć takiej samej nazwy ani wartości jak klucz główny. Wreszcie, niektóre błędne odpowiedzi mylą składnię zapytania, umieszczając warunek łączenia w niewłaściwym miejscu lub pomijając niezbędne słowo kluczowe JOIN. To pokazuje, jak ważne jest dokładne zrozumienie składni SQL i jej reguł.

Pytanie 8

Jak określa się część strukturalnego języka zapytań, która dotyczy tworzenia zapytań do bazy danych za pomocą polecenia SELECT?

A. SQL DML (ang. Data Manipulation Language)
B. SQL DCL (ang. Data Control Language)
C. SQL DDL (ang. Data Definition Language)
D. SQL DQL (ang. Data Query Language)
Wybór SQL DML, SQL DCL lub SQL DDL jako odpowiedzi na to pytanie wskazuje na nieporozumienie dotyczące funkcji poszczególnych podzbiorów SQL. SQL DML (Data Manipulation Language) odnosi się do poleceń, które modyfikują dane w bazie, takich jak INSERT, UPDATE i DELETE. Myląc te pojęcia, można sądzić, że polecenia te są odpowiednie do pobierania danych, co jest błędne. Z kolei SQL DCL (Data Control Language) służy do zarządzania uprawnieniami użytkowników i kontroli dostępu do danych, co również nie ma związku z formułowaniem zapytań do bazy danych. Na przykład, polecenia GRANT i REVOKE są kluczowe w kontekście DCL, ale nie mają nic wspólnego z wyciąganiem danych. SQL DDL (Data Definition Language) dotyczy definicji struktury bazy danych, czyli tworzenia, modyfikowania i usuwania tabel oraz innych obiektów bazy danych (np. CREATE, ALTER, DROP). Wybór któregokolwiek z tych podzbiorów zamiast DQL wskazuje na brak zrozumienia hierarchii i celów SQL jako całości. Zrozumienie różnic między tymi podzbiorami jest kluczowe dla skutecznego zarządzania danymi i efektywnej pracy z bazami danych. Dobrą praktyką jest zapoznanie się z pełnym zakresem możliwości SQL, aby lepiej wykorzystać jego potencjał w codziennej pracy z danymi.

Pytanie 9

W formularzu dokumentu PHP znajduje się pole <input name="im">. Po tym, jak użytkownik wprowadzi ciąg znaków "Janek", aby dodać zawartość tego pola do bazy danych, w tablicy $_POST obecny jest element

A. im z następnym numerem indeksu
B. im z indeksem Janek
C. Janek z następnym numerem indeksu
D. Janek o indeksie im
Poprawna odpowiedź to "Janek o indeksie im", ponieważ w PHP, gdy formularz jest przesyłany, wartości pól formularza są przekazywane do tablicy globalnej $_POST, gdzie kluczami są nazwy pól, a wartościami są dane wprowadzone przez użytkownika. W przypadku pola <input name="im">, po wprowadzeniu przez użytkownika ciągu "Janek", w tablicy $_POST pojawi się element, w którym klucz to "im", a wartość to "Janek". Zgodnie z dobrymi praktykami programistycznymi, nazwy pól powinny być zrozumiałe i znaczące, co ułatwia późniejsze przetwarzanie danych. Przykładem może być sytuacja, w której tworzymy formularz rejestracyjny; odpowiednie nazewnictwo pól, takich jak "im" dla imienia, poprawia czytelność kodu oraz jego konserwowalność. Warto dodać, że dobrym zwyczajem jest również walidacja danych przed ich przetworzeniem, aby zapewnić bezpieczeństwo aplikacji oraz uniknąć potencjalnych ataków, takich jak SQL Injection.

Pytanie 10

Jakie zadanie ma funkcja PHP o nazwie mysql_select_db()?

A. wyznaczyć bazę, z której będą pozyskiwane dane
B. uzyskać dane z bazy danych na podstawie zapytania
C. nawiązać połączenie między bazą danych a serwerem SQL
D. wyznaczyć tabelę, z której będą pozyskiwane dane
Tutaj mamy parę pomyłek związanych z funkcją <span>mysql_select_db()</span>. Po pierwsze, mylisz ją z tym, jak łączymy bazę danych z serwerem SQL. W rzeczywistości, połączenie robi się przez <span>mysql_connect()</span>, a <span>mysql_select_db()</span> ma za zadanie pokazać, która z baz, które już mamy, ma być użyta. Kolejna sprawa to błędne zrozumienie, jak wyciągamy dane z bazy. Robimy to za pomocą funkcji jak <span>mysql_query()</span>, więc wybór bazy danych i ściąganie danych to dwa różne etapy. Mylenie bazy danych z tabelą też wprowadza w błąd, bo baza to tak naprawdę pojemnik dla tabel, a nie jedna konkretna tabela. Moim zdaniem, zrozumienie tej hierarchii jest kluczowe, żeby dobrze działać z bazami. Te nieporozumienia mogą skutkować poważnymi kłopotami, jak złe zapytania czy problemy z dostępem do danych. Lepiej wcześniej przejrzeć dokumentację i standardy SQL, bo one jasno tłumaczą różnice między połączeniem z serwerem, wyborem bazy danych a kwerendami.

Pytanie 11

Kiedy zestawi się relacją kluczy głównych dwie tabele, uzyskuje się relację o typie

A. jeden do jednego
B. jeden do wielu
C. wiele do jednego
D. wiele do wielu
Relacja typu jeden do jednego występuje, gdy dla każdego rekordu w jednej tabeli istnieje dokładnie jeden odpowiadający rekord w drugiej tabeli. Taki związek jest szczególnie przydatny w sytuacjach, gdy chcemy podzielić dane na różne kategorie, ale zachować ścisłą zależność między rekordami. Na przykład, możemy mieć tabelę z informacjami o użytkownikach, a w drugiej tabeli przechowywać szczegółowe dane dotyczące ich profili, gdzie każdy użytkownik ma tylko jeden profil. Takie połączenie nie tylko organizuje dane, ale również zwiększa wydajność zapytań i umożliwia lepszą kontrolę nad danymi. W praktyce, stosowanie relacji jeden do jednego pozwala na implementację złożonych systemów baz danych, które są zgodne z zasadami normalizacji, co jest kluczowe w projektowaniu baz zgodnych z najlepszymi praktykami, takimi jak minimalizacja redundancji i zapewnienie integralności danych.

Pytanie 12

Ikona przedstawiająca funkcję w edytorze grafiki rastrowej, znana jako „kubełek”, pozwala na

Ilustracja do pytania
A. wybór obszaru o identycznym kolorze
B. pobranie wybranej barwy i ustawienie jej jako aktywnej
C. zmianę bieżących kolorów
D. wypełnienie obszaru, który został zaznaczony kolorem
Narzędzie 'kubełek', często spotykane w edytorach grafiki rastrowej takich jak Adobe Photoshop czy GIMP, służy do wypełniania zaznaczonego obszaru kolorem. Jest to szczególnie przydatne w sytuacjach, gdy chcemy szybko zapełnić jednolitym kolorem duże powierzchnie, takie jak tła lub obiekty. Działa na zasadzie zalewania najbliższych pikseli wybranym kolorem, uwzględniając podobieństwo kolorów, co można regulować za pomocą opcji tolerancji. W praktyce, narzędzie to usprawnia proces tworzenia grafik, ponieważ eliminuje potrzebę ręcznego kolorowania każdego piksela. Dodatkowo 'kubełek' może być stosowany w połączeniu z różnymi trybami mieszania, co pozwala na uzyskanie bardziej zaawansowanych efektów wizualnych. Praca z 'kubełkiem' wymaga zrozumienia koncepcji warstw, ponieważ wypełnianie na konkretnej warstwie ma wpływ na finalny wygląd projektu. Wiedza o tym, jak skutecznie używać narzędzia 'kubełek', jest niezbędna dla każdego grafika cyfrowego, który chce pracować efektywnie i profesjonalnie, realizując projekty zgodnie z najlepszymi praktykami branżowymi.

Pytanie 13

Ile razy zostanie wykonana poniższa pętla w PHP?

for($i = 0; $i < 25; $i += 5) { ... }
A. 5
B. 26
C. 25
D. 0
W programowaniu pętle są kluczowymi konstrukcjami kontrolnymi pozwalającymi na wielokrotne wykonywanie kodu. W analizowanym przykładzie mamy do czynienia z pętlą for, która jest jedną z najczęściej używanych, z uwagi na jej elastyczność i czytelność. Pętla ta jest zdefiniowana jako for($i = 0; $i < 25; $i += 5). W tym kontekście błędem jest zakładanie, że pętla wykona 0 iteracji, ponieważ zmienna $i zaczyna od wartości 0 i spełnia warunek $i < 25, co rozpoczyna proces iteracji. Kolejną błędną koncepcją jest myślenie, że pętla wykona 25 lub 26 iteracji. Taki błąd może wynikać z niezrozumienia mechanizmu przyrostu zmiennej iteracyjnej $i. W tym przypadku, przyrost wynosi 5, co oznacza, że wartości przyjmowane przez $i to 0, 5, 10, 15 i 20, zanim warunek pętli przestanie być spełniony. Takie myślenie może prowadzić do nadmiernej ilości iteracji w pętlach, co jest typowym błędem projektowym. Warto zwrócić uwagę na poprawne formułowanie warunków pętli oraz zrozumienie wpływu inkrementacji na liczbę iteracji. Starannie zaplanowane i przemyślane pętle są kluczowe dla efektywności działania programu, a ich niepoprawne zrozumienie prowadzi do błędów, które są trudne do wykrycia i naprawy w większych projektach.

Pytanie 14

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

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

Pytanie 15

Jakie znaki <header>, <article>, <section>, <footer> są typowe dla tego języka?

A. HTML 4.01 Strict
B. HTML 5
C. HTML 4.01 Transitional
D. XHTML 1.1
Znaczniki <header>, <article>, <section>, <footer> są częścią specyfikacji HTML5, która wprowadziła bardziej semantyczne podejście do strukturyzacji dokumentów webowych. Te elementy umożliwiają programistom tworzenie bardziej przejrzystych i zrozumiałych dokumentów, zarówno dla ludzi, jak i dla maszyn. Na przykład, znacznik <header> definiuje nagłówek strony lub sekcji, <article> służy do oznaczania samodzielnych treści, które mogą być niezależnie dystrybuowane, <section> grupuje powiązane tematycznie elementy, a <footer> zawiera informacje o końcu strony lub sekcji. Użycie tych znaczników ma kluczowe znaczenie dla SEO, ponieważ wyszukiwarki mogą lepiej zrozumieć strukturę treści na stronie. Dodatkowo, zastosowanie tych elementów wspiera dostępność, ułatwiając nawigację osobom korzystającym z czytników ekranu. W praktyce, stosując te znaczniki, programiści tworzą bardziej uporządkowane i zrozumiałe strony, co jest zgodne z najlepszymi praktykami w branży.

Pytanie 16

Instrukcja REVOKE SELECT ON nazwa1 FROM nazwa2 w SQL pozwala na

A. przyznawanie praw dostępu do tabeli
B. pozbawianie użytkownika uprawnień
C. przyznawanie uprawnień za pomocą ustalonego schematu
D. usuwanie konta użytkownika z bazy danych
Polecenie REVOKE SELECT ON nazwa1 FROM nazwa2 w SQL służy do cofnięcia uprawnień, które wcześniej przyznaliśmy jakiejś osobie albo roli. W kontekście baz danych, uprawnienia SELECT to po prostu możliwość oglądania danych w tabeli (nazwa1). To dosyć ważna sprawa, jeśli mówimy o bezpieczeństwie bazy. Dzięki temu możesz kontrolować, kto ma dostęp do jakich danych, co jest szczególnie istotne w przypadku różnych regulacji prawnych, jak RODO. Przykładowo, jeśli użytkownik (nazwa2) miał dostęp do tej tabeli, a później uznaje się, że nie powinien go mieć, to używasz REVOKE, żeby to cofnąć. To normalne podejście w administrowaniu bazami danych, bo bezpieczeństwo danych to bardzo ważny aspekt. Warto również czasami przeglądać, kto ma jakie uprawnienia, żeby zminimalizować ryzyko, że ktoś niepowołany dostanie się do wrażliwych informacji.

Pytanie 17

Przedstawiono efekt formatowania CSS oraz kod HTML. Jak należy zdefiniować styl, aby osiągnąć takie formatowanie?

<p>
Mimozami jesień się zaczyna,<br>
Złotawa, krucha i miła.<br>
To ty, to ty jesteś ta dziewczyna,<br>
Która do mnie na ulicę wychodziła.
</p>
Ilustracja do pytania
A. .first-line { font-size: 200%; color: brown; }
B. p.first-line { font-size: 200%; color: brown; }
C. p::first-line { font-size: 200%; color: brown; }
D. #first-line { font-size: 200%; color: brown; }
Niestety, wybrana przez ciebie odpowiedź jest niepoprawna. Najważniejszym błędem jest brak zrozumienia, jak działają pseudoelementy i selektory CSS. Pseudoelement ::first-line jest używany specyficznie do formatowania pierwszej linii paragrafu. Zastosowanie selektora typu ID (#first-line) lub klasy (.first-line) nie dałoby oczekiwanego efektu, ponieważ te selektory odnoszą się do elementów o określonym identyfikatorze lub klasie, a nie do pierwszej linii paragrafu. Podobnie, selektor p.first-line oznacza paragraf o klasie 'first-line', a nie pierwszą linię paragrafu. Dlatego w tym przypadku prawidłowym rozwiązaniem jest zastosowanie pseudoelementu ::first-line w połączeniu z selektorem paragrafu (p), co umożliwi formatowanie tylko pierwszej linii paragrafu. Pamiętaj, że prawidłowe rozumienie selektorów CSS jest kluczowe do efektywnego stylowania stron internetowych i tworzenia responsywnych, atrakcyjnych layoutów.

Pytanie 18

Jakie zadanie wykonuje funkcja agregująca AVG w poniższym zapytaniu?

SELECT AVG(cena) FROM uslugi;
A. wyznaczyć największą cenę za usługi
B. obliczyć średnią arytmetyczną cen wszystkich usług
C. zsumować ceny wszystkich usług
D. sprawdzić, ile usług znajduje się w tabeli
Dobra robota z odpowiedzią! Funkcja AVG w SQL służy do obliczania średniej z wartości w danej kolumnie, tutaj mamy kolumnę 'cena' w tabeli 'uslugi'. Korzystając z AVG, możesz łatwo dowiedzieć się, jaki jest średni koszt usług, co jest mega pomocne w analizowaniu wydatków. Moim zdaniem, średnia arytmetyczna ma spore znaczenie w raportach finansowych, przy podejmowaniu decyzji w biznesie i śledzeniu trendów rynkowych. Fajnie jest też wiedzieć, że ta funkcja ignoruje wartości NULL, co sprawia, że wyniki są bardziej wiarygodne, kiedy nie wszystkie usługi mają podane ceny. Warto pamiętać, że najlepiej używać funkcji agregujących z klauzulami GROUP BY, żeby móc dokładniej analizować, na przykład średnie ceny w różnych kategoriach usług.

Pytanie 19

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

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

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

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

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

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

Pytanie 20

Dla jakiej wartości zmiennej x instrukcja warunkowa w JavaScript jest spełniona?

if ((x < -5) || (x > 2))
    x++;
A. -1
B. -4
C. 3
D. 2
Analizując dostarczone odpowiedzi, kluczowe jest zrozumienie działania operatora logicznego OR oraz warunków logicznych w języku JavaScript. Instrukcja warunkowa wykonuje się, jeśli którykolwiek z warunków jest prawdziwy. Przy wartości x równej -4, żaden z warunków (x < -5) lub (x > 2) nie jest spełniony, ponieważ -4 jest większe niż -5 i mniejsze niż 2, więc instrukcja x++ się nie wykona. Dla x = -1 sytuacja jest podobna; -1 także nie spełnia obu warunków. Gdy x = 2, nadal nie spełniamy żadnego z wyrażonych warunków, ponieważ 2 nie jest większe niż 2 ani mniejsze niż -5. Typowym błędem myślowym przy rozwiązywaniu takich zadań jest błędne rozumienie zakresu działania operatora OR. Warto pamiętać, że wystarczy jedno prawdziwe wyrażenie, aby cała instrukcja została zaakceptowana. Błędne jest także myślenie, że brak bezpośredniej równości w warunku (jak x > 2) oznacza akceptację wartości granicznej. W tym przypadku konieczne jest pełne spełnienie warunku, co podkreśla znaczenie dokładności w formułowaniu logiki programistycznej. Takie zrozumienie operatorów logicznych i warunków jest niezbędne dla efektywnego tworzenia kodu, który odpowiada na wymagania logiki biznesowej w aplikacjach. Pasjonaci programowania powinni koncentrować się na testowaniu różnych scenariuszy, aby dokładnie zrozumieć, jak wartości zmiennych wpływają na przepływ działania ich kodu. Taka wiedza jest fundamentalna przy tworzeniu skalowalnych i niezawodnych rozwiązań programistycznych, które muszą operować na wielu danych wejściowych i warunkach w dynamicznie zmieniającym się środowisku.

Pytanie 21

Jakie metody są związane z predefiniowanym obiektem Date w języku JavaScript?

A. row()
B. getMonth() oraz getDay()
C. fromCodePoint()
D. concat() oraz pop()
Metody row(), fromCodePoint() oraz concat() i pop() nie są związane z obiektem Date w JavaScript, stąd ich niepoprawność w kontekście pytania. Metoda row() nie istnieje w standardzie JavaScript, co czyni ją całkowicie nieodpowiednią w analizie dat. Z kolei fromCodePoint() jest metodą stosowaną w kontekście pracy z Unicode, a nie datami; służy do konwersji punktów kodowych na znaki, co nie ma zastosowania w operacjach na obiektach Date. Metody concat() oraz pop() są właściwe dla obiektów typu Array. concat() łączy dwa lub więcej tablic, natomiast pop() usuwa ostatni element tablicy. Obie te metody nie mają związku z manipulowaniem datami, a ich wykorzystanie w kontekście obiektu Date jest błędne. Dlatego odpowiedzi te są niewłaściwe i nie mają zastosowania w kontekście funkcji obiektu Date w JavaScript, co pokazuje, jak ważne jest zrozumienie kontekstu i specyfiki metod w języku JavaScript.

Pytanie 22

W jaki sposób funkcjonuje instrukcja do łączenia wyników zapytań INTERSECT w SQL?

A. Zwraca zbiór wyników z pierwszego zapytania oraz zbiór wyników z drugiego zapytania, automatycznie eliminując powtarzające się wiersze
B. Zwraca te wiersze, które wystąpiły w wyniku pierwszego zapytania, jednak nie były obecne w wyniku drugiego zapytania
C. Zwraca część wspólną wyników dwóch zapytań
D. Zwraca te wiersze, które wystąpiły w wyniku drugiego zapytania, natomiast nie było ich w wyniku pierwszego zapytania
Wszystkie niepoprawne odpowiedzi nie oddają istoty działania instrukcji INTERSECT. Opis dotyczący zwracania listy wyników z obu zapytań oraz usuwania powtarzających się wierszy jest mylący, ponieważ INTERSECT nie łączy wyników, lecz filtruje je, ograniczając się tylko do wspólnych wierszy. Ponadto wskazanie, że instrukcja ta zwraca wiersze z pierwszego zapytania, które nie znajdują się w drugim, jest błędne, ponieważ dotyczy to operatora EXCEPT, który działa na zasadzie różnicy zbiorów. Również stwierdzenie, że INTERSECT zwraca wiersze z drugiego zapytania, które nie występują w pierwszym, również jest mylące i nie ma podstaw w rzeczywistości działania tej instrukcji. W rzeczywistości, INTERSECT nie operuje na zasadzie różnic, lecz na zasadzie przecięcia zbiorów, co oznacza, że korzysta z logiki logicznego AND, a nie OR. Podsumowując, kluczowym elementem użycia INTERSECT jest zrozumienie, że jego zadaniem jest wyodrębnienie wspólnych elementów, co czyni go narzędziem do porównywania i analizy danych, a nie do łączenia ich czy analizy różnic.

Pytanie 23

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. Kolejnymi liczbami od 0 do 9 i wypisanie ich
B. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
C. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych
D. Kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
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 24

Deklarując var x="true"; w języku JavaScript, jakiego typu zmienną się tworzy?

A. Logicznego
B. Nieokreślonego (undefined)
C. Liczbowego
D. String (ciąg znaków)
Odpowiedzi wskazujące na inne typy danych, takie jak typ logiczny czy liczbowy, zawierają istotne nieporozumienia dotyczące sposobu, w jaki JavaScript zarządza danymi. Typ logiczny w tym kontekście oznaczałby, że zmienna mogłaby przyjmować tylko wartości 'true' lub 'false', co jest mylnym założeniem, ponieważ 'true' jest tutaj częścią tekstu, a nie wartością logiczną. Z kolei typ liczbowy byłby właściwy dla zmiennych takich jak 1, 2 czy 3, które reprezentują liczby całkowite lub zmiennoprzecinkowe. W przypadku zadeklarowanej zmiennej 'var x="true";', wartość, która jest przypisywana, jest w rzeczywistości ciągiem tekstowym, mimo że zawiera słowo kluczowe 'true'. Typ danych 'undefined' z kolei oznacza, że zmienna została zadeklarowana, ale nie przypisano jej żadnej wartości, co również nie odpowiada sytuacji przedstawionej w pytaniu. Zrozumienie typów danych w JavaScript jest kluczowe dla unikania błędów typowych, zwłaszcza w kontekście zmiennych, które mogą być używane w różnych operacjach. W praktyce, to zrozumienie typów pozwala programistom lepiej zarządzać danymi i pisać bardziej niezawodny kod. Warto również pamiętać, że JavaScript automatycznie konwertuje typy w wielu sytuacjach, co może prowadzić do niezamierzonych rezultatów, dlatego proszę zwracać szczególną uwagę na przypisania i operacje wykonywane na zmiennych.

Pytanie 25

W deklaracji w języku JavaScript:```var x=true;``` zmienna x przyjmuje typ

A. liczbowym
B. ciąg znaków
C. wyliczeniowym
D. logicznym
Wybór opcji liczbowego, wyliczeniowego lub ciągu znaków jest błędny z kilku kluczowych powodów. Przede wszystkim, typ liczbowy w JavaScript reprezentuje dane numeryczne, takie jak całkowite liczby i liczby zmiennoprzecinkowe, na przykład `var y = 5;`. Zmienne typu liczbowego nie mogą przyjmować wartości logicznych. Z kolei typ wyliczeniowy, którego nie ma w JavaScript, jest typem danych reprezentującym zestaw możliwych wartości, często używanym w innych językach programowania, jak C czy Java, ale nie odnosi się do kodu JavaScript. W JavaScript nie mamy również formalnych typów wyliczeniowych, co może prowadzić do nieporozumień. Jeśli chodzi o ciągi znaków, są one reprezentowane w JavaScript przez tekst umieszczony w cudzysłowach, na przykład `var str = 'tekst';`, i również nie są związane z wartościami boolean. Typowe błędy myślowe, które mogą prowadzić do błędnych odpowiedzi, obejmują mylenie operacji logicznych z arytmetycznymi, co może sprawić, że programista zakłada, że zmienna logiczna może być interpretowana jako liczba. Dodatkowo, w kontekście typów danych w JavaScript, ważne jest zrozumienie, że każdy typ ma swoje specyficzne zastosowania i reguły, co jest kluczowe dla prawidłowego modelowania danych w aplikacjach.

Pytanie 26

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

A. $_SESSION
B. $_SERVER
C. $_FILES
D. $_POST
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 27

Jak można zmodyfikować nałożone na siebie fragmenty obrazu, nie zmieniając innych elementów?

A. Kanał przezroczystości
B. Warstwy
C. Wykres histogramu
D. Przycinanie
Warstwy są kluczowym elementem w edycji grafiki komputerowej, umożliwiając precyzyjne zarządzanie różnymi elementami obrazu. Dzięki zastosowaniu warstw, użytkownik może na przykład oddzielić tło od obiektów na pierwszym planie, co pozwala na edytowanie jednego z tych elementów bez wpływu na resztę kompozycji. Zastosowanie warstw jest szczególnie przydatne w programach graficznych, takich jak Adobe Photoshop, GIMP czy CorelDRAW, gdzie umożliwia łatwą manipulację oraz efektywną organizację projektu. Dzięki warstwom można również stosować różne efekty i style, takie jak cienie, przezroczystości czy gradienty, co pozwala na stworzenie bardziej złożonych i interesujących grafik. Warto również zauważyć, że korzystanie z warstw jest zgodne z najlepszymi praktykami w branży, jako że sprzyja to lepszej organizacji pracy oraz ułatwia wprowadzanie zmian w projekcie. Uczy to również umiejętności przydatnych w pracy zespołowej, gdzie różne osoby mogą pracować nad różnymi warstwami równocześnie, co zwiększa efektywność i kreatywność procesu twórczego.

Pytanie 28

Podczas weryfikacji pliku HTML5 pojawił się komunikat brzmiący: "Error: Element head is missing a required instance of child element title". Co to oznacza w kontekście dokumentu?

A. element <title> nie został prawidłowo zamknięty przez </title>.
B. element <title> nie jest konieczny.
C. nie zdefiniowano obowiązkowego atrybutu title w tagu <img>.
D. nie zdefiniowano elementu <title> w sekcji <head> dokumentu.
Wybierając odpowiedzi, które wskazują na inne problemy z elementem <title>, możesz się trochę pogubić jeśli chodzi o podstawowe zasady HTML5. Pamiętaj, że ten element jest obowiązkowy, a jak go brakuje w sekcji <head>, to pojawia się błąd, który pokazuje, że nie wszystko się zgadza z zasadami HTML. Myślenie, że <title> nie jest wymagany, to duży błąd, bo każda strona powinna mieć ten element, żeby działała poprawnie w przeglądarkach i wyszukiwarkach. Też stwierdzenie, że <title> nie jest zamknięty przez </title>, może sugerować, że myślisz, że ten element mógłby być opcjonalny, co jest nieprawdziwe. Jeśli masz <title>, to musi być on poprawnie zdefiniowany i zamknięty. A pomijanie atrybutu title w znaczniku <img> może być mylące, bo ten atrybut dotyczy opisu obrazków, a to wcale nie jest związane z tytułem dokumentu. Pamiętaj, że brak atrybutu alt w <img> może powodować problemy z dostępnością, ale nie wpływa na walidację sekcji <head>. Ważne jest, żeby zrozumieć kontekst i rolę każdego elementu HTML w budowie strony.

Pytanie 29

W przedstawionym kodzie JavaScript linie zostały ponumerowane dla wygody. Kod ten zawiera błąd, ponieważ po jego uruchomieniu nie wyświetla się żaden komunikat. Aby usunąć ten błąd, należy

1  if(a < b)
2      document.write(a);
3      document.write("jest mniejsze");
4  else
5      document.write(b);
6      document.write("jest mniejsze");
A. umieścić znaki $ przed nazwami zmiennych
B. dodać nawiasy klamrowe do sekcji if i else
C. w liniach 2 i 5 zmienne a i b umieścić w cudzysłowie
D. w liniach 3 i 6 zastąpić znaki cudzysłowu apostrofami, np. 'jest mniejsze'
Analizując przedstawione odpowiedzi można zauważyć kilka typowych błędów myślowych w interpretacji wymagań języka JavaScript. Wstawienie zmiennych w cudzysłów sugeruje że traktujemy je jako ciągi tekstowe a nie jako zmienne co jest błędne w kontekście tego kodu. W tym przypadku zmienne a i b powinny pozostać bez cudzysłowów ponieważ odnosimy się do ich wartości nie do ich nazw jako tekstu. Kolejna błędna koncepcja to wstawienie znaków $ przed nazwami zmiennych co byłoby właściwe w niektórych językach jak PHP ale nie w JavaScript gdzie zmienne definiujemy za pomocą let const lub var bez dodatkowych symboli. Zamiana cudzysłowów na apostrofy w liniach 3 i 6 nie ma wpływu na logikę kodu ponieważ JavaScript akceptuje zarówno podwójne jak i pojedyncze cudzysłowy do wyrażania łańcuchów znaków. Takie zmiany są więc jedynie kwestią stylu i nie usuwają problemu związanego z brakiem nawiasów klamrowych w sekcji if oraz else. Główne źródło problemu tkwi w strukturze instrukcji warunkowej co podkreśla potrzebę dokładnego zrozumienia jak JavaScript przetwarza bloki kodu w zależności od użycia nawiasów klamrowych. Poprawne użycie nawiasów klamrowych jest kluczowe dla poprawnego wykonania wieloliniowych bloków kodu co jest częścią dobrych praktyk programistycznych.

Pytanie 30

Jaki program jest wykorzystywany do edycji dźwięku?

A. GIMP
B. Inkscape
C. CorelDRAW
D. Audacity
GIMP, Inkscape i CorelDRAW to programy, które używamy do grafiki, więc niewłaściwie przypisałeś je do obróbki dźwięku. GIMP jest szczególnie znany jako edytor grafiki rastrowej, co oznacza, że pracujesz tam z obrazami i pikselami, więc nie nadaje się do dźwięku. Inkscape i CorelDRAW to z kolei programy do grafiki wektorowej, idealne do tworzenia ilustracji, logotypów i takich rzeczy. Można w nich robić fajne rzeczy, ale do dźwięku się nie nadają. Często ludzie mylą te programy, myśląc, że wszystkie graficzne mają opcje do obróbki dźwięku. Dlatego ważne jest, żeby wiedzieć, jakie są różnice między nimi, co pomoże Ci lepiej dopasować narzędzia do zadań, które chcesz wykonać. Lepiej wybierać programy, które naprawdę odpowiadają Twoim potrzebom, żeby uniknąć takich zamieszania.

Pytanie 31

Które z poleceń przyznaje użytkownikowi uczen najniższe uprawnienia w kontekście modyfikacji danych oraz struktury tabeli?

A. GRANT INSERT, DROP ON szkola.przedmioty TO uczen;
B. GRANT ALTER, SELECT ON szkola.przedmioty TO uczen;
C. GRANT SELECT ON szkola.przedmioty TO uczen;
D. GRANT DROP ON szkola.przedmioty TO uczen;
Patrząc na błędne odpowiedzi, można zauważyć, że większość z nich przyznaje użytkownikowi 'uczen' zbyt wiele uprawnień, które mogą prowadzić do niebezpiecznych sytuacji. Na przykład, opcja GRANT DROP ON szkola.przedmioty TO uczen pozwala na usunięcie całej tabeli 'przedmioty', co, moim zdaniem, jest zdecydowanie przesadą dla ucznia. Podobnie, jeśli dajemy GRANT ALTER, SELECT ON szkola.przedmioty TO uczen, to on może zmieniać strukturę tabeli, co dla kogoś, kto dopiero się uczy, nie jest dobrym pomysłem, bo mogą się pojawić błędy i problemy z danymi. Uprawnienia GRANT INSERT, DROP ON szkola.przedmioty TO uczen także są kiepskim pomysłem, bo taki użytkownik mógłby dodawać nowe wiersze czy usuwać istniejące, co znowu zagraża integralności danych. Często myślimy, że im więcej uprawnień damy, tym lepiej, ale w praktyce taka szeroka swoboda może przynieść więcej szkody niż pożytku. Dlatego ważne jest, żeby stosować zasadę minimalnych uprawnień i dokładnie przemyśleć, co naprawdę potrzebne, żeby uczeń mógł spokojnie uczyć się przedmiotów.

Pytanie 32

Warunek zapisany w języku PHP wypisze liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest ona parzysta.
B. wynik dzielenia liczby przez 2 jest równy 0.
C. jest ona dodatnia.
D. jest ona liczbą pierwszą.
Twoja odpowiedź jest poprawna. Warunek w języku PHP 'if($liczba % 2 == 0)' sprawdza faktycznie, czy dana liczba jest parzysta. Jak dobrze zauważyłeś, reszta z dzielenia liczby parzystej przez 2 jest zawsze równa 0. Jest to bezpośrednie odzwierciedlenie definicji liczby parzystej, która mówi, że jest to liczba, którą można podzielić przez 2 bez reszty. Dlatego warunek ten jest powszechnie stosowany w programowaniu do sprawdzania parzystości liczby. W praktyce, może on być wykorzystany np. do filtrowania danych, gdzie chcemy wykluczyć liczby nieparzyste albo też do różnego rodzaju operacji na tablicach, gdzie operacje wykonujemy tylko dla indeksów parzystych. Pamiętaj jednak, że ten warunek nie sprawdzi, czy liczba jest dodatnia, ujemna czy pierwsza. Do tego potrzebne będą inne warunki i operacje.

Pytanie 33

Warunek zapisany w PHP wyświetli liczbę, jeśli

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest ona dodatnia
B. jest ona parzysta
C. jest ona liczbą pierwszą
D. wynik dzielenia liczby przez 2 wynosi 0
Wybór odpowiedzi błędnych może wynikać z nieprawidłowego rozumienia operatora modulo i jego zastosowania w języku PHP. Operator ten zwraca resztę z dzielenia dwóch liczb więc wynik dzielenia liczby przez 2 nigdy nie może być bezpośrednio równy 0 co oznacza że odpowiedź dotycząca wyniku dzielenia liczby przez 2 jest niewłaściwie zrozumiana. Również koncepcja dodatnich liczb jako kryterium jest niepoprawna w kontekście przedstawionego kodu ponieważ dodatność liczby nie jest sprawdzana przez operator modulo. Liczby pierwsze to te które mają tylko dwa dzielniki: 1 i samą siebie co nie jest związane z warunkiem w kodzie PHP pokazanym w pytaniu. Typowym błędem jest mieszanie pojęć matematycznych i logicznych co może prowadzić do błędnych konkluzji na temat działania konkretnego fragmentu kodu. Aby uniknąć tego typu pomyłek ważne jest zrozumienie jak działają podstawowe operatory w językach programowania i jakie są ich praktyczne zastosowania w kontekście rozwiązywania problemów logicznych w programowaniu. Rozpoznanie właściwego wykorzystania operatorów takich jak modulo pozwala na bardziej precyzyjne formułowanie warunków w kodzie co jest istotne w kontekście efektywnego programowania i utrzymania wysokiej jakości kodu w projektach informatycznych.

Pytanie 34

W relacyjnych bazach danych dane zapisywane są w

A. kolejkach.
B. listach.
C. tabelach.
D. wektorach.
W modelu relacyjnych baz danych kluczowe jest zrozumienie, że podstawową strukturą przechowywania danych jest tabela, a nie ogólne pojęcia typu lista, kolejka czy wektor. Te inne struktury występują częściej w programowaniu, w kodzie aplikacji, a nie jako główny element fizycznej organizacji danych w systemach takich jak MySQL czy PostgreSQL. Lista kojarzy się z prostym zbiorem elementów zapisanych jeden po drugim, bez sztywnych kolumn i typów danych. W kodzie możemy mieć listę obiektów użytkowników, ale kiedy te dane trafiają do relacyjnej bazy, lądują w tabeli z jasno zdefiniowanymi kolumnami. Baza danych musi zapewnić integralność, indeksy, klucze, możliwość złożonych zapytań SQL – zwykła lista tego nie ogarnia. Kolejka z kolei to struktura typu FIFO, używana np. w systemach kolejkowania zadań, komunikatach między serwisami, przetwarzaniu asynchronicznym. W bazach danych można co najwyżej zaimplementować logikę działania kolejki na tabeli (np. kolumna status, czas dodania, pobieranie najstarszego zadania), ale fizycznie to dalej jest tabela, a nie specjalny typ „kolejka” w sensie modelu relacyjnego. Wektor natomiast to pojęcie bardziej z matematyki i programowania niskopoziomowego, czasem używane jako tablica dynamiczna. W silnikach baz danych oczywiście istnieją wewnętrzne struktury w pamięci, jakieś tablice, strony danych, indeksy, ale użytkownik pracuje z tabelami, relacjami, widokami. Typowym błędem myślowym jest przenoszenie pojęć z programowania obiektowego czy struktur danych 1:1 do świata relacyjnych baz. W praktyce, niezależnie od tego, czy obsługujesz system CRM, sklep internetowy czy prosty blog, zawsze kończysz z tabelami: użytkownicy, posty, komentarze, produkty itd. Reszta struktur, takich jak listy czy kolejki, to bardziej narzędzia w warstwie aplikacji, nie fundament modelu relacyjnego. Dlatego przy pytaniach o relacyjne bazy danych warto automatycznie myśleć o tabelach, kolumnach, wierszach i kluczach, bo to jest absolutna podstawa pracy z SQL.

Pytanie 35

Zaprezentowano tabelę stworzoną za pomocą kodu HTML, bez zastosowania stylów CSS. Który z poniższych fragmentów kodu HTML odnosi się do pierwszego wiersza tabeli?

Ilustracja do pytania
A. B
B. A
C. D
D. C
W przypadku odpowiedzi A zastosowano znaczniki <td> co jest błędną praktyką dla nagłówków tabeli. Znaczniki <td> służą do definiowania zwykłych komórek danych a nie komórek nagłówkowych. Użycie <td> w nagłówkach pozbawia tabelę odpowiednich walorów semantycznych co utrudnia jej późniejsze stylizowanie oraz dostępność. W odpowiedzi B użyto znacznika <i> jako części nagłówków co jest nieoptymalne ponieważ znacznik ten semantycznie oznacza zmianę tonu lub stylu i nie jest przeznaczony do formatowania komórek tabeli. Oznacza to że formatowanie takie może być odebrane jako nieodpowiednie przez czytniki ekranowe co dodatkowo wpływa na dostępność. Natomiast w odpowiedzi C zastosowano znacznik <center> wewnątrz <td> co jest przestarzałą techniką HTML oraz nie jest zalecane we współczesnym tworzeniu stron internetowych. Znacznik <center> został zdeprecjonowany w HTML 4.01 i nie powinien być używany ponieważ jego funkcjonalność można osiągnąć za pomocą CSS. Wszystkie te podejścia pomijają aspekty semantycznego tworzenia stron internetowych co jest kluczowe dla utrzymania prawidłowej struktury dokumentu oraz dostępności dla użytkowników z różnymi potrzebami.

Pytanie 36

W kodzie HTML 5, w celu walidacji wartości pola <input type="text"> za pomocą wyrażenia regularnego, należy użyć atrybutu

A. step
B. pattern
C. value
D. readonly
W tym pytaniu chodzi o konkretny mechanizm walidacji wbudowany w HTML5, a nie o ogólne właściwości pól formularza. Walidacja za pomocą wyrażeń regularnych jest w standardzie przypisana do jednego, ściśle określonego atrybutu – właśnie pattern. Inne atrybuty z listy pełnią zupełnie inne role i ich mylenie to dość typowy błąd przy nauce formularzy. Atrybut step jest używany do określania „kroku” dla wartości liczbowych lub dat, np. w input type="number" czy type="date". Pozwala zdefiniować, o ile ma się zwiększać lub zmniejszać wartość przy użyciu strzałek lub walidować, czy liczba jest wielokrotnością danego kroku. Przykład: step="0.5" przy liczbie zmiennoprzecinkowej. Nie ma on żadnego związku z wyrażeniami regularnymi ani ze zwykłym tekstem w type="text". value z kolei to po prostu wartość pola – początkowa (domyślna) lub aktualna, odczytywana i modyfikowana przez JavaScript lub wysyłana w formularzu. Ustawienie value nie waliduje danych, tylko je definiuje. Można wprawdzie ręcznie sprawdzać value w JS i dopasowywać je do regexa, ale to już logika skryptu, a nie działanie samego atrybutu w HTML. To pewnie częsty skrót myślowy: „wartość pola” vs. „sprawdzenie wartości pola”, ale przeglądarka sama z siebie nie waliduje na podstawie samego value. readonly natomiast blokuje możliwość edycji pola przez użytkownika, ale nadal wysyła jego wartość z formularzem. To przydatne, gdy chcemy coś pokazać, ale nie pozwolić na zmianę, np. wygenerowany identyfikator. Nie ma tu żadnej analizy treści, żadnego dopasowywania do wzorca – po prostu pole jest nieedytowalne. Czasem ktoś myśli: „skoro nie można tego zmienić, to jakby jest bezpieczne i zwalidowane”, ale to już bardziej kwestia logiki aplikacji, a nie mechanizmu walidacji. Mechanizm HTML5 do regexów jest jeden: pattern. Warto go łączyć z innymi atrybutami walidacyjnymi, jak required, minlength, maxlength, type, ale to właśnie pattern odpowiada za dopasowanie tekstu do określonego wzorca. Wszystko inne z tej listy pełni pomocnicze lub zupełnie inne funkcje i nie zastępuje typowej walidacji opartej o wyrażenia regularne.

Pytanie 37

Jaki wynik pojawi się po wykonaniu zaprezentowanego kodu HTML?

Ilustracja do pytania
A. Odpowiedź C
B. Odpowiedź A
C. Odpowiedź B
D. Odpowiedź D
W analizie kodu HTML istotne jest zrozumienie struktury zagnieżdżonych list. Błędne odpowiedzi wynikają z niedokładnej interpretacji hierarchii i stylizacji list. Listy uporządkowane oznaczone tagiem ol oraz nieuporządkowane ul są podstawą do strukturalizacji informacji w HTML. Częsty błąd polega na nieuwzględnieniu, jak przeglądarki interpretują zagnieżdżone listy. Element ol z atrybutami type i start zmienia styl numeracji. Wersje z atrybutem type=A zmieniają numerację na literową, a start=4 decyduje o punkcie startowym. Pominięcie tego aspektu prowadzi do błędnych wniosków. Dobre praktyki obejmują klarowność struktury HTML poprzez właściwe użycie tagów i atrybutów, co jest kluczowe dla dostępności i użyteczności stron. Przy projektowaniu, warto pamiętać o spójności formatowania i zgodności z semantyką HTML, co poprawia doświadczenia użytkowników i wydajność SEO. Właściwe zrozumienie i zastosowanie atrybutów list ułatwia zarządzanie złożonymi strukturami na stronach internetowych.

Pytanie 38

Aby przekształcić obraz z formatu JPEG do PNG bez utraty jakości, tak aby kolor biały w oryginalnym obrazie został zastąpiony przezroczystością w wersji docelowej, należy najpierw

A. dodać kanał alfa
B. załadować obraz do programu do edycji grafiki wektorowej
C. usunięcie gumką wszystkich białych miejsc
D. obniżyć rozdzielczość obrazu
Jeśli chodzi o błędne odpowiedzi, to zaimportowanie obrazu do edytora grafiki wektorowej nie jest najlepszym pomysłem w tej sytuacji. Edytory wektorowe, takie jak Adobe Illustrator, są stworzone do pracy z grafiką wektorową, a nie z rastrową, więc operowanie na pikselach, jak dodawanie przezroczystości w miejscach kolorów rastrowych, może być trudne, a czasem nawet niemożliwe. Poza tym, zmniejszenie rozdzielczości obrazu na pewno nie pomoże w dodaniu przezroczystości, a wręcz może spowodować utratę detali i jakości, co jest sprzeczne z celem tej konwersji. Używanie gumki do wymazywania wszystkich białych plam to też nie najlepsze rozwiązanie. Jest to czasochłonne i może prowadzić do przypadkowego usunięcia innych ważnych elementów. Z mojego doświadczenia wynika, że może to zostawiać niepożądane artefakty i obniżać jakość. Dlatego kluczowym krokiem w tym procesie, żeby uzyskać przezroczystość, jest dodanie kanału alfa. Tak można skutecznie zarządzać przezroczystością w wynikowym obrazie PNG, co jest zgodne z zasadami dobrego przetwarzania grafiki rastrowej.

Pytanie 39

Jakie jest znaczenie powtarzania w zdefiniowanym stylu CSS?

body {
  background-image: url("rysunek.gif");
  background-repeat: repeat-y;
}
A. obrazu umieszczonego w tle strony w poziomie
B. obrazu umieszczonego w tle strony w pionie
C. obrazu umieszczonego przy użyciu znacznika img
D. tła każdego z paragrafów
Odpowiedź dotycząca powtarzania rysunku umieszczonego w tle strony w pionie jest prawidłowa ponieważ w załączonej definicji stylu CSS użyto właściwości background-repeat z wartością repeat-y Wartość ta oznacza że obrazek tła będzie powtarzał się tylko w kierunku pionowym natomiast w kierunku poziomym pozostaje pojedynczym obrazem Funkcja ta jest szczególnie przydatna gdy chcemy stworzyć efekt kontynuacji wzoru lub tekstury na całej wysokości strony ale nie potrzebujemy powtarzania w poziomie Dzięki takim właściwościom CSS jak background-image i background-repeat projektanci stron internetowych mają dużą elastyczność w rozmieszczaniu i stylizacji tła Co więcej pozwala to na optymalizację zasobów w przypadku gdy używane są małe pliki graficzne które zajmują mniej miejsca na serwerze niż duże obrazy Zrozumienie tych mechanizmów jest kluczowe dla tworzenia efektywnych i estetycznych projektów zgodnych z dobrymi praktykami branżowymi takimi jak unikanie zbędnych powtórzeń w wyglądzie strony i dostosowywanie się do różnorodnych rozdzielczości ekranów

Pytanie 40

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: right; } section { float: right; }
B. nav { float: left; } aside { float: left; }
C. aside {float: left; }
D. nav { 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ę.