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: 9 czerwca 2026 07:15
  • Data zakończenia: 9 czerwca 2026 07:38

Egzamin niezdany

Wynik: 17/40 punktów (42,5%)

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

Dany jest fragment kodu PHP z zadeklarowaną zmienną typu tablicowego W wyniku wykonania kodu zostanie wypisane imię

$imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra');
echo $imiona[2];
A. Anna
B. Aleksandra
C. Krzysztof
D. Tomasz
Twoja odpowiedź nie była prawidłowa. Możliwe, że doszło do nieporozumienia dotyczącego tego, jak funkcja 'echo' jest używana w PHP do wyświetlania danych. W podanym fragmencie kodu, 'echo' jest używane do wypisania elementu tablicy '$imiona' o indeksie [2]. W PHP, indeksowanie tablicy zaczyna się od 0, co oznacza, że trzeci element tablicy ma indeks [2]. Dlatego też wynikiem jest 'Krzysztof', a nie 'Tomasz', 'Aleksandra' czy 'Anna'. To jest częsty błąd początkujących programistów, którzy nie są jeszcze przyzwyczajeni do indeksowania od zera. Ponadto, warto pamiętać, że PHP pozwala na manipulowanie danymi tablicy poprzez wywoływanie konkretnego indeksu, co jest wysoce użyteczne w różnych kontekstach programistycznych. Zrozumienie tej koncepcji jest kluczowe dla dalszego programowania w PHP.

Pytanie 2

Zaprezentowano tabelę stworzoną przy użyciu kodu HTML, bez zastosowania stylów CSS. Która część kodu HTML odnosi się do pierwszego wiersza tabeli?

Ilustracja do pytania
A. Rys. D
B. Rys. B
C. Rys. C
D. Rys. A
Pierwszy wiersz tabeli HTML zazwyczaj zawiera nagłówki kolumn i jest oznaczony za pomocą znaczników <th> (table header). Zgodnie z dobrymi praktykami tworzenia tabel w HTML, nagłówki powinny być oddzielone od danych, aby poprawić zarówno estetykę, jak i funkcjonalność tabeli. W odpowiedzi Rys. D użyto znaczników <th> co poprawnie definiuje nagłówki kolumn. W ten sposób przeglądarki potrafią wyróżnić nagłówki, np. poprzez pogrubienie tekstu, co jest domyślnym zachowaniem. Zastosowanie <th> poprawia również dostępność tabel, ponieważ technologie asystujące lepiej interpretują strukturę danych w tabelach, co jest zgodne z wytycznymi WCAG (Web Content Accessibility Guidelines). Korzystając z <th>, można dodatkowo określić atrybut scope, który jeszcze bardziej precyzuje relacje w tabeli, co jest szczególnie przydatne w bardziej złożonych strukturach. W praktyce, kiedy projektujemy strony internetowe, stosowanie prawidłowych znaczników semantycznych jest kluczowe dla tworzenia zrozumiałego i dostępnego interfejsu użytkownika. Dlatego też wybór fragmentu z <th> jako reprezentującego pierwszy wiersz tabeli jest zgodny z zaleceniami i standardami nowoczesnego front-endu.

Pytanie 3

Język HTML posiada nagłówki, które służą do tworzenia hierarchii treści. Nagłówki te występują tylko w zakresie

A. h1 – h4
B. h1 – h6
C. h1 – h8
D. h1 – h10
Odpowiedź h1 – h6 jest poprawna, ponieważ język HTML udostępnia sześć poziomów nagłówków, od h1 do h6, które służą do tworzenia hierarchii treści na stronie internetowej. Nagłówek h1 jest najważniejszy i powinien być używany do oznaczenia głównego tytułu strony, podczas gdy h2, h3, h4, h5 i h6 wskazują na kolejne poziomy nagłówków, które pomagają w organizacji treści. Przykładowo, nagłówek h2 może być używany do sekcji, natomiast h3 może oznaczać podsekcje w ramach danej sekcji. Używanie nagłówków w ten sposób nie tylko poprawia czytelność i zrozumienie treści przez użytkowników, ale także pozytywnie wpływa na SEO (optymalizację dla wyszukiwarek). Warto pamiętać, że zgodnie z najlepszymi praktykami, powinno się unikać pomijania poziomów nagłówków, co zapewnia logiczną strukturę treści i ułatwia indeksację przez roboty wyszukiwarek.

Pytanie 4

Tablica tab[] zawiera różne liczby całkowite. Jaką wartość przyjmie zmienna zm2 po wykonaniu podanego fragmentu kodu?

Ilustracja do pytania
A. Suma liczb z tablicy
B. Średnia geometryczna liczb od 0 do 9
C. Suma liczb od 1 do 10
D. Średnia arytmetyczna liczb z tablicy
Pozostałe odpowiedzi są błędne z kilku powodów. Pierwsza odpowiedź sugeruje, że zmienna zm2 przechowuje sumę liczb z tablicy. Jest to nieprawidłowe, ponieważ zm2 reprezentuje wynik pośredni, będący średnią arytmetyczną, gdyż końcowy wynik to zm1 podzielone przez 10. Suma liczb z tablicy znajduje się w zmiennej zm1 przed operacją dzielenia. Druga odpowiedź odnosi się do sumy liczb od 1 do 10, co jest mylnym wnioskiem, ponieważ pętla w kodzie iteruje przez elementy tablicy, a nie przez stałe wartości. Elementy tablicy mogą reprezentować jakiekolwiek liczby całkowite, a kod nie odnosi się do stałych wartości od 1 do 10. Ostatecznie, czwarta odpowiedź o średniej geometrycznej liczb od 0 do 9 również nie jest poprawna, ponieważ kod ani nie odnosi się do zakresu liczb od 0 do 9, ani też nie oblicza średniej geometrycznej, która wymagałaby mnożenia i pierwiastkowania, a nie dodawania i dzielenia. Typowym błędem jest mylenie różnych typów średnich, a także błędne założenia co do zakresu operacji na tablicy. W kontekście programowania, takie nieporozumienia mogą prowadzić do błędów w implementacji algorytmów analizy danych, dlatego ważne jest, aby precyzyjnie rozumieć, jakie operacje są wykonywane w danym fragmencie kodu i jak wpływają one na wynik końcowy. Znajomość różnic między średnimi (arytmetyczna, geometryczna) jest fundamentalna w analizach matematycznych i statystycznych.

Pytanie 5

W pokazanym fragmencie zapytania w języku SQL, polecenie SELECT ma na celu uzyskanie wyników z komendy SELECT COUNT(wartosc) FROM....?

A. liczbę rekordów
B. średnią wartości w kolumnie wartosc
C. sumę wartości w kolumnie wartosc
D. średnią wartości w tabeli
W analizowanych odpowiedziach, wybór średniej tabeli, sumy w kolumnie wartosc oraz średniej w kolumnie wartosc jest niepoprawny z uwagi na różnice między funkcjami agregującymi. Średnia tabeli oznaczałaby zliczenie wartości i ich podzielenie przez liczbę elementów, co w przypadku użycia COUNT nie ma miejsca, ponieważ COUNT nie oblicza średniej, a jedynie zlicza ilość rekordów. Dodatkowo, funkcja SUM, która zlicza sumę wartości w określonej kolumnie, wymaga użycia innej syntaktyki, na przykład SELECT SUM(wartosc) FROM... Ponadto, gdyby celem zapytania było zwrócenie średniej wartości w kolumnie wartosc, należałoby użyć zapytania SELECT AVG(wartosc) FROM..., które jest odrębną funkcją od COUNT i ma zupełnie inny cel. W związku z tym, każda z wymienionych odpowiedzi, które sugerują zwrócenie średniej lub sumy, są technicznie błędne, ponieważ nie odpowiadają na zapytanie, które jest skoncentrowane na zliczaniu ilości wierszy, co jest fundamentalną funkcjonalnością polecenia COUNT w systemach baz danych.

