Wyniki egzaminu

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

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Wśród technik rozwiązywania problemów w przedsiębiorstwie znajdują się: ignorowanie, separacja, arbitraż oraz kompromis. Wskaż metodę, która szczególnie może być niebezpieczna i prowadzić do zaostrzenia konfliktu w firmie?

A. separacja
B. arbitraż
C. kompromis
D. ignorowanie
Odpowiedzią, która wskazuje na technikę szczególnie ryzykowną, jest ignorowanie. Ignorowanie problemów w firmie może prowadzić do ich eskalacji, ponieważ nie podejmowanie działań w sytuacjach konfliktowych często prowadzi do narastających napięć. Przykładowo, jeśli zespół projektowy ma niezgodności co do metodologii pracy, a kierownik postanowi to zignorować, różnice mogą się pogłębiać, prowadząc do braku współpracy i obniżenia morale. W praktyce, ignorowanie konfliktów jest jednym z najczęstszych błędów w zarządzaniu, co potwierdzają standardy zarządzania projektami, takie jak PMBOK, które zalecają aktywne podejście do rozwiązywania konfliktów. Ignorowanie problemów nie tylko wpływa na dynamikę zespołu, ale także może wpłynąć na wyniki finansowe organizacji, ponieważ niewłaściwe zarządzanie konfliktami może prowadzić do opóźnień w projektach oraz zwiększonych kosztów. Z tego względu kluczowe jest, aby menedżerowie i liderzy nie bagatelizowali konfliktów, lecz podejmowali działania w celu ich rozwiązania oraz wprowadzenia kultury otwartej komunikacji w zespole.

Pytanie 2

Aby zliczyć wszystkie wiersze w tabeli Koty, należy wykorzystać zapytanie

A. SELECT COUNT(*) FROM Koty
B. SELECT COUNT(Koty) AS ROWNUM
C. SELECT ROWNUM() FROM Koty
D. SELECT COUNT(ROWNUM) FROM Koty
W przypadku pierwszej niepoprawnej odpowiedzi, SELECT ROWNUM() FROM Koty, należy zaznaczyć, że ROWNUM jest funkcją specyficzną dla baz danych Oracle, która zwraca numer wiersza dla każdego wiersza wynikowego zapytania. Funkcja ta nie może być używana do zliczania wierszy, ponieważ nie zwraca liczby wierszy, a jedynie ich numerację. W rezultacie, zapytanie to nie spełnia wymagań dotyczących zliczania wszystkich wierszy w tabeli. Kolejna odpowiedź, czyli SELECT COUNT(Koty) AS ROWNUM, również jest błędna, ponieważ COUNT(Koty) zlicza nie NULL-owe wartości w kolumnie o nazwie Koty, a nie całkowitą liczbę wierszy w tabeli. Jeśli tabela Koty zawiera kolumny z wartościami NULL, to wynik tego zapytania będzie mniejszy niż oczekiwana całkowita liczba wierszy. Ostatnia niepoprawna odpowiedź, SELECT COUNT(ROWNUM) FROM Koty, jest myląca, ponieważ ROWNUM nie jest kolumną ani funkcją, którą można zliczać. Odwołuje się ponownie do numeracji wierszy, a COUNT(ROWNUM) nie ma sensu w kontekście zliczania rekordów w tabeli, co prowadzi do błędnych obliczeń. Każda z tych odpowiedzi nie tylko nie realizuje założonego celu zliczania wierszy, ale może także wprowadzać w błąd osoby pracujące z SQL, sugerując zastosowanie niewłaściwych metod.

Pytanie 3

Na stronie internetowej zdefiniowano styl, który ma być stosowany tylko do określonych znaczników (takich jak niektóre nagłówki i wybrane akapity). W takim kontekście, aby przypisać styl do konkretnych elementów, najlepiej jest użyć

{ text-align: right; }
A. identyfikatora
B. seletora akapitu
C. klasy
D. pseudoklasy
Użycie selektora akapitu nie jest odpowiednie w sytuacji gdy chcemy przypisać styl tylko do niektórych znaczników tego typu ponieważ selektory takie jak p stylizują wszystkie elementy danego typu na stronie bez rozróżnienia Jeżeli chcemy stylizować tylko określone akapity musielibyśmy użyć klas lub identyfikatorów Identyfikator z kolei charakteryzuje się tym że powinien być unikalny dla każdego elementu na stronie Stosowanie identyfikatora do stylizowania grupy elementów naruszałoby zasadę unikalności co może prowadzić do problemów z walidacją HTML oraz trudności w przyszłej modyfikacji kodu Pseudoklasy są używane do stylizowania elementów w konkretnych stanach takich jak hover focus czy active i nie nadają się do przypisywania ogólnych stylów do grupy elementów Ich głównym przeznaczeniem jest reagowanie na interakcje użytkownika a nie stylizacja stała W kontekście pytania najlepszym podejściem jest użycie klas które pozwalają na przypisanie stylów dokładnie tam gdzie są potrzebne bez konieczności nadmiernego komplikowania kodu i naruszania dobrych praktyk Kod staje się bardziej elastyczny i łatwiejszy w zarządzaniu co jest kluczowe dla długoterminowego utrzymania projektu Krótko mówiąc klasy oferują najskuteczniejszy sposób na przypisanie stylu do określonych grup elementów zapewniając przy tym zgodność ze standardami i najlepsze praktyki w tworzeniu stron internetowych

Pytanie 4

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", konieczne jest zastosowanie funkcji w PHP

A. strstr('ala ma psa')
B. strtoupper('ala ma psa')
C. ucfirst('ala ma psa')
D. strtolower('ala ma psa')
Funkcja strtoupper() w PHP jest naprawdę przydatna do zamiany wszystkich liter w danym ciągu znaków na wielkie litery. Na przykład, kiedy mamy tekst 'ala ma psa' i użyjemy strtoupper('ala ma psa'), to dostaniemy 'ALA MA PSA'. To bardzo fajny trik, zwłaszcza gdy musimy ujednolicić format tekstu, na przykład jak ktoś wprowadza dane w różny sposób. Moim zdaniem, to jest ważne, bo różnice w wielkości liter mogą zepsuć nasze porównania. Weźmy pod uwagę sytuację, gdy użytkownik wpisuje różne rzeczy i chcemy, żeby wszystko było w jednym formacie przed dalszym przetwarzaniem, np. w bazach danych. To dobra funkcja, bo działa z różnymi zestawami znaków, więc jest świetnym narzędziem w PHP, nie tylko w aplikacjach webowych, ale też przy przetwarzaniu tekstów.

Pytanie 5

Zakładając, że użytkownik nie miał wcześniej żadnych uprawnień, polecenie SQL przyzna użytkownikowi anna jedynie uprawnienia do

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
A. wybierania, dodawania pól oraz modyfikacji struktury wszystkich tabel w bazie o nazwie klienci
B. wybierania, wstawiania oraz modyfikacji danych w wszystkich tabelach w bazie o nazwie klienci
C. wybierania, dodawania pól oraz modyfikacji struktury tabeli o nazwie klienci
D. wybierania, wstawiania oraz aktualizacji danych tabeli o nazwie klienci
To polecenie SQL, które widzisz, czyli GRANT SELECT INSERT UPDATE ON klienci TO anna, po prostu przyznaje użytkownikowi anna konkretne uprawnienia do tabeli klienci. Dzięki temu, ona może odczytywać dane z tej tabeli, co jest naprawdę ważne, zwłaszcza przy robieniu różnych zapytań czy raportów. A jakbyś chciał dodać nowe rekordy, to właśnie INSERT na to pozwala. To mega istotne, bo w bazach danych często coś się zmienia! Natomiast UPDATE daje możliwość zmieniania już istniejących danych, co jest bardzo przydatne, żeby utrzymać wszystko w porządku i aktualności. To jakby standard w zarządzaniu bazami danych. Przyznawanie uprawnień do konkretnej tabeli, a nie całej bazy, zmniejsza ryzyko, że ktoś dostanie dostęp do danych, które nie są dla niego przeznaczone. To wszystko działa zgodnie z zasadą minimalnych uprawnień, co jest super ważne! Można też lepiej kontrolować, kto i jakie operacje może robić na danych, co zapewnia bezpieczeństwo i integralność danych w firmie.

Pytanie 6

