Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 20:30
  • Data zakończenia: 8 czerwca 2026 20:33

Egzamin niezdany

Wynik: 10/40 punktów (25,0%)

Wymagane minimum: 20 punktów (50%)

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

Jeżeli rozmiar pliku graficznego jest zbyt duży do publikacji w sieci, co należy zrobić?

A. zmniejszyć jego rozdzielczość
B. zwiększyć jego głębię kolorów
C. zapisać w formacie BMP
D. dodać kanał alfa
Zmniejszenie rozdzielczości pliku graficznego jest jedną z najskuteczniejszych metod na zmniejszenie jego rozmiaru, co jest niezwykle ważne w kontekście publikacji w Internecie. Rozdzielczość obrazu odnosi się do liczby pikseli, które składają się na dany obraz, wyrażoną zazwyczaj w pikselach na cal (PPI) lub w całkowitej liczbie pikseli w szerokości i wysokości. Zmniejszając rozdzielczość, obniżamy liczbę pikseli, co w efekcie prowadzi do mniejszego rozmiaru pliku. Na przykład, obraz o rozdzielczości 4000x3000 pikseli ma 12 milionów pikseli, podczas gdy obraz o rozdzielczości 2000x1500 pikseli zaledwie 3 miliony pikseli. Oprócz zmniejszenia rozdzielczości, można również zastosować inne techniki kompresji, takie jak zmiana formatu pliku na JPEG, który jest bardziej efektywny w kompresji zdjęć, a także wykorzystanie narzędzi do optymalizacji grafiki, takich jak TinyPNG czy ImageOptim. Zmniejszając rozdzielczość, należy jednak pamiętać o zachowaniu odpowiedniej jakości obrazu, aby nie wpłynęło to negatywnie na jego czytelność i estetykę, co jest kluczowe w kontekście publikacji online.

Pytanie 2

Który zestaw zawiera wyłącznie języki programowania działające po stronie serwera?

A. Java, C#, Python, Ruby, PHP
B. Java, C#, AJAX, Ruby, PHP
C. Java, C#, Python, ActionScript, PHP
D. C#, Python, Ruby, PHP, JavaScript
Po stronie serwera działają języki, których kod wykonuje się na serwerze i generuje treść wysyłaną do przeglądarki - zestaw Java, C#, Python, Ruby, PHP zawiera wyłącznie takie języki. Dlatego poprawny jest ten zestaw.

Pytanie 3

Który zapis CSS ustawi tło bloku <div> na kolor niebieski?

A.
div { border-color: blue; }
B.
div { color: blue; }
C.
div { shadow: blue; }
D.
div { background-color: blue; }
Kolor tła elementu ustawia właściwość background-color, więc div { background-color: blue; } daje niebieskie tło bloku <div>. Dlatego ten zapis jest poprawny.

Pytanie 4

Aby poprawnie udokumentować poniższą linię kodu, po znakach // należy dodać komentarz, że linia ta:

document.getElementById("tytul").style.color = "red"; //
A. zmienia treść elementu o id „tytuł” na słowo „red”
B. zawiera błąd składniowy i nie zadziała
C. tworzy nowy element o id „tytuł”
D. zmienia kolor tekstu elementu o id „tytuł” na czerwony
Pozostałe opisy błędnie tłumaczą działanie linii. Nie zmienia ona treści elementu - do podmiany zawartości służy innerHTML, a tu użyto style.color, czyli właściwości wyglądu. Nie tworzy też nowego elementu: getElementById jedynie ODNAJDUJE istniejący element o podanym id, więc element „tytuł” musi już być na stronie. Linia nie zawiera też błędu - składnia jest poprawna i kod się wykona. Przypisanie style.color = "red" zmienia kolor tekstu elementu o id „tytuł” na czerwony, dlatego ten opis jest właściwy.

Pytanie 5

Za pomocą którego protokołu można bezpiecznie (z szyfrowaniem) przesłać pliki strony internetowej na serwer WWW?

A. IMAP
B. SFTP
C. Telnet
D. POP3
Klucz tego pytania to dwa słowa: pliki i bezpiecznie. POP3 oraz IMAP odpadają już na pierwszym z nich - oba to protokoły poczty elektronicznej. POP3 pobiera wiadomości ze skrzynki na komputer i zwykle usuwa je z serwera, a IMAP zarządza nimi bezpośrednio na serwerze pocztowym; żaden z nich nie służy do wysyłania plików witryny na serwer WWW i pomyłka tu bierze się głównie z tego, że wszystkie cztery nazwy to skróty protokołów sieciowych. Telnet z kolei rzeczywiście łączy się ze zdalnym hostem, ale to narzędzie zdalnej konsoli, a nie transferu plików - i co najważniejsze, przesyła dane oraz hasła tekstem jawnym, więc nie spełnia warunku bezpieczeństwa. Pozostaje SFTP: przesyła pliki w sesji SSH, w pełni zaszyfrowanej, dzięki czemu zarówno zawartość, jak i dane logowania są chronione w drodze na serwer. To dlatego do bezpiecznej publikacji strony używa się SFTP, a nie nieszyfrowanego FTP czy któregokolwiek z pozostałych protokołów.

Pytanie 6

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

A. w nazwach znaczników nie rozróżnia się wielkości liter (<p> = <P>)
B. znaczniki zamyka się w odwrotnej kolejności niż otwierano
C. znaczniki (poza pustymi) działają do domknięcia, np. <p>...</p>
D. atrybuty trzeba podawać w kolejności ALFABETYCZNEJ
Pozostałe zasady są PRAWDZIWE, więc nie pasują do pytania o błąd. Znaczniki (poza pustymi) faktycznie działają do domknięcia (np. <p>...</p>), w nazwach znaczników nie rozróżnia się wielkości liter, a zamyka się je w odwrotnej kolejności niż otwierano. Nieprawdziwy jest tylko wymóg alfabetycznej kolejności atrybutów.

Pytanie 7

W języku HTML w celu określenia słów kluczowych dla danej strony, należy zastosować następujący zapis

