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: 16 kwietnia 2026 08:15
  • Data zakończenia: 16 kwietnia 2026 08:35

Egzamin zdany!

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

Które z poniższych stwierdzeń na temat klucza głównego jest prawdziwe?

A. Składa się wyłącznie z jednego pola
B. W przypadku tabeli z danymi osobowymi może to być pole nazwisko
C. Jest unikalny dla danej tabeli
D. Może przyjmować wyłącznie wartości liczbowe
Klucz podstawowy to atrybut (lub zbiór atrybutów) w tabeli, który jednoznacznie identyfikuje każdy wiersz w tej tabeli. Jego unikalność w obrębie tabeli jest kluczowa, ponieważ pozwala na zapobieganie duplikatom i zapewnia integralność danych. Na przykład, w tabeli przechowującej informacje o klientach, kolumna z identyfikatorem klienta (np. ID klienta) powinna być kluczem podstawowym, ponieważ każdy klient musi mieć unikalny identyfikator. Standardy baz danych, takie jak model relacyjny, podkreślają znaczenie kluczy podstawowych w zapewnieniu stabilności i efektywności w przechowywaniu danych. Użycie klucza podstawowego również wpływa na wydajność operacji wyszukiwania i łączenia tabel, dlatego w projektowaniu baz danych należy starannie dobierać atrybuty, które będą pełnić tę rolę, aby spełniały wymagania unikalności oraz wydajności.

Pytanie 2

Pętla while powinna działać tak długo, jak zmienna x ma wartości z przedziału obustronnie otwartego -2, 5). Zapis tego warunku w nagłówku pętli za pomocą języka PHP wygląda następująco

A. ($x < -2) || ($x > 5)
B. ($x > -2) && ($x < 5)
C. ($x == -2) && ($x < 5)
D. ($x > -2) || ($x > 5)
Niepoprawne odpowiedzi opierają się na błędnej interpretacji warunków, które powinny być zastosowane w pętli while. Pierwsza z błędnych opcji, ($x == -2) && ($x < 5), sugeruje, że pętla mogłaby działać tylko, gdy x jest równe -2 oraz mniejsze od 5. Oznacza to, że pętla w ogóle nie zostałaby wykonana, ponieważ -2 nie jest w przedziale otwartym. Z kolei ($x < -2) || ($x > 5) jest zupełnie odwrotnym warunkiem, który uruchamia pętlę, gdy x jest poza interesującym nas zakresem, co jest sprzeczne z założeniem. Ostatnia błędna opcja, ($x > -2) || ($x > 5), wskazuje na nieporozumienie, ponieważ pętla mogłaby być wykonywana nie tylko dla wartości mieszczących się w przedziale (-2, 5), ale również dla każdej wartości większej od 5, co nie jest zgodne z założeniem. Typowym błędem myślowym jest mylenie operatorów logicznych oraz ich zastosowań w warunkach, co prowadzi do niewłaściwych lub niespójnych wyników. W kontekście programowania, szczególnie ważne jest zrozumienie koncepcji otwartych i zamkniętych przedziałów oraz umiejętność ich poprawnego definiowania w warunkach logicznych, co ma kluczowe znaczenie w wielu algorytmach i strukturach kontrolnych.

Pytanie 3

Jakie polecenie w CSS wykorzystuje się do dołączenia zewnętrznego arkusza stylów?

A. include
B. open
C. require
D. import
W CSS, polecenie 'import' jest używane do załączenia zewnętrznego arkusza stylów. Pozwala na włączenie jednego arkusza CSS do innego, co umożliwia modularność i lepszą organizację stylów w projektach. Składnia polecenia 'import' jest następująca: @import url('ścieżka/do/arkusza.css');. Umożliwia to dynamiczne ładowanie stylów, co jest szczególnie przydatne w dużych projektach, gdzie może być konieczne podzielenie stylów na mniejsze, bardziej zarządzalne pliki. Warto również pamiętać, że polecenie powinno znajdować się na początku arkusza CSS, przed jakimikolwiek innymi regułami, aby mogło być prawidłowo przetworzone przez przeglądarki. Zgodnie z normami W3C, 'import' jest uznawane za standardową metodę organizacji stylów, jednak nadmierne jego użycie może wpłynąć na wydajność, ponieważ może prowadzić do zwiększenia liczby zapytań HTTP. W praktyce, najlepszym podejściem jest ograniczenie użycia 'import' do sytuacji, w których jest to rzeczywiście konieczne, a w miarę możliwości korzystanie z bezpośrednich linków do arkuszy stylów w sekcji <head> dokumentu HTML.

Pytanie 4

Zapis koloru w formacie #ff00e0 odpowiada zapisowi

A. rgb(255,0,128)
B. rgb(f,0,e0)
C. rgb(ff,0,e0)
D. rgb(255,0,224)
Oznaczenie barwy w postaci #ff00e0 jest zapisem w systemie szesnastkowym (hexadecimal), który jest powszechnie stosowany w programowaniu i projektowaniu stron internetowych. Kod ten składa się z trzech par znaków, gdzie pierwsza para (ff) reprezentuje wartość czerwonego koloru, druga para (00) wartość zielonego koloru, a trzecia para (e0) wartość niebieskiego koloru. W formacie RGB, którym jest zapis rgb(red, green, blue), wartości są podawane w skali od 0 do 255. Aby przeliczyć szesnastkowy zapis na wartości dziesiętne, należy każdą parę szesnastkową zinterpretować jako liczbę dziesiętną. Dla 'ff' otrzymujemy 255, dla '00' - 0, a dla 'e0' - 224, co prowadzi nas do zapisu rgb(255, 0, 224). Ten kolor jest intensywnym różowym odcieniem, który można wykorzystać w różnych aplikacjach graficznych oraz na stronach internetowych, w tym w CSS. Dobrą praktyką jest znajomość konwersji między tymi formatami, ponieważ pozwala to na efektywną pracę z grafiką i designem.

Pytanie 5

Aby zdefiniować styl akapitu <p>, który występuje bezpośrednio po znaczniku <img>, należy w arkuszu stylów CSS zastosować związek

A. img p
B. img [p]
C. img > p
D. img + p
Poprawna odpowiedź to selektor sąsiedniego rodzeństwa: img + p. W CSS znak plus między selektorami oznacza: „wybierz element, który występuje bezpośrednio po innym elemencie, na tym samym poziomie drzewa DOM”. Czyli img + p trafi dokładnie w akapit <p>, który jest pierwszym rodzeństwem po znaczniku <img>, a nie w dowolny akapit gdzieś niżej. Przykład w praktyce: img + p { margin-top: 10px; font-style: italic; } Taki zapis spowoduje, że tylko akapit bezpośrednio po obrazku dostanie ten margines i kursywę. Jeśli pod obrazkiem będą dwa akapity z rzędu, to ostylowany zostanie tylko pierwszy. To jest bardzo przydatne np. przy podpisach pod zdjęciami, krótkich opisach ilustracji albo przy specyficznym formatowaniu pierwszego paragrafu po grafice. Warto odróżniać ten selektor od innych. Zapis img p oznaczałby: „akapit znajdujący się wewnątrz elementu img”, co w normalnym HTML nie ma sensu, bo <img> jest pustym elementem, nie zawiera w sobie dzieci. Z kolei img > p wybierałby tylko bezpośrednie dzieci <img>, co też jest nielogiczne z tego samego powodu. Natomiast img [p] nie jest w ogóle poprawnym selektorem w tym kontekście – nawiasy kwadratowe służą w CSS do selektorów atrybutów, np. a[target="_blank"]. Z mojego doświadczenia taki selektor jak img + p jest lepszym rozwiązaniem niż dokładanie dodatkowych klas tylko po to, żeby ostylować akapit po obrazku. Mniej zbędnych klas w HTML-u, bardziej semantyczny i czysty kod. Jest to zgodne z dobrymi praktykami front-endu: wykorzystywać możliwości selektorów CSS zanim zaczniemy zaśmiecać strukturę HTML dodatkowymi znacznikami czy klasami. Ten typ selektora jest opisany w specyfikacji CSS Selectors Level 3 jako adjacent sibling combinator i jest wspierany przez wszystkie współczesne przeglądarki, więc spokojnie można go stosować w normalnych projektach produkcyjnych.

