Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 13 maja 2026 09:49
  • Data zakończenia: 13 maja 2026 10:00

Egzamin niezdany

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

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 zaprezentowanym schemacie bazy danych o nazwie biblioteka, składniki: czytelnik, wypożyczenie oraz książka są

Ilustracja do pytania
A. encjami
B. polami
C. krotkami
D. atrybutami
W kontekście modelowania danych w relacyjnych bazach danych istotne jest rozróżnienie między encjami a innymi pojęciami. Pola w bazach danych zazwyczaj odnoszą się do pojedynczych jednostek danych w obrębie kolumn tabeli reprezentujących atrybuty encji. Atrybuty to cechy opisujące encje takie jak imię czy nazwisko w przypadku encji czytelnik. Natomiast krotki często określają pojedynczy rekord czyli wiersz w tabeli który jest instancją encji. Błędne jest przypisywanie czytelnik wypozyczenie i ksiazka do kategorii pól ponieważ w modelowaniu danych pola są najmniejszymi jednostkami danych które nie reprezentują obiektów realnego świata lecz ich właściwości. Podobnie błędem jest klasyfikowanie ich jako atrybuty ponieważ atrybuty opisują encje a nie są nimi. Traktowanie tych elementów jako krotek również jest nieprawidłowe gdyż krotki to konkretne instancje danych a nie typy obiektów które chcemy modelować. Typowy błąd myślowy polega na myleniu poziomu abstrakcji czyli traktowaniu encji które są wysokopoziomowymi konceptami jak atrybuty czy krotki które są bardziej szczegółowymi jednostkami w strukturze danych. Zrozumienie tych różnic jest kluczowe dla efektywnego projektowania i implementacji baz danych oraz uniknięcia problemów związanych z redundancją czy nieefektywnością w przetwarzaniu informacji

Pytanie 2

Na podstawie tabeli Towar wykonano następujące zapytanie SQL. Jaki będzie wynik tej operacji?

 SELECT nazwa_towaru FROM `Towar` WHERE cena_katalogowa < 65 ORDER BY waga DESC;
IDnazwa_towarucena_katalogowawagakolor
1Papier ksero A4112.3biel
2Zeszyt A54.20.13wielokolorowy
3Zeszyt A5 w linie3.50.12niebieski
4Kredki 24 kolory90.3wielokolorowy
5Plecak szkolny65.51.3zielony
A. Papier ksero A4, Kredki 24 kolory, Zeszyt A5, Zeszyt A5 w linie
B. Zeszyt A5 w linie, Zeszyt A5, Kredki 24 kolory, Papier ksero A4
C. Zeszyt A5, Zeszyt A5 w linie, Kredki 24 kolory, Papier ksero A4
D. Papier ksero A4, Kredki 24 kolory, Zeszyt A5 w linie, Zeszyt A5
Twoja odpowiedź jest niepoprawna. Wydaje się, że nie zrozumiałeś, jak działa zapytanie SQL w kontekście selekcji i sortowania danych. Zapytanie to zwracałoby nazwy towarów, które spełniają warunek ceny katalogowej mniejszej niż 65. Następnie sortuje te towary od najcięższego do najlżejszego. W przypadku podanej tabeli towary, które spełniają te warunki to: Papier ksero A4 (waga 2.3), Kredki 24 kolory (waga 0.3), Zeszyt A5 (waga 0.13) i Zeszyt A5 w linie (waga 0.12). Błędne odpowiedzi sugerują, że nie zrozumiałeś, w jaki sposób zapytanie SQL sortuje wyniki na podstawie wagi. Istotne jest zrozumienie, że SQL pozwala na filtrowanie danych za pomocą różnych operatorów, takich jak 'mniejszy od', a następnie sortowanie tych wyników za pomocą różnych kryteriów. W tym przypadku sortowanie odbywa się od najcięższego do najlżejszego towaru. Upewnij się, że rozumiesz te koncepcje, ponieważ są one kluczowe w pracy z bazami danych.

Pytanie 3

Jaki typ powinien być zastosowany, aby pole w bazie danych mogło przechowywać liczby zmiennoprzecinkowe?

A. FLOAT
B. VARCHAR
C. INT
D. CHAR
Odpowiedź FLOAT jest poprawna, ponieważ ten typ danych w systemach baz danych jest zaprojektowany do przechowywania liczb zmiennoprzecinkowych, co oznacza, że może reprezentować liczby rzeczywiste z ułamkami. Typ FLOAT jest szczególnie przydatny w aplikacjach wymagających precyzyjnych obliczeń matematycznych, takich jak finanse, nauki przyrodnicze czy inżynieria. W przeciwieństwie do INT, który przechowuje tylko liczby całkowite, FLOAT pozwala na dużą elastyczność w zakresie wartości. Przykładem może być aplikacja bankowa, która potrzebuje przechowywać wartości depozytów oraz wypłat, które mogą być liczone z dokładnością do dwóch miejsc po przecinku. Dobrą praktyką jest także zrozumienie, że FLOAT, w zależności od implementacji, może mieć ograniczenia precyzyjności, dlatego w sytuacjach wymagających ekstremalnej dokładności, takich jak obliczenia naukowe, warto rozważyć użycie typu DOUBLE, który oferuje większą precyzję. W kontekście zarządzania bazą danych, istotne jest również, aby typ danych był zgodny z wymaganiami aplikacji oraz stosowany w odpowiednich konwencjach i standardach branżowych.

Pytanie 4

Ikona funkcji w edytorze grafiki rastrowej oznaczona jako „różdżka” pozwala na

Ilustracja do pytania
A. wybiórcze nakładanie koloru przy użyciu pędzla
B. wybranie konkretnego koloru i ustawienie go jako aktywnego
C. ręczne zaznaczanie fragmentów poprzez przeciąganie kursora
D. zaznaczenie obszaru w oparciu o kolor
Pierwsza odpowiedź sugeruje, że narzędzie różdżki służy do rozsmarowywania koloru za pomocą pędzla, co jest nieprawidłowym zrozumieniem jego funkcji. Rozsmarowywanie koloru to technika, która zwykle wykorzystuje narzędzie smudge, które jest przeznaczone do symulacji efektu fizycznego rozmazywania farby na płótnie. Różdżka nie ma tej zdolności, jej działanie opiera się na zaznaczaniu pikseli o zbliżonej kolorystyce. Odręczne zaznaczanie obszarów przez przeciąganie kursora, jak to opisano w drugiej odpowiedzi, jest zadaniem wykonywanym przez narzędzie lasso lub pióro. Różdżka działa automatycznie na podstawie koloru, nie wymaga ręcznego prowadzenia kursora po krawędziach obszaru. Czwarta odpowiedź odnosi się do funkcji pipety, która służy do pobierania koloru z obrazu i ustawiania go jako aktywnego do dalszego użytku w projekcie. Różdżka nie modyfikuje aktywnego koloru, ale pomaga w identyfikacji i zaznaczeniu obszarów o podobnej kolorystyce w celu ich edycji. Błędne postrzeganie tych funkcji często wynika z nieuwagi lub braku zrozumienia specyfiki narzędzi graficznych, co jest kluczowe w profesjonalnej pracy z obrazami i wymaga jasnego zrozumienia różnic oraz zastosowań poszczególnych narzędzi w edytorze graficznym. Aby unikać takich nieporozumień, zaleca się regularną praktykę oraz zapoznanie się z dokumentacją i tutorialami dotyczącymi używanego oprogramowania graficznego, co pozwoli na bardziej efektywne wykorzystanie potencjału dostępnych narzędzi.

Pytanie 5

Wskaż styl CSS za pomocą którego został uzyskany przedstawiony efekt.

  • psy
  • koty
  • chomiki
  • świnki morskie
  • rybki
