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: 27 kwietnia 2026 01:39
  • Data zakończenia: 27 kwietnia 2026 01:39

Egzamin niezdany

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

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. miasta i kodu pocztowego z pierwszego zwróconego rekordu.
B. miasta i kodu pocztowego ze wszystkich zwróconych rekordów.
C. ulicy i miasta ze wszystkich zwróconych rekordów.
D. ulicy i miasta z pierwszego zwróconego rekordu.
Niestety, wybrałeś niepoprawną odpowiedź. W twoim fragmencie kodu PHP, wykonujesz zapytanie SQL, które wybiera kolumny 'ulica', 'miasto', 'kod pocztowy' z tabeli 'adresy'. Następnie używasz funkcji mysqli_fetch_row(), która pobiera pierwszy zwrócony rekord jako indeksowaną tablicę. Funkcja echo wyświetla drugi i trzeci element tej tablicy (indeksy 1 i 2), które odpowiadają kolumnom 'miasto' i 'kod pocztowy'. Niepoprawne odpowiedzi sugerują, że twój kod wypisze 'ulicę i miasto' lub 'miasto i kod pocztowy' ze wszystkich zwróconych rekordów, co jest nieprawdą. Niezrozumienie, jak funkcje PHP działają z MySQL i jaki jest ich wynik, może prowadzić do poważnych błędów w kodzie. Wskazane jest dokładne zrozumienie, jakie dane są zwracane przez SQL i jak je przetwarzać w PHP.

Pytanie 2

Baza danych, która fizycznie znajduje się na wielu komputerach, lecz logicznie postrzegana jako całość, opiera się na architekturze

A. relacyjną
B. abstrakcyjną
C. rozproszoną
D. lokalną
Wybór architektury relacyjnej, abstrakcyjnej czy lokalnej do opisu systemu, w którym baza danych jest rozproszona, wskazuje na pewne nieporozumienia w zakresie terminologii i koncepcji baz danych. Architektura relacyjna odnosi się do struktury baz danych, w której dane są przechowywane w tabelach oraz powiązaniach między nimi, a nie do fizycznego rozmieszczenia danych. Systemy relacyjne mogą być wdrażane zarówno w architekturze lokalnej, jak i rozproszonej. Abstrakcyjna architektura danych dotyczy natomiast sposobów modelowania, które są niezależne od konkretnej technologii i nie odnoszą się bezpośrednio do fizycznego rozproszenia danych. Z kolei architektura lokalna odnosi się do sytuacji, w której wszystkie komponenty systemu są umieszczone w jednym miejscu, co zdecydowanie wyklucza możliwość rozproszenia danych. W praktyce, nieprawidłowy wybór architektury może prowadzić do problemów z wydajnością, dostępnością i skalowalnością systemu. Często mylone są pojęcia związane z architekturą baz danych i ich implementacją, co może skutkować błędnymi decyzjami projektowymi i trudnościami w zarządzaniu danymi. Dobrze jest zrozumieć, że architektura rozproszona nie tylko zwiększa wydajność, ale również poprawia bezpieczeństwo i dostępność danych, co czyni ją odpowiednim wyborem dla nowoczesnych systemów przetwarzania danych.

Pytanie 3

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

A. błędy w składni HTML.
B. szybsze sprawdzanie linków.
C. zgodność z systemem Windows.
D. czas ładowania strony.
Błędy składniowe języka HTML nie mają bezpośredniego związku z wielkością grafiki JPEG. Składnia HTML odnosi się do poprawnego użycia tagów, a nie do rozmiaru plików graficznych. W przypadku błędów w HTML, strona może nie wyświetlać się poprawnie lub niektóre elementy mogą nie działać, jednak nie jest to związane z grafiką. Kompatybilność z systemem Windows również nie jest związana z wielkością obrazów JPEG. JPEG to standard pliku graficznego, który jest obsługiwany przez większość systemów operacyjnych, niezależnie od ich wielkości. Rozmiar pliku może wpływać na czas ładowania strony, ale nie na to, czy plik będzie działać na danym systemie operacyjnym. Szybsza weryfikacja odnośników również nie ma związku z wielkością plików graficznych. Weryfikacja odnośników polega na sprawdzeniu, czy linki prowadzą do odpowiednich zasobów, a nie na tym, jak szybko ładowane są obrazy. Proces ten dotyczy głównie protokołów HTTP i nie ma wpływu na wydajność ładowania graficznych elementów strony. Dlatego te odpowiedzi nie są związane z wpływem wielkości grafiki JPEG na czas ładowania strony.

Pytanie 4

Jaki jest cel poniższego fragmentu funkcji w JavaScript?

wynik = 0;
for (i = 0; i < tab.length; i++)
{
    wynik += tab[i];
}
A. wyświetlić wszystkie pozycje w tablicy
B. dodać stałą wartość do każdego elementu tablicy
C. przypisać do każdego elementu tablicy bieżącą wartość zmiennej i
D. obliczyć sumę wszystkich elementów tablicy
Podczas analizowania niepoprawnych odpowiedzi warto skupić się na zrozumieniu działania pętli oraz operatora przypisania dodającego +=. Pierwsza z omawianych odpowiedzi sugeruje że kod dodaje do każdego elementu tablicy stałą wartość. Jest to błędne rozumienie operatora += który po lewej stronie ma zmienną a po prawej wartość którą dodajemy do tej zmiennej. W tym przypadku tab[i] jest dodawane do zmiennej wynik co wskazuje na zliczanie a nie modyfikację elementów tablicy. Druga odpowiedź sugeruje że kod wyświetla elementy tablicy. Jednak brak tutaj jakiejkolwiek funkcji wyjściowej takiej jak console.log() która mogłaby wyświetlić wartości w konsoli. Kod skupia się na operacji wewnętrznej a nie na interakcji wyjściowej. Trzecia odpowiedź sugeruje że do każdego elementu tablicy jest wprowadzana aktualna wartość zmiennej i. Jest to również błędne ponieważ nie ma tutaj żadnej operacji przypisania wartości do tablicy. Zmienna i jest jedynie indeksem używanym do iteracji i nie wpływa na zmianę wartości tablicy. Wszystkie te nieporozumienia wynikają z błędnej interpretacji działania pętli oraz operacji arytmetycznych w kodzie. Kluczowe jest zrozumienie jak pętla działa aby poprawnie przypisać operację do odpowiedniego kontekstu w programie.

Pytanie 5

W SQL, który jest używany przez bazę danych MySQL w tabeli samochody, aby przypisać wartość 0 do kolumny przebieg, trzeba skorzystać z zapytania

A. UPDATE samochody SET przebieg VALUE 0;
B. UPDATE przebieg SET 0 FROM samochody;
C. UPDATE samochody SET przebieg=0;
D. UPDATE przebieg SET 0 TABLE samochody;
Pierwsza z błędnych odpowiedzi sugeruje kwerendę 'UPDATE przebieg SET 0 FROM samochody', która jest niepoprawna ze względu na niewłaściwą składnię. W SQL nie stosuje się słowa kluczowego 'FROM' w tym kontekście, ponieważ UPDATE działa na zaktualizowanej tabeli bez potrzeby określania źródła danych, co w tym przypadku jest zbędne. Kolejna niepoprawna odpowiedź 'UPDATE przebieg SET 0 TABLE samochody' również łamie zasady składni SQL, ponieważ użycie słowa 'TABLE' w tym kontekście jest zbędne i niezgodne z konwencją. SQL nie wymaga ani nie pozwala na takie sformułowanie kwerendy. Ostatnia błędna propozycja 'UPDATE samochody SET przebieg VALUE 0' błędnie używa słowa kluczowego 'VALUE'. W SQL używamy 'SET' do przypisywania wartości, a nie 'VALUE', co jest konstrukcją z innych języków programowania. Prawidłowa forma to 'SET kolumna=nowa_wartość'. Każda z tych odpowiedzi pokazuje istotne nieporozumienia dotyczące podstawowych zasad składni SQL, co podkreśla znaczenie nauki i praktyki w pracy z bazami danych.