A. <meta name="keywords" content="psy, koty, gryzonie">
B. <meta name="keywords" = "psy, koty, gryzonie">
C. <meta keywords="psy, koty, gryzonie">
D. <meta name="description" content="psy, koty, gryzonie">
Pierwsza z niepoprawnych odpowiedzi, <meta keywords="psy, koty, gryzonie">, jest błędna z powodu braku atrybutu 'name'. W standardzie HTML każdy element <meta> powinien zawierać atrybut 'name' lub 'property', który określa, jakiego rodzaju metadane są dostarczane. Pominięcie tego atrybutu sprawia, że przeglądarki mogą nieprawidłowo interpretować ten element, co negatywnie wpływa na SEO strony. Druga odpowiedź, <meta name="keywords" = "psy, koty, gryzonie">, zawiera błędną składnię. Równanie atrybutu w HTML powinno być zapisane z wykorzystaniem znaku ' ', a nie '='. Poprawny zapis powinien wyglądać: <meta name="keywords" content="psy, koty, gryzonie">. Błąd ten jest częstym źródłem problemów w kodzie HTML, prowadzącym do niezrozumienia przez przeglądarki, co może skutkować ignorowaniem tego elementu przez algorytmy wyszukiwarek. Ostatnia odpowiedź, <meta name="description" content="psy, koty, gryzonie">, jest niepoprawna, ponieważ nie dotyczy słów kluczowych, lecz opisu strony. Chociaż atrybut 'description' również jest istotny i wpływa na SEO, to jego zastosowanie w tym kontekście nie odpowiada na pytanie o definicję słów kluczowych. Poprawne użycie metadanych polega na precyzyjnym dobraniu atrybutów do ich funkcji, co jest kluczowe dla efektywnej optymalizacji strony.

Pytanie 8

Pole tabeli „czyWypozyczona” może przyjmować tylko wartości true lub false. Który typ danych jest dla niego najlepszy?

A.
VARCHAR(5)
B.
DOUBLE
C.
CHAR
D.
BOOLEAN
Pozostałe typy są nieadekwatne do dwustanowej flagi. CHAR przechowuje znaki o stałej długości - użyty do „T”/„N” działałby, ale jest mniej czytelny i nie ogranicza wartości do dwóch stanów. DOUBLE to typ liczbowy zmiennoprzecinkowy, przeznaczony do liczb rzeczywistych, więc do prawda/fałsz zupełnie nie pasuje. VARCHAR(5) trzyma tekst (np. „true”) - zajmuje więcej miejsca i dopuszcza dowolne, także błędne, wpisy. Dwie wartości logiczne najlepiej odda BOOLEAN, dlatego ta odpowiedź jest poprawna.

Pytanie 9

Deklaracja w języku JavaScript var x = true; powoduje, że zmienna x jest typu:

A. liczbowego
B. wyliczeniowego
C. ciągu znaków
D. logicznego
Pozostałe typy nie pasują do wartości true. Typ liczbowy trzyma liczby, ciąg znaków - tekst (w cudzysłowach), a typ wyliczeniowy to zbiór nazwanych stałych (JS klasycznie go nie ma). Wartość true należy do typu logicznego.

Pytanie 10

Jak brzmi nazwa edytora, który wspiera proces tworzenia stron internetowych i którego działanie można określić w polskim tłumaczeniu słowami: widzisz to, co otrzymujesz?

A. WEB STUDIO
B. IDE
C. WYSIWYG
D. VISUAL EDITOR
IDE, czyli Integrated Development Environment, to zintegrowane środowisko programistyczne, które oferuje narzędzia dla programistów do pisania, testowania i debugowania kodu. IDE zazwyczaj skupia się na językach programowania i wymaga od użytkownika znajomości takich języków jak C++, Java czy Python, co znacznie różni się od podejścia WYSIWYG, które ma na celu umożliwienie edycji treści bez potrzeby pisania kodu. Wybór IDE zamiast edytora WYSIWYG może prowadzić do błędnych wniosków dotyczących procesu tworzenia stron internetowych, ponieważ programiści i twórcy treści mają różne potrzeby i umiejętności. WEB STUDIO to termin, który zazwyczaj odnosi się do kompleksowych narzędzi do tworzenia stron internetowych, ale niekoniecznie oznacza edytor WYSIWYG. Niektóre z tych narzędzi mogą wymagać znajomości kodu, co również nie pasuje do koncepcji WYSIWYG. VISUAL EDITOR to termin ogólny, który może odnosić się do różnych typów edytorów, ale nie jest ściśle związany z ideą WYSIWYG. Pominięcie tego aspektu może prowadzić do mylnych wyobrażeń o możliwościach i funkcjonalności tych narzędzi. Dlatego ważne jest, aby zrozumieć różnice między tymi pojęciami i znać ich zastosowanie w praktyce. W przeciwnym razie można łatwo wpaść w pułapkę myślenia, że wszystkie narzędzia do tworzenia treści są sobie równe, co jest dalekie od prawdy.

Pytanie 11

Narzędzie phpMyAdmin służy do administrowania serwerem:

A. WWW
B. plików
C. baz danych
D. FTP
phpMyAdmin to napisane w PHP narzędzie webowe do administrowania serwerem BAZ DANYCH MySQL/MariaDB - obsługujesz je przez przeglądarkę. Pozwala bez znajomości poleceń konsolowych tworzyć i usuwać bazy oraz tabele, przeglądać i edytować rekordy, uruchamiać zapytania SQL, importować i eksportować dane czy zarządzać użytkownikami. Dlatego znajdziesz je w panelu niemal każdego hostingu. Zapamiętaj: phpMyAdmin = graficzna administracja bazą danych.

Pytanie 12

W dokumencie XHTML znajduje się fragment kodu, który posiada błąd w walidacji. Na czym ten błąd polega?