Pytanie 6

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

A. float, double
B. float, long
C. double, short
D. double, bool
Odpowiedź 'float, double' jest poprawna, ponieważ w języku C++ to właśnie te dwa typy danych są używane do reprezentacji liczb rzeczywistych. Typ 'float' (zmienna pojedynczej precyzji) przechowuje liczby rzeczywiste w formacie zmiennoprzecinkowym, co oznacza, że może reprezentować liczby z częściami dziesiętnymi, ale z ograniczoną precyzją – zazwyczaj do 7 miejsc znaczących. Z kolei typ 'double' (zmienna podwójnej precyzji) oferuje znacznie większą precyzję, umożliwiając reprezentację do 15 miejsc znaczących. Stosowanie tych typów jest kluczowe w kontekście obliczeń naukowych, inżynieryjnych oraz wszędzie tam, gdzie precyzyjne operacje na liczbach rzeczywistych są niezbędne, na przykład w obliczeniach dotyczących grafiki komputerowej czy symulacji fizycznych. C++ przestrzega standardów IEEE 754 dla reprezentacji liczb zmiennoprzecinkowych, co sprawia, że te typy danych są zgodne z innymi językami programowania i technologiami. Dlatego wybór 'float' i 'double' jest zgodny z najlepszymi praktykami programistycznymi, które priorytetowo traktują zarówno wydajność, jak i dokładność obliczeń.

Pytanie 7

Jakie wyrażenie logiczne powinno być użyte w języku JavaScript, aby zastosować operacje tylko dla wszystkich liczb ujemnych z przedziału jednostronnie domkniętego <-200,-100)?

A. (liczba <=-200) || (liczba>-100)
B. (liczba >=-200) || (liczba>-100)
C. (liczba >=-200) && (liczba<-100)
D. (liczba <=-200) && (liczba<-100)
Jeśli chcesz wykonywać operacje tylko na liczbach ujemnych w przedziale od -200 do -100 w JavaScript, musisz użyć takiego wyrażenia: (liczba >= -200) && (liczba < -100). To wyrażenie łączy dwa warunki, co oznacza, że oba muszą być spełnione, żeby całość była prawdziwa. Pierwszy warunek mówi, że liczba musi być większa lub równa -200, a drugi, że musi być mniejsza niż -100. Tak definiujemy przedział, co jest zgodne z zasadami ECMAScript, na których oparty jest JavaScript. Dla przykładu, jeśli weźmiesz liczbę -150, to to wyrażenie zwróci prawdę, bo -150 jest w tym przedziale. Natomiast dla -250, wyrażenie zwróci fałsz, bo nie spełnia pierwszego warunku. Dzięki temu, programista ma pewność, że operacje wykonywane są jedynie na liczbach w danym przedziale. Takie zastosowanie można spotkać na przykład w walidacji danych w formularzach czy w filtracji danych w aplikacjach webowych.

Pytanie 8

Zapis koloru w formacie #ff00e0 jest równoważny reprezentacji

A. rgb(f, 0, e0)
B. rgb(ff, 0, e0)
C. rgb(255, 0, 128)
D. rgb(255, 0, 224)
Odpowiedź rgb(255, 0, 224) jest poprawna, ponieważ kolor zapisany w formacie szesnastkowym #ff00e0 odpowiada wartościom RGB, gdzie 'ff' oznacza maksymalną wartość czerwonego koloru (255), '00' oznacza zerową wartość zielonego koloru (0), a 'e0' odpowiada wartości niebieskiego koloru w systemie szesnastkowym, co daje 224 w systemie dziesiętnym. W praktyce oznacza to, że mamy do czynienia z kolorem różowym, z dominującym światłem czerwonym i niebieskim, co tworzy ciekawe odcienie. Taki sposób reprezentacji kolorów jest powszechnie stosowany w web designie i grafice komputerowej, co pozwala na łatwe i precyzyjne definiowanie kolorów w stylach CSS oraz HTML. Przykładowo, używanie kodów szesnastkowych do definiowania kolorów w kodzie CSS jest standardową praktyką, umożliwiającą spójną i estetyczną prezentację treści wizualnych na stronach internetowych.

Pytanie 9

Jak nazywa się składnik bazy danych, który umożliwia jedynie przeglądanie informacji z bazy, prezentując je w formie tekstowej lub graficznej?

A. Tabela
B. Zapytanie
C. Formularz
D. Raport
Raport to taka fajna część bazy danych, która pozwala ludziom spojrzeć na dane w czytelny sposób. Można je tworzyć, żeby analizować wyniki finansowe czy sprawdzać, jak firma sobie radzi. Przygotowywanie raportów na podstawie zapytań do bazy danych jest super, bo wszystko jest potem poukładane i przemyślane. W praktyce, raporty biorą dane z tabel i pokazują je w ładny sposób, wybierając odpowiednie kolumny i wiersze. Są też takie narzędzia jak SQL Server Reporting Services czy Crystal Reports, które oferują mnóstwo opcji do generowania raportów. To wszystko sprawia, że analiza danych jest lepsza i bardziej wizualna. Dobrze jest regularnie aktualizować raporty i dostosowywać je do potrzeb firmy, bo to pomaga w podejmowaniu decyzji na podstawie faktów.

Pytanie 10

Zapis tagu HTML w formie <a href="#hobby">przejdź</a>?

A. jest poprawny, po kliknięciu w odnośnik aktualna strona zostanie przewinięta do elementu o nazwie "hobby"
B. jest błędny, w atrybucie href trzeba wpisać adres URL
C. jest poprawny, po kliknięciu w odnośnik otworzy się strona internetowa o adresie "hobby"
D. jest błędny, niepoprawnie użyto znaku "#" w atrybucie href
Twoja odpowiedź jest trafna, bo znacznik <a href="#hobby">przejdź</a> naprawdę jest zgodny z tym, co mówi HTML. Jak to działa? No, ten znak '#' wskazuje na lokalny odnośnik, co oznacza, że przeglądarka szuka elementu na stronie, który ma id "hobby". Przykładowo, jeśli w kodzie HTML mamy coś jak <div id="hobby">, to klikając w link, przewinie widok do tej sekcji. To jest super przydatne, zwłaszcza w długich dokumentach czy różnych aplikacjach, bo pozwala szybko skakać do interesujących nas części. Z mojego doświadczenia, używanie takich lokalnych odnośników nie tylko ułatwia nawigację, ale też poprawia SEO i interakcję użytkowników z treścią. Warto to stosować!

Pytanie 11

Jakie formaty wideo są obsługiwane przez standard HTML5?

