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: 23 kwietnia 2026 12:51
  • Data zakończenia: 23 kwietnia 2026 13:09

Egzamin niezdany

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

Baza danych zawiera tabelę uczniowie z kolumnami: imie, nazwisko, klasa. Jakie polecenie SQL powinno być użyte, aby wyświetlić imiona i nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN "M%"
B. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = "M%"
C. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN "M%"
D. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE "M%"
Wybór innych opcji jest błędny z kilku powodów związanych z niewłaściwym zastosowaniem operatorów oraz składni SQL. W przypadku polecenia SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN "M%", pojawia się mylne rozumienie zastosowania klauzuli ORDER BY. Ta klauzula jest używana do sortowania wyników zapytania, a nie do filtrowania ich na podstawie warunków. Operator IN służy do sprawdzania, czy wartość znajduje się w określonym zbiorze danych, ale nie współdziała poprawnie z wzorcami, takimi jak "M%", które wymagają użycia LIKE. Podobnie, w odpowiedzi SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN "M%", użycie IN jest niewłaściwe, ponieważ nie można stosować wildcardów w tym kontekście. Ostatecznie, SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = "M%" również nie jest trafnym podejściem, ponieważ operator = wymaga dokładnego dopasowania, a nie porównania na podstawie wzorca. Powszechnym błędem jest brak zrozumienia zasięgu operatorów w SQL oraz ich właściwej aplikacji w kontekście zapytań, co prowadzi do nieefektywnego uzyskiwania danych. Znalezienie właściwego rozwiązania wymaga zrozumienia, jak zastosować odpowiednie operatory w celu efektywnego przeszukiwania i filtrowania danych w bazach danych.

Pytanie 2

Która z zasad dotyczących użycia semantycznych znaczników sekcji w języku HTML 5 jest poprawna?

A. Znacznik <footer> powinien być umieszczony na górze strony, a <header> na jej końcu
B. Znacznik <main> może być użyty tylko raz w danym dokumencie
C. Znacznik <aside> jest wykorzystywany dla dodatkowej treści strony
D. Znacznik <nav> jest przypisany do sekcji <article>
Znacznik <main> w HTML5 jest przeznaczony do określenia głównej treści dokumentu, która jest bezpośrednio związana z jego tematem lub celem. Warto podkreślić, że zgodnie z definicją W3C, <main> powinien być używany tylko raz na stronie, aby zapewnić jednoznaczność struktury dokumentu oraz ułatwić nawigację dla technologii wspomagających, takich jak czytniki ekranu. Przykładowo, gdy tworzysz stronę internetową z artykułami, sekcja <main> może zawierać wszystkie te artykuły, natomiast inne sekcje, takie jak <header>, <footer> czy <aside>, powinny być wykorzystywane do różnych celów, takich jak nawigacja, stopka czy treści poboczne. Użycie <main> zgodnie z jego przeznaczeniem nie tylko poprawia semantykę strony, ale także jej dostępność, co jest kluczowe dla dzisiejszego web developmentu.

Pytanie 3

Polecenie serwera MySQL w postaci

REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost'
spowoduje, że użytkownikowi tKowal zostaną
A. odebrane uprawnienia usuwania oraz dodawania rekordów w tabeli pracownicy
B. przydzielone uprawnienia do wszelkich zmian struktury tabeli pracownicy
C. odebrane prawa usuwania i modyfikowania danych w tabeli pracownicy
D. przydzielone uprawnienia do usuwania oraz aktualizowania danych w tabeli pracownicy
Odpowiedź wskazuje, że użytkownikowi tKowal odebrane zostały prawa usuwania i modyfikowania danych w tabeli pracownicy za pomocą polecenia REVOKE. W kontekście zarządzania uprawnieniami w MySQL, polecenie REVOKE jest kluczowym narzędziem, które umożliwia administratorom bazy danych kontrolowanie dostępu użytkowników do różnych operacji na danych. W tym przypadku, przy użyciu REVOKE DELETE, UPDATE, administrator zdejmuje z użytkownika tKowal możliwość usuwania (DELETE) oraz aktualizowania (UPDATE) rekordów w tabeli pracownicy. Praktycznym zastosowaniem tej funkcji może być sytuacja, gdy administrator chce ograniczyć dostęp do wrażliwych danych, aby zapobiec przypadkowemu lub nieuprawnionemu usunięciu informacji. Dobrą praktyką jest regularne przeglądanie i aktualizowanie uprawnień użytkowników, aby zapewnić, że mają oni tylko te uprawnienia, które są im niezbędne do wykonywania swoich obowiązków, co przyczynia się do zwiększenia bezpieczeństwa danych.

Pytanie 4

Jakie zapytanie należy zastosować, aby pokazać tylko imię, nazwisko oraz ulicę wszystkich mieszkańców?

Ilustracja do pytania
A. SELECT * FROM Mieszkancy, Adresy ON Mieszkancy.id = Adresy.id
B. SELECT * FROM Mieszkancy JOIN Adresy ON Adresy.id = Mieszkancy.Adresy.id
C. SELECT imie, nazwisko, ulica FROM Mieszkancy, Adresy ON Mieszkancy.Adresy_id = Adresy.id
D. SELECT imie, nazwisko, ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id
Niepoprawne podejścia wynikają głównie z braku zastosowania właściwego połączenia między tabelami lub wyboru odpowiednich kolumn. Pierwszym błędem jest użycie SELECT * bez szczegółowego określenia, jakie kolumny są potrzebne. Taki zapis powoduje, że zwracane są wszystkie kolumny z obu tabel, co jest nieefektywne i niezgodne z najlepszymi praktykami, zakładającymi minimalizację przetwarzanych danych. Ponadto, wykorzystanie przecinka zamiast JOIN wprowadza niepotrzebny chaos i może prowadzić do błędów, zwłaszcza w złożonych zapytaniach, gdzie konieczne jest połączenie większej liczby tabel. Druga odpowiedź zawiera niepoprawne użycie ON, które nie jest zgodne z zasadami SQL, co powoduje błędne wyniki lub nawet awarie zapytań. Brak jest również specyfikacji kolumn, co prowadzi do zwrócenia zbyt dużej ilości danych. Dodatkowo, błędnie skonstruowane połączenie prowadzi do niepoprawnego mapowania wierszy, przez co zwracane dane nie odzwierciedlają rzeczywistych relacji między mieszkańcami a adresami. Dobre praktyki nakazują, aby zawsze używać JOIN z wyraźnym określeniem kluczy obcych i głównych, co zapewnia właściwe mapowanie wierszy i minimalizację błędów. Ważne jest również, aby każdorazowo testować zapytanie pod kątem wydajności i poprawności, a także dbać o czytelność i zrozumiałość kodu SQL, co jest kluczowe w kontekście zespołowego rozwoju oprogramowania.

Pytanie 5

W teorii relacji operacja selekcji polega na

A. eliminuje krotki z powtarzającymi się polami
B. pozbywaniu się pustych wierszy
C. wybraniu krotek, które spełniają określone warunki
D. wybraniu krotek, które nie zawierają wartości NULL
W kontekście algebry relacji, operacja selekcji nie polega na eliminowaniu krotek z powtarzającymi się polami czy też usuwaniu pustych wierszy. Tego rodzaju zrozumienie jest mylące, ponieważ w rzeczywistości selekcja ma na celu wydobycie krotek, które spełniają określone kryteria. Eliminowanie krotek z powtarzającymi się polami odnosi się bardziej do operacji związanych z usuwaniem duplikatów, co jest osobnym zagadnieniem w algebrze relacji. Również wykluczanie pustych wierszy, choć może być istotne w kontekście czyszczenia danych, nie jest bezpośrednio związane z operacją selekcji. Typowym błędem jest nieprawidłowe utożsamianie selekcji z procesem filtrowania danych, który niekoniecznie odnosi się do spełniania określonych warunków. Ważne jest, aby pamiętać, że selekcja jest operacją, która pozwala na wybór tylko tych krotek, które są zgodne z zadaną logiką, co czyni ją niezwykle użyteczną w codziennej pracy z bazami danych. Zrozumienie tej różnicy jest kluczowe dla efektywnego korzystania z baz danych i tworzenia precyzyjnych zapytań, które mogą przyczynić się do lepszego zarządzania informacjami.

Pytanie 6

Jakie zadania programistyczne należy wykonać na serwerze?

