Wyniki egzaminu

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

Egzamin niezdany

Wynik: 12/40 punktów (30,0%)

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Wskaż znacznik, który umożliwia zapis tekstu, który jest niepoprawny lub niewłaściwy, w formie przekreślonej?

A. <b> </b>
B. <sub> </sub>
C. <s> </s>
D. <em> </em>
<s> jest znacznikiem HTML, który służy do oznaczania tekstu jako przekreślonego, co wskazuje na to, że dany fragment tekstu jest nieprawidłowy lub nieaktualny. Zastosowanie tego znacznika ma na celu poprawę czytelności oraz zrozumiałości treści, informując użytkowników o tym, że pewne informacje są już nieaktualne. Użycie <s> w dokumentach HTML jest zgodne z wytycznymi W3C, co zapewnia jego wszechstronność w kontekście standardów sieciowych. Przykładem zastosowania tego znacznika może być sytuacja, gdy na stronie internetowej prezentowane są wyniki, a niektóre z nich uległy zmianie, na przykład: <s>Stara cena: 100 PLN</s> Nowa cena: 80 PLN. W ten sposób użytkownicy mają jasny obraz, co uległo zmianie. Warto również dodać, że zastosowanie <s> może mieć zastosowanie w kontekście SEO, gdyż poprawia dostępność treści dla osób korzystających z technologii wspomagających, co może pozytywnie wpłynąć na ranking strony w wynikach wyszukiwania.

Pytanie 2

W bazie danych znajduje się tabela pracownicy z kolumnami: id, imie, nazwisko, pensja. W nadchodzącym roku postanowiono zwiększyć wynagrodzenie wszystkim pracownikom o 100 zł. Zmiana ta w bazie danych będzie miała formę

A. UPDATE pracownicy SET pensja = 100;
B. UPDATE pensja SET 100;
C. UPDATE pensja SET +100;
D. UPDATE pracownicy SET pensja = pensja +100;
Pierwsza z niepoprawnych odpowiedzi nie jest właściwa, ponieważ instrukcja 'UPDATE pracownicy SET pensja = 100;' całkowicie nadpisuje dotychczasowe wartości pensji wszystkich pracowników, ustawiając je na stałą kwotę 100 zł. Takie podejście prowadziłoby do utraty dotychczasowych danych o wynagrodzeniach, co jest niezgodne z zamierzonym celem podwyżki. Kolejna błędna odpowiedź, 'UPDATE pensja SET +100;', jest syntaktycznie niepoprawna. W SQL nie możemy aktualizować wartości bez określenia, która tabela ma zostać zmodyfikowana. 'pensja' nie jest nazwą tabeli, więc system baz danych zgłosi błąd. Dodatkowo, brak odniesienia do bieżącej wartości pensji sprawia, że instrukcja nie wykonuje zamierzonej operacji. Ostatnia z nieprawidłowych odpowiedzi, 'UPDATE pensja SET 100;', również jest błędna, ponieważ nie definiuje, jaką wartość ma przyjąć pensja. Brakuje operatora i konkretnej kolumny, co skutkuje błędną składnią. W SQL każda aktualizacja musi być precyzyjna i jasno określać, które kolumny i tabele są modyfikowane, aby uniknąć błędów i osiągnąć zamierzony rezultat.

Pytanie 3

Ograniczanie dostępu do niektórych pól lub metod obiektów danej klasy, tak aby mogły być one wykorzystywane wyłącznie przez wewnętrzne metody tej klasy lub funkcje zaprzyjaźnione, to

A. hermetyzacja
B. polimorfizm
C. konkatenacja
D. dziedziczenie
Hermetyzacja to kluczowa koncepcja programowania obiektowego, która polega na ograniczaniu dostępu do pewnych pól i metod danej klasy, aby chronić integralność danych i zapewnić ich poprawne użycie. Przykładem hermetyzacji jest użycie modyfikatorów dostępu, takich jak 'private' i 'protected', co pozwala na ukrycie implementacji od użytkowników klasy, a jednocześnie umożliwia dostęp do tych elementów wewnętrznym metodom klasy. Dzięki hermetyzacji programiści mogą wprowadzać zmiany w implementacji bez wpływu na kod zewnętrzny, co wspiera zasady SOLID i ułatwia zarządzanie dużymi systemami. Rekomendowane praktyki w programowaniu obiektowym zalecają, aby klasy były odpowiedzialne za zarządzanie swoimi danymi, a dostęp do tych danych powinien odbywać się wyłącznie poprzez zdefiniowane interfejsy, takie jak metody publiczne, co pozwala na kontrolowanie operacji i walidację danych. W ten sposób hermetyzacja przyczynia się do większej niezawodności, czytelności oraz łatwości w testowaniu aplikacji.

Pytanie 4

Obraz o rozdzielczości 72 PPI oznacza, że ma 72 piksele na

A. milimetr.
B. megabajt.
C. cal.
D. centymetr.
Rozbieżność w tym pytaniu wynika głównie z nieporozumień związanych z jednostkami miary i z tym, jak opisujemy rozdzielczość w grafice komputerowej. Skrót PPI oznacza „pixels per inch”, czyli dosłownie „piksele na cal”. Kluczowy jest tutaj właśnie cal, a nie milimetr, centymetr czy – tym bardziej – megabajt. W grafice i przy specyfikacjach monitorów, tabletów graficznych czy ekranów smartfonów od lat stosuje się jednostki anglosaskie, więc standardem stał się cal. Dlatego rozdzielczość 72 PPI oznacza 72 piksele upakowane w jednym calu długości. Częsty błąd polega na próbie „uładnienia” tego do systemu metrycznego i intuicyjnym założeniu, że skoro w Polsce używamy milimetrów i centymetrów, to PPI też mogłoby się do nich odnosić. Technicznie można przeliczyć, ile to będzie pikseli na centymetr, ale wtedy zmienia się jednostka i powinniśmy używać innego zapisu, np. „ppcm” (pixels per centimeter), a nie PPI. Myślenie typu „72 PPI to 72 piksele na centymetr” jest więc błędne, bo ignoruje definicję samego skrótu. Jeszcze dalej od prawdy jest skojarzenie z megabajtami. Megabajt to jednostka pojemności danych, a nie gęstości pikseli w przestrzeni fizycznej. Rozmiar pliku w MB zależy od liczby pikseli, głębi koloru, kompresji i formatu, ale nie jest bezpośrednią jednostką rozdzielczości w sensie przestrzennym. PPI opisuje, jak gęsto piksele są rozmieszczone na fizycznej długości (calu), natomiast megabajty opisują, ile danych potrzeba do zapisania obrazu w pamięci. Typowy błąd myślowy to wrzucanie do jednego worka pojęć: rozdzielczość w pikselach (np. 1920×1080), gęstość PPI oraz wielkość pliku w MB. To są trzy różne parametry. Dobra praktyka w branży graficznej to trzymanie się poprawnych definicji: PPI zawsze odnosi się do cala, a jeśli chcemy pracować w centymetrach lub milimetrach, używamy przeliczeń, ale nie zmieniamy znaczenia skrótu.

Pytanie 5

Jak przeglądarka zaprezentuje kod HTML formularza?