A. MP4, Ogg, WebM
B. MP4, AVI
C. Ogg, AVI, MPEG
D. Ogg, QuickTime
Odpowiedź MP4, Ogg, WebM jest prawidłowa, ponieważ wszystkie te formaty są zgodne ze standardem HTML5 i są powszechnie stosowane w aplikacjach internetowych. MP4, z wykorzystaniem kodeka H.264, zapewnia wysoką jakość obrazu i dźwięku przy stosunkowo małych rozmiarach plików, co czyni go jednym z najpopularniejszych formatów w sieci. Ogg, szczególnie w wersji Vorbis dla audio i Theora dla wideo, jest otwartym formatem, co oznacza, że nie wymaga licencji na użycie, co sprzyja jego zastosowaniu w projektach, które preferują otwarte technologie. WebM, stworzony przez Google, również korzysta z otwartych kodeków, takich jak VP8/VP9 dla wideo oraz Vorbis/Opus dla audio, co czyni go idealnym do zastosowań w środowisku internetowym. W praktyce, korzystając z tych formatów, deweloperzy mogą zapewnić szeroką kompatybilność z różnymi przeglądarkami oraz urządzeniami, co jest kluczowe w kontekście dostępności treści multimedialnych dla użytkowników. Warto również zwrócić uwagę na dobór formatów w kontekście SEO oraz szybkości ładowania stron, gdyż odpowiednia konfiguracja może wpływać na wyniki w wyszukiwarkach oraz doświadczenie użytkownika.

Pytanie 12

Jak nazywa się metoda, która pozwala na nawiązanie asynchronicznego połączenia klienta z serwerem oraz umożliwia wymianę danych bez konieczności przeładowania całej strony WWW?

A. XML
B. AJAX
C. PHP
D. VBScript
Wybór odpowiedzi nieprawidłowych, takich jak PHP, XML czy VBScript, wskazuje na częste nieporozumienia dotyczące funkcji oraz zastosowania tych technologii w kontekście komunikacji klient-serwer. PHP to język skryptowy wykorzystywany głównie do generowania dynamicznej treści na serwerze. Chociaż PHP może być używane do obsługi żądań z AJAX, samo w sobie nie zapewnia asynchroniczności ani nie umożliwia komunikacji bez przeładowania strony. XML, mimo że jest formatem danych, nie jest techniką komunikacyjną. Może być wykorzystywane w AJAX jako format przesyłania danych, ale nie jest to jego główne zastosowanie. VBScript to język skryptowy, który jest przestarzały i nie jest odpowiedni do nowoczesnych aplikacji internetowych. Wybierając te odpowiedzi, można popaść w błąd, sądząc, że różne technologie mają podobne zastosowania, co prowadzi do nieporozumień dotyczących struktury aplikacji internetowych. Ważne jest zrozumienie roli, jaką różne technologie odgrywają w architekturze aplikacji, aby właściwie wykorzystywać ich możliwości w praktyce.

Pytanie 13

W bazie danych księgarni znajduje się tabela ksiazki, która zawiera pola: id, idAutor, tytul, ileSprzedanych, oraz tabela autorzy z polami: id, imie, nazwisko. Jak można utworzyć raport sprzedanych książek zawierający tytuły oraz nazwiska autorów?

A. należy zdefiniować relację l..n pomiędzy tabelami ksiazki a autorzy, a następnie stworzyć kwerendę łączącą obie tabele
B. należy zdefiniować relację 1..1 pomiędzy tabelami ksiazki a autorzy, a następnie stworzyć kwerendę łączącą obie tabele
C. konieczne jest stworzenie kwerendy, która wyszukuje tytuły książek
D. trzeba utworzyć dwie oddzielne kwerendy: pierwsza do wyszukiwania tytułów książek, druga do wyszukiwania nazwisk autorów
Relacja l..n między tabelami 'ksiazki' i 'autorzy' jest naprawdę ważna. To oznacza, że jeden autor może napisać kilka książek, co jest całkiem normalne w świecie księgarni. Dzięki tej relacji, dla każdego 'idAutor' w tabeli 'ksiazki' możemy mieć wiele wpisów, co super ułatwia powiązanie tytułów z autorami. Jakbyś stworzył kwerendę, która łączy te obie tabele, to bez problemu uzyskasz dane, które jasno pokazują te relacje. Na przykład, taka kwerenda SQL mogłaby wyglądać tak: SELECT ksiazki.tytul, autorzy.nazwisko FROM ksiazki JOIN autorzy ON ksiazki.idAutor = autorzy.id; Taki sposób działania jest zgodny z normalizacją danych, co sprawia, że nasze bazy danych będą efektywne i dobrze zorganizowane.

Pytanie 14

Edytor, który spełnia kryteria WYSIWYG, powinien umożliwiać

A. osiągnięcie zbliżonego rezultatu tworzonej strony do jej wyglądu w przeglądarce internetowej
B. tworzenie podstawowych grafik wektorowych
C. publikację strony na serwerze za pomocą wbudowanego klienta FTP
D. przygotowanie plików dźwiękowych przed ich umieszczeniem na stronie internetowej
Edytory WYSIWYG (What You See Is What You Get) mają na celu umożliwienie użytkownikom tworzenia i edytowania treści w sposób, który przypomina ostateczny wygląd strony internetowej. Odpowiedź dotycząca uzyskania zbliżonego wyniku tworzonej strony do jej obrazu w przeglądarce internetowej jest kluczowym aspektem działania takich edytorów. Umożliwiają one użytkownikom natychmiastowe podglądanie efektów wprowadzanych zmian, co jest nieocenione przy projektowaniu stron. Przykładem może być edytor tak jak Adobe Dreamweaver czy WordPress, które pozwalają na wizualne projektowanie układu, co redukuje potrzebę ręcznego kodowania. Przy tworzeniu stron internetowych zgodnie z dobrymi praktykami, edytory WYSIWYG powinny wspierać standardy HTML i CSS, co zapewnia, że efekty wizualne są zgodne z tym, co użytkownik zobaczy w przeglądarce. Takie podejście zwiększa efektywność pracy, a także ułatwia współpracę między programistami a designerami.

Pytanie 15

Hermetyzacja to zasada programowania obiektowego mówiąca o tym, że

A. typy pól w klasach/obiektach mogą być dynamicznie zmieniane w zależności od danych im przypisywanych.
B. klasy mogą mieć zdefiniowane metody wirtualne, które są implementowane w pochodnych klasach.
C. pola i metody wykorzystywane tylko przez daną klasę są ograniczane zasięgiem private lub protected.
D. klasy mogą współdzielić ze sobą funkcjonalność.
Poprawnie – hermetyzacja (encapsulation) w programowaniu obiektowym polega właśnie na ukrywaniu szczegółów implementacji klasy i ograniczaniu dostępu do pól oraz metod, które nie powinny być widoczne na zewnątrz. W praktyce oznacza to stosowanie modyfikatorów dostępu takich jak private i protected do elementów, które są wykorzystywane tylko wewnątrz danej klasy lub hierarchii dziedziczenia. Kod zewnętrzny widzi wtedy tylko to, co jest wystawione jako public, czyli oficjalny interfejs klasy. Z mojego doświadczenia to jest jedna z kluczowych rzeczy, która odróżnia „klepanie kodu” od pisania rozsądnie zaprojektowanego oprogramowania. Dzięki hermetyzacji można bezpiecznie zmieniać wnętrze klasy (np. sposób przechowywania danych, algorytmy) bez psucia kodu, który z tej klasy korzysta. Przykład: w klasie KontoBankowe pola takie jak saldo, numer konta czy historia operacji powinny być private, a dostęp do nich powinien odbywać się przez metody typu wplac(), wyplac(), pobierzSaldo(). Użytkownik klasy nie ma prawa bezpośrednio ustawiać salda, bo mógłby ominąć logikę biznesową, np. sprawdzanie limitu czy blokady konta. W językach takich jak Java, C++, C#, ale też w nowoczesnym TypeScript czy w podejściu obiektowym w PHP i JavaScript, dobre praktyki mówią jasno: pola klasy domyślnie robimy prywatne, a udostępniamy tylko to, co naprawdę musi być publiczne. Moim zdaniem to jedna z najważniejszych zasad SOLID (dokładniej – silnie się z nimi łączy), bo wymusza tworzenie małych, spójnych i bezpiecznych interfejsów. W większych projektach webowych, np. w aplikacjach backendowych w PHP lub JS/TS, brak hermetyzacji szybko kończy się „makaronem zależności”, gdzie jedna zmiana w polu klasy rozwala pół systemu. Dlatego branżowo uznaje się hermetyzację za absolutny standard projektowania obiektowego, a łamanie jej za klasyczny „code smell”.