A. Zmiana stylu HTML na stronie spowodowana ruchem kursora
B. Weryfikacja danych wprowadzonych do pola tekstowego na bieżąco
C. Zapisanie danych pozyskanych z aplikacji internetowej w bazie danych
D. Ukrywanie i wyświetlanie elementów strony w zależności od aktualnej pozycji kursora
Zapisanie danych pobranych z aplikacji internetowej w bazie danych to zadanie, które powinno być wykonywane po stronie serwera ze względów bezpieczeństwa, integralności danych oraz zarządzania zasobami. Serwer jest odpowiedzialny za przechowywanie informacji, które mogą być wykorzystywane przez wielu użytkowników, co wymaga centralizacji ich przetwarzania. W przypadku aplikacji internetowych, dane są często przesyłane z klienta (przeglądarki) do serwera, gdzie są walidowane oraz zapisywane w bazach danych. Na przykład, gdy użytkownik rejestruje się w aplikacji, jego dane osobowe są wysyłane do serwera, który sprawdza poprawność tych informacji i zapisuje je w bazie danych. Właściwe implementacje powinny stosować bezpieczne połączenia (np. HTTPS), a także techniki, takie jak sanitizacja danych, aby unikać ataków typu SQL Injection. Dobrą praktyką jest także stosowanie ORM (Object-Relational Mapping), co umożliwia łatwiejsze zarządzanie danymi i ich relacjami. Przechowywanie danych po stronie serwera pozwala na efektywne zarządzanie zasobami i umożliwia późniejsze przetwarzanie informacji w sposób zorganizowany i bezpieczny.

Pytanie 7

Czym jest relacja w bazach danych?

A. algebraicznym połączeniem tabel
B. kluczem głównym w relacji tabel
C. logicznym połączeniem tabel
D. połączeniem dwóch pól w obrębie jednej tabeli
Niepoprawne odpowiedzi wskazują na nieporozumienia dotyczące definicji relacji w bazach danych. Klucz główny w relacji tabel nie jest definicją relacji, lecz elementem, który umożliwia identyfikację unikalnych rekordów w tabeli. Klucz główny jest atrybutem lub zestawem atrybutów, które zapewniają, że każdy rekord jest jednoznacznie zidentyfikowany, co jest istotne, ale nie definiuje samej relacji między tabelami. Algebraiczne połączenie tabel to termin, który może sugerować operacje wykonywane na danych, ale nie odnosi się bezpośrednio do logiki łączenia tabel, jak ma to miejsce w relacjach. W rzeczywistości, w kontekście baz danych, używa się terminów takich jak 'JOIN', które są technikami łączenia danych z różnych tabel w oparciu o relacje między nimi. Połączenie dwóch pól jednej tabeli to także niepoprawne stwierdzenie, ponieważ relacja odnosi się do powiązań między różnymi tabelami, a nie tylko do pól w jednej tabeli. Właściwe zrozumienie tych terminów jest kluczowe dla efektywnego projektowania baz danych oraz ich późniejszego użytkowania.

Pytanie 8

Jaką konstrukcją w języku C++ jest double *x;?

A. Zmienna rzeczywista
B. Zmienna całkowita
C. Formalny argument typu rzeczywistego
D. Wskaźnik
Wybór odpowiedzi, która sugeruje, że 'double *x;' jest parametrem formalnym typu rzeczywistego, jest nieprawidłowy, ponieważ wskaźnik nie jest sam w sobie parametrem formalnym. Parametry formalne w C++ są definiowane w nagłówkach funkcji i odnoszą się do zmiennych przekazywanych do funkcji. Wskaźnik, jak 'double *x;', jest po prostu zmienną, która przechowuje adres innej zmiennej, co jest zupełnie inną koncepcją. Z kolei określenie zmiennej całkowitej jest również błędne, ponieważ 'double' wskazuje na typ zmiennoprzecinkowy, a nie całkowity. Zrozumienie różnicy między typami danych jest kluczowe w C++. Ostatnia niepoprawna opcja, mówiąca o zmiennej rzeczywistej, nie odnosi się do wskaźnika, ponieważ wskaźnik nie jest zmienną przechowującą wartość typu 'double', ale adresem, pod którym taka wartość może być przechowywana. Typowe błędy myślowe, które mogą prowadzić do takich niepoprawnych odpowiedzi, obejmują mylenie pojęcia wskaźnika z typem zmiennej, a także brak zrozumienia roli wskaźników w kontekście zarządzania pamięcią i przekazywania danych do funkcji. Właściwe zrozumienie tych podstawowych koncepcji jest niezbędne do skutecznego programowania w C++.

Pytanie 9

Arkusze stylów w formacie kaskadowym są tworzone w celu

A. blokowania wszelkich zmian w wartościach znaczników już przypisanych w pliku CSS
B. połączenia struktury dokumentu strony z odpowiednią formą jej wizualizacji
C. nadpisywania wartości znaczników, które już zostały ustawione na stronie
D. ułatwienia formatowania strony
Kaskadowe arkusze stylów (CSS) stanowią kluczowy element w tworzeniu nowoczesnych stron internetowych, umożliwiając deweloperom separację zawartości od stylizacji. Poprawna odpowiedź, dotycząca ułatwienia formatowania strony, odnosi się do głównej funkcji CSS, która polega na umożliwieniu precyzyjnego stylizowania elementów HTML przy użyciu różnych właściwości, takich jak kolor, czcionka, marginesy czy tło. Dzięki CSS, można łatwo zmieniać wygląd całej strony lub jej części, co znacznie upraszcza proces utrzymania i aktualizacji. Na przykład, jeśli chcemy zmienić kolor tła całej witryny, wystarczy zaktualizować jedną regułę w arkuszu stylów, zamiast edytować każdy element osobno. Dodatkowo, CSS wspiera responsywność, co oznacza, że możemy dostosować wygląd strony do różnych rozmiarów ekranów, co jest istotne w dobie urządzeń mobilnych. Takie podejście do rozwijania stron internetowych jest zgodne z najlepszymi praktykami branżowymi, co pozwala na bardziej efektywne zarządzanie projektem oraz zapewnienie spójnego wyglądu witryny.

Pytanie 10

Aby skutecznie stworzyć relację typu m…n, która będzie wolna od redundancji danych, konieczne jest

A. zaprojektowanie tabeli pomocniczej.
B. bezpośrednie połączenie kluczy podstawowych obu tabel.
C. bezpośrednie połączenie kluczy obcych z obu tabel.
D. uporządkowanie przynajmniej jednej z tabel.
Stworzenie tabeli pomocniczej to kluczowy element w projektowaniu relacji typu m:n (wiele do wielu) w bazach danych. Taka relacja, aby była efektywna i nienarażona na redundancję danych, wymaga wprowadzenia dodatkowej tabeli, która będzie pełniła rolę pośrednika między dwiema głównymi tabelami. Tabela pomocnicza zawiera klucze obce, które odnoszą się do kluczy podstawowych obu tabel, co pozwala na zminimalizowanie duplikacji danych. Na przykład, w bazie danych dotyczącej studiów, jeśli mamy tabelę studentów i tabelę kursów, relacja m:n między nimi mogłaby być reprezentowana przez tabelę pomocniczą 'Zapisani', która zawierałaby identyfikatory studentów i identyfikatory kursów. Dzięki temu każdy student może być zapisany na wiele kursów, a każdy kurs może mieć wielu studentów, bez powielania informacji. Tworzenie takich tabel pomocniczych jest zgodne z zasadami normalizacji danych, co jest standardem w projektowaniu baz danych, mającym na celu optymalizację struktury danych oraz eliminację redundancji.

Pytanie 11

Jaki typ powinien być wykorzystany, aby pole danych mogło przyjmować liczby zmiennoprzecinkowe?

A. INT
B. FLOAT
C. CHAR
D. VARCHAR
Typ danych INT służy do przechowywania liczb całkowitych, co oznacza, że nie może on przyjmować wartości z miejscami po przecinku. W zastosowaniach, gdzie wymagana jest precyzja dziesiętna, INT nie będzie wystarczający i może prowadzić do utraty informacji, co jest nieakceptowalne w kontekście obliczeń finansowych czy inżynieryjnych. CHAR oraz VARCHAR to typy danych używane do przechowywania tekstu, a ich zastosowanie w kontekście liczb rzeczywistych jest niewłaściwe. CHAR jest statycznym typem, który alokuje stałą ilość pamięci, niezależnie od długości przechowywanego tekstu, co może prowadzić do marnotrawstwa zasobów. Z kolei VARCHAR jest dynamiczny i może przechowywać zmienną długość tekstu, ale również nie potrafi reprezentować liczb w formie liczbowej. Użycie CHAR czy VARCHAR dla wartości liczbowych może skutkować błędami w obliczeniach, ponieważ traktują one numery jako tekst, co uniemożliwia jakiekolwiek operacje matematyczne na tych danych. W kontekście baz danych, ważne jest, aby dobierać odpowiednie typy danych dla przechowywanych wartości, aby uniknąć problemów z wydajnością oraz integralnością danych.