A. ul li:nth-child(even) { background-color: DodgerBlue; }
B. ul li:nth-child(odd) { background-color: DodgerBlue; }
C. ul li:active { background-color: DodgerBlue; }
D. ul li:hover { background-color: DodgerBlue; }
Dokładnie tak, poprawna odpowiedź to 'ul li:nth-child(even) { background-color: DodgerBlue; }'. Użycie selektora :nth-child(even) pozwala na zastosowanie stylu CSS do każdego parzystego elementu listy, co można zaobserwować na załączonym obrazku - każdy drugi (parzysty) element ma niebieskie tło. Jest to praktyczne rozwiązanie stosowane m.in. w celu poprawy czytelności długich list danych, gdzie koloryzmowanie na przemian pozwala na łatwiejsze zlokalizowanie poszczególnych elementów. Pamiętaj, że CSS oferuje wiele innych pseudoklas pozwalających na zastosowanie różnych efektów w zależności od stanu lub położenia elementu na stronie. Przy wykorzystaniu pseudoklas CSS warto odwoływać się do standardów i dobrych praktyk branżowych, takich jak unikanie nadmiernego zagnieżdżania selektorów, co może utrudniać czytelność i utrzymanie kodu.

Pytanie 6

Testy aplikacji webowej, których celem jest ocena wydajności aplikacji oraz bazy danych, a także architektury serwera i konfiguracji, określane są mianem testów

A. bezpieczeństwa
B. kompatybilności
C. użyteczności
D. funkcjonalności
Testy kompatybilności są kluczowym elementem w procesie zapewniania jakości aplikacji internetowych. Ich głównym celem jest weryfikacja, czy aplikacja działa poprawnie w różnych środowiskach, systemach operacyjnych oraz przeglądarkach internetowych. Testy te obejmują również analizę skalowalności, która ma na celu ocenić, jak aplikacja radzi sobie z rosnącą liczbą użytkowników oraz jak skutecznie współpracuje z bazami danych i serwerami. W praktyce oznacza to, że po przeprowadzeniu testów kompatybilności, można zidentyfikować potencjalne problemy z wydajnością, które mogą wystąpić w momencie, gdy liczba równoległych użytkowników wzrasta. Przykładem mogą być testy obciążeniowe, które symulują dużą liczbę użytkowników, by sprawdzić, w jaki sposób system reaguje na taką sytuację. W kontekście standardów, ważne jest odniesienie do norm ISO/IEC 25010, które definiują jakość oprogramowania i wskazują na znaczenie kompatybilności jako jednego z kluczowych atrybutów. Dbałość o kompatybilność aplikacji wpływa nie tylko na jej funkcjonalność, ale również na doświadczenia użytkowników, co jest niezbędne w dzisiejszym zglobalizowanym rynku.

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 IN (71, 72, 80) OR czynsz < 1000
C. WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000
D. WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 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

W języku PHP zmienna globalna $_POST, służąca do odbierania danych z formularza przesłanych metodą POST, jest: 

A. ciągiem znaków zakodowanym w JSON.
B. obiektem klasy stdClass.
C. tablicą asocjacyjną.
D. zmienną tekstową.
W PHP zmienna superglobalna $_POST nie jest ani ciągiem znaków, ani zwykłą zmienną tekstową, ani obiektem. To jedno z częstszych nieporozumień u osób, które dopiero zaczynają z programowaniem webowym. Mechanizm przesyłania danych metodą POST w HTTP faktycznie polega na wysłaniu zakodowanego ciągu danych w treści żądania, ale interpreter PHP po odebraniu takiego requestu automatycznie parsuje ten strumień i mapuje go na tablicę asocjacyjną. Programista nie pracuje już z surowym tekstem, tylko z gotową strukturą danych – z tablicą. Może się wydawać, że skoro dane „lecą” przez sieć jako tekst, to $_POST powinna być po prostu stringiem. Jednak PHP, zgodnie z filozofią ułatwiania pracy, od razu rozbija ten tekst na pary klucz–wartość na podstawie nazwy pól formularza. Dzięki temu nie trzeba ręcznie parsować treści żądania ani rozdzielać jej po znakach & i =. Dlatego koncepcja, że $_POST jest zmienną tekstową albo jednym dużym ciągiem (np. w JSON) jest myląca. JSON to osobny format serializacji danych; PHP nie koduje automatycznie $_POST do JSON, chyba że sam to zrobisz, np. json_encode($_POST). Inny błąd myślowy to traktowanie $_POST jako obiektu, bo w wielu nowoczesnych frameworkach mamy różne klasy Request, które udostępniają metody typu $request->getPost(). W czystym PHP taka abstrakcja nie jest domyślnie obecna – $_POST to zwykła tablica asocjacyjna, a nie instancja stdClass ani żadnej innej klasy. Jeżeli ktoś oczekuje zachowania obiektowego, to musi je samemu zbudować albo skorzystać z frameworka. Podsumowując, poprawne rozumienie $_POST jako tablicy asocjacyjnej jest kluczowe, bo wpływa na to, jak później bezpiecznie walidujemy, filtrujemy i przetwarzamy dane z formularzy. Założenie, że to string, JSON lub obiekt prowadzi do błędnych założeń przy implementacji logiki aplikacji i często do niepotrzebnych komplikacji w kodzie.

Pytanie 9

Funkcje takie jak rozmycie Gaussa, wygładzanie oraz szum RGB są elementami oprogramowania do przetwarzania

A. Grafiki wektorowej
B. Dźwięku w standardzie MIDI
C. Ścieżki audio
D. Grafiki rastrowej
Wybór odpowiedzi związanej z dźwiękiem, zarówno w formacie MIDI, jak i ścieżką dźwiękową, jest błędny, ponieważ techniki takie jak rozmycie Gaussa, wygładzanie i szum RGB odnoszą się bezpośrednio do przetwarzania obrazów, a nie dźwięku. Format MIDI jest standardem do komunikacji muzycznej pomiędzy instrumentami, w którym wykorzystuje się dane dotyczące nut, ich intensywności oraz czasu trwania, a nie techniki graficzne. Ścieżka dźwiękowa, podobnie, koncentruje się na audio i nie ma zastosowania dla funkcji typowych dla grafiki. W kontekście grafiki wektorowej, która opiera się na matematycznych modelach kształtów i nie opiera się na siatce pikseli, techniki rozmycia i wygładzania nie są używane w sposób, w jaki są stosowane w grafice rastrowej. Zasadniczo, grafika wektorowa wykorzystuje inne narzędzia i techniki do obróbki, które są bardziej związane z kształtami i konturami projektów. Typowym błędem myślowym w tym przypadku jest pomylenie mediów cyfrowych i zasadniczych różnic w ich obróbce. Wiedza na temat tych różnic jest kluczowa dla skutecznego przetwarzania danych wizualnych oraz audio, a sukces w tych dziedzinach wymaga znajomości odpowiednich technik i narzędzi.

Pytanie 10

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

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

Pytanie 11

Integralność referencyjna w relacyjnych bazach danych wskazuje, że