Pytanie 16

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. Wartość 10000, czyli suma pensji pracownika o id=4 oraz o id=6.
C. Dwie wartości: 4600 i 5400, jako pensje pracowników wyższe niż 4000.
D. Wartość 19500, czyli suma wszystkich pensji pracowników.
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 17

Jakie oprogramowanie NIE JEST systemem do zarządzania treścią (CMS)?

A. WordPress
B. Apache
C. Joomla
D. Mambo
Apache to serwer HTTP, który jest wykorzystywany do hostowania stron internetowych. Nie jest to system zarządzania treścią (CMS), ponieważ jego głównym zadaniem jest obsługa żądań HTTP i dostarczanie plików do przeglądarek internetowych. Systemy zarządzania treścią, takie jak Joomla, WordPress czy Mambo, to aplikacje, które umożliwiają użytkownikom łatwe tworzenie, edytowanie i zarządzanie treściami na stronach internetowych bez konieczności posiadania zaawansowanej wiedzy technicznej. Przykładem zastosowania Apache może być hostowanie strony internetowej stworzonej w jednym z wymienionych CMS, gdzie Apache dostarcza zasoby, a CMS zarządza treścią i logiką aplikacji. Dobrą praktyką w branży jest oddzielanie warstwy serwera od warstwy aplikacji, co pozwala na lepszą skalowalność i utrzymanie, a także na łatwiejszą aktualizację i zarządzanie bezpieczeństwem.

Pytanie 18

W języku HTML kolor biały można przedstawić przy użyciu wartości

A. rgb(FFFF,FF)
B. #255255
C. #000000
D. rgb(255,255,255)
Biały kolor w HTML zapisujemy jako rgb(255,255,255). W systemie RGB kolory tworzą się z trzech podstawowych barw: czerwonej, zielonej i niebieskiej. Każda z nich ma wartość od 0 do 255, więc maksymalna intensywność danego koloru to 255, a najniższa to 0. W przypadku białego koloru wszystkie trzy barwy są na maksa, stąd właśnie rgb(255,255,255) oznacza pełną moc czerwonego, zielonego i niebieskiego, co razem daje kolor biały. Wartości RGB są super ważne w CSS i w różnych programach do grafiki. Moim zdaniem, warto je znać, bo to podstawy przy robieniu stron internetowych. Warto też zwrócić uwagę na standardy W3C dotyczące kolorów w HTML, bo pomagają zadbać o estetykę i dostępność stron.

Pytanie 19

W HTML znacznik <i> powoduje uzyskanie takiego samego efektu wizualnego jak znacznik

A. <em>
B. <u>
C. <strong>
D. <pre>
Znacznik <em> w HTML służy do podkreślenia wyrazu w sposób, który jest semantyczny oraz wizualny. Oznacza on, że dany tekst ma szczególne znaczenie, co jest zgodne z dobrymi praktykami w tworzeniu dostępnych stron internetowych. Użycie <em> jest preferowane w sytuacjach, gdy chcemy wyróżnić określone słowa lub frazy, co jest istotne dla zrozumienia treści. Przykładem może być zdanie: "Wartość ta jest <em>szczególnie</em> istotna w kontekście analizy". W takim przypadku tekst "szczególnie" będzie wyróżniony nie tylko dla użytkownika, ale również dla wyszukiwarek oraz technologii asystujących, co przyczynia się do lepszej dostępności strony. W przeciwieństwie do znaczników, które mają głównie funkcję wizualną, takich jak <i>, <em> przynosi dodatkowe znaczenie semantyczne, co czyni go bardziej odpowiednim w kontekście tworzenia dokumentów HTML zgodnych z standardami W3C.

Pytanie 20

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

A. ucfirst("ala ma psa")
B. strstr("ala ma psa")
C. strtolower("ala ma psa")
D. strtoupper("ala ma psa")
Fajnie, że użyłeś funkcji strtoupper w PHP! Dzięki niej przekształcasz cały tekst na wielkie litery, co w tym przypadku zmienia 'ala ma psa' na 'ALA MA PSA'. To naprawdę przydatna funkcja, zwłaszcza w aplikacjach webowych, gdzie ważne jest, żeby tekst wyglądał tak, jak powinien, np. zgodnie z zasadami SEO czy przy prezentacji danych. Przykładowo, w formularzach warto, żeby nazwy użytkowników zawsze były w tym samym formacie. Poza tym jest cała masa innych funkcji w PHP, które mogą przydać się do manipulacji tekstem, a ich znajomość poprawia jakość kodu i jego czytelność.

Pytanie 21

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 dla bloków: 1, 2,
3, 4 (blok 5 nie ma ustawionej szerokości), powinno zawierać właściwość

Ilustracja do pytania
A. clear: both dla bloku 5 oraz float: left jedynie dla 1 i 2 bloku.
B. clear: both dla wszystkich bloków.
C. clear: both dla bloku 5 oraz float: left dla pozostałych bloków.
D. float: left dla wszystkich bloków.
Twoja odpowiedź jest poprawna. Bloki 1, 2, 3 i 4 powinny być ustawione obok siebie na stronie. Możemy tego dokonać, stosując dla nich właściwość 'float: left' w CSS, która sprawia, że elementy są wyświetlane po lewej stronie swojego kontenera. Często stosuje się tę technikę przy projektowaniu layoutów stron internetowych, umożliwiając rozmieszczenie bloków w jednym rzędzie. Blok 5 powinien natomiast znajdować się poniżej tych bloków, co osiągniemy stosując właściwość 'clear: both'. Ta właściwość zapewnia, że element nie będzie obok żadnego z poprzednich bloków, nawet jeśli mają one ustawiony float. Jest to szczególnie przydatne w sytuacjach, gdy chcemy, aby pewien element (np. stopka strony) był wyświetlany poniżej innych bloków, niezależnie od ich położenia czy szerokości. W praktyce, prawidłowe zastosowanie tych dwóch właściwości jest kluczowe dla tworzenia responsywnych i atrakcyjnych layoutów stron.

Pytanie 22

Aby utworzyć relację wiele do wielu między tabelami A i B, wystarczy, że

