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: 11 sierpnia 2026 00:54
  • Data zakończenia: 11 sierpnia 2026 01:10

Egzamin zdany!

Wynik: 23/40 punktów (57,5%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Której właściwości CSS użyć, aby ustawić odstępy między WYRAZAMI?

A.
line-spacing
B.
white-space
C.
word-spacing
D.
letter-space
Odstępy między WYRAZAMI ustawia w CSS właściwość word-spacing, np. word-spacing: 5px; rozsuwa słowa. Dlatego do odstępów między wyrazami służy word-spacing.

Pytanie 2

Najprostszy sposób przekształcenia obiektu oznaczonego cyfrą 1 w obiekt oznaczony cyfrą 2 to

Ilustracja do pytania
A. animowanie obiektu
B. zmiana warstwy obiektu
C. narysowanie docelowego obiektu
D. geometryczne transformowanie obiektu
Geometria transformacji to niezwykle ważne pojęcie w dziedzinie grafiki komputerowej i projektowania. Polega na zmianie kształtu obiektu za pomocą operacji takich jak skalowanie, obracanie, przesuwanie czy odkształcanie. W kontekście pytania, geometria transformacji umożliwia przekształcenie obiektu oznaczonego cyfrą 1 w obiekt oznaczony cyfrą 2 poprzez zmianę jego kształtu i wielkości. Praktyczne zastosowanie transformacji geometrycznych obejmuje m.in. skalowanie w celu dostosowania rozmiarów obiektów do różnych nośników lub kontekstu wyświetlania. Obracanie jest używane do orientacji obiektów w przestrzeni, co jest niezwykle przydatne w modelowaniu 3D czy animacjach. Dobre praktyki projektowania graficznego zalecają korzystanie z transformacji geometrycznych, aby uzyskać spójną i estetyczną kompozycję. Standardy branżowe często definiują konkretne algorytmy i formaty danych dla transformacji, jak na przykład macierze przekształceń w grafice trójwymiarowej. Zrozumienie i umiejętne zastosowanie tych pojęć pozwala na efektywne tworzenie złożonych struktur wizualnych oraz interaktywnych aplikacji.

Pytanie 3

Aby uzyskać informacje o środowisku pracy serwera obsługującego PHP, należy skorzystać z funkcji

A.
php()
B.
phpinfo()
C.
phpgetinfo()
D.
phpinformation()
Tylko jedna z podanych nazw to prawdziwa funkcja PHP. php() wygląda jak skrót od nazwy języka, ale w PHP nie ma funkcji o takiej nazwie - jej wywołanie zgłosi błąd o nieznanej funkcji. Podobnie phpgetinfo() brzmi sensownie i kojarzy się z pobieraniem informacji, lecz również nie została zdefiniowana w języku; nie znajdziesz jej w dokumentacji PHP. phpinformation() to kolejna zmyślona nazwa - dłuższy zapis, który nigdy nie był częścią PHP. Te trzy warianty celowo przypominają poprawną odpowiedź, by sprawdzić, czy znasz dokładną nazwę. Środowisko serwera raportuje wyłącznie phpinfo(): po wywołaniu wypisuje wersję PHP, załadowane rozszerzenia, ustawienia php.ini oraz dane o serwerze. Jeśli nie masz pewności co do nazwy funkcji, sprawdź ją w oficjalnej dokumentacji - to pozwala uniknąć sięgania po nieistniejące wywołania.

Pytanie 4

W języku HTML zdefiniowano listę, która

<ol>
  <li>biały</li>
  <li>czerwony
    <ul>
      <li>różowy</li>
      <li>pomarańczowy</li>
    </ul></li>
  <li>niebieski</li>
</ol>
A. jest numerowana z zagłębioną listą punktowaną
B. jest punktowana z zagłębioną listą numerowaną
C. nie posiada zagłębień i jest punktowana, wyświetla 5 punktów
D. nie zawiera zagłębień i jest numerowana, słowo "niebieski" ma przyporządkowany numer 5
To pytanie świetnie pokazuje, jak w HTML można łączyć różne typy list, czyli listy numerowane (<ol>) oraz punktowane (<ul>). W tym przypadku mamy główną listę numerowaną, gdzie każdy element to <li>. Jednym z tych elementów jest „czerwony”, pod którym zagnieżdżono listę punktowaną z dwoma podpunktami („różowy”, „pomarańczowy”). Taki sposób strukturyzowania treści w HTML to całkowicie zgodna ze specyfikacją praktyka – właśnie dzięki kombinowaniu <ol> i <ul> można czytelnie przedstawiać np. instrukcje czy hierarchiczne zestawienia. Moim zdaniem to jedno z najprostszych, a zarazem najbardziej efektywnych narzędzi do prezentowania hierarchii – nie tylko na stronach technicznych, ale nawet w prostych notatkach. Przeglądarki zawsze renderują <ol> jako listę numerowaną, a <ul> jako wypunktowaną, więc użytkownik końcowy od razu widzi, co jest ważniejsze, a co podrzędne. Takie zagnieżdżenie list to w branży webowej chleb powszedni – np. instrukcje krok po kroku, gdzie niektóre kroki mają dodatkowe podpunkty. Warto pamiętać, że trzymanie się tej struktury i nie mieszanie porządkowania (np. nie zamieniać miejscami <ol> i <ul> bez powodu) ułatwia późniejszą edycję i utrzymanie kodu, co w większych projektach bardzo doceni każdy programista. Sam często stosuję takie rozwiązania i naprawdę nie ma tu lepszej praktyki, jeśli chodzi o przejrzystość kodu HTML.

Pytanie 5

Fragment kodu w PHP przedstawia się następująco (patrz ramka): Przy założeniu, że zmienna tablicowa $tab zawiera liczby naturalne, wynik działania programu polega na wypisaniu

Ilustracja do pytania
A. największego elementu w tablicy
B. najmniejszego elementu w tablicy
C. elementu tablicy równemu wartości $tab[0]
D. tych elementów, które przewyższają wartość zmiennej $liczba
Zobaczmy teraz, co poszło nie tak z innymi odpowiedziami. W przypadku tej, co miała znaleźć najmniejszy element, to kod nie jest w stanie tego zrobić, ponieważ warunek if sprawdza, czy element jest większy, a powinien być mniejszy, żeby szukać minimum. Jakby zmienić na if ($element < $liczba), to byłoby ok. W innej odpowiedzi twierdzono, że program znajdzie element równy $tab[0], ale w kodzie nie ma żadnego porównania z tym pierwszym elementem, poza tym, że przypisujemy go do $liczba na początku. Brak tam dodatkowej logiki, żeby to ogarnąć. A w ostatniej odpowiedzi pisano o wypisywaniu elementów większych od $liczba, ale kod nie działa w ten sposób, bo nie ma tam nic, co by pozwalało na wypisywanie więcej niż jednego elementu. Program jedynie aktualizuje $liczba, żeby znaleźć największą wartość. Często takie pomyłki biorą się z braku zrozumienia, jak działa iteracja i porównania w programowaniu, gdzie trzeba dobrze rozumieć, jakie warunki i operacje są potrzebne.

Pytanie 6

W języku PHP znajduje się instrukcja pętli umieszczona w ramce. Ile razy zostanie wykonana ta pętla, o ile zmienna kontrolna nie jest zmieniana w jej wnętrzu, a także nie dodano instrukcji przerywającej pętlę, takiej jak break?

Ilustracja do pytania
A. 9 powtórzeń
B. 10 powtórzeń
C. 11 powtórzeń
D. 100 powtórzeń
W kontekście pętli for w języku PHP ważne jest zrozumienie jak parametry inicjalizacji warunku zakończenia i modyfikacji wpływają na liczbę iteracji. W przypadku tej konkretnej pętli analizując inicjalizację zmiennej sterującej $i=10 oraz warunek zakończenia $i<=100 można zauważyć że pętla wykona się dla wartości $i od 10 do 100 włącznie przyrosty co 10. Często błędne rozumienie polega na nieuwzględnieniu ostatniego warunku <= co skutkuje błędnym oszacowaniem liczby iteracji np. 9 zamiast 10. Innym częstym błędem jest zakładanie że pętla zawsze kończy się przed spełnieniem warunku co w przypadku <= nie jest prawdą. Dodatkowo błędne interpretacje mogą wynikać z założenia że modyfikator $i+=10 wpływa na większy zakres iteracji niż w rzeczywistości to jest co może prowadzić do obliczenia 11 lub 100 powtórzeń. Wszystkie te nieporozumienia można wyeliminować przez skrupulatną analizę każdego elementu składni pętli co jest kluczowe dla efektywnego i bezbłędnego programowania. Zrozumienie precyzyjnej roli jaką pełni każda część instrukcji for pozwala nie tylko unikać błędów ale także poprawiać jakość i czytelność kodu w długofalowym rozwijaniu projektów programistycznych. Przy projektowaniu algorytmów należy zawsze testować ich działanie w różnych scenariuszach aby przeciwdziałać potencjalnym błędom i zapewnić ich poprawne funkcjonowanie w różnych warunkach operacyjnych.

Pytanie 7

Który rastrowy format graficzny jest obsługiwany przez przeglądarki internetowe?

A. PCX
B. TGA
C. PNG
D. FLIF
Spośród wymienionych to PNG jest rastrowym formatem obsługiwanym natywnie przez przeglądarki internetowe - obok JPG i GIF tworzy zestaw bezpiecznych formatów webowych. Wyświetli się bez wtyczek i konwersji. Zapamiętaj webowe rastry: JPG (zdjęcia), PNG (jakość + przezroczystość), GIF (proste animacje).

Pytanie 8

Poniżej zaprezentowano fragment kodu w języku HTML:
<ol>
<li>punkt 1</li>
<li>punkt 2</li>
<ul>
<li>podpunkt1</li>
<li>podpunkt2</li>
<li>podpunkt3</li>
</ul>
<li>punkt3</li>
</ol>

A. 1. punkt 1 2. punkt 2 podpunkt1 podpunkt2 podpunkt1 3. punkt3
B. 1. punkt 1 2. punkt 2 3. punkt3 podpunkt1 podpunkt2 podpunkt1
C. 1. punkt 1 2. punkt 2 podpunkt1 podpunkt2 podpunkt3 punkt3
D. punkt 1 punkt 2 podpunkt1 podpunkt2 podpunkt3 punkt3
Widzisz, w niektórych odpowiedziach pojawiły się błędy, które mogą wprowadzać zamieszanie. Na przykład, użycie <il> zamiast <ul> to spory błąd, bo w HTML nie mamy elementu <il>. To może spowodować problemy z wyświetlaniem strony w przeglądarkach. I w paru przypadkach z kolejnością podpunktów było nie tak – pamiętaj, że hierarchia jest ważna. Dobrze zdefiniowane listy powinny mieć swoje konteksty, czyli otaczać je tagami <ol> lub <ul>. Każdy błąd w tym zakresie może utrudnić nawigację po stronie, zwłaszcza dla osób z niepełnosprawnościami. Ogólnie rzecz biorąc, warto dbać o porządek w HTML, bo to jest kluczowe w tworzeniu stron, które są użyteczne i funkcjonalne.

Pytanie 9

Zastosowanie poniższej kwerendy SQL spowoduje usunięcie

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

Pytanie 10

Który obiekt bazy danych utworzyć, aby zaprezentować dane spełniające określone kryteria (np. do wydruku)?

A. raport
B. relację
C. formularz
D. makropolecenie
Do PREZENTACJI danych spełniających określone kryteria - zwłaszcza w formie gotowej do wydruku - służy raport. Pobiera dane (często z kwerendy), formatuje je w czytelny układ z nagłówkami i podsumowaniami. Zapamiętaj: raport = sformatowane zestawienie do oglądania i druku, a nie do wpisywania danych.

Pytanie 11

Którego słowa kluczowego użyć do deklaracji zmiennej w JavaScript?

A.
var
B.
new
C.
variable
D.
instanceof
Pozostałe słowa pełnią inne role. new tworzy obiekt na podstawie konstruktora, a instanceof sprawdza, czy obiekt jest instancją danej klasy. variable nie jest słowem kluczowym JavaScriptu. Zmienną deklaruje var.

Pytanie 12

Jaki format CSS dla akapitu definiuje styl szarej ramki z następującymi cechami?

p {
  padding: 15px;
  border: 2px dotted gray; }
A. linia kropkowa; grubość 2 px; marginesy między tekstem a ramką 15 px
B. linia ciągła; grubość 2 px; marginesy między tekstem a ramką 15 px
C. linia kreskowa; grubość 2 px; marginesy poza ramką 15 px
D. linia ciągła; grubość 2 px; marginesy poza ramką 15 px
Odpowiedź numer jeden jest poprawna, ponieważ prawidłowo opisuje stylizację akapitu przy użyciu CSS zgodnie z przedstawionym kodem. Właściwość 'border' definiuje styl obramowania elementu. W tym przypadku użyto stylu 'dotted', który oznacza linię kropkowaną, o grubości 2 pikseli i kolorze szarym. Jest to użyteczne w sytuacjach, gdy chcemy wizualnie wyróżnić element, ale w sposób subtelny i nienachalny. Dodatkowo, właściwość 'padding' określa margines wewnętrzny, czyli odstęp między zawartością elementu a jego krawędzią. Zapewnienie marginesu wewnętrznego 15 pikseli pozwala tekstowi oddalić się od krawędzi obramowania, co zwiększa czytelność i estetykę. Praktyczne zastosowanie takich stylizacji można znaleźć w projektowaniu stron internetowych, gdzie często używa się różnych stylów obramowań do organizowania treści. Zgodność z dobrymi praktykami web designu zakłada użycie spójnych i intuicyjnych stylów, co poprawia doświadczenia użytkownika oraz ułatwia nawigację po stronie internetowej. Tego typu formatowanie jest zgodne ze standardami CSS, co czyni kod bardziej przewidywalnym i łatwiejszym w utrzymaniu

Pytanie 13

Aby obraz na stronie automatycznie dopasowywał się do rozmiaru ekranu, na którym strona jest wyświetlana, należy:

A. oba jego wymiary ustawić w pikselach
B. jeden z wymiarów ustawić w pikselach
C. nie zmieniać jego wymiarów stylami CSS
D. jego szerokość ustawić w wartościach procentowych
Responsywny obraz skaluje się razem z układem strony. Uzyskuje się to, ustawiając jego szerokość w jednostce względnej - w procentach, na przykład img { width: 100%; max-width: 100%; }. Obraz dopasowuje się wtedy do szerokości kontenera, a wysokość zwykle pozostawia się jako auto, by zachować proporcje. Dlatego szerokość obrazu ustawia się w wartościach procentowych.

Pytanie 14

Które zdarzenie pozwala uruchomić skrypt JavaScript przy wysyłaniu formularza HTML i kontrolować jego wysłanie?

A. onClick
B. onEnter
C. onSubmit
D. onChange
Zdarzenie onsubmit uruchamia się przy WYSYŁANIU formularza i pozwala skryptowi sprawdzić dane, a nawet zablokować wysłanie (np. przez return false) - dlatego używa się go do walidacji przed wysłaniem. Dlatego pasuje onsubmit.

Pytanie 15

Ikona funkcji w edytorze grafiki rastrowej oznaczona jako „różdżka” pozwala na

Ilustracja do pytania
A. wybiórcze nakładanie koloru przy użyciu pędzla
B. ręczne zaznaczanie fragmentów poprzez przeciąganie kursora
C. zaznaczenie obszaru w oparciu o kolor
D. wybranie konkretnego koloru i ustawienie go jako aktywnego
Funkcja różdżki, znana również jako magiczna różdżka, jest narzędziem powszechnie używanym w edytorach grafiki rastrowej, takich jak Adobe Photoshop czy GIMP. Narzędzie to pozwala użytkownikowi na szybkie zaznaczanie obszarów obrazu na podstawie podobieństwa kolorów. Działa poprzez analizę koloru piksela, na który kliknięto, i automatyczne zaznaczenie sąsiadujących pikseli o podobnych wartościach kolorystycznych. Użytkownik może dostosować czułość narzędzia, co jest określane jako tolerancja, aby precyzyjnie kontrolować zakres zaznaczenia. Ustawienie wyższej tolerancji pozwala na zaznaczenie większej liczby pikseli, które różnią się od koloru docelowego tylko nieznacznie, co jest przydatne przy bardziej złożonych obrazach. Ta funkcjonalność jest szczególnie przydatna podczas pracy z obrazami o jednolitym tle lub podczas edycji zdjęć, gdzie szybkie zaznaczenie obszaru pozwala na skuteczniejsze przeprowadzanie operacji, takich jak zmiana koloru, usuwanie czy kopiowanie wybranych elementów. W praktyce, magiczna różdżka stanowi kluczowy element w arsenale narzędzi grafika, umożliwiając efektywne zarządzanie i manipulowanie obrazem, co jest zgodne z najlepszymi praktykami w branży edycji graficznej.

Pytanie 16

Która z zasad dotyczących poprawnego kodu HTML jest BŁĘDNA (nieprawdziwa)?

A. znaczniki (poza pustymi) działają do domknięcia, np. <p>...</p>
B. w nazwach znaczników nie rozróżnia się wielkości liter (<p> = <P>)
C. znaczniki zamyka się w odwrotnej kolejności niż otwierano
D. atrybuty trzeba podawać w kolejności ALFABETYCZNEJ
Pytanie szuka zasady BŁĘDNEJ. Atrybutów w znaczniku NIE trzeba podawać w kolejności alfabetycznej - ich kolejność jest dowolna i nie wpływa na poprawność kodu. Dlatego fałszywa jest zasada o kolejności alfabetycznej atrybutów.

Pytanie 17

Tworząc raport w systemie zarządzania relacyjnymi bazami danych, umożliwia się

A. usuwanie danych z tabel
B. dodawanie danych do tabel
C. aktualizowanie danych w tabelach
D. analizę wybranych danych
Analiza wybranych danych w systemie obsługi relacyjnych baz danych jest kluczowym aspektem raportowania. Umożliwia to zrozumienie wzorców i trendów, co jest niezbędne dla podejmowania świadomych decyzji biznesowych. Poprzez odpowiednie zapytania SQL, użytkownicy mogą selektywnie wybierać dane, które są dla nich istotne, a następnie przetwarzać je w celu generowania raportów. Przykładem może być analiza sprzedaży w danym okresie czasu, co pozwala na identyfikację najlepiej sprzedających się produktów. Praktyczne zastosowanie raportów obejmuje również monitoring efektywności działań marketingowych, co jest zgodne z najlepszymi praktykami w dziedzinie zarządzania danymi. W kontekście standardów branżowych, raportowanie powinno opierać się na zasadzie przejrzystości, co oznacza, że użytkownicy powinni mieć łatwy dostęp do zrozumiałych i czytelnych wyników analizy. Umożliwia to nie tylko identyfikację problemów, ale również wykorzystanie danych do prognozowania i planowania przyszłych działań.

Pytanie 18

Aby obraz dodany za pomocą kodu HTML był zrozumiały dla programów wspierających osoby niewidome, konieczne jest zdefiniowanie atrybutu

A. src
B. alt
C. border
D. sizes
Atrybut 'alt' w znaczniku <img> jest kluczowy dla dostępności treści internetowych. Jego główną funkcją jest dostarczenie alternatywnego opisu obrazu, który jest odczytywany przez programy wspierające osoby niewidome i niedowidzące, takie jak czytniki ekranu. Dzięki atrybutowi 'alt', użytkownicy, którzy nie mogą zobaczyć obrazu, są w stanie zrozumieć, co on przedstawia. Na przykład, jeśli obrazek przedstawia psa bawiącego się w parku, odpowiednia treść atrybutu 'alt' mogłaby brzmieć: 'Pies bawiący się w parku'. To nie tylko zwiększa dostępność strony, ale również poprawia doświadczenia użytkowników. Zgodnie z wytycznymi WCAG (Web Content Accessibility Guidelines), dostarczenie tekstu alternatywnego dla wszystkich obrazów jest niezbędne do zapewnienia pełnej dostępności treści. Przykład zastosowania: W przypadku strony e-commerce, gdzie obrazy produktów są kluczowe, odpowiednio zdefiniowany atrybut 'alt' pozwala osobom z ograniczeniami wzrokowymi na pełne zrozumienie oferty, co może wpłynąć na ich decyzje zakupowe.

Pytanie 19

Które stwierdzenie dotyczące antyaliasingu jest prawdziwe?

A. pozwala wyeliminować tzw. schodkowanie obrazu
B. to jeden z filtrów służących do wyostrzania obrazu
C. dotyczy krzywych Béziera w grafice wektorowej
D. stosuje się go, aby dodać obrazowi przezroczystość
Pozostałe stwierdzenia są fałszywe. Antyaliasing nie wyostrza obrazu - to robią osobne filtry o przeciwnym działaniu (podbijają kontrast krawędzi). Krzywe Béziera należą do grafiki wektorowej, gdzie schodkowanie nie występuje tak samo. Przezroczystość zapewnia kanał alfa. Antyaliasing usuwa schodkowanie.

Pytanie 20

W PHP, przy wykonywaniu działań na bazie danych MySQL, aby zakończyć sesję z bazą, należy użyć

A. mysqli_exit();
B. mysqli_close();
C. mysqli_commit();
D. mysqli_rollback();
Podejście polegające na używaniu funkcji mysqli_exit() jest błędne, ponieważ taka funkcja nie istnieje w kontekście rozwiązań MySQL w PHP. Oprócz tego, wywołanie mysqli_commit() nie jest właściwą odpowiedzią, gdyż ta funkcja służy do potwierdzania transakcji, a nie do zamykania połączenia. Transakcje w MySQL są kluczowe dla zapewnienia integralności danych, ale ich zakończenie nie jest równoznaczne z zakończeniem połączenia. Z kolei funkcja mysqli_rollback() jest używana do wycofywania transakcji, co także nie dotyczy zamykania połączeń. Te nieprawidłowe odpowiedzi mogą wynikać z nieporozumienia dotyczącego ról poszczególnych funkcji w kontekście zarządzania transakcjami oraz połączeniami. Typowym błędem myślowym jest mylenie zamykania połączenia z zarządzaniem transakcjami; to dwa odrębne aspekty interakcji z bazą danych. Użytkownicy mogą błędnie zakładać, że każda funkcja związana z bazą danych ma na celu ich zamykanie, co prowadzi do niepoprawnych wniosków. Dlatego kluczowe jest zrozumienie różnicy pomiędzy zarządzaniem połączeniami a zarządzaniem transakcjami, co jest fundamentem efektywnej pracy z bazami danych w PHP.

Pytanie 21

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

A. zmienna1 === zmienna1 - 1;
B. zmienna1––;
C. zmienna1++;
D. zmienia1 = zmienna1 - 0;
W analizowanych odpowiedziach pojawiają się różne nieprawidłowe koncepcje. Pierwsza z nich, 'zmienna1 === zmienna1 - 1;', jest błędna, ponieważ porównuje dwie wartości, a nie aktualizuje zmiennej. Ten zapis stwierdza, czy 'zmienna1' jest równa 'zmienna1 - 1', co nie ma związku z dekrementacją, a jedynie sprawdza warunek. Kolejna odpowiedź, 'zmienna1++;', jest również niepoprawna. Operator '++' to operator inkrementacji, który zwiększa wartość zmiennej o 1, a więc całkowicie zaprzecza intencji dekrementacji. Zastosowanie tego operatora zamiast dekrementacji prowadziłoby do zwiększenia wartości 'zmienna1', co jest sprzeczne z założeniem pytania. Ostatnia odpowiedź, 'zmienia1 = zmienna1 - 0;', jest błędna z dwóch powodów: użycie 'zmienia1' sugeruje błąd typograficzny, a sama operacja 'zmienna1 - 0' nie wpłynie na wartość zmiennej, co jest niezgodne z zamiarem jej obniżenia. Powszechnym błędem w programowaniu jest mylenie operatorów oraz nieznajomość ich właściwości, co może prowadzić do poważnych błędów w kodzie. Właściwe rozumienie funkcji operatorów przypisania oraz ich skróconych form jest kluczowe dla efektywnego programowania w JavaScript.

Pytanie 22

Funkcję mysqli_num_rows() w PHP można wywołać po wykonaniu zapytania:

A.
INSERT
B.
DELETE
C.
UPDATE
D.
SELECT
Pozostałe zapytania nie zwracają zbioru wierszy, który można policzyć. INSERT dodaje rekordy, UPDATE je modyfikuje, a DELETE usuwa - żadne z nich nie oddaje tabeli wyników, więc mysqli_num_rows() nie miałaby czego liczyć (dla nich używa się mysqli_affected_rows()). Liczba wierszy w wyniku ma sens dla SELECT, dlatego to ono jest poprawne.

Pytanie 23

Zakładając, że użytkownik nie miał wcześniej żadnych uprawnień, polecenie SQL przyzna użytkownikowi anna jedynie uprawnienia do

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
A. wybierania, wstawiania oraz modyfikacji danych w wszystkich tabelach w bazie o nazwie klienci
B. wybierania, dodawania pól oraz modyfikacji struktury tabeli o nazwie klienci
C. wybierania, wstawiania oraz aktualizacji danych tabeli o nazwie klienci
D. wybierania, dodawania pól oraz modyfikacji struktury wszystkich tabel w bazie o nazwie klienci
Jak się przyjrzysz innym odpowiedziom, to zauważysz, że mają trochę błędnych założeń. Pierwsza odpowiedź mówi o nadawaniu praw do wszystkich tabel w bazie klienci, co jest błędne, bo polecenie SQL mówi tylko o jednej tabeli - klienci. Nie ma tu mowy o całej bazie, więc ta odpowiedź jest do bani. Druga opcja, która dotyczy dodawania pól i zmiany struktury tabeli, też jest złudna. Te operacje wymagają użycia zmiany komendy ALTER, a nie GRANT, bo GRANT to tylko nadawanie praw do już istniejących danych. Czwarta odpowiedź myli się sugerując, że można zmieniać strukturę wszystkich tabel, co w ogóle nie jest tym, co robi GRANT. Często pojawia się ten błąd, że jedna komenda SQL może mieć szerokie zastosowanie, a tak naprawdę każda z nich ma swoją specyfikę i ograniczenia w działaniach. Rozumienie tego jest kluczem do efektywnego zarządzania uprawnieniami w bazach danych. Warto być czujnym, bo źle nadane uprawnienia mogą zaszkodzić bezpieczeństwu i integralności danych.

Pytanie 24

Jaki wynik daje poniższy kod PHP?

$dane = array ('imie' => 'Anna', 'nazwisko' => 'Nowak', 'wiek' => 21);
A. określa tablicę zawierającą sześć wartości
B. jest niepoprawny, nieznany operator =>
C. definiuje tablicę z trzema wartościami
D. jest błędny, ponieważ indeksami tablicy mogą być wyłącznie liczby całkowite
W tym przypadku mówimy o tablicach w PHP, które są podstawą zarządzania danymi w tym języku. Jednak stwierdzenie, że tablice asocjacyjne mogą mieć tylko klucze liczbowe, to nieprawda. W rzeczywistości klucze asocjacyjne mogą być wszelkimi wartościami skalarnymi, a najczęściej używa się ciągów znaków dla lepszej czytelności kodu. Operator '=>' w PHP jest powszechnie stosowany do przypisywania wartości do kluczy tablic asocjacyjnych, co jest totalnie normalne. Wydaje mi się, że błędne rozumienie tego operatora może pochodzić z braku praktyki z PHP albo z mieszania z innymi językami. Przykład zawiera trzy pary klucz-wartość, więc twierdzenie, że definiuje sześć wartości, jest grube nieporozumienie. Zrozumienie, jak PHP działa z tablicami, jest kluczowe, zwłaszcza w aplikacjach webowych, bo tablice są mega przydatne do przetwarzania danych. Dlatego warto przyłożyć się do analizowania struktury tych tablic, co pomoże unikać błędów w projektach.

Pytanie 25

W którym znaczniku HTML5 stosuje się atrybut action?

A.
<form>
B.
<code>
C.
<body>
D.
<head>
Atrybut action określa adres (URL), pod który trafią dane po zatwierdzeniu formularza, dlatego należy do znacznika <form>. Razem z atrybutem method (GET lub POST) definiuje, dokąd i jak wysłać dane. Dlatego action stosuje się w <form>.

Pytanie 26

Który atrybut nadać polu, aby przyjmowało automatycznie kolejne liczby całkowite?

A.
PRIMARY KEY
B.
AUTO_INCREMENT
C.
NULL
D.
NOT NULL
Atrybut AUTO_INCREMENT sprawia, że przy każdym nowym rekordzie pole samo przyjmuje kolejną liczbę całkowitą (1, 2, 3, ...), bez podawania jej ręcznie. Stosuje się go zwykle dla klucza głównego z unikalnymi identyfikatorami. Dlatego automatyczną numerację daje AUTO_INCREMENT.

Pytanie 27

Którym poleceniem wyświetlisz konfigurację serwera PHP (wersję PHP, system serwera, wartości zmiennych predefiniowanych)?

A.
print_r(ini_get_all());
B.
phpinfo();
C.
phpcredits();
D.
echo phpversion();
Aby zobaczyć konfigurację serwera PHP - wersję, system, rozszerzenia i zmienne predefiniowane - używa się phpinfo();. Funkcja sama buduje czytelną stronę z tymi danymi, więc nie trzeba ich zbierać ręcznie. Zapamiętaj: jedno wywołanie phpinfo() zastępuje dziesiątki osobnych sprawdzeń środowiska.

Pytanie 28

W CSS właściwość font-size może przyjmować wartości według słów kluczowych

A. tylko smali, smaller, large, larger
B. wyłącznie smali, medium, large
C. z zestawu xx-small, x-small, smali, medium, large, x-large, xx-large
D. jedynie big i smali
Właściwość font-size w CSS pozwala na określenie rozmiaru czcionki za pomocą zestawu wartości słownikowych, które obejmują xx-small, x-small, small, medium, large, x-large oraz xx-large. Użycie tych słów kluczowych jest zgodne z wytycznymi CSS i zapewnia spójne i zrozumiałe podejście do projektowania. Przykładowo, definiując klasę CSS dla nagłówka, możemy zastosować: h1 { font-size: large; } co skutkuje odpowiednim zwiększeniem rozmiaru czcionki, co jest zgodne z hierarchią typograficzną dokumentu. Zastosowanie wartości słownikowych zwiększa czytelność i dostępność treści, ponieważ są one zrozumiałe zarówno dla programistów, jak i dla przeglądarek. Ponadto, korzystając z tych wartości, projektanci mogą łatwiej dostosować wygląd strony do różnych urządzeń, co jest kluczowe w kontekście responsywnego web designu. Warto również wspomnieć, że wartości te są niezależne od jednostek miary, takich jak em czy px, co sprawia, że są bardziej elastyczne w użyciu.

Pytanie 29

Którym znacznikiem osadzić kod CSS wewnątrz dokumentu HTML?

A.
<style>
B.
<head>
C.
<body>
D.
<meta>
Pozostałe znaczniki nie służą do osadzania CSS. <head> to sekcja nagłówka (zawiera m.in. <style>, ale sama nim nie jest), <body> mieści treść strony, a <meta> podaje metadane. Kod CSS wstawia się w <style>.

Pytanie 30

Zapisano kod HTML wstawiający grafikę na stronę internetową:

<img src="rysunek.png" alt="pejzaż">
Jeżeli rysunek.pngnie zostanie odnaleziony, przeglądarka:
A. w miejscu grafiki wypisze tekst "pejzaż".
B. nie wyświetli strony internetowej.
C. w miejscu grafiki wypisze błąd wyświetlania strony.
D. w miejscu grafiki wypisze tekst "rysunek.png".
Brawo! Wybrałeś prawidłową odpowiedź. Element <img> w kodzie HTML może mieć atrybut alt, który określa tekst alternatywny, który ma być wyświetlony, gdy obrazek nie może zostać załadowany. W tym przypadku, atrybut alt ma wartość 'pejzaż', co oznacza, że jeśli obraz 'rysunek.png' nie może zostać załadowany, przeglądarka wyświetli tekst 'pejzaż' w miejscu, gdzie powinien być obraz. Ta funkcja jest przydatna z kilku powodów. Po pierwsze, pozwala użytkownikowi zrozumieć kontekst strony, nawet jeśli nie może zobaczyć obrazu. Po drugie, jest to zgodne ze standardami dostępności, ponieważ czytniki ekranu dla osób niewidomych mogą odczytywać ten tekst. To jest ważne dla tworzenia stron internetowych, które są dostępne dla wszystkich.

Pytanie 31

Która z poniżej wymienionych zasad nie przyczyni się do poprawy czytelności kodu?

A. W każdej linii kodu powinna znaleźć się tylko jedna komenda
B. Nazwy zmiennych muszą odzwierciedlać ich funkcję
C. Kod powinien być napisany bez wcięć i nadmiarowych enterów
D. Trzeba dodawać komentarze w trudniejszych fragmentach kodu
Odpowiedź "Kod powinien być napisany bez wcięć i zbędnych enterów" jest prawidłowa, ponieważ brak wcięć i odpowiednich przerw w kodzie negatywnie wpływa na jego czytelność. Właściwe formatowanie kodu, w tym stosowanie wcięć, jest kluczowe dla zrozumienia struktury programu. Pomaga to programistom w szybkim zlokalizowaniu bloków kodu, a także wzmacnia hierarchię i powiązania między funkcjami i klasami. Na przykład w języku Python, wcięcia są integralną częścią składni, co oznacza, że brak wcięć skutkuje błędami wykonania. W praktyce, pisząc kod, warto zastosować konwencje formatowania takie jak PEP 8 dla Pythona lub Google Java Style Guide dla Javy, które promują przejrzystość i jednoznaczność. W związku z tym, aby zwiększyć czytelność i zrozumiałość kodu, należy stosować wcięcia oraz logiczne podziały. Dobrze sformatowany kod nie tylko ułatwia jego przeglądanie, ale również późniejsze utrzymanie oraz współpracę z innymi programistami.

Pytanie 32

W języku JavaScript rezultat wykonania polecenia

zmienna1 -= 1;
będzie tożsamy z wynikiem polecenia
A. zmienna1--;
B. zmienna1++;
C. zmienna1 === zmienna1 - 1;
D. zmienna1 = zmienna1 - 0;
Istnieje wiele koncepcji, które mogą prowadzić do błędnych wniosków dotyczących działania przypisania i operatorów w JavaScript. Zaczynając od zmienna1++, jest to operator inkrementacji, który zwiększa wartość zmiennej o jeden, a nie ją zmniejsza. W związku z tym, ta odpowiedź jest zasadniczo błędna, ponieważ zmienia wartość w przeciwnym kierunku. Kolejna odpowiedź, zmienna1 === zmienna1 - 1;, wyraża porównanie logiczne, które sprawdza, czy zmienna1 jest równa zmiennej zmniejszonej o jeden. Nie jest to tożsame z wykonaniem dekrementacji i wprowadza dodatkowe zamieszanie, gdyż nie zmienia wartości zmiennej, a jedynie zwraca wartość logiczną (true lub false). Natomiast zmienna1 = zmienna1 - 0; jest także błędna, gdyż ta instrukcja nie wpływa na wartość zmiennej, jedynie przypisuje jej tę samą wartość, co również nie jest zgodne z celem dekrementacji. Takie nieporozumienia mogą wynikać z braku znajomości podstawowych operatorów i ich zastosowania, co jest kluczowe w programowaniu. Ważne jest, aby zrozumieć, że operatorzy wpływają na zmiany wartości, a nie tylko na ich porównania. Warto także pamiętać, że efektywne pisanie kodu powinno opierać się na zrozumieniu działania operatorów, co przyczyni się do tworzenia kodu, który jest zarówno funkcjonalny, jak i łatwy do zrozumienia w kontekście współpracy w zespole programistycznym.

Pytanie 33

Aby w JavaScript wykonać wymienione kroki:

1. Wyświetlić okno do wpisania wartości z poleceniem "Podaj kwalifikację: ",
   następnie po zatwierdzeniu
2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się
   wartość pobrana z okna "Kwalifikacja: ..."
należy w znaczniku <script> umieścić kod
A. A = prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);

