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: 29 kwietnia 2026 09:04
  • Data zakończenia: 29 kwietnia 2026 09:28

Egzamin zdany!

Wynik: 32/40 punktów (80,0%)

Wymagane minimum: 20 punktów (50%)

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

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

A. Zwraca te wiersze, które wystąpiły w wyniku drugiego zapytania, natomiast nie było ich w wyniku pierwszego zapytania
B. Zwraca zbiór wyników z pierwszego zapytania oraz zbiór wyników z drugiego zapytania, automatycznie eliminując powtarzające się wiersze
C. Zwraca część wspólną wyników dwóch zapytań
D. Zwraca te wiersze, które wystąpiły w wyniku pierwszego zapytania, jednak nie były obecne w wyniku drugiego 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 2

Aby umożliwić wybór kilku opcji jednocześnie w rozwijanej liście formularza HTML, należy dodać atrybut do znacznika select

Ilustracja do pytania
A. disabled
B. multiple
C. size
D. value
Atrybut multiple w znaczniku select w HTML to super sprawa, bo dzięki niemu można zaznaczyć więcej niż jedną opcję z listy rozwijalnej. To się przydaje, jak ktoś musi wybrać kilka elementów w formularzu. Jak dodasz atrybut multiple, to przeglądarka pokazuje to jako pole do wyboru, gdzie można klikać na kilka wartości za pomocą klawiszy Ctrl albo Shift. Fajnie, że ten atrybut nie wymaga żadnych dodatkowych wartości, wystarczy, że go wrzucisz do znacznika select. To zgodne z dobrymi praktykami UX, bo pozwala na większą elastyczność i interaktywność formularzy. Co więcej, nie trzeba być programistycznym guru, żeby to wdrożyć, więc każdy może to zrobić. Używa się go w różnych aplikacjach webowych, zwłaszcza tam, gdzie zbieranie danych od użytkowników w prosty i przejrzysty sposób jest ważne.

Pytanie 3

Atrybut autor w tabeli ksiazka oznacza

CREATE TABLE ksiazka (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  tytul VARCHAR(200),
  autor SMALLINT UNSIGNED NOT NULL,
  CONSTRAINT `dane` FOREIGN KEY (autor) REFERENCES autorzy(id)
);
A. kluczem podstawowym tabeli ksiazka
B. atrybut używany w relacji z tabelą dane
C. kluczem obcym powiązanym z tabelą autorzy
D. atrybut typu tekstowego zawierający informacje o autorze
Pole autor w tabeli ksiazka jest zdefiniowane jako klucz obcy co oznacza że tworzy relację z inną tabelą w bazie danych w tym przypadku z tabelą autorzy która zawiera id autorów W relacyjnych bazach danych klucz obcy jest mechanizmem który pozwala na utrzymanie integralności danych pomiędzy powiązanymi tabelami Jest to szczególnie ważne w kontekście modelowania rzeczywistości gdzie różne encje takie jak książki i autorzy są zależne od siebie W powyższym przykładzie pole autor odwołuje się do pola id w tabeli autorzy umożliwiając przypisanie konkretnego autora do danej książki Taka konstrukcja bazy danych jest zgodna z zasadami normalizacji które dążą do minimalizacji redundancji danych i zapewnienia ich spójności Klucze obce są powszechnie stosowaną praktyką w projektowaniu baz danych dzięki której złożone relacje mogą być reprezentowane i zarządzane w sposób efektywny Umożliwiają one implementację mechanizmu kaskadowego aktualizowania lub usuwania danych co pomaga w zachowaniu spójności w całej bazie danych

Pytanie 4

Jaką funkcję SQL można uznać za nieprzyjmującą argumentów?

A. upper
B. year
C. now
D. len
Funkcja 'now' w SQL jest funkcją systemową, która nie wymaga żadnych argumentów, a jej zadaniem jest zwracanie aktualnej daty i godziny w formacie, który jest zgodny z ustawieniami serwera baz danych. Użycie tej funkcji jest szczególnie przydatne w zadaniach związanych z rejestrowaniem daty utworzenia lub ostatniej modyfikacji rekordów w bazie danych. Przykładem zastosowania może być kwerenda, która wstawia nowy rekord do tabeli, a data utworzenia jest automatycznie ustawiana na bieżący czas: 'INSERT INTO tabela (nazwa, data_utworzenia) VALUES ('Przykład', now());'. Ponadto, w wielu systemach baz danych, takich jak MySQL czy PostgreSQL, funkcje takie jak 'now()' są standardem, co oznacza ich szerokie zastosowanie i zgodność w różnych aplikacjach. Dbanie o automatyczne aktualizowanie znaczników czasowych w bazach danych przy użyciu tej funkcji jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi.

Pytanie 5

Kwalifikatory dostępu: private, protected oraz public określają mechanizm

A. rekurencji
B. hermetyzacji
C. polimorfizmu
D. przeładowania
Kwalifikatory dostępu: private, protected i public, są kluczowymi elementami hermetyzacji w programowaniu obiektowym. Hermetyzacja polega na ukrywaniu wewnętrznych szczegółów implementacji obiektu i ograniczaniu dostępu do jego danych oraz metod. Dzięki tym kwalifikatorom programista może definiować, które elementy klasy są dostępne dla innych klas, co znacząco poprawia bezpieczeństwo kodu oraz jego czytelność. Na przykład, deklarując zmienną jako private, uniemożliwiamy jej bezpośredni dostęp z zewnątrz, co zapobiega przypadkowemu lub niezamierzonemu modyfikowaniu jej wartości. Dzięki temu kod staje się bardziej odporny na błędy oraz łatwiejszy do utrzymania. W praktyce, hermetyzacja jest jedną z podstawowych zasad programowania obiektowego i jest zgodna z najlepszymi praktykami, takimi jak SOLID, które promują pisanie przejrzystego i elastycznego kodu. Dobrze zaprojektowane klasy, które stosują hermetyzację, są bardziej modułowe i ułatwiają współpracę w zespołach programistycznych, co jest niezmiernie istotne w dużych projektach.

Pytanie 6

Jaką wartość zobaczymy po wykonaniu poniższego kodu JavaScript?

<script>
document.write(Math.round(4.51)+Math.pow(2,3));
</script>
A. 14
B. 12
C. 11
D. 13
W przedstawionym kodzie JavaScript użyto dwóch metod wbudowanych obiektu Math Math.round i Math.pow. Math.round zaokrągla wartość do najbliższej liczby całkowitej. W przypadku liczby 4.51 zostanie to zaokrąglone do 5 ponieważ 0.51 jest bliżej 1 niż 0. Math.pow wykonuje potęgowanie czyli podnosi liczbę do określonej potęgi. W przypadku Math.pow(2 3) mamy do czynienia z potęgowaniem 2 do potęgi 3 co jest równe 8 ponieważ 2 * 2 * 2 = 8. Następnie te dwie wartości są dodawane do siebie co daje 5 + 8 = 13. Wartość 13 jest wyświetlana na stronie za pomocą document.write co jest prostym sposobem na wypisywanie wyników w kontekście przeglądarki. W praktyce jednak korzystanie z document.write jest odradzane na rzecz bardziej nowoczesnych rozwiązań jak manipulacja DOM czy używanie innerHTML. Dzięki tym metodom możemy skutecznie zarządzać i wyświetlać dane na stronach internetowych co jest kluczowe w nowoczesnym tworzeniu stron WWW. Zrozumienie działania takich funkcji wbudowanych pozwala na efektywne rozwiązywanie problemów związanych z obliczeniami w języku JavaScript co jest bardzo przydatne w pracy programisty.

Pytanie 7

Tabela filmy dysponuje kluczem głównym id oraz kluczem obcym rezyserlD. Tabela rezyserzy posiada klucz główny id. Obie tabele są połączone relacją jeden do wielu, gdzie rezyserzy są po stronie jeden, a filmy po stronie wiele. Jak należy zapisać kwerendę SELECT, aby połączyć tabele filmy i rezyserzy?

A. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...
B. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.filmylD ...
C. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...
D. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmylD ...
Poprawna odpowiedź: '... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...' jest zgodna z zasadami łączenia tabel w relacyjnych bazach danych. W tym przypadku 'rezyserlD' jest kluczem obcym w tabeli 'filmy', który odnosi się do 'id' w tabeli 'rezyserzy', co oznacza, że jeden reżyser może być przypisany do wielu filmów. Dzięki temu połączeniu możemy uzyskać informacje o filmach razem z danymi reżyserów. W praktyce, aby uzyskać szczegółowe informacje o filmach oraz ich reżyserach, takie zapytanie umożliwia efektywne łączenie danych, co jest kluczowe w aplikacjach bazodanowych, które wymagają integracji danych z różnych źródeł. Zastosowanie kluczy obcych w relacyjnych bazach danych jest standardem i pozwala na zapewnienie integralności danych, a także optymalizację zapytań. Dobrą praktyką jest również dbałość o odpowiednie nazewnictwo kolumn, aby jasno wskazywały one na ich przeznaczenie oraz relacje między tabelami, co znacząco ułatwia późniejszą pracę z bazą.

Pytanie 8

Kod umieszczony w ramce spowoduje wyświetlenie liczb

Ilustracja do pytania
A. 2 4 6 8 10
B. 1 3 5 7 9
C. 2 4 6 8
D. 1 2 3 4 5 6 7 8 9 10
Analizując błędne odpowiedzi można zauważyć że nie uwzględniają one poprawnego działania instrukcji continue w kodzie PHP. Ta instrukcja pomija pozostałe kroki bieżącej iteracji pętli jeśli warunek jest spełniony. Pierwsza odpowiedź 2 4 6 8 nie uwzględnia liczby 10 która także spełnia warunek parzystości i powinna być wypisana co jest błędne w kontekście działania pętli do wartości 10 włącznie. Druga propozycja 1 3 5 7 9 jest wynikiem niepoprawnego zrozumienia działania operatora modułu i instrukcji continue które eliminują liczby nieparzyste z wyjścia. Wyświetlenie tylko nieparzystych liczb oznaczałoby brak zastosowania instrukcji continue lub jej odwrotność co jest sprzeczne z kodem. Ostatnia propozycja 1 2 3 4 5 6 7 8 9 10 zakłada że wszystkie liczby od 1 do 10 są wypisywane co ignoruje kluczowy wpływ instrukcji continue na przebieg pętli. Taki wynik mógłby wskazywać na brak warunku eliminującego liczby nieparzyste co jest błędne w kontekście kodu. Typowym błędem jest tu niepoprawne rozumienie działania instrukcji sterujących jak continue które pełnią kluczową rolę w przepływie sterowania w pętlach programistycznych i powinny być zawsze dokładnie analizowane aby uniknąć błędnych wniosków i nieoczekiwanych wyników w programach. Operator modulo to również istotny element w zrozumieniu działania kodu służący do łatwego sprawdzania podzielności i warunków logicznych co jest powszechnie stosowane w wielu językach programowania do optymalizacji i filtrowania danych. Kod ilustruje również jak za pomocą prostych warunków można efektywnie zarządzać dużymi zbiorami danych w aplikacjach co jest kluczowe w optymalizacji algorytmów i poprawie wydajności systemów informatycznych.

Pytanie 9

W języku PHP zmienna $_GET jest zmienną

A. predefiniowaną, używaną do przesyłania informacji do skryptów PHP za pośrednictwem adresu URL
B. predefiniowaną, wykorzystywaną do zbierania wartości formularza po nagłówkach żądania HTTP (dane z formularza nie są widoczne w adresie)
C. zwykłą, utworzoną przez autora witryny
D. utworzoną przez autora strony, używaną do przesyłania danych z formularza przez adres URL
Odpowiedź jest poprawna, ponieważ zmienna $_GET w języku PHP jest predefiniowaną tablicą asocjacyjną, która służy do pobierania danych przekazanych przez metodę GET. Gdy użytkownik wysyła formularz z wykorzystaniem metody GET, wartości pól formularza są dołączane do adresu URL jako parametry zapytania. Na przykład, w adresie 'example.com/page.php?name=John&age=30', zmienna $_GET będzie zawierać wartości ['name' => 'John', 'age' => '30']. Dzięki temu skrypty PHP mogą uzyskiwać dostęp do tych danych i je przetwarzać. Używanie $_GET jest powszechną praktyką, szczególnie w przypadku, gdy dane nie są wrażliwe, ponieważ są widoczne w adresie URL. Ważne jest, aby pamiętać o bezpieczeństwie, stosując odpowiednie mechanizmy filtrowania i walidacji, aby uniknąć ataków, takich jak SQL Injection. Zastosowanie $_GET jest istotne w kontekście SPA (Single Page Applications), gdzie dane są często przesyłane na serwer w celu pobrania lub zaktualizowania zawartości strony bez przeładowania całej aplikacji.

Pytanie 10

Aby poprawnie skomentować linię kodu w języku JavaScript, należy po znakach // wprowadzić komentarz x = Math.max(a,b,c); //

A. w zmiennej x minimalna wartość ze zmiennych a, b, c
B. nieprawidłowe dane
C. w zmiennej x maksymalna wartość ze zmiennych a, b, c
D. wybór wartości maksymalnej spośród zmiennych a, b oraz c
W analizowanej linii kodu JavaScript, wykorzystujemy funkcję Math.max, która służy do określenia maksymalnej wartości spośród podanych argumentów. W tym przypadku, wartości te są reprezentowane przez zmienne a, b oraz c. Zastosowanie funkcji Math.max jest standardem w programowaniu w JavaScript, co pozwala na efektywne przeprowadzenie operacji porównawczych. Użycie operatora przypisania '=' pozwala na zapisanie wyniku operacji do zmiennej x, co z kolei umożliwia dalsze przetwarzanie tej wartości w programie. Przykład użycia tej funkcji wygląda następująco: var x = Math.max(a, b, c);. Warto również zwrócić uwagę na to, że funkcja Math.max zwraca wartości numeryczne, co czyni ją niezastąpioną w przypadkach, gdy potrzebne jest porównanie różnych liczb w celu wyłonienia największej. W kontekście standardów, Math.max jest częścią obiektu Math, który jest wbudowany w JavaScript i podlega ogólnym zasadom ECMAScript. Dlatego znajomość i umiejętność stosowania tej funkcji jest kluczowa dla każdego programisty JavaScript.

Pytanie 11

Parametr face elementu <font> jest używany do wskazania

A. rozmiaru czcionki
B. koloru czcionki
C. efektów czcionki
D. nazwa czcionki
Odpowiedzi sugerujące, że parametr face dotyczy barwy, wielkości lub efektów czcionki opierają się na nieprawidłowym zrozumieniu funkcji znacznika <font>. Chociaż kolory czcionek można faktycznie definiować w HTML, to odpowiedzialny za nie jest inny atrybut – color. Warto zauważyć, że barwa tekstu jest istotnym elementem projektowania stron, ale jest to niezwiązane z parametrem face. Wielkość czcionki z kolei jest regulowana przez atrybut size, co również jest osobną kwestią. Efekty czcionki, takie jak pogrubienie czy kursywa, są osiągane za pomocą atrybutów takich jak bold i italic, natomiast face precyzuje wyłącznie nazwę czcionki. Powszechnym błędem w myśleniu jest zakładanie, że wszystkie aspekty stylizacji czcionek są ze sobą powiązane w jednym parametrze. Kluczowe jest zrozumienie, że HTML i CSS mają różne role w tworzeniu stron internetowych. HTML skupia się na strukturze dokumentu, podczas gdy CSS odpowiada za jego wygląd. W przypadku nowoczesnych praktyk kodowania, atrybut face jest uznawany za przestarzały, co sprawia, że korzystanie z CSS jest bardziej efektywne i zgodne z aktualnymi standardami projektowania stron. Zamiast polegać na starych metodach, warto dostosować się do współczesnych technik kodowania, które oferują większą elastyczność oraz lepsze wsparcie dla responsywności stron.