A. zostanie zdefiniowana trzecia tabela z kluczami obcymi do tabel A i B
B. połączenie tabeli A z tabelą B nastąpi poprzez określenie kluczy obcych
C. wiele wpisów z tabeli A powtórzy się w tabeli B
D. tabela A będzie miała identyczne pola jak tabela B
Podejścia zaprezentowane w niepoprawnych odpowiedziach są mylące i nie odpowiadają zasadom modelowania baz danych stosowanym w praktyce. Łączenie tabeli A z tabelą B poprzez klucze obce bez użycia tabeli asocjacyjnej prowadzi do trudności w zarządzaniu relacjami, ponieważ w takiej konfiguracji relacja będzie co najwyżej jeden do wielu, co nie odzwierciedla zamierzonej relacji wiele do wielu. Duplicacja rekordów z tabeli A w tabeli B jest nie tylko nieefektywna, ale również narusza zasady normalizacji, prowadząc do redundancji danych i potencjalnych problemów z integralnością. Ponadto, posiadanie tabeli A z takimi samymi polami co tabela B nie ma sensu w kontekście relacji wiele do wielu, ponieważ nie rozwiązuje problemu powiązań między rekordami tych tabel. Ważne jest zrozumienie, że prawidłowe modelowanie baz danych powinno opierać się na zdefiniowanych relacjach i zastosowaniu kluczy obcych w odpowiedni sposób. Niezrozumienie tej koncepcji może prowadzić do błędnych wniosków i niewłaściwego projektowania baz danych, co w dłuższej perspektywie może powodować trudności w przetwarzaniu i analizie danych.

Pytanie 23

Podczas walidacji witryn internetowych nie analizuje się

A. błędów w składni kodu
B. działania hiperlinków
C. zgodności z różnymi przeglądarkami
D. źródła pochodzenia narzędzi edycyjnych
W procesie walidacji stron internetowych, źródło pochodzenia narzędzi edytorskich nie jest przedmiotem analizy, ponieważ walidacja koncentruje się na technicznych aspektach kodu HTML, CSS i JavaScript, które wpływają na funkcjonalność oraz dostępność strony. Główne obszary walidacji obejmują zgodność z przeglądarkami, co oznacza, że strona powinna działać poprawnie w różnych środowiskach przeglądarkowych. Działania linków są również monitorowane, aby zapewnić, że wszystkie odnośniki kierują do właściwych lokalizacji oraz nie prowadzą do błędów 404. Błędy składni kodu są kluczowe, ponieważ mogą znacząco wpłynąć na sposób, w jaki strona jest renderowana przez przeglądarki. Przykładowo, walidatory HTML, takie jak W3C Validator, pomagają identyfikować błędy i ostrzegają o problemach, które mogą wpłynąć na dostępność i SEO strony. Dobre praktyki wymuszają, aby każda strona internetowa była nie tylko estetyczna, ale przede wszystkim funkcjonalna i zgodna z obowiązującymi standardami, co przekłada się na lepsze doświadczenia użytkowników.

Pytanie 24

Dana jest tablica n-elementowa o nazwie t[n] Zadaniem algorytmu zapisanego w postaci kroków jest wypisanie sumy

K1: i = 0; wynik = 0;
K2: Dopóki i < n wykonuj K3 .. K4
    K3: wynik ← wynik + t[i]
    K4: i ← i + 2
K5: wypisz wynik
A. sumy wszystkich elementów tablicy.
B. n-elementów tablicy.
C. sumy tych elementów tablicy, których wartości są nieparzyste.
D. co drugiego elementu tablicy.
Super rozebrałeś na czynniki pierwsze ten algorytm! Twoja odpowiedź 'co drugiego elementu tablicy' jest jak najbardziej trafna. W pytaniu chodzi o to, że algorytm sumuje co drugi element tablicy, zaczynając od pierwszego, a ten indeks to 0. Zmienna 'i' służy do poruszania się po tablicy i w każdej iteracji zwiększa się o 2. Dzięki temu pętla przeskakuje co drugi element, a te nieparzyste ignoruje. To naprawdę przydatna technika w programowaniu, bo pozwala na określony dostęp do danych. Takie algorytmy wykorzystuje się np. przy analizie danych z czujników, gdzie ważne są tylko wartości zapisane w regularnych odstępach.

Pytanie 25

Jednym z typów testów jednostkowych jest analiza tras, która polega na

A. utworzeniu kilku zbiorów danych o zbliżonym sposobie przetwarzania i wykorzystaniu ich do przeprowadzenia testu
B. testowaniu obiektów pod kątem inicjalizacji oraz zwolnienia zarezerwowanej pamięci
C. testowaniu wartości granicznych zestawu danych
D. określeniu punktu startowego i końcowego oraz badaniu dostępnych ścieżek pomiędzy tymi punktami
W analizie ścieżek w testach jednostkowych chodzi o to, by wyznaczyć, skąd zaczyna się działanie programu i gdzie kończy, a następnie sprawdzić, jakie ścieżki można pomiędzy tymi punktami przejść. Dzięki temu można znaleźć wszystkie możliwe drogi, którymi program może podążać. To ważna metoda, bo pozwala ocenić, czy logika w naszym kodzie działa tak, jak powinna oraz czy przetestowaliśmy wszystkie scenariusze, które mogą się zdarzyć. Na przykład, gdy mamy w kodzie dużo warunków i pętli, analiza ścieżek może ujawnić błędy, które nie wyjdą przy zwykłym testowaniu. W inżynierii oprogramowania to jest naprawdę dobra praktyka, bo upewniamy się, że wszystkie ścieżki zostały sprawdzone, co na pewno wpływa na jakość i stabilność naszego programu.

Pytanie 26

Najłatwiejszym i najmniej czasochłonnym sposobem na przetestowanie działania strony internetowej w różnych przeglądarkach i ich wersjach jest

A. zainstalowanie różnych przeglądarek na kilku komputerach i testowanie strony
B. wykorzystanie walidatora kodu HTML
C. sprawdzenie działania strony w programie Internet Explorer, zakładając, że inne przeglądarki będą kompatybilne
D. użycie emulatora przeglądarek internetowych, np. Browser Sandbox
Zainstalowanie na kilku komputerach różnych przeglądarek i testowanie witryny, choć może wydawać się sensowne, wiąże się z wieloma wadami. Po pierwsze, taka metoda jest czasochłonna i wymaga znacznych zasobów, zarówno w zakresie sprzętu, jak i czasu. Każda przeglądarka wymaga aktualizacji, a nowe wersje mogą wprowadzać zmiany, które wpływają na sposób wyświetlania witryny. Dodatkowo, różnorodność systemów operacyjnych i ich wersji, na których mogą działać te przeglądarki, dodatkowo komplikuje proces testowania. W kontekście walidatorów języka HTML, ich zastosowanie jest przede wszystkim ograniczone do sprawdzania poprawności kodu, a nie do testowania rzeczywistego działania witryny w różnych środowiskach. Z perspektywy praktycznej, testowanie w jednej przeglądarce, takiej jak Internet Explorer, z założeniem, że inne przeglądarki będą działać podobnie, jest nierealistyczne. Różne silniki renderujące i interpretujące kod HTML, CSS oraz JavaScript mogą prowadzić do odmiennych wyników. Właściwe przetestowanie witryny wymaga kompleksowego podejścia, które uwzględnia wszystkie możliwe przeglądarki i ich wersje, co czyni emulator najlepszym wyborem. Kluczem do sukcesu w testowaniu jest efektywność, a posłużenie się emulatorami znacząco podnosi jakość i szybkość weryfikacji funkcjonalności witryny.

Pytanie 27

Po zrealizowaniu przedstawionego fragmentu kodu w języku C/C++ do zmiennej o nazwie zmienna2 przypisany zostanie ```int zmienna1 = 158; int *zmienna2 = &zmienna1;```