W podanym przykładzie pseudoklasa hover spowoduje, że styl pogrubiony zostanie przypisany

a:hover { font-weight: bold; }
A. wszystkim odnośnikom, które były wcześniej odwiedzane
B. każdemu odnośnikowi bez względu na jego bieżący stan
C. odnośnikowi, gdy kursor myszy na niego najedzie
D. wszystkim odnośnikom, które nie były odwiedzane
Pseudoklasa hover jest specyficzną cechą CSS, która pozwala na zmianę stylu elementu w momencie, gdy użytkownik najeżdża na niego kursorem myszy. Odpowiedzi sugerujące, że styl pogrubiony zostanie przypisany wszystkim odnośnikom nieodwiedzonym lub odwiedzonym zawierają błędne założenie dotyczące działania pseudoklas. Pseudoklasy nieodwiedzony lub odwiedzony (a:link i a:visited) odnoszą się do stanu odnośnika w kontekście jego kliknięcia przez użytkownika, a nie interakcji za pomocą kursora. Twierdzenie, że styl pogrubiony będzie zastosowany do wszystkich odnośników niezależnie od stanu ignoruje fakt, że pseudoklasa hover jest specyficzna dla dynamicznej interakcji z elementem, nie zaś dla jego statycznego stanu. Typowym błędem w rozumieniu pseudoklas jest mylenie ich z selektorami klasy czy identyfikatorów, które odnoszą się do statycznych atrybutów elementów. Właściwe użycie pseudoklas wymaga zrozumienia ich dynamiki i tego, jak wpływają na wrażenie użytkownika podczas interakcji z elementami strony internetowej. Aby uniknąć takich błędów, warto korzystać z narzędzi do podglądu i testowania stylów CSS, które pozwalają na bieżąco obserwować zmiany stylizacji na stronie w odpowiedzi na interakcję użytkownika. Opanowanie pseudoklas jak hover jest kluczowe dla tworzenia nowoczesnych i interaktywnych stron internetowych, które reagują na działania użytkowników w sposób przewidywalny i efektywny.

Pytanie 7

W PHP użyto funkcji is_float(). Które z wymienionych wywołań tej funkcji zwróci wartość true?

A. is_float('3,34')
B. is_float(3.34)
C. is_float(334)
D. is_float(NULL)
W przypadku odpowiedzi is_float('3,34') oraz is_float(334) obie są nieprawidłowe z powodów związanych z typem danych. Pierwsza z nich przekazuje wartość jako ciąg znaków (string) z przecinkiem, co w PHP nie jest interpretowane jako liczba zmiennoprzecinkowa. PHP nie rozumie przecinka jako separatora dziesiętnego, co prowadzi do błędu w rozpoznawaniu typu. Wartości numeryczne powinny być podawane w formie, która jest zgodna z oczekiwaną konwencją, co w większości języków programowania, w tym PHP, wymaga kropki jako separatora dziesiętnego. Tak więc, is_float('3,34') zwróci false, ponieważ argument nie jest typu float. W przypadku is_float(334), wartość ta jest liczbą całkowitą (integer), co również nie spełnia kryteriów funkcji is_float(). W kontekście programowania, bywa, że programiści mylą różne typy danych i ich konwersje, co prowadzi do nieprawidłowych wniosków na temat typów. Ostatnia odpowiedź, is_float(NULL), również zwraca false, ponieważ NULL nie jest typem danych numerycznych. Użycie NULL często stosowane jest do reprezentowania braku wartości, co jest odrębnym stanem od jakiejkolwiek liczby. Zrozumienie różnicy między typami danych oraz odpowiednie ich użycie jest fundamentem efektywnego programowania i uniknięcia wielu błędów w aplikacjach.

Pytanie 8

Który z znaczników ma na celu organizację struktury tekstu w HTML?

A. <u>
B. <h6>
C. <style>
D. <head>
Znacznik <h6> jest jednym z sześciu poziomów nagłówków w HTML, które służą do tworzenia hierarchii tekstu w dokumentach internetowych. Użycie nagłówków, takich jak <h1> do <h6>, jest zgodne z zasadami semantycznego HTML, co ma kluczowe znaczenie dla dostępności i SEO. Poprawne użycie tych znaczników pozwala wyszukiwarkom lepiej zrozumieć strukturę treści na stronie, a także ułatwia nawigację osobom korzystającym z technologii asystujących. Na przykład, <h1> powinien być używany dla głównego tytułu strony, a <h2>, <h3> itd. do podtytułów w hierarchii, gdzie <h6> jest najmniej istotnym nagłówkiem. Dzięki temu każdy nagłówek odzwierciedla poziom ważności treści, co zwiększa przejrzystość i użyteczność strony. Dobrą praktyką jest również ograniczenie liczby nagłówków na stronie, aby uniknąć zamieszania w strukturze. Właściwe stosowanie znaczników nagłówków jest istotne nie tylko z punktu widzenia organizacji treści, ale również wpływa na wydajność SEO, ponieważ wyszukiwarki preferują strony o klarownej hierarchii i dobrze zorganizowanej treści.

Pytanie 9

Jakiego wyniku można się spodziewać po wykonaniu zapytania na przedstawionej tabeli?

SELECTCOUNT(DISTINCT wykonawca)
FROM`muzyka`;
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzesław Niemen2005Przyjdź W Taka Noc itp.
2IkonaStan Borys2014
3AerolitCzesław Niemen2017Winylowa reedycja płyty "Aerolit"
4JourneyMikołaj Czechowski2013
A. 1
B. 3
C. 4
D. 0
Zapytanie SELECT COUNT(DISTINCT wykonawca) FROM muzyka; ma na celu zliczenie unikalnych wykonawców w tabeli muzyka. Kluczowym błędem jest brak zrozumienia działania funkcji DISTINCT która eliminuje duplikaty i pozwala na zliczenie jedynie różniących się wartości. Należy zatem odrzucić wszelkie odpowiedzi sugerujące liczbę większą niż 3 ponieważ w tabeli są obecne tylko trzy unikalne wartości w kolumnie wykonawca: Czesław Niemen Stan Borys oraz Mikołaj Czechowski. Często popełnianym błędem jest mylne założenie że każda unikalna wartość w konkretnej kolumnie powinna być liczona wielokrotnie co odbiega od celu analizy unikalności danych. W kontekście administracji bazami danych i analizy SQL zrozumienie funkcji DISTINCT jest kluczowe dla dokładności raportowania i optymalizacji wydajności zapytań. Wiedza o tym jak działa COUNT w połączeniu z DISTINCT pomaga w skutecznym projektowaniu zapytań w celu uzyskania dokładnych wyników. Zastosowanie tej wiedzy jest niezbędne w analizie danych biznesowych i przy tworzeniu precyzyjnych raportów dla różnych interesariuszy. Poprawne zrozumienie i implementacja tego mechanizmu wspiera efektywne zarządzanie danymi i podejmowanie decyzji opartych na faktach. Przygotowanie do egzaminu powinno obejmować praktyczne zastosowanie tych koncepcji co ułatwi ich intuicyjne wykorzystanie w sytuacjach zawodowych.

Pytanie 10

W PHP, przy wykonywaniu działań na bazie danych MySQL, aby zakończyć sesję z bazą, należy użyć

A. mysqli_exit();
B. mysqli_close();
C. mysqli_rollback();
D. mysqli_commit();
Podejście polegające na używaniu funkcji mysqli_exit() jest błędne, ponieważ taka funkcja nie istnieje w kontekście rozwiązań MySQL w PHP. Oprócz tego, wywołanie mysqli_commit() nie jest właściwą odpowiedzią, gdyż ta funkcja służy do potwierdzania transakcji, a nie do zamykania połączenia. Transakcje w MySQL są kluczowe dla zapewnienia integralności danych, ale ich zakończenie nie jest równoznaczne z zakończeniem połączenia. Z kolei funkcja mysqli_rollback() jest używana do wycofywania transakcji, co także nie dotyczy zamykania połączeń. Te nieprawidłowe odpowiedzi mogą wynikać z nieporozumienia dotyczącego ról poszczególnych funkcji w kontekście zarządzania transakcjami oraz połączeniami. Typowym błędem myślowym jest mylenie zamykania połączenia z zarządzaniem transakcjami; to dwa odrębne aspekty interakcji z bazą danych. Użytkownicy mogą błędnie zakładać, że każda funkcja związana z bazą danych ma na celu ich zamykanie, co prowadzi do niepoprawnych wniosków. Dlatego kluczowe jest zrozumienie różnicy pomiędzy zarządzaniem połączeniami a zarządzaniem transakcjami, co jest fundamentem efektywnej pracy z bazami danych w PHP.

