Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 26 lutego 2026 14:08
  • Data zakończenia: 26 lutego 2026 14:21

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Jakie znaczniki należy zastosować, aby umieścić kod PHP w pliku z rozszerzeniem php?

A. <php .......... />
B. <?php> ........ <php?>
C. <php> ......... </php>
D. <?php .......... ?>
Odpowiedź <?php .......... ?> jest poprawna, ponieważ jest to standardowy sposób wstawiania kodu PHP do plików z rozszerzeniem .php. Znaczniki te pozwalają interpreterowi PHP rozpoznać, że zawarty w nich kod powinien być przetworzony przez silnik PHP, a nie przez przeglądarkę jako HTML. W praktyce, użycie tych znaczników umożliwia twórcom aplikacji webowych dynamiczne generowanie treści, operowanie na danych wejściowych oraz integrację z bazami danych. Przykład zastosowania może obejmować skrypty do przetwarzania formularzy, generowania stron internetowych w zależności od warunków lub wyświetlania danych z bazy danych. Standardowe znaczniki <?php ?> są również zalecane w dokumentacji PHP jako najlepsza praktyka, co zapewnia większą kompatybilność i zrozumiałość kodu, a także minimalizuje ryzyko błędów związanych z interpretacją kodu przez serwer. Warto również pamiętać, że znaczniki te powinny być stosowane z zachowaniem odpowiednich zasad formatowania, aby kod był czytelny i łatwy do utrzymania.

Pytanie 2

Który z poniższych znaczników HTML jest używany do tworzenia struktury strony internetowej?

A. <aside>
B. <mark>
C. <em>
D. <input>
Znacznik <aside> jest poprawnym rozwiązaniem, ponieważ jest używany do definiowania treści, która jest powiązana z otaczającym kontekstem, ale nie jest kluczowa dla głównego przebiegu informacji. Z perspektywy budowy struktury strony internetowej, <aside> doskonale wpisuje się w koncepcję bocznych paneli, przypisów, lub dodatkowych informacji, które wzbogacają główną treść. Przykładem zastosowania może być umieszczenie sekcji z cytatami, powiązanymi artykułami lub innymi treściami uzupełniającymi. Zgodnie z zasadami semantyki HTML5, <aside> pozwala na lepszą interpretację treści przez przeglądarki oraz narzędzia do analizy SEO, co przyczynia się do poprawy dostępności i użyteczności strony. W praktyce, korzystanie z semantycznych znaczników, takich jak <aside>, wspiera także tworzenie bardziej czytelnych i strukturalnych dokumentów, co jest zgodne z najlepszymi praktykami w tworzeniu stron internetowych.

Pytanie 3

Typowym programem przeznaczonym do edycji grafiki wektorowej jest

A. Audacity.
B. Brasero.
C. Paint.
D. Inkscape.
Poprawnie wskazany program to Inkscape, bo jest to typowy, specjalistyczny edytor grafiki wektorowej. Grafika wektorowa opiera się na obiektach takich jak linie, krzywe Béziera, wielokąty, tekst, które są opisane matematycznie (współrzędne, promienie, kąty), a nie na siatce pikseli. Dzięki temu projekty można skalować praktycznie dowolnie bez utraty jakości, co jest absolutnym standardem przy projektowaniu logotypów, ikon, infografik, schematów technicznych czy elementów interfejsu użytkownika. Inkscape obsługuje format SVG, który jest otwartym standardem W3C i jest powszechnie stosowany w projektach webowych, także w responsywnych interfejsach. W praktyce, używając Inkscape, można tworzyć np. logo firmy, które później bez problemu osadzisz na stronie WWW, w materiałach do druku, na banerach, a nawet w aplikacji mobilnej, bez martwienia się o rozmazanie czy pikselizację. Program oferuje warstwy, style, grupowanie obiektów, precyzyjne wyrównywanie, siatki i prowadnice, co jest zgodne z dobrymi praktykami pracy z grafiką: porządek w projekcie, praca na oddzielnych warstwach, używanie krzywych zamiast „ręcznego” rysowania byle jakich kształtów. Moim zdaniem, znajomość Inkscape albo innego edytora wektorowego (np. Adobe Illustrator, CorelDRAW) to dzisiaj podstawowa umiejętność dla kogoś, kto myśli poważnie o grafice komputerowej czy front-endzie. Wiele firm wręcz wymaga, żeby materiały były dostarczane właśnie w formacie wektorowym, bo wtedy łatwiej je modyfikować, dopasowywać kolorystykę do brandingu i eksportować do różnych formatów (PNG, PDF, EPS) w zależności od potrzeb. Inkscape pozwala też na pracę z krzywymi, maskami, gradientami czy efektami filtrów, co daje bardzo duże możliwości przy zachowaniu zalet wektorów.

Pytanie 4

W języku PHP funkcja trim ma za zadanie

A. wyznaczyć długość napisu.
B. zmniejszać napis o wskazaną w parametrze liczbę znaków.
C. z obu końców napisu usuwać białe znaki lub inne znaki podane w parametrze.
D. porównywać dwa napisy i wypisywać część wspólną.
W PHP łatwo pomylić różne funkcje operujące na łańcuchach znaków, bo często używa się ich obok siebie i wszystkie „coś robią z napisem”. Funkcja trim() bywa mylona z innymi narzędziami, które mierzą długość, porównują teksty albo je przycinają w środku. Warto więc to sobie spokojnie uporządkować. Trim nie służy do wyznaczania długości napisu – do tego jest funkcja strlen(), która zwraca liczbę znaków w łańcuchu i nic z nim nie usuwa ani nie modyfikuje. To typowy błąd: ktoś widzi krótką nazwę „trim” i kojarzy ją z „przycięciem do długości”, a tu chodzi wyłącznie o usuwanie znaków z obu końców. Funkcja trim nie porównuje też dwóch napisów i nie wypisuje części wspólnej. Jeżeli chcemy porównać łańcuchy, używamy operatorów porównania (==, ===) albo funkcji strcmp(), strcasecmp() itd. Szukanie części wspólnej między dwoma tekstami wymaga zupełnie innych technik, np. funkcji strpos(), substr(), czasem nawet algorytmów dopasowania wzorców – ale to zupełnie inny temat niż trim. Częste jest też mylne przekonanie, że trim „zmniejsza napis o wskazaną liczbę znaków”, jakby działał na zasadzie: przekaż n i utnij tyle znaków. Tymczasem trim w ogóle nie operuje na liczbach, tylko na zbiorze znaków podanych w drugim parametrze. Usuwa wszystkie wystąpienia tych znaków z początku i końca, niezależnie od tego, ile ich tam jest. Jeżeli ktoś chce przyciąć łańcuch do określonej długości, używa się substr() albo mb_substr() (dla UTF-8), czasem w połączeniu z funkcjami multibajtowymi. Moim zdaniem podstawowy błąd myślowy polega tu na traktowaniu „przycinania” bardzo ogólnie, bez rozróżnienia: czy przycinamy do długości, czy usuwamy białe znaki na brzegach, czy porównujemy zawartość. Trim jest funkcją specjalistyczną: normalizuje początek i koniec łańcucha, co jest kluczowe przy walidacji danych wejściowych, porównywaniu stringów i zapisywaniu ich w spójnej postaci. Dobrą praktyką jest najpierw zastosować trim na danych od użytkownika, a dopiero potem używać strlen, strcmp czy substr do dalszych operacji. Wtedy każdy element ma swoją jasną, techniczną rolę.

Pytanie 5

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

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

Pytanie 6

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

