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

Egzamin zdany!

Wynik: 25/40 punktów (62,5%)

Wymagane minimum: 20 punktów (50%)

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

Poniżej przedstawiono fragment kodu obsługującego

<?php
if ( !isset($_COOKIE[$nazwa]) )
  echo "nie ustawiono!";
else
  echo "ustawiono, wartość: " . $_COOKIE[$nazwa];
?>
A. baz danych
B. zmiennych tekstowych
C. ciasteczek
D. sesji
Odpowiedź "ciasteczek" jest poprawna, ponieważ kod PHP przedstawiony w pytaniu zajmuje się obsługą ciasteczek HTTP. Ciasteczka są to małe pliki przechowywane na urządzeniu użytkownika, które pozwalają na zachowanie stanu sesji oraz przechowywanie danych o użytkowniku. W tym przypadku, kod sprawdza, czy ciasteczko o danej nazwie (przechowywane w zmiennej $nazwa) zostało ustawione. Jeśli nie, wyświetla komunikat "nie ustawiono!", a jeśli tak, wyświetla jego wartość. Przykład zastosowania ciasteczek obejmuje przechowywanie preferencji użytkowników na stronach internetowych, takich jak wybór języka czy ostatnio przeglądane produkty w sklepie internetowym. Ważne jest, aby pamiętać o dobrych praktykach dotyczących bezpieczeństwa ciasteczek, takich jak ustalanie odpowiednich flag (np. HttpOnly, Secure), aby chronić je przed atakami typu XSS oraz CSRF. Ciasteczka pozwalają również na śledzenie sesji, co jest istotne dla personalizacji treści i analizy zachowań użytkowników. Zgodnie z RODO, należy również informować użytkowników o używaniu ciasteczek oraz uzyskać ich zgodę na ich przetwarzanie.

Pytanie 2

Dostępna jest tabela zatytułowana wycieczki, zawierająca kolumny nazwa, cena oraz miejsca (jako liczba dostępnych miejsc). Aby wyświetlić jedynie nazwy wycieczek, których cena jest poniżej 2000 złotych oraz posiadają co najmniej cztery dostępne miejsca, należy zastosować zapytanie

A. SELECT nazwa FROM wycieczki WHERE cena < 2000 OR miejsca > 4
B. SELECT * FROM wycieczki WHERE cena < 2000 AND miejsca > 4
C. SELECT * FROM wycieczki WHERE cena < 2000 OR miejsca > 3
D. SELECT nazwa FROM wycieczki WHERE cena < 2000 AND miejsca > 3
Wybrana odpowiedź jest prawidłowa, ponieważ wykorzystuje operator AND, który jest kluczowy dla spełnienia obu warunków jednocześnie: cena musi być niższa niż 2000 zł, a liczba wolnych miejsc musi być większa niż 3. Dzięki temu zapytanie działa zgodnie z zamierzeniem, wyświetlając tylko te wycieczki, które rzeczywiście spełniają oba kryteria. Dodatkowo, wybór kolumny 'nazwa' zamiast wszystkich kolumn (jak w przypadku użycia *) optymalizuje zapytanie, co jest dobrym podejściem w kontekście wydajności bazy danych. W przypadku większych zbiorów danych, ograniczenie liczby zwracanych kolumn do tych faktycznie potrzebnych jest zgodne z zasadami dobrych praktyk w zakresie projektowania zapytań SQL. Można to zaobserwować na przykład w aplikacjach rezerwacji, gdzie użytkownicy są zainteresowani tylko kluczowymi informacjami o dostępnych wycieczkach. W związku z tym, poprawna konstrukcja zapytania nie tylko spełnia wymogi funkcjonalne, ale także wpływa na wydajność i czytelność kodu.

Pytanie 3

Jaki format CSS dla akapitu definiuje styl szarej ramki z następującymi cechami?

p {
  padding: 15px;
  border: 2px dotted gray; }
A. linia ciągła; grubość 2 px; marginesy między tekstem a ramką 15 px
B. linia kropkowa; grubość 2 px; marginesy między tekstem a ramką 15 px
C. linia ciągła; grubość 2 px; marginesy poza ramką 15 px
D. linia kreskowa; grubość 2 px; marginesy poza ramką 15 px
Odpowiedzi, które sugerują inne rodzaje obramowań, nie są zgodne z przedstawionym kodem CSS. Linia ciągła, określana jako 'solid', różni się od linii kropkowanej 'dotted', ponieważ jest to ciągła linia bez przerw. Wybór typu linii jest istotny w kontekście wizualnej prezentacji treści i ma wpływ na percepcję estetyczną strony internetowej. Ponadto, odpowiedzi sugerujące marginesy poza ramką zamiast marginesów wewnętrznych wprowadzają błąd w interpretacji właściwości 'padding'. 'Padding' odnosi się do przestrzeni wewnątrz elementu, pomiędzy jego zawartością a granicą, a nie do zewnętrznej przestrzeni między elementem a otaczającymi go obiektami, która jest kontrolowana za pomocą właściwości 'margin'. Tego typu błędne rozumienie może prowadzić do nieprawidłowego stylizowania elementów na stronie, co skutkuje nieestetycznym układem treści i pogorszoną czytelnością. Warto zawsze dokładnie zapoznać się z definicjami i działaniem poszczególnych właściwości CSS, aby unikać takich pomyłek. Zrozumienie różnicy między 'padding' a 'margin' jest kluczowe dla poprawnego projektowania układów stron zgodnie z najlepszymi praktykami w branży web designu

Pytanie 4

W przedstawionej regule CSS h1{color: blue} co oznacza h1?

A. selektor
B. wartość
C. klasę
D. deklarację
W regule CSS h1{color: blue} termin h1 odnosi się do selektora, który jest używany do wybierania elementów HTML, a w tym przypadku oznacza wszystkie nagłówki pierwszego poziomu. Selekcje w CSS są kluczowym elementem stylizacji stron internetowych, ponieważ pozwalają na precyzyjne określenie, które elementy mają być stylizowane. Selekcja h1 odnosi się do wszystkich elementów <h1> w dokumencie HTML, co oznacza, że wszystkie nagłówki pierwszego poziomu zostaną stylizowane zgodnie z podaną regułą. Wartością kolorystyki, czyli blue, jest przypisana do właściwości CSS 'color', co skutkuje zmianą koloru tekstu nagłówka na niebieski. Zgodnie z W3C, CSS (Cascading Style Sheets) pozwala na oddzielenie treści od prezentacji, co zwiększa elastyczność i ułatwia zarządzanie stylem strony. Przykładem praktycznym może być strona internetowa, gdzie wszystkie nagłówki pierwszego poziomu są wyróżnione kolorem niebieskim, co przyciąga uwagę użytkowników i poprawia czytelność. Selekcja jest zatem podstawowym narzędziem w stylizacji, umożliwiającym aplikację reguł CSS do określonych elementów HTML.

Pytanie 5

Aby uruchomić skrypt JavaScript, potrzebne jest oprogramowanie