A. każdemu kluczowi głównemu przyporządkowany jest dokładnie jeden klucz obcy w danej tabeli lub powiązanych tabelach
B. wartość klucza głównego oraz klucza obcego nie może być pusta
C. klucz główny lub klucz obcy nie zawierają żadnych wartości NULL
D. wartość klucza obcego w konkretnej tabeli musi być równa wartości klucza głównego w powiązanej tabeli lub mieć wartość NULL
Integralność referencyjna to kluczowy koncept w modelu relacyjnych baz danych, który zapewnia spójność oraz integralność danych pomiędzy różnymi tabelami. Oznacza to, że każda wartość klucza obcego w danej tabeli musi być zgodna z wartością klucza głównego w powiązanej tabeli, lub może być wartością NULL, co oznacza brak powiązania. Dzięki temu zyskujemy pewność, że wszelkie relacje między danymi są logiczne i zgodne z założeniami projektowymi bazy danych. Przykładem może być tabela 'Zamówienia', w której klucz obcy 'ID_Klienta' odnosi się do klucza głównego 'ID_Klienta' w tabeli 'Klienci'. Jeśli wartość 'ID_Klienta' w tabeli 'Zamówienia' nie pasuje do żadnej wartości 'ID_Klienta' w tabeli 'Klienci', narusza to integralność referencyjną. Standardy takie jak SQL (Structured Query Language) oraz zasady ACID (Atomicity, Consistency, Isolation, Durability) podkreślają znaczenie integralności danych, co jest kluczowe dla poprawnego funkcjonowania systemów bazodanowych i zapewnienia ich niezawodności oraz efektywności. Utrzymanie integralności referencyjnej jest istotne dla analizy danych, raportowania oraz utrzymywania relacji między różnymi obiektami w bazie.

Pytanie 12

Warunek zapisany w języku PHP wyświetli liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. wynik dzielenia danej liczby przez 2 jest równy 0
B. jest to liczba dodatnia
C. jest to liczba pierwsza
D. jest to liczba parzysta
Analizując inne odpowiedzi należy zauważyć że dzielenie liczby przez 2 i uzyskiwanie wyniku 0 odnosi się do całkowitego ilorazu a nie reszty co jest fundamentalnym błędem w interpretacji operatora modulo. Przykładowo liczba 0 po podzieleniu przez 2 daje iloraz 0 ale to nie jest tym czego dotyczy operator % który ocenia resztę. Z kolei liczba pierwsza nie jest związana z dzieleniem przez 2 i nie musi być parzysta. Liczby pierwsze to liczby większe od 1 które dzielą się tylko przez 1 i siebie samą co wyklucza możliwość posługiwania się wyrażeniem modulo 2 do ich identyfikacji. Dodatkowo bycie liczbą dodatnią nie jest w żaden sposób związane z dzieleniem przez 2 ani z właściwościami operatora modulo. Liczby dodatnie mogą być zarówno parzyste jak i nieparzyste dlatego użycie warunku modulo w kontekście określania czy liczba jest dodatnia jest błędne. Te błędne interpretacje często wynikają z nieznajomości specyfiki działania operatorów arytmetycznych w PHP co jest kluczowe dla unikania logicznych błędów w kodzie.

Pytanie 13

W HTML, aby dodać obrazek z tekstem przylegającym, umiejscowionym na środku obrazka, trzeba użyć znacznika

A. <img src="/obrazek.png" alt="obraz4">tekst
B. <img src="/obrazek.png" alt="obraz2" align="middle">tekst
C. <img src="/obrazek.png" alt="obraz1" hspace="30px">tekst
D. <img src="/obrazek.png" alt="obraz3" height="50%">tekst
Aby wstawić obrazek z tekstem przyległym w HTML, należy skorzystać ze znacznika <img> z atrybutem align ustawionym na 'middle'. Atrybut align jest przestarzały w HTML5, ale nadal może być używany w kontekście tekstów przylegających do obrazków. Ustawiając 'middle', obrazek będzie wyśrodkowany w pionie względem linii tekstu, co pozwala na estetyczne umiejscowienie obrazu w odniesieniu do towarzyszącego mu tekstu. Dobrym przykładem jest zastosowanie <img src='/obrazek.png' alt='obraz2' align='middle'>tekst, co sprawia, że obrazek staje się integralną częścią tekstu, a nie tylko jego dodatkiem. W kontekście standardów, warto zauważyć, że HTML5 zaleca stosowanie CSS do pozycjonowania, dlatego bardziej współczesnym podejściem byłoby użycie stylów CSS, np. 'vertical-align: middle'. Można to osiągnąć poprzez dodanie klasy do obrazka oraz odpowiedniego stylu CSS. Chociaż align jest przestarzały, jego rozumienie jest istotne dla osób przystosowujących starsze strony do nowych standardów.

Pytanie 14

Aby uzyskać dane z tabeli pracownicy wyłącznie dla osób, które osiągnęły 26 lat, należy zastosować zapytanie

A. SELECT * FROM wiek WHERE pracownicy > '25'
B. SELECT * FROM pracownicy AND wiek > '25'
C. SELECT * FROM pracownicy OR wiek > '25'
D. SELECT * FROM pracownicy WHERE wiek > '25'
Poprawne zapytanie to 'SELECT * FROM pracownicy WHERE wiek > '25';'. To zapytanie jest zgodne z zasadami SQL i pozwala na wyświetlenie wszystkich rekordów z tabeli 'pracownicy', które spełniają określony warunek dotyczący wieku. Używając klauzuli WHERE, precyzyjnie filtrujemy wyniki i zwracamy tylko tych pracowników, którzy mają więcej niż 25 lat. Warto pamiętać, że w SQL operator '>' jest wykorzystywany do porównywania wartości, a w tym przypadku pozwala nam na wybranie pracowników, którzy ukończyli 26 lat. Przy projektowaniu zapytań SQL, kluczowe jest stosowanie odpowiednich warunków filtrujących, aby ograniczyć zwracane dane do tych istotnych dla analiz. Przykładowo, analiza wieku pracowników w kontekście przyznawania dodatków lub przeprowadzania szkoleń może opierać się na takich zapytaniach. W praktyce, ważne jest także wykorzystanie indeksów w bazach danych, aby zwiększyć wydajność zapytań, zwłaszcza w dużych zbiorach danych.

Pytanie 15

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

A. ENUM
B. INTEGER(11)
C. TINYTEXT
D. DECIMAL(10, 2)
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 16

Zasłanianie niektórych pól lub metod obiektów danej klasy w sposób, który umożliwia dostęp wyłącznie wewnętrznym metodom tej klasy lub funkcjom zaprzyjaźnionym, to

A. polimorfizm
B. hermetyzacja
C. dziedziczenie
D. konkatenacja
Hermetyzacja, znana także jako enkapsulacja, to fundamentalna zasada programowania obiektowego, która polega na ukrywaniu wewnętrznych stanów obiektu oraz metod, które te stany modyfikują. Dzięki hermetyzacji, programista może zdefiniować publiczne interfejsy, przez które inne części kodu mogą komunikować się z danym obiektem, przy jednoczesnym zabezpieczeniu wewnętrznych implementacji przed nieautoryzowanym dostępem lub modyfikacją. Przykładem hermetyzacji może być klasa `BankAccount`, która przechowuje saldo konta jako prywatne pole. Umożliwia dostęp do salda tylko przez publiczne metody, takie jak `deposit` i `withdraw`, co zapobiega bezpośredniemu modyfikowaniu salda przez zewnętrzny kod. W standardach programowania, hermetyzacja jest kluczowym elementem zwiększającym bezpieczeństwo i stabilność aplikacji, ponieważ pozwala na modyfikacje wewnętrznej logiki bez wpływu na kod zależny od tego obiektu. Hermetyzacja jest także jednym z podstawowych filarów programowania obiektowego, obok dziedziczenia i polimorfizmu, co czyni ją niezbędną do zrozumienia bardziej złożonych koncepcji w programowaniu.

Pytanie 17

$i=10; $a=0; while $i) { $a=$a+2; $i--; } W języku PHP przedstawiono fragment kodu. Jaka będzie wartość zmiennej a po zakończeniu pętli?