A. strtolower('ala ma psa')
B. ucfirst('ala ma psa')
C. strtoupper('ala ma psa')
D. strstr('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 7

Taki styl CSS sprawi, że na stronie internetowej

ul{ list-style-image: url('rys.gif'); }
A. rys.gif wyświetli się jako tło dla listy nienumerowanej
B. rys.gif stanie się ramką dla listy nienumerowanej
C. punkt listy nienumerowanej będzie rys.gif
D. każdy punkt listy zyska osobne tło z grafiki rys.gif
Zrozumienie właściwości CSS jest kluczowe dla tworzenia poprawnych i estetycznych stron internetowych. List-style-image to właściwość, która zastępuje domyślny punktor listy nienumerowanej obrazkiem, co było poprawnie wskazane w pierwszej odpowiedzi. Błędne jest jednak myślenie, że obraz rys.gif stanie się ramką dla listy. Taka funkcjonalność wymaga użycia właściwości CSS border, a nie list-style-image. Ramki wokół elementów HTML definiowane są za pomocą właściwości takich jak border-style, border-width i border-color. Następne nieporozumienie dotyczy myśli, że każdy punkt listy będzie miał osobne tło z obrazkiem. Aby osiągnąć ten efekt, należałoby użyć właściwości background-image dla każdego elementu listy (li), a nie list-style-image na poziomie ul. Ostatnim błędnym wnioskiem jest przypuszczenie, że rys.gif stanie się tłem całej listy nienumerowanej. Właściwość, która to umożliwia, to background-image, a nie list-style-image. Wybierając właściwą metodę, można precyzyjnie dostosować styl listy do zamierzonych efektów graficznych. Poprawne zrozumienie i zastosowanie tych właściwości jest kluczowe dla poprawnego tworzenia arkuszy stylów CSS i uniknięcia nieporozumień w projektowaniu wizualnym stron.

Pytanie 8

W JavaScript funkcja document.getElementById(id) ma na celu

A. umieścić tekst o treści ’id’ na stronie internetowej
B. pobrać wartości z formularza i przypisać je do zmiennej id
C. zwrócić referencję do pierwszego elementu HTML o wskazanym id
D. zweryfikować poprawność formularza o identyfikatorze id
Fajnie, że zwróciłeś uwagę na metodę document.getElementById(id). To naprawdę ważne narzędzie w JavaScript, jeśli chodzi o pracę z DOM. Dzięki niej możesz łatwo znaleźć element HTML, który ma konkretny identyfikator, co jest super przydatne, gdy chcesz coś zmienić na stronie. Na przykład, żeby zmienić tekst nagłówka, używasz: document.getElementById('header').innerText = 'Nowy tekst nagłówka'. Warto pamiętać, żeby identyfikatory były unikalne, bo to potem ułatwia odnajdywanie i manipulację tymi elementami. Unikaj też zbyt ogólnych nazw, bo to może prowadzić do zamieszania. Metoda ta jest naprawdę szeroko stosowana w nowoczesnym programowaniu stron internetowych, co czyni strony bardziej interaktywnymi i dynamicznymi.

Pytanie 9

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
W tym zadaniu chodzi o zrozumienie tzw. kombinatorów w CSS, czyli znaków łączących selektory i określających relacje między elementami w drzewie DOM. Bardzo często mylenie tych relacji prowadzi do dokładnie takich błędnych odpowiedzi jak w tym pytaniu. Zapis „img p” to selektor potomka (descendant selector). Oznacza on: wybierz każdy element <p>, który znajduje się gdziekolwiek wewnątrz elementu <img>. Problem w tym, że w poprawnym HTML znacznik <img> jest pustym elementem, nie może mieć dzieci. W praktyce więc taki selektor nigdy nie zadziała w opisanym scenariuszu. To typowe nieporozumienie: ktoś myśli „obok obrazka jest paragraf, więc napiszę img p”, ale CSS rozumie to jako relację rodzic–potomek, a nie rodzeństwo. Z kolei zapis „img [p]” wynika zwykle z pomieszania składni selektorów atrybutów z selektorami elementów. Nawiasy kwadratowe w CSS służą do wybierania elementów na podstawie atrybutów, np. a[href], input[type="text"]. Konstrukcja [p] sugerowałaby atrybut o nazwie „p”, co w ogóle nie ma sensu w tym kontekście. Taka składnia jest po prostu niepoprawna merytorycznie, bo nie opisuje żadnej realnej relacji między <img> a <p>. Natomiast „img > p” to selektor dziecka (child combinator). Mówi on: wybierz elementy <p>, które są bezpośrednimi dziećmi elementu <img>. To znowu kłóci się z modelem HTML – obrazek nie może zawierać w sobie paragrafu. Ten selektor ma sens np. przy div > p, ale zupełnie nie pasuje do relacji „element po elemencie”. W tym zadaniu potrzebna jest relacja rodzeństwa: akapit stoi obok obrazka, a nie w środku. Prawidłowe podejście opiera się na zrozumieniu, że chcemy „bezpośredniego sąsiada” na tym samym poziomie, a nie potomka czy dziecka. Właśnie to zapewnia selektor sąsiedniego rodzeństwa, czyli konstrukcja z plusem. Typowy błąd myślowy polega na tym, że patrzymy na wygląd strony (obrazek nad akapitem) i nie analizujemy prawdziwej struktury DOM. Dobra praktyka frontendowa to zawsze przełożyć układ na dokładne relacje: rodzic–dziecko, przodek–potomek, rodzeństwo. Dopiero potem dobrać odpowiedni kombinator w CSS. Jeśli chcemy stylować element „bezpośrednio po”, używamy właśnie selektora z +, a nie spacji czy znaku >.

Pytanie 10

Według którego pola tabeli zostały pogrupowane dane w przedstawionym raporcie?

Ilustracja do pytania
A. id_uczestnika
B. wynik
C. rok
D. nazwa
Poprawnie wskazano, że dane w raporcie zostały pogrupowane według pola „rok”. Widać to po tym, że poszczególne rekordy są zebrane w bloki oznaczone nagłówkami 2009, 2010, 2011, 2012, 2020, a dopiero pod każdym z tych lat pojawiają się konkretne konkursy, id_uczestnika i wynik. To jest właśnie klasyczny przykład grupowania danych w raporcie po jednym z pól tabeli – w tym przypadku po kolumnie roku. W praktyce, czy to w SQL, czy w kreatorach raportów (np. w MS Access, LibreOffice Base, Crystal Reports, narzędziach BI), gdy projektujemy raport, często definiujemy tzw. sekcję grupującą (group header) opartą na wybranym polu. Tutaj takim polem jest rok, więc każda zmiana wartości roku powoduje rozpoczęcie nowej grupy i wyświetlenie nagłówka z tą wartością. To poprawia czytelność i pozwala łatwo analizować dane w podziale na lata. Moim zdaniem warto zapamiętać, że grupowanie po dacie lub roku to jedna z najczęściej stosowanych praktyk raportowych: używa się tego do raportów sprzedaży w latach, statystyk odwiedzin strony WWW, wyników egzaminów itd. W SQL można by to od strony danych poprzedzić np. zapytaniem sortującym: SELECT * FROM konkursy ORDER BY rok, nazwa; a samo faktyczne grupowanie wizualne realizuje już mechanizm raportów. Dobrą praktyką jest też, żeby pole, po którym grupujemy, było najpierw użyte do sortowania – inaczej grupy mogą się „rozsypać” i raport stanie się nieczytelny.

Pytanie 11

Jakiego ograniczenia (constraint) używa się do zdefiniowania klucza obcego?

A. UNIQUE KEY(ID)
B. FOREIGN KEY(ID)
C. PRIMARY KEY(ID)
D. AUTO_INCREMENT(ID)
Odpowiedź 'FOREIGN KEY(ID)' jest poprawna, ponieważ klucz obcy służy do definiowania relacji między tabelami w bazach danych. Klucz obcy to atrybut lub zestaw atrybutów w jednej tabeli, który odnosi się do klucza głównego innej tabeli. Przykładowo, w bazie danych, która obsługuje system zarządzania zamówieniami, tabela 'Zamówienia' może zawierać kolumnę 'KlientID', będącą kluczem obcym odnoszącym się do kolumny 'ID' w tabeli 'Klienci'. Użycie kluczy obcych pozwala na zapewnienie integralności referencyjnej, co oznacza, że każdy wpis w tabeli 'Zamówienia' musi odpowiadać istniejącemu klientowi w tabeli 'Klienci'. Dobrym praktykom w projektowaniu baz danych jest stosowanie kluczy obcych jako sposobu na unikanie niezgodności danych oraz na umożliwienie wykonywania zapytań z wykorzystaniem JOIN, co ułatwia uzyskiwanie skonsolidowanych informacji z różnych tabel. Ponadto, w przypadku usunięcia lub aktualizacji rekordów w tabeli źródłowej, można skonfigurować odpowiednie zasady, takie jak 'CASCADE', które automatycznie zaktualizują powiązane dane w tabeli docelowej, co jest istotne dla zachowania spójności danych.

Pytanie 12

Element bazy danych, którego podstawowym celem jest generowanie lub prezentowanie zestawień informacji, to

A. makro
B. raport
C. moduł
D. formularz
Raport to taki dokument w bazie danych, który ma za zadanie pokazać dane w przejrzysty i uporządkowany sposób. To jest mega ważne, zwłaszcza kiedy chcemy analizować różne informacje. Można je wykorzystać do robienia zestawień, statystyk, a nawet wykresów, co naprawdę ułatwia podejmowanie decyzji. Zazwyczaj raporty tworzy się na podstawie danych z różnych miejsc, jak tabele czy zapytania. W programach do zarządzania bazami, jak Microsoft Access, można korzystać z kreatora raportów, który pomaga ustawić wszystko tak, jak się chce – wybieramy źródło danych, układ i format. Oczywiście, do pozyskiwania danych często wykorzystuje się SQL, no i potem już te dane można analizować i przedstawiać w raportach. Jak sobie pomyślisz o przykładzie, to taki miesięczny raport sprzedaży to super narzędzie dla menedżerów, bo mogą ocenić, jak im idzie w sprzedaży i podejmować lepsze decyzje strategiczne.

Pytanie 13

input:focus { background-color: LightGreen; } W Ciebie CSS określono stylizację dla pola wejściowego. Tak przygotowane pole wejściowe będzie miało tło w odcieniu jasnozielonym?

A. kiedy zostanie najechane kursorem myszy bez jego klikania
B. w każdej sytuacji
C. jeżeli jest to pierwsza obecność tego elementu w dokumencie
D. po naciśnięciu przycisku myszy w celu wprowadzenia tekstu
Odpowiedzi, które wskazują na inne stany pól edycyjnych, nie są zgodne z definicją pseudoklasy :focus w CSS. Stan :focus jest aktywowany wyłącznie w momencie, gdy użytkownik klika w pole edycyjne lub przemieszcza się do niego za pomocą klawiatury (np. poprzez naciśnięcie klawisza Tab). Odpowiedzi takie jak 'gdy zostanie wskazane kursorem myszy bez kliknięcia' pomijają kluczowy element aktywacji, którym jest kliknięcie lub nawigacja za pomocą klawiatury. Wskazanie kursorem nie generuje stanu :focus, chyba że użytkownik rzeczywiście kliknie w pole. Z kolei stwierdzenie, że :focus dotyczy 'pierwszego wystąpienia tego znacznika w dokumencie', jest mylne, ponieważ stan :focus jest niezależny od lokalizacji elementu w DOM (Document Object Model) i odnosi się do konkretnego elementu, który jest aktualnie aktywny, a nie jego położenia. Odpowiedź 'w każdym przypadku' jest również niepoprawna, gdyż stan :focus jest aktywowany tylko w konkretnych okolicznościach, a nie zawsze. Takie błędne zrozumienie może prowadzić do problemów z użytecznością interfejsów użytkownika, ponieważ użytkownicy mogą nie otrzymywać właściwych wskazówek dotyczących aktywnych pól, co w konsekwencji obniża komfort korzystania z aplikacji. Kluczowe jest zrozumienie, że :focus jest jednym z wielu stanów, które mogą być zastosowane w CSS, co podkreśla znaczenie precyzyjnego definiowania interakcji w projektowaniu stron internetowych.

Pytanie 14

Z tabel Artykuly oraz Autorzy należy wyodrębnić tylko nazwiska autorów oraz tytuły ich artykułów, które uzyskały ocenę 5. Odpowiednia kwerenda do pozyskania tych informacji ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
C. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
D. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
Odpowiedź SELECT nazwisko tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5; jest poprawna ponieważ precyzyjnie wykorzystuje konstrukcję SQL do połączenia tabel Autorzy i Artykuly. JOIN łączy te tabele na podstawie klucza obcego autorzy_id w tabeli Artykuly który odpowiada kluczowi głównemu id w tabeli Autorzy. To pozwala na uzyskanie pełnej informacji o autorach i ich artykułach. Klauzula WHERE ocena = 5 filtruje wyniki i zwraca jedynie te które mają ocenę równą 5. Jest to standardowe podejście w SQL do pobierania danych na podstawie określonych kryteriów co jest bardzo efektywne w zarządzaniu dużymi zbiorami danych. Praktyczne zastosowanie tego typu kwerend obejmuje na przykład systemy rekomendacji artykułów gdzie tylko dobrze ocenione treści są pokazywane użytkownikom. Stosowanie takich kwerend zgodnie z najlepszymi praktykami pozwala na utrzymanie wydajności bazy danych oraz na zapewnienie integralności danych co jest kluczowe w profesjonalnym zarządzaniu bazami danych.

Pytanie 15

W JavaScript zapis a++; można przedstawić w inny sposób jako

A. 1 += a
B. a << 1
C. a = a & 1
D. a = a + 1
Odpowiedź 'a = a + 1;' jest poprawna, ponieważ dokładnie odzwierciedla działanie operatora inkrementacji 'a++;'. Operator '++' w JavaScript zwiększa wartość zmiennej o 1. W przypadku użycia 'a = a + 1;', operacja ta jest explicite zapisana jako przypisanie aktualnej wartości 'a' powiększonej o 1. Taki zapis jest często stosowany w sytuacjach, gdy chcemy lepiej zrozumieć, co się dzieje w kodzie, szczególnie dla początkujących programistów. Przykładowo, jeśli mamy zmienną, która przechowuje liczbę, możemy użyć 'a = a + 1;' w pętli, aby zliczać ilość iteracji. Warto zauważyć, że użycie operatora '++' jest bardziej zwięzłe i często preferowane w profesjonalnym kodzie, jednak zrozumienie, jak działa to na poziomie podstawowym, jest kluczowe. Dobrą praktyką jest dbałość o przejrzystość kodu, zwłaszcza w zespołach, gdzie różne osoby mogą pracować nad tym samym projektem.

Pytanie 16

W języku C++ funkcja, która zwraca rezultat potęgowania i operuje na dwóch argumentach: liczbie x oraz wykładniku w, powinna mieć taką deklarację

A. void potega(int x, int w);
B. int potega(int x);
C. void potega(int x, int w, int wynik);
D. int potega(int x, int w);
Zgadzasz się, że 'int potega(int x, int w);' to trafna odpowiedź. Funkcja do potęgowania faktycznie potrzebuje dwóch rzeczy: podstawy x i wykładnika w, a na końcu powinna zwrócić liczbę całkowitą, która jest wynikiem potęgowania. Jakby to wyglądało w praktyce? Można by to napisać jako 'int potega(int x, int w) { return pow(x, w); }'. Przy czym 'pow' pochodzi z biblioteki cmath i robi te wszystkie magiczne obliczenia. Ważne jest, by przy projektowaniu funkcji myśleć o ich użyteczności, czyli żeby miały jasno określone wejście i wyjście. A jak już mówimy o potęgowaniu, to musimy też pamiętać o specjalnych przypadkach, jak potęgowanie zera do zera, które w matematyce jest równe 1. Dlatego dobrze zrobiona funkcja powinna to uwzględniać. W programowaniu kluczowe jest, by obliczenia były efektywne i poprawne, zwłaszcza w naukowych i inżynieryjnych projektach, gdzie precyzja jest bardzo istotna.

Pytanie 17

W języku PHP funkcja trim służy do

A. Usuwania białych znaków lub innych znaków wymienionych w parametrze z obu końców tekstu
B. Określania długości tekstu
C. Porównywania dwóch tekstów i wyświetlania ich wspólnej części
D. Redukowania długości tekstu o określoną w parametrze liczbę znaków
Wybór odpowiedzi, która sugeruje, że funkcja trim w PHP zmniejsza napis o wskazaną w parametrze liczbę znaków, jest błędny. Funkcja ta nie ma na celu manipulacji długością napisu w taki sposób, ale raczej skupia się na usuwaniu zbędnych znaków z jego końców. Użytkownicy często mylą działanie trim z innymi funkcjami związanymi z obróbką łańcuchów tekstowych, co prowadzi do nieporozumień. Z kolei przekonanie, że trim porównuje dwa napisy i wypisuje ich część wspólną, jest także mylne, ponieważ nie dostarcza funkcjonalności porównywania tekstów. PHP oferuje inne funkcje, takie jak strcmp, które są przeznaczone do porównywania łańcuchów. Kolejna nieprawidłowa koncepcja to założenie, że trim służy do podawania długości napisu - na to zadanie są dedykowane inne funkcje, jak strlen. Różne funkcje w PHP mają specyficzne zastosowania, co jest istotne w kontekście dobrych praktyk programistycznych, ponieważ stosowanie niewłaściwych funkcji może prowadzić do nieefektywności i błędów w kodzie. Warto zatem dokładnie zapoznawać się z dokumentacją PHP i zrozumieć, jakie są cele i zastosowania konkretnych funkcji, aby uniknąć typowych pułapek i błędów w programowaniu.

Pytanie 18

Znacznik <strong> tekst</strong> w HTML będzie ukazywany przez przeglądarkę w identyczny sposób, jak znacznik

A. <sub>tekst</sub>
B. <h1>tekst</h1>
C. <b>tekst</b>
D. <big>tekst</big>
Znacznik <strong> w języku HTML jest używany do oznaczania tekstu, który ma być wyświetlany w sposób wyróżniony, co sugeruje jego większe znaczenie, natomiast znacznik <b> jest używany tylko do pogrubienia tekstu, bez dodatkowego kontekstu semantycznego. Oba znaczniki są wizualnie identyczne w większości przeglądarek, co powoduje, że można je stosować zamiennie w niektórych przypadkach. Jednakże, zgodnie z najnowszymi standardami HTML, zaleca się używanie <strong> dla tekstu, który ma większe znaczenie, ponieważ to pomaga w SEO i dostępności. Na przykład, tekst umieszczony w znaczniku <strong> może być lepiej interpretowany przez technologie wspomagające, takie jak czytniki ekranu, co czyni go bardziej dostępnym dla osób z niepełnosprawnościami. Przykład użycia: <strong>ważne informacje</strong> w odróżnieniu od <b>ważne informacje</b>, gdzie znaczenie semantyczne jest pominięte. Dlatego, mimo że wizualnie nie widać różnicy, semantyka HTML jest kluczowym aspektem, który wpływa na sposób, w jaki treść jest interpretowana i przetwarzana przez różnorodne systemy.

Pytanie 19

Poniższy fragment kodu PHP służy do zarządzania

if (empty($_POST["name"])) {
    $nameErr = "Name is required";
}
A. ciasteczkami
B. bazami danych
C. formularzami
D. sesjami
Fragment kodu PHP przedstawiony w pytaniu dotyczy obsługi formularza i jest to typowa konstrukcja używana do walidacji danych przesyłanych metodą POST. W PHP dane z formularza przesyłane są za pomocą superglobalnej tablicy $_POST, co pozwala na ich łatwe przetwarzanie i walidację. W tym przypadku skrypt sprawdza, czy pole 'name' zostało wypełnione przez użytkownika. Funkcja empty() jest stosowana, aby wykryć, czy dane pole jest puste, co jest kluczowe dla zabezpieczenia aplikacji przed niekompletnymi danymi. Gdy pole jest puste, zmienna $nameErr zostaje ustawiona na wartość komunikatu błędu, informującą użytkownika o brakujących danych. Praktyczne zastosowanie tego rodzaju sprawdzania obejmuje różnorodne formularze internetowe, takie jak rejestracja użytkowników czy składanie zamówień. Dobre praktyki w PHP zalecają stosowanie walidacji po stronie serwera, ponieważ poprawia to bezpieczeństwo i integralność danych, nawet jeśli wcześniej dane były walidowane po stronie klienta za pomocą JavaScriptu. Warto również pamiętać o stosowaniu filtrów i walidacji danych wejściowych, aby zapobiec potencjalnym atakom, jak np. SQL injection

Pytanie 20

Jaką wiadomość należy umieścić w przedstawionym fragmencie kodu PHP zamiast znaków zapytania? $a=mysql_connect('localhost','adam','mojeHasło'); if(!$a) echo "?????????????????????????";

A. Rekord został pomyślnie dodany do bazy
B. Błąd w przetwarzaniu zapytania SQL
C. Wybrana baza danych nie istnieje
D. Błąd połączenia z serwerem SQL
W sytuacji, gdy nie udaje się nawiązać połączenia z serwerem baz danych MySQL, komunikat błędu powinien jasno wskazywać na problem związany z połączeniem. W kodzie PHP, używając funkcji mysql_connect(), jeśli połączenie się nie powiedzie, zwracany jest błąd, który powinien być odpowiednio obsłużony. W tym przypadku odpowiednia treść komunikatu powinna brzmieć 'Błąd połączenia z serwerem SQL'. Ważne jest, aby programiści dbali o poprawne komunikaty błędów, ponieważ ułatwiają one diagnozowanie problemów. Dobrą praktyką jest także stosowanie obsługi wyjątków, co zwiększa stabilność aplikacji. Przykład: zamiast używać mysql_connect(), zaleca się korzystanie z mysqli lub PDO, które oferują bardziej zaawansowane opcje zarządzania błędami oraz obsługę wyjątków. W przypadku użycia mysqli, mógłbyś to zrobić w następujący sposób: $mysqli = new mysqli('localhost', 'adam', 'mojeHasło'); if ($mysqli->connect_error) { echo 'Błąd połączenia z serwerem SQL: ' . $mysqli->connect_error; } Poprawne raportowanie błędów jest kluczowym elementem programowania, ponieważ pozwala na szybką identyfikację i naprawę potencjalnych problemów.

Pytanie 21

Aby ustawić wewnętrzne marginesy dla elementu: margines górny 50px, dolny 40px, prawy 20px oraz lewy 30px, powinno się zastosować składnię CSS

A. padding: 40px, 30px, 50px, 20px;
B. padding: 20px, 40px, 30px, 50px;
C. padding: 50px, 20px, 40px, 30px;
D. padding: 50px, 40px, 20px, 30px;
Podane odpowiedzi niepoprawne wynikają z pomylenia kolejności, w jakiej wartości paddingu są interpretowane w CSS. Wartości paddingu są rozpoznawane w określonej sekwencji: najpierw górny, następnie prawy, dolny, a na końcu lewy. Dlatego, jeśli margines górny wynosi 50px, prawy 20px, dolny 40px i lewy 30px, to niektóre z przedstawionych opcji nie oddają tej kolejności. Użycie nieodpowiednich wartości skutkuje nieprzewidywalnym wyglądem elementów na stronie, co może prowadzić do problemów z układem oraz zaburzenia estetyki. W szczególności, niepoprawne zestawienie wartości może powodować, że odstępy będą nie tylko niewłaściwe, ale także mogą przyczynić się do trudności w interakcji użytkowników z elementami na stronie. Dodatkowo, błędy w stosowaniu paddingu mogą prowadzić do konfliktów z innymi stylami CSS, co jeszcze bardziej komplikuje proces projektowania. W praktyce, niepoprawne stosowanie kolejności wartości paddingu jest częstym błędem, który może być wynikiem braku zrozumienia konwencji CSS lub pośpiechu w implementacji. Kluczowe jest zrozumienie, że CSS jest oparty na ściśle określonych zasadach, a niewłaściwe stosowanie tych zasad może prowadzić do nieefektywnych rozwiązań projektowych.

Pytanie 22

Na ilustracji przedstawiono dwie tabele. Aby ustanowić między nimi relację jeden do wielu, gdzie jedna strona to Klienci, a druga strona to Zamowienia, należy

Ilustracja do pytania
A. wprowadzić pole klucza obcego do tabeli Zamowienia i powiązać je z ID tabeli Klienci.
B. stworzyć trzecią tabelę z dwoma kluczami obcymi. Jeden klucz połączyć z ID tabeli Klienci, a drugi klucz połączyć z ID tabeli Zamowienia.
C. dodać pole klucza obcego do tabeli Klienci i powiązać je z ID tabeli Zamowienia.
D. powiązać relacją pola ID z obu tabel.
Zrozumienie, dlaczego inne podejścia do tworzenia relacji jeden do wielu są błędne, wymaga wyjaśnienia działania kluczy podstawowych i obcych. Połączenie pól ID z obu tabel nie tworzy poprawnej relacji jeden do wielu, ponieważ nie definiuje, które pole służy jako klucz obcy. Tego typu połączenie może prowadzić do niejednoznaczności i problemów z integralnością danych. Dodanie klucza obcego do tabeli Klienci i połączenie go z ID tabeli Zamowienia również nie jest prawidłowe, ponieważ przeczyłoby to logice relacji jeden do wielu, gdzie jeden klient może mieć wiele zamówień, a nie odwrotnie. W praktyce takie podejście mogłoby prowadzić do powielania danych w tabeli Klienci i komplikacji przy zarządzaniu danymi. Zdefiniowanie trzeciej tabeli z dwoma kluczami obcymi jest podejściem stosowanym przy relacjach wiele do wielu, a nie jeden do wielu, jak w tym przypadku. Takie rozwiązanie byłoby nieefektywne w tej sytuacji i niepotrzebnie skomplikowałoby strukturę bazy danych. Poprawne zrozumienie tych koncepcji jest kluczowe dla projektowania wydajnych i spójnych systemów baz danych, zgodnych z zasadami normalizacji i dobrych praktyk inżynierii danych.

Pytanie 23

Aby zmienić strukturę tabeli w bazie danych MySQL, należy użyć komendy

A. ALTER TABLE
B. GRANT
C. UPDATE
D. INSERT INTO
Odpowiedź 'ALTER TABLE' jest poprawna, gdyż to polecenie w MySQL służy do modyfikacji struktury istniejącej tabeli. Dzięki niemu możemy dodawać nowe kolumny, zmieniać typy danych kolumn, usuwać kolumny, a także zmieniać właściwości tabeli, takie jak klucze główne czy unikalne. Przykład zastosowania polecenia ALTER TABLE to dodanie kolumny do tabeli: 'ALTER TABLE pracownicy ADD COLUMN wiek INT;' co skutkuje dodaniem kolumny 'wiek' o typie INT do tabeli 'pracownicy'. Zgodnie z najlepszymi praktykami, przed wykonaniem takich operacji warto wykonać kopię zapasową bazy danych, aby uniknąć utraty danych w przypadku nieprawidłowego wykonania polecenia. Używanie ALTER TABLE jest kluczowe podczas rozwoju aplikacji, gdyż często zachodzi potrzeba dostosowania struktury bazy danych do zmieniających się wymagań biznesowych.

Pytanie 24

Wskaż pętlę w języku JavaScript, która wypisze sześć kolejnych liczb parzystych.

A. for(i=2;i<=12;i+=2) {document.write(i);}
B. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
C. for(i=2;i<12;i+=2) {document.write(i);}
D. for(i=2;i<12;i++) {i++; document.write(i);}
Prawidłowa odpowiedź to pętla for(i=2;i<=12;i+=2) {document.write(i);}, ponieważ jest ona skonstruowana w sposób, który pozwala na wyświetlenie sześciu kolejnych liczb parzystych, zaczynając od 2 do 12 włącznie. Pętla for składa się z trzech głównych części: inicjalizacji (i=2), warunku (i<=12) oraz inkrementacji (i+=2). Inicjalizacja ustawia zmienną i na 2, co jest pierwszą liczbą parzystą. Warunek i<=12 zapewnia, że pętla będzie kontynuowana do momentu, gdy i osiągnie wartość większą niż 12, co oznacza, że ostatnią liczbą, która zostanie wyświetlona, będzie 12. Inkrementacja i+=2 powoduje, że przy każdej iteracji wartość i zwiększa się o 2, co pozwala na przechodzenie pomiędzy kolejnymi liczbami parzystymi (2, 4, 6, 8, 10, 12). Taki sposób konstrukcji pętli jest zgodny z zasadami programowania w JavaScript oraz pozwala na efektywne i kontrolowane wyświetlanie danych na stronie. Istotne jest również, że wykorzystanie metody document.write() jest jedną z prostszych form wyświetlania danych w JavaScript, aczkolwiek w praktyce jest zalecane korzystanie z bardziej nowoczesnych metod, takich jak manipulacja DOM, aby uniknąć nadpisywania całej zawartości strony.

Pytanie 25

Do jakich celów wykorzystywany jest certyfikat SSL?

A. do eliminowania złośliwego oprogramowania na stronie
B. do deszyfrowania przesyłanych danych
C. w celu identyfikacji właściciela domeny
D. do przechowywania informacji o sesjach tworzonych na stronie
Certyfikat SSL (Secure Sockets Layer) jest kluczowym elementem zapewniającym bezpieczeństwo komunikacji w Internecie. Jego podstawową funkcją jest zidentyfikowanie właściciela domeny oraz potwierdzenie tożsamości serwera, co jest niezwykle istotne w kontekście ochrony danych przesyłanych pomiędzy użytkownikiem a witryną. Certyfikat SSL działa na zasadzie kryptografii asymetrycznej, co oznacza, że każdy certyfikat posiada unikalny klucz publiczny i prywatny. Użytkownicy mogą być pewni, że komunikują się z właściwym serwerem, co zapobiega atakom typu 'man-in-the-middle'. Przykładem zastosowania certyfikatu SSL jest jego wykorzystanie w sklepach internetowych, gdzie dane osobowe oraz informacje o płatnościach są przesyłane w sposób zabezpieczony. Zgodność z standardami bezpieczeństwa, takimi jak PCI DSS, również wymaga użycia certyfikatów SSL. Dlatego wdrożenie certyfikatu SSL jest nie tylko najlepszą praktyką, ale również wymogiem dla wielu typów działalności online.

Pytanie 26

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

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

Pytanie 27

Jaką metodę przesyłania danych za pomocą formularza do kodu PHP należy uznać za najbardziej bezpieczną dla poufnych informacji?

A. Metoda POST, przy użyciu protokołu HTTPS
B. Metoda POST, przy użyciu protokołu HTTP
C. Metoda GET, przy użyciu protokołu HTTP
D. Metoda GET, przy użyciu protokołu HTTPS
Metoda POST, za pomocą protokołu HTTPS jest najbezpieczniejszym sposobem przesyłania danych poufnych w formularzach internetowych. Główną zaletą metody POST jest to, że dane nie są widoczne w adresie URL, co redukuje ryzyko ich ujawnienia w przypadku zapisania historii przeglądania lub w logach serwera. Co więcej, HTTPS, czyli HTTP Secure, zapewnia dodatkową warstwę zabezpieczeń poprzez szyfrowanie danych przesyłanych pomiędzy klientem a serwerem. Dzięki temu, nawet jeśli dane zostaną przechwycone przez nieautoryzowany podmiot, będą one zaszyfrowane, co znacznie utrudnia ich odczytanie. Zastosowanie tej metody jest szczególnie kluczowe w przypadku formularzy wymagających wprowadzenia danych osobowych, informacji finansowych lub logowania do konta użytkownika. W praktyce, wiele współczesnych aplikacji internetowych wymaga stosowania POST i HTTPS jako standardu do przesyłania wrażliwych informacji, co jest zgodne z najlepszymi praktykami bezpieczeństwa oraz standardami branżowymi takim jak OWASP.

Pytanie 28

W pliku konfiguracyjnym serwera Apache httpd.conf linia kodu Listen 120 oznacza

A. numer portu, na którym nasłuchuje serwer.
B. maksymalną liczbę jednoczesnych połączeń z sieci do serwera.
C. czwarty oktet adresu IP serwera.
D. jeden z numerów kodu błędu odpowiedzi HTTP.
Wpis „Listen 120” w pliku httpd.conf informuje serwer Apache, na jakim porcie ma nasłuchiwać przychodzących połączeń TCP. W praktyce oznacza to: jeżeli ktoś wchodzi na serwer, to ich przeglądarka łączy się z adresem IP serwera właśnie na ten numer portu. Standardowo HTTP działa na porcie 80, HTTPS na 443, ale w konfiguracji można ustawić dowolny inny port, np. 8080, 8000 czy właśnie 120. Dzięki dyrektywie Listen Apache „wiąże się” (binduje) z wybranym portem i zaczyna tam czekać na żądania HTTP. To jest podstawowy element konfiguracji warstwy sieciowej serwera WWW. W środowiskach produkcyjnych najczęściej stosuje się Listen 80 i Listen 443, czasem dodatkowe porty dla paneli administracyjnych, środowisk testowych albo aplikacji działających równolegle. Warto też wiedzieć, że można podać razem adres IP i port, np. Listen 192.168.0.10:80, wtedy Apache nasłuchuje tylko na konkretnym interfejsie sieciowym, co jest dobrą praktyką bezpieczeństwa, bo ogranicza ekspozycję usług. W nowoczesnych konfiguracjach często występuje kilka dyrektyw Listen, gdy serwer obsługuje wiele adresów IP lub protokołów. Z mojego doświadczenia porządek w portach i świadome używanie Listen bardzo ułatwia diagnostykę problemów typu „serwer nie odpowiada” czy konflikty z innymi usługami (np. innym serwerem WWW albo kontenerem Docker) działającymi na tej samej maszynie.

Pytanie 29

Jakiego znacznika używamy do definiowania list w HTML?

A. <tr>
B. <ul>
C. <td>
D. <th>
<ul> to znacznik w języku HTML, który definiuje nienumerowaną listę, co czyni go kluczowym elementem do strukturyzacji zawartości w dokumentach. Użycie <ul> pozwala na grupowanie powiązanych elementów, co zwiększa czytelność i dostępność treści. Zgodnie z zasadami semantycznego HTML, stosowanie list poprawia organizację informacji i ułatwia ich przetwarzanie przez maszyny, w tym wyszukiwarki internetowe. Przykład zastosowania: w sekcji strony internetowej przedstawiającej cechy produktu możemy użyć <ul> do wypisania jego zalet. Dobrym zwyczajem jest także dodawanie odpowiednich znaczników <li> dla poszczególnych elementów listy. Przykład: <ul><li>Zaleta 1</li><li>Zaleta 2</li></ul>. Dzięki temu tworzony jest bardziej przejrzysty i strukturalny układ treści, co przekłada się na lepsze doświadczenia użytkownika oraz spełnia standardy W3C dotyczące semantyki HTML.

Pytanie 30

Wskaż zapis warunku w języku JavaScript, który ma na celu sprawdzenie, czy spełniony jest przynajmniej jeden z poniższych przypadków:
1) dowolna liczba naturalna a jest liczbą trzycyfrową
2) dowolna liczba całkowita b ma wartość ujemną