Pytanie 11

Aby skorzystać z relacji w zapytaniu, trzeba użyć słowa kluczowego

A. UNION
B. JOIN
C. GROUP BY
D. IN
Słowo kluczowe JOIN jest niezbędne do łączenia danych z różnych tabel w bazach danych relacyjnych. Umożliwia ono wykonanie zapytań, które wykorzystują powiązania między tabelami na podstawie wspólnych kolumn. Istnieje kilka rodzajów JOIN, w tym INNER JOIN, LEFT JOIN, RIGHT JOIN oraz FULL JOIN, z których każdy ma swoje specyficzne zastosowanie. Na przykład, używając INNER JOIN, można uzyskać tylko te rekordy, które mają odpowiadające wartości w obu tabelach. To podejście jest zgodne z zasadami normalizacji baz danych, które zalecają przechowywanie danych w sposób zminimalizowany, a relacje między danymi powinny być zarządzane przy użyciu kluczy obcych. Praktyczne zastosowanie JOIN jest kluczowe w analizie danych, gdzie często niezbędne jest zestawienie informacji z różnych źródeł, co pozwala na uzyskanie pełniejszego obrazu analizowanego problemu. Wiedza o tym, jak prawidłowo stosować JOIN, jest fundamentem pracy z bazami danych, a jej znajomość jest również wymagana w standardach branżowych związanych z zarządzaniem danymi.

Pytanie 12

Aby strona WWW była responsywna, należy między innymi definiować

A. rozmiary obrazów wyłącznie w pikselach.
B. rozmiary obrazów w procentach.
C. jedynie czcionki bezszeryfowe.
D. układ strony wyłącznie za pomocą tabel.
Temat responsywności bardzo często jest mylony z pojedynczymi trikami typu „użyj takiej czcionki” albo „narysuj stronę w tabeli i będzie działać wszędzie”. Niestety to tak nie działa. Responsywność polega na tym, żeby układ i wszystkie elementy strony płynnie dopasowywały się do różnych szerokości i rozdzielczości ekranów: od smartfona, przez tablet, po duży monitor. Podstawą są elastyczne jednostki, media queries w CSS oraz przemyślana struktura HTML. Pomysł, że wystarczy stosować jedynie czcionki bezszeryfowe, nie ma związku z responsywnością jako taką. Wybór fontu to bardziej kwestia czytelności i estetyki interfejsu. Oczywiście fonty bezszeryfowe typu Roboto czy Open Sans często wyglądają lepiej na ekranach, ale sama zmiana kroju pisma nie spowoduje, że layout zacznie się dopasowywać do szerokości okna. To typowy błąd myślowy: mylenie „nowoczesnego wyglądu” z „responsywnym zachowaniem”. Strona może być wizualnie nowoczesna, a jednocześnie kompletnie nierespnsywna. Drugie nieporozumienie to projektowanie układu strony wyłącznie za pomocą tabel. Tabele nadają się do prezentowania danych tabelarycznych, ale od lat są uznawane za złą praktykę przy budowie layoutu. Trudno je elastycznie przełamywać na mniejszych ekranach, są mało semantyczne i nie współpracują dobrze z technologiami asystującymi. Standardy W3C i dobre praktyki front-endu mówią jasno: do układu używamy CSS (flexbox, grid), a nie tabel. Strona z layoutem na tabelach będzie raczej sztywna i problematyczna w utrzymaniu, niż responsywna. Kolejny częsty błąd to definiowanie rozmiarów obrazów wyłącznie w pikselach. Sztywne wartości typu width: 800px sprawiają, że obraz ma identyczną szerokość niezależnie od urządzenia. Na dużym ekranie może wyglądać okej, ale na telefonie taki obraz jest po prostu za szeroki, powoduje poziomy scroll albo wymusza skalowanie całej strony. Responsywność wymaga unikania takich sztywnych wartości i zastępowania ich jednostkami względnymi, jak procenty, vw czy elastyczne maksymalne szerokości. Gdy ktoś upiera się przy pikselach, zwykle wynika to z przyzwyczajenia z ery statycznych stron i braku zrozumienia, jak działa współczesny CSS. Kluczowe jest myślenie w kategoriach „jak element ma się zachowywać przy różnych szerokościach”, a nie „ile dokładnie pikseli ma mieć zawsze i wszędzie”.

Pytanie 13

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

A. do...while
B. while
C. foreach
D. for
Prawidłowa odpowiedź to 'foreach', ponieważ jest to specjalna pętla w języku PHP, która została stworzona z myślą o iteracji po elementach tablicy. Umożliwia ona wykonanie operacji na każdym elemencie tablicy bez potrzeby manualnego zarządzania indeksami, co jest szczególnie przydatne w sytuacjach, gdy nie znamy z góry liczby elementów w tablicy. Dzięki 'foreach' iteracja wygląda czytelnie i zwięźle, co znacząco poprawia czytelność kodu. Przykład zastosowania: jeśli mamy tablicę z nazwiskami, możemy użyć pętli 'foreach', aby wypisać każde nazwisko na ekranie. Dodatkowo, 'foreach' jest zgodne z najlepszymi praktykami programistycznymi, ponieważ ogranicza ryzyko wystąpienia błędów związanych z błędnymi indeksami i ułatwia utrzymanie kodu. Warto również zauważyć, że 'foreach' działa zarówno na tablicach numerycznych, jak i asocjacyjnych, co czyni ją elastycznym narzędziem dla programistów.

Pytanie 14

Na przedstawionym obrazie widać wynik formatowania przy użyciu styli CSS oraz kod HTML, który go generuje. Przy założeniu, że marginesy wewnętrzne wynoszą 50 px, a zewnętrzne 20 px, jak wygląda styl CSS dla tego obrazu?

Ilustracja do pytania
A. Rys. A
B. Rys. B
C. Rys. D
D. Rys. C
Błędne odpowiedzi wynikają głównie z nieprawidłowego przypisania wartości marginesów i marginesów wewnętrznych w stylach CSS. W przypadku niepoprawnych stylów, takich jak w Rys. A i D, zastosowano linię przerywaną, co nie spełnia warunków pytania, które wymaga zastosowania linii ciągłej. Solidna linia graniczna jest bardziej preferowana w projektach profesjonalnych, ponieważ dodaje wyrazistości i estetyki. Warianty, gdzie nie zachowano odpowiednich wartości marginesów i marginesów wewnętrznych, mogą prowadzić do niezamierzonego zachowania w układzie strony, takich jak zły odstęp między elementami, co negatywnie wpływa na użyteczność i estetykę interfejsu użytkownika. Niewłaściwe ustawienie tych wartości często wynika z niedostatecznego zrozumienia modelu pudełkowego w CSS, który jest fundamentem w projektowaniu rozmieszczenia elementów na stronie. Model pudełkowy umożliwia dokładne określenie, jak elementy są wyświetlane, co jest niezbędne do tworzenia responsywnych i estetycznie przyjemnych stron internetowych. Zrozumienie i prawidłowe zastosowanie marginesów i marginesów wewnętrznych jest kluczowe dla osiągnięcia profesjonalnych wyników w projekcie.

Pytanie 15

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

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

Pytanie 16

Przedstawione zapytanie SQL przydziela uprawnienie SELECT