A. 2
B. 10
C. 0
D. 20
Nieprawidłowe odpowiedzi są wynikiem niepełnego zrozumienia działania pętli while w PHP oraz mechanizmu dekremencji zmiennych. Odpowiedzi wskazujące na wartość 0, 2, czy 10 ignorują fakt, że pętla wykonuje się wielokrotnie, a każda iteracja wpływa na końcową wartość zmiennej $a. Odpowiedź 0 sugeruje, że pętla w ogóle się nie wykonała, co jest niezgodne z logiką działania while. Pętla ta będzie aktywna tak długo, jak zmienna $i jest różna od zera, a ponieważ $i zaczyna się od 10, pętla wykona się 10 razy. Odpowiedź 2 może wynikać z błędnego rozumienia, że pętla wykona się tylko raz, co jest sprzeczne z jej definicją; na każdym kroku $a zwiększa się o 2, co w kontekście pełnych 10 iteracji pozostawia $a na poziomie 20. Z kolei wartość 10 mogłaby wynikać z mylnego przekonania, że $a zwiększa się jedynie o 1 na każdym kroku, co również jest fałszywe, gdyż w każdej iteracji dodawane jest 2. Kluczowe do zrozumienia tego fragmentu kodu jest rozważenie, jak iteracje pętli wpływają na zmienne oraz jakie są efekty działania tych operacji. W programowaniu istotne jest, aby dokładnie analizować każdy krok, aby uniknąć błędów logicznych, które mogą prowadzić do nieoczekiwanych wyników.

Pytanie 18

W języku HTML 5 do grupowania powiązanych ze sobą elementów formularza używa się znacznika

A. <option>
B. <optgroup>
C. <summary>
D. <fieldset>
W tym pytaniu chodzi o semantykę HTML5 związaną z formularzami, więc warto spokojnie rozłożyć na czynniki wszystkie podane znaczniki. Częsty błąd polega na tym, że widząc kilka tagów kojarzonych luźno z formularzami, wybieramy któryś „na czuja”, zamiast zastanowić się, do czego dokładnie został zaprojektowany w specyfikacji HTML. Znacznik <summary> w ogóle nie służy do obsługi formularzy. Jest on elementem używanym wewnątrz <details> i odpowiada za nagłówek rozwijanego bloku. To bardziej narzędzie do tworzenia prostych elementów typu „pokaż/ukryj treść”, a nie do grupowania pól formularza. W formularzu można go użyć tylko jako zwykły element HTML, ale nie nadaje on żadnej specjalnej semantyki powiązanej z inputami czy etykietami. Znacznik <option> jest ściśle związany z kontrolką <select>. Reprezentuje pojedynczą opcję do wyboru w liście rozwijanej. On nie grupuje niczego, raczej sam jest elementem składowym większej struktury. Mylenie <option> z elementami grupującymi wynika często z tego, że w formularzach pojawia się dużo nawiasów ostrych i człowiek podświadomie kojarzy wszystkie z „formularzem”, ale rola <option> jest bardzo wąska: pojedyncza wartość w <select>. Z kolei <optgroup> faktycznie coś grupuje, ale tylko wewnątrz listy <select>. Umożliwia pogrupowanie opcji w logiczne sekcje, np. „Polska”, „Niemcy”, „Czechy” jako grupy krajów w jednym polu wyboru. To jednak nie jest ogólny mechanizm do grupowania różnych elementów formularza, tylko specjalistyczny element przeznaczony wyłącznie do porządkowania <option>. Dlatego nie zastąpi <fieldset>, który może otaczać wiele różnych kontrolek: inputy, selecty, textarea, przyciski itd. Podstawą dobrej odpowiedzi jest zrozumienie, że tylko <fieldset> ma w specyfikacji HTML5 jasno zdefiniowaną rolę „grouping form controls”. Pozostałe znaczniki pełnią inne, wyspecjalizowane funkcje i nie nadają całej grupie pól formularza właściwej semantyki ani nie współpracują tak dobrze z technologiami asystującymi. W praktyce, jeśli chcesz logicznie podzielić formularz na sekcje, zawsze myśl w pierwszej kolejności o <fieldset> + <legend>, a dopiero potem o innych elementach, które pełnią bardziej szczegółowe role.

Pytanie 19

Jaką wartość zwróci funkcja napisana w języku C++, gdy jej argumentami są a = 4 i b = 3?

long int fun1(int a, int b) {
    long int wynik = 1;
    for (int i = 0; i < b; i++)
        wynik *= a;
    return wynik;
}
A. 12
B. 64
C. 16
D. 1
Wartości, które nie są prawidłowymi odpowiedziami, mogą wynikać z błędnych interpretacji działania funkcji. Na przykład, odpowiedź wskazująca na 1 sugeruje, że wynik funkcji zacząłby się od wartości zerowej, co jest nieprawidłowe, ponieważ każda potęga liczby wynosi co najmniej 1, o ile podstawą jest liczba różna od zera. Pomocne w zrozumieniu tego jest zapoznanie się z regułą mnożenia, która mówi, że każda liczba podniesiona do zera wynosi 1, ale w tym przypadku mamy do czynienia z dodatnimi argumentami. Z kolei odpowiedzi 12 i 16 mogą wynikać z błędnego zrozumienia liczby mnożenia, gdzie użytkownik mógłby przekonwertować działanie funkcji na inne operacje, takie jak dodawanie lub mnożenie bez zrozumienia, że przykład ilustruje potęgowanie. Tego typu błędy myślowe często prowadzą do mylnego rozumienia algorytmów, w których istotne jest, aby śledzić, co dzieje się z każdą iteracją pętli. Zrozumienie zasady działania pętli i ich zastosowania w kontekście potęgowania jest kluczem do poprawnego rozwiązywania zadań programistycznych. Dlatego ważne jest, aby dokładnie analizować działanie kodu i stosować dobrych praktyk, takich jak testowanie poszczególnych części kodu, aby upewnić się, że rozumiemy, co się dzieje w każdej iteracji.

Pytanie 20

Jakie wyrażenie logiczne powinno zostać użyte w języku JavaScript, aby przeprowadzić operacje wyłącznie na dowolnych liczbach ujemnych z zakresu jednostronnie domkniętego <-200, -100)?

A. (liczba <= -200) || (liczba > -100)
B. (liczba <= -200) && (liczba < -100)
C. (liczba >= -200) || (liczba > -100)
D. (liczba >= -200) && (liczba < -100)
Wybór innego wyrażenia logicznego niż (liczba >= -200) && (liczba < -100) prowadzi do nieprawidłowego zakresu liczb, który nie odpowiada zdefiniowanym wymaganiom. Na przykład, użycie (liczba <= -200) && (liczba < -100) ogranicza zakres do wartości mniejszych lub równych -200 oraz mniejszych niż -100, co nie łapie wartości -200 jako dolnej granicy i odrzuca wszystkie liczby między -200 a -100. Podobnie, (liczba >= -200) || (liczba > -100) sprawdza, czy liczba jest większa lub równa -200, co obejmuje wszystkie liczby ujemne, a to nie jest zgodne z oczekiwanym przedziałem. Z kolei (liczba <= -200) || (liczba > -100) również nie pasuje do wymogów, ponieważ akceptuje liczby mniejsze niż -200 oraz te większe niż -100, co znów nie pokrywa się z ustalonym zakresem. Typowe błędy w myśleniu mogą wynikać z nieprecyzyjnego zrozumienia operatorów logicznych oraz sposobu, w jaki dane warunki wpływają na zakres wartości. Zrozumienie działania operatorów oraz ich wpływu na logikę aplikacji jest kluczowe dla skutecznego programowania, a ich niewłaściwe zastosowanie prowadzi do błędów, które mogą być trudne do zdiagnozowania. Ważne jest, aby przy definiowaniu warunków, zwracać szczególną uwagę na znaki porównania i ich dobór do oczekiwanego rezultatu.