A. ((a > 99) || (a < 1000)) && (b < 0)
B. ((a > 99) && (a < 1000)) && (b < 0)
C. ((a > 99) || (a < 1000)) || (b < 0)
D. ((a > 99) && (a < 1000)) || (b < 0)
Odpowiedź ((a > 99) && (a < 1000)) || (b < 0) jest poprawna, ponieważ spełnia wymagania dotyczące sprawdzenia dwóch warunków. Pierwsza część warunku, czyli (a > 99) && (a < 1000), precyzyjnie weryfikuje, czy liczba 'a' jest trzycyfrowa. Wartości, które spełniają ten warunek, to liczby od 100 do 999. Druga część warunku, czyli (b < 0), efektywnie sprawdza, czy liczba 'b' jest liczbą ujemną. Połączenie tych dwóch warunków za pomocą operatora logicznego OR (||) oznacza, że wystarczy, iż jeden z nich będzie prawdziwy, aby cały warunek został uznany za spełniony. To podejście jest zgodne z dobrymi praktykami programowania, gdzie klarowność i zwięzłość kodu są kluczowe, co ułatwia jego późniejsze utrzymanie. W zastosowaniach praktycznych, taki warunek mógłby być użyty w walidacji danych wejściowych, na przykład w formularzach, gdzie użytkownicy wprowadzają różne wartości, a program musi zapewnić, że przynajmniej jeden z warunków jest spełniony.