B. A = prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " .A);

C. A = alert("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);

D. A << prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);
A. A.
B. B.
C. C.
D. D.
Wygląda na to, że nie do końca trafiłeś. Niektóre odpowiedzi sugerowały użycie funkcji, które nie nadają się do tego zadania. Na przykład, `alert` pokazuje tylko jakiś komunikat, ale nie pozwala na wpisanie czegoś przez użytkownika. Inną możliwością mogły być też metody manipulacji DOM, ale to już trochę bardziej skomplikowane i nie było w tym przypadku konieczne. Ważne jest, żeby wiedzieć, które funkcje w JavaScript są do czego, żeby móc je dobrze wykorzystać.

Pytanie 34

Ikona przedstawiająca funkcję w edytorze grafiki rastrowej, znana jako „kubełek”, pozwala na

Ilustracja do pytania
A. zmianę bieżących kolorów
B. wypełnienie obszaru, który został zaznaczony kolorem
C. wybór obszaru o identycznym kolorze
D. pobranie wybranej barwy i ustawienie jej jako aktywnej
Narzędzie 'kubełek', często spotykane w edytorach grafiki rastrowej takich jak Adobe Photoshop czy GIMP, służy do wypełniania zaznaczonego obszaru kolorem. Jest to szczególnie przydatne w sytuacjach, gdy chcemy szybko zapełnić jednolitym kolorem duże powierzchnie, takie jak tła lub obiekty. Działa na zasadzie zalewania najbliższych pikseli wybranym kolorem, uwzględniając podobieństwo kolorów, co można regulować za pomocą opcji tolerancji. W praktyce, narzędzie to usprawnia proces tworzenia grafik, ponieważ eliminuje potrzebę ręcznego kolorowania każdego piksela. Dodatkowo 'kubełek' może być stosowany w połączeniu z różnymi trybami mieszania, co pozwala na uzyskanie bardziej zaawansowanych efektów wizualnych. Praca z 'kubełkiem' wymaga zrozumienia koncepcji warstw, ponieważ wypełnianie na konkretnej warstwie ma wpływ na finalny wygląd projektu. Wiedza o tym, jak skutecznie używać narzędzia 'kubełek', jest niezbędna dla każdego grafika cyfrowego, który chce pracować efektywnie i profesjonalnie, realizując projekty zgodnie z najlepszymi praktykami branżowymi.