Pytanie 6

Efekt AutoDuck w obróbce dźwięku jest stosowany do

A. eliminacji szumów pochodzących z dźwięków w tle.
B. ściszenia dźwięku w tle, gdy pojawia się dźwięk pierwszoplanowy.
C. ocieplenia głosu i dźwięków pochodzących z tła.
D. wyrównania głośności całej ścieżki dźwiękowej.
W obróbce dźwięku łatwo pomylić różne efekty, bo większość z nich w jakiś sposób wpływa na głośność lub charakter brzmienia. AutoDuck jednak ma bardzo konkretne zastosowanie: automatyczne ściszanie tła, gdy pojawia się dźwięk pierwszoplanowy, najczęściej głos. To nie jest efekt „upiększający” czy „naprawiający” brzmienie, tylko typowo użytkowy mechanizm sterowania poziomem głośności między dwoma ścieżkami. Częsty błąd myślowy polega na tym, że wszystko, co „robi coś z głośnością”, wrzuca się do jednego worka. Ocieplenie głosu kojarzy się raczej z korekcją barwy (equalizer – podbicie niskich i niższych średnich częstotliwości) albo z delikatną kompresją, ewentualnie z efektami typu saturacja czy emulacja lampowa. AutoDuck niczego nie „ociepla”, on tylko zmniejsza poziom innej ścieżki, reagując na sygnał pierwszoplanowy. Podobnie z wyrównywaniem głośności całej ścieżki – od tego są kompresory, limitery, normalizacja czy tzw. loudness matching zgodny z normami EBU R128 lub ITU-R BS.1770. Te narzędzia analizują lub przetwarzają pojedynczą ścieżkę, żeby jej poziom był bardziej równy w czasie. AutoDuck działa relacyjnie: jedna ścieżka kontroluje głośność drugiej. Jeśli chodzi o eliminację szumów, tym zajmują się zupełnie inne algorytmy: redukcja szumów, bramki szumów (noise gate), filtry dolno- lub górnoprzepustowe, narzędzia typu DeNoise. Szum się tam analizuje i usuwa lub tłumi, najczęściej w oparciu o profil szumu albo próg głośności. AutoDuck nie rozpoznaje szumu ani nie czyści nagrania, tylko mechanicznie ścisza tło, gdy pojawia się ważniejszy sygnał. W produkcji multimediów na strony WWW czy do e-learningu dobrą praktyką jest łączenie kilku technik: najpierw oczyszczenie głosu z szumów i ustawienie jego stałego poziomu kompresją, a dopiero potem zastosowanie duckingu na muzyce w tle. Dzięki temu materiał brzmi profesjonalnie, a słuchacz nie musi walczyć z niedosłyszalnym komentarzem przykrytym za głośną muzyką.

Pytanie 7

Przy użyciu komendy ALTER TABLE można

A. zmienić dane w rekordach
B. zmodyfikować strukturę tabeli
C. usunąć dane z rekordu
D. skasować tabelę
Kiedy mówimy o poleceniu ALTER TABLE w SQL, to jest to naprawdę ważne narzędzie, które pozwala na zmianę struktury tabeli w bazie danych. Możemy dzięki niemu dodać nowe kolumny, zmienić rodzaj danych w istniejących czy nawet usunąć niepotrzebne kolumny. Na przykład, gdybyśmy chcieli dodać kolumnę 'data_urodzenia' do tabeli 'pracownicy', to musielibyśmy użyć takiego polecenia: ALTER TABLE pracownicy ADD data_urodzenia DATE;. To wszystko jest kluczowe, żeby nasze aplikacje mogły się rozwijać i żeby baza danych spełniała coraz to nowe wymagania. Z mojego doświadczenia wynika, że najlepiej jest zawsze robić kopię zapasową danych przed wprowadzeniem jakichkolwiek zmian. Dobrze by też było testować zmiany w środowisku, które nie jest produkcyjne, zanim coś popsujemy. Warto pamiętać, że niektóre operacje mogą wymagać zablokowania tabeli, co może skutkować tym, że użytkownicy nie będą mogli korzystać z systemu, więc trzeba to mieć na uwadze.

Pytanie 8

W danej tabeli pracownicy, polecenie MySQL eliminujące wszystkie wpisy, dla których nie została wypełniona kolumna rodzaj_umowy, ma następującą formę

A. DROP pracownicy WHERE rodzaj_umowy IS NULL;
B. DROP pracownicy FROM rodzaj_umowy = 0;
C. DELETE FROM pracownicy WHERE rodzaj_umowy IS NULL;
D. DELETE pracownicy WHERE rodzaj_umowy = 'brak';
W odpowiedziach, które zostały uznane za błędne, można dostrzec kilka istotnych nieporozumień dotyczących użycia poleceń SQL. Przykładowo, polecenie "DELETE pracownicy WHERE rodzaj_umowy = 'brak';" sugeruje, że chcesz usunąć pracowników z tabeli, którzy mają zaznaczoną wartość 'brak'. Jednak, w kontekście baz danych, wartość NULL jest odmienna od wartości tekstowej. NULL oznacza brak jakiejkolwiek wartości, co nie jest tożsame z wartością 'brak'. W związku z tym to zapytanie nie zwróci żadnych rezultatów, ponieważ nie identyfikuje rekordów, których pole 'rodzaj_umowy' jest puste. Inna odpowiedź, "DROP pracownicy WHERE rodzaj_umowy IS NULL;" jest również niepoprawna, ponieważ komenda DROP służy do usuwania całej tabeli, a nie poszczególnych rekordów. Zastosowanie WHERE w tym kontekście jest niewłaściwe, co prowadzi do całkowitego usunięcia tabeli, a nie do usunięcia tylko określonych wierszy. Z kolei "DROP pracownicy FROM rodzaj_umowy = 0;" także wykazuje fundamentalne błędy, ponieważ DROP jest używane do usuwania obiektów bazy danych, a nie do operacji na danych. Użycie FROM jest również niepoprawne w kontekście DROP, co wskazuje na niewłaściwe zrozumienie składni SQL. Tego rodzaju pomyłki mogą prowadzić do poważnych konsekwencji, takich jak utrata danych czy zniszczenie struktury bazy danych, dlatego niezwykle istotne jest zrozumienie podstawowych różnic między poszczególnymi poleceniami oraz ich zastosowaniem w praktyce.

Pytanie 9

W bazie danych sklepu internetowego, w tabeli klienci znajdują się m.in. pola całkowite: punkty, liczbaZakupow oraz pole ostatnieZakupy o typie DATE. Klauzula WHERE dla zapytania wybierającego klientów, którzy mają ponad 3000 punktów lub dokonali zakupów więcej niż 100 razy, a ich ostatnie zakupy miały miejsce co najmniej w roku 2022, przyjmuje postać