GRANT SELECT ON hurtownia.*
TO 'sprzedawca'@'localhost';
A. dla użytkownika root na serwerze sprzedawca
B. dla użytkownika root na serwerze localhost
C. do wszystkich tabel w bazie hurtownia
D. do wszystkich kolumn w tabeli hurtownia
Polecenie GRANT SELECT ON hurtownia.* TO 'sprzedawca'@'localhost'; nie przyznaje praw do użytkownika root ani do serwera localhost, co wyklucza te możliwości. W SQL, użytkownik root zazwyczaj posiada pełne uprawnienia administracyjne, a przypisanie mu dodatkowych specyficznych praw nie jest konieczne ani typowe w kontekście tego typu polecenia. Z kolei wskazanie serwera localhost w tym kontekście dotyczy tylko ograniczenia dostępu użytkownika do tego konkretnego hosta, a nie nadania mu praw selektywnych. Błędne jest również stwierdzenie, że polecenie to nadaje prawa do wszystkich pól w tabeli hurtownia. W rzeczywistości, wyrażenie hurtownia.* w kontekście GRANT odnosi się do wszystkich tabel, a nie do pól, które w SQL nazywane są kolumnami. Właściwe przypisanie uprawnień w systemach bazodanowych wymaga zrozumienia kontekstu, w którym dane polecenie jest stosowane, oraz znajomości specyfiki składni SQL. Wiele błędów wynika z niepełnego zrozumienia różnicy między tabelami a kolumnami oraz ról poszczególnych użytkowników w systemie zarządzania bazą danych. Praktyka i ciągłe doskonalenie wiedzy w zakresie zarządzania bazami danych jest kluczowe dla unikania takich pomyłek oraz dla utrzymania bezpieczeństwa i spójności danych w organizacjach.

Pytanie 17

Poniżej przedstawiono fragment kodu języka HTML. Jest on definicją listy:

<ol>
  <li>punkt 1</li>    <li>punkt 2</li>
  <ul>
    <li>podpunkt1</li>
    <ul>    <li>podpunkt2</li>  <li>podpunkt3</li>  </ul>
  </ul>
  <li>punkt3</li>
</ol>

A.

  1. punkt 1
  2. punkt 2
    • podpunkt1
    • podpunkt2
    • podpunkt3
  3. punkt3

B.

  1. punkt 1
  2. punkt 2
  3. punkt3
    • podpunkt1
    • podpunkt2
    • podpunkt3

C.

  1. punkt 1
  2. punkt 2
    • podpunkt1
      • podpunkt2
      • podpunkt3
  3. punkt3

D.

  • punkt 1
  • punkt 2
    1. podpunkt1
      • podpunkt2
      • podpunkt3
  • punkt3
A. C.
B. A.
C. B.
D. D.
Gratulacje, poprawnie zinterpretowałeś fragment kodu HTML przedstawiający definicję listy. W tym kodzie widzimy listę numerowaną (<ol>), która zawiera trzy elementy listy (<li>). Szczególnością prezentowanej struktury jest fakt, że drugi element listy zawiera zagnieżdżoną listę nieuporządkowaną (<ul>) z trzema podpunktami. Zgodność odpowiedzi C z przedstawionym kodem wynika z faktu, że punkt 2 prezentuje podpunkty oznaczone kropkami, co jest charakterystyczne dla listy nieuporządkowanej. Tego typu struktura jest często stosowana na stronach internetowych do prezentacji hierarchii informacji, na przykład menu nawigacyjnego czy spisu treści. Pamiętaj, że umiejętność czytania i zrozumienia kodu HTML jest kluczowa dla każdego, kto planuje pracować z technologiami webowymi i to pytanie to doskonały przykład na to, jak te umiejętności mogą być sprawdzane.

Pytanie 18

Aby na stronie internetowej wyświetlić logo, którego tło jest przezroczyste, należy zastosować format

A. PNG
B. BMP
C. JPG
D. CDR
W tym zadaniu kluczowe jest zrozumienie, jakie właściwości mają różne formaty graficzne i do czego są projektowane. Wiele osób automatycznie wybiera JPG, bo „to przecież najpopularniejszy format obrazków w internecie”. I faktycznie, JPEG jest świetny do zdjęć, gdzie liczy się mocna kompresja i akceptowalna utrata jakości. Natomiast JPG nie obsługuje przezroczystości z prawdziwego zdarzenia – nie ma kanału alfa. Można co najwyżej kombinować z kolorem maskującym, ale w praktyce na stronach WWW kończy się to brzydkimi obwódkami i artefaktami na krawędziach logo. Dlatego stosowanie JPG do logo z przezroczystym tłem jest po prostu sprzeczne z dobrymi praktykami front-endu. Inny typowy trop to wybór formatu CDR, bo kojarzy się on z logotypami, poligrafią i projektowaniem. CDR to jednak natywny, wektorowy format programu CorelDRAW, przeznaczony do edycji, a nie do bezpośredniego wyświetlania w przeglądarce. Żadna standardowa przeglądarka nie wczyta pliku CDR jako obrazka w `<img>`. Pliki tego typu trzeba najpierw wyeksportować do formatu webowego, np. PNG, JPG albo SVG. Myślenie w stylu „logo jest z Corela, to dam CDR na stronę” wynika raczej z pomieszania formatu roboczego z formatem docelowym. Z kolei BMP to bardzo prosty, stary format map bitowych, który w praktyce w ogóle nie jest używany w profesjonalnym webdesignie. Co prawda można w nim zapisać informację o kolorach, ale nie oferuje on efektywnej kompresji, więc pliki są ogromne, a obsługa przezroczystości jest w praktyce problematyczna i nieprzystosowana do nowoczesnych wymagań stron WWW. Ładowanie ciężkiego BMP z logo na stronę tylko spowolni serwis i będzie sprzeczne z zasadami optymalizacji wydajności (performance, Core Web Vitals itd.). Dobra praktyka jest taka: dla logo z przezroczystym tłem wybieramy format, który zapewnia kanał alfa, bezstratną jakość i powszechną obsługę przez przeglądarki. W tym zestawie odpowiedzi spełnia to tylko PNG. Błędne odpowiedzi wynikają najczęściej z kierowania się popularnością formatu (JPG), skojarzeniem z narzędziem graficznym (CDR) albo z ignorowania wagi plików i standardów webowych (BMP). W projektowaniu stron warto zawsze myśleć o tym, jak przeglądarka faktycznie zinterpretuje dany format i czy spełni on wymagania: jakość, przezroczystość, rozmiar i kompatybilność.

Pytanie 19

Wykorzystanie definicji stylu CSS spowoduje, że nagłówki drugiego poziomu będą się wyświetlać

h2 {
    text-decoration: overline;
    font-style: italic;
    line-height: 60px;
}
A. czcionką standardową, z linią nad tekstem, wysokość wiersza wynosi 60 px
B. czcionką kursywną, z linią nad tekstem, wysokość wiersza wynosi 60 px
C. czcionką kursywną, z linią pod tekstem, wysokość wiersza wynosi 60 px
D. czcionką standardową, z linią pod tekstem, odległość między znakami wynosi 60 px
Odpowiedź numer 2 jest poprawna, ponieważ definicja stylu CSS zawiera właściwości, które dokładnie odpowiadają tej opcji. Właściwość font-style: italic sprawia, że tekst nagłówka będzie zapisany czcionką pochyloną, co jest często stosowane w celu nadania tekstowi bardziej dynamicznego i estetycznego wyglądu. Jest to szczególnie przydatne w projektowaniu stron internetowych, gdzie wyróżnienie nagłówków ma kluczowe znaczenie dla czytelności i atrakcyjności wizualnej. text-decoration: overline dodaje linię nad tekstem, co jest mniej powszechnym, ale interesującym sposobem na wyróżnienie tekstu. Może być używane w nowoczesnych projektach, aby nadać stronie unikalny charakter. Wysokość wiersza line-height: 60px zapewnia odpowiednią przestrzeń między wierszami, co zwiększa czytelność, szczególnie przy większych czcionkach. Taki sposób formatowania jest zgodny ze standardami projektowania UX/UI, które kładą nacisk na estetykę i funkcjonalność. Dlatego zrozumienie tych właściwości i ich zastosowanie jest kluczowe dla każdego projektanta stron internetowych.

Pytanie 20

Fragment kodu HTML z JavaScript spowoduje, że po kliknięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz1.png zastąpi obraz2.png
B. obraz2.png zastąpi obraz1.png
C. obraz2.png zostanie schowany
D. obraz1.png zostanie schowany
Poprawna odpowiedź dotyczy ukrycia obrazu obraz2.png poprzez jego identyfikację za pomocą unikalnego atrybutu id. W kodzie HTML każdy element może być zidentyfikowany przez atrybut id, co pozwala na bezpośrednią manipulację jego własnościami w JavaScript. Funkcja document.getElementById służy do wyszukiwania elementu o podanym id w strukturze DOM dokumentu. Następnie, używając stylowania CSS poprzez właściwość style, możliwe jest zmienienie wartości display na 'none', co skutkuje ukryciem elementu w przeglądarce. Taka technika jest często wykorzystywana w interaktywnych aplikacjach webowych, gdzie użytkownik musi mieć możliwość dynamicznego manipulowania elementami interfejsu. Praktyka ta jest zgodna ze standardami W3C i pozwala na tworzenie responsywnych, przyjaznych użytkownikowi aplikacji. Dobrym przykładem zastosowania jest tworzenie galeria obrazów, gdzie tylko wybrane zdjęcia są wyświetlane w danym momencie. Taka funkcjonalność sprzyja również poprawie czytelności strony, ponieważ użytkownik może ukrywać i odkrywać treści według własnych potrzeb. Zrozumienie tego mechanizmu jest kluczowe dla każdego, kto chce budować nowoczesne strony internetowe z użyciem HTML, CSS i JavaScript.