Pytanie 35

Co oznacza deklaracja CSS margin: auto;?

A. marginesy dziedziczone po elemencie nadrzędnym
B. marginesy stałe dla danej przeglądarki
C. marginesy równe domyślnym wartościom elementu
D. marginesy obliczane tak, by element był wyśrodkowany w poziomie
Deklaracja margin: auto; każe przeglądarce obliczyć marginesy boczne tak, by element (o określonej szerokości) był WYŚRODKOWANY w poziomie - nadmiar miejsca rozkłada się równo na lewo i prawo. Dlatego oznacza wyśrodkowanie w poziomie.

Pytanie 36

Programista stworzył w języku C++ pętlę mającą na celu obliczenie wartości 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny, gdyż

int a = 1; 
for (int i=1; i < 5; i++)
{
a = a * i;
}
cout << a;
A. Zmienna a powinna być inicjowana wartością 0 zamiast 1.
B. Parametr i pętli powinien być rozpoczęty od wartości 0 zamiast 1.
C. Parametr i pętli powinien być zmniejszany zamiast zwiększany.
D. W drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5.
W analizowanej pętli występują błędy, które mogą prowadzić do niepoprawnych wyników. Inicjowanie zmiennej a wartością 0 zamiast 1 uniemożliwiłoby uzyskanie poprawnego wyniku mnożenia, ponieważ każdy wynik pomnożony przez 0 daje 0, co jest błędnym podejściem w obliczeniach silni. Dodatkowo, zmiana wartości początkowej parametru i pętli na 0 zamiast 1 również jest niewłaściwa. Przy takim ustawieniu pętla rozpoczęłaby od zera, co w przypadku mnożenia również prowadziłoby do błędnych wyników, ponieważ silnia nie jest zdefiniowana dla zera w kontekście mnożenia w tym przypadku. Ponadto, sugerowanie, że parametr i powinien być dekrementowany zamiast inkrementowany, jest całkowicie mylącym podejściem, ponieważ silnia jest definiowana jako iloczyn liczb całkowitych rosnących, a nie malejących. Wartości dekrementowane nie odpowiadają definicji silni i nie przyniosłyby zamierzonego efektu. Ostatecznie, brak porównania i < 6 w drugiej części pętli skutkuje pominięciem liczby 5, co jest kluczowe dla uzyskania właściwego wyniku. W programowaniu każda iteracja pętli musi być przemyślana, a końcowy warunek powinien zawsze obejmować wszystkie wartości, które mają być kalkulowane.

