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: 25 kwietnia 2026 00:10
  • Data zakończenia: 25 kwietnia 2026 00:32

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 formularzu wartości z pola input o typie number zostały przypisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w sposób następujący: ```var x = parseInt(a);``` Jakiego typu będzie zmienna x?

A. liczbowego, całkowitego
B. zmiennoprzecinkowego
C. napisowego
D. Nan
Wybór niepoprawnych odpowiedzi wynika z nieporozumienia dotyczącego działania funkcji parseInt oraz typów danych w JavaScript. W pierwszej z niepoprawnych odpowiedzi, Nan oznacza 'Not a Number', który jest zwracany, gdy operacja konwersji na liczbę nie może zostać przeprowadzona. W kontekście zmiennej a, jeśli ta wartość jest poprawnym wejściem z pola input typu number, parseInt nie zwróci NaN, a raczej prawidłową liczbę całkowitą. Kolejna opcja opisuje typ napisowy, co jest sprzeczne z tym, co zapewnia funkcja parseInt, ponieważ zwraca ona wartość liczbową, a nie tekst. Wartości typu string mogą być konwertowane na liczby, ale samo pole input o typie number nie wprowadza napisów, a zatem nie tworzy sytuacji, w której wynik byłby typu string. Ostatnia z błędnych odpowiedzi nawiązuje do zmiennoprzecinkowego typu danych. Chociaż JavaScript obsługuje liczby zmiennoprzecinkowe, funkcja parseInt celowo konwertuje na wartość całkowitą, co wyklucza możliwość uzyskania zmiennoprzecinkowego wyniku. Zrozumienie tych różnic jest istotne dla efektywnego programowania w JavaScript i unikania typowych pułapek związanych z konwersją typów.

Pytanie 2

Na tabeli Pracownicy, której wiersze są przedstawione na załączonym obrazie, została zrealizowana podana kwerenda SELECT. Jakie dane zostaną zwrócone?

SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;
idimienazwiskostanowisko
1AnnaKowalska1
2MonikaNowak2
3EwelinaNowakowska2
4AnnaPrzybylska3
5MariaKowal3
6EwaNowacka4
A. Wyłącznie Anna
B. Monika, Ewelina, Maria
C. Anna, Maria, Ewa
D. Wyłącznie Maria
Kwerenda SQL SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2 ma na celu wybranie imion pracowników, którzy spełniają przynajmniej jeden z dwóch warunków. Pierwszy warunek to nazwisko równe Kowal. Drugi warunek dotyczy stanowiska większego niż 2. W analizowanej tabeli mamy trzy osoby spełniające te kryteria: Maria, która ma nazwisko Kowal oraz Anna i Ewa, które mają stanowiska odpowiednio 3 i 4. Dobrą praktyką w pisaniu zapytań SQL jest jasne formułowanie warunków w klauzuli WHERE, aby zoptymalizować działanie bazy danych i uniknąć niepotrzebnych wyników. Zrozumienie działania operatora OR jest kluczowe, ponieważ umożliwia filtrowanie rekordów według wielu kryteriów. W rzeczywistych scenariuszach biznesowych umiejętność tworzenia takich złożonych zapytań pozwala na efektywne zarządzanie danymi i wyciąganie istotnych informacji, co jest podstawą podejmowania decyzji opartych na danych. Dodatkowo, znajomość struktury tabeli oraz typów danych ułatwia formułowanie zapytań, co jest kluczowe w profesjonalnym używaniu SQL.

Pytanie 3

W obiektowym programowaniu w języku JavaScript zapis: this.zawod w podanym kodzie oznacza

function Uczen(){
  this.imie = '';
  this.nazwisko = '';
  this.technik = 'informatyk';
  this.zawod = function() {
    return this.technik;
  };
}
A. konstruktor
B. klasę
C. metodę
D. właściwość
Podejście, że this.zawod oznacza właściwość jest błędne, ponieważ w programowaniu obiektowym właściwością określamy element obiektu, który przechowuje dane. W przedstawionym kodzie this.zawod jest przypisany do funkcji, która jest metodą umożliwiającą wykonywanie operacji, a nie przechowywanie danych. Klasa w JavaScript, choć wprowadza nowe podejście do definiowania obiektów, jest konceptem wyższego poziomu i nie jest bezpośrednio związana z definicją metod za pomocą funkcji. W analizowanym kodzie użyto funkcji konstrukcyjnej, a nie klasy zdefiniowanej za pomocą słowa kluczowego class. Konstruktor w kontekście programowania obiektowego odnosi się do specjalnej funkcji, która inicjalizuje nowo utworzone obiekty, definiując ich właściwości i metody. W powyższym przykładzie funkcja Uczen pełni rolę konstruktora, lecz sam zapis this.zawod nie jest konstruktorem, gdyż nie służy do tworzenia instancji obiektów, lecz do definiowania ich zachowania. Rozróżnienie między metodą, właściwością, klasą i konstruktorem jest kluczowe dla zrozumienia struktury i działania obiektów w JavaScript. Typowe błędy myślowe wynikają z nieodróżniania tych pojęć i nieznajomości kontekstu, w jakim słowo this jest używane, które w JavaScript może odnosić się do różnych obiektów w zależności od miejsca wywołania i sposobu, w jaki funkcja została zdefiniowana lub wywołana. Zrozumienie tych pojęć jest fundamentalne dla efektywnego programowania obiektowego w JavaScript, co pozwala unikać błędów i pisać bardziej przejrzysty i efektywny kod

Pytanie 4

Aby wykonać usunięcie tabeli, należy użyć kwerendy

A. DELETE
B. DROP TABLE
C. UNIQUE
D. TRUNCATE TABLE
Poprawna odpowiedź to DROP TABLE, ponieważ jest to standardowa komenda SQL używana do całkowitego usunięcia tabeli z bazy danych. Użycie tej komendy powoduje nie tylko usunięcie samej struktury tabeli, ale również wszystkich danych, które były w niej przechowywane. Przykładowo, jeśli mamy tabelę 'Użytkownicy' i chcemy ją usunąć, piszemy: DROP TABLE Użytkownicy; Należy jednak pamiętać, że po wykonaniu tej operacji nie można odzyskać ani tabeli, ani jej danych, dlatego ważne jest, aby przed takim krokiem wykonać odpowiednie kopie zapasowe lub upewnić się, że dane są już zbędne. W kontekście dobrych praktyk, przed usunięciem tabeli warto przeanalizować wpływ na inne obiekty bazy danych, takie jak klucze obce, które mogą być związane z usuwaną tabelą. Istotne jest również zrozumienie, że DROP TABLE nie można użyć, jeśli w tabeli istnieją aktywne ograniczenia lub jeśli jest ona częścią jakiejś transakcji. W takiej sytuacji, czynności te należy zrealizować w odpowiedniej kolejności, aby uniknąć błędów.

Pytanie 5

Aby skutecznie zrealizować algorytm, który znajdzie największą z trzech podanych liczb a, b oraz c, wystarczy użyć

A. jednej pętli
B. pięciu zmiennych
C. dwóch warunków
D. dwóch tablic
Aby znaleźć największą z trzech liczb a, b i c, wystarczy użyć dwóch warunków logicznych. Przykładowo, można porównać a z b, a następnie wynik tego porównania porównać z c. Jeśli a jest większe od b, to następnie sprawdzamy, czy a jest większe od c. W przeciwnym razie, porównujemy b z c. Tego rodzaju podejście pozwala na efektywną i prostą realizację algorytmu w O(1) czasie, co oznacza, że czas wykonania nie zależy od rozmiaru danych. W praktyce, takie podejście jest zgodne z zasadami minimalizmu w programowaniu, gdzie dąży się do używania jak najmniejszej liczby operacji. Dobrym przykładem jest implementacja tego algorytmu w różnych językach programowania, które pokazuje, jak zastosowanie prostych warunków może przyczynić się do zrozumienia i efektywności kodu. Użycie dwóch warunków jest również zgodne z zasadą KISS (Keep It Simple, Stupid), która promuje prostotę w projektowaniu algorytmów.