Pytanie 12

Kiedy zestawi się relacją kluczy głównych dwie tabele, uzyskuje się relację o typie

A. jeden do jednego
B. wiele do jednego
C. jeden do wielu
D. wiele do wielu
Zrozumienie relacji między tabelami w bazach danych często prowadzi do nieporozumień związanych z typami połączeń. Odpowiedzi sugerujące relacje wiele do wielu, wiele do jednego czy nawet jeden do wielu są niepoprawne w kontekście tego pytania. Relacja wiele do wielu zakłada, że wiele rekordów z jednej tabeli może być powiązanych z wieloma rekordami z drugiej tabeli. Przykładem może być sytuacja, w której studenci zapisani są na wiele kursów, a kursy mogą mieć wielu studentów. Tego typu relacje wymagają dodatkowej tabeli łączącej, co komplikuje strukturę bazy. Relacja wiele do jednego sugeruje, że wiele rekordów w jednej tabeli może odnosić się do jednego rekordu w drugiej tabeli, co nie odpowiada na pytanie o połączenie z relacjami kluczy głównych. Natomiast relacja jeden do wielu oznacza, że jeden rekord w jednej tabeli może mieć wiele powiązanych rekordów w drugiej tabeli, co również nie jest zgodne z definicją relacji jeden do jednego. Często błędne interpretacje wynikają z niepełnego zrozumienia zasad relacyjnej teorii baz danych, co może prowadzić do nieefektywnego projektowania baz danych i problemów z integralnością danych. Kluczowe jest zrozumienie, że każda relacja powinna być definiowana w kontekście jej celu oraz struktury danych, co jest fundamentalne w dobrych praktykach w zakresie projektowania baz danych.

Pytanie 13

Podano fragment kodu PHP, w którym znajduje się zadeklarowana zmienna typu tablica. Jakie imię zostanie wyświetlone po wykonaniu tego kodu?

Ilustracja do pytania
A. Aleksandra
B. Anna
C. Tomasz
D. Krzysztof
W zadanym pytaniu istotne jest zrozumienie indeksowania tablic w PHP które jest językiem o indeksowaniu zerowym. Oznacza to że pierwszy element tablicy ma indeks 0 drugi ma indeks 1 i tak dalej. Częstym błędem jest intuicyjne przypisywanie pierwszemu elementowi indeksu 1 co prowadzi do niepoprawnych wyników. W przypadku omawianego kodu tablica zawiera elementy: 'Anna' 'Tomasz' 'Krzysztof' i 'Aleksandra'. Aby uzyskać dostęp do trzeciego elementu należy użyć indeksu 2 a nie 3. Element o indeksie 2 w tej tablicy to 'Krzysztof' co jest poprawną odpowiedzią. Pomyłki w indeksowaniu mogą prowadzić do trudnych do zdiagnozowania błędów w programach takich jak 'undefined offset' gdy próbujemy uzyskać dostęp do nieistniejącego indeksu. Dlatego ważne jest aby zawsze weryfikować zakres i poprawność używanych indeksów zwłaszcza w skomplikowanych strukturach danych. Dodatkowo warto zaznaczyć że w niektórych językach programowania takie jak Python indeksowanie również jest zerowe co pozwala na łatwiejsze przejście pomiędzy różnymi językami programowania bez zmiany mentalnego modelu działania tablic.

Pytanie 14

Zgodnie z wytycznymi WCAG 2.x  na poziomie AA minimalny kontrast tekstu (o standardowym rozmiarze) do tła, spełniający wymogi dostępności serwisu WWW dla osób z ograniczoną percepcją wzrokową wynosi

A. 4,5 : 1
B. 2,5 : 1
C. 2,0 : 1
D. 1,5 : 1
W tym pytaniu łatwo wpaść w pułapkę myślenia, że „jakikolwiek” kontrast wystarczy, by tekst był czytelny. Warto jednak oprzeć się na twardych definicjach z WCAG 2.x, a nie na subiektywnym wrażeniu, że coś „da się przeczytać”. Propozycje niższych wartości kontrastu, takich jak 1,5 : 1, 2,0 : 1 czy 2,5 : 1, odzwierciedlają typowy błąd: ocenianie czytelności tylko własnymi oczami, najczęściej osoby młodej, bez problemów ze wzrokiem, siedzącej przy dobrym monitorze i w dobrych warunkach oświetleniowych. Współczynniki zbyt niskie, rzędu 1,5 : 1 czy 2,0 : 1, oznaczają bardzo małą różnicę jasności między tekstem a tłem. Na ekranie będzie to wyglądało jak delikatne „rozmycie” tekstu w tle. Osoby z obniżonym kontrastem widzenia, z wadami refrakcji, a nawet użytkownicy korzystający ze słabszych ekranów lub w mocnym słońcu, zwyczajnie nie odczytają takiego tekstu bez dużego wysiłku. To nie jest tylko kwestia komfortu – przy dłuższej pracy może to powodować zmęczenie oczu, bóle głowy i zniechęcenie do korzystania z serwisu. Warto też zauważyć, że wartości 2,5 : 1 czasem „intuicyjnie” wydają się już całkiem niezłe, szczególnie gdy projektant przyzwyczajony jest do bardzo delikatnych, pastelowych palet. Ale WCAG 2.0 i 2.1 w kryterium 1.4.3 wyraźnie mówią: dla zwykłego tekstu poziom AA wymaga minimum 4,5 : 1. Niższe liczby mogą być stosowane tylko w określonych sytuacjach, np. dla dużego tekstu (wtedy próg 3 : 1) albo na poziomie AAA, gdzie są jeszcze ostrzejsze wymagania dla niektórych elementów. Wszelkie niższe wartości dla małego tekstu są po prostu niezgodne ze standardem. Kolejny typowy błąd myślowy to mieszanie wymagań estetycznych z wymogami dostępności. Projektanci często boją się „zbyt mocnych” kontrastów, bo wydaje im się, że interfejs będzie wyglądał zbyt ciężko, zbyt ostro. Przez to sięgają po bardzo jasne szarości albo blade kolory tekstu. Tymczasem branżowe dobre praktyki projektowania dostępnych interfejsów mówią jasno: kontrast minimum 4,5 : 1 dla podstawowego tekstu to absolutne minimum, a w wielu serwisach (np. administracja publiczna, systemy B2B używane godzinami) warto iść jeszcze wyżej. Trzymanie się zbyt niskich wartości nie tylko łamie standard WCAG, ale też realnie wyklucza część użytkowników z komfortowego korzystania z serwisu.

Pytanie 15

Jaką właściwość należy zastosować w selektorze CSS, aby osiągnąć efekt rozrzucenia liter?

A. text-space
B. letter-spacing
C. letter-transform
D. text-decoration
Właściwość CSS, która pozwala na uzyskanie efektu rozstrzelenia liter, to 'letter-spacing'. Używając tej właściwości, możemy dostosować odstęp pomiędzy poszczególnymi literami w tekście, co jest szczególnie przydatne w projektowaniu typograficznym oraz w celu zwiększenia czytelności tekstu. Wartość 'letter-spacing' może być określona w jednostkach takich jak piksele (px), em lub rem, co daje projektantom elastyczność w dostosowywaniu odstępów do różnych rozmiarów czcionek. Na przykład, ustawiając 'letter-spacing: 2px;', uzyskujemy dodatkowy odstęp 2 pikseli między literami, co sprawia, że tekst staje się bardziej przejrzysty. Zgodnie z zaleceniami W3C, stosowanie 'letter-spacing' powinno być rozważane w kontekście całego projektu, aby nie zaburzać harmonii wizualnej. Użycie tej właściwości jest istotnym elementem w planowaniu stylów CSS, który wpływa na estetykę oraz funkcjonalność stron internetowych.

Pytanie 16