Pytanie 21

Semantyczny znacznik sekcji języka HTML 5 przeznaczony do umieszczenia stopki strony WWW to

A. <footer>
B. <aside> 
C. <figcaption>
D. <header>
Poprawna odpowiedź to <footer>, bo właśnie ten znacznik w HTML5 jest semantycznie przeznaczony na stopkę strony lub stopkę sekcji. W specyfikacji HTML5 wyraźnie podkreślono, że <footer> służy do umieszczania informacji końcowych: praw autorskich (copyright), linków do polityki prywatności, kontaktu, autorów, krótkich podsumowań czy nawigacji pomocniczej. Moim zdaniem warto traktować <footer> jak miejsce na „meta‑informacje” o stronie albo o danej części dokumentu. Co ważne, <footer> nie musi występować tylko raz – możesz mieć stopkę całej strony w obrębie <body>, ale też osobne stopki np. dla artykułu (<article>) czy sekcji (<section>). To jest dobra praktyka, bo poprawia strukturę dokumentu i czytelność kodu. W praktyce wygląda to np. tak: <footer><p>© 2026 Firma XYZ</p><nav><a href="/regulamin">Regulamin</a> | <a href="/kontakt">Kontakt</a></nav></footer>. Czytniki ekranowe i roboty wyszukiwarek lepiej rozumieją wtedy, że ta część strony to zakończenie i informacje dodatkowe. To się przekłada na lepszą dostępność (WCAG) i trochę sensowniejsze SEO. Z mojego doświadczenia warto pilnować, żeby nie wrzucać do <footer> całej reszty layoutu, tylko właśnie elementy typowo „stopkowe”. Dobrą praktyką jest też trzymanie się spójnej struktury na wszystkich podstronach, żeby użytkownik intuicyjnie wiedział, że w stopce znajdzie np. link do pliku RODO albo dane firmy. HTML5 mocno stawia na semantykę, więc używanie <footer> zamiast jakiegoś bezsensownego <div id="stopka"> to po prostu nowocześniejsze i zgodne ze standardami podejście.

Pytanie 22

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:active { background-color: Pink; }
B. tr { background-color: Pink; }
C. td, th { background-color: Pink; }
D. tr:hover { background-color: Pink; }
W tym zadaniu chodzi o zrozumienie, jak działają selektory CSS oraz pseudo-klasy odpowiedzialne za interakcję z użytkownikiem. Jeśli efekt ma pojawiać się tylko wtedy, gdy użytkownik najedzie myszką na wiersz tabeli, to zwykłe ustawienie background-color bez pseudo-klasy nie spełni tego warunku. Deklaracja tr { background-color: Pink; } oznaczałaby, że wszystkie wiersze tabeli są cały czas różowe, niezależnie od tego, czy ktoś na nie najedzie, czy nie. To jest po prostu styl statyczny, bez żadnej reakcji na zdarzenia. Podobnie zapis td, th { background-color: Pink; } ustawia tło dla wszystkich komórek tabeli (zarówno nagłówkowych th, jak i zwykłych td) w sposób stały. Moim zdaniem to dość częsty błąd: ktoś kojarzy tabelę z komórkami i intuicyjnie styluje td/th, ale zapomina, że w pytaniu chodzi o efekt dynamiczny „po najechaniu”. W rezultacie otrzymujemy tabelę pokolorowaną na stałe, bez jakiejkolwiek interakcji, co jest sprzeczne z założeniem zadania i z typowym zachowaniem tabel w nowoczesnych interfejsach. Ciekawsza jest kwestia selektora tr:active { background-color: Pink; }. Pseudo-klasa :active oznacza element w momencie „aktywacji”, czyli najczęściej w chwili klikania (przytrzymania przycisku myszy). Efekt trwa bardzo krótko, tylko w czasie samego kliknięcia. To zupełnie inny scenariusz niż wygodne podświetlenie wiersza, które ma się utrzymywać, dopóki kursor jest nad elementem. Użycie :active prowadzi do efektu, który miga na ułamek sekundy i z punktu widzenia ergonomii jest praktycznie bezużyteczny w kontekście podświetlania wierszy. Typowy błąd myślowy przy takich pytaniach polega na myleniu różnych pseudo-klas: :hover, :active, :focus. W webdevie przyjęło się, że :hover służy do reakcji na najechanie myszką, :active do krótkiej reakcji na kliknięcie, a :focus do zaznaczenia elementu, który ma aktualnie fokus klawiatury. Standardy CSS i dobre praktyki projektowania interfejsów jasno wskazują, że do efektu „podświetl wiersz, gdy nad nim jestem” należy użyć właśnie :hover na odpowiednim elemencie, czyli w tym przypadku tr. Wszystkie pozostałe odpowiedzi ignorują tę zasadę albo stosują nie tę pseudo-klasę, co trzeba, przez co nie odzwierciedlają poprawnie zachowania pokazanego w materiale wideo.

Pytanie 23

Kaskadowe arkusze stylów są tworzone w celu

A. dodania na stronie internetowej treści tekstowych
B. ulepszenia nawigacji dla użytkownika
C. zwiększenia szybkości ładowania grafiki na stronie internetowej
D. określenia metod formatowania elementów na stronie internetowej
Kaskadowe arkusze stylów (CSS) są kluczowym elementem w projektowaniu stron internetowych, ponieważ umożliwiają one definiowanie sposobu formatowania i prezentacji elementów na stronie. CSS pozwala na oddzielenie treści od formy, co oznacza, że programiści mogą skupić się na tworzeniu struktury dokumentu HTML, podczas gdy stylistyka i układ są kontrolowane przez arkusze stylów. Przykładem zastosowania CSS jest stylizacja nagłówków, paragrafów czy list, gdzie można dostosować czcionki, kolory, marginesy oraz inne właściwości wizualne. Dzięki użyciu selektorów i reguł CSS, twórcy stron mają pełną kontrolę nad tym, jak każdy element będzie wyglądał, co pozwala na tworzenie responsywnych i estetycznych interfejsów. Ponadto, CSS obsługuje kaskadowość, co oznacza, że reguły mogą być dziedziczone i nadpisywane, co zwiększa elastyczność i wydajność procesu stylizacji. Warto również zwrócić uwagę na standardy W3C, które definiują najlepsze praktyki i zalecenia dotyczące użycia CSS, co przyczynia się do poprawy dostępności i zgodności stron internetowych.

Pytanie 24

Który z akapitów wykorzystuje opisaną właściwość stylu CSS?

Ilustracja do pytania
A. A
B. B
C. C
D. D
Zrozumienie właściwości border-radius w CSS jest kluczowe dla projektowania nowoczesnych i estetycznych interfejsów użytkownika. Błędne identyfikowanie miejsca, w którym zastosowano tę właściwość, może wynikać z braku świadomości, jak zaokrąglone narożniki wpływają na wygląd elementów. W przypadku odpowiedzi A, C i D, elementy te nie wykazują żadnego stopnia zaokrąglenia lub ich stylizacja różni się od wskazanej wartości 20%. Elementy bez zaokrąglonych narożników mają prosty, kanciasty wygląd, co może być mniej atrakcyjne wizualnie i nie spełniać wymogów nowoczesnego designu. Odpowiedź C, choć posiada ramkę, nie odpowiada wyglądowi nadanemu przez border-radius, ponieważ ma krawędzie proste. Element D z kolei ma grubszą ramkę, co również wskazuje na inną stylizację. Częstym błędem jest skupianie się na innych właściwościach, takich jak typ ramki, zamiast koncentrować się na zaokrągleniu narożników. Aby uniknąć takich pomyłek, warto ćwiczyć rozpoznawanie efektów poszczególnych właściwości CSS i ich wpływu na wizualną percepcję elementów. Właściwe stosowanie CSS pozwala na tworzenie bardziej przyjaznych i estetycznych projektów, które lepiej odpowiadają oczekiwaniom użytkowników i standardom branżowym.