Pytanie 21

Jaka będzie wartość zwrócona przez funkcję zao napisaną w C++, jeśli zostanie wywołana z argumentem 3.55?

int zao(float x){
  return (x+0.5);
}
A. 4
B. 4.05
C. 3
D. 3.5
Rozważając różne opcje odpowiedzi, często występuje nieporozumienie związane z różnicą między obcięciem a zaokrągleniem liczby zmiennoprzecinkowej. W języku C++ obcinanie następuje przy konwersji z typu float na int, gdzie część ułamkowa jest po prostu odrzucana. Dlatego odpowiedzi, które sugerują, że wynik będzie 3 lub 3.5, wynikają z niepełnego zrozumienia działania konwersji typów. Dodanie 0.5 do liczby przed obcięciem jest powszechną techniką zaokrąglania. Odpowiedzi sugerujące 4.05 nie uwzględniają faktu, że wynik musi być całkowity. Błąd ten może także wynikać z mylenia operacji matematycznych z wymaganiami dotyczącymi typu zwracanej wartości. Warto również wspomnieć, że w środowisku programistycznym dobrą praktyką jest korzystanie z dedykowanych funkcji zaokrąglających takich jak round(), które poprawiają czytelność kodu i zmniejszają ryzyko błędów logicznych. Właściwe zrozumienie operacji konwersji typów i zaokrąglania jest kluczowe w programowaniu, gdzie dokładność obliczeń ma istotne znaczenie, na przykład w aplikacjach finansowych czy inżynierskich. Dlatego regularne stosowanie standardowych funkcji z biblioteki cmath może zapobiec wielu błędom logicznym i zwiększyć niezawodność aplikacji. Programiści powinni być świadomi różnic w implementacji zaokrąglania w różnych językach programowania, aby unikać pomyłek w konwersjach między nimi.

Pytanie 22

Jaki typ komunikatu jest zawsze przesyłany wyłącznie w kierunku w dół, to jest od kierownika do pracownika?

A. Uwagi dotyczące polityki organizacji.
B. Poszukiwanie rozwiązań.
C. Zgłaszanie.
D. Powierzenie zadania.
W przypadku raportowania, komunikacja ta jest często obustronna, co oznacza, że może zachodzić nie tylko w dół, ale również w górę - pracownicy raportują swoje wyniki i postępy do przełożonych, co może prowadzić do interakcji i wymiany informacji. Poszukiwanie rozwiązań z kolei jest procesem bardziej współpracy, który angażuje zarówno przełożonych, jak i podwładnych w poszukiwanie najlepszych sposobów działania. Taki sposób komunikacji oparty jest na wymianie pomysłów oraz twórczym myśleniu, co nie jest ograniczone tylko do jednego kierunku. Uwagi o polityce organizacji również mogą być przekazywane w różny sposób - mogą to być zarówno polecenia z góry, jak i sugestie z dołu, co pozwala na bardziej demokratyczne podejście do zarządzania. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków często opierają się na założeniu, że wszystkie komunikaty mają jednolitą naturę. W rzeczywistości, skuteczna komunikacja w organizacji wymaga uwzględnienia kontekstu, celu oraz odbiorcy. Dlatego zrozumienie różnorodności komunikatów i sposobów ich przekazywania jest kluczowe dla skutecznego zarządzania i efektywnej współpracy w zespole.

Pytanie 23

Jaki jest efekt wielokrotnego wykonywania kodu PHP?

if (!isset($_COOKIE["ciastko"]))
    $zm = 1;
  else
    $zm = intval($_COOKIE["ciastko"]) + 1;
setcookie("ciastko", $zm);
A. zapisanie do ciasteczka wartości 1 przy każdym odświeżeniu witryny
B. pokazanie ciasteczka z zapisanym parametrem
C. zliczanie liczby wizyt na stronie
D. dodanie danych do ciasteczka tylko przy pierwszym wejściu na stronę
Program w PHP pokazany w pytaniu wykorzystuje mechanizm ciasteczek do zliczania liczby odwiedzin strony przez użytkownika. Mechanizm ten opiera się na zmiennej 'ciastko', która jest przechowywana w ciasteczku w przeglądarce użytkownika. Przy pierwszym uruchomieniu strony, jeśli ciasteczko nie istnieje, ustawiana jest jego wartość na 1. W kolejnych odwiedzinach wartość ta jest odczytywana i zwiększana o 1, a następnie ponownie zapisywana do ciasteczka. Dzięki temu użytkownik, odświeżając stronę, widzi aktualizowaną liczbę odwiedzin. Takie rozwiązanie jest skuteczne w śledzeniu aktywności użytkownika na stronie, ale ma swoje ograniczenia. Na przykład, jeśli użytkownik wyczyści ciasteczka w swojej przeglądarce, licznik zostanie zresetowany, co może być niepożądane w niektórych aplikacjach. Zliczanie odwiedzin z wykorzystaniem ciasteczek jest jednak popularnym podejściem ze względu na prostotę implementacji i brak potrzeby skomplikowanej infrastruktury serwerowej. W praktyce, dla bardziej zaawansowanej analizy odwiedzin, często korzysta się również z narzędzi analitycznych, jak Google Analytics, które pozwalają na śledzenie użytkowników bez wpływu na ich lokalne ustawienia przeglądarki

Pytanie 24

Jakie są właściwe etapy tworzenia bazy danych?

A. Zdefiniowanie celu, stworzenie tabel, utworzenie relacji, normalizacja
B. Zdefiniowanie celu, normalizacja, utworzenie relacji, stworzenie tabel
C. Zdefiniowanie celu, normalizacja, stworzenie tabel, utworzenie relacji
D. Zdefiniowanie celu, utworzenie relacji, stworzenie tabel, normalizacja
Wybór nieprawidłowej kolejności procesów w tworzeniu bazy danych może prowadzić do poważnych problemów z integralnością oraz wydajnością systemu. W pierwszym przypadku, w którym normalizację wprowadzono przed utworzeniem relacji, brak byłby zrozumienia, jakie dane w ogóle należy normalizować, co mogłoby skutkować nieefektywnym modelowaniem danych. Proces normalizacji powinien odbywać się po zdefiniowaniu tabel oraz relacji, ponieważ to one stanowią bazę do analizy nadmiarowości. W innym scenariuszu, gdzie tabele zostałyby stworzone przed ustaleniem relacji, mogłoby to prowadzić do niezgodności danych, ponieważ relacje definiują, jak poszczególne tabele współdziałają. Bez zrozumienia tych zależności, konstrukcja tabel może być chaotyczna i trudna do zarządzania. Ostatni przypadek, w który normalizacja poprzedza tworzenie tabel, jest również błędny, ponieważ nie można normalizować danych, które nie zostały jeszcze zdefiniowane. Normalizacja wymaga pełnej wiedzy na temat struktury danych, co czyni ten krok niemożliwym do wykonania bez wcześniejszego określenia tabel. Te błędy w kolejności działań mogą prowadzić do wielu problemów w przyszłości, takich jak trudności w zapytaniach do bazy danych, nieefektywności w przechowywaniu danych oraz trudności z zachowaniem integralności referencyjnej.

Pytanie 25

Formaty wideo, które są wspierane przez standard HTML5, to