<form>
stanowisko: <input type="text"><br>
obowiązki:<br>
<input type="checkbox" name="obowiazek1" value="1" disabled checked>
sporządzanie dokumentacji<br>
<input type="checkbox" name="obowiazek2" value="2" checked>
pisanie kodu<br>
<input type="checkbox" name="obowiazek3" value="3">
testy oprogramowania<br>
</form>
Ilustracja do pytania
A. D
B. C
C. B
D. A
Prawidłowa odpowiedź to D ponieważ kod HTML formularza definiuje trzy pola wyboru typu checkbox z różnymi atrybutami wpływającymi na ich stan początkowy. Pierwsze pole wyboru dotyczące sporządzania dokumentacji posiada atrybuty disabled i checked co oznacza że będzie zaznaczone ale nieaktywne dla użytkownika. Oznacza to że użytkownik nie może zmienić jego stanu w przeglądarce. Drugie pole dotyczące pisania kodu ma tylko atrybut checked co oznacza że będzie zaznaczone i dostępne do edycji. Trzecie pole dotyczące testów oprogramowania nie posiada żadnego z tych atrybutów więc będzie domyślnie niezaznaczone i edytowalne. To zachowanie jest zgodne ze standardami HTML i dobrymi praktykami kodowania gdzie atrybuty kontrolują interakcje użytkownika z formularzami. Wiedza ta jest kluczowa dla projektantów stron internetowych aby zapewnić prawidłowe działanie formularzy i poprawne doświadczenie użytkownika. Formularze są podstawowym elementem interakcji z użytkownikiem dlatego zrozumienie ich działania jest niezbędne w tworzeniu funkcjonalnych i intuicyjnych interfejsów użytkownika.

Pytanie 6

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

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

Pytanie 7

W tabeli mieszkancy, która zawiera pola id, imie, nazwisko, ulica, numer oraz czynsz (kwota całkowita), należy uzyskać informacje o osobach zamieszkujących ulicę Mickiewicza pod numerami 71, 72, 80, których czynsz nie przekracza 1000 zł. Klauzula WHERE w zapytaniu powinna wyglądać następująco

A. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000
B. WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR czynsz < 1000
C. WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000
D. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czynsz < 1000
Jak patrzę na twoje odpowiedzi, to widzę, że główny problem leży w tym, jak używasz operatorów logicznych i jak stawiasz warunki. W pierwszej próbie, zastosowanie OR, czyli 'ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000', prowadzi do tego, że dostaniesz dane wszystkich mieszkańców, nawet tych z innych ulic, co zupełnie nie jest tym, czego szukamy. W drugiej opcji, klauzula 'numer > 70 AND numer < 81' znowu nie daje ci dokładnych numerów mieszkań, bo może zwrócić wyniki spoza naszego zakresu. Trzecia wersja też nie wychodzi najlepiej, bo łączy operator OR i przez to dostajesz dane o czynszu poniżej 1000 zł, niezależnie od lokalizacji. Kluczowy błąd w zrozumieniu SQL polega na tym, że AND i OR różnią się w swoich zastosowaniach i wpływają na końcowy wynik. Ogólnie, lepiej starannie przemyśleć zapytania SQL i testować je na małych zbiorach danych, żeby nie wpaść w pułapki.