Pytanie 12

Jaką operację trzeba wykonać podczas edytowania zdjęcia w programie graficznym, aby zamienić białe tło na przezroczystość?

A. Zmienić saturację obrazu
B. Skadrować obraz
C. Maksymalnie zmniejszyć jasność
D. Dodać kanał alfa
Aby zamienić białe tło na przezroczystość w edytorze grafiki, kluczowym krokiem jest dodanie kanału alfa do obrazu. Kanał alfa jest używany do zarządzania przezroczystością pikseli w obrazie rastrowym, co pozwala na zachowanie tylko tych elementów, które mają być widoczne. Proces ten jest szczególnie istotny przy pracy z grafiką stosowaną w projektach multimedialnych, takich jak strony internetowe, animacje czy prezentacje. Po dodaniu kanału alfa, można użyć narzędzi selekcji, takich jak różdżka czy lasso, aby zaznaczyć obszar białego tła i usunąć go, co skutkuje uzyskaniem przezroczystości. Dobrą praktyką jest również zapisanie pliku w formacie obsługującym przezroczystość, jak PNG, co zapewnia, że efekt końcowy zostanie zachowany, a tło będzie rzeczywiście przezroczyste. Przykład zastosowania można znaleźć w tworzeniu grafik do mediów społecznościowych, gdzie przezroczystość tła pozwala na lepsze dopasowanie elementów do różnych szablonów.

Pytanie 13

Podczas testowania skryptu JavaScript można w konsoli wyświetlać obecnie przechowywane wartości zmiennych przy użyciu funkcji

A. console.warn()
B. console.error()
C. console.log()
D. console.count()
Funkcja console.log() jest najczęściej używaną metodą do wyświetlania informacji w konsoli JavaScript. Umożliwia ona programistom monitorowanie wartości zmiennych w czasie rzeczywistym, co jest niezwykle pomocne podczas debugowania aplikacji. Używając console.log(), można łatwo wprowadzić komunikaty do konsoli, co pozwala na śledzenie zachowań aplikacji oraz identyfikację potencjalnych problemów. Przykładowo, jeśli mamy zmienną 'x' i chcemy zobaczyć jej wartość, wystarczy wpisać console.log(x). Dobre praktyki inżynierii oprogramowania sugerują, aby używać tego narzędzia do logowania istotnych informacji, w tym danych wejściowych oraz wyników operacji, co ułatwia późniejszą analizę i utrzymanie kodu. Ponadto, console.log() jest częścią standardu Web API, co potwierdza jego znaczenie i powszechność w branży. Warto też pamiętać, że nadmierne logowanie może prowadzić do zagracenia konsoli, dlatego kluczowe jest stosowanie tej funkcji w umiarkowany sposób, szczególnie w środowisku produkcyjnym.

Pytanie 14

Systemy CMS charakteryzują się

A. wbudowanym serwerem poczty elektronicznej.
B. możliwością programowania w zaawansowanych frameworkach dla aplikacji Web.
C. wbudowanym edytorem grafiki wektorowej.
D. możliwością edycji treści bez konieczności znajomości HTML.
Poprawnie wskazana cecha CMS to możliwość edycji treści bez konieczności znajomości HTML. Właśnie po to powstały systemy zarządzania treścią: żeby osoba nietechniczna, np. pracownik działu marketingu czy sekretariat, mogła samodzielnie aktualizować stronę WWW. W typowym CMS (WordPress, Joomla, Drupal) mamy edytor WYSIWYG przypominający Worda: pogrubienie, nagłówki, listy, wstawianie obrazków, linków. Cały kod HTML generuje się w tle automatycznie. Użytkownik widzi tekst i przyciski, a nie znaczniki typu <div>, <p> czy <a>. Z mojego doświadczenia to ogromne ułatwienie w firmach, gdzie programista nie ma czasu na każdą drobną zmianę w treści. Dobra praktyka jest taka, żeby w CMS rozdzielać warstwę treści (content) od warstwy prezentacji (szablony, CSS). Administrator, redaktor czy copywriter pracuje na treści, a programista i frontendowiec dbają o wygląd i logikę. Dzięki temu aktualizacja np. cennika, aktualności czy opisów produktów nie wymaga dotykania kodu strony. Co więcej, nowoczesne CMS-y stosują mechanizmy wersjonowania treści, workflow publikacji, uprawnienia użytkowników. Wszystko nadal bez konieczności pisania HTML, choć oczywiście możliwość podejrzenia i ręcznej edycji kodu często jest dostępna dla bardziej zaawansowanych użytkowników. W praktyce: jeśli ktoś umie obsłużyć edytor tekstu, to po krótkim przeszkoleniu zwykle bez problemu poradzi sobie z podstawową obsługą CMS i edycją treści na stronie WWW.

Pytanie 15

W JavaScript utworzono obiekt. Jak zmienić wartość właściwości x tego obiektu w dalszej części kodu?

var obiekt1 = {
  x: 0,
  y: 0,
  wsp: function() { … }
}
A. obiekt1::x = …
B. wsp.x = …
C. x = …
D. obiekt1.x = …
JavaScript to fajny język, który pozwala na pracę z obiektami, a właściwie to obiekty są jego podstawą. Chodzi o to, że można w nich przechowywać różne dane w formie par klucz-wartość. Gdy chcesz zmienić jakąś właściwość obiektu, używasz notacji kropkowej. To z pozoru proste, ale bardzo praktyczne. Po prostu wpisujesz nazwę obiektu, kropkę i nazwę właściwości, którą chcesz edytować. Na przykład mamy obiekt o nazwie obiekt1 i właściwość x. Żeby zmienić wartość x, piszesz obiekt1.x, a potem przypisujesz nową wartość. To wszystko jest zgodne z zasadami ECMAScript, które mówią, jak powinno się pracować z obiektami w JavaScript. Takie podejście jest nie tylko jasne, ale również umożliwia szybkie wskazanie, co dokładnie zmieniasz. W praktyce fajnie jest pokazać to na przykładzie, jak np. chcesz zaktualizować imię użytkownika w obiekcie, to robisz coś takiego: user.name = 'Jan'.

Pytanie 16

Jakie stwierdzenie dotyczące zaprezentowanego kodu jest prawdziwe?

Ilustracja do pytania
A. Zostanie wyświetlony komunikat "OlaA"
B. W zmiennej $a wartość "Ala" zostanie zmieniona na "Ola"
C. Znak kropki "." jest operatorem konkatenacji
D. Znak "=" pełni rolę operatora porównania dwóch zmiennych
Znak kropki w języku PHP pełni rolę operatora konkatenacji łączącego ciągi znaków w jedną całość Jest to kluczowa funkcja przy pracy z danymi tekstowymi pozwalająca na dynamiczne tworzenie ciągów znaków na podstawie różnych zmiennych lub danych wejściowych Przykładowo w przypadku zmiennej $a o wartości Ala i zastosowania $a Ola wynikowym ciągiem staje się AlaOla W praktyce konkatenacja jest często stosowana do generowania złożonych komunikatów lub budowania ścieżek plików w aplikacjach webowych Operator konkatenacji jest również używany w połączeniu z innymi typami danych które mogą być automatycznie przekształcane na ciągi znaków zgodnie z zasadami PHP Konkatenacja jest fundamentalnym elementem interakcji z użytkownikami w interfejsach tekstowych oraz w przetwarzaniu danych wejściowych i wyjściowych Zrozumienie i umiejętność jej stosowania jest kluczowa dla efektywnego programowania w PHP oraz tworzenia dynamicznych i interaktywnych aplikacji webowych z zachowaniem wysokiej jakości kodu i zgodności ze standardami