A. Ogg, QuickTime
B. MP4, AVI
C. MP4, Ogg, WebM
D. Ogg, AVI, MPEG
Wybór odpowiedzi takiej jak MP4, AVI, nie uwzględnia faktu, że format AVI nie jest obsługiwany przez HTML5. AVI to starszy format kontenera, który wymaga zainstalowanych kodeków, co czyni go mniej przydatnym w kontekście nowoczesnych aplikacji webowych, które stawiają na zgodność i łatwość użycia. Podobnie, wybór Ogg, QuickTime również jest błędny, ponieważ format QuickTime, choć popularny, nie jest częścią standardu HTML5 i wymaga korzystania z dodatkowych wtyczek lub komponentów w przeglądarkach, co nie sprzyja wydajności ani wygodzie użytkowników. W przypadku Ogg, choć jest to format otwarty, jego zastosowanie w praktyce jest ograniczone w porównaniu z MP4 czy WebM. Również zestawienie Ogg, AVI, MPEG jest mylące, ponieważ MPEG to bardziej ogólne określenie dla różnych standardów kompresji wideo, a nie konkretny format pliku. Współczesne praktyki programistyczne i standardy internetowe preferują formaty, które są natywnie wspierane przez przeglądarki, a te, które wymagają dodatkowych wtyczek lub nie są powszechnie używane, są odrzucane. Zrozumienie, które formaty są zgodne z HTML5, jest kluczowe dla zapewnienia optymalnych doświadczeń użytkownika.

Pytanie 26

Zastosowanie klauzuli PRIMARY KEY w poleceniu CREATE TABLE sprawi, że dane pole stanie się

A. kluczem podstawowym
B. indeksem klucza
C. kluczem obcym
D. indeksem unikalnym
Niepoprawne odpowiedzi nie odzwierciedlają pełnej definicji klucza podstawowego oraz jego roli w strukturze bazy danych. Klucz obcy to inny typ klucza, który służy do tworzenia relacji między tabelami. Zwykle odwołuje się do kolumny klucza podstawowego w innej tabeli, co pozwala na integrację danych z różnych źródeł. Klucz obcy nie ma wymogu unikalności, co oznacza, że może występować wiele powtórzeń w danej kolumnie. Indeks klucza to termin odnoszący się do mechanizmu, który przyspiesza dostęp do danych w tabeli, ale nie jest tożsamy z kluczem podstawowym. Indeksy mogą być tworzone na różnych kolumnach tabeli, aby optymalizować czas odpowiedzi zapytań, ale nie gwarantują unikalności danych w tych kolumnach. Indeks unikalny to z kolei rodzaj indeksu, który zapewnia, że wartości w danej kolumnie są unikalne, jednak nie pełni on roli klucza głównego, ponieważ nie wymaga braku wartości NULL. W związku z tym, te niepoprawne odpowiedzi mylą pojęcia kluczy i indeksów, co jest istotne dla zrozumienia struktury i integracji danych w relacyjnych bazach danych.

Pytanie 27

Instrukcja języka PHP tworząca obiekt pkt dla zdefiniowanej w ramce klasy Punkt ma postać

class Punkt {  public $x;
                public $y;  }
A. Punkt() pkt;
B. pkt Punkt();
C. pkt = new Punkt();
D. pkt Punkt;
Twoja odpowiedź nie jest prawidłowa. Wybrałeś konstrukcję, która nie jest poprawnym sposobem tworzenia obiektu w języku PHP. PHP jest językiem obiektowym, a do tworzenia obiektów używamy konstrukcji z słowem kluczowym 'new' i nazwą klasy. Instrukcje, które wybrałeś, nie są poprawnymi instrukcjami w PHP i prawdopodobnie spowodują błąd składni. W odpowiedziach 2, 3 i 4 brakuje słowa kluczowego 'new', które jest niezbędne do tworzenia nowych instancji klas, a także brakuje znaku równości i prawidłowego ułożenia elementów. Rozumienie, jak tworzyć obiekty, jest kluczowe do efektywnego programowania w PHP, więc warto poświęcić temu więcej czasu. Spróbuj jeszcze raz, z pewnością sobie poradzisz!

Pytanie 28

Utworzono bazę danych zawierającą tabelę podzespoły, która składa się z pól: model, producent, typ, cena. Aby uzyskać listę wszystkich modeli pamięci RAM od firmy Kingston uporządkowaną według ceny, zaczynając od najniższej, należy wykorzystać zapytanie:

A. SELECT model FROM producent WHERE typ="RAM" OR producent="Kingston" ORDER BY podzespoly ASC
B. SELECT model FROM podzespoly WHERE typ="RAM" AND producent="Kingston" ORDER BY cena ASC
C. SELECT model FROM podzespoly WHERE typ="RAM" OR producent="Kingston" ORDER BY cena DESC
D. SELECT model FROM podzespoly WHERE typ="RAM" AND producent="Kingston" ORDER BY cena DESC
Wybór tej odpowiedzi jest prawidłowy, ponieważ kwerenda wykorzystuje poprawną składnię SQL do wyboru modeli pamięci RAM od producenta Kingston. Klauzula WHERE filtruje rekordy, aby uwzględnić tylko te, które mają typ 'RAM' oraz producenta 'Kingston', co jest kluczowe dla uzyskania właściwych wyników. Użycie operatora AND w tym kontekście zapewnia, że obie te cechy muszą być spełnione, co jest zgodne z zamiarem wyświetlenia wszystkich modeli pamięci RAM tego producenta. Dodatkowo, klauzula ORDER BY cena ASC sortuje wyniki w kolejności rosnącej według ceny, co jest wymagane do poprawnego przedstawienia danych od najtańszej do najdroższej pamięci. Takie podejście jest zgodne z dobrymi praktykami SQL, gdzie precyzyjne filtrowanie danych i porządkowanie wyników są kluczowe dla efektywności i dokładności zapytań. W praktyce, takie kwerendy mogą być używane w aplikacjach do zarządzania produktami czy bazach danych e-commerce, aby pomóc użytkownikom w szybkim odnajdywaniu pożądanych produktów w oparciu o konkretne kryteria.

Pytanie 29

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

A. src
B. link
C. href
D. alt
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 30

W języku JavaScript trzeba sformułować warunek, który będzie spełniony, gdy zmienna a będzie dowolną liczbą naturalną dodatnią (więcej niż 0) lub gdy zmienna b będzie dowolną liczbą z przedziału domkniętego od 10 do 100. Wyrażenie logiczne w tym warunku powinno mieć postać

A. (a > 0) || ((b >= 10) && (b <= 100))
B. (a > 0) || ((b >= 10) || (b <= 100))
C. (a > 0) && ((b >= 10) && (b <= 100))
D. (a > 0) && ((b >= 10) || (b <= 100))
Poprawna odpowiedź (a > 0) || ((b >= 10) && (b <= 100)) uwzględnia wymaganie, aby warunek był spełniony, gdy zmienna a jest liczbą naturalną dodatnią bądź zmienna b znajduje się w przedziale od 10 do 100, włącznie. W tym przypadku użycie operatora logicznego '||' (lub) jest kluczowe, ponieważ wystarczy, że jeden z warunków będzie prawdziwy, aby cały warunek był spełniony. Przykładem może być skrypt walidujący dane wejściowe użytkownika: jeśli zmienna a przechowuje wartość 5 (czyli liczbę naturalną dodatnią), to niezależnie od wartości zmiennej b, warunek będzie prawdziwy. Analogicznie, jeśli a wynosi 0, a b = 15, warunek również będzie spełniony, ponieważ b mieści się w wymaganym przedziale. Taka konstrukcja warunku jest zgodna z dobrą praktyką programistyczną, gdyż pozwala na jasne i zrozumiałe określenie, kiedy pewne zasady powinny być stosowane. Zastosowanie operatorów logicznych w taki sposób wspiera tworzenie czytelnych i elastycznych warunków, co jest istotne w kontekście utrzymania kodu i jego przyszłych modyfikacji.

Pytanie 31

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", należy zastosować funkcję PHP