Pytanie 6

Jaką wartość uzyska zmienna x po wykonaniu poniższego kodu PHP?

mysqli_query($db, "DELETE FROM produkty WHERE status < 0");
$x = mysqli_affected_rows($db);
A. Liczbę wierszy w tabeli produkty, dla których pole status przekracza zero.
B. Liczbę wierszy przetworzonych przez zapytanie DELETE FROM.
C. Liczbę wierszy, które zostały dodane do tabeli produkty.
D. Liczbę wierszy, które znajdują się w bazie danych.
Wybór niepoprawnej odpowiedzi może wynikać z nieporozumienia dotyczącego działania funkcji mysqli_affected_rows oraz zrozumienia zapytań SQL. Wiele osób może myśleć, że funkcja ta zwraca liczbę wierszy w tabeli, co jest błędne. mSQL i PHP oferują wiele funkcji do interakcji z bazą danych, a zrozumienie ich specyfikacji jest kluczowe dla efektywnego programowania. Odpowiedź sugerująca, że x przyjmuje liczbę wierszy znajdujących się w bazie danych, jest absolutnie nieprawidłowa, ponieważ mysqli_affected_rows nie ma nic wspólnego z ogólną liczbą wierszy w tabeli. To funkcja, która skupia się na rezultatach ostatniego zapytania, a nie na całkowitym stanie bazy danych. Podobnie, zrozumienie zapytania DELETE FROM jako operacji, która zmienia stan bazy danych, jest fundamentalne. Inną popularną pomyłką jest myślenie, że liczba wierszy dodanych do tabeli jest w jakiś sposób związana z tym, co robi zapytanie DELETE. W rzeczywistości, podczas usuwania danych, nie dodajemy nic nowego, a funkcja ta jedynie informuje nas o usuniętych elementach. Dobrą praktyką jest również sięganie po dokumentację oraz testowanie kodu, co pozwala na lepsze zrozumienie zachowań funkcji i operacji na bazach danych.

Pytanie 7

Jakie formaty wideo są obsługiwane przez standard HTML5?

A. Ogg, AVI, MPEG
B. MP4, AVI
C. Ogg, QuickTime
D. MP4, Ogg, WebM
Wybór odpowiedzi MP4, AVI, Ogg czy Ogg, AVI, MPEG jest błędny z kilku powodów. Format AVI, mimo swojej popularności, nie jest obsługiwany w standardzie HTML5. AVI to stary format, który nie jest zoptymalizowany do użytku w sieci, co prowadzi do problemów z kompatybilnością i wydajnością. Z kolei QuickTime, chociaż używany w niektórych aplikacjach, nie jest standardowo wspierany przez HTML5, co ogranicza jego zastosowanie w nowoczesnych stronach internetowych. W przypadku formatu MPEG, choć jest on dość powszechnie stosowany, to nie jest preferowany w kontekście HTML5, a jego wsparcie jest ograniczone w porównaniu do MP4, Ogg i WebM. Warto zaznaczyć, że najnowsze przeglądarki internetowe szybko przechodzą na otwarte standardy, co sprawia, że formaty, które opierają się na patencie, stają się mniej popularne. W związku z tym, korzystanie z formatów takich jak MP4, Ogg czy WebM nie tylko zapewnia lepszą jakość i wydajność, ale również zwiększa dostępność treści w sieci. Wybór niewłaściwych formatów może prowadzić do problemów z odtwarzaniem na różnych platformach, co negatywnie wpływa na doświadczenia użytkowników oraz zasięg treści. W efekcie, aby zachować optymalne standardy w tworzeniu stron internetowych, kluczowe jest stosowanie formatów zgodnych ze specyfikacją HTML5.

Pytanie 8

Skrypt strony internetowej stworzony w PHP

A. jest realizowany po stronie klienta
B. jest przetwarzany na tych samych zasadach co JavaScript
C. jest realizowany po stronie serwera
D. może być uruchomiony bez wsparcia serwera WWW
Wybór niewłaściwych odpowiedzi wskazuje na pewne nieporozumienia dotyczące architektury aplikacji internetowych. Istotne jest, że kod PHP jest przetwarzany na serwerze, a nie po stronie klienta. Odpowiedzi, które wskazują na wykonanie kodu po stronie klienta, mylą koncepcję PHP z językami, takimi jak JavaScript, które rzeczywiście działają w przeglądarkach użytkowników. PHP generuje HTML, CSS, oraz inne zasoby, które są następnie przesyłane do klienta, ale sam kod PHP nie jest bezpośrednio wykonywany w przeglądarkach. Kolejnym błędnym założeniem jest myślenie, że PHP może być uruchomione bez obsługi serwera WWW. PHP wymaga serwera, takiego jak Apache czy Nginx, aby móc interpretować skrypty i odpowiadać na żądania HTTP. W przypadku pracy lokalnej programiści często korzystają z narzędzi takich jak XAMPP czy MAMP, które symulują środowisko serwera. Ostatnia niewłaściwa odpowiedź sugeruje, że PHP jest przetwarzane na tych samych zasadach co JavaScript. Choć oba języki są kluczowe w rozwijaniu aplikacji webowych, różnią się one istotnie zachowaniem i miejscem wykonywania kodu. JavaScript działa po stronie klienta, co pozwala na interakcję z użytkownikiem bez konieczności ponownego ładowania strony, podczas gdy PHP jest odpowiedzialne za przetwarzanie danych na serwerze i generowanie odpowiedzi, które są następnie przesyłane do klienta.

Pytanie 9

Jakie dane zostaną pokazane w wyniku wykonania podanego zapytania SQL na 8 rekordach w tabeli zwierzeta?

SELECT imie FROM zwierzeta
WHERE rodzaj = 2
AND szczepienie = 2016;
idrodzajimiewlascicielszczepienieopis
11FafikAdam Kowalski2016problemy z uszami
21BrutusAnna Wysocka2016zapalenie krtani
41SabaMonika Nowak2015antybiotyk
51AlmaJan KowalewskiNULLantybiotyk
62FigaroAnna KowalskaNULLproblemy z uszami
72DikaKatarzyna Kowal2016operacja
82FuksJan Nowak2016antybiotyk
A. Dika, Fuks
B. Anna Kowalska, Jan Nowak
C. Fafik, Brutus, Dika, Fuks
D. Figaro, Dika, Fuks
W zapytaniu SQL określono, że chcemy wybrać kolumnę 'imie' z tabeli 'zwierzeta' dla rekordów, które spełniają dwa warunki: 'rodzaj' równa się 2 oraz 'szczepienie' równa się 2016. Analizując dane z tabeli, widzimy, że rekordy spełniające oba te kryteria to rekordy o ID 7 i 8, gdzie imiona to 'Dika' i 'Fuks'. Jest to poprawna odpowiedź, ponieważ jedynie te dwa rekordy mają 'rodzaj' równe 2 i 'szczepienie' równe 2016. Takie podejście do zapytań SQL jest zgodne z praktykami branżowymi, które uczą, by precyzyjnie definiować warunki filtrowania danych. Dzięki temu można efektywnie zarządzać danymi i uzyskiwać jedynie te informacje, które są istotne dla bieżącej analizy czy raportu. Warto zauważyć, że zastosowanie logicznej operacji 'AND' jest kluczowe, gdy chcemy, aby wszystkie określone warunki były spełnione jednocześnie. W różnych systemach baz danych, takich jak MySQL czy PostgreSQL, takie zapytania są powszechne i pomagają w utrzymaniu precyzyjnych i wydajnych operacji na danych.

