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: 8 czerwca 2026 14:50
  • Data zakończenia: 8 czerwca 2026 15:09

Egzamin niezdany

Wynik: 17/40 punktów (42,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Zaprezentowano tabelę stworzoną przy użyciu kodu HTML, bez zastosowania stylów CSS. Która część kodu HTML odnosi się do pierwszego wiersza tabeli?

Ilustracja do pytania
A. Rys. A
B. Rys. D
C. Rys. B
D. Rys. C
Pierwszy wiersz tabeli HTML zazwyczaj zawiera nagłówki kolumn i jest oznaczony za pomocą znaczników <th> (table header). Zgodnie z dobrymi praktykami tworzenia tabel w HTML, nagłówki powinny być oddzielone od danych, aby poprawić zarówno estetykę, jak i funkcjonalność tabeli. W odpowiedzi Rys. D użyto znaczników <th> co poprawnie definiuje nagłówki kolumn. W ten sposób przeglądarki potrafią wyróżnić nagłówki, np. poprzez pogrubienie tekstu, co jest domyślnym zachowaniem. Zastosowanie <th> poprawia również dostępność tabel, ponieważ technologie asystujące lepiej interpretują strukturę danych w tabelach, co jest zgodne z wytycznymi WCAG (Web Content Accessibility Guidelines). Korzystając z <th>, można dodatkowo określić atrybut scope, który jeszcze bardziej precyzuje relacje w tabeli, co jest szczególnie przydatne w bardziej złożonych strukturach. W praktyce, kiedy projektujemy strony internetowe, stosowanie prawidłowych znaczników semantycznych jest kluczowe dla tworzenia zrozumiałego i dostępnego interfejsu użytkownika. Dlatego też wybór fragmentu z <th> jako reprezentującego pierwszy wiersz tabeli jest zgodny z zaleceniami i standardami nowoczesnego front-endu.

Pytanie 2

Zapis selektora wskazuje, że kolor tła będzie brązowy dla

input[type=number] { background-color: Brown; }
A. formularzy, gdy użytkownik wprowadzi w nie jakąkolwiek cyfrę
B. wszystkich formularzy
C. formularzy, które są typu numerycznego
D. wszystkich tekstów na stronie internetowej
Zapis selektora CSS `input[type=number] { background-color: Brown; }` odnosi się do pól edycyjnych, które są zdefiniowane jako typu numerycznego. Oznacza to, że wszystkie elementy <input>, które mają atrybut `type` ustawiony na `number`, będą miały brązowe tło. Tego typu selektory są przydatne, ponieważ pozwalają na precyzyjne stylizowanie elementów formularzy, co jest kluczowe dla poprawy doświadczeń użytkowników. Stosowanie odpowiednich typów elementów formularza, takich jak `number`, umożliwia kontrolowanie danych wprowadzanych przez użytkowników, co jest zgodne z dobrymi praktykami w zakresie walidacji danych. W praktyce, jeśli w formularzu istnieje pole do wprowadzania dat, które powinno przyjmować tylko wartości liczbowe, stylizowanie go w ten sposób może pomóc w natychmiastowym wizualnym wskazaniu użytkownikowi, że pole jest przeznaczone do wprowadzania numerów. Warto również pamiętać, że stosowanie odpowiednich typów wejściowych wspiera responsywność, umożliwiając na przykład wyświetlanie klawiatury numerycznej na urządzeniach mobilnych, co zwiększa komfort użytkowania.

Pytanie 3

Jakie zapytanie umożliwi Administratorowi odebranie uprawnień do przeglądania oraz edytowania danych w bazie gazeta, dla użytkownika redaktor?

A. REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost';
B. REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost';
C. GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost';
D. GRANT SELECT, ALTER ON gazeta.* TO 'redaktor'@'localhost';
Wszystkie pozostałe odpowiedzi są niepoprawne, ponieważ mylą pojęcie przyznawania i odbierania uprawnień. Na przykład, odpowiedź z użyciem GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost'; jest błędna, ponieważ GRANT służy do przyznawania uprawnień, a nie ich odbierania. Użytkownik, który rozważa tę opcję, może mieć fałszywe przekonanie, że jest możliwe przypisanie uprawnień w sytuacji, gdy celem jest ich cofnięcie. Podobnie, odpowiedzi zawierające ALTER, jak REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost'; wprowadzają dodatkowy zamęt, ponieważ ALTER nie jest związane z przeglądaniem lub aktualizowaniem danych, ale odnosi się do modyfikacji struktury bazy danych. Błędne rozumienie różnic między SELECT, UPDATE i ALTER może prowadzić do poważnych problemów w zarządzaniu bazą danych, na przykład do nieautoryzowanych zmian w strukturze danych. Użytkownicy mogą także popełniać błąd w zakresie lokalizacji użytkownika, co w przypadku odpowiedzi jest określone jako 'redaktor'@'localhost';, co może być mylące w sytuacji, gdy użytkownik jest przypisany do innego hosta. Właściwe zrozumienie i stosowanie uprawnień w bazach danych jest fundamentalne dla ochrony danych, a także dla zapewnienia, że tylko uprawnieni użytkownicy mają dostęp do krytycznych informacji.

Pytanie 4

Jaką funkcją agregującą można uzyskać ilość rekordów?

A. AVG
B. NUMBER
C. SUM
D. COUNT
Funkcja COUNT jest naprawdę ważna w SQL, bo pozwala nam zliczać rekordy w naszych zbiorach danych. Używa się jej w różnych sytuacjach, na przykład przy robieniu raportów czy analizie danych. Możesz na przykład napisać zapytanie: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska'. Dzięki temu dowiesz się, ilu klientów jest z Polski. To bardzo przydaje się do analizy demograficznej czy oceniania rynku. Co też warto wiedzieć, COUNT działa na wszystkich rekordach, bez względu na to, co jest w kolumnach. Takie wszechstronne narzędzie z pewnością ułatwia pracę z danymi. A jeśli dodasz klauzulę GROUP BY do COUNT, to możesz zliczać rekordy w różnych kategoriach, co jest mega pomocne przy skomplikowanych raportach. Ogólnie rzecz biorąc, używanie funkcji agregujących jak COUNT to dobra praktyka w SQL, bo sprawia, że kod jest bardziej efektywny i czytelny.

Pytanie 5

Funkcja phpinfo() umożliwia:

A. inicjowanie skryptu w języku PHP
B. sprawdzanie wartości zmiennych wykorzystanych w skrypcie PHP
C. analizowanie kodu PHP pod kątem błędów
D. uzyskanie informacji o środowisku pracy serwera obsługującego PHP
Wiele osób mylnie interpretuje funkcję phpinfo() jako narzędzie służące do debugowania kodu PHP lub sprawdzania wartości zmiennych w skryptach. Jednakże, phpinfo() nie jest zaprojektowane do monitorowania wartości zmiennych ani do analizy błędów w kodzie. Zamiast tego, jej głównym celem jest prezentacja informacji o bieżącej konfiguracji środowiska PHP. Często można spotkać się z przekonaniem, że phpinfo() pozwala na inicjowanie kodu w PHP, co jest zupełnie nieprawidłowe, gdyż funkcja ta nie wykonuje ani nie uruchamia kodu, a jedynie wyświetla dane systemowe. Kolejnym powszechnym błędem jest mylenie phpinfo() z narzędziami do debugowania, takimi jak Xdebug, które rzeczywiście pozwalają na monitorowanie i analizę kodu. Również niektórzy mogą sądzić, że phpinfo() służy do bezpośredniej modyfikacji lub zarządzania ustawieniami PHP, co jest niezgodne z jej funkcjonalnością. Warto podkreślić, że stosowanie phpinfo() w środowisku produkcyjnym może prowadzić do poważnych zagrożeń bezpieczeństwa, gdyż ujawnia wiele szczegółowych informacji, które mogą zostać wykorzystane przez potencjalnych atakujących. Dobrą praktyką jest ograniczenie dostępu do wyników działania phpinfo() oraz jego usunięcie z aplikacji po zakończeniu procesu deweloperskiego.

Pytanie 6

Poziom izolacji transakcji Repeatable Read (tryb powtarzalnego odczytu) używany przez MS SQL jest związany z problemem

A. odczytów widm
B. niepowtarzalnych odczytów
C. utraty aktualizacji
D. brudnych odczytów
Wybór odpowiedzi 'niepowtarzalnych odczytów', 'brudnych odczytów' lub 'utraty aktualizacji' wskazuje na brak zrozumienia, jak działają różne poziomy izolacji transakcji w kontekście baz danych. Odczyty niepowtarzalne polegają na tym, że transakcja może odczytać różne wartości w kolejnych odczytach tego samego wiersza, co jest problemem rozwiązywanym przez poziom Repeatable Read. Oznacza to, że dane odczytane w jednym kroku transakcji pozostają spójne do końca tej transakcji, a zatem nie są one narażone na zmiany poprzez inne transakcje w tym samym czasie. Brudne odczyty występują, gdy jedna transakcja odczytuje dane zapisane przez inną, jeszcze niezakończoną transakcję, co jest problemem z kolei eliminowanym przez poziomy izolacji takie jak Read Committed. Utrata aktualizacji to inny problem, który polega na tym, że dwie transakcje odczytują tę samą wartość i zapisują zmodyfikowane wartości, przy czym ostatnia zapisuje nadpisując wcześniejszą, co także nie jest bezpośrednim problemem w kontekście Repeatable Read. W praktyce, zrozumienie różnicy między tymi problemami jest kluczowe dla zapewnienia spójności transakcji. Warto zatem studiować dokumentację i standardy, aby właściwie dobierać poziomy izolacji w zależności od wymagań konkretnej aplikacji.

Pytanie 7

W stylu CSS zdefiniowano klasę uzytkownik:

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

Pytanie 8

Projektant stworzył logo dla witryny internetowej. Jest to czarny symbol na przezroczystym tle. Aby zachować wszystkie cechy obrazu i umieścić go na stronie, projektant powinien zapisać obraz w formacie

A. JPEG
B. PNG
C. BMP
D. CDR
Format PNG (Portable Network Graphics) jest idealnym rozwiązaniem dla grafiki internetowej, zwłaszcza gdy zależy nam na zachowaniu przezroczystości tła, co jest kluczowe w przypadku logotypów. PNG obsługuje kompresję bezstratną, co oznacza, że nie utracimy jakości obrazu przy zapisywaniu go. To szczególnie ważne w kontekście logo, które często musi być skalowane do różnych rozmiarów, a wszelkie zniekształcenia mogą wpłynąć na jego rozpoznawalność. Dodatkowo, format PNG pozwala na uzyskanie pełnej gamy kolorów, w tym przezroczystości w formacie RGBA. W praktyce oznacza to, że możesz umieścić czarny znak na dowolnym tle, a jego kształt zawsze zachowa wyrazistość oraz ostrość. Warto również zauważyć, że PNG jest wspierany przez wszystkie nowoczesne przeglądarki internetowe i systemy operacyjne, co czyni go wszechstronnym wyborem dla twórców stron internetowych. Standard PNG, opublikowany przez W3C, jest uznawany za jedno z najbardziej efektywnych rozwiązań dla grafiki w sieci.

Pytanie 9

Na obrazie przedstawiono projekt układu bloków witryny internetowej. Zakładając, że bloki są realizowane za pomocą znaczników sekcji, ich formatowanie w CSS, oprócz ustawionych szerokości, powinno zawierać właściwość

BLOK 1BLOK 2
BLOK 3BLOK 4
BLOK 5
A. clear: both dla bloku 5 oraz float: left jedynie dla 1 i 2 bloku.
B. float: left dla wszystkich bloków.
C. clear: both dla bloku 5 oraz float: left dla pozostałych bloków.
D. clear: both dla wszystkich bloków.
Hmm, tutaj coś poszło nie tak. Wybrałeś opcję z `clear: both`, ale to nie do końca pasuje do tego zadania. `clear: both` w CSS służy głównie do resetowania pływania bloków, więc jak masz blok z tym ustawieniem, to następny nie będzie obok niego, tylko przesunie się na dół. A w tym przypadku nie musisz resetować pływania, bo to nie jest potrzebne. Wiem, że wybór `float: left` dla niektórych bloków może wydawać się dobrym pomysłem, ale żeby wszystko się poprawnie ułożyło, musisz zastosować `float: left` dla wszystkich bloków. I pamiętaj, żeby im ustawić szerokość, bo inaczej bloków może się nie udać ułożyć w poziomie.

Pytanie 10

Rezultatem działania zamieszczonej pętli napisanej w języku PHP jest wypisanie następujących liczb

Ilustracja do pytania
A. od 10 do 2
B. od 10 do 1
C. od 2 do 10
D. od 1 do 10
Pętla for w języku PHP umożliwia iteracyjne wykonywanie kodu w określonym zakresie wartości. W analizowanym przypadku pętla rozpoczyna się od wartości $i = 10, a kończy się, gdy $i jest większe lub równe 1, co oznacza że pętla iteruje w kierunku malejącym. Wybranie odpowiedzi od 10 do 2 lub od 1 do 10 świadczy o braku zrozumienia działania warunku i kroku iteracyjnego. W pętli z dekrementacją, jak $i--, zmniejszamy wartość zmiennej w każdej iteracji. Niezrozumienie tego mechanizmu często prowadzi do błędnych odpowiedzi. W przypadku innych wyborów odpowiedzi można wnioskować że warunek zakończenia pętli został błędnie zinterpretowany, co wskazuje na brak uwagi przy analizie kodu. Typowym błędem w takich przypadkach jest założenie że pętla działała jak typowa iteracja w przód, co nie jest prawdą w tym kontekście. Dla programistów ważne jest zrozumienie, jak każda część pętli wpływa na wykonanie programu, co pozwala unikać problemów w kodzie związanych z nieoczekiwanym zakończeniem pętli lub błędnym wykonywaniem iteracji. Takie zrozumienie jest kluczowe w tworzeniu efektywnych i niezawodnych aplikacji.

Pytanie 11

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

A. megabajt
B. milimetr
C. cal
D. centymetr
Skrót PPI to „pixels per inch”, czyli piksele na CAL - więc 72 PPI oznacza 72 piksele przypadające na jeden cal długości obrazu. To miara gęstości obrazu rastrowego. Zapamiętaj: „inch” = cal, więc PPI zawsze odnosi się do cala, nie do centymetra czy milimetra.

Pytanie 12

Aby zapewnić integralność danych w bazie programu Microsoft Access, należy zastosować

A. więzy integralności
B. kwerendę aktualizującą
C. archiwizację bazy
D. defragmentację bazy
Rozważając archiwizację bazy, defragmentację bazy oraz kwerendy aktualizujące jako strategie zapewnienia spójności danych, można zauważyć istotne różnice w ich funkcjach i zastosowaniach. Archiwizacja bazy danych polega na przeniesieniu starych lub nieaktywnych danych do archiwum, co ma na celu zwolnienie przestrzeni oraz poprawę wydajności systemu. Choć archiwizacja może pośrednio wpłynąć na spójność danych poprzez usunięcie danych nieaktualnych, nie jest to bezpośrednia metoda zapewnienia integralności danych w momencie ich wprowadzania czy modyfikacji. Defragmentacja bazy danych to proces mający na celu uporządkowanie fizycznego rozmieszczenia danych na dysku, co poprawia szybkość dostępu do danych. Mimo że poprawia to wydajność systemu, defragmentacja nie ma wpływu na reguły dotyczące spójności i poprawności danych. Z kolei kwerendy aktualizujące służą do modyfikacji istniejących danych w bazie, jednak same w sobie nie ustanawiają zasad dotyczących integralności danych. Użytkownicy mogą mylnie sądzić, że te procesy mogą zastąpić więzy integralności, co jest nieprawdziwe, ponieważ więzy te są kluczowe dla utrzymania logicznej spójności i poprawności danych w bazie. Właściwe podejście do zarządzania danymi wymaga zastosowania więzów integralności jako fundamentu, na którym opiera się cała struktura bazy danych, zapewniając jej niezawodność i spójność.

Pytanie 13

Określ rezultat działania podanego kodu PHP, jeśli zmienna tab jest tablicą.

$tab = explode(",","jelenie,sarny,dziki,lisy,borsuki"); echo $tab[1]." ".$tab[2];
A. dziki lisy
B. sarny dziki
C. jelenie sarny
D. lisy borsuki
Wynik działania tego kodu PHP to 'sarny dziki'. Dzieje się tak dzięki funkcji explode oraz indeksom tablicy. Funkcja explode dzieli tekst na kawałki według separatora, który w tym przypadku to przecinek. Więc, kiedy zastosujemy ją na ciągu 'jelenie,sarny,dziki,lisy,borsuki', dostaniemy tablicę, gdzie indeks 0 to 'jelenie', indeks 1 to 'sarny', indeks 2 to 'dziki', indeks 3 to 'lisy', a indeks 4 to 'borsuki'. Potem, polecenie echo wyświetla wartości z indeksów 1 i 2, które mają 'sarny' oraz 'dziki'. To całkiem praktyczne w programowaniu, zwłaszcza gdy przerabiamy i manipulujemy danymi tekstowymi. Dzięki explode łatwo dzielimy dane na mniejsze kawałki, co przydaje się w różnych sytuacjach, jak analiza danych czy robienie formularzy, a nawet w pracy z plikami CSV.

Pytanie 14

W SQL wykorzystywanym przez system baz danych MySQL atrybut UNIQUE w poleceniu CREATE TABLE

A. Wymusza unikalne nazwy kolumn w tabeli
B. Jest używany, gdy wartości w kolumnie nie mogą się powtarzać
C. Jest stosowany wyłącznie w przypadku kolumn liczbowych
D. Zabrania wprowadzenia wartości NULL
Istnieje kilka powszechnych nieporozumień dotyczących atrybutu UNIQUE w kontekście relacyjnych baz danych, które mogą prowadzić do błędnych wniosków. Przede wszystkim, twierdzenie, że atrybut UNIQUE wymusza unikatowe nazwy pól tabeli, jest nieprecyzyjne. UNIKATOWOŚĆ odnosi się do wartości przechowywanych w kolumnie, a nie do nazw kolumn. W rzeczywistości, nowa kolumna nie może mieć takiej samej nazwy jak istniejąca kolumna w tej samej tabeli, co jest regułą odzwierciedlającą strukturalne ograniczenia bazy danych, ale nie ma to związku z atrybutem UNIQUE. Ponadto, atrybut ten nie blokuje możliwości wpisania wartości NULL w kolumnach. W MySQL, kolumna z atrybutem UNIQUE może zawierać wiele wartości NULL, ponieważ NULL jest traktowane jako wartość nieokreślona i nie jest uważane za duplikat. Dlatego stwierdzenie, że UNIQUE blokuje możliwość wpisania wartości NULL, jest mylące. Co więcej, atrybut UNIQUE nie jest ograniczony tylko do pól liczbowych; może być zastosowany do dowolnego typu danych, w tym tekstowych czy datowych. Stosowanie UNIQUE w zbiorach danych, które nie wymagają unikalności, może prowadzić do zbędnych błędów i komplikacji podczas wprowadzania danych. Dlatego ważne jest, aby zrozumieć, że atrybut ten odnosi się do wartości w kolumnach, a nie do ich typów czy nazw, co jest kluczowe dla efektywnego projektowania baz danych.

Pytanie 15

Której metody JS użyć, aby WYODRĘBNIĆ fragment napisu między podanymi indeksami?

A.
replace()
B.
concat()
C.
trim()
D.
slice()
Pozostałe metody robią co innego. trim() usuwa białe znaki z końców napisu, concat() ŁĄCZY napisy, a replace() podmienia fragment na inny tekst. Wycinanie fragmentu po indeksach realizuje slice().

Pytanie 16

Jak, wykorzystując język PHP, można zapisać w ciasteczku wartość znajdującą się w zmiennej dane na okres jednego dnia?

A. setcookie("dane", "dane", 0);
B. setcookie("dane", $dane, 0);
C. setcookie("dane", $dane, time());
D. setcookie("dane", $dane, time() + (3600*24));
Użycie setcookie("dane", $dane, time()); jest błędne, ponieważ czas wygaśnięcia ciasteczka nie zostaje określony, a domyślnie ciasteczko wygasa z końcem sesji przeglądarki. Oznacza to, że ciasteczko zostanie usunięte, gdy użytkownik zamknie przeglądarkę, co jest niewłaściwe w kontekście potrzeby przechowywania danych przez dłuższy czas, jak w tym przypadku. Zapis setcookie("dane", "dane", 0); również kończy się niepowodzeniem, ponieważ określenie czasu wygaśnięcia na zero ma ten sam skutek, co wcześniejsza odpowiedź - ciasteczko nie będzie przechowywane po zamknięciu sesji. W przypadku setcookie("dane", $dane, 0); błąd wynika z tego, że zmienna $dane nie jest przechowywana, co prowadzi do potencjalnych problemów z dostępnością danych. Zrozumienie tych mechanizmów jest kluczowe dla efektywnego korzystania z ciasteczek w PHP, a niewłaściwe podejście do ich użycia może prowadzić do utraty informacji, co negatywnie wpływa na doświadczenie użytkownika. Użytkownicy powinni unikać pomijania argumentów związanych z czasem wygaśnięcia, ponieważ może to prowadzić do nieprzewidywalnych rezultatów i frustracji ze strony osób korzystających z danej aplikacji.

Pytanie 17

Określ złożoność obliczeniową algorytmu prostego (standardowego) wyszukiwania najmniejszej wartości w zestawie liczb?

A. O(n2 )
B. O(n)
C. O(n3 )
D. O(n!)
Złożoność obliczeniowa algorytmu naiwnego wyszukiwania minimum to O(n), a jak ktoś pisze, że to O(n^3), to jest w błędzie. Sześćkrotne wzrastanie czasu w zależności od elementów w tym wypadku nie ma sensu. Może to być przez jakieś nieporozumienie o złożoności algorytmów. Naprawdę nie potrzeba zagnieżdżonych pętli do porównania każdej pary. Podobnie, jak ktoś mówi o O(n!), to mówi o czymś wykładniczym, co pasuje do algorytmów generujących permutacje, a nie do prostego wyszukiwania minimum. Nawet O(n^2) to pomyłka, bo sugeruje, że mamy do czynienia z więcej skomplikowanymi algorytmami, jak sortowanie bąbelkowe. Zrozumienie analizy złożoności obliczeniowej jest ważne, żeby unikać tych typowych błędów i myśleć efektywniej o projektowaniu i implementacji algorytmów w codziennym programowaniu.

Pytanie 18

Do tabeli pracownicy wpisano rekordy. Co zostanie wyświetlone po uruchomieniu kwerendy SQL SELECT podanej poniżej?

SELECT SUM(pensja) FROM pracownicy WHERE pensja > 4000;
idimienazwiskopensja
1AnnaKowalska3400
2MonikaNowak1300
3EwelinaNowakowska2600
4AnnaPrzybylska4600
5MariaKowal2200
6EwaNowacka5400
A. Wartość 5400, czyli najwyższa pensja pracownika.
B. Dwie wartości: 4600 i 5400, jako pensje pracowników wyższe niż 4000.
C. Wartość 19500, czyli suma wszystkich pensji pracowników.
D. Wartość 10000, czyli suma pensji pracownika o id=4 oraz o id=6.
Gratulacje, twoja odpowiedź jest poprawna. Kwerenda SQL 'SELECT SUM(pensja) FROM pracownicy WHERE pensja > 4000;' jest zapytaniem, które agreguje (suma) wartości kolumny 'pensja' dla tych wierszy, gdzie pensja przekracza 4000. SQL jest językiem, który pozwala na manipulację i odzyskiwanie danych przechowywanych w relacyjnej bazie danych. Funkcja SUM() jest jednym z podstawowych operatorów agregujących w SQL, który zwraca sumę wartości numerycznych. W tym konkretnym przypadku, zgodnie z pytaniem, suma pensji pracowników, którzy zarabiają więcej niż 4000 wynosi 10000. To pokazuje, jak potężne mogą być kwerendy SQL, umożliwiając szybkie wykonanie złożonych obliczeń na dużych zestawach danych. Podejście to jest często stosowane w analizie danych i raportowaniu, gdzie potrzebna jest agregacja danych na różnych poziomach.

Pytanie 19

Jakim słowem kluczowym można zainicjować zmienną w JavaScript?

A. new
B. var
C. variable
D. instanceof
W języku JavaScript, deklaracja zmiennej przy użyciu słowa kluczowego 'var' jest jednym z podstawowych i fundamentalnych aspektów programowania. Słowo kluczowe 'var' umożliwia tworzenie zmiennych, które mogą przechowywać wartości zarówno typu prymitywnego, jak i obiektowego. Wartością dodaną użycia 'var' jest to, że zmienne zadeklarowane w ten sposób mają zasięg funkcji, co oznacza, że są dostępne w obrębie funkcji, w której zostały zadeklarowane, jak również w zasięgu globalnym, jeśli zostały zdefiniowane poza funkcją. Przykład użycia 'var': var liczba = 10; zmienna 'liczba' jest teraz dostępna w obrębie całej funkcji. Warto również zauważyć, że w nowszych standardach JavaScript, takich jak ECMAScript 6, wprowadzono dodatkowe słowa kluczowe takie jak 'let' i 'const', które oferują bardziej precyzyjny zasięg blokowy i zwiększają bezpieczeństwo kodu. 'Var' pozostaje jednak ważnym elementem do zrozumienia dla każdego programisty JavaScript, ponieważ jest fundamentem, na którym opiera się wiele starszych i nadal używanych skryptów.

Pytanie 20

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. sumy.
B. wykluczenia.
C. grupowania.
D. części wspólnej.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno.
Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji.
Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 21

Prostokątne zniekształcenia obrazu, które występują przy zapisie pliku graficznego, są typowe dla formatu

Ilustracja do pytania
A. PNG z kompresją bezstratną LZ77
B. BMP bez kompresji
C. JPEG z dużym stopniem kompresji stratnej
D. GIF z kompresją bezstratną LZW
BMP jest formatem, który przechowuje obrazy bez kompresji, co oznacza, że każdy piksel jest zapisywany indywidualnie. Zapewnia to wysoką jakość obrazu bez zniekształceń wynikających z kompresji, ale skutkuje bardzo dużymi rozmiarami plików. BMP jest zatem nieefektywny w kontekście przechowywania i przesyłania dużych ilości danych graficznych. Format GIF natomiast używa kompresji bezstratnej LZW, która pozwala zachować pełną integralność danych graficznych. GIF jest ograniczony do 256 kolorów, co czyni go nieodpowiednim dla złożonych obrazów fotograficznych, a sam format nie generuje prostokątnych zniekształceń widocznych w obrazie. PNG, podobnie jak GIF, korzysta z kompresji bezstratnej, w tym przypadku LZ77, i jest często wykorzystywany do grafik internetowych ze względu na wsparcie dla przezroczystości i szerokiej gamy kolorystycznej. PNG, dzięki zachowaniu pełnych danych, nie wykazuje charakterystycznych dla JPEG efektów zniekształcenia blokowego. Częstym błędem jest zakładanie, że wszystkie formaty kompresji wpływają na jakość obrazu w ten sam sposób, podczas gdy różne algorytmy mają swoje unikalne właściwości i zastosowania. Wybór formatu powinien być oparty na konkretnych potrzebach i zastosowaniach, z uwzględnieniem kompromisu między jakością, a rozmiarem pliku, co ma kluczowe znaczenie w różnych branżach zajmujących się grafiką i fotografią cyfrową.

Pytanie 22

W programie do edycji grafiki rastrowej, aby skoncentrować się na wybranej części obrazu, nie wpływając na pozostałe jego fragmenty, można zastosować

A. odwrócenie
B. zmianę rozmiaru
C. warstwy
D. przycinanie
Zastosowanie skalowania w edytorze grafiki rastrowej polega na zmianie rozmiaru obrazu, co wpływa na wszystkie jego elementy. Przykładowo, jeśli zdecydujemy się na skalowanie, wszystkie obiekty na obrazie zostaną powiększone lub pomniejszone w równym stopniu, co nie pozwala na selektywne modyfikacje. Inwersja, z kolei, to proces zmiany kolorów pikseli w obrazie na ich przeciwieństwa, co również nie umożliwia pracy na wybranej części obrazu bez zmiany innych elementów. Ponadto kadrowanie, które polega na przycinaniu części obrazu, również nie dostarcza narzędzi do edytowania wybranych elementów bez wpływu na resztę kompozycji. Takie podejścia są często mylnie postrzegane jako odpowiednie metody do pracy z grafiką rastrową, podczas gdy w rzeczywistości nie oferują elastyczności potrzebnej do profesjonalnej edycji. Nieprawidłowe wnioski mogą prowadzić do frustracji w trakcie edycji, zwłaszcza w bardziej złożonych projektach, gdzie precyzyjna kontrola nad elementami obrazu jest kluczowa. Dlatego istotne jest zrozumienie roli warstw jako jedynego narzędzia, które umożliwia niezależne zarządzanie elementami grafiki rastrowej.

Pytanie 23

Jeden klient może mieć wiele zamówień, a każde zamówienie należy do jednego klienta. Jaka to relacja?

A.
1 .. 1
B.
1 .. n
C.
n .. n
D.
n .. 1
Pozostałe oznaczenia nie pasują. 1..1 znaczyłoby, że klient ma tylko jedno zamówienie. n..1 to ta sama relacja zapisana odwrotnie (z punktu widzenia zamówień), ale w opisie punktem wyjścia jest klient, więc naturalnie 1..n. n..n pozwalałoby, by zamówienie należało do wielu klientów. Opisany przypadek to 1..n.

Pytanie 24

Dla strony internetowej stworzono styl, który będzie stosowany tylko do wybranych znaczników, takich jak niektóre nagłówki oraz kilka akapitów. W tej sytuacji, aby przypisać styl do konkretnych znaczników, najodpowiedniejsze będzie użycie

Ilustracja do pytania
A. selektora akapitu
B. klasy
C. identyfikatora
D. pseudoklasy
Pseudoklasy w CSS są używane do stylizowania elementów w określonym stanie, np. :hover dla zmiany stylu po najechaniu myszą. Nie są odpowiednie do przypisywania unikalnych stylów do konkretnych elementów. Identyfikator w CSS, oznaczany przez #, jest używany do stylizowania jednego unikalnego elementu na stronie. Jego użycie jest ograniczone do jednego elementu, co jest zgodne z zasadą unikalności identyfikatorów w dokumencie HTML. Nie nadaje się do sytuacji, gdy ten sam styl ma być stosowany do wielu elementów, ponieważ zmuszałoby to do definiowania i przypisywania wielu unikalnych identyfikatorów do każdego z nich, co jest przeciwieństwem DRY (Don't Repeat Yourself). Selektor akapitu bezpośrednio odnosi się do wszystkich elementów danego typu, np. p dla wszystkich akapitów. Nie jest on elastyczny, gdy chcemy zastosować styl tylko do niektórych elementów danego typu. Klasy oferują większą elastyczność w zarządzaniu stylami wielu elementów, ponieważ mogą być stosowane do różnych typów elementów w różnych miejscach dokumentu HTML. Ponadto, klasy są bardziej czytelne i ułatwiają utrzymanie kodu, co jest zgodne z najlepszymi praktykami w programowaniu front-endowym. Użycie klas wspiera również lepszą strukturę i modularność kodu CSS, co jest istotne w kontekście pracy zespołowej oraz skalowalności projektu.

Pytanie 25

Które z poniższych zdań charakteryzuje grafikę wektorową?

A. Jest to reprezentacja obrazu przy pomocy siatki pikseli o różnych kolorach układających się w poziomie i pionie na monitorze komputera, drukarce lub innym urządzeniu wyjściowym
B. Służy do zapisu zdjęć cyfrowych
C. Może być zapisywana w formatach JPG lub PNG
D. Zapisywany obraz jest opisywany za pośrednictwem figur geometrycznych umieszczonych w układzie współrzędnych
Wybór niepoprawnej odpowiedzi może wynikać z nieporozumienia dotyczącego podstawowych różnic między grafiką wektorową a grafiką rastrową. Wiele osób myli te dwa pojęcia, co prowadzi do błędnych wniosków. Na przykład, stwierdzenie, że grafika wektorowa jest wykorzystywana do zapisu fotografii cyfrowej, jest mylące, ponieważ fotografie to klasyczne przykłady grafiki rastrowej, która jest oparta na pikselach. Grafika rastrowa, jak JPEG czy PNG, polega na tworzeniu obrazów z małych kwadratowych jednostek (pikseli), co skutkuje utratą jakości przy ich skalowaniu, w przeciwieństwie do grafiki wektorowej. Ponadto, opisana jako 'prezentacja obrazu za pomocą pionowo-poziomej siatki odpowiednio kolorowanych pikseli', koncepcja ta odnosi się do struktury grafiki rastrowej, a nie wektorowej. Ponadto, formaty JPEG i PNG są odpowiednie dla obrazów rastrowych, a nie wektorowych, co podkreśla dodatkowe zamieszanie. Dobrze jest pamiętać, że rysunki wektorowe są oparte na matematycznych równaniach, co czyni je bardziej elastycznymi i odpowiednimi dla różnych zastosowań w projektowaniu graficznym. Typowe błędy w myśleniu dotyczące tych technologii wynikają z braku zrozumienia ich fundamentalnych właściwości oraz zastosowań w praktyce, co może prowadzić do niewłaściwego wykorzystania narzędzi graficznych w pracy zawodowej.

Pytanie 26

Znacznik <i> w języku HTML ma na celu

A. ustalenie nagłówka w treści
B. określenie formularza
C. zmianę czcionki na kursywę
D. dodanie grafiki
Znacznik <i> w języku HTML jest używany do formatowania tekstu, aby uzyskać efekt pochylonego kroju pisma. Jest to element semantyczny, który wprowadza do dokumentu wizualną różnicę, ale także ma swoje miejsce w kontekście znaczeniowym. Użycie <i> może wskazywać na zmianę intonacji w tekście, taką jak nazwy książek, filmów, czy obcych wyrazów. W standardach HTML5, <i> jest zalecany do użytku, aby wyróżnić elementy tekstowe w sposób, który jest zgodny z zasadami dostępności i semantyki. Przykład zastosowania: <p>W książce <i>W pustyni i w puszczy</i> autorstwa Henryka Sienkiewicza...</p>. Oznaczanie tekstu w ten sposób wspiera nie tylko estetykę strony, ale również poprawia doświadczenie użytkowników korzystających z technologii asystujących, które mogą interpretować znaczenie tak oznaczonego tekstu. Warto również pamiętać o odpowiednich stylach CSS, które można zastosować do tego znacznika, aby dostosować jego wygląd do reszty witryny.

Pytanie 27

Jakim typem jest w PHP zmienna globalna $_POST (odbierająca dane formularza)?

A. ciągiem znaków zakodowanym w JSON
B. tablicą asocjacyjną
C. obiektem klasy stdClass
D. zmienną tekstową
Superglobalna $_POST jest TABLICĄ ASOCJACYJNĄ - kluczami są nazwy pól formularza (name), a wartościami wpisane dane, np. $_POST['email']. Dlatego $_POST to tablica asocjacyjna.

Pytanie 28

Przy edytowaniu obrazu w programie graficznym rastrowym należy usunąć kolory z obrazu, aby uzyskać jego wersję w skali szarości. Jaką funkcję można zastosować, aby osiągnąć ten efekt?

A. kadrowania
B. desaturacji
C. filtru rozmycia
D. szumu RGB
Filtr rozmycia, szum RGB oraz kadrowanie to techniki, które nie służą do usuwania kolorów z obrazu, co czyni je nieodpowiednimi w kontekście uzyskiwania odcieni szarości. Rozmycie, które jest często stosowane do wygładzania krawędzi i redukcji szumów w obrazach, nie wpływa na kolorystykę, a jedynie na ostrość detali. Stosowanie filtru rozmycia w nadmiarze może prowadzić do utraty ważnych informacji wizualnych, co w kontekście edycji nie jest pożądane. Szum RGB jest techniką wprowadzania losowych danych kolorystycznych, która może być użyta do generowania efektów specjalnych, ale nie ma zastosowania w procesie desaturacji, gdyż zamiast eliminować kolory, może je wprowadzać. Kadrowanie jest natomiast procesem przycinania obrazu do wybranego formatu, co również nie ma związku z usuwaniem kolorów, a bardziej z kompozycją wizualną. Typowym błędem myślowym jest założenie, że każdy proces edycji obrazu może być użyty zamiennie. Kluczowe jest zrozumienie, że różne techniki służą różnym celom i wybór odpowiedniej metody powinien być oparty na zamierzeniach artystycznych oraz technicznych wymogach projektu.

Pytanie 29

Aby przekształcić obraz w formacie PNG tak, by jego tło stało się przezroczyste, wymagane jest

A. ulepszenie nasycenia kolorów.
B. dodanie kanału alfa.
C. zapisanie go w formacie BMP.
D. odpowiednie przycięcie.
Dodanie kanału alfa do obrazu w formacie PNG jest kluczowe dla uzyskania przezroczystego tła. Kanał alfa to dodatkowa warstwa informacji w obrazie, która definiuje przezroczystość każdego piksela. Dzięki niemu, obrazy PNG mogą przechowywać informacje o tym, które części obrazu są całkowicie przezroczyste, częściowo przezroczyste lub całkowicie nieprzezroczyste. To oznacza, że stosując kanał alfa, możemy tworzyć złożone efekty wizualne, takie jak cienie czy gradienty, które są nieosiągalne w formatach nieobsługujących przezroczystości, jak JPEG. W praktyce, dodanie kanału alfa można zrealizować w programach graficznych, takich jak Adobe Photoshop czy GIMP, za pomocą opcji 'Dodaj kanał alfa' w menu warstw. Umożliwia to edytowanie tła obrazu, eliminację niepożądanych elementów oraz integrację z różnymi tłem w dokumentach i stronach internetowych, co jest szczególnie istotne w projektowaniu graficznym i web designie. Zatem, znajomość obsługi kanału alfa oraz umiejętność pracy z formatem PNG są niezbędne dla profesjonalnych grafików w nowoczesnym środowisku projektowym.

Pytanie 30

Komunikat błędu wygenerowany przez walidator HTML może wskazywać na:

A. brak zamknięcia znacznika <p>
B. zbyt wolne ładowanie strony
C. zbyt długą treść akapitu <p>
D. użycie zbyt wielu kolorów na stronie
Walidator HTML sprawdza zgodność kodu ze standardem i zgłasza błędy składni. Typowy komunikat dotyczy niedomkniętego znacznika - np. otwartego <p> bez odpowiadającego </p>, złego zagnieżdżenia lub nieprawidłowego atrybutu. Dlatego komunikat walidatora może wskazywać na brak zamknięcia znacznika <p>.

Pytanie 31

Jaką wartość uzyska zmienna x po wykonaniu poniższego kodu PHP?

mysqli_query($db, "DELETE FROM produkty WHERE status < 0");
$x = mysqli_affected_rows($db);
A. Liczbę wierszy w tabeli produkty, dla których pole status przekracza zero.
B. Liczbę wierszy, które zostały dodane do tabeli produkty.
C. Liczbę wierszy przetworzonych przez zapytanie DELETE FROM.
D. Liczbę wierszy, które znajdują się w bazie danych.
Wybór niepoprawnej odpowiedzi może wynikać z nieporozumienia dotyczącego działania funkcji mysqli_affected_rows oraz zrozumienia zapytań SQL. Wiele osób może myśleć, że funkcja ta zwraca liczbę wierszy w tabeli, co jest błędne. mSQL i PHP oferują wiele funkcji do interakcji z bazą danych, a zrozumienie ich specyfikacji jest kluczowe dla efektywnego programowania. Odpowiedź sugerująca, że x przyjmuje liczbę wierszy znajdujących się w bazie danych, jest absolutnie nieprawidłowa, ponieważ mysqli_affected_rows nie ma nic wspólnego z ogólną liczbą wierszy w tabeli. To funkcja, która skupia się na rezultatach ostatniego zapytania, a nie na całkowitym stanie bazy danych. Podobnie, zrozumienie zapytania DELETE FROM jako operacji, która zmienia stan bazy danych, jest fundamentalne. Inną popularną pomyłką jest myślenie, że liczba wierszy dodanych do tabeli jest w jakiś sposób związana z tym, co robi zapytanie DELETE. W rzeczywistości, podczas usuwania danych, nie dodajemy nic nowego, a funkcja ta jedynie informuje nas o usuniętych elementach. Dobrą praktyką jest również sięganie po dokumentację oraz testowanie kodu, co pozwala na lepsze zrozumienie zachowań funkcji i operacji na bazach danych.

Pytanie 32

Dana jest tabela ksiazki z polami: tytul, autor, cena (typu liczbowego). Aby kwerenda SELECT wybrała tylko tytuły, dla których cena jest mniejsza od 50 zł, należy zapisać

A. SELECT tytul FROM ksiazki WHERE cena < 50;
B. SELECT ksiazki FROM tytul WHERE cena < '50 zł';
C. SELECT tytul FROM ksiazki WHERE cena > '50 zł';
D. SELECT * FROM ksiazki WHERE cena < 50;
W zapytaniach SQL bardzo łatwo popełnić drobny błąd składniowy albo logiczny, który na pierwszy rzut oka wygląda niewinnie, a w praktyce całkowicie zmienia działanie kwerendy. W tym pytaniu widać kilka typowych potknięć, które często pojawiają się u osób zaczynających pracę z bazami danych.

Jednym z błędów jest używanie SELECT * wtedy, gdy wcale nie potrzebujemy wszystkich kolumn. Z mojego doświadczenia wynika, że to nawyk z pierwszych ćwiczeń: * działa, więc wszyscy go używają. Problem jest taki, że SELECT * FROM ksiazki WHERE cena < 50; co prawda poprawnie filtruje po cenie, ale zwraca wszystkie kolumny, a pytanie wyraźnie mówi o „tytułach”. W realnych systemach oznacza to większy transfer danych, gorszą czytelność kodu i trudniejsze utrzymanie, szczególnie gdy tabela ma kilkanaście czy kilkadziesiąt kolumn.

Druga kwestia to porównywanie liczby do tekstu. Jeśli kolumna cena ma typ liczbowy, to warunki w WHERE powinny używać wartości liczbowych, np. 50, bez cudzysłowów i bez jednostek waluty. Konstrukcje w stylu cena > '50 zł' są błędne semantycznie: baza próbuje wtedy porównywać liczbę z napisem, co w zależności od silnika SQL skończy się błędem, nieprzewidywalną konwersją albo po prostu pustym wynikiem. Jednostka waluty, czyli „zł”, powinna być dodawana dopiero na etapie prezentacji danych, a nie przechowywana w kolumnie liczbowej.

Pojawia się też nieporozumienie co do tego, co podajemy po SELECT, a co po FROM. Po SELECT wymieniamy kolumny (np. tytul, autor), natomiast po FROM – nazwy tabel (np. ksiazki). Odwrócenie tego, typu SELECT ksiazki FROM tytul, jest po prostu niepoprawną składnią i nie ma sensu z punktu widzenia modelu relacyjnego. To jest jeden z częstszych błędów: mylenie poziomu struktury bazy (tabele) z poziomem danych (kolumny).

Dobrym nawykiem jest więc: po pierwsze, zawsze zastanowić się, które kolumny naprawdę są potrzebne; po drugie, pilnować typów danych – liczby porównujemy z liczbami, tekst z tekstem; po trzecie, dbać o poprawną kolejność i znaczenie słów kluczowych SQL. Takie drobne szczegóły przekładają się potem na wydajność, bezpieczeństwo i jakość całej aplikacji webowej.

Pytanie 33

Aby zaprojektować kształt logo dla strony WWW sposobem przedstawionym na obrazie, należy zastosować funkcję

Ilustracja do pytania
A. różnicy.
B. sumy.
C. części wspólnej.
D. wykluczenia.
Niestety, wybrana odpowiedź jest niepoprawna. Zamiast 'różnicy', 'sumy' czy 'części wspólnej', poprawnym rozwiązaniem jest 'wykluczenie'. Na obrazie mamy do czynienia z dwoma kształtami, z których fioletowy jest nałożony na czerwony. Wynik to kształt pokazujący tylko te części czerwonego kształtu, które nie pokrywają się z fioletowym. Właśnie tak działa operacja wykluczenia w grafice komputerowej - wynikowa forma zawiera tylko te elementy jednego obiektu, które nie nakładają się z drugim. Operacje różnicy, sumy czy części wspólnej miałyby inne efekty. 'Różnica' usunęłaby część czerwonego kształtu pokrywającą się z fioletowym, 'suma' utworzyłaby kształt zawierający całość obu kształtów, a 'część wspólna' wytworzyłaby kształt pokrywający się z oboma kształtami. Odnoszenie się do niewłaściwych operacji może prowadzić do znacznych błędów w projektowaniu graficznym.

Pytanie 34

Walidator HTML5 zgłosił: „Error: Element head is missing a required instance of child element title”. Co to oznacza?

A. że brakuje atrybutu title w <img>
B. że <title> nie został zamknięty </title>
C. że element <title> nie jest wymagany
D. że w <head> nie zdefiniowano elementu <title>
Pozostałe interpretacje są błędne. Komunikat nie mówi, że <title> jest zbędny - przeciwnie, że jest WYMAGANY. Nie chodzi też o niezamknięty </title> ani o atrybut title w <img>. Błąd oznacza brak elementu <title> w <head>.

Pytanie 35

Sklep online używa tabeli faktury. W trakcie generowania faktury pole dataPlatnosci nie zawsze zostaje uzupełnione. Aby to skorygować, na zakończenie dnia trzeba wpisać bieżącą datę do rekordów, w których to pole nie jest wypełnione. Można to osiągnąć za pomocą kwerendy

A. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL;
B. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE id = 3;
C. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE dataPlatnosci IS NOT NULL;
D. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataplatnosci = '0000-00-00';
Odpowiedź, którą wybrałeś, jest jak najbardziej trafna. Kwerenda UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL rzeczywiście aktualizuje pole dataPlatnosci w tabeli faktur, ale tylko wtedy, gdy jest ono puste. Super, że korzystasz z CURDATE(), bo to daje nam bieżącą datę. W SQL ważne jest, żeby nie tracić czasu na aktualizowanie wierszy, które już mają datę. Dobrze widzieć, że zastosowałeś IS NULL, bo to pozwala uniknąć kłopotów z porównywaniem dat i wydobywaniem takich wartości jak '0000-00-00', co na pewno by namieszało z interpretacją. Twoje podejście jest zgodne z tym, co powinno być w bazach danych – minimalizowanie zbędnych danych i dbanie o ich spójność. Z mojego doświadczenia, zawsze lepiej korzystać z funkcji datowych, bo to pozwala mieć pewność, że wprowadzane wartości są aktualne i pasują do reszty aplikacji.

Pytanie 36

Której pseudoklasy CSS użyć, aby element zmieniał kolor po najechaniu kursorem?

A.
:coursor
B.
:active
C.
:hover
D.
:visited
Pseudoklasa :hover zmienia wygląd elementu, gdy najedzie na niego kursor, np. a:hover { color: red; } podświetli link pod myszą. To podstawowy sposób na interaktywne reakcje bez JavaScriptu. Zapamiętaj: „hover” = unoszenie kursora nad elementem.

Pytanie 37

Który zapis definiuje w JavaScripcie komentarz JEDNOLINIOWY?

A.
?
B.
/*
C.
//
D.
#
W JavaScripcie komentarz jednoliniowy zaczyna się od // - wszystko od tych znaków do końca wiersza jest pomijane. Dlatego komentarz jednoliniowy to //.

Pytanie 38

Jaką relację w projekcie bazy danych powinno się ustalić pomiędzy tabelami przedstawionymi na rysunku, przy założeniu, że każdy klient sklepu internetowego złoży co najmniej dwa zamówienia?

Ilustracja do pytania
A. 1:1
B. 1:n, gdzie 1 znajduje się po stronie Zamówienia, a wiele po stronie Klienta
C. 1:n, gdzie 1 jest po stronie Klienta, a wiele po stronie Zamówienia
D. n:n
Analizując różne możliwe relacje między tabelami, warto zrozumieć, dlaczego niektóre podejścia są błędne. Relacja 1:1 zakłada, że jedna jednostka w pierwszej tabeli odpowiada dokładnie jednej jednostce w drugiej tabeli. W kontekście sklepu internetowego sugerowałoby to, że jeden klient może mieć tylko jedno zamówienie, co nie odpowiada rzeczywistości, gdzie klienci zazwyczaj dokonują wielu transakcji. Relacja 1:n, gdzie 1 jest po stronie Zamówienia, a wiele po stronie Klienta, również jest niepoprawna, ponieważ sugeruje, że jedno zamówienie może być przypisane do wielu klientów, co jest sprzeczne z indywidualnym charakterem zakupów. Relacja n:n, choć teoretycznie pozwalałaby na przypisanie wielu klientów do wielu zamówień, w rzeczywistości wymagałaby dodatkowej tabeli pośredniej do przechowywania tych powiązań, co wprowadzałoby niepotrzebną złożoność i mogłoby prowadzić do błędów w przetwarzaniu danych. Typowym problemem przy projektowaniu baz danych jest błędne zrozumienie relacji między danymi, co może prowadzić do nieefektywnych struktur, utrudniających zarówno utrzymanie jak i rozwój systemu. Dlatego tak ważne jest dokładne zrozumienie specyfiki relacji między danymi i stosowanie odpowiednich modeli, które zapewnią zarówno integralność jak i wydajność systemu informatycznego na dłuższą metę.

Pytanie 39

Funkcja drzewo kontekstowe w edytorze WYSIWYG Adobe Dreamweaver ma na celu

A. prezentowanie interaktywnej struktury drzewa HTML dla treści statycznych i dynamicznych
B. przygotowanie szablonu witryny internetowej
C. określenie kaskadowych arkuszy stylów przypisanych do strony
D. stylizację tekstu za pomocą dostępnych znaczników
Wybór odpowiedzi dotyczącej definiowania kaskadowych arkuszy stylów (CSS) w kontekście funkcji drzewa kontekstowego w Adobe Dreamweaver jest mylący. Kaskadowe arkusze stylów są narzędziem służącym do stylizacji stron internetowych, ale nie są bezpośrednio związane z funkcjonalnością drzewa kontekstowego, które koncentruje się na przedstawieniu struktury HTML dokumentu. Kiedy projektant korzysta z edytora, może wprowadzać zmiany w stylach CSS, jednak drzewo kontekstowe nie jest dedykowane temu procesowi. Ponadto, zrozumienie struktury HTML jest kluczowe do efektywnego stosowania CSS, ale to nie oznacza, że można je mylić. Druga odpowiedź, dotycząca tworzenia szablonu strony internetowej, jest również nieprecyzyjna. Szablony są narzędziem do ułatwienia konstrukcji stron, ale drzewo kontekstowe nie jest bezpośrednio związane z ich tworzeniem. Podobnie, formatowanie tekstu przy pomocy znaczników nie jest funkcją drzewa kontekstowego; jest to zadanie edytora WYSIWYG jako całości. Zrozumienie tych koncepcji technicznych jest kluczowe, aby uniknąć typowych pułapek myślowych, takich jak mylenie różnych funkcji edytorów oraz ich zastosowań w procesie tworzenia stron internetowych. Osoby pracujące w branży powinny być dobrze zaznajomione z odpowiedzialnością, jaką niesie ze sobą poprawne stosowanie narzędzi i technologii, aby efektywnie realizować projekty webowe.

Pytanie 40

W posiadanej tabeli zwanej przedmioty, która zawiera kolumny ocena oraz uczenID, aby wyliczyć średnią ocen dla ucznia z ID równym 7, należy użyć zapytania

A. SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7
B. AVG SELECT ocena FROM przedmioty WHERE uczenID = 7
C. COUNT SELECT ocena FROM przedmioty WHERE uczenID = 7
D. SELECT AVG(ocena) FROM przedmioty WHERE uczenID = 7
Wybór innych opcji jest niepoprawny z kilku powodów. Odpowiedź, która zawiera 'AVG SELECT ocena FROM przedmioty WHERE uczenID = 7;' jest błędna, ponieważ nieprawidłowo formułuje składnię SQL. W SQL kolejność słów w zapytaniach jest kluczowa, a funkcje agregujące, takie jak AVG, muszą być używane po słowie SELECT. Z kolei wybór 'COUNT SELECT ocena FROM przedmioty WHERE uczenID = 7;' również jest błędny, ponieważ 'COUNT' jest funkcją, która zlicza ilość wierszy spełniających określone warunki, a nie średnią, co nie odpowiada zadaniu. Warto zauważyć, że mylenie funkcji agregujących, takich jak AVG i COUNT, to powszechny błąd, który wynika z niepełnego zrozumienia ich funkcji. W przypadku zapytania 'SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7;' z kolei, chociaż składnia jest poprawna, zapytanie to zlicza liczbę ocen, a nie ich średnią, co nie spełnia wymagań pytania. To podejście nie tylko wprowadza w błąd, ale także może prowadzić do nieprawidłowych analiz danych. Kluczowe jest zrozumienie, że różne funkcje agregujące mają różne zastosowania i nie można ich stosować zamiennie. Użytkownicy pracujący z bazami danych powinni szczególnie zwracać uwagę na typy danych, jakie są przechowywane w ich tabelach oraz na odpowiednią składnię SQL, aby uzyskać zamierzony efekt.