A. ucfirst("ala ma psa")
B. strtoupper("ala ma psa")
C. strstr("ala ma psa")
D. strtolower("ala ma psa")
Odpowiedzi, które zaznaczyłeś, są niestety mylne. Funkcja ucfirst zmienia tylko pierwszą literę na dużą i nie osiągnie zamierzonego celu, bo zostawi resztę tekstu tak, jak jest. Więc 'ala ma psa' zamieni się tylko w 'Ala ma psa', co nie jest tym, co chciałeś uzyskać. Z kolei strtolower przekształca wszystko na małe litery, więc po jej użyciu wynik byłby wciąż 'ala ma psa'. A funkcja strstr służy do wyszukiwania fragmentów tekstu, nie do zmiany wielkości liter. Trochę szkoda, bo wszystkie te funkcje mają swoje zastosowania, ale ważne, żeby znać ich różnice, żeby nie popełniać takich błędów. Warto zerknąć do dokumentacji PHP i korzystać z różnych materiałów, żeby lepiej ogarnąć te rzeczy.

Pytanie 32

Aby wyciszyć dźwięk w filmie odtwarzanym w przeglądarce, do podanej definicji znacznika <video> powinien zostać dodany atrybut <video> <source src="film.mp4" type="video/mp4"> </video>

A. loop
B. controls
C. muted
D. autoplay
Atrybut 'muted' w znaczniku <video> jest kluczowy dla zarządzania dźwiękiem w odtwarzanych filmach. Gdy dodamy atrybut 'muted', zapewniamy, że film będzie odtwarzany bez dźwięku, co jest szczególnie istotne w kontekście doświadczenia użytkownika na stronie internetowej. W praktyce, wiele stron korzysta z automatycznego odtwarzania filmów w tle, co jest popularne w serwisach informacyjnych oraz mediach społecznościowych. Bez dźwięku, użytkownicy nie są rozpraszani, a strona nie wpływa negatywnie na ich doświadczenie przeglądania. Zgodnie z najlepszymi praktykami, należy również pamiętać o dostępności – filmy bez dźwięku mogą być łatwiej przyswajalne dla osób z problemami ze słuchem, a także unikamy sytuacji, w której nagłe dźwięki mogłyby wywołać dyskomfort. Atrybut 'muted' jest więc nie tylko funkcjonalny, ale także zgodny z zasadami projektowania stron internetowych, które stawiają na komfort użytkownika.

Pytanie 33

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. uzyskanie danych z bazy danych
D. nawiązanie połączenia z bazą danych
Podana funkcja w języku PHP demonstruje zastosowanie polecenia SQL SELECT które jest używane do pobierania danych z bazy danych MySQL. Funkcja mysql_query jest używana do wykonywania zapytań SQL w kontekście bazy danych MySQL. W tym przypadku zapytanie SQL SELECT * FROM napisy pobiera wszystkie rekordy z tabeli o nazwie napisy. W praktyce wybór danych przy użyciu komendy SELECT jest kluczowy w aplikacjach PHP które działają z bazami danych ponieważ pozwala na dynamiczne generowanie zawartości strony internetowej w oparciu o informacje przechowywane w bazie. Ważne jest przestrzeganie najlepszych praktyk takich jak użycie funkcji mysqli_query czy PDO w nowych aplikacjach PHP w celu zapewnienia bezpieczeństwa i wydajności ponieważ mysql_query jest przestarzałe. Dodatkowo należy stosować techniki zabezpieczające przed SQL injection takie jak przygotowane zapytania co zwiększa bezpieczeństwo aplikacji

Pytanie 34

Aby obraz wstawiony na stronę internetową mógł dostosować się automatycznie do wymiarów ekranu, na którym jest wyświetlany, konieczne jest

A. ustawienie jego szerokości w wartościach procentowych
B. niezmienianie obu jego wymiarów za pomocą stylów CSS
C. ustawienie jednego z jego wymiarów w pikselach
D. ustawienie obu jego rozmiarów w pikselach
Ustawienie wymiarów obrazu w pikselach ogranicza jego elastyczność, co prowadzi do nieidealnego wyświetlania na różnych urządzeniach. Obrazy o stałych wymiarach mogą nie zmieścić się na ekranach o mniejszych rozmiarach, co skutkuje koniecznością przewijania w poziomie lub zniekształceniem obrazu, gdy przeglądarka jest zmniejszana. Ponadto, ustawienie jednego z wymiarów w pikselach również nie rozwiązuje problemu responsywności, ponieważ drugi wymiar nadal będzie stały, co może prowadzić do nieproporcjonalnego wyświetlania. Nie modyfikowanie obu wymiarów stylami CSS neguje możliwości dostosowania obrazów do zmieniających się rozmiarów ekranów, co jest istotnym aspektem nowoczesnego web designu. Praktyczna implementacja responsywnych zdjęć wymaga przemyślenia koncepcji elastyczności, co obejmuje użycie CSS, aby zapewnić optymalne wyświetlanie obrazów na wszystkich urządzeniach. Użytkownicy powinni być świadomi, że dobrą praktyką jest stosowanie technik takich jak media queries oraz CSS Flexbox, co pozwala na precyzyjne dostosowywanie layoutu do wymagań urządzenia. Podsumowując, podejście to nie tylko wpływa na estetykę strony, ale również na jej funkcjonalność i dostępność, co jest kluczowe w obecnych czasach, gdy użytkownicy korzystają z szerokiej gamy urządzeń.

Pytanie 35

Określ właściwą hierarchię stylów CSS biorąc pod uwagę ich priorytet w stylizacji elementów strony WWW?

A. Wewnętrzny, Zewnętrzny, Rozciąganie stylu
B. Rozciąganie stylu, Zewnętrzny, Lokalny
C. Zewnętrzny, Wydzielone bloki, Lokalny
D. Lokalny, Wewnętrzny, Zewnętrzny
Wszystkie błędne odpowiedzi zawierają istotne nieporozumienia dotyczące priorytetów stylów CSS oraz sposobu, w jaki są one stosowane na stronach internetowych. Porządek stylów jest kluczowy dla efektywnego projektowania stron, a zrozumienie, które style mają pierwszeństwo, jest fundamentalne. Wewnętrzny styl nie powinien być uznawany za wyższy niż zewnętrzny, co sugeruje jedna z niepoprawnych odpowiedzi. Zewnętrzne arkusze stylów, będące najlepszym rozwiązaniem do zarządzania stylami w aplikacjach webowych, są ładowane na początku, co oznacza, że mają niższy priorytet niż style zdefiniowane lokalnie. Natomiast odpowiedzi, które sugerują, że styl zewnętrzny może mieć wyższy priorytet niż lokalny, są szczególnie mylące, gdyż mogą prowadzić do sytuacji, w której zmiany w stylach lokalnych są ignorowane. Dodatkowe błędne koncepcje dotyczą możliwości stosowania tzw. rozciągania stylu, co nie jest terminem uznawanym w kontekście CSS, co jeszcze bardziej potęguje nieporozumienia. W praktyce, nieprzestrzeganie zasad priorytetów stylów CSS może skutkować nieczytelnym kodem i chaotycznym stylem strony, co jest sprzeczne z dobrymi praktykami tworzenia stron internetowych, takimi jak stosowanie zunifikowanych arkuszy stylów i unikanie nadmiarowych deklaracji stylów.

Pytanie 36

W CSS wartości underline, overline, blink są przypisane do atrybutu