A. WHERE punkty > 3000 AND liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
B. WHERE (punkty > 3000 OR liczbaZakupow > 100) AND ostatnieZakupy >= '2022-01'
C. WHERE punkty > 3000 AND liczbaZakupow > 100 AND ostatnieZakupy >= '2022-01-01'
D. WHERE punkty > 3000 OR liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
Odpowiedź ta jest poprawna, ponieważ zastosowano w niej właściwą logikę warunków w klauzuli WHERE. Aby wybrać klientów, którzy spełniają co najmniej jeden z dwóch pierwszych warunków (posiadają więcej niż 3000 punktów lub wykonali więcej niż 100 zakupów), używamy operatora OR. Z kolei ostatni warunek, dotyczący daty ostatnich zakupów, musi łączyć się z poprzednimi za pomocą operatora AND. Oznacza to, że aby klient został uwzględniony w wynikach, musi spełniać przynajmniej jeden z warunków dotyczących punktów lub liczby zakupów, a równocześnie musi mieć ostatnie zakupy dokonane w roku 2022 lub później. Takie podejście jest zgodne z dobrymi praktykami w SQL, w których operator OR jest wykorzystywany do łączenia warunków alternatywnych, a AND do warunków koniecznych. Na przykład, jeśli chcemy analizować dane klientów w kontekście programów lojalnościowych, takie zapytanie pozwoliłoby nam na wyodrębnienie najbardziej aktywnych klientów, co może być przydatne przy planowaniu kampanii marketingowych.

Pytanie 10

W kodzie HTML5 znajduje się fragment, który zawiera błąd walidacji. Jakiego rodzaju jest to błąd?

<h6>tekst</h6>
<p>pierwsza <b>linia</b><br>
<p>Druga linia</p>
A. Znaczniki powinny być zapisane wielkimi literami.
B. Pierwszy znacznik <p> nie został zamknięty.
C. Znacznik <br> musi być zamknięty.
D. Nagłówek szóstego poziomu nie istnieje.
W tym zadaniu chodziło o rozpoznanie typowego błędu związanego z poprawnym zamykaniem znaczników HTML, a dokładniej – ze znacznikiem <p>. W przedstawionym kodzie rzeczywiście pierwszy znacznik <p> nie został zamknięty przed pojawieniem się kolejnego bloku <p>, co powoduje naruszenie struktury dokumentu. Według specyfikacji HTML5, element <p> nie powinien być zagnieżdżany ani przerwany przez inny blokowy element (w tym przypadku przez drugi <p>). Przeglądarki zwykle próbują automatycznie domykać taki znacznik, ale nie jest to dobra praktyka – takie poleganie na mechanizmach autokorekty może później prowadzić do trudnych do wykrycia błędów wizualnych albo nieprzewidywalnych efektów w stylach CSS. Z mojego doświadczenia wynika, że konsekwentne zamykanie znaczników nie tylko poprawia czytelność kodu, ale i ułatwia pracę zespołową oraz skalowanie projektu. Przykład: jeśli piszesz większy artykuł i zapomnisz zamknąć <p>, cała dalsza część tekstu może zostać potraktowana jako jeden paragraf. To potrafi solidnie namieszać, nawet w prostych stronach! Branża webowa od lat promuje zasadę – pisz zgodnie ze specyfikacją, a będziesz miał mniej problemów później. Zawsze lepiej przejrzeć strukturę dokumentu dwa razy, niż potem szukać błędów na produkcji. Przy pracy z edytorami kodu warto korzystać z funkcji podświetlania składni lub walidatorów HTML, które od razu wyłapują takie potknięcia.

Pytanie 11

Gdzie są rejestrowane błędy interpretacji kodu PHP?

A. w oknie edytora, w którym pisany jest kod PHP
B. w podglądzie zdarzeń systemu Windows
C. nigdzie, są pomijane przez przeglądarkę oraz interpreter kodu PHP
D. w logu, jeśli zostanie ustawiony odpowiedni parametr w pliku php.ini
Nieprawidłowe podejście do lokalizacji błędów w PHP może prowadzić do poważnych problemów w procesie debugowania aplikacji. Odpowiedź sugerująca, że błędy są wyświetlane w oknie edytora, w którym powstaje kod, jest myląca, ponieważ edytory kodu nie są standardowo zaprojektowane do wyłapywania błędów wykonywania kodu PHP. Edytory mogą podświetlać syntaktyczne błędy na etapie pisania kodu, ale nie rejestrują błędów runtime, które są kluczowe dla zrozumienia, dlaczego dany skrypt nie działa zgodnie z oczekiwaniami. Z kolei twierdzenie, że błędy są zapisywane w podglądzie zdarzeń systemu Windows, jest błędne, ponieważ podgląd zdarzeń służy do monitorowania zdarzeń systemowych, a nie do rejestrowania błędów aplikacji. To może prowadzić do nieporozumień i trudności w identyfikacji problemów w kodzie. Ponadto, stwierdzenie, że błędy są ignorowane przez przeglądarkę oraz interpreter PHP, jest nieprawdziwe. W rzeczywistości, jeśli nie skonfigurujemy odpowiednio systemu logowania, błędy mogą być trudne do zauważenia, co prowadzi do ignorowania ich, ale w rzeczywistości są one obecne i mogą wpłynąć na działanie aplikacji. Dlatego fundamentalne jest, aby programiści rozumieli różnicę pomiędzy błędami syntaktycznymi a runtime oraz jak efektywnie korzystać z mechanizmów logowania w PHP, aby poprawić jakość swojego kodu.

Pytanie 12

W CSS wartości: underline, overline, blink są powiązane z atrybutem

A. text-decoration
B. font-style
C. text-style
D. font-weight
Atrybut text-style to w zasadzie fikcja w CSS, bo takiego czegoś po prostu nie ma w specyfikacji. Owszem, CSS daje nam różne opcje do stylizacji tekstu, ale text-style to nie jest jedna z nich. Lepiej skupić się na text-decoration, font-style czy font-weight, bo to już są realne właściwości. Na przykład, font-style pozwala wybrać styl czcionki, jak normal, italic albo oblique, ale nie zrobisz tym efektów dekoracyjnych, takich jak podkreślenie czy nadkreslenie. Z kolei font-weight dotyczy grubości czcionki, ale też nie ma nic wspólnego z dekoracją tekstu. Wartości, które tam znajdziesz, jak normal, bold czy bolder, odnoszą się raczej do samego kroju pisma. Więc jeśli chodzi o dekorację, to musisz używać text-decoration, bo to właśnie do tego zostało stworzone, a inne właściwości mają zupełnie inne zastosowania.

Pytanie 13

W systemie MySQL przypisanie roli DBManager daje użytkownikowi dostęp do

A. wszystkich działań na bazach danych
B. zakładania kont użytkowników serwera oraz ustalania im haseł
C. nadzorowania serwera
D. wszystkich działań na bazach danych oraz użytkownikach serwera
Nadanie roli o nazwie DBManager w systemie zarządzania bazą danych MySQL przyznaje użytkownikowi pełne prawa do wykonywania wszystkich operacji na bazach danych. Oznacza to, że osoba posiadająca tę rolę ma możliwość tworzenia, modyfikowania i usuwania baz danych oraz tabel, a także zarządzania danymi wewnątrz tych struktur. Użytkownik z rolą DBManager może także wykonywać zapytania SQL, zapewniając tym samym elastyczność w zarządzaniu danymi. W praktyce, przypisanie tej roli może być niezwykle użyteczne w sytuacjach, gdy administracja bazą danych wymaga często wprowadzania zmian lub przeprowadzania analiz. Standardy bezpieczeństwa w bazach danych sugerują, aby przyznawanie takich uprawnień było ściśle kontrolowane i ograniczone do zaufanych użytkowników. Na przykład, w środowiskach produkcyjnych, rolę DBManager powinno się przyznawać tylko tym użytkownikom, którzy wykazali odpowiednią znajomość zasad działania baz danych oraz technik zarządzania danymi.

Pytanie 14

Skrypt na stronę WWW stworzony w języku PHP