A. przypisana liczba w kodzie binarnym odpowiadająca wartości, która jest przechowywana w zmienna1
B. przypisana zamieniona na łańcuch wartość, która jest przechowywana w zmienna1
C. przypisana ta sama wartość, która jest przechowywana w zmienna1
D. przypisany adres zmiennej o nazwie zmienna1
W odpowiedziach 2, 3 i 4 pojawiają się błędne interpretacje tego, co właściwie dzieje się w kodzie. Odpowiedź 2 sugeruje, że zmienna2 otrzyma tę samą wartość, co zmienna1, co jest błędne, ponieważ zmienna2 jest wskaźnikiem, a nie zmienną przechowującą wartość. W C/C++ wskaźnik przechowuje adres, a nie samą wartość. Odpowiedź 3 zakłada, że wartość przechowywana w zmienna1 zostanie przekształcona na łańcuch, co jest również niepoprawne. Wskaźniki nie dokonują automatycznych konwersji wartości na inne typy, a operator '&' zwraca adres zmiennej, a nie jej wartość. Wreszcie, odpowiedź 4 sugeruje, że zmienna2 otrzyma liczbę binarną odpowiadającą wartości zmiennej zmienna1. To również jest nieprawdziwe, ponieważ adres pamięci jest reprezentowany w systemie heksadecymalnym lub dziesiętnym, a nie binarnym. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków często wynikają z niewłaściwego zrozumienia różnicy między wartością a adresem w kontekście wskaźników. Zrozumienie tego rozróżnienia jest kluczowe dla efektywnego programowania w C/C++ i unikania problemów z zarządzaniem pamięcią.

Pytanie 28

Tabela odlotów zawiera dane przedstawione na ilustracji. Wykonanie zapytania SQL spowoduje zwrócenie informacji:

SELECT id FROM odloty WHERE samoloty_id > 2 AND kierunek LIKE '_a%';
idsamoloty_idnr_rejsukierunekczasdzienstatus_lotu
11FR1646Neapol09:20:002019-07-25wystartowal
21FR1327ALICANTE09:10:002019-07-25Opóźniony 10 min
32W63425Warszawa09:45:002019-07-25odprawa
43LX5647Londyn LT10:03:002019-07-25odprawa
53LX5673Malta10:06:002019-07-25opoznienie 20 min
63LX5622Wieden10:13:002019-07-25
74LH9821Berlin10:16:002019-07-25
84LH9888Hamburg10:19:002019-07-25
A. 5; 8
B. 3; 5; 8
C. 4; 5; 6; 7; 8
D. zbiór pusty
Zapytanie SQL SELECT id FROM odloty WHERE samoloty_id > 2 AND kierunek LIKE '_a%' używa dwóch warunków w klauzuli WHERE. Pierwszy warunek samoloty_id > 2 filtruje rekordy, których pole samoloty_id jest większe niż 2. Drugi warunek kierunek LIKE '_a%' szuka w kolumnie kierunek ciągów znaków, które mają literę 'a' jako drugi znak, co jest osiągane przez użycie znaku podkreślenia '_' jako symbolu jednego dowolnego znaku. Operator LIKE pozwala na dopasowanie wzorca z użyciem symboli wieloznacznych, co jest przydatne w sytuacjach, gdy potrzebujemy znaleźć dane na podstawie częściowego dopasowania tekstu. Zastosowanie wzorca '_a%' oznacza, że szukamy tylko takich wartości, które mają co najmniej dwa znaki, a drugim znakiem musi być 'a'. W tabeli odloty, rekordy spełniające oba te warunki to rekordy 5 i 8, ponieważ ich pole samoloty_id jest odpowiednio 3 i 4 (czyli większe niż 2), a pole kierunek to odpowiednio Malta i Hamburg, które pasują do wzorca '_a%' gdzie 'M' i 'H' to odpowiednio pierwszy znak. Praktyczne zastosowanie takich zapytań SQL pozwala na efektywne przeszukiwanie baz danych pod kątem specyficznych potrzeb użytkownika, co ma kluczowe znaczenie w zarządzaniu informacjami w dużych systemach.

Pytanie 29

Podaj nazwę Systemu Zarządzania Treścią, którego logo jest widoczne na zamieszczonym rysunku?

Ilustracja do pytania
A. Drupal
B. Joomla!
C. WordPress
D. MediaWiki
Joomla! to popularny system zarządzania treścią CMS który jest szeroko stosowany do tworzenia stron internetowych aplikacji online i portali. Dzięki swojej elastyczności Joomla! jest wybierany przez wiele firm i organizacji do zarządzania treścią online. System ten charakteryzuje się modułową architekturą która umożliwia łatwe rozszerzanie jego funkcjonalności za pomocą komponentów modułów i wtyczek. Jednym z głównych atutów Joomla! jest intuicyjny interfejs użytkownika który umożliwia zarządzanie treścią bez potrzeby głębokiej wiedzy technicznej. Dodatkowo Joomla! wspiera wiele języków co czyni go idealnym wyborem dla międzynarodowych organizacji. Warto również zaznaczyć że Joomla! jest open-source co oznacza że jest rozwijany przez społeczność programistów z całego świata którzy regularnie aktualizują i ulepszają oprogramowanie. Wybranie Joomla! jako CMS pozwala na korzystanie z dużej liczby szablonów i dodatków które umożliwiają personalizację witryny zgodnie z wymaganiami klienta. Dzięki solidnej bazie użytkowników i deweloperów Joomla! oferuje wsparcie techniczne i dokumentację która ułatwia rozwiązywanie problemów. W praktyce Joomla! jest wykorzystywany przez różnorodne witryny od małych blogów po rozbudowane platformy e-commerce co potwierdza jego wszechstronność i skuteczność.

Pytanie 30

Która z poniższych funkcji zdefiniowanych w języku PHP oblicza sumę połowy wartości a i połowy wartości b?

A. function licz($a, $b) {return $a/2 + $b/2;}
B. function licz($a, $b) {return ($a/2 + $b)/2;}
C. function licz($a, $b) {return $a/2 + $b;}
D. function licz($a, $b) {return 2/$a + 2/$b;}
Odpowiedź jest poprawna, ponieważ funkcja 'licz' w tej formie prawidłowo oblicza sumę połowy wartości a oraz połowy wartości b. W języku PHP, operator '/' dzieli wartość po lewej stronie przez wartość po prawej, więc w tym przypadku a/2 i b/2 zwracają odpowiednio połowę a oraz połowę b. Następnie te dwie wartości są sumowane, co jest zgodne z wymaganym wynikiem. Przykład zastosowania tej funkcji może być użyty w sytuacji, gdy chcemy obliczyć średnią wartość dwóch parametrów, co jest często spotykane w obliczeniach statystycznych i analitycznych. Dobrą praktyką jest również zapewnienie, że wartości a i b są liczbami, co można osiągnąć za pomocą walidacji danych wejściowych. Zastosowanie tej funkcji w większym kontekście, na przykład w aplikacjach webowych czy systemach obliczeniowych, pokazuje jej uniwersalność i efektywność w pracy z danymi.

Pytanie 31

Co uzyskujemy po wykonaniu zapytania SQL?