A. przeglądarki internetowej
B. serwera MySQL
C. serwera WWW
D. debuggera JavaScript
Aby uruchomić skrypt JavaScript, niezbędne jest posiadanie przeglądarki internetowej, która obsługuje JavaScript. Przeglądarki takie jak Chrome, Firefox, Safari czy Edge zawierają silniki JavaScript, które interpretują i wykonują skrypty na stronach internetowych. Przykładowo, gdy użytkownik wchodzi na stronę internetową, która wykorzystuje JavaScript do dynamicznego ładowania treści lub interakcji z użytkownikiem, przeglądarka przetwarza skrypty w czasie rzeczywistym, co wpływa na doświadczenie użytkownika. Przeglądarki regularnie aktualizują swoje silniki, co przyczynia się do poprawy wydajności i bezpieczeństwa. Dodatkowo, korzystanie z narzędzi deweloperskich w przeglądarkach, takich jak konsola JavaScript, umożliwia programistom testowanie i debugowanie skryptów w łatwy sposób. W kontekście standardów webowych, JavaScript jest kluczowym elementem technologii front-end, współpracując z HTML i CSS, aby zapewnić interaktywność i responsywność stron internetowych. Warto również zauważyć, że niektóre frameworki, takie jak React czy Angular, również opierają się na JavaScript, co podkreśla jego znaczenie w nowoczesnym web developmencie.

Pytanie 6

Jakie działanie wykonuje poniższy fragment kodu w języku JavaScript? n = "Napis1"; s = n.length;

A. Przypisuje wartość zmiennej n do zmiennej s
B. Przypisuje do zmiennej s wartość odpowiadającą długości napisu z zmiennej n
C. Zwraca długość napisu zawartego w zmiennej n
D. Przypisuje do zmiennej s część napisu z zmiennej n, o długości określonej przez zmienną length
Odpowiedzi, które błędnie interpretują fragment kodu, wskazują na nieporozumienie dotyczące działania właściwości length oraz przypisania wartości w JavaScript. Przypisanie zmiennej n do zmiennej s nie jest możliwe w kontekście omawianego fragmentu, ponieważ zmienna s nie przyjmuje obiektu, a wyłącznie wartość długości napisu. Stwierdzenie, że skrypt wyświetli długość napisu, jest również nieprawidłowe, ponieważ w danym kodzie nie ma operacji wyświetlania - zmienne są jedynie przypisane. Kolejnym błędnym wnioskiem jest przypisanie fragmentu napisu do zmiennej s, co nie ma miejsca, ponieważ length zwraca tylko liczbę, a nie podłańcuch. Podstawowym błędem myślowym jest pomylenie przypisania wartości z operacjami wyświetlania i manipulacji łańcuchami. Warto zrozumieć, że JavaScript, jako język o dynamicznej typizacji, wymaga precyzyjnego rozumienia typów danych, a także właściwości i metod obiektów, co jest kluczowe dla efektywnego programowania. Niezrozumienie tych podstawowych konceptów może prowadzić do wielu błędów w kodzie, które są trudne do zdiagnozowania, a także mogą wpływać na wydajność i stabilność aplikacji.

Pytanie 7

Przedstawiona funkcja napisana w kodzie JavaScript ma na celu:

function oblicz(a, n)
{
    wynik = 1;
    for(i = 0; i < n; i++)
        wynik *= a;
    return (wynik);
}
A. wpisać wyniki mnożenia a przez n
B. zwrócić iloczyn kolejnych liczb od 1 do a
C. wpisać kolejne liczby od a do n
D. zwrócić wynik potęgowania a^n
Funkcja w kodzie JavaScript przedstawionym w pytaniu ma na celu zwrócenie wyniku potęgowania liczby a do potęgi n. Widzimy to poprzez analizę kodu: rozpoczyna się od inicjalizacji zmiennej wynik z wartością 1, a następnie w pętli for realizowana jest operacja mnożenia wyniku przez a dokładnie n razy. W ten sposób wynik = wynik * a jest wykonywane iteracyjnie, co oznacza że a jest mnożone przez siebie n razy. Taka operacja jest definicją potęgowania: a do potęgi n oznacza a mnożone n-krotnie. Tego rodzaju funkcje są fundamentalne w programowaniu, szczególnie w kontekście matematycznych obliczeń czy symulacji wymagających wielokrotnych potęgowań, np. w zastosowaniach naukowych i inżynieryjnych. Dobrą praktyką jest również optymalizacja tego typu funkcji używając wbudowanych metod jak Math.pow w JavaScript, co zwiększa czytelność i efektywność kodu. Rozumienie potęgowania jest kluczowe w algorytmach opartych na teorii liczb, kryptografii czy w grafice komputerowej, gdzie operacje te mogą być wysoce złożone i wymagają szczególnej optymalizacji.

Pytanie 8

Kolor zapisany w systemie RGB, o wartościach rgb(255,128,16), jaki będzie miał odpowiednik w kodzie szesnastkowym?

A. #ff8011
B. #ff0f10
C. #ff8010
D. #008010
Kod RGB (Red, Green, Blue) to model barw wykorzystywany w grafice komputerowej oraz w technologii wyświetlania. Wartości RGB są określane na podstawie trzech składowych: czerwonej, zielonej i niebieskiej. Każda z tych składowych może przyjmować wartości w zakresie od 0 do 255. W przypadku koloru zapisanym jako rgb(255,128,16), wartość 255 oznacza pełne nasycenie koloru czerwonego, 128 to średnie nasycenie koloru zielonego, a 16 to stosunkowo niskie nasycenie koloru niebieskiego. Aby przekonwertować wartości RGB na format szesnastkowy, należy przekształcić każdą z trzech składowych na system szesnastkowy, co w przypadku podanego koloru daje nam: 255 w systemie dziesiętnym to FF w szesnastkowym, 128 to 80, a 16 to 10. Łącząc te wartości, otrzymujemy #ff8010, co dokładnie odpowiada wartości RGB podanej w pytaniu. Taki zapis jest powszechnie stosowany w CSS i innych formatach związanych z web designem, a jego znajomość jest kluczowa dla każdego projektanta lub developera webowego.

Pytanie 9

Podaj dwa sposoby ochrony bazy danych Microsoft Access?

A. Funkcje anonimowe oraz ustawienie hasła do bazy danych
B. Zaszyfrowanie pliku bazy danych oraz wiadomości SMS z kodem autoryzacyjnym
C. Ustalenie zabezpieczeń na poziomie użytkownika i sesji
D. Ustalenie hasła do otwarcia bazy danych oraz zabezpieczeń na poziomie użytkownika
Zabezpieczenie bazy danych Microsoft Access jest kluczowym procesem, który ma na celu ochronę danych przed nieautoryzowanym dostępem oraz zapewnienie ich integralności. Ustalenie hasła do otwarcia bazy danych to pierwszy krok w kierunku zabezpieczenia. Pozwala to na ograniczenie dostępu tylko do osób, które znają hasło, co jest fundamentalnym środkiem ochrony informacji w systemach informatycznych. Dodatkowo, zabezpieczenia na poziomie użytkownika umożliwiają różnicowanie uprawnień dla poszczególnych użytkowników. Można przydzielać różne poziomy dostępu, co minimalizuje ryzyko, że niepowołane osoby będą mogły wprowadzać zmiany w bazie danych. Ważne jest również, aby stosować najlepsze praktyki związane z bezpieczeństwem, takie jak regularna aktualizacja haseł oraz audyty dostępu. Utrzymanie zgodności z międzynarodowymi standardami, takimi jak ISO/IEC 27001, może również pomóc w identyfikacji luk w zabezpieczeniach oraz w implementacji odpowiednich procedur ochrony danych. W codziennym użytkowaniu, skuteczne wdrożenie tych zabezpieczeń pozytywnie wpływa na bezpieczeństwo danych oraz ochronę prywatności użytkowników.

Pytanie 10

Aby zweryfikować konfigurację w pliku php.ini, można uruchomić skrypt PHP, który zawiera zapis