Pytanie 8

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr { background-color: Pink; }
B. td, th { background-color: Pink; }
C. tr:active { 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 9

Jakie typy danych w języku C++ służą do reprezentacji liczb zmiennoprzecinkowych?

A. double, bool
B. float, double
C. double, short
D. float, long
Wybór odpowiedzi, które zawierają typy danych inne niż 'float' i 'double', wskazuje na niezrozumienie podstawowych koncepcji typów danych w języku C++. Typ 'bool' to typ logiczny, który przechowuje jedynie dwie wartości: prawda (true) lub fałsz (false). Nie ma możliwości przechowywania wartości liczbowych, a tym bardziej rzeczywistych. Typy całkowite, takie jak 'short', czy 'long', są wykorzystywane do reprezentacji liczb całkowitych, co wyklucza możliwość użycia ich do reprezentacji wartości zmiennoprzecinkowych. Odpowiedzi, które łączą 'double' z innymi nieodpowiednimi typami, mogą prowadzić do błędnych wniosków, ponieważ podkreślają mylne założenie, że dowolny typ liczbowy mógłby być użyty w obliczeniach zmiennoprzecinkowych. Typowe błędy myślowe obejmują mylenie pojęć związanych z precyzją oraz reprezentacją danych, co skutkuje niepoprawnym rozumieniem, jakie typy można stosować w kontekście liczb rzeczywistych. W praktycznych zastosowaniach programistycznych, niewłaściwy dobór typów danych może prowadzić do błędów obliczeniowych, co jest krytyczne w sytuacjach wymagających wysokiej precyzji, jak w inżynierii oprogramowania czy obliczeniach finansowych.

Pytanie 10

Posiadając tabelę zawierającą zwierzeta z kolumnami nazwa, gatunek, gromada, cechy, dlugosc_zycia, aby uzyskać listę nazw zwierząt, które żyją co najmniej 20 lat oraz należą do ssaków, należy wykonać zapytanie:

A. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20 AND gromada = 'ssak';
B. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20 OR gromada = 'ssak';
C. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20;
D. SELECT nazwa FROM zwierzeta WHERE gromada = 'ssak';
Wybór zapytań, które nie zwracają oczekiwanych wyników, wynika z kilku kluczowych błędów w logice zapytania SQL oraz niezrozumienia operatorów logicznych. Na przykład, zapytanie, które wyłącznie filtruje na podstawie długości życia, czyli SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20, nie uwzględnia drugiego istotnego kryterium, jakim jest przynależność do gromady ssaków. To podejście może prowadzić do uzyskania wyników zawierających zwierzęta, które nie są ssakami, co jest sprzeczne z założeniem pytania. Warto zauważyć, że korzystanie z operatora OR, jak w zapytaniu SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20 OR gromada = 'ssak', również jest błędne, ponieważ zwraca wszystkie zwierzęta, które spełniają przynajmniej jeden z warunków, co może prowadzić do bardzo szerokiego i nieprecyzyjnego zbioru danych. Kluczowym błędem myślowym jest zatem zrozumienie, że aby uzyskać dane, które spełniają wszystkie wymagane warunki, należy używać operatora AND, który skutecznie filtruje wyniki zgodnie z określonymi kryteriami. Aby poprawnie zrealizować zapytanie, niezbędne jest precyzyjne określenie, jakie cechy muszą być spełnione przez zwierzęta, co pozwala na lepsze zarządzanie i analizę danych w kontekście biologicznym czy zoologicznym.

Pytanie 11

Aby zdefiniować pole w klasie, do którego dostęp mają wyłącznie metody tej klasy i które nie jest dostępne dla klas dziedziczących, należy zastosować kwalifikator dostępu

A. private
B. public
C. published
D. protected
Wybór błędnych kwalifikatorów dostępu, takich jak 'published', 'public' czy 'protected', może prowadzić do poważnych problemów z bezpieczeństwem i integralnością danych w aplikacjach. Kwalifikator 'public' sprawia, że pole jest dostępne dla wszystkich klas, co naraża je na nieautoryzowane zmiany oraz może prowadzić do trudności w utrzymaniu kodu. Użytkownicy często mylą publiczne i prywatne pola, zakładając, że pełna dostępność sprzyja współpracy między klasami. Takie podejście może skutkować nieprzewidywalnym zachowaniem systemu, ponieważ zmiany w jednym miejscu mogą wpłynąć na inne klasy. Z kolei 'protected' umożliwia dostęp do pola w klasach pochodnych, co jest niepożądane, gdyż może prowadzić do niezamierzonych zależności i naruszenia zasad dziedziczenia. 'Published', będący terminem używanym w niektórych językach programowania, w rzeczywistości nie jest standardowym kwalifikatorem dostępu i może wprowadzać w błąd, sugerując, że pole jest dostępne tylko w określonych kontekstach, co nie jest zgodne z rzeczywistym zachowaniem. Ostatecznie, niewłaściwy wybór kwalifikatora dostępu skutkuje nie tylko obniżeniem bezpieczeństwa, ale również trudnościami w późniejszym utrzymaniu i rozwijaniu kodu, co jest sprzeczne z dobrymi praktykami programistycznymi.

Pytanie 12

Ikona przedstawiająca funkcję w edytorze grafiki rastrowej, znana jako „kubełek”, pozwala na

Ilustracja do pytania
A. zmianę bieżących kolorów
B. wybór obszaru o identycznym kolorze
C. wypełnienie obszaru, który został zaznaczony kolorem
D. pobranie wybranej barwy i ustawienie jej jako aktywnej
Niektóre nieporozumienia dotyczące funkcji narzędzia 'kubełek' mogą wynikać z mylenia go z innymi narzędziami w edytorach graficznych. Przykładowo, opcja zmiany aktywnych kolorów nie jest związana z 'kubełkiem', lecz z paletą kolorów, gdzie użytkownik wybiera kolory do stosowania w różnych kontekstach. Narzędzie, które zaznacza obszar o takim samym kolorze, to zwykle 'różdżka', działająca na zasadzie rozpoznawania podobieństwa kolorów w grafice. Może być używana do selekcji, ale nie do wypełniania. Pobieranie wskazanej barwy i ustawianie jej jako aktywnej to funkcjonalność narzędzia zwanego 'kroplomierz', które pozwala szybko zidentyfikować i przypisać dany kolor do aktywnej palety. Typowym błędem jest założenie, że 'kubełek' może pełnić te wszystkie role, podczas gdy jego jedynym zadaniem jest wypełnianie obszarów kolorem. Wiedza o różnicach między tymi narzędziami jest kluczowa, aby efektywnie i precyzyjnie tworzyć i edytować projekty graficzne. Dzięki zrozumieniu specyfiki każdego narzędzia można znacząco zwiększyć wydajność pracy w programach graficznych, unikając błędów i nieporozumień podczas edycji obrazów.

Pytanie 13

Jaki jest cel funkcji napisanej w PHP?

$zapytanie = mysql_query("SELECT * FROM napisy");
A. zmianę hasła do bazy danych
B. ochronę bazy danych
C. nawiązanie połączenia z bazą danych
D. uzyskanie danych z bazy danych
Funkcja PHP zaprezentowana w pytaniu nie służy do zabezpieczania bazy danych. Zabezpieczanie bazy danych zazwyczaj wymaga użycia mechanizmów takich jak szyfrowanie danych uwierzytelnianie użytkowników oraz kontrola dostępu do danych poprzez odpowiednie uprawnienia. W kontekście PHP ważne są takie praktyki jak użycie przygotowanych zapytań oraz walidacja i oczyszczanie danych wejściowych. Ustawienie hasła do bazy danych jest procesem administracyjnym który odbywa się zazwyczaj na poziomie konfiguracji serwera bazy danych i nie jest realizowany bezpośrednio poprzez funkcje PHP. Ustawienie hasła w PHP odnosi się bardziej do konfigurowania połączenia z bazą danych poprzez podanie hasła użytkownika w kodzie podczas tworzenia połączenia. Połączenie z bazą danych jest procesem który w PHP zazwyczaj odbywa się przy użyciu funkcji takich jak mysqli_connect lub PDO::connect które pozwalają na ustanowienie sesji komunikacyjnej z serwerem bazodanowym. Ważnym aspektem jest tutaj zapewnienie że dane połączenia takie jak hasło i nazwa użytkownika są odpowiednio chronione i nie są wystawione na niebezpieczeństwo co może prowadzić do nieautoryzowanego dostępu do bazy danych. Podana funkcja w pytaniu nie odnosi się do zabezpieczania połączeń ani do ustanawiania nowych połączeń lecz do wykonywania konkretnego zadania w kontekście istniejącego połączenia a mianowicie pobierania danych co jest kluczowym elementem interakcji z bazami danych w aplikacjach dynamicznych

Pytanie 14

W języku HTML, atrybut shape w znaczniku area, który definiuje typ obszaru, może mieć wartość

A. rect, sąuare, circle
B. rect, poły, circle
C. style="margin-bottom: 0cm;">rect, triangle, circle
D. style="margin-bottom: 0cm;">poły, square, circle
W przypadku odpowiedzi, które nie są poprawne, należy zwrócić uwagę na kilka kluczowych aspektów. Po pierwsze, wartości 'triangle' oraz 'square' nie są uznawane w atrybucie shape znacznika area w HTML. Zamiast tego, 'triangle' nie ma odpowiedniego wsparcia w standardach, a więc nie może być używane do definiowania obszarów na mapach obrazów. Również 'square', chociaż może przypominać prostokąt, nie ma odrębnej definicji i nie jest akceptowany w specyfikacji. Mapa obrazów ogranicza się do określonych kształtów, takich jak 'rect', 'circle' oraz 'poly', co czyni te odpowiedzi niepoprawnymi. Dodatkowo, wspomnienie o 'sąuare' wskazuje na literówkę, co również podważa poprawność tej opcji. Termin 'poły' nie tylko nie istnieje w kontekście atrybutu shape, ale także nie odnosi się do żadnego znanego kształtu w HTML. Zrozumienie właściwych terminów oraz ich zastosowania w HTML jest kluczowe dla tworzenia funkcjonalnych stron internetowych, a każda niepoprawna odpowiedź może prowadzić do mylących implementacji.

Pytanie 15

W języku SQL używanym przez bazę danych MySQL atrybut UNIQUE w poleceniu CREATE TABLE

A. jest stosowany jedynie w przypadku kolumn liczbowych
B. uniemożliwia wprowadzenie wartości NULL
C. wymusza niepowtarzalne nazwy kolumn tabeli
D. jest używany, jeżeli wartości w danej kolumnie nie mogą się powtarzać
Atrybut UNIQUE w poleceniu CREATE TABLE w języku SQL dla bazy danych MySQL jest kluczowym elementem, który zapewnia, że wartości w danej kolumnie są unikalne dla każdego rekordu w tabeli. Oznacza to, że nie może istnieć więcej niż jeden rekord z taką samą wartością w kolumnie oznaczonej tym atrybutem. Dzięki temu, gdy projektujemy bazę danych, możemy zagwarantować integralność danych oraz ich spójność, co jest szczególnie istotne w przypadku kluczowych informacji, jak identyfikatory użytkowników czy numery seryjne produktów. Na przykład, jeżeli mamy tabelę użytkowników z kolumną 'email', możemy zastosować atrybut UNIQUE, aby upewnić się, że każdy użytkownik ma unikalny adres e-mail. W praktyce, jeżeli spróbujemy wprowadzić dwa rekordy z tym samym adresem e-mail, baza danych zgłosi błąd. Warto zauważyć, że atrybut UNIQUE pozwala na wprowadzenie wartości NULL, o ile nie ma innych wartości w danej kolumnie. Zgodnie z zasadami normalizacji danych, stosowanie atrybutu UNIQUE jest standardowym podejściem do zapewnienia jakości danych i ich unikalności w systemach zarządzania bazami danych.

Pytanie 16

Jakiego znacznika w języku HTML nie można użyć do wstawienia grafiki dynamicznej na stronę?

A. style="margin-bottom: 0cm;"><embed>
B. <object>
C. style="margin-bottom: 0cm;"><img>
D. <strike>
Wybór odpowiedzi 1, 3 lub 4 może wydawać się zrozumiały, jednak każdy z tych znaczników ma swoje specyficzne zastosowanie i może być użyty do integrowania grafik dynamicznych. Element <img> jest jednym z najbardziej powszechnie używanych znaczników do wyświetlania obrazów, zarówno statycznych, jak i dynamicznych, takich jak animacje w formacie GIF. Odpowiedź 3, <embed>, umożliwia osadzenie multimediów, takich jak wideo czy animacje Flash, a odpowiedź 4, <object>, jest elastycznym elementem, który może wyświetlać różne typy mediów, w tym grafiki i aplikacje interaktywne. Wybierając te odpowiedzi, można dojść do błędnego wniosku, że są one nieodpowiednie, gdyż wszystkie one wspierają umieszczanie mediów na stronie. Typowym błędem myślowym jest mylenie stylizacji tekstu z funkcjonalnością mediów, co prowadzi do niewłaściwego korzystania z semantyki HTML. Zrozumienie różnic między tymi znacznikami i ich zastosowaniem jest kluczowe dla efektywnego tworzenia stron internetowych oraz ich dostępności dla użytkowników.

Pytanie 17

Aby wyeliminować nienaturalne odwzorowanie ukośnych krawędzi w grafice rastrowej, znane jako schodkowanie, powinno się użyć filtru

A. pikselowego
B. antyaliasingu
C. gradientowego
D. szumowego
Filtr szumu nie jest właściwym rozwiązaniem do eliminacji efektu schodkowania. Szum jest używany w grafice do dodawania losowego wzoru w celu maskowania artefaktów lub zwiększania realizmu tekstur, ale nie wpływa na wygładzanie krawędzi, co jest kluczowe dla estetyki grafiki rastrowej. Z kolei filtr gradientu jest techniką wykorzystywaną do tworzenia płynnych przejść kolorystycznych, jednak nie ma on na celu eliminacji schodków na krawędziach. Gradienty mogą poprawić ogólną wizualizację, ale nie są efektywne w walce z ząbkowatością krawędzi. Pikselizacja, z drugiej strony, odnosi się do efektu, gdzie obraz staje się widocznie złożony z dużych pikseli, co w rzeczywistości potęguje problem schodkowania, zamiast go rozwiązywać. Pikselizacja jest często postrzegana jako technika stylizacji, która może być używana celowo, ale nie ma zastosowania w profesjonalnym wygładzaniu krawędzi. Wszystkie te metody, choć użyteczne w odpowiednich kontekstach, nie zastępują techniki antyaliasingu w walce z efektem schodkowania w grafice rastrowej.

Pytanie 18

Wskaż polecenie do iteracji.

A. else
B. throw
C. switch
D. for
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 19

Polecenie SQL przedstawione poniżej ma za zadanie

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. zwiększenie o jeden wartości pola Uczen
B. ustawienie wartości pola Uczen na 1
C. zwiększenie o jeden wartości kolumny id_klasy dla wszystkich rekordów tabeli Uczen
D. ustawienie wartości kolumny id_klasy na 1 dla każdego rekordu w tabeli Uczen
Polecenie SQL używa instrukcji UPDATE aby zmodyfikować wszystkie rekordy w tabeli Uczen Zwiększenie wartości kolumny id_klasy o 1 to typowa operacja używana na przykład w przypadkach kiedy chcemy zmienić przypisanie uczniów do kolejnej klasy Jest to przydatne w scenariuszach takich jak promocja uczniów do następnej klasy w systemie szkolnym Warto zauważyć że użycie tej składni jest zgodne z dobrymi praktykami SQL szczególnie gdy chcemy przeprowadzić identyczną modyfikację dla wszystkich rekordów w tabeli W takich przypadkach operacje masowe jak ta są znacznie bardziej efektywne niż iteracyjne modyfikowanie każdego rekordu oddzielnie Od strony technicznej SQL umożliwia manipulację danymi na poziomie całych tabel co jest jedną z najważniejszych jego cech i wyróżnia go jako wszechstronne narzędzie do zarządzania bazami danych Zrozumienie tej zasady pozwala na efektywne i skalowalne zarządzanie dużymi zbiorami danych co jest kluczowe w profesjonalnym środowisku IT

Pytanie 20

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

A. FTP
B. plików
C. baz danych
D. WWW
phpMyAdmin wielu osobom kojarzy się po prostu z „tym panelem w przeglądarce”, więc łatwo tu o pomyłkę co on właściwie administruje. Warto to sobie dobrze uporządkować, bo miesza się tu kilka warstw: serwer WWW, protokoły, pliki na serwerze i serwer baz danych. phpMyAdmin jest aplikacją webową napisaną w PHP, która służy jako graficzny interfejs do zarządzania serwerem baz danych MySQL lub MariaDB. To oznacza, że jego głównym zadaniem jest operowanie na strukturach bazodanowych i danych, a nie bezpośrednie zarządzanie serwerem WWW. Odpowiedź „WWW” bywa kusząca, bo faktycznie uruchamiasz phpMyAdmina w przeglądarce pod adresem HTTP/HTTPS, często zintegrowanym z panelem hostingu. Ale serwer WWW (np. Apache, Nginx) to osobna usługa, która tylko „serwuje” interfejs phpMyAdmina. Konfigurację wirtualnych hostów, certyfikatów SSL, modułów itp. ogarnia się zupełnie innymi narzędziami i plikami konfiguracyjnymi, a nie przez phpMyAdmina. Mylenie tych ról to typowy błąd: skoro coś jest w przeglądarce, to ludzie myślą, że to narzędzie do WWW, a tu chodzi o warstwę danych. Podobnie jest z odpowiedzią „FTP”. FTP to protokół do przesyłania plików między klientem a serwerem, używa się go np. do wrzucania plików strony na hosting. phpMyAdmin nie zarządza serwerem FTP, nie ustawia kont FTP, nie przerzuca plików po tym protokole. Owszem, czasem możesz wyeksportować bazę do pliku i potem go pobrać, ale to jest zwykłe pobieranie HTTP, nie administracja FTP. Odpowiedź „plików” też jest myląca, bo w phpMyAdminie widzisz dane w formie tabel i rekordów, a nie jako system plików. Pliki na serwerze (PHP, HTML, CSS, grafiki) leżą w katalogach systemu operacyjnego, zarządza się nimi przez FTP, SFTP, SSH albo menedżer plików w panelu hostingu. phpMyAdmin nie służy do przenoszenia katalogów, zmiany uprawnień plików systemowych czy instalowania aplikacji przez kopiowanie plików. On operuje na poziomie SQL: SELECT, INSERT, UPDATE, DELETE, ALTER TABLE itd. Typowy błąd myślowy polega na wrzuceniu „wszystkiego, co jest w panelu hostingu” do jednego worka. Tymczasem dobra praktyka w administracji i programowaniu webowym to rozumieć podział ról: serwer WWW serwuje strony, serwer FTP/SSH obsługuje pliki, a serwer baz danych trzyma dane aplikacji. phpMyAdmin jest właśnie wygodnym interfejsem do tego trzeciego elementu – serwera baz danych, a nie do całej reszty infrastruktury.

Pytanie 21

W języku PHP użyto funkcji is_int). Które z wymienionych wywołań tej funkcji zwróci wartość TRUE?

