Przejdź do głównej treści
  1. Strona główna
  2. Wyniki egzaminu

Wyniki egzaminu

Nowy egzamin

Informacje o egzaminie

  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Rozpoczęcie: 9 września 2026 16:10
  • Zakończenie: 9 września 2026 16:20 

Egzamin niezdany

Wynik: 11/40 punktów (27,5%)

Wymagane minimum: 20 punktów (50%)

Twój wynik na tle innych

Twój wynik jest lepszy niż 16% podejść do kwalifikacji INF.03.

Porównanie z 40773 zakończonymi podejściami do tej kwalifikacji (dane zbiorcze, bez wyników indywidualnych).

Zachowaj ten wynik na koncie

Załóż darmowe konto albo zaloguj się - ten egzamin przypiszemy do Twojego konta, więc wrócisz do swoich błędów, będziesz śledzić postęp i dostaniesz powtórki dobrane do Twoich odpowiedzi.

Analiza przebiegu egzaminu - sprawdź jak rozwiązywałeś pytania Przebieg egzaminu

Analiza przebiegu egzaminu

Odtwarzaj przebieg egzaminu krok po kroku i ucz się na własnych błędach - kolejność rozwiązywania, czas nad każdym pytaniem, momenty zmiany odpowiedzi.

  • Suwak czasu - przeglądaj pytania w kolejności rozwiązywania.
  • Tryb nauki - poprawne odpowiedzi i wyjaśnienia.
  • Analiza czasu - ile czasu nad każdym pytaniem.
  • Monitoring focusu - momenty opuszczenia zakładki.

Udostępnij swój wynik

Szczegółowe wyniki

Pytanie 1

Jakie zadanie wykonuje funkcja napisana w JavaScript?

function fun1(a,b)
{
    if ( a % 2 != 0 ) a++;
    for(n=a; n<=b; n+=2)
        document.write(n);
}
A. zwrócenie parzystych wartości liczb od a do bTwoja odpowiedź
B. wypisanie liczb parzystych w przedziale od a do bPoprawna odpowiedź
C. sprawdzenie, czy liczba a jest liczbą nieparzystą; jeśli tak, to jej wypisanie
D. wypisanie wszystkich liczb w zakresie od a do b
Niepoprawna odpowiedź. Analiza niepoprawnych odpowiedzi wymaga zrozumienia, dlaczego poszczególne opcje nie pasują do działania funkcji fun1. W pierwszym przypadku, opcja dotycząca sprawdzania, czy liczba a jest nieparzysta i jej wypisywania, nie jest zgodna z logiką funkcji. Chociaż funkcja sprawdza, czy a jest nieparzysta, to nie wypisuje jej, lecz zmienia ją na parzystą, co wskazuje, że jej celem nie jest wypisywanie liczby a, ale przygotowanie jej do dalszej iteracji. Wypisanie wszystkich liczb z przedziału od a do b również nie jest prawidłowe, ponieważ funkcja nie iteruje po wszystkich liczbach, lecz wyłącznie po liczbach parzystych. Warto zauważyć, że funkcja pomija wszystkie liczby nieparzyste, co wyklucza tę opcję. Kolejna możliwa odpowiedź sugeruje zwracanie wartości parzystych liczb od a do b, jednak funkcja nie wykorzystuje żadnej procedury zwracania wartości, a jej konstrukcja wskazuje na bezpośrednie wypisywanie wyników, co wyklucza tę możliwość. Typowy błąd myślowy to niepoprawne rozumienie działania pętli for oraz operacji wypisywania danych w kontekście przeglądarki internetowej, co jest istotne z punktu widzenia dynamicznych aplikacji webowych. Zrozumienie, jak działa operator modulo i jego rola w wyznaczaniu parzystości liczb, jest kluczowe dla poprawnego interpretowania takich fragmentów kodu. Wskazane jest również, aby programiści byli świadomi różnicy między wypisywaniem a zwracaniem wyników, co często prowadzi do nieporozumień w kontekście funkcji i metod w JavaScript i innych językach programowania.

Pytanie 2

Zamieszczony kod HTML formularza zostanie wyświetlony przez przeglądarkę w sposób:

<form>
stanowisko: <input type="text"> <br>
obowiązki: <br>
<input type="checkbox" name="obowiazki1" value="1" disabled checked> sporządzanie dokumentacji<br>
<input type="checkbox" name="obowiazki2" value="2" checked>pisanie kodu<br>
<input type="checkbox" name="obowiazki3" value="3">testy oprogramowania<br>
</form>
Ilustracja do pytania
A. BTwoja odpowiedź
B. A
C. C
D. DPoprawna odpowiedź
Niepoprawna odpowiedź. W tym przykładzie łatwo pomylić wygląd formularza, jeśli patrzy się tylko na treść etykiet, a nie na strukturę HTML. Znacznik br wymusza przejście do nowej linii, więc układ, w którym napis obowiązki: znajduje się w tym samym wierszu co pole tekstowe albo pierwszy checkbox, nie pasuje do podanego kodu. Po polu tekstowym jest br, a po napisie obowiązki: jest kolejny br. Przeglądarka nie układa więc wszystkiego obok siebie, tylko przechodzi liniami zgodnie z kodem. Druga typowa pułapka dotyczy atrybutu checked. Jeśli checkbox ma checked, to jest zaznaczony przy wyświetleniu strony. Nie ma znaczenia, że pierwszy checkbox ma też disabled — on nadal jest zaznaczony, tylko zablokowany dla użytkownika i zwykle wygląda na wyszarzony. Częsty błąd myślowy polega na uznaniu, że disabled oznacza brak zaznaczenia, a tak nie jest. disabled oznacza brak możliwości edycji i brak wysłania wartości przy submit, nie zmianę stanu wizualnego z checked na unchecked. Niepoprawne są też warianty, w których zaznaczony jest checkbox testy oprogramowania, ponieważ trzeci input nie ma atrybutu checked. W HTML stan początkowy pola wyboru nie wynika z tekstu obok pola ani z kolejności name czy value, tylko z obecności atrybutu checked. Z mojego doświadczenia najlepiej analizować takie zadania linia po linii: najpierw układ tworzony przez br, potem typy pól, a dopiero na końcu atrybuty checked i disabled. Wtedy nie miesza się wyglądu z logiką formularza.

Pytanie 3

Który z poniższych kodów HTML odpowiada przedstawionej tabeli? Dla uproszczenia pominięto zapis dotyczący stylu obramowania tabeli oraz komórek?