Pytanie 31

Aby utworzyć strukturę strony internetowej za pomocą znaczników semantycznych języka HTML 5, zgodnie z przedstawionym na ilustracji projektem, SEKCJA B powinna być zawarta w znaczniku

Ilustracja do pytania
A. <nav></nav>
B. <section></section>
C. <header></header>
D. <article></article>
Poprawnie – sekcja B na ilustracji to klasyczne menu nawigacyjne strony, więc w semantycznym HTML5 powinna być zawarta w znaczniku <nav>. Ten element został wprowadzony właśnie po to, żeby jasno oznaczać blok linków służących do poruszania się po serwisie: główne menu, nawigacja w stopce, paginacja artykułów itp. Przeglądarki, czytniki ekranu i roboty wyszukiwarek rozpoznają <nav> jako specjalny region nawigacyjny i dzięki temu lepiej „rozumieją” strukturę strony. To jest bardzo ważne z punktu widzenia dostępności (WCAG) i SEO. W typowym szkielecie strony HTML5 nagłówek z tytułem umieszcza się w <header>, menu w <nav>, główną treść w <main>, artykuły w <article>, a poboczne informacje w <aside>. U Ciebie: sekcja A to najpewniej <header>, sekcja B – <nav>, a sekcja C – jakiś <section> lub <article>. W praktyce kod dla pokazanej sekcji B wyglądałby np.: <nav><a href="index.html">Główna</a><a href="onas.html">O nas</a><a href="kontakt.html">Kontakt</a></nav>. Moim zdaniem dobrze jest od początku wyrabiać nawyk używania <nav> tylko dla głównych bloków nawigacji, a nie dla każdego przypadkowego linka w tekście. Dzięki temu dokument ma czytelną hierarchię, łatwiej się go styluje w CSS i utrzymuje w większych projektach.