A. is_int(NULL)
B. is_int("135")
C. is_int(135)
D. is_int(13.5)
Wybór is_int(135) jako poprawnej odpowiedzi jest uzasadniony, ponieważ funkcja is_int w języku PHP służy do sprawdzania, czy zmienna jest typu całkowitego (integer). W tym przypadku 135 jest liczbą całkowitą, co oznacza, że funkcja zwróci wartość TRUE. Użycie is_int w praktyce jest przydatne, gdy chcemy upewnić się, że nasze dane wejściowe są odpowiedniego typu, co jest szczególnie ważne w aplikacjach, gdzie typ danych ma kluczowe znaczenie, na przykład w operacjach matematycznych czy przy interakcji z bazą danych. Dobrą praktyką jest zawsze walidowanie danych, aby uniknąć potencjalnych błędów i zapewnić stabilność aplikacji. Ponadto, w PHP typy są dynamiczne, co sprawia, że błędne typy danych mogą prowadzić do trudnych do zdiagnozowania błędów, dlatego stosowanie is_int może znacząco poprawić jakość kodu i jego bezpieczeństwo. Przykładowo, przed wykonaniem operacji arytmetycznych na wartościach przekazanych z formularza, warto sprawdzić, czy są one typu integer, aby zapobiec niepożądanym zachowaniom programu.

Pytanie 22

Specjalna funkcja danej klasy stosowana w programowaniu obiektowym, która jest wywoływana automatycznie w momencie tworzenia obiektu, a jej głównym celem jest zazwyczaj inicjalizacja pól, to