A. <?php phpinfo(); ?>
B. <?php echo phpversion(); ?>
C. <?php ini_set(); ?>
D. <?php phpcredits(); ?>
Wszelkie inne odpowiedzi nie spełniają funkcji dostarczania szczegółowych informacji o konfiguracji PHP w sposób tak kompleksowy jak phpinfo(). Funkcja <?php phpcredits(); ?> dostarcza informacji o autorach PHP oraz licencjach, ale nie ma na celu sprawdzania ustawień konfiguracyjnych. Jest to użyteczne w kontekście edukacyjnym, ale nie w praktyce związanej z konfiguracją. Z kolei <?php ini_set(); ?> jest używana do ustawiania wartości konfiguracyjnych w czasie działania skryptu, a nie do ich podglądania. I choć może być przydatna do dostosowywania środowiska, nie generuje podsumowania obecnych ustawień. Ostatnia odpowiedź, <?php echo phpversion(); ?>, jedynie zwraca wersję PHP, co również jest zbyt ograniczone, aby uzyskać pełny obraz konfiguracyjny. Błędem jest zatem założenie, że wystarczy znać wersję PHP lub autorów, aby prawidłowo skonfigurować środowisko, gdyż kluczowe są szczegóły dotyczące ustawień. Zrozumienie tych różnić jest kluczowe dla efektywnego zarządzania środowiskiem PHP i unikania problemów, które mogą wynikać z nieodpowiednich konfiguracji.

Pytanie 11

Projektant stworzył logo dla witryny internetowej. Jest to czarny symbol na przezroczystym tle. Aby zachować wszystkie cechy obrazu i umieścić go na stronie, projektant powinien zapisać obraz w formacie

A. JPEG
B. BMP
C. PNG
D. CDR
Format PNG (Portable Network Graphics) jest idealnym rozwiązaniem dla grafiki internetowej, zwłaszcza gdy zależy nam na zachowaniu przezroczystości tła, co jest kluczowe w przypadku logotypów. PNG obsługuje kompresję bezstratną, co oznacza, że nie utracimy jakości obrazu przy zapisywaniu go. To szczególnie ważne w kontekście logo, które często musi być skalowane do różnych rozmiarów, a wszelkie zniekształcenia mogą wpłynąć na jego rozpoznawalność. Dodatkowo, format PNG pozwala na uzyskanie pełnej gamy kolorów, w tym przezroczystości w formacie RGBA. W praktyce oznacza to, że możesz umieścić czarny znak na dowolnym tle, a jego kształt zawsze zachowa wyrazistość oraz ostrość. Warto również zauważyć, że PNG jest wspierany przez wszystkie nowoczesne przeglądarki internetowe i systemy operacyjne, co czyni go wszechstronnym wyborem dla twórców stron internetowych. Standard PNG, opublikowany przez W3C, jest uznawany za jedno z najbardziej efektywnych rozwiązań dla grafiki w sieci.

Pytanie 12

Jak określa się program, który realizuje polecenia zawarte w kodzie źródłowym tworzonego oprogramowania bez wcześniejszego generowania programu wynikowego?

A. Konwerter kodu
B. Interpreter
C. Konwerter języka
D. Kompilator
Interpreter to program, który wykonuje instrukcje zawarte w kodzie źródłowym bez potrzeby wcześniejszego generowania kodu wynikowego. Działa on na zasadzie analizy i wykonywania kodu w czasie rzeczywistym, co pozwala na szybkie testowanie i debugowanie aplikacji. Dzięki temu programiści mogą wprowadzać zmiany w kodzie i natychmiastowo sprawdzać ich efekty, co znacznie przyspiesza proces tworzenia oprogramowania. Interpretery są często wykorzystywane w językach skryptowych, takich jak Python, JavaScript czy Ruby, gdzie szybka iteracja jest kluczowa. Warto również zaznaczyć, że interpretery mogą być częścią większych środowisk programistycznych, co jest zgodne z praktykami Agile, które promują elastyczność i szybkie dostosowywanie się do zmieniających się wymagań. Dlatego znajomość działania interpreterów jest niezbędna dla każdego programisty, który chce skutecznie rozwijać swoje umiejętności i dostosowywać się do nowoczesnych trendów w programowaniu.

Pytanie 13

Funkcjonalność obejmującą edycję kodu źródłowego, jego kompilację, tworzenie zasobów programu, baz danych i komponentów udostępnia

A. PhpMyAdmin
B. Notpead++
C. debugger
D. środowisko IDE
W tym pytaniu kluczowe jest zrozumienie, że chodzi o narzędzie, które w jednym miejscu łączy edycję kodu, kompilację, tworzenie zasobów programu, pracę z bazami danych i komponentami. Taki zestaw funkcji jest dość rozbudowany i nie zapewni go pojedynczy, prosty program. Częsty błąd polega na myleniu pojedynczej funkcji z pełnym środowiskiem programistycznym. Debugger na przykład jest bardzo ważnym narzędziem, ale jego zadanie to analiza działania programu krok po kroku, ustawianie breakpointów, podgląd wartości zmiennych, stosu wywołań. Debugger zwykle jest tylko jednym z modułów wchodzących w skład większego środowiska IDE. Sam z siebie nie służy ani do pisania kodu w wygodny sposób, ani do zarządzania zasobami aplikacji czy bazą danych. Podobnie Notepad++ to rozbudowany edytor tekstu z podświetlaniem składni, wtyczkami, możliwością pracy na wielu plikach. Jednak to nadal tylko edytor, a nie pełne IDE. Nie posiada natywnego systemu kompilacji projektów, zaawansowanego zarządzania projektem, integracji z kompilatorami i budowaniem całych rozwiązań w sposób typowy dla środowisk programistycznych. Oczywiście da się w nim pisać kod, ale cała reszta procesu programowania spada na użytkownika i zewnętrzne narzędzia. PhpMyAdmin z kolei jest narzędziem stricte bazodanowym, webowym interfejsem do zarządzania serwerem MySQL/MariaDB. Umożliwia tworzenie i modyfikowanie tabel, wykonywanie zapytań SQL, eksport i import danych. Nie służy do edycji kodu źródłowego aplikacji ani do kompilacji programów. Czasem pojawia się tu typowe złudzenie: skoro narzędzie ma coś wspólnego z bazami danych albo kodem, to może „załatwia wszystko”. W praktyce każda z tych aplikacji realizuje tylko wycinek funkcjonalności opisanej w pytaniu. Pełny zestaw: edycja, kompilacja, zasoby, bazy i komponenty – to domena środowisk IDE, które integrują wiele narzędzi w jednym spójnym interfejsie, zgodnie z dobrymi praktykami pracy programisty.

Pytanie 14

W JavaScript metoda Math.random() ma na celu

A. zaokrąglić liczbę do najbliższej większej liczby całkowitej
B. zwrócić liczbę pseudolosową
C. zwrócić liczbę po zaokrągleniu
D. porównać dwie sekwencje znaków
Metoda Math.random() w języku JavaScript jest kluczowym narzędziem do generowania liczb pseudolosowych w zakresie od 0 (włącznie) do 1 (wyłącznie). Oznacza to, że każdorazowe wywołanie tej metody zwraca nową, losową wartość zmiennoprzecinkową, co jest przydatne w wielu zastosowaniach, takich jak tworzenie gier, symulacje, a także w algorytmach generujących dane testowe. Ważne jest, aby pamiętać, że Math.random() nie generuje liczb losowych w sensie statystycznym, lecz wykorzystuje algorytmy deterministyczne do produkcji wartości, co oznacza, że są one przewidywalne, jeśli znany jest stan początkowy. W praktyce, aby uzyskać liczbę losową w określonym zakresie, można zastosować następujący wzór: Math.floor(Math.random() * (max - min + 1)) + min, gdzie 'min' i 'max' to odpowiednio dolna i górna granica zakresu. To podejście jest zgodne z dobrymi praktykami w programowaniu, gdyż pozwala na elastyczne wykorzystanie losowości w aplikacjach.