Pytanie 6

Zapis tagu HTML w formie <a href="#hobby">przejdź</a>?

A. jest poprawny, po kliknięciu w odnośnik otworzy się strona internetowa o adresie "hobby"
B. jest błędny, niepoprawnie użyto znaku "#" w atrybucie href
C. jest błędny, w atrybucie href trzeba wpisać adres URL
D. jest poprawny, po kliknięciu w odnośnik aktualna strona zostanie przewinięta do elementu o nazwie "hobby"
Myślenie, że znacznik <a href="#hobby">przejdź</a> jest błędny, bo używasz znaku '#' w href, jest trochę mylące. Ten znak '#' to normalny sposób, żeby wskazać lokalne odnośniki na tej samej stronie, co jest zgodne z regułami HTML. Nie jest prawdą, że musi być cały adres URL, bo lokalne identyfikatory są jak najbardziej w porządku. Często spotykam się z przekonaniem, że href zawsze powinien prowadzić do zewnętrznego linku, a to nieprawda. Wiele stron korzysta z lokalnych linków, co naprawdę sprawdza się w długich treściach, pozwalając użytkownikom szybko przechodzić do tych sekcji, które ich interesują. Nie można też myśleć, że tylko absolutne identyfikatory w href są jedynym słusznym rozwiązaniem, bo to podejście z lokalnymi odnośnikami jest powszechnie akceptowane i sprawdza się w praktyce.

Pytanie 7

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. B.
B. C.
C. A.
D. D.
Dobra robota! W JavaScript, aby wyświetlić okno, w którym użytkownik może wpisać swoje kwalifikacje, najlepiej użyć funkcji `prompt`. Ta funkcja wyświetla okienko, w które można coś wpisać, a to co wprowadzisz, zostaje zwrócone. Potem, żeby pokazać te dane na stronie, używamy funkcji `document.write`. Dzięki temu możemy dynamicznie dodawać tekst na stronę, co jest super przydatne, gdy chcemy, żeby użytkownik wpisał jakieś informacje, które od razu wyświetlamy. Moim zdaniem, to fajny sposób na interakcję z użytkownikami!

Pytanie 8

W bazie danych znajduje się tabela uczniowie, która ma kolumny: imie, nazwisko i klasa. Jakie polecenie SQL należy użyć, aby uzyskać imiona oraz nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';
B. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko='M%';
C. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN 'M%';
D. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN 'M%';
Poprawne polecenie SQL to 'SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';'. Operator LIKE jest kluczowym elementem języka SQL, który pozwala na wyszukiwanie danych zgodnych z określonym wzorem, gdzie '%' oznacza dowolny ciąg znaków. Użycie tego operatora jest zgodne z najlepszymi praktykami w zakresie wyszukiwania danych w relacyjnych bazach danych, umożliwiając elastyczne filtrowanie wyników. W kontekście tego zapytania, operator LIKE skutecznie identyfikuje wszystkie nazwiska, które zaczynają się na literę 'M', co jest szczególnie przydatne w sytuacjach wymagających poszukiwania danych spełniających określone kryteria. Przykładem zastosowania tego zapytania może być generowanie raportów dla nauczycieli, którzy chcą zobaczyć listę uczniów w określonej klasie. Dodatkowo, warto pamiętać, że w przypadku wielu baz danych, operator LIKE jest również wrażliwy na wielkość liter, dlatego warto dostosować zapytanie w zależności od kontekstu, w jakim pracujemy.

Pytanie 9

Jakie będzie rezultatem działania poniższego kodu PHP?

$a = $c = true; 
$b = $d = false;
if(($a && $b) || ($c && $d)) echo 'warunek1';
elseif(($a && $b) || ($c || $d)) echo 'warunek2';
elseif(($c && $d) || (!$a)) echo 'warunek3';
else echo 'warunek4';
A. warunek3
B. warunek4
C. warunek1
D. warunek2
Analizowany kod PHP to przykład użycia operatorów logicznych w strukturze sterującej if-else, gdzie każda z odpowiedzi reprezentuje wynik działania konkretnego bloku kodu. Zmienna $a i $c są zainicjalizowane jako true, natomiast $b i $d jako false. Zrozumienie tego jest kluczowe dla poprawnej analizy logicznej. Pierwszy warunek if z ($a && $b) || ($c && $d) nie zostaje spełniony, ponieważ zarówno (true && false) jak i (true && false) zwracają false, co skutkuje false || false, czyli false. Kolejna sekcja elseif obejmuje ($a && $b) || ($c || $d). Tutaj (true && false) zwraca false, ale (true || false) daje true, co prowadzi do false || true, czyli true, co spełnia warunek i 'warunek2' zostaje wyświetlony. Trzeci warunek elseif, sprawdzający ($c && $d) || (!$a), nie jest rozpatrywany, ponieważ poprzedni warunek był już true. Warto podkreślić znaczenie logicznych operatorów w programowaniu: && i || odpowiadają za łączenie warunków, a ich poprawne zrozumienie pozwala na efektywne modelowanie logiki aplikacji. Typowym błędem jest mylenie znaczenia tych operatorów, co może prowadzić do błędnych decyzji warunkowych w kodzie. Programiści powinni zawsze upewniać się, że logika warunków jest zgodna z zamierzonym działaniem programu, a testowanie jest kluczowym elementem tego procesu. Zastosowanie testów jednostkowych może pomóc w zapewnieniu prawidłowego działania skomplikowanych struktur logicznych, pozwalając na wykrycie i korektę potencjalnych błędów logicznych.

Pytanie 10

W jaki sposób należy ustawić monitor, aby były spełnione zasady ergonomicznej pracy przy stanowisku komputerowym?

A. Monitor powinien stać ekranem do okna w celu ograniczenia odblasków i refleksów świetlnych.
B. Górna krawędź ekranu powinna znajdować się nieco poniżej poziomu oczu użytkownika.
C. Monitor powinien być tak ustawiony, by kąt między płaszczyzną monitora, a linią patrzenia na jego środek mieścił się w granicy 80° ÷ 90°.
D. Dla osób praworęcznych monitor powinien stać z prawej strony, a dla leworęcznych z lewej strony stanowiska komputerowego. 
Prawidłowo – kluczowa zasada ergonomii mówi, że górna krawędź ekranu powinna znajdować się nieco poniżej poziomu oczu użytkownika. Chodzi o to, żeby naturalny kierunek patrzenia był lekko w dół, mniej więcej pod kątem ok. 15–20° względem linii poziomej. Z fizjologii wiemy, że oczy i mięśnie szyi najmniej się męczą, gdy nie muszą stale patrzeć do góry. Jeżeli monitor stoi zbyt wysoko, użytkownik podnosi brodę, napina kark i po paru godzinach pojawiają się bóle szyi, barków, czasem nawet bóle głowy. Z kolei zbyt niskie ustawienie ekranu powoduje nadmierne pochylanie się i zaokrąglanie pleców. Moim zdaniem to jest jeden z najczęściej olewanych, a jednocześnie najprostszych do poprawy elementów stanowiska pracy. W praktyce dobrze jest usiąść w normalnej, wygodnej pozycji, oprzeć plecy o oparcie krzesła i spojrzeć na wprost. W tej pozycji górna krawędź monitora powinna być minimalnie niżej niż linia oczu. Wtedy środek ekranu znajduje się mniej więcej na wysokości, na którą patrzysz naturalnie podczas pracy. Odległość od monitora powinna wynosić zwykle 50–70 cm, w zależności od przekątnej i rozdzielczości ekranu – im większy monitor, tym często można go odsunąć dalej. Ważne jest też, żeby ekran był ustawiony na wprost, a nie „pod skosem”, żeby nie zmuszać szyi do stałego skrętu. Standardy BHP oraz wytyczne ergonomiczne (np. PN-EN ISO 9241) zwracają uwagę nie tylko na wysokość monitora, ale też na odpowiednie nachylenie (najczęściej lekko do tyłu, ok. 10–20°), brak odblasków i równomierne oświetlenie stanowiska. Jednak to właśnie wysokość górnej krawędzi ekranu względem oczu jest jednym z podstawowych parametrów, który można szybko skorygować nawet w domu czy w szkole – czasem wystarczy prosty podest pod monitor lub regulowana podstawka. Z mojego doświadczenia mała korekta ustawienia ekranu potrafi zauważalnie zmniejszyć zmęczenie wzroku i karku po kilku godzinach pracy przy komputerze.