A. obiekt
B. konstruktor
C. destruktor
D. specyfikator dostępu
Konstruktor jest specjalną metodą, która jest wywoływana automatycznie w momencie tworzenia obiektu danej klasy. Jego głównym zadaniem jest zainicjowanie pól obiektu, co jest kluczowe dla zapewnienia, że obiekt będzie w pełni gotowy do użycia zaraz po swoim utworzeniu. Konstruktor może przyjmować argumenty, co pozwala na elastyczne i dynamiczne przypisywanie wartości do pól obiektu. Na przykład, w języku Python konstruktor jest definiowany za pomocą metody __init__(), co pozwala na inicjowanie atrybutów obiektów. W praktyce, przy tworzeniu klasy 'Samochód', konstruktor może być użyty do przypisania wartości takich jak marka, model czy rok produkcji. Dobrym podejściem jest również implementacja konstruktorów z wartościami domyślnymi, co zwiększa uniwersalność i łatwość użycia klasy. Użycie konstruktorów jest zgodne z zasadami programowania obiektowego i wspomaga tworzenie bardziej modularnych i łatwiejszych w utrzymaniu aplikacji.

Pytanie 23

W języku JavaScript zapisano kod, którego wynikiem działania jest

var osoba = prompt("Podaj imię", "Adam");
A. pobranie z formularza wyświetlonego na stronie HTML imienia "Adam".
B. bezpośrednie wpisanie do zmiennej osoba wartości "Adam".
C. wyświetlenie okna z pustym polem edycyjnym.
D. wyświetlenie okna z polem edycyjnym, w którym jest wpisany domyślny tekst "Adam".
Niepoprawne odpowiedzi sugerują, że kod JavaScript może bezpośrednio wpisać wartość do zmiennej lub pobrać dane z formularza wyświetlanego na stronie HTML. Te rozumowania są jednak błędne. W JavaScript, aby przypisać wartość do zmiennej, musimy użyć operatora przypisania =, a nie metody prompt(). Metoda prompt() służy do wyświetlania okna dialogowego z polem tekstowym dla użytkownika, a nie do manipulowania danymi na stronie. Podobnie, pobieranie danych z formularza wymaga interakcji z DOM, a nie prostego użycia metody prompt(). W przypadku pustego pola edycyjnego, jest to możliwe tylko wtedy, gdy nie podamy drugiego argumentu do metody prompt(). W podanym kodzie drugi argument to 'Adam', co oznacza, że w polu edycyjnym domyślnie będzie wpisany tekst 'Adam'.

Pytanie 24

Wynikiem działania poniższej pętli for w przedstawionym kodzie PHP jest wyświetlenie liczb:

<?php
   for($i=5;$i>1;$i-=2)
       echo ($i%2)." ";
?>
A. 1 0 1
B. 1 0
C. 1 1
D. 1 0 1 0
Wybór błędnych odpowiedzi wynika z niepełnej analizy działania pętli oraz błędnych założeń dotyczących wartości zwracanych przez operację modulo. Odpowiedzi 1 0, 1 0 1 oraz 1 0 1 0 wskazują na zrozumienie, że liczby mogą mieć różne wartości modulo 2, ale z niewłaściwym przypisaniem ich do konkretnego kontekstu pętli. Wartość 0 w odpowiedzi 1 0 sugeruje, że użytkownik myśli, że $i może kiedykolwiek przyjąć wartość parzystą i wpłynąć na wynik, co jest błędne w kontekście analizowanego kodu. Liczba 5 jest liczbą nieparzystą, więc operacja modulo skutkuje 1, a 3 również jest liczbą nieparzystą, co również daje 1. Odpowiedź 1 0 1 sugeruje, że po osiągnięciu wartości $i = 1, wynik zmienia się na zero, co jest niezgodne z zasadami przetwarzania w tej pętli. Podobnie, odpowiedź 1 0 1 0 sugeruje, że w pętli mogłyby pojawić się inne wartości, podczas gdy w rzeczywistości, jak pokazuje analiza, pętla kończy się po dwóch iteracjach. Kluczowe jest zrozumienie, jak działają struktury kontrolne w programowaniu oraz jakie wyniki można otrzymać na podstawie operacji arytmetycznych. Taka analiza jest niezbędna, aby uniknąć typowych błędów związanych z operacjami na liczbach oraz wyciąganiem wniosków na temat ich właściwości.

Pytanie 25

W języku SQL wykonano przedstawione poniżej polecenia GRANT. Kto będzie miał prawo do przeglądania danych oraz ich zmiany?

GRANT ALL ON firmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON firmy TO 'anna'@localhost;
GRANT SELECT, INSERT, UPDATE ON firmy TO 'tomasz'@'localhost';
A. Tomasz i Adam
B. Adam i Anna
C. Jedynie Tomasz
D. Anna i Tomasz
Analizując inne odpowiedzi, można zauważyć, że niektóre z nich nie spełniają podstawowych wymogów związanych z przydzielaniem uprawnień w bazach danych. Na przykład, stwierdzenie, że tylko Anna ma prawo do przeglądania i modyfikowania danych, jest błędne, ponieważ w przydzielonych jej uprawnieniach nie ma komendy SELECT, która jest niezbędna do przeglądania danych. Uprawnienia ALTER, CREATE i DROP, które otrzymała, dotyczą jedynie zmiany struktury bazy, a nie samego przeglądania danych, co jest kluczowe dla jej roli w systemie. Warto także zwrócić uwagę na odpowiedź mówiącą o Tomaszu i Annie. Tomasz rzeczywiście ma przydzielone uprawnienia do przeglądania i modyfikacji danych, jednak Anna nie ma uprawnienia SELECT, więc nie może przeglądać danych. Analogicznie, odpowiedź wskazująca na Tomasza i Adama również pomija fakt, że Anna nie ma dostępu do przeglądania danych, co czyni ją nieprawidłową. W kontekście przydzielania uprawnień, istotne jest zrozumienie, że dostęp do danych powinien być zgodny z rolą użytkownika oraz zadaniami, jakie ma do wykonania. Właściwe przydzielenie uprawnień jest fundamentalne w zapewnieniu bezpieczeństwa danych i ich integralności.

Pytanie 26

W stylu CSS zdefiniowano klasę uzytkownik:

p.uzytkownik {
    color: blue;
}
Na stronie będą wyświetlane czcionką w kolorze niebieskim:
A. wszystkim elementom w sekcji <body> z przypisaną klasą uzytkownik.
B. wszystkie akapity.
C. tylko elementy tekstowe typu <p>, <h1>.
D. paragrafy, do których została przypisana klasa uzytkownik.
Deklaracja selektora p.uzytkownik oznacza w CSS połączenie selektora typu z selektorem klasy. Innymi słowy: przeglądarka wybierze tylko te elementy <p>, które mają w atrybucie class wpisaną klasę uzytkownik, np. <p class="uzytkownik">Treść</p>. Sama kropka przed nazwą klasy definiuje selektor klasy, a litera p przed kropką zawęża go wyłącznie do paragrafów. Gdyby w stylu było samo .uzytkownik { color: blue; }, wtedy reguła objęłaby wszystkie elementy z tą klasą, niezależnie czy to <p>, <div>, <h1> czy cokolwiek innego. Moim zdaniem to jedno z podstawowych, ale bardzo ważnych rozróżnień w CSS: kombinacja selektorów pozwala dokładnie kontrolować, które elementy są stylowane. Dzięki temu nie trzeba nadawać unikalnych klas dla każdego typu elementu, tylko łączyć selektor typu (np. p, h1, li) z klasą, gdy jest to potrzebne. W praktyce w projektach spotyka się dużo takich zapisów: np. li.active, a.button-primary, input.error. To pomaga utrzymać porządek w arkuszu stylów i unikać niepotrzebnie szerokiego działania reguł. Warto też zwrócić uwagę na specyficzność: p.uzytkownik ma większą specyficzność niż samo p, ale mniejszą niż np. #idElementu. Przy konfliktach stylów przeglądarka bierze to pod uwagę. Dobra praktyka jest taka, żeby nie pisać zbyt ogólnych selektorów, które kolorują „pół strony” przypadkiem. Taki selektor jak w pytaniu jest bezpieczny i precyzyjny – wiadomo dokładnie, że kolor niebieski trafi tylko do tych paragrafów, którym świadomie przypiszemy klasę uzytkownik w HTML.