Ilustracja do pytania
A. średnią wszystkich ocen uczniów
B. liczbę uczniów, których średnia ocen wynosi 5
C. całkowitą liczbę uczniów
D. suma ocen uczniów, których średnia ocen wynosi 5
Zapytanie SQL SELECT count(*) FROM Uczniowie WHERE srednia = 5; wykorzystuje funkcję agregującą count(*), która służy do zliczania liczby wierszy spełniających określone warunki. W tym przypadku warunkiem jest srednia = 5 co oznacza że zapytanie zlicza wszystkich uczniów których średnia ocen wynosi dokładnie 5. Jest to powszechna praktyka w analizie danych gdzie często potrzebujemy określić liczebność pewnych grup danych na przykład aby przeanalizować ich rozkład lub porównać je z innymi grupami. W profesjonalnej bazie danych zliczanie wierszy na podstawie kryteriów jest standardem co umożliwia generowanie raportów i podejmowanie decyzji na podstawie danych. Użycie count(*) bez dodatkowych parametrów jest zgodne z dobrymi praktykami ponieważ jest wydajne i łatwe w interpretacji. W praktyce stosowanie tego typu zapytań jest nieodzowne w działach analizy danych zarządzania relacjami z klientami czy w edukacji gdzie analizujemy wyniki uczniów.