Ilustracja do pytania
A. Rys. A
B. Rys. C
C. Rys. BPoprawna odpowiedź
D. Rys. DTwoja odpowiedź
Niepoprawna odpowiedź. Rysunek A jest niepoprawny ponieważ zawiera osobne komórki dla każdego numeru telefonu co prowadzi do nieprawidłowego renderowania tabeli w kontekście prezentowanego układu Rysunek C również nie spełnia wymagań gdyż używa atrybutu colspan="2" w ostatnim wierszu co jest błędne z perspektywy przedstawionego układu ponieważ próbuje połączyć komórki w poziomie zamiast w pionie Rysunek D stosuje colspan w wierszach gdzie numer telefonu powinien być wyświetlany oddzielnie co prowadzi do problemów w wyświetlaniu danych w wierszach Tę sytuację można uznać za powszechny błąd popełniany przez osoby które nie mają doświadczenia w zarządzaniu strukturą tabel HTML Wybierając nieprawidłowe podejście łatwo można wprowadzić chaos w logice prezentacji danych co wpływa na czytelność i użyteczność strony internetowej Użytkownicy często mylnie interpretują funkcje colspan i rowspan co prowadzi do nieprawidłowego układu wizualnego i funkcjonalnego w tabelach HTML Właściwe zrozumienie różnicy między colspan a rowspan oraz ich zastosowania w różnych scenariuszach jest kluczowe dla tworzenia profesjonalnych i zgodnych ze standardami stron internetowych Poprawna odpowiedź wymaga rozumienia semantyki HTML i umiejętności praktycznego zastosowania tej wiedzy do tworzenia struktur tabelowych które są efektywne i estetyczne

Pytanie 4

Podczas przygotowywania grafiki do umieszczenia na stronie internetowej konieczne jest wycięcie tylko pewnego fragmentu. Jak nazywa się ta czynność?

A. zmiana rozmiaru.
B. odwracanie obrazu.
C. łączanie warstw.Twoja odpowiedź
D. kadrowanie.Poprawna odpowiedź
Niepoprawna odpowiedź. Skalowanie to po prostu zmiana rozmiaru obrazka, ale nie zmienia on jego zawartości. Jak robimy grafikę na stronę, to może to się nie najlepiej skończyć, bo obraz może się zniekształcić, a tego chyba nikt nie chce w profesjonalnych projektach. Odbicie obrazu to lustrzane odwzorowanie grafiki, które tak naprawdę nie ma nic wspólnego z kadrowaniem. Może w sztuce się przyda, ale do wycinania nie pasuje. Łączenie warstw to technika, gdzie nakładamy różne elementy na siebie i to też nie ma nic wspólnego z wycinaniem, a bardziej z integracją. Ogólnie rzecz biorąc, to wszystko wynika z mylenia podstawowych pojęć związanych z edycją grafiki. Ludzie mogą myśleć, że te techniki są podobne, co prowadzi do nieporozumień. Ważne jest, żeby wiedzieć, że każda z tych technik ma swoje cele, a kadrowanie to coś, co skupia się na wycinaniu i kompozycji.

Pytanie 5

W przedstawionej definicji typu wyliczeniowego w języku C++ enumerator CZWARTEK będzie miał wartość równą

Ilustracja do pytania
A. liczbie 1
B. napisowi 'CZWARTEK'
C. liczbie 4Twoja odpowiedź
D. napisowi "CZWARTEK"
Poprawna odpowiedź. W języku C++ typ wyliczeniowy (enum) pozwala na definiowanie grupy nazwanych stałych całkowitych. W przedstawionej definicji enum dni {PONIEDZIAŁEK = 1, WTOREK, ŚRODA, CZWARTEK, PIĄTEK, SOBOTA, NIEDZIELA}; inicjalizacja PONIEDZIAŁEK na 1 powoduje, że kolejne wyliczane wartości są automatycznie zwiększane o 1. Oznacza to, że wartość dla WTOREK wynosi 2, ŚRODA to 3, a CZWARTEK automatycznie staje się równy 4. Takie podejście jest powszechnie stosowane w programowaniu do reprezentowania dyskretnych zestawów wartości, co ułatwia interpretację kodu i minimalizuje ryzyko błędów. W praktyce typy wyliczeniowe są używane do przechowywania dni tygodnia, stanów maszyn oraz innych uporządkowanych kolekcji. Są zgodne ze standardem C++ i odgrywają istotną rolę w tworzeniu czytelnego i efektywnego kodu. Ich zaletą jest możliwość łatwej manipulacji wartościami oraz zwiększenie czytelności kodu dzięki użyciu przyjaznych nazw zamiast surowych wartości liczbowych.

Pytanie 6

Elementy <header>, <article>, <section>, <footer> są typowe dla języka

A. HTML 5Poprawna odpowiedź
B. XHTML 1.1
C. HTML 4.01 Transitional
D. HTML 4.01 StrictTwoja odpowiedź
Niepoprawna odpowiedź. Wybór XHTML 1.1, HTML 4.01 Transitional lub HTML 4.01 Strict jako odpowiedzi na pytanie jest błędny, ponieważ te wersje języka HTML nie mają zdefiniowanych znaczników semantycznych, które są charakterystyczne dla HTML 5. XHTML 1.1, będący bardziej rygorystyczną wersją HTML, koncentruje się na zgodności z XML, co utrudnia elastyczność w projektowaniu i wprowadza dodatkowe wymagania dotyczące składni, ale nie oferuje nowych znaczników semantycznych. HTML 4.01 Transitional to wersja, która umożliwia stosowanie zarówno nowych, jak i starych technik HTML, jednak nie zawiera semantycznych elementów, które zostały wprowadzone w HTML 5. Z kolei HTML 4.01 Strict wprowadza ścisłe zasady dotyczące struktury dokumentu, ale również nie obejmuje nowych znaczników semantycznych. Istotnym błędem myślowym jest przekonanie, że wcześniejsze wersje HTML, które koncentrują się na zgodności z przeglądarkami, mogą dostarczyć takiej samej funkcjonalności jak HTML 5. Znaczniki semantyczne, takie jak <header>, <article>, <section> i <footer>, są kluczowe dla nowoczesnego podejścia do tworzenia stron internetowych, które koncentrują się na dostępności, SEO oraz lepszej organizacji treści. Wybierając nieodpowiednią wersję HTML, można nie tylko utracić na semantyce, ale również narazić projekt na problemy z przyszłą kompatybilnością i utrzymaniem.

Pytanie 7

Jaki zapis szesnastkowy odpowiada kolorowi rgb(128, 16, 8)?