Pytanie 15

Jak można opisać przedstawiony obiekt w JavaScript?

var obiekt1 = {
  x: 0,
  y: 0,
  wsp: function() { ... }
}
A. trzema właściwościami
B. trzema metodami
C. dwiema właściwościami i jedną metodą
D. dwiema metodami i jedną właściwością
Obiekt w języku JavaScript to struktura danych, która przechowuje zbiór właściwości, gdzie każda właściwość jest parą klucz-wartość. W podanym przykładzie mamy obiekt o nazwie 'obiekt1' zdefiniowany za pomocą literału obiektowego. Składa się on z dwóch właściwości 'x' i 'y', które mają przypisane wartości liczby całkowitej zero oraz jednej metody 'wsp', która jest funkcją. Właściwości 'x' i 'y' są prostymi wartościami liczbowymi, a metoda 'wsp' jest zdefiniowana jako funkcja, co oznacza, że można ją wywoływać, aby wykonywać pewne operacje. Tego typu struktury są często używane w JavaScript do tworzenia obiektów reprezentujących dane, jak współrzędne punktów na płaszczyźnie. Dzięki możliwości definiowania metod, obiekty mogą wykonywać operacje na swoich danych, co jest zgodne z zasadami programowania obiektowego. Dzięki zrozumieniu tej struktury, programista może efektywnie zarządzać danymi i logiką aplikacji, stosując dobre praktyki takie jak enkapsulacja i modularność kodu.

Pytanie 16

Aby zdefiniować stylizację tabeli w języku CSS w sposób, który umożliwi wyróżnienie wiersza, na który aktualnie najeżdża kursor myszy np. innym kolorem, należy użyć