Pytanie 10

Której właściwości CSS użyć, aby ustawić wewnętrzny GÓRNY odstęp (między treścią a obramowaniem)?

A.
border-top
B.
padding-top
C.
outline-top
D.
local-top
Wewnętrzny GÓRNY odstęp - między treścią a górną krawędzią obramowania - ustawia padding-top, np. padding-top: 15px;. To jedna z czterech stron padding (padding-top, -right, -bottom, -left). Zapamiętaj: „padding” = wnętrze, „top” = góra.

Pytanie 11

Typowym programem przeznaczonym do edycji grafiki wektorowej jest

A. Paint.
B. Inkscape.
C. Audacity.
D. Brasero.
Poprawnie wskazany program to Inkscape, bo jest to typowy, specjalistyczny edytor grafiki wektorowej. Grafika wektorowa opiera się na obiektach takich jak linie, krzywe Béziera, wielokąty, tekst, które są opisane matematycznie (współrzędne, promienie, kąty), a nie na siatce pikseli. Dzięki temu projekty można skalować praktycznie dowolnie bez utraty jakości, co jest absolutnym standardem przy projektowaniu logotypów, ikon, infografik, schematów technicznych czy elementów interfejsu użytkownika. Inkscape obsługuje format SVG, który jest otwartym standardem W3C i jest powszechnie stosowany w projektach webowych, także w responsywnych interfejsach. W praktyce, używając Inkscape, można tworzyć np. logo firmy, które później bez problemu osadzisz na stronie WWW, w materiałach do druku, na banerach, a nawet w aplikacji mobilnej, bez martwienia się o rozmazanie czy pikselizację. Program oferuje warstwy, style, grupowanie obiektów, precyzyjne wyrównywanie, siatki i prowadnice, co jest zgodne z dobrymi praktykami pracy z grafiką: porządek w projekcie, praca na oddzielnych warstwach, używanie krzywych zamiast „ręcznego” rysowania byle jakich kształtów. Moim zdaniem, znajomość Inkscape albo innego edytora wektorowego (np. Adobe Illustrator, CorelDRAW) to dzisiaj podstawowa umiejętność dla kogoś, kto myśli poważnie o grafice komputerowej czy front-endzie. Wiele firm wręcz wymaga, żeby materiały były dostarczane właśnie w formacie wektorowym, bo wtedy łatwiej je modyfikować, dopasowywać kolorystykę do brandingu i eksportować do różnych formatów (PNG, PDF, EPS) w zależności od potrzeb. Inkscape pozwala też na pracę z krzywymi, maskami, gradientami czy efektami filtrów, co daje bardzo duże możliwości przy zachowaniu zalet wektorów.

Pytanie 12

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Krzywe.
B. Inwersja.
C. Barwienie.
D. Progowanie.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 13

Która z funkcji SQL nie wymaga podania argumentów?

A.
UPPER()
B.
NOW()
C.
LEN()
D.
YEAR()
Funkcja NOW() zwraca bieżącą datę i godzinę z serwera bazy i nie przyjmuje żadnych argumentów - wystarczy SELECT NOW(). Używa się jej np. do automatycznego zapisania znacznika czasu utworzenia rekordu. Pozostałe podane funkcje muszą dostać dane wejściowe, na których działają. Dlatego funkcją bez argumentów jest NOW().

Pytanie 14

Dostępna jest tabela zatytułowana wycieczki, zawierająca kolumny nazwa, cena oraz miejsca (jako liczba dostępnych miejsc). Aby wyświetlić jedynie nazwy wycieczek, których cena jest poniżej 2000 złotych oraz posiadają co najmniej cztery dostępne miejsca, należy zastosować zapytanie

A. SELECT * FROM wycieczki WHERE cena < 2000 AND miejsca > 4
B. SELECT nazwa FROM wycieczki WHERE cena < 2000 OR miejsca > 4
C. SELECT * FROM wycieczki WHERE cena < 2000 OR miejsca > 3
D. SELECT nazwa FROM wycieczki WHERE cena < 2000 AND miejsca > 3
Zapytania, które nie były prawidłowe, operują na istotnych nieporozumieniach związanych z użyciem operatorów logicznych oraz z określeniem liczby wolnych miejsc. Przykłady te często wykorzystują operator OR, co prowadzi do sytuacji, w której jeden z warunków może być spełniony, a drugi nie. W szczególności, użycie operatora OR w kontekście zadań, które wymagają spełnienia obu warunków, prowadzi do nieprawidłowych wyników. Na przykład, zapytanie z OR zwróci wszystkie wycieczki, które mają cenę poniżej 2000 zł, niezależnie od tego, ile mają wolnych miejsc, co może skutkować wyświetleniem wycieczek, które w ogóle nie spełniają kryteriów dostępności. Dodatkowo, w jednym z zapytań zastosowano niewłaściwą wartość dla ilości wolnych miejsc - 'miejsca > 3' zamiast 'miejsca > 4', co również prowadzi do nieścisłości. Zmiana wartości progowej nie uwzględnia wymogu, by wycieczki miały przynajmniej cztery wolne miejsca, tym samym zmieniając sens zapytania. Kluczowym błędem jest zatem zrozumienie, że w kontekście filtrowania danych w bazie, zarówno operator AND, jak i precyzyjne określenie wartości granicznych są niezbędne dla uzyskania poprawnych i użytecznych wyników.

Pytanie 15

Dla dowolnego a z przedziału (0, 99) zadaniem funkcji zapisanej w języku JavaScript jest

function fun1(a)
{
    for (n = a; n <= 100; n++)
        document.write(n);
    return n;
}
A. zwrócenie liczb z przedziału a .. 99
B. wypisanie liczb z przedziału a .. 100 i zwrócenie wartości zmiennej n
C. wypisanie liczb z przedziału a .. 99 i zwrócenie wartości 100
D. wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n
Wybrane przez Ciebie odpowiedzi są niepoprawne, gdyż nie odzwierciedlają w pełni działania pętli for w JavaScript. Pętla for jest używana do iterowania tyle razy, ile wynosi różnica między 100 a wartością argumentu a, wypisując każdą iterację. Następnie funkcja zwraca wartość o 1 większą niż warunek kończący pętlę (100), co wynosi 101. Błędem było zakładanie, że funkcja zwraca wartości w inny sposób. Przykładowo, jedna z nieprawidłowych odpowiedzi sugerowała, że funkcja zwraca liczby z przedziału a do 99 - jednakże zwracana jest liczba 101. Inna błędna odpowiedź sugerowała, że funkcja wypisuje wartość zmiennej a i zwraca wartość zmiennej n - jednakże wypisywane są liczby od a do 100, a zwracana jest wartość 101. Kolejnym błędem było zakładanie, że funkcja zwraca wartość 100 - co jest nieprawdą, gdyż funkcja zwraca wartość 101. Zrozumienie działania pętli for i funkcji zwracających wartości jest kluczowe dla programowania w JavaScript, dlatego warto poświęcić więcej czasu na praktykę i naukę tych konceptów.

Pytanie 16

Który z przedstawionych obrazów ma zastosowany poniższy styl CSS?