Pytanie 11

Zarządzanie procesem przekształcania kodu źródłowego stworzonego przez programistę na kod maszynowy, który jest zrozumiały dla komputera, nosi nazwę

A. kompilowanie
B. analizowanie
C. wdrażanie
D. rozpoczynanie
Kompilowanie to proces, w którym kod źródłowy, napisany w języku programowania wysokiego poziomu, jest przekształcany na kod maszynowy, który może być zrozumiany i wykonany przez komputer. Działa to na zasadzie analizy składniowej i semantycznej kodu źródłowego, a następnie generowania odpowiednich instrukcji dla procesora. Przykładem narzędzi, które realizują ten proces, są kompilatory, takie jak GCC dla języka C czy javac dla języka Java. Kompilowanie ma kluczowe znaczenie w programowaniu, ponieważ pozwala na optymalizację kodu, co zwiększa wydajność aplikacji. Dobre praktyki wskazują, że kompilowanie powinno być częścią cyklu programowania, a regularne kompilowanie kodu pomaga w szybszym wykrywaniu błędów oraz zapewnia, że kod jest zawsze zgodny z wymaganiami projektowymi. Warto również zaznaczyć, że proces kompilacji może obejmować różne etapy, takie jak prekompilacja, generacja kodu pośredniego oraz linkowanie, co czyni go złożonym i wieloetapowym działaniem.

Pytanie 12

Mamy do czynienia z tablicą o nazwie tab, która zawiera liczby całkowite różniące się od zera. Zawarty w języku PHP kod ma na celu:

foreach ($tab as &$liczba)
    $liczba = $liczba * (-1);
unset($liczba);
A. obliczyć wartość bezwzględną elementów tej tablicy
B. zmienić wszystkie elementy tablicy na liczby o przeciwnym znaku
C. przekształcić elementy tablicy na wartości zapisane w zmiennej liczba
D. wyliczenie iloczynu wszystkich wartości w tablicy
Odpowiedź jest prawidłowa, ponieważ przedstawiony kod w języku PHP używa pętli foreach do iteracji po tablicy o nazwie tab. Dzięki zastosowaniu operatora & przed nazwą zmiennej $liczba, zmienna ta jest przekazywana przez referencję. Oznacza to, że każda modyfikacja dokonywana na zmiennej $liczba wpływa bezpośrednio na odpowiedni element tablicy. Wewnątrz pętli każda liczba w tablicy jest mnożona przez -1, co skutkuje zmianą jej znaku na przeciwny. W praktyce taka operacja jest powszechnie stosowana, gdy istnieje potrzeba szybkiej zmiany wszystkich wartości w strukturze danych na ich negatywne odpowiedniki, na przykład w algorytmach matematycznych lub finansowych. Istotnym aspektem jest również unikanie modyfikacji oryginalnych danych, co jest kluczowe w procesie przetwarzania danych. Po zakończeniu pętli unset($liczba) usuwa referencję, aby uniknąć niepożądanych efektów ubocznych. Takie podejście jest zgodne z dobrymi praktykami programowania, które kładą nacisk na zarządzanie pamięcią i poprawność danych.

Pytanie 13

W języku CSS, aby ustalić wewnętrzny górny margines, czyli przestrzeń pomiędzy elementem a jego otaczającym obramowaniem, należy zastosować komendę

A. border-top
B. local-top
C. outline-top
D. padding-top
W języku CSS, aby zdefiniować wewnętrzny górny margines elementu, należy użyć właściwości padding-top. Marginesy wewnętrzne (padding) to przestrzeń, która znajduje się pomiędzy zawartością elementu a jego obramowaniem, co pozwala na stworzenie efektu oddzielenia treści od krawędzi. Wartości padding-top można ustalać w jednostkach takich jak px, em, rem czy %. Na przykład, kod CSS 'padding-top: 20px;' doda 20 pikseli odstępu od górnej krawędzi obramowania do zawartości elementu. Właściwość ta jest standardowo wspierana we wszystkich nowoczesnych przeglądarkach i jest częścią specyfikacji CSS Box Model, która określa, jak przestrzeń jest zorganizowana w obrębie elementów HTML. Użycie padding-top jest kluczowe, gdy chcemy, aby nasza strona była estetyczna i czytelna, co ma istotne znaczenie w projektowaniu responsywnym, gdzie różne urządzenia mogą wymagać różnych wartości paddingu, aby utrzymać spójność wizualną. Poprawne stosowanie padding-top przyczynia się również do lepszej dostępności strony, co jest istotnym aspektem w nowoczesnym web designie.

Pytanie 14

Określ wynik działania załączonego kodu PHP, przy założeniu, że zmienna tab jest tablicą.

$tab = explode(", ", "jelenie,sarny,dziki,lisy,borsuki");
echo $tab[1]." ".$tab[2];
A. dziki lisy
B. sarny dziki
C. lisy borsuki
D. jelenie sarny
Niestety, Twoja odpowiedź okazała się niepoprawna. W analizowanym kodzie PHP jest użyta funkcja 'explode()', która dzieli ciąg znaków na tablicę, używając przecinków jako separatorów. Później wybierane są drugi i trzeci element z tej tablicy do wyświetlenia. Więc, jeśli poszedłeś w stronę 'dziki lisy' lub 'lisy borsuki', to może wynikać z niewłaściwego rozumienia działania funkcji 'explode()'. Pamiętaj, że w PHP tablice zaczynają się od 0, co oznacza, że drugi element ma indeks 1, a trzeci to 2. Ważne, żeby zwracać uwagę na dane wejściowe, które podajemy do 'explode()', bo to może mieć duży wpływ na wynik. To istotna rzecz, którą warto mieć na uwadze, gdy programujesz.

Pytanie 15

Można przypisać wartości: static, relative, fixed, absolute oraz sticky do właściwości

A. position
B. list-style-type
C. text-transform
D. display
Właściwości CSS, takie jak 'display', 'list-style-type' oraz 'text-transform', nie mają związku z pozycjonowaniem elementów na stronie. Wartość 'display' kontroluje, w jaki sposób elementy są wyświetlane w dokumencie, na przykład jako blokowe, liniowe czy jako elementy inline-block. Pomimo że ma to wpływ na układ strony, nie definiuje sposobu pozycjonowania elementu w kontekście jego relacji do innych elementów. Z kolei 'list-style-type' jest używana głównie w kontekście list, pozwalając na określenie stylu znaczników listy, takich jak kropki czy cyfry, co wpływa na prezentację, ale nie zmienia układu elementów w kontekście pozycjonowania. Natomiast 'text-transform' służy do modyfikacji tekstu, na przykład zmiany jego wielkości liter. Chociaż te właściwości są istotne w kontekście stylizacji i strukturyzacji elementów, nie odnoszą się do zadań związanych z pozycjonowaniem, co może prowadzić do nieporozumień. Użytkownicy często mylą różne właściwości CSS, co skutkuje niewłaściwym zastosowaniem ich w projektach. Kluczowe jest zrozumienie, że każda z tych właściwości ma swoje określone zastosowanie i zasady działania, dlatego warto zapoznać się z dokumentacją CSS oraz stosować się do dobrych praktyk w celu uniknięcia błędów w projektach webowych.

