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: 30 kwietnia 2026 11:54
  • Data zakończenia: 30 kwietnia 2026 11:55

Egzamin niezdany

Wynik: 15/40 punktów (37,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

Podaj słowo kluczowe w języku C++, które umieszczane przed wbudowanym typem danych, umożliwia przyjmowanie jedynie nieujemnych wartości liczbowych?

A. long
B. short
C. unsigned
D. const
Słowo kluczowe 'unsigned' w języku C++ jest używane do deklaracji zmiennych, które będą przechowywać tylko wartości nieujemne. Oznacza to, że zmienna zadeklarowana jako 'unsigned int' będzie miała zakres od 0 do 4 294 967 295 (dla 32-bitowej reprezentacji), co podwaja maksymalną wartość w porównaniu do standardowego 'int', który może przyjmować wartości od -2 147 483 648 do 2 147 483 647. Zastosowanie 'unsigned' jest szczególnie przydatne w sytuacjach, gdzie negatywne wartości nie mają sensu, jak w przypadku liczników, indeksów tablic czy operacji na bitach. Przykład zastosowania: w pętli for, gdy iterujemy przez elementy tablicy, możemy użyć 'unsigned int' dla indeksu, aby upewnić się, że nie przyjmiemy błędnej wartości indeksu, co mogłoby prowadzić do nieprzewidzianych błędów. W praktyce, stosowanie 'unsigned' wspiera bezpieczeństwo i integralność danych, a także zwiększa zakres wartości, które można przechowywać.

Pytanie 2

W języku PHP, aby wyeliminować białe znaki na początku i końcu łańcucha znaków, należy zastosować funkcję

A. sort( )
B. trim( )
C. strlen( )
D. time( )
Zastosowanie funkcji time() w PHP jest całkowicie nieodpowiednie w kontekście usuwania spacji z ciągów znaków. Funkcja ta jest używana do uzyskiwania aktualnego czasu w formacie timestamp, co nie ma żadnego związku z manipulacją tekstem. Próbując użyć time() do operacji na ciągach, można natknąć się na błędy, ponieważ funkcja ta nie zwraca wartości typu string, co sprawia, że nie ma sensu w kontekście oczekiwanego wyniku. Ponadto, sort() jest funkcją przeznaczoną do porządkowania tablic, a nie do przetwarzania ciągów tekstowych, dlatego nie jest w stanie usunąć białych znaków. Jej użycie w tym kontekście może prowadzić do nieporozumień i błędów logicznych w kodzie. Z kolei funkcja strlen() służy do obliczania długości ciągu znaków, co również nie ma nic wspólnego z usuwaniem spacji. To typowy błąd myślowy, gdzie użytkownicy błędnie zakładają, że funkcje, które operują na danych o innej naturze (jak długość czy porządek), mogą być zastosowane do manipulacji tekstem. Właściwe podejście do przetwarzania danych wejściowych powinno obejmować znajomość odpowiednich funkcji oraz ich zastosowań w praktyce, co jest kluczowe w programowaniu w PHP i innych językach.

Pytanie 3

Jaki jest efekt wielokrotnego wykonywania kodu PHP?

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

Pytanie 4

W CSS zapisany w ten sposób:

p { background-image: url("rysunek.png"); }

spowoduje, że rysunek.png stanie się

A. wyświetlony, jeśli w kodzie użyty zostanie znacznik img
B. widoczny obok każdego akapitu
C. tłem całej witryny
D. tłem każdego akapitu
Zapis CSS p { background-image: url("rysunek.png"); } oznacza, że dla każdego elementu akapitowego <p> w dokumencie zostanie ustawione tło w postaci grafiki o nazwie rysunek.png. Ta reguła selektora p dotyczy wyłącznie znaczników akapitu, więc nie wpłynie na inne elementy strony, takie jak body czy img. Tak się to stosuje w praktyce: projektując na przykład bloga, możesz dodać delikatny deseń lub obrazek w tle akapitu, żeby całość wyglądała ciekawiej albo podkreślała styl witryny. Co ciekawe, background-image w CSS pozwala na olbrzymią elastyczność — możesz wykorzystać obrazy, gradienty czy nawet SVG jako tło. Standardy CSS jasno to definiują: background-image działa zawsze na tym elemencie, dla którego zadeklarowano regułę w selektorze. Warto pamiętać, że tło nie przesłoni tekstu w akapicie, tylko się pod nim wyświetli, więc czytelność jest zachowana. Z własnego doświadczenia uważam, że umiejętność stosowania background-image do konkretnych elementów to jedno z podstawowych narzędzi webdevelopera — pozwala przygotować naprawdę estetyczne i przejrzyste layouty. Dobrym nawykiem jest także testowanie widoczności tła na różnych urządzeniach, bo rozdzielczości i skalowanie potrafią zaskoczyć. Dla porządku, jeśli podasz background-image bez żadnych dodatkowych parametrów (jak powtarzanie czy pozycjonowanie), obrazek domyślnie będzie się powtarzał w poziomie i pionie, aż pokryje cały akapit.

Pytanie 5

Który składnik języka HTML jest niezbędny, aby uniknąć błędu w walidacji HTML5?

A. <body>
B. <meta name="author" content="....">
C. przynajmniej jednego <h1>
D. prologu <!DOCTYPE html>
Prolog <!DOCTYPE html> jest kluczowym elementem każdego dokumentu HTML5, który definiuje typ dokumentu i jego wersję. Jego obecność umożliwia przeglądarkom internetowym prawidłowe interpretowanie i renderowanie treści strony. Bez tego prologu przeglądarka nie ma informacji o tym, że strona powinna być interpretowana jako dokument HTML5, co może prowadzić do nieprzewidywalnych wyników w renderowaniu i działaniu strony. W praktyce, dodanie <!DOCTYPE html> na początku dokumentu HTML jest fundamentalnym krokiem, który powinien być zawsze przestrzegany. Standardy W3C jasno określają, że prolog jest niezbędny, aby zapewnić zgodność z HTML5 i uniknąć błędów walidacji. Na przykład, jeśli zapomnimy o tym elemencie, nasza strona może nie wyświetlać się poprawnie w różnych przeglądarkach, co z kolei wpłynie na doświadczenia użytkowników oraz pozycjonowanie strony w wyszukiwarkach. Dlatego każdy programista powinien traktować <!DOCTYPE html> jako nieodłączny element kodu HTML, zapewniając tym samym stabilność i spójność prezentowanej treści.

Pytanie 6

W jakim standardzie języka hipertekstowego wprowadzono do składni znaczniki sekcji <footer>, <header>, <nav>?

A. HTML5
B. HTML4
C. XHTML1.0
D. XHTML 2.0
HTML5 wprowadził nowe znaczniki semantyczne, takie jak <header>, <footer> oraz <nav>, które mają na celu poprawę struktury i czytelności kodu HTML. Te znaczniki pozwalają na lepsze określenie ról poszczególnych części dokumentu, co jest istotne zarówno dla programistów, jak i dla wyszukiwarek internetowych oraz oprogramowania asystującego. Przykładowo, znacznik <header> zazwyczaj zawiera nagłówki i metadane, podczas gdy <footer> jest przeznaczony na informacje końcowe, takie jak prawa autorskie czy linki do polityki prywatności. Z kolei <nav> wskazuje sekcję nawigacyjną, co ułatwia użytkownikom poruszanie się po stronie. Użycie tych znaczników zgodnie z ich zamierzonymi funkcjami poprawia semantykę dokumentu HTML5, co jest zgodne z najlepszymi praktykami w zakresie SEO i dostępności. Warto również zauważyć, że HTML5 wprowadza inne elementy, takie jak <article> czy <section>, które dodatkowo wspierają tworzenie dobrze zorganizowanej i zrozumiałej struktury dokumentu. W związku z tym, stosowanie nowych znaczników w HTML5 jest niezwykle korzystne zarówno dla twórców, jak i dla użytkowników stron internetowych.

Pytanie 7

Aby w języku HTML uzyskać formatowanie paragrafu przedstawione w ramce, należy zastosować kod

Ilustracja do pytania
A. <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>
B. <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny dla autora</p>
C. <p>Tekst może być <mark>zaznaczony albo <em>istotny</em> dla autora</mark></p>
D. <p>Tekst może być <mark>zaznaczony albo <i>istotny</i> dla autora</mark></p>
Poprawnie wybrałeś kod z poprawnie zagnieżdżonymi i domkniętymi znacznikami: <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>. To dokładnie odpowiada temu, co widać na podglądzie: zwykły akapit, w nim jedno słowo podświetlone na żółto oraz inne wyróżnione kursywą. Znacznik <p> tworzy paragraf – podstawowy blok tekstu w HTML. W środku używasz elementów liniowych (inline): <mark> do zaznaczenia fragmentu tekstu jak zakreślaczem oraz <em> do zaznaczenia treści istotnej znaczeniowo, co domyślnie jest renderowane jako kursywa. Według specyfikacji HTML5 <mark> służy do semantycznego wyróżnienia tekstu związanego z kontekstem, np. wynik wyszukiwania na stronie czy aktualnie ważna informacja. <em> natomiast podkreśla akcent logiczny w zdaniu, a nie tylko ozdobne pochylenie, co jest dobrą praktyką dostępnościową. Ważne jest też poprawne zagnieżdżanie: najpierw otwierasz <mark>, potem go zamykasz </mark>, dopiero później otwierasz <em> i zamykasz </em>. Żaden z tych znaczników nie nachodzi na siebie w sposób krzyżowy. Tego pilnują walidatory W3C i warto się do tego przyzwyczaić od początku. W codziennej pracy taki kod możesz wykorzystać np. w artykułach, dokumentacji technicznej, materiałach szkoleniowych, gdzie chcesz: zakreślić słowo kluczowe (<mark>) i jednocześnie podkreślić termin ważny dla autora lub kontekstu (<em>). Moim zdaniem lepiej stosować <em> zamiast <i>, bo <em> niesie znaczenie semantyczne i czytniki ekranu potrafią je zinterpretować, co poprawia dostępność strony.

Pytanie 8

W bazach danych typ DECIMAL jest przeznaczony do przechowywania

A. liczb rzeczywistych stałoprzecinkowych.
B. danych napisowych o określonej długości.
C. liczb zapisanych w systemie binarnym.
D. liczb rzeczywistych zmiennoprzecinkowych.
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 9

Rozmiar grafiki JPEG zamieszczonej na stronie www może wpływać na

A. szybsze sprawdzanie linków.
B. czas ładowania strony.
C. błędy w składni HTML.
D. zgodność z systemem Windows.
Wielkość grafiki JPEG umieszczonej na stronie internetowej ma istotny wpływ na długość czasu ładowania strony. Gdy obraz jest zbyt duży, wymaga większej ilości danych do pobrania, co wydłuża czas, który użytkownik musi czekać na wyświetlenie zawartości. Optymalizacja grafik jest więc kluczowym aspektem projektowania stron internetowych. W praktyce, kompresja zdjęć przed ich załadowaniem na stronę, na przykład przy użyciu narzędzi takich jak ImageOptim lub TinyPNG, może znacząco zmniejszyć rozmiar pliku bez widocznej utraty jakości. Zgodnie z wytycznymi Google PageSpeed Insights, obrazy powinny być odpowiednio dostosowane do wymagań dotyczących jakości i rozmiaru. Sprawne zarządzanie grafiką może poprawić współczynnik konwersji oraz zredukować współczynnik odrzuceń, co jest kluczowe dla sukcesu witryny. Prędkość ładowania strony ma również znaczenie dla SEO, ponieważ wyszukiwarki preferują strony, które ładują się szybko, co wpływa na pozycjonowanie. Dlatego odpowiednia optymalizacja obrazów JPEG jest niezbędna dla każdej witryny internetowej, aby zapewnić pozytywne doświadczenia użytkowników oraz dobre wyniki w rankingach wyszukiwarek.

Pytanie 10

Co wykonuje poniższy fragment kodu w JavaScript?

n = "Napis1";
s = n.length;
A. Wyświetli długość tekstu ze zmiennej n
B. Przypisze zmiennej s fragment tekstu ze zmiennej n, o długości określonej przez zmienną length
C. Przypisze zmiennej s wartość, która odpowiada długości tekstu ze zmiennej n
D. Przypisze zmienną n do zmiennej s
Analizując błędne odpowiedzi można zauważyć kilka typowych nieporozumień związanych z właściwością length w JavaScript. Pierwszym z nich jest mylne założenie że length służy do wycinania fragmentu napisu co sugeruje odpowiedź o przypisaniu zmiennej s fragmentu napisu. W rzeczywistości length to właściwość która zwraca liczbę elementów w stringu a nie jego część. Aby wyciąć fragment stringa należy użyć metod takich jak slice lub substring które są przeznaczone do tego celu. Kolejne nieporozumienie polega na traktowaniu length jako funkcji która wyświetla długość napisu. Właściwość length po prostu zwraca wartość dlatego jeśli chcemy ją wyświetlić musimy użyć dodatkowych konstrukcji takich jak console.log w środowisku programistycznym przeglądarki. Następne potencjalne nieporozumienie związane jest z przypisaniem zmiennej n do zmiennej s. Bezpośrednie przypisanie całego stringa do innej zmiennej wymagałoby użycia operatora przypisania (=) bez kontekstu length. Takie błędne rozumowanie często wynika z nieuwagi lub braku doświadczenia w pracy z właściwościami obiektów w JavaScript. Programując w tym języku warto pamiętać że każda właściwość i metoda ma swoje konkretne zastosowanie i przeznaczenie stąd znajomość ich specyfiki jest kluczowa dla efektywnego kodowania. Dzięki tej wiedzy programista może unikać typowych pułapek i optymalizować procesy przetwarzania danych co jest szczególnie istotne w kontekście aplikacji webowych rozwijanych w JavaScript.

Pytanie 11

Co robi funkcja napisana w języku JavaScript?

function fun1(f)
{
  if(f < 0)
    f = f * (-1);
  return f;
}
A. zwrócenie wartości odwrotnej do f
B. zwrócenie wartości bezwzględnej z f
C. wypisanie wartości odwrotnej do f
D. wypisanie wartości bezwzględnej z f
Funkcja, którą podałeś w JavaScript, ma za zadanie zwrócić wartość bezwzględną z podanego argumentu f. Sprawdza, czy f jest mniejsze od zera, a jeśli tak, to mnoży je przez -1, co w praktyce oznacza, że zmienia znak liczby na dodatni. Jeśli wartość jest już dodatnia, to nic się nie dzieje. To wszystko jest zgodne z tym, jak definiujemy wartość bezwzględną, bo ta zawsze jest równa lub większa od zera. Z mojego doświadczenia, wartości bezwzględne są przydatne w różnych dziedzinach, jak matematyka czy analiza danych, gdzie zależy nam na wartościach liczbowych bez względu na to, czy są dodatnie, czy ujemne. Warto też wspomnieć, że JavaScript ma wbudowaną funkcję Math.abs(), która robi to samo i jest to naprawdę dobry wybór, bo ułatwia zrozumienie kodu i zmniejsza ryzyko błędów. Tworzenie takiej funkcji, jak w Twoim zadaniu, to świetny sposób na lepsze poznanie działania języka i manipulowania danymi.

Pytanie 12

W firmowej tabeli znajdują się kolumny: nazwa, adres, NIP, obrót (obrót w ostatnim miesiącu), rozliczenie oraz status. Po wykonaniu kwerendy SQL

SELECT nazwa, NIP FROM firmy WHERE obrot < 4000;
na ekranie pojawią się:
A. tylko nazwa oraz numer NIP firm, które w ostatnim miesiącu miały obrót co najmniej 4000 zł
B. tylko nazwa oraz numer NIP firm, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł
C. wszystkie informacje o firmach, które w ostatnim miesiącu uzyskały obrót co najmniej 4000 zł
D. wszystkie informacje o firmach, które w ostatnim miesiącu miały obrót poniżej 4000 zł
Fajnie, że chcesz zrozumieć zapytania SQL, ale wiele z niepoprawnych odpowiedzi nie ogarniło, o co w tym wszystkim chodzi. Niektóre z nich myślały, że to zapytanie zwróci wszystkie dane o firmach, a nie tylko ich nazwy i NIP-y. Warto pamiętać, że kwerendy SQL są pisane tak, żeby wybierać określone kolumny. W tym przypadku widzimy tylko 'nazwa' i 'NIP'. Inne błędne odpowiedzi pomyliły się, twierdząc, że zapytanie da nam firmy z obrotem co najmniej 4000 zł, zapominając o tym, że 'WHERE obrót < 4000' ma kluczowe znaczenie, bo tylko te firmy, co miały obrót poniżej tej kwoty, będą w wyniku. Zrozumienie tego jest super ważne, jeśli chcesz mądrze pisać zapytania i analizować dane.

Pytanie 13

W algorytmie jeden z bloków zawiera akcję „Wypisz liczbę”. Jaki kształt może mieć ta akcja?

Ilustracja do pytania
A. Kształt 4
B. Kształt 1
C. Kształt 3
D. Kształt 2
Kształt 1 jest równoległobokiem, który w kontekście algorytmów często reprezentuje operacje wprowadzania lub wyprowadzania danych. W algorytmach i schematach blokowych, różne kształty mają przypisane konkretne funkcje, co jest standardem w projektowaniu programów. Równoległobok jest standardowym symbolem dla operacji wejścia i wyjścia, w tym wypisywania danych na ekranie. Przykładem zastosowania tego może być wypisywanie wyników obliczeń matematycznych na konsoli w językach takich jak Python czy Java. Używanie odpowiednich kształtów pozwala na łatwiejsze zrozumienie działania algorytmu przez innych programistów, co jest kluczowe w pracy zespołowej i podczas dokumentacji projektowej. Dobre praktyki w programowaniu zalecają jasność i przejrzystość schematów blokowych, co ułatwia ich późniejsze utrzymanie i rozwój. Szukając standardów, warto odnieść się do norm ISO/IEC 19515:2017 dotyczących diagramów przepływu pracy, które podkreślają znaczenie konwencji w projektowaniu algorytmów.

Pytanie 14

Znacznik <ins> w języku HTML jest używany do wskazania

A. tekstu, który został usunięty
B. tekstu o zmienionym formacie
C. tekstu, który został dodany
D. cytowanego fragmentu tekstu
Odpowiedzi dotyczące oznaczania cytowanego bloku tekstu, tekstu przeformatowanego oraz tekstu, który został usunięty, nie są poprawne w kontekście znacznika <ins>. Znacznik używany do cytowania tekstu to <blockquote>, który służy do wyodrębnienia dłuższych cytatów, zazwyczaj z innymi źródłami. Z kolei do oznaczania tekstu, który został usunięty, stosuje się znacznik <del>, który wskazuje na treść, która została usunięta z dokumentu, co jest sprzeczne z funkcją <ins>. Oznaczenie tekstu przeformatowanego nie ma związku z tagiem, ponieważ nie ma on bezpośredniego związku z formatowaniem; formatowanie tekstu odbywa się przy użyciu znaczników takich jak <strong> lub <em>, które nadają różne style wizualne, ale nie zmieniają semantyki tekstu. W związku z tym, wszystkie te niepoprawne odpowiedzi dotyczą różnych aspektów zarządzania treścią w HTML, ale nie są związane z oznaczaniem tekstu dodanego, co jest kluczowym zastosowaniem znacznika <ins>. Zrozumienie różnic między tymi znacznikami jest istotne, aby poprawnie stosować HTML w praktyce oraz zapewniać jasność i dostępność treści w sieci.

Pytanie 15

Który z poniższych kodów HTML odpowiada przedstawionej tabeli? Dla uproszczenia pominięto zapis dotyczący stylu obramowania tabeli oraz komórek?

Ilustracja do pytania
A. Rys. A
B. Rys. B
C. Rys. C
D. Rys. D
Poprawna odpowiedź to Rys. B ponieważ wykorzystuje atrybut rowspan="2" który łączy dwie komórki w pierwszej kolumnie w jeden wiersz Koncepcja rowspan umożliwia efektywne zarządzanie strukturą danych w tabeli HTML pozwalając na oszczędność miejsca i uniknięcie zduplikowanych komórek W praktyce rowspan jest niezwykle przydatny w projektach gdzie dane muszą być prezentowane w sposób zorganizowany i czytelny Dobre zrozumienie tego atrybutu jest kluczowe w tworzeniu responsywnych i estetycznych stron internetowych Zastosowanie rowspan zgodne jest ze standardami W3C co czyni kod bardziej zgodnym z wieloma przeglądarkami i urządzeniami Warto również pamiętać że prawidłowe użycie atrybutów takich jak rowspan poprawia dostępność strony co jest ważnym aspektem współczesnego projektowania stron internetowych Wiedza o tym jak zarządzać strukturą tabel i używać odpowiednich atrybutów wpływa na lepsze doświadczenie użytkownika Jest to również istotne w kontekście SEO gdyż poprawna semantyka HTML może wpłynąć na lepsze indeksowanie witryny przez wyszukiwarki

Pytanie 16

Celem testów związanych ze skalowalnością oprogramowania jest ocena, czy aplikacja

A. potrafi funkcjonować przy założonym i wyższym obciążeniu
B. jest właściwie udokumentowana
C. jest chroniona przed nieautoryzowanymi operacjami, np. dzieleniem przez zero
D. posiada odpowiednią funkcjonalność
Twoja odpowiedź o zdolności aplikacji do działania przy dużym obciążeniu to bardzo ważny temat w testach skalowalności. W skrócie, chodzi o to, jak system radzi sobie, gdy użytkowników lub operacji przybywa. To kluczowe, bo przecież każdy z nas nie lubi, gdy aplikacja się zacina, prawda? Przykładowo, testy obciążeniowe symulują sytuację, kiedy jest dużo jednoczesnych użytkowników, żeby sprawdzić, czy wszystko działa jak należy. Dobrze jest też monitorować, jak aplikacja się sprawuje w trakcie takich testów i analizować, gdzie mogą być wąskie gardła. Z moim doświadczeniem, zrozumienie tych rzeczy jest niezbędne do utrzymania dobrej jakości usług. Można też spojrzeć na standardy, takie jak ISO/IEC 25010, które podkreślają, jak ważna jest jakość oprogramowania, w tym jego zdolność do skalowania. To sprawia, że twoja odpowiedź ma duże znaczenie!

Pytanie 17

Wskaź na właściwą sekwencję tworzenia aplikacji?

A. Specyfikacja wymagań, analiza potrzeb klienta, tworzenie, wdrażanie, testowanie
B. Analiza potrzeb klienta, specyfikacja wymagań, tworzenie, testowanie, wdrażanie
C. Tworzenie, analiza potrzeb klienta, specyfikacja wymagań, wdrażanie, testowanie
D. Analiza potrzeb klienta, specyfikacja wymagań, tworzenie, wdrażanie, testowanie
Nieprawidłowe odpowiedzi w kwestii kolejności tworzenia aplikacji bazują na błędnych założeniach dotyczących etapów procesu. W pierwszej z tych odpowiedzi, pominięcie analizy wymagań klienta na rzecz specyfikacji powoduje, że projekt może nie spełniać oczekiwań użytkowników, co prowadzi do nieefektywnego wykorzystania zasobów oraz czasu. Specyfikacja wymagań musi być tworzona na podstawie dokładnej analizy potrzeb, a nie odwrotnie. Kolejna odpowiedź zaczyna się od tworzenia aplikacji bez wcześniejszej analizy i specyfikacji, co jest nie tylko technicznie błędne, ale również wiąże się z ogromnym ryzykiem powstawania błędów w kodzie i funkcjonalności, które nie odpowiadają na realne potrzeby użytkowników. W ostatnim przypadku, pomimo że analiza wymagań oraz specyfikacja są na początku, przed wdrożeniem powinny być przeprowadzone testy, aby upewnić się, że produkt działa zgodnie z oczekiwaniami. Etap testowania jest niezbędny przed wdrożeniem, ponieważ pozwala na identyfikację i naprawę błędów, co jest kluczowe dla osiągnięcia wysokiej jakości końcowego produktu. Wszelkie zmiany w tej kolejności mogą prowadzić do kosztownych błędów oraz niezadowolenia użytkowników.

Pytanie 18

Która z komórek tabeli została sformatowana przedstawionym stylem CSS zakładając, że pozostałe własności przyjmują wartości domyślne?

td {
  border: 1px solid black;
  padding: 15px;
  height: 40px;
  vertical-align: bottom;
}
dane w tabeli


dane w tabelidane w tabelidane w tabeli
Komórka 1Komórka 2Komórka 3Komórka 4
A. Komórka 3.
B. Komórka 2.
C. Komórka 4.
D. Komórka 1.
Niestety, ta odpowiedź jest nieprawidłowa. Wybór jakiejkolwiek innej komórki oprócz komórki 3. oznacza niezrozumienie, jak działają style CSS w kontekście formatowania komórek tabeli. Obramowanie, padding, wysokość i wyrównanie tekstu to atrybuty CSS, które wpływają na wygląd komórki tabeli. Często błędem jest mylenie paddingu (wewnętrznego marginesu) z marginesem (zewnętrznym marginesem) lub niezrozumienie, jak działa wyrównanie tekstu. Warto pamiętać, że w CSS 'vertical-align: bottom' oznacza wyrównanie tekstu do dolnej krawędzi komórki. Wybór innej komórki, która nie spełnia podanych kryteriów, sugeruje, że nie zrozumiałeś prawidłowo tych konceptów. Radzę powtórzyć materiał dotyczący stylizacji komórek tabeli w CSS i spróbować ponownie. Pamiętaj, że kluczem do zrozumienia CSS jest praktyka, więc nie bój się eksperymentować z różnymi stylami!

Pytanie 19

Jak nazywa się edytor, który wspiera proces tworzenia stron internetowych i którego działanie można opisać w polskim tłumaczeniu jako "otrzymujesz to, co widzisz"?

A. WEB STUDIO
B. WYSIWYG
C. VISUAL EDITOR
D. IDE
IDE, czyli zintegrowane środowisko programistyczne, to narzędzie, które wspomaga programistów w pisaniu kodu, debugowaniu i kompilacji aplikacji. IDE oferuje zaawansowane funkcje, takie jak podpowiedzi składni, integracja z systemami kontroli wersji oraz narzędzia do analizy kodu, jednak nie jest to narzędzie WYSIWYG. Głównym celem IDE jest ułatwienie pracy programistom, a nie wizualne projektowanie stron internetowych. WEB STUDIO to termin ogólny, który może odnosić się do różnych platform i narzędzi do tworzenia stron internetowych, ale nie jest on powszechnie uznawany za standardowy termin w branży. Nie ma on jednoznacznego znaczenia i nie wskazuje na edytor WYSIWYG, co wprowadza w błąd. VISUAL EDITOR, mimo że brzmi podobnie, także nie jest konkretnym terminem odnoszącym się do edytora WYSIWYG. Może być używany w różnych kontekstach, aby opisać edytory wizualne, jednak nie ma takiej samej rozpoznawalności jak termin WYSIWYG, co prowadzi do nieporozumień. W podsumowaniu, IDE, WEB STUDIO oraz VISUAL EDITOR nie oddają w pełni funkcji edytora WYSIWYG, który jest dedykowany do kreacji stron internetowych w sposób wizualny.

Pytanie 20

Kolorem, który ma odcień niebieski, jest kolor

A. #00EE00
B. #EE00EE
C. #EE0000
D. #0000EE
Odpowiedzi takie jak #EE0000, #00EE00 oraz #EE00EE wskazują na inne kolory, które nie są związane z odcieniem niebieskim. #EE0000 odpowiada czerwieni, co można zrozumieć analizując jego składowe: wysoka wartość czerwonej (EE) w połączeniu z zerowymi wartościami zielonej i niebieskiej. Czerwień jest często używana do przyciągania uwagi, jednak w kontekście pytań o kolor niebieski, jest to nieadekwatny wybór. Z kolei #00EE00 reprezentuje zielony, gdzie składowa zielona ma wysoką intensywność, a czerwona i niebieska są nieobecne, co nie ma związku z poszukiwanym kolorem. Ostatnia odpowiedź, #EE00EE, przedstawia różowy, co wynika z wysokiej wartości zarówno czerwonej, jak i niebieskiej, a braku zielonej. Dobrą praktyką w zakresie wyboru kolorów jest zrozumienie ich znaczenia oraz zastosowania w konkretnej dziedzinie, co ma kluczowe znaczenie w kontekście projektowania graficznego czy brandingowego. Niezrozumienie podstawowych zasad definiowania kolorów w formacie RGB może prowadzić do nieprawidłowych wyborów kolorystycznych, które z kolei mogą wpływać na percepcję marki czy funkcjonalność aplikacji. Dlatego ważne jest, aby zrozumieć, jakie wartości szesnastkowe odpowiadają poszczególnym kolorom oraz jakie są ich praktyczne zastosowania w projektach graficznych.

Pytanie 21

W zaprezentowanym fragmencie dokumentu HTML ustalono stylowanie CSS dla selektora klasy "menu", aby kolor tła tego elementu był zielony. Które z poniższych określeń stylu CSS odpowiada temu stylowaniu?

<div class="menu"></div>
A. div.menu { background-color: green; }
B. div:menu { color: green; }
C. menu { background-color: rgb(0,255,0); }
D. #menu { background-color: rgb(0,255,0); }
Błędne odpowiedzi wynikają z niewłaściwego zastosowania selektorów w języku CSS. Selektor #menu sugeruje użycie ID, jednak w HTML identyfikator musi być unikalny, a zadanie dotyczy klasy, co implikuje użycie selektora klasy poprzedzonego kropką. Takie błędne użycie prowadzi do niezrozumienia podstawowej różnicy między klasami a identyfikatorami w CSS, co jest kluczowe w projektowaniu stron internetowych. Z kolei selektor menu { background-color: rgb(0,255,0); } jest niepoprawny, ponieważ nie odnosi się do konkretnego elementu. Chociaż specyfikacja CSS pozwala na selektory nazwane, najczęściej stosuje się je w kontekście semantycznym dla elementów HTML, a nie tych określonych przez klasy. Wreszcie, definicja div:menu { color: green; } używa błędnej składni, ponieważ pseudo-klasy w CSS są używane do stylizacji specyficznych stanów elementów, takich jak hover, active czy focus, a nie do stylizacji klas. Istotne jest zrozumienie, że użycie pseudo-klas wymaga odpowiedniego kontekstu, który w tym przypadku jest niepoprawnie użyty. Kluczem do poprawnego stosowania CSS jest zrozumienie specyfiki selektorów i ich właściwe wykorzystanie, co pozwala na efektywne zarządzanie stylem w projekcie webowym. Podstawową zasadą powinno być projektowanie stylów z myślą o ich wielokrotnym wykorzystaniu i utrzymaniu czystości kodu.

Pytanie 22

Aby zrealizować opisane czynności w JavaScript, konieczne jest umieszczenie poniższego kodu w znaczniku <script>

Ilustracja do pytania
A. A = alert("Podaj kwalifikację: "); document.write("Kwalifikacja: "+A)
B. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: ".A)
C. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: "+A)
D. A << prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: "+A)
Rozważając podane odpowiedzi warto zauważyć kilka typowych błędów koncepcyjnych związanych z używaniem funkcji w JavaScript. Po pierwsze, w jednej odpowiedzi użyto kropki zamiast operatora konkatenacji przy próbie łączenia łańcuchów znaków, co jest błędne w JavaScript. W tym języku operator + jest standardowym sposobem na łączenie tekstu z wartościami zmiennych. Użycie kropki w tym kontekście jest błędne, ponieważ odnosi się do operacji obiektowych, nie do konkatenacji łańcuchów. Innym błędem jest wykorzystanie operatora <<, który w rzeczywistości służy do przesunięć bitowych, a nie do przypisywania wartości czy wywoływania funkcji. Takie pomyłki mogą wynikać z niezrozumienia różnic między operacjami bitowymi a przypisaniem wartości. Kolejna opcja sugerowała użycie alert() zamiast prompt(), co oznaczałoby wyświetlenie jedynie komunikatu bez możliwości wprowadzenia danych przez użytkownika, co nie spełnia założeń zadania polegających na pobraniu wartości od użytkownika. Wszystkie te błędne odpowiedzi wynikają z nieznajomości lub niepoprawnego użycia podstawowych funkcji i operatorów języka JavaScript co podkreśla znaczenie dokładnego zrozumienia podstaw języka oraz ich praktycznego zastosowania. Poprawne użycie prompt() i document.write() jest kluczowe w implementacji interaktywnych elementów na stronach internetowych, co pozwala na dynamiczne przetwarzanie danych użytkowników w aplikacjach webowych. Dobrze jest stosować się do standardów i dobrych praktyk, aby unikać podobnych błędów w przyszłości oraz by tworzyć aplikacje, które są zarówno funkcjonalne, jak i bezpieczne.

Pytanie 23

Tabela gory zawiera dane o polskich wzniesieniach oraz łańcuchach górskich, w których te wzniesienia się znajdują. Aby uzyskać Koronę Gór Polskich, czyli najwyższe wzniesienie w każdym z łańcuchów górskich, należy wykonać kwerendę

A. SELECT pasmo, szczyt FROM gory GROUP BY wysokosc
B. SELECT pasmo, szczyt, MAX(wysokosc) FROM gory
C. SELECT pasmo, szczyt, wysokosc FROM gory
D. SELECT pasmo, szczyt, MAX(wysokosc) FROM gory GROUP BY pasmo
W analizowanym pytaniu, wszystkie pozostałe zapytania nie są w stanie dostarczyć wymaganych informacji o najwyższych szczytach górskich w każdym paśmie. Pierwsza odpowiedź, SELECT pasmo, szczyt, wysokosc FROM gory; po prostu wyświetli wszystkie kolumny bez jakiejkolwiek agregacji, co prowadzi do nieprzydatnych wyników, gdyż nie wskazuje na najwyższe szczyty, które nas interesują. Druga odpowiedź, SELECT pasmo, szczyt, MAX(wysokosc) FROM gory;, jest błędna, ponieważ nie zawiera klauzuli GROUP BY. Bez niej, zapytanie zwróci jedynie najwyższą wysokość w całej tabeli, a nie w podziale na poszczególne pasma, co jest kluczowym elementem naszego zapytania. Trzecia opcja, SELECT pasmo, szczyt FROM gory GROUP BY wysokosc;, jest również niepoprawna, gdyż grupowanie według wysokości nie ma sensu w kontekście poszukiwania najwyższych szczytów w ramach pasm. Takie podejście prowadziłoby do niejednoznacznych wyników, ponieważ w każdym paśmie mogłoby być wiele szczytów o różnych wysokościach, a nie ma możliwości zidentyfikować najwyższego szczytu. Ustalanie grupy na podstawie niewłaściwego kryterium, jak w tym przypadku, często prowadzi do błędnych wniosków i jest typowym błędem myślowym, który należy unikać podczas pracy z danymi. Kluczowym wymogiem w takich zapytaniach jest zrozumienie, jakie kryteria powinny być zastosowane do grupowania danych oraz odpowiednie wykorzystanie funkcji agregujących w kontekście danego problemu.

Pytanie 24

Polecenie SQL:

GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost
Przedstawione polecenie SQL nadaje użytkownikowi adam@localhost prawa:
A. do zarządzania strukturą tabeli klienci
B. do manipulowania danymi bazy danych klienci
C. do manipulowania danymi w tabeli klienci
D. do zarządzania strukturą bazy danych klienci
W kontekście analizy niepoprawnych odpowiedzi, odpowiedzi dotyczące zarządzania strukturą tabeli klienci oraz zarządzania strukturą bazy danych klienci są niepoprawne, ponieważ polecenie GRANT nie odnosi się do tych aspektów. Zarządzanie strukturą tabeli zazwyczaj obejmuje takie operacje jak tworzenie lub modyfikowanie tabel, co jest realizowane przez polecenia takie jak CREATE TABLE czy ALTER TABLE. W przypadku polecenia GRANT, nie ma mowy o wprowadzaniu zmian w strukturze tabeli, a jedynie o nadawaniu uprawnień do manipulacji danymi. Podobnie, zarządzanie strukturą bazy danych dotyczy bardziej operacji administracyjnych, takich jak tworzenie bazy danych, co również nie jest tożsame z uprawnieniami do operacji na danych. Ostatnia z niepoprawnych odpowiedzi, dotycząca manipulowania danymi bazy danych klienci, jest również myląca, ponieważ odnosi się do całej bazy danych jako całości, podczas gdy polecenie dotyczy wyłącznie konkretnej tabeli. W praktyce, zarządzanie danymi w kontekście bazy danych oznacza operacje na zbiorze danych, a nie na pojedynczych rekordach w tabelach. Dlatego kluczowe jest zrozumienie, że GRANT pozwala na nadawanie uprawnień do działania na konkretnej tabeli, a nie na całej bazie danych czy jej strukturze.

Pytanie 25

W CSS zapisano stylizację ```css p > i {color: blue} ``` oznacza to, że kolorem niebieskim zostanie wyświetlony

A. wszystkie teksty nagłówków, niezależnie od formatowania
B. pochylony tekst akapitu
C. cały tekst akapitu, niezależnie od jego stylizacji
D. pogrubiony tekst akapitu
W definicji CSS `p > i {color: blue}`, mamy do czynienia z selektorem, który odnosi się do elementów typu <i> znajdujących się bezpośrednio wewnątrz elementu <p>. Oznacza to, że wszystkie elementy <i>, które są bezpośrednimi dziećmi elementu <p>, będą miały kolor tekstu ustawiony na niebieski. Element <i> w HTML jest często używany do oznaczania tekstu kursywą, co jest zgodne z semantyką dokumentu. Użycie koloru w tym kontekście podkreśla, że zmiana koloru dotyczy tylko tych fragmentów tekstu, które są specyficznie oznaczone jako kursywa. W praktyce, jeżeli mamy paragraf zawierający tekst oraz fragmenty w kursywie, to tylko te kursywne fragmenty będą przyjmować niebieski kolor. Przykładowo, w poniższym kodzie HTML: <p>To jest <i>kursywa</i> oraz <b>pogrubienie</b>.</p>, tylko słowo 'kursywa' będzie miało kolor niebieski. Zgodność z W3C i standardami CSS zapewnia, że taki zapis będzie działał na większości przeglądarek. Warto zwrócić uwagę na hierarchię selektorów, która pozwala na precyzyjne określenie, które elementy mają być stylizowane w określony sposób.

Pytanie 26

Jaki typ danych w MySQL należy zastosować, aby w jednym polu zapisać zarówno datę, jak i czas?

A. YEAR
B. BOOLEAN
C. TIMESTAMP
D. DATE
Typ danych TIMESTAMP w MySQL jest przeznaczony do przechowywania zarówno daty, jak i czasu w jednym polu. Jest szczególnie przydatny w sytuacjach, gdy potrzebne jest śledzenie zdarzeń w czasie, takich jak rejestracja daty i godziny utworzenia lub modyfikacji rekordów w bazie danych. TIMESTAMP przechowuje dane w formacie 'YYYY-MM-DD HH:MM:SS', co pozwala na precyzyjne określenie momentu w czasie. Wartością dodaną tego typu danych jest automatyczne aktualizowanie znacznika czasu przy każdej zmianie rekordu (jeśli ustawimy odpowiednie opcje), co jest zgodne z najlepszymi praktykami w zakresie audytu danych. Przykładem zastosowania może być rejestracja logów aktywności użytkowników w aplikacji internetowej lub monitorowanie transakcji w systemach finansowych, gdzie dokładny czas zdarzenia jest kluczowy. Dodatkowo, TIMESTAMP obsługuje różnice stref czasowych, co czyni go idealnym wyborem w aplikacjach działających w różnych lokalizacjach geograficznych.

Pytanie 27

Aby utworzyć relację wiele do wielu między tabelami A i B, wystarczy, że

A. tabela A będzie miała identyczne pola jak tabela B
B. zostanie zdefiniowana trzecia tabela z kluczami obcymi do tabel A i B
C. wiele wpisów z tabeli A powtórzy się w tabeli B
D. połączenie tabeli A z tabelą B nastąpi poprzez określenie kluczy obcych
Podejścia zaprezentowane w niepoprawnych odpowiedziach są mylące i nie odpowiadają zasadom modelowania baz danych stosowanym w praktyce. Łączenie tabeli A z tabelą B poprzez klucze obce bez użycia tabeli asocjacyjnej prowadzi do trudności w zarządzaniu relacjami, ponieważ w takiej konfiguracji relacja będzie co najwyżej jeden do wielu, co nie odzwierciedla zamierzonej relacji wiele do wielu. Duplicacja rekordów z tabeli A w tabeli B jest nie tylko nieefektywna, ale również narusza zasady normalizacji, prowadząc do redundancji danych i potencjalnych problemów z integralnością. Ponadto, posiadanie tabeli A z takimi samymi polami co tabela B nie ma sensu w kontekście relacji wiele do wielu, ponieważ nie rozwiązuje problemu powiązań między rekordami tych tabel. Ważne jest zrozumienie, że prawidłowe modelowanie baz danych powinno opierać się na zdefiniowanych relacjach i zastosowaniu kluczy obcych w odpowiedni sposób. Niezrozumienie tej koncepcji może prowadzić do błędnych wniosków i niewłaściwego projektowania baz danych, co w dłuższej perspektywie może powodować trudności w przetwarzaniu i analizie danych.

Pytanie 28

Na ilustracji przedstawiono ustawienia programu służącego do montażu filmów. Nowy projekt ma ustawienia

Ilustracja do pytania
A. 25 klatek na cały film.
B. 25 klatek na każdą sekundę filmu.
C. 48 minut czasu trwania filmu.
D. wysokość 1920 px i szerokość 1080 px.
Prawidłowa odpowiedź wynika bezpośrednio z oznaczenia „25 fps” w ustawieniach projektu. Skrót fps oznacza „frames per second”, czyli liczbę klatek na sekundę. Jeśli projekt ma 25 fps, to znaczy, że każda sekunda gotowego filmu będzie złożona z 25 kolejnych klatek wideo. To jest właśnie standardowa liczba klatek na sekundę stosowana w Europie (standard telewizyjny oparty na PAL), bardzo często używana w programach do montażu i w kamerach. W praktyce wygląda to tak: jeżeli nagrasz materiał w 25 fps i zmontujesz projekt również w 25 fps, to ruch będzie wyglądał naturalnie, a odtwarzanie będzie płynne i zgodne z typowymi ustawieniami telewizorów i wielu platform VOD. Gdybyś ustawił np. 10 fps, obraz byłby wyraźnie „szarpiący”, a przy 60 fps – bardzo płynny, ale też wymagający więcej miejsca na dysku i większej mocy obliczeniowej przy montażu. Moim zdaniem warto zapamiętać, że liczba klatek na sekundę to jedna z kluczowych decyzji przy zakładaniu nowego projektu: wpływa na płynność ruchu, rozmiar pliku wynikowego i komfort montażu. W programach do edycji wideo zawsze szukaj parametru „Frame Rate” lub właśnie „fps”. Jeżeli widzisz tam liczbę, np. 24, 25, 30, 50 czy 60, to zawsze będzie chodziło o liczbę klatek przypadających na jedną sekundę odtwarzania filmu, a nie o całkowitą liczbę klatek czy czas trwania projektu. W tym zadaniu opis 25 fps dokładnie odpowiada odpowiedzi „25 klatek na każdą sekundę filmu”.

Pytanie 29

W konstrukcji warunkowej w języku JavaScript należy sprawdzić sytuację, w której zmienne a oraz b są większe od zera, przy czym zmienna b jest mniejsza niż 100. Taki warunek powinien być zapisany w następujący sposób:

A. if ( a > 0 && b > 0 && b < 100) ...
B. if ( a > 0 && b > 0 || b > 100) ...
C. if ( a > 0 || (b > 0 && b < 100)) ...
D. if ( a > 0 || b > 0 || b > 100) ...
Poprawna odpowiedź to 'if ( a > 0 && b > 0 && b <100) ...'. W tym warunku wykorzystujemy operator logiczny AND (&&), co pozwala nam na jednoczesne sprawdzenie, czy obie zmienne 'a' i 'b' są dodatnie oraz czy 'b' jest mniejsze od 100. Operator AND jest kluczowy, ponieważ wymaga, aby wszystkie warunki były spełnione jednocześnie, co w tym przypadku jest istotne dla naszej logiki programistycznej. Przykładowo, jeśli a = 10 i b = 50, warunek zwróci true, ponieważ obie zmienne są dodatnie, a 'b' jest mniejsze niż 100. Jeśli jednak 'b' wynosi 150, warunek zwróci false, co jest zgodne z naszymi wymaganiami. W kontekście standardów języka JavaScript, ważne jest, aby rozumieć różnice między operatorami logicznymi, ponieważ niewłaściwe ich zastosowanie może prowadzić do błędnej logiki w kodzie, co z kolei skutkuje nieprawidłowym działaniem aplikacji. Dlatego, w praktyce, korzystanie z operatorów AND w tej sytuacji jest nie tylko poprawne, ale także najlepszą praktyką.

Pytanie 30

Tabele Osoby i Adresy są połączone relacją jeden do wielu. Które zapytanie SQL należy wykonać, aby korzystając z tej relacji, prawidłowo wyświetlić nazwiska oraz przyporządkowane im miasta?

Ilustracja do pytania
A. SELECT nazwisko, Miasto FROM Osoby.Adresy_id = Adresy.id FROM Osoby, Adresy;
B. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;
C. SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id = Adresy.id;
D. SELECT nazwisko, Miasto FROM Osoby, Adresy;
W tym zadaniu widać kilka typowych pułapek związanych z łączeniem tabel w SQL. Często spotyka się podejście, że wystarczy wypisać kilka tabel po przecinku w klauzuli FROM i baza danych sama się domyśli, jak je połączyć. Niestety tak to nie działa. Jeśli podamy FROM Osoby, Adresy bez żadnego warunku, otrzymamy tzw. iloczyn kartezjański. Oznacza to, że każda osoba zostanie połączona z każdym adresem, co w praktyce daje ogromny, kompletnie bezsensowny zestaw danych. To jest bardzo częsty błąd początkujących: zapytanie technicznie się wykonuje, ale wynik nie ma żadnego logicznego związku z modelem danych. Drugi problem to łączenie tabel po niewłaściwych kolumnach. Zdarza się założenie, że skoro obie tabele mają kolumnę id, to można je po prostu zrównać w warunku WHERE Osoby.id = Adresy.id. Jest to myślenie intuicyjne, ale błędne z punktu widzenia projektowania relacyjnego. Kolumna id w każdej tabeli jest zwykle osobnym kluczem głównym i nie ma powodu, żeby ich wartości się pokrywały. W poprawnym modelu relacji używa się klucza obcego, tutaj Osoby.Adresy_id, który jawnie wskazuje na Adresy.id. To właśnie te dwie kolumny należy ze sobą powiązać. Kolejna pułapka to mylenie składni JOIN z warunkiem łączenia. Fragment Osoby.Adresy_id = Adresy.id nie może znajdować się w miejscu, gdzie SQL oczekuje listy tabel po FROM albo słowa kluczowego JOIN. To jest wyrażenie logiczne, które powinno znaleźć się w klauzuli ON (w przypadku JOIN) lub w WHERE (w starszym stylu zapisu). Moim zdaniem ważne jest, żeby w głowie rozdzielić trzy elementy: najpierw wymieniamy tabele, które chcemy połączyć, potem określamy typ złączenia (JOIN, LEFT JOIN itd.), a dopiero na końcu definiujemy warunek powiązania ON klucz_obcy = klucz_główny. Jeśli pomieszamy te poziomy, wychodzą dziwne konstrukcje, które są po prostu niezgodne ze składnią SQL. Dobra praktyka branżowa jest taka, że używamy jawnych JOIN-ów z precyzyjnym warunkiem ON i zawsze sprawdzamy, czy łączymy po właściwych kolumnach wynikających z relacji w modelu danych.

Pytanie 31

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: left; } aside { float: left; }
B. nav { float: right; }
C. nav { float: right; } section { float: right; }
D. aside {float: left; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi. Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego. Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 32

W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
$z=mysqli_query($db,"SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a=mysqli_fetch_row($z);
echo "$a[1], $a[2]";

A. ulicy oraz miasta ze wszystkich zwróconych wpisów
B. miasta i kodu pocztowego z pierwszego zwróconego wpisu
C. ulicy oraz miasta z pierwszego zwróconego wpisu
D. miasta i kodu pocztowego ze wszystkich zwróconych wpisów
Pierwsza z niepoprawnych odpowiedzi sugeruje, że kod wypisuje ulicę i miasto z pierwszego zwróconego rekordu. Choć kod rzeczywiście korzysta z indeksów, to jednak nie wypisuje ulicy, lecz miasto i kod pocztowy. Kolejna odpowiedź sugeruje, że kod wyświetla ulicę i miasto ze wszystkich zwróconych rekordów. W rzeczywistości, kod jest skonstruowany w taki sposób, że ogranicza się do jednego wiersza danych, przez co nie ma możliwości wypisania informacji o wszystkich rekordach. Ostatnia z odpowiedzi stwierdza, że kod wypisuje miasto i kod pocztowy ze wszystkich zwróconych rekordów, co również jest błędne, ponieważ kod jedynie prezentuje dane pierwszego rekordu. Takie zrozumienie kodu może prowadzić do błędnych wniosków i nieprawidłowego użycia funkcji w praktyce tworzenia aplikacji webowych, dlatego kluczowe jest dokładne zapoznanie się z dokumentacją PHP oraz zasadami działania baz danych.

Pytanie 33

W języku C do przedstawiania liczb zmiennoprzecinkowych używa się typu

A. int
B. bool
C. double
D. char
Typ `char` jest przeznaczony do przechowywania pojedynczych znaków, takich jak litery i cyfry, a jego rozmiar to zazwyczaj 1 bajt. Użycie typu `char` do przechowywania liczb zmiennoprzecinkowych jest błędne, ponieważ typ ten nie ma mechanizmu do reprezentacji wartości dziesiętnych. Z kolei typ `int` jest wykorzystywany do reprezentacji liczb całkowitych, co oznacza, że nie może przechowywać wartości z częścią dziesiętną, co czyni go niewłaściwym w kontekście zmiennoprzecinkowym. Użycie `int` w obliczeniach wymagających precyzyjnych wartości dziesiętnych prowadziłoby do utraty informacji, co może być krytyczne w aplikacjach, takich jak systemy finansowe, które muszą działać z dużą dokładnością. Typ `bool` z kolei jest używany do reprezentacji wartości logicznych (prawda/fałsz) i nie ma możliwości przechowywania wartości numerycznych, co czyni go nieodpowiednim w kontekście liczb zmiennoprzecinkowych. W związku z tym, wybór odpowiedniego typu danych w programowaniu jest kluczowy dla zachowania dokładności i poprawności obliczeń. Niezrozumienie różnicy między tymi typami może prowadzić do poważnych błędów programistycznych oraz nieprecyzyjnych rezultatów w aplikacjach, co podkreśla znaczenie stosowania typów danych zgodnie z ich przeznaczeniem.

Pytanie 34

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

Ilustracja do pytania
A. animowanie obiektu
B. narysowanie docelowego obiektu
C. geometryczne transformowanie obiektu
D. zmiana warstwy obiektu
Animowanie obiektu, choć jest techniką używaną w grafice komputerowej, to jednak odnosi się do tworzenia sekwencji obrazów symulujących ruch, co jest nieodpowiednie dla zmiany jednorazowego kształtu obiektu. Animacja dotyczy raczej dynamiki niż statycznego przekształcenia obiektu. Zmiana warstwy obiektu odnosi się do układania elementów w stosy, co pozwala na nakładanie obiektów jeden na drugi w określonej kolejności; nie zmienia to jednak kształtu czy rozmiaru samego obiektu. Narysowanie docelowego obiektu jest czasochłonne i nieefektywne, szczególnie jeśli oryginalny obiekt można łatwo zmodyfikować za pomocą transformacji. Ponadto tworzenie nowego obiektu od podstaw pomija możliwości edycji istniejącego projektu, co nie jest zgodne z dobrymi praktykami optymalizacji procesów projektowych. Typowym błędem myślowym jest traktowanie grafik jako statycznych obrazów, które trzeba całkowicie przeprojektować, zamiast wykorzystywać narzędzia programistyczne i algorytmy do modyfikacji ich parametrów. Transformacje geometryczne oferują bardziej elastyczne i zaawansowane sposoby manipulacji obiektami graficznymi, co czyni je kluczowym narzędziem w arsenale projektanta.

Pytanie 35

Jak nazwana jest technika dołączania arkusza stylów do dokumentu HTML użyta w podanym kodzie?

<p style="color:red;">tekst</p>
A. Styl alternatywny, zewnętrzny
B. Styl wewnętrzny
C. Styl wpisany, lokalny
D. Styl zewnętrzny
Styl wewnętrzny to metoda w której reguły CSS są zawarte w sekcji head dokumentu HTML w znaczniku style Jest to przydatne w przypadku gdy stylizacja ma obejmować wiele elementów w pojedynczym dokumencie ale nie wymaga globalnego zastosowania Styl wewnętrzny jest bardziej zorganizowany niż styl wpisany ale nadal nie jest najlepszym rozwiązaniem dla dużych projektów ponieważ utrudnia współdzielenie stylów między wieloma stronami Styl alternatywny zewnętrzny odnosi się do sytuacji gdy mamy dostępne różne arkusze stylów które mogą być wymiennie stosowane do tej samej strony internetowej Jest to zaawansowana koncepcja rzadko stosowana w praktyce ale przydatna w projektach gdzie użytkownicy mogą wybierać różne motywy graficzne Styl zewnętrzny to najbardziej zalecana metoda stylizacji gdzie wszystkie reguły są zapisane w osobnym pliku CSS który jest linkowany do dokumentu HTML Pozwala to na łatwe zarządzanie i aktualizację stylów w całym projekcie Jednym z typowych błędów jest mylenie stylu zewnętrznego ze stylem wpisanym oba rozwiązania służą do różnych celów Styl zewnętrzny daje strukturę i pozwala na współdzielenie stylów między stronami co poprawia spójność wyglądu całego serwisu oraz ułatwia jego utrzymanie w przeciwieństwie do bardziej chaotycznego podejścia stylu wpisanego który może prowadzić do zduplikowanego i trudnego w zarządzaniu kodu

Pytanie 36

Sprawdzenie poprawności pól formularza polega na weryfikacji

A. czy użytkownik jest zalogowany
B. czy istnieje plik PHP, który przetworzy dane
C. czy wprowadzone dane spełniają określone reguły
D. który użytkownik wprowadził informacje
Walidacja pól formularza jest kluczowym elementem w procesie zbierania danych od użytkowników. Jej głównym celem jest upewnienie się, że dane, które użytkownik wprowadza, są zgodne z określonymi regułami i standardami. Na przykład, jeśli pole formularza wymaga adresu e-mail, walidacja może sprawdzić, czy wprowadzone dane mają odpowiedni format (np. zawierają '@' i końcówkę domeny). Ważne jest, aby walidację przeprowadzać zarówno po stronie klienta, jak i serwera. Walidacja po stronie klienta (np. za pomocą JavaScript) może szybko informować użytkownika o błędach, ale nie powinna być jedyną metodą, gdyż można ją łatwo obejść. Walidacja po stronie serwera, przeprowadzana w językach takich jak PHP lub Python, zapewnia, że dane są na pewno zgodne z wymaganiami systemu przed ich przetworzeniem. Przykładami reguł walidacji mogą być wymagania dotyczące długości tekstu, formatów numerów telefonów czy też wymagalności pewnych pól, co jest zgodne z dobrymi praktykami UX oraz standardami bezpieczeństwa danych.

Pytanie 37

Skrypt PHP wyświetla aktualny czas w formacie godzina:minuta:sekunda, na przykład 15:38:20. Czas w tym formacie zostanie uzyskany dzięki funkcji

A. date("H:i:s");
B. time("G:m:s");
C. time("H:i:s");
D. date("G:m:s");
Wybór time("H:i:s") jako metody zwracającej aktualny czas w pożądanym formacie jest błędny, ponieważ funkcja time() nie formatuje daty ani czasu. Zamiast tego, time() zwraca czas w postaci znacznika czasu (timestamp) – liczby sekund, które upłynęły od 1 stycznia 1970 roku, co jest znane jako Unix Epoch. Dlatego wywołanie time("H:i:s") nie zadziała, ponieważ ta funkcja nie akceptuje parametrów formatujących. Kolejną nieprawidłową odpowiedzią jest date("G:m:s"). Chociaż funkcja date() jest stosowana do formatowania czasu, pole 'G' zwraca godziny w 24-godzinnym formacie, ale bez wiodących zer (tak jak 'H'), co może prowadzić do niepoprawnego wyświetlania godzin mniejszych niż 10. Dodatkowo, 'm' odnosi się do miesięcy, a nie minut, co czyni to podejście błędnym we wszystkich aspektach. Wreszcie, w odpowiedzi time("G:m:s") ponownie pojawia się problem ze zrozumieniem funkcji time(), która nie jest używana do formatowania czasu, a zamiast tego służy tylko do uzyskania znacznika czasu. Typowe błędy myślowe związane z tymi odpowiedziami obejmują mylenie funkcji do pozyskiwania danych z funkcjami do ich formatowania oraz niepełne zrozumienie składni i możliwości dostępnych funkcji PHP. Rekomenduje się zawsze dokładne zapoznanie się z dokumentacją PHP oraz praktyczne testowanie funkcji w różnych scenariuszach, aby lepiej zrozumieć ich zastosowanie i ograniczenia.

Pytanie 38

W programowaniu zmienna typu integer jest wykorzystywana do przechowywania

A. liczby całkowitej
B. wartości logicznej
C. znaku
D. liczby rzeczywistej
Wybór innego typu zmiennych zamiast integer to nie jest najlepsza decyzja z kilku powodów. Na przykład, typ char, który jest używany do przechowywania pojedynczych znaków, nie nadaje się do liczb całkowitych. Char zazwyczaj zajmuje 1 bajt pamięci i może pokrywać 256 różnych wartości, więc nie będzie to dobre dla liczb. Z kolei boolean, który reprezentuje prawdę lub fałsz, w ogóle nie nadaje się do liczenia, bo jego rola to przede wszystkim kontrola przepływu w programie. Zmienne float i double, które zajmują się liczbami rzeczywistymi, mogą mieć część dziesiętną, ale działają na innej zasadzie i mogą być mniej precyzyjne. Liczby zmiennoprzecinkowe są bardziej złożone, co sprawia, że są mniej wydajne w prostych obliczeniach. Dlatego używanie tych innych typów do pracy z liczbami całkowitymi jest po prostu nieefektywne i mija się z celem.

Pytanie 39

W języku SQL, aby usunąć wszystkie rekordy z tabeli, nie eliminując jej samej, można skorzystać z polecenia

A. ALTER
B. UPDATE
C. TRUNCATE
D. DROP
Wybór polecenia DROP do usunięcia danych z tabeli prowadzi do całkowitego usunięcia zarówno tabeli, jak i jej definicji ze struktury bazy danych. DROP jest stosowane, gdy chcemy usunąć obiekt w całości, co może być nie tylko nieodwracalne, ale także niepożądane w sytuacjach, gdy potrzebujemy zachować strukturę tabeli dla przyszłych operacji. Użycie ALTER w kontekście usuwania danych jest również błędne, ponieważ to polecenie służy do modyfikacji struktury tabeli, takiej jak dodawanie lub usuwanie kolumn, a nie do zarządzania danymi w tabeli. Kolejnym błędem myślowym jest zastosowanie polecenia UPDATE, które jest używane do modyfikacji istniejących danych w tabeli, a nie do ich usuwania. Często mylnie przyjmuje się, że UPDATE można wykorzystać do 'czyszczenia' tabeli, co jednak nie jest zgodne z rzeczywistym działaniem tego polecenia. Poprawne podejście polega na zrozumieniu, że usuwanie danych w SQL wymaga zastosowania odpowiednich poleceń w zależności od celu – czy chcemy usunąć dane, czy całą tabelę. Dlatego kluczowe jest odpowiednie zrozumienie różnicy między tymi poleceniami oraz ich zastosowaniem w praktycznych sytuacjach, aby uniknąć nieodwracalnych błędów w zarządzaniu danymi.

Pytanie 40

W CSS, aby zmienić kolor tekstu dowolnego elementu HTML po najechaniu na niego myszą, należy wykorzystać pseudoklasę

A. :coursor
B. :visited
C. :hover
D. :active
Wybór nieodpowiednich pseudoklas, takich jak :visited, :cursor oraz :active, może prowadzić do nieporozumień w zakresie ich funkcji i zastosowania w stylizacji elementów na stronach internetowych. Pseudoklasa :visited jest używana do stylizacji linków, które zostały już odwiedzone przez użytkownika, co oznacza, że nie jest ona związana z interakcją w czasie rzeczywistym. Może być stosowana do zmiany koloru lub stylu linków, lecz nie wpływa na ich wygląd w momencie, gdy użytkownik z nimi współdziała za pomocą kursora. Z kolei :cursor nie jest rzeczywistą pseudoklasą CSS; zamiast tego, właściwości związane z kursorem definiuje się poprzez `cursor`, co nie dotyczy bezpośrednio efektów hover. Użytkownicy często mylą te pojęcia, co prowadzi do nieefektywnego stylizowania elementów. Na koniec, :active odnosi się do elementów, które są aktualnie aktywowane, np. podczas kliknięcia, co również nie koreluje z najechaniem kursorem. W praktyce, pomyłki w wyborze tych pseudoklas mogą obniżyć interaktywność oraz estetykę strony, co jest sprzeczne z zasadami dobrego designu i użyteczności. Właściwe wykorzystanie :hover zamiast powyższych pseudoklas nie tylko poprawia funkcjonalność, ale także podnosi ogólną jakość projektu.