img {
    padding: 5px;
    border: 1px solid grey;
    border-radius: 10px;
}
Ilustracja do pytania
A. D.
B. A.
C. C.
D. B.
Stylizacja obrazów za pomocą CSS jest kluczowym aspektem w projektowaniu stron internetowych, ponieważ wpływa na estetykę i funkcjonalność interfejsu użytkownika. Wybierając nieodpowiednią odpowiedź, można nie uwzględnić, jak różne właściwości styli wpływają na wygląd elementu. Na przykład, pomijając właściwość padding, można nie zapewnić odpowiedniej przestrzeni wokół obrazu, co skutkuje mniej czytelnym wyglądem. Użycie border bez zrozumienia jego zastosowania może prowadzić do niekompatybilności wizualnej z resztą interfejsu, ponieważ zbyt gruba lub kontrastowa ramka może odciągać uwagę użytkownika. Border-radius to kolejna kluczowa właściwość często pomijana w projektach. Brak zaokrąglenia rogów może sprawić, że elementy będą wydawały się surowe i nieprzystępne. Pominięcie tych szczegółów może również wpłynąć na responsywność i dostępność strony, ponieważ nowe standardy UX/UI kładą duży nacisk na miękkie krawędzie i przestrzeń wokół wizualnych komponentów. Dlatego zrozumienie tych koncepcji jest niezbędne do skutecznego projektowania estetycznych i funkcjonalnych stron internetowych. Właściwe zastosowanie CSS pozwala na tworzenie spójnych wizualnie i przyjaznych dla użytkownika projektów.

Pytanie 17

Przy edytowaniu obrazu w programie graficznym rastrowym należy usunąć kolory z obrazu, aby uzyskać jego wersję w skali szarości. Jaką funkcję można zastosować, aby osiągnąć ten efekt?

A. szumu RGB
B. kadrowania
C. filtru rozmycia
D. desaturacji
Desaturacja to technika używana w edytorach grafiki rastrowej, polegająca na usunięciu kolorów z obrazu, co prowadzi do uzyskania odcieni szarości. Proces ten jest często stosowany w celu podkreślenia formy, tekstury i kontrastu obiektów w grafice, a także w celu poprawy czytelności w przypadku zdjęć i ilustracji, gdzie kolory mogą rozpraszać uwagę. Aby zastosować desaturację, użytkownik może skorzystać z odpowiedniej opcji w menu edytora, co zazwyczaj odbywa się poprzez wybór narzędzia desaturacji lub konwersji na skalę szarości. Dobrą praktyką jest przetestowanie różnych metod desaturacji, ponieważ niektóre programy oferują różne algorytmy, które mogą dawać różne rezultaty. Na przykład, niektóre edytory pozwalają na kontrolę intensywności desaturacji, co daje większą elastyczność w edytowaniu. W kontekście standardów branżowych, desaturacja jest powszechnie używana w grafikach do druku i w mediach cyfrowych, aby poprawić jakość wizualną i komunikacyjną obrazów.

Pytanie 18

Funkcja PHP var_dump() prezentuje dane na temat zmiennej, w tym jej typ oraz wartość. Jakim wynikiem zakończy się poniższy fragment kodu?

$x = 59.85; var_dump($x);
A. array(2) { [0]=> int(59) [1]=> int(85) }
B. int(59)
C. float(59.85)
D. string(5) "59.85"
Wybrane odpowiedzi nie są zgodne z poprawnym wynikiem działania funkcji var_dump() w PHP. Odpowiedź, która sugeruje, że wynik to "int(59)" jest błędna, ponieważ funkcja ta nie konwertuje zmiennoprzecinkowych wartości na liczby całkowite, a 59.85 jest wyraźnie liczbą zmiennoprzecinkową. Inna odpowiedź, sugerująca "string(5) "59.85"", jest myląca, ponieważ zmienna $x została zadeklarowana jako liczba, a nie jako string. PHP automatycznie określa typ zmiennej na podstawie przypisanej wartości, a w tym przypadku jest to typ float. Odpowiedź "array(2) { [0]=> int(59) [1]=> int(85) }" również jest nieprawidłowa, ponieważ nie mamy do czynienia z tablicą, a z pojedynczą zmienną. Przykłady te ilustrują typowe nieporozumienia dotyczące typów danych w PHP. Programiści powinni zrozumieć, że PHP jest dynamicznie typowanym językiem, co oznacza, że typ zmiennej jest określany podczas wykonywania programu, a nie w czasie kompilacji. Właściwe zrozumienie typów danych oraz ich konwersji jest kluczowe dla zapewnienia poprawności i bezpieczeństwa kodu.

Pytanie 19

W trakcie obróbki dźwięku, by wyeliminować niepożądane hałasy wynikające z niskiej jakości mikrofonu, należy użyć narzędzia

A. wyciszenia
B. usuwania szumów
C. obwiedni
D. odgłosów echa
Usuwanie szumów to technika, która jest kluczowa w procesie przetwarzania dźwięku, szczególnie w kontekście nagrań audio i transmisji. Działa na zasadzie identyfikacji i eliminacji niepożądanych dźwięków, takich jak szumy tła, które mogą pochodzić z niskiej jakości mikrofonów lub hałaśliwych środowisk. W praktyce, narzędzia do usuwania szumów analizują dźwięk w czasie rzeczywistym lub podczas edycji i wykorzystują algorytmy, które rozpoznają różnice między pożądanym sygnałem (np. głosem) a szumem. Standardy branżowe, takie jak AES67, podkreślają znaczenie czystości dźwięku w transmisji mediów, co sprawia, że eliminacja szumów staje się kluczowym elementem produkcji audio. Przykładowo, w studio nagraniowym, inżynierowie dźwięku często korzystają z wtyczek do usuwania szumów, aby poprawić jakość nagrań wokalnych. Dzięki tym technikom można osiągnąć klarowność i profesjonalny standard nagrań, co jest niezbędne w przemyśle muzycznym, radiowym czy filmowym.

Pytanie 20

Które znaczniki HTML umożliwiają wyświetlenie tekstu w jednym wierszu na stronie, zakładając brak zdefiniowanego formatu CSS?

Dobre strony m o j e j  s t r o n y
A. <div>Dobre strony </div><div style="letter-spacing:3px">mojej strony</div>
B. <p>Dobre strony </p><p style="letter-spacing:3px">mojej strony</p>
C. <span>Dobre strony </span><span style="letter-spacing:3px">mojej strony</span>
D. <h3>Dobre strony </h3><h3 style="letter-spacing:3px">mojej strony</h3>
Elementy <h3> <p> i <div> są znacznikami HTML które domyślnie zachowują się jako elementy block-level co oznacza że każdy z nich zaczyna się w nowej linii i wprowadza przerwę przed i po sobie. Element <h3> jest używany do oznaczania nagłówków trzeciego poziomu co nadaje mu dodatkowego semantycznego znaczenia w strukturze dokumentu ale nie jest odpowiedni do użycia tam gdzie wymagane jest wyświetlenie tekstu w jednym wierszu. Podobnie <p> jest przeznaczony do oznaczania akapitów tekstu i dlatego również wprowadza przerwy przed i po swoim zawartości. Znacznik <div> jest uniwersalnym kontenerem w HTML używanym do grupowania elementów w celu stylizacji lub manipulacji za pomocą CSS i JavaScript ale także działa jako element block-level. Typowym błędem przy nauce HTML jest niezdawanie sobie sprawy z różnicy między elementami inline i block-level co prowadzi do problemów z układem strony gdy elementy block-level są stosowane tam gdzie potrzebny jest płynny układ w jednym wierszu. Zrozumienie i umiejętność właściwego zastosowania tych znaczników jest kluczowe dla każdej osoby zajmującej się profesjonalnie tworzeniem stron internetowych pozwalając na tworzenie bardziej intuicyjnych i estetycznych interfejsów użytkownika. Właściwe stosowanie elementów inline i block-level jest również istotne w kontekście responsywności i dostępności stron internetowych co ma kluczowe znaczenie we współczesnym środowisku webowym. Umiejętność rozróżniania i stosowania odpowiednich elementów w kodzie HTML jest kluczowym aspektem w tworzeniu wydajnych i semantycznie poprawnych stron internetowych które są zarówno estetyczne jak i funkcjonalne dla szerokiego grona użytkowników i urządzeń.