Pytanie 16

Aby przekształcić obraz w formacie PNG tak, by jego tło stało się przezroczyste, wymagane jest

A. ulepszenie nasycenia kolorów.
B. odpowiednie przycięcie.
C. dodanie kanału alfa.
D. zapisanie go w formacie BMP.
Dodanie kanału alfa do obrazu w formacie PNG jest kluczowe dla uzyskania przezroczystego tła. Kanał alfa to dodatkowa warstwa informacji w obrazie, która definiuje przezroczystość każdego piksela. Dzięki niemu, obrazy PNG mogą przechowywać informacje o tym, które części obrazu są całkowicie przezroczyste, częściowo przezroczyste lub całkowicie nieprzezroczyste. To oznacza, że stosując kanał alfa, możemy tworzyć złożone efekty wizualne, takie jak cienie czy gradienty, które są nieosiągalne w formatach nieobsługujących przezroczystości, jak JPEG. W praktyce, dodanie kanału alfa można zrealizować w programach graficznych, takich jak Adobe Photoshop czy GIMP, za pomocą opcji 'Dodaj kanał alfa' w menu warstw. Umożliwia to edytowanie tła obrazu, eliminację niepożądanych elementów oraz integrację z różnymi tłem w dokumentach i stronach internetowych, co jest szczególnie istotne w projektowaniu graficznym i web designie. Zatem, znajomość obsługi kanału alfa oraz umiejętność pracy z formatem PNG są niezbędne dla profesjonalnych grafików w nowoczesnym środowisku projektowym.

Pytanie 17

Którego polecenia JavaScript należy użyć, aby w oknie przeglądarki wyświetliło się okno przedstawione na obrazie?

Ilustracja do pytania
A. document.write(’Ile masz lat?’)
B. alert(’Ile masz lat?’)
C. prompt(’Ile masz lat?’)
D. confirm(’Ile masz lat?’)
W tym zadaniu chodzi o rozróżnienie trzech podstawowych funkcji okien dialogowych w JavaScript i zwykłego wypisywania tekstu w dokumencie. Obrazek pokazuje okno z polem do wprowadzania danych, przyciskiem „OK” i przyciskiem „Anuluj”. Takie zachowanie zapewnia tylko funkcja prompt(). Częsty błąd polega na wrzucaniu do jednego worka wszystkich „wyskakujących okienek” i traktowaniu alert(), confirm() i prompt() jak równoważnych, a one pełnią różne role w interakcji z użytkownikiem. alert('Ile masz lat?') tworzy wyłącznie prosty komunikat z jednym przyciskiem, zazwyczaj „OK”. Nie ma żadnego pola tekstowego, nie można nic wpisać, a funkcja nie służy do pobierania danych od użytkownika, tylko do informowania go o czymś lub debugowania. W testach i zadaniach szkolnych mylenie alert z prompt wynika często z tego, że widać po prostu „popup” i tyle, bez zwracania uwagi na szczegóły interfejsu. confirm('Ile masz lat?') również nie jest poprawne, bo confirm tworzy okno z dwoma przyciskami (np. „OK” i „Anuluj” lub „Tak” i „Nie”), ale bez pola edycji. Zwraca wartość logiczną true/false w zależności od tego, który przycisk został kliknięty. Używa się go do prostych pytań typu „Czy na pewno chcesz usunąć plik?”, a nie do wpisywania konkretnej odpowiedzi tekstowej. Ostatnia propozycja, document.write('Ile masz lat?'), w ogóle nie tworzy okna dialogowego. To polecenie po prostu wpisuje podany tekst bezpośrednio do dokumentu HTML. Co gorsza, wywołane po załadowaniu strony nadpisuje całą zawartość dokumentu, więc w praktyce jest uznawane za złą praktykę i w nowoczesnym kodzie raczej się go unika. Jeśli chcemy wyświetlać treść na stronie, stosuje się manipulację DOM, np. element.textContent, innerHTML czy nowoczesne frameworki. Kluczowe jest więc kojarzenie: alert – tylko komunikat, confirm – wybór tak/nie, prompt – pytanie z polem do wpisania danych. Świadome rozróżnianie tych funkcji to podstawa dalszej pracy z interfejsem użytkownika w JavaScript i fundament do późniejszego tworzenia własnych, bardziej zaawansowanych komponentów dialogowych.

Pytanie 18

Kod CSS można włączyć do dokumentu HTML, używając znacznika

A. <body>
B. <meta>
C. <style>
D. <head>
Odpowiedź <style> jest prawidłowa, ponieważ ten znacznik HTML jest dedykowany do osadzania kodu CSS wewnątrz dokumentu HTML. Znacznik <style> powinien być umieszczony w sekcji <head> dokumentu, co umożliwia przeglądarkom interpretację stylów przed renderowaniem treści strony. Dzięki temu można definiować różne reguły CSS, które modyfikują wygląd elementów HTML, co jest kluczowe w tworzeniu estetycznych i funkcjonalnych stron internetowych. Przykładowo, można użyć <style> do określenia koloru tła, rozmiaru czcionki czy marginesów. Ważne jest, aby stosować zasady dotyczące kaskadowości, ponieważ style zdefiniowane w <style> mają priorytet nad stylem zewnętrznym, jeśli są tak samo specyficzne. Dodatkowo, korzystanie z <style> jest zgodne z zasadami dobrych praktyk, takich jak unikanie nadmiarowego ładowania zewnętrznych plików CSS w przypadku prostych projekty, co przyspiesza czas ładowania strony.

Pytanie 19

Aby skutecznie zrealizować algorytm wyznaczający największą z trzech podanych liczb a, b oraz c, wystarczy użyć

A. pięciu zmiennych
B. dwóch tablic
C. jednej pętli
D. dwóch warunków
Wybór innej odpowiedzi na to pytanie może wynikać z nieporozumienia dotyczącego efektywności algorytmów i ich implementacji. Odpowiedź sugerująca jedną pętlę wydaje się atrakcyjna, ale w rzeczywistości, aby znaleźć największą liczbę spośród trzech, nie potrzebujemy iteracji, gdyż liczby można porównać bez konieczności przeszukiwania. Dwie tablice są również zbędne, ponieważ do przechowywania liczb nie potrzebujemy dodatkowych struktur, skoro możemy operować na trzech zmiennych. Sugerowanie pięciu zmiennych jest jeszcze bardziej nieefektywne, ponieważ nie wymaga to dodatkowych miejsc w pamięci, a wręcz komplikowałoby algorytm bez potrzeby. Kluczowym błędem jest założenie, że skomplikowanie algorytmu wiąże się z jego efektywnością. W praktyce, prostota algorytmów często przekłada się na ich wydajność w rzeczywistych zastosowaniach. Użycie zbyt wielu zmiennych lub pętli może prowadzić do zwiększenia złożoności kodu, co obniża jego czytelność i utrudnia przyszłe utrzymanie. W kontekście dobrych praktyk programistycznych, należy zawsze dążyć do jak najprostszych rozwiązań, które wykonują zdefiniowane zadanie efektywnie, co w tym przypadku osiągamy za pomocą dwóch warunków.

Pytanie 20

Wskaż blok, który jest sformatowany zgodnie z podanym stylem CSS.