<h6>tekst</h6>
<p>pierwsza <b>linia</b> <br>
Druga linia</p>
A. Znaczniki powinny być zapisywane dużymi literami
B. Znacznik <br> musi być zamknięty
C. Nie ma nagłówka szóstego stopnia
D. Znacznik <b> nie może być umieszczany wewnątrz znacznika <p>
Niektóre odpowiedzi sugerują błędne interpretacje zasad XHTML. Po pierwsze, stwierdzenie, że znacznik <b> nie może być zagnieżdżany w znaczniku <p>, jest nieprawdziwe. W rzeczywistości, znacznik <b> jest dozwolony w kontekście tekstu wewnątrz znacznika <p>, ponieważ oba należą do tej samej kategorii elementów inline. Wiele elementów inline, takich jak <i>, <u> czy <strong>, może być zagnieżdżanych bez problemu w znaczniku <p>, co czyni tę odpowiedź błędną. Z kolei twierdzenie o braku nagłówka szóstego stopnia jest również mylące, ponieważ znacznik <h6> jest częścią standardu HTML i XHTML, a jego użycie jest jak najbardziej zasadne. Przechodząc do kwestii pisania znaczników wielkimi literami, warto zauważyć, że XHTML jest czuły na wielkość liter, a właściwe stosowanie wielkich liter w przypadku znaczników nie jest wymogiem, ale zaleceniem w kontekście stylu. Ostatecznie, błędne uznanie zamknięcia znacznika <br> za opcjonalne w XHTML prowadzi do problemów z walidacją i interpretacją dokumentu, co może skutkować problemami w wyświetlaniu strony w różnych przeglądarkach. Takie nieprawidłowe podejście do składni może prowadzić do poważnych problemów w przyszłości, ponieważ poprawne zamykanie znaczników jest kluczowe dla każdego dokumentu XHTML, co podkreśla znaczenie znajomości i stosowania dobrych praktyk w pracy z kodem.

Pytanie 13

W stylu CSS zdefiniowano klasę uzytkownik:

p.uzytkownik {
    color: blue;
}
Na stronie będą wyświetlane czcionką w kolorze niebieskim:
A. paragrafy, do których została przypisana klasa uzytkownik.
B. wszystkim elementom w sekcji <body> z przypisaną klasą uzytkownik.
C. tylko elementy tekstowe typu <p>, <h1>.
D. wszystkie akapity.
Klucz do tego pytania leży w zrozumieniu, jak działa składnia selektorów CSS. Wiele osób patrzy na fragment p.uzytkownik i automatycznie myśli: „to pewnie wszystkie akapity” albo „wszystko z klasą uzytkownik w body”. Tymczasem CSS jest dość precyzyjny. Sam selektor p oznaczałby rzeczywiście wszystkie paragrafy <p> w dokumencie, niezależnie od klas. Natomiast .uzytkownik bez literki przed kropką oznaczałby wszystkie elementy HTML, które mają w atrybucie class wpisane uzytkownik – mogłyby to być <p>, <div>, <span>, <h1> i inne. Właśnie taki zapis spowodowałby nadanie stylu „wszystkim elementom z klasą uzytkownik w body”, o ile oczywiście są w tym zakresie dokumentu.
Pojawia się też częsty błąd myślowy, że skoro w pytaniu jest mowa o akapitach i o klasie, to może chodzi o „tylko elementy tekstowe typu <p>, <h1>”. CSS jednak nie rozumie pojęcia „element tekstowy” w taki sposób – <h1> to zupełnie inny typ elementu niż <p>, więc selektor p.uzytkownik nigdy nie dopasuje nagłówka <h1>, nawet jeśli nadasz mu class="uzytkownik". Żeby stylować zarówno <p>, jak i <h1> z tą klasą, trzeba by użyć selektora złożonego: p.uzytkownik, h1.uzytkownik { ... }.
Z mojego doświadczenia wynika, że pomieszanie selektora typu, klasy i ich kombinacji to jedna z typowych przyczyn „magicznych” błędów w wyglądzie strony – coś nagle zmienia kolor, bo ktoś użył za szerokiego selektora .uzytkownik zamiast p.uzytkownik, albo odwrotnie, styl „nie działa”, bo autor oczekiwał, że reguła obejmie wszystko z daną klasą, a zawęził ją do konkretnego tagu. Dlatego dobrze jest zawsze czytać selektor od lewej do prawej: najpierw jaki element (p), potem jaka klasa (.uzytkownik). Tylko połączenie tych dwóch warunków powoduje zastosowanie stylu. W aktualnych specyfikacjach CSS (np. Selectors Level 3 i 4) ta logika jest jasno określona i jest standardem we wszystkich nowoczesnych przeglądarkach, więc warto się do niej przyzwyczaić i świadomie z niej korzystać.

Pytanie 14

Który zapis to poprawny SKŁADNIOWO warunek PHP sprawdzający błąd połączenia z bazą?