Pytanie 21

W CSS, co spowoduje poniższy kod z plikiem rysunek.png?

p {background-image: url("rysunek.png");}
A. tłem całej witryny
B. widoczny, jeśli zastosowany zostanie znacznik img w kodzie
C. tłem dla każdego akapitu
D. pokazany obok każdego akapitu
Wybrana odpowiedź jest poprawna ponieważ w arkuszach stylów CSS zastosowanie selektora elementu p z właściwością background-image powoduje że obraz rysunek.png zostanie ustawiony jako tło dla każdego elementu paragrafu na stronie. Jest to przydatna technika gdy chcemy nadać spójny wygląd wszystkim paragrafom w dokumencie. Tło to może być używane do celów estetycznych lub jako część identyfikacji wizualnej strony. Warto pamiętać że w CSS można dodatkowo kontrolować sposób wyświetlania obrazka tła za pomocą właściwości takich jak background-repeat background-size i background-position co pozwala na precyzyjne dostosowanie wyświetlania. Dobre praktyki zalecają aby obrazy tła były odpowiednio zoptymalizowane pod kątem rozmiaru aby nie wpływały negatywnie na szybkość ładowania strony. W praktyce stosowanie obrazów jako tła w paragrafach może wspierać wizualne narracje oraz zwiększać zaangażowanie użytkowników szczególnie gdy są stosowane w przemyślany sposób w kontekście projektowania doświadczeń użytkownika UX.

Pytanie 22

Jak można zmodyfikować nałożone na siebie fragmenty obrazu, nie zmieniając innych elementów?

A. Przycinanie
B. Kanał przezroczystości
C. Wykres histogramu
D. Warstwy
Warstwy są kluczowym elementem w edycji grafiki komputerowej, umożliwiając precyzyjne zarządzanie różnymi elementami obrazu. Dzięki zastosowaniu warstw, użytkownik może na przykład oddzielić tło od obiektów na pierwszym planie, co pozwala na edytowanie jednego z tych elementów bez wpływu na resztę kompozycji. Zastosowanie warstw jest szczególnie przydatne w programach graficznych, takich jak Adobe Photoshop, GIMP czy CorelDRAW, gdzie umożliwia łatwą manipulację oraz efektywną organizację projektu. Dzięki warstwom można również stosować różne efekty i style, takie jak cienie, przezroczystości czy gradienty, co pozwala na stworzenie bardziej złożonych i interesujących grafik. Warto również zauważyć, że korzystanie z warstw jest zgodne z najlepszymi praktykami w branży, jako że sprzyja to lepszej organizacji pracy oraz ułatwia wprowadzanie zmian w projekcie. Uczy to również umiejętności przydatnych w pracy zespołowej, gdzie różne osoby mogą pracować nad różnymi warstwami równocześnie, co zwiększa efektywność i kreatywność procesu twórczego.

Pytanie 23

Warunek zapisany w JavaScript jest prawdziwy, gdy zmienna x przechowuje:

if ((!isNaN(x)) && (x > 0))
A. dowolną dodatnią wartość liczbową.
B. dowolną całkowitą wartość liczbową.
C. pusty napis.
D. napis.
Warunek z zadania jest dobrym przykładem na to, jak JavaScript łączy sprawdzanie typu z logiką biznesową i gdzie często pojawiają się nieporozumienia. Kluczowe są tu dwie rzeczy: funkcja isNaN(x) oraz operator porównania x > 0. isNaN(x) zwraca true, gdy przekazana wartość „nie jest liczbą”, a więc !isNaN(x) oznacza, że x jest liczbą lub może zostać poprawnie zinterpretowane jako liczba. To automatycznie eliminuje typowe napisy, takie jak "abc" czy "test", bo one po konwersji dadzą NaN. Dlatego odpowiedź, że warunek jest prawdziwy dla napisu jako takiego, jest myląca – zwykły string tekstowy nie przejdzie tego filtra. Pusty napis też bywa źródłem zamieszania. W JavaScript isNaN("") zwraca false, bo pusty string jest konwertowany do 0, więc !isNaN("") jest prawdą. Jednak druga część warunku, czyli (x > 0), już nie przejdzie, bo 0 nie jest większe od zera. To pokazuje, że sam fakt „nie bycia NaN” nie wystarcza, potrzebny jest jeszcze sensowny zakres wartości. Częsty błąd polega na tym, że ktoś widzi isNaN i myśli tylko w kategoriach typu, a zapomina o tej części z porównaniem. Kolejny typowy skrót myślowy to przekonanie, że skoro jest sprawdzanie „czy to liczba”, to chodzi o dowolną wartość całkowitą. Tymczasem w warunku nie ma ani słowa o tym, że liczba musi być całkowita – nie ma tu żadnego sprawdzania modulo, parsowania przez parseInt, ani Math.floor. Warunek dopuszcza zarówno 1, jak i 1.5, 3.14 czy 0.0001, byle tylko były większe od zera i nie były NaN. W praktyce w JavaScript takie podejście jest zgodne z tym, jak działa typ number – reprezentuje zarówno liczby całkowite, jak i zmiennoprzecinkowe w jednym typie. Z mojego doświadczenia większość pomyłek przy takich zadaniach wynika z mieszania pojęć „napis, który wygląda jak liczba” z „napis jako tekst” oraz z ignorowania wpływu automatycznej konwersji typów. Dlatego przy projektowaniu walidacji wejścia warto zawsze myśleć o dwóch krokach: najpierw jawnie zamieniamy dane na liczbę, potem dopiero sprawdzamy zakres i warunki biznesowe, zamiast zakładać, że isNaN załatwi wszystko za nas.

Pytanie 24

W tabeli uczniowie (kolumny: imie, nazwisko, klasa) wszyscy uczniowie klas 1-5 przeszli do następnej klasy. Które polecenie zwiększy wartość w kolumnie klasa o 1?

A.
SELECT uczniowie WHERE klasa BETWEEN 1 AND 5
B.
SELECT nazwisko, imie FROM uczniowie
C.
UPDATE uczniowie SET klasa = klasa + 1 WHERE klasa >= 1 AND klasa <= 5
D.
UPDATE nazwisko, imie SET klasa = klasa + 1
Pozostałe zapytania nie zmienią danych lub są błędne składniowo. Oba warianty z SELECT jedynie odczytują wiersze - tym poleceniem nie da się zmodyfikować zawartości tabeli. Czwarta odpowiedź używa wprawdzie UPDATE, ale po nim wpisano nazwy kolumn (nazwisko, imie) zamiast nazwy tabeli, co jest niezgodne ze składnią. Zwiększenie wartości w kolumnie dla wybranych wierszy wykonuje UPDATE uczniowie SET klasa = klasa + 1 WHERE ..., dlatego to ono jest poprawne.

Pytanie 25

Związek między tabelami, osiągany przez bezpośrednie połączenie kluczy głównych obu tabel, nazywamy relacją