background: linear-gradient(to right, LightBlue, DarkBlue);
Ilustracja do pytania
A. Blok 1
B. Blok 3
C. Blok 2
D. Blok 4
Gradienty w CSS są potężnym narzędziem które pozwala na tworzenie gładkich i płynnych przejść między kolorami jednak ich zastosowanie wymaga zrozumienia jak działają różne typy gradientów W przypadku linear-gradient to right LightBlue DarkBlue gradient rozciąga się liniowo od lewej do prawej strony Blok 1 prawdopodobnie wykorzystuje gradient w pionie co wskazuje na niewłaściwe zrozumienie kierunku gradientu Kierunek gradientu jest kluczowy w CSS i warto zwracać uwagę na precyzyjne określenie jego początku i końca Blok 3 ukazuje gradient który wydaje się pochodzić z jednego punktu co sugeruje radial-gradient Zastosowanie radialnych gradientów różni się od liniowych gdyż rozciągają się one od środka do krawędzi Blok 4 wskazuje na nieregularny układ kolorów co może być wynikiem nieprawidłowego zastosowania wartości kolorów lub typów gradientu Takie nieintencjonalne błędy mogą wyniknąć z niewłaściwego zrozumienia składni CSS i zazwyczaj są efektem braku dokładności w definiowaniu stylów Zrozumienie jak gradienty wpływają na estetykę i funkcjonalność pomoże unikać tych błędów i tworzyć bardziej spójne i atrakcyjne wizualnie projekty internetowe Edukacja w zakresie poprawnego stosowania gradientów i ich właściwości umożliwia stworzenie bardziej efektywnych i przyjaznych dla użytkownika rozwiązań webowych co jest istotną częścią współczesnego projektowania UX i UI

Pytanie 21

Przemiana kodu źródłowego wykonanego przez programistę w zrozumiały dla maszyny kod maszynowy to

A. analizowanie błędów
B. kompilowanie
C. wdrażanie
D. wykonywanie
Kompilowanie to kluczowy proces w inżynierii oprogramowania, który polega na przekształceniu kodu źródłowego napisanego w języku wysokiego poziomu (takim jak C++, Java czy Python) na kod maszynowy zrozumiały dla komputera. Proces ten jest krytyczny, ponieważ komputery nie są w stanie interpretować kodu źródłowego bezpośrednio. Kompilator przeprowadza analizę syntaktyczną i semantyczną kodu, optymalizuje go, a następnie generuje kod maszynowy. W praktyce, kompilacja pozwala na wykrycie błędów w kodzie przed jego uruchomieniem, co jest zgodne z najlepszymi praktykami programistycznymi. Kompilatory często oferują dodatkowe narzędzia, takie jak debugery, które umożliwiają programistom śledzenie błędów w kodzie. W kontekście dużych projektów, dobrym podejściem jest również wykorzystanie systemów CI/CD, które automatyzują proces kompilacji i testowania, co znacząco przyspiesza cykl rozwoju oprogramowania oraz zwiększa jego jakość.

Pytanie 22

Aby uruchomić skrypt JavaScript, potrzebne jest oprogramowanie

A. przeglądarka internetowa
B. serwer MySQL
C. serwer WWW
D. debugger JavaScript
Aby uruchomić skrypt JavaScript, niezbędne jest posiadanie przeglądarki internetowej, ponieważ JavaScript jest językiem skryptowym, który działa bezpośrednio w środowisku przeglądarki. Przeglądarki, takie jak Chrome, Firefox czy Safari, zawierają silniki JavaScript, które interpretują i wykonują kod skryptowy. Przykładem może być użycie funkcji 'console.log()', która umożliwia wyświetlanie danych w konsoli przeglądarki. Ponadto, standard ECMAScript, na którym oparty jest JavaScript, określa zasady i funkcje tego języka, a przeglądarki implementują te standardy, co zapewnia spójność działania skryptów. Użytkownicy mogą również używać narzędzi deweloperskich, dostępnych w przeglądarkach, do debugowania i optymalizacji skryptów, ale podstawowym warunkiem uruchomienia kodu JavaScript zawsze będzie przeglądarka internetowa. W obecnych czasach, JavaScript stał się kluczowym elementem tworzenia interaktywnych aplikacji internetowych, co podkreśla jego znaczenie w ekosystemie webowym.

Pytanie 23

Jakim poleceniem można zobaczyć konfigurację serwera PHP, zawierającą między innymi: wersję PHP, system operacyjny serwera oraz wartości przedefiniowanych zmiennych?

A. phpcredits();
B. echo phpversion();
C. phpinfo();
D. print_r(ini_get_all());
Funkcja phpinfo() jest najczęściej używaną metodą do wyświetlania szczegółowych informacji o konfiguracji serwera PHP. Umożliwia ona dostarczenie danych na temat wersji PHP, zainstalowanych modułów, wartości konfiguracyjnych oraz informacji o systemie operacyjnym, na którym działa serwer. W kontekście dostosowywania aplikacji webowych, phpinfo() jest nieocenionym narzędziem diagnostycznym. Na przykład, gdy programista potrzebuje zweryfikować, czy określony moduł PHP, taki jak cURL czy GD, jest aktywowany, wystarczy umieścić w skrypcie polecenie `<?php phpinfo(); ?>`. Efektem jest pełna tabela z danymi, która zawiera wszystkie istotne informacje. Dobre praktyki wskazują, aby nie publikować wyników phpinfo() na stronach dostępnych publicznie, ponieważ ujawniają one wrażliwe informacje o konfiguracji serwera, co może prowadzić do potencjalnych luk w bezpieczeństwie.

Pytanie 24

Który kod HTML zapewni identyczny efekt formatowania jak na przedstawionym obrazku?

W tym paragrafie zobaczysz sposoby formatowania tekstu w HTML
A. <p>W tym <i>paragrafie </i><b>zobaczysz</b><i> sposoby formatowania</i> tekstu w HTML</p>
B. <p>W tym <b>paragrafie <i>zobaczysz</i> sposoby formatowania</b> tekstu w HTML</p>
C. <p>W tym <i>paragrafie <b>zobaczysz</b> sposoby formatowania</i> tekstu w HTML</p>
D. <p>W tym <i>paragrafie zobaczysz sposoby formatowania</i> tekstu w HTML</p>
Odpowiedź numer 2 jest poprawna, ponieważ używa odpowiednich znaczników HTML do formatowania tekstu. Znacznik <i> stosowany jest do oznaczania tekstu kursywą, a znacznik <b> do pogrubienia. W tym przypadku tekst 'paragrafie' i 'sposoby formatowania' są otoczone znacznikiem <i>, co zgodnie z HTML oznacza kursywę. Natomiast słowo 'zobaczysz' jest otoczone zarówno <b> jak i <i>, co skutkuje pogrubieniem i kursywą jednocześnie. Taka struktura jest zgodna z konwencją hierarchii znaczników, która mówi, że znaczniki mogą być zagnieżdżane, aby uzyskać różne efekty formatowania. HTML pozwala na takie zagnieżdżanie, co jest częścią elastyczności tego języka w prezentowaniu treści. Dobrą praktyką jest także zapewnienie dostępności, gdzie znaczniki semantyczne mają szczególne znaczenie. Wykorzystanie <b> i <i> zamiast odpowiednio <strong> i <em> jest bardziej stylistyczne niż semantyczne, co ma swoje uzasadnienie w kontekście projektowym, ale w nowoczesnych praktykach powinno się również rozważyć znaczenie semantyczne i używać <strong> i <em> dla lepszego zrozumienia przez czytniki ekranowe.

Pytanie 25

Podaj polecenie SQL, które wprowadza kolumnę miesiacSiewu do istniejącej tabeli rosliny?

