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: 12 maja 2026 09:59
  • Data zakończenia: 12 maja 2026 10:08

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

W PHP zmienna $_SERVER zawiera między innymi dane o

A. adresie IP serwera oraz nazwie protokołu
B. nazwie ciasteczek zapisanych na serwerze oraz powiązanych z nimi danych
C. informacjach z formularza przetwarzanego na serwerze
D. informacjach związanych z sesjami
W kontekście zmiennej $_SERVER w PHP, nieprawidłowe odpowiedzi skupiają się na danych, które nie są przechowywane w tej superglobalnej zmiennej. Na przykład, informacje o danych formularza przetwarzanego na serwerze są dostępne w tablicy $_POST lub $_GET, a nie w $_SERVER. Zrozumienie różnicy między tymi tablicami jest kluczowe, ponieważ każda z nich ma swoją specyfikę i zastosowanie. $_POST zawiera dane przesyłane metodą POST, co jest najczęściej wykorzystywane w formularzach, natomiast $_GET zachowuje dane z parametrów URL. Kolejnym nieporozumieniem jest zrozumienie, że dane dotyczące sesji są zarządzane przez zmienną $_SESSION, która jest odrębna od $_SERVER i służy do przechowywania informacji o sesji użytkownika na serwerze. Zmienne ciastka, takie jak $_COOKIE, są również niezależne i nie mają związku z $_SERVER. Warto zauważyć, że niepoprawne odpowiedzi mogą wynikać z mylnego założenia, że $_SERVER gromadzi wszystkie dane związane z interakcją użytkownika z aplikacją webową. W rzeczywistości, każda z tych tablic ma swoje konkretne zastosowanie i zakres, co jest kluczowe dla prawidłowego przetwarzania żądań w PHP oraz efektywnego zarządzania danymi w aplikacjach internetowych.

Pytanie 2

Wartości, które może przyjąć zmienna typu double, to:

A. 2.4; 4; 3.2
B. 1979-12-05; 12:33
C. 1,44; 2,55
D. "Ala"; 'd'
Wszystkie przedstawione w pytaniu odpowiedzi, które nie dotyczą typowych wartości zmiennych typu double, zawierają błędne koncepcje. Przykłady 1979-12-05 i 12:33 są reprezentacjami daty oraz czasu, które w większości języków programowania są traktowane jako różne typy danych (np. Date, Time) i nie są odpowiednie dla zmiennych typu double. Problem pojawia się, gdy mylimy reprezentację danych z ich rzeczywistym typem. Z kolei odpowiedzi "Ala" oraz 'd' to ciągi znaków, które w ogóle nie mogą być przypisane do zmiennej typu double, ponieważ ten typ przeznaczony jest wyłącznie dla wartości numerycznych. Dodatkowo typowe błędy myślowe związane z tymi odpowiedziami mogą wynikać z braku zrozumienia, jakie wartości mogą być przechowywane w zmiennych o różnych typach. Warto podkreślić znaczenie zrozumienia podstawowych typów danych, co jest kluczowe dla programowania. Znajomość typów danych oraz ich zastosowań w kontekście kodowania przyczynia się do tworzenia bardziej efektywnego i czytelnego kodu, co jest zgodne z najlepszymi praktykami w inżynierii oprogramowania.

Pytanie 3

Przyjmując, że użytkownik Adam nie miał dotychczas żadnych uprawnień, polecenie SQL przyzna mu prawa jedynie do

GRANT CREATE, ALTER ON sklep.* TO adam;
A. tworzenia oraz modyfikowania struktury w tabeli sklep
B. dodawania i modyfikacji danych w tabeli sklep
C. dodawania i modyfikacji danych we wszystkich tabelach bazy sklep
D. tworzenia i zmiany struktury wszystkich tabel w bazie sklep
Ta odpowiedź nie jest właściwa, bo dotyczy wstawiania i zmieniania danych w tabeli 'sklep', a tak naprawdę polecenie SQL daje tylko uprawnienia do zmiany struktury tabel, nie do danych w środku. Do wstawiania danych potrzebne jest użycie komendy 'INSERT', której tutaj w ogóle nie ma. Jak ktoś ma tylko prawa do tworzenia i zmiany struktury tabel, to nie może dodać ani zmienić danych, a to jest kluczowe do operacji na danych. I jeszcze jedno – odpowiedzi, które mówią o ograniczeniu do jednej tabeli, też są błędne, bo 'sklep.*' dotyczy wszystkich tabel w bazie. Ważne, żeby rozróżniać te uprawnienia, bo często ludzie mylą uprawnienia do zarządzania strukturą tabel z możliwościami operacji na danych. To zrozumienie różnic jest kluczowe dla bezpiecznego zarządzania bazami danych i trzymania się zasady minimalnych uprawnień, co jest naprawdę dobrą praktyką w świecie bezpieczeństwa informatycznego.

Pytanie 4

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

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

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

Pytanie 5

W języku PHP, po wykonaniu poniższego fragmentu kodu, w zmiennej o nazwie Nowy_Napis zostanie zapisany:

$Napis = "ZaWszE SpRaWdZ swoj KoD";
$Nowy_Napis = strtolower($Napis);
A. ZAWSZE SPRAWDZ SWOJ KOD
B. zAwSZe sPrAwDz SWOJ kOd
C. ZaWszE
D. zawsze sprawdz swoj kod
Odpowiedź 'zawsze sprawdz swoj kod' jest poprawna, ponieważ funkcja strtolower() w PHP konwertuje wszystkie znaki w łańcuchu na małe litery. W przypadku podanego kodu, zmienna $Napis zawiera tekst 'ZaWszE SpRaWdZ swoj KoD', który po zastosowaniu funkcji strtolower() przekształca się na 'zawsze sprawdz swoj kod'. Praktyczne zastosowanie tej funkcji jest bardzo istotne w kontekście normalizacji danych wejściowych, szczególnie w aplikacjach internetowych, gdzie wielkość liter może wpływać na sposób przechowywania, wyszukiwania lub porównywania tekstów. Warto również podkreślić, że w przypadku korzystania z baz danych, stosowanie jednolitej konwencji zapisu (np. zawsze małe litery) może zminimalizować ryzyko błędów i niejednoznaczności. Dobrymi praktykami jest także walidacja danych użytkowników oraz przygotowywanie ich do dalszego przetwarzania, co sprzyja lepszej organizacji kodu i efektywności aplikacji.

Pytanie 6

Na ilustracji przedstawiono rezultat stosowania stylów CSS oraz odpowiadający mu kod HTML, który generuje ten przykład. Przyjmując, że marginesy wewnętrzne mają wartość 50 px, natomiast zewnętrzne wynoszą 20 px, styl CSS dla tego obrazu wygląda następująco

Ilustracja do pytania
A. Odpowiedź B
B. Odpowiedź C
C. Odpowiedź A
D. Odpowiedź D
Odpowiedź C jest poprawna, ponieważ zdefiniowany styl CSS zawiera wszystkie elementy odpowiadające przedstawionemu formatowaniu obrazu. Styl ten określa kolor tła jako Teal, co jest zgodne z opisem wizualnym obrazu. Dodatkowo zastosowanie solidnej czarnej ramki o grubości 4 pikseli odpowiada profesjonalnym standardom, które zapewniają wyraźne oddzielenie obrazu od reszty treści przez wyróżnienie go. Zastosowanie marginesów zewnętrznych o wartości 20 pikseli oraz wewnętrznych paddingów o wartości 50 pikseli jest zgodne z podanym założeniem, co pozwala na właściwe umiejscowienie obrazu na stronie, dając przestrzeń wokół i wewnątrz elementu. Dbałość o takie szczegóły jest kluczowa dla tworzenia responsywnych i estetycznych stron internetowych. Praktyczne stosowanie tego typu stylizacji umożliwia poprawienie czytelności oraz przyciąga uwagę użytkowników na znaczące elementy strony. Warto przy tym pamiętać o zasadzie KISS (Keep It Simple, Stupid), która zachęca do utrzymywania prostoty w projektach, co nie tylko ułatwia ich tworzenie ale też późniejsze utrzymanie.