A. pseudoklasy :hover
B. pseudoklasy :visited
C. pseudoelementu :first-line
D. nowego selektora klasy dla wiersza tabeli
Pseudoklasa :hover jest techniką CSS, która pozwala na zastosowanie stylów do elementu, gdy użytkownik na niego najedzie kursorem myszy. Dzięki temu można w prosty sposób wyróżnić wiersze tabeli, co zwiększa interaktywność i czytelność danych. W przypadku tabeli, aby wyróżnić aktualnie wskazywany wiersz, należy użyć reguły CSS, która odnosi się do elementu <tr> (wiersza tabeli) z zastosowaniem pseudoklasy :hover. Przykładowy kod CSS może wyglądać następująco: table tr:hover { background-color: #f0f0f0; } co spowoduje, że tło wiersza zmieni się na jasno szare, gdy kursor myszy znajdzie się nad tym wierszem. Taki sposób formatowania jest szczególnie przydatny w przypadku długich tabel, które mogą być trudne do przeglądania. Pseudoklasa :hover jest powszechnie stosowana w projektowaniu stron internetowych, w zgodności z W3C CSS Specification, co zapewnia jej szeroką kompatybilność z różnymi przeglądarkami. Warto także zauważyć, że można łączyć pseudoklasę :hover z innymi selektorami, aby uzyskać bardziej zaawansowane efekty wizualne.

Pytanie 17

W HTML formularzu użyto elementu <input>. Pole, które się pojawi, ma pozwalać na wprowadzenie maksymalnie

<input type="password" size="30" maxlength="20">
A. 30 znaków, które nie będą widoczne w polu tekstowym
B. 20 znaków, które będą widoczne w trakcie wprowadzania
C. 20 znaków, które nie będą widoczne w polu tekstowym
D. 30 znaków, które będą widoczne podczas wpisywania
Znacznik <input type="password"> w HTML jest rzeczywiście super ważny. Umożliwia on użytkownikom wpisywanie haseł, a to, co najfajniejsze, to że znaki są ukryte, więc nikt nie zobaczy, co piszesz. Atrybut maxlength="20" jest tutaj pomocny, bo ogranicza liczbę znaków do 20, co jest praktyczne - zbyt długie hasła ciężko zapamiętać, a krótkie mogą być niebezpieczne. Natomiast size="30" to tylko kwestia szerokości pola, więc nie wpływa na ilość znaków, które można wpisać. Generalnie, dobrze jest trzymać się tych ograniczeń, bo to pomaga w projektowaniu formularzy i utrzymywaniu porządku w interfejsie. Z mojej perspektywy, znajomość tych atrybutów jest naprawdę przydatna przy tworzeniu stron, bo można lepiej zrozumieć, jak to wszystko działa.

Pytanie 18

Jakiego znacznika w HTML użyjemy, aby uzyskać tekst wyświetlany czcionką o stałej szerokości znaku, który również uwzględnia dodatkowe spacje, tabulacje oraz znaki końca linii?

A. <ins>…</ins>
B. <blockquote>…</blockquote>
C. <code>…</code>
D. <pre>…</pre>
Znaczniki <code>, <ins> i <blockquote> mają swoje unikalne zastosowania, ale nie nadają się do zachowania formatowania tekstu, jak to robi <pre>. Znacznik <code> jest przeznaczony do oznaczania fragmentów kodu, jednak nie utrzymuje przestrzeni i formatowania. Kiedy używasz <code>, przeglądarka wyświetli tekst w inny sposób, ale nie uwzględni dodatkowych odstępów lub tabulacji, co może prowadzić do nieczytelności w przypadku dłuższych fragmentów kodu. Z kolei znacznik <ins> służy do wskazywania wstawionego tekstu, co ma znaczenie w kontekście edycji lub zmian, ale nie zmienia jego formatowania ani nie zachowuje układów, co ogranicza jego użyteczność w przypadku tekstów wymagających precyzyjnego formatowania. Wreszcie, <blockquote> jest używane do cytowania dłuższych fragmentów tekstu z innego źródła, co również nie związane jest z zachowaniem konkretnego formatowania, a jego celem jest raczej stylistyczne wyróżnienie cytatu. W praktyce, mylenie tych znaczników może prowadzić do frustracji użytkowników, którzy oczekują zachowania konkretnych układów, zwłaszcza w kontekście programowania lub prezentacji danych. Ważne jest, aby zrozumieć, że każdy znacznik ma swoje specyficzne zastosowanie i powinien być używany zgodnie z jego przeznaczeniem, aby zapewnić spójność i czytelność prezentowanych treści.

Pytanie 19

Jakiego elementu HTML brakuje, aby walidator HTML zgłosił ostrzeżenie lub błąd?

A. co najmniej jednego <h1>
B. <title>
C. <meta name="author" content="....">
D. <link>
Elementy <link>, <meta name="author" content="...."> oraz przynajmniej jedno <h1> mają swoje specyficzne zastosowania, ale ich brak nie powoduje błędów walidacyjnych w kontekście standardów HTML. Element <link> jest używany do odniesienia się do zewnętrznych zasobów, takich jak style CSS, lecz jego nieobecność nie wpłynie na walidację samego dokumentu HTML. Użytkownicy często mylą tę sytuację, zakładając, że każdy element w sekcji <head> jest obligatoryjny, co nie jest prawdą. Z kolei <meta name="author"> dostarcza informacje o autorze strony, ale nie jest to element wymagany do poprawnej walidacji. W kontekście SEO, jego brak może ograniczyć kontekstualizację strony, ale nie prowadzi do błędów walidacyjnych. Element <h1> jest ważny z punktu widzenia struktury treści, gdyż określa główny nagłówek strony, jednak nie jest bezwzględnie konieczny do walidacji HTML. Często można spotkać błędne przekonanie, że wszystkie te elementy muszą być obecne, co jest mylne. W rzeczywistości HTML pozwala na różne konfiguracje dokumentów, a istotne jest, aby przestrzegać podstawowych zasad dotyczących struktury i semantyki, co nie zawsze oznacza posiadanie każdego elementu w sekcji <head>.

Pytanie 20

Zapytanie przedstawione poniżej zwróci wynik:

SELECT COUNT(cena) FROM uslugi;
A. liczbę wszystkich cen usług w tabeli
B. wszystkie wartości cen usług w tabeli
C. średnią wartość cen usług w tabeli
D. sumę wartości cen usług w tabeli
Zapytanie SQL, które zostało przedstawione, korzysta z funkcji agregującej COUNT(), która zlicza ilość wierszy w tabeli, w której znajduje się kolumna 'cena'. W kontekście tego zapytania, COUNT(cena) zbiera wszystkie wartości w kolumnie 'cena', co oznacza, że zwróci liczbę wszystkich wierszy, w których wartość kolumny 'cena' nie jest NULL. Jest to istotne, ponieważ w praktycznych zastosowaniach bazy danych często potrzebujemy znać ilość elementów dostępnych w danym zbiorze danych, co ma kluczowe znaczenie przy analizowaniu danych oraz generowaniu raportów. Na przykład, jeśli prowadzisz firmę oferującą różne usługi, takie zapytanie pozwala Ci szybko określić, ile różnych usług posiadasz w swojej ofercie oraz jakie są ich ceny. Dobrą praktyką jest używanie funkcji COUNT() w połączeniu z klauzulą WHERE, aby dokładnie określić, które wiersze mają być zliczane, co pozwala na bardziej precyzyjne analizy.

Pytanie 21

Jaką konstrukcją w języku C++ jest double *x;?

A. Wskaźnik
B. Zmienna rzeczywista
C. Formalny argument typu rzeczywistego
D. Zmienna całkowita
Wybór odpowiedzi, która sugeruje, że 'double *x;' jest parametrem formalnym typu rzeczywistego, jest nieprawidłowy, ponieważ wskaźnik nie jest sam w sobie parametrem formalnym. Parametry formalne w C++ są definiowane w nagłówkach funkcji i odnoszą się do zmiennych przekazywanych do funkcji. Wskaźnik, jak 'double *x;', jest po prostu zmienną, która przechowuje adres innej zmiennej, co jest zupełnie inną koncepcją. Z kolei określenie zmiennej całkowitej jest również błędne, ponieważ 'double' wskazuje na typ zmiennoprzecinkowy, a nie całkowity. Zrozumienie różnicy między typami danych jest kluczowe w C++. Ostatnia niepoprawna opcja, mówiąca o zmiennej rzeczywistej, nie odnosi się do wskaźnika, ponieważ wskaźnik nie jest zmienną przechowującą wartość typu 'double', ale adresem, pod którym taka wartość może być przechowywana. Typowe błędy myślowe, które mogą prowadzić do takich niepoprawnych odpowiedzi, obejmują mylenie pojęcia wskaźnika z typem zmiennej, a także brak zrozumienia roli wskaźników w kontekście zarządzania pamięcią i przekazywania danych do funkcji. Właściwe zrozumienie tych podstawowych koncepcji jest niezbędne do skutecznego programowania w C++.

Pytanie 22

Jakie ustawienia dotyczące czcionki będą miały zastosowanie w przypadku kodu CSS?

* {
    font-family: Tahoma;
    color: Teal;
}
A. wszystkiego kodu HTML, niezależnie od kolejnych ustawień CSS.
B. znaczników z klasą przypisaną jako *.
C. wszystkiego kodu HTML, jako domyślne formatowanie dla wszystkich elementów strony.
D. znaczników o identyfikatorze równym *.
Wybór opcji dotyczącej całego kodu HTML jako formatowania domyślnego dla wszystkich elementów strony jest poprawny, ponieważ użycie selektora uniwersalnego * w CSS oznacza, że wszystkie dostępne elementy na stronie będą dziedziczyć określone style. W tym przypadku, zarówno font-family ustawiony na Tahoma, jak i kolor tekstu zmieniony na Teal, będą dotyczyły każdego elementu HTML, bez względu na jego typ. To podejście jest zgodne z zasadami stosowania stylów kaskadowych, gdzie style są aplikowane do elementów w sposób hierarchiczny, a selektor uniwersalny jest najogólniejszym z dostępnych. Przykładem zastosowania może być sytuacja, gdy chcemy ustawić jednolite formatowanie dla całej strony, co upraszcza proces projektowania i zapewnia spójność wizualną. Dobrą praktyką jest jednak używanie selektora uniwersalnego z umiarem, aby uniknąć nadmiernego obciążenia wydajności, szczególnie w większych dokumentach, gdzie precyzyjniejsze selektory mogą przynieść lepsze rezultaty.

Pytanie 23

Aby uzyskać przezroczyste tło w obrazie formatu JPG, należy wykonać

A. dodanie kanału alfa
B. użycie filtru Gaussa
C. właściwe przycięcie
D. korekcję nasycenia kolorów
Dodanie kanału alfa do obrazu JPG jest kluczowym krokiem, aby uzyskać przezroczystość tła. Format JPG, z definicji, nie obsługuje przezroczystości, dlatego konieczne jest przekształcenie obrazu do formatu, który to umożliwia, takiego jak PNG. Kanał alfa to dodatkowa warstwa, która przechowuje informacje o przezroczystości dla każdego piksela obrazu, pozwalając na uzyskanie efektu przezroczystości. Aby dodać kanał alfa, można skorzystać z programów graficznych takich jak Adobe Photoshop, GIMP czy Affinity Photo. Przykładowo, w Photoshopie można użyć funkcji 'Zaznaczenie i maska', aby wyodrębnić obiekt z tła, a następnie zapisać go z kanałem alfa jako PNG. Użycie kanału alfa jest standardową praktyką w edytowaniu grafiki, szczególnie w kontekście tworzenia logo, grafik do stron internetowych i zasobów do gier wideo, gdzie przezroczystość odgrywa kluczową rolę w integracji elementów wizualnych.

Pytanie 24

Na temat zmiennej predefiniowanej $_POST w języku PHP możemy stwierdzić, że

A. jest rozwiniętą wersją tablicy $_SESSION
B. zawiera dane przesłane do skryptu z formularza
C. jest repliką tablicy $_COOKIE
D. zawiera informacje bezpośrednio przesłane do skryptu z ciasteczka
Zmienna predefiniowana $_POST w języku PHP jest kluczowym elementem, który umożliwia przesyłanie danych z formularzy HTML do skryptu PHP. Gdy użytkownik wypełnia formularz i wysyła go, wszystkie dane z tego formularza są dostępne w tablicy asocjacyjnej $_POST, co pozwala na łatwe przetwarzanie danych w backendzie. Przykładowo, jeśli formularz zawiera pola takie jak 'imię' i 'email', po wysłaniu skrypt PHP może uzyskać te wartości poprzez $_POST['imię'] oraz $_POST['email']. To podejście jest zgodne z najlepszymi praktykami w programowaniu webowym, gdzie oddziela się logikę prezentacji od logiki przetwarzania danych. Ponadto, korzystając z $_POST, programiści mogą bezpiecznie odbierać dane bez obaw o ich modyfikację przez użytkownika, ponieważ nie są one widoczne w adresie URL, jak w przypadku metody GET. Warto również zauważyć, że korzystając z $_POST, można przesyłać różnorodne dane, w tym tekst, pliki i inne formaty, co czyni tę metodę niezwykle wszechstronną.

Pytanie 25

Zestawienie dwóch kolorów znajdujących się naprzeciwko siebie w kole kolorów jest zestawieniem

A. dopełniającym
B. sąsiadującym
C. trójkątnym
D. monochromatycznym
Wybór odpowiedzi trójkątnym odnosi się do koncepcji, w której kolory są rozmieszczone w formie trójkąta na kole barw. Takie połączenie nie tworzy jednak charakterystycznej relacji, jaką posiadają kolory dopełniające. W praktyce, kolory trójkątne służą do tworzenia bardziej złożonych palet, gdzie każdy kolor współdziała z pozostałymi, ale nie generują one tak silnego kontrastu jak dopełniające. Odpowiedź sąsiadującym sugeruje, że barwy są blisko siebie w kole barw, co prowadzi do harmonijnego, ale jednolitego efektu, a nie do wyraźnych kontrastów. Barwy sąsiadujące można stosować do uzyskania delikatniejszych przejść kolorystycznych, co jest przydatne w projektach, które wymagają subtelności. Z kolei monochromatycznym odnosi się do jednego koloru i jego odcieni, co pozwala na stworzenie spójnej, ale mało zróżnicowanej palety kolorystycznej. Użycie monochromatycznych kolorów może być przydatne do zbudowania jednolitego stylu, lecz nie oferuje ono intensywności wizualnej, którą uzyskuje się dzięki kolorom dopełniającym. Generalnie, błędne podejścia do kolorów mogą prowadzić do ograniczenia kreatywności i nieefektywnego wykorzystania kolorystyki w projektach artystycznych czy graficznych. Zrozumienie różnic między tymi połączeniami jest kluczowe dla efektywnego wykorzystania teorii kolorów w praktycznych zastosowaniach.

Pytanie 26

Dla dowolnego a w zakresie (0,99), celem funkcji napisanej w JavaScript jest:

function fun1(a)
{
    for(n=a; n<=100; n++)
        document.write(n);
    return n;
}
A. wypisanie wartości z zakresu a..99 i zwrócenie liczby 100
B. zwrócenie wartości z zakresu a..99
C. wypisanie wartości z zakresu a...100 i zwrócenie wartości zmiennej n
D. wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n
Odpowiedź numer trzy jest poprawna ponieważ kod funkcji w języku JavaScript zawiera pętlę for która iteruje od wartości a aż do 100 włącznie. W każdym przebiegu pętli wywoływana jest metoda document.write która wypisuje na ekranie bieżącą wartość zmiennej n. Ponieważ pętla kończy się na 100, ostatnia wartość która zostanie wypisana to 100. Dodatkowo zauważmy że po zakończeniu pętli funkcja zwraca wartość zmiennej n, która po zakończeniu pętli będzie równa 101. Jest to typowy wzorzec używany w JavaScript gdzie pętla jest wykorzystywana do iteracji po zbiorze wartości a po jej zakończeniu zwracana jest ostatnia wartość zmiennej sterującej. Praktyczne zastosowanie tej wiedzy obejmuje rozumienie podstawowych mechanizmów iteracji w JavaScript co jest kluczowe w programowaniu. Dobre praktyki wskazują na wyraźne rozdzielenie logiki wyświetlania od logiki zwracania wartości co ułatwia testowanie i utrzymanie kodu. Zwracanie wartości po pętli może być używane w sytuacjach gdy chcemy uzyskać informację o stanie końcowym iteracji co jest częstym scenariuszem w obliczeniach arytmetycznych lub przetwarzaniu danych.

Pytanie 27

W programie do grafiki wektorowej stworzono zaprezentowany kształt, który został uzyskany z dwóch figur: trójkąta oraz koła. Aby utworzyć ten kształt, po narysowaniu figur i ich odpowiednim umiejscowieniu, należy zastosować funkcję

Ilustracja do pytania
A. sumy
B. wykluczenia
C. różnicy
D. rozdzielenia
Funkcja sumy w edytorach grafiki wektorowej, takich jak Adobe Illustrator czy CorelDRAW, pozwala na łączenie kilku figur wektorowych w jedną całość. W tym przypadku użycie funkcji sumy jest odpowiednie, ponieważ łączy trójkąt i koło w jeden spójny kształt. Ten proces jest powszechnie określany jako operacja boolean i jest kluczowy w projektowaniu wektorowym, gdzie wymagana jest precyzyjna kontrola nad kształtami. Użycie sumy jest standardem w branży, gdy celem jest połączenie kształtów bez utraty ich integralności, co jest często stosowane w projektowaniu logo czy ikon. Operacja ta zapewnia płynne przejścia między figurami, co jest niezbędne w profesjonalnych projektach graficznych. Dodatkowo, sumowanie kształtów pozwala na optymalizację projektu pod kątem druku i wyświetlania, ponieważ zmniejsza liczbę niezależnych obiektów wektorowych, co jest praktyką zalecaną dla wydajnej pracy z dużymi plikami. Zrozumienie i umiejętność stosowania funkcji sumy to fundamentalna umiejętność dla każdego grafika pracującego z grafiką wektorową.

Pytanie 28

W jakim formacie będzie wyświetlana data po uruchomieniu przedstawionego kodu?

<?php
  echo date'l, dS F Y');