Pytanie 27

Jaką wartość wydrukuje na standardowe wyjście poniższy fragment kodu C++?

int obliczenia( int x ) {
x %= 3;
x++;
return x;
}

int main() {
std::cout<<obliczenia(32);
}
A. 32
B. 0
C. 3
D. 2
Program w języku C++ zawiera funkcję obliczenia która przyjmuje parametr x. Wewnątrz funkcji wykonuje się operacja modulo x %= 3 co oznacza że zmienna x zostanie zastąpiona resztą z dzielenia x przez 3. W przypadku liczby 32 reszta z dzielenia przez 3 wynosi 2 ponieważ 32 dzielone przez 3 daje 10 z resztą 2. Następnie wykonuje się operacja inkrementacji x++ co oznacza że wartość x zostanie zwiększona o 1. W efekcie końcowym x przyjmie wartość 3. Funkcja zwraca tę wartość a wynik zostanie wypisany na standardowym wyjściu za pomocą std::cout. Zrozumienie operacji modulo oraz inkrementacji jest kluczowe w wielu zastosowaniach programistycznych szczególnie w algorytmach które operują na cyklicznych strukturach danych lub wymagają regularnego zwiększania wartości liczbowych. Operacja modulo jest często wykorzystywana do ograniczania zakresu wartości do pewnego zakresu np. w implementacji cyklicznych kolejek lub obliczaniu dni tygodnia. Dobrą praktyką jest także zrozumienie jak operacje te wpływają na wydajność i czytelność kodu co jest istotne w kontekście dużych projektów programistycznych. Poprawna odpowiedź to 3 ponieważ odpowiada ona wyniku jaki zostanie wypisany przez program.

Pytanie 28

Jakie słowo kluczowe wykorzystuje się do deklaracji zmiennej w języku JavaScript?

A. var
B. new
C. variable
D. instanceof
Twoje odpowiedzi pokazują, że możesz mieć pewne nieporozumienia związane ze składnią i semantyką w JavaScript. Na przykład, słowo 'new' używa się do tworzenia nowych obiektów, a nie do deklarowania zmiennych. Tak, jak w 'var obj = new Object();', tu tworzysz nowy obiekt, ale to nie jest sposób na zadeklarowanie zmiennej. 'Variable' to z kolei nie jest żadne słowo kluczowe w JavaScript, więc jego użycie może prowadzić do błędów, szczególnie u osób, które dopiero zaczynają. 'Instanceof' jest operatorem, który sprawdza, czy dany obiekt jest instancją określonej klasy, więc to też nie ma nic wspólnego z deklarowaniem zmiennych. Wydaje mi się, że wiele osób myli te pojęcia, myśląc, że są ze sobą związane. Kluczowe jest zrozumienie, że każde słowo kluczowe w JavaScript ma swoją rolę i jest ważne dla efektywnego programowania. Dobrze też zwracać uwagę na to, jak nazywamy zmienne i ich zakres, bo to mocno wpływa na jakość i czytelność kodu.

Pytanie 29

W języku PHP symbol "//" oznacza

A. początek komentarza jednoliniowego
B. operator alternatywy.
C. początek programu.
D. operator dzielenia całkowitego.
Wybór błędnych odpowiedzi może się brać z niezrozumienia podstawowych zasad PHP. Na przykład, jeśli myślisz, że "//" oznacza początek skryptu, to trochę się mylisz. Każdy skrypt PHP zaczyna się od tagu "<?php", a nie od "//". Użycie operatora alternatywy w jednej z odpowiedzi też jest niepoprawne, bo w PHP do tego używamy "||" lub "?:". Kolejna sprawa to operator dzielenia całkowitego, który w PHP tak naprawdę nie istnieje jako oddzielny operator; dzielenie robimy za pomocą " /", a do dzielenia całkowitego używamy funkcji "floor()" albo operatora "intdiv()". Wiele osób myli różne operacje, co prowadzi do nieporozumień. Dlatego zrozumienie, jak działają komentarze w kodzie, jest ważne; one dają kontekst, nie wpływają na logiczne działanie skryptu. Warto, żeby programiści wiedzieli, że komentarze nie zmieniają wykonania kodu, a raczej mają na celu ułatwienie pracy nad projektem, co jest zgodne z dobrymi praktykami w branży.

Pytanie 30

W tabeli programiści znajdują się kolumny: id, nick, ilosc_kodu, ocena. W kolumnie ilosc_kodu zapisano liczbę linii kodu, które programista napisał w danym miesiącu. Jakie zapytanie umożliwi obliczenie całkowitej liczby linii kodu stworzonych przez wszystkich programistów?

A. SELECT MAX(ilosc_kodu) FROM programisci
B. SELECT SUM(ilosc_kodu) FROM programisci;
C. SELECT SUM(ocena) FROM ilosc_kodu;
D. SELECT COUNT(programisci) FROM ilosc_kodu;
Wybór polecenia 'SELECT SUM(ocena) FROM ilosc_kodu;' jest nieprawidłowy, ponieważ w tym zapytaniu występuje kilka fundamentalnych błędów w rozumieniu struktury bazy danych oraz funkcji agregujących. Po pierwsze, pole 'ocena' nie jest odpowiednie do zsumowania linii kodu, ponieważ zawiera dane dotyczące ocen programistów, a nie ilości linii kodu, co całkowicie mija się z celem poszukiwania sumy linii kodu. Ponadto, tabela 'ilosc_kodu' nie istnieje jako samodzielna jednostka w kontekście tego pytania; 'ilosc_kodu' jest jedynie kolumną w tabeli 'programisci', co oznacza, że nie możemy bezpośrednio z niej tworzyć zapytań. To podkreśla ważny aspekt projektowania baz danych oraz ich strukturalnych zależności. Podczas pisania zapytań SQL należy zawsze mieć na uwadze, w której tabeli znajdują się interesujące nas dane oraz jakie kolumny są dostępne w tej tabeli. Inne nieprawidłowe odpowiedzi, takie jak 'SELECT COUNT(programisci) FROM ilosc_kodu;' również wskazują na misunderstanding, ponieważ użycie COUNT w tym kontekście nie odnosi się do sumowania linii kodu, a jedynie liczenia wierszy, co w tym przypadku nie jest celem. Ponadto, 'SELECT MAX(ilosc_kodu) FROM programisci;' ma zupełnie inną funkcję, polegającą na znalezieniu maksymalnej liczby linii kodu napisanych przez jednego programistę, co również nie jest zgodne z pierwotnym pytaniem. Wniosek jest taki, że kluczowe jest zrozumienie struktury bazy danych oraz logiczne podejście do formułowania zapytań SQL, aby uzyskiwać prawidłowe i użyteczne wyniki.

Pytanie 31

W języku CSS wprowadzono poniższe formatowanie:

p > i { color: blue; }
Oznacza to, że tekst w kolorze niebieskim będzie zapisany:
A. pogrubiony tekst akapitu
B. cały tekst nagłówków, bez względu na ich formatowanie
C. cały tekst akapitu, bez względu na jego formatowanie
D. pochylony tekst akapitu
W przypadku zrozumienia reguł CSS ważne jest, aby wiedzieć, jak różne selektory wpływają na wygląd elementów na stronie internetowej. Selekcja całego tekstu paragrafu niezależnie od jego formatowania wymagałaby użycia selektora p bezpośrednio, nie uwzględniając specyficznych potomków takich jak i. Pogrubiony tekst paragrafu jest zazwyczaj implementowany za pomocą tagu b lub strong, a nie i, który zgodnie z HTML jest przeznaczony dla tekstu pochyłego. Dlatego, aby stylizować pogrubiony tekst na niebiesko, należałoby użyć selektora p > b lub p > strong w zależności od użytego tagu. Jeśli chodzi o nagłówki, czyli elementy h1 h2 itd. ich stylizacja wymagałaby użycia selektorów odnoszących się bezpośrednio do tych elementów np. h1 {color: blue;} jeśli chcielibyśmy zmienić kolor całego nagłówka niezależnie od formatowania. Zrozumienie tych zasad pozwala tworzyć bardziej precyzyjne i czytelne style CSS. Typowym błędem jest mylenie selektorów kontekstowych z innymi typami selektorów co prowadzi do nieoczekiwanych wyników w wyglądzie strony. Taka wiedza jest fundamentalna w profesjonalnym projektowaniu stron internetowych i pozwala na lepszą kontrolę wizualną oraz semantyczną nad wybranymi elementami w strukturze dokumentu HTML co jest kluczowe w nowoczesnym web designie.