Pytanie 7

Formularz przesyła informacje do pliku skrypt.php po naciśnięciu przycisku oznaczonego jako "WYŚLIJ". Wskaż właściwą definicję formularza.

Ilustracja do pytania
A. Skrypt 1
B. Skrypt 4
C. Skrypt 3
D. Skrypt 2
W formularzu HTML do wysłania danych do określonego skryptu należy użyć atrybutu action w znaczniku form co określa adres URL do którego zostaną przesłane dane. Ponadto kluczowy jest atrybut type elementu input który powinien być ustawiony na submit aby umożliwić wysłanie danych po naciśnięciu przycisku. Skrypt 4 jest poprawny ponieważ zawiera zarówno poprawną definicję action="skrypt.php" jak i właściwe określenie typu przycisku jako submit. Taka konstrukcja jest zgodna ze standardami HTML5 i jest powszechnie stosowana w tworzeniu interaktywnych formularzy internetowych. Poprawne wysyłanie formularzy jest kluczowe w wielu aplikacjach webowych szczególnie w kontekście przesyłania danych użytkownika do serwera gdzie mogą być one przetwarzane lub przechowywane. Przy projektowaniu formularza ważne jest również uwzględnienie bezpieczeństwa danych używając metod takich jak POST zamiast GET co zapobiega wyciekom danych w adresie URL. Dobre praktyki obejmują także walidację po stronie klienta oraz serwera aby upewnić się że przesyłane informacje spełniają wymagane kryteria co minimalizuje ryzyko błędów i potencjalnych ataków."

Pytanie 8

W języku JavaScript, funkcja Math.pow() wykorzystuje się do obliczenia

A. pierwiastka kwadratowego liczby
B. wartości przybliżonej liczby
C. wartości bezwzględnej liczby
D. potęgi liczby
Wybierając odpowiedzi, które nie są zgodne z funkcją Math.pow(), można popełnić pewne typowe błędy myślowe. Odpowiedź dotycząca wartości bezwzględnej liczby nie ma związku z działania funkcji Math.pow(). Funkcja ta nie jest zaprojektowana do obliczania wartości bezwzględnej, co jest zadaniem funkcji Math.abs(). Wartość bezwzględna to odległość liczby od zera na osi liczbowej, a obliczenia potęgowania nie mają tutaj zastosowania. Z kolei pierwiastek kwadratowy liczy się zupełnie inaczej. Aby obliczyć pierwiastek kwadratowy z liczby, należy użyć funkcji Math.sqrt(), która zwraca liczbę, która podniesiona do kwadratu daje oryginalną liczbę. Zastosowanie Math.pow() do wyznaczenia pierwiastka kwadratowego, na przykład Math.pow(9, 0.5), daje prawidłowy wynik, ale jest mniej klarowne i mniej wydajne niż użycie dedykowanej funkcji. Ostatnia opcja, dotycząca wartości przybliżonej liczby, również jest błędna, ponieważ Math.pow() nie służy do przybliżania wartości, a jedynie do podnoszenia jej do odpowiedniej potęgi. Ważne jest, aby zrozumieć, jakie funkcje są dostępne w JavaScript i jak mają być stosowane w odpowiednich kontekstach, aby uniknąć nieporozumień oraz poprawić czytelność i efektywność kodu w projektach programistycznych.

Pytanie 9

W kodzie źródłowym zapisanym w języku HTML wskaż błąd walidacji dotyczący tego fragmentu. <h6>CSS</h6>
<p>Kaskadowe arkusze stylów <b>ang.<i>Cascading Style Sheets</b></i>)<br>to język służący...</p>

A. Znacznik h6 jest nieznany.
B. Znak br nie może być użyty wewnątrz znacznika p.
C. Znak zamykający /b jest niezgodny z zasadą zagnieżdżania.
D. Znak br nie został prawidłowo zamknięty.
Wszystkie trzy niepoprawne odpowiedzi zawierają błędne interpretacje kwestii walidacji kodu HTML w analizowanym fragmencie. Odpowiedź dotycząca nieznanego znacznika h6 jest błędna, ponieważ znacznik <h6> jest w pełni akceptowany w HTML jako znacznik nagłówka o najmniejszym znaczeniu. Zgodnie z specyfikacją HTML5, tego rodzaju znaczniki są używane do strukturyzacji treści, a ich użycie jest zalecane dla zachowania hierarchii informacji. Kolejna niepoprawna odpowiedź, dotycząca niedomkniętego znacznika <br>, jest również myląca, ponieważ znacznik <br> jest znakiem nowej linii i nie wymaga zamknięcia, co jest zgodne z zasadami HTML. Jego użycie wewnątrz znacznika <p> jest również dozwolone, chociaż nadmierne użycie <br> do łamania wierszy w paragrafach nie jest zalecane z perspektywy semantycznej i dostępności. Wreszcie, stwierdzenie, że znacznik <br> nie może występować wewnątrz znacznika <p>, jest mylne; znacznik <br> jest specjalnie zaprojektowany do użycia w kontekście tekstu i jego umiejscowienie w paragrafach jest jak najbardziej prawidłowe. W związku z tym wszystkie te odpowiedzi nie są zgodne z aktualnymi standardami HTML.

Pytanie 10

Na tabeli Pracownicy, której wiersze są przedstawione na załączonym obrazie, została zrealizowana podana kwerenda SELECT. Jakie dane zostaną zwrócone?

SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;
idimienazwiskostanowisko
1AnnaKowalska1
2MonikaNowak2
3EwelinaNowakowska2
4AnnaPrzybylska3
5MariaKowal3
6EwaNowacka4
A. Wyłącznie Maria
B. Anna, Maria, Ewa
C. Monika, Ewelina, Maria
D. Wyłącznie Anna
Kwerenda SQL SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2 ma na celu wybranie imion pracowników, którzy spełniają przynajmniej jeden z dwóch warunków. Pierwszy warunek to nazwisko równe Kowal. Drugi warunek dotyczy stanowiska większego niż 2. W analizowanej tabeli mamy trzy osoby spełniające te kryteria: Maria, która ma nazwisko Kowal oraz Anna i Ewa, które mają stanowiska odpowiednio 3 i 4. Dobrą praktyką w pisaniu zapytań SQL jest jasne formułowanie warunków w klauzuli WHERE, aby zoptymalizować działanie bazy danych i uniknąć niepotrzebnych wyników. Zrozumienie działania operatora OR jest kluczowe, ponieważ umożliwia filtrowanie rekordów według wielu kryteriów. W rzeczywistych scenariuszach biznesowych umiejętność tworzenia takich złożonych zapytań pozwala na efektywne zarządzanie danymi i wyciąganie istotnych informacji, co jest podstawą podejmowania decyzji opartych na danych. Dodatkowo, znajomość struktury tabeli oraz typów danych ułatwia formułowanie zapytań, co jest kluczowe w profesjonalnym używaniu SQL.

Pytanie 11

W pliku CSS znajdują się poniższe style. Kiedy klikniemy na hiperłącze i wrócimy na stronę, jego kolor zmieni się na

