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: 27 lipca 2026 13:45
  • Data zakończenia: 27 lipca 2026 14:02

Egzamin zdany!

Wynik: 24/40 punktów (60,0%)

Wymagane minimum: 20 punktów (50%)

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

W CSS zapis w formie: p{background-image: url"rysunek.jpg")} spowoduje, że rysunek.png stanie się

A. tłem każdego bloku tekstowego
B. tłem całej witryny
C. pokazany, jeśli w kodzie użyty będzie znacznik img
D. wyświetlany obok każdego bloku tekstowego
Zapis p{background-image: url('rysunek.jpg')} oznacza, że każdy <p>, czyli paragraf, dostanie jako tło obrazek o nazwie rysunek.jpg. To jest po prostu sposób, żeby nadać każdyemu paragrafowi ten sam wygląd. Działa to świetnie, gdy chcesz, żeby cały tekst miał spójny styl czy dodać coś wizualnego do treści. Ważne, żeby ten plik rysunek.jpg był w dobrym miejscu, bo jak go nie znajdziesz, to przeglądarka go nie wczyta. Można to wykorzystać, żeby strona wyglądała bardziej estetycznie i przyciągała wzrok – każdy paragraf z własnym tłem na pewno sprawi, że będzie się lepiej czytało. Możesz też bawić się dodatkowymi właściwościami w CSS, jak background-repeat czy background-size, bo to otwiera drzwi do jeszcze ciekawszych efektów wizualnych.

Pytanie 2

W języku JavaScript należy uzyskać dostęp do elementu w pierwszym akapicie podanego kodu HTML. Jak można to zrobić za pomocą funkcji

<p>pierwszy paragraf</p>
<p>drugi paragraf</p>
<p>trzeci paragraf</p>
...
A. getElement('p');
B. getElementById('p1');
C. getElementByTagName('p')[0];
D. getElementByClassName('p.1')[0];
Wariant getElement('p') jest niepoprawny, ponieważ nie istnieje w JavaScript żadna funkcja o takiej nazwie. Odwoływanie się do elementów DOM w JavaScript wymaga stosowania precyzyjnych i zgodnych z dokumentacją metod, takich jak getElementById, getElementsByTagName czy querySelector. Kolejna opcja, getElementById('p1'), jest błędna w kontekście tego pytania, ponieważ getElementById wymaga podania unikalnego identyfikatora ID, który w tym przypadku nie został określony w kodzie HTML. Użycie tej metody odnosiłoby się do elementu posiadającego atrybut id równy 'p1', co nie pasuje do przedstawionego kodu. Z kolei getElementByClassName('p.1') jest niepoprawne z kilku powodów. Po pierwsze, funkcja ta szuka elementów na podstawie klasy, a w kodzie HTML nie ma klasy o nazwie 'p.1'. Po drugie, format 'p.1' sugeruje błędne użycie znaków, ponieważ kropka jest separatorem w nazwach klas, a nie ich częścią. Poprawne odwołanie do elementu pierwszego paragrafu wymaga zastosowania jednej z metod iterujących po elementach, jak getElementsByTagName, która zwraca listę elementów o danym tagu, a następnie użycia indeksowania, aby precyzyjnie wskazać pierwszy element tej listy. Zrozumienie tych różnic i odpowiednie stosowanie metod JavaScript jest kluczowe dla efektywnego zarządzania elementami DOM i tworzenia dynamicznych stron WWW. Zwracanie uwagi na poprawne identyfikatory, klasy i struktury metod to fundament przy pracy z JavaScript i DOM, który pozwala na uniknięcie wielu powszechnie popełnianych błędów.

Pytanie 3

Który efekt został zaprezentowany na filmie?

A. Zmiana jasności zdjęć.
B. Zwiększenie ostrości zdjęcia.
C. Przenikanie zdjęć.
D. Zmniejszenie kontrastu zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 4

Jaki rezultat zostanie wyświetlony po wykonaniu przedstawionego kodu HTML?

<ol>
    <li>punkt</li>
    <li>punkt
        <ul>
            <li>punkt</li>
            <li>punkt</li>
        </ul>
    </li>
    <li>punkt</li>
</ol>
<ol type="A" start="4">
    <li>punkt</li>
</ol>

1. punkt

2. punkt

  • punkt
  • punkt

3. punkt

4. punkt

A.

1. punkt

2. punkt

  • punkt
  • punkt

3. punkt

4. punkt

B.

1. punkt

2. punkt

  • punkt
  • punkt

3. punkt

D. punkt

C.

1. punkt

2. punkt

  • punkt
  • punkt

3. punkt

D. punkt

D.

A. C.
B. B.
C. D.
D. A.
Niestety, twoja odpowiedź nie była poprawna. Może wynikać to z braku zrozumienia struktury i semantyki kodu HTML, szczególnie w kontekście list uporządkowanych (``) i nieuporządkowanych (``). Kod HTML w pytaniu składa się z dwóch uporządkowanych list, z których pierwsza zawiera trzy elementy. Drugi element pierwszej listy zawiera zagnieżdżoną nieuporządkowaną listę z dwoma elementami. Warto zaznaczyć, że elementy listy nieuporządkowanej są zazwyczaj wyświetlane z kropkami. Druga lista uporządkowana zaczyna numerację od litery 'D', co jest zgodne z poprawną odpowiedzią. Typowym błędem jest niezauważenie zagnieżdżonych list lub niepoprawne zrozumienie funkcji atrybutu start w liście uporządkowanej. W praktyce, zrozumienie struktury i semantyki tagów HTML jest kluczowe dla tworzenia efektywnych i użytecznych stron internetowych. Proponuję, abyś ponownie przeanalizował kod HTML, skupiając się na strukturze list i zrozumieniu atrybutów stosowanych w tagach list.

Pytanie 5

Jak zapisać w JS warunek: a i b są UJEMNE, a a jest większe od -50?

A.
if (a < 0 && b < 0 && a > -50)
B.
if (a < 0 && b < 0 || a > -50)
C.
if (a < 0 || (b < 0 && a > -50))
D.
if (a < 0 || b < 0 || a > -50)
Pozostałe zapisy źle łączą warunki. || wystarczyłoby spełnić jeden z nich, więc przeszłyby też liczby dodatnie. Mieszanie || z && zmienia sens („a ujemne LUB (b ujemne i a > -50)”). Wszystkie trzy naraz wymusza a < 0 && b < 0 && a > -50.

Pytanie 6

Jak utworzyć w PHP cookie o nazwie "owoce" i wartości "jabłko", ważne przez godzinę?