Która z pętli w PHP umożliwia przeprowadzenie operacji na wszystkich elementach tablicy z automatycznym przypisaniem indeksów tych elementów?

A. foreach
B. for
C. do...while
D. while
Zarówno konstrukcja 'for', 'while', jak i 'do...while' są pętlami, które służą do wykonywania bloków kodu wielokrotnie, jednak każda z nich ma swoje specyficzne zastosowania, które mogą prowadzić do nieefektywności w kontekście iteracji po tablicach. Użycie pętli 'for' wymaga manualnego zarządzania indeksami, co zwiększa ryzyko błędów, zwłaszcza w przypadku tablic o zmiennej długości. Przykładowo, iterując po tablicy za pomocą 'for', musimy ustawić warunki początkowe, końcowe oraz właściwie modyfikować indeks, co może prowadzić do błędów, jeśli nie zostanie to prawidłowo skonfigurowane. Z drugiej strony, pętle 'while' i 'do...while' są bardziej elastyczne, ale również wymagają dodatkowego sprawdzania warunków, co czyni je mniej przejrzystymi w kontekście iteracji po tablicach. Często prowadzi to do sytuacji, w których programiści popełniają błędy logiczne, takie jak zapętlenie się lub pominięcie elementów, co z kolei skutkuje trudnościami w utrzymaniu kodu. Dlatego, zamiast stosować te pętle, lepiej jest korzystać z 'foreach', która jest dedykowana do pracy z tablicami i eliminuje wiele problemów związanych z zarządzaniem indeksami.

Pytanie 17

Jakie wartości zwróci funkcja wypisz2) napisana w języku JavaScript?

Ilustracja do pytania
A. 6
B. 2 3 4 6
C. 3 4 6
D. 3 4 6 8
W przypadku przedstawionego pytania istotne jest zrozumienie jak działa struktura iteracyjna oraz warunkowa w języku JavaScript. Funkcja wypisz operuje na zmiennej a która jest modyfikowana wewnątrz pętli. Pętla for wykonuje sześć iteracji przy czym każda z nich zwiększa wartość a o 1. Warto zauważyć że warunek if sprawdza podzielność zmiennej a przez 2 lub 3. Elementy takie jak 2 które mogą się wydawać poprawne nie spełniają warunku ponieważ są wynikiem pierwszego zwiększenia a nie pierwszej wartości która spełnia warunek if. Zrozumienie operacji modulo i jego zastosowania w tym kontekście jest kluczowe dla prawidłowej interpretacji działania funkcji. Często spotykanym błędem jest zakładanie że każda liczba naturalna w sekwencji iteracji zostanie wypisana co prowadzi do niepoprawnych wniosków. Analizowanie kodu linia po linii i rozumienie działania operacji logicznych oraz arytmetycznych jest podstawą dobrego programowania oraz przygotowania do rozwiązywania tego typu zadań egzaminacyjnych. Kluczowe jest także zrozumienie że w programowaniu operujemy na zmiennych i ich wartościach wynikających z określonych operacji a nie tylko na ich początkowych wartościach.

Pytanie 18

W skrypcie JavaScript użyto metody DOM getElementsByClassName('akapit'). Ta metoda odniesie się do akapitu

A. <p href="/akapit">akapit3</p>
B. <p id="akapit">akapit2</p>
C. <p class="akapit">akapit4</p>
D. <p>akapit</p>
Selekcja elementów DOM na podstawie ich klas jest kluczowym aspektem w pracy z JavaScript, jednak nie wszystkie odpowiedzi w tym teście są poprawnie skonstruowane. Odpowiedzi takie jak <p>akapit</p>, <p id="akapit">akapit2</p> oraz <p href="/akapit">akapit3</p> mają istotne braki w kontekście wykorzystania metody getElementsByClassName. Element <p>akapit</p> nie ma przypisanej klasy, co uniemożliwia jego selekcję przez tę metodę. Ważne jest, aby pamiętać, że getElementsByClassName wymaga, aby elementy miały przypisaną klasę, a nie aby były zdefiniowane przez inne atrybuty. Z kolei <p id="akapit">akapit2</p> posiada identyfikator, a nie klasę, co również nie umożliwia jego odnalezienia przez tę metodę. Identyfikatory są unikalne w kontekście dokumentu HTML i są bardziej odpowiednie do selekcji z wykorzystaniem metody getElementById. Ostatnia odpowiedź <p href="/akapit">akapit3</p> jest niewłaściwa, ponieważ atrybut href nie jest przypisany do elementów typu p, co jest technicznie błędne. Tego rodzaju błędy mogą wynikać z nieporozumień dotyczących struktury DOM i atrybutów HTML, co jest kluczowe do efektywnego programowania w JavaScript. Właściwe rozumienie różnic między klasami, identyfikatorami i innymi atrybutami jest fundamentalne dla skutecznego zarządzania elementami w kodzie skryptowym.

Pytanie 19

Który efekt został zaprezentowany na filmie?

A. Przenikanie zdjęć.
B. Zwiększenie ostrości zdjęcia.
C. Zmniejszenie kontrastu zdjęcia.
D. Zmiana jasności zdjęć.
W tym zadaniu łatwo pomylić kilka różnych rodzajów operacji na obrazie, bo wszystkie jakoś „zmieniają wygląd zdjęcia”, ale działają zupełnie inaczej. Efekt pokazany na filmie to przenikanie dwóch zdjęć w czasie, czyli animowane przejście między jednym obrazem a drugim. Kluczowa cecha: widzimy jednocześnie dwa zdjęcia, jedno stopniowo zanika, a drugie stopniowo się pojawia. To nie jest typowa operacja edycyjna na pojedynczym pliku graficznym, tylko efekt animacyjny, często wykorzystywany w pokazach slajdów, sliderach na stronach WWW i w montażu wideo. Zmiana jasności zdjęć to zupełnie inny rodzaj przetwarzania. Jasność modyfikuje poziom luminancji całego obrazu lub jego fragmentów – obraz staje się ciemniejszy albo jaśniejszy, ale dalej jest to to samo zdjęcie. Nie pojawia się nowe, drugie zdjęcie, nie ma nakładania dwóch kadrów. W programach do grafiki mamy to jako „Brightness”, „Exposure” czy „Levels”. Jeśli na filmie widać, że jeden obraz przechodzi płynnie w inny, to nie jest korekta jasności, tylko przejście między dwiema warstwami. Podobnie z ostrością – zwiększenie ostrości polega na podbiciu kontrastu na krawędziach, żeby szczegóły wyglądały wyraźniej. W praktyce używa się filtrów typu Unsharp Mask, Smart Sharpen albo algorytmów wyostrzania w czasie rzeczywistym. Obraz przed i po wyostrzeniu to ciągle ta sama klatka, tylko z innym przetworzeniem detali, nie ma efektu zanikania jednego zdjęcia i pojawiania się drugiego. Zmniejszenie kontrastu to kolejna korekta globalna, która spłaszcza różnice między jasnymi a ciemnymi partiami obrazu. Zdjęcie robi się bardziej „szare”, mniej dynamiczne. Znowu – cały czas pracujemy na jednym ujęciu, bez miksowania dwóch fotografii. Typowym błędem myślowym przy takich pytaniach jest to, że skoro coś się „zmienia w czasie”, to musi chodzić o jakąś regulację parametrów typu jasność czy kontrast. Tymczasem w efektach multimedialnych bardzo często operujemy na wielu warstwach – dwa obrazy, dwie klatki wideo – i animujemy ich wzajemną przezroczystość. Właśnie to jest esencją przenikania zdjęć i odróżnia je od zwykłych korekt obrazu.

Pytanie 20

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

A. Zdefiniowanie celu, normalizacja, stworzenie tabel, utworzenie relacji
B. Zdefiniowanie celu, stworzenie tabel, utworzenie relacji, normalizacja
C. Zdefiniowanie celu, normalizacja, utworzenie relacji, stworzenie tabel
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 21

Powszechnie stosowanym narzędziem SZBD do tworzenia zestawień danych, które można wydrukować, jest