a { color: Brown; }
a:link { color: Green; }
a:visited { color: Red; }
a:hover { color: Yellow; }
A. zielony
B. żółty
C. brązowy
D. czerwony
W zrozumieniu działania stylów CSS dla hiperłączy kluczowe jest poznanie zastosowania pseudoklas takich jak a:link a:visited i a:hover. Każda z tych pseudoklas odpowiada za inny stan linku. Pseudoklasa a:link stosuje się do linków które użytkownik jeszcze nie odwiedził dlatego kolor zielony przypisany do tej pseudoklasy oznaczałby nieodwiedzony link co w tym przypadku jest nieprawidłowe. Pseudoklasa a:hover zmienia kolor podczas najechania myszką i tutaj ustalono kolor żółty który jest tylko tymczasowy. Błędne byłoby uznawanie że kolor żółty pozostanie po odwiedzeniu linku ponieważ dotyczy on jedynie stanu przejściowego. Pseudoklasa a:visited która definiuje kolor po odwiedzeniu jest tu kluczowa ponieważ określa właśnie kolor po powrocie na stronę. Zastosowanie odpowiednich stylów pomaga w nawigacji i poprawia dostępność. Typowe błędy związane z rozumieniem pseudoklas wynikają z braku znajomości ich specyfiki działania oraz priorytetu jaki mają w kaskadowym modelu stylów. Dlatego zrozumienie i prawidłowe stosowanie tych zasad jest fundamentalne w projektowaniu intuicyjnych i przyjaznych dla użytkownika stron internetowych co jest zgodne z najlepszymi praktykami branżowymi i standardami WCAG.

Pytanie 12

Jakie funkcje w języku PHP umożliwiają weryfikację wartości oraz typu zmiennej?

A. strlen()
B. readfile()
C. var_dump()
D. implode()
W języku PHP do sprawdzania wartości i typu zmiennej można wykorzystać funkcję var_dump(). Ta funkcja jest niezwykle przydatna w procesie debugowania, ponieważ wyświetla szczegółowe informacje na temat zmiennej, w tym jej typ, wartość oraz, w przypadku tablic i obiektów, również ich strukturę. Przykładowo, jeśli mamy zmienną $a przypisaną do wartości 10, wywołując var_dump($a), otrzymamy wynik: int(10). Oznacza to, że $a jest zmienną typu całkowitego (integer) o wartości 10. Funkcja ta jest szczególnie użyteczna w sytuacjach, gdy potrzebujemy dokładnych informacji o złożonych strukturach danych, takich jak tablice czy obiekty. Warto zauważyć, że var_dump() jest zgodna z typowymi standardami PHP i często stosowana w praktyce przez programistów do szybkiego diagnozowania problemów w kodzie. Dodatkowo, jej użycie jest zalecane podczas pisania testów jednostkowych, gdyż umożliwia weryfikację stanu zmiennych.

Pytanie 13

W wyniku działania pętli zapisanej w języku PHP zostanie wypisany ciąg liczb:

 $liczba = 10;
while ($liczba < 50) {
    echo "$liczba ";
    $liczba = $liczba + 5;
}
A. 0 5 10 15 20 25 30 35 40 45 50
B. 0 5 10 15 20 25 30 35 40 45
C. 10 15 20 25 30 35 40 45
D. 10 15 20 25 30 35 40 45 50
Wybrana odpowiedź nie jest poprawna. Może wynikać to z niepełnego zrozumienia, jak działa pętla while w języku PHP. Pętla while wykonuje kod, dopóki warunek jest prawdziwy. W tym przypadku, rozpoczyna się od wartości zmiennej 10, która jest zwiększana o 5 za każdą iteracją, ale tylko do momentu, kiedy osiągnie wartość mniejszą niż 50. Oznacza to, że ostatnią wydrukowaną liczbą jest 45, ponieważ przy następnej iteracji wartość zmiennej wynosiłaby 50 - wartość nie spełniającą warunku pętli. Błędne odpowiedzi sugerują błędną interpretację, jak to działa - zaburzony początek ciągu (powinien zaczynać się od 10, a nie 0) lub błędną końcówkę (50 nie jest wydrukowane, ponieważ jest to wartość już poza zakresem pętli). Ważne jest, aby dokładnie analizować i rozumieć warunki pętli i jej działanie.

Pytanie 14

var obj1 = {     czescUlamkowa: 10,     czescCalkowita: 20,     oblicz: function) {...} } Kod przedstawiony powyżej jest zapisany w języku JavaScript. W podanej definicji obiektu, metodą jest element o nazwie

A. obj1
B. czescCalkowita
C. oblicz
D. czescUlamkowa
Wiesz co? W definicji obiektu w JavaScript, metoda to po prostu funkcja, która jest przypisana do jakiegoś klucza w obiekcie. Mamy tutaj obiekt obj1, który ma dwie właściwości: czescUlamkowa i czescCalkowita, a do tego jedną metodę, czyli oblicz. Metody to taki ważny temat w programowaniu obiektowym, bo pozwalają manipulować danymi, które są w obiekcie. W naszym przypadku, ta metoda oblicz może robić różne obliczenia, na przykład sumować te nasze właściwości. Można ją zdefiniować tak: obj1.oblicz = function() { return this.czescUlamkowa + this.czescCalkowita; }. Kiedy potem wywołasz obj1.oblicz(), dostaniesz wynik 30. To jest właśnie to, jak metody działają na danych obiektów i czemu są niezastąpione, zwłaszcza w JavaScript czy ECMAScript.

Pytanie 15

Skrypt w JavaScript, który obsługuje wynagrodzenia pracowników, powinien stworzyć raport dla tych, którzy są zatrudnieni na umowę o pracę oraz otrzymują wynagrodzenie w przedziale domkniętym od 4000 do
4500 zł. Jaki warunek należy zastosować do wygenerowania raportu?

A. umowa == 'praca' || (pensja >= 4000 || pensja <= 4500)
B. umowa == 'praca' && (pensja >= 4000 || pensja <= 4500)
C. umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)
D. umowa == 'praca' || (pensja >= 4000 && pensja <= 4500)
Analizując inne odpowiedzi, można zauważyć kilka kluczowych błędów w koncepcjach wykorzystanych w tych formułach. W pierwszej odpowiedzi występuje nieprawidłowe użycie operatora logicznego '||', który w tym kontekście nie jest odpowiedni. Wykorzystanie '||' oznacza, że pensja może być mniejsza lub równa 4000 zł, co prowadzi do sytuacji, w której zostaną uwzględnieni pracownicy, którzy nie spełniają wymogu minimalnej pensji, co jest sprzeczne z założeniem raportu. W drugiej odpowiedzi zastosowanie operatora '||' również powoduje, że warunek dotyczący umowy jest nieistotny, co sprawia, że program może generować raporty dla osób zatrudnionych na innych rodzajach umów. Trzecia odpowiedź wydaje się być bliska, jednak użycie '&&' w odniesieniu do pensji nie jest wystarczające, ponieważ nie definiuje warunku zatrudnienia. Właściwa logika programistyczna wymaga precyzyjnego określenia zarówno rodzaju umowy, jak i zakresu płacy. W praktyce, niepoprawne zrozumienie operatorów logicznych oraz ich zastosowania w warunkach może prowadzić do poważnych błędów w kodzie, co w konsekwencji wpływa na jakość danych raportowych. Warto pamiętać, że przy tworzeniu warunków w oprogramowaniu, kluczowe jest stosowanie odpowiednich operatorów, aby uniknąć błędów w logice oraz zapewnić poprawność wyników.

Pytanie 16

Fragment kodu w języku JavaScript realizujący dodawanie dwóch liczb ma poniższą postać. Aby dodawanie wykonane było po kliknięciu przycisku o nazwie "dodaj", należy w wykropkowane miejsce wstawić