Pytanie 17

Czy przedstawione w języku CSS ustawienia czcionki będą dotyczyć dla ```* { font-family: Tahoma; color: Teal; }```?

A. znaczników z klasą przypisaną równą *
B. znaczników o id równym *
C. całego dokumentu HTML, niezależnie od późniejszych reguł CSS
D. całego dokumentu HTML, jako domyślne formatowanie dla wszystkich elementów strony
Właściwość CSS zastosowana w podanym kodzie dotyczy wszystkich elementów HTML na stronie, ponieważ użycie selektora * oznacza, że formatowanie będzie miało zastosowanie do każdego elementu, niezależnie od jego typu. Oznacza to, że czcionka Tahoma oraz kolor Teal będą domyślnie stosowane do tekstu we wszystkich znacznikach HTML. Tego rodzaju podejście jest zgodne z dobrymi praktykami w projektowaniu stron, ponieważ pozwala na jednolite formatowanie bez konieczności stylizowania każdego elementu z osobna. Przykładem zastosowania może być stworzenie spójnego wyglądu strony, gdzie wszystkie nagłówki, akapity i inne teksty mają ten sam styl, co poprawia czytelność i estetykę. Dodatkowo, takie zastosowanie stylów jest efektywne, gdyż zmiana stylu w kontekście całej strony odbywa się poprzez edytowanie jednego miejsca w kodzie CSS, co oszczędza czas i zmniejsza ryzyko błędów.

Pytanie 18

Jakie wartości zostaną wypisane przez funkcję wypisz(2) zaimplementowaną w JavaScript?

function wypisz(a)
{
    for (var i=1; i<6; i++)
    {
        a++;
        if ((a%2==0)|| (a%3==0))
        document.write(a+" " );
    }
}
A. 3 4 6
B. 2 3 4 6
C. 3 4 6 8
D. 6
Jak analizujemy tę funkcję wypisz, to ważne jest, aby zrozumieć, jak pętla for działa oraz jakie liczby spełniają warunki w if. W przypadku, gdy ktoś myśli, że funkcja wypisze tylko 6, to musi wiedzieć, że poprawna odpowiedź 3 to tak naprawdę cały zestaw liczb 3, 4 i 6. Wypisanie tylko 6 to błąd, bo musimy uwzględnić inne wartości, które też spełniają warunek. Opcja, że ma być wypisane 3, 4, 6 i 8, wydaje się mylna, bo 8 wcale się nie pojawia w pętli, więc ten warunek a%2==0 || a%3==0 nie ma tu zastosowania. Podobnie, myślenie, że 2, 3, 4, 6 będą wypisane, to fałsz, bo 2 nigdy nie jest sprawdzane. Na początku a jest równe 2, a po pierwszym obiegu pętli, a++ daje 3, która spełnia warunek, ale 2 zostaje zignorowane w tej kolejności. To jest prosty błąd wynikający z nieuważności, bo trzeba zwrócić uwagę, że inkrementacja dzieje się przed sprawdzeniem условия w if. Warto to zrozumieć, bo to daje solidne podstawy do lepszego programowania i umiejętności pisania bardziej skomplikowanego kodu JavaScript.

Pytanie 19

Która z funkcji agregujących wbudowanych w język SQL służy do obliczania średniej wartości w określonej kolumnie?

A. COUNT
B. MIN
C. SUM
D. AVG
Funkcja AVG w języku SQL jest jedną z kluczowych funkcji agregujących, która pozwala na obliczenie średniej wartości w określonej kolumnie zestawienia danych. Użycie tej funkcji jest szczególnie istotne w analizie statystycznej, gdyż pozwala uzyskać bardziej reprezentatywny wynik, eliminując wpływ skrajnych wartości, które mogą zniekształcać obraz danych. Na przykład, gdy mamy tabelę "sprzedaż" z kolumną "kwota", można użyć zapytania SELECT AVG(kwota) FROM sprzedaż, aby uzyskać średnią wartość sprzedaży. Funkcja ta jest nie tylko przydatna w kontekście analizy, ale także stanowi standardową praktykę w raportowaniu wyników finansowych, co może pomóc w podejmowaniu decyzji biznesowych. Warto również zauważyć, że AVG jest funkcją, która ignoruje wartości NULL, co jest ważne w kontekście danych, które mogą nie być pełne. Dobre praktyki sugerują, aby zawsze sprawdzać dane wejściowe przed stosowaniem funkcji agregujących, aby zapewnić ich jakość i dokładność wyników.

Pytanie 20

Zapis przedstawiony w języku JavaScript oznacza, że

x = przedmiot.nazwa();
A. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
B. nazwa to pole klasy przedmiot.
C. nazwa to właściwość obiektu przedmiot.
D. zmienna x będzie przechowywać wynik działania metody nazwa.
Odpowiedź jest prawidłowa, ponieważ wyrażenie w języku JavaScript x = przedmiot.nazwa(); oznacza, że zmienna x zostanie przypisana do wyniku działania metody nazwa, która jest wywoływana na obiekcie przedmiot. W JavaScript metody są funkcjami zdefiniowanymi jako właściwości obiektów. Kiedy wywołujemy metodę, dodajemy nawiasy okrągłe do jej nazwy, co powoduje jej wykonanie. W przypadku poprawnego zdefiniowania metody nazwa w obiekcie przedmiot, wykonanie tej metody zwróci wartość, która zostanie przypisana do zmiennej x. Taki sposób przypisywania wartości jest powszechnie stosowany w programowaniu obiektowym, co umożliwia dynamiczne uzyskiwanie danych z obiektów. Przykładem zastosowania może być np. obiekt Uzytkownik z metodą pobierzImie(), która zwraca imię użytkownika. Dzięki temu można elastycznie zarządzać danymi obiektów i tworzyć złożone aplikacje. Dobre praktyki programistyczne zalecają czytelne nazywanie metod i korzystanie z nich wtedy, gdy logicznie grupują funkcjonalność, co ułatwia utrzymanie i rozwijanie kodu.

Pytanie 21

W przedstawionej regule CSS ```h1 {color : blue}``` h1 reprezentuje

A. deklarację
B. klasę
C. wartość
D. selektor
Selekcja elementów w CSS jest naprawdę ważna, jeśli chodzi o tworzenie stron www. W regule CSS `h1 {color: blue}` mamy do czynienia z selektorem `h1`, który mówi nam, jak stylizować nagłówki pierwszego poziomu. Dzięki selekcji można fajnie dopasować wygląd strony do swoich potrzeb. No i w tym przypadku każdy nagłówek `h1` na stronie będzie miał niebieski kolor, co jest dość prostą i czytelną metodą. warto pamiętać, że CSS oferuje różne typy selektorów, jak klasy czy identyfikatory, a nie tylko tagi. W dużych projektach lepiej używać klasowych czy identyfikatorowych selektorów, bo daje to większą kontrolę nad stylizacją i łatwiejsze zarządzanie kodem.

Pytanie 22

Aby obraz dodany za pomocą kodu HTML był zrozumiały dla programów wspierających osoby niewidome, konieczne jest zdefiniowanie atrybutu