Pytanie 32

Fragment kodu w języku PHP przedstawia się następująco (patrz ramka): W wyniku wykonania pętli zostaną wyświetlone liczby

Ilustracja do pytania
A. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
B. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
C. 0, 4, 8, 12, 16
D. 0, 4, 8, 12, 16, 20
W przypadku Twojej odpowiedzi widać, że pętla for może być czasem myląca. Jeśli dobrze nie rozumiemy jej działania, możemy dojść do błędnych wniosków co do tego, które liczby się pojawią. W PHP składnia pętli pozwala ustalić początek, warunki kontynuacji i zmiany wartości. Warto pamiętać, że warunek $i <= 20 oznacza, że pętla kończy działanie, kiedy $i przekroczy 20, ale dopóki $i jest równe 20 lub mniej, to pętla działa. Więc odpowiedzi, które ignorują 20, są błędne. Dodatkowo, jeśli przyrastamy $i o 4, to pomijamy liczby, które nie są wielokrotnościami 4. Często myślimy, że pętla wypisze wszystkie liczby od 0 do 19, a to nieprawda, bo nie zawsze inkrementujemy o 1, jak w wielu prostszych przypadkach. Żeby uniknąć takich błędów, warto dokładnie przyjrzeć się składni pętli for i zrozumieć, jak działa każdy jej element. To naprawdę pomaga w pisaniu poprawnego kodu.

Pytanie 33

Język JavaScript wspiera

A. klasy abstrakcyjne
B. funkcje wirtualne
C. wysyłanie ciasteczek z identycznymi informacjami do wielu klientów witryny
D. obiekty DOM
Wybór klas abstrakcyjnych jako odpowiedzi na pytanie o możliwości JavaScript opiera się na mylnym przekonaniu o paradygmacie programowania obiektowego. W przeciwieństwie do języków takich jak Java, JavaScript nie wspiera klasycznych klas abstrakcyjnych. W JavaScript mamy do czynienia z prototypowym dziedziczeniem, a nie z hierarchicznymi klasami. Obiekty mogą być tworzone na podstawie prototypów, co oznacza, że nie ma potrzeby korzystania z klas abstrakcyjnych. W kontekście funkcji wirtualnych, również istnieje nieporozumienie. JavaScript nie używa tego pojęcia, ponieważ mechanizm dziedziczenia oparty na prototypach nie wymaga takiej funkcjonalności. Ponadto, odpowiedzi dotyczące wysyłania ciastek do wielu klientów są mylące, ponieważ ciasteczka są przypisane do domeny i nie istnieje możliwość ich wysyłania do wielu klientów na raz. Ciasteczka są przesyłane w nagłówkach HTTP, a ich działanie opiera się na współpracy między klientem a serwerem. Te błędne założenia mogą prowadzić do przekłamań w projektowaniu aplikacji webowych, gdzie zrozumienie podstawowych mechanizmów JavaScript oraz ich właściwości jest kluczowe dla efektywnego i wydajnego tworzenia stron internetowych. Zrozumienie różnic między podejściami obiektowymi w różnych językach jest istotne dla programistów, aby uniknąć pułapek myślowych oraz błędnych kierunków w kodowaniu.

Pytanie 34

W PHP utworzenie oraz przypisanie tablicy asocjacyjnej do zmiennej odbywa się poprzez zapis

A. $tab = array (1, 2, 3, 4);
B. $tab = array (); $tab[] = array (1, 2, 3, 4);
C. $tab = array (array (1, 2), array (3, 4));
D. $tab = array ("a" => 1, "b" => 2, "c" => 3);
W niektórych odpowiedziach widzę różne typy tablic w PHP, ale to nie są tablice asocjacyjne. Na przykład zapis $tab = array (1, 2, 3, 4); tworzy tablicę z wartościami numerycznymi, gdzie te wartości mają domyślne indeksy, więc dostęp odbywa się przez numery. To nie pasuje do tego, co znamy jako tablice asocjacyjne, bo potrzebujemy kluczy będących ciągami znaków. Inny przypadek, $tab = array (array (1, 2), array (3, 4)); to tablica wielowymiarowa, gdzie każdy element też jest tablicą. Jest to w porządku w PHP, ale nie ma tu mowy o kluczach asocjacyjnych, więc niestety nie pasuje do kontekstu pytania. A zapis $tab = array (); $tab[] = array (1, 2, 3, 4); dodaje tablicę numeryczną jako element, co znów nie spełnia definicji tablicy asocjacyjnej, bo brakuje kluczy. Wszystkie te struktury mają swoje miejsce w PHP, ale żadna z nich nie jest tablicą asocjacyjną i nie pozwala na przypisanie wartości do konkretnych kluczy, co jest kluczowe w tym pytaniu.

Pytanie 35

Tworząc tabelę produkty, należy dodać pole cena, które będzie odzwierciedlać koszt produktu. Jaki typ powinno mieć to pole?

A. INTEGER(11)
B. DECIMAL(10, 2)
C. TINYTEXT
D. ENUM
Wybór typów ENUM, INTEGER(11) i TINYTEXT dla pola przechowującego cenę produktu może prowadzić do istotnych problemów. ENUM to typ danych, który przechowuje zestaw z góry określonych wartości. Jest to użyteczne dla ograniczonego zestawu opcji, np. dla koloru lub statusu, ale nie nadaje się do przechowywania wartości liczbowych, takich jak ceny, które mogą być zmienne i nieprzewidywalne. Z kolei typ INTEGER(11) przechowuje jedynie liczby całkowite, co oznacza, że nie będzie w stanie reprezentować wartości z miejscami po przecinku. Cena zamówienia 19,99 PLN nie mogłaby być poprawnie zarejestrowana, co byłoby nieakceptowalne w kontekście aplikacji finansowych. TINYTEXT to typ przechowujący tekst, co w kontekście cen jest absolutnie nieodpowiednie, ponieważ nie zapewnia możliwości przechowywania wartości liczbowych, a także nie pozwala na wykonywanie kalkulacji arytmetycznych. Stąd wynika, że wybór tych typów jest oparty na nieporozumieniach dotyczących ich funkcjonalności i zastosowania, co może skutkować nieprawidłowym działaniem aplikacji oraz błędami w obliczeniach. Aby uniknąć takich błędów, ważne jest, by dobrze rozumieć, jakie typy danych są odpowiednie dla określonych zastosowań, a także znać zasady dobrego projektowania baz danych, które skupiają się na precyzyjnej reprezentacji danych oraz ich odpowiednim typie.

Pytanie 36

Wskaź złożony typ danych.

A. float
B. bool
C. char
D. class
Typy takie jak 'char', 'bool' i 'float' to prostsze typy, które mają na prawdę ograniczone możliwości w porównaniu do typów złożonych. 'char' to pojedynczy znak, więc może pomieścić na przykład 'A' albo '9', ale to wszystko. Używa się go czasami do przechowywania tekstu, ale jego funkcjonalność kończy się na prostych operacjach. Typ 'bool' to logiczny typ, który ma tylko dwie wartości - prawda (true) i fałsz (false). Jest istotny w podejmowaniu decyzji w programach, ale nie nadaje się do większych struktur danych. 'float' to typ liczbowy dla liczb zmiennoprzecinkowych, czyli takich z miejscami po przecinku. Jest przydatny w obliczeniach, ale jak widać, te wszystkie typy są dosyć ograniczone w porównaniu do złożonych typów, jak klasy, które pozwalają na tworzenie bardziej skomplikowanych struktur danych.