Pytanie 32

W którym z przedstawionych bloków powinien być umieszczony warunek pętli?

Ilustracja do pytania
A. Rys. A
B. Rys. D
C. Rys. C
D. Rys. B
Pozostałe rysunki reprezentują inne elementy diagramu przepływu które nie nadają się do reprezentowania warunku pętli. Rysunek A to prostokąt symbolizujący operację lub proces w przepływie programu. Jest używany do przedstawiania konkretnego kroku algorytmu takiego jak obliczenie czy przypisanie wartości ale nie do wyrażania warunków. Użycie go do reprezentacji warunku pętli wprowadziłoby zamieszanie co do natury tego kroku ponieważ nie oddaje on dwoistości decyzji tak jak romb. Rysunek B przedstawia owal który często jest używany do oznaczania początku lub końca procesu. W kontekście pętli nie jest on odpowiedni ponieważ nie pozwala na wyrażenie logicznego warunku kontrolującego przebieg pętli. Wprowadzenie warunku w owalnym bloku mogłoby sugerować że jest to punkt rozpoczęcia lub zakończenia całego algorytmu co jest mylące. Rysunek D to symbol oznaczający połączenie między różnymi częściami diagramu i nie ma zastosowania przy definiowaniu logiki warunkowej. Role tego symbolu dotyczą bardziej struktury diagramu niż jego logiki. Wprowadzenie warunku w takim bloku mogłoby utrudnić śledzenie przepływu danych i logiczne rozumienie procesu co jest krytyczne dla poprawnego działania pętli. Dlatego stosowanie odpowiednich symboli zgodnych z ich przeznaczeniem jest kluczowe w tworzeniu czytelnych i zrozumiałych diagramów algorytmicznych a wybór rombu do reprezentacji warunku pętli jest zgodny z tymi zasadami i wspiera dobry styl programistyczny poprzez ułatwienie zrozumienia logiki algorytmu.

