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: 15 maja 2026 01:00
  • Data zakończenia: 15 maja 2026 01:21

Egzamin zdany!

Wynik: 35/40 punktów (87,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

Wykonanie zapytania SQL: DELETE FROM mieszkania WHERE status=1; spowoduje usunięcie

A. rekordów, gdzie pole status ma wartość 1, z tabeli mieszkania
B. pola o nazwie status w tabeli mieszkania
C. tabeli mieszkania w bazie danych
D. tabel, w których pole status ma wartość 1, z bazy danych mieszkania
Użycie kwerendy SQL: DELETE FROM mieszkania WHERE status=1; jest poprawne, ponieważ polecenie DELETE ma na celu usunięcie rekordów z określonej tabeli, w tym przypadku z tabeli mieszkania. Klauzula WHERE filtruje te rekordy, które mają wartość pola status równą 1. To podejście jest zgodne z zasadami zarządzania danymi, które sugerują, że operacje usuwania powinny być przeprowadzane z użyciem odpowiednich filtrów, aby zminimalizować ryzyko przypadkowego usunięcia niezamierzonych danych. Na przykład, jeśli w tabeli mieszkania mamy 1000 rekordów, a tylko 150 z nich ma status równy 1, to po wykonaniu tej kwerendy usunięte zostaną dokładnie te 150 rekordów, a pozostałe pozostaną nienaruszone. Dobrą praktyką jest również tworzenie kopii zapasowych danych przed wykonaniem operacji usuwania, aby móc je przywrócić w razie potrzeby. Kwerendy DELETE są niezwykle przydatne w zarządzaniu bazami danych, zwłaszcza w sytuacjach, gdzie wymagana jest aktualizacja danych lub usunięcie nieaktualnych informacji.

Pytanie 2

Do którego akapitu przypisano podaną właściwość stylu CSS?
border-radius: 20%;

Ilustracja do pytania
A. Rys. B
B. Rys. A
C. Rys. D
D. Rys. C
Właściwość CSS border-radius służy do zaokrąglania rogów elementu na stronie internetowej. W przypadku wartości procentowej jak 20% zaokrąglenie jest obliczane w stosunku do wymiarów elementu co pozwala na uzyskanie proporcjonalnego wyglądu niezależnie od rozmiaru ramki. Wybranie odpowiedzi Rys. B jest poprawne ponieważ widoczny jest tam efekt zaokrąglonych rogów co jednoznacznie wskazuje na zastosowanie border-radius. Takie stylizacje są powszechnie używane w projektowaniu nowoczesnych interfejsów użytkownika aby nadać im bardziej miękki i przyjazny wygląd. Dobre praktyki projektowe zalecają umiarkowane stosowanie zaokrągleń aby nie przesadzić z efektami wizualnymi co mogłoby pogorszyć czytelność i funkcjonalność. Warto również pamiętać o aspekcie responsywności – używanie wartości procentowych pozwala na lepsze dostosowanie się do różnych rozdzielczości ekranów co jest kluczowe w nowoczesnym web designie. Dzięki border-radius można także tworzyć zaawansowane efekty graficzne łącząc go z innymi właściwościami CSS jak cienie czy gradienty co pozwala na osiągnięcie atrakcyjnych wizualnie elementów bez potrzeby użycia obrazów.

Pytanie 3

Jaki typ powinien być wykorzystany, aby pole danych mogło przyjmować liczby zmiennoprzecinkowe?

A. VARCHAR
B. FLOAT
C. INT
D. CHAR
Typ danych FLOAT jest idealnym rozwiązaniem do przechowywania liczb rzeczywistych, ponieważ umożliwia reprezentację wartości z przecinkiem dziesiętnym. W przeciwieństwie do typu INT, który obsługuje jedynie liczby całkowite, FLOAT potrafi przechowywać znacznie szerszy zakres wartości, w tym liczby z miejscami po przecinku. Użycie typu FLOAT jest szczególnie korzystne w aplikacjach wymagających precyzyjnych obliczeń, takich jak kalkulatory, systemy finansowe czy analizy danych. Przykładowo, w systemach baz danych SQL, definiując kolumnę jako FLOAT, możemy przechowywać wartości takie jak 3.14, -0.001 lub 2.71828. Standard SQL określa, że FLOAT może posiadać różne precyzje, co pozwala na dostosowanie pamięci do potrzeb konkretnej aplikacji. W praktyce, FLOAT jest wykorzystywany w złożonych obliczeniach inżynieryjnych, gdzie precyzyjne wartości są kluczowe dla wyników obliczeń.

Pytanie 4

Która definicja CSS wskazuje na formatowanie nagłówka h1: tekst z przekreśleniem, z odstępami między słowami wynoszącymi 10 px oraz w kolorze czerwonym?

Ilustracja do pytania
A. B
B. D
C. C
D. A
Odpowiedź A jest w porządku, bo dobrze odpowiada na to, co pytanie wymaga. Deklaracja 'text-decoration: overline;' dodaje linię nad tekstem, a nie pod nim. Właściwie to mega ważne, bo można łatwo pomylić nadkreślenie z podkreśleniem. Plus, 'word-spacing: 10px;' ustawia fajny odstęp między wyrazami, co sprawia, że nagłówki wyglądają lepiej i są bardziej czytelne. A jak ustawiłeś kolor tekstu na 'red', to wszystko jest super zgodne z tym, co miało być w zadaniu. Używanie takich definicji CSS to standard w tworzeniu stron, bo dobrze stylizowane nagłówki pomagają w organizacji treści i poprawiają wrażenia użytkowników. Pamiętaj, że sensowne i dobrze zdefiniowane style CSS to nie tylko wygoda, ale też ułatwiają późniejsze poprawki dla innych programistów.

Pytanie 5

W znaczniku <meta ...> w sekcji <meta ...> na stronie internetowej nie zamieszcza się informacji o

A. autorze
B. automatycznym odświeżaniu
C. kodowaniu
D. typie dokumentu
Wszystkie wymienione odpowiedzi, z wyjątkiem informacji dotyczącej typu dokumentu, są poprawne i mogą być umieszczane w znaczniku <meta>. Informacja o autorze jest istotna, ponieważ pozwala wskazać osobę odpowiedzialną za treść na stronie, co może być ważne w kontekście cytowania i prawa autorskiego. Wyszukiwarki również mogą brać pod uwagę te informacje w kontekście wiarygodności źródła. Z kolei kodowanie jest kluczowe, ponieważ określa, w jaki sposób znaki są interpretowane przez przeglądarkę, co ma fundamentalne znaczenie dla prawidłowego wyświetlania treści, zwłaszcza w przypadku stron wielojęzycznych. Możliwość określenia kodowania w znaczniku <meta charset='UTF-8'> jest powszechnie stosowana, aby zapewnić, że wszystkie znaki są renderowane poprawnie. Automatyczne odświeżanie za pomocą znacznika <meta http-equiv='refresh' content='30'> jest przydatne, gdy strona potrzebuje być często aktualizowana, na przykład w przypadku stron informacyjnych czy serwisów newsowych. Dlatego też, umieszczanie tych informacji w znaczniku <meta> jest zgodne z praktykami webowymi i przyczynia się do poprawy działania strony oraz jej optymalizacji dla użytkowników i wyszukiwarek.

Pytanie 6

W systemie baz danych sklepu znajdują się dwie tabele połączone relacją: produkty oraz oceny. Tabela oceny zawiera dowolną liczbę ocen wystawionych przez klientów dla konkretnego produktu, opisaną poprzez pola: id, ocena (pole numeryczne), produktID (klucz obcy). Aby uzyskać maksymalną ocenę dla produktu o ID wynoszącym 10, należy wykorzystać zapytanie

A. SELECT MAX(ocena) FROM oceny WHERE produktID = 10;
B. MAX SELECT ocena FROM oceny WHERE produktID = 10;
C. SELECT MAX COUNT(ocena) FROM oceny WHERE produktID = 10;
D. COUNT MAX SELECT ocena FROM oceny WHERE produktID = 10;
Odpowiedź 'SELECT MAX(ocena) FROM oceny WHERE produktID = 10;' jest poprawna, ponieważ wykorzystuje funkcję agregującą MAX, która zwraca największą wartość w danej kolumnie. W kontekście tego zapytania, funkcja MAX jest stosowana do kolumny 'ocena' w tabeli 'oceny', a dodatkowy warunek 'WHERE produktID = 10' ogranicza wyniki do tylko tych ocen, które są związane z produktem o ID równym 10. To podejście jest zgodne z najlepszymi praktykami SQL, które zalecają korzystanie z funkcji agregujących dla wydobywania statystyk z danych. W praktyce, takie zapytania są niezwykle ważne w analizie danych, na przykład do oceny jakości produktów, co może wpłynąć na decyzje biznesowe. Dzięki umiejętności konstruowania takich zapytań, analitycy mogą w łatwy sposób uzyskać kluczowe informacje niezbędne do strategii marketingowych oraz poprawy jakości obsługi klienta.

Pytanie 7

Wskaż element, który definiuje pole edycyjne formularza zgodne z ilustracją

Ilustracja do pytania
A. <input type="month" id="hh" name="mm">
B. <input type="time" id="minutes" name="hours">
C. <input type="date" id=" minutes" name="hours">
D. <input type="number" id="mm" name="hh" min="0" max="24">
Prawidłowy wybór to <input type="time" id="minutes" name="hours">, ponieważ dokładnie taki element HTML5 służy do wprowadzania godziny w formacie hh:mm, czyli tak jak na ilustracji. Atrybut type="time" mówi przeglądarce, że pole ma przyjmować tylko wartości czasu, bez daty, miesięcy czy liczb dowolnego typu. Zgodnie ze specyfikacją HTML Living Standard oraz HTML5, przeglądarka powinna wtedy wyświetlić natywne kontrolki do wyboru godziny (np. rozwijane listy, suwak, mały zegarek – zależy od systemu i przeglądarki). Dzięki temu użytkownik ma mniejsze ryzyko pomyłki, a walidacja odbywa się częściowo automatycznie. Z mojego doświadczenia warto korzystać z type="time" zawsze, gdy formularz dotyczy konkretnych godzin, np. godzina rozpoczęcia pracy, rezerwacja wizyty, planowanie spotkania online. Po stronie serwera (np. w PHP) to pole przychodzi jako tekst w formacie „HH:MM”, co jest łatwe do dalszego przetwarzania, parsowania do obiektu DateTime albo zapisu w bazie danych w typie TIME. Dobra praktyka jest też taka, żeby nazwy atrybutów id i name były semantyczne. W tym zadaniu nie ma to wpływu na poprawność odpowiedzi, ale w realnym projekcie lepiej byłoby użyć np. id="endTime" i name="end_time". Ułatwia to później pracę z JavaScriptem i po stronie backendu. Warto też pamiętać o dodaniu atrybutów min i max, jeśli chcemy ograniczyć zakres godzin (np. od 08:00 do 20:00), oraz pattern lub dodatkowej walidacji JS, jeśli mamy specyficzne wymagania. Mimo że ilustracja nie pokazuje tych szczegółów, sam mechanizm type="time" jest tu absolutnie kluczowy i zgodny z dobrymi praktykami front-endowymi.

Pytanie 8

Dana jest tablica n-elementowa o nazwie t[n] Zadaniem algorytmu zapisanego w postaci kroków jest wypisanie sumy

K1: i = 0; wynik = 0;
K2: Dopóki i < n wykonuj K3 .. K4
    K3: wynik ← wynik + t[i]
    K4: i ← i + 2
K5: wypisz wynik
A. n-elementów tablicy.
B. co drugiego elementu tablicy.
C. sumy tych elementów tablicy, których wartości są nieparzyste.
D. sumy wszystkich elementów tablicy.
Super rozebrałeś na czynniki pierwsze ten algorytm! Twoja odpowiedź 'co drugiego elementu tablicy' jest jak najbardziej trafna. W pytaniu chodzi o to, że algorytm sumuje co drugi element tablicy, zaczynając od pierwszego, a ten indeks to 0. Zmienna 'i' służy do poruszania się po tablicy i w każdej iteracji zwiększa się o 2. Dzięki temu pętla przeskakuje co drugi element, a te nieparzyste ignoruje. To naprawdę przydatna technika w programowaniu, bo pozwala na określony dostęp do danych. Takie algorytmy wykorzystuje się np. przy analizie danych z czujników, gdzie ważne są tylko wartości zapisane w regularnych odstępach.

Pytanie 9

W CSS, aby stylizować tekst przy użyciu przekreślenia, podkreślenia dolnego lub górnego, należy użyć atrybutu

A. text-align
B. text-transform
C. text-decoration
D. text-indent
Atrybut text-decoration w CSS jest kluczowy do formatowania tekstu, umożliwiając zastosowanie efektów takich jak przekreślenie, podkreślenie dolne oraz górne. Można go użyć w prosty sposób, na przykład: 'text-decoration: underline;' dodaje podkreślenie do tekstu, natomiast 'text-decoration: line-through;' umożliwia przekreślenie. Dzięki tym efektom, projektanci stron mogą skutecznie komunikować różne stany tekstu, takie jak usunięte lub nieaktualne informacje. Standardy CSS, określone przez W3C, zalecają użycie text-decoration w kontekście dostępności, co poprawia czytelność i umożliwia lepsze zrozumienie treści przez użytkowników. Warto pamiętać, że text-decoration posiada również wartość 'none', co pozwala na usunięcie wszelkich dekoracji z tekstu. Dzięki temu deweloperzy mogą z łatwością dostosować wygląd tekstu zgodnie z wymaganiami projektu, co stanowi dobrą praktykę w responsywnym web designie.

Pytanie 10

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. sumy.
B. części wspólnej.
C. wykluczenia.
D. grupowania.
W tym zadaniu łatwo się pomylić, bo w grafice wektorowej mamy kilka różnych funkcji, które na pierwszy rzut oka wyglądają podobnie: łączą obiekty w coś, co zachowuje się jak jeden element. Jednak ich działanie „pod maską” jest zupełnie inne. Funkcje typu suma, wykluczenie czy część wspólna to klasyczne operacje boolowskie na kształtach. One zmieniają geometrię obiektów, czyli tworzą nową ścieżkę wynikową na podstawie przecięcia lub połączenia istniejących. W praktyce oznacza to, że jeśli zastosujesz sumę na tekście i wielokącie, program najczęściej zamieni tekst na krzywe i połączy wszystko w jedną ścieżkę. Efekt wizualny może być fajny, ale edytowalność tekstu przepada. Nie możesz już po prostu zmienić czcionki czy liter, bo to nie jest tekst, tylko zestaw węzłów. Podobnie z wykluczeniem: ta operacja tworzy „dziurę” jednego obiektu w drugim. Używa się jej np. do wycinania napisu z tła lub tworzenia maski. To jest typowy trik przy projektach logotypów albo efektach dekoracyjnych. Ale z punktu widzenia pytania – to działanie jest destrukcyjne dla tekstu, bo znowu zamienia go na kształt i łączy z wielokątem w sposób nieodwracalny (poza cofnięciem operacji). Część wspólna działa jeszcze ostrzej: zostawia tylko obszar, w którym obiekty się nakładają. Reszta jest tracona. To też jest operacja geometryczna, a nie organizacyjna. Typowy błąd myślowy polega na założeniu, że „skoro po operacji mam jeden obiekt, to znaczy, że to jest to samo co grupowanie”. Niestety nie. Grupowanie nie modyfikuje kształtów, tylko tworzy kontener logiczny – tak jakbyś w folderze trzymał kilka plików. Możesz je potem rozgrupować i wszystko wraca do stanu sprzed grupowania. Operacje suma, wykluczenie, część wspólna są destrukcyjne względem oryginalnych obiektów, bo generują nową ścieżkę zamiast starych. W kontekście dobrych praktyk w grafice komputerowej i multimediach przyjmuje się, że dopóki chcesz zachować pełną edytowalność (szczególnie tekstów), używasz grupowania, warstw i wyrównywania, a dopiero na późnym etapie projektu stosujesz operacje boolowskie, i to świadomie, wiedząc, że cofasz się już tylko historią edycji. Dlatego w pytaniu, gdzie mowa jest wprost o połączeniu tekstu i wielokąta w jeden obiekt w sposób odwracalny, jedyną sensowną odpowiedzią jest funkcja grupowania, a nie suma, wykluczenie czy część wspólna.

Pytanie 11

Na podstawie jakiego parametru oraz z ilu tabel będą zwrócone wiersze w wyniku podanego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis WHERE
producent.nr_id = hurtownia.nr_id AND
producent.wyrob_id = serwis.wyrob_id AND
hurtownia.nr_id = sklep.nr_id AND
sklep.nr_id = serwis.nr_id AND
producent.nr_id = 1;
A. Na podstawie parametru wyrob_id tylko dla trzech tabel
B. Na podstawie parametru nr_id tylko dla trzech tabel
C. Na podstawie parametru nr_id dla wszystkich tabel
D. Na podstawie parametru wyrob_id tylko dla trzech tabel
Analizując błędne odpowiedzi można zauważyć że kluczowym aspektem w tym pytaniu jest zrozumienie zastosowania parametrów w klauzuli WHERE Odpowiedzi sugerujące selekcję według parametru wyrob_id są nieprawidłowe ponieważ w klauzuli WHERE dominującą rolę odgrywa parametr nr_id choć występuje tam także warunek dotyczący wyrob_id to jednak główną funkcją jest połączenie tabel według nr_id Jest to typowy błąd wynikający z nieuwzględnienia hierarchii oraz sposobu połączenia tabel w relacyjnych bazach danych Ponadto niektóre odpowiedzi ograniczają się wyłącznie do trzech tabel co również jest błędne ponieważ zapytanie obejmuje wszystkie cztery wymienione tabele producent hurtownia sklep i serwis Koncentracja na jednej lub dwóch tabelach często bierze się z pominięcia kluczowych związków logicznych między tabelami jak w przypadku odpowiedzi które ograniczają scope do mniejszej liczby tabel niż rzeczywiście obejmuje zapytanie Kluczową umiejętnością jest zrozumienie jak różne parametry mogą wpływać na wybór danych zwłaszcza w kontekście tworzenia złożonych zapytań SQL gdzie przemyślane zastosowanie klauzul jest niezbędne do efektywnego zarządzania danymi i unikania niepoprawnych interpretacji wyników Właściwe zrozumienie jak parametry takie jak nr_id czy wyrob_id funkcjonują w zapytaniach pozwala na ich poprawne i skuteczne zastosowanie co jest kluczowe w profesjonalnym podejściu do pracy z bazami danych

Pytanie 12

Który z parametrów obiektu graficznego zmieni się po dostosowaniu wartości kanału alfa?

A. Kolejność wyświetlania pikseli
B. Nasycenie kolorów
C. Przezroczystość
D. Ostrość krawędzi
Kanał alfa jest kluczowym składnikiem grafiki komputerowej, odpowiadającym za przezroczystość obiektów graficznych. Zmiana wartości kanału alfa wpływa na to, w jaki sposób obiekt jest renderowany na tle innych elementów wizualnych. Przykładowo, gdy wartość kanału alfa wynosi 0, obiekt jest całkowicie przezroczysty i nie wpływa na widoczność tła. Natomiast gdy wartość ta wynosi 1, obiekt jest całkowicie nieprzezroczysty. Wartości pośrednie pozwalają na uzyskanie efektów półprzezroczystości, co jest niezwykle istotne w tworzeniu różnych efektów wizualnych, takich jak cienie czy rozmycia. W standardach takich jak RGBA, kanał alfa jest integralną częścią modelu kolorów, który umożliwia artystom i projektantom precyzyjne manipulowanie przezroczystością w aplikacjach graficznych i środowiskach gier. W praktyce, modyfikacja wartości kanału alfa może być wykorzystana w programach do edycji zdjęć, takich jak Adobe Photoshop, gdzie użytkownicy mogą tworzyć warstwy o różnej przezroczystości, co pozwala na uzyskanie efektów wizualnych wymagających subtelności i detali.

Pytanie 13

W języku PHP zmienna typu float może przyjmować wartości

A. wartości nieliczbowe
B. wartości zmiennoprzecinkowe
C. jedynie liczby całkowite
D. wartości logiczne
W języku PHP zmienne typu float są używane do reprezentowania liczb zmiennoprzecinkowych, co oznacza, że mogą przechowywać zarówno wartości całkowite, jak i wartości z częścią ułamkową. Typ float w PHP jest szczególnie przydatny w sytuacjach, gdzie precyzyjne obliczenia są niezbędne, na przykład w aplikacjach finansowych, gdzie obliczenia z użyciem pieniędzy wymagają uwzględnienia centów. W praktyce, operacje na zmiennych typu float mogą obejmować dodawanie, odejmowanie, mnożenie oraz dzielenie. Warto również zauważyć, że PHP obsługuje zarówno liczby w formacie dziesiętnym, jak i w notacji naukowej. Dobrą praktyką jest używanie funkcji takich jak round() do zaokrąglania wyników obliczeń zmiennoprzecinkowych, aby uniknąć problemów z precyzją, które mogą występować w wyniku ograniczeń reprezentacji liczb zmiennoprzecinkowych w pamięci komputera. W dokumentacji PHP, typ float jest jasno zdefiniowany jako liczba zmiennoprzecinkowa, co podkreśla jego kluczową rolę w różnych zastosowaniach programistycznych. Zrozumienie tego typu zmiennych jest fundamentem dla efektywnego programowania w PHP.

Pytanie 14

Celem testów wydajnościowych jest ocena

A. stopnia, w jakim system lub moduł spełnia wymagania dotyczące wydajności
B. ciągu zdarzeń, w którym prawdopodobieństwo danego zdarzenia zależy tylko od wyniku zdarzenia wcześniejszego
C. zdolności programu do funkcjonowania w sytuacjach, gdy system działa niepoprawnie
D. zdolności programu do funkcjonowania w sytuacjach, gdy sprzęt działa niepoprawnie
Testy wydajnościowe są kluczowym elementem procesu zapewnienia jakości oprogramowania, mającym na celu ocenę zdolności systemu lub modułu do spełnienia określonych wymagań wydajnościowych. Ich głównym celem jest zmierzenie, jak system radzi sobie w warunkach obciążenia, a także w różnych scenariuszach użytkowania. W ramach testów wydajnościowych analizuje się takie parametry jak czas reakcji, przepustowość oraz zasoby zużywane przez aplikację. Praktycznym przykładem może być testowanie aplikacji internetowej w warunkach, gdy korzysta z niej wielu użytkowników jednocześnie, co pozwala ocenić, jak skaluje się system. W kontekście standardów, organizacje często odnoszą się do metodologii takich jak Performance Testing Framework, a także do narzędzi jak JMeter czy LoadRunner, które umożliwiają automatyzację procesu testowania. Testy te pomagają w identyfikacji wąskich gardeł, które mogą wpływać na wydajność, co przekłada się na lepsze doświadczenia użytkowników oraz minimalizację kosztów związanych z utrzymaniem systemu.

Pytanie 15

Jakie polecenie pozwala na dodanie kolumny zadaniekompletne do tabeli zadania?

A. ALTER TABLE zadania ADD COLUMN zadaniekompletne int
B. CREATEINDEX zadania ADD COLUMN zadaniekompletne int
C. ADD COLUMN zadaniekompletne WITH zadania
D. INSERT INTO zadania VALUES zadaniakompletne
Odpowiedź 'ALTER TABLE zadania ADD COLUMN zadaniekompletne int' jest rzeczywiście na miejscu. To polecenie ALTER TABLE to standardowy sposób na zmiany w tabelach w SQL. Dzięki niemu możemy dodawać, usuwać czy zmieniać kolumny, a także wprowadzać różne ograniczenia. W tym przypadku dodajemy nową kolumnę 'zadaniekompletne', która będzie przyjmować wartości całkowite (int). Fajnym przykładem zastosowania tego polecenia może być śledzenie postępu zadań w projekcie. Kolumna 'zadaniekompletne' mogłaby oznaczać, czy zadanie jest skończone (np. 0 dla nieukończonego, 1 dla ukończonego). Zawsze warto pomyśleć o tym, jak takie zmiany mogą wpłynąć na istniejące dane oraz aplikacje korzystające z tej tabeli, żeby nie narazić się na różne problemy z danymi.

Pytanie 16

Który z opisów komentarza odzwierciedla działanie funkcji zdefiniowanej w języku PHP ```function fun1($a, $b) { if($a > $b) return $a; elseif($b > $a) return $b; else return -1; }```?

A. /* Funkcja zwraca niższą wartość spośród dwóch podanych, w przypadku równości zwraca -1 */
B. /* Funkcja zwraca wyższą wartość spośród dwóch podanych, w przypadku równości zwraca -1 */
C. /* Funkcja zwraca niższą wartość spośród dwóch podanych, w przypadku równości zwraca wartość $a */
D. /* Funkcja zwraca wyższą wartość spośród dwóch podanych, w przypadku równości zwraca wartość $a */
Funkcja `fun1` w języku PHP ma na celu porównanie dwóch wartości przekazanych jako argumenty `$a` i `$b`. Zastosowana logika w funkcji jest jasna: jeśli `$a` jest większe od `$b`, funkcja zwraca wartość `$a`; jeśli `$b` jest większe, zwraca wartość `$b`. W przypadku, gdy obie wartości są równe, funkcja zwraca -1, co jasno wskazuje na brak różnicy między tymi wartościami. Takie podejście jest zgodne z dobrymi praktykami programistycznymi, ponieważ funkcje powinny być jednoznaczne i przewidywalne w swoim działaniu. Wykorzystanie zwracania wartości -1 jako wskaźnika równości jest ciekawym rozwiązaniem, które może być przydatne w dalszej logice aplikacji, gdzie różne kody zwrotne mogą reprezentować różne stany. W praktycznych zastosowaniach taka funkcja mogłaby być używana w algorytmach sortujących lub w analizach danych, gdzie potrzeba porównania wartości jest powszechna. Dobrą praktyką jest także dokumentowanie funkcji, aby inni programiści mogli łatwo zrozumieć jej działanie i zastosowanie.

Pytanie 17

Za pomocą zapytania SQL trzeba uzyskać z bazy danych nazwiska pracowników, którzy pełnią funkcję kierownika, a ich wynagrodzenie mieści się w przedziale jednostronnie domkniętym (3000, 4000>. Która klauzula sprawdza ten warunek?

A. WHERE kierownik = true AND pensja => 3000 OR pensja < 4000
B. WHERE kierownik = true AND pensja > 3000 AND pensja <= 4000
C. WHERE kierownik = true AND pensja => 3000 AND pensja <= 4000
D. WHERE kierownik = true OR pensja > 3000 OR pensja <= 4000
Odpowiedź WHERE kierownik = true AND pensja > 3000 AND pensja <= 4000 jest poprawna, ponieważ precyzyjnie definiuje warunki, które muszą być spełnione, aby zwrócić odpowiednich pracowników. Klauzula WHERE jest fundamentalnym elementem zapytań SQL, który pozwala na filtrację wyników na podstawie określonych kryteriów. W tym przypadku, warunek 'kierownik = true' zapewnia, że tylko pracownicy pełniący rolę kierowników zostaną uwzględnieni w wynikach. Dodatkowo, użycie operatorów porównania '>' oraz '<=' dla pensji umożliwia dokładne zdefiniowanie przedziału, w którym pensja musi się mieścić. W praktyce, w kontekście baz danych, taka filtracja pozwala na efektywne zarządzanie danymi oraz generowanie raportów zgodnych z wymaganiami analizy. Stosowanie tego typu warunków w zapytaniach SQL jest zgodne z najlepszymi praktykami, gdyż umożliwia precyzyjne i wydajne wyszukiwanie danych, co jest kluczowe w zarządzaniu informacjami w złożonych systemach bazodanowych.

Pytanie 18

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

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

Pytanie 19

Jaką funkcję pełni program debugger?

A. przekładania kodu napisanego w języku wyższego poziomu na język maszynowy
B. analizy działającego programu w celu wykrycia błędów
C. badania kodu źródłowego w celu wykrycia błędów składniowych
D. interpretacji kodu w ramach wirtualnej maszyny Java
Debugger jest narzędziem, które pozwala na analizowanie i monitorowanie działania programów w trakcie ich wykonywania. Jego głównym celem jest lokalizacja błędów, co jest kluczowe w procesie programowania. Umożliwia on programiście śledzenie wartości zmiennych, monitorowanie stanu aplikacji oraz identyfikowanie momentów, w których występują błędy. Dobre praktyki wskazują, że regularne korzystanie z debuggersów w procesie developmentu przyczynia się do wczesnego wykrywania problemów, co z kolei redukuje koszty i czas potrzebny na naprawę. Na przykład, w przypadku aplikacji webowych, debugger może pomóc w analizie, dlaczego dany fragment kodu nie działa tak, jak oczekiwano, umożliwiając programiście zatrzymanie wykonania w konkretnym punkcie oraz sprawdzenie stanu aplikacji. Współczesne środowiska programistyczne, takie jak Visual Studio czy IntelliJ IDEA, oferują rozbudowane funkcje debugowania, które są nieocenione w codziennej pracy programisty.

Pytanie 20

<source src="plik.mp4" type="video/mp4">
Aby osadzić plik wideo na stronie WWW, przedstawiony kod HTML5 należy umieścić wewnątrz znaczników:
A. <video> </video>
B. <div> </div>
C. <embed> </embed>
D. <section> </section>
Poprawna odpowiedź to umieszczenie znacznika `<source>` wewnątrz `<video>...</video>`. W HTML5 to właśnie element `<video>` jest kontenerem odpowiedzialnym za osadzanie plików wideo na stronie WWW. Atrybuty takie jak `controls`, `autoplay`, `loop`, `muted`, `width` czy `height` przypisujemy właśnie do `<video>`, a nie do `<source>`. Znacznik `<source>` służy głównie do wskazania konkretnego pliku multimedialnego i jego typu MIME, np.: `<video controls width="640" height="360"><source src="film.mp4" type="video/mp4"><source src="film.webm" type="video/webm">Twoja przeglądarka nie obsługuje elementu video.</video>`. Przeglądarka przechodzi po kolei po elementach `<source>` i wybiera pierwszy format, który potrafi odtworzyć. To jest zgodne ze specyfikacją HTML Living Standard (WHATWG) oraz zaleceniami W3C dotyczącymi multimediów w sieci. W praktyce, w projektach komercyjnych, często dodaje się kilka formatów (np. MP4, WebM), właśnie po to, by zapewnić maksymalną kompatybilność między różnymi przeglądarkami i systemami. Moim zdaniem warto od razu wyrabiać sobie nawyk pisania pełnej, semantycznie poprawnej struktury: `<video>` jako główny element odtwarzacza, w środku jeden lub więcej `<source>` i ewentualnie tekst alternatywny. Dzięki temu kod jest czytelny, łatwiej go stylować w CSS, a także lepiej zachowuje się w kontekście dostępności (np. czytniki ekranu widzą, że to element wideo). Dodatkowo, `<video>` można łatwo obsługiwać z poziomu JavaScript, korzystając z jego API (play, pause, currentTime, volume itd.), co w praktyce daje sporą kontrolę nad odtwarzaniem multimediów na stronie.

Pytanie 21

Efekt AutoDuck w obróbce dźwięku jest stosowany do

A. eliminacji szumów pochodzących z dźwięków w tle.
B. ocieplenia głosu i dźwięków pochodzących z tła.
C. wyrównania głośności całej ścieżki dźwiękowej.
D. ściszenia dźwięku w tle, gdy pojawia się dźwięk pierwszoplanowy.
W obróbce dźwięku łatwo pomylić różne efekty, bo większość z nich w jakiś sposób wpływa na głośność lub charakter brzmienia. AutoDuck jednak ma bardzo konkretne zastosowanie: automatyczne ściszanie tła, gdy pojawia się dźwięk pierwszoplanowy, najczęściej głos. To nie jest efekt „upiększający” czy „naprawiający” brzmienie, tylko typowo użytkowy mechanizm sterowania poziomem głośności między dwoma ścieżkami. Częsty błąd myślowy polega na tym, że wszystko, co „robi coś z głośnością”, wrzuca się do jednego worka. Ocieplenie głosu kojarzy się raczej z korekcją barwy (equalizer – podbicie niskich i niższych średnich częstotliwości) albo z delikatną kompresją, ewentualnie z efektami typu saturacja czy emulacja lampowa. AutoDuck niczego nie „ociepla”, on tylko zmniejsza poziom innej ścieżki, reagując na sygnał pierwszoplanowy. Podobnie z wyrównywaniem głośności całej ścieżki – od tego są kompresory, limitery, normalizacja czy tzw. loudness matching zgodny z normami EBU R128 lub ITU-R BS.1770. Te narzędzia analizują lub przetwarzają pojedynczą ścieżkę, żeby jej poziom był bardziej równy w czasie. AutoDuck działa relacyjnie: jedna ścieżka kontroluje głośność drugiej. Jeśli chodzi o eliminację szumów, tym zajmują się zupełnie inne algorytmy: redukcja szumów, bramki szumów (noise gate), filtry dolno- lub górnoprzepustowe, narzędzia typu DeNoise. Szum się tam analizuje i usuwa lub tłumi, najczęściej w oparciu o profil szumu albo próg głośności. AutoDuck nie rozpoznaje szumu ani nie czyści nagrania, tylko mechanicznie ścisza tło, gdy pojawia się ważniejszy sygnał. W produkcji multimediów na strony WWW czy do e-learningu dobrą praktyką jest łączenie kilku technik: najpierw oczyszczenie głosu z szumów i ustawienie jego stałego poziomu kompresją, a dopiero potem zastosowanie duckingu na muzyce w tle. Dzięki temu materiał brzmi profesjonalnie, a słuchacz nie musi walczyć z niedosłyszalnym komentarzem przykrytym za głośną muzyką.

Pytanie 22

W bazie danych znajdują się dwie tabele, które są ze sobą połączone relacją 1..n. Jakiej klauzuli SQL należy użyć, aby uzyskać odpowiadające sobie dane z obu tabel?

A. AND
B. JOIN
C. INNER LINK
D. OUTER LINK
Klauzula JOIN w SQL służy do łączenia tabel w bazie danych, pozwalając na pobranie powiązanych danych z różnych tabel. W przypadku relacji 1..n, przy której jedna tabela (nazwa tabeli `A`) może mieć wiele powiązanych rekordów w drugiej tabeli (nazwa tabeli `B`), klauzula JOIN jest idealna do uzyskania korespondujących wartości z obu tabel. Przykład zastosowania to: SELECT A.*, B.* FROM A JOIN B ON A.id = B.a_id; W powyższym zapytaniu `A.id` to klucz główny tabeli `A`, a `B.a_id` to klucz obcy w tabeli `B`, który odnosi się do `A`. Klauzula JOIN może przyjmować różne formy, takie jak INNER JOIN, LEFT JOIN, RIGHT JOIN, i FULL JOIN, które różnią się sposobem łączenia danych i wynikami. JOIN jest standardem SQL, co oznacza, że jest wspierany przez większość systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL, Oracle, czy Microsoft SQL Server. Użycie klauzuli JOIN jest kluczowe w relacyjnych bazach danych, gdzie dane są rozdzielone w różnych tabelach, ale muszą być analizowane łącznie.

Pytanie 23

Która z komend w języku JavaScript pozwala na zmianę koloru tekstu na niebieski w akapicie określonym w pliku HTML?

A. document.getElementById("jeden").color = "blue";
B. document.getElementById("jeden").style.color = "blue";
C. document.getElementById("jeden").background-color = "blue";
D. document.getElementById("jeden").style.background-color = "blue";
Twoja odpowiedź document.getElementById("jeden").style.color = "blue" jest jak najbardziej trafna. Tu wykorzystujesz metodę document.getElementById, co pozwala na dotarcie do konkretnego elementu HTML, który ma identyfikator "jeden". To akurat odnosi się do tego akapitu <p id="jeden">. Później, używając właściwości style.color, zmieniasz kolor tekstu tego elementu na niebieski. To całkiem standardowy sposób, żeby dynamicznie zmieniać style CSS za pomocą JavaScript. W interaktywnych aplikacjach internetowych tak się często robi, bo zmiany kolorów na stronie są potrzebne, kiedy użytkownik klika w różne rzeczy. Na przykład, w takich aplikacjach zmiany kolorów elementów w odpowiedzi na działania użytkowników są mega ważne. Właściwie, korzystanie z metod DOM (Document Object Model) w taki sposób jest kluczowe dla tworzenia interaktywnych i responsywnych interfejsów, co jest bardzo istotne przy budowaniu stron internetowych.

Pytanie 24

W języku JavaScript rezultat działania instrukcji zmienna1 –= 1; będzie identyczny jak wynik instrukcji

A. zmienia1 = zmienna1 - 0;
B. zmienna1––;
C. zmienna1 === zmienna1 - 1;
D. zmienna1++;
Instrukcja 'zmienna1 -= 1;' w języku JavaScript jest skróconą formą zapisu, która oblicza nową wartość zmiennej 'zmienna1', odejmując od niej 1. Działa to na zasadzie równania, gdzie zmienna zostaje zaktualizowana do nowej wartości. Z kolei zapis 'zmienna1--;' również dokonuje dekrementacji zmiennej 'zmienna1' o 1, ale w formie operatora post-dekrementacji. W praktyce oznacza to, że obie instrukcje mają ten sam efekt końcowy, czyli zmiana wartości 'zmienna1' o 1 w dół. Przykładowo, jeżeli 'zmienna1' wynosi 5 przed wykonaniem powyższych operacji, to po ich wykonaniu jej wartość wyniesie 4. Takie skrócone formy zapisu są powszechną praktyką w programowaniu, ponieważ umożliwiają bardziej zwięzłe i czytelne przedstawienie operacji na zmiennych, co jest zgodne z zasadami czystego kodu. Używanie operatorów skróconych, takich jak '+=' i '-=', jest zalecane, ponieważ poprawia czytelność i zrozumiałość kodu.

Pytanie 25

Jakim zapisem w języku PHP można określić komentarz, który rozciąga się na wiele linii?

A. /*  */
B. #
C. <!-- -->
D. //
W języku PHP komentarz wieloliniowy definiuje się za pomocą zapisu /* */. Taki komentarz może obejmować wiele linii tekstu, co czyni go niezwykle przydatnym do opisywania fragmentów kodu, które są zbyt obszerne, by umieścić je w pojedynczej linii. Używanie komentarzy wieloliniowych pozwala programistom na dodawanie szczegółowych wyjaśnień dotyczących funkcji, algorytmów czy też sposobu działania poszczególnych sekcji kodu. Dobrą praktyką jest stosowanie takich komentarzy, aby ułatwić innym programistom zrozumienie kodu lub przypomnienie sobie samego siebie, co dany fragment robi. Przykładowo: /* Funkcja oblicza sumę dwóch liczb Parametr 1: pierwsza liczba Parametr 2: druga liczba Zwraca: suma obu liczb */ Ponadto, stosowanie komentarzy jest zgodne z zasadami programowania zorientowanego na zrozumiałość, które są kluczowe w projektach zespołowych oraz w długofalowym utrzymaniu kodu. Poprawne stosowanie komentarzy pomaga w dokumentowaniu kodu oraz w jego przyszłym rozwoju.

Pytanie 26

W stylu CSS zdefiniowano klasę uzytkownik:

p.uzytkownik {
    color: blue;
}
Na stronie będą wyświetlane czcionką w kolorze niebieskim:
A. tylko elementy tekstowe typu <p>, <h1>.
B. wszystkie akapity.
C. paragrafy, do których została przypisana klasa uzytkownik.
D. wszystkim elementom w sekcji <body> z przypisaną klasą uzytkownik.
Deklaracja selektora p.uzytkownik oznacza w CSS połączenie selektora typu z selektorem klasy. Innymi słowy: przeglądarka wybierze tylko te elementy <p>, które mają w atrybucie class wpisaną klasę uzytkownik, np. <p class="uzytkownik">Treść</p>. Sama kropka przed nazwą klasy definiuje selektor klasy, a litera p przed kropką zawęża go wyłącznie do paragrafów. Gdyby w stylu było samo .uzytkownik { color: blue; }, wtedy reguła objęłaby wszystkie elementy z tą klasą, niezależnie czy to <p>, <div>, <h1> czy cokolwiek innego. Moim zdaniem to jedno z podstawowych, ale bardzo ważnych rozróżnień w CSS: kombinacja selektorów pozwala dokładnie kontrolować, które elementy są stylowane. Dzięki temu nie trzeba nadawać unikalnych klas dla każdego typu elementu, tylko łączyć selektor typu (np. p, h1, li) z klasą, gdy jest to potrzebne. W praktyce w projektach spotyka się dużo takich zapisów: np. li.active, a.button-primary, input.error. To pomaga utrzymać porządek w arkuszu stylów i unikać niepotrzebnie szerokiego działania reguł. Warto też zwrócić uwagę na specyficzność: p.uzytkownik ma większą specyficzność niż samo p, ale mniejszą niż np. #idElementu. Przy konfliktach stylów przeglądarka bierze to pod uwagę. Dobra praktyka jest taka, żeby nie pisać zbyt ogólnych selektorów, które kolorują „pół strony” przypadkiem. Taki selektor jak w pytaniu jest bezpieczny i precyzyjny – wiadomo dokładnie, że kolor niebieski trafi tylko do tych paragrafów, którym świadomie przypiszemy klasę uzytkownik w HTML.

Pytanie 27

Którą relację w projekcie bazy danych należy ustalić między tabelami widocznymi na ilustracji zakładając, że każdy klient sklepu internetowego dokona przynajmniej dwóch zamówień?

Ilustracja do pytania
A. 1:n, gdzie 1 jest po stronie Klienta, a wiele po stronie Zamówienia
B. 1:1
C. 1:n, gdzie 1 jest po stronie Zamówienia, a wiele po stronie Klienta
D. n:n
Poprawnie wskazana relacja 1:n (jeden do wielu), gdzie „1” jest po stronie tabeli Klient, a „n” po stronie tabeli Zamówienie, dokładnie odzwierciedla opisany przypadek biznesowy: jeden klient sklepu internetowego może złożyć wiele zamówień, a każde zamówienie należy do jednego, konkretnego klienta. W praktyce projektowania relacyjnych baz danych oznacza to, że w tabeli Zamówienie umieszczamy klucz obcy (np. kolumnę id_klienta), który wskazuje na klucz główny w tabeli Klient (np. id_klienta jako PRIMARY KEY). To jest klasyczny przykład relacji nadrzędny–podrzędny (parent–child). Z mojego doświadczenia w systemach e‑commerce taka struktura jest standardem, bo pozwala łatwo wykonywać typowe kwerendy: wyszukiwanie wszystkich zamówień danego klienta, liczenie wartości zamówień na klienta, analizę historii zakupów. Dodatkowo założenie, że każdy klient dokona co najmniej dwóch zamówień, wpływa na tzw. krotność minimalną po stronie Zamówienia (min 2), ale nie zmienia samego typu relacji – nadal jest to 1:n. W modelu logicznym i fizycznym realizujemy to przez odpowiednie więzy integralności: klucz główny w tabeli Klient i klucz obcy w tabeli Zamówienie z ON DELETE RESTRICT lub CASCADE (w zależności od polityki biznesowej). Taka relacja ułatwia normalizację danych: dane klienta trzymamy w jednym miejscu, unikamy duplikacji w wielu zamówieniach, a w razie zmiany np. adresu e‑mail aktualizujemy tylko jeden rekord. W dobrze zaprojektowanych schematach (np. zgodnych z 3NF) dokładnie tak modeluje się powiązanie Klient–Zamówienie.

Pytanie 28

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

A. string (ciąg znaków)
B. logicznym
C. nieokreślonym (undefined)
D. liczbowym
W kontekście deklaracji var x="true"; niepoprawne odpowiedzi opierają się na nieporozumieniu dotyczącym typów danych w JavaScript. Zmienna logiczna, która jest jednym z typów boolean, przyjmuje jedynie dwie wartości: true lub false. Wartość "true" nie jest interpretowana jako wartość logiczna, ale jako tekst, co sprawia, że uznawanie jej za zmienną logiczną jest błędne. W JavaScript nie możemy przypisać stringa do typu boolean i oczekiwać, że uzyskamy wynik logiczny; w tej sytuacji wynik będzie zawsze tekstem. Kolejną niepoprawną odpowiedzią jest uznanie zmiennej za liczbową. Typ liczbowy w JavaScript odnosi się do wartości numerycznych, zarówno całkowitych jak i zmiennoprzecinkowych. Wartość "true" nie może być interpretowana jako liczba, ponieważ jest to ciąg znaków. Typ liczbowy wymaga, aby wartość była zapisana w formacie numerycznym, co w przypadku "true" nie ma miejsca. Ostatnią niepoprawną odpowiedzią jest stwierdzenie, że zmienna ma typ nieokreślony (undefined). W JavaScript typ undefined oznacza, że zmienna została zadeklarowana, ale nie przypisano jej żadnej wartości. W przypadku var x="true"; zmienna została zadeklarowana i przypisano jej wartość, więc nie można jej uznać za undefined. Dlatego wszystkie trzy niepoprawne odpowiedzi są wynikiem nieprawidłowego rozumienia typów danych oraz ich interpretacji w JavaScript.

Pytanie 29

Jaką wartość w systemie szesnastkowym przyjmie kolor określony kodem RGB rgb(255, 128, 16)?

A. #008010
B. #ff8010
C. #ff8011
D. #ff0f10
Odpowiedź #ff8010 jest prawidłowa, ponieważ kolor o wartości rgb(255, 128, 16) w systemie szesnastkowym przekłada się na poszczególne wartości RGB. Wartości te są konwertowane w sposób następujący: 255 w systemie dziesiętnym odpowiada FF w systemie szesnastkowym, 128 to 80, a 16 to 10. Zatem, łącząc te składniki, otrzymujemy #ff8010. W praktyce, kolory te są często stosowane w projektowaniu graficznym oraz tworzeniu stron internetowych, gdzie dokładne odwzorowanie kolorów jest kluczowe. Kod szesnastkowy jest powszechnie używany ze względu na swoją kompaktowość i łatwość odczytu dla programistów. Warto więc zaznaczyć, że znajomość konwersji kolorów między różnymi systemami jest ważnym elementem w pracy nad kolorystyką w projektach cyfrowych oraz w branżach zajmujących się grafiką i designem. Dobre praktyki obejmują stosowanie narzędzi do wizualizacji kolorów oraz testowanie ich na różnych urządzeniach, aby zapewnić spójność wizualną.

Pytanie 30

Aby zrealizować podane czynności w JavaScript, należy w znaczniku <script> umieścić poniższy kod

  1. Wyświetlić okno do wpisania wartości z poleceniem "Podaj kwalifikacje: ", następnie po zatwierdzeniu
  2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się wartość pobrana z okna "Kwalifikacja: ..."
A. A << prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A)
B. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: ".A)
C. A = alert("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A)
D. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A)
Odpowiedź 1 jest prawidłowa, ponieważ w JavaScript funkcja prompt() służy do wyświetlenia okna dialogowego z poleceniem dla użytkownika, aby wprowadził tekst. Po wpisaniu wartości przez użytkownika i zatwierdzeniu, tekst jest przypisywany do zmiennej A. Następnie funkcja document.write() umożliwia dynamiczne dodanie tego tekstu do dokumentu HTML. Poprawne użycie obu tych funkcji spełnia wymagania zadania – najpierw otwieramy okno dialogowe, a potem umieszczamy wprowadzone dane na stronie. Stosowanie prompt() i document.write() jest często wykorzystywane w aplikacjach webowych do interakcji z użytkownikiem w sposób bezpośredni. Mimo że bardziej nowoczesne metody, takie jak manipulacja DOM za pomocą innerHTML czy użycie frameworków JavaScript, oferują większe możliwości, prompt() i document.write() pozostają prostymi narzędziami do szybkiej prezentacji wyników na stronie. Warto jednak pamiętać, że nadmierne użycie document.write() może prowadzić do nadpisania istniejących treści w dokumencie, co nie jest optymalną praktyką w złożonych aplikacjach webowych.

Pytanie 31

Podczas działania skryptu JavaScript został w konsoli wygenerowany błąd związany z działaniami na atrybucie elementu DOM. Z komunikatu wynika, że próbowano ustawić atrybut dla

Ilustracja do pytania
A. obrazu.
B. paragrafu.
C. odnośnika.
D. tabeli.
Twoja odpowiedź była prawidłowa. Błąd 'Uncaught TypeError: Cannot set property 'src' of null' jest związany z próbą przypisania wartości do atrybutu 'src' nieistniejącego elementu DOM. Atrybut 'src' jest charakterystyczny dla elementów HTML obrazu, czyli <img>, i służy do określenia źródła obrazka. Gdy masz do czynienia z błędem tego typu, najczęściej wynika to z próby manipulacji atrybutem 'src' obrazu, który nie istnieje w strukturze DOM, co może wynikać na przykład z błędu w selektorze. Pamiętaj, że przed przypisaniem wartości atrybutu, warto upewnić się, że dany element DOM faktycznie istnieje. W przeciwnym razie, jak w tym przypadku, JavaScript zwróci błąd. Zrozumienie charakterystyki błędów i potrafiące identyfikowanie ich przyczyn jest kluczowe w procesie programowania.

Pytanie 32

Wskaż sposób oznaczania komentarzy wielowierszowych w kodzie PHP.

A. <!-- treść komentarza -->
B. / treść komentarza/
C. /* treść komentarza*/
D. // treść komentarza
Poprawna odpowiedź to zapis w postaci /* treść komentarza */. W języku PHP taki zapis oznacza komentarz wielowierszowy, czyli taki, który może rozciągać się na kilka linii kodu. Komentarz zaczyna się znakiem /* i kończy się dokładnie sekwencją */. Wszystko, co znajduje się pomiędzy tymi znacznikami, jest ignorowane przez interpreter PHP i nie ma wpływu na działanie programu. Można to wykorzystać np. tak: /* Funkcja liczy sumę dwóch liczb Parametry: $a – pierwsza liczba $b – druga liczba */ function suma($a, $b) { return $a + $b; } Z mojego doświadczenia dobrze jest używać komentarzy wielowierszowych do opisywania całych bloków logiki, np. większych funkcji, klas albo skomplikowanych fragmentów algorytmu. W dokumentacji i w dobrych projektach często spotyka się też komentarze stylizowane na PHPDoc, np.: /** * Zwraca sumę dwóch liczb całkowitych * @param int $a * @param int $b * @return int */ To nadal jest zwykły komentarz wielowierszowy, tylko używany zgodnie z pewnym standardem narzędziowym. Moim zdaniem warto wyrabiać sobie nawyk pisania czytelnych komentarzy, ale jednocześnie nie przesadzać – komentarz wielowierszowy powinien wyjaśniać „dlaczego” coś jest zrobione w określony sposób, a nie przepisywać oczywistości z kodu. W praktyce w PHP używa się trzech form komentarzy: // dla jednowierszowych, # (rzadziej, ale też działa) oraz właśnie /* */ dla wielowierszowych. Znajomość tej składni to absolutna podstawa przy pracy z większymi projektami PHP, bo bez niej kod szybko staje się nieczytelny dla innych programistów.

Pytanie 33

Jakie polecenie należy zastosować, aby w trakcie tworzenia tabeli dodać klucz obcy obejmujący wiele kolumn?

A. CONSTRAINT(nazwisko,imie) FOREIGN KEY REFERENCES osoby (nazwisko, imie)
B. CONSTRAINT fk_osoba_uczen FOREIGN KEY ON (nazwisko, imie) REFERENCES osoby (nazwisko,imie)
C. CONSTRAINT fk_osoba_uczen FOREIGN KEY (nazwisko, imie) REFERENCES osoby (nazwisko,imie)
D. CONSTRAINT(nazwisko,imie) FOREIGN REFERENCES KEY osoby (nazwisko, imie)
Odpowiedź 'CONSTRAINT fk_osoba_uczen FOREIGN KEY (nazwisko, imie) REFERENCES osoby (nazwisko,imie)' jest poprawna, ponieważ poprawnie definiuje klucz obcy na wielu kolumnach. Klucz obcy jest używany do ustanawiania relacji między tabelami, co jest kluczowe w modelowaniu danych w relacyjnych bazach danych. W tym przypadku, 'fk_osoba_uczen' to nazwa ograniczenia, która pozwala na łatwe identyfikowanie klucza obcego w przyszłości. Wskazanie wielu kolumn w nawiasach po słowie kluczowym 'FOREIGN KEY' jasno określa, które kolumny tworzą klucz obcy w tabeli, podczas gdy 'REFERENCES osoby (nazwisko, imie)' precyzuje, że te kolumny odnoszą się do kolumn w tabeli 'osoby'. Tego rodzaju konstrukcja jest zgodna ze standardami SQL i dobrymi praktykami, ponieważ umożliwia zachowanie integralności danych oraz zapewnia spójność między związaną tabelą a tabelą główną. Przykładowo, gdy mamy rekordy ucznia i chcemy, aby każdy uczeń był powiązany z jego rodzicem w tabeli 'osoby', dobrze zdefiniowany klucz obcy z użyciem wielu kolumn zapobiegnie wprowadzeniu nieprawidłowych danych. Zastosowanie tej techniki ułatwia także późniejsze zapytania do bazy danych oraz zapewnia lepszą organizację danych.

Pytanie 34

W HTML-u, aby połączyć w poziomie dwie sąsiednie komórki w danym wierszu tabeli, należy wykorzystać atrybut

A. cellspacing
B. rowspan
C. cellpadding
D. colspan
Atrybut colspan w języku HTML jest kluczowym narzędziem do scalania komórek w tabeli w poziomie. Umożliwia on połączenie dwóch lub więcej sąsiednich komórek w jednym wierszu, co pozwala na bardziej elastyczne i estetyczne układanie danych. Przykładowo, jeśli mamy tabelę z informacjami o produktach, a jeden z produktów ma długą nazwę, możemy użyć atrybutu colspan, aby ta nazwa zajmowała miejsce w dwóch lub więcej komórkach, co poprawia czytelność tabeli. Dobre praktyki w projektowaniu tabel wskazują, że należy unikać nadmiarowych komórek i skomplikowanych układów, gdyż obniża to przejrzystość danych. Zamiast tego, właściwe użycie atrybutów takich jak colspan pozwala na lepsze zorganizowanie informacji. Warto również pamiętać, że poprawne stosowanie atrybutu colspan powinno być zgodne z ogólnymi zasadami projektowania responsywnego, co oznacza, że tabela powinna dobrze się prezentować na różnych urządzeniach. Dodatkowo, atrybut colspan ma swoje zastosowanie także w kontekście dostępności, gdyż odpowiednie użycie tej funkcji pozwala na lepszą nawigację i zrozumienie struktury tabeli przez osoby korzystające z technologii asystujących.

Pytanie 35

Jaki jest domyślny port dla serwera HTTP?

A. 8080
B. 21
C. 443
D. 80
Port 80 to domyślny port dla protokołu HTTP (Hypertext Transfer Protocol), który jest najczęściej używany do przesyłania stron internetowych w sieci. Ten port jest zarezerwowany dla HTTP przez Internet Assigned Numbers Authority (IANA) i jest standardowo używany przez serwery WWW, aby umożliwić użytkownikom dostęp do stron internetowych bez konieczności podawania numeru portu w adresie URL. Gdy wpisujesz adres strony w przeglądarce, np. http://example.com, przeglądarka domyślnie łączy się z serwerem na porcie 80. W praktyce oznacza to, że serwery WWW zazwyczaj nasłuchują na tym porcie, aby odbierać i obsługiwać żądania HTTP od klientów, takich jak przeglądarki internetowe. Domyślne użycie portu 80 sprawia, że nie trzeba go podawać w adresie URL, co upraszcza korzystanie z sieci dla użytkowników końcowych. Z mojego doświadczenia, znajomość domyślnych portów jest kluczowa dla każdego administratora sieci i dewelopera aplikacji internetowych, ponieważ wpływa na sposób konfiguracji zarówno serwerów, jak i firewalli, a także pomaga w rozwiązywaniu problemów z łącznością.

Pytanie 36

Podaj polecenie SQL, które wprowadza kolumnę miesiacSiewu do istniejącej tabeli rosliny?

A. UPDATE rosliny ADD miesiacSiewu int
B. CREATE TABLE rosliny {miesiacSiewu int}
C. ALTER TABLE rosliny ADD miesiacSiewu int
D. INSERT INTO rosliny VALUES (miesiacSiewu int)
Poprawna odpowiedź to ALTER TABLE rosliny ADD miesiacSiewu int. To polecenie SQL jest używane do modyfikacji istniejącej tabeli w bazie danych. W tym przypadku, zmiana dotyczy dodania nowego pola 'miesiacSiewu', które określi miesiąc siewu roślin. Typ danych 'int' oznacza, że wartość tego pola będzie przechowywana jako liczba całkowita, co jest odpowiednie, jeśli miesiące będą reprezentowane jako liczby od 1 do 12. Przykład użycia polecenia w praktyce: po dodaniu tego pola można wprowadzać dane o miesiącu siewu dla różnych roślin, co może być przydatne w systemach zarządzania uprawami. Dobrą praktyką jest zawsze dokumentować zmiany w schemacie bazy danych, aby zapewnić spójność i przejrzystość w zarządzaniu danymi. Ważne jest również, aby przed modyfikacją tabeli upewnić się, że nie wprowadza to konfliktów z istniejącymi danymi lub strukturami.

Pytanie 37

void wypisz(int n) {
    for (int i = 1; i <= n; i++) {
        System.out.println("Wykonanie operacji po raz " + i);
    }
    System.out.println("Wykonanie kolejnej operacji!");
}
Złożoność obliczeniowa prezentowanego kodu wynosi:
A. O(n)
B. O(n²)
C. O(1)
D. O(n!)
W tym zadaniu kluczowe jest zauważenie, że jedynym fragmentem kodu, który realnie „rośnie” wraz ze wzrostem n, jest pętla for. Pętla wykonuje się od i = 1 do i <= n, czyli dokładnie n razy. W każdej iteracji wykonywana jest jedna instrukcja wypisania tekstu na konsolę: System.out.println("Wykonanie operacji po raz " + i);. To jest stały zestaw operacji w każdej iteracji, nie pojawia się żadna zagnieżdżona pętla, żadne rekurencyjne wywołania ani inne konstrukcje, które by powodowały większy wzrost liczby operacji. Z tego powodu całkowita liczba operacji tego algorytmu jest proporcjonalna do n, a w notacji dużego O zapisujemy to jako O(n). Dodatkowe wywołanie System.out.println("Wykonanie kolejnej operacji!"); po zakończeniu pętli ma z punktu widzenia złożoności asymptotycznej znaczenie stałe – to jest jedna instrukcja, więc dokładamy tylko +1 do liczby operacji. Standardowo w analizie algorytmów takie stałe pomijamy, bo interesuje nas zachowanie dla bardzo dużych n. W praktyce taki schemat O(n) pojawia się non stop: przechodzenie po elementach tablicy, listy, sprawdzanie każdego rekordu z pliku, proste filtrowanie danych. Moim zdaniem warto wyrobić sobie nawyk: widzisz pojedynczą pętlę, bez dodatkowych zagnieżdżeń i bez skoków zależnych od innych zmiennych – bardzo często będzie to właśnie złożoność liniowa. W dobrych praktykach projektowania algorytmów przyjmuje się, że O(n) jest zazwyczaj akceptowalne dla sporych danych, bo czas rośnie wprost proporcjonalnie do liczby elementów. Dopiero gdy pojawiają się pętle w pętlach, trzeba się bardziej martwić o wydajność. Warto też pamiętać, że operacja wejścia/wyjścia (I/O), jak wypisywanie na konsolę, jest w rzeczywistości dość kosztowna, ale w analizie teoretycznej zakładamy, że to jedna jednostkowa operacja na iterację. Dzięki temu możemy porównywać różne algorytmy w sposób ogólny, niezależny od konkretnej maszyny czy implementacji.

Pytanie 38

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

A. XHTML1.0
B. HTML4
C. HTML5
D. XHTML 2.0
HTML5 wprowadził nowe znaczniki semantyczne, takie jak <header>, <footer> oraz <nav>, które mają na celu poprawę struktury i czytelności kodu HTML. Te znaczniki pozwalają na lepsze określenie ról poszczególnych części dokumentu, co jest istotne zarówno dla programistów, jak i dla wyszukiwarek internetowych oraz oprogramowania asystującego. Przykładowo, znacznik <header> zazwyczaj zawiera nagłówki i metadane, podczas gdy <footer> jest przeznaczony na informacje końcowe, takie jak prawa autorskie czy linki do polityki prywatności. Z kolei <nav> wskazuje sekcję nawigacyjną, co ułatwia użytkownikom poruszanie się po stronie. Użycie tych znaczników zgodnie z ich zamierzonymi funkcjami poprawia semantykę dokumentu HTML5, co jest zgodne z najlepszymi praktykami w zakresie SEO i dostępności. Warto również zauważyć, że HTML5 wprowadza inne elementy, takie jak <article> czy <section>, które dodatkowo wspierają tworzenie dobrze zorganizowanej i zrozumiałej struktury dokumentu. W związku z tym, stosowanie nowych znaczników w HTML5 jest niezwykle korzystne zarówno dla twórców, jak i dla użytkowników stron internetowych.

Pytanie 39

O czym informuje przeglądarkę internetową zapis <!DOCTYPE html>?

A. Dokument jest zapisany w wersji HTML 4.
B. W dokumencie wszystkie tagi są zapisane wielkimi literami.
C. Dokument został zapisany w języku HTML 5.
D. W dokumencie każda etykieta musi być zamknięta, nawet te samozamykające.
Zapisywanie <!DOCTYPE html> na początku dokumentu informuje przeglądarkę, że dokument jest napisany w HTML5, co ma istotne znaczenie dla jego poprawnej interpretacji. HTML5 wprowadza wiele nowych elementów i atrybutów, które są kluczowe dla nowoczesnych aplikacji webowych, takich jak <header>, <footer>, <article> czy <section>, a także wspiera multimedia poprzez <audio> i <video>. Dzięki deklaracji <!DOCTYPE html> przeglądarki mogą stosować najnowsze standardy, co zapewnia lepszą zgodność i wsparcie dla responsywności, co jest niezbędne w erze urządzeń mobilnych. Ponadto, HTML5 wprowadza zasady dotyczące semantyki, co może poprawić SEO (optymalizację pod kątem wyszukiwarek) i dostępność treści dla osób z niepełnosprawnościami. W praktyce oznacza to, że tworząc nową stronę internetową, warto zawsze używać tej deklaracji, aby zapewnić, że przeglądarki renderują zawartość zgodnie z aktualnymi standardami.

Pytanie 40

Ile razy powtórzy się pętla w JavaScript?

var x=1, i=0;
do{
    x*=3;
    i++;
}
while(x!=27);
A. 2 razy
B. 26 razy
C. 27 razy
D. 3 razy
W przedstawionym kodzie JavaScript, pętla do-while wykonuje się do momentu, gdy zmienna x nie jest równa 27. Zaczynając od wartości x równej 1, przy każdym przejściu przez pętlę zmienna x jest mnożona przez 3. Kolejno, x przyjmuje wartości: 3, 9, 27. Zatem pętla wykonuje się trzy razy, ponieważ dopiero po trzecim cyklu x osiąga wartość 27, co powoduje zakończenie pętli. Do-while zawsze wykonuje przynajmniej jedno przejście, niezależnie od warunku końcowego, dzięki czemu jest przydatna w sytuacjach, gdy operacja musi być przeprowadzona co najmniej raz. Dobrym przykładem wykorzystania tego mechanizmu jest oczekiwanie na spełnienie określonego warunku, np. uzyskanie poprawnej odpowiedzi od użytkownika. Warto zwrócić uwagę, że w przypadku operacji matematycznych wymagających określonej liczby iteracji, pętla do-while zapewnia prostotę i przejrzystość implementacji, zgodnie z dobrymi praktykami zapewniającymi łatwość w czytaniu i utrzymaniu kodu.