A. sizes
B. border
C. src
D. alt
Atrybut 'alt' w znaczniku <img> jest kluczowy dla dostępności treści internetowych. Jego główną funkcją jest dostarczenie alternatywnego opisu obrazu, który jest odczytywany przez programy wspierające osoby niewidome i niedowidzące, takie jak czytniki ekranu. Dzięki atrybutowi 'alt', użytkownicy, którzy nie mogą zobaczyć obrazu, są w stanie zrozumieć, co on przedstawia. Na przykład, jeśli obrazek przedstawia psa bawiącego się w parku, odpowiednia treść atrybutu 'alt' mogłaby brzmieć: 'Pies bawiący się w parku'. To nie tylko zwiększa dostępność strony, ale również poprawia doświadczenia użytkowników. Zgodnie z wytycznymi WCAG (Web Content Accessibility Guidelines), dostarczenie tekstu alternatywnego dla wszystkich obrazów jest niezbędne do zapewnienia pełnej dostępności treści. Przykład zastosowania: W przypadku strony e-commerce, gdzie obrazy produktów są kluczowe, odpowiednio zdefiniowany atrybut 'alt' pozwala osobom z ograniczeniami wzrokowymi na pełne zrozumienie oferty, co może wpłynąć na ich decyzje zakupowe.

Pytanie 23

W języku JavaScript trzeba sformułować warunek, który będzie spełniony, gdy zmienna a będzie dowolną liczbą naturalną dodatnią (więcej niż 0) lub gdy zmienna b będzie dowolną liczbą z przedziału domkniętego od 10 do 100. Wyrażenie logiczne w tym warunku powinno mieć postać

A. (a > 0) && ((b >= 10) && (b <= 100))
B. (a > 0) || ((b >= 10) || (b <= 100))
C. (a > 0) || ((b >= 10) && (b <= 100))
D. (a > 0) && ((b >= 10) || (b <= 100))
Poprawna odpowiedź (a > 0) || ((b >= 10) && (b <= 100)) uwzględnia wymaganie, aby warunek był spełniony, gdy zmienna a jest liczbą naturalną dodatnią bądź zmienna b znajduje się w przedziale od 10 do 100, włącznie. W tym przypadku użycie operatora logicznego '||' (lub) jest kluczowe, ponieważ wystarczy, że jeden z warunków będzie prawdziwy, aby cały warunek był spełniony. Przykładem może być skrypt walidujący dane wejściowe użytkownika: jeśli zmienna a przechowuje wartość 5 (czyli liczbę naturalną dodatnią), to niezależnie od wartości zmiennej b, warunek będzie prawdziwy. Analogicznie, jeśli a wynosi 0, a b = 15, warunek również będzie spełniony, ponieważ b mieści się w wymaganym przedziale. Taka konstrukcja warunku jest zgodna z dobrą praktyką programistyczną, gdyż pozwala na jasne i zrozumiałe określenie, kiedy pewne zasady powinny być stosowane. Zastosowanie operatorów logicznych w taki sposób wspiera tworzenie czytelnych i elastycznych warunków, co jest istotne w kontekście utrzymania kodu i jego przyszłych modyfikacji.

Pytanie 24

Tabela o nazwie naprawy zawiera kolumny klient oraz czyNaprawione. Jakie polecenie należy wykonać, aby usunąć te rekordy, w których wartość w kolumnie czyNaprawione jest prawdziwa?

A. DELETE naprawy WHERE czyNaprawione= TRUE;
B. DELETE FROM naprawy;
C. DELETE FROM naprawy WHERE czyNaprawione= TRUE;
D. DELETE klient FROM naprawy WHERE czyNaprawione= TRUE;
Odpowiedź 'DELETE FROM naprawy WHERE czyNaprawione= TRUE;' jest poprawna, ponieważ precyzyjnie wskazuje, które rekordy mają być usunięte z tabeli 'naprawy'. W SQL, polecenie DELETE jest używane do usuwania rekordów z bazy danych, a klauzula WHERE jest kluczowa, aby ograniczyć operację do tych rekordów, które spełniają określone warunki. W tym przypadku, warunek 'czyNaprawione= TRUE' wskazuje, że chcemy usunąć tylko te rekordy, dla których naprawa została już zakończona. W praktyce, stosowanie klauzuli WHERE jest niezbędne, aby uniknąć usunięcia wszystkich rekordów z danej tabeli, co mogłoby prowadzić do utraty cennych danych. W kontekście dobrych praktyk, zawsze należy być ostrożnym przy używaniu polecenia DELETE i dokładnie weryfikować warunki znajdujące się w klauzuli WHERE. Dodatkowo, przed przeprowadzeniem operacji usuwania, warto wykonać zapytanie SELECT z tymi samymi warunkami, aby upewnić się, które rekordy zostaną usunięte, co pozwala na uniknięcie niezamierzonych skutków.

Pytanie 25

Tabele Osoby i Adresy są połączone relacją jeden do wielu. Które zapytanie SQL należy wykonać, 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, Adresy WHERE Osoby.id = Adresy.id;
B. SELECT nazwisko, Miasto FROM Osoby.Adresy_id = Adresy.id FROM Osoby, Adresy;
C. SELECT nazwisko, Miasto FROM Osoby, Adresy;
D. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;
Poprawne zapytanie korzysta z jawnego złączenia tabel: SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;. Kluczowe są tu dwie rzeczy: użycie słowa kluczowego JOIN oraz właściwy warunek ON, który łączy klucz obcy z kluczem głównym. W tabeli Osoby kolumna Adresy_id jest kluczem obcym (FK), który wskazuje na kolumnę id w tabeli Adresy. To dokładnie odzwierciedla relację jeden‑do‑wielu narysowaną na diagramie. Dzięki temu baza danych wie, które miasto przypisać do którego nazwiska. Takie podejście jest zgodne ze standardem SQL i dobrą praktyką w relacyjnych bazach danych. Jawne JOIN-y są czytelne, łatwe do modyfikacji (np. dodanie kolejnych tabel lub warunków filtrowania) i dobrze współpracują z optymalizatorem zapytań. W praktycznych projektach, np. w aplikacjach webowych, właśnie tak buduje się zapytania: łączymy tabelę użytkowników lub klientów z tabelą adresów, zamówień, faktur, logów itp. zawsze po kluczach głównych i obcych, a nie po przypadkowo dobranych kolumnach. Moim zdaniem warto od razu wyrabiać sobie nawyk pisania nazw tabel przy kolumnach, czyli Osoby.nazwisko, Adresy.Miasto – zmniejsza to ryzyko konfliktu nazw i poprawia czytelność kodu SQL. Gdyby w przyszłości w którejś tabeli pojawiła się druga kolumna o nazwie Miasto, zapytanie nadal byłoby jednoznaczne. W większych systemach, gdzie dochodzą dodatkowe warunki (WHERE, ORDER BY, GROUP BY), taka struktura zapytania z JOIN ON jest po prostu dużo łatwiejsza w utrzymaniu i debugowaniu. Warto też pamiętać, że relacja jeden‑do‑wielu oznacza, że jedna osoba może mieć wiele adresów albo jeden adres może być przypisany do wielu osób – dokładne powiązanie zależy od modelu, ale technika złączenia po kluczu obcym pozostaje taka sama.

Pytanie 26

Tworząc tabelę produkty, należy dodać pole cena, które będzie odzwierciedlać koszt produktu. Jaki typ powinno mieć to pole?

A. ENUM
B. INTEGER(11)
C. TINYTEXT
D. DECIMAL(10, 2)
Typ DECIMAL(10, 2) jest odpowiedni dla pola ceny w tabeli produktów, ponieważ umożliwia dokładne przechowywanie wartości liczbowych z określoną precyzją i skalą. W tym przypadku liczba 10 oznacza maksymalną liczbę cyfr, które mogą być przechowywane, a 2 oznacza liczbę cyfr po przecinku. Dzięki temu można przechowywać wartości cenowe, które mają do dwóch miejsc po przecinku, co jest standardem w większości aplikacji związanych z handlem. Przykładem może być cena produktu wynosząca 19,99 PLN. Użycie typu DECIMAL jest zgodne z dobrymi praktykami w projektowaniu baz danych, ponieważ zapobiega problemom związanym z zaokrąglaniem, które mogą występować przy użyciu typów zmiennoprzecinkowych. Stosowanie DECIMAL jest szczególnie istotne w aplikacjach finansowych, gdzie precyzja wartości jest kluczowa. Warto dodać, że zgodnie z normami SQL, stosowanie tego typu danych pozwala na wykonywanie dokładnych zapytań i obliczeń, co jest niezbędne do prawidłowego funkcjonowania systemów zarządzania danymi.