A. CREATE TABLE rosliny {miesiacSiewu int}
B. ALTER TABLE rosliny ADD miesiacSiewu int
C. INSERT INTO rosliny VALUES (miesiacSiewu int)
D. UPDATE rosliny ADD miesiacSiewu int
Wszystkie błędne odpowiedzi opierają się na nieprawidłowym rozumieniu funkcji i zastosowania instrukcji w SQL. Polecenie INSERT INTO rosliny VALUES (miesiacSiewu int) jest niewłaściwe, ponieważ służy do wstawiania nowych rekordów do tabeli, a nie do modyfikacji jej struktury. Wstawiając dane, należy określić wartości dla istniejących kolumn, a nie definiować nowego pola. Funkcja UPDATE rosliny ADD miesiacSiewu int również jest myląca, gdyż polecenie UPDATE jest używane do aktualizacji istniejących danych w tabeli, a nie do dodawania nowych kolumn. Ponadto, dodawanie kolumny powinno odbywać się za pomocą ALTER TABLE, a nie poprzez UPDATE. Ostatecznie, CREATE TABLE rosliny {miesiacSiewu int} jest niewłaściwe, ponieważ polecenie CREATE TABLE jest stosowane do tworzenia nowej tabeli, a nie do modyfikacji istniejącej. Warto zauważyć, że w SQL każda instrukcja ma swoje specyficzne zastosowanie; nie można ich dowolnie zamieniać. Typowe błędy w myśleniu o SQL mogą prowadzić do nieefektywnego zarządzania danymi, dlatego kluczowe jest zrozumienie różnic między instrukcjami, aby skutecznie korzystać z możliwości baz danych.

Pytanie 26

Jakie jest zadanie funkcji PHP o nazwie mysql_num_rows()?

A. zwrócić liczbę wierszy znajdujących się w wyniku zapytania
B. ponumerować rekordy w bazie danych
C. zwrócić następny rekord z wynikami zapytania
D. zwrócić rekord o numerze podanym jako parametr funkcji
Funkcja mysql_num_rows() w PHP jest używana do zwracania liczby wierszy w wyniku zapytania SQL, co jest kluczowe w pracy z danymi w bazach danych. Gdy wykonujemy zapytanie, na przykład za pomocą mysql_query(), otrzymujemy wynik w formie zasobu. Funkcja mysql_num_rows() pozwala na określenie, ile wierszy zostało zwróconych przez to zapytanie. To jest szczególnie przydatne w sytuacjach, gdy chcemy wiedzieć, czy dane istnieją, na przykład w aplikacjach webowych, gdzie użytkownik szuka określonych informacji. Oznacza to, że możemy dostosować logikę naszej aplikacji na podstawie liczby wyników. Ponadto, korzystając z tej funkcji, możemy monitorować i optymalizować zapytania, co jest zgodne z najlepszymi praktykami w zakresie wydajności i zarządzania bazami danych. Warto również zauważyć, że mysql_num_rows() działa w kontekście wywołania do bazy danych, co oznacza, że musi być używana w kontekście zasobu wynikowego, aby działać poprawnie.

Pytanie 27

W jakim typie pliku powinno się zapisać zdjęcie, aby mogło być wyświetlane na stronie WWW z zachowaniem efektu przezroczystości?

A. JPG
B. BMP
C. CDR
D. PNG
Format PNG (Portable Network Graphics) jest idealnym wyborem do przechowywania obrazów z przezroczystością, ponieważ obsługuje kanał alfa, który pozwala na reprezentację przezroczystości w obrazach. Ta cecha jest szczególnie cenna w projektowaniu stron internetowych, gdzie grafiki muszą być dopasowane do różnych tła bez widocznych krawędzi. Przykładowo, logo firmy zapisane w formacie PNG może być umieszczone na stronie o różnych kolorach tła, zachowując estetyczny wygląd i nie zaburzając kompozycji. Ponadto, PNG jest formatem bezstratnym, co oznacza, że zachowuje jakość oryginalnego obrazu podczas kompresji, co jest ważne, gdy zależy nam na zachowaniu szczegółów i kolorów. W praktyce, wiele przeglądarek internetowych i edytorów graficznych obsługuje ten format, co czyni go standardem w branży. Dlatego dla grafik z przezroczystością PNG jest najczęściej zalecanym formatem, zgodnym z aktualnymi standardami i najlepszymi praktykami w dziedzinie projektowania stron internetowych.

Pytanie 28

Elementem, który odnosi się do imienia Agata w pokazanej tablicy JavaScript, jest

Ilustracja do pytania
A. Imiona[4]
B. Imiona[3]
C. Imiona['Agata']
D. Imiona[Agata]
W przypadku odpowiedzi Imiona[4] jest kilka błędów związanych z tym, jak działają tablice. Wiesz, w JavaScript zaczynamy liczyć od zera, więc pierwszy element ma indeks 0, a ostatni w tablicy o długości n to n-1. Nasza tablica ma pięć imion, więc ostatni element Agata ma indeks 3, a nie 4. Użycie Imiona[Agata] jest po prostu błędne, bo w tablicach musisz dawać liczby jako indeksy, nie tekst. Jak spróbujesz użyć tekstu jako indeksu, to interpreter nie znajdzie tego elementu i wywali błąd. W kontekście Imiona['Agata'] sytuacja jest ta sama, bo tablice przyjmują tylko numery. Wydaje mi się, że mogło być nieporozumienie między tablicami a obiektami, bo tam można używać tekstowych kluczy. Pamiętaj, że poprawne indeksowanie tablicy to bardzo ważna umiejętność w programowaniu, bo dzięki temu zarządzasz danymi i unikasz różnych błędów.

Pytanie 29

Które z poniższego oprogramowania nie jest zaliczane do systemów zarządzania treścią (CMS)?

A. Apache
B. Joomla
C. Mambo
D. WordPress
Joomla, Mambo i WordPress to przykłady systemów zarządzania treścią, które umożliwiają użytkownikom łatwe tworzenie i zarządzanie treściami na stronach internetowych. Joomla to rozbudowany CMS, który oferuje zaawansowane funkcje zarządzania treścią oraz rozbudowany system rozbudowy za pomocą komponentów i modułów, co czyni go idealnym narzędziem dla średnich i dużych serwisów internetowych. Mambo, będący jednym z pierwszych systemów tego typu, również dostarcza szereg funkcji umożliwiających tworzenie i zarządzanie treściami, jednak został w dużej mierze wycofany na rzecz bardziej nowoczesnych platform, jak Joomla. WordPress, z kolei, jest najpopularniejszym systemem zarządzania treścią na świecie, znanym z prostoty obsługi oraz ogromnej społeczności deweloperów, co pozwala na łatwe dostosowywanie i rozszerzanie funkcji poprzez wtyczki. Każdy z tych systemów jest zaprojektowany z myślą o użytkownikach, którzy chcą efektywnie zarządzać treściami bez konieczności programowania, oferując przy tym różne możliwości personalizacji i wsparcie dla różnych rodzajów treści, co czyni je idealnymi narzędziami w tworzeniu nowoczesnych stron internetowych.

Pytanie 30

W bazach danych typ DECIMAL jest przeznaczony do przechowywania