Pytanie 37

Zaprezentowano kod tabeli o wymiarach 3x2. Jaką zmianę wprowadzić w jej drugim wierszu, aby tabela była zgodna z obrazkiem ukazującym niewidoczny wiersz?

Ilustracja do pytania
A. <tr style="visibility: hidden">
B. <tr style="display: table-cell">
C. <tr style="display: none">
D. <tr style="clear: none">
Użycie stylu visibility: hidden w wierszu tabeli powoduje, że zawartość tego wiersza staje się niewidoczna, ale miejsce w dokumencie HTML, które zajmuje, pozostaje. Jest to przydatne, gdy chcemy zachować układ tabeli bez zmiany jej struktury, co ma znaczenie w projektach, gdzie layout musi pozostać spójny. Jest to różne od display: none, który całkowicie usuwa element z układu, co może prowadzić do zmiany położenia innych elementów. Zastosowanie visibility: hidden jest zgodne z dobrymi praktykami w przypadkach, gdy potrzebujemy ukryć elementy bez wpływu na otaczający je układ. Metoda ta jest często używana w scenariuszach dynamicznych interfejsów użytkownika, gdzie elementy mogą być tymczasowo ukrywane lub pokazywane bez restrukturyzacji całego layoutu. To podejście wspiera również koncepcje dostępności, gdyż ukryte w ten sposób treści mogą być dostępne dla technologii wspomagających, takich jak czytniki ekranu, w zależności od implementacji innych atrybutów.

Pytanie 38

Aby cofnąć uprawnienia dostępu do serwera MySQL, należy wykorzystać polecenie

A. DELETE
B. REVOKE
C. GRANT
D. USAGE
Aby odebrać prawa dostępu do serwera MySQL, używa się polecenia REVOKE. To polecenie jest kluczowe w zarządzaniu uprawnieniami użytkowników w systemie zarządzania bazą danych MySQL. REVOKE pozwala na usunięcie wcześniej przydzielonych praw dostępu do określonych zasobów, takich jak tabele, bazy danych lub inne obiekty. Przykładowo, aby odebrać prawo SELECT dla użytkownika 'janek' na tabeli 'produkty', należy użyć komendy: REVOKE SELECT ON produkty FROM 'janek'@'localhost';. Dzięki temu użytkownik 'janek' nie będzie miał możliwości wykonywania zapytań SELECT na tej tabeli. Warto zaznaczyć, że REVOKE działa w oparciu o hierarchię uprawnień, co oznacza, że można je łączyć z innymi poleceniami, aby skutecznie zarządzać dostępem. Zgodnie z dokumentacją MySQL, REVOKE jest integralną częścią systemu autoryzacji, co czyni je niezbędnym dla zapewnienia bezpieczeństwa danych w bazach danych. Użycie REVOKE jest również istotne w kontekście audytów bezpieczeństwa, gdzie konieczne jest zarządzanie dostępem do danych.

Pytanie 39

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

A. Monitor powinien być tak ustawiony, by kąt między płaszczyzną monitora, a linią patrzenia na jego środek mieścił się w granicy 80° ÷ 90°.
B. Górna krawędź ekranu powinna znajdować się nieco poniżej poziomu oczu użytkownika.
C. Monitor powinien stać ekranem do okna w celu ograniczenia odblasków i refleksów świetlnych.
D. Dla osób praworęcznych monitor powinien stać z prawej strony, a dla leworęcznych z lewej strony stanowiska komputerowego. 
W ergonomii stanowiska komputerowego łatwo skupić się na pojedynczych intuicyjnych pomysłach, które na pierwszy rzut oka brzmią sensownie, ale po dokładniejszej analizie okazują się po prostu niezgodne z dobrą praktyką. Typowy przykład to ustawianie monitora ekranem do okna „żeby nie było odblasków”. W realnych warunkach takie ustawienie zwykle kończy się tym, że na ekran pada silne światło dzienne, pojawiają się kontrasty, odbicia i refleksy, a użytkownik instynktownie zwiększa jasność monitora do maksimum. Oczy wtedy szybciej się męczą, trudniej odczytać drobny tekst, a po dłuższej pracy pojawia się uczucie „piasku pod powiekami”. Standardy BHP zalecają raczej, by okno znajdowało się z boku stanowiska pracy, a nie bezpośrednio za monitorem ani przed nim. Inne nieporozumienie to pomysł, że ustawienie monitora zależy od tego, czy ktoś jest prawo-, czy leworęczny. Z ergonomicznego punktu widzenia monitor powinien być ustawiony centralnie przed użytkownikiem, tak aby linia patrzenia biegła prosto, bez konieczności ciągłego skręcania szyi. Ręczność ma znaczenie przy ustawieniu myszy, klawiatury czy dokumentów papierowych, ale nie przy położeniu ekranu. Jeżeli monitor stoi wyraźnie z boku, kark jest stale skręcony, co po kilku godzinach pracy dziennie przez miesiące czy lata bardzo niekorzystnie wpływa na kręgosłup szyjny. Pojawia się też czasem przekonanie, że ekran powinien być niemal prostopadły do linii patrzenia, czyli że kąt między płaszczyzną monitora a kierunkiem wzroku ma być bliski 90°. W praktyce człowiek patrzy lekko w dół, a monitor bywa delikatnie odchylony do tyłu, żeby poprawić czytelność obrazu i zmniejszyć odbicia. Sztywne trzymanie się wartości 80–90° ignoruje naturalną pozycję ciała i zalecenia ergonomiczne, które mówią raczej o dopasowaniu ekranu do użytkownika, a nie odwrotnie. Typowy błąd myślowy polega tu na potraktowaniu prostych kątów jako „idealnych” tylko dlatego, że są matematycznie ładne, a nie dlatego, że odpowiadają fizjologii człowieka. Podsumowując, prawidłowe ustawienie monitora opiera się na naturalnej pozycji oczu i kręgosłupa: ekran na wprost, górna krawędź nieco poniżej poziomu oczu, brak bezpośredniego światła z okna na ekran i odległość dopasowana do wielkości monitora. Reszta „magicznych zasad” zwykle wynika z uproszczeń albo z prób rozwiązania jednego problemu kosztem stworzenia kilku kolejnych.

Pytanie 40

Jakie polecenie wydane w terminalu systemu operacyjnego, które zawiera w swojej składni opcję --repair, pozwala na naprawę bazy danych?

A. truncate
B. create
C. mysqlcheck
D. mysqldump
Truncate to polecenie, które służy do szybkiego usuwania wszystkich wierszy z tabeli, a nie do naprawy bazy danych. Często mylone jest z usuwaniem danych, jednak nie wykonuje ono operacji naprawczych ani nie zdejmuje blokad związanych z integralnością danych. Mysqldump to z kolei narzędzie do tworzenia kopii zapasowych baz danych, które eksportuje dane do postaci pliku, ale również nie ma możliwości naprawy istniejących błędów w danych czy strukturze tabel. Create to komenda używana do tworzenia nowych tabel lub baz danych, jednak nie ma zastosowania w kontekście naprawy już istniejących obiektów. Typowym błędem myślowym jest przypisywanie funkcji, które są dedykowane do zarządzania danymi, do operacji naprawczych, co może prowadzić do utraty danych lub niewłaściwego postępowania z bazą. Kluczowym aspektem w zarządzaniu bazami danych jest znajomość właściwych narzędzi i ich zastosowań, co pozwala na skuteczne i bezpieczne zarządzanie danymi. Użycie niewłaściwych poleceń w kontekście zarządzania bazami danych może prowadzić do problemów z dostępnością, a nawet do uszkodzenia danych, dlatego istotne jest, aby dobrze rozumieć funkcje narzędzi, które się wykorzystuje.