Pytanie 25

W języku CSS zdefiniowano styl. Sformatowana tym stylem sekcja będzie zawierała obramowanie o szerokości:

div { border: solid 2px blue;
       margin: 20px;}
A. 2 px oraz marginesy zewnętrzne tego obramowania
B. 20 px oraz marginesy wewnętrzne tego obramowania
C. 20 px oraz marginesy zewnętrzne tego obramowania
D. 2 px oraz marginesy wewnętrzne tego obramowania
Wszystkie niepoprawne odpowiedzi zawierają błędne informacje na temat właściwości marginesów oraz ich lokalizacji w stosunku do obramowania. Pierwsza z tych odpowiedzi sugeruje, że sekcja ma marginesy wewnętrzne, co jest nieprecyzyjne. W CSS marginesy wewnętrzne definiuje się za pomocą właściwości 'padding', a nie 'margin'. Przy użyciu 'margin' określamy przestrzeń zewnętrzną, co oznacza, że nie ma ona wpływu na wewnętrzne odstępy między elementami w danym obiekcie. Kolejna odpowiedź wskazuje, że marginesy mają wartość 20 pikseli wewnątrz obramowania. To również jest błędne, ponieważ marginesy nie mogą być wewnętrzne w kontekście stosowania 'margin'; mają one zastosowanie wyłącznie do przestrzeni zewnętrznej. Na koniec, ostatnia niepoprawna odpowiedź podaje, że marginesy są o wartości 20 pikseli na zewnątrz obramowania, co na pierwszy rzut oka może wydawać się prawidłowe, jednak nie uwzględnia faktu, że obramowanie ma 2 piksele szerokości, a marginesy w tym przypadku mają znaczenie tylko wobec zewnętrznej odległości do innych elementów, a nie wewnętrznej struktury. Warto uzmysłowić sobie znaczenie precyzyjnego rozróżnienia między 'margin' a 'padding', ponieważ ma to ogromny wpływ na ostateczny układ i prezentację strony internetowej.

Pytanie 26

Aby usunąć nienaturalne wygładzanie ukośnych krawędzi w grafice rastrowej, czyli tak zwane schodkowanie, konieczne jest wykorzystanie filtru

A. gradientu
B. szumu
C. pikselizacji
D. antyaliasingu
Antyaliasing to technika stosowana w grafice rastrowej, która ma na celu wygładzenie krawędzi obiektów, co z kolei redukuje efekt schodkowania. Schodkowanie, zwane również jagged edges, to zjawisko, w którym krawędzie linii wyglądają na poszarpane i nienaturalne, co jest szczególnie zauważalne przy nachylonych liniach lub krzywych. Antyaliasing działa na zasadzie wygładzania krawędzi poprzez mieszanie kolorów pikseli na granicy obiektu z kolorami pikseli tła, co tworzy iluzję płynności. Przykładem zastosowania antyaliasingu jest grafika komputerowa w grach, gdzie zapewnia on bardziej realistyczny obraz, a także przy renderowaniu grafik wektorowych do rastrowych. W standardach branżowych, takich jak OpenGL i DirectX, zastosowanie antyaliasingu jest zalecane, aby poprawić jakość wizualną i doświadczenia użytkowników. Zastosowanie technik takich jak MSAA (Multisample Anti-Aliasing) lub FXAA (Fast Approximate Anti-Aliasing) jest powszechną praktyką w nowoczesnych aplikacjach graficznych.

Pytanie 27

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 OR lekarz_id = 6;
B. SELECT imie, nazwisko WHERE wiek < 18 AND 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 28

W tabeli klienci znajduje się pole status, które może przyjmować wartości: Zwykły, Złoty, Platynowy. Z uwagi na to, że dane klientów o statusie Platynowy są przetwarzane najczęściej, konieczne jest utworzenie wirtualnej tabeli (widoku), która będzie zawierała wyłącznie te informacje. W tym celu można użyć kwerendy

A. CREATE VIEW KlienciPlatyna AS klient WHERE status = "Platynowy"
B. CREATE VIEW KlienciPlatyna AS SELECT * FROM klienci WHERE status = "Platynowy"
C. CREATE VIEW KlienciPlatyna FROM klienci WHERE status = "Platynowy"
D. CREATE VIEW KlienciPlatyna AS SELECT status FROM klienci WHERE "Platynowy"
Wszystkie inne odpowiedzi zawierają błędy w składni SQL lub koncepcjach dotyczących tworzenia widoków. Odpowiedź pierwsza, sugerując 'CREATE VIEW KlienciPlatyna AS klient WHERE status = "Platynowy";', jest niepoprawna, ponieważ nie podaje poprawnej struktury zapytania. W SQL nie używa się słowa kluczowego 'client' w takim kontekście. Odpowiedź druga, 'CREATE VIEW KlienciPlatyna FROM klienci WHERE status = "Platynowy";', wykorzystuje słowo kluczowe 'FROM', które nie jest obsługiwane w definicji widoków; zamiast tego powinno się używać 'AS SELECT'. Odpowiedź trzecia, 'CREATE VIEW KlienciPlatyna AS SELECT status FROM klienci WHERE "Platynowy";', także nie jest poprawna, ponieważ nie zawiera pełnej definicji warunku filtracji, a zamiast tego próbuję zastosować wartość bez kontekstu, co prowadzi do błędnych wyników. W SQL każdy element zapytania ma swoje miejsce i funkcje, a niepoprawna konstrukcja może skutkować błędami lub nieprzewidywalnymi rezultatami. W praktyce ważne jest, aby zrozumieć, jak budować zapytania w sposób zgodny z gramatyką języka SQL i jak optymalizować je dla lepszej wydajności. Prawidłowe zrozumienie struktury zapytań jest kluczowe w pracy z bazami danych.

Pytanie 29

Jakie będzie działanie podanych instrukcji JavaScript?

var elementy = document.getElementsByClassName("styl1");
  for(var i = 0; i < elementy.length; i++)
    elementy[i].style.fontWeight = "bolder";
A. Jedynie dla elementu o id równym styl1 będzie przypisany styl pogrubienia tekstu na bolder
B. Dla wszystkich elementów na stronie zostanie zastosowany styl pogrubienia tekstu na bolder
C. Dla wszystkich elementów przypisanych do klasy styl1 zostanie nadany styl pogrubienia tekstu bolder
D. Wyłącznie dla pierwszego elementu przypisanego do klasy styl1 zostanie nadany styl pogrubienia tekstu bolder
Instrukcje JavaScript w pytaniu wykorzystują metodę getElementsByClassName aby pobrać kolekcję wszystkich elementów na stronie które posiadają przypisaną klasę styl1. Metoda ta zwraca obiekt typu HTMLCollection który przypomina tablicę i zawiera odniesienia do elementów DOM posiadających określoną klasę. Następnie za pomocą pętli for przechodzimy przez każdy z tych elementów i zmieniamy ich styl na bolder przypisując nową wartość do właściwości style.fontWeight. Dzięki temu każdy element w kolekcji zostaje zmodyfikowany i wyświetlany z pogrubioną czcionką. Takie podejście jest zgodne z dobrymi praktykami w zakresie manipulacji DOM w JavaScript gdyż jest to sposób efektywny i bezpośredni. Użycie klas do grupowania elementów HTML pozwala na jednoczesne stosowanie stylów i operacji na grupach elementów co jest kluczowe w dynamicznym modelu tworzenia stron internetowych. Warto zwrócić uwagę na fakt że nazwy klas są czułe na wielkość liter co oznacza że styl1 i Styl1 byłyby traktowane jako różne klasy.

Pytanie 30