A. może działać bez wsparcia serwera WWW
B. jest przetwarzany w taki sam sposób jak JavaScript
C. jest wykonywany po stronie serwera
D. jest realizowany po stronie klienta
Wielu użytkowników błędnie sądzi, że kod PHP jest przetwarzany w taki sam sposób, jak JavaScript. To nieprawda, ponieważ JavaScript jest językiem skryptowym, który działa po stronie klienta i jest wykonywany w przeglądarkach internetowych. W przeciwieństwie do tego, PHP jest językiem skryptowym działającym po stronie serwera. W rezultacie, kod PHP nie ma bezpośredniego dostępu do zasobów użytkownika, takich jak lokalny system plików czy urządzenia, co stanowi istotną różnicę w porównaniu do JavaScript. Także stwierdzenie, że PHP może być uruchomiony bez obsługi serwera WWW, jest mylące. PHP wymaga serwera, na którym będzie zainstalowany interpreter tego języka, co oznacza, że każda aplikacja PHP musi być hostowana na serwerze WWW, aby mogła być dostępna w Internecie. Warto również zwrócić uwagę na to, że wykonanie skryptu PHP nie jest widoczne dla użytkownika do momentu, gdy serwer nie przetworzy go i nie wyśle gotowej strony HTML do przeglądarki. Takie podejście wykonania po stronie serwera pozwala na lepszą ochronę danych i zarządzanie zasobami, co jest kluczowe w przypadku aplikacji internetowych, które muszą obsługiwać wiele równoległych żądań użytkowników.

Pytanie 15

Jakie skutki wywoła poniższy fragment kodu w języku JavaScript? ```n = "Napis1"; s = n.length;```

A. Przypisze zmiennej s wartość odpowiadającą długości tekstu w zmiennej n
B. Przypisze zmiennej s część napisu ze zmiennej n o długości określonej przez zmienną length
C. Wyświetli liczbę znaków napisu z zmiennej n
D. Przypisze wartość zmiennej n do zmiennej s
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 16

Aby utworzyć styl strony responsywnej dla ekranów o szerokości od 600 px do 800 px należy zastosować regułę CSS

A. @media screen and (max-width: 800px) and (min-width: 600px){/*style css*/}
B. @media (max-width: 800px) (min-width: 600px){/*style css*/}
C. @media (min-width: 800px){/*style css*/}
D. @media screen (min-width: 800px) and (max-width: 600px){/*style css*/}
Prawidłowa reguła to @media screen and (max-width: 800px) and (min-width: 600px){/*style css*/}, bo dokładnie określa zakres szerokości ekranu od 600 px do 800 px i robi to w sposób zgodny ze składnią CSS. Kluczowe są tu trzy elementy: słowo kluczowe screen, operator and oraz poprawna kolejność i zapis warunków min-width i max-width. Media queries działają tak, że przeglądarka sprawdza, czy wszystkie warunki połączone słowem and są spełnione. W tym przypadku styl zadziała tylko wtedy, gdy typ urządzenia to ekran (screen) i szerokość widoku (viewport) jest jednocześnie nie mniejsza niż 600 px i nie większa niż 800 px. To jest właśnie typowy zapis tzw. przedziału (range) w responsywnym CSS. W praktyce taki zakres wykorzystuje się np. do stylowania widoków tabletów w pozycji pionowej lub poziomej, w zależności od projektu. Możesz tam zmieniać układ kolumn z trzech na dwie, powiększać przyciski, dostosowywać rozmiary czcionek, marginesy, czy ukrywać mniej ważne elementy. Co ważne, użycie screen ogranicza stosowanie tych styli tylko do ekranów, a nie np. do wydruku (print), co jest zgodne z dobrą praktyką opisaną w specyfikacji CSS Media Queries Level 3 i nowszych. Z mojego doświadczenia dobrym nawykiem jest zawsze pilnować spójnych breakpointów, np. 480 px, 600 px, 768 px, 1024 px, i dla każdego z nich pisać media queries w dokładnie takim formacie, jak w tej poprawnej odpowiedzi. Ułatwia to późniejsze utrzymanie kodu i eliminuje dziwne „przeskoki” layoutu między rozdzielczościami. Dodatkowo warto pamiętać, że kolejność min-width i max-width nie ma znaczenia dla działania, ale przyjęcie jednej konwencji w projekcie mocno poprawia czytelność kodu zespołowego.

Pytanie 17

Wskaż kod CSS, który odpowiada layoutowi bloków 2 – 5, zakładając, że są one utworzone na podstawie podanego kodu HTML.

Ilustracja do pytania
A. Kod 4
B. Kod 1
C. Kod 3
D. Kod 2
Kod 2 jest poprawny, ponieważ najlepiej odpowiada przedstawionemu układowi bloków. W tym układzie blok 2 ma style float: left i szerokość 40%, co oznacza, że jest wypływany w lewo i zajmuje 40% dostępnej szerokości. Blok 3 również jest ustawiony z float: left, ale z szerokością 30%, co pozwala na ułożenie go obok bloku 2, o ile suma szerokości nie przekracza 100%. Blok 4 jest ustawiony z float: right i szerokością 30%, co umieszcza go po prawej stronie kontenera. Takie ustawienie float pozwala na zapełnienie przestrzeni między blokiem 2 i 4 blokiem 3, przy zachowaniu równowagi wizualnej. Blok 5 został ustawiony z float: left i szerokością 30%, co pozwala mu na umieszczenie poniżej bloku 3, ale z wyrównaniem do lewej. Taki układ jest częsty w projektowaniu stron, gdzie używa się systemu float do tworzenia responsywnych układów. W praktyce jednak, float jest coraz częściej zastępowany flexboxem lub gridem, które oferują bardziej elastyczne i intuicyjne sposoby zarządzania układem elementów na stronie.

Pytanie 18

W CSS zapis w postaci ```h1::first-letter{color:red;}``` spowoduje, że kolor czerwony będzie dotyczył

A. pierwszej litery nagłówka pierwszego poziomu
B. tekstów nagłówka pierwszego poziomu
C. pierwszej litery nagłówka drugiego poziomu
D. pierwszej linii akapitu
Pierwsza linia paragrafu nie jest poprawną odpowiedzią, ponieważ selektor h1::first-letter odnosi się konkretnie do nagłówków, a nie do paragrafów. W CSS każdy element HTML ma swoje unikalne selektory, a h1 odnosi się do nagłówka pierwszego stopnia. Z kolei tekst nagłówka pierwszego stopnia jest także niepoprawny, gdyż odnosi się do całego tekstu w elemencie h1, a nie tylko do pierwszej litery. Pseudo-element first-letter działa wyłącznie na tej pierwszej literze, a nie na całym nagłówku. Ostatnia odpowiedź, dotycząca pierwszej litery nagłówka drugiego stopnia, jest również błędna, gdyż selektor h1::first-letter nie ma zastosowania do h2, a jedynie do h1. Aby zmienić styl pierwszej litery w nagłówku drugiego stopnia, należałoby użyć selektora h2::first-letter. Różnice te są kluczowe w zrozumieniu jak działają selektory CSS oraz jak przypisane są style do konkretnych elementów w dokumentach HTML.

Pytanie 19

Zestaw atrybutów relacji, który w minimalny sposób identyfikuje każdy rekord tej relacji, posiadając wartości unikalne oraz niepuste, określamy mianem klucza