A. raport
B. kwerenda UPDATE
C. makro
D. formularz
Raport jest kluczowym narzędziem w systemach zarządzania bazami danych (SZBD), które umożliwia przetwarzanie i prezentację danych w formie czytelnych zestawień. W przeciwieństwie do kwerend, które służą głównie do wyszukiwania i aktualizacji danych w bazie, raporty są projektowane z myślą o generowaniu wydruków lub prezentacji danych w zorganizowanej formie. Przykładowo, w systemie Microsoft Access, użytkownik może stworzyć raport, który zbiera dane z różnych tabel i prezentuje je w uporządkowany sposób, np. w formie tabeli z podsumowaniami lub wykresów. Dobre praktyki w tworzeniu raportów obejmują zrozumienie potrzeb odbiorcy oraz dostosowanie formatu raportu do celu, dla którego jest on tworzony. Ważne jest również, aby raporty były zgodne z estetyką i standardami wizualizacji danych, co zwiększa ich czytelność oraz efektywność w przekazywaniu informacji. W kontekście analizy danych, raporty pomagają w podejmowaniu świadomych decyzji biznesowych, dostarczając istotnych informacji w przystępnej formie.

Pytanie 22

Jakiego typu mechanizm zabezpieczeń dotyczący uruchamiania aplikacji jest obecny w środowisku wykonawczym platformy .NET Framework?

A. Mechanizm uruchamiania aplikacji realizowany przez funkcję Windows API (Application Programming Interface)
B. Mechanizm uruchamiania aplikacji dla bibliotek klas
C. Mechanizm uruchamiania aplikacji realizowany przez frameworki aplikacji internetowych (ASP.NET)
D. Mechanizm uruchamiania aplikacji oparty na uprawnieniach kodu (CAS - Code Access Security) i na rolach (RBS - Role-Based Security)
Wiele osób myli odpowiedzi dotyczące mechanizmów wykonywania aplikacji w .NET Framework, wskazując na różne inne opcje, które nie dotyczą bezpośrednio kontroli bezpieczeństwa. Mechanizm realizowany przez Windows API, choć istotny w kontekście interakcji z systemem operacyjnym, nie zapewnia specyficznych mechanizmów kontroli dostępu do zasobów, jak ma to miejsce w przypadku CAS. Windows API jest jedynie zestawem funkcji umożliwiających aplikacjom komunikację z systemem operacyjnym, a nie narzędziem do zabezpieczania aplikacji. Również stwierdzenie, że mechanizm wykonywania aplikacji dla bibliotek klas działa jako mechanizm bezpieczeństwa, jest mylne, ponieważ biblioteki klas same w sobie nie definiują polityki bezpieczeństwa, lecz dostarczają funkcjonalności, które mogą być używane w aplikacjach. Kolejna pomyłka polega na twierdzeniu, że mechanizmy ASP.NET, takie jak autoryzacja i uwierzytelnianie, są odpowiedzialne za kontrolę bezpieczeństwa wykonywania aplikacji. Choć ASP.NET dostarcza narzędzi do zabezpieczania aplikacji webowych, nie są one bezpośrednio związane z mechanizmami bezpieczeństwa na poziomie uruchamiania kodu. Przykładowo, można zastosować CAS w aplikacji ASP.NET, ale samo ASP.NET nie implementuje tego mechanizmu. Zrozumienie różnicy pomiędzy tymi mechanizmami jest kluczowe dla skutecznego wdrażania zabezpieczeń w aplikacjach .NET, co w praktyce przekłada się na lepsze zarządzanie ryzykiem związanym z bezpieczeństwem.

Pytanie 23

W zaprezentowanej części formularza HTML znajduje się pole, które można określić jako?

<input type="password" name="pole">
A. domyślnie posiada wpisany tekst "pole".
B. pozwala na wprowadzanie jedynie wartości liczbowych.
C. ukrywa wprowadzone znaki.
D. wyświetla wprowadzone znaki.
Wybrana przez ciebie odpowiedź jest niepoprawna. Możesz myśleć, że pole <i>input</i> ma domyślny tekst 'pole', ale zapomniałeś, że atrybut 'value', który to robi, nie występuje w tym kodzie. Poza tym, nie ma żadnych danych wskazujących, że to pole przyjmuje tylko liczby. Zazwyczaj, używa się atrybutu 'type' z wartością 'number', ale tutaj jest ustawiony na 'password'. Gdy mówisz, że pole pokazuje wprowadzone znaki, to też nie jest prawda. Jak mamy 'type' ustawione na 'password', to wszystko jest ukryte, żeby użytkownik był bezpieczny. Takie pomyłki to najczęściej efekt braku zrozumienia różnych atrybutów w HTML. Ważne, żeby ogarnąć, że atrybut 'type' mówi, jakie dane można wprowadzać, a różne wartości mają różne skutki.

Pytanie 24

W języku CSS określono styl dla stopki. Aby zastosować to formatowanie do bloku oznaczonego znacznikiem div, należy wpisać

#stopka { ... }
A. <div id="stopka">
B. <div title="stopka">
C. <div "stopka">
D. <div class="stopka">
Poprawna odpowiedź to <div id="stopka"> ponieważ w CSS użycie selektora ID poprzedzonego znakiem # oznacza, że styl jest stosowany do elementu o określonym identyfikatorze. W HTML atrybut id jest unikalny w obrębie całego dokumentu co oznacza, że może być przypisany tylko do jednego elementu. Stosowanie identyfikatorów jest powszechną praktyką w przypadku stylizacji elementów, które pojawiają się tylko raz na stronie jak stopka nagłówek czy główny kontener treści. Przykład praktycznego zastosowania obejmuje sytuacje gdzie chcesz stylizować konkretną część strony internetowej zachowując jednorodność w całym projekcie. Dobrą praktyką jest również unikanie zbyt częstego używania id na rzecz klas które są bardziej elastyczne i mogą być stosowane do wielu elementów. Jednak w przypadku elementów unikalnych takich jak stopka użycie id jest zgodne z najlepszymi praktykami projektowania stron internetowych. Warto również pamiętać że selektory ID mają wyższy priorytet w CSS co oznacza że ich stylizacje nadpisują te zdefiniowane dla klas o tej samej specyfikacji.

Pytanie 25

Dodanie ograniczenia klucza obcego w taki sposób, aby kolumna Klasy_id z tabeli Uczniowie była powiązana z kolumną id w tabeli Klasy zostanie wykonane przy użyciu polecenia

Ilustracja do pytania
A. ALTER TABLE Uczniowie DROP FOREIGN KEY FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
B. ALTER TABLE Uczniowie ADD FOREIGN KEY FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
C. ALTER TABLE Uczniowie DROP CONSTRAINT FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
D. ALTER TABLE Uczniowie ADD CONSTRAINT FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
W poleceniach dotyczących kluczy obcych bardzo łatwo pomylić operacje `ADD` i `DROP` oraz prawidłową składnię dla poszczególnych dialektów SQL. W przedstawionych błędnych odpowiedziach pojawia się kilka typowych nieporozumień. Część z nich próbuje używać słowa kluczowego `DROP`, które służy do usuwania istniejącego ograniczenia, a nie do jego tworzenia. Jeżeli naszym celem jest dopiero dodanie relacji między tabelą `Uczniowie` a tabelą `Klasy`, to użycie `DROP CONSTRAINT` albo `DROP FOREIGN KEY` jest po prostu logicznie sprzeczne z zadaniem – takie polecenia mogłyby mieć sens tylko wtedy, gdy klucz obcy `FKKlasy` już istnieje i chcemy go zlikwidować. W praktyce takie pomyłki wynikają z mylenia dwóch kroków: projektowania schematu (gdzie klucze dopiero dodajemy) z refaktoryzacją istniejącej bazy (gdzie często coś usuwamy i tworzymy na nowo). Kolejna sprawa to składnia `ADD FOREIGN KEY FKKlasy FOREIGN KEY(...)`. W standardowych systemach zarządzania bazą danych najpierw podaje się `ADD CONSTRAINT nazwa`, a dopiero później słowo `FOREIGN KEY` wraz z listą kolumn. Wpychanie nazwy ograniczenia między `ADD FOREIGN KEY` a definicję kolumn nie jest zgodne z zasadami składni SQL i po prostu nie zadziała. Moim zdaniem to efekt mieszania różnych przykładów z internetu, gdzie w jednych pokazuje się nazwane ograniczenia (`ADD CONSTRAINT ...`), a w innych anonimowe (`ADD FOREIGN KEY (...) REFERENCES ...`), bez nazwy. Dodatkowo, używanie w jednym poleceniu jednocześnie `DROP` i całej definicji `FOREIGN KEY(Klasy_id) REFERENCES Klasy(id)` jest nielogiczne: przy usuwaniu ograniczenia podajemy wyłącznie jego nazwę, bo silnik bazy już zna szczegóły definicji i nie trzeba ich powtarzać. W poprawnym podejściu zawsze zadajemy sobie pytanie: czy ja chcę coś dodać, czy usunąć, i czy składnia, której używam, odpowiada dokumentacji konkretnego systemu (np. SQL Server, MySQL, PostgreSQL). Stosowanie czytelnej, udokumentowanej formy `ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY ... REFERENCES ...` jest zgodne z dobrymi praktykami i oszczędza sporo nerwów przy późniejszej administracji oraz migracjach schematu.