A.
#801008
Poprawna odpowiedź
B.
#FF1008
Twoja odpowiedź
C.
#FF0F80
D.
#800F80
Niepoprawna odpowiedź. Pozostałe kody mają niepasujące bajty. #FF1008 zaczyna się od FF (255), a nie 80 (128). #800F80 i #FF0F80 nie odpowiadają wartościom 16 i 8. Poprawny zapis rgb(128, 16, 8) to #801008.

Pytanie 8

O obiekcie zdefiniowanym w języku JavaScript można stwierdzić, że zawiera

var obiekt1 = {
  x: 0,
  y: 0,
  wsp: function() { … }
}
A. trzy metody
B. trzy właściwości
C. dwie właściwości oraz jedną metodęTwoja odpowiedź
D. dwie metody oraz jedną właściwość
Poprawna odpowiedź. Odpowiedź, że obiekt w JavaScript ma dwie właściwości i jedną metodę, jest poprawna. Przykład obiektu `obiekt1` zawiera dwie właściwości: `x` i `y`, które są liczbowymi wartościami. Dodatkowo, metoda `wsp` jest poprawnie zdefiniowana jako funkcja, co czyni ją metodą obiektu. W praktyce obiekty w JavaScript służą do grupowania danych i funkcji, co jest przydatne w programowaniu obiektowym. Wprowadzenie do obiektów i ich właściwości oraz metod jest kluczowym elementem zrozumienia, jak JavaScript operuje na danych. Standardowe praktyki zalecają, aby metody były używane do definiowania zachowań obiektów, co jest zgodne z zasadami programowania zorientowanego obiektowo, gdzie obiekt jest zbiorem właściwości i metod, które operują na tych właściwościach. W kontekście dbałości o czystość kodu, warto zwrócić uwagę na stosowanie dobrej nazewnictwa dla metod i właściwości, co zwiększa czytelność i zrozumienie kodu. Przykładowo, jeśli `wsp` miała by reprezentować funkcję obliczającą współrzędne, dobrze by było, aby jej nazwa była bardziej opisowa, na przykład `obliczWspolrzedne`.

Pytanie 9

Przedstawiono efekt formatowania CSS oraz kod HTML. Jak należy zdefiniować styl, aby osiągnąć takie formatowanie?