A. liczb zapisanych w systemie binarnym.
B. liczb rzeczywistych zmiennoprzecinkowych.
C. liczb rzeczywistych stałoprzecinkowych.
D. danych napisowych o określonej długości.
W tym pytaniu łatwo się złapać na skojarzeniach z innymi typami danych, dlatego warto sobie to porządnie poukładać. Typ DECIMAL nie ma nic wspólnego z „liczbami zapisanymi w systemie binarnym” w takim sensie, w jakim często myśli się o typach zmiennoprzecinkowych. Oczywiście fizycznie wszystko i tak jest binarne, ale chodzi o model reprezentacji logicznej. Klasyczne typy zmiennoprzecinkowe (FLOAT, DOUBLE) trzymają wartość w formacie binarnym IEEE 754, co powoduje znane problemy z dokładnością, np. 0.1 + 0.2 ≠ 0.3 idealnie. DECIMAL jest zaprojektowany właśnie po to, żeby unikać tych błędów i zapewnić precyzyjną reprezentację dziesiętną z określoną liczbą miejsc po przecinku. Dlatego utożsamianie DECIMAL z „typem binarnym” albo ogólnie z „liczbami w systemie binarnym” to takie lekkie pomieszanie poziomów abstrakcji. Kolejna pułapka to traktowanie DECIMAL jako typu do przechowywania danych napisowych. Dane tekstowe o określonej długości trzymamy w typach CHAR(n) lub VARCHAR(n). One przechowują ciągi znaków, a nie wartości numeryczne, więc nie wykonamy na nich sensownie operacji arytmetycznych, agregacji typu SUM, AVG itp. Oczywiście czasem ktoś z lenistwa zapisuje np. kwoty jako VARCHAR, ale to jest sprzeczne z dobrymi praktykami projektowania schematu bazy i potem mści się przy raportach i walidacji. Częsty błąd myślowy polega też na wrzuceniu wszystkich „liczb z przecinkiem” do jednego worka i uznaniu, że to zawsze są liczby zmiennoprzecinkowe. W rzeczywistości w SQL rozróżniamy typy przybliżone (FLOAT, DOUBLE, REAL) i typy dokładne (DECIMAL, NUMERIC). Te pierwsze są dobre do obliczeń naukowych, pomiarów, gdzie dopuszczalne jest małe odchylenie, za to są szybsze i mniej pamięciożerne. Te drugie, stałoprzecinkowe, są stosowane tam, gdzie ważna jest bezwzględna poprawność wartości dziesiętnej, np. finanse, księgowość, rozliczenia magazynowe. Traktowanie DECIMAL jako „liczby rzeczywistej zmiennoprzecinkowej” zaciera tę bardzo ważną granicę. Z mojego doświadczenia w projektach komercyjnych wybór między DECIMAL a FLOAT/DOUBLE to jedno z kluczowych miejsc, gdzie początkujący projektanci baz popełniają błędy. Jeśli typ dobierzemy źle, to później pojawiają się trudne do wytłumaczenia różnice groszowe, błędne sumy w raportach, problemy z porównaniami w WHERE. Dlatego warto zapamiętać: DECIMAL to liczby rzeczywiste stałoprzecinkowe, z dokładnie określoną precyzją i skalą, a nie typ tekstowy ani przybliżony typ binarny.

Pytanie 31

Ile razy zostanie wykonana pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w trakcie działania pętli?
for ($i = 0; $i <= 10; $i+=2) { .... }

A. 0
B. 10
C. 6
D. 5
Wybór błędnych odpowiedzi wynika z nieprawidłowego zrozumienia działania pętli for oraz sposobu, w jaki zostają liczone iteracje. Odpowiedzi takie jak 0, 5 czy 10 są oparte na mylących założeniach. Na przykład, odpowiedzi 0 i 10 mogą sugerować, że pętla nie wykonuje żadnych iteracji lub, że wykonuje ich zbyt wiele, co jest sprzeczne z rzeczywistością. Pętla for, jak w tym przypadku, zaczyna od 0 i kończy na 10, a krok wynosi 2. Zmiana wartości $i przy każdym przejściu pętli jest kluczowym elementem do zrozumienia. Jeśli więc zmienna nie jest zmieniana, nie osiągnie ona wartości końcowej prawidłowo. Typowym błędem jest także myślenie o warunkach w sposób nieprecyzyjny; w tym wypadku warunek $i <= 10 jest spełniony dla wartości 10, co może mylić. W praktyce, programiści powinni zawsze dokładnie analizować zakres iteracji, aby uniknąć błędnych założeń. To zrozumienie jest fundamentalne, aby pisać wydajny i bezpieczny kod, stosując się do najlepszych praktyk programistycznych.

Pytanie 32

Przedstawiony w ramce fragment kwerendy SQL ma za zadanie wybrać

SELECT COUNT(wartosc) FROM ...
A. sumę w kolumnie wartosc.
B. liczbę kolumn.
C. liczbę wierszy.
D. średnią w kolumnie wartosc.
Poprawnie: wyrażenie SELECT COUNT(wartosc) ma za zadanie zwrócić liczbę wierszy, w których kolumna wartosc nie jest pusta (czyli nie ma wartości NULL). Funkcja agregująca COUNT() w SQL właśnie do tego służy – zlicza rekordy. W wersji COUNT(nazwa_kolumny) zliczane są tylko te wiersze, gdzie w tej kolumnie znajduje się jakaś konkretna wartość. To jest ważne rozróżnienie: COUNT(*) liczy wszystkie wiersze w tabeli lub wyniku kwerendy, natomiast COUNT(wartosc) pomija rekordy z NULL w tej kolumnie. Moim zdaniem to jedna z podstawowych rzeczy, które trzeba mieć „w ręku”, pracując z bazami danych. W praktyce używa się tego np. do sprawdzenia, ilu klientów podało numer telefonu, ilu pracowników ma przypisaną premię, ile zamówień ma ustawioną datę realizacji itd. Zamiast ręcznie przeglądać dane, odpalasz prostą kwerendę: SELECT COUNT(telefon) FROM klienci; i od razu wiesz, ile jest uzupełnionych pól. Dobre praktyki mówią też, żeby świadomie wybierać pomiędzy COUNT(*) a COUNT(kolumna), bo dają one różne wyniki przy brakach danych. W raportowaniu biznesowym to ma ogromne znaczenie, bo łatwo wyciągnąć złe wnioski, jeśli ktoś nie rozumie, co dokładnie liczy dana funkcja. W projektach komercyjnych COUNT() jest jedną z najczęściej używanych funkcji agregujących obok SUM(), AVG(), MIN() i MAX(), więc warto od razu nauczyć się jej poprawnej interpretacji i stosowania w połączeniu z klauzulą WHERE oraz GROUP BY, żeby liczyć wiersze spełniające konkretne warunki, np. ilu użytkowników aktywowało konto w danym miesiącu.

Pytanie 33

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

A. sumy.
B. części wspólnej.
C. wykluczenia.
D. grupowania.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 34

Funkcja zaprezentowana w PHP

function dzialania(int $x, float $y) {
  $z = $x + $y;
  return $z;
}
A. przyjmuje dwa argumenty z wartością domyślną.
B. jest zadeklarowana z dwoma parametrami rzeczywistymi.
C. zwraca wynik.
D. nie zwraca wyniku.
Przedstawiona funkcja w języku PHP to przykład funkcji, która zwraca wartość. Z definicji funkcja działa na określonych wejściach, które w tym przypadku są typu int i float, a następnie wykonuje operację dodawania tych wejść. Zmienna $z przechowuje wynik dodawania, który jest następnie zwracany poprzez instrukcję return. Instrukcja ta kończy działanie funkcji, przekazując wynik na zewnątrz, co czyni funkcję użyteczną w kontekście programowania modularnego, gdzie wyniki obliczeń mogą być dalej przetwarzane lub wykorzystywane. W PHP zwracanie wartości z funkcji jest powszechną praktyką, szczególnie w kontekście aplikacji, gdzie funkcje pomagają w organizacji kodu, testowaniu jednostkowym oraz utrzymaniu. Dobre praktyki programistyczne zalecają zwracanie wartości, gdy funkcja ma wykonywać obliczenia lub przetwarzanie danych, co zwiększa jej elastyczność i ponowne użycie w różnych częściach programu. Funkcje zwracające wartości są często wykorzystywane w aplikacjach webowych do przetwarzania danych z formularzy czy generowania dynamicznych treści, co ilustruje ich wszechstronność i znaczenie w nowoczesnym programowaniu.

Pytanie 35

Jaką instrukcję pętli stosuje się do przeprowadzenia określonej liczby operacji na obiekcie lub zmiennej, która nie jest tablicą?