A.
setcookie("owoce", "jabłko", time()+3600);
B.
cookie("jabłko", "owoce", 3600);
C.
setcookie("jabłko", "owoce", time()+3600);
D.
cookie("owoce", "jabłko", 3600);
Cookie tworzy w PHP funkcja setcookie(nazwa, wartość, czas_wygaśnięcia), przy czym czas podaje się jako moment w przyszłości - stąd time()+3600 (bieżąca chwila plus godzina). Daje to setcookie("owoce", "jabłko", time()+3600);, gdzie „owoce” to nazwa, a „jabłko” wartość. Dlatego ta funkcja jest poprawna.

Pytanie 7

Plik cookie utworzony przedstawionym poleceniem PHP:

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. będzie przechowywany na serwerze przez jedną godzinę.
B. wygaśnie po jednej dobie od jego utworzenia.
C. będzie przechowywany na serwerze przez jedną dobę.
D. wygaśnie po jednej godzinie od jego utworzenia.
Kod z funkcją setcookie() w PHP bardzo często myli się z mechanizmami przechowywania danych po stronie serwera, dlatego łatwo tu o błędne skojarzenia. W tym przykładzie kluczowe są dwie rzeczy: po pierwsze, gdzie fizycznie przechowywane jest cookie, a po drugie, w jakiej jednostce podajemy czas. Ciasteczka HTTP są zawsze przechowywane po stronie klienta, czyli w przeglądarce użytkownika, w jej lokalnym magazynie. Serwer jedynie informuje przeglądarkę, jaki ma być czas życia takiego wpisu, wysyłając odpowiedni nagłówek Set-Cookie z datą wygaśnięcia. Stąd pomysł, że cookie „będzie przechowywane na serwerze” jest po prostu nietrafiony – serwer nie ma osobnego magazynu na ciasteczka użytkowników, on tylko je odczytuje z nagłówków przychodzących żądań i ewentualnie ustawia nowe. Druga częsta pomyłka dotyczy samego czasu. Funkcja time() zwraca aktualny timestamp w sekundach od 1.01.1970, a w wyrażeniu 3600 * 24 wyliczana jest liczba sekund w jednej dobie. Jeśli ktoś pobieżnie spojrzy na zapis, może skojarzyć 3600 z godziną i założyć, że cookie jest ważne tylko godzinę, ignorując mnożenie przez 24. To typowy błąd „czytania po łebkach” kodu. Tymczasem przeglądarka dostaje konkretny moment w przyszłości, przesunięty o 86400 sekund, i do tej chwili będzie wysyłać cookie przy każdym żądaniu do odpowiedniej domeny i ścieżki. Warto też pamiętać, że samo istnienie cookie nie oznacza trwałego przechowywania danych po stronie serwera. Dane z ciasteczka trafiają na serwer dopiero, gdy przeglądarka wyśle je w nagłówku HTTP. Dlatego planując logikę aplikacji, trzeba jasno rozróżniać dane sesyjne na serwerze (np. w $_SESSION) od danych w cookie, które użytkownik może modyfikować po swojej stronie i które wygasają dokładnie według tego timestampu, jaki podamy w setcookie().

Pytanie 8

Warunek zapisany w PHP wyświetli liczbę, jeśli

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. wynik dzielenia liczby przez 2 wynosi 0
B. jest ona dodatnia
C. jest ona liczbą pierwszą
D. jest ona parzysta
Warunek zapisany w języku PHP używa operatora modulo (%) do sprawdzenia, czy dana liczba jest parzysta. Operator modulo zwraca resztę z dzielenia liczby przez inną liczbę co w przypadku parzystości oznacza że reszta z dzielenia liczby przez 2 wynosi 0. W praktyce wykorzystuje się to do sprawdzenia czy liczba jest podzielna przez 2 bez reszty co jest definicją liczby parzystej. W kodowaniu warunki te są przydatne w algorytmach które wymagają działania na liczbach parzystych lub nieparzystych jak np. filtrowanie danych czy sortowanie. Dobre praktyki programistyczne sugerują wykorzystywanie tego typu operacji w przypadku gdy istnieje potrzeba optymalizacji warunków logicznych w kodzie. Umiejętność rozpoznawania i implementacji takich wzorców kodowania jest kluczowa dla pisania efektywnego i czytelnego kodu. Dzięki temu łatwiej można zarządzać dużymi zbiorami danych i operować na nich w sposób zautomatyzowany co jest podstawą w dzisiejszych aplikacjach webowych.

Pytanie 9

Aby w jezyku CSS ustawic czerwony kolor dla tekstu, mozna uzyc stylu:

A.
color: rgb(#FF0000);
B.
text-color: rgb(255,0,0);
C.
color: rgb(255,0,0);
D.
text-color: rgb(#FF0000);
Kolor tekstu w CSS ustawia wlasciwosc color, a nie zadna inna nazwa - to ona odpowiada za barwe znakow elementu. Wartosc mozna podac na kilka sposobow, a jednym z nich jest funkcja rgb(), ktora przyjmuje trzy skladowe: czerwona, zielona i niebieska, kazda w zakresie od 0 do 255. Zapis rgb(255,0,0) oznacza pelne nasycenie czerwieni przy zerowej zieleni i zerowym blekicie, czyli czysty czerwony. Dlatego deklaracja color: rgb(255,0,0); jest jedyna poprawna sposrod podanych - laczy wlasciwa wlasciwosc z prawidlowo zapisana funkcja rgb().

Pytanie 10

W SQL klauzula DISTINCT w poleceniu SELECT spowoduje, że otrzymane dane

A. nie będą zawierały powtórzeń
B. zostaną uporządkowane
C. będą spełniały dany warunek
D. będą zgrupowane według wskazanego pola
Użycie klauzuli DISTINCT w instrukcji SELECT w języku SQL ma na celu eliminację powtórzeń w zwracanych wynikach. Dzięki temu, gdy wykonujemy zapytanie, w którym chcemy uzyskać unikalne wartości z określonej kolumny, możemy uniknąć sytuacji, w której te same dane pojawiają się wielokrotnie. Na przykład, jeśli mamy tabelę z informacjami o klientach, a chcemy otrzymać listę unikalnych miast, w których mieszkają, możemy użyć zapytania SELECT DISTINCT city FROM customers. Ta funkcjonalność jest szczególnie przydatna w raportowaniu i analizie danych, gdzie unikalność wartości ma kluczowe znaczenie. Warto również zauważyć, że klauzula DISTINCT wpływa na wydajność zapytań, dlatego ważne jest, aby używać jej tylko wtedy, gdy jest to rzeczywiście konieczne. Przy stosowaniu DISTINCT warto również znać inne techniki, takie jak grupowanie danych przy użyciu GROUP BY, które może być bardziej odpowiednie w niektórych scenariuszach, szczególnie gdy chcemy wykonywać agregacje.

Pytanie 11

Jakie wartości powinny mieć zmienne w funkcji z biblioteki mysqli, by ustanowić połączenie z serwerem i bazą danych?

mysqli_connect($a, $b, $c, $d) or die('Brak połączenia z serwerem MySQL.');
A. adres serwera - $a, nazwa bazy danych - $b, login - $c, hasło - $d
B. adres serwera - $c, nazwa bazy danych - $d, login - $a, hasło - $b
C. adres serwera - $a, nazwa bazy danych - $d, login - $b, hasło - $c
D. adres serwera - $c, nazwa bazy danych - $d, login - $b, hasło - $a
Wybór złych odpowiedzi pewnie wynika z tego, że nie do końca zrozumiałeś, jak ważna jest prawidłowa kolejność argumentów w funkcji mysqli_connect. Często zdarza się pomylić kolejność argumentów przy połączeniu z bazą danych. Rozumienie tej logiki jest naprawdę istotne: pierwszy argument to adres serwera, np. localhost, a drugi to nazwa użytkownika. Trzeci to hasło do bazy, a czwarty to nazwa bazy, z którą chcesz się połączyć. Jak zmienisz kolejność tych zmiennych, to nie uda się nawiązać połączenia, bo serwer nie będzie wiedział, jak uwierzytelnić użytkownika ani znaleźć bazy. Użytkownikom, którzy nie czują się pewnie w tym temacie, może to być frustrujące. Z mojego doświadczenia, kluczem jest dobrze poznać specyfikację funkcji oraz myśleć logicznie, żeby przypisać zmienne do odpowiednich argumentów. Jak to ogarniesz, to unikniesz wielu błędów i lepiej sobie poradzisz z bazami danych w przyszłości.

Pytanie 12

Działaniem podanego kodu PHP będzie wypełnienie tablicy

$tab = array();
for ($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}
foreach ($tab as $x) {
    if ($x < 0) {
        echo "$x ";
    }
}
A. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych
B. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
C. kolejnymi liczbami od 0 do 9 i ich wypisanie
D. kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
Zakładając, że odpowiedzi są błędne, warto zwrócić uwagę na kilka aspektów. Pierwsza z błędnych odpowiedzi sugeruje, że tablica jest wypełniana kolejnymi liczbami od 0 do 9, co jest niezgodne z zamysłem kodu, gdzie wykorzystywana jest funkcja losująca 'rand', a nie sekwencyjne przypisywanie wartości. W efekcie zamiast wartości od 0 do 9, mamy do czynienia z liczbami losowymi z szerokiego zakresu. Ponadto, druga odpowiedź błędnie interpretuje, że tablica zawiera liczby od -100 do 100. Mimo że możliwe jest, aby tablica zawierała takie liczby, kod nie wypełnia jej w sposób sekwencyjny i nie gwarantuje, że wszystkie wartości będą ujemne. Ostatnia błędna odpowiedź odnosi się do 100 losowych wartości, co również jest niepoprawne, ponieważ w kodzie jedynie 10 losowych wartości jest generowanych i zapisywanych w tablicy. Wreszcie, kod koncentruje się na wypisywaniu wartości ujemnych, dlatego odpowiedzi dotyczące wartości dodatnich są również mylące. Nie można zatem mówić o sytuacji, w której wartości dodatnie są wypisywane, co podkreśla, że analiza i interpretacja kodu są kluczowe dla zrozumienia jego działania.

Pytanie 13

Jaki jest efekt wielokrotnego wykonywania kodu PHP?

if (!isset($_COOKIE["ciastko"]))
    $zm = 1;
  else
    $zm = intval($_COOKIE["ciastko"]) + 1;
setcookie("ciastko", $zm);
A. pokazanie ciasteczka z zapisanym parametrem
B. zapisanie do ciasteczka wartości 1 przy każdym odświeżeniu witryny
C. zliczanie liczby wizyt na stronie
D. dodanie danych do ciasteczka tylko przy pierwszym wejściu na stronę
W pytaniu zawarto kilka opcji związanych z działaniem ciasteczek w PHP. Pierwsza z nich mówi o wyświetleniu ciasteczka z zapisaną zmienną co nie jest zgodne z kodem, który nie zawiera żadnej funkcji wyświetlającej jak echo. Ciasteczka służą do przechowywania danych po stronie klienta i mogą być wykorzystywane do wielu celów, ale ich wyświetlenie nie jest bezpośrednim efektem działania kodu. Druga opcja wspomina o zapisaniu danych do ciasteczka tylko przy pierwszym uruchomieniu strony. Jest to częściowa prawda, ponieważ pierwsze uruchomienie inicjuje ciasteczko, ale przy każdej kolejnej wizycie liczba odwiedzin jest aktualizowana a nie pozostaje stała. Ostatnia z niepoprawnych odpowiedzi sugeruje, że za każdym odświeżeniem zapisuje się wartość 1, co jest błędne ponieważ kod zwiększa wartość o 1 przy każdym odświeżeniu strony. Typowym błędem myślowym jest założenie, że ciasteczka są statyczne lub że ich funkcjonalność jest ograniczona do prostego przechowywania danych bez logiki związanej z ich aktualizacją czy modyfikacją w ramach sesji użytkownika. Ciasteczka są elastycznym narzędziem, które może być używane w wielu zaawansowanych scenariuszach, jednak ich manipulacja musi być dobrze zrozumiana by uniknąć nieprawidłowych wniosków czy implementacji.

Pytanie 14

Które stwierdzenie o językach jest FAŁSZYWE?

A. SQL jest językiem programowania strukturalnego
B. C++ jest językiem obiektowym
C. JavaScript jest językiem skryptowym
D. PHP służy do tworzenia stron w czasie rzeczywistym
Szukamy zdania FAŁSZYWEGO. SQL to deklaratywny język ZAPYTAŃ do baz danych (operuje na zbiorach danych), a nie język programowania strukturalnego z pętlami i instrukcjami sterującymi. Dlatego fałszywe jest zdanie o SQL jako języku programowania strukturalnego.

Pytanie 15

Zaprezentowano tabelę stworzoną za pomocą kodu HTML, bez zastosowania stylów CSS. Który z poniższych fragmentów kodu HTML odnosi się do pierwszego wiersza tabeli?

Ilustracja do pytania
A. C
B. D
C. A
D. B
Poprawna odpowiedź to D. W tym kodzie HTML użyto znaczników <th> zamiast <td> do zdefiniowania pierwszego wiersza tabeli co jest zgodne z dobrą praktyką formatowania wierszy nagłówkowych tabel. Znaczniki <th> oznaczają header cells czyli komórki nagłówkowe które z definicji są ustawione jako pogrubione i wyśrodkowane w przeglądarce. Użycie <th> zamiast <td> dla nagłówków tabeli wspiera dostępność ponieważ oprogramowanie wspomagające takie jak czytniki ekranowe rozpoznaje te znaczniki jako nagłówki co ułatwia nawigację osobom z ograniczeniami wzrokowymi. Ponadto standard HTML zaleca użycie <th> dla komórek opisujących dane które znajdują się poniżej w wierszach tabeli co pomaga w semantycznym oznaczeniu struktury dokumentu. Zastosowanie poprawnej semantyki w kodzie HTML nie tylko zwiększa dostępność ale również poprawia SEO oraz ułatwia utrzymanie kodu w przyszłości. Przy projektowaniu tabel w HTML ważne jest również rozważenie stylizacji za pomocą CSS aby zachować czystość i czytelność kodu HTML.

Pytanie 16

Na czym polega walidacja pól formularza?

A. na ustaleniu, który użytkownik wprowadził dane
B. na sprawdzeniu, czy użytkownik jest zalogowany
C. na sprawdzeniu, czy istnieje plik PHP odbierający dane
D. na sprawdzeniu, czy wprowadzone dane spełniają określone reguły
Pozostałe opisy dotyczą czego innego. Sprawdzanie, czy użytkownik jest zalogowany, to uwierzytelnianie/autoryzacja. Ustalanie, kto wprowadził dane, to identyfikacja. Istnienie pliku PHP odbierającego dane to kwestia konfiguracji serwera. Walidacja bada, czy dane spełniają reguły.

Pytanie 17

Z jakim problemem wiąże się poziom izolacji transakcji Repeatable Read (powtarzalny odczyt)?

A. z odczytami widmowymi (phantom reads)
B. z brudnymi odczytami
C. z utratą aktualizacji
D. z niepowtarzalnymi odczytami
Pozostałe problemy są eliminowane na tym lub niższych poziomach. Brudne odczyty (dirty reads - czytanie niezatwierdzonych danych) i niepowtarzalne odczyty (zmiana odczytanego wiersza) są już WYKLUCZONE przez Repeatable Read. Utrata aktualizacji to inny problem współbieżności. Z Repeatable Read wiążą się odczyty widmowe.

Pytanie 18

Elementem odpowiadającym imieniu Agata w zaprezentowanej tablicy JavaScript jest:

var Imiona = new Array('Anna','Joanna','Monika','Agata');
A. Imiona['Agata'];
B. Imiona[3];
C. Imiona[4];
D. Imiona[Agata];
Poprawna odpowiedź to Imiona[3], ponieważ w JavaScript indeksowanie tablicy zaczyna się od zera. Oznacza to, że pierwszy element tablicy Imiona to 'Anna' (Imiona[0]), drugi to 'Joanna' (Imiona[1]), trzeci to 'Monika' (Imiona[2]), a czwarty to 'Agata' (Imiona[3]). W kontekście programowania w JavaScript ważne jest, aby znać zasady indeksowania, co jest szczególnie istotne przy pracy z tablicami, ponieważ niewłaściwe indeksowanie może prowadzić do błędów, takich jak undefined. W praktyce, jeżeli chcemy uzyskać dostęp do konkretnego elementu tablicy, musimy użyć odpowiedniego indeksu. Ponadto, korzystanie z tablic w JavaScript jest powszechną praktyką, a zrozumienie ich mechanizmu pozwala na efektywne operowanie danymi. Należy również pamiętać o dobrych praktykach w programowaniu, takich jak stosowanie opisowych nazw zmiennych oraz komentowanie kodu, co zwiększa jego czytelność i zrozumienie dla innych programistów.

Pytanie 19

Wskaż NIEPRAWIDŁOWE stwierdzenie dotyczące normalizacji dźwięku

A. Opcja normalizacja znajduje się w menu programu do edycji dźwięku
B. Normalizacja polega na obniżeniu poziomu najgłośniejszej próbki w sygnale do ustalonej wartości, a następnie proporcjonalnym zwiększeniu głośności pozostałych części sygnału
C. W wyniku normalizacji następuje wyrównanie poziomu głośności całego nagrania
D. Jeśli najgłośniejszy element dźwięku osiąga połowę skali, wszystko zostanie zwiększone razy dwa - tak, aby najgłośniejszy element dotarł do maksimum na skali
Pojęcia związane z normalizacją sygnału dźwiękowego mogą być mylnie interpretowane, co często prowadzi do nieprawidłowych wniosków. Na przykład, stwierdzenie, że normalizacja polega na zmniejszeniu poziomu najgłośniejszej próbki, jest mylące. Normalizacja w rzeczywistości nie zmienia relacji pomiędzy poszczególnymi próbami sygnału, lecz dostosowuje głośność całego nagrania względem najgłośniejszego fragmentu. Kolejnym błędnym podejściem jest myślenie, że proces normalizacji wyrównuje poziom głośności całego nagrania, co może sugerować, że dźwięki cichsze stają się głośniejsze, co nie jest w pełni poprawne. Normalizacja dostosowuje głośność do określonego poziomu, ale nie zmienia dynamiki nagrania. W praktyce, jeżeli najgłośniejszy fragment osiąga wartość połowy skali, sugerowanie, że wszystko zostanie pogłośnione razy dwa, jest uproszczeniem i nie oddaje rzeczywistego charakteru normalizacji, która operuje na zasadzie maksymalizacji głównego sygnału bez zmiany jego struktury. Warto pamiętać, że celem normalizacji jest osiągnięcie konsystencji w poziomie głośności, a nie manipulowanie poszczególnymi elementami nagrania w sposób, który zaburzyłby jego naturalny charakter. W rzeczywistych aplikacjach, takich jak produkcja muzyczna czy edycja audio, zrozumienie tych różnic jest kluczowe dla uzyskania profesjonalnych rezultatów.

Pytanie 20

Jaką wartość przyjmie zmienna $a po wykonaniu poniższej sekwencji poleceń w języku PHP?

$a = 1; $a++; $a += 10; --$a;
A. 11
B. 12
C. 10
D. 1
Gratulacje, Twoja odpowiedź jest prawidłowa. Instrukcje wykonane w kodzie PHP prowadzą do osiągnięcia wartości 11 przez zmienną 'a'. Proces ten jest realizowany w czterech krokach. Najpierw zmienna 'a' jest inicjowana wartością 1. Następnie wartość ta jest zwiększana o 1, co daje nam 2. Do tej wartości dodawane jest 10, co daje nam łącznie 12. Na końcu, wartość ta jest zmniejszana o 1, co daje nam ostateczną wartość 11. Warto przypomnieć, że w języku programowania PHP, tak jak w większości języków, operacje są wykonywane od lewej do prawej. To jest ważne do zapamiętania, gdy mamy do czynienia z bardziej skomplikowanymi sekwencjami operacji.

Pytanie 21

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

A. CREATE
B. SELECT
C. ALTER
D. UPDATE
Odpowiedź "UPDATE" jest jak najbardziej trafna. To takie podstawowe polecenie SQL, które pozwala na aktualizowanie już istniejących danych w tabeli. Możesz dzięki niemu zmienić jeden albo kilka wierszy w tabeli, w zależności od tego, jakie masz kryteria. Na przykład, jeśli mamy tabelę "pracownicy" i chcemy zwiększyć pensję programistów do 6000 zł, wystarczy użyć polecenia: `UPDATE pracownicy SET pensja = 6000 WHERE stanowisko = 'programista';`. To polecenie działa w taki sposób, że modyfikuje dane, ale przy tym dba o integralność, co jest bardzo ważne w pracy z bazami danych. Warto zawsze dodawać klauzulę WHERE, żeby zmiany dotyczyły tylko wybranych wierszy – to pomoże uniknąć sytuacji, w której przypadkiem zmienisz wszystko. Umiejętność korzystania z UPDATE jest naprawdę istotna, jeżeli chcesz efektywnie zarządzać swoimi danymi.

Pytanie 22

Wskaż polecenie, które zostało opisane w ramce.

Dla każdego przebiegu pętli aktualna wartość elementu tablicy jest przypisywana do zmiennej, a wskaźnik tablicy jest przesuwany o jeden, aż do osiągnięcia ostatniego elementu tablicy
A. while
B. for
C. foreach
D. next
Pętla 'for' wymaga jawnego zarządzania indeksem i często jest stosowana, gdy potrzebujemy precyzyjnej kontroli nad iteracją, na przykład gdy musimy modyfikować indeks lub iterować w niestandardowy sposób. W przeciwieństwie do 'foreach', pętla 'for' nie zajmuje się automatycznym przypisywaniem elementów tablicy do zmiennych, co czyni ją mniej odpowiednią w kontekście opisanym w pytaniu. Instrukcja 'next' nie jest typową konstrukcją w najpopularniejszych językach programowania i może być myląca, ponieważ czasami jest używana w kontekście pętli w VBA lub jako element iteracyjny w innych, mniej popularnych językach. Natomiast pętla 'while' służy do wykonywania iteracji dopóki spełniony jest określony warunek logiczny, co nie jest zgodne z opisaną funkcjonalnością, w której pętla ma automatycznie przypisywać wartość elementów tablicy do zmiennej. Zrozumienie różnic między tymi strukturami pomaga w wyborze odpowiedniego narzędzia do zadania, zwiększając efektywność i czytelność kodu.

Pytanie 23

 SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel"; 

Tabela samochody zawiera rekordy przedstawione na obrazie. Wydając przedstawione zapytanie SQL zostaną zwrócone dane:
idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017
A. opel zafira; opel insignia
B. zafira; insignia
C. opel zafira
D. zafira
Niestety, wybrana przez Ciebie odpowiedź jest nieprawidłowa. W tym przypadku kluczowe jest zrozumienie, jak działa zapytanie SQL w kontekście tabeli, którą analizujemy. Zapytanie 'SELECT model FROM samochody WHERE rocznik > 2017 AND marka = 'opel';' ma na celu wyświetlenie modelu samochodu marki 'opel' z roku produkcji późniejszego niż 2017. W analizowanej tabeli tylko model 'zafira' spełnia oba te kryteria, dlatego jest to poprawna odpowiedź. Wersja 'insignia' nie jest poprawna, ponieważ rocznik tego modelu jest wcześniejszy niż 2017. Podobnie, odpowiedź zawierająca tylko 'opel zafira' jest niepoprawna - mimo, że 'zafira' jest poprawnym modelem, jednak pytanie wymagało podania jedynie modelu, a nie marki i modelu. Wynika to z konstrukcji zapytania SQL, gdzie zaznaczono 'SELECT model', co oznacza, że zapytanie ma zwrócić jedynie model. To pokazuje, jak ważne jest dokładne zrozumienie, jakie informacje są żądane przez zapytanie SQL.

Pytanie 24

Co określa właściwość CSS animation-duration?

A. kierunek animacji
B. liczbę powtórzeń animacji
C. czas trwania jednego cyklu animacji
D. opóźnienie startu animacji
Właściwość CSS animation-duration określa, ile trwa JEDEN cykl animacji - np. animation-duration: 2s oznacza, że pełen przebieg zajmuje dwie sekundy. To podstawowy parametr czasu w animacjach CSS. Dlatego animation-duration określa czas trwania jednego cyklu.

Pytanie 25

Fragment skryptu w języku JavaScript umieszczony w ramce

t = "Ala ma kota.";
s = t.length;
A. przypisze zmiennej s część tekstu z zmiennej t, o długości określonej przez zmienną length
B. przypisze zmiennej s zmienną t
C. przypisze zmiennej s długość tekstu z zmiennej t
D. wyświetli długość tekstu z zmiennej t
Błędne przypuszczenie że kod wyświetli długość napisu ze zmiennej t wynika z niezrozumienia różnicy między przypisaniem a wyświetleniem wartości. W podanym przykładzie zmienna s przechowuje długość napisu ale kod nie zawiera żadnej instrukcji wyświetlenia tej wartości. W JavaScript do wyświetlenia w konsoli wymagane jest użycie funkcji console.log co nie zostało tu zawarte. Następnie błędna odpowiedź dotycząca przypisania fragmentu napisu wskazuje na niezrozumienie zastosowania właściwości length która zwraca całkowitą długość łańcucha a nie jego część. Aby uzyskać fragment łańcucha należałoby użyć metody substring lub slice które tej funkcji tutaj nie ma. Ostatnia błędna odpowiedź sugerująca że zmienna s przechowuje cały napis z t wykazuje brak zrozumienia samego przypisania w kontekście obiektów stringowych w JavaScript. Gdyby celem było przypisanie całego łańcucha należałoby użyć samego t bez length. Zrozumienie różnic w działaniach właściwości i metod w JavaScript jest kluczowe w skutecznym programowaniu i unikania błędów logicznych które mogą prowadzić do nieoczekiwanych rezultatów w działaniu aplikacji.

Pytanie 26

W języku SQL, aby wstawić wiersz danych do tabeli w bazie danych, należy zastosować polecenie

A. CREATE ROW
B. CREATE INTO
C. INSERT INTO
D. SELECT ROW
Poprawną składnią do wstawiania nowych wierszy w SQL jest polecenie INSERT INTO i to jest taki absolutny fundament pracy z bazą danych. Standard SQL (ANSI/ISO) definiuje właśnie tę komendę jako podstawowy mechanizm dodawania rekordów do tabeli. Typowy zapis wygląda na przykład tak: INSERT INTO klienci (imie, nazwisko, email) VALUES ('Jan', 'Kowalski', '[email protected]');. Najpierw podajemy nazwę tabeli, potem listę kolumn, a następnie wartości w dokładnie tej samej kolejności. W praktyce, w aplikacjach webowych, to właśnie INSERT INTO stoi za dodawaniem nowych użytkowników, zamówień, wpisów na blogu czy logów systemowych.
Moim zdaniem warto od razu wyrabiać sobie dobre nawyki: zawsze jawnie wypisuj nazwy kolumn, zamiast polegać na kolejności kolumn w tabeli. Dzięki temu, jeśli ktoś kiedyś doda nową kolumnę albo zmieni ich układ, Twoje zapytania dalej będą działały poprawnie. Jest też drugi, często używany wariant: INSERT INTO tabela VALUES (...), ale on jest bezpieczny tylko wtedy, gdy dokładnie kontrolujesz strukturę tabeli.
INSERT INTO może też współpracować z SELECT, np. do masowego kopiowania danych: INSERT INTO archiwum_zamowien SELECT * FROM zamowienia WHERE data < '2023-01-01';. W systemach produkcyjnych łączy się tę komendę z transakcjami (BEGIN, COMMIT, ROLLBACK), żeby zapewnić spójność danych. Warto pamiętać, że różne silniki (MySQL, PostgreSQL, SQL Server) mają swoje rozszerzenia, ale sama idea INSERT INTO jest wspólna i zgodna ze standardem. To takie must-have dla każdego, kto poważnie myśli o pracy z bazami danych.

Pytanie 27

Wskaż definicję metody, którą należy wstawić w miejscu kropek, aby na stronie WWW wyświetlił się tekst: Jan Kowalski

<p id="wynik"></p>
<script type="text/javascript">
    var osoba = { nazwisko: "Kowalski", imie: "Jan" };
    …
    document.getElementById("wynik").innerHTML = osoba.dane();
</script>

osoba.dane = function() {
    return this.imie+" "+this.nazwisko;
};                 A.

dane() = function() {
    return this.imie+" "+this.nazwisko;
};                 B.

osoba.dane = function() {
    return imie+" "+nazwisko;
};                 C.

dane() = function {
    this.imie+" "+this.nazwisko;
};                 D.
A. D.
B. A.
C. B.
D. C.
Fajnie, że wybrałeś dobrą odpowiedź! Metoda 'dane' jest powiązana z obiektem 'osoba', co pozwala ci używać słowa kluczowego 'this', żeby odwołać się do 'imię' i 'nazwisko'. To naprawdę ważna zasada w programowaniu obiektowym. 'This' to taki klucz, dzięki któremu możesz wskazać, z którego obiektu korzystasz w danej chwili. W tym przypadku odnosisz się do obiektu 'osoba'. Wyobraź sobie, że tworzysz aplikację i chcesz pokazać informacje o użytkowników, na przykład na stronie profilu. Dzięki metodzie 'dane', która jest częścią obiektu 'osoba', możesz łatwo wyświetlić imię i nazwisko. O to chodzi w programowaniu!

Pytanie 28

Które zapytanie policzy WSZYSTKIE wiersze tabeli Koty?

A.
SELECT ROWNUM() FROM Koty;
B.
SELECT COUNT(Koty) AS ROWNUM;
C.
SELECT COUNT(ROWNUM) FROM Koty;
D.
SELECT COUNT(*) FROM Koty;
Liczbę wszystkich wierszy tabeli zwraca funkcja COUNT(*). Zapis SELECT COUNT(*) FROM Koty; policzy każdy rekord tabeli Koty. Dlatego poprawne jest SELECT COUNT(*) FROM Koty;.

Pytanie 29

Który ze sposobów komentowania kodu nie jest stosowany w kodzie jako komentarz PHP?

A. /* komentarz */
B. // komentarz
C. <!-- komentarz -->
D. # komentarz
W tym pytaniu kluczowe jest odróżnienie komentarzy w samym języku PHP od komentarzy w otaczającym go kodzie HTML. Wiele osób myli te dwie warstwy, bo pliki .php bardzo często zawierają jednocześnie kod HTML i PHP, i wtedy łatwo założyć, że skoro coś wygląda jak komentarz w przeglądarce, to na pewno jest też komentarzem dla interpretera PHP. To jest właśnie podstawowy błąd myślowy. W PHP obowiązuje składnia komentarzy przejęta głównie z języka C i powiązanych z nim technologii. Znak # oraz podwójny ukośnik // oznaczają komentarz jednolinijkowy – wszystko od tego znaku do końca linii jest ignorowane przez interpreter. Z kolei konstrukcja /* ... */ tworzy komentarz blokowy, który może obejmować wiele linii i jest bardzo wygodny do opisywania większych fragmentów kodu, np. funkcji, klas czy bardziej skomplikowanych algorytmów. Te trzy formy są pełnoprawnymi komentarzami PHP i są dokładnie opisane w oficjalnej dokumentacji języka. Problem pojawia się, gdy ktoś uzna, że <!-- komentarz --> też jest komentarzem PHP, bo „przecież używa się go w plikach .php”. Ten zapis jest jednak komentarzem HTML, rozumianym przez przeglądarkę internetową, a nie przez interpreter PHP. Działa on tylko w części dokumentu, którą przeglądarka widzi jako czysty HTML. Jeżeli taki komentarz wstawimy wewnątrz bloku <?php ... ?>, to PHP nie potraktuje go jako komentarz, tylko jako nieznane znaki, co w praktyce skończy się błędem składni. Z mojego doświadczenia wynika, że zamieszanie bierze się z tego, że w jednym pliku mieszają się dwa światy: serwerowy (PHP) i kliencki (HTML). Dobrą praktyką jest więc świadome rozdzielanie: w sekcjach PHP używamy wyłącznie #, // i /* */, a w czystym HTML – tylko <!-- -->. Pozwala to uniknąć trudnych do wykrycia błędów i sprawia, że kod jest czytelniejszy dla innych programistów, którzy od razu widzą, co jest komentarzem dla serwera, a co tylko dla frontendu.

Pytanie 30

Aby przekształcić tekst „ala ma psa” na „ALA MA PSA”, jaka funkcja PHP powinna być zastosowana?

A. strstr ('ala ma psa');
B. strtolower('ala ma psa');
C. ucfirst ('ala ma psa');
D. strtoupper('ala ma psa');
Funkcja strtoupper w PHP jest używana do konwersji wszystkich liter w danym ciągu znaków na wielkie litery. W kontekście modyfikacji tekstu „ala ma psa” na „ALA MA PSA”, zastosowanie funkcji strtoupper('ala ma psa') jest poprawnym podejściem. Funkcja ta jest częścią standardowej biblioteki PHP i jest szeroko stosowana w projektach, gdzie zachowanie wielkich liter jest kluczowe. Przykład użycia funkcji strtoupper jest prosty: wystarczy przekazać do niej ciąg, który ma zostać przekształcony. Przykładem może być zapis: $text = 'ala ma psa'; $uppercaseText = strtoupper($text); echo $uppercaseText; co wygeneruje wynik ALA MA PSA. Warto zauważyć, że funkcja ta nie zmienia oryginalnego ciągu, lecz zwraca nowy ciąg z przekształconymi literami. Zastosowanie funkcji strtoupper jest szczególnie przydatne w aplikacjach webowych, gdzie formatowanie tekstu może być kluczowe dla zapewnienia spójności danych wyjściowych oraz ich estetyki.

Pytanie 31

Aby za pomocą instrukcji SELECT uzyskać listę nazwisk osób mieszkających na osiedlu, przy czym nazwiska te nie mogą się powtarzać, należy sformułować zapytanie w następujący sposób

A. SELECT TOP 10 nazwisko FROM mieszkancy
B. SELECT nazwisko FROM mieszkancy ORDER BY nazwisko
C. SELECT DISTINCT nazwisko FROM mieszkancy
D. SELECT AVG(nazwisko) FROM mieszkancy
Odpowiedź "SELECT DISTINCT nazwisko FROM mieszkancy;" jest prawidłowa, ponieważ użycie klauzuli DISTINCT pozwala na wyświetlenie unikalnych wartości z kolumny 'nazwisko', eliminując wszelkie duplikaty. W praktyce jest to niezwykle przydatne, gdyż często zdarza się, że w bazach danych ta sama informacja może być wprowadzana wielokrotnie, co prowadzi do nieczytelnych raportów. Dzięki zastosowaniu klauzuli DISTINCT, możemy uzyskać czysty i zrozumiały zbiór danych, co jest zgodne z najlepszymi praktykami w analizie danych. Na przykład, w sytuacji, gdy chcemy uzyskać listę wszystkich nazwisk mieszkańców danego osiedla, DISTINCT pozwala na oszczędność czasu w późniejszej obróbce danych, eliminując potrzebę ręcznej filtracji wyników. Zastosowanie DISTINCT jest również standardem w wielu zapytaniach SQL, co czyni tę technikę fundamentalną w efektywnym zarządzaniu bazami danych oraz analizy informacji. Warto dodać, że klauzula DISTINCT może być używana z różnymi rodzajami danych, co pozwala na jej wszechstronność.

Pytanie 32

Które narzędzie do zarządzania bazą danych jest wbudowane w pakiet XAMPP?

A. SQLite
B. pgAdmin
C. MySQL Workbench
D. phpMyAdmin
Pakiet XAMPP (Apache, MySQL/MariaDB, PHP) zawiera wbudowane narzędzie phpMyAdmin do zarządzania bazą przez przeglądarkę - tworzenia baz, tabel i uruchamiania zapytań. Dlatego w XAMPP znajdziesz phpMyAdmin.

Pytanie 33

Wskaż NIEPRAWIDŁOWY opis optymalizacji kodu wygenerowanego przez program

A. W celu przyspieszenia wykonania kodu przez procesor może być przeprowadzana na różnych etapach działania
B. Jej celem jest sprawdzenie zgodności z wymogami formalnymi
C. Jej celem jest zwiększenie efektywności programu
D. Powinna prowadzić do zmiany kodu źródłowego w taki sposób, aby działał on szybciej
Wszelkie odpowiedzi, które sugerują, że celem optymalizacji kodu wynikowego jest sprawdzenie zgodności z wymogami formalnymi, są błędne. Tego rodzaju podejście myślowe może prowadzić do poważnych nieporozumień w kontekście rozwoju oprogramowania. W rzeczywistości, optymalizacja kodu koncentruje się głównie na zwiększeniu wydajności, a nie na zgodności z formalnościami. Wiele osób myli te pojęcia, co może skutkować szkodliwym podejściem, w którym skupiają się na spełnieniu formalnych wymagań bez zrozumienia, że kluczowym celem jest poprawa funkcjonalności i szybkości działania programu. Co więcej, odpowiedzi sugerujące, że modyfikacje kodu źródłowego prowadzące do większej szybkości działania nie są istotne, są również mylne. W rzeczywistości, optymalizacja kodu często wymaga przekształceń na poziomie kodu źródłowego, aby zapewnić lepszą wydajność. Dobre praktyki programistyczne zalecają testowanie i profilowanie kodu, aby zidentyfikować obszary wymagające poprawy. Warto także pamiętać, że optymalizacja powinna być prowadzona na różnych etapach rozwoju aplikacji, aby dostosować kod do zmieniających się potrzeb użytkowników oraz wymagań technicznych. Ignorowanie tych aspektów może prowadzić do stagnacji w rozwoju oprogramowania i obniżenia jego jakości.

Pytanie 34

Zmienna o typie integer lub int jest w stanie przechowywać

A. liczbę rzeczywistą
B. liczbę całkowitą
C. łańcuch znaków
D. znak
Zmienna typu integer, znana również jako int, jest podstawowym typem danych w wielu językach programowania, takich jak C, C++, Java czy Python. Jej kluczową zaletą jest możliwość przechowywania tylko liczb całkowitych, co czyni ją idealnym wyborem do operacji arytmetycznych, które wymagają precyzyjnego zarządzania wartościami całkowitymi bez części dziesiętnych. Przykłady zastosowania to m.in. przechowywanie ilości przedmiotów w magazynie, zliczanie punktów w grze lub reprezentowanie indeksów w tablicach. W praktyce, użycie zmiennych typu integer umożliwia efektywne wykorzystanie pamięci, ponieważ zajmują one mniej miejsca niż zmienne typu zmiennoprzecinkowego, a ich operacje są wykonywane szybciej. Ponadto, stosowanie zmiennych całkowitych jest zgodne z dobrymi praktykami programowania, które zalecają dobór odpowiednich typów danych do specyficznych potrzeb aplikacji, co zwiększa ich wydajność i czytelność kodu. Warto także zrozumieć, że w kontekście programowania, typ zmiennej determinuje zakres wartości, które można przechowywać, co w przypadku typu integer zwykle wynosi od -2,147,483,648 do 2,147,483,647 w standardzie 32-bitowym, co czyni go wystarczającym dla wielu zastosowań.

Pytanie 35

Które wyrażenie należy wstawić w miejsce ??? w pętli zapisanej w języku C++, aby zostały wyświetlone jedynie elementy tablicy tab

int tab[6];
for (int i = 0; ???; i++)
cout << tab[i];
A. i < 6
B. i >= 6
C. i <= 6
D. i > 6
Odpowiedź 'i >= 6' jest błędna, bo prowadzi do tego, że pętla opuści wszystkie elementy tablicy. Gdy i osiągnie 6 lub więcej, pętla staje, więc nic się nie wyświetli, bo przecież indeksy zaczynają się od 0, a kończą na 5. To jest typowy błąd, który wynika z nie do końca zrozumienia, jak działają tablice w C++. Z kolei 'i <= 6' też nie jest ok, bo wtedy pętla zakończy się po wyświetleniu elementu z indeksem 6, co prowadzi do niezdefiniowanego zachowania – a to nie jest fajne, bo nie ma takiego elementu w tablicy z sześcioma elementami. Odpowiedź 'i > 6' też jest źle, bo nie wykona żadnej iteracji, znowu pomijając całą tablicę. Ważne jest, żeby pamiętać, że indeksy tablic zaczynają się od 0, a ostatni indeks przy rozmiarze n wynosi n-1. Stosowanie złych warunków w pętlach może prowadzić do sporych problemów z pamięcią, więc trzeba uważać i pisać warunki, które dobrze pokazują rzeczywisty rozmiar tablicy.

Pytanie 36

Które zdarzenie zachodzi, gdy ZMIENI się wartość pola (np. po wybraniu opcji z listy)?

A.
onClick
B.
onSubmit
C.
onEnter
D.
onChange
Zdarzenie onchange uruchamia kod, gdy wartość kontrolki ZMIENI się i pole straci fokus - klasycznie po wybraniu innej opcji z listy <select> albo po edycji i opuszczeniu pola tekstowego. Używa się go np. do przeliczenia formularza po zmianie wyboru: <select onchange="przelicz()">. Zapamiętaj: „change” = reakcja na zmianę wartości pola, a nie na samo kliknięcie czy pisanie.

Pytanie 37

$x = 0; while($x < 5) { echo "$x,"; $x++; } Wskaż instrukcję, która jest funkcjonalnie równoważna dla podanej pętli while w języku PHP.

Ilustracja do pytania
A. Instrukcja 1
B. Instrukcja 3
C. Instrukcja 2
D. Instrukcja 4
Instrukcja while w PHP jest pętlą, która kontroluje warunek przed każdą iteracją. W jej przypadku zmienna $x jest początkowo równa 0, a warunek $x < 5 powoduje, że blok kodu wewnątrz pętli wykonuje się dopóki $x jest mniejsze od 5. Za każdym razem, gdy kod wewnątrz pętli się wykonuje, echo wyświetla aktualną wartość zmiennej $x, a następnie $x jest inkrementowane o 1. Instrukcja for, która jest funkcjonalnie równoważna tej pętli while, to taka, która zaczyna się z $x równe 0, kończy na $x mniejszym od 5, i w każdym kroku zwiększa $x o 1, dokładnie tak jak instrukcja 3. Odpowiednia struktura pętli for daje możliwość precyzyjnego określenia wszystkich trzech elementów: inicjalizacji zmiennej, warunku kontynuacji oraz zmiany wartości zmiennej po każdej iteracji, co zapewnia pełną kontrolę nad przebiegiem pętli i transparentność kodu, realizując te same funkcjonalności co pętla while w bardziej kompaktowy sposób. Tego typu podejście jest szeroko stosowane w branży ze względu na swoją czytelność i efektywność, co czyni je zgodnym z dobrymi praktykami programistycznymi.

Pytanie 38

Wskaż fragment CSS, który odpowiada rozkładowi bloków 2-5, zakładając, że zostały one zbudowane na podstawie podanego kodu HTML.

Ilustracja do pytania
A. Kod 1
B. Kod 2
C. Kod 3
D. Kod 4
Kod 2 jest prawidłowy, ponieważ dla bloków 2 i 3 stosowane jest ustawienie float: left; co pozwala na ich ułożenie w jednym wierszu z lewej strony. Blok 4 z float: right; umiejscawia się po prawej stronie, co umożliwia uzyskanie układu bloków 2-4 w jednej linii, odpowiadając schematowi. Blok 5 z float: left; rozpoczyna nowy wiersz poniżej, zgodnie z założonym układem. Takie użycie właściwości float oraz width pozwala na zorganizowanie elementów na stronie bez użycia flexbox lub grid, co jest klasycznym podejściem do układu strony w CSS. Dobrym przykładem praktycznego zastosowania jest tworzenie responsywnych layoutów, gdzie float można używać do kontrolowania przepływu elementów na mniejszych ekranach. Mimo że obecnie technologia flexbox i grid jest bardziej popularna, znajomość stosowania float nadal jest istotna, zwłaszcza w kontekście starszych projektów, które mogą wymagać utrzymania zgodności z wcześniejszymi wersjami CSS. To rozwiązanie zapewnia zgodność z wieloma starszymi przeglądarkami, co jest kluczowe w przypadku długoterminowych projektów webowych.

Pytanie 39

Aplikacja o nazwie FileZilla umożliwia

A. sprawdzanie poprawności plików HTML oraz CSS
B. przeprowadzenie testów aplikacji
C. wniesienie bazy danych na stronę CMS Joomla!
D. publikację witryny internetowej na zdalnym serwerze
FileZilla to popularny program typu FTP (File Transfer Protocol), który umożliwia użytkownikom przesyłanie plików między komputerem a serwerem internetowym. Jego głównym celem jest publikacja stron internetowych na odległych serwerach, co jest kluczowe dla procesu tworzenia i utrzymania stron w sieci. Program obsługuje różne protokoły, takie jak FTP, FTPS oraz SFTP, co zapewnia elastyczność i bezpieczeństwo podczas transferu danych. W praktyce, aby opublikować stronę, użytkownik może przeciągnąć pliki z lokalnego folderu do odpowiedniego katalogu na serwerze, co jest intuicyjne i efektywne. FileZilla wspiera również funkcje takie jak synchronizacja folderów, co pozwala na łatwe aktualizowanie zawartości strony. Zgodnie z branżowymi standardami, korzystanie z odpowiednich narzędzi do przesyłania plików, takich jak FileZilla, jest niezbędne dla każdego dewelopera webowego, aby zapewnić bezpieczeństwo i zgodność z najlepszymi praktykami w zakresie publikacji stron internetowych.

Pytanie 40

W jakim celu tworzy się kaskadowe arkusze stylów (CSS)?

A. aby dodać treści tekstowe
B. aby definiować formatowanie (wygląd) elementów strony
C. aby ułatwić użytkownikowi nawigację
D. aby przyspieszyć wyświetlanie grafiki
Kaskadowe arkusze stylów (CSS) tworzy się, aby definiować FORMATOWANIE i wygląd elementów strony - kolory, czcionki, rozmieszczenie, marginesy - oddzielając warstwę prezentacji od treści zapisanej w HTML. Dlatego CSS służy do definiowania wyglądu elementów strony.