Pytanie 27

W której notacji diagramów ER został zapisany model związków encji przedstawiony na ilustracji?

Ilustracja do pytania
A. Chena.
B. Martina.
C. Bachmana.
D. Min-Max.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź to notacja Martina. Na diagramie widać bardzo charakterystyczne cechy tej notacji: encje są przedstawione jako prostokąty z nagłówkiem wypełnionym innym kolorem (tu: ciemnoszary pasek z nazwą encji KLIENT, ZAKUP, TOWAR), a pod spodem w formie tabelki wypisane są atrybuty, jeden pod drugim. Klucz główny jest po prostu pierwszym atrybutem na liście (ID), bez dodatkowych ozdobników typu podkreślenie czy elipsa, co jest typowe właśnie dla podejścia Martina, zorientowanego na projektowanie relacyjnej bazy danych. Związki między encjami są rysowane liniami z tzw. crow’s foot ("kurzą łapką") po stronie encji wielokrotnej, a po stronie encji pojedynczej mamy prostą kreskę. Na ilustracji dokładnie to widać: ZAKUP jest encją pośredniczącą, a relacje KLIENT–ZAKUP i TOWAR–ZAKUP mają klasyczną symbolikę notacji Martina. W praktyce, w wielu narzędziach CASE (np. w starszych wersjach ERwin, PowerDesigner, Visio z szablonem Database Model Diagram) domyślny styl ERD jest właśnie bardzo zbliżony do notacji Martina. Taki diagram jest od razu „bliski” strukturze fizycznej tabel w SQL, więc łatwo go przełożyć na CREATE TABLE, klucze obce i indeksy. Z mojego doświadczenia w firmach produkcyjnych i w małych software house’ach notacja Martina jest często używana przy projektach, gdzie liczy się szybkie przejście z modelu koncepcyjnego do modelu logicznego i fizycznego, bez zbyt rozbudowanej symboliki teoretycznych ER-ów. Dlatego rozpoznanie tej notacji po wyglądzie encji-tabelek i crow’s foot jest bardzo praktyczną umiejętnością przy pracy z bazami danych.

Pytanie 28

Pokazane pole input pozwala na  

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

A. wprowadzenie hasła
B. selekcja opcji z listy o wartościach text1 i text2
C. wprowadzenie dowolnego tekstu
D. wybranie opcji
Odpowiedź "zaznaczenie opcji" jest na pewno trafna, bo pole checkbox (<input type='checkbox'>) jest stworzone do tego, żeby użytkownicy mogli wybrać jedną lub więcej opcji z danej grupy. Widzisz, checkboxy są bardzo popularne w formularzach internetowych, bo pozwalają na różnorodność wyborów, w przeciwieństwie do przycisków radiowych, które pozwalają na zaznaczenie tylko jednej opcji. Na przykład, jak się rejestrujesz na stronie, możesz zaznaczyć różne zgody na przetwarzanie danych, co daje możliwość wyboru więcej niż jednej opcji. Z punktu widzenia HTML i najlepszych praktyk w projektowaniu formularzy, warto dodać odpowiednie etykiety (label) do checkboxów, żeby ułatwić korzystanie z nich osobom, które używają technologii asystujących. Jeśli dobrze ustalimy atrybuty 'name' i 'value', to dane po przesłaniu formularza będą odpowiednio przetworzone. Pamiętaj, że wartość checkboxa jest przesyłana tylko wtedy, gdy jest zaznaczony, co jest zgodne z oczekiwaniami użytkowników oraz standardami W3C.

Pytanie 29

W efekcie wykonania przedstawionego w ramce kodu JavaScript, zmienna x jest równa

Ilustracja do pytania
A. 11 i zostanie wypisana w konsoli przeglądarki internetowej.
B. 11 i zostanie wypisana w oknie popup.
C. 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
D. 10 i zostanie wypisana w dokumencie HTML.
Kod w ramce to prosty przykład operacji na zmiennej i użycia konsoli w JavaScript: <script> var x = 10; x++; console.log(x); </script> Najpierw deklarowana jest zmienna `x` z użyciem słowa kluczowego `var` i przypisana jest do niej wartość 10. Następnie operator `x++` to tzw. inkrementacja postfiksowa – zwiększa wartość zmiennej `x` o 1. Po wykonaniu tej instrukcji `x` nie jest już równe 10, tylko 11. Ostatnia linia `console.log(x);` wypisuje aktualną wartość zmiennej do konsoli deweloperskiej przeglądarki, a nie do okna strony czy do popupu. Z mojego doświadczenia w pracy z JavaScript, `console.log()` to podstawowe narzędzie debugowania. W praktyce, gdy testujesz np. działanie pętli, obsługę formularzy, komunikację AJAX czy manipulację DOM, bardzo często wypisujesz dane właśnie do konsoli, żeby nie zaśmiecać interfejsu użytkownika. To jest zgodne z dobrymi praktykami front-endu: logi techniczne trafiają do konsoli, a nie do użytkownika końcowego. Warto też zauważyć różnicę między `x++` i `++x`. W tym konkretnym kodzie nie ma znaczenia, bo wartość jest tylko zwiększana i potem logowana, ale w wyrażeniach z przypisaniem kolejność ma już znaczenie. Operator `++` jest typowym elementem składni wielu języków (C, C++, Java, JavaScript), więc dobrze go rozumieć. W nowoczesnym kodzie częściej używa się `let` lub `const` zamiast `var`, ale mechanizm inkrementacji i logowania do konsoli pozostaje taki sam. Podsumowując: po inkrementacji `x` ma wartość 11 i ta wartość jest wyświetlana w konsoli przeglądarki przez `console.log()` – dokładnie tak, jak wskazuje poprawna odpowiedź.

Pytanie 30

Rozdzielczość obrazów cyfrowych wyświetlanych na ekranie monitora wyrażona w liczbie pikseli na cal określa jednostka

A. ppi
B. lpi
C. spi
D. dpi
W tym pytaniu bardzo łatwo się pomylić, bo skróty ppi, dpi, spi i lpi są do siebie podobne i wszystkie gdzieś tam krążą wokół pojęcia rozdzielczości. Kluczowa sprawa jest taka: pytanie dotyczy obrazów cyfrowych wyświetlanych na ekranie monitora i jest mowa o liczbie pikseli na cal. To od razu ustawia nas na właściwy tor, bo piksele są elementami obrazu na ekranie, a nie kroplami tuszu czy liniami rastra. W świecie wyświetlaczy stosuje się jednostkę ppi – pixels per inch. To ona określa gęstość pikseli matrycy i decyduje o tym, jak szczegółowy wydaje się obraz przy danej przekątnej ekranu. Typowy błąd polega na automatycznym wybieraniu dpi, bo wiele osób kojarzy to słowo z „rozdzielczością” ogólnie. Tymczasem dpi, czyli dots per inch, odnosi się przede wszystkim do druku: kropek tuszu naniesionych przez drukarkę na papier. Owszem, niektórzy producenci urządzeń myląco używają dpi również przy opisach ekranów, ale z punktu widzenia poprawnej terminologii i dobrych praktyk branżowych dpi to świat drukarek, a ppi – świat ekranów. Kolejny skrót, spi (samples per inch), pojawia się głównie przy skanerach. Określa, ile próbek na cal pobiera skaner z oryginalnego obrazu. To ma znaczenie przy digitalizacji zdjęć lub dokumentów, ale nie opisuje rozdzielczości wyświetlania na monitorze. Lpi, czyli lines per inch, związane jest z technikami druku rastrowego – określa gęstość linii rastra w procesie drukarskim, na przykład przy druku offsetowym. W grafice komputerowej i multimedialnej do zastosowań ekranowych, szczególnie w kontekście projektowania interfejsu, stron WWW czy aplikacji, trzymanie się rozróżnienia ppi dla ekranów i dpi dla druku jest dobrą praktyką. Z mojego doświadczenia wynika, że osoby, które od początku nauczą się tego rozdzielenia, później mają mniej problemów przy przygotowywaniu grafik zarówno do sieci, jak i do materiałów drukowanych.