A. font-weight
B. text-decoration
C. font-style
D. text-style
Zwracając uwagę na 'text-style', 'font-style' i 'font-weight', można się pogubić, bo to są różne rzeczy. Po pierwsze, 'text-style' w ogóle nie istnieje w CSS, więc jeśli ktoś tego użyje, to nie uzyska zamierzonych efektów. Często ludzie mylą 'font-style' z 'text-decoration', a to są zupełnie różne rzeczy. 'Font-style' odpowiada za styl czcionki, taki jak normalny czy kursywa, a 'text-decoration' dodaje różne efekty dekoracyjne do tekstu. Z kolei 'font-weight' to grubość czcionki, co wpływa na to, jak tekst wygląda, ale nie ma nic wspólnego z podkreślaniem. Jest to typowy błąd, bo niektórzy myślą, że te właściwości można wymieniać bez konsekwencji. Żeby dobrze stylizować tekst, trzeba rozumieć, co każda z tych właściwości robi i jak ich używać. To naprawdę pomaga w tworzeniu ładnych i funkcjonalnych stron internetowych.

Pytanie 37

Aby przeanalizować rozkład ilościowy różnych kolorów na zdjęciu, należy skorzystać z

A. desaturacji
B. histogramu
C. balansu kolorów
D. rozmycia Gaussa
Desaturacja to taki proces, który sprawia, że kolory w obrazku są mniej intensywne, co czasem prowadzi do efektu czarno-białego albo po prostu bardziej stonowanej kolorystyki. Moim zdaniem, w niektórych sytuacjach może się to przydać, ale nie daje informacji o tym, jak kolory się rozkładają. Ludzie mogą pomyśleć, że desaturacja pomoże im w analizie kolorów, ale tak naprawdę to tylko zasłania różnice i nie ujawnia, co tak naprawdę jest w obrazie. Balans kolorów to sprawa dostosowywania intensywności poszczególnych kolorów, co zmienia wygląd zdjęcia, ale też nie mówi nic o ich ilościowym rozkładzie. A rozmycie Gaussa to sposób na wygładzanie obrazów, żeby zredukować szumy, a nie do analizy kolorów. Wybierając jedną z tych opcji, można łatwo pomylić się i sądzić, że zyskuje się jakieś dane o rozkładzie kolorów, podczas gdy tak naprawdę żadna z tych metod tego nie robi. Dlatego lepiej trzymać się histogramu, bo on naprawdę pokazuje, co się dzieje z kolorami w obrazach.

Pytanie 38

Baza danych zawiera tabelę pod nazwą pracownicy, która ma pola: nazwisko, imię, pensja oraz wiek. Jak brzmi składnia zapytania, aby obliczyć średnią pensję pracowników?

A. select AVG(pensja) from pracownicy
B. select VAR(pracownicy) into pensja
C. select VAR(pensja) from nazwisko
D. select AVG(nazwisko) into pensja
Pierwsza z niepoprawnych odpowiedzi, która sugeruje 'select AVG(nazwisko) into pensja', jest błędna, ponieważ funkcja AVG jest używana do obliczania średniej wartości liczbowej, a nie tekstowej. W kontekście kolumny 'nazwisko', próba zastosowania AVG nie ma sensu, ponieważ nie jest to liczba, a tekst. Druga odpowiedź wskazuje na 'select VAR(pensja) from nazwisko', co również jest niepoprawne, ponieważ funkcja VAR nie jest standardową funkcją SQL dla obliczania wariancji w kontekście pojedynczego rekordu, a zamiast tego powinna być używana na zestawach danych. Dodatkowo, odniesienie do kolumny 'nazwisko' w tym przypadku jest błędne, ponieważ nie można obliczać wariancji na kolumnie, która nie zawiera wartości numerycznych. Ostatnia niepoprawna odpowiedź, 'select VAR(pracownicy) into pensja', jest błędna z tego samego powodu; użycie VAR w kontekście całej tabeli bez wskazania konkretnego pola numerycznego jest nieprawidłowe. W SQL, funkcje agregujące wymagają określenia, na jakiej kolumnie mają działać, a także powinny odnosić się do odpowiednich typów danych.

Pytanie 39

Jakie będzie działanie po naciśnięciu przycisku oznaczonego jako "niebieski", który uruchamia podany kod JavaScript?

<p id="para1">Przykładowy tekst</p><p> i skrypt</p>
<button onClick="changeColor('blue');">niebieski</button>

<script type="text/javascript">
function changeColor(newColor)
{
var elem = document.getElementById("para1");
elem.style.color = newColor;
}
</script>
A. Zmiana koloru tekstu "i skrypt" na niebieski
B. Zmiana koloru tekstu "Przykładowy tekst" na niebieski
C. Zmiana barwy przycisku na niebieski
D. Zmiana koloru tekstu "Przykładowy tekst i skrypt" na niebieski
Przy analizie działania kodu przedstawionego w pytaniu istotne jest zrozumienie jak JavaScript oddziałuje z elementami DOM (Document Object Model). Istnieje powszechne nieporozumienie polegające na założeniu że funkcje JavaScript automatycznie działają na wszystkie elementy o podobnej treści. W rzeczywistości kod używa metody document.getElementById która jednoznacznie identyfikuje element na podstawie jego unikalnego Id. W omawianym przypadku odnosi się to do elementu paragrafu z identyfikatorem para1. Pozostałe fragmenty tekstu takie jak i skrypt nie są objęte tym działaniem gdyż nie są częścią identyfikowanego elementu. Popularnym błędem jest również zakładanie że przycisk zmienia swój własny kolor styli po naciśnięciu co w tym przypadku nie ma miejsca ponieważ kod bezpośrednio modyfikuje jedynie własności stylu określonego elementu przez jego Id. Warto zwrócić uwagę że dla złożonych manipulacji DOM w kontekście większych aplikacji webowych używa się bardziej zaawansowanych technik jak selektory CSS lub biblioteki takie jak jQuery które umożliwiają selekcję wielu elementów jednocześnie. Zrozumienie tych podstawowych zasad jest kluczowe dla poprawnego rozumienia i implementacji funkcji JavaScript w nowoczesnych aplikacjach webowych i zgodne z najlepszymi praktykami w branży.

Pytanie 40

W formularzu HTML użyto znacznika <input>. Pole to będzie służyło do wprowadzania maksymalnie

<input type="password" size="30" maxlength="20">
A. 30 znaków, które są widoczne w trakcie wprowadzania
B. 20 znaków, które nie są widoczne w polu tekstowym
C. 20 znaków, które są widoczne w trakcie wprowadzania
D. 30 znaków, które nie są widoczne w polu tekstowym
Odpowiedzi sugerujące, że w polu tekstowym mogą być widoczne znaki, są nieprawidłowe z kilku istotnych powodów. Przede wszystkim znaczenie atrybutu 'type' w znaczniku <input> jest kluczowe. Użycie 'type="password"' jednoznacznie wskazuje, że wprowadzone znaki będą maskowane, co ma na celu ochronę prywatności użytkownika. Odpowiedzi wskazujące na 30 znaków, które są widoczne, są całkowicie błędne, ponieważ atrybut 'size' definiuje szerokość pola, a nie maksymalną liczbę znaków, które można wprowadzić. To może prowadzić do mylnego wrażenia, że użytkownik ma pełen wgląd w wprowadzane dane, co nie jest zgodne z zamierzeniem tego typu pól. Oprócz tego, maksymalna liczba znaków 'maxlength' nie ma żadnego wpływu na to, czy znaki są widoczne, czy nie. Typowe błędy myślowe związane z tym zagadnieniem mogą obejmować niepoprawne zrozumienie roli atrybutów 'size' i 'maxlength'. Kluczowe jest, aby użytkownicy rozumieli, że odpowiednie projektowanie formularzy powinno zawsze uwzględniać bezpieczeństwo danych oraz ich ochronę, zwłaszcza w przypadku haseł. Dobre praktyki w zakresie UX/UI zalecają korzystanie z pól typu 'password' w sytuacjach wymagających ochrony danych, co przyczynia się do zwiększenia bezpieczeństwa aplikacji webowych.