Pytanie 33

Jakie polecenie należy zastosować, aby utworzyć klucz obcy na wielu kolumnach przy tworzeniu tabeli?

A. CONSTRAINT fk_osoba_uczen FOREIGN KEY ON(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
B. CONSTRAINT (nazwisko, imie) FOREIGN REFERENCES KEY osoby (nazwisko, imie)
C. CONSTRAINT fk_soba_uczen FOREIGN KEY(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
D. CONSTRAINT (nazwisko, imie) FOREIGN KEY REFERENCES osoby (nazwisko, imie)
Odpowiedź "CONSTRAINT fk_soba_uczen FOREIGN KEY(nazwisko, imie) REFERENCES osoby (nazwisko, imie)" jest poprawna, ponieważ precyzyjnie definiuje klucz obcy składający się z dwóch kolumn: 'nazwisko' oraz 'imie'. W SQL, tworzenie klucza obcego na wielu kolumnach wymaga użycia słowa kluczowego 'FOREIGN KEY' w odpowiedniej składni. Użycie 'CONSTRAINT' pozwala na nadanie unikalnej nazwy dla tego ograniczenia, co jest dobrą praktyką, gdyż ułatwia późniejsze zarządzanie schematem bazy danych. Klucz obcy jest istotnym elementem w modelowaniu relacji między tabelami, zapewniając integralność danych i umożliwiając odniesienia do powiązanych rekordów. Na przykład, przy tworzeniu systemu do zarządzania szkołą, tabele 'uczniowie' i 'osoby' mogą być połączone, gdzie klucz obcy w tabeli 'uczniowie' wskazuje na unikalne rekordy w tabeli 'osoby' na podstawie ich nazwisk i imion. Używanie kluczy obcych wspiera relacyjny charakter baz danych i zapobiega wprowadzaniu danych, które są niezgodne z innymi tabelami.

Pytanie 34

Czy automatyczna weryfikacja właściciela witryny dostępnej przez protokół HTTPS jest możliwa dzięki

A. kluczom prywatnym
B. informacjom kontaktowym na stronie
C. certyfikatowi SSL
D. danym whois
Automatyczna weryfikacja właściciela strony udostępnianej przez protokół HTTPS jest możliwa dzięki certyfikatowi SSL, który jest kluczowym elementem infrastruktury bezpieczeństwa w sieci. Certyfikat SSL (Secure Socket Layer) to dokument cyfrowy, który potwierdza tożsamość właściciela witryny oraz umożliwia szyfrowanie danych przesyłanych pomiędzy przeglądarką użytkownika a serwerem. W procesie weryfikacji certyfikatu, przeglądarka internetowa kontaktuje się z odpowiednim urzędem certyfikacji (CA), który wystawił dany certyfikat, w celu potwierdzenia, że certyfikat jest ważny oraz że podany w nim adres URL rzeczywiście należy do określonego właściciela. Przykładowe zastosowanie certyfikatów SSL obejmuje e-commerce, gdzie ochrona danych osobowych i transakcji jest kluczowa. Standardy takie jak X.509 określają format certyfikatów SSL, a ich zastosowanie zapewnia użytkownikom bezpieczniejsze przeglądanie stron internetowych. W kontekście SEO, posiadanie certyfikatu SSL jest również korzystne, gdyż wyszukiwarki, takie jak Google, preferują strony zabezpieczone HTTPS, co wpływa na ich pozycjonowanie.

Pytanie 35

Przedstawiony w ramce fragment kwerendy SQL ma za zadanie wybrać

SELECT COUNT(wartosc) FROM ...
A. sumę w kolumnie wartosc.
B. liczbę wierszy.
C. średnią w kolumnie wartosc.
D. liczbę kolumn.
Poprawnie: wyrażenie SELECT COUNT(wartosc) ma za zadanie zwrócić liczbę wierszy, w których kolumna wartosc nie jest pusta (czyli nie ma wartości NULL). Funkcja agregująca COUNT() w SQL właśnie do tego służy – zlicza rekordy. W wersji COUNT(nazwa_kolumny) zliczane są tylko te wiersze, gdzie w tej kolumnie znajduje się jakaś konkretna wartość. To jest ważne rozróżnienie: COUNT(*) liczy wszystkie wiersze w tabeli lub wyniku kwerendy, natomiast COUNT(wartosc) pomija rekordy z NULL w tej kolumnie. Moim zdaniem to jedna z podstawowych rzeczy, które trzeba mieć „w ręku”, pracując z bazami danych. W praktyce używa się tego np. do sprawdzenia, ilu klientów podało numer telefonu, ilu pracowników ma przypisaną premię, ile zamówień ma ustawioną datę realizacji itd. Zamiast ręcznie przeglądać dane, odpalasz prostą kwerendę: SELECT COUNT(telefon) FROM klienci; i od razu wiesz, ile jest uzupełnionych pól. Dobre praktyki mówią też, żeby świadomie wybierać pomiędzy COUNT(*) a COUNT(kolumna), bo dają one różne wyniki przy brakach danych. W raportowaniu biznesowym to ma ogromne znaczenie, bo łatwo wyciągnąć złe wnioski, jeśli ktoś nie rozumie, co dokładnie liczy dana funkcja. W projektach komercyjnych COUNT() jest jedną z najczęściej używanych funkcji agregujących obok SUM(), AVG(), MIN() i MAX(), więc warto od razu nauczyć się jej poprawnej interpretacji i stosowania w połączeniu z klauzulą WHERE oraz GROUP BY, żeby liczyć wiersze spełniające konkretne warunki, np. ilu użytkowników aktywowało konto w danym miesiącu.

Pytanie 36

Wskaż wszystkie symbole, które pozwalają na komentowanie kodu w języku PHP.

A. <?php ?> oraz //
B. /* */ oraz // oraz #
C. /* */ oraz <!-- -->
D. tylko /* */
Odpowiedź, która wskazuje na znaki /* */, // oraz # jako metody komentowania w PHP jest poprawna. W języku PHP istnieją różne sposoby na dodawanie komentarzy, co jest kluczowe dla dokumentacji kodu i ułatwiania jego późniejszego zrozumienia. Komentarze wieloliniowe otaczane są przez znaki /* i */. Umożliwiają one opisanie złożonych fragmentów kodu, co jest przydatne w przypadku długich wyjaśnień. Z kolei // umożliwia tworzenie komentarzy jednoliniowych, co jest idealne dla krótkich notatek czy opisów funkcji. Dodatkowo, znak # również pozwala na tworzenie komentarzy jednoliniowych, co czyni go użytecznym w kontekście skryptów PHP, szczególnie w połączeniu z plikami konfiguracyjnymi. Właściwe stosowanie komentarzy jest częścią dobrych praktyk programistycznych, które pozwalają na lepszą współpracę w zespole oraz przyszłą konserwację kodu. Przykładowo, użycie komentarzy do wyjaśnienia zastosowania konkretnej funkcji w kodzie może znacznie ułatwić pracę innym programistom, którzy będą musieli pracować z tym kodem w przyszłości.

Pytanie 37

W semantycznym HTML odpowiednikiem tagu <b>, który nie tylko pogrubia tekst, ale również oznacza go jako istotniejszy, jest

A. <em>
B. <ins>
C. <strong>
D. <mark>
Znacznik <strong> w języku HTML semantycznym służy do oznaczania tekstu, który ma szczególne znaczenie w kontekście treści. Oprócz stylistycznego pogrubienia czcionki, <strong> wskazuje, że dany fragment tekstu jest ważny dla zrozumienia treści dokumentu. Przykładowo, w artykule omawiającym bezpieczeństwo w Internecie, można użyć <strong> do wyróżnienia kluczowych terminów, takich jak 'szyfrowanie' czy 'firewall', co podkreśla ich znaczenie w ochronie danych. Użycie znaczników semantycznych, takich jak <strong>, jest zgodne z najlepszymi praktykami dostępności, co zapewnia lepszą interpretację treści przez technologie asystujące, takie jak czytniki ekranu. Takie podejście poprawia nie tylko nawigację po stronie, ale również SEO, ponieważ wyszukiwarki lepiej rozumieją kontekst i hierarchię treści. Warto również zauważyć, że w przeciwieństwie do <b>, który jedynie zmienia wygląd tekstu, <strong> wnosi dodatkowy sens do struktury dokumentu, co jest szczególnie istotne w kontekście tworzenia witryn internetowych, które są zarówno estetyczne, jak i funkcjonalne.

Pytanie 38

Najprostszy sposób zamiany obiektu oznaczonego cyfrą 1 na obiekt oznaczony cyfrą 2 polega na

Ilustracja do pytania
A. animowaniu obiektu.
B. geometrycznym transformowaniu obiektu.
C. zmianie warstwy obiektu.
D. narysowaniu docelowego obiektu.
Wybrałeś poprawną odpowiedź, która jest 'geometrycznym transformowaniem obiektu'. Kiedy mówimy o transformacji geometrycznej, mamy na myśli różne operacje, które można wykonać na obiektach, takie jak skalowanie, obracanie i przesuwanie. W przypadku obiektu oznaczonego numerem 1 i numerem 2 na obrazku, najprostszym sposobem na przekształcenie jednego w drugi jest używanie transformacji geometrycznej. Obiekt numer 2 jest większy i obrócony w stosunku do obiektu numer 1. Dzięki transformacjom geometrycznym mogliśmy osiągnąć ten efekt, skalując i obracając obiekt numer 1. Transformacje geometryczne są podstawą wielu operacji w dziedzinach takich jak grafika komputerowa, projektowanie CAD, animacja, a także w wielu innych dziedzinach technologii i nauki.

Pytanie 39

Które z pól są umieszczone w formularzu?





Studia podyplomowe Kurs

A. Input(Text), Select, Input(Radio), Input(Radio), Input (Submit), Input(Reset)
B. Textarea, Select, Input(Radio), Input(Radio), Input(Reset), Input(Submit)
C. Textarea, Option, Input(Checkbox), Input(Checkbox), Input (Submit), Input(Reset)
D. Input(Text), Input(Checkbox), Select, Select, Input(Submit), Input(Reset)
Dobrze zrozumiałeś różne typy pól, które mogą pojawić się w formularzu html. Wybrana przez Ciebie odpowiedź składa się z różnych typów pól, które są często używane w formularzach internetowych. Pierwsze, Input(Text), jest podstawowym polem do wprowadzania tekstu, które jest szeroko stosowane do zbierania informacji od użytkowników, takich jak imię, nazwisko itp. Pole Select to lista rozwijana, która pozwala użytkownikowi wybrać jedną z wielu opcji. W tym przypadku, używane jest do wyboru województwa. Input(Radio) to przyciski wyboru, które umożliwiają wybór jednej opcji z kilku. W formularzu, są one używane do wyboru między 'Studia podyplomowe' a 'Kurs'. Input(Submit) to przycisk służący do wysyłania formularza, a Input (Reset) pozwala na wyczyszczenie wszystkich pól formularza. Wszystkie te elementy są zgodne ze standardami i dobrymi praktykami tworzenia formularzy html. Dobre zrozumienie tych elementów jest kluczowe do tworzenia efektywnych i użytkowników formularzy.

Pytanie 40

Aby w tabeli praca, tworzonej w SQL, dodać warunek w kolumnie stawka, który nakazuje przyjmowanie dodatnich wartości rzeczywistych mniejszych niż 50, należy zastosować zapis

A. ... stawka float CHECK(stawka IN (0, 50.00))
B. ... stawka float CHECK(stawka>0 AND stawka<50.00)
C. ... stawka float CHECK(stawka BETWEEN 0 AND 50.00)
D. ... stawka float CHECK(stawka>0 OR stawka<50.00)
Aby w tabeli SQL dodać warunek dla kolumny 'stawka', który zapewni, że wartości będą rzeczywiste, dodatnie i mniejsze od 50, należy skorzystać z klauzuli CHECK. Odpowiedni zapis to 'CHECK(stawka > 0 AND stawka < 50.00)'. Klauzula CHECK w SQL pozwala na definiowanie ograniczeń dla wartości kolumny, co jest kluczowe w zapewnieniu integralności danych. W tym przypadku, użycie operatora AND jest istotne, ponieważ umożliwia jednoczesne sprawdzenie dwóch warunków: że 'stawka' jest większa od 0 oraz mniejsza od 50. Zastosowanie tego warunku jest zgodne z zasadami normalizacji bazy danych, która ma na celu eliminację nieprawidłowych danych. Przykładowo, jeśli spróbujesz wprowadzić wartość 0 lub 50 do kolumny 'stawka', system zwróci błąd, co zapobiega wprowadzeniu niepożądanych danych. Takie podejście jest również zalecane w standardach SQL, takich jak ANSI SQL, które podkreślają znaczenie walidacji danych.