Pytanie 26

Które spośród poniższych zdań dotyczących definicji funkcji umieszczonej w ramce jest prawidłowe?

function czytajImie(){
var imie=null;
do{
imie=prompt("podaj imie: ");
if(imie.length<3) alert("wprowadzony tekst jest niepoprawny");
}while(imie.length<3);
}
A. Tekst będzie odczytywany do chwili, gdy podana zostanie liczba większa niż 3
B. Funkcja zawiera pętlę, która powtarza się 3 razy
C. Pętla wykona się tylko jeden raz
D. Wczytywanie tekstu zakończy się, gdy tekst będzie się składał przynajmniej z 3 znaków
Prawidłowa odpowiedź odnosi się do warunku zakończenia pętli do while w języku JavaScript. Pętla ta wykonuje się co najmniej raz, ponieważ najpierw wykonuje blok kodu, a dopiero potem sprawdza warunek. W tym przypadku, użytkownik jest proszony o wprowadzenie tekstu reprezentującego imię. Instrukcja if sprawdza, czy wprowadzone imię ma mniej niż 3 znaki. Jeśli tak, pojawia się komunikat, że tekst jest nieprawidłowy, a pętla ponownie prosi o podanie imienia. Proces ten powtarza się, dopóki użytkownik nie wprowadzi imienia o długości co najmniej 3 znaków. Jest to typowa technika walidacji danych wejściowych, zapewniająca, że użytkownik wprowadzi wartości spełniające określone kryteria. Taki sposób walidacji jest stosowany w aplikacjach wymagających dokładności danych wejściowych, zwłaszcza w formularzach internetowych, gdzie poprawność danych jest kluczowa. Praktyka ta pomaga w zapewnieniu, że dane są kompletne i zgodne z wymaganiami biznesowymi, co jest istotne w programowaniu front-end.

Pytanie 27

Zapisano kod HTML wstawiający grafikę na stronę internetową: ```pejzaż``` Jeżeli rysunek.png nie zostanie odnaleziony, przeglądarka:

A. nie wyświetli strony internetowej.
B. w miejscu grafiki wypisze tekst "pejzaż".
C. w miejscu grafiki wypisze tekst "rysunek.png".
D. w miejscu grafiki wypisze błąd wyświetlania strony.
Niestety, twoja odpowiedź nie jest prawidłowa. Może to wynikać z nieporozumienia co do tego, jak przeglądarki internetowe radzą sobie z brakującymi obrazami. Przeglądarka nie przestanie wyświetlać strony tylko dlatego, że nie może załadować jednego obrazu - zamiast tego wykorzysta atrybut alt elementu <img> w kodzie HTML. Atrybut alt jest tekstem alternatywnym, który jest wyświetlany, jeżeli obraz nie może zostać załadowany. W tym konkretnym przypadku, miał wartość 'pejzaż', więc jest to tekst, który przeglądarka wyświetli. Nie zostanie wyświetlony błąd, ani tekst 'rysunek.png' - przeglądarka nie ma na to wpływu. Zrozumienie tego mechanizmu jest istotne dla tworzenia stron, które są przystępne i estetycznie atrakcyjne nawet wtedy, gdy nie wszystko idzie zgodnie z planem.

Pytanie 28

Jednym z atrybutów tabeli ksiazki jest pole czyWypozyczona, które może mieć dwie wartości: true lub false. Jaki typ danych będzie najbardziej odpowiedni dla tego pola?

A. DOUBLE
B. VARCHAR(5)
C. CHAR
D. BOOLEAN
Wybór typów DOUBLE, CHAR oraz VARCHAR(5) do reprezentowania stanu wypożyczenia książki jest nieadekwatny i może prowadzić do nieefektywnego zarządzania danymi. Typ DOUBLE, będący typem liczbowym zmiennoprzecinkowym, jest przeznaczony do przechowywania wartości numerycznych z wysoką precyzją, co jest całkowicie zbędne w kontekście binaryjnej reprezentacji stanu wypożyczenia. Użycie typu DOUBLE zwiększa obciążenie pamięci i niepotrzebnie komplikuje zapytania, co negatywnie wpływa na wydajność bazy danych. CHAR oraz VARCHAR(5) są typami tekstowymi, które również są niewłaściwe w tym kontekście. W przypadku CHAR, którego długość jest stała, musielibyśmy zarezerwować miejsce na cały ciąg znaków, co jest nieefektywne. Z kolei VARCHAR(5), choć jest dynamiczny, nadal nie odzwierciedla logicznego charakteru pola 'czyWypozyczona'. Zamiast prostego true/false, wprowadzamy zbędne komplikacje przy operacjach porównawczych i filtracji. Tego rodzaju błędne podejście może wynikać z mylenia reprezentacji danych - niektóre osoby mogą sądzić, że tekstowe lub liczbowe reprezentacje zapewniają większą elastyczność, co jest mylnym przekonaniem. Kluczowe w projektowaniu baz danych jest dobieranie typów danych odpowiednio do ich przeznaczenia, a w przypadku wartości logicznych najlepszym wyborem jest typ BOOLEAN.

Pytanie 29

Jakie jest zadanie funkcji PHP o nazwie mysql_select_db?

A. pobrać dane z bazy danych na podstawie zapytania
B. nawiązać połączenie bazy danych z serwerem SQL
C. wyznaczyć bazę, z której będą pobierane informacje
D. wyznaczyć tabelę, z której będą pobierane informacje
Wszystkie niepoprawne odpowiedzi dotyczą funkcji mysql_select_db(), jednak ich interpretacja jest myląca. Po pierwsze, funkcja ta nie służy do łączenia bazy danych z serwerem SQL. Proces łączenia odbywa się za pomocą funkcji mysql_connect(), która nawiązuje połączenie z serwerem MySQL. Po połączeniu można korzystać z mysql_select_db() w celu wybrania konkretnej bazy. Ponadto, funkcja ta nie ma na celu określenia tabeli, z której będą pobierane dane. Tabele są elementami bazy danych, a mysql_select_db() działa na poziomie bazy, a nie tabeli. Po wybraniu bazy, aby uzyskać dostęp do tabeli, należy używać zapytań SQL w formacie SELECT, które definiują, z jakiej tabeli chcemy pobierać dane. Ostatnia niepoprawna odpowiedź dotyczy pobierania danych na podstawie kwerendy. mysql_select_db() nie wykonuje żadnych zapytań; jej funkcją jest jedynie ustalenie kontekstu bazy danych. Dopiero po użyciu mysql_select_db() można wykonywać zapytania, które pobierają dane, ale sama funkcja nie odpowiada za proces ich pozyskiwania.

Pytanie 30

Tabela Pacjenci ma pola: imie, nazwisko, wiek, lekarz_id. Aby zestawić raport zawierający wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia, którzy zapisani są do lekarza o id równym 6, można posłużyć się kwerendą SQL