A. złożonego
B. obcego
C. kandydującego
D. głównego
Wybór odpowiedzi związanej z kluczem obcym, kandydującym lub złożonym może prowadzić do nieporozumień w zakresie zarządzania danymi w relacyjnych bazach danych. Klucz obcy to atrybut, który tworzy powiązanie między dwiema tabelami, wskazując na klucz główny innej tabeli. Oznacza to, że klucz obcy nie identyfikuje rekordów w swojej tabeli, lecz odnosi się do rekordów w innej tabeli, co jest fundamentalnie różne od roli klucza głównego. Klucz kandydujący to natomiast atrybut, który mógłby pełnić rolę klucza głównego, ale nie jest nim, ponieważ w tabeli może być wiele takich atrybutów, z których jeden ostatecznie zostaje wybrany jako klucz główny. Klucz złożony składa się z dwóch lub więcej atrybutów, które łącznie identyfikują unikalny rekord, co również różni się od prostego klucza głównego. Myląc te pojęcia, można wprowadzić chaos w strukturze bazy danych oraz naruszyć jej integralność, co może prowadzić do błędów w raportowaniu i analizie danych. W praktyce, stosowanie kluczy obcych lub złożonych w sposób niezgodny z ich definicjami prowadzi do trudności w utrzymaniu relacji pomiędzy danymi oraz może generować problemy z wydajnością w operacjach bazodanowych. Zrozumienie różnicy między tymi rodzajami kluczy jest kluczowe dla prawidłowego projektowania bazy danych oraz zapewnienia jej efektywności i przejrzystości.