A. for
B. foreach
C. if
D. switch
Wybór instrukcji 'switch' jako odpowiedzi na pytanie o pętlę wykonującą określoną liczbę operacji jest błędny z podstawowego powodu, że 'switch' nie jest pętlą. Jest to struktura kontrolna używana do wyboru jednego z wielu bloków kodu do wykonania, w zależności od wartości zmiennej. Zastosowanie 'switch' jest zatem ograniczone do sytuacji, gdy chcemy wykonywać różne operacje w zależności od konkretnej wartości, a nie do powtarzania tych samych operacji wielokrotnie. Z kolei 'foreach' jest konstrukcją, która służy do iteracji przez kolekcje lub tablice, co również nie odpowiada na postawione pytanie o pętlę wykonującą ustaloną liczbę operacji na pojedynczej zmiennej. Użycie 'if' jest również mylące; jest to instrukcja warunkowa, która decyduje o tym, czy dany blok kodu powinien zostać wykonany w oparciu o spełnienie określonych warunków. W praktyce, błędne zrozumienie roli i funkcji tych konstrukcji często prowadzi do nieefektywnego kodu, który może być trudny do zrozumienia i utrzymania. Kluczowe jest zrozumienie różnicy pomiędzy strukturami kontrolnymi a pętlami, co pozwoli na właściwe podejście do programowania i skuteczne zarządzanie logiką aplikacji. Ważne jest, aby nauczyć się, kiedy używać każdej z tych konstrukcji, aby optymalizować kod i unikać nieporozumień.

Pytanie 36

Wskaż sposób oznaczania komentarzy wielowierszowych w kodzie PHP.

A. // treść komentarza
B. <!-- treść komentarza -->
C. /* treść komentarza*/
D. / treść komentarza/
Poprawna odpowiedź to zapis w postaci /* treść komentarza */. W języku PHP taki zapis oznacza komentarz wielowierszowy, czyli taki, który może rozciągać się na kilka linii kodu. Komentarz zaczyna się znakiem /* i kończy się dokładnie sekwencją */. Wszystko, co znajduje się pomiędzy tymi znacznikami, jest ignorowane przez interpreter PHP i nie ma wpływu na działanie programu. Można to wykorzystać np. tak: /* Funkcja liczy sumę dwóch liczb Parametry: $a – pierwsza liczba $b – druga liczba */ function suma($a, $b) { return $a + $b; } Z mojego doświadczenia dobrze jest używać komentarzy wielowierszowych do opisywania całych bloków logiki, np. większych funkcji, klas albo skomplikowanych fragmentów algorytmu. W dokumentacji i w dobrych projektach często spotyka się też komentarze stylizowane na PHPDoc, np.: /** * Zwraca sumę dwóch liczb całkowitych * @param int $a * @param int $b * @return int */ To nadal jest zwykły komentarz wielowierszowy, tylko używany zgodnie z pewnym standardem narzędziowym. Moim zdaniem warto wyrabiać sobie nawyk pisania czytelnych komentarzy, ale jednocześnie nie przesadzać – komentarz wielowierszowy powinien wyjaśniać „dlaczego” coś jest zrobione w określony sposób, a nie przepisywać oczywistości z kodu. W praktyce w PHP używa się trzech form komentarzy: // dla jednowierszowych, # (rzadziej, ale też działa) oraz właśnie /* */ dla wielowierszowych. Znajomość tej składni to absolutna podstawa przy pracy z większymi projektami PHP, bo bez niej kod szybko staje się nieczytelny dla innych programistów.

Pytanie 37

W HTML, aby utworzyć hiperłącze, które otworzy się w nowej karcie przeglądarki, należy użyć atrybutu

A. target = "_new"
B. rel = "prev"
C. target = "_blank"
D. rel = "external"
Atrybut target="_blank" to standard w HTML, który pozwala otwierać linki w nowej karcie przeglądarki. W praktyce jest to bardzo popularne rozwiązanie, bo dzięki temu użytkownik może sobie przeglądać stronę, a jednocześnie otworzyć coś nowego. Działa to tak, że jeśli dodasz ten atrybut do linku, przeglądarka po prostu otworzy go w nowej karcie lub oknie - to już zależy od ustawień. To naprawdę przydaje się, gdy linkujesz do dokumentacji, stron zewnętrznych albo mediów społecznościowych, gdzie chcesz, żeby użytkownik nie musiał zamykać tego, co aktualnie ogląda. Ale uwaga! Trzeba z tym atrybutem uważać i stosować go z głową, bo czasem lepiej dać użytkownikowi wybór, czy chce otworzyć link w nowej karcie, czy nie, żeby nie czuł się zdezorientowany.

Pytanie 38

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

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

Pytanie 39

Aby przeprowadzić walidację kontrolek formularza w momencie, gdy użytkownik wprowadza dane, można wykorzystać zdarzenie

A. onFocusOut
B. onClick
C. onLoad
D. onKeyDown
Odpowiedź 'onKeyDown' jest poprawna, ponieważ jest to zdarzenie, które jest wywoływane, gdy użytkownik naciśnie klawisz podczas interakcji z polem formularza. Użycie tego zdarzenia pozwala na walidację danych w czasie rzeczywistym, co oznacza, że programista może natychmiast reagować na wprowadzone znaki. Dzięki temu można na przykład sprawdzić, czy wprowadzone dane spełniają określone kryteria, takie jak format e-maila, długość hasła czy obecność cyfr. Praktyczne zastosowanie zdarzenia onKeyDown polega na tym, że można wprowadzić logikę walidacji bez konieczności czekania na zakończenie wprowadzania danych. Zamiast tego, możemy w realnym czasie informować użytkowników o ewentualnych błędach, co znacznie poprawia doświadczenia użytkowników. Ponadto, zgodnie z dobrymi praktykami, zaleca się używanie zdarzeń związanych z klawiaturą, takich jak onKeyDown czy onInput, które są bardziej odpowiednie dla dynamicznych interakcji niż na przykład onBlur, które może być mniej responsywne. Warto również zauważyć, że onKeyDown działa przed onKeyUp, co umożliwia szybsze reagowanie na wprowadzane dane, co jest kluczowe w kontekście walidacji w czasie rzeczywistym.

Pytanie 40

Który element blokowy języka HTML5 jest przeznaczony do umieszczenia w nim nawigacji witryny? 

A. main
B. header
C. nav
D. aside
Poprawnie wskazany został element <nav>, który w HTML5 jest semantycznym kontenerem przeznaczonym specjalnie na nawigację. Według specyfikacji HTML Living Standard element <nav> służy do grupowania głównych bloków odsyłaczy nawigacyjnych, takich jak menu główne, menu w stopce, menu kategorii czy paginacja. Przeglądarki, czytniki ekranu i różne narzędzia asystujące rozpoznają ten znacznik jako obszar nawigacyjny, co bardzo poprawia dostępność (accessibility) strony. Z mojego doświadczenia, gdy struktura jest zrobiona semantycznie, screen readery potrafią jednym skrótem klawiaturowym przeskoczyć do nawigacji, co jest ogromnym ułatwieniem dla użytkowników niewidomych. W praktyce w <nav> umieszczamy listy linków, najczęściej w postaci <ul><li><a>…</a></li></ul>. Przykładowo: <nav><ul><li><a href="/">Strona główna</a></li><li><a href="/oferta">Oferta</a></li><li><a href="/kontakt">Kontakt</a></li></ul></nav>. Taka konstrukcja jest zgodna z dobrymi praktykami front-endu: semantyczny HTML, czytelna struktura, łatwiejsze stylowanie w CSS i prostsza nawigacja w JavaScript. Co ważne, <nav> nie jest zwykłym divem – jego nazwa od razu mówi, do czego służy, co ułatwia pracę całego zespołu projektowego. W projektach komercyjnych często stosuje się kilka bloków <nav> na jednej stronie: główne menu w headerze, dodatkowe menu w stopce, czasem boczne menu kategorii. Standardy W3C dopuszczają to, pod warunkiem że te sekcje rzeczywiście służą do nawigowania. Dobrym zwyczajem jest nie umieszczać w <nav> pojedynczych przypadkowych linków w tekście artykułu – ten znacznik jest przewidziany dla istotnych struktur nawigacyjnych, a nie dla zwykłych hiperłączy w treści. Dzięki temu kod HTML pozostaje przejrzysty, łatwiej go walidować i utrzymywać w większych projektach.