?>
A. Poniedziałek, 10th lipca 17
B. 10, poniedziałek lipca 2017
C. Poniedziałek, 10th lipca 2017
D. Poniedziałek, 10 lipca 2017
Pierwsza z błędnych odpowiedzi sugeruje, że data zostanie wyświetlona jako 'Monday, 10 July 2017'. Problem polega na tym, że brak suffixu 'th' w przypadku dnia 10 jest niewłaściwy według standardowego angielskiego zapisu dat. W kontekście drugiej odpowiedzi, '10, Monday July 2017', należy zauważyć, że kolejność elementów jest nieprawidłowa. W angielskim zapisie dat i zgodnie z konwencjami formatowania, najpierw występuje nazwa dnia, następnie dzień miesiąca, a później miesiąc i rok. Co więcej, brak przecinka po dniu miesiąca także wpływa na poprawność tej formy. Trzecia odpowiedź, 'Monday, 10th July 17', jest błędna z powodu nieprawidłowego skrótu roku; w standardowym zapisie dat w formalnym kontekście powinno się używać pełnego roku, czyli '2017', a nie jego skrótu. Zatem wszystkie te odpowiedzi są niepoprawne, ponieważ nie spełniają standardowych zasad formatowania dat w języku angielskim, co jest kluczowe dla zachowania jasności i poprawności w komunikacji.

Pytanie 29

Jakim poleceniem SQL można zlikwidować z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?

A. DELETE * FROM artykuly WHERE tresc LIKE "%sto%"
B. DELETE FROM artykuly WHERE tresc = "%sto%"
C. DELETE FROM artykuly WHERE tresc LIKE "%sto%"
D. DELETE * FROM artykuly WHERE tresc = "%sto%"
Wybór odpowiedzi "DELETE * FROM artykuly WHERE tresc = '%sto%';" jest po prostu zły z paru powodów. Po pierwsze, w SQL nie używamy znaku '*' przy DELETE. Jak chcemy usunąć wiersze, to piszemy tylko "DELETE FROM nazwa_tabeli". To '*' sugeruje, że chcesz usunąć jakieś konkretne kolumny, a to w SQL się nie sprawdzi. Druga sprawa to operator '=' zamiast 'LIKE'. '=' używamy do porównania wartości, nie do wyszukiwania wzorców, a tu właśnie szukamy wystąpienia słowa 'sto' w dłuższym tekście. Dlatego operator LIKE z wildcardami jest tu konieczny, by znaleźć i usunąć te wiersze, które mają 'sto' gdziekolwiek. Często ludzie mylą te operatory w SQL, co prowadzi do problemów i nieefektywnego wyszukiwania.

Pytanie 30