A.
if (mysqli_connect_errno()}{
B.
if (mysqli_connect_error()}{
C.
if (mysqli_connect_error())()
D.
if (mysqli_connect_errno()){}
Składnia warunku w PHP to if (warunek) { ... } - okrągłe nawiasy obejmują warunek, a klamrowe blok kodu. Poprawny jest więc if (mysqli_connect_errno()){}. Dlatego ten zapis jest składniowo prawidłowy.

Pytanie 15

Który efekt został zaprezentowany na filmie?

A. Przenikanie zdjęć.
B. Zmniejszenie kontrastu zdjęcia.
C. Zwiększenie ostrości zdjęcia.
D. Zmiana jasności zdjęć.
W tym zadaniu łatwo pomylić kilka różnych rodzajów operacji na obrazie, bo wszystkie jakoś „zmieniają wygląd zdjęcia”, ale działają zupełnie inaczej. Efekt pokazany na filmie to przenikanie dwóch zdjęć w czasie, czyli animowane przejście między jednym obrazem a drugim. Kluczowa cecha: widzimy jednocześnie dwa zdjęcia, jedno stopniowo zanika, a drugie stopniowo się pojawia. To nie jest typowa operacja edycyjna na pojedynczym pliku graficznym, tylko efekt animacyjny, często wykorzystywany w pokazach slajdów, sliderach na stronach WWW i w montażu wideo.

Zmiana jasności zdjęć to zupełnie inny rodzaj przetwarzania. Jasność modyfikuje poziom luminancji całego obrazu lub jego fragmentów – obraz staje się ciemniejszy albo jaśniejszy, ale dalej jest to to samo zdjęcie. Nie pojawia się nowe, drugie zdjęcie, nie ma nakładania dwóch kadrów. W programach do grafiki mamy to jako „Brightness”, „Exposure” czy „Levels”. Jeśli na filmie widać, że jeden obraz przechodzi płynnie w inny, to nie jest korekta jasności, tylko przejście między dwiema warstwami.

Podobnie z ostrością – zwiększenie ostrości polega na podbiciu kontrastu na krawędziach, żeby szczegóły wyglądały wyraźniej. W praktyce używa się filtrów typu Unsharp Mask, Smart Sharpen albo algorytmów wyostrzania w czasie rzeczywistym. Obraz przed i po wyostrzeniu to ciągle ta sama klatka, tylko z innym przetworzeniem detali, nie ma efektu zanikania jednego zdjęcia i pojawiania się drugiego.

Zmniejszenie kontrastu to kolejna korekta globalna, która spłaszcza różnice między jasnymi a ciemnymi partiami obrazu. Zdjęcie robi się bardziej „szare”, mniej dynamiczne. Znowu – cały czas pracujemy na jednym ujęciu, bez miksowania dwóch fotografii. Typowym błędem myślowym przy takich pytaniach jest to, że skoro coś się „zmienia w czasie”, to musi chodzić o jakąś regulację parametrów typu jasność czy kontrast. Tymczasem w efektach multimedialnych bardzo często operujemy na wielu warstwach – dwa obrazy, dwie klatki wideo – i animujemy ich wzajemną przezroczystość. Właśnie to jest esencją przenikania zdjęć i odróżnia je od zwykłych korekt obrazu.

Pytanie 16

Która reguła dotycząca sekcji <head> w HTML jest poprawna?

A. w sekcji <head> definiuje się szablon strony znacznikami <div>
B. w sekcji <head> mogą wystąpić znaczniki <meta>, <title>, <link>
C. w sekcji <head> nie można umieszczać kodu CSS, a jedynie odwołanie do pliku CSS
D. w sekcji <head> zawiera się sekcja <body>
Pozostałe reguły są błędne. W <head> jak najbardziej można umieścić style - wewnętrzny arkusz w <style> - więc nie jest prawdą, że dozwolone jest tylko odwołanie do pliku CSS. Sekcja <body> nie zawiera się w <head> - obie są bezpośrednimi „dziećmi” <html> i nie nakładają się. Szablonu z widocznymi <div> nie buduje się w nagłówku, lecz w <body>, bo <head> nie służy do prezentacji treści. Poprawnie w <head> występują <meta>, <title> i <link>, dlatego ta odpowiedź jest właściwa.

Pytanie 17

Od czego zależy WYSOKOŚĆ dźwięku?

A. od sposobu pobudzenia drgań
B. od siły wzbudzenia drgań
C. od częstotliwości drgań fali akustycznej
D. od czasu trwania drgań
Pozostałe cechy wpływają na co innego. Siła i sposób wzbudzenia drgań przekładają się na głośność i barwę dźwięku, a czas trwania drgań - na długość dźwięku. Wysokość zależy od częstotliwości drgań fali.

Pytanie 18

W programie do edycji grafiki rastrowej, aby skoncentrować się na wybranej części obrazu, nie wpływając na pozostałe jego fragmenty, można zastosować

A. warstwy
B. przycinanie
C. odwrócenie
D. zmianę rozmiaru
Zastosowanie skalowania w edytorze grafiki rastrowej polega na zmianie rozmiaru obrazu, co wpływa na wszystkie jego elementy. Przykładowo, jeśli zdecydujemy się na skalowanie, wszystkie obiekty na obrazie zostaną powiększone lub pomniejszone w równym stopniu, co nie pozwala na selektywne modyfikacje. Inwersja, z kolei, to proces zmiany kolorów pikseli w obrazie na ich przeciwieństwa, co również nie umożliwia pracy na wybranej części obrazu bez zmiany innych elementów. Ponadto kadrowanie, które polega na przycinaniu części obrazu, również nie dostarcza narzędzi do edytowania wybranych elementów bez wpływu na resztę kompozycji. Takie podejścia są często mylnie postrzegane jako odpowiednie metody do pracy z grafiką rastrową, podczas gdy w rzeczywistości nie oferują elastyczności potrzebnej do profesjonalnej edycji. Nieprawidłowe wnioski mogą prowadzić do frustracji w trakcie edycji, zwłaszcza w bardziej złożonych projektach, gdzie precyzyjna kontrola nad elementami obrazu jest kluczowa. Dlatego istotne jest zrozumienie roli warstw jako jedynego narzędzia, które umożliwia niezależne zarządzanie elementami grafiki rastrowej.

Pytanie 19

Który użytkownik domyślnie posiada pełne uprawnienia do zarządzania bazą danych w systemie MySQL?

A. root
B. sysadmin
C. admin
D. mysqld
Pozostałe nazwy nie są domyślnym kontem administratora MySQL. „admin” i „sysadmin” brzmią wiarygodnie, ale MySQL nie zakłada ich automatycznie - to konta, które ewentualnie trzeba utworzyć samemu. „mysqld” w ogóle nie jest użytkownikiem, lecz nazwą procesu (demona) serwera MySQL działającego w systemie. Konto z pełnymi uprawnieniami tworzone domyślnie przy instalacji to root, dlatego to ono jest poprawne.

Pytanie 20

Pętla zapisana w języku PHP wstawi do tablicy liczby:

$x = 0;
for ($i = 0; $i < 10; $i++)
{
    $tabl[$i] = $x;
    $x = $x + 10;
}
A. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
B. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
C. 0, 10, 20, 30, 40, 50, 60, 70, 80, 90
D. 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
Niestety, Twoja odpowiedź jest nieprawidłowa. Błędne odpowiedzi sugerują, że pętla wstawia do tablicy liczby od 0 do 9 lub od 10 do 100, albo od 0 do 10. To jest niepoprawne, ponieważ pętla zaczyna się od $x = 0 i wykonuje się 10 razy ($i od 0 do 9), a w każdej rundzie pętli wartość $x jest zwiększana o 10. Dlatego po 10 rundach w tablicy znajdują się liczby: 0, 10, 20, 30, 40, 50, 60, 70, 80, 90. Wybór innej odpowiedzi może wynikać z błędnego zrozumienia działania pętli albo mylenia różnych rodzajów pętli, które mają różne zastosowania. Pętle są fundamentalnym elementem każdego języka programowania, w tym PHP, dlatego warto zrozumieć ich działanie. Proszę poświęcić więcej czasu na zrozumienie tego tematu, ponieważ jest to podstawa do dalszego programowania.

Pytanie 21

body{
background-image: url"rysunek.gif");
background-repeat: repeat-y;
}
W przedstawionej definicji stylu CSS, powtarzanie dotyczy

A. rysunku osadzonego znacznikiem img
B. tła każdego znacznika akapitu
C. rysunku znajdującego się w tle strony w pionie
D. rysunku umieszczonego w tle strony w poziomie
W kontekście pytania, nie wszystkie odpowiedzi są zgodne z zasadami CSS. Powtarzanie tła nie dotyczy tła każdego ze znaczników akapitu, ponieważ właściwość 'background-image' odnosi się do stylu całego elementu, w tym przypadku ciała strony ('body'), a nie poszczególnych akapitów. Rysunek umieszczony znacznikiem img nie ma związku z właściwościami tła, ponieważ ten znacznik wyświetla obraz w treści dokumentu, a nie jako tło dla elementu. Właściwość 'background-repeat' odnosi się wyłącznie do obrazów tła, a nie do obrazów wstawionych za pomocą znaczników HTML. Dodatkowo, rysunek umieszczony w tle strony w poziomie również nie jest poprawny, ponieważ 'repeat-y' wskazuje na powtarzanie w kierunku pionowym, co oznacza, że obrazek będzie powielany wzdłuż osi Y, a nie X. Zrozumienie tych różnic jest kluczowe dla efektywnego korzystania z CSS i tworzenia responsywnych, estetycznych stron internetowych.

Pytanie 22

W zaprezentowanej klasie zdefiniowane zostały

class a {
    public $b;
    public $c;
    public function d() {}
}
A. dwie metody
B. jedna właściwość
C. dwie właściwości
D. dwa obiekty
Odpowiedzi wskazujące na dwa obiekty lub dwie metody są błędne z powodu niepoprawnej interpretacji struktury klasy. Obiekty są instancjami klas, a nie ich składnikami. W kodzie zadań nie ma definicji żadnych obiektów tylko konstrukcja klasy. Z kolei w kontekście programowania obiektowego metody to funkcje zdefiniowane wewnątrz klasy które mogą operować na danych obiektu i realizować jego funkcje. W przedstawionym kodzie znajduje się tylko jedna metoda o nazwie d. Właściwość jest składnikiem klasy i może być polem lub zmienną instancji która przechowuje dane specyficzne dla instancji klasy. Poprawna odpowiedź zawiera dwie właściwości $b i $c zdefiniowane w klasie jako public. Częstym błędem jest mylenie pojęć metod i właściwości co wynika z braku zrozumienia różnicy między nimi. Metody wykonują operacje na danych obiektu natomiast właściwości przechowują te dane. Zrozumienie tej różnicy jest fundamentem poprawnego stosowania paradygmatu obiektowego w programowaniu i pozwala na bardziej efektywne projektowanie kodu oraz zarządzanie stanem obiektów.

Pytanie 23

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

A.
<head>
B.
<form>
C.
<body>
D.
<code>
Pozostałe znaczniki nie obsługują wysyłki danych. <code> prezentuje fragment kodu, <body> to kontener całej treści strony, a <head> zawiera metadane dokumentu. Atrybut action należy do <form>.

Pytanie 24

Który z kodów PHP sprawi, że zostanie wyświetlona sformatowana data oraz czas ostatnich odwiedzin użytkownika witryny, natomiast podczas pierwszej wizyty nic się nie wyświetli?

Kod 1.   echo date('d.m.Y, H:i', $_COOKIE['c1']);
         setcookie('c1', time());

Kod 2.   if(isset($_COOKIE['c1']))
           echo date($_COOKIE['c1']);
         setcookie('c1', time(), time() + 30 * 86400);

Kod 3.   echo date($_COOKIE['c1']);
         setcookie('c1', time(), time() + 30 * 86400);

Kod 4.   setcookie('c1', time(), time() + 30 * 86400);
A. Kod 2.
B. Kod 4.
C. Kod 3.
D. Kod 1.
Prawidłowa odpowiedź to Kod 2. Ten kod wykorzystuje funkcję isset() w PHP do sprawdzenia, czy ciasteczko o nazwie 'c1' jest już ustawione. Jeżeli tak, oznacza to, że użytkownik odwiedził stronę wcześniej i kod wyświetla datę i czas jego ostatnich odwiedzin zapisane w tym ciasteczku. Następnie ciasteczko jest aktualizowane i zapisuje obecny czas, który będzie wyświetlany podczas następnej wizyty. Jeżeli ciasteczko 'c1' nie istnieje, oznacza to, że jest to pierwsza wizyta użytkownika na stronie. W takim przypadku kod nie wyświetla nic, a jedynie tworzy ciasteczko 'c1' z aktualnym czasem. To podejście jest zgodne z dobrymi praktykami w PHP, które zalecają użycie funkcji isset() do sprawdzenia istnienia zmiennej przed jej użyciem, co pozwala uniknąć błędów w przypadku, gdy zmienna nie jest zdefiniowana. Korektnie użycie ciasteczek pozwala na śledzenie aktywności użytkownika i dostosowywanie treści do jego potrzeb.

Pytanie 25

Aby zmienić strukturę już istniejącej tabeli przy użyciu zapytania SQL, należy użyć kwerendy

A. ALTER TABLE
B. CREATE TABLE
C. INSERT INTO
D. UPDATE
Wybór odpowiedzi 'UPDATE' jest niepoprawny, ponieważ polecenie UPDATE służy jedynie do modyfikacji danych znajdujących się w już istniejących rekordach tabeli, a nie do zmiany samej struktury tabeli. Użycie tego polecenia w kontekście pytania prowadzi do mylnego wniosku, że można za jego pomocą dodawać kolumny lub zmieniać ich typy. Podobnie jak UPDATE, odpowiedź 'INSERT INTO' jest również niewłaściwa. To polecenie jest używane do dodawania nowych rekordów do tabeli, a nie do modyfikacji jej struktury. W praktyce, błędne użycie INSERT INTO w kontekście zmiany struktury tabeli może prowadzić do nieporozumień i komplikacji w zarządzaniu danymi. Ponadto odpowiedź 'CREATE TABLE' jest także nieadekwatna, ponieważ to polecenie tworzy nową tabelę w bazie danych, a nie modyfikuje istniejącą. Typowym błędem w rozumieniu poleceń SQL jest mylenie między operacjami na danych a operacjami na strukturze bazy danych. Kluczowe jest zrozumienie różnicy między tymi typami operacji, ponieważ każda komenda SQL ma swoje specyficzne zastosowanie i nie można ich stosować zamiennie. W kontekście administracji bazami danych, umiejętność rozróżnienia tych komend jest niezbędna, aby efektywnie zarządzać strukturą i danymi w bazach danych.

Pytanie 26

Symbol, który pojawia się przed adresem w pasku adresowym przeglądarki internetowej lub przy tytule otwartej karty, określany jest mianem

A. emoticon
B. favicon
C. webicon
D. iConji
Wybór odpowiedzi, która nie jest faviconem, wskazuje na pewne nieporozumienia dotyczące terminologii oraz funkcji tych elementów w kontekście web designu. Emotikon, na przykład, to graficzny symbol stosowany w komunikacji online, służący do wyrażania emocji, a nie jako symbol identyfikacyjny strony w przeglądarkach. Webicon i iConji to również pojęcia nieistniejące w kontekście standardów internetowych, co może sugerować mylenie ich z przyjętymi terminami. W rzeczywistości, favicon ma na celu przede wszystkim identyfikację witryny, co wpływa na doświadczenia użytkowników i pozytywne postrzeganie marki. Użytkownicy często polegają na ikonach przeglądarki, aby szybko zidentyfikować i nawigować między otwartymi kartami, co czyni favicon niezwykle ważnym w kontekście użyteczności strony. Ignorując ten aspekt, projektanci mogą wprowadzać w błąd użytkowników lub obniżać komfort korzystania z serwisu. Właściwe zrozumienie tego, czym jest favicon oraz jego znaczenia w kontekście projektowania stron, jest kluczowe dla tworzenia efektywnych i rozpoznawalnych witryn internetowych.

Pytanie 27

Która funkcja PHP ZWRACA jako wynik połowę kwadratu przekazanej wartości $a?

A.
function licz($a) { echo $a*$a/2; }
B.
function licz($a) { return $a/2; }
C.
function licz($a) { echo $a/2; }
D.
function licz($a) { return $a*$a/2; }
Pozostałe funkcje nie spełniają obu warunków naraz. Warianty z echo tylko WYPISUJĄ wartość na ekran - nie zwracają jej, więc nie da się jej dalej użyć. return $a/2 zwraca poprawnie, ale liczy połowę WARTOŚCI, a nie połowę KWADRATU. Trzeba połączyć return z formułą $a*$a/2.

Pytanie 28

Jakie polecenie należy zastosować, aby cofnąć uprawnienia przyznane użytkownikowi?

A.
REMOVE
B.
GRANT NO PRIVILEGES
C.
DROP PRIVILEGES
D.
REVOKE
Pozostałe odpowiedzi tylko udają polecenia zarządzające uprawnieniami. REMOVE, DROP PRIVILEGES oraz GRANT NO PRIVILEGES brzmią wiarygodnie, ale w standardzie SQL takich komend nie ma - serwer odrzuciłby je jako błąd składni. Zarządzanie prawami opiera się na dwóch poleceniach: GRANT nadaje uprawnienia, a REVOKE je odbiera. Aby cofnąć przyznane wcześniej uprawnienia, właściwe jest więc REVOKE, a nie żadna z wymyślonych nazw.

Pytanie 29

Proces normalizacji tabel ma na celu

A. wyłącznie stworzenie tabel oraz powiązań w bazie
B. dodanie danych do bazy
C. weryfikację i poprawę efektywności bazy danych
D. wizualizację bazy
Niektóre pomysły na niepoprawne odpowiedzi wskazują na powszechne nieporozumienia dotyczące normalizacji w kontekście baz danych. Stwierdzenie, że normalizacja polega jedynie na utworzeniu tabel i relacji, jest mylne. Normalizacja to znacznie bardziej skomplikowany proces, który zakłada również przemyślane podejście do organizacji danych oraz ich struktury. Utworzenie tabel i relacji to zaledwie etap, który nie zapewnia, że baza danych będzie wolna od błędów czy nadmiarowości. Inna nieprawidłowa odpowiedź dotycząca dodawania rekordów do bazy nie uwzględnia faktu, że normalizacja skupia się na strukturze i organizacji danych, a nie na ich wprowadzaniu. Ponadto, przedstawienie graficzne bazy danych, choć może być przydatne w wizualizacji, nie ma nic wspólnego z procesem normalizacji, który jest techniką analizy i poprawy struktury danych. Zrozumienie, że normalizacja nie ogranicza się do jednego aspektu zarządzania danymi, ale jest całościowym podejściem do ich organizacji, jest kluczowe dla efektywnego projektowania baz danych. W praktyce, nieprawidłowe zrozumienie celu normalizacji może prowadzić do poważnych problemów z wydajnością i integralnością danych w systemach bazodanowych.

Pytanie 30

Jaką relację typu uzyskuje się w wyniku powiązania kluczy głównych dwóch tabel?

A. wiele do wielu
B. wiele do jednego
C. jeden do jednego
D. jeden do wielu
Odpowiedź „jeden do jednego” jest poprawna, ponieważ relacja typu jeden do jednego oznacza, że każdy rekord w jednej tabeli jest powiązany z dokładnie jednym rekordem w drugiej tabeli. Tego rodzaju relacje są często wykorzystywane w sytuacjach, gdzie istnieje potrzeba rozdzielenia danych w celu zwiększenia organizacji lub wydajności, na przykład w przypadku wrażliwych informacji, które są przechowywane oddzielnie od podstawowych danych użytkowników. Praktycznym przykładem może być relacja między tabelą użytkowników a tabelą profili, gdzie każdy użytkownik ma dokładnie jeden profil. W dobrych praktykach projektowania baz danych, takie relacje są stosowane, aby zapewnić integralność danych oraz umożliwić skuteczne zarządzanie informacjami w systemach. Ponadto, stosowanie relacji jeden do jednego może pomóc w optymalizacji zapytań, ponieważ zminimalizowane jest ryzyko duplikacji danych, co przyczynia się do efektywniejszego przetwarzania operacji w bazach danych.

Pytanie 31

Prezentowany fragment dokumentu HTML z użyciem JavaScript spowoduje, że po naciśnięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz2.png zostanie wymieniony przez obraz1.png
B. obraz1.png zostanie wymieniony przez obraz2.png
C. obraz2.png zostanie zniknięty
D. obraz1.png zostanie zniknięty
Błędne odpowiedzi opierają się na nieporozumieniach dotyczących działania JavaScript i manipulacji DOM. Wskazanie, że 'obraz1.png' zostanie ukryty, jest niepoprawne, ponieważ w kodzie nie ma żadnej instrukcji odnoszącej się do tego elementu; zmiany dotyczą tylko 'obraz2.png'. Innym błędnym wnioskiem jest twierdzenie, że 'obraz2.png' zostanie zastąpiony przez 'obraz1.png'. Taki scenariusz wymagałby zmiany źródła obrazu, a nie ukrycia elementu. Ponadto, stwierdzenie, że 'obraz1.png' zostanie zastąpiony przez 'obraz2.png', również ignoruje fakt, że w kodzie nie ma operacji przypisania ani zmiany źródła. Zrozumienie, jak JavaScript interaguje z HTML, jest kluczowe dla efektywnego tworzenia stron internetowych. Programiści muszą być świadomi, że ukrywanie elementów nie wpływa na inne elementy w dokumencie, a jedynie zmienia ich styl wyświetlania. Dlatego ważne jest, aby dobrze zrozumieć koncepcje manipulacji DOM oraz różnice między ukrywaniem elementów a ich usuwaniem, co pozwala na bardziej złożone i interaktywne doświadczenia na stronach internetowych.

Pytanie 32

Którego znacznika HTML5 użyć do GRUPOWANIA powiązanych elementów formularza?

A.
<summary>
B.
<option>
C.
<optgroup>
D.
<fieldset>
Pozostałe znaczniki dotyczą czego innego. <summary> to nagłówek rozwijanego <details>. <option> to pojedyncza pozycja listy <select>, a <optgroup> grupuje opcje WEWNĄTRZ listy rozwijanej, a nie pola formularza. Powiązane pola formularza grupuje <fieldset>.

Pytanie 33

Jak zapisać marginesy zewnętrzne: górny i dolny 20 px, lewy i prawy 40 px?

A.
margin: 20px 20px 40px 40px;
B.
margin: 20px 40px;
C.
margin: 20px 40px 40px 20px;
D.
margin: 40px 20px;
W zapisie skróconym z dwiema wartościami margin: pion poziom pierwsza dotyczy góry i dołu, druga lewej i prawej. Górny i dolny 20px, boczne 40px daje więc margin: 20px 40px;. Dlatego poprawny jest margin: 20px 40px;.

Pytanie 34

Który obiekt bazy danych służy głównie do drukowania lub wyświetlania zestawień danych?

A. moduł
B. formularz
C. makro
D. raport
Pozostałe obiekty służą do czego innego. Formularz to interfejs do WPROWADZANIA danych. Makro automatyzuje czynności (np. otwarcie formularza). Moduł zawiera kod (np. w VBA). Do drukowania i wyświetlania zestawień przeznaczony jest raport.

Pytanie 35

Na podstawie przedstawionego kodu w języku JavaScript można powiedzieć, że alert nie zostanie wyświetlony, ponieważ

var x = 10;
switch(x) {
    case "10": alert("Test instrukcji switch");
}
A. Nie zastosowano instrukcji break.
B. Nie zastosowano wyrażenia default.
C. Wartość zmiennej x nie została zdefiniowana przed instrukcją switch.
D. W instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x.
Prawda jest taka, że zastosowanie wyrażenia default, definicja zmiennej x przed instrukcją switch oraz użycie instrukcji break nie wpływają na wyświetlenie alertu w omawianym kodzie JavaScript. Wyrażenie default w instrukcji switch służy jako gwarancja wykonania bloku kodu, gdy żaden z przypadków nie pasuje do wyrażenia switch, ale jego brak nie jest przyczyną niepojawienia się alertu. Co więcej, zmienna x jest zdefiniowana przed instrukcją switch, co jest zgodne z zasadami JavaScript. Instrukcja break służy do zakończenia pętli lub instrukcji switch i przeniesienia wykonania do następnej instrukcji po instrukcji switch lub pętli, ale nie ma ona wpływu na porównanie typów danych w instrukcji case. Rzeczywistym powodem, dla którego alert nie jest wyświetlany, jest fakt, że JavaScript używa tzw. 'strict comparison' w instrukcji case, porównując zarówno wartość, jak i typ danych, a typy danych liczby 10 i ciągu znaków '10' są różne. Dlatego jest istotne, ażeby zawsze zwracać uwagę na typy danych podczas korzystania z instrukcji switch i case w JavaScript.

Pytanie 36

W języku PHP, aby nawiązać połączenie z bazą danych MySQL przy użyciu biblioteki mysqli, w poniższym zapisie w miejsce litery 'c' należy wpisać:

$a = new mysqli('b', 'c', 'd', 'e');
A. nazwa użytkownika
B. nazwa bazy danych
C. hasło dla użytkownika
D. adres serwera bazy danych
Wybór odpowiedzi dotyczącej 'nazwa bazy danych', 'hasło użytkownika' i 'lokalizacja serwera bazy danych' nie jest poprawny, bo żaden z tych elementów nie odnosi się do drugiego argumentu w konstruktorze mysqli. Zrozumienie połączeń z bazą danych jest kluczowe przy programowaniu w PHP. 'Nazwa bazy danych' to czwarty argument, więc dotyczy tego, do której bazy chcemy się podłączyć. 'Hasło użytkownika' to trzeci argument, który jest potrzebny, żeby się autoryzować. A 'lokalizacja serwera bazy danych' to pierwszy argument, który mówi, gdzie znajduje się serwer, najczęściej będzie to 'localhost', na którym działa nasza aplikacja. Błędne wnioski mogą się brać z niepełnego zrozumienia struktury połączeń w PHP.

Pytanie 37

Rodzaj zmiennej w języku JavaScript

A. ma miejsce poprzez przypisanie wartości.
B. jest tylko jeden rodzaj.
C. nie istnieje.
D. musi być zadeklarowany na początku skryptu.
Wiele osób uważa, że typ zmiennej w JavaScript powinien być z góry zadeklarowany, co jest niezgodne z jego zasadami działania. Twierdzenie, że typ zmiennej 'nie występuje', jest mylne, ponieważ każda wartość przypisana do zmiennej ma swój typ, nawet jeśli nie jest to jawnie określone. Ignorowanie tego faktu prowadzi do nieporozumień i błędów w kodzie. Kolejne nieprecyzyjne stwierdzenie, że 'jest tylko jeden' typ zmiennej, pomija kluczową cechę JavaScript jako języka dynamicznego, który obsługuje wiele typów, takich jak liczby, stringi, obiekty i tablice. Typy te mogą zmieniać się w trakcie działania programu, co czyni język bardzo elastycznym. Z kolei przekonanie, że zmienne muszą być zadeklarowane na początku skryptu, jest również błędne, ponieważ JavaScript pozwala na przypisywanie wartości do zmiennych w dowolnym miejscu w kodzie, co zwiększa jego dynamikę. Takie myślenie może prowadzić do nieefektywnego kodu, który jest trudniejszy w utrzymaniu oraz rozwijaniu. Ważne jest, aby zrozumieć zasady działające w tym języku, aby unikać typowych pułapek związanych z typowaniem zmiennych oraz właściwie wykorzystać zalety, jakie oferuje JavaScript.

Pytanie 38

Rekordy do raportu mogą pochodzić z

A. innego raportu
B. makropolecenia
C. tabeli
D. zapytania INSERT INTO
Tabela stanowi fundamentalne źródło danych w kontekście raportowania, ponieważ przechowuje zorganizowane informacje w formie wierszy i kolumn. W praktyce, raporty często opierają się na danych zgromadzonych w tabelach, które są częścią bazy danych. Dzięki strukturze tabeli, możliwe jest łatwe filtrowanie, sortowanie i agregowanie danych, co jest kluczowe w procesie tworzenia raportów. Na przykład, w systemach CRM, dane o klientach są przechowywane w tabeli, co pozwala na wygenerowanie raportów dotyczących sprzedaży, aktywności klientów czy trendów rynkowych. W kontekście standardów branżowych, stosowanie tabel w relacyjnych bazach danych jest nie tylko powszechne, ale również zgodne z najlepszymi praktykami, które zalecają utrzymywanie danych w znormalizowanej formie, aby minimalizować redundancję i ułatwiać zarządzanie danymi. Dodatkowo, w przypadku tworzenia raportów, można korzystać z języka SQL, aby dynamicznie wydobywać dane z tabel, co zwiększa elastyczność i precyzję raportowania.

Pytanie 39

W tabeli o nazwie pracownicy zdefiniowano klucz główny w typie INTEGER z atrybutami NOT NULL oraz AUTO_INCREMENT. Dodatkowo zdefiniowane zostały pola imie oraz nazwisko. W przypadku wykonania podanej kwerendy SQL, która dodaje dane i pomija pole klucza, w bazie danych MySQL nastąpi

INSERT INTO pracownicy (imie, nazwisko)
VALUES ('Anna', 'Nowak');
A. błąd związany z niewłaściwą liczbą pól
B. zignorowanie polecenia, tabela nie ulegnie zmianie
C. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
D. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
W kontekście baz danych MySQL wprowadzenie rekordu z pominięciem pola klucza głównego z atrybutem AUTO_INCREMENT nie prowadzi do błędu ani pozostawienia pola z wartością NULL, ponieważ mechanizm AUTO_INCREMENT automatycznie przypisuje kolejną wartość liczbową. Niepoprawne jest myślenie, że pole klucza mogłoby pozostać puste lub z wartością NULL, gdyż oznaczałoby to naruszenie zasady unikalności, co jest sprzeczne z ideą klucza głównego, który musi mieć unikalną wartość. Kolejną błędną koncepcją jest przekonanie, że polecenie SQL mogłoby zostać zignorowane pozostawiając tabelę bez zmian. Taka sytuacja mogłaby mieć miejsce jedynie w przypadku wystąpienia błędu składniowego lub naruszenia spójności danych, ale nie w tym wypadku. Często spotykanym błędem jest też wyobrażenie, że wystąpi błąd nieprawidłowej liczby pól, co miałoby miejsce, gdyby liczba wymienionych pól w instrukcji INSERT nie zgadzała się z liczbą wartości, które chcemy wprowadzić. Prawidłowe zrozumienie mechanizmu AUTO_INCREMENT jest kluczowe, by unikać tych typowych błędów i w pełni korzystać z możliwości, jakie daje ten mechanizm w kontekście automatyzacji i ułatwienia zarządzania kluczami głównymi w bazach danych.

Pytanie 40

Jak umieścić komentarz w kodzie PHP?

A. <!-- ... -->
B. /? ... ?/
C. /* ... */
D. <? ... ?>
Komentarze w kodzie PHP są kluczowym elementem, który pozwala programistom na dodawanie wyjaśnień, notatek czy informacji o kodzie, co znacznie ułatwia jego późniejsze zrozumienie i konserwację. Komentarze w PHP można umieszczać za pomocą podwójnego ukośnika (//) dla pojedynczych linii lub za pomocą /* ... */ dla komentarzy wieloliniowych. Wybrana odpowiedź /* ... */ jest poprawna, ponieważ umożliwia dodawanie dłuższych bloków tekstu, co jest praktyczne w przypadku skomplikowanych funkcji czy klas. Stosowanie komentarzy jest zgodne z dobrymi praktykami programowania, które zalecają dokumentowanie kodu, aby ułatwić współpracę w zespole oraz pomóc innym programistom w zrozumieniu funkcji i celu poszczególnych fragmentów kodu. Na przykład, podczas tworzenia złożonej aplikacji webowej, dobrze udokumentowany kod pozwoli zespołowi szybciej rozwiązywać problemy i wprowadzać zmiany, co jest kluczowe w dynamicznie zmieniającym się środowisku IT.