Pytanie 31

Do czego służy funkcja PHP o nazwie mysql_num_rows?

A. oddawać następny rekord z wyników zapytania
B. przyporządkować numery rekordom w bazie danych
C. zwracać rekord, którego numer został przekazany jako parametr funkcji
D. podawać liczbę wierszy, które są w wynikach zapytania
Funkcja mysql_num_rows w PHP jest kluczowym narzędziem do interakcji z bazami danych MySQL, umożliwiając programistom efektywne zarządzanie danymi. Jej głównym zadaniem jest zwrócenie liczby wierszy, które zostały zwrócone w wyniku zapytania SQL. Jest to niezwykle przydatne w sytuacjach, gdy chcemy ocenić, ile rekordów spełnia określone kryteria, co może być istotne na przykład w przypadku paginacji wyników lub dynamicznego dostosowywania interfejsu użytkownika w zależności od liczby dostępnych danych. Użycie tej funkcji polega na przesłaniu do niej wskaźnika na wynik zapytania, co pozwala na bezpośrednie uzyskanie liczby wierszy bez konieczności przeszukiwania danych. Przykładowo, po wykonaniu zapytania SELECT, aby uzyskać liczbę wierszy, wystarczy użyć: $result = mysql_query('SELECT * FROM tabela'); $liczba_wierszy = mysql_num_rows($result);. Funkcja ta jest zgodna z wytycznymi dotyczącymi standardów SQL i jest szeroko stosowana w aplikacjach webowych, które wymagają efektywnego przetwarzania danych. Należy jednak pamiętać, że mysql_num_rows jest częścią przestarzałego rozszerzenia MySQL, a programiści powinni rozważyć użycie mysqli lub PDO, które oferują lepszą obsługę i bezpieczeństwo.

Pytanie 32

Jak wygląda instrukcja przypisania wartości do elementu tablicy w języku JavaScript względem tablicy? ```Tablica['technik'] = 'informatyk';```

A. numerycznej
B. statycznej
C. wielowymiarowej
D. asocjacyjnej
W języku JavaScript tablice mogą być traktowane jako obiekty, a więc wykazują cechy struktur asocjacyjnych. Przypisując wartość do tablicy za pomocą notacji z nawiasami kwadratowymi, jak w przykładzie 'Tablica[\'technik\'] = \'informatyk\';', tworzymy nowy element o kluczu 'technik', co jest charakterystyczne dla obiektów asocjacyjnych. W JavaScript tablice są dynamiczne, co oznacza, że możemy dodawać elementy w dowolny sposób, a ich rozmiar nie jest ustalony z góry. Standard ECMAScript definiuje tablice jako obiekty, gdzie klucze są indeksami liczb całkowitych, ale można również używać stringów jako kluczy, co czyni tablice asocjacyjnymi. Przykładem może być obiekt, który przechowuje różne informacje, a elementy są dostępne zarówno za pomocą indeksów numerycznych, jak i stringów. Warto zaznaczyć, że użycie tablicy jako obiektu asocjacyjnego może być praktyczne w wielu zastosowaniach, np. w przechowywaniu konfiguracji czy zestawów danych. Dobrą praktyką jest jednak ograniczać użycie takich technik dla przejrzystości kodu."

Pytanie 33

Wskaźnik HTML, który umożliwia oznaczenie tekstu jako błędnego lub nieodpowiedniego poprzez jego przekreślenie, to jaki?

A. <b> </b>
B. <em> </em>
C. <s> </s>
D. <u> </u>
Element <s> w HTML służy do oznaczania tekstu jako nieaktualnego, błędnego albo już nieobowiązującego poprzez jego przekreślenie. Przeglądarka domyślnie renderuje taki fragment z poziomą linią przez środek tekstu. W praktyce używa się go np. przy cenach promocyjnych: <p>Stara cena: <s>199 zł</s> Nowa cena: 149 zł</p> albo przy korektach treści, kiedy chcemy pokazać, że coś zostało zmienione, ale wciąż widoczne jest, co było wcześniej. Warto wiedzieć, że historycznie do podobnych celów używano też <strike>, ale ten znacznik jest przestarzały (deprecated) w standardzie HTML i nie powinien być już stosowany. Moim zdaniem lepiej od razu przyzwyczajać się do poprawnych, aktualnych tagów, bo to się później opłaca przy większych projektach. W nowszych specyfikacjach HTML5 zaleca się stosowanie <s> właśnie do treści nieaktualnych, ale nie takich, które zostały formalnie wycofane – do tego jest znacznik <del>, który dodatkowo semantycznie wskazuje usunięcie fragmentu, często używany w systemach kontroli wersji treści. Z mojego doświadczenia warto rozróżniać <s>, <del> i <ins>, bo w połączeniu z CSS i narzędziami do dostępności (np. czytnikami ekranu) daje to lepszą semantykę dokumentu. Dobrą praktyką jest też nie nadużywać przekreśleń tylko dla „efektu wizualnego” – jeśli chcesz coś tylko wyróżnić graficznie, lepiej użyć CSS, a znaczników semantycznych używać zgodnie z ich przeznaczeniem.

Pytanie 34

Na podstawie fragmentu dokumentu HTML, określ co należy wpisać w miejsce kropek w odnośniku w menu, aby przenosił on do rozdziału 2.

Fragment menu
<a ...>Rozdział 2</a>

Fragment dalej w dokumencie
<h1 id="r2" name="sekcja2" class="rozdzial2">Rozdział 2<h1>
A. href = "sekcja2"
B. href = "#sekcja2"
C. href = "r2"
D. href = "#r2"
Niestety, Twoja odpowiedź nie jest prawidłowa. Prawidłowa odpowiedź 'href="#r2"' odwołuje się do identyfikatora (id) 'r2' na tej samej stronie. W HTML, atrybut 'href' w tagu 'a' służy do określenia miejsca docelowego odnośnika. Przed identyfikatorem umieszcza się znak '#', który informuje przeglądarkę, że ma poszukać elementu z danym 'id' na tej samej stronie. Błędy w niepoprawnych odpowiedziach wynikają z pominięcia znaku '#' lub zastosowania nieprawidłowego identyfikatora. Pamiętaj, że identyfikator powinien być unikalny dla każdego elementu na stronie i powinien być używany w odnośniku dokładnie w takiej samej formie. W przypadku 'href="r2"' i 'href="sekcja2"', pominięto znak '#', co sprawia, że przeglądarka będzie szukać zasobu o podanej ścieżce, a nie identyfikatora na tej samej stronie. 'href="#sekcja2"' zawiera niepoprawny identyfikator, który nie istnieje na stronie. Kluczowe jest zrozumienie, jak działają identyfikatory i jaki mają wpływ na nawigację na stronie.