A. 1..1
B. n..m
C. 1..n
D. n..1
Zdecydowanie, tu coś poszło nie tak. Wybierając zły wariant, mogłeś nie do końca zrozumieć, jak działają te relacje między danymi. Odpowiedzi 1..n i n..1 to świetne przykłady na to, jak można się pogubić. W relacji 1..n, jeden rekord z tabeli A może mieć wiele rekordów w tabeli B, co już wprowadza zamieszanie, bo w pytaniu mowa była o unikalnych połączeniach. Z kolei n..1 to jakby odwrotność, gdzie wiele rekordów w A jest powiązanych z jednym w B – również nie to, czego szukamy. I jeszcze ta odpowiedź n..m, która dotyczy relacji wiele do wielu – tu to w ogóle wymaga dodatkowych tabel, a to już może skomplikować wszystko. Takie błędy mogą wynikać z braku zrozumienia, jak zbudowane są bazy danych i zasady ich normalizacji. Fajnie byłoby pamiętać, że każda tabela powinna skupiać się na jednym typie encji, bo to naprawdę ułatwia sprawę i unika nieporozumień.

Pytanie 26

Grafik chce przekształcić bez utraty jakości obraz formatu JPEG w format PNG w ten sposób, żeby wszędzie tam, gdzie w pierwotnym obrazie jest kolor biały, w obrazie docelowym była przezroczystość. Aby to zrobić, powinien

A. przekształcić obraz w odcienie szarości.
B. zaimportować obraz do edytora grafiki wektorowej.
C. zmniejszyć rozdzielczość obrazu.
D. dodać kanał alfa.
W tym zadaniu łatwo wpaść w pułapkę myślenia, że cokolwiek zmieniającego obraz „optycznie” przybliży nas do przezroczystości, ale technicznie to tak nie działa. Przezroczystość w grafice rastrowej nie jest związana ani z rozdzielczością, ani z kolorem białym jako takim, tylko z obecnością specjalnego kanału opisującego alfa, czyli krycie. Jeśli obraz nie ma kanału alfa, każdy piksel jest po prostu w pełni nieprzezroczysty, bez względu na to, czy jest biały, czarny czy zielony. Zmniejszenie rozdzielczości wpływa jedynie na liczbę pikseli i szczegółowość obrazu. Można to traktować jako skalowanie w dół, co często powoduje dodatkowe rozmycie i spadek ostrości, ale nie pojawi się od tego żadna przezroczystość. Program nie ma powodu uznać, że po zmniejszeniu rozdzielczości białe piksele nagle staną się „dziurą” w obrazie. To są dalej normalne piksele RGB. Podobnie przekształcenie obrazu w odcienie szarości (grayscale) jedynie zmienia sposób kodowania koloru. Zamiast trzech składowych RGB używamy pojedynczej jasności, ale wciąż każdy piksel jest w pełni kryjący. Odcienie szarości są przydatne w obróbce artystycznej czy przy optymalizacji rozmiaru plików, ale nie mają nic wspólnego z dodaniem kanału alfa ani z wycinaniem tła. Częsty błąd polega na myleniu „białego tła” z przezroczystością – w wielu edytorach białe tło wygląda podobnie do szachownicy symbolizującej alfa, ale technicznie to zupełnie inna rzecz. Z kolei import do edytora grafiki wektorowej sam z siebie nie rozwiązuje problemu. Program wektorowy może co prawda osadzić rastrowy JPEG jako obiekt, ale on dalej pozostaje bitmapą bez kanału alfa. Przezroczystość można wtedy dodać dopiero po konwersji do formatu obsługującego alfa i odpowiedniej edycji. Sam fakt, że pracujemy w środowisku „wektorowym”, nie powoduje magicznego zniknięcia białego tła. Kluczowe jest zrozumienie, że o przezroczystości decyduje struktura danych obrazu (obecność kanału alfa), a nie to, jakiego typu program otworzy plik ani jaką ma on rozdzielczość czy tryb kolorów. Taki sposób myślenia bardzo pomaga przy pracy z grafiką na strony WWW i przy przygotowaniu elementów UI, gdzie przezroczystość jest standardem.

Pytanie 27

W języku C, aby zdefiniować stałą, należy zastosować

A. #INCLUDE
B. static
C. const
D. #const
Wybór innych odpowiedzi wskazuje na pewne nieporozumienia dotyczące podstaw języka C. Użycie słowa kluczowego 'static' nie jest związane z deklarowaniem stałych, lecz określa zasięg oraz czas życia zmiennych. Zmienna zadeklarowana jako 'static' zachowuje swoją wartość pomiędzy wywołaniami funkcji, co jest zupełnie inną koncepcją niż ochrona wartości przed modyfikacją. Z kolei '#const' to niepoprawna składnia, ponieważ w języku C nie istnieje taki preprocesor. Preprocesory, takie jak '#define', są używane do definiowania makr, ale nie do deklarowania stałych. Przykładowo, '#define PI 3.14' tworzy makro, które jest zastępowane w kodzie, ale nie zapewnia typowania zmiennych, co może prowadzić do trudnych do zdiagnozowania błędów. Ostatnia odpowiedź, '#INCLUDE', odnosi się do preprocesora, który jest używany do włączania plików nagłówkowych, a nie do definiowania stałych. Często mylone jest podejście do użycia preprocesorów z możliwością deklarowania stałych, co może prowadzić do nieefektywnego zarządzania kodem i trudności w jego zrozumieniu. Kluczowe jest rozróżnienie tych koncepcji, aby uniknąć typowych błędów myślowych i zapewnić, że kod będzie zarówno funkcjonalny, jak i łatwy do utrzymania.

Pytanie 28

Jaką wartość przyjmie zmienna po wykonaniu poniższego fragmentu kodu w JavaScript?

var w=0;
var i=1;
for (i = 1; i < 50; i++)
{
    if (i%2 == 0)
        w += i;
}
A. suma naturalnych liczb parzystych, które są mniejsze od 50
B. liczbom naturalnym, które są nieparzyste i mniejsze od 50
C. liczbie naturalnych liczb parzystych większych od 50
D. suma wszystkich naturalnych liczb nieparzystych, które są większe od 50
Pozostałe odpowiedzi przedstawiają niepoprawne interpretacje kodu, co często wynika z nieprawidłowego zrozumienia mechanizmów iteracji i warunków w programowaniu. Pierwsza z opcji sugeruje, że kod oblicza sumę nieparzystych liczb większych od 50. Jest to błędne, ponieważ pętla kończy się na i<50, więc żadna liczba większa od 50 nie jest w ogóle brana pod uwagę. Ponadto warunek if w kodzie sprawdza parzystość, a nie nieparzystość. Kolejna koncepcja sugeruje liczenie nieparzystych liczb mniejszych od 50. Choć liczby nieparzyste są brane pod uwagę w iteracji, kod nie posiada mechanizmu ich liczenia, gdyż w instrukcji if sprawdzana jest parzystość, co skutkuje pominięciem operacji na nieparzystych liczbach. Ostania odpowiedź to liczba parzystych większych od 50, co również jest nieprawidłowe z powodu ograniczenia iteracji do i<50 oraz fakt, że kod sumuje wartości, a nie zlicza ich ilość. Zrozumienie kluczowych mechanizmów, takich jak operator modulo i pętle, jest niezbędne do prawidłowej analizy działania algorytmów. Takie błędy są powszechne, gdy nie uwzględnia się dokładnego działania warunków kontrolnych i zakresów iteracji, co jest istotne w kontekście pisania efektywnego i poprawnego kodu programistycznego. Poprawne rozumienie tych koncepcji jest fundamentalne w rozwoju umiejętności programistycznych i zapobiega częstym błędom logicznym w kodzie.