Podaj pierwszą liczbę: <input type="text" name="liczba1" />
Podaj drugą liczbę: <input type="text" name="liczba2" />
….
<script type=text/javascript>
function dodaj()
{
    // ta funkcja realizuje dodawanie i podaje jego wynik
}
</script>
A. <button onclick="return oblicz()">dodaj</button>
B. <button onselect="return dodaj()">oblicz</button>
C. <button onselect="return dodaj()">dodaj</button>
D. <button onclick="return dodaj()">dodaj</button>
Wybór niewłaściwej odpowiedzi sugeruje pewne nieporozumienie związane z obsługą zdarzeń w JavaScript i jak są one wywoływane w kontekście przycisków. Wszystkie pozostałe odpowiedzi używają zdarzenia 'onselect' lub wywołują nieistniejącą funkcję 'oblicz'. Zdarzenie 'onselect' jest wyzwalane, gdy użytkownik zaznacza tekst w elemencie, co jest nieodpowiednie dla przycisku. Innymi słowy, 'onselect' nie jest odpowiednim zdarzeniem do obsługi kliknięcia przycisku. Co więcej, wywołanie funkcji 'oblicz' jest błędem, ponieważ nie istnieje taka funkcja zdefiniowana w skrypcie. Ta myląca odpowiedź może wynikać z niezrozumienia, jak zdarzenia są obsługiwane w JavaScript i jakie zdarzenia są odpowiednie dla różnych elementów. Zasada ta jest zgodna z dobrymi praktykami programowania, które zalecają używanie odpowiednich zdarzeń dla różnych elementów i typów interakcji użytkownika.

Pytanie 17

Jak należy poprawnie udokumentować wzorzec weryfikacji dla pola nazwa w kodzie aplikacji JavaScript?

Ilustracja do pytania
A. /* Pole nazwa powinno składać się w tej kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
B. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
C. /* Pole nazwa musi składać się w tej kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużych liter i dwóch małych liter. */
D. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
Niepoprawne odpowiedzi zakładają niewłaściwą interpretację wymagań dotyczących wzorca walidacji. Pierwsza opcja sugeruje że pole 'nazwa' może składać się z dowolnych cyfr i liter co nie uwzględnia wymogu specyficznej kolejności i liczby znaków co może prowadzić do wprowadzenia nieprawidłowych danych. Taki brak restrykcji mógłby skutkować potencjalnymi lukami w zabezpieczeniach aplikacji. Inna odpowiedź zakłada że po cyfrze musi wystąpić duża litera a następnie ciąg małych liter co nie spełnia wymogu co najmniej dwóch małych liter. Podejście to ignoruje szczegółowe wymagania dotyczące liczby małych liter w końcowej części ciągu. Kolejne błędne założenie mówi o konieczności posiadania dwóch małych liter ale nie wymaga dużej litery co również jest sprzeczne ze wzorcem przedstawionym w zadaniu. Częstym błędem jest nieuwzględnianie pełnej struktury wzorca co powoduje że walidacja jest niekompletna i potencjalnie niewystarczająca do zapewnienia integralności danych. Prawidłowe użycie wyrażeń regularnych wymaga szczegółowego zrozumienia zarówno składni jak i logiki stojącej za walidacją danych aby skutecznie zabezpieczyć aplikację przed nieprawidłowymi wpisami które mogą wpłynąć na jej funkcjonalność i bezpieczeństwo. Zrozumienie zasad poprawnej walidacji jest kluczowym elementem w procesie tworzenia bezpiecznych i niezawodnych aplikacji webowych.

Pytanie 18

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.id = rezyserzy.filmylD ...
C. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.filmylD ...
D. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...
Wybór błędnych opcji opiera się na nieprawidłowym zrozumieniu relacji między tabelami oraz zasad normalizacji danych. W pierwszej z niepoprawnych odpowiedzi użycie 'filmy.rezyserlD = rezyserzy.filmylD' błędnie zakłada, że 'filmylD' jest kluczem w tabeli 'rezyserzy', podczas gdy w rzeczywistości jest to klucz obcy w tabeli 'filmy'. Może to prowadzić do nieporozumień podczas analizy danych. W drugiej odpowiedzi, porównanie 'filmy.id = rezyserzy.filmylD' wprowadza dodatkowy błąd, ponieważ klucz 'id' w tabeli 'filmy' jest niezwiązany z 'filmylD', co skutkuje odwołaniem do niewłaściwych danych. Z kolei trzecia odpowiedź, w której porównuje się 'filmy.id = rezyserzy.id', całkowicie ignoruje relację między tymi tabelami, co prowadzi do niepoprawnych wyników, jako że oba 'id' są kluczami głównymi w swoich tabelach i nie powinny być ze sobą porównywane. Typowe błędy myślowe w tym przypadku wynikają z nieprawidłowego rozumienia działania kluczy obcych oraz sposobu, w jaki tabele są ze sobą powiązane. Kluczowe jest, aby przy projektowaniu bazy danych zrozumieć, jak relacje między tabelami wpływają na struktury zapytań. Aby skutecznie pracować z bazami danych, ważne jest, aby przestrzegać zasad normalizacji oraz stosować odpowiednie klucze w relacjach, co zapewnia integralność danych i poprawność wyników zapytań.

Pytanie 19

W trakcie edycji grafiki rastrowej w aplikacji obsługującej kanały, dodanie kanału alfa oznacza

A. wzmocnienie krawędzi obrazu
B. ustalenie właściwego balansu bieli
C. wprowadzenie warstwy z przezroczystością
D. powiększenie głębi ostrości obrazu
Dodanie kanału alfa do grafiki rastrowej jest kluczowym krokiem w procesie zarządzania przezroczystością w obrazach. Kanał alfa to dodatkowy kanał, który przechowuje informacje o przezroczystości pikseli, co pozwala na tworzenie efektów wizualnych, takich jak miękkie krawędzie i złożone kompozycje. W praktyce, zastosowanie kanału alfa umożliwia na przykład nałożenie obiektów na różne tła bez wyraźnych granic, co jest szczególnie przydatne w grafice komputerowej, projektowaniu stron internetowych czy produkcji wideo. Dobrą praktyką w branży jest korzystanie z programów graficznych, takich jak Adobe Photoshop czy GIMP, gdzie dodanie kanału alfa można zrealizować poprzez stworzenie warstwy maski. Podczas pracy w takich programach warto również pamiętać o wykorzystaniu formatu PNG, który obsługuje przezroczystość, co jest standardem w zapewnieniu wysokiej jakości grafiki w sieci.

Pytanie 20

W języku JavaScript funkcja document.getElementById(id) służy do

A. pobierania danych z pola formularza i przypisania ich do zmiennej id
B. umieszczenia tekstu 'id' na stronie WWW
C. sprawdzania poprawności formularza z identyfikatorem id
D. uzyskania odniesienia do pierwszego elementu HTML o wskazanym id
Zrozumienie funkcji document.getElementById(id) jest fundamentalne dla efektywnej pracy z DOM w JavaScript. Wiele błędnych odpowiedzi na to pytanie wynika z nieporozumień dotyczących podstawowych zasad działania tej metody. Propozycja, że metoda ta sprawdza poprawność formularza o identyfikatorze id, jest nieprawidłowa, ponieważ jej głównym celem nie jest walidacja danych, lecz lokalizacja elementu w dokumencie. Walidacja formularza zwykle realizowana jest za pomocą innych metod, takich jak event listeners, które reagują na interakcje użytkownika. Twierdzenie, że document.getElementById() pobiera dane z pola formularza i wstawia je do zmiennej id, jest także mylące, ponieważ id to atrybut, który wskazuje na element, a nie zmienną do przechowywania wartości. W rzeczywistości, jeśli chcielibyśmy uzyskać wartość pola formularza, musielibyśmy najpierw uzyskać odniesienie do tego elementu, a następnie odczytać jego wartość za pomocą np. element.value. Ostatnia nieprawidłowa koncepcja, czyli wstawienie tekstu o treści 'id' na stronie WWW, również jest błędna, gdyż metoda ta nie wstawia tekstu, a jedynie zwraca odniesienie do elementu. Wskazuje to na powszechne błędy myślowe, gdzie użytkownicy mylą funkcję szukania elementu z funkcjami manipulacji jego zawartością. Zrozumienie tych różnic jest kluczowe w nauce programowania w JavaScript.