Jakie uprawnienia będzie miał użytkownik jan po wykonaniu poniższych poleceń na bazie danych?

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie mógł eliminować rekordy z tabeli klienci.
B. Będzie mógł dodawać rekordy do tabeli klienci.
C. Będzie mógł przeszukiwać dane w tabeli klienci.
D. Będzie mógł zmieniać strukturę tabeli klienci.
Odpowiedź "Będzie mógł zmienić strukturę tabeli klienci" jest prawidłowa, ponieważ użytkownik jan zyskał pełne uprawnienia do tabeli klienci za pomocą polecenia GRANT ALL PRIVILEGES. Oznacza to, że posiada on wszystkie dostępne uprawnienia w tym zakresie, w tym możliwość modyfikacji struktury tabeli, co obejmuje dodawanie lub usuwanie kolumn, zmienianie typów danych oraz wprowadzanie modyfikacji do indeksów. Jednakże, zastosowane polecenie REVOKE powoduje odebranie wybranych uprawnień, tj. SELECT, INSERT, UPDATE oraz DELETE. W związku z tym, mimo że jan może zmieniać strukturę tabeli, nie ma już możliwości wprowadzania, usuwania ani przeglądania danych. Praktycznie, na przykład, jeżeli jan chciałby dodać nową kolumnę do tabeli klienci, ma taką możliwość, jednak nie będzie mógł dodać nowych rekordów ani ich edytować. To podejście jest zgodne z najlepszymi praktykami zarządzania uprawnieniami w systemach baz danych, gdzie ważne jest precyzyjne określenie, jakie operacje mogą być realizowane przez różnych użytkowników.

Pytanie 31

Aby przedstawić dane w bazach danych, które spełniają określone kryteria, należy stworzyć

A. relację
B. formularz
C. makropolecenie
D. raport
Wybór relacji, formularza lub makropolecenia jako odpowiedzi na pytanie o prezentację danych spełniających określone warunki jest nieprawidłowy z kilku powodów. Relacja w bazach danych odnosi się do struktury danych, która opisuje związki między tabelami, a nie do sposobu ich prezentacji. Choć relacje są fundamentem, na którym opiera się przechowywanie i organizowanie danych, same w sobie nie oferują narzędzia do wyodrębniania czy przedstawiania informacji w przystępny sposób. Formularze z kolei są wykorzystywane głównie do wprowadzania danych do systemu, pozwalając użytkownikom na interakcję z bazą, jednak nie służą one do analizy ani prezentacji danych w formie zrozumiałej dla odbiorcy. Makropolecenia, choć mogą automatyzować pewne procesy związane z przetwarzaniem danych, również nie spełniają funkcji raportowania, ponieważ są narzędziem do wykonywania powtarzalnych operacji. Wybierając te odpowiedzi, można wpaść w pułapkę myślową, w której myli się funkcje narzędzi bazodanowych, co może prowadzić do błędnych decyzji w zakresie projektowania systemów informatycznych. Każde z tych narzędzi pełni swoją specyficzną rolę w ekosystemie baz danych, lecz tylko raporty są zaprojektowane z myślą o efektywnej prezentacji danych zgodnie z określonymi kryteriami.

Pytanie 32

Testy związane ze skalowalnością aplikacji mają na celu zweryfikowanie, czy program

A. posiada odpowiednie funkcje
B. jest właściwie opisany w dokumentacji
C. jest w stanie funkcjonować przy zaplanowanym i większym obciążeniu
D. jest chroniony przed nieautoryzowanymi działaniami, np. dzieleniem przez zero
Odpowiedź mówiąca o tym, że aplikacja potrafi działać przy zakładanym i większym obciążeniu, jest kluczowa, gdyż skalowalność oprogramowania odnosi się do zdolności systemu do efektywnego działania w warunkach wzrastającego zapotrzebowania na zasoby. Oznacza to, że aplikacja powinna być w stanie obsługiwać rosnącą liczbę użytkowników, transakcji lub innych operacji bez degradacji wydajności. Przykładem może być system e-commerce, który w okresie wyprzedaży musi obsługiwać znacznie więcej użytkowników niż w normalnych okolicznościach. Aby zapewnić skalowalność, programiści mogą wykorzystywać różne architektury, takie jak mikroserwisy, które pozwalają na niezależne skalowanie poszczególnych komponentów aplikacji. Dobre praktyki obejmują również wykorzystanie chmurowych rozwiązań, takich jak AWS czy Azure, które oferują elastyczność i automatyczne skalowanie w odpowiedzi na wzrost obciążenia. Warto także wdrażać mechanizmy monitorowania i optymalizacji wydajności, aby na bieżąco dostosowywać zasoby do potrzeb użytkowników.

Pytanie 33

bool gotowe=true;
cout<<gotowe;
Jakie będzie wyjście w wyniku wykonania podanych poleceń?

A. 1
B. Nie
C. Tak
D. 0
Po wykonaniu poleceń na ekranie zobaczysz '1'. Zmienna 'gotowe' jest ustawiona jako typ bool i ma wartość true. W C++ typ bool może mieć dwie wartości: true lub false. Kiedy zmienną bool wyświetlamy przy użyciu cout, to 'true' pokazuje się jako '1', a 'false' jako '0'. To jest zgodne z zasadami C++, które mówią, że wartości logiczne są traktowane jako liczby całkowite. Z mojego doświadczenia, zrozumienie tego, jak C++ interpretuje różne typy danych, jest naprawdę istotne w programowaniu, bo pomaga lepiej ogarnąć działanie kodu, a także poprawić algorytmy. Na przykład, jeśli programista ma świadomość, że true to 1, może wykorzystać tę wiedzę przy operacjach na liczbach lub podczas tworzenia warunków. To fajnie działa, zwłaszcza gdy zaczynamy tworzyć bardziej złożone struktury danych.

Pytanie 34

W języku JavaScript przedstawiona poniżej definicja jest definicją
var imiona=["Anna", "Jakub", "Iwona", "Krzysztof"];

A. kolekcji.
B. obiektu.
C. tablicy.
D. klasy.
Zdefiniowanie zmiennej jako var imiona=["Anna", "Jakub", "Iwona", "Krzysztof"]; może prowadzić do nieporozumień, jeśli nie zrozumiemy, czym dokładnie jest tablica w kontekście JavaScriptu. Wybierając klasę jako odpowiedź, można pomylić koncepcje obiektowości w JavaScript, gdzie klasy są używane do tworzenia obiektów z określonymi właściwościami i metodami. Klasa jest strukturą, która opisuje typ obiektu, ale nie jest tym, co zostało zaprezentowane w tym przykładzie. Innym błędnym podejściem jest wskazanie obiektu jako odpowiedzi. Obiekt w JavaScript jest zbiorem par klucz-wartość, co różni się od tablicy, która jest zorganizowana w formie sięgającej za pomocą indeksów, a nie kluczy. W dodatku, odpowiedź mówiąca o kolekcji może wywołać zamieszanie z pojęciem tablicy, podczas gdy kolekcje w JavaScript obejmują bardziej zaawansowane struktury, takie jak Set czy Map, które mają różne zastosowania i właściwości. Typowe błędy myślowe prowadzące do takich odpowiedzi wynikają z nieprecyzyjnego rozumienia podstawowych typów danych oraz ich zastosowania w JavaScript. Dlatego kluczowe jest, aby przed podjęciem decyzji zrozumieć, jak różne struktury danych funkcjonują i jakie mają zastosowania w praktycznych scenariuszach programistycznych.

Pytanie 35

W języku HTML, aby uzyskać następujący efekt formatowania, należy zapisać kod:

pogrubiony pochylony lub w górnym indeksie

A. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
B. <b>pogrubiony <i>pochylony</i></b> lub w <sub>górnym indeksie</sub>
C. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
D. <i>pogrubiony </i><b>pochylony</b> lub w <sub>górnym indeksie</sub>
Poprawna odpowiedź to: <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>. Ta odpowiedź prawidłowo wykorzystuje trzy kluczowe tagi HTML do formatowania tekstu: <b>, <i> i <sup>. Tag <b> służy do wyświetlania tekstu w pogrubionym formacie, co pozwala na podkreślenie istotnych fragmentów tekstu. Przykładem może być wyróżnienie tytułów, nagłówków lub kluczowych punktów w treści. Tag <i> jest używany do wyświetlania tekstu w formacie kursywy, co jest często używane do wyróżnienia tytułów książek, filmów, cytowań lub podkreślenia ważnych punktów. Tag <sup> jest używany do wyświetlania napisów jako tekst górnego indeksu, co jest często używane do wskazania numerów stron, przypisów, lub dla oznaczeń matematycznych lub naukowych. Pamiętaj, że prawidłowe użycie tych tagów jest kluczowe dla tworzenia jasnej, czytelnej i profesjonalnie wyglądającej strony internetowej.