A. SELECT imie, nazwisko WHERE wiek < 18 AND lekarz_id = 6;
B. SELECT imie, nazwisko WHERE wiek < 18 OR lekarz_id = 6;
C. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6;
D. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 OR lekarz_id = 6;
Poprawna kwerenda to: SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6; i ona dokładnie realizuje założenia zadania. Po pierwsze, część SELECT imie, nazwisko określa, jakie kolumny mają znaleźć się w wyniku – tylko imię i nazwisko, bez wieku czy identyfikatora lekarza. To jest dobra praktyka: wybieramy tylko te dane, które są faktycznie potrzebne w raporcie, zamiast używać SELECT *. Po drugie, FROM Pacjenci wskazuje tabelę źródłową. W standardowym SQL klauzula FROM jest obowiązkowa przy pobieraniu danych z tabel, bez niej serwer bazodanowy po prostu nie wie, skąd ma brać rekordy. Moim zdaniem to jest taki fundament, który warto mieć odruchowo w palcach. Najważniejsza jest jednak klauzula WHERE wiek < 18 AND lekarz_id = 6. Warunek wiek < 18 filtruje wyłącznie pacjentów niepełnoletnich, a lekarz_id = 6 ogranicza wynik do tych osób, które przypisane są do konkretnego lekarza o identyfikatorze 6. Zastosowanie operatora logicznego AND oznacza, że oba warunki muszą być spełnione jednocześnie. To dokładnie odpowiada treści zadania: pacjent musi być jednocześnie poniżej 18 lat i zapisany do lekarza nr 6. W praktyce takie kwerendy są podstawą raportowania w systemach medycznych, CRM-ach, systemach sprzedażowych itd. Na przykład podobną konstrukcję można użyć: SELECT * FROM Zamowienia WHERE status = 'nowe' AND kwota > 1000; – logika jest identyczna. Dobrą praktyką jest też czytelne zapisywanie warunków logicznych i unikanie niejednoznacznych kombinacji AND/OR bez nawiasów. W większych projektach standardem jest również używanie aliasów tabel, ale tu jedna tabela w zupełności wystarcza. Warto zapamiętać ten szablon: SELECT [kolumny] FROM [tabela] WHERE [warunek1] AND [warunek2]; bo pojawia się praktycznie wszędzie w pracy z SQL.

Pytanie 31

Jakie zadania programistyczne należy realizować po stronie serwera?

A. Walidacja danych wpisanych w pole tekstowe w czasie rzeczywistym
B. Zapisanie danych pobranych z aplikacji internetowej do bazy danych
C. Ukrywanie oraz odkrywanie elementów strony w zależności od bieżącej pozycji kursora
D. Zmiana stylu HTML na stronie spowodowana ruchem kursora
Kiedy użytkownik coś klika, jak na przykład zmienia styl HTML na stronie, to wszystko dzieje się po stronie klienta, czyli w przeglądarce. Zmiany te są przeważnie robione za pomocą JavaScript i CSS, dzięki czemu wszystko działa płynnie i szybko, bo nie musimy za każdym razem gadać z serwerem. Weźmy na przykład efekty hover – to coś, co naprawdę poprawia doświadczenie na stronie. Sprawdzanie danych w polach, jak adres e-mail, również odbywa się po stronie klienta. To właśnie tam walidujemy dane, co robi się najczęściej przez JavaScript. Dzięki temu nasz serwer nie dostaje za dużo niepotrzebnych zapytań, co czyni aplikacje bardziej responsywnymi. Jeśli chodzi o ukrywanie lub pokazywanie elementów na stronie w zależności od kursora, to również robimy to po stronie klienta. Takie rzeczy są zwykle ogarniane przez skrypty JavaScript, które zmieniają DOM. Tak więc, tego typu zadania musimy robić po stronie klienta, a nie na serwerze.

Pytanie 32

W semantycznym HTML odpowiednikiem elementu <b>, który nie tylko pogrubia tekst, ale także wskazuje na jego większe znaczenie, jest

A. <em>
B. <ins>
C. <mark>
D. <strong>
Znacznik <strong> w HTML semantycznym służy nie tylko do pogrubienia tekstu, ale także do wskazania, że dany fragment ma większe znaczenie w kontekście semantycznym. Zgodnie z zaleceniami W3C, użycie tego znacznika poprawia dostępność treści, ponieważ technologie wspomagające, takie jak czytniki ekranu, interpretują <strong> jako tekst o podwyższonej wadze, co może pomóc w lepszym zrozumieniu struktury dokumentu przez osoby z niepełnosprawnościami. Przykładem zastosowania może być podkreślenie ważnych informacji na stronie, takich jak zasady, ostrzeżenia czy kluczowe dane, które użytkownicy powinni zauważyć. W praktyce, stosowanie elementów semantycznych, takich jak <strong>, zamiast czysto stylistycznych, jest zgodne z zasadami budowania stron przyjaznych dla użytkowników i poprawia SEO, ponieważ wyszukiwarki mogą lepiej analizować kontekst treści. Warto pamiętać, że w przypadku użycia <strong>, nie zmienia to tylko sposobu wyświetlania, ale także wzbogaca znaczenie tekstu w kontekście całej strony.

Pytanie 33

Funkcję session_start() w PHP należy zastosować przy realizacji

A. przetwarzania formularza
B. wielostronicowej strony, która wymaga dostępu do danych podczas przechodzenia pomiędzy stronami
C. ładowania danych z zewnętrznych plików
D. jakiejkolwiek strony internetowej, która obsługuje cookies
Wybór odpowiedzi dotyczącej dowolnej witryny obsługującej ciasteczka wskazuje na niepełne zrozumienie roli sesji w PHP. Ciasteczka, choć są narzędziem do przechowywania danych w przeglądarkach, różnią się zasadniczo od sesji. Główną różnicą jest to, że ciasteczka są przechowywane po stronie klienta, co oznacza, że użytkownik ma dostęp do ich zawartości i mogą być one modyfikowane przez użytkownika. W przypadku sesji, dane są przechowywane po stronie serwera, co oferuje większe bezpieczeństwo i kontrolę nad danymi użytkownika. W kontekście wczytywania danych z plików zewnętrznych, nie ma związku z sesjami, ponieważ ta operacja nie wymaga przechowywania stanu użytkownika. Podobnie, odpowiedź dotycząca obsługi formularza również nie uwzględnia, że sesje są stosowane do utrzymywania stanu aplikacji, a nie do samej obsługi formularzy. Typowym błędem jest mylenie sesji z mechanizmami przechowywania danych, które są bardziej odpowiednie dla informacji statycznych, a nie dynamicznych interakcji użytkownika. Zrozumienie, kiedy używać sesji, a kiedy ciasteczek lub innych metod przechowywania, jest kluczowe dla tworzenia bezpiecznych i funkcjonalnych aplikacji internetowych.

Pytanie 34

Który z parametrów obiektu graficznego zmieni się po dostosowaniu wartości kanału alfa?

A. Nasycenie kolorów
B. Kolejność wyświetlania pikseli
C. Ostrość krawędzi
D. Przezroczystość
Nasycenie barw odnosi się do intensywności kolorów w obiekcie graficznym. Zmiana wartości kanału alfa, która wpływa jedynie na przezroczystość, nie ma bezpośredniego wpływu na nasycenie kolorów. Przezroczystość nie zmienia tego, jak intensywne lub wyblakłe są kolory, ale raczej to, jak są one postrzegane w kontekście tła. Ostrość krawędzi odnosi się do wyrazistości konturów obiektu graficznego. Zmiana wartości kanału alfa nie wpływa na ostrość krawędzi, ponieważ ta zależy od rozdzielczości obrazu oraz technik renderowania, a nie na poziomie przezroczystości. Kolejność wyświetlania pikseli dotyczy tego, jak elementy graficzne są renderowane na ekranie w kontekście ich nakładania się na siebie. Modyfikacja kanału alfa nie zmienia kolejności wyświetlania pikseli, lecz może wpływać na to, jak obiekty się ze sobą mieszają, co w konsekwencji może wprowadzać wrażenie głębi, ale nie zmienia samej kolejności renderowania. W związku z tym, zmiana kanału alfa oddziałuje wyłącznie na aspekt przezroczystości, nie wpływając na pozostałe wymienione parametry, które są niezależne od tego atrybutu.

Pytanie 35

W języku PHP chcąc wyświetlić ciąg n znaków @, należy użyć funkcji

A. function znaki($znak, $n){
   for($i = 0; $i < $n; $i++)
     print($znak);
}
znaki(@, $n);

B. function znaki($i){
   for($i = 0; $i < $n; $i++)
     print("@");
}
znaki($i);

C. function znaki($znak, $n){
   for($i = 0; $i < $n; $i++)
     print($znak);
}
znaki($n);