Pytanie 37

W aplikacji internetowej komunikat powinien pojawiać się tylko wtedy, gdy dany użytkownik jest na stronie po raz pierwszy. Którą funkcję PHP należy w tym celu zastosować?

A. define
B. setcookie
C. session_destroy
D. mysqli_change_user
Prawidłowo – w tym zadaniu kluczowa jest funkcja setcookie(), bo to właśnie ciasteczka są standardowym mechanizmem do rozpoznawania, czy użytkownik był już wcześniej na danej stronie. W praktyce robi się to tak: przy pierwszym wejściu na stronę sprawdzasz, czy istnieje określone cookie, np. $_COOKIE['first_visit']. Jeśli go nie ma, wyświetlasz komunikat powitalny i ustawiasz ciasteczko za pomocą setcookie('first_visit', '1', time()+3600*24*365). Przy kolejnych wejściach cookie już będzie istniało, więc komunikat się nie pojawi. To jest bardzo typowy wzorzec np. dla banerów informujących o ciasteczkach, komunikatów onboardingowych czy jednorazowych podpowiedzi dla nowych użytkowników. Z mojego doświadczenia w webdevie to najprostsze i najbardziej przenośne rozwiązanie, bo działa niezależnie od sesji i logowania użytkownika – wystarczy przeglądarka z włączonymi cookies. Ważne jest też, żeby pamiętać o tym, że setcookie() musi być wywołane przed wysłaniem jakiegokolwiek outputu (czyli przed jakimkolwiek HTML, echo, BOM itd.), bo ciasteczka są wysyłane w nagłówkach HTTP. W bardziej rozbudowanych projektach często łączy się cookies z innymi mechanizmami (np. sesją czy bazą danych), ale do prostego sprawdzenia „czy użytkownik jest tu pierwszy raz” ciasteczko ustawiane setcookie() to według dobrych praktyk w zupełności wystarcza. Warto też dbać o parametry bezpieczeństwa ciastek (secure, httponly, samesite), szczególnie gdy później używamy tego mechanizmu do czegoś ważniejszego niż zwykły komunikat informacyjny.