Pytanie 29

Której kwerendy SQL należy użyć, aby utworzyć tabelę samochod z atrybutami marka, model, cena, gdzie marka i model są typu tekstowego, natomiast cena jest liczbą rzeczywistą typu stałoprzecinkowego?

A. CREATE TABLE samochod (marka CHAR(30), model CHAR(30), cena DECIMAL(15,2));
B. CREATE TABLE samochod (marka INT(30), model INT(30), cena DECIMAL(2,15));
C. CREATE TABLE samochod VALUES (marka CHAR(30), model CHAR(30), cena FLOAT);
D. CREATE TABLE samochod VALUES (marka CHAR(30), model CHAR(30), cena DOUBLE);
Poprawna kwerenda używa składni CREATE TABLE z listą kolumn i ich typów danych: CREATE TABLE samochod (marka CHAR(30), model CHAR(30), cena DECIMAL(15,2));. To dokładnie odpowiada treści zadania. Atrybuty marka i model są typu tekstowego, więc zastosowano CHAR(30) – stałej długości łańcuch znaków. W praktyce w wielu projektach częściej używa się VARCHAR zamiast CHAR (bo oszczędza miejsce przy krótszych napisach), ale użycie CHAR(30) jest jak najbardziej poprawne i zgodne ze składnią SQL. Kluczowy jest tu typ ceny. W zadaniu jest mowa o liczbie rzeczywistej typu stałoprzecinkowego, czyli takiej, która przechowuje część ułamkową, ale w sposób dokładny, a nie przybliżony. Do tego właśnie służy DECIMAL(p,s) (lub NUMERIC), gdzie p to precyzja (łączna liczba cyfr), a s to skala (liczba cyfr po przecinku). DECIMAL(15,2) oznacza liczbę z maksymalnie 15 cyframi, z czego 2 po przecinku, czyli świetnie nadaje się np. do przechowywania cen w złotówkach i groszach: 1234567890123,45 mieści się w takim typie. To jest standardowa, dobra praktyka w systemach finansowych, sklepach internetowych, systemach magazynowych itp., bo unikamy błędów zaokrągleń charakterystycznych dla typów zmiennoprzecinkowych jak FLOAT czy DOUBLE. W realnych bazach danych (MySQL, PostgreSQL, SQL Server) kolumny z cenami, stawkami VAT, rabatami procentowymi prawie zawsze definiuje się właśnie jako DECIMAL z odpowiednią skalą, a nie jako typy binarne zmiennoprzecinkowe. Warto też zauważyć, że prawidłowa składnia CREATE TABLE nie używa słowa VALUES przy definiowaniu struktury tabeli – po nazwie tabeli od razu podajemy listę kolumn z typami, tak jak w wybranej odpowiedzi. Taka konstrukcja jest zgodna z SQL-92 i wspierana przez wszystkie popularne systemy bazodanowe.

Pytanie 30

W HTML wprowadzono tag a. Co oznacza wartość nofollow w atrybucie rel?

<a href="http://website.com" rel="nofollow">link</a>
A. oznacza, że kliknięcie na link nie przekieruje do strony website.com
B. oznacza, że naciśnięcie na link spowoduje jego otwarcie w nowej karcie przeglądarki
C. jest wskazówką dla przeglądarki internetowej, aby nie interpretowała słowa 'link' jako hiperłącza
D. jest komunikatem dla robota wyszukiwarki Google, by nie śledził tego linku
Atrybut nofollow w linkach jest bardzo ważny dla tego, jak wyszukiwarki podchodzą do linków na stronach. Wprowadzenie go miało na celu ograniczenie spamu w komentarzach i w miejscach, gdzie autorzy stron nie chcieli, żeby te linki były traktowane jako polecenia. Gdy Google napotyka link z nofollow, to nie przekaże PageRank do strony, do której prowadzi. W praktyce oznacza to, że taki link nie pomoże w pozycjonowaniu tej docelowej strony. To jest super przydatne dla adminów, szczególnie przy linkach w komentarzach czy reklamach, gdzie nie zawsze można sprawdzić jakość tych linków. Dobrze jest stosować nofollow, kiedy link pojawia się automatycznie lub gdy nie jesteśmy pewni jego wartości merytorycznej.

Pytanie 31

Jakiego polecenia SQL należy użyć, aby usunąć z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?

A. DELETE FROM artykuly WHERE tresc LIKE "%sto%";
B. DELETE * FROM artykuly WHERE tresc = "%sto%";
C. DELETE FROM artykuly WHERE tresc = "%sto%";
D. DELETE * FROM artykuly WHERE tresc LIKE "%sto%";
Wszystkie błędne odpowiedzi opierają się na niezrozumieniu podstawowej funkcji operatora DELETE w języku SQL oraz zasad dotyczących dopasowywania wzorców. Przykłady takie jak 'DELETE * FROM artykuly WHERE tresc = "%sto%";' oraz 'DELETE * FROM artykuly WHERE tresc LIKE "%sto%";' zawierają nieprawidłowe użycie składni, które nie jest zgodne z standardem SQL. W SQL nie używa się znaku '*' w poleceniach DELETE, gdyż zapis 'DELETE * FROM' jest poprawny tylko dla zapytań SELECT. W kontekście usuwania danych, należy używać jedynie 'DELETE FROM', co jest wystarczające dla określenia, z jakiej tabeli mają zostać usunięte rekordy. Ponadto, pierwsza błędna odpowiedź zdobija wszystkie potencjalne błędy związane z niepoprawnym użyciem operatora '='. Operator '=' wymaga dokładnego dopasowania, co oznacza, że nie może być stosowany do wyszukiwania wzorców, w przeciwieństwie do operatora LIKE, który umożliwia elastyczne dopasowanie z użyciem znaków wieloznacznych. Typowym błędem jest więc przekonanie, że '=' oraz LIKE mogą być stosowane zamiennie bez uwzględnienia, że '=' nie przyjmuje znaków procentowych. Dlatego kluczowe jest, aby przed użyciem poleceń SQL upewnić się, że rozumie się ich składnię oraz zasady działania, co pozwoli uniknąć wielu pułapek w codziennej pracy z bazami danych.

Pytanie 32

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

A. krzyżowej
B. funkcjonalnej
C. wybierającej
D. parametrycznej
Kwerendy FUNKCJONALNE (modyfikujące) zmieniają zawartość bazy w jednej operacji - aktualizują, usuwają, dodają lub przenoszą wiele rekordów naraz (odpowiadają UPDATE, DELETE, INSERT). Dlatego mowa o kwerendzie funkcjonalnej.

Pytanie 33

W języku PHP zapisano fragment kodu. Plik cookie utworzony przy pomocy tego polecenia

setcookie("osoba", "Anna Kowalska", time()+(3600*24));
A. zostanie usunięty po jednej godzinie od momentu jego utworzenia
B. będzie przechowywany na serwerze przez jedną godzinę
C. zostanie usunięty po 24 godzinach od jego stworzenia
D. będzie przechowywany na serwerze przez 24 godziny
W języku PHP funkcja setcookie służy do ustawiania plików cookie w przeglądarce użytkownika. Trzeci parametr tej funkcji określa czas wygaśnięcia cookie w postaci znacznika czasowego UNIX co oznacza liczbę sekund od początku epoki UNIX (01.01.1970). W podanym kodzie użyto funkcji time która zwraca aktualny czas w sekundach i dodano do niego wartość 3600 pomnożoną przez 24. Oznacza to dodanie liczby sekund odpowiadającej jednemu pełnemu dniu (24 godziny x 3600 sekund na godzinę). Takie ustawienie skutkuje tym że plik cookie zostanie usunięty automatycznie z przeglądarki użytkownika po upływie dokładnie jednego dnia od jego stworzenia. Jest to zgodne z najlepszymi praktykami zarządzania sesjami i danymi użytkowników w aplikacjach internetowych ponieważ pozwala na kontrolę nad czasem przechowywania danych wrażliwych. Dzięki temu użytkownicy mogą być pewni że ich dane nie będą przechowywane dłużej niż to konieczne co wpływa na zwiększenie bezpieczeństwa i zaufania do aplikacji.