Pytanie 21

W skrypcie JavaScript deklaracja zmiennych ma miejsce

A. tylko gdy określimy typ zmiennej oraz jej nazwę
B. zawsze z poprzedzającym nazwą znakiem $
C. wyłącznie na początku skryptu
D. w chwili pierwszego użycia zmiennej
W języku JavaScript zmienne mogą być deklarowane w momencie ich pierwszego użycia, co oznacza, że nie muszą być z góry zadeklarowane przed ich użyciem. To podejście ułatwia rozwój aplikacji, ponieważ programista może dynamicznie wprowadzać zmienne w trakcie pisania kodu. Przykładem może być sytuacja, gdy podczas wykonywania funkcji chcemy stworzyć zmienną w oparciu o dane wejściowe użytkownika. W takiej sytuacji możemy od razu przypisać wartość do zmiennej bez wcześniejszej deklaracji. Na przykład: "let x = 10;" można zamienić na "let x; x = 10;". Dodatkowo, JavaScript wspiera hoisting, co oznacza, że deklaracje zmiennych są „podnoszone” na początek ich zakresu, co może prowadzić do sytuacji, w której zmienna jest używana przed jej deklaracją. Zrozumienie tych mechanizmów jest kluczowe dla efektywnego programowania w JavaScript oraz unikania typowych pułapek, takich jak niezamierzona referencja do niezdefiniowanej zmiennej. Praktyczne zastosowanie tej wiedzy pozwala tworzyć bardziej elastyczne i dynamiczne skrypty, co jest zgodne z nowoczesnymi standardami programowania.

Pytanie 22

Którą technologię poleca się przy tworzeniu serwisów WWW, tak aby zmiany w treści można było wykonywać bez potrzeby ich kodowania, przez użytkowników bez kompetencji programistycznych?

A. FTP
B. SSL
C. SEO
D. CMS
W tym pytaniu łatwo dać się złapać na skojarzenia z innymi pojęciami webowymi, które brzmią „poważnie technicznie”, ale w ogóle nie rozwiązują wskazanego problemu. Kluczowe jest zrozumienie, że chodzi o możliwość samodzielnej edycji treści przez osoby bez kompetencji programistycznych. To oznacza, że potrzebny jest panel administracyjny, edytor WYSIWYG, system uprawnień i mechanizmy zapisu treści w bazie danych. Tę rolę pełnią właśnie systemy CMS. SEO, czyli Search Engine Optimization, dotyczy pozycjonowania strony w wyszukiwarkach. Owszem, dobre SEO jest ważne, a część narzędzi SEO bywa zintegrowana z CMS-em, ale samo SEO nie jest technologią do zarządzania treścią. To zestaw praktyk i technik: dobór słów kluczowych, optymalizacja tytułów, opisów, struktury nagłówków, linkowania wewnętrznego. Ktoś mógł pomyśleć, że skoro SEO „usprawnia stronę”, to też pomaga ją łatwiej edytować. W rzeczywistości SEO nic nie mówi o tym, kto i jak technicznie zmienia treść. FTP to protokół służący do przesyłania plików na serwer. Używa go się często podczas wdrażania strony: programista wysyła pliki HTML, CSS, PHP, grafiki. Ale dla zwykłego redaktora FTP jest kompletnie niepraktyczny i niebezpieczny. Trzeba znać strukturę katalogów, uważać, żeby nie nadpisać plików, a każda zmiana treści wymaga edycji pliku źródłowego. To dokładne przeciwieństwo idei „edycji bez kodowania”. Typowym błędem myślowym jest przekonanie, że skoro przez FTP „wrzuca się stronę”, to jest to technologia do jej obsługi przez użytkownika. W profesjonalnych wdrożeniach FTP zwykle jest dostępny tylko dla administratorów. SSL z kolei to technologia kryptograficzna, która służy do szyfrowania połączenia między przeglądarką a serwerem (dziś w praktyce mówimy częściej o TLS, ale skrót SSL ciągle funkcjonuje potocznie). Certyfikat SSL zapewnia poufność i integralność danych, co jest standardem przy logowaniu, płatnościach czy formularzach. Jednak nie ma żadnego wpływu na to, czy redaktor potrafi zmienić treść bez znajomości HTML. Można mieć idealnie skonfigurowany SSL i dalej edytować stronę w notatniku, a można mieć rozbudowany CMS bez certyfikatu – jedno nie wynika z drugiego. Podsumowując, SEO, FTP i SSL to ważne elementy ekosystemu webowego, ale dotyczą odpowiednio: widoczności w wyszukiwarkach, transferu plików i bezpieczeństwa transmisji. Żadne z nich nie daje typowego, przyjaznego panelu zarządzania treścią dla nietechnicznych użytkowników. Tę rolę spełniają systemy CMS, które są wręcz standardem branżowym przy tworzeniu serwisów, gdzie treść ma być często aktualizowana przez osoby spoza działu IT.

Pytanie 23

Z tabel Klienci oraz Uslugi należy wyodrębnić tylko imiona klientów oraz odpowiadające im nazwy usług, które kosztują więcej niż 10 zł. Kwerenda uzyskująca te informacje ma formę

Ilustracja do pytania
A. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena > 10
B. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id
C. SELECT imie, nazwa FROM klienci, uslugi WHERE cena < 10
D. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = klienci.id
Pozostałe odpowiedzi zawierają istotne błędy w składni SQL oraz w interpretacji relacji między tabelami w bazie danych. Odpowiedź używająca WHERE cena < 10 jest błędna, ponieważ warunek ten wybiera usługi tańsze niż 10 zł, co jest sprzeczne z wymogami zadania. Innym błędem jest użycie niepoprawnego połączenia ON bez odpowiedniego dopasowania kluczy. Użycie klauzuli JOIN bez precyzyjnego określenia relacji, jak w przypadku ON uslugi.id = klienci.id, nie odzwierciedla rzeczywistego związku danych, co prowadzi do błędów logicznych w wynikach. Prawidłowe korzystanie z JOIN wymaga zrozumienia struktury bazy danych oraz relacji między tabelami. Właściwe połączanie tabel z wykorzystaniem klucza obcego jest kluczową praktyką, która zapewnia integralność danych i optymalizację zapytań. Ponadto, brak zastosowania warunków filtracyjnych lub nieodpowiednie ich użycie prowadzi do zwracania niekompletnych lub niepoprawnych danych. Wiedza o strukturze bazy danych oraz umiejętność stosowania poprawnych zapytań SQL są niezbędne dla osób zajmujących się projektowaniem i zarządzaniem bazami danych. Praktyczne doświadczenie w stosowaniu tych umiejętności jest kluczowe dla zapewnienia skuteczności oraz wydajności operacji w bazach danych. Poprawne zapytania są podstawą każdej operacji bazodanowej, zarówno w kontekście codziennych operacji, jak i skomplikowanych analiz danych.

Pytanie 24

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", konieczne jest zastosowanie funkcji w PHP

A. strtolower('ala ma psa')
B. ucfirst('ala ma psa')
C. strstr('ala ma psa')
D. strtoupper('ala ma psa')
Funkcja strtoupper() w PHP jest naprawdę przydatna do zamiany wszystkich liter w danym ciągu znaków na wielkie litery. Na przykład, kiedy mamy tekst 'ala ma psa' i użyjemy strtoupper('ala ma psa'), to dostaniemy 'ALA MA PSA'. To bardzo fajny trik, zwłaszcza gdy musimy ujednolicić format tekstu, na przykład jak ktoś wprowadza dane w różny sposób. Moim zdaniem, to jest ważne, bo różnice w wielkości liter mogą zepsuć nasze porównania. Weźmy pod uwagę sytuację, gdy użytkownik wpisuje różne rzeczy i chcemy, żeby wszystko było w jednym formacie przed dalszym przetwarzaniem, np. w bazach danych. To dobra funkcja, bo działa z różnymi zestawami znaków, więc jest świetnym narzędziem w PHP, nie tylko w aplikacjach webowych, ale też przy przetwarzaniu tekstów.