Pytanie 38

Weryfikację kompletności formularza, działającą po stronie przeglądarki, należy zrealizować w języku

A. CSS
B. PHP
C. JavaScript
D. Ruby on Rails
Poprawna odpowiedź to JavaScript, bo właśnie ten język działa bezpośrednio w przeglądarce użytkownika i pozwala na dynamiczną weryfikację formularzy jeszcze przed wysłaniem danych na serwer. JavaScript ma dostęp do drzewa DOM, więc może odczytać wartości pól, sprawdzić, czy nie są puste, czy e‑mail ma poprawny format, czy hasło ma odpowiednią długość, a nawet czy dwa pola hasła są identyczne. Z mojego doświadczenia to jest absolutny standard w nowoczesnych aplikacjach webowych: najpierw lekka walidacja po stronie klienta w JS, a dopiero potem solidna walidacja po stronie serwera.
Dobrym przykładem jest formularz rejestracji: po wpisaniu zbyt krótkiego hasła JavaScript może od razu wyświetlić komunikat pod polem, bez przeładowania strony. Można też blokować przycisk „Wyślij”, dopóki wszystkie wymagane pola nie są poprawnie wypełnione. W praktyce często używa się zdarzeń takich jak onsubmit na formularzu albo input/blur na polach, żeby na bieżąco sprawdzać dane. Można też korzystać z gotowych bibliotek walidacyjnych, ale pod spodem i tak pracuje JavaScript.
W dobrych praktykach przyjmuje się zasadę: walidacja po stronie klienta poprawia wygodę i szybkość obsługi (user experience), ale nie zastępuje walidacji po stronie serwera. JavaScript służy więc do „pierwszej linii obrony” i podpowiedzi użytkownikowi, a serwer (np. w PHP czy innym języku backendowym) musi i tak wszystko jeszcze raz sprawdzić ze względów bezpieczeństwa. Warto też pamiętać o wykorzystaniu wbudowanych mechanizmów HTML5 (atrybuty required, type="email" itd.), ale to JavaScript daje pełną kontrolę nad logiką i komunikatami błędów, bo pozwala tworzyć własne reguły i reagować na konkretne zachowania użytkownika.