Pytanie 34

Które zapytanie SQL zwróci wszystkie kolumny z tabeli produkty?

A.
GET * FROM produkty;
B.
SELECT produkty FROM *;
C.
FETCH * FROM produkty;
D.
SELECT * FROM produkty;
Pozostałe zapisy nie są poprawnym SQL. SELECT produkty FROM * odwraca składnię - po FROM powinna stać tabela, a nie gwiazdka. FETCH i GET nie są poleceniami pobierającymi dane (do odczytu służy SELECT). Wszystkie kolumny zwraca SELECT * FROM produkty;.

Pytanie 35

Czego wymaga uruchomienie kodu JavaScript w przeglądarce?

A. zamiany na kod maszynowy przez programistę
B. interpretowania
C. kompilowania
D. debugowania
JavaScript nie wymaga ręcznej kompilacji ani zamiany na kod maszynowy przez programistę - robi to silnik przeglądarki w locie. Debugowanie służy do szukania błędów, a nie do uruchamiania kodu. Uruchomienie JS opiera się na interpretowaniu.

Pytanie 36

Jaką treść komunikatu należy umieścić w kodzie PHP zamiast znaków zapytania?

$a = mysql_connect('localhost', 'adam', 'mojeHaslo');

if (!$a)
    echo "?????????????";
A. Błąd połączenia z serwerem SQL
B. Błąd w trakcie przetwarzania zapytania SQL
C. Wybrana baza danych nie istnieje
D. Rekord został pomyślnie dodany do bazy
Poprawna odpowiedź 'Błąd połączenia z serwerem SQL' jest właściwa, ponieważ funkcja mysql_connect() służy do nawiązywania połączenia z serwerem bazy danych MySQL. Jeśli połączenie nie powiedzie się, zwraca false. W takiej sytuacji należy poinformować użytkownika o nieudanym połączeniu. Jest to kluczowe w debugowaniu i zapewnianiu użytkownikowi zrozumiałych komunikatów błędów. W praktyce, połączenie z bazą danych jest podstawowym krokiem w wielu aplikacjach internetowych, a jego poprawna obsługa to standardowa praktyka branżowa. Współczesne podejście wymaga także użycia rozszerzenia mysqli lub PDO zamiast przestarzałej funkcji mysql_connect(). Jest to zalecane ze względu na lepsze wsparcie bezpieczeństwa i wydajności. Użycie funkcji mysqli_connect() pozwala na obsługę zarówno błędów połączenia, jak i zapytań SQL w sposób bardziej elastyczny i bezpieczny.

Pytanie 37

Jak nazywa się platforma wspierająca tworzenie oprogramowania w technologii .NET?

A. middleware
B. db2
C. eclipse
D. framework
Platforma wspierająca tworzenie oprogramowania, dostarczająca gotowy zestaw bibliotek i strukturę (jak .NET Framework), nazywa się framework. Dlatego tą platformą jest framework.

Pytanie 38

W SQL polecenie INSERT INTO służy do

A. tworzenia nowej tabeli
B. wprowadzania nowych pól do tabeli
C. dodawania danych do tabeli
D. zmiany rekordów na wskazaną wartość
Wprowadzenie do polecenia INSERT INTO często prowadzi do nieporozumień, szczególnie w kontekście funkcji, jakie pełni w SQL. Nieodpowiednie rozumienie tego polecenia może skutkować błędami w projektowaniu baz danych oraz w wykonywaniu operacji na danych. Na przykład, stwierdzenie, że INSERT INTO aktualizuje rekordy, jest nieprecyzyjne. W rzeczywistości, do aktualizacji istniejących danych używa się polecenia UPDATE, które zmienia wartości w określonych rekordach na podstawie podanych kryteriów. Ponadto, w SQL nie można dodawać nowych pól do tabeli za pomocą INSERT INTO; do tego służy polecenie ALTER TABLE. To ostatnie jest niezbędne, gdyż pozwala na modyfikację struktury tabeli, co jest kluczowe w przypadku zmieniających się wymagań aplikacji. Podobnie, stwierdzenie, że INSERT INTO dodaje tabelę, jest również błędne, ponieważ do tego używa się polecenia CREATE TABLE. Ważne jest, aby zrozumieć, że różne polecenia SQL mają swoje specyficzne zastosowania i nie można ich ze sobą mylić. Typowe błędy myślowe w tym zakresie mogą wynikać z nieznajomości języka SQL lub z braku zrozumienia różnicy pomiędzy operacjami na danych a operacjami na strukturze bazy danych. Zrozumienie tych podstawowych różnic jest kluczowe dla efektywnego zarządzania danymi oraz dla poprawnego projektowania baz danych.

Pytanie 39

Jakie skutki wywoła poniższy fragment kodu w języku JavaScript?

n = "Napis1"; s = n.length;
A. Wyświetli liczbę znaków napisu z zmiennej n
B. Przypisze wartość zmiennej n do zmiennej s
C. Przypisze zmiennej s część napisu ze zmiennej n o długości określonej przez zmienną length
D. Przypisze zmiennej s wartość odpowiadającą długości tekstu w zmiennej n
Fragment skryptu w języku JavaScript, w którym zmienna n jest przypisana do napisu "Napis1", a następnie zmienna s jest przypisana do długości tego napisu, korzysta z właściwości length. Odpowiedź 3 jest poprawna, ponieważ właściwość length dla obiektów typu string zwraca liczbę znaków w danym napisie. W tym przypadku "Napis1" ma 6 znaków, więc zmienna s przyjmie wartość 6. Tego typu operacje są powszechnie stosowane w programowaniu do manipulacji i analizy danych tekstowych, co jest istotnym aspektem tworzenia aplikacji webowych. W praktyce, programiści często muszą sprawdzać długość napisów, aby weryfikować dane wejściowe, przygotowywać napisy do dalszego przetwarzania lub dostosowywać interfejs użytkownika. Dobrym przykładem zastosowania length jest walidacja formularzy, gdzie długość wprowadzonego tekstu musi spełniać określone kryteria, np. minimalną lub maksymalną liczbę znaków. Warto zaznaczyć, że zgodnie ze standardami ECMAScript, wszystkie napisy w JavaScript mają tę właściwość, co czyni ją niezwykle użyteczną w codziennej pracy programisty.

Pytanie 40

Jak nazywa się metoda sortowania polegająca na podziale danych na n równych przedziałów (kubełków), posortowaniu ich i scaleniu?

A. sortowanie szybkie
B. sortowanie kubełkowe
C. sortowanie przez wybór
D. sortowanie bąbelkowe
Pozostałe metody działają inaczej. Sortowanie szybkie (quicksort) dzieli dane wokół elementu osiowego, bąbelkowe wielokrotnie zamienia sąsiednie elementy, a przez wybór szuka w każdym kroku najmniejszego elementu. Podział na przedziały-kubełki i ich scalanie to sortowanie kubełkowe.