Pytanie 25

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

<?php
  echo date'l, dS F Y');
?>
A. Poniedziałek, 10 lipca 2017
B. 10, poniedziałek lipca 2017
C. Poniedziałek, 10th lipca 2017
D. Poniedziałek, 10th lipca 17
Przy analizie podanego kodu PHP, kluczowym elementem jest sposób, w jaki funkcja date() interpretuje format daty. W kodzie występuje błąd składniowy, ponieważ użycie funkcji date() powinno być w postaci date('format'). Zakładając, że błąd zostanie naprawiony na date('I, dS F Y'), funkcja ta zwraca datę w określonym formacie. 'I' oznacza pełną nazwę dnia tygodnia, 'dS' to dzień miesiąca z odpowiednim suffix, 'F' to pełna nazwa miesiąca, a 'Y' to rok w formacie czterocyfrowym. Przykładowe wyjście dla daty 10 lipca 2017 roku będzie wyglądać tak: 'Monday, 10th July 2017'. Użycie 'dS' generuje dodatek 'th' dla dni 10, 11 i 12 oraz 'st', 'nd', 'rd' dla innych dni, co jest zgodne z konwencją zapisu dat w języku angielskim. Warto podkreślić, że PHP korzysta z własnej biblioteki do zarządzania datami i czasem, co zapewnia dużą elastyczność w formatowaniu dat. Przykłady zastosowania tej funkcji można znaleźć w dokumentacji PHP, co czyni ją niezbędnym narzędziem w codziennym programowaniu.

Pytanie 26

Który z poniższych formatów plików graficznych wspiera przejrzystość?

A. PNG
B. BMP
C. JPG
D. NEF
Format PNG (Portable Network Graphics) jest jednym z najpopularniejszych formatów plików graficznych obsługujących przezroczystość. Jego główną zaletą jest możliwość zachowania kanału alfa, który umożliwia tworzenie obrazów z przezroczystymi elementami. PNG wykorzystuje bezstratną kompresję, co oznacza, że jakość obrazu nie ulega pogorszeniu podczas zapisywania i otwierania pliku. Format ten jest szczególnie ceniony w aplikacjach internetowych, ponieważ pozwala na uzyskanie estetycznych efektów, takich jak cienie, przezroczystość i delikatne przejścia kolorów. Warto również zauważyć, że PNG obsługuje głębię kolorów do 48 bitów, co umożliwia uzyskanie bogatych i szczegółowych obrazów. Standard PNG został opracowany w 1996 roku jako alternatywa dla formatu GIF, który był ograniczony do 256 kolorów oraz nie obsługiwał przezroczystości w sposób, który byłby zadowalający dla projektantów. Dzięki swoim właściwościom, PNG jest szeroko stosowany w grafice komputerowej, w tym w tworzeniu logo, ikon oraz w elementach interfejsów użytkownika, a także w fotografii cyfrowej, gdzie zachowanie jakości jest kluczowe.

Pytanie 27

Według którego pola tabeli zostały pogrupowane dane w przedstawionym raporcie?

Ilustracja do pytania
A. nazwa
B. wynik
C. id_uczestnika
D. rok
Poprawnie wskazano, że dane w raporcie zostały pogrupowane według pola „rok”. Widać to po tym, że poszczególne rekordy są zebrane w bloki oznaczone nagłówkami 2009, 2010, 2011, 2012, 2020, a dopiero pod każdym z tych lat pojawiają się konkretne konkursy, id_uczestnika i wynik. To jest właśnie klasyczny przykład grupowania danych w raporcie po jednym z pól tabeli – w tym przypadku po kolumnie roku. W praktyce, czy to w SQL, czy w kreatorach raportów (np. w MS Access, LibreOffice Base, Crystal Reports, narzędziach BI), gdy projektujemy raport, często definiujemy tzw. sekcję grupującą (group header) opartą na wybranym polu. Tutaj takim polem jest rok, więc każda zmiana wartości roku powoduje rozpoczęcie nowej grupy i wyświetlenie nagłówka z tą wartością. To poprawia czytelność i pozwala łatwo analizować dane w podziale na lata. Moim zdaniem warto zapamiętać, że grupowanie po dacie lub roku to jedna z najczęściej stosowanych praktyk raportowych: używa się tego do raportów sprzedaży w latach, statystyk odwiedzin strony WWW, wyników egzaminów itd. W SQL można by to od strony danych poprzedzić np. zapytaniem sortującym: SELECT * FROM konkursy ORDER BY rok, nazwa; a samo faktyczne grupowanie wizualne realizuje już mechanizm raportów. Dobrą praktyką jest też, żeby pole, po którym grupujemy, było najpierw użyte do sortowania – inaczej grupy mogą się „rozsypać” i raport stanie się nieczytelny.

Pytanie 28

Zapisano kod HTML wstawiający grafikę na stronę internetową: ```pejzaż``` Jeżeli rysunek.png nie zostanie odnaleziony, przeglądarka:

A. w miejscu grafiki wypisze tekst "rysunek.png".
B. w miejscu grafiki wypisze tekst "pejzaż".
C. w miejscu grafiki wypisze błąd wyświetlania strony.
D. nie wyświetli strony internetowej.
Niestety, twoja odpowiedź nie jest prawidłowa. Może to wynikać z nieporozumienia co do tego, jak przeglądarki internetowe radzą sobie z brakującymi obrazami. Przeglądarka nie przestanie wyświetlać strony tylko dlatego, że nie może załadować jednego obrazu - zamiast tego wykorzysta atrybut alt elementu <img> w kodzie HTML. Atrybut alt jest tekstem alternatywnym, który jest wyświetlany, jeżeli obraz nie może zostać załadowany. W tym konkretnym przypadku, miał wartość 'pejzaż', więc jest to tekst, który przeglądarka wyświetli. Nie zostanie wyświetlony błąd, ani tekst 'rysunek.png' - przeglądarka nie ma na to wpływu. Zrozumienie tego mechanizmu jest istotne dla tworzenia stron, które są przystępne i estetycznie atrakcyjne nawet wtedy, gdy nie wszystko idzie zgodnie z planem.

Pytanie 29

W przedstawionej na rysunku relacji pole AutorID znajdujące się w tabeli ksiazki jest kluczem

Ilustracja do pytania
A. sztucznym.
B. obcym.
C. podstawowym.
D. kandydującym.
Na tym przykładzie bardzo dobrze widać, jak łatwo pomylić różne rodzaje kluczy w relacyjnej bazie danych. W tabeli ksiazki pole AutorID wygląda jak zwykła kolumna z liczbą, ale jego sens wynika dopiero z relacji z tabelą autorzy. To pole nie identyfikuje jednoznacznie rekordu książki, więc nie może być kluczem podstawowym. Kluczem podstawowym jest tu IDKsiazki, bo to ono służy do unikalnego oznaczania każdego wiersza z książką. Typowy błąd myślowy polega na tym, że skoro AutorID też jest liczbą i też wygląda jak identyfikator, to ktoś uznaje go za klucz podstawowy lub kandydujący. Tymczasem klucz kandydujący to taki, który mógłby być kluczem podstawowym, czyli musi gwarantować unikalność. AutorID tej cechy nie ma – jeden autor może mieć wiele książek, więc ta wartość powtarza się w wielu wierszach. Dlatego nie spełnia warunku unikalności i odpada jako kandydat. Czasem pojawia się też skojarzenie z kluczem sztucznym, bo pola typu ID są często tworzone sztucznie, np. jako auto_increment. Klucz sztuczny to jednak pojęcie opisujące sposób tworzenia identyfikatora w tabeli, a nie jego rolę w relacji między tabelami. Sztuczny (surrogate) może być np. IDKsiazki czy IDAutor – liczba bez znaczenia biznesowego, używana tylko jako identyfikator. AutorID w tabeli ksiazki nie jest nowym sztucznym kluczem, tylko przechowywaniem wartości z innej tabeli. Jego podstawowa funkcja to łączenie tabel, czyli właśnie rola klucza obcego. Z mojego doświadczenia warto zawsze zadać sobie pytanie: „czy to pole jednoznacznie identyfikuje wiersz w tej tabeli, czy tylko wskazuje na wiersz w innej tabeli?”. Jeśli to drugie, to mówimy o kluczu obcym, a nie o kluczu podstawowym, kandydującym czy sztucznym. Taka prosta mentalna checklista bardzo pomaga przy projektowaniu schematów i unikaniu nieporozumień w nazewnictwie i projektowaniu relacji.

