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: 30 kwietnia 2026 11:52
  • Data zakończenia: 30 kwietnia 2026 11:54

Egzamin niezdany

Wynik: 9/40 punktów (22,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Jaką złożoność obliczeniową posiada algorytm znajdowania elementu w nieposortowanej jednowymiarowej tablicy?

A. liniową, O(n)
B. silnia, O(n!)
C. stałą, O(1)
D. kwadratową, O(n2)
Algorytm wyszukiwania w nieposortowanej tablicy jednowymiarowej charakteryzuje się złożonością obliczeniową O(n), co oznacza, że w najgorszym przypadku będzie wymagał przeszukania każdego elementu tablicy, aby znaleźć poszukiwany element. Przykładem takiego algorytmu jest wyszukiwanie liniowe, które polega na iteracyjnym przeszukiwaniu każdego elementu od początku do końca tablicy, aż zostanie znaleziony żądany element lub zostanie osiągnięty koniec tablicy. W praktyce, algorytmy o złożoności O(n) są często stosowane w sytuacjach, gdy mamy do czynienia z danymi, które nie są posortowane, a szybkie wyszukiwanie nie jest możliwe bez wcześniejszego sortowania. W kontekście standardów branżowych, dobrze jest wiedzieć, że w systemach, w których wydajność jest kluczowa, stosuje się różnorodne techniki optymalizacji, takie jak przetwarzanie równoległe czy użycie struktur danych, które pozwalają na szybsze wyszukiwanie. Warto również zauważyć, że złożoność O(n) jest akceptowalna dla małych i średnich zbiorów danych, jednak w przypadku dużych tablic może prowadzić do zauważalnych opóźnień, dlatego w takich przypadkach warto rozważyć inne algorytmy, które mogą przyspieszyć ten proces, jak np. haszowanie.

Pytanie 2

Wskaż PRAWIDŁOWE stwierdzenie dotyczące polecenia: CREATE TABLE IF NOT EXISTS ADRES(ulica VARCHAR(70) CHARACTER SET utf8);

A. Klauzula CHARACTER SET utf8 jest wymagana
B. Do tabeli nie można wprowadzać ulic, które zawierają w nazwie polskie znaki
C. Rekordem tabeli nie może być 3 MAJA
D. IF NOT EXISTS jest stosowane opcjonalnie, aby upewnić się, że tabela nie istnieje już w bazie danych
W kontekście analizy innych stwierdzeń, warto zauważyć, że nie jest prawdą, iż do tabeli nie można wprowadzać ulic zawierających w nazwie polskie znaki. Typ danych 'VARCHAR' w MySQL z użyciem zestawu znaków 'utf8' pozwala na przechowywanie wielu różnych znaków, w tym polskich. Użycie 'CHARACTER SET utf8' jest zalecane, aby zapewnić, że dane tekstowe będą poprawnie przechowywane i wyświetlane, jednak nie oznacza to, że ogranicza to możliwość użycia takich znaków w nazwach ulic. Klauzula 'CHARACTER SET' nie jest obowiązkowa. Jeśli zostanie pominięta, MySQL użyje domyślnego zestawu znaków dla danej bazy danych, co może być wystarczające w wielu przypadkach. W odniesieniu do stwierdzenia o rekordzie '3 MAJA', tabela może zawierać dowolne wartości, w tym daty, o ile spełniają wymagania typu danych. Zrozumienie tych koncepcji jest istotne, ponieważ niepotrzebne ograniczenia mogą prowadzić do błędów w implementacji oraz zaniżenia elastyczności aplikacji bazodanowych. Typowe błędy myślowe związane z tymi stwierdzeniami często wynikają z braku znajomości specyfikacji MySQL i zasad działania systemów zarządzania bazami danych.

Pytanie 3

Wskaż komendę, która dokonuje aktualizacji danych w tabeli?

A. UPDATE
B. ALTER
C. SELECT
D. CREATE
Wybierając odpowiedzi SELECT, CREATE i ALTER, można odnieść wrażenie, że nie do końca rozumiesz, jak działają podstawowe polecenia SQL. SELECT jest używane do pobierania danych, a nie do ich aktualizacji. Umożliwia wydobycie informacji na podstawie określonych kryteriów. Zrozumienie tego polecenia jest ważne, bo pozwala na lepsze przetwarzanie i analizę danych. Jeśli chodzi o CREATE, to służy do tworzenia nowych tabel czy baz, więc też nie ma za bardzo związku z aktualizowaniem danych. Z kolei ALTER pozwala na zmiany w strukturze tabeli, jak dodawanie kolumn, ale to również nie dotyczy zmiany danych w wierszach. Generalnie, pomyliłeś funkcje SQL, a każda z nich ma swoją specyfikę. Żeby dobrze zarządzać danymi, potrzebna jest wiedza, jakie operacje można wykonywać i w jakich sytuacjach – to podstawa dla wszystkich, którzy pracują z bazami danych.

Pytanie 4

W tabeli artykuly w bazie danych sklepu znajduje się pole o nazwie nowy. Jak należy wykonać kwerendę, aby wypełnić to pole wartościami TRUE dla wszystkich rekordów?

A. INSERT INTO artykuly VALUE nowy=TRUE;
B. UPDATE nowy FROM artykuly VALUE TRUE;
C. INSERT INTO nowy FROM artykuly SET TRUE;
D. UPDATE artykuly SET nowy=TRUE;
Pozostałe odpowiedzi są błędne z kilku powodów. Pierwsza, 'INSERT INTO artykuly VALUE nowy=TRUE;', jest niepoprawna, bo instrukcja INSERT służy do dodawania nowych rekordów, a nie do aktualizacji tych, które już są. Używanie tej komendy w kontekście aktualizacji to poważny błąd w zrozumieniu baz danych. Druga odpowiedź, 'UPDATE nowy FROM artykuly VALUE TRUE;', też nie jest dobra, bo składnia tutaj jest błędna. Komenda UPDATE nie używa słowa 'FROM' w taki sposób i brakuje też struktury, która określałaby, które rekordy mają być zmienione. Ostatnia odpowiedź, 'INSERT INTO nowy FROM artykuly SET TRUE;', jeszcze bardziej myli, bo 'INSERT INTO' nie służy do zmiany wartości w kolumnie. Raczej dodaje nowe wiersze do tabeli. Takie podejście łamie zasady SQL i może prowadzić do błędów w zapytaniach. Ważne jest, żeby zrozumieć różnice pomiędzy INSERT a UPDATE, aby skutecznie zarządzać danymi.

Pytanie 5

Funkcja przedstawiona w kodzie JavaScript ma na celu

Ilustracja do pytania
A. wyświetlić kolejne liczby od a do n
B. zwrócić iloczyn kolejnych liczb od 1 do a
C. pokazać wynik mnożenia a przez n
D. zwrócić wynik potęgowania an
Wśród przedstawionych odpowiedzi, niektóre mogą wydawać się kuszące, ale są niepoprawne z powodu złego zrozumienia działania pętli for i operacji arytmetycznych w JavaScript. Opcja, że funkcja miałaby wypisać kolejne liczby od a do n, jest błędna. Kod nie zawiera żadnej instrukcji wyświetlania czy logowania, a jedynie operacje arytmetyczne i zwracanie wyniku. Podobnie, wypisywanie wyniku mnożenia a przez n jest niepoprawne, gdyż funkcja nie wykonuje jednokrotnego mnożenia a i n. Zamiast tego, wykonuje wielokrotne mnożenie a, co jest typowe dla operacji potęgowania. W końcu, mylne byłoby sądzenie, że funkcja oblicza iloczyn kolejnych liczb od 1 do a. Taki proces wymagałby zagnieżdżonej logiki, iteracji po zmiennej innej niż a, co nie jest obecne w danym kodzie. Błędne odpowiedzi mogą wynikać z niepełnego zrozumienia jak działa pętla for lub jak przypisuje się wartości w operacjach iteracyjnych. Kluczową umiejętnością jest umiejętność odczytywania i interpretowania kodu w kontekście wykonywanych operacji, co wymaga doświadczenia w pracy z językiem programowania i jego strukturami kontrolnymi.

Pytanie 6

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

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

Pytanie 7

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. brązowy
B. zielony
C. żółty
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 8

W języku PHP komentarz w jednej linii zaczyna się od znaków

A. // lub #
B. <! lub <?
C. $ lub #
D. /* lub //
Jak popatrzysz na inne odpowiedzi, to zauważysz kilka rzeczy, które są błędne. Ta odpowiedź, gdzie mówi się, że komentarz jednoliniowy w PHP zaczyna się od $ lub #, jest pomyłką, bo $ oznacza zmienne, a nie komentarze. Używanie # jako jedynego sposobu na komentarze jednoliniowe też jest ograniczone, bo nie jest powszechnie akceptowany na serwerach, gdzie raczej korzysta się z //. Inna błędna odpowiedź sugeruje użycie znaków /* lub //, ale /* to zaczęcie komentarza wieloliniowego, co nie pasuje do komentarzy jednoliniowych. Komentarze wieloliniowe, zaczynające się od /* i kończące na */, przydają się do większych fragmentów, ale nie dotyczą ogólnie tego, co jest w pytaniu. Użycie <! lub <? to też błąd, bo te znaki służą do definiowania nagłówków HTML lub otwierania skryptów PHP. Takie nieporozumienia w komentarzach mogą prowadzić do bałaganu w kodzie, co z kolei negatywnie wpływa na jego jakość i współpracę w zespole. Na koniec, dobre użycie komentarzy w PHP to kluczowa sprawa, bo pomaga w utrzymaniu przejrzystości i zrozumiałości kodu.

Pytanie 9

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. 10 15 20 25 30 35 40 45 50
B. 0 5 10 15 20 25 30 35 40 45 50
C. 0 5 10 15 20 25 30 35 40 45
D. 10 15 20 25 30 35 40 45
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 10

Aby ustawić wewnętrzne marginesy dla elementu: margines górny 50px, dolny 40px, prawy 20px oraz lewy 30px, powinno się zastosować składnię CSS

A. padding: 40px, 30px, 50px, 20px;
B. padding: 20px, 40px, 30px, 50px;
C. padding: 50px, 20px, 40px, 30px;
D. padding: 50px, 40px, 20px, 30px;
Podane odpowiedzi niepoprawne wynikają z pomylenia kolejności, w jakiej wartości paddingu są interpretowane w CSS. Wartości paddingu są rozpoznawane w określonej sekwencji: najpierw górny, następnie prawy, dolny, a na końcu lewy. Dlatego, jeśli margines górny wynosi 50px, prawy 20px, dolny 40px i lewy 30px, to niektóre z przedstawionych opcji nie oddają tej kolejności. Użycie nieodpowiednich wartości skutkuje nieprzewidywalnym wyglądem elementów na stronie, co może prowadzić do problemów z układem oraz zaburzenia estetyki. W szczególności, niepoprawne zestawienie wartości może powodować, że odstępy będą nie tylko niewłaściwe, ale także mogą przyczynić się do trudności w interakcji użytkowników z elementami na stronie. Dodatkowo, błędy w stosowaniu paddingu mogą prowadzić do konfliktów z innymi stylami CSS, co jeszcze bardziej komplikuje proces projektowania. W praktyce, niepoprawne stosowanie kolejności wartości paddingu jest częstym błędem, który może być wynikiem braku zrozumienia konwencji CSS lub pośpiechu w implementacji. Kluczowe jest zrozumienie, że CSS jest oparty na ściśle określonych zasadach, a niewłaściwe stosowanie tych zasad może prowadzić do nieefektywnych rozwiązań projektowych.

Pytanie 11

W wyniku walidacji strony został wygenerowany błąd. Oznacza on, że

Ilustracja do pytania
A. oznaczenie kodowania znaków powinno być zapisane bez myślników.
B. w atrybucie charset jest dozwolona wyłącznie wartość "utf-8".
C. oznaczenie ISO-8859-2 nie istnieje.
D. w znaczniku meta nie występuje atrybut charset.
Dobra robota! Twoja odpowiedź jest na miejscu. To, co się stało z błędem walidacji, to fakt, że przy atrybucie charset w znaczniku meta musisz zawsze podać 'utf-8'. To standard kodowania Unicode, który w sieci jest bardzo popularny. Kodowanie UTF-8 ma to do siebie, że obsługuje mnóstwo znaków, co sprawia, że nadaje się do prawie wszystkich języków na świecie. Dlatego warto to stosować przy tworzeniu nowoczesnych stron. HTML5 jasno mówi, że każdy dokument powinien mieć ten znacznik w sekcji head, czyli na przykład: <meta charset='utf-8'>.

Pytanie 12

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

A. części wspólnej.
B. sumy.
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 13

Integralność encji w systemie baz danych będzie zapewniona, jeśli między innymi

A. każdy klucz główny będzie miał odpowiadający mu klucz obcy w innej tabeli
B. dla każdej tabeli zostanie ustanowiony klucz główny
C. klucz główny zawsze będzie liczbą całkowitą
D. każda kolumna otrzyma zdefiniowany typ danych
Odpowiedź, że dla każdej tabeli zostanie utworzony klucz główny, jest prawidłowa, ponieważ klucz główny odgrywa kluczową rolę w zapewnieniu integralności encji w bazach danych. Klucz główny to unikalny identyfikator dla każdego rekordu w tabeli, co oznacza, że nie może zawierać wartości NULL i musi być unikalny w obrębie danej tabeli. Przykładowo, w tabeli 'Klienci', kolumna 'ID_klienta' może być kluczem głównym, który jednoznacznie identyfikuje każdego klienta. Umożliwia to nie tylko prawidłową organizację danych, ale także przyspiesza operacje wyszukiwania i modyfikacji. Dodatkowo, zgodnie z normami ACID, klucz główny jest niezbędny do zapewnienia spójności i integralności danych. Dobrze zdefiniowane klucze główne są również podstawą do tworzenia kluczy obcych, co pozwala na tworzenie relacji między tabelami i wspiera strukturyzację danych w relacyjnych bazach danych.

Pytanie 14

Z uwagi na zaprezentowany styl CSS, plik rysunek.gif jest używany jako tło strony:

body {
    background-image: url("rysunek.gif");
    background-repeat: repeat-y;
}
A. zarówno w pionowym, jak i poziomym kierunku ze skalowaniem
B. zarówno w pionowym, jak i poziomym kierunku z kadrowaniem
C. w poziomym kierunku
D. w pionowym kierunku
Styl CSS określa `background-repeat: repeat-y;`, co oznacza, że obraz tła będzie powtarzany w osi pionowej. Wartość `repeat-y` jest odpowiedzialna za powtarzanie obrazu tylko w pionie, podczas gdy `repeat-x` powtarza w poziomie. Jeśli chcemy, aby obraz powtarzał się w obu kierunkach, używamy `repeat`, co jest domyślną wartością właściwości `background-repeat`. W praktyce zastosowanie tego stylu jest przydatne, gdy chcemy utworzyć efekt pasków lub pionowych wzorów na stronie internetowej, które zmieniają się dynamicznie wraz z wysokością zawartości. Warto zwrócić uwagę, że poprawna implementacja powtarzania tła w pionie może być wykorzystana do oszczędnego zarządzania zasobami, zwłaszcza gdy obraz tła jest niewielki, co wpływa na szybkość ładowania strony. W kontekście standardów, takie podejście jest zgodne z zaleceniami W3C, które promują optymalizację zasobów i efektywne zarządzanie mediami na stronach www.

Pytanie 15

W JavaScript wynik operacji przyjmuje wartość NaN, jeśli skrypt próbował wykonać

A. funkcję parseFloat zamiast parseInt na zmiennej typu liczbowego
B. funkcję sprawdzającą długość napisu, a zawartość zmiennej była liczbą
C. operację arytmetyczną, a zmienna miała postać napisu
D. operację arytmetyczną na dwóch zmiennych liczbowych dodatnich
W JavaScript, wartość NaN (Not-a-Number) jest wynikiem, który pojawia się, gdy operacja arytmetyczna nie może zostać wykonana z powodu nieprawidłowego typu danych. Gdy skrypt próbuje wykonać operacje matematyczne na zmiennej, która jest napisem (string), a nie liczbą, wynikiem jest NaN. Na przykład, wyrażenie '5' + 5 zwróci '55', ponieważ operator '+' w tym przypadku działa jako konkatenacja napisów. Jeżeli jednak spróbujemy wykonać operację, taką jak 'a' * 2, wówczas wynikiem będzie NaN, ponieważ nie można pomnożyć napisu przez liczbę. Zgodnie ze standardem ECMAScript, NaN jest jedyną wartością, która nie jest równa samej sobie, co można sprawdzić za pomocą metody isNaN(). W praktyce, aby uniknąć tego problemu, programiści często stosują funkcje konwertujące, takie jak parseFloat() i parseInt(), aby upewnić się, że operacje są wykonywane na liczbach. Przykładowo, parseFloat('3.14') zwróci 3.14, co umożliwia poprawne przeprowadzenie działań matematycznych.

Pytanie 16

Wskaż metodę biblioteki Math języka JavaScript, która dla parametru x = 2.8 zwróci wartość 2.

A. exp(x)
B. ceil(x)
C. floor(x)
D. sqrt(x)
W tym zadaniu chodzi o dokładne zrozumienie, jak działają konkretne metody obiektu Math w JavaScript, a nie tylko o mechaniczne skojarzenie nazwy funkcji z efektem. Dla liczby x = 2.8 poprawnym wynikiem ma być 2, czyli liczba całkowita powstała przez zaokrąglenie w dół. Najczęstsze pomyłki biorą się z mylenia różnych typów zaokrągleń albo z kojarzenia nazw z innych języków czy z matematyki teoretycznej, bez sprawdzenia, co dokładnie robią w JS. Jeżeli ktoś wybiera exp(x), to zwykle wynika to z faktu, że nazwa brzmi „matematycznie” i kojarzy się z jakąś funkcją liczbową. Jednak Math.exp(x) zwraca e do potęgi x, czyli wartość funkcji wykładniczej. Dla 2.8 byłaby to liczba około 16.44, kompletnie niepowiązana z zaokrąglaniem. Ta metoda służy do obliczeń matematycznych wyższego poziomu, np. w algorytmach statystycznych czy finansowych, a nie do pracy na liczbach całkowitych. Z kolei wybór ceil(x) wynika często z mylenia pojęć „zaokrąglanie” i „obcinanie”. Math.ceil(2.8) zaokrągla zawsze w górę do najbliższej liczby całkowitej, więc wynik to 3. W praktyce ceil przydaje się np. przy obliczaniu liczby stron w paginacji, gdy chcemy mieć pewność, że ostatnia strona też się zmieści, nawet jeśli nie jest pełna. Tutaj jednak wymagane jest zejście w dół, więc ceil daje odwrotny efekt niż potrzebny. sqrt(x) to z kolei pierwiastek kwadratowy. Math.sqrt(2.8) zwróci wartość około 1.673, a więc nadal liczbę zmiennoprzecinkową. Czasem uczniowie mylą tę metodę, bo myślą, że „pierwiastek” w jakiś sposób „zmniejsza” liczbę, więc może zbliżyć ją do 2. W kontekście programowania webowego takie myślenie jest niebezpieczne – tu liczy się precyzyjna definicja tego, co robi funkcja, zgodnie ze specyfikacją ECMAScript, a nie intuicyjne skojarzenia z matematyki szkolnej. Kluczowe jest zapamiętanie różnicy: floor – zawsze w dół, ceil – zawsze w górę, round – do najbliższej liczby całkowitej, sqrt – pierwiastek, exp – funkcja wykładnicza. Dobra praktyka w JavaScripcie to zawsze sprawdzić dokumentację, gdy nie jesteśmy na 100% pewni, co robi dana metoda Math, bo drobna pomyłka przy zaokrąglaniu może później rozwalić logikę całej aplikacji, chociażby przy indeksowaniu tablic, generowaniu ID czy przy obliczeniach finansowych.

Pytanie 17

W tabeli personel znajdują się pola: imie, nazwisko, pensja, staz. Aby otrzymać średnią pensję pracowników, dla których staż wynosi od 10 do 20 lat pracy włącznie, należy wykonać kwerendę:

A. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
Wybór kwerend, które nie wykorzystują funkcji AVG() do uzyskania średniej pensji, może prowadzić do poważnych nieporozumień w analizie danych. Użycie 'SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20;' jest błędne, ponieważ funkcja COUNT() zlicza liczbę rekordów, a nie oblicza średniej. Przy użyciu COUNT() otrzymamy jedynie liczbę pracowników z wymaganym stażem, co jest informacją, ale nie odpowiada na pytanie o ich średnią pensję. Również kwerenda 'SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20;' działa podobnie, bo zlicza wszystkie pasujące rekordy, co nie ma związku z obliczaniem wartości średniej. Ostatecznie, kwerenda 'SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20;' jest syntaktycznie błędna, ponieważ AVG() wymaga konkretnej kolumny jako argumentu, a nie symbolu wieloznacznego '*'. Tego rodzaju błędne podejścia mogą wynikać z mylnego rozumienia funkcji i ich zastosowania w SQL. Praktyka pokazuje, że kluczowe jest zrozumienie różnicy między funkcjami agregującymi, takimi jak AVG(), a funkcjami zliczającymi, jak COUNT(). Niezrozumienie tych różnic prowadzi do niepoprawnych wyników analizy danych oraz utrudnia podejmowanie decyzji opartych na faktach. Właściwe wykorzystanie SQL jest istotne w każdym środowisku, gdzie analiza danych odgrywa kluczową rolę.

Pytanie 18

W języku SQL operator arytmetyczny odpowiadający reszcie z dzielenia to

A. %
B. /
C. ||
D. &
Widzę, że wybrałeś inne operatory arytmetyczne, ale niestety to nie jest to, co tutaj potrzebujemy. Operator '/' służy do dzielenia, a nie do znajdowania reszty – to prosta pomyłka. A ten '||', to jest używane do łączenia tekstów, więc też nie pasuje do obliczeń matematycznych. Operator '&' to w ogóle inna bajka – związany z operacjami bitowymi, a nie z tymi klasycznymi matematykami. Jak się nie rozumie, do czego te operatory służą, może łatwo popełnić błąd w zapytaniach SQL. W sumie, ważne jest, żeby znać operatorów zastosowanie i używać ich w odpowiednich kontekstach. Dobrze jest się zastanowić, na czym polega każda operacja, żeby uniknąć typowych pomyłek w kodzie.

Pytanie 19

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

A. tabel, w których pole status ma wartość 1, z bazy danych mieszkania
B. tabeli mieszkania w bazie danych
C. rekordów, gdzie pole status ma wartość 1, z tabeli mieszkania
D. pola o nazwie status w tabeli mieszkania
Wiele osób błędnie interpretuje znaczenie polecenia DELETE w SQL, co prowadzi do mylnych wniosków. Na przykład, stwierdzenie, że polecenie to usunie tabelę mieszkania z bazy danych, jest niewłaściwe. W rzeczywistości kwerenda DELETE jest stosowana do usuwania konkretnych rekordów z tabeli, a nie samej tabeli. Aby usunąć całą tabelę, stosuje się polecenie DROP TABLE, które ma zupełnie inną funkcję i konsekwencje. Ponadto, twierdzenie, że polecenie usunie pole o nazwie status, jest również błędne. W SQL pole DELETE działa na poziomie rekordów, a nie kolumn, co oznacza, że można usunąć tylko dane wierszy, a nie struktury tabeli. Innym nieporozumieniem jest sugestia, że cała baza danych mieszkań zostanie zmodyfikowana. Każda tabela w bazie danych jest niezależna, a operacje na jednej tabeli nie mają wpływu na inne, chyba że są powiązane kluczami obcymi. Właściwe zrozumienie działania kwerendy DELETE oraz zasad przeprowadzania operacji na bazach danych jest kluczowe w programowaniu i administracji bazami danych, aby unikać niezamierzonych skutków i zapewnić integralność danych.

Pytanie 20

W systemie baz danych sklepu komputerowego znajduje się tabela o nazwie komputery. Aby stworzyć raport, który wyświetla dane z tabeli dla komputerów z co najmniej 8 GB pamięci oraz procesorem Intel, można użyć kwerendy

A. SELECT * FROM komputery WHERE procesor = "Intel" OR pamiec < 8
B. SELECT * FROM komputery WHERE procesor = "Intel" AND pamiec >= 8
C. SELECT * FROM komputery WHERE procesor = "Intel" AND pamiec < 8
D. SELECT * FROM komputery WHERE procesor = "Intel" OR pamiec >= 8
Niepoprawne odpowiedzi bazują na błędnych założeniach dotyczących użycia operatorów logicznych oraz porównania. W przypadku odpowiedzi, w której pamięć jest mniejsza niż 8 GB, zapytanie nie spełnia wymagań, ponieważ ogranicza zakres wyników do komputerów, które nie pasują do założonych kryteriów. Ponadto, zastosowanie operatora OR w kontekście, w którym zarówno procesor, jak i pamięć muszą spełniać konkretne warunki, prowadzi do uzyskania wyników, które nie odpowiadają założeniom raportu. Operator OR łączy wyniki, które spełniają przynajmniej jeden z warunków, co w tym przypadku prowadzi do wybierania komputerów, które mogą mieć mniejszą pamięć, a procesor wcale nie musi być Intel. Takie podejście często wynika z mylnego przekonania, że wystarczy spełnić jeden z warunków, aby uzyskać oczekiwane wyniki. W kontekście tworzenia kwerend, ważne jest, aby dokładnie rozumieć, jak działają różne operatory oraz jakie efekty wywołują w analizowanych danych. Zastosowanie operatorów logicznych musi być starannie przemyślane, aby zapewnić, że zapytania będą rzeczywiście zwracały tylko te dane, które są istotne oraz zgodne z wymaganiami użytkownika.

Pytanie 21

W języku PHP uzyskano wyniki kwerend z bazy danych przy użyciu polecenia mysql_query. Aby wydobyć z otrzymanej kwerendy pojedynczy wiersz danych, konieczne jest użycie polecenia

A. mysql_fetch_row
B. mysql_fetch_lengths
C. mysql_list_fields
D. mysql_field_len
Wszystkie inne odpowiedzi są nieprawidłowe z różnych powodów, które warto dokładnie zrozumieć. mysql_field_len to funkcja używana do uzyskania długości pola w danej tabeli, a więc nie ma zastosowania w kontekście pobierania wierszy danych. To podejście jest typowym błędem myślowym, w którym zamiast skupić się na operacji, która dotyczy danych wynikowych, użytkownik myli funkcje związane z metadanymi i długościami pól. mysql_list_fields, z kolei, służy do uzyskiwania listy pól w danej tabeli, co również nie odpowiada na potrzebę pobrania danych z kwerendy. Znowu, może to wynikać z nieporozumienia dotyczącego różnicy między metadanymi a rzeczywistymi danymi. Ostatnia funkcja, mysql_fetch_lengths, zwraca długości wszystkich pól w ostatnio pobranym wierszu, co jest przydatne, ale również nie sprosta zadaniu pobrania wiersza danych. Zrozumienie, że różne funkcje mają różne zastosowania, jest kluczowe w programowaniu, szczególnie w pracy z bazami danych, gdzie precyzyjność i znajomość funkcjonalności API są niezbędne do efektywnego działania aplikacji. Warto również dodać, że w kontekście nowoczesnych aplikacji zamiast przestarzałych funkcji mysql, lepiej jest używać mysqli lub PDO, które są bardziej bezpieczne i oferują lepsze wsparcie dla nowoczesnych praktyk programistycznych.

Pytanie 22

Zidentyfikuj poprawnie zbudowany warunek w języku PHP, który sprawdza brak połączenia z bazą MySQL.

A. if {mysqli_connect_error()}{}
B. if (mysqli_connect_errno()){}
C. if {mysql_connect_errno()}{}
D. if (mysql_connect_error())()
No, odpowiedzi, które wybrałeś, mają sporo błędów. Na przykład, 'if (mysql_connect_error())()' jest źle napisane, bo masz tu podwójne nawiasy, a powinny być pojedyncze. 'if {mysql_connect_errno(){}}' i 'if {mysqli_connect_error()}' używają klamr, gdzie powinny być nawiasy okrągłe, bo w PHP warunki muszą być w nawiasach. Te stare funkcje, takie jak 'mysql_connect_error()' czy 'mysql_connect_errno()', to już przeżytek, zostały usunięte w PHP 7.0. Teraz, wybierając 'mysqli', zapewniasz sobie lepsze bezpieczeństwo i działanie aplikacji. To jest kluczowe, żeby zrozumieć, jak poprawnie pisać kod, bo bez tego ciężko osiągniesz sukces w programowaniu w PHP.

Pytanie 23

Co wykonuje poniższy fragment kodu w JavaScript?

n = "Napis1";
s = n.length;
A. Przypisze zmiennej s fragment tekstu ze zmiennej n, o długości określonej przez zmienną length
B. Przypisze zmiennej s wartość, która odpowiada długości tekstu ze zmiennej n
C. Przypisze zmienną n do zmiennej s
D. Wyświetli długość tekstu ze zmiennej n
Analizując błędne odpowiedzi można zauważyć kilka typowych nieporozumień związanych z właściwością length w JavaScript. Pierwszym z nich jest mylne założenie że length służy do wycinania fragmentu napisu co sugeruje odpowiedź o przypisaniu zmiennej s fragmentu napisu. W rzeczywistości length to właściwość która zwraca liczbę elementów w stringu a nie jego część. Aby wyciąć fragment stringa należy użyć metod takich jak slice lub substring które są przeznaczone do tego celu. Kolejne nieporozumienie polega na traktowaniu length jako funkcji która wyświetla długość napisu. Właściwość length po prostu zwraca wartość dlatego jeśli chcemy ją wyświetlić musimy użyć dodatkowych konstrukcji takich jak console.log w środowisku programistycznym przeglądarki. Następne potencjalne nieporozumienie związane jest z przypisaniem zmiennej n do zmiennej s. Bezpośrednie przypisanie całego stringa do innej zmiennej wymagałoby użycia operatora przypisania (=) bez kontekstu length. Takie błędne rozumowanie często wynika z nieuwagi lub braku doświadczenia w pracy z właściwościami obiektów w JavaScript. Programując w tym języku warto pamiętać że każda właściwość i metoda ma swoje konkretne zastosowanie i przeznaczenie stąd znajomość ich specyfiki jest kluczowa dla efektywnego kodowania. Dzięki tej wiedzy programista może unikać typowych pułapek i optymalizować procesy przetwarzania danych co jest szczególnie istotne w kontekście aplikacji webowych rozwijanych w JavaScript.

Pytanie 24

Wskaż sposób, w jaki należy odwołać się do pliku default.css, jeśli index.html znajduje się bezpośrednio w katalogu Strona?

Ilustracja do pytania
A. <link rel="stylesheet" type="text/css" href="c:/style/default.css" />
B. <link rel="stylesheet" type="text/css" href="./style/default.css" />
C. <link rel="stylesheet" type="text/css" href="c:\style/default.css" />
D. <link rel="stylesheet" type="text/css" href="...\style\default.css" />
Błędne odpowiedzi w tym pytaniu wynikają z niewłaściwego użycia ścieżek do plików. Dwie z błędnych odpowiedzi sugerują użycie ścieżki bezwzględnej do pliku (rozpoczynającej się od 'c:/' lub 'c:\'), co nie jest zalecane, ponieważ takie ścieżki są specyficzne dla konkretnego systemu plików i mogą nie działać w innych środowiskach. Ponadto jedna z błędnych odpowiedzi sugeruje użycie nieprawidłowej składni ('...\') do odwołania się do pliku. Dobrą praktyką jest zawsze korzystanie ze ścieżek względnych podczas odwoływania się do plików w HTML, ponieważ są one uniwersalne i niezależne od systemu plików. Pamiętaj, że właściwe zarządzanie ścieżkami do plików i organizacja plików w strukturze katalogu to klucz do skutecznego i efektywnego kodowania.

Pytanie 25

Zastosowanie poniższej kwerendy SQL spowoduje usunięcie

DELETE FROM mieszkania WHERE status=1;
A. tabeli mieszkania z systemu baz danych
B. tabel, w których pole status ma wartość 1, z bazy danych mieszkania
C. pola o nazwie status w tabeli mieszkania
D. rekordów, dla których pole status ma wartość 1, z tabeli mieszkania
Odpowiedź, którą zaznaczyłeś, jest jak najbardziej trafna i dotyczy działania kwerendy SQL, szczególnie polecenia DELETE. W tym przypadku, to DELETE FROM mieszkania WHERE status=1 oznacza, że zamierzamy usunąć wszystkie rekordy z tabeli mieszkania, gdzie status jest równy 1. To jest ważne, bo w zarządzaniu bazami danych kluczowe jest precyzyjne ustalenie, które dane chcemy usunąć. Z mojej perspektywy, przed wykonaniem takiej operacji warto najpierw wykonać zapytanie SELECT z tymi samymi warunkami, żeby zobaczyć, co dokładnie usuniemy. Przykład? Możesz chcieć usunąć mieszkania, które są zarezerwowane lub niedostępne, co może być oznaczone statusem 1. To naprawdę dobra praktyka, bo pozwala na lepsze zarządzanie danymi i na utrzymanie porządku w bazie. A wiesz, co jeszcze? Zawsze warto zrobić kopię zapasową danych przed masowym usuwaniem, żeby nie stracić czegoś ważnego.

Pytanie 26

W HTML, aby utworzyć sekcję z cytatem, która może zawierać wiele akapitów i aby przeglądarka dodała wspólne wcięcie, trzeba użyć znacznika

A. <q>
B. <blockq>
C. <blockquote>
D. <indent>
Znacznik <q> jest używany do oznaczania cytatów wprowadzonej w linii, co oznacza, że jest przeznaczony do krótkich cytatów, a nie dłuższych fragmentów tekstu. Jego zastosowanie nie zapewnia odpowiedniego wcięcia ani oddzielenia wizualnego od reszty treści, co może prowadzić do nieczytelności dłuższych cytatów. Odpowiedź <indent> nie jest poprawna, ponieważ nie istnieje taki znacznik w HTML. Użytkownicy mogą pomylić go z CSS, gdzie właściwość 'text-indent' służy do dodawania wcięć, ale sama nie definiuje struktury dokumentu. Z kolei <blockq> to literówka, gdyż poprawny znacznik to <blockquote>. Użycie nieistniejącego znacznika prowadzi do błędów w renderowaniu strony i zmniejsza jej semantyczność. Ważne jest, aby w projektowaniu stron internetowych stosować właściwe i standardowe znaczniki HTML, które nie tylko wpływają na estetykę, ale również na SEO i dostępność. W kontekście zarządzania treścią na stronie internetowej, niepoprawne użycie znaczników może wprowadzać w błąd użytkowników oraz maszyny przeszukujące, co negatywnie wpływa na ich doświadczenia i skuteczność wyszukiwania.

Pytanie 27

Z tabel Artykuly oraz Autorzy należy wyodrębnić tylko nazwiska autorów oraz tytuły ich artykułów, które uzyskały ocenę 5. Odpowiednia kwerenda do pozyskania tych informacji ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
C. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
D. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
Pozostałe odpowiedzi są niepoprawne z kilku powodów. W przypadku kwerendy SELECT nazwisko tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id; brakuje klauzuli WHERE co sprawia że zwraca ona wszystkie artykuły niezależnie od ich oceny. To nie spełnia warunku pytania który wymaga wyłącznie artykułów ocenionych na 5. Taka kwerenda może być niewydajna w kontekście dużych zbiorów danych i nie jest zgodna z założeniami zadania. W odpowiedzi SELECT nazwisko tytul FROM autorzy artykuly WHERE ocena == 5; nie użyto klauzuli JOIN co może prowadzić do niepoprawnych wyników i potencjalnego zwrotu kartazyjskiego iloczynu tabel powodując ogromny wzrost liczby rekordów. Zastosowanie podwójnego znaku równości jest błędne w SQL który używa pojedynczego znaku do przypisania wartości. W końcu odpowiedź SELECT nazwisko tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id; zawiera nieprawidłowy warunek łączenia. Klucz artykuly.id nie jest kluczem obcym co prowadzi do błędnych wyników. Poprawne zrozumienie relacji między tabelami oraz zastosowanie odpowiednich klauzul jest kluczowe dla efektywnego zapytania SQL i uniknięcia typowych błędów w zarządzaniu relacyjnymi bazami danych. Zrozumienie relacji pomiędzy tabelami oraz prawidłowe stosowanie klauzul pozwala na efektywne zarządzanie danymi co ma kluczowe znaczenie w programowaniu baz danych oraz ich optymalizacji.

Pytanie 28

W języku JavaScript zdefiniowano następującą funkcję:

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
Jej celem jest:
A. Zwrócić wartość bezwzględną argumentu f
B. Wypisać wartość odwrotną do argumentu f
C. Wypisać wartość bezwzględną argumentu f
D. Zwrócić wartość odwrotną do argumentu f
Funkcja w języku JavaScript przedstawiona w pytaniu realizuje zadanie zwracania wartości bezwzględnej z argumentu f. Wartość bezwzględna liczby jest jej odległością od zera na osi liczbowej i jest zawsze liczbą nieujemną. Mechanika działania funkcji polega na sprawdzeniu za pomocą instrukcji warunkowej if czy wartość przekazanego argumentu f jest mniejsza od zera. Jeśli tak, wartość ta jest mnożona przez -1 co przekształca ją w liczbę dodatnią. W przeciwnym razie liczba pozostaje bez zmian. Ostatecznie funkcja zwraca wynik operacji co jest typowym podejściem w programowaniu funkcyjnym. Warto zwrócić uwagę że takie podejście jest zgodne z dobrymi praktykami programistycznymi ponieważ funkcja ma jednoznacznie określony cel i nie powoduje efektów ubocznych takich jak modyfikacja zmiennych globalnych. W realnych projektach często korzysta się z funkcji Math.abs która jest wbudowana w JavaScript i zwraca wartość bezwzględną liczby co jest bardziej wydajnym podejściem i zgodnym ze standardami języka

Pytanie 29

W tabeli produkt znajdują się przedmioty wyprodukowane po roku 2000, z kolumnami nazwa i rok_produkcji. Klauzula SQL pokaże listę przedmiotów wyprodukowanych

SELECT * FROM `produkt` WHERE SUBSTR(rok_produkcji,3,2)=17;
A. przed rokiem 2017
B. w latach innych niż 2017
C. po roku 2017
D. w roku 2017
Wybranie odpowiedzi, że przedmioty zostały wyprodukowane po roku 2017 jest niewłaściwe, ponieważ funkcja SUBSTR użyta w zapytaniu SQL jednoznacznie identyfikuje tylko przedmioty wyprodukowane w roku 2017. Użycie wartości '17' jako kryterium wyszukiwania nie pozwala na objęcie przedmiotów wyprodukowanych w późniejszych latach, jak 2018 czy 2019. Podobnie, odpowiedzi sugerujące, że przedmioty są wyprodukowane w latach innych niż 2017 lub przed rokiem 2017, są błędne z tych samych powodów. W kontekście SQL, ważne jest zrozumienie, jak funkcje manipulacji łańcuchami wpływają na wyniki zapytań. Typowym błędem jest zakładanie, że wynik z SUBSTR będzie obejmował więcej niż jedną wartość, co wprowadza w błąd i prowadzi do niepoprawnych wniosków. Zamiast tego, analiza danych powinna opierać się na jasnym zrozumieniu struktury danych i tego, jak operacje na nich wpływają na wyniki. Zawsze warto testować zapytania na próbkach danych, aby upewnić się, że wyniki są zgodne z oczekiwaniami oraz stosować dobre praktyki w zakresie formatowania danych. To pozwala uniknąć błędów podczas przetwarzania informacji.

Pytanie 30

Jak nazywa się metoda dodawania arkusza stylów do dokumentu HTML zastosowana w poniższym kodzie?

<p style="color: red;">tekst paragrafu</p>
A. Styl zewnętrzny
B. Styl wewnętrzny
C. Styl wpisany, lokalny
D. Styl alternatywny, zewnętrzny
Podczas analizy alternatywnych metod dołączania arkuszy stylów do HTML, warto skupić się na ich kontekście i funkcjonalności. Styl alternatywny, zewnętrzny, najczęściej odnosi się do zewnętrznych plików CSS, które są dołączane do dokumentu HTML przy użyciu tagu <link>. Jest to podejście, które pozwala na centralne zarządzanie stylami dla całej strony, co zwiększa modularność i ułatwia aktualizacje. Styl wewnętrzny to metoda, w której style są umieszczane w sekcji <style> w nagłówku dokumentu. Chociaż oba te podejścia mają swoje zastosowania, ich niepoprawne zrozumienie może prowadzić do chaosu w kodzie. Styl wpisany, lokalny, z kolei, jest odpowiedni tylko dla niewielkich, jednorazowych stylizacji. W przypadku bardziej złożonych projektów, poleganie na stylach wpisanych może prowadzić do problemów z zarządzaniem i duplikacją kodu. Użytkownicy mogą mylić styl wpisany z innymi metodami, co może wynikać z braku wiedzy na temat ich zastosowań. Kluczowym błędem jest utożsamianie lokalnych stylów z bardziej uniwersalnymi rozwiązaniami, co w dłuższej perspektywie może prowadzić do trudności w utrzymaniu i aktualizacji projektów. Teoretyczne podejście do stylizacji w HTML wymaga zrozumienia, że różne metody mają swoje miejsce i zastosowanie, a ich wybór powinien być uzależniony od specyfiki projektu.

Pytanie 31

Cookie stworzony za pomocą polecenia PHP

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. wygaśnie po jednej godzinie od momentu jego utworzenia
B. będzie przechowywany na serwerze przez jedną godzinę
C. będzie przechowywany na serwerze przez 24 godziny
D. wygaśnie po dobie od momentu jego utworzenia
Wybór odpowiedzi, że ciasteczko wygaśnie po jednej godzinie od jego utworzenia, jest błędny, ponieważ czas wygaśnięcia ciasteczka jest jasno określony w wywołaniu funkcji setcookie(). Przypisanie wartości time() + (3600 * 24) oznacza, że ciasteczko będzie ważne przez 24 godziny, a nie jedną. Pojęcia związane z czasem życia ciasteczek są kluczowe w kontekście zarządzania sesjami i stanami użytkowników w aplikacjach webowych. Wiele osób myli jednostki czasu, co prowadzi do nieprawidłowych założeń dotyczących działania ich aplikacji. Kolejny błąd polega na przeświadczeniu, że ciasteczka są przechowywane na serwerze, gdy w rzeczywistości są one zapisywane na komputerze użytkownika. Serwer ustala zasady dotyczące ciasteczek, ale ich fizyczne miejsce przechowywania to urządzenie klienckie. Często zdarza się również, że użytkownicy nie są świadomi, jak długo ciasteczka mogą pozostać aktywne, co wpływa na ich doświadczenia i może prowadzić do nieporozumień w kontekście logowania czy ustawień prywatności. W związku z tym właściwe zrozumienie działania i życia ciasteczek jest kluczowe dla zapewnienia prawidłowego funkcjonowania aplikacji oraz ochrony danych użytkowników.

Pytanie 32

W CSS należy ustawić tło dokumentu na obrazek rys.png. Obrazek powinien się powtarzać tylko w poziomej osi. Jaką definicję powinien mieć selektor body?

A. {background-image: url("rys.png"); background-repeat: repeat-x;}
B. {background-image: url("rys.png"); background-repeat: repeat;}
C. {background-image: url("rys.png"); background-repeat: repeat-y;}
D. {background-image: url("rys.png"); background-repeat: round;}
Odpowiedzi, które nie zostały wybrane, zawierają różne błędne podejścia do definiowania tła w CSS. W przypadku opcji używających wartości 'round' oraz 'repeat', tło powtarzałoby się zarówno w poziomie, jak i w pionie, co może nie być pożądanym efektem, jeżeli celem jest ograniczenie powtarzania jedynie do poziomego rozciągnięcia. Wartość 'repeat' jest domyślną wartością dla 'background-repeat', co oznacza, że obrazy będą powtarzane w obu kierunkach, co nie odpowiada wymaganiom zadania. Ponadto, 'repeat-y' powtarzałoby obraz tylko w pionie, co jest całkowicie odwrotne do zamierzonego efektu. Błędy te wynikają z nieporozumienia dotyczącego sposobu działania właściwości CSS związanych z tłem oraz ich wartości. Kluczowe w projektowaniu jest zrozumienie, które aspekty wizualne są istotne dla doświadczeń użytkowników. Właściwa kontrola nad powtarzaniem tła ma znaczenie w kontekście estetyki i układu elementów strony. Dlatego ważne jest, aby dokładnie przemyśleć, jak obrazy będą się zachowywać w różnych kontekstach i na różnych urządzeniach, aby uniknąć niezamierzonych efektów wizualnych.

Pytanie 33

W języku JavaScript funkcja document.getElementById() ma na celu

A. sprawdzić poprawność formularza z identyfikatorem id
B. pobrać dane z pola formularza i zapisać je do zmiennej id
C. zwrócić odnośnik do pierwszego elementu HTML o określonym id
D. umieścić tekst o treści 'id' na stronie internetowej
Odpowiedzi, które nie zostały uznane za poprawne, zawierają nieprawidłowe interpretacje funkcji document.getElementById(). Pierwsza z nich sugeruje, że metoda ta wstawia tekst na stronie o treści 'id'. W rzeczywistości, metoda ta nie ma na celu wyświetlania lub wstawiania tekstu na stronę, lecz zwraca referencję do elementu z określonym id, co oznacza, że operacje na zawartości elementu muszą być wykonane oddzielnie poprzez inną metodę, np. innerHTML. Kolejna odpowiedź sugeruje, że metoda sprawdza poprawność formularza. Zgadza się, że walidacja formularzy jest kluczowym aspektem zarządzania danymi użytkowników, ale document.getElementById() nie przeprowadza walidacji, a jedynie umożliwia dostęp do elementów formularza, co można wykorzystać do walidacji, ale nie jest to jej pierwotna funkcja. Ostatnia z podanych odpowiedzi stwierdza, że metoda pobiera dane z pola formularza i wstawia je do zmiennej. Również jest to mylna interpretacja, ponieważ document.getElementById() nie przetwarza ani nie przechowuje danych, a jedynie pozwala na dostęp do elementu, z którego dane mogą być później pobrane przy użyciu odpowiednich właściwości, takich jak value w przypadku pól formularzy. Wszystkie te odpowiedzi wskazują na zrozumienie metody jako narzędzia do wstawiania lub walidacji danych, co jest niezgodne z faktycznym działaniem tej metody.

Pytanie 34

Jakie oprogramowanie NIE JEST systemem do zarządzania treścią (CMS)?

A. Apache
B. WordPress
C. Mambo
D. Joomla
Apache to serwer HTTP, który jest wykorzystywany do hostowania stron internetowych. Nie jest to system zarządzania treścią (CMS), ponieważ jego głównym zadaniem jest obsługa żądań HTTP i dostarczanie plików do przeglądarek internetowych. Systemy zarządzania treścią, takie jak Joomla, WordPress czy Mambo, to aplikacje, które umożliwiają użytkownikom łatwe tworzenie, edytowanie i zarządzanie treściami na stronach internetowych bez konieczności posiadania zaawansowanej wiedzy technicznej. Przykładem zastosowania Apache może być hostowanie strony internetowej stworzonej w jednym z wymienionych CMS, gdzie Apache dostarcza zasoby, a CMS zarządza treścią i logiką aplikacji. Dobrą praktyką w branży jest oddzielanie warstwy serwera od warstwy aplikacji, co pozwala na lepszą skalowalność i utrzymanie, a także na łatwiejszą aktualizację i zarządzanie bezpieczeństwem.

Pytanie 35

Co to jest AJAX?

A. Język programowania służący do tworzenia stron internetowych
B. Technologia umożliwiająca asynchroniczne przesyłanie danych między klientem a serwerem bez przeładowania strony
C. Biblioteka JavaScript do obsługi animacji i efektów wizualnych
D. System zarządzania bazą danych używany do przechowywania i manipulacji danymi
Wiele osób mylnie sądzi, że AJAX to język programowania. W rzeczywistości AJAX to technologia, która w połączeniu z JavaScript, HTML i CSS pozwala na tworzenie dynamicznych stron internetowych. JavaScript jest rzeczywiście językiem programowania, ale AJAX to raczej technika, która wykorzystuje jego możliwości. Kolejny błąd to utożsamianie AJAX z biblioteką do animacji. Podczas gdy biblioteki JavaScript, jak jQuery, mogą wspierać AJAX i oferować efekty wizualne, same animacje nie są związane z przesyłaniem danych. Z kolei system zarządzania bazą danych to całkiem odmienna dziedzina. Bazy danych są używane do przechowywania i zarządzania danymi, ale AJAX nie jest narzędziem do tego celu. Często błędnie kojarzy się to ze względu na fakt, że AJAX może pobierać dane z serwera, który z kolei korzysta z bazy danych. Takie myślenie prowadzi do nieprawidłowych wniosków, ponieważ AJAX jest jedynie sposobem komunikacji między klientem a serwerem, a nie narzędziem do zarządzania danymi. Kluczem do zrozumienia AJAX jest jego rola w poprawie interakcji użytkownika z aplikacją webową poprzez asynchroniczne przesyłanie danych.

Pytanie 36

Poniższy fragment kodu PHP funkcjonuje poprawnie i ma na celu wyświetlenie na stronie internetowej informacji pobranych kwerendą z bazy danych. Ile pól zostanie wyświetlonych na stronie?

$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++) 
{
    $wiersz = mysqli_fetch_row($zapytanie); 
    echo "<p>Klient: $wiersz[0] $wiersz[1], adres: $wiersz[2] </p>";
}
A. Z dwóch pól
B. Z jednego pola
C. Z czterech pól
D. Z trzech pól
Wybranie niepoprawnych odpowiedzi, takich jak 'z jednego pola' czy 'z dwóch pól', może wynikać z niepoprawnego zrozumienia struktury danych zwracanych przez funkcję mysqli_fetch_row. Odpowiedzi te sugerują, że użytkownik może nie dostrzegać, że funkcja ta zwraca wszystkie kolumny z wiersza jako elementy tablicy, co ma kluczowe znaczenie w kontekście przetwarzania wyników zapytań. Odpowiedzi wskazujące na jedno lub dwa pola mogą prowadzić do błędnych wniosków, ponieważ ignorują one pełny zakres danych, które są dostępne w każdym wierszu. W praktyce, często umieszcza się w bazie danych więcej informacji, a każda kolumna odpowiada innemu atrybutowi obiektu, na przykład klienta. Dlatego jeśli zapytanie SQL zwraca trzy kolumny, to oczekiwanym wynikiem powinno być właśnie wyświetlenie tych trzech, co podkreśla istotność precyzyjnego formułowania zapytań i poprawnego odczytywania wyników. Zrozumienie struktury danych jest kluczowe dla poprawnego odczytu wyników i ich późniejszego wykorzystania, co potwierdzają standardy związane z programowaniem w PHP oraz obsługą baz danych.

Pytanie 37

Web designer pragnie wstawić w znaczniku <header> nagłówek do treści. Zgodnie z zasadami użycia znaczników semantycznych, powinien wykorzystać znacznik

A. <strong>
B. <title>
C. <p>
D. <h1>
Odpowiedzi, takie jak <p>, <title> oraz <strong>, nie są odpowiednie do oznaczania głównego nagłówka treści w dokumencie HTML. Znacznik <p> jest przeznaczony do tworzenia akapitów tekstu i nie niesie ze sobą informacji semantycznej wskazującej na nagłówek. Użycie <p> do nagłówka mogłoby wprowadzić w błąd, ponieważ akapity są zazwyczaj używane do prezentacji treści w formie ciągłej, a nie jako tytuły. Znacznik <title> jest używany do określenia tytułu dokumentu, który pojawia się na pasku tytułowym przeglądarki, a jego zawartość nie jest związana z semantyką treści strony, co czyni go niewłaściwym wyborem w kontekście nagłówka treści. Z kolei znacznik <strong> z kolei służy do oznaczania ważnych fragmentów tekstu, ale nie jest przeznaczony do strukturyzacji treści. Użycie <strong> do nagłówka może zafałszować hierarchię informacji, co negatywnie wpływa na odczyt i interpretację treści przez wyszukiwarki oraz osoby korzystające z technologii asystujących. Aby zbudować jasną i zrozumiałą strukturę dokumentu, należy stosować odpowiednie znaczniki semantyczne, co jest kluczem do efektywnej prezentacji treści w sieci.

Pytanie 38

Aby zwiększyć wydajność operacji w bazie danych, należy skupić się na polach, które są często wyszukiwane lub sortowane

A. stworzyć oddzielną tabelę przechowującą wyłącznie te pola
B. dodać klucz obcy
C. utworzyć indeks
D. dodać więzy integralności
Dodawanie kluczy obcych nie jest bezpośrednią metodą na przyspieszenie operacji na bazie danych. Klucze obce są używane do zapewnienia integralności referencyjnej, co oznacza, że ich celem jest zapewnienie spójności danych w relacjach pomiędzy tabelami. Choć klucze obce mogą wpłynąć na wydajność w kontekście zapytań, nie przyspieszają one ani nie optymalizują wyszukiwania w obrębie pojedynczych tabel. Tworzenie osobnych tabel przechowujących tylko te pola również nie jest metodą optymalizacji efektywności wyszukiwania. Tego rodzaju podejście może prowadzić do komplikacji w zarządzaniu danymi oraz zmniejszenia wydajności przy łączeniu tabel w zapytaniach. Dodanie więzów integralności, które zapewniają, że dane w tabelach są poprawne i zgodne z określonymi zasadami, jest również istotne, ale nie wpływa bezpośrednio na szybkość operacji na bazie danych. Takie podejścia mogą prowadzić do błędnych przekonań, że poprawa wydajności bazy danych można osiągnąć poprzez wprowadzenie dodatkowych ograniczeń lub zmian w strukturze danych, co w rzeczywistości może generować dodatkowe koszty obliczeniowe przy wykonywaniu podstawowych operacji. Kluczowe jest stosowanie odpowiednich technik indeksacji, które są powszechnie uznawane za najlepszą praktykę w kontekście optymalizacji zasobów bazy danych.

Pytanie 39

Arkusze stylów w formacie kaskadowym są tworzone w celu

A. połączenia struktury dokumentu strony z odpowiednią formą jej wizualizacji
B. ułatwienia formatowania strony
C. blokowania wszelkich zmian w wartościach znaczników już przypisanych w pliku CSS
D. nadpisywania wartości znaczników, które już zostały ustawione na stronie
Wybór błędnych odpowiedzi może wynikać z nieporozumienia dotyczącego funkcji kaskadowych arkuszy stylów i ich zastosowania w procesie tworzenia stron internetowych. Odpowiedzi sugerujące blokowanie jakichkolwiek zmian w wartościach znaczników w pliku CSS są mylące, ponieważ CSS zaprojektowane jest właśnie po to, aby umożliwiać modyfikacje stylów. Arkusze stylów nie blokują zmian, tylko lepiej organizują i strukturalizują kod, co sprzyja łatwiejszemu wprowadzaniu przyszłych poprawek. Z kolei połączenie struktury dokumentu strony z właściwą formą prezentacji jest bardziej związane z HTML, który odpowiada za strukturę treści strony. CSS natomiast odpowiada głównie za stylizację i nie ma na celu bezpośredniego łączenia tych aspektów, lecz oddzielenie ich. Warto również zauważyć, że nadpisywanie wartości znaczników na stronie to szczególna funkcjonalność CSS, ale nie jest to jej główny cel. Główna idea CSS polega na uproszczeniu procesu formatowania, co podkreśla znaczenie kaskadowości, gdzie reguły mogą być dziedziczone i nadpisywane w sposób przemyślany i kontrolowany. Typowymi błędami myślowymi w tym kontekście są zamiana celów CSS z HTML oraz brak zrozumienia mechanizmów kaskadowości, co prowadzi do nieprawidłowych wniosków na temat roli, jaką CSS odgrywa w projektowaniu stron internetowych.

Pytanie 40

W języku JavaScript zamieszczony poniżej fragment funkcji ma na celu

wynik = 0;
for (i = 0; i < tab.length; i++) {
wynik += tab[i];
}
A. wyświetlenie wszystkich elementów tablicy
B. dodanie stałej wartości do każdego elementu tablicy
C. wprowadzenie do każdego elementu tablicy bieżącej wartości zmiennej i
D. policzenie sumy wszystkich elementów tablicy
Rozważając różne odpowiedzi, można dostrzec pewne błędne założenia dotyczące funkcji pętli w analizowanym kodzie JavaScript. Pierwsza z opcji zakłada, że celem kodu jest wyświetlenie wszystkich elementów tablicy. W rzeczywistości jednak kod nie zawiera żadnych instrukcji, takich jak console.log(), które pozwoliłyby na wyświetlanie wartości elementów tablicy. To powszechny błąd polegający na myleniu iteracji pętli z operacjami wejścia/wyjścia. Kolejna możliwość sugeruje dodanie do każdego elementu tablicy stałej wartości. Aby osiągnąć taki efekt, kod musiałby bezpośrednio modyfikować wartości w tablicy, co wymagałoby przypisania nowych wartości do elementów tablicy. W przedstawionym kodzie nie ma jednak żadnej manipulacji wartościami tablicy, co wskazuje na niewłaściwe zrozumienie celu operacji wykonywanych na tablicach. Ostatnia możliwość zakłada, że każdemu elementowi tablicy przypisywana jest aktualna wartość zmiennej i. Taki efekt wymagałby przypisania wartości i do elementów tablicy, co nie ma miejsca w przedstawionym fragmencie kodu. Jest to często spotykany błąd polegający na myleniu indeksu pętli z operacjami przypisania. Każda z tych odpowiedzi opiera się na niepoprawnym zrozumieniu mechanizmów iteracji i operacji na tablicach w językach programowania takich jak JavaScript co może prowadzić do błędnych wniosków dotyczących działania kodu.