<p>
Mimozami jesień się zaczyna,<br>
Złotawa, krucha i miła.<br>
To ty, to ty jesteś ta dziewczyna,<br>
Która do mnie na ulicę wychodziła.
</p>
Ilustracja do pytania
A. .first-line { font-size: 200%; color: brown; }
B. #first-line { font-size: 200%; color: brown; }
C. p::first-line { font-size: 200%; color: brown; }Poprawna odpowiedź
D. p.first-line { font-size: 200%; color: brown; }Twoja odpowiedź
Niepoprawna odpowiedź. Niestety, wybrana przez ciebie odpowiedź jest niepoprawna. Najważniejszym błędem jest brak zrozumienia, jak działają pseudoelementy i selektory CSS. Pseudoelement ::first-line jest używany specyficznie do formatowania pierwszej linii paragrafu. Zastosowanie selektora typu ID (#first-line) lub klasy (.first-line) nie dałoby oczekiwanego efektu, ponieważ te selektory odnoszą się do elementów o określonym identyfikatorze lub klasie, a nie do pierwszej linii paragrafu. Podobnie, selektor p.first-line oznacza paragraf o klasie 'first-line', a nie pierwszą linię paragrafu. Dlatego w tym przypadku prawidłowym rozwiązaniem jest zastosowanie pseudoelementu ::first-line w połączeniu z selektorem paragrafu (p), co umożliwi formatowanie tylko pierwszej linii paragrafu. Pamiętaj, że prawidłowe rozumienie selektorów CSS jest kluczowe do efektywnego stylowania stron internetowych i tworzenia responsywnych, atrakcyjnych layoutów.

Pytanie 10

Której pseudoklasy/pseudoelementu użyć, aby wyróżnić kolorem wiersz tabeli, NAD którym jest kursor?

A.
::marker
B.
::first-line
Twoja odpowiedź
C.
:visited
D.
:hover
Poprawna odpowiedź
Niepoprawna odpowiedź. Pozostałe selektory dotyczą czego innego. :visited stylizuje odwiedzone linki, ::marker punktor listy, a ::first-line pierwszą linię tekstu - nie reagują na kursor. Wyróżnienie elementu pod myszą daje :hover.

Pytanie 11

Jakie polecenie umożliwia pokazanie konfiguracji serwera PHP, w tym między innymi informacji o: wersji PHP, systemie operacyjnym serwera oraz wartościach przedefiniowanych zmiennych?

A. phpcredits();
B. print_r(ini_get_all());
C. echo phpversion();
D. phpinfo();Twoja odpowiedź
Poprawna odpowiedź. Funkcja phpinfo() jest najczęściej używanym narzędziem w ekosystemie PHP do wyświetlania szczegółowych informacji dotyczących konfiguracji serwera PHP. Umożliwia uzyskanie dostępu do kluczowych danych, takich jak wersja PHP, informacje o systemie operacyjnym, wartości przedefiniowanych zmiennych, a także wiele innych ustawień konfiguracyjnych. Dzięki temu narzędziu deweloperzy mogą szybko zdiagnozować problemy związane z konfiguracją, a także zrozumieć, jakie moduły PHP są zainstalowane i aktywne. Przykładowo, uruchamiając skrypt z tą funkcją na stronie internetowej, automatycznie generowany jest szczegółowy raport w formie HTML, co ułatwia odczyt i zrozumienie. Standardy branżowe wskazują, że korzystanie z phpinfo() powinno być ograniczone do środowisk rozwijających, ponieważ ujawnia to wiele informacji o serwerze, co w kontekście bezpieczeństwa może stanowić ryzyko. W praktyce, dobrze jest również stosować funkcję w lokalnych środowiskach deweloperskich, by monitorować i weryfikować zmiany w konfiguracji serwera podczas pracy nad projektem.

Pytanie 12

Pierwszym etapem konwersji sygnału analogowego na cyfrowy jest:

A. filtrowanieTwoja odpowiedź
B. kodowanie
C. próbkowaniePoprawna odpowiedź
D. kwantyzacja
Niepoprawna odpowiedź. Pozostałe etapy następują PÓŹNIEJ lub są pomocnicze. Kwantyzacja przypisuje próbkom wartości z dyskretnej skali - ale dopiero PO ich pobraniu. Kodowanie zamienia te wartości na bity, czyli krok ostatni. Filtrowanie to obróbka sygnału, nie etap samej zamiany na cyfrę. Pierwszym etapem jest próbkowanie.

Pytanie 13

Określ wynik wykonania poniższego fragmentu kodu JavaScript.

var akapit = document.createElement("p");
document.body.appendChild(akapit);
A. Dodanie akapitu na samym końcu stronyPoprawna odpowiedź
B. Wstawienie akapitu na początku strony
C. Usunięcie akapitu z treści strony
D. Wyświetlenie okna dialogowego z komunikatem "akapit"Twoja odpowiedź
Niepoprawna odpowiedź. Wybór innej odpowiedzi niż dodanie akapitu na końcu strony może świadczyć o tym, że nie do końca rozumiesz, jak działa manipulacja DOM w JavaScript. Wydaje się, że sądzisz, że kod usuwa akapit, ale tak naprawdę używana jest tylko metoda do tworzenia i dodawania elementów, a usuwanie wymagałoby czegoś innego, jak removeChild czy remove. Również mylenie dodawania elementu na początku strony jest błędne, bo appendChild zawsze dodaje na końcu. Jakbyś chciał dodać na początku, musiałbyś zastosować insertBefore z odniesieniem do pierwszego dziecka. Myślenie, że kod wyświetla okno dialogowe, też nie ma podstaw, bo nie użyto tu żadnej metody dialogowej jak alert czy prompt. Z mojego doświadczenia, takie mylne podejście często wynika z braku praktyki z manipulacją DOM, co jest istotne do prawidłowego stosowania JavaScript w projektach webowych.

Pytanie 14

W języku SQL przedstawiony warunek jest równoważny warunkowi

liczba >= 10 AND liczba <= 100
A. liczba IN (10, 100)
B. NOT (liczba < 10 AND liczba > 100)
C. liczba LIKE '10%'
D. liczba BETWEEN 10 AND 100Twoja odpowiedź
Poprawna odpowiedź. Dobra robota! Twoja odpowiedź jest na pewno poprawna. Warunek 'liczba >= 10 AND liczba <= 100' w SQL oznacza, że musimy znaleźć liczbę, która jest większa lub równa 10 i mniejsza lub równa 100. Można to również zapisać jako 'liczba BETWEEN 10 AND 100', co po prostu definiuje zakres wartości od 10 do 100, łącznie z tymi granicami. Używanie operatorów takich jak BETWEEN jest naprawdę przydatne w SQL, bo ułatwia nam życie przy pisaniu zapytań i sprawia, że łatwiej jest zrozumieć, co ten kod właściwie robi. Fajnie umieć takie rzeczy, bo to naprawdę klucz do efektywnej pracy z bazami danych.

Pytanie 15

Który parametr obrazu zmieni się po zmianie wartości NASYCENIA (saturacji)?

A. intensywność (żywość) barwTwoja odpowiedź
B. ostrość krawędzi
C. kolejność wyświetlania pikseli
D. przezroczystość
Poprawna odpowiedź. Nasycenie (saturacja) określa INTENSYWNOŚĆ i czystość barw. Przy nasyceniu bliskim zera kolory bledną aż do skali szarości, a przy wysokim stają się soczyste i żywe - to typowy suwak w GIMP-ie czy Photoshopie, gdy zdjęcie ma wyglądać „mocniej” lub „spokojniej”. Sama jasność i barwa (odcień) pozostają, zmienia się tylko siła kolorów. Zapamiętaj: saturacja steruje żywością barw.

Pytanie 16

Kwerenda

ALTER TABLE artykuly MODIFY cena float;
ma na celu dokonanie zmian w tabeli artykuly.
A. zmienić typ kolumny cena na floatPoprawna odpowiedź
B. usunąć kolumnę o nazwie cena typu float
C. dodać kolumnę o nazwie cena z typem float, jeżeli jeszcze nie istniejeTwoja odpowiedź
D. zmienić nazwę kolumny cena na float
Niepoprawna odpowiedź. Twoja odpowiedź na temat usunięcia lub zmiany kolumny nie jest najlepsza w tym kontekście. Jeśli usuniemy kolumnę cena, to stracimy wszystkie dane, które tam były – a to na pewno by zaszkodziło, zwłaszcza gdy mówimy o cenach. Takie operacje robi się tylko wtedy, gdy dany atrybut jest naprawdę niepotrzebny albo był źle wprowadzony. Dodanie kolumny cena, o ile nie istnieje, wydaje się zmieniać strukturę danych, ale jeżeli już jest, to nie ma sensu. Taki ruch mógłby prowadzić do zduplikowania danych, co stoi w sprzeczności z zasadami normalizacji. A zmiana nazwy kolumny z cena na float to już w ogóle nieporozumienie, bo float to typ danych, a nie nazwa, więc wprowadziłoby to zamieszanie. Wszystkie te błędy wynikają z braku zrozumienia, jak działa struktura tabel w bazach danych. Zrozumienie tego jest kluczowe, zanim podejmiesz jakiekolwiek kroki, żeby coś zmieniać.

Pytanie 17

Aby uruchomić skrypt JavaScript, potrzebne jest oprogramowanie

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

Pytanie 18

Który z poniższych to ZŁOŻONY typ danych?

A.
bool
B.
class
Twoja odpowiedź
C.
float
D.
char
Poprawna odpowiedź. Typ ZŁOŻONY grupuje wiele składowych w jedną całość - takim typem jest class, łącząca pola (dane) i metody (zachowania) w jeden obiekt. Dlatego złożonym typem danych jest class.

Pytanie 19

Przy użyciu polecenia ALTER TABLE można

A. tworzyć nową tabelę
B. zmieniać strukturę tabeliPoprawna odpowiedź
C. usuwać tabelę
D. zmieniać wartości zapisane w rekordach tabeliTwoja odpowiedź
Niepoprawna odpowiedź. W kontekście zarządzania bazami danych istnieje wiele podstawowych operacji, które można wykonywać, a polecenie ALTER TABLE jest jednoznacznie związane z modyfikowaniem struktury tabeli, co wyklucza możliwość jego użycia do usuwania lub tworzenia tabel. Odpowiedź sugerująca, że ALTER TABLE może usuwać tabelę, jest merytorycznie błędna. Tego rodzaju operacje realizowane są przez inne polecenia, takie jak DROP TABLE, które służy do usuwania tabeli i jej danych. Podobnie, tworzenie tabeli jest realizowane poleceniem CREATE TABLE. Mylne stwierdzenie, że ALTER TABLE może być używane do modyfikacji wartości w rekordach, również jest niepoprawne, ponieważ zmiana wartości zapisanych w tabeli jest realizowana za pomocą polecenia UPDATE. Niezrozumienie różnicy pomiędzy tymi poleceniami może prowadzić do błędnych operacji na bazie danych, narażających na utratę danych lub nieprawidłowe funkcjonowanie aplikacji. Dlatego tak ważne jest zrozumienie, jakie konkretne operacje można wykonać za pomocą poszczególnych poleceń SQL oraz ich właściwego zastosowania w praktyce, aby zapewnić integralność i bezpieczeństwo danych.

Pytanie 20

Fragment kodu w języku HTML zawarty w ramce ilustruje zestawienie

Ilustracja do pytania
A. wypunktowaną.
B. skrótów.
C. odnośników.
D. numerowaną.Twoja odpowiedź
Poprawna odpowiedź. Kod HTML zawierający znaczniki <ol> oraz <li> tworzy listę numerowaną ponieważ <ol> oznacza ordered list czyli listę uporządkowaną co skutkuje automatycznym numerowaniem każdego elementu w przeglądarkach internetowych. Znaczniki <li> reprezentują pojedyncze elementy listy zapewniając organizację danych w czytelnej formie. Taki sposób przedstawiania informacji jest powszechnie stosowany w tworzeniu dokumentów HTML i stron internetowych gdzie hierarchia i kolejność elementów ma kluczowe znaczenie. Za pomocą CSS można dodatkowo dostosować styl numerowania oraz wizualne aspekty listy co pozwala na większą elastyczność w projektowaniu interfejsu użytkownika. Standardy internetowe takie jak te rekomendowane przez W3C zachęcają do stosowania semantycznych znaczników co poprawia dostępność i SEO strony. Ponadto listy numerowane są użyteczne w sytuacjach gdy wymagana jest jasna kolejność wykonywania zadań lub prezentacja kroków w procesie co czyni je idealnym narzędziem zarówno w dokumentacji technicznej jak i w interaktywnych przewodnikach online.

Pytanie 21

Który zapis wyświetli słowo „TEKST” w kolorze czarnym?

A.
<body color="black">TEKST</font>
B.
<font color="czarny">TEKST</font>
Twoja odpowiedź
C.
<font color="#000000">TEKST</font>
Poprawna odpowiedź
D.
<body bgcolor="black">TEKST</body>
Niepoprawna odpowiedź.<body color="black"> jest błędny - <body> nie ma atrybutu color, a znaczniki są niedomknięte. <font color="czarny"> używa polskiej nazwy koloru, której HTML nie rozumie (nazwy są po angielsku lub kodem). <body bgcolor="black"> ustawia kolor TŁA. Czarny tekst daje <font color="#000000">TEKST</font>.

Pytanie 22

Kwerenda pozwalająca zmienić wiele rekordów lub przenieść wiele rekordów w jednej operacji nosi nazwę kwerendy

A. krzyżowej
B. wybierającej
C. parametrycznejTwoja odpowiedź
D. funkcjonalnejPoprawna odpowiedź
Niepoprawna odpowiedź. Pozostałe kwerendy nie modyfikują masowo danych. Wybierająca tylko odczytuje (SELECT), parametryczna pyta o wartość przed uruchomieniem, a krzyżowa podsumowuje dane w układzie tabelarycznym. Masowej zmiany rekordów dokonuje kwerenda funkcjonalna.

Pytanie 23

Która metoda JavaScript dodaje nowy element na końcu tablicy?

A.
shift()
B.
push()
Poprawna odpowiedź
C.
pop()
Twoja odpowiedź
D.
unshift()
Niepoprawna odpowiedź. Pozostałe metody robią co innego. pop() USUWA ostatni element, shift() usuwa PIERWSZY, a unshift() dodaje na POCZĄTKU. Na końcu dodaje push().

Pytanie 24

Wskaż właściwy sposób zapisu instrukcji w języku JavaScript.

A. document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " . 3.14 );
B. document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " ; 3.14 );
C. document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " 3.14 );Twoja odpowiedź
D. document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " + 3.14 );Poprawna odpowiedź
Niepoprawna odpowiedź. W analizowanych odpowiedziach pojawiają się różne błędy związane z używaniem operatorów oraz składnią języka JavaScript. Przede wszystkim, w żadnej z niepoprawnych wersji nie zastosowano właściwego operatora konkatenacji. Operator '+', który jest kluczowy dla łączenia stringów i wartości liczbowych, został pominięty lub źle użyty. W pierwszej z analizowanych odpowiedzi brak jest operatora, co skutkuje błędnym zrozumieniem, że można po prostu umieścić tekst i liczbę obok siebie bez wyraźnego połączenia. Kolejna odpowiedź używa nieprawidłowego znaku '.' do próby konkatenacji, co jest zupełnie niezgodne z składnią JavaScript. Taki błąd wskazuje na nieporozumienie co do zasad działania języka, ponieważ operator '.' jest używany do dostępu do właściwości obiektów, a nie do łączenia wartości. W jeszcze jednej odpowiedzi zastosowano średnik w miejscu, gdzie oczekiwano operatora, co również prowadzi do błędu składniowego. Te błędy pokazują, że kluczowe jest zrozumienie struktury i składni języka, a także znajomość dostępnych operatorów. Użycie 'document.write' jest często źródłem problemów, ponieważ umieszczanie go w niewłaściwych miejscach kodu może prowadzić do nadpisania całej zawartości strony, co jest szczególnie problematyczne w przypadku dynamicznych aplikacji. Warto też pamiętać o konwencjach i dobrych praktykach związanych z programowaniem, które zalecają unikanie 'document.write' na rzecz bardziej nowoczesnych metod manipulacji DOM.

Pytanie 25

Którą instrukcją można zastąpić pętlę for?

A.
case
B.
switch
C.
while
Twoja odpowiedź
D.
continue
Poprawna odpowiedź. Pętlę for można zastąpić pętlą while - obie powtarzają kod, dopóki warunek jest prawdziwy, tyle że licznik i krok w while zapisuje się osobno. Dlatego zamiennikiem for jest while.

Pytanie 26

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

A. wykluczenia.
B. sumy.
C. części wspólnej.Twoja odpowiedź
D. grupowania.Poprawna odpowiedź
Niepoprawna odpowiedź. 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 27

Zaprezentowano kod dla tabeli 3x2. Jaką modyfikację należy wprowadzić w drugim wierszu, aby tabela przypominała tę z obrazka, gdzie wiersz jest niewidoczny?

<table>
    <tr>
        <td style="border: solid 1px;">Komórka 1</td>
        <td style="border: solid 1px;">Komórka 2</td>
    </tr>
    <tr>
        <td style="border: solid 1px;">Komórka 3</td>
        <td style="border: solid 1px;">Komórka 4</td>
    </tr>
    <tr>
        <td style="border: solid 1px;">Komórka 5</td>
        <td style="border: solid 1px;">Komórka 6</td>
    </tr>
</table>
/efekt jest na obrazie - nie dołączam - nie analizuj/
Ilustracja do pytania
A. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"display: none"</span>&gt;</pre>Poprawna odpowiedź
B. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"clear: none"</span>&gt;</pre>Twoja odpowiedź
C. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"visibility: hidden"</span>&gt;</pre>
D. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"display: table-cell"</span>&gt;</pre>
Niepoprawna odpowiedź. Zastosowanie niewłaściwych właściwości CSS w tabelach może prowadzić do niezamierzonych efektów wizualnych i funkcjonalnych. 'Display: none' usunąłby wiersz z układu dokumentu, co skutkowałoby przesunięciem w górę wierszy poniżej. To podejście jest użyteczne, gdy element powinien być całkowicie usunięty z przestrzeni wizualnej i układu, ale nie spełniałoby celu przedstawionego w pytaniu, gdzie układ ma pozostać niezmieniony. Z kolei 'clear: none' jest właściwością CSS dotyczącą floatów, a nie widoczności, co oznacza, że nie miałoby żadnego wpływu na wyświetlanie wiersza tabeli. Jest to typowy błąd polegający na myleniu właściwości CSS w kontekście ukrywania elementów. Właściwość 'display: table-cell' jest stosowana dla elementów traktowanych jako komórki tabeli, co nie jest odpowiednie dla wierszy tabeli. Wybierając tę właściwość, użytkownik mógłby mylnie sądzić, że ma to wpływ na widoczność, podczas gdy w rzeczywistości zmienia jedynie sposób renderowania elementu. Prawidłowe rozumienie różnic między 'visibility' a 'display' jest kluczowe w tworzeniu przewidywalnych i stabilnych interfejsów użytkownika, co jest jednym z fundamentów dobrego projektowania front-endu. Wybór niewłaściwego podejścia do ukrywania elementów może prowadzić do niepożądanych zmian w interfejsie, co wpływa na użyteczność i estetykę strony.

Pytanie 28

Której wartości właściwości background-attachment użyć, aby tło pozostało nieruchome względem okna przeglądarki?

A.
scroll
Twoja odpowiedź
B.
inherit
C.
fixed
Poprawna odpowiedź
D.
local
Niepoprawna odpowiedź. Pozostałe wartości zachowują się inaczej. scroll (domyślna) przewija tło razem z treścią - odwrotnie do wymagania. local wiąże tło z przewijaniem zawartości elementu, a inherit dziedziczy ustawienie po rodzicu. Tło nieruchome względem okna daje fixed.

Pytanie 29

Na czym polega parkowanie domeny?

A. na zmianie właściciela domeny (cesji)
B. na utworzeniu strefy DNS domeny i wskazaniu serwerów nazwPoprawna odpowiedź
C. na dodaniu rekordu CNAME (aliasu) dla domenyTwoja odpowiedź
D. na zakupie (rejestracji) nowej domeny
Niepoprawna odpowiedź. Pozostałe odpowiedzi opisują inne czynności związane z domeną. Zakup (rejestracja) domeny to nabycie prawa do nazwy w danym rejestrze - pierwszy krok, ale jeszcze nie parkowanie. Dodanie rekordu CNAME to konkretna operacja na DNS (alias jednej nazwy na drugą), a nie całościowe skonfigurowanie domeny. Zmiana właściciela (cesja) to przeniesienie praw do domeny na inny podmiot. Parkowanie polega na ustawieniu strefy DNS i wskazaniu serwerów nazw, dlatego ta odpowiedź jest poprawna.

Pytanie 30

Strona internetowa została stworzona w języku XHTML. Który z poniższych kodów reprezentuje realizację zaprezentowanego fragmentu strony, jeśli nie zdefiniowano żadnych stylów CSS?

Ilustracja do pytania
A. D
B. ATwoja odpowiedź
C. C
D. BPoprawna odpowiedź
Niepoprawna odpowiedź. Odpowiedzi nieprawidłowe nie spełniają wymogów semantycznych oraz składniowych XHTML. XHTML wymaga, aby dokumenty były poprawne pod względem składniowym, co oznacza między innymi zamykanie wszystkich znaczników oraz stosowanie poprawnej struktury dokumentu. Warianty odpowiedzi, które używają znacznika <b> zamiast semantycznych nagłówków jak <h1>, nie są zgodne z dobrymi praktykami, ponieważ <h1> nadaje kontekst semantyczny, informując o hierarchii treści. W przypadku XHTML, znaczniki powinny być zamykane, a ich nazwy pisane małymi literami, co jest kluczowe dla zgodności z XML. Brak odpowiedniej struktury, jak w przypadku użycia <b> do nagłówków, może prowadzić do niepoprawnej interpretacji przez przeglądarki oraz problemy z dostępnością dla technologii wspomagających. Ponadto, używanie znaczników inline jak <br> do wizualnego formatowania tekstu nie jest zalecane, gdyż nie oddziela treści od prezentacji, co jest jednym z fundamentalnych założeń nowoczesnego tworzenia stron internetowych. To może prowadzić do problemów z dostępnością oraz negatywnie wpływać na SEO, jako że wyszukiwarki lepiej interpretują treści poprawnie zorganizowane i semantycznie poprawne.

Pytanie 31

W CSS zapis selektora p > i { color: red; } wskazuje, że kolor czerwony zostanie zastosowany do

A. wszystkiego tekstu w znaczniku <p> z wyjątkiem tekstu w znaczniku <i>
B. tylko tego tekstu w znaczniku <p>, który ma przypisaną klasę o nazwie i
C. wszelkiego tekstu w znaczniku <p> lub wszelkiego tekstu w znaczniku <i>
D. wyłącznie tekstu w znaczniku <i>, który znajduje się bezpośrednio wewnątrz znacznika <p>Twoja odpowiedź
Poprawna odpowiedź. Zapis selektora CSS p > i { color: red; } jest precyzyjny i wskazuje, że kolor czerwony zostanie zastosowany wyłącznie do elementów <i>, które znajdują się bezpośrednio w obrębie elementu <p>. Warto zrozumieć, że symbol '>' oznacza selektor dziecka, co oznacza, że styl dotyczy tylko tych <i>, które są bezpośrednimi potomkami <p>. Przykładowo, jeśli mamy strukturę HTML:<p>To jest <i>przykład</i> tekstu <i>z <i>zagnieżdżonym</i> elementem</i>.</p>, to tylko pierwszy znacznik <i> (czyli "przykład") będzie miał kolor czerwony, ponieważ drugi znacznik <i> jest zagnieżdżony i nie jest bezpośrednim dzieckiem <p>. W kontekście standardów CSS, stosowanie selektorów dziecka jest zalecane, gdyż pozwala na precyzyjniejsze określenie, do których elementów styl ma być zastosowany, co w praktyce ułatwia zarządzanie stylami na stronach z bardziej złożoną strukturą HTML.

Pytanie 32

Który zapis wyświetli obraz kotek.jpg z tekstem alternatywnym „obrazek kotka”?

A.
<img src="/kotek.jpg" alt="obrazek kotka">
Twoja odpowiedź
B.
<img src="/kotek.jpg" title="obrazek kotka">
C.
<img href="/kotek.jpg" alt="obrazek kotka">
D.
<img href="/kotek.jpg" title="obrazek kotka">
Poprawna odpowiedź. Obraz wstawia się znacznikiem <img>, podając źródło w src i tekst alternatywny w alt: <img src="/kotek.jpg" alt="obrazek kotka">. Dlatego poprawny jest ten zapis.

Pytanie 33

Które dane zostaną wybrane w wyniku działania kwerendy na przedstawionych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";
idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Identyfikatory równe 7 oraz 8.Poprawna odpowiedź
B. Wszystkie identyfikatory.Twoja odpowiedź
C. Brak danych.
D. Tylko identyfikator równy 8.
Niepoprawna odpowiedź. W analizowanej kwerendzie zastosowanie operatora LIKE z wzorcem '2%4' skutkuje koniecznością zrozumienia, jak działają operatory porównania w SQL. Odpowiedzi sugerujące puste dane lub zwracające wszystkie id są błędne, ponieważ nie uwzględniają specyfiki zastosowanego wzorca. Mówiąc o pustych danych, zakłada się, że żaden z rekordów nie spełniałby kryteriów, co jest fałszywe, gdyż odpowiednie rekordy istnieją. Z kolei odpowiedź dotycząca wszystkich id ignoruje kluczową funkcję operatora LIKE, który pozwala na filtrowanie danych na podstawie rozpoznawania wzorców, a nie zwracanie całości. Odpowiedzi wskazujące na konkretne id, takie jak 8 lub kombinacje 7 i 8, nie uwzględniają logicznego rozumienia, że kwerenda zwraca wyniki spełniające określone kryteria. Ważne jest, aby pamiętać, że w analizach SQL kluczowe jest zrozumienie, jak operatory wpływają na wyniki, co może być łatwo pominięte w przypadku niewłaściwej interpretacji syntaktycznej zapytania.

Pytanie 34

W języku JavaScript, deklaracja:

var x=true;
sprawia, że zmienna x ma typ
A. logiczyPoprawna odpowiedź
B. enumeracyjnyTwoja odpowiedź
C. łańcuch znaków
D. numeryczny
Niepoprawna odpowiedź. Odpowiedzi, które dotyczą typów danych jak ciągi znaków, liczby czy wyliczeniowe, są tutaj nietrafione. Na początek warto wspomnieć, że ciąg znaków w JavaScript to po prostu tekst, np. 'hello' lub '123'. To zupełnie co innego niż typ logiczny. Zmienna z wartością true to nie tekst, więc nie da się jej traktować jako ciągu znaków. Jeśli chodzi o typ liczbowy, to on dotyczy wartości takich jak 1, 2, 3 czy 3.14. Często można się pomylić, gdy wartości logiczne są brane pod uwagę w kontekście arytmetyki, co prowadzi do błędnych wniosków. Typ wyliczeniowy jest zazwyczaj używany w językach, które mają enumeracje, a w czystym JavaScript tego nie ma. Typ logiczny ma swoje unikalne zastosowania, szczególnie w tworzeniu warunków i decyzyjności w kodzie. Jak się nie zrozumie tych różnych typów, to można łatwo wpaść w pułapki logiczne, co jest dość powszechnym problemem, zwłaszcza u początkujących programistów. Dlatego ważne jest, by przy nauce programowania widzieć, jak różne typy danych mogą wpływać na kod i unikać uproszczeń, które mogą dać błędne rezultaty.

Pytanie 35

W dokumencie HTML zdefiniowano pewne elementy w klasie o nazwie "nomargin". W celu przeprowadzenia operacji na tych elementach za pomocą języka JavaScript, można wykorzystać funkcję

A. getElementsByTagName("nomargin")Twoja odpowiedź
B. getElementById("nomargin")
C. getElement("nomargin")
D. getElementsByClassName("nomargin")Poprawna odpowiedź
Niepoprawna odpowiedź. Niepoprawność wybranych odpowiedzi wynika z niewłaściwego rozumienia zasad selekcji elementów w DOM przy użyciu JavaScript. Funkcja getElement("nomargin") nie istnieje w standardowym API JavaScript, co sprawia, że nie może zostać zastosowana do uzyskania elementów na stronie. Wybranie tej opcji świadczy o braku znajomości dostępnych metod w obiekcie document. Podobnie, zastosowanie getElementById("nomargin") jest niewłaściwe, ponieważ ta metoda działa jedynie na elementach, które mają unikalny identyfikator (id). Zgodnie z zasadami HTML, identyfikatory muszą być unikalne w obrębie dokumentu, co oznacza, że nie można przypisać tej samej wartości id wielu elementom. Dlatego wybór tej metody wskazuje na nieporozumienie dotyczące struktury HTML oraz zasad dotyczących unikalności identyfikatorów. Ponadto, getElementsByTagName("nomargin") jest również błędne, ponieważ ta metoda służy do selekcji elementów na podstawie ich nazwy tagu, a nie klasy. W praktyce, błędne podejście do selekcji może prowadzić do błędów w manipulacji DOM oraz obniżenia wydajności aplikacji, gdyż niewłaściwie wybrane metody mogą nie zwracać oczekiwanych wyników. Warto więc zapoznać się z dokumentacją i zrozumieć, jakie metody są dostępne oraz w jakim kontekście można je stosować, aby poprawnie działać w środowisku JavaScript.

Pytanie 36

Podano fragment kodu PHP, w którym znajduje się zadeklarowana zmienna typu tablica. Jakie imię zostanie wyświetlone po wykonaniu tego kodu?

Ilustracja do pytania
A. TomaszTwoja odpowiedź
B. Aleksandra
C. Anna
D. KrzysztofPoprawna odpowiedź
Niepoprawna odpowiedź. W zadanym pytaniu istotne jest zrozumienie indeksowania tablic w PHP które jest językiem o indeksowaniu zerowym. Oznacza to że pierwszy element tablicy ma indeks 0 drugi ma indeks 1 i tak dalej. Częstym błędem jest intuicyjne przypisywanie pierwszemu elementowi indeksu 1 co prowadzi do niepoprawnych wyników. W przypadku omawianego kodu tablica zawiera elementy: 'Anna' 'Tomasz' 'Krzysztof' i 'Aleksandra'. Aby uzyskać dostęp do trzeciego elementu należy użyć indeksu 2 a nie 3. Element o indeksie 2 w tej tablicy to 'Krzysztof' co jest poprawną odpowiedzią. Pomyłki w indeksowaniu mogą prowadzić do trudnych do zdiagnozowania błędów w programach takich jak 'undefined offset' gdy próbujemy uzyskać dostęp do nieistniejącego indeksu. Dlatego ważne jest aby zawsze weryfikować zakres i poprawność używanych indeksów zwłaszcza w skomplikowanych strukturach danych. Dodatkowo warto zaznaczyć że w niektórych językach programowania takie jak Python indeksowanie również jest zerowe co pozwala na łatwiejsze przejście pomiędzy różnymi językami programowania bez zmiany mentalnego modelu działania tablic.

Pytanie 37

Tabele: Studenci, Zapisy, Zajecia są powiązane relacją. Aby wybrać jedynie nazwiska studentów oraz odpowiadające im idZajecia dla studentów z grupy 15, należy wydać kwerendę

Ilustracja do pytania
A. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;
B. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;Poprawna odpowiedź
C. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;Twoja odpowiedź
D. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
Niepoprawna odpowiedź. Wśród proponowanych rozwiązań pojawiają się charakterystyczne błędy, często spotykane przy pierwszych próbach pracy z relacyjnymi bazami danych. Bardzo łatwo jest pomylić się na etapie łączenia tabel, zwłaszcza gdy nie do końca rozumie się, jak działa klucz główny i obcy w praktyce. Jeden z typowych problemów polega na pominięciu warunku określającego, w jaki sposób tabele mają być połączone – wtedy system bazodanowy tworzy tzw. iloczyn kartezjański, czyli paruje każdy rekord z jednej tabeli z każdym z drugiej, co zwykle daje absurdalnie dużo wyników i nie ma nic wspólnego z rzeczywistością. Popularny błąd to też użycie niewłaściwych pól do łączenia – np. próba połączenia idStudenta z idZajecia, które są ze sobą kompletnie niepowiązane, bo reprezentują dwa różne byty. Z mojego doświadczenia wynika, że często myli się pole id w tabeli Studenci z polem idZajecia w tabeli Zapisy – to są zupełnie inne klucze i nie mają prawa się zgadzać. Inna pułapka pojawia się, gdy zapomni się o warunku WHERE filtrującym po konkretnej grupie, przez co wynik zawiera dane wszystkich studentów, a nie tylko tych z interesującej nas grupy. Trzeba też pamiętać, że poprawna kolejność oraz jawne stosowanie JOIN z warunkiem ON to nie tylko kwestia składni, ale i wydajności oraz czytelności kodu. Warto mocno utrwalić sobie, że łączenie przez JOIN i jasno określony warunek ON to podstawa dobrej praktyki i niemal zawsze sprawdza się przy pracy z większymi, złożonymi bazami danych – zupełnie inaczej niż domyślne, niejawne łączenia czy łączenie po złych polach.

Pytanie 38

Jeśli zmienna $x przechowuje dowolną dodatnią liczbę naturalną, przedstawiony kod źródłowy PHP ma za zadanie wyświetlić:

$licznik = 0;
while ($licznik != $x)
{
    echo $licznik;
    $licznik++;
}
A. kolejne liczby od x do 0Twoja odpowiedź
B. losowe liczby z przedziału (0, x)
C. liczby wczytywane z klawiatury, tak długo aż zostanie wczytana wartość x
D. kolejne liczby od 0 do x-1Poprawna odpowiedź
Niepoprawna odpowiedź. Niektóre odpowiedzi sugerują niepoprawne interpretacje kodu PHP. Na przykład, propozycja wyświetlenia losowych liczb z zakresu (0, x) nie jest prawidłowa, ponieważ nie ma w kodzie żadnego komponentu generującego liczby losowe. Również pomysł na wczytywanie liczb z klawiatury jest nieprawidłowy, kod nie zawiera żadnej funkcji umożliwiającej wprowadzanie danych przez użytkownika. Ostatecznie, propozycja wyświetlenia liczb od x do 0 również jest błędna, gdyż zmienna $licznik jest zawsze inkrementowana, co oznacza, że jej wartość zawsze wzrasta. Błędne interpretacje wynikają z niewłaściwego zrozumienia funkcjonowania pętli while oraz procesu inkrementacji zmiennych. Ważne jest, aby zawsze dokładnie analizować każdy fragment kodu, zwracając szczególną uwagę na instrukcje warunkowe i manipulacje zmiennymi.

Pytanie 39

Tabela naprawy ma kolumny klient i czyNaprawione. Jak usunąć rekordy, w których czyNaprawione jest prawdą?

A.
DELETE FROM naprawy WHERE czyNaprawione = TRUE;
Poprawna odpowiedź
B.
DELETE naprawy WHERE czyNaprawione = TRUE;
C.
DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
Twoja odpowiedź
D.
DELETE FROM naprawy;
Niepoprawna odpowiedź.DELETE FROM naprawy; bez WHERE usunęłoby WSZYSTKIE wiersze. DELETE naprawy WHERE ... pomija słowo FROM. DELETE klient FROM ... błędnie wskazuje kolumnę (DELETE usuwa całe wiersze). Poprawne jest DELETE FROM naprawy WHERE czyNaprawione = TRUE;.

Pytanie 40

Tabela filmy ma klucz główny id i klucz obcy rezyserID. Tabela rezyserzy ma klucz główny id. Jak poprawnie połączyć je w SELECT (relacja jeden reżyser → wiele filmów)?

A.
... filmy JOIN rezyserzy ON filmy.rezyserID = rezyserzy.filmyID ...
B.
... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmyID ...
C.
... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...
Twoja odpowiedź
D.
... filmy JOIN rezyserzy ON filmy.rezyserID = rezyserzy.id ...
Poprawna odpowiedź
Niepoprawna odpowiedź. Złączenie musi zestawiać klucz obcy z głównym powiązanej tabeli. filmy.id = rezyserzy.id porównuje dwa klucze GŁÓWNE (bez sensu logicznego). Warianty z rezyserzy.filmyID odwołują się do nieistniejącej kolumny. Poprawne jest ON filmy.rezyserID = rezyserzy.id.