Pytanie 30

Aby obraz umieszczony na stronie internetowej mógł automatycznie dostosowywać się do rozmiaru ekranu, na którym jest prezentowana strona, trzeba

A. jeden z jego wymiarów określić w pikselach
B. jego szerokość ustawić w wartościach procentowych
C. nie zmieniać obu jego wymiarów za pomocą stylów CSS
D. oba jego wymiary ustawić w pikselach
Ustawienie szerokości obrazu w wartościach procentowych jest kluczowe dla zapewnienia responsywności strony internetowej. Gdy szerokość obrazu wyrażona jest w procentach, automatycznie dostosowuje się ona do szerokości kontenera, w którym się znajduje. To oznacza, że obraz będzie skalował się do rozmiaru ekranu użytkownika, co jest szczególnie ważne w kontekście urządzeń mobilnych oraz różnych rozdzielczości ekranów. Przykładem może być użycie stylu CSS: `img { width: 100%; height: auto; }`, co pozwala na zachowanie proporcji obrazu, jednocześnie dostosowując jego szerokość do kontenera. Tego rodzaju praktyki są zgodne z zasadami responsywnego projektowania (Responsive Web Design) i są zalecane przez standardy W3C. Dzięki takim rozwiązaniom użytkownik zyskuje lepsze doświadczenie, a strona wygląda estetycznie na różnych urządzeniach. Dobrą praktyką jest również testowanie strony na różnych ekranach, aby upewnić się, że wszystkie obrazy i inne elementy dostosowują się do zmieniających się warunków wyświetlania.

Pytanie 31

Narzędzie zaprezentowane na ilustracji służy do

Ilustracja do pytania
A. walidacji kodu HTML i XHTML
B. walidacji stylów CSS
C. sprawdzania zgodności witryny ze standardem HTML5
D. debugowania strony internetowej
Narzędzie przedstawione na ilustracji to usługa walidacji CSS stworzona przez World Wide Web Consortium (W3C). Jego głównym celem jest sprawdzanie poprawności arkuszy stylów CSS pod kątem zgodności z obowiązującymi standardami. Walidacja CSS pozwala na identyfikację błędów składniowych oraz niepoprawnych wartości, co jest kluczowe dla zapewnienia spójności wyglądu strony w różnych przeglądarkach. Korzystanie z walidatora CSS jest częścią dobrych praktyk w procesie tworzenia stron internetowych, ponieważ poprawny kod CSS zwiększa dostępność i użyteczność serwisów. Praktycznym przykładem użycia tego narzędzia jest proces optymalizacji strony internetowej, gdzie walidator pomaga w eliminacji błędów, które mogą prowadzić do nieprzewidywalnego zachowania witryny. Dzięki walidacji możemy również upewnić się, że nasze arkusze stylów są zgodne z najnowszymi standardami, co jest istotne dla przyszłej kompatybilności serwisu.

Pytanie 32

W kodzie HTML kolor biały można reprezentować przy użyciu wartości

A. rgb(255, 255, 255)
B. rgb (FF, FF, FF)
C. #255255
D. #000000
Odpowiedź rgb(255, 255, 255) jest prawidłowa, ponieważ jest to standardowy sposób definiowania koloru białego w modelu RGB w kodzie HTML i CSS. Wartości RGB oznaczają Red, Green, Blue, a każdy składnik koloru (czerwony, zielony, niebieski) jest reprezentowany przez liczbę w zakresie od 0 do 255. W przypadku koloru białego wszystkie składniki są maksymalne, co przekłada się na pełne naświetlenie wszystkich trzech kolorów. W praktyce, użycie funkcji rgb() jest preferowane w sytuacjach, gdy chcemy dynamicznie modyfikować kolory za pomocą skryptów lub w CSS, co pozwala na lepszą kontrolę nad efektami wizualnymi. Na przykład, możemy łatwo zmieniać przezroczystość koloru, zmieniając wartości przez dodanie czwartego parametru, co jest zgodne z nowoczesnymi standardami CSS. Używanie wartości RGB jest również zgodne z zasadami dostępności oraz ułatwia pracę osobom z daltonizmem, ponieważ pozwala na łatwiejsze zrozumienie i manipulację kolorami.

Pytanie 33

Do grupowania elementów w blok, można użyć znacznika

A. <span>
B. <div>
C. <param>
D. <p>
Poprawnie wskazany znacznik to <div>, bo właśnie on w HTML służy do ogólnego grupowania elementów w blok. <div> jest elementem blokowym (block-level), co oznacza, że domyślnie zajmuje całą dostępną szerokość i zaczyna się od nowej linii. Z punktu widzenia przeglądarki i CSS jest to taki „kontener”, do którego wrzucasz inne elementy, żeby sensownie ułożyć strukturę strony. Bardzo często używa się <div> do tworzenia sekcji layoutu: nagłówka strony, głównej zawartości, bocznego panelu, stopki. Przykładowo: <div class="container"> ... </div> pozwala Ci potem w CSS ostylować całą tę grupę jednym zestawem reguł, np. ustawić szerokość, marginesy, tło czy ramkę. W nowocześniejszych projektach <div> często łączy się z flexboxem albo gridem, np. <div class="grid"> jako główny kontener siatki. Z mojego doświadczenia <div> jest jednym z najczęściej używanych znaczników, ale warto pamiętać o semantyce: tam gdzie to możliwe, lepiej użyć <header>, <main>, <section>, <article>, <footer>. One też są blokowe, ale niosą dodatkowe znaczenie dla czytników ekranu i SEO. Gdy jednak potrzebujesz po prostu neutralnego kontenera blokowego, bez konkretnej semantyki, <div> jest dokładnie tym, czego szukasz i jest to zgodne z dobrymi praktykami opisanymi w specyfikacji HTML Living Standard.

Pytanie 34

Wskaż prawidłową definicję funkcji w języku JavaScript?

A. new nazwa_funkcji(argumenty) {instrukcje;}
B. function nazwa_funkcji(argumenty) {instrukcje;}
C. nazwa_funkcji(argumenty) {instrukcje;}
D. typ_funkcji nazwa_funkcji(argumenty) {instrukcje;}
Definicja funkcji w języku JavaScript przy użyciu słowa kluczowego 'function' jest standardowym sposobem deklaracji funkcji. Poprawny zapis 'function nazwa_funkcji(argumenty) {instrukcje;}' jasno wskazuje, że tworzona jest nowa funkcja, której nazwa oraz argumenty są zdefiniowane. Przykładowo, można stworzyć funkcję dodającą dwie liczby: 'function dodaj(a, b) { return a + b; }'. Funkcje w JavaScript mogą być wywoływane w dowolnym miejscu w kodzie, co czyni je niezwykle elastycznymi. Dodatkowo, dzięki temu, że JavaScript obsługuje funkcje jako obiekty pierwszej klasy, można je przekazywać jako argumenty do innych funkcji, przypisywać do zmiennych oraz zwracać z innych funkcji. Warto również zauważyć, że w kontekście dobrych praktyk, używanie funkcji z jasnymi nazwami i dobrze zdefiniowanymi argumentami zwiększa czytelność oraz utrzymanie kodu, co jest istotne w pracy zespołowej oraz przy rozwijaniu większych aplikacji.