Pytanie 32

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. td, th { background-color: Pink; }
B. tr:active { background-color: Pink; }
C. tr { background-color: Pink; }
D. tr:hover { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 33

Które stwierdzenie najlepiej opisuje klasę Owoc zdefiniowaną w języku PHP i przedstawioną na listingu?

class Owoc {
    public $nazwa;
    private $kolor;
    function set_nazwa($nazwa) {
        $this->nazwa = $nazwa;
    }
}
A. Zawiera dwa pola i jedną metodę, a pole nazwa ma zasięg widzialności ograniczony wyłącznie do metod klasy.
B. Zawiera dwa pola i jedną metodę, a pole kolor ma zasięg widzialności ograniczony wyłącznie do metod klasy.
C. Zawiera dwa pola oraz jeden konstruktor, oba pola mają zasięg widzialności ograniczony wyłącznie do metod klasy.
D. Zawiera jedno pole i dwie metody, z których jedna ma ograniczony zasięg prywatny.
Klasa Owoc rzeczywiście ma dwa pola: publiczne pole nazwa oraz prywatne pole kolor. Widoczność pola kolor ogranicza się do wnętrza klasy, co oznacza, że nie może być ono bezpośrednio dostępne z zewnątrz. Metoda set_nazwa jest jedyną zdefiniowaną metodą, która umożliwia modyfikację wartości pola nazwa. Przykładowo, można stworzyć nowy obiekt klasy Owoc i ustawić jego nazwę za pomocą tej metody: $owoc = new Owoc(); $owoc->set_nazwa('Jabłko');. Takie podejście ilustruje zasadę enkapsulacji, która jest jedną z podstaw programowania obiektowego, gdzie dane obiektu są chronione i dostępne tylko poprzez metody, co zwiększa bezpieczeństwo i integralność danych. Dobrą praktyką jest również stosowanie metod get i set do zarządzania wartościami pól, co ułatwia kontrolowanie dostępu i weryfikację danych.

Pytanie 34

Aby zidentyfikować błędy w składni kodu HTML, trzeba użyć

A. interpretera
B. walidatora
C. kompilatora
D. debuggera
Walidator to narzędzie służące do sprawdzania poprawności składniowej oraz semantycznej kodu HTML. Umożliwia on programistom wychwycenie błędów, które mogą prowadzić do problemów z wyświetlaniem strony internetowej w przeglądarkach. Walidatory, takie jak W3C Validator, analizują kod HTML pod kątem zgodności z aktualnymi standardami oraz najlepszymi praktykami. Na przykład, walidator może wykryć brakujące tagi, niewłaściwe atrybuty czy błędne zagnieżdżenie elementów. Przy pomocy walidatora można również sprawdzić, czy strona jest dostosowana do wymagań dotyczących dostępności i użyteczności. Używanie walidatorów jest kluczowe w procesie tworzenia stron internetowych, ponieważ pozwala na identyfikację i eliminację błędów przed opublikowaniem witryny. W ten sposób projektanci i deweloperzy mogą zapewnić, że ich strony będą działały prawidłowo na różnych urządzeniach i przeglądarkach, co jest istotne dla doświadczenia użytkowników oraz SEO.

Pytanie 35

W języku PHP zapis

// 
pozwala na:
A. użycie operatora dzielenia bez reszty
B. dodanie komentarza jednoliniowego
C. użycie tablicy superglobalnej
D. dodanie komentarza wieloliniowego
Odpowiedzi sugerujące użycie komentarza wieloliniowego, operatora dzielenia bez reszty lub tablicy superglobalnej nie odpowiadają rzeczywistości. Komentarz wieloliniowy w PHP zapisywany jest za pomocą znaków <pre>/* ... */</pre>, co jest zupełnie inną koncepcją niż komentarz jednoliniowy. Wprowadzenie wieloliniowych komentarzy jest praktyczne w przypadku, gdy chcemy dodać dłuższe opisy lub wyłączyć większe fragmenty kodu, jednak nie ma to związku z użyciem <pre>//</pre>. Operator dzielenia bez reszty, z kolei, oznaczany jest w PHP jako <pre>/</pre>, i nie ma żadnego związku z zapisami komentarzy, ponieważ jego funkcją jest przeprowadzanie operacji arytmetycznych. Typowym błędem w myśleniu jest mylenie symboli i ich zastosowania w kontekście programowania. Na koniec, tablice superglobalne, takie jak <pre>$_POST</pre> lub <pre>$_GET</pre>, służą do przetwarzania danych z formularzy HTML i interakcji z danymi przesyłanymi przez użytkowników, co jest zupełnie inną dziedziną niż komentarze w kodzie. Zrozumienie ogólnych zasad stosowania komentarzy, operatorów i tablic superglobalnych jest kluczowe dla efektywnego programowania w PHP oraz unikania typowych pułapek logicznych.

Pytanie 36

Strona internetowa została wyświetlona przez przeglądarkę w poniższy sposób. Wskaż kod HTML, który prawidłowo reprezentuje zaprezentowaną hierarchiczną strukturę tekstu:

Ilustracja do pytania
A. <h1>Rozdział 1<p>tekst <h2>Podrozdział 1.1<p>tekst <h2>Podrozdział 1.2
B. <big>Rozdział 1</big>tekst<big>Podrozdział 1.1</big>tekst<big>Podrozdział 1.2</big>
C. <h1>Rozdział 1</h1> <p>tekst</p> <h2>Podrozdział 1.1</h2> <p>tekst</p> <h2>Podrozdział 1.2</h2>
D. <ul><li>Rozdział 1<li>tekst<li>Podrozdział 1.1<li>tekst<li>Podrozdział 1.2</ul>
Odpowiedź jest w porządku! Użycie znaczników <h1> i <h2> wraz z <p> to dobry krok, bo to właśnie tak powinno wyglądać semantyczne formatowanie w HTML. Znacznik <h1> to taki główny nagłówek, który mówi, o czym jest cała strona lub sekcja, a to naprawdę kluczowe dla porządku w treści i SEO. Dzięki nagłówkom w HTML łatwiej jest zrozumieć, co jest na stronie, zarówno dla ludzi, jak i programów, które przeszukują internet. Jak już masz <h2>, to świetnie, bo to pokazuje podrozdziały, a więc hierarchię informacji. Użycie <p> dla tekstu to też dobry pomysł, bo sprawia, że tekst jest bardziej czytelny. Warto pamiętać, że semantyczne znaczniki HTML pomagają osobom z niepełnosprawnościami korzystać z internetu. Według wytycznych WCAG powinno się je stosować, żeby poprawić dostępność. A jak to robić z głową, to łatwiej potem stylować stronę przy użyciu CSS, bo możesz zmieniać wygląd bez bawienia się w treść HTML. Generalnie, dobrze jest, gdy dokumenty są jasne zarówno dla ludzi, jak i dla maszyn – to standard w nowoczesnym webdesignie.

Pytanie 37

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

A. blokowania wszelkich zmian w wartościach znaczników już przypisanych w pliku CSS
B. nadpisywania wartości znaczników, które już zostały ustawione na stronie
C. połączenia struktury dokumentu strony z odpowiednią formą jej wizualizacji
D. ułatwienia formatowania strony
Wybór błędnych odpowiedzi może wynikać z nieporozumienia dotyczącego funkcji kaskadowych arkuszy stylów i ich zastosowania w procesie tworzenia stron internetowych. Odpowiedzi sugerujące blokowanie jakichkolwiek zmian w wartościach znaczników w pliku CSS są mylące, ponieważ CSS zaprojektowane jest właśnie po to, aby umożliwiać modyfikacje stylów. Arkusze stylów nie blokują zmian, tylko lepiej organizują i strukturalizują kod, co sprzyja łatwiejszemu wprowadzaniu przyszłych poprawek. Z kolei połączenie struktury dokumentu strony z właściwą formą prezentacji jest bardziej związane z HTML, który odpowiada za strukturę treści strony. CSS natomiast odpowiada głównie za stylizację i nie ma na celu bezpośredniego łączenia tych aspektów, lecz oddzielenie ich. Warto również zauważyć, że nadpisywanie wartości znaczników na stronie to szczególna funkcjonalność CSS, ale nie jest to jej główny cel. Główna idea CSS polega na uproszczeniu procesu formatowania, co podkreśla znaczenie kaskadowości, gdzie reguły mogą być dziedziczone i nadpisywane w sposób przemyślany i kontrolowany. Typowymi błędami myślowymi w tym kontekście są zamiana celów CSS z HTML oraz brak zrozumienia mechanizmów kaskadowości, co prowadzi do nieprawidłowych wniosków na temat roli, jaką CSS odgrywa w projektowaniu stron internetowych.

Pytanie 38

<?php
function silnia($liczba)
{
    if($liczba < 2)
        return 1;
    else
        return $liczba * silnia($liczba - 1);
}
?>
Funkcja silnia jest funkcją
A. bezparametrową.
B. rekurencyjną.
C. nie zwracającą wyniku.
D. abstrakcyjną.
Funkcja „silnia” w tym przykładzie jest klasycznym przykładem funkcji rekurencyjnej w PHP. Rekurencja polega na tym, że funkcja w swoim wnętrzu wywołuje samą siebie z innym argumentem. Tutaj dokładnie to widzimy w instrukcji `return $liczba * silnia($liczba - 1);`. Każde kolejne wywołanie zmniejsza wartość parametru `$liczba` o 1, aż dojdziemy do warunku zakończenia, czyli tzw. warunku brzegowego: `if($liczba < 2) return 1;`. Ten warunek jest kluczowy, bo bez niego rekurencja nigdy by się nie zatrzymała i skończyłaby się błędem przepełnienia stosu (stack overflow). Z punktu widzenia algorytmiki, silnia jest jednym z pierwszych przykładów, na których uczy się rekurencji, bo definicja matematyczna jest też rekurencyjna: n! = n * (n-1)!, przy 0! = 1 oraz 1! = 1. W kodzie odwzorowujemy to praktycznie 1:1. W profesjonalnym programowaniu webowym rekurencję stosuje się nie tylko do silni, ale np. do przetwarzania drzew kategorii, menu wielopoziomowych, parsowania struktur XML/JSON, czy przechodzenia po drzewach uprawnień. Moim zdaniem ważne jest, żeby przy rekurencji zawsze pilnować dwóch rzeczy: dobrze zdefiniowanego warunku zakończenia i tego, żeby w każdym kroku argument „zbliżał się” do tego warunku. W PHP można też porównać to z wersją iteracyjną (z pętlą), ale w wielu przypadkach rekurencyjna wersja jest czytelniejsza, szczególnie przy strukturach drzewiastych. W praktyce produkcyjnej warto jednak pamiętać o ograniczeniach głębokości stosu i przy bardzo dużych danych czasem lepiej przepisać rekurencję na iterację, ale sam wzorzec, który tu widzisz, jest jak najbardziej zgodny z dobrymi praktykami i podręcznikową definicją funkcji rekurencyjnej.

Pytanie 39

W JavaScript, aby wyodrębnić fragment tekstu pomiędzy wskazanymi indeksami, powinno się zastosować metodę

A. trim()
B. replace()
C. concat()
D. slice()
Wybór innych metod do manipulacji ciągami tekstowymi sugeruje niezrozumienie ich właściwości. Metoda trim() służy do usuwania białych znaków z początku i końca napisu, co nie ma nic wspólnego z wydobywaniem fragmentów. Użytkownicy mogą mylnie sądzić, że trim() jest przydatna do ekstrakcji, jednak jej zastosowanie jest zupełnie inne i polega na oczyszczaniu danych. Metoda concat() łączy dwa lub więcej ciągów tekstowych, co również nie odpowiada na potrzebę wydobywania podciągu. Zrozumienie, że concat() nie jest odpowiedzią na pytanie o wydobycie fragmentu, jest kluczowe dla efektywnego korzystania z języka JavaScript. Z kolei replace() służy do zamiany określonego fragmentu tekstu na inny, co może wprowadzać w błąd, gdyż nie wydobywa fragmentów, lecz je modyfikuje. Użytkownicy mogą mylić te metody, nie dostrzegając różnic między modyfikacją a wydobywaniem, co jest istotne w kontekście manipulacji danymi. Ważne jest, aby rozumieć specyfikę każdej metody oraz jej zastosowanie w codziennym programowaniu, co pozwala na efektywniejsze i bardziej precyzyjne pisanie kodu w JavaScript.

Pytanie 40

Jaką funkcję SQL można uznać za nieprzyjmującą argumentów?

A. len
B. upper
C. year
D. now
Odpowiedzi, które wskazują na funkcje 'year', 'len' oraz 'upper', opierają się na błędnych założeniach dotyczących sposobu działania tych funkcji. Funkcja 'year' jest wykorzystywana do wyodrębnienia części roku z daty i wymaga podania argumentu, który jest datą. Na przykład, użycie 'year(data)' zwróci numer roku z podanej daty, co stawia tę funkcję w kontekście pobierania argumentów. Z kolei 'len' jest funkcją służącą do określenia długości łańcucha znaków, co również oznacza, że wymaga argumentu w postaci tekstu: 'len('tekst')' zwróci liczbę znaków w podanym łańcuchu. Funkcja 'upper' z kolei przekształca wszystkie znaki w podanym łańcuchu na wielkie litery, także wymaga argumentu: 'upper('tekst')'. Te funkcje są niezwykle użyteczne w codziennej pracy z danymi, ale ich zastosowanie powinno być świadome i oparte na znajomości ich specyfiki. W przypadku takich funkcji, typowym błędem myślowym jest przekonanie, że można je stosować bez znajomości wymaganych argumentów. W praktyce oznacza to, że aby korzystać z możliwości funkcji SQL, niezbędne jest zrozumienie ich struktury i działania, co jest kluczowe dla efektywnego pisania zapytań oraz przetwarzania danych w bazach danych.