Który z poniższych sposobów na dodawanie komentarzy do kodu nie jest używany w języku PHP?

A. # komentarz
B. /* komentarz */
C. // komentarz
D. <!-- komentarz -->
Odpowiedź <!-- komentarz --> jest poprawna, ponieważ jest to typowy sposób komentowania w HTML, a nie w PHP. W PHP stosujemy inne konwencje do komentowania kodu. Najczęściej używane metody to: # oraz // dla komentarzy jedno-liniowych oraz /* komentarz */ dla komentarzy wielo-liniowych. Przykładowo, użycie // w kodzie PHP pozwala na dodanie komentarza do linii kodu, co może być pomocne w wyjaśnieniu działania danej sekcji. Komentarze są istotnym elementem kodu, ponieważ pomagają programistom w zrozumieniu logiki programu, zwłaszcza przy pracy w zespole lub przy dłuższych projektach. Zgodnie z dobrymi praktykami programistycznymi, komentarze powinny być jasne i zwięzłe, co ułatwia innym programistom lub przyszłym wersjom siebie zrozumienie kodu. Warto również pamiętać, że odpowiednie komentowanie kodu zwiększa jego czytelność oraz ułatwia późniejsze wprowadzanie zmian.

Pytanie 31

Jaki atrybut powinien zostać umieszczony w miejscu trzech kropek w znaczniku HTML5 <blockquote>, aby wskazać źródło cytatu?

A. cite
B. alt
C. src
D. href
Odpowiedzi 'src', 'alt' i 'href' są nieprawidłowe, ponieważ każdy z tych atrybutów pełni inną rolę w kontekście HTML. Atrybut 'src' jest wykorzystywany do określenia źródła dla elementów takich jak <img> czy <script>, a więc nie ma zastosowania w przypadku znacznika <blockquote>. Wybierając 'src', można pomylić cytat z obrazem lub skryptem, co prowadzi do błędnej interpretacji struktury dokumentu. Atrybut 'alt' jest używany do dostarczania alternatywnego tekstu dla obrazów, co również nie ma zastosowania w kontekście cytatów. Użytkownik, wybierając odpowiedź 'alt', może błędnie sądzić, że alternatywny tekst jest istotny dla przedstawienia źródła cytatu, co jest mylne. Natomiast 'href', który jest stosowany w elementach <a> do określenia adresu URL, również nie ma zastosowania w kontekście cytatów. Zastosowanie 'href' w znaczeniu cytatu mogłoby prowadzić do zamieszania związane z funkcją nawigacyjną i semantyką dokumentu. Każda z tych odpowiedzi ilustruje typowe nieporozumienia dotyczące roli atrybutów HTML, co pokazuje, jak ważne jest zrozumienie właściwych kontekstów, w których atrybuty powinny być używane. Prawidłowe zrozumienie znaczenia atrybutu 'cite' jest kluczowe dla tworzenia semantycznych i czytelnych dokumentów HTML, które poprawnie odzwierciedlają intencje autora oraz są zgodne z najlepszymi praktykami webowymi.

Pytanie 32

Prezentowany fragment dokumentu HTML z użyciem JavaScript spowoduje, że po naciśnięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz2.png zostanie zniknięty
B. obraz2.png zostanie wymieniony przez obraz1.png
C. obraz1.png zostanie wymieniony przez obraz2.png
D. obraz1.png zostanie zniknięty
Odpowiedź jest poprawna, ponieważ przycisk w kodzie JavaScript powoduje, że po jego kliknięciu element HTML o identyfikatorze 'id1', który jest obrazem 'obraz2.png', zostanie ukryty. Wartość 'style.display' zmienia się na 'none', co jest standardowym sposobem na ukrycie elementu w dokumentach HTML. W praktyce takie podejście jest szeroko stosowane w interaktywnych aplikacjach webowych, aby poprawić doświadczenia użytkowników, umożliwiając im dynamiczne ukrywanie lub wyświetlanie treści w odpowiedzi na ich działania. Ukrywanie elementów zamiast ich usuwania z DOM ma swoje zalety, ponieważ umożliwia ich późniejsze przywrócenie, co jest bardziej efektywne w kontekście wydajności. Dobrym przykładem może być rozwijane menu na stronie, gdzie po kliknięciu na dany element, jego zawartość jest ukrywana lub pokazywana bez potrzeby przeładowywania całej strony.

Pytanie 33

W algebrze relacji działanie selekcji polega na

A. wybór krotek, które nie zawierają wartości NULL
B. usunięciu pustych wierszy
C. usunięciu krotek z powtórzonymi polami
D. wybór krotek, które spełniają określone warunki
Wybieranie krotek niezawierających wartości NULL nie jest operacją selekcji w kontekście algebry relacji, ponieważ selekcja ma na celu filtrację krotek na podstawie określonych warunków, a nie jedynie na podstawie obecności lub braku wartości NULL. W praktyce, aby wykluczyć wartości NULL, można zastosować dodatkowe warunki w operacji selekcji, ale to nie definiuje samej operacji selekcji. Z kolei eliminacja pustych wierszy jest związana z usuwaniem krotek, które nie zawierają żadnych danych, co także nie jest równoznaczne z operacją selekcji. Ta operacja odnosi się bardziej do czyszczenia danych niż do ich wybierania na podstawie określonych kryteriów. Ponadto, eliminacja krotek z powtarzającymi się polami nie jest tożsama z selekcją, ponieważ dotyczy bardziej operacji usuwania duplikatów, które są zazwyczaj realizowane przez operacje takie jak DISTINCT w SQL, a nie przez selekcję, która ma na celu wybór krotek na podstawie warunków logicznych. W algebrze relacji kluczowe jest rozróżnienie między operacjami filtrowania danych a operacjami modyfikacji danych, co jest istotne w kontekście projektowania baz danych oraz w zapewnieniu integralności danych.

Pytanie 34

DOM oferuje metody oraz właściwości, które w języku JavaScript umożliwiają

A. pobieranie i zmianę elementów strony, która jest wyświetlana przez przeglądarkę
B. przesyłanie danych formularzy bezpośrednio do bazy danych
C. przeprowadzanie operacji na zmiennych zawierających liczby
D. manipulację łańcuchami zdefiniowanymi w kodzie
No cóż, odpowiedzi, które mówisz o manipulacji łańcuchami, wysyłaniu formularzy do baz czy operacjach na liczbach, nie są związane z tym, co oferuje DOM. Manipulacja łańcuchami dotyczy zmiennych w JavaScript, a nie interakcji z elementami na stronie. Wysyłanie formularzy do bazy danych to temat dla innych technologii, jak AJAX, a nie coś, co robi DOM. Operacje na liczbach też są częścią samego JavaScript, ale nie mają nic wspólnego z elementami HTML. Często można usłyszeć, że DOM to wszystko, co związane z JavaScript, ale tak nie jest. DOM to narzędzie do zmiany struktury strony, a nie do obliczeń. Warto to rozróżnić, żeby nie popełniać błędów w projektowaniu aplikacji webowych, bo to może przysporzyć problemów.

Pytanie 35

Który z elementów relacyjnej bazy danych, zapisany w języku SQL, może być wykorzystany w zapytaniach modyfikujących kolumny danych udostępnione jako tabela, niezależnie od tego, czy jest stworzony programowo, czy dynamicznie?