Pytanie 35

Jak kwerenda SQL przedstawiona w ramce wpłynie na tabelę pracownicy?

ALTER TABLE pracownicy MODIFY plec char(9);
A. Zmieni typ danych kolumny plec na znakowy o zmiennej długości 9
B. Doda kolumnę plec ze znakowym typem danych o stałej długości 9
C. Zmieni typ danych kolumny plec na znakowy o stałej długości 9
D. Doda kolumnę plec ze znakowym typem danych o zmiennej długości 9
Jak widzisz, polecenie SQL ALTER TABLE pracownicy MODIFY plec char(9) zmienia typ kolumny plec na CHAR o stałej długości 9 znaków. To znaczy, że wszystkie wartości w tej kolumnie będą miały dokładnie 9 znaków. Jeśli dana wartość będzie krótsza, to automatycznie dopełni się spacjami. W praktyce to jest przydatne, gdy musimy mieć dane zawsze w tej samej długości, na przykład przy kodach pocztowych czy numerach identyfikacyjnych. Twoja odpowiedź jest poprawna, ponieważ mówi dokładnie o tym, co się dzieje przy użyciu MODIFY, a typ CHAR wskazuje, że mamy do czynienia z danymi o stałej długości. Wiesz, czasami w aplikacjach biznesowych trzeba mieć dane w jednolitej formie, bo to ułatwia ich przetwarzanie i porównywanie. Dlatego tak ważne jest, żeby znać różne typy danych i ich zastosowania podczas projektowania baz danych.

Pytanie 36

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Barwienie.
B. Progowanie.
C. Inwersja.
D. Krzywe.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 37

W instrukcji CREATE TABLE w SQL atrybut wskazujący, która kolumna w tabeli pełni rolę klucza podstawowego, to

A. PRIMARY KEY
B. MAIN KEY
C. UNIQUE
D. IDENTITY FIELD
Odpowiedź 'PRIMARY KEY' jest poprawna, ponieważ w poleceniu CREATE TABLE w SQL, klucz podstawowy jest definiowany właśnie za pomocą tego atrybutu. Klucz podstawowy to unikalny identyfikator dla każdej wiersza w tabeli, co oznacza, że wartość w tej kolumnie musi być unikalna i nie może być pusta. Definiowanie klucza podstawowego jest kluczowe dla zapewnienia integralności danych oraz efektywności operacji na bazie danych, ponieważ umożliwia szybkie wyszukiwanie i sortowanie. Na przykład, jeśli tworzysz tabelę 'Użytkownicy', możesz zdefiniować kolumnę 'UserID' jako klucz podstawowy, co zagwarantuje, że każdy użytkownik ma unikalny identyfikator. Warto również pamiętać, że w praktyce, jeśli nie określisz klucza podstawowego, baza danych nie będzie mogła zapewnić unikalności w tabeli, co może prowadzić do problemów z danymi. Zgodnie z dobrymi praktykami, klucz podstawowy powinien być stabilny oraz niezmienny, co oznacza, że nie powinno się go zmieniać po jego utworzeniu.

Pytanie 38

Które z poniższych stwierdzeń dotyczy skalowania obrazu?

A. Polega na modyfikacji sposobu zapisu obrazu, aby zmienić metodę kompresji
B. Powoduje zmianę wymiarów obrazu bez modyfikacji istotnej zawartości wizualnej
C. Łączy lub odejmuje figury
D. Powoduje wycięcie określonego fragmentu z pierwotnego obrazu w celu uzyskania lepszego widoku
Skalowanie obrazu to proces, który polega na zmianie jego rozmiaru, zachowując przy tym kluczowe elementy wizualne. Istotne jest, aby w trakcie skalowania nie doszło do zniekształcenia ważnych detali czy proporcji obrazu. W praktyce, stosowanie algorytmów interpolacji, takich jak biliniowa czy bikubiczna, pozwala na uzyskanie wysokiej jakości powiększeń lub pomniejszeń obrazów, co jest fundamentem w grafice komputerowej, projektowaniu stron internetowych oraz w fotografii cyfrowej. Dzięki odpowiednim technikom, możemy skalować zdjęcia do różnych rozmiarów bez utraty istotnych informacji, co jest niezwykle ważne w kontekście przygotowywania materiałów do druku lub publikacji online. Dobrze wykonane skalowanie obrazu zapewnia estetyczny wygląd i zgodność z wymogami technicznymi, co jest kluczowe w mediach, marketingu i projektowaniu graficznym.

Pytanie 39

W kolumnie, która pełni funkcję klucza głównego w tabeli, powinny się znajdować

A. ciągłe numery.
B. inny typ niż inne kolumny.
C. wartości unikalne.
D. liczby.
Wybór odpowiedzi, że klucz główny musi mieć ciągłą numerację, jest nie do końca poprawny. To nie spełnia podstawowych zasad w projektowaniu baz danych. Jasne, że ciągła numeracja może pomóc w zapewnieniu unikalności, ale to nie jest absolutnie wymagane. Klucz główny może mieć różne typy danych, na przykład tekstowe identyfikatory, jak kody czy UUID, które nie są numerowane w zwykły sposób, ale są nadal unikalne. Wiele systemów baz danych pozwala na tworzenie kluczy głównych na podstawie naturalnych danych, takich jak adresy e-mail czy numery identyfikacyjne. Inna niepoprawna kwestia to myślenie, że klucz główny zawsze musi być liczbą. Tak, liczby są często używane jako identyfikatory, ale to nie jedyna opcja. Czasem używa się wartości tekstowych albo kombinacji różnych typów danych. To też mylące, że klucz główny powinien mieć inny typ niż inne kolumny. Klucz główny nie musi być innym typem, jego głównym celem jest unikalność, a nie zgodność typów. Rozumienie, co właściwie oznacza klucz główny i jakie ma funkcje, jest kluczowe dla skutecznego projektowania baz danych, żeby uniknąć błędów, które mogą później prowadzić do problemów z danymi.

Pytanie 40

Jaki jest cel zapisu w języku JavaScript?

var napis1 = new napisy();
A. zainicjowanie zmiennej napis1 oraz wywołanie funkcji, której argumentem jest napis1
B. stworzenie obiektu napis1 z klasy napisy
C. założenie nowej klasy napis1
D. wykonanie metody obiektu napisy
Prawidłowa odpowiedź dotyczy utworzenia obiektu napis1 klasy napisy. W języku JavaScript, aby stworzyć nowy obiekt na podstawie istniejącej klasy lub funkcji konstruktora, używamy słowa kluczowego new. Wyrażenie var napis1 = new napisy() inicjalizuje nowy obiekt napis1, który jest instancją klasy napisy. Taki zapis jest kluczowy w programowaniu obiektowym, które pozwala na tworzenie wielu instancji obiektów z podobnymi właściwościami i metodami. Praktyczne zastosowanie tego podejścia jest szerokie od modelowania danych po tworzenie modularnych i łatwych do zarządzania aplikacji. Dobra praktyka nakazuje, aby klasy były dobrze zdefiniowane z jasno określonymi właściwościami i metodami, co ułatwia ich ponowne wykorzystanie i rozszerzanie. W programowaniu funkcjonalnym JavaScript często wykorzystuje się prototypowe dziedziczenie, które pozwala na zmniejszenie liczby powtarzalnych kodów oraz efektywne zarządzanie pamięcią. Warto także pamiętać, że w nowoczesnych wersjach JavaScript stosowane są klasy ES6, które wprowadzają bardziej zrozumiałą składnię dla tworzenia klas i obiektów co poprawia czytelność i strukturę kodu.