Pytanie 20

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:active { background-color: Pink; }
B. td, th { background-color: Pink; }
C. tr { background-color: Pink; }
D. tr:hover { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 21

W języku JavaScript, aby zweryfikować, czy liczba leży w zakresie 100,200>, należy użyć:

A. if(liczba<100 && liczba<=200)
B. if(liczba<100 || liczba>=200)
C. if(liczba>100 && liczba <=200)
D. if (liczba>100 || liczba<=200)
Pierwsza z niepoprawnych odpowiedzi używa operatora OR (||), co jest błędne, ponieważ warunek ten sprawdza, czy liczba jest większa niż 100 LUB mniejsza lub równa 200. Taki zapis może prowadzić do sytuacji, w których liczba poza przedziałem też zostanie zaakceptowana, na przykład -50, co nie jest zgodne z intencją sprawdzania zakresu. W drugiej odpowiedzi zastosowano również operator OR, a zapis if(liczba < 100 || liczba >= 200) implikuje, że liczba może być mniejsza niż 100 lub większa lub równa 200, co również wyklucza liczby w zakresie 100-200 i jest niespójne z założonym celem. Ostatnia z błędnych odpowiedzi używa operatora AND, ale zapis if(liczba < 100 && liczba <= 200) sprawdza, czy liczba jest jednocześnie mniejsza niż 100 oraz mniejsza lub równa 200, co nie ma sensu, ponieważ nie ma liczb, które mogą spełniać obydwa warunki jednocześnie. Dlatego kluczowe jest rozróżnienie pomiędzy operatorami logicznymi AND i OR oraz zrozumienie, jak wpływają one na zakresy wartości w kontekście programowania w JavaScript.

Pytanie 22

W CSS, aby ustalić nietypowe odległości między słowami, używa się właściwości

A. white-space
B. line-spacing
C. word-spacing
D. letter-space
Właściwość line-spacing nie istnieje w CSS. W celu kontrolowania odstępów między liniami tekstu, programiści używają właściwości line-height. Ta właściwość określa wysokość linii, co bezpośrednio wpływa na odstęp między poszczególnymi wierszami tekstu, a nie między samymi wyrazami. Właściwość white-space ma zupełnie inne zastosowanie, ponieważ służy do określania, jak białe znaki, takie jak spacje i nowe linie, są traktowane w danym elemencie. Działa ona na poziomie całego tekstu, a nie na odstępach między wyrazami. Umożliwia kontrolowanie zawijania tekstu, mnożenia białych znaków oraz innych aspektów prezentacji tekstu. Z kolei letter-space nie jest standardową właściwością CSS. Odpowiednikiem tej funkcji jest właściwość letter-spacing, która kontroluje odstęp między poszczególnymi literami w słowie. Użycie letter-spacing pozwala na uzyskanie efektów typograficznych, takich jak zwiększenie przestrzeni między literami dla lepszej czytelności lub estetyki, ale nie może być używane do manipulacji odstępami między całymi wyrazami.

Pytanie 23

W języku JavaScript zdefiniowano obiekt. Aby uzyskać wartość atrybutu, można użyć następującego zapisu:

obiekt = { q: 1, w: 2, e: 3, r:4 };
A. obiekt::w
B. obiekt.w
C. obiekt->w
D. obiekt:w
Błędne odpowiedzi opierają się na nieprawidłowej interpretacji sposobu dostępu do właściwości obiektów w JavaScript. Notacja 'obiekt:w' nie jest poprawna, ponieważ nie stosuje się dwukropka do uzyskiwania dostępu do właściwości. Dwukropek jest używany w kontekście tworzenia obiektów, gdzie określa parę klucz-wartość, a nie podczas odczytywania wartości. Z kolei notacja 'obiekt::w' w JavaScript również nie ma zastosowania. Podwójny dwukropek nie jest uznawany za prawidłową operację i nie ma zastosowania w kontekście obiektów. Zresztą, w wielu innych językach programowania, takich jak C++ czy Python, używa się podwójnego dwukropka w zupełnie innym kontekście, co może prowadzić do pomyłek. Ostatnia odpowiedź 'obiekt->w' może sugerować wpływy z języków takich jak C czy C++, gdzie operator strzałki '->' jest używany do dostępu do właściwości wskaźnika na obiekt. W JavaScript jednak nie używa się wskaźników, a dostęp do właściwości obiektu odbywa się przez notację kropkową lub notację indeksu. Właściwe zrozumienie tych koncepcji jest kluczowe dla efektywnego programowania w JavaScript, a błędne podejście do notacji prowadzi do frustracji i błędów w kodzie.

Pytanie 24

Który z podanych formatów pozwala na zapis zarówno dźwięku, jak i obrazu?

A. WAV
B. MP4
C. PNG
D. MP3
W przypadku formatów MP3, PNG i WAV, każdy z nich jest zaprojektowany do przechowywania jedynie jednego typu danych, co wyklucza ich zdolność do jednoczesnego zapisu dźwięku i obrazu. MP3 to format kompresji dźwięku opracowany głównie do przechowywania muzyki i innych nagrań audio. Choć jest szeroko stosowany i oferuje wysoką jakość dźwięku przy niewielkim rozmiarze pliku, nie ma możliwości zapisu danych wizualnych. Z kolei PNG jest formatem graficznym, który obsługuje przechowywanie obrazów rastrowych, oferując przezroczystość i bezstratną kompresję, ale nie jest przeznaczony do przechowywania dźwięku. Format WAV, z drugiej strony, jest standardem dla przechowywania dźwięku w postaci nieskompresowanej, co zapewnia wysoką jakość audio, ale również nie wspiera zapisu wideo. W związku z tym, wszystkie te formaty mają swoje specyficzne zastosowania, ale żaden z nich nie jest w stanie zrealizować funkcji zapisu zarówno dźwięku, jak i obrazu, co czyni MP4 jedynym odpowiednim wyborem w tym kontekście.

Pytanie 25

Wskaź, która instrukcja jest równoważna z instrukcją switch w języku PHP?

Ilustracja do pytania
A. Instrukcja 2
B. Instrukcja 1
C. Instrukcja 3
D. Instrukcja 4
Instrukcja switch w PHP służy do wykonywania różnych bloków kodu w zależności od wartości wyrażenia. W podanym przykładzie, jeśli zmienna $liczba wynosi 10 lub 20, zostanie zwiększona o 1. W przeciwnym razie $liczba zostanie ustawiona na 0. Instrukcja 2 używa warunku if z operatorem or, który sprawdza, czy $liczba jest równa 10 lub 20, co odpowiada logice w switch. Dzięki temu, mimo że struktura instrukcji if różni się od switch, logika działania jest identyczna. Praktycznie, użycie instrukcji if z operatorem or w takich sytuacjach jest czytelne i wydajne zwłaszcza jeśli mamy do czynienia z ograniczoną liczbą warunków. Warto zauważyć, że switch jest bardziej efektywny, gdy mamy wiele przypadków do sprawdzenia, ale if z operatorami logicznymi jest bardziej elastyczny, co czyni go przydatnym w różnorodnych scenariuszach programistycznych. Dobre praktyki wskazują na wybór struktury kontrolnej w zależności od złożoności i specyfiki problemu, co pozwala na optymalizację czytelności i utrzymania kodu.

Pytanie 26

Jakie mechanizmy powinno się wykorzystać do stworzenia ankiety w języku działającym po stronie serwera, tak aby wyniki były zapisane w postaci małego pliku u użytkownika?

A. sesji
B. tablicy globalnej $_FILES
C. bazy danych SQL
D. ciasteczek
Przy wyborze nieodpowiednich mechanizmów do przechowywania wyników ankiety, warto zrozumieć, dlaczego inne opcje nie są właściwe. Używanie tablicy globalnej $_FILES jest całkowicie niewłaściwe, ponieważ ta tablica służy do obsługi przesyłanych plików, a nie do przechowywania danych w formie ankiety. Z kolei sesje, mimo że pozwalają na przechowywanie danych użytkownika w kontekście danej sesji, są bardziej odpowiednie do przechowywania tymczasowych informacji, które nie wymagają długoterminowego przechowywania. W przypadku ankiety, gdzie istotne jest zachowanie wyników pomiędzy różnymi sesjami, sesje mogą być nieefektywne i prowadzić do ich utraty po zakończeniu sesji przeglądarki. Bazy danych SQL, chociaż są potężnym narzędziem do przechowywania danych, wymagają większej złożoności w implementacji oraz zarządzaniu danymi, co może być zbędne w przypadku prostych ankiet, gdzie ciasteczka mogą spełnić wystarczające wymagania. Typowym błędem myślowym jest zakładanie, że każda forma przechowywania danych wymaga skomplikowanej infrastruktury, podczas gdy w wielu przypadkach prostsze rozwiązania, takie jak ciasteczka, oferują wystarczającą funkcjonalność w bardziej ergonomicznym podejściu do programowania aplikacji webowych.

Pytanie 27

Angielskim tłumaczeniem słowa "zapytanie", używanym w bazach danych SQL jest

A. query.
B. keyword.
C. select.
D. asterisk.
W bazach danych SQL słowo „zapytanie” ma bardzo konkretne znaczenie i w języku angielskim odpowiada mu termin „query”. Częsty błąd polega na tym, że myli się samo zapytanie z jego fragmentami albo z innymi elementami składni SQL. Wiele osób, które dopiero zaczynają z SQL, widząc w przykładach słowo SELECT, automatycznie myśli: „to chyba jest to zapytanie”. Tymczasem SELECT jest tylko jednym z tzw. słów kluczowych (keywords) języka SQL, które rozpoczyna określony typ zapytania, najczęściej służący do odczytu danych. Całe zapytanie to pełna instrukcja, np. „SELECT * FROM users WHERE active = 1;” – i to właśnie jest query, a nie samo słowo SELECT. Podobnie bywa z terminem „keyword”. Keyword, czyli słowo kluczowe, to element składni języka, taki jak SELECT, FROM, WHERE, INSERT, UPDATE. Są to zarezerwowane wyrazy, których nie powinniśmy używać jako nazw tabel czy kolumn bez odpowiedniego cytowania. Jednak keyword to tylko składnik zapytania, a nie jego ogólna nazwa. Mylenie „query” z „keyword” wynika zwykle z tego, że w opisach składni SQL dużo mówi się o słowach kluczowych i początkujący podświadomie podmieniają pojęcia. Jeszcze inna pomyłka to skojarzenie słowa „zapytanie” z „asterisk”, czyli gwiazdką „*”. Gwiazdka w SQL oznacza po prostu „wszystkie kolumny” w kontekście danego SELECT-a. Gdy piszemy „SELECT * FROM table;”, to gwiazdka jest tylko skrótem, który każe silnikowi bazy zwrócić wszystkie kolumny z danej tabeli. Nie ma ona nic wspólnego z nazwą samego zapytania. Dobra praktyka polega na tym, żeby jasno rozdzielać te pojęcia: query – całe zapytanie SQL; keywords – słowa kluczowe budujące to zapytanie; asterisk – specjalny symbol używany np. w SELECT do pobierania wszystkich kolumn. Takie uporządkowanie słownictwa bardzo ułatwia później czytanie dokumentacji, materiałów anglojęzycznych i rozmowę z innymi programistami czy administratorami baz danych.

Pytanie 28

W systemie MySQL trzeba użyć polecenia REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian jedynie w definicji struktury bazy danych. Odpowiednia komenda do odebrania tych uprawnień ma postać

A. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
C. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
D. REVOKE ALL ON tabela1 FROM 'anna'@'locaihost'
W analizie odpowiedzi, które są niepoprawne, kluczowe jest zrozumienie, jakie uprawnienia są odbierane i dlaczego to ma znaczenie. Odpowiedzi takie jak 'REVOKE ALL ON tabela1 FROM 'anna'@'localhost'' są niewłaściwe, ponieważ polecenie REVOKE ALL odbiera wszystkie prawa użytkownikowi, co może być zbyt drastycznym krokiem. W kontekście zarządzania uprawnieniami, ważne jest, aby podejść do tego z miarą i precyzją, a nie stosować ogólne odbieranie wszystkich praw. Ponadto, odpowiedzi, które obejmują niewłaściwe kombinacje uprawnień, takie jak 'REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'', są również błędne. Odbieranie prawa UPDATE nie jest zgodne z celem pytania, które dotyczy jedynie strukturalnych zmian, a nie wprowadzania danych. Właściwe podejście do konfiguracji uprawnień powinno koncentrować się na ograniczaniu dostępu użytkowników tylko tam, gdzie jest to absolutnie konieczne, a nie na eliminacji ich zdolności do pracy z danymi w ogóle. Użytkownicy często popełniają błąd myślowy, myśląc, że odebranie zbyt wielu uprawnień jest rozwiązaniem problemu bezpieczeństwa, podczas gdy w rzeczywistości może to prowadzić do zablokowania niezbędnych operacji, co zagraża efektywności pracy organizacji.

Pytanie 29

Rozmiary ekranu w formacie 16:9 (zakładając, że piksel jest kwadratem) można osiągnąć przy rozdzielczości

A. 800 na 480 pikseli
B. 1366 na 768 pikseli
C. 2560 na 2048 pikseli
D. 320 na 240 pikseli
Odpowiedź 1366 na 768 pikseli jest poprawna, ponieważ proporcja szerokości do wysokości wynosi dokładnie 16:9. Aby to obliczyć, dzielimy szerokość przez wysokość: 1366 / 768 = 1,78, co jest bliskie wartości 1,77 (16:9). Proporcje 16:9 stały się standardem w telewizji wysokiej rozdzielczości oraz w produkcji wideo, co oznacza, że są szeroko stosowane w przemysłach związanych z mediami i technologią. Przykładem zastosowania tej rozdzielczości może być wyświetlanie filmów na nowoczesnych telewizorach, gdzie forma obrazu 16:9 pozwala na pełne wykorzystanie ekranu bez czarnych pasków po bokach. Stosując to w projektach multimedialnych, warto zawsze dążyć do zgodności z tymi standardami, aby zapewnić optymalne wrażenia wizualne dla użytkowników. Zrozumienie tych proporcji jest kluczowe dla profesjonalistów zajmujących się grafiką, filmem i projektowaniem UX/UI.

Pytanie 30

Wskaż polecenie do iteracji.

A. else
B. switch
C. for
D. throw
Odpowiedzi 'else', 'throw' i 'switch' nie są instrukcjami iteracyjnymi, a ich zastosowanie w programowaniu jest zgoła odmienne. 'Else' jest częścią struktury warunkowej, która pozwala na wykonanie bloku kodu, gdy warunek if nie jest spełniony. Nie ma ona możliwości iteracji, a jedynie warunkowe wykonanie, co czyni ją nieodpowiednią w kontekście tego pytania. Z kolei 'throw' jest kluczowym słowem w zarządzaniu wyjątkami w wielu językach programowania. Umożliwia ono generowanie wyjątków, co jest niezbędne do obsługi błędów, ale również nie ma związku z iteracją. 'Throw' nie powtarza kodu, a jedynie przerywa jego normalny bieg, co również wyklucza tę odpowiedź. Z kolei 'switch' to instrukcja wielokrotnego wyboru, która pozwala na wybór jednego z wielu bloków kodu na podstawie wartości zmiennej. Choć jest przydatna w sytuacjach, gdzie mamy do czynienia z wieloma warunkami, nie zapewnia mechanizmu iteracji i nie pozwala na powtarzanie operacji, jak to ma miejsce w przypadku instrukcji 'for'. Dlatego też, mimo że wszystkie te konstrukcje mają swoje miejsce w programowaniu, nie są one odpowiednie w kontekście pytania o instrukcję iteracyjną.

Pytanie 31

Określ rodzaj relacji między tabelami: Tabela1 oraz Tabela3?

Ilustracja do pytania
A. Jeden do jednego
B. Wiele do jednego
C. Jeden do wielu
D. Wiele do wielu
Relacja wiele do wielu pomiędzy tabelami w bazie danych oznacza, że jeden rekord w pierwszej tabeli może być powiązany z wieloma rekordami w drugiej tabeli i odwrotnie. To jest powszechne w sytuacjach, gdzie istnieje potrzeba przechowywania złożonych asocjacji danych. W przedstawionym schemacie, Tabela1 reprezentuje uczniów, a Tabela3 nauczycieli. Ponieważ jeden uczeń może być uczony przez wielu nauczycieli, a jeden nauczyciel może uczyć wielu uczniów, Tabela2 stanowi tabelę pośrednią, często zwaną tabelą asocjacyjną, która przechowuje klucze obce z obu tabel, tworząc relację wiele do wielu. Tego typu struktura jest kluczowa, gdy chcemy modelować bardziej złożone związki danych i zapewnić łatwy dostęp do nich, co jest standardową praktyką w relacyjnych bazach danych. Użycie tabel asocjacyjnych pozwala na efektywne zarządzanie danymi i jest zgodne z normą normalizacji bazy danych, eliminując redundancję i zapewniając integralność danych. W kontekście praktycznym, takie podejście umożliwia elastyczne zapytania i analizy, co jest fundamentalne w zarządzaniu danymi w dużych systemach informacyjnych.

Pytanie 32

Bitmapa stanowi typ obrazu

A. rastrowym
B. analogowym
C. wektorowym
D. interakcyjnym
Bitmapa, znana również jako obraz rastrowy, jest jednym z najpopularniejszych formatów graficznych używanych w różnych aplikacjach komputerowych, takich jak edytory zdjęć czy programy graficzne. Obrazy rastrowe składają się z siatki pikseli, gdzie każdy piksel ma przypisaną określoną wartość koloru. Przykłady popularnych formatów bitmapowych to JPEG, PNG, oraz BMP. W kontekście praktycznym, bitmapy są idealne do przedstawiania zdjęć i szczegółowych ilustracji, ponieważ mogą zachować bogactwo detali i kolorów. Główne zastosowanie bitmap obejmuje grafikę internetową, projektowanie stron, a także obróbkę zdjęć. W branży graficznej stosuje się standardy, takie jak RGB i CMYK, które definiują, jakie kolory mogą być użyte w obrazach rastrowych. Aby uzyskać najlepszą jakość wizualną, ważne jest, aby dostosować rozdzielczość obrazów do przeznaczenia, co jest kluczowe w profesjonalnych projektach graficznych. Właściwe zrozumienie bitmap jest fundamentem dla każdego, kto zajmuje się grafiką komputerową czy projektowaniem wizualnym.

Pytanie 33

Atrybut value w elemencie formularza XHTML

 <input type="text" name="name" value="value">
A. określa domyślną wartość
B. określa nazwę pola
C. definiuje maksymalną długość pola
D. ustawia pole jako tylko do odczytu
Wiele osób może błędnie interpretować funkcję atrybutu 'value' w kontekście formularzy w XHTML, myląc go z innymi atrybutami lub funkcjami. Istnieje przekonanie, że 'value' może wskazywać nazwę pola, co jest nieścisłe, ponieważ nazwa pola jest definiowana przez atrybut 'name'. W rzeczywistości, atrybut 'value' nie ma wpływu na identyfikację pola, a jego jedyną rolą jest określenie wartości, która pojawia się w polu. Ponadto, niektórzy mogą myśleć, że atrybut ten ustawia pole tylko do odczytu, co również jest błędne. Pole do odczytu ustawia się za pomocą atrybutu 'readonly', natomiast 'value' jedynie definiuje zawartość początkową. Również koncepcja ograniczenia długości pola nie jest związana z 'value'; to zadanie spełnia atrybut 'maxlength'. Typowe błędy myślowe związane z tym zagadnieniem obejmują mieszanie funkcji atrybutów oraz nieznajomość specyfiki działania formularzy. Ważne jest, aby zrozumieć, jak atrybuty współdziałają w formularzach, aby poprawnie projektować interfejsy użytkownika, które są zarówno funkcjonalne, jak i intuicyjne. Zrozumienie różnic między tymi atrybutami jest kluczowe dla prawidłowego tworzenia aplikacji internetowych zgodnych z najlepszymi praktykami i standardami webowymi.

Pytanie 34

Aby zweryfikować konfigurację w pliku php.ini, można uruchomić skrypt PHP, który zawiera zapis

A. <?php phpcredits(); ?>
B. <?php echo phpversion(); ?>
C. <?php ini_set(); ?>
D. <?php phpinfo(); ?>
Odpowiedź <?php phpinfo(); ?> jest poprawna, ponieważ funkcja phpinfo() generuje szczegółowy raport na temat konfiguracji PHP, w tym informacje o zainstalowanych rozszerzeniach, wersji PHP, oraz ustawieniach w pliku php.ini. W praktyce, ta funkcja jest niezwykle przydatna przy diagnozowaniu problemów związanych z konfiguracją serwera, ponieważ dostarcza pełen wgląd w aktualne ustawienia środowiska, co pozwala na szybkie zidentyfikowanie ewentualnych niezgodności. Przykładem zastosowania może być sytuacja, w której programista chce sprawdzić, czy określone rozszerzenie PHP jest aktywne lub jakie są wartości domyślne dla różnych dyrektyw, takich jak memory_limit czy upload_max_filesize. Dobrą praktyką w sytuacjach produkcyjnych jest ograniczenie dostępu do skryptów wywołujących phpinfo(), aby nie ujawniać wrażliwych informacji o serwerze osobom nieupoważnionym. Myśląc o bezpieczeństwie aplikacji, warto usunąć takie skrypty po zakończeniu diagnostyki.

Pytanie 35

W języku HTML, aby dodać na stronę obrazek przechowywany w formacie JPG, należy użyć znacznika

A. <img>
B. <src>
C. <jpg>
D. <table>
W analizie odpowiedzi, które nie są poprawne, możemy zauważyć, że <src> nie jest samodzielnym znacznikiem HTML, lecz atrybutem, który powinien być użyty wewnątrz znacznika <img>. Atrybut ten służy do określenia lokalizacji pliku graficznego. Bez poprawnego znacznika obraz nie zostanie wyświetlony na stronie, co pokazuje, jak istotne jest użycie właściwej struktury kodu. Z kolei <jpg> nie jest znakiem HTML i nie ma żadnej funkcji w kontekście osadzania obrazów. To jedynie rozszerzenie pliku, które wskazuje na format obrazu, lecz nie jest to znacznik, który można użyć w kodzie HTML. Próba użycia <jpg> w kodzie nie przyniesie żadnych efektów wizualnych na stronie i spowoduje błąd w interpretacji kodu przez przeglądarkę. Natomiast <table> jest znacznikiem używanym do tworzenia tabel w HTML, co zdecydowanie nie jest związane z osadzaniem obrazów. Użycie tego znacznika w kontekście obrazów jest błędne, ponieważ nie ma on żadnej funkcji, która by wspierała wyświetlanie grafik. Tabele mają na celu organizację danych w formie siatki, co jest zupełnie odmiennym zastosowaniem, a ich użycie w tym kontekście prowadziłoby do mylącego i nieprawidłowego wyświetlania treści na stronie.

Pytanie 36

Tabela filmy dysponuje kluczem głównym id oraz kluczem obcym rezyserlD. Tabela rezyserzy posiada klucz główny id. Obie tabele są połączone relacją jeden do wielu, gdzie rezyserzy są po stronie jeden, a filmy po stronie wiele. Jak należy zapisać kwerendę SELECT, aby połączyć tabele filmy i rezyserzy?

A. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...
B. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.filmylD ...
C. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...
D. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmylD ...
Wybór błędnych opcji opiera się na nieprawidłowym zrozumieniu relacji między tabelami oraz zasad normalizacji danych. W pierwszej z niepoprawnych odpowiedzi użycie 'filmy.rezyserlD = rezyserzy.filmylD' błędnie zakłada, że 'filmylD' jest kluczem w tabeli 'rezyserzy', podczas gdy w rzeczywistości jest to klucz obcy w tabeli 'filmy'. Może to prowadzić do nieporozumień podczas analizy danych. W drugiej odpowiedzi, porównanie 'filmy.id = rezyserzy.filmylD' wprowadza dodatkowy błąd, ponieważ klucz 'id' w tabeli 'filmy' jest niezwiązany z 'filmylD', co skutkuje odwołaniem do niewłaściwych danych. Z kolei trzecia odpowiedź, w której porównuje się 'filmy.id = rezyserzy.id', całkowicie ignoruje relację między tymi tabelami, co prowadzi do niepoprawnych wyników, jako że oba 'id' są kluczami głównymi w swoich tabelach i nie powinny być ze sobą porównywane. Typowe błędy myślowe w tym przypadku wynikają z nieprawidłowego rozumienia działania kluczy obcych oraz sposobu, w jaki tabele są ze sobą powiązane. Kluczowe jest, aby przy projektowaniu bazy danych zrozumieć, jak relacje między tabelami wpływają na struktury zapytań. Aby skutecznie pracować z bazami danych, ważne jest, aby przestrzegać zasad normalizacji oraz stosować odpowiednie klucze w relacjach, co zapewnia integralność danych i poprawność wyników zapytań.

Pytanie 37

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

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

Pytanie 38

Która z pętli w PHP umożliwia przeprowadzenie operacji na wszystkich elementach tablicy z automatycznym nadawaniem indeksów jej elementom?

A. for
B. foreach
C. while
D. do...while
Wybór pętli 'for' nie jest odpowiedni, gdyż wymaga ręcznego zarządzania indeksami, co może prowadzić do błędów, szczególnie w przypadku zmieniających się tablic. Pętla 'while' działa na zasadzie powtarzania bloku kodu do momentu spełnienia określonego warunku, co również nie jest optymalne do iteracji po tablicach, ponieważ wymaga dodatkowego zarządzania wskaźnikiem lub indeksem. Z kolei 'do...while' jest podobne do 'while', lecz gwarantuje przynajmniej jedno wykonanie bloku kodu, co w kontekście iteracji po tablicy nie jest koniecznym wymogiem. Pętle te, mimo że są funkcjonalne w swoich kontekstach, nie są zoptymalizowane do pracy z tablicami w PHP, co czyni je mniej praktycznymi w tej konkretnej sytuacji. Typowe błędy myślowe prowadzące do wyboru niewłaściwej pętli to nieznajomość różnic w zastosowaniu tych konstrukcji oraz niewłaściwe ocenianie kontekstu, w którym są one używane. Zrozumienie struktury danych i odpowiednich narzędzi do ich przetwarzania jest kluczowe dla skutecznego programowania.

Pytanie 39

Który atrybut pozwala na wskazanie lokalizacji pliku graficznego w znaczniku <img>?

A. href
B. link
C. alt
D. src
Wybór odpowiedzi, które nie odnoszą się do atrybutu 'src', może wynikać z niepełnego zrozumienia roli każdego z tych atrybutów w kontekście znacznika <img>. Atrybut 'alt' jest używany do opisu obrazów, co jest niezwykle istotne z punktu widzenia dostępności. Nie jest to jednak atrybut odpowiedzialny za lokalizację pliku graficznego, lecz ma na celu dostarczenie informacji o treści obrazu, gdy nie może on być wyświetlony lub dla użytkowników korzystających z technologii asystujących. 'Href' jest atrybutem używanym w znaczniku <a> do wskazywania adresu URL, do którego prowadzi odnośnik, a nie do lokalizowania obrazów. Z kolei 'link' nie jest standardowym atrybutem dla znacznika <img> i nie ma związku z wyświetlaniem obrazów, lecz odnosi się do relacji między dokumentami w nagłówku HTML. Te pomyłki mogą wynikać z nieprecyzyjnego zrozumienia, które atrybuty odpowiadają za konkretne funkcje w HTML. W praktyce, kluczowe jest, aby rozróżniać role różnych atrybutów oraz znać ich zastosowanie, co pozwoli na tworzenie bardziej profesjonalnych i funkcjonalnych stron internetowych. Dbanie o właściwe użycie atrybutów, takich jak 'src', 'alt' czy 'href', jest niezbędne, by zapewnić poprawne działanie oraz dostępność tworzonych rozwiązań internetowych.

Pytanie 40

W języku PHP w konstrukcji switch powinno się znajdować

A. przynajmniej dwie instrukcje case
B. konstrukcja switch(wyrażenie)
C. instrukcja break po każdej instrukcji case
D. instrukcja default
Wybór odpowiedzi, która sugeruje, że instrukcja default jest wymagana w konstrukcji switch, jest błędny z kilku powodów. Po pierwsze, instrukcja default jest opcjonalna, a jej obecność jest uzasadniona tylko w przypadku, gdy chcemy zdefiniować domyślne działanie, gdy żaden z przypadków nie pasuje do wartości wyrażenia. Brak default nie wpływa na poprawność działania switch. Co więcej, wiele programistów decyduje się na pominięcie tej instrukcji, gdyż nie ma takiej potrzeby. Kolejną niepoprawną odpowiedzią jest twierdzenie, że w switch musi występować przynajmniej dwie instrukcje case. W rzeczywistości konstrukcja switch może składać się z jednego przypadku, co oznacza, że programista ma pełną swobodę w definiowaniu liczby użytych case'ów, w zależności od potrzeb aplikacji. Ostatni błędny wybór odnosi się do konieczności użycia instrukcji break po każdej instrukcji case. Choć stosowanie break jest dobrą praktyką, ponieważ zapobiega 'spadaniu' do kolejnych case'ów, jego brak nie czyni całej konstrukcji switch nieważną. Gdy break nie jest użyty, kod przechodzi do kolejnych instrukcji case, co może prowadzić do niezamierzonych wyników, ale nie wpływa na samą poprawność konstrukcji switch. Dlatego wszystkie te odpowiedzi są niepoprawne w kontekście wymagań dotyczących stosowania instrukcji switch w PHP.