Pytanie 36

Normalizacja tabel to proces, którego celem jest

A. wizualizacja bazy
B. dodanie danych do bazy
C. wyłącznie stworzenie tabel oraz relacji w bazie
D. sprawdzenie i optymalizację bazy danych
Normalizacja tabel jest kluczowym procesem w projektowaniu baz danych, który ma na celu usprawnienie struktury danych poprzez eliminację redundancji i zapewnienie integralności danych. Proces ten składa się z kilku kroków, które prowadzą do stworzenia dobrze zorganizowanej bazy danych. Głównym celem normalizacji jest zminimalizowanie powielania danych, co w rezultacie prowadzi do optymalizacji przestrzeni dyskowej oraz zwiększenia wydajności zapytań. Przykładem zastosowania normalizacji jest podział tabeli zawierającej informacje o klientach i zamówieniach na dwie odrębne tabele. W ten sposób, każdy klient ma swoje unikalne dane w jednej tabeli, natomiast w drugiej tabeli zapisywane są tylko odniesienia do klientów zamiast ich powtórzeń. Dobre praktyki związane z normalizacją uwzględniają różne formy normalne, z których każda ma swoje zasady, np. pierwsza forma normalna (1NF) wymaga, aby każda kolumna w tabeli zawierała tylko atomowe wartości. Wysoka jakość projektowania baz danych, w tym normalizacja, znacząco wpływa na późniejsze zarządzanie danymi oraz ich analizy.

Pytanie 37

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

A. odpowiednie przycięcie.
B. dodanie kanału alfa.
C. ulepszenie nasycenia kolorów.
D. zapisanie go w formacie BMP.
Odpowiedzi takie jak odpowiednie kadrowanie, poprawienie saturacji barw czy zapisanie obrazu w formacie BMP, nie są właściwe w kontekście uzyskania przezroczystego tła w plikach PNG. Kadrowanie obrazu polega na przycięciu jego części, co nie wpływa na przezroczystość tła; jest to technika używana głównie do zmiany kompozycji obrazu, a nie jego struktury. Z kolei poprawa saturacji barw odnosi się do intensywności kolorów w obrazie, ale nie ma ona związku z przezroczystością. Saturacja wpływa na to, jak żywe i intensywne są kolory, lecz nie zmienia informacji dotyczących przezroczystości w obrazie. Zapisanie pliku w formacie BMP, który nie obsługuje kanałów alfa, spowoduje utratę informacji o przezroczystości. BMP to format rastrowy, który przechowuje dane wizualne bez wsparcia dla przezroczystości, co czyni go nieodpowiednim wyborem dla obrazów wymagających przezroczystości tła. Warto zrozumieć, że do osiągnięcia efektu przezroczystości w obrazach, format PNG oraz wykorzystanie kanału alfa są standardami branżowymi, które powinny być stosowane w każdym profesjonalnym procesie edycji grafiki.

Pytanie 38

Wszelkie dane, które dostarczają informacji o innych danych, nazywane są

A. markup language.
B. databus.
C. metalanguage.
D. metadata.
Pojęcie z pytania dotyczy bardzo konkretnej rzeczy: danych, które opisują inne dane. W informatyce utrwalił się dla tego termin „metadata” – metadane. To nie jest tylko teoria z książki, ale podstawa działania wyszukiwarek, systemów plików, baz danych czy nawet aparatów w telefonach. Kiedy wybiera się inne określenia, zwykle wynika to z mylenia warstw opisu danych z narzędziami lub językami, w których te dane są przesyłane albo zapisywane. Sformułowanie „databus” odnosi się do zupełnie innej rzeczy. Magistrala danych (data bus) to element architektury sprzętowej lub niskopoziomowej komunikacji, który służy do fizycznego przenoszenia danych między komponentami, np. między procesorem a pamięcią. To kanał przesyłu, a nie opis tych danych. Magistrala nie „wie”, co oznaczają przesyłane bity, ona tylko je transportuje. Dlatego nie można jej traktować jako informacji o innych danych. „Metalanguage” to z kolei język służący do opisywania innych języków. Klasycznym przykładem są formalne metajęzyki używane do definiowania składni, np. BNF czy EBNF. Za ich pomocą opisuje się gramatykę języków programowania lub języków znaczników. To już jest bliżej pojęcia „opis”, ale wciąż dotyczy języków, a nie bezpośrednio danych w sensie rekordów, plików czy zasobów sieciowych. Metajęzyk nie przechowuje informacji o konkretnych danych użytkownika, tylko o strukturze języka, w którym te dane mogą być zapisane. „Markup language”, czyli język znaczników (np. HTML, XML), też bywa mylony z metadanymi, bo rzeczywiście pozwala opisywać strukturę dokumentu, a czasem także dołączać metainformacje. Jednak sam język znaczników to tylko sposób zapisu. To narzędzie, format. Metadanymi mogą być pewne fragmenty dokumentu w tym języku (np. znaczniki <meta> w HTML czy atrybuty w XML), ale nie cały język jako taki. Typowy błąd myślowy polega tutaj na wrzucaniu do jednego worka „wszystkiego, co opisuje coś innego”, bez rozróżniania, czy mówimy o opisie danych, czy o opisie języka lub o kanale transmisji. Z punktu widzenia dobrych praktyk warto jasno rozdzielać te pojęcia: magistrala danych – transport, metajęzyk – opis języka, język znaczników – format zapisu, metadane – informacje o konkretnych danych (pliku, rekordzie, zasobie). Dzięki temu łatwiej projektuje się systemy, dokumentację oraz interfejsy API, bo każdy element pełni swoją wyraźnie określoną rolę.

Pytanie 39

Który program komputerowy przekłada kod źródłowy, stworzony w określonym języku programowania, na język maszyny?

A. Kompilator
B. Środowisko programistyczne
C. Edytor kodu źródłowego
D. Debugger
Kompilator to taki mega ważny program, który pomaga w tworzeniu aplikacji. Przekształca kod, który napisaliśmy w danym języku programowania, na język maszynowy, czyli taki, który komputery rozumieją. To jest kluczowe, bo komputery działają na kodzie binarnym. Tak więc, jak piszemy programy w językach, takich jak C++, Java czy Python, musimy przekształcić ten skomplikowany kod na coś, co maszyna będzie mogła ogarnąć. Kompilatory nie tylko zamieniają nasz kod, ale też sprawdzają go pod kątem błędów, co jest super ważne dla jakości oprogramowania. Dla przykładu, jest taki kompilator GCC do języka C/C++, który jest bardzo popularny w projektach open source. Dobrze jest regularnie kompilować kod podczas pisania, bo to pozwala szybko łapać błędy i lepiej pracować w zespole.

Pytanie 40

Na ilustracji przedstawiono schemat rozmieszczenia elementów na stronie WWW. W której z jej sekcji zazwyczaj znajduje się stopka strony?

Ilustracja do pytania
A. 5
B. 1
C. 4
D. 2
Odpowiedź 5 jest poprawna ponieważ w standardach projektowania stron internetowych stopka strony zazwyczaj znajduje się na dole każdej podstrony. Stopka to miejsce gdzie umieszczane są informacje takie jak prawa autorskie prywatność i linki do kontaktu. Dobrze zaprojektowana stopka może także zawierać skróty nawigacyjne które pomagają użytkownikowi szybko przemieszczać się po stronie. W praktyce projektanci stron WWW stosują podejście oparte na responsywnym designie co oznacza że stopka powinna być łatwo dostępna i czytelna na różnych urządzeniach. Wykorzystanie CSS Grid lub Flexbox pozwala na elastyczne zarządzanie układem strony co jest szczególnie przydatne przy projektowaniu stopki. Ponadto stopki są elementami które odpowiadają za spójność wizualną całej strony internetowej zapewniając użytkownikowi intuicyjne doświadczenie. Umieszczanie stopki w dolnej części strony jest zgodne z oczekiwaniami użytkowników co zwiększa użyteczność serwisu i pozytywnie wpływa na jego odbiór. Praktyczne zastosowanie tego podejścia można zauważyć na wielu profesjonalnych stronach gdzie stopka jest wyraźnie oddzielona i przejrzysta co ułatwia użytkownikowi odnalezienie potrzebnych informacji.