A. Funkcja zdefiniowana
B. Procedura składowa
C. Zasada
D. Trigger
Kiedy analizujemy inne obiekty bazy danych, takie jak reguły, wyzwalacze i procedury składowe, możemy zidentyfikować, dlaczego nie są one odpowiednie w kontekście tego pytania. Reguły w SQL są używane do automatyzacji modyfikacji zapytań, ale ich zastosowanie jest ograniczone i rzadko używane w nowoczesnych bazach danych. Reguły są rzeczywiście często pomijane w nowoczesnych implementacjach ze względu na ich złożoność oraz ograniczenia w stosowaniu. Wyzwalacze natomiast są mechanizmami, które automatycznie wywołują się w odpowiedzi na określone zdarzenia w bazie danych, takie jak dodawanie, aktualizacja lub usuwanie rekordów. Choć mogą modyfikować dane, to nie są one wywoływane bezpośrednio przez zapytania, a raczej jako odpowiedź na zdarzenia, co czyni je mniej elastycznymi w kontekście bezpośrednich zapytań. Procedury składowe są kolejnym typem obiektu bazy danych, które mogą implementować złożoną logikę, jednak są one zazwyczaj wywoływane jako całość i nie mogą być używane w kontekście zapytań modyfikujących dane, jak to ma miejsce w przypadku funkcji zdefiniowanej. Zatem w kontekście elastyczności i modułowości w modyfikacjach danych, funkcje zdefiniowane pozostają najodpowiedniejszym rozwiązaniem.

Pytanie 36

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

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

Aby przeanalizować rozkład ilościowy różnych kolorów na zdjęciu, jaka metoda powinna być zastosowana?

A. rozmycia Gaussa
B. histogramu
C. desaturacji
D. balansu kolorów
Histogram to narzędzie analityczne, które pozwala wizualizować rozkład kolorów oraz ich intensywność w obrazie. Dzięki histogramowi możemy zidentyfikować, które kolory dominują w danym zdjęciu, co jest kluczowe w procesie edycji graficznej oraz analizy obrazu. Histogram przedstawia liczbę pikseli dla każdego poziomu jasności lub dla poszczególnych kolorów w skali RGB (czerwony, zielony, niebieski). W praktyce, analizując histogram, możemy szybko ocenić, czy zdjęcie jest dobrze naświetlone, czy może występują w nim zbyt ciemne lub zbyt jasne obszary. Przykładowo, w fotografii krajobrazowej, gdy chcemy uzyskać pełne spektrum barw zieleni i niebieskiego nieba, histogram pomoże nam dostosować ekspozycję lub kolory, aby uzyskać pożądany efekt. Standardy branżowe, takie jak Adobe RGB czy sRGB, również opierają się na analizie histogramu, co czyni go niezbędnym narzędziem dla profesjonalnych fotografów oraz grafików.

Pytanie 38

Jaką instrukcję pętli stosuje się do przeprowadzenia określonej liczby operacji na obiekcie lub zmiennej, która nie jest tablicą?

A. if
B. foreach
C. for
D. switch
Wybór instrukcji 'switch' jako odpowiedzi na pytanie o pętlę wykonującą określoną liczbę operacji jest błędny z podstawowego powodu, że 'switch' nie jest pętlą. Jest to struktura kontrolna używana do wyboru jednego z wielu bloków kodu do wykonania, w zależności od wartości zmiennej. Zastosowanie 'switch' jest zatem ograniczone do sytuacji, gdy chcemy wykonywać różne operacje w zależności od konkretnej wartości, a nie do powtarzania tych samych operacji wielokrotnie. Z kolei 'foreach' jest konstrukcją, która służy do iteracji przez kolekcje lub tablice, co również nie odpowiada na postawione pytanie o pętlę wykonującą ustaloną liczbę operacji na pojedynczej zmiennej. Użycie 'if' jest również mylące; jest to instrukcja warunkowa, która decyduje o tym, czy dany blok kodu powinien zostać wykonany w oparciu o spełnienie określonych warunków. W praktyce, błędne zrozumienie roli i funkcji tych konstrukcji często prowadzi do nieefektywnego kodu, który może być trudny do zrozumienia i utrzymania. Kluczowe jest zrozumienie różnicy pomiędzy strukturami kontrolnymi a pętlami, co pozwoli na właściwe podejście do programowania i skuteczne zarządzanie logiką aplikacji. Ważne jest, aby nauczyć się, kiedy używać każdej z tych konstrukcji, aby optymalizować kod i unikać nieporozumień.

Pytanie 39

Wykres słupkowy należy zapisać w formacie rastrowym tak, aby jakość jego krawędzi była jak najlepsza, również dla dużego powiększenia, unikając efektu aliasingu. Do tego celu można zastosować format

A. JPEG
B. CDR
C. SVG
D. PNG
Wybierając PNG do zapisu wykresu słupkowego w formacie rastrowym, podjąłeś technicznie uzasadnioną decyzję. PNG to format grafiki rastrowej, który umożliwia zapis obrazów bezstratnie, co jest kluczowe, kiedy zależy nam na zachowaniu ostrych krawędzi – szczególnie przy wykresach, gdzie szczegółowość i czytelność mają pierwszorzędne znaczenie. W odróżnieniu od JPEG, PNG nie stosuje kompresji stratnej, przez co nie pojawiają się charakterystyczne rozmycia czy artefakty wokół linii i tekstów. Z mojego doświadczenia, jeśli chcesz potem wykres powiększać, PNG sprawdza się znakomicie – szczególnie przy plikach przygotowanych w wysokiej rozdzielczości (np. 300 dpi lub więcej). Co ważne, PNG obsługuje przezroczystość i bez problemu radzi sobie z płaskimi kolorami oraz prostymi gradientami, więc wyniki są bardzo przewidywalne. Warto wiedzieć, że format ten jest od lat szeroko akceptowany zarówno w druku, jak i na stronach internetowych. W branży najczęściej poleca się PNG do materiałów edukacyjnych, raportów czy prezentacji, gdy liczy się precyzja i wyrazistość. To taki standardowy wybór dla wszelkich diagramów, infografik czy schematów. Oczywiście, jeśli wykres byłby w pełni wektorowy, najlepszym wyjściem byłby SVG, ale jeśli ma być rastrowy – PNG jest bez dwóch zdań najlepszy. Nawet przy dużym powiększeniu krawędzie pozostają ostre, a efekt aliasingu praktycznie nie występuje, jeśli odpowiednio dobierzesz rozdzielczość wyjściową.

Pytanie 40

Aby stworzyć relację jeden do wielu, w tabeli po stronie wiele, co należy zdefiniować?

A. klucz podstawowy wskazujący na klucz podstawowy tabeli po stronie jeden
B. klucz obcy wskazujący na klucz obcy tabeli po stronie jeden
C. klucz obcy wskazujący na klucz podstawowy tabeli po stronie jeden
D. klucz sztuczny odnoszący się do kluczy podstawowych obu tabel
W relacji jeden do wielu, klucz obcy w tabeli po stronie wiele jest kluczowym elementem, który wskazuje na klucz podstawowy tabeli po stronie jeden. Dzięki temu możliwe jest powiązanie wielu rekordów w tabeli 'wiele' z jednym rekordem w tabeli 'jeden', co jest fundamentalnym aspektem modelowania relacyjnych baz danych. Klucz obcy zapewnia integralność referencyjną, co oznacza, że każda wartość klucza obcego w tabeli 'wiele' musi odpowiadać istniejącemu kluczowi podstawowemu w tabeli 'jeden'. Przykładem może być sytuacja, w której mamy tabelę 'Klienci' i tabelę 'Zamówienia'. W tabeli 'Zamówienia' klucz obcy 'ID_Klienta' wskazuje na 'ID' w tabeli 'Klienci', co pozwala na przypisanie wielu zamówień do jednego klienta. Zgodnie z dobrymi praktykami branżowymi, klucze obce powinny być odpowiednio zindeksowane, co pozwala na szybsze zapytania oraz efektywniejsze przetwarzanie danych.