Pytanie 35

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr { background-color: Pink; }
B. tr:active { background-color: Pink; }
C. td, th { background-color: Pink; }
D. tr:hover { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 36

W PHP, aby usunąć białe znaki z początku i końca ciągu tekstowego, można skorzystać z funkcji

A. sort()
B. strlen()
C. trim()
D. time()
Funkcja trim() w języku PHP jest niezwykle przydatna do usuwania zbędnych spacji oraz innych białych znaków z początku i końca ciągu znaków. Jest to funkcjonalność, która jest często wykorzystywana w różnych aplikacjach, szczególnie w kontekście przetwarzania danych wejściowych od użytkowników, gdzie niechciane spacje mogą prowadzić do błędów podczas walidacji lub przechowywania danych w bazie danych. Przykład użycia funkcji trim() jest prosty: jeśli mamy zmienną $text = ' Przykladowy tekst '; używając trim($text), otrzymamy 'Przykladowy tekst'. Funkcja ta przyjmuje również drugi argument, który pozwala na określenie dodatkowych znaków do usunięcia. Na przykład trim($text, "a ") usunie zarówno spacje, jak i litery 'a' z końców ciągu. Zgodnie z dokumentacją PHP, trim() jest częścią standardowej biblioteki funkcji stringowych, co czyni ją niezawodnym narzędziem w każdej aplikacji PHP."

Pytanie 37

Język JavaScript wspiera

A. funkcje wirtualne
B. wysyłanie ciastek z identycznymi informacjami do wielu użytkowników strony
C. abstrakcyjne klasy
D. obiekty DOM
Obiekty DOM (Document Object Model) są fundamentalnym aspektem języka JavaScript, umożliwiającym interakcję z dokumentami HTML i XML. Dzięki DOM, programiści mogą dynamicznie manipulować strukturą dokumentu, co pozwala na tworzenie interaktywnych aplikacji webowych. Na przykład, za pomocą JavaScript można zmieniać tekst w elementach HTML, dodawać lub usuwać elementy, a także reagować na zdarzenia użytkownika, takie jak kliknięcia czy ruchy myszy. Przykładowy kod: document.getElementById('example').innerHTML = 'Nowa zawartość'; ilustruje, jak można zmienić zawartość elementu z identyfikatorem 'example'. Zrozumienie i umiejętność pracy z DOM jest kluczowe w nowoczesnym tworzeniu stron internetowych oraz aplikacji w JavaScript, co wpisuje się w najlepsze praktyki rozwoju oprogramowania, takie jak separacja logiki od prezentacji i programowanie obiektowe.

Pytanie 38

Tabele Klienci oraz Zgloszenia są związane relacją jeden do wielu. Jakie polecenie należy wydać, aby uzyskać tylko opis zgłoszenia oraz odpowiadające mu nazwisko klienta dla zgłoszenia numer 5?

Ilustracja do pytania
A. SELECT opis, nazwisko FROM Zgloszenia JOIN Klienci ON Klienci.id = Zgloszenia.Klienci_id WHERE Zgloszenia.id = 5
B. SELECT opis, nazwisko FROM Zgloszenia JOIN Klienci ON Klienci.id = Zgloszenia.Klienci_id WHERE Klienci.id = 5
C. SELECT opis, nazwisko FROM Zgloszenia JOIN Klienci ON Klienci.id = Zgloszenia.id WHERE Zgloszenia.id = 5
D. SELECT opis, nazwisko FROM Zgloszenia JOIN Klienci WHERE Klienci.id = 5
Ta odpowiedź jest prawidłowa, ponieważ używa poprawnej składni SQL do wykonania zapytania z dwóch tabel powiązanych relacją jeden do wielu. Kluczowym elementem jest użycie klauzuli JOIN, która łączy tabelę Zgloszenia z tabelą Klienci poprzez pole Klienci_id, będące kluczem obcym w tabeli Zgloszenia. Dzięki temu możliwe jest powiązanie odpowiednich rekordów z dwóch tabel. Warunek w klauzuli WHERE Zgloszenia.id = 5 precyzuje, że zapytanie ma zwrócić dane tylko dla zgłoszenia o identyfikatorze 5. Taki sposób pisania zapytań SQL jest zgodny z normami ANSI SQL i jest powszechnie stosowany w systemach zarządzania bazami danych jak MySQL, PostgreSQL czy SQL Server. Korzystanie z JOIN, zwłaszcza z klauzulą ON, jest dobrą praktyką, ponieważ zapewnia czytelność i bezpieczeństwo zapytań. W realnych zastosowaniach, takie zapytania są używane do łączenia danych z różnych źródeł w celu ich analizy lub raportowania. Prawidłowa struktura zapytania ułatwia jego modyfikację i integrację z innymi operacjami bazy danych, co jest niezbędne w zarządzaniu danymi w dużych systemach informatycznych. Zrozumienie mechanizmu JOIN oraz użycie klauzuli WHERE w celu ograniczenia wyników jest kluczowe w efektywnym zarządzaniu i analizie danych w relacyjnych bazach danych.

Pytanie 39

W którym z poniższych przykładów walidacja fragmentu kodu CSS zakończy się sukcesem?

A. <p style="font-style:bold;">
B. <p style="font-size:bold;">
C. p { text-size:bold; }
D. p { font-weight:bold; }
Odpowiedzi, które próbują zastosować atrybuty stylów w niepoprawny sposób, zdradzają zrozumienie składni CSS oraz zasad stylizacji dokumentów HTML. W przypadku <p style="font-style:bold;"> pojawia się błąd, ponieważ atrybut style powinien zawierać właściwość font-weight, a nie font-style. Właściwość font-style jest przeznaczona do określenia stylu czcionki, takiego jak italic czy normal, a nie do ustawiania jej grubości. Zatem użycie 'bold' w kontekście font-style jest nieprawidłowe i prowadzi do tego, że przeglądarka nie zastosuje żadnej stylizacji. W kolejnej opcji, p { text-size:bold; }, znowu widzimy błąd w nazwie właściwości. Nie istnieje właściwość CSS o nazwie text-size; powinna być użyta font-size, a wartością mogą być jednostki takie jak px, em, rem itp. Ponadto, wartość 'bold' nie jest odpowiednia dla font-size, ponieważ ta właściwość przyjmuje liczby i jednostki, a nie stylizację. Ostatnia odpowiedź, <p style="font-size:bold;">, również jest błędna z tego samego powodu co wcześniej - font-size wymaga konkretnej wartości w jednostkach, a 'bold' nie jest akceptowalną wartością. Te błędne odpowiedzi pokazują, jak ważne jest zrozumienie składni CSS i stosowanie właściwych nazw właściwości w celu efektywnego stylizowania dokumentów HTML.

Pytanie 40

<img src="/rysunek.png" alt="pejzaż"> Zapisany został kod HTML, który wstawia obrazek na stronę. Jeśli rysunek.png nie zostanie znaleziony, przeglądarka

A. w miejscu grafiki zasygnalizuje błąd wyświetlania strony
B. nie załaduje strony internetowej
C. w miejscu grafiki pokaże tekst "rysunek.png"
D. wyświetli w miejscu grafiki tekst "pejzaż"
Kiedy przeglądarka internetowa napotyka na kod HTML, który zawiera element graficzny, w takim przypadku, jeśli wskazany plik nie jest dostępny, następuje zachowanie określone przez atrybut 'alt'. W omawianym przykładzie, gdy przeglądarka nie może znaleźć pliku 'rysunek.png', wyświetli tekst alternatywny 'pejzaż'. Atrybut 'alt' jest niezwykle ważny z perspektywy dostępności oraz SEO, ponieważ pozwala na dostarczenie informacji o obrazie osobom, które nie mogą go zobaczyć, takim jak osoby niewidome korzystające z czytników ekranu. Z punktu widzenia standardów W3C, atrybut 'alt' jest zalecany dla każdego elementu <img>, aby poprawić użyteczność strony. W praktyce, dobrze skonstruowane opisy w atrybucie 'alt' mogą również wpłynąć pozytywnie na pozycjonowanie witryny w wyszukiwarkach, co czyni go kluczowym elementem podczas tworzenia treści na stronie internetowej. Z tego powodu umieszczanie informacyjnych i zrozumiałych opisów w tym atrybucie jest niezbędne nie tylko dla poprawy dostępności, ale także dla efektywnej optymalizacji SEO.