Pytanie 39

Program debugger służy do

A. interpretacji kodu w wirtualnej maszynie Java.
B. analizy wykonywanego programu w celu lokalizacji błędów.
C. analizy kodu źródłowego w celu odnalezienia błędów składniowych.
D. tłumaczenia kodu zapisanego językiem wyższego poziomu na język maszynowy.
W tym pytaniu łatwo się pomylić, bo kilka pojęć brzmi podobnie, ale dotyczy zupełnie innych narzędzi. Debugger nie służy ani do interpretacji kodu, ani do kompilacji, ani do sprawdzania samej składni. To narzędzie do analizy programu w trakcie jego działania. Czyli nie patrzymy tylko na kod źródłowy, ale na to, jak program faktycznie się wykonuje krok po kroku. Interpretacja kodu w wirtualnej maszynie Java to zadanie interpretera/JVM. Maszyna wirtualna Javy pobiera bajtkod (plik .class) i go wykonuje, optymalizuje, czasem kompiluje JIT-em do kodu maszynowego. To zupełnie inna warstwa niż debugowanie. Debugger może się podłączyć do JVM, ale sam z siebie nie interpretuje kodu. To typowe pomylenie roli środowiska uruchomieniowego z narzędziem diagnostycznym. Analiza kodu źródłowego w celu znalezienia błędów składniowych też nie jest zadaniem debuggera. Błędy składniowe wychwytuje kompilator albo linter, ewentualnie statyczna analiza kodu. Debugger działa dopiero, gdy program się kompiluje i da się go uruchomić. Jeśli są błędy składni, program w ogóle nie wystartuje, więc nie ma co debugować. Częsty błąd myślowy jest taki, że „narzędzie do błędów” musi ogarniać wszystkie rodzaje błędów. W praktyce dzieli się to na: składniowe (kompilator), logiczne i wykonania (debugger), a także problemy jakościowe (analiza statyczna, testy). Tłumaczenie kodu z języka wysokiego poziomu na maszynowy to z kolei klasyczna rola kompilatora. Kompilator generuje kod wynikowy (np. plik .exe czy .class), a debugger ten gotowy program tylko obserwuje i steruje jego wykonaniem. Moim zdaniem warto jasno rozdzielić te pojęcia: kompilator kompiluje, interpreter wykonuje, a debugger pomaga nam zrozumieć i naprawić działający program, śledząc jego zachowanie, zmienne i przepływ sterowania. To pomaga unikać mieszania narzędzi, co później bardzo ułatwia naukę bardziej zaawansowanych technologii.

Pytanie 40

Którą technologię poleca się, aby treść serwisu mogli edytować użytkownicy bez umiejętności programowania?

A. CMS
B. SEO
C. FTP
D. SSL
Pozostałe skróty to inne technologie. SEO to optymalizacja pod wyszukiwarki, FTP to protokół przesyłania plików, a SSL to szyfrowanie połączenia - żadne nie służy do edycji treści przez laika. Samodzielną edycję treści bez kodowania umożliwia CMS.