D. function znaki($znak, $n){
   for($i = 0; $i < $n; $i++)
     print($znak);
}
znaki("@", $n);
A. C.
B. B.
C. D.
D. A.
Wybór odpowiedzi A, B lub C sugeruje pewne nieporozumienia dotyczące działania funkcji w PHP. W PHP, aby wyświetlić ciąg n znaków, musimy użyć funkcji, która przyjmuje dwa argumenty: znak do wyświetlenia i liczbę n określającą, ile razy znak powinien zostać wyświetlony. Żadne z podejść zaproponowanych w odpowiedziach A, B lub C nie spełniają tych kryteriów. Wszystkie one wydają się pomijać istotne aspekty tworzenia funkcji, takie jak użycie odpowiednich argumentów lub prawidłowe użycie pętli. Zrozumienie, jak działa ta konkretna funkcja w PHP, może pomóc Ci zrozumieć, jak działa ten język programowania i jak używać jego funkcji do tworzenia skutecznych programów. Warto poświęcić więcej czasu na naukę tych podstaw, ponieważ są one kluczowe dla pisanie skutecznego kodu w PHP.

Pytanie 36

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

<p style="color:red;">tekst</p>
A. Styl wewnętrzny
B. Styl alternatywny, zewnętrzny
C. Styl wpisany, lokalny
D. Styl zewnętrzny
Styl wpisany lokalny jest metodą bezpośredniego przypisywania reguł CSS do konkretnych elementów HTML za pomocą atrybutu style W przedstawionym przykładzie kodu stylizacja jest dodawana bezpośrednio do elementu p co sprawia że ten element będzie miał tekst w kolorze czerwonym Styl wpisany jest szczególnie przydatny gdy chcemy wprowadzić szybkie zmiany dla pojedynczych elementów bez ingerowania w zewnętrzne lub wewnętrzne arkusze stylów Takie podejście jest używane w sytuacjach gdy stylizacja dotyczy jedynie pojedynczego elementu lub gdy chcemy nadpisać reguły z innych arkuszy stylów Jednak w kontekście skalowalności i utrzymania kodu nie jest to rekomendowane w większych projektach W takich przypadkach lepiej stosować style zewnętrzne które pozwalają na bardziej zorganizowane i zarządzalne podejście do stylizacji witryny Warto pamiętać że styl wpisany ma wyższy priorytet niż style zewnętrzne co oznacza że w przypadku konfliktu reguł to właśnie styl wpisany zostanie zastosowany Podstawową zaletą stylu wpisanego jest jego prostota i bezpośredniość co czyni go doskonałym narzędziem do szybkiego prototypowania

Pytanie 37

Jakie polecenie powinno być zastosowane, aby tekst TEKST był widoczny w kolorze czarnym w oknie przeglądarki internetowej?

A. <font color="#000000">TEKST</font>
B. <body bgcolor="black">TEKST</body>
C. <font color="czarny">TEKST</font>
D. <body color="black">TEKST</font>
Aby wyraz TEKST został wyświetlony w kolorze czarnym w oknie przeglądarki internetowej, należy skorzystać z tagu <font> z atrybutem color ustawionym na wartości #000000, co stanowi standardowy kod heksadecymalny dla koloru czarnego. Atrybut ten pozwala na precyzyjne określenie koloru tekstu, co jest zgodne z zasadami HTML i daje możliwość dostosowania wyglądu strony do wymagań projektowych. Tag <font> jest przestarzały w HTML5, jednak wciąż może być używany w kontekście starszych dokumentów HTML. Warto zauważyć, że dla bardziej nowoczesnych praktyk zaleca się korzystanie z CSS (Cascading Style Sheets), gdzie definiowanie kolorów odbywa się w ramach stylów, zamiast bezpośrednio w znacznikach. Przykładowo, w CSS można użyć: .czarnyTekst { color: #000000; } i następnie zastosować tę klasę w znaczniku. Takie podejście poprawia semantykę kodu i ułatwia zarządzanie stylami na stronie, co jest istotne w kontekście optymalizacji SEO i dostępności dla różnych urządzeń."

Pytanie 38

Podaj polecenie SQL, które pozwoli na dodanie kolumny miesiacSiewu do tabeli rośliny znajdującej się w bazie danych

A. INSERT INTO rośliny VALUES (miesiacSiewu int);
B. UPDATE rośliny ADD miesiacSiewu int;
C. CREATE TABLE rośliny {miesiacSiewu int};
D. ALTER TABLE rośliny ADD miesiacSiewu int;
Odpowiedź 'ALTER TABLE rośliny ADD miesiacSiewu int;' jest jak najbardziej na miejscu. Używasz tutaj komendy SQL 'ALTER TABLE', co jest standardem, jeśli chcesz coś zmienić w już istniejącej tabeli. W tym przypadku dodajesz nowe pole 'miesiacSiewu' w formacie 'int' do tabeli 'rośliny'. Fajnie, bo dodawanie kolumn w relacyjnych bazach danych to chleb powszedni, zwłaszcza gdy musisz dodać nowe informacje. Na przykład, jak chcesz wiedzieć, kiedy siać rośliny, to zrobienie tego przy pomocy tej komendy pozwoli Ci trzymać te dane blisko innych szczegółów roślin. Warto też pamiętać, żeby nowe kolumny były dobrze indeksowane lub miały jakieś wartości domyślne, bo to może przyspieszyć zapytania do bazy. Tego typu operacje są naprawdę ważne w zarządzaniu bazami danych, bo dają Ci elastyczność, żeby dostosować strukturę bazy do potrzeb Twojej aplikacji.

Pytanie 39

W PHP do zapisywania informacji w pliku służy funkcja

A. fputs()
B. fopen()
C. fgets()
D. freadfile()
Analizując inne funkcje wymienione w pytaniu, można zauważyć, że każda z nich pełni inną rolę w kontekście operacji na plikach. fgets() służy do odczytywania linii tekstu z otwartego pliku, co sprawia, że jest całkowicie nieodpowiednia do zapisu danych. Użytkownicy mogą myśleć, że skoro fgets() dotyczy plików, to może również być używana do ich modyfikacji, co jest błędnym założeniem, gdyż funkcja ta nie ma możliwości zapisu. Z kolei fopen() jest używana do otwierania plików, a nie do zapisywania. Chociaż jest to pierwsza czynność przed zapisaniem danych, sama fopen() nie wykonuje operacji zapisu. Użytkownicy mogą mylić otwieranie pliku z jego zapisaniem, co prowadzi do nieporozumienia w zakresie operacji na plikach. freadfile() natomiast jest przeznaczona do odczytu zawartości pliku i jej wyświetlenia, co również czyni tę funkcję nieodpowiednią do zapisu. Wszelkie nieporozumienia związane z tymi funkcjami mogą wynikać z braku zrozumienia ich podstawowych zastosowań i funkcji w PHP. Aby uniknąć takich pomyłek, ważne jest, aby podczas nauki programowania w PHP szczegółowo zaznajomić się z dokumentacją oraz przykładami zastosowania każdej funkcji, co pomoże w lepszym zrozumieniu, jak prawidłowo manipulować plikami.

Pytanie 40

W notacji szesnastkowej kolor zielony reprezentowany jest jako #008000. Jaką wartość przyjmuje on w notacji RGB?

A. rgb(0, 100, 0)
B. rgb(0, 80, 0)
C. rgb(0, 160, 0)
D. rgb(0, 128, 0)
Wartości rgb(0, 80, 0), rgb(0, 160, 0) oraz rgb(0, 100, 0) są niepoprawnymi reprezentacjami koloru zielonego w notacji RGB, ponieważ nie odwzorowują one prawidłowej kombinacji składowych odpowiadających wartości szesnastkowej #008000. Wartość ta jest wyrażona jako sześć cyfr, gdzie dwie pierwsze reprezentują składową czerwoną, dwie kolejne składową zieloną, a ostatnie dwie składową niebieską. W przypadku #008000, składowa czerwona wynosi 0, składowa zielona wynosi 128, a składowa niebieska również wynosi 0. Typowym błędem, prowadzącym do błędnych odpowiedzi, jest mylenie zakresu wartości składowych. Na przykład, rgb(0, 80, 0) sugeruje, że składowa zielona wynosi 80, co jest znacznie niższą wartością niż 128, przez co kolor staje się ciemniejszy i mniej nasycony. Podobnie, rgb(0, 160, 0) i rgb(0, 100, 0) modyfikują intensywność koloru zielonego, co prowadzi do zupełnie innych odcieni, które nie odpowiadają standardowemu zielonemu. Znajomość konwersji między tymi formatami oraz ich zastosowanie w praktyce, np. w grafikach komputerowych czy web designie, jest kluczowa dla uzyskania pożądanych efektów wizualnych. Dobrą praktyką jest zawsze sprawdzanie wartości za pomocą narzędzi do wyboru kolorów, które mogą pomóc uniknąć takich pomyłek.