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: 7 maja 2026 11:11
  • Data zakończenia: 7 maja 2026 11:31

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Który z kodów PHP sprawi, że zostanie wyświetlona sformatowana data oraz czas ostatnich odwiedzin użytkownika witryny, natomiast podczas pierwszej wizyty nic się nie wyświetli?

Kod 1.   echo date('d.m.Y, H:i', $_COOKIE['c1']);
         setcookie('c1', time());

Kod 2.   if(isset($_COOKIE['c1']))
           echo date($_COOKIE['c1']);
         setcookie('c1', time(), time() + 30 * 86400);

Kod 3.   echo date($_COOKIE['c1']);
         setcookie('c1', time(), time() + 30 * 86400);

Kod 4.   setcookie('c1', time(), time() + 30 * 86400);
A. Kod 1.
B. Kod 2.
C. Kod 3.
D. Kod 4.
Prawidłowa odpowiedź to Kod 2. Ten kod wykorzystuje funkcję isset() w PHP do sprawdzenia, czy ciasteczko o nazwie 'c1' jest już ustawione. Jeżeli tak, oznacza to, że użytkownik odwiedził stronę wcześniej i kod wyświetla datę i czas jego ostatnich odwiedzin zapisane w tym ciasteczku. Następnie ciasteczko jest aktualizowane i zapisuje obecny czas, który będzie wyświetlany podczas następnej wizyty. Jeżeli ciasteczko 'c1' nie istnieje, oznacza to, że jest to pierwsza wizyta użytkownika na stronie. W takim przypadku kod nie wyświetla nic, a jedynie tworzy ciasteczko 'c1' z aktualnym czasem. To podejście jest zgodne z dobrymi praktykami w PHP, które zalecają użycie funkcji isset() do sprawdzenia istnienia zmiennej przed jej użyciem, co pozwala uniknąć błędów w przypadku, gdy zmienna nie jest zdefiniowana. Korektnie użycie ciasteczek pozwala na śledzenie aktywności użytkownika i dostosowywanie treści do jego potrzeb.

Pytanie 2

W CSS określono styl paragrafu, który nada mu następujące właściwości:

background-color: red;
color: blue;
margin: 40px;
A. tło niebieskie, kolor tekstu czerwony, marginesy zewnętrzne na poziomie 40 px
B. tło niebieskie, kolor tekstu czerwony, marginesy wewnętrzne na poziomie 40 px
C. tło czerwone, kolor tekstu niebieski, marginesy wewnętrzne na poziomie 40 px
D. tło czerwone, kolor tekstu niebieski, marginesy zewnętrzne na poziomie 40 px
Poprawna odpowiedź wskazuje na tło czerwone, kolor tekstu niebieski oraz marginesy zewnętrzne ustawione na 40 px. W deklaracji CSS, przypisanie 'background-color: red;' skutkuje czerwonym tłem dla elementu, co jest zgodne z zasadami oznaczania kolorów w CSS, które pozwalają na zastosowanie nazw kolorów, kodów hex czy rgb. 'color: blue;' ustawia kolor tekstu na niebieski, co pozwala na lepszą czytelność tekstu na czerwonym tle. Z kolei 'margin: 40px;' definiuje marginesy zewnętrzne, co oznacza, że odległość od innych elementów na stronie wynosi 40 px. Takie praktyki są zgodne z dobrymi standardami projektowania, które sugerują stosowanie kontrastujących kolorów dla poprawy dostępności oraz przestrzeni między elementami dla lepszej struktury layoutu. Warto pamiętać, że marginesy zewnętrzne różnią się od marginesów wewnętrznych (padding), co często jest źródłem nieporozumień.

Pytanie 3

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

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

Pytanie 4

W języku SQL, aby z tabeli Uczniowie wyodrębnić rekordy dotyczące wyłącznie uczennic o imieniu "Aleksandra", które przyszły na świat po roku "1998", należy sformułować zapytanie

A. SELECT * FROM Uczniowie WHERE imie ="Aleksandra" OR rok_urodzenia < "1998"
B. SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia > "1998"
C. SELECT * FROM Uczniowie WHERE imie="Aleksandra" OR rok_urodzenia > "1998"
D. SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia < "1998"
Ta odpowiedź jest prawidłowa, ponieważ wykorzystuje operator logiczny AND, aby jednocześnie spełnić dwa kryteria: imię uczennicy musi być równe 'Aleksandra', a rok urodzenia musi być większy niż 1998. Użycie AND zapewnia, że tylko te rekordy, które spełniają obydwa warunki, zostaną zwrócone, co jest zgodne z wymaganiami zadania. W praktyce, takie zapytanie mogłoby być użyte w systemie edukacyjnym do generowania raportów dla nauczycieli, aby zidentyfikować i analizować uczennice o konkretnych cechach. Stosowanie operatora AND jest zgodne z dobrymi praktykami w SQL, które preferują precyzyjne określenie warunków w zapytaniach. Warto również zauważyć, że w bazach danych, zapewnienie poprawności danych i odpowiednich filtrów na poziomie zapytań jest kluczowe, aby uniknąć błędnych analiz oraz zapewnić, że wyciągane informacje są rzetelne i użyteczne w kontekście podejmowania decyzji.

Pytanie 5

W SQL, aby zaktualizować informacje w wierszach w tabeli, konieczne jest użycie polecenia

A. ALTER TABLE
B. INSERT INTO
C. SELECT
D. UPDATE
Odpowiedź "UPDATE" jest właściwa, bo w SQL to właśnie to polecenie używamy do zmiany danych w już istniejących wierszach tabeli. Żeby zaktualizować konkretne kolumny w danym wierszu, trzeba wpisać coś takiego: "UPDATE nazwa_tabeli SET kolumna1 = wartość1, kolumna2 = wartość2 WHERE warunek". Dzięki klauzuli WHERE możemy dokładnie wskazać, które wiersze chcemy zmienić, co jest naprawdę ważne, żeby wszystko działało sprawnie i bezpiecznie. Na przykład, jeśli chcemy zmienić nazwisko użytkownika o id równym 1, napiszemy: "UPDATE Użytkownicy SET nazwisko = 'NoweNazwisko' WHERE id = 1". Używanie tego polecenia to dobra praktyka w zarządzaniu bazami danych. Nie zapominajmy o transakcjach, żeby mieć pewność, że dane są bezpieczne. A jak korzystamy z przygotowanych zapytań, to zminimalizujemy ryzyko ataków SQL injection, co jest bardzo istotne w kontekście bezpieczeństwa aplikacji bazodanowych.

Pytanie 6

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

A. czwarty oktet adresu IP serwera.
B. maksymalną liczbę jednoczesnych połączeń z sieci do serwera.
C. numer portu, na którym nasłuchuje serwer.
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 7

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

A. BOOLEAN
B. VARCHAR(5)
C. CHAR
D. DOUBLE
Wybór CHAR, DOUBLE lub VARCHAR(5) dla pola status czyWypozyczona jest nieoptymalny i prowadzi do różnych problemów związanych z przechowywaniem i przetwarzaniem danych. Typ CHAR jest przeznaczony do przechowywania łańcuchów o stałej długości, co w przypadku danych logicznych jest nieefektywne. Przechowywanie wartości 'true' i 'false' jako łańcuchów znakowych zajmuje więcej miejsca i komplikuje operacje porównywania, co negatywnie wpływa na wydajność zapytań. Z kolei typ DOUBLE jest zaprojektowany do przechowywania liczb zmiennoprzecinkowych, co jest absolutnie nieodpowiednie dla sytuacji, gdy mamy do czynienia z dwiema dychotomicznymi wartościami. Gdybyśmy zastosowali DOUBLE, moglibyśmy nieświadomie wprowadzać wartości, które nie mają sensu w kontekście statusu wypożyczenia, co wprowadzałoby chaos i błędy w danych. Typ VARCHAR(5) również jest nieodpowiedni, ponieważ chociaż umożliwia przechowywanie łańcuchów, nie jest to podejście rekomendowane dla danych logicznych, znów prowadząc do nieefektywności oraz ryzyka błędów typów. Używając niewłaściwych typów danych, można wprowadzać niejednoznaczność i utrudniać interpretację danych, co jest sprzeczne z zasadami projektowania baz danych. W praktyce, najlepsze podejście to stosowanie typów danych, które najlepiej pasują do charakterystyki przechowywanych informacji, co w tym przypadku jasno wskazuje na BOOLEAN jako najodpowiedniejszy wybór.

Pytanie 8

Zgodnie z zasadami ACID dotyczącymi transakcji, wymóg izolacji (ang. isolation) wskazuje, że

A. po zrealizowaniu transakcji system baz danych będzie w stanie spójności
B. jeśli dwie transakcje są wykonywane równolegle, to zazwyczaj nie zauważają wprowadzanych przez siebie zmian
C. pod określonymi warunkami dane modyfikowane przez transakcję mogą zostać anulowane
D. gdy wystąpi konflikt z inną transakcją, obie mogą modyfikować te same dane równocześnie
Po pierwsze, odpowiedź, która sugeruje, że po wykonaniu transakcji system bazy danych będzie spójny, nie odnosi się bezpośrednio do aspektu izolacji. Spójność to w rzeczywistości inne z wymaganych stanów ACID, które koncentruje się na tym, że wszystkie transakcje muszą zapewnić, że system przechodzi z jednego stanu spójnego do innego. Izolacja działa w zupełnie innym kontekście. Kolejna odpowiedź wskazująca na konflikt modyfikacji danych przez różne transakcje sugeruje sytuację, która w rzeczywistości powinna być unika, a nie opisana jako cecha izolacji. Izolacja ma na celu zapobieganie takim konfliktom, a nie ich akceptację. Dodatkowo, odpowiedź mówiąca o wycofywaniu danych pod pewnymi warunkami odnosi się do działania mechanizmu rollback, który jest związany z innym aspektem transakcji – atomowością. Atomowość dotyczy tego, czy cała transakcja zostanie pomyślnie zakończona, czy też w razie problemów zostanie wycofana, ale nie bezpośrednio do izolacji. Powszechny błąd myślowy polega na myleniu tych pojęć i ich wzajemnych interakcji. Właściwe zrozumienie izolacji jako ochrony przed widocznością zmian między transakcjami współbieżnymi jest kluczowe dla projektowania poprawnych i odpornych na błędy systemów baz danych.

Pytanie 9

Która komenda algorytmu odpowiada graficznej wizualizacji bloku przedstawionego na ilustracji?

Ilustracja do pytania
A. n <- n + 5
B. Wykonaj podprogram sortowania tablicy t
C. Wypisz n
D. n > 20
Analizując dostępne opcje należy zrozumieć że poprawna identyfikacja elementów algorytmu zależy od znajomości symboli używanych w schematach blokowych. Wybór n>20 jako poprawnej odpowiedzi wynika z rozpoznania rombu jako symbolu decyzji. Opcja Wypisz n sugeruje operację wyjściową która w schematach blokowych zwykle reprezentowana jest przez prostokąt z zakrzywionymi narożnikami co oznacza wyświetlanie wartości zmiennej. Instrukcja n <- n + 5 jest przykładem operacji przypisania lub inkrementacji która zazwyczaj oznacza modyfikację wartości zmiennej i byłaby przedstawiona jako prostokąt oznaczający proces. Natomiast Wykonaj podprogram sortowania tablicy t to wywołanie funkcji które także mieści się w zakresie standardowego bloku procesowego. Wybór tych opcji wskazuje na brak poprawnego zrozumienia jakie typy operacji reprezentują różne kształty w schematach blokowych co może prowadzić do błędów w projektowaniu algorytmów. Zrozumienie znaczenia każdego bloku jest kluczowe w procesie tworzenia dokładnych i funkcjonalnych modeli algorytmicznych które są podstawą efektywnego rozwiązywania problemów w informatyce i inżynierii oprogramowania. Warto zwrócić uwagę na standardy takie jak UML czy BPMN które także definiują podobne symbole i konwencje co ułatwia komunikację i dokumentację w zespołach projektowych.

Pytanie 10

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

div { border: solid 2px blue;
       margin: 20px;}
A. 2 px oraz marginesy zewnętrzne tego obramowania
B. 20 px oraz marginesy wewnętrzne tego obramowania
C. 20 px oraz marginesy zewnętrzne tego obramowania
D. 2 px oraz marginesy wewnętrzne tego obramowania
W definicji stylu CSS podano, że sekcja div będzie miała obramowanie o szerokości 2 pikseli oraz marginesy zewnętrzne o wartości 20 pikseli. Obramowanie jest definiowane przez właściwość 'border', gdzie 'solid' oznacza typ obramowania i '2px' to jego szerokość, a 'blue' to kolor. Marginesy zewnętrzne są definiowane za pomocą właściwości 'margin', która w tym przypadku ma wartość 20 pikseli. Jest to odległość między brzegiem obiektu a innymi elementami na stronie. Zrozumienie tych właściwości jest kluczowe w projektowaniu responsywnych i dobrze zorganizowanych układów stron internetowych. Stosując te właściwości, twórcy stron mogą łatwo kontrolować wygląd i odległości między elementami, co jest szczególnie ważne w kontekście użyteczności i estetyki witryny. Przykładowo, jeśli chciałbyś dodać więcej przestrzeni pomiędzy sekcjami, wystarczy zwiększyć wartość 'margin'. Warto również zaznaczyć, że te właściwości są zgodne z aktualnymi standardami CSS, co pozwala na ich wszechstronne wykorzystanie w praktyce.

Pytanie 11

Która z metod wyświetlenia tekstu nie jest określona w języku JavaScript?

A. Funkcja window.alert()
B. Metoda document.write()
C. Funkcja MessageBox()
D. Właściwość innerHTML
Każda z podanych odpowiedzi, oprócz Funkcji MessageBox(), jest technicznie poprawna w kontekście języka JavaScript. Własność innerHTML pozwala na manipulację zawartością HTML elementów na stronie, co jest powszechnie stosowane w aplikacjach webowych do dynamicznego aktualizowania treści. Przykład użycia innerHTML: document.getElementById('elementId').innerHTML = '<p>Nowy tekst!</p>'; co zmienia zawartość elementu o określonym identyfikatorze na nowy tekst. Metoda window.alert() jest również powszechnie używana do informowania użytkowników o ważnych informacjach w prosty sposób, chociaż może być uważana za nieco przestarzałą w kontekście nowoczesnego UX. Dobrą praktyką jest unikanie nadmiernego korzystania z alertów, które mogą irytować użytkowników. Metoda document.write() z kolei, choć używana do dodawania treści do strony, jest zalecana do stosowania wyłącznie w kontekście ładowania strony, ponieważ użycie tej metody po załadowaniu strony może prowadzić do nadpisania całego dokumentu, co może być mylące i problematyczne. Dlatego ważne jest, aby zrozumieć kontekst użycia różnych metod JavaScript, aby uniknąć typowych pułapek i poprawić jakość interakcji użytkownika z aplikacjami webowymi.

Pytanie 12

W trakcie edycji grafiki rastrowej w aplikacji obsługującej kanały, dodanie kanału alfa oznacza

A. wprowadzenie warstwy z przezroczystością
B. powiększenie głębi ostrości obrazu
C. ustalenie właściwego balansu bieli
D. wzmocnienie krawędzi obrazu
Dodanie kanału alfa do grafiki rastrowej jest kluczowym krokiem w procesie zarządzania przezroczystością w obrazach. Kanał alfa to dodatkowy kanał, który przechowuje informacje o przezroczystości pikseli, co pozwala na tworzenie efektów wizualnych, takich jak miękkie krawędzie i złożone kompozycje. W praktyce, zastosowanie kanału alfa umożliwia na przykład nałożenie obiektów na różne tła bez wyraźnych granic, co jest szczególnie przydatne w grafice komputerowej, projektowaniu stron internetowych czy produkcji wideo. Dobrą praktyką w branży jest korzystanie z programów graficznych, takich jak Adobe Photoshop czy GIMP, gdzie dodanie kanału alfa można zrealizować poprzez stworzenie warstwy maski. Podczas pracy w takich programach warto również pamiętać o wykorzystaniu formatu PNG, który obsługuje przezroczystość, co jest standardem w zapewnieniu wysokiej jakości grafiki w sieci.

Pytanie 13

Która z poniższych definicji funkcji w języku C++ przyjmuje argument typu rzeczywistego i zwraca wynik typu całkowitego?

A. float fun1(int a);
B. float fun1(void a);
C. void fun1(int a);
D. int fun1(float a);
Kiedy deklaracje funkcji nie są zgodne z wymaganiami co do parametrów i typów zwracanych, to może być kłopot. Na przykład, 'void fun1(int a);' nie zwraca nic, a to w kontekście pytania nie działa. Mamy też 'float fun1(int a);', która przyjmuje liczbę całkowitą, ale zwraca zmiennoprzecinkową, co też jest nie to, co nam potrzebne. A 'float fun1(void a);' to już totalne nieporozumienie, bo 'void' jako typ parametru to nieporozumienie. Musi być jasno określony typ dla każdego parametru. Jak widać, te błędy pokazują, jak istotne jest rozumienie typów danych w C++, bo jeśli coś się pomyli, to mogą być błędy w kompilacji albo w trakcie działania programu. W praktyce to oznacza, że programiści muszą naprawdę zwracać uwagę na definicje funkcji, żeby mieć pewność, że parametry i typy zwracane są zgodne z tym, co chcemy osiągnąć. Zrozumienie tych zasad to podstawa, żeby tworzyć łatwy do utrzymania kod.

Pytanie 14

Jak można zaznaczyć komentarz w kodzie PHP?

A. /? … ?/
B. /* … */
C. <? … ?>
D. <!-- …. -->
Komentarze w kodzie PHP można umieszczać za pomocą znaków /* … */. Jest to standardowy sposób na dodawanie notatek, które są ignorowane przez interpreter PHP. Komentarze wieloliniowe są szczególnie przydatne w przypadku, gdy chcemy opisać większe fragmenty kodu lub wyłączyć sekcje kodu bez ich usuwania. Na przykład, możemy umieścić w komentarzach informacje o autorze, dacie powstania lub szczegóły dotyczące funkcjonalności danej funkcji. Dobrą praktyką jest również dokumentowanie ważnych informacji dotyczących zmiennych czy parametrów funkcji, co ułatwia przyszłą konserwację kodu. Warto pamiętać, że użycie komentarzy jest kluczowe w pracy zespołowej lub w projektach długoterminowych, gdzie zrozumienie kodu przez innych programistów może być kluczowe dla sukcesu projektu. Ponadto, stosowanie komentarzy zgodnie z dobrymi praktykami programowania zwiększa czytelność kodu i ułatwia jego późniejsze modyfikacje oraz debugowanie.

Pytanie 15

Jaką instrukcję w JavaScript można uznać za równoważną pod względem funkcjonalności do zaprezentowanej?

Ilustracja do pytania
A. Kod 4
B. Kod 3
C. Kod 2
D. Kod 1
W przypadku analizy niepoprawnych odpowiedzi, ważne jest zrozumienie błędnych koncepcji, które mogą prowadzić do błędnych wniosków. W Kodzie 1 błędnie zastosowano mechanizm else, który prowadzi do tego, że ostatnia operacja jest wykonywana zawsze, gdy żaden poprzedni warunek nie jest spełniony. Może to prowadzić do nieprzewidywalnych wyników, jeśli wartość 'dzialanie' nie pasuje do żadnego z przypadków. Kod 3, z użyciem operatora !=, nie zapewnia prawidłowego działania, gdyż realizuje wszystkie operacje niezależnie od wartości 'dzialanie', co jest sprzeczne z zamiarem instrukcji switch. To powszechny błąd, gdzie brak pełnego zrozumienia logiki warunkowej prowadzi do pomyłek w implementacji. Z kolei, Kod 4 ma poprawną strukturę if-else if, ale różni się od poprawnej odpowiedzi nadmiarem zagnieżdżonych warunków, co może wprowadzać niepotrzebne komplikacje i zwiększać czas wykonania. Zrozumienie błędów w logice warunkowej jest kluczowe do pisania efektywnego i poprawnego kodu, co jest fundamentalne w programowaniu aplikacji o wysokiej niezawodności. Kluczem do unikania takich błędów jest praktyka i głębokie zrozumienie struktury danych oraz logiki w programowaniu.

Pytanie 16

SELECT miasto, AVG(pensja) FROM pracownicy GROUP BY miasto;
Podane zapytanie wybierze:
A. nazwy miast z powtórzeniami oraz sumę pensji dla każdego z nich.
B. nazwy miast bez powtórzeń oraz sumę pensji dla każdego z nich.
C. nazwy miast bez powtórzeń oraz średnią pensję dla każdego z nich.
D. nazwy miast z powtórzeniami oraz średnią pensję dla każdego z nich.
Zapytanie z klauzulą GROUP BY i funkcją AVG bywa mylone z sumowaniem danych lub zwykłym wybieraniem rekordów jeden po drugim. W tym konkretnym przypadku bardzo łatwo pomylić średnią z sumą albo nie zauważyć, że grupowanie usuwa powtórzenia wartości w kolumnie grupującej. Warto to uporządkować. Funkcja AVG(pensja) jest klasyczną funkcją agregującą, której zadaniem jest obliczenie średniej arytmetycznej z wartości w danej grupie rekordów. Nie dodaje ona wszystkich pensji „na kupę” tak jak SUM, tylko dzieli ich sumę przez liczbę rekordów w grupie. Jeżeli ktoś spodziewa się sumy, to patrzy bardziej w stronę SUM(pensja), a nie AVG(pensja). To jest typowy błąd: widzimy funkcję agregującą i automatycznie myślimy „to pewnie suma”, bez dokładnego przeczytania nazwy funkcji. Druga kwestia to powtórzenia miast. Klauzula GROUP BY miasto mówi silnikowi bazy danych: pogrupuj wszystkie wiersze według wartości w kolumnie miasto. W efekcie wszystkie rekordy z tym samym miastem są łączone w jedną grupę. Dla każdej takiej grupy zwracany jest dokładnie jeden wiersz wyniku. To oznacza, że w rezultacie zapytania nie ma powtórzonych nazw miast, nawet jeśli w tabeli jest tysiąc pracowników z Warszawy czy Krakowa. Częsty błąd myślowy polega na przenoszeniu intuicji z prostego SELECT bez GROUP BY, gdzie miasto faktycznie się powtarza, na zapytanie z agregacją, gdzie logika jest już inna. W odpowiedziach, które sugerują „z powtórzeniami”, ignorowane jest działanie GROUP BY. Z kolei odpowiedzi mówiące o „sumie pensji” mylą AVG z SUM, co w praktyce może prowadzić do bardzo poważnych błędów analitycznych – wyobraź sobie raport płacowy, w którym zamiast średniej ktoś pokaże sumę wynagrodzeń i na tej podstawie będzie porównywał miasta. Moim zdaniem dobrą praktyką jest zawsze czytanie zapytania fragment po fragmencie: najpierw jakie kolumny są wybierane, potem jakie funkcje agregujące są użyte, a na końcu po czym następuje grupowanie. Taka metoda pozwala uniknąć właśnie takich nieporozumień i lepiej rozumieć, co dokładnie zwróci baza danych, co jest kluczowe przy pracy z realnymi systemami produkcyjnymi.

Pytanie 17

Aby włączyć zewnętrzny skrypt JavaScript zatytułowany skrypt.js, należy umieścić w kodzie HTML

A. <link rel="script" href="skrypt.js" />
B. <script src="skrypt.js"></script>
C. <link rel="JavaScript" type="js" href="skrypt.js" />
D. <script> skrypt.js </script>
Wiele z niepoprawnych odpowiedzi opiera się na nieporozumieniach co do właściwej składni używania JavaScript w dokumentach HTML. Odpowiedź <link rel="JavaScript" type="js" href="skrypt.js" /> jest błędna, ponieważ element <link> jest stosowany głównie do łączenia stylów CSS, a nie skryptów JavaScript. Atrybuty rel i type w tym kontekście nie mają zastosowania, co prowadzi do niepoprawnego załączenia skryptu. Kolejny przykład, <link rel="script" href="skrypt.js" />, również jest niewłaściwy, ponieważ nie istnieje atrybut rel o nazwie "script" w kontekście tagu <link>. Użycie atrybutu rel w kontekście skryptów nie jest zgodne z żadnym standardem HTML. Z kolei odpowiedź <script> skrypt.js </script> jest błędna, ponieważ nie używa atrybutu src, co oznacza, że przeglądarka nie będzie wiedziała, gdzie znaleźć plik skrypt.js. To podejście jest zatem nieefektywne i nieintuicyjne. Właściwe podejście do dołączania skryptów JavaScript polega na używaniu tagu <script> z atrybutem src, co jest zgodne z najlepszymi praktykami i standardami branżowymi. Takie zrozumienie składni HTML i JavaScript jest kluczowe dla każdego dewelopera webowego, aby zapewnić właściwą integrację i funkcjonalność stron internetowych.

Pytanie 18

Fragment kodu SQL wskazuje, że klucz obcy

FOREIGN KEY (imie) REFERENCES obiekty (imiona) …
A. jest odniesieniem do siebie samego
B. wiąże się z kolumną imiona
C. znajduje się w tabeli obiekty
D. jest przypisany do kolumny obiekty
Próba interpretacji klucza obcego jako referencji do samego siebie jest niepoprawna, ponieważ klucz obcy w SQL zasadniczo odnosi się do kolumny w innej tabeli, a nie do tej samej tabeli. W rzeczywistości, klucz obcy może być zdefiniowany w obrębie tej samej tabeli, co nazywa się rekurencyjnym kluczem obcym, ale w przedstawionym przypadku odnosi się on do kolumny w tabeli 'obiekty'. Odpowiedź sugerująca, że klucz obcy znajduje się w tabeli 'obiekty' jest myląca, ponieważ definicja klucza obcego nie dotyczy miejsca jego przechowywania, lecz relacji między tabelami. Z kolei stwierdzenie, że klucz obcy jest ustawiony na kolumnie 'obiekty' również jest błędne, ponieważ odnosi się do kolumny 'imiona', co jest kluczowym punktem w zrozumieniu struktury relacyjnych baz danych. Klucz obcy powinien zawsze odnosić się do klucza podstawowego innej tabeli, co ma na celu zapewnienie integralności referencyjnej. Typowe błędy myślowe, które prowadzą do takich nieprawidłowych wniosków, obejmują niepełne zrozumienie koncepcji relacji tabelarycznych oraz mylenie kluczy podstawowych i obcych.

Pytanie 19

Informacje o ciasteczkach są przechowywane w tablicy

A. $_SERVER
B. $_GET
C. $_POST
D. $_COOKIE
Odpowiedź $_COOKIE jest prawidłowa, ponieważ to właśnie ten superglobalny zbiór w PHP przechowuje dane ciasteczek w postaci tablicy asocjacyjnej. Ciasteczka są małymi plikami danych, które są przechowywane na komputerze użytkownika przez przeglądarkę internetową. Umożliwiają one stronom internetowym przechowywanie informacji na temat sesji użytkownika, preferencji lub stanu logowania. W praktyce, aby uzyskać wartość konkretnego ciasteczka, można użyć składni $_COOKIE['nazwa_ciasteczka']. Na przykład, jeśli mamy ciasteczko o nazwie 'user', możemy uzyskać jego wartość przez $_COOKIE['user']. Warto pamiętać, że ciasteczka są limitowane do 4KB danych oraz mają różne daty wygaśnięcia, co czyni je elastycznym narzędziem do zarządzania sesjami i preferencjami użytkowników w aplikacjach webowych. Dobre praktyki mówią, aby nie przechowywać w ciasteczkach informacji wrażliwych, a zamiast tego stosować mechanizmy szyfrowania, aby zwiększyć bezpieczeństwo przechowywanych danych.

Pytanie 20

Aby grupować obszary na poziomie bloków, które będą stylizowane za pomocą znacznika: należy wykorzystać

A. <p>
B. <span>
C. <div>
D. <param>
Znaczniki <p>, <param> i <span> mają różne funkcje, ale nie nadają się do grupowania elementów w poziomie bloków. Element <p> jest używany głównie do akapitów tekstu, więc nie można go wykorzystać do organizowania innych rzeczy jak obrazy czy formularze. To znaczy, że nie sprawdzi się w bardziej złożonych strukturach, gdzie potrzebujesz elastyczności i różnych typów treści. Z <span> jest podobnie, bo on grupuje tekst w obrębie bloku, ale działa w linii, więc nie tworzy nowych wierszy ani nie zmienia układu. A <param> jest do osadzania obiektów, jak wideo, więc nie ma tu nic wspólnego z grupowaniem treści. Przypisywanie tych funkcji tym znacznikom to błąd, bo każdy z nich ma swoje konkretne zastosowanie, które musisz znać, żeby dobrze projektować strony zgodnie z nowoczesnymi standardami.

Pytanie 21

Aby za pomocą CSS zdefiniować przedstawione na rysunku opływanie obrazu tekstem należy w stylu obrazu wprowadzić zapis

Ilustracja do pytania
A. float: left;
B. clear: both;
C. table: left;
D. float: right;
Gratulacje, Twoja odpowiedź jest prawidłowa! Właściwość CSS 'float' z wartością 'right' jest kluczowa, gdy chcemy, aby obraz był przesunięty na prawą stronę, a tekst opływał obraz od lewej strony. Jest to zgodne ze standardami tworzenia stron internetowych i jest dobrą praktyką, aby uzyskać czysty i profesjonalny wygląd strony. Właściwość 'float' jest niezwykle ważna w kontekście układu strony, pozwala na manipulację elementami i ich pozycją względem siebie. Wartością tej właściwości, oprócz 'right', może być także 'left' lub 'none', które odpowiednio spowodują opływanie obrazu przez tekst z prawej strony lub uniemożliwią opływanie. Pamiętaj, że umiejętność manipulacji tekstem i obrazami jest kluczowa do tworzenia atrakcyjnych i funkcjonalnych stron internetowych.

Pytanie 22

Polecenie SQL:

GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost
Przedstawione polecenie SQL nadaje użytkownikowi adam@localhost prawa:
A. do manipulowania danymi bazy danych klienci
B. do manipulowania danymi w tabeli klienci
C. do zarządzania strukturą tabeli klienci
D. do zarządzania strukturą bazy danych klienci
W kontekście analizy niepoprawnych odpowiedzi, odpowiedzi dotyczące zarządzania strukturą tabeli klienci oraz zarządzania strukturą bazy danych klienci są niepoprawne, ponieważ polecenie GRANT nie odnosi się do tych aspektów. Zarządzanie strukturą tabeli zazwyczaj obejmuje takie operacje jak tworzenie lub modyfikowanie tabel, co jest realizowane przez polecenia takie jak CREATE TABLE czy ALTER TABLE. W przypadku polecenia GRANT, nie ma mowy o wprowadzaniu zmian w strukturze tabeli, a jedynie o nadawaniu uprawnień do manipulacji danymi. Podobnie, zarządzanie strukturą bazy danych dotyczy bardziej operacji administracyjnych, takich jak tworzenie bazy danych, co również nie jest tożsame z uprawnieniami do operacji na danych. Ostatnia z niepoprawnych odpowiedzi, dotycząca manipulowania danymi bazy danych klienci, jest również myląca, ponieważ odnosi się do całej bazy danych jako całości, podczas gdy polecenie dotyczy wyłącznie konkretnej tabeli. W praktyce, zarządzanie danymi w kontekście bazy danych oznacza operacje na zbiorze danych, a nie na pojedynczych rekordach w tabelach. Dlatego kluczowe jest zrozumienie, że GRANT pozwala na nadawanie uprawnień do działania na konkretnej tabeli, a nie na całej bazie danych czy jej strukturze.

Pytanie 23

Wskaźnik HTML, który umożliwia oznaczenie tekstu jako błędnego lub nieodpowiedniego poprzez jego przekreślenie, to jaki?

A. <s> </s>
B. <b> </b>
C. <u> </u>
D. <em> </em>
Element <s> w HTML służy do oznaczania tekstu jako nieaktualnego, błędnego albo już nieobowiązującego poprzez jego przekreślenie. Przeglądarka domyślnie renderuje taki fragment z poziomą linią przez środek tekstu. W praktyce używa się go np. przy cenach promocyjnych: <p>Stara cena: <s>199 zł</s> Nowa cena: 149 zł</p> albo przy korektach treści, kiedy chcemy pokazać, że coś zostało zmienione, ale wciąż widoczne jest, co było wcześniej. Warto wiedzieć, że historycznie do podobnych celów używano też <strike>, ale ten znacznik jest przestarzały (deprecated) w standardzie HTML i nie powinien być już stosowany. Moim zdaniem lepiej od razu przyzwyczajać się do poprawnych, aktualnych tagów, bo to się później opłaca przy większych projektach. W nowszych specyfikacjach HTML5 zaleca się stosowanie <s> właśnie do treści nieaktualnych, ale nie takich, które zostały formalnie wycofane – do tego jest znacznik <del>, który dodatkowo semantycznie wskazuje usunięcie fragmentu, często używany w systemach kontroli wersji treści. Z mojego doświadczenia warto rozróżniać <s>, <del> i <ins>, bo w połączeniu z CSS i narzędziami do dostępności (np. czytnikami ekranu) daje to lepszą semantykę dokumentu. Dobrą praktyką jest też nie nadużywać przekreśleń tylko dla „efektu wizualnego” – jeśli chcesz coś tylko wyróżnić graficznie, lepiej użyć CSS, a znaczników semantycznych używać zgodnie z ich przeznaczeniem.

Pytanie 24

Wskaż, który z poniższych jest poprawnym zapisem zmiennej w języku JavaScript.

A. let variableName = 10;
B. var $name@ = 10;
C. const var-name = 10;
D. var 2nameVar = 10;
W JavaScript istnieje kilka zasad dotyczących nazywania zmiennych, które są kluczowe dla poprawnego działania kodu. Zmienna nie może zaczynać się od cyfry, co jest błędem w przypadku zapisu <code>var 2nameVar = 10;</code>. Numer na początku nazwy zmiennej jest zabroniony, ponieważ może prowadzić do niejednoznaczności w rozumieniu kodu przez interpreter. Z kolei <code>const var-name = 10;</code> jest błędny z powodu użycia znaku minus, który nie jest dozwolony w nazwach zmiennych. Znak minus jest interpretowany jako operator, co powoduje, że taki zapis jest nieprawidłowy. Kolejna niepoprawna opcja to <code>var $name@ = 10;</code>. Chociaż znak dolara jest dozwolony w nazwach zmiennych, to znak <code>@</code> już nie. Użycie niedozwolonych znaków w nazwach zmiennych jest częstym błędem początkujących programistów, którzy nie są zaznajomieni z pełnym zakresem dozwolonych symboli. Moim zdaniem, zrozumienie tych zasad jest kluczowe, aby uniknąć typowych pułapek w programowaniu. Dodatkowo, stosowanie się do standardowych konwencji nazewnictwa, takich jak camelCase, poprawia czytelność i zrozumiałość kodu, co jest istotne w pracy zespołowej i podczas utrzymania większych projektów. Warto pamiętać, że przestrzeganie dobrych praktyk programistycznych nie tylko zapobiega błędom, ale również ułatwia rozwój i testowanie aplikacji.

Pytanie 25

Dane są liczby całkowite różne od zera w tablicy nazwanej tab. Podany poniżej kod w języku PHP ma na celu

Ilustracja do pytania
A. zmienić wartości tablicy na te zapisane w zmiennej liczba
B. zmienić wszystkie elementy tablicy na liczby o przeciwnym znaku
C. obliczenie wartości bezwzględnej poszczególnych elementów tablicy
D. wyliczenie iloczynu wszystkich wartości w tablicy
Kod pokazany na obrazku używa konstrukcji foreach z operatorem referencji ampersand aby iterować po tablicy tab i zmieniać każdy jej element. Operator referencji & pozwala na bezpośrednią modyfikację wartości w tablicy. Instrukcja $liczba = $liczba * (-1) w pętli foreach zmienia znak każdej liczby na przeciwny co oznacza że dodatnie liczby stają się ujemne a ujemne stają się dodatnie. Dzięki temu możliwe jest szybkie odwrócenie znaków wszystkich elementów w tablicy co jest powszechnie stosowane w programowaniu aby przygotować dane do dalszych operacji matematycznych lub analizy. Unset($liczba) jest używane po pętli aby odłączyć referencję co jest dobrą praktyką zapobiegającą przypadkowym modyfikacjom przyszłych danych. Zastosowanie tego wzorca jest efektywne i pozwala na bezpieczną manipulację strukturą danych w PHP. Technika ta jest użyteczna nie tylko w kontekście matematycznym ale również w przypadkach gdzie wymagane jest szybkie przetwarzanie dużych ilości danych.

Pytanie 26

Jakie słowo kluczowe wykorzystuje się do deklaracji zmiennej w języku JavaScript?

A. var
B. instanceof
C. variable
D. new
W JavaScript, żeby zadeklarować zmienną, używa się słowa 'var'. To jeden z najważniejszych elementów tego języka. Używając 'var', tworzysz zmienną, która może mieć zasięg tylko w danej funkcji albo być dostępna globalnie, w zależności od tego, jak ją zadeklarujesz. Jeśli na przykład napiszesz 'var x = 10;', to stworzysz zmienną 'x' i przypiszesz jej wartość 10. Warto jednak zauważyć, że od momentu, gdy wprowadzono ES6, zaleca się używanie 'let' oraz 'const' do deklaracji zmiennych, bo są bardziej przewidywalne, zwłaszcza jeśli chodzi o zasięg zmiennych (block scope). Mimo to, 'var' wciąż można spotkać w wielu starych projektach i dobrze jest znać to słowo, żeby lepiej rozumieć, jak działa JavaScript. Fajnie jest ograniczać 'var' na rzecz 'let' i 'const', bo dzięki temu kod staje się bardziej przejrzysty i łatwiejszy do ogarnienia w większych projektach.

Pytanie 27

W języku HTML aby zdefiniować słowa kluczowe strony, należy użyć zapisu

A. <meta name = "description" content = "psy, koty, gryzonie">
B. <meta name = "keywords" content = "psy, koty, gryzonie">
C. <meta keywords = "psy, koty, gryzonie">
D. <meta name = "keywords" = "psy, koty, gryzonie">
Poprawna odpowiedź to <meta name = "keywords" content = "psy, koty, gryzonie">, ponieważ jest to właściwy sposób definiowania słów kluczowych w sekcji <head> dokumentu HTML. Element <meta> służy do dostarczania metadanych o stronie internetowej, a atrybut 'name' określa, jakie informacje są zawarte w danym elemencie. W przypadku 'keywords', atrybut 'content' z kolei zawiera listę słów kluczowych, które są związane z treścią strony. Chociaż znaczenie słów kluczowych w SEO zmienia się, wciąż są one używane przez niektóre wyszukiwarki do kategoryzowania zawartości strony. Przykładowo, jeśli strona dotyczy zwierząt domowych, użycie fraz takich jak 'psy', 'koty', czy 'gryzonie' w atrybucie 'content' może pomóc w poprawie widoczności w wynikach wyszukiwania. Dobrą praktyką jest, aby słowa kluczowe były specyficzne, związane z tematyką strony i nie przekraczały rozsądnej liczby, aby nie wprowadzać w błąd algorytmy wyszukiwarek. Używanie odpowiednich metatagów to kluczowy element optymalizacji SEO.

Pytanie 28

W programie Microsoft Access mechanizmem ochrony danych związanym z tabelą i kwerendą jest

A. ustalanie limitów przestrzeni na dysku
B. określanie zakresu tabel
C. przypisanie uprawnień
D. wykorzystanie makr
Przypisanie uprawnień jest kluczowym elementem zarządzania bezpieczeństwem w Microsoft Access, ponieważ pozwala na kontrolowanie, kto ma dostęp do danych w tabelach i kwerendach. W praktyce, administratorzy baz danych mogą definiować, które grupy użytkowników mogą przeglądać, edytować lub usuwać dane. To podejście jest zgodne z zasadą najmniejszych uprawnień, co oznacza, że użytkownicy otrzymują tylko te uprawnienia, które są im niezbędne do wykonywania swoich zadań. Na przykład, jeśli pracownik potrzebuje jedynie przeglądać dane w konkretnej tabeli, administrator może przyznać mu jedynie uprawnienia do odczytu, co minimalizuje ryzyko nieautoryzowanych zmian. Warto także wspomnieć, że przypisanie uprawnień nie ogranicza się tylko do tabel, ale dotyczy również kwerend, formularzy i raportów, co pozwala na szczegółowe zarządzanie dostępem do różnych zasobów systemu. Dobre praktyki w zakresie bezpieczeństwa baz danych zalecają regularne audyty uprawnień, aby upewnić się, że są one nadal odpowiednie do zmieniających się potrzeb organizacji oraz roli użytkowników.

Pytanie 29

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

Ilustracja do pytania
A. C
B. A
C. D
D. B
Niepoprawne podejścia w odpowiedziach A, B i C wynikają z błędnego zastosowania znaczników HTML, co wpływa na sposób, w jaki przeglądarka interpretuje dane w tabeli. Odpowiedź A używa znaczników <td> zamiast <th> do definiowania nagłówków kolumn. Znacznik <td> jest przeznaczony do zwykłych komórek tabeli, co sprawia, że przeglądarka nie traktuje ich jako nagłówków, przez co nie są wstępnie formatowane jako pogrubione i wyśrodkowane. To podejście narusza zasady semantyki HTML, ponieważ nagłówki powinny być jasno zdefiniowane za pomocą <th>, co wspiera dostępność i zrozumienie struktury danych. Odpowiedź B, mimo że używa <th>, stosuje dodatkowo <i>, co zmienia styl na kursywę, a to nie odpowiada formatowi wizualnemu przedstawionemu w pytaniu. Użycie <i> może być mylące, jeśli nie jest to zgodne z oczekiwanym stylem, i może powodować problemy z dostępnością. Wreszcie, odpowiedź C używa <center>, co jest przestarzałym sposobem na wyrównanie treści w HTML. Zamiast tego, stylowanie powinno być osiągane za pomocą CSS, co jest zgodne z nowoczesnymi standardami projektowania stron i wspiera lepszą separację struktury od prezentacji. Wszystkie te podejścia pokazują, jak ważne jest stosowanie semantycznych elementów HTML dla poprawności i dostępności stron internetowych, a jednocześnie podkreślają znaczenie zgodności z aktualnymi standardami sieciowymi.

Pytanie 30

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

A. <?php> .......................... <php?>
B. <?php ................................ ?>
C. <php>  .......................  </php>
D. <php ..................................... />
Żeby umieścić kod PHP w pliku o rozszerzeniu .php, trzeba użyć znaczników <?php i ?>. Te znaczniki mówią serwerowi, że wszystko, co jest między nimi, należy traktować jako kod PHP. To jest standardowa praktyka w PHP, ważne jest, aby kod był właściwie przetwarzany przez interpreter. Na przykład, jeżeli chcemy pokazać napis na stronie, możemy użyć: <?php echo 'Witaj świecie!'; ?>. Dzięki temu można w łatwy sposób wpleść kod PHP w plik HTML i robić różne rzeczy, jak np. pracować z bazami danych czy obsługiwać formularze. Zrozumienie tych znaczników jest mega ważne dla każdego programisty, bo wpływa to na wydajność i bezpieczeństwo aplikacji. Jeszcze jedno, PHP to język dynamicznie typowany, więc jego interpretacja może się różnić w zależności od kontekstu. Dlatego tak istotne jest, żeby dobrze formatować kod.

Pytanie 31

Funkcję o nazwie policz, napisaną w PHP, wywołano z argumentem $Z = 1. Jaki wynik zostanie zwrócony? ```function policz($Z) { while($Z < 5) { $Z += 2 * $Z + 1; } return $Z; }```

A. 7
B. 4
C. 13
D. 1
Funkcja 'policz' przyjmuje argument $Z, który w tym przypadku wynosi 1. Wewnątrz funkcji znajduje się pętla while, która wykonuje się tak długo, jak $Z jest mniejsze od 5. W każdym kroku pętli wartość $Z jest aktualizowana zgodnie z równaniem $Z += 2 * $Z + 1. Przy pierwszym wywołaniu pętli, $Z = 1, co daje nam $Z = 1 + 2 * 1 + 1 = 4. Wartość $Z jest teraz równa 4, co wciąż spełnia warunek pętli, więc pętla wykonuje się jeszcze raz. W drugiej iteracji, $Z = 4, więc $Z = 4 + 2 * 4 + 1 = 13. Teraz $Z jest większe od 5, co kończy działanie pętli. Funkcja zwraca wartość 13. Użycie pętli while w tym przypadku ilustruje, jak można implementować iteracyjne obliczenia w PHP, co jest kluczowe w programowaniu i pozwala na efektywne wykonywanie powtarzających się zadań. Praktyczne zastosowanie tej techniki obejmuje obliczenia, które wymagają wielokrotnego aktualizowania wartości, takie jak obliczenia statystyczne czy algorytmy przeszukiwania.

Pytanie 32

Formularz przesyła informacje do pliku skrypt.php po naciśnięciu przycisku oznaczonego jako "WYŚLIJ". Wskaż właściwą definicję formularza.

Ilustracja do pytania
A. Skrypt 1
B. Skrypt 2
C. Skrypt 4
D. Skrypt 3
W formularzu HTML do wysłania danych do określonego skryptu należy użyć atrybutu action w znaczniku form co określa adres URL do którego zostaną przesłane dane. Ponadto kluczowy jest atrybut type elementu input który powinien być ustawiony na submit aby umożliwić wysłanie danych po naciśnięciu przycisku. Skrypt 4 jest poprawny ponieważ zawiera zarówno poprawną definicję action="skrypt.php" jak i właściwe określenie typu przycisku jako submit. Taka konstrukcja jest zgodna ze standardami HTML5 i jest powszechnie stosowana w tworzeniu interaktywnych formularzy internetowych. Poprawne wysyłanie formularzy jest kluczowe w wielu aplikacjach webowych szczególnie w kontekście przesyłania danych użytkownika do serwera gdzie mogą być one przetwarzane lub przechowywane. Przy projektowaniu formularza ważne jest również uwzględnienie bezpieczeństwa danych używając metod takich jak POST zamiast GET co zapobiega wyciekom danych w adresie URL. Dobre praktyki obejmują także walidację po stronie klienta oraz serwera aby upewnić się że przesyłane informacje spełniają wymagane kryteria co minimalizuje ryzyko błędów i potencjalnych ataków."

Pytanie 33

Jaką wartość wyświetli standardowe wyjście dla podanego w ramce fragmentu kodu w języku C++?

Ilustracja do pytania
A. 0
B. 3
C. 2
D. 32
Analizując podane odpowiedzi warto zwrócić uwagę na podstawowe błędy w zrozumieniu działania operatorów w języku C++. Operator %= jest często źle interpretowany jako zwykłe dzielenie zamiast operacji modulo co prowadzi do błędnych wniosków takich jak wynik równy 0 lub 32. Reszta z dzielenia 32 przez 3 nie wynosi 0 ponieważ 32 nie dzieli się przez 3 bez reszty. Zapominając że operator ten zwraca resztę nie wynik dzielenia łatwo jest przyjąć błędne założenia. Dodatkowo zignorowanie inkrementacji x++ po operacji modulo może prowadzić do niepoprawnego oczekiwania że wynik pozostanie 2. Inkrementacja to podstawowa operacja która zwiększa wartość zmiennej o 1 co jest kluczowe w wielu algorytmach i strukturach danych. Brak zrozumienia tej operacji często prowadzi do błędnych rezultatów w programach. Przy rozwiązywaniu takich problemów należy brać pod uwagę sekwencję operacji oraz ich wpływ na końcowy rezultat. Praktyka oraz dokładna analiza działania poszczególnych operatorów pozwalają uniknąć typowych błędów które mogą powodować nieoczekiwane zachowanie aplikacji. Dobrze jest testować kod w małych fragmentach aby zobaczyć bezpośredni wpływ operacji na wynik co jest zgodne z dobrymi praktykami w programowaniu ukierunkowanym na testowanie i debugowanie. Zrozumienie tych koncepcji ułatwia pisanie wydajnego i niezawodnego kodu co jest celem każdego programisty w profesjonalnym środowisku.

Pytanie 34

Globalne zmienne do przechowywania informacji o ciasteczkach oraz sesjach: $_COOKIE oraz $_SESSION stanowią część języka

A. PHP
B. Perl
C. C#
D. JavaScript
Odpowiedzi C# i JavaScript są niewłaściwe, ponieważ te języki programowania nie posiadają natywnej obsługi dla $_COOKIE oraz $_SESSION, które są specyficzne dla PHP. C# jest językiem wykorzystywanym głównie w kontekście aplikacji webowych ASP.NET, gdzie zarządzanie stanem sesji odbywa się w zupełnie inny sposób, zazwyczaj przy użyciu obiektów typu SessionState, które są zintegrowane z serwerem. Użycie ciasteczek w C# wymaga od programisty ręcznego zarządzania headerami HTTP i cookie, co może być bardziej złożone i wymagające. Z kolei JavaScript, będący językiem skryptowym działającym po stronie klienta, nie ma bezpośredniego dostępu do sesji serwera ani nie operuje na $_COOKIE, które są mechanizmem PHP. JavaScript może korzystać z ciasteczek, ale jego zastosowanie w zakresie utrzymywania sesji jest ograniczone, ponieważ nie oferuje on zarządzania stanem aplikacji na poziomie serwera. W rzeczywistości, programiści mogą mylić rolę ciasteczek i sesji, sądząc, że oba mechanizmy są identyczne, podczas gdy różnią się one w kontekście przechowywania i bezpieczeństwa danych. Właściwe zrozumienie tych różnic jest kluczowe dla efektywnego projektowania aplikacji webowych, dlatego ważne jest, aby odnosić się do odpowiednich dokumentacji i standardów dla każdego z używanych języków.

Pytanie 35

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

A. Ukrywanie oraz odkrywanie elementów strony w zależności od bieżącej pozycji kursora
B. Zmiana stylu HTML na stronie spowodowana ruchem kursora
C. Walidacja danych wpisanych w pole tekstowe w czasie rzeczywistym
D. Zapisanie danych pobranych z aplikacji internetowej do bazy danych
Zapis danych z aplikacji internetowej w bazie to super ważna sprawa. Ogólnie mówiąc, to serwer się tym zajmuje. To on trzyma i zarządza informacjami, które wysyłamy, jak się rejestrujemy czy wypełniamy jakieś formularze. Kiedy użytkownik coś wpisuje, te dane muszą lecieć do serwera, gdzie są przetwarzane i lądować w bazie danych. Przykładowo, w relacyjnych bazach danych, jak MySQL czy PostgreSQL, używa się zapytań SQL do zarządzania tymi danymi, co ułatwia ich późniejsze szukanie. Warto też pamiętać o bezpieczeństwie – serwer musi robić walidację danych, żeby nie dać się nabrać na ataki typu SQL Injection. No i architektura MVC świetnie pokazuje, jak ważne jest miejsce serwera dla danych. Zapis danych to po prostu kluczowy element w działaniu aplikacji webowych.

Pytanie 36

Jakie polecenie pozwala na dodanie kolumny zadaniekompletne do tabeli zadania?

A. ADD COLUMN zadaniekompletne WITH zadania
B. CREATEINDEX zadania ADD COLUMN zadaniekompletne int
C. ALTER TABLE zadania ADD COLUMN zadaniekompletne int
D. INSERT INTO zadania VALUES zadaniakompletne
Odpowiedź 'ALTER TABLE zadania ADD COLUMN zadaniekompletne int' jest rzeczywiście na miejscu. To polecenie ALTER TABLE to standardowy sposób na zmiany w tabelach w SQL. Dzięki niemu możemy dodawać, usuwać czy zmieniać kolumny, a także wprowadzać różne ograniczenia. W tym przypadku dodajemy nową kolumnę 'zadaniekompletne', która będzie przyjmować wartości całkowite (int). Fajnym przykładem zastosowania tego polecenia może być śledzenie postępu zadań w projekcie. Kolumna 'zadaniekompletne' mogłaby oznaczać, czy zadanie jest skończone (np. 0 dla nieukończonego, 1 dla ukończonego). Zawsze warto pomyśleć o tym, jak takie zmiany mogą wpłynąć na istniejące dane oraz aplikacje korzystające z tej tabeli, żeby nie narazić się na różne problemy z danymi.

Pytanie 37

W C++ stworzono zmienną: char zm1;. Jak można przypisać do niej wartość, zgodnie ze składnią tego języka?

A. zm1 = 'w'
B. zm1[2] = 32
C. zm1 = "wiadro"
D. zm1 == 0x35
Odpowiedzi, które nie zostały wybrane, zawierają istotne błędy koncepcyjne w kontekście przypisywania wartości do zmiennych typu char. Przykładowo, przypisanie 'zm1[2] = 32;' jest błędne, ponieważ próbujemy odwołać się do konkretnego indeksu w zmiennej char, co nie ma sensu, gdy char to pojedynczy znak, a nie tablica. Wartość '32' jest także nieodpowiednia, ponieważ jest to kod ASCII, a nie znak. W C++ przypisanie znaku wymaga użycia pojedynczych apostrofów. Inna nieprawidłowa odpowiedź, 'zm1 = "wiadro";', jest również błędna, ponieważ używamy podwójnych apostrofów, które są stosowane dla łańcuchów tekstowych (string), a nie dla pojedynczych znaków. C++ nie pozwala na przypisanie łańcucha do zmiennej char. Ostatnia odpowiedź, 'zm1 == 0x35;', odnosi się do porównania, a nie do przypisania. Wyrażenie to sugeruje, że chcemy sprawdzić, czy zmienna zm1 jest równa wartości szesnastkowej, co nie jest zgodne z intencją przypisania. Użycie operatora porównania (==) w miejscu operatora przypisania (=) prowadzi do logicznego błędu. W kontekście programowania, kluczowe jest zrozumienie różnicy między przypisaniem a porównaniem, co jest podstawą efektywnego kodowania i programowania w C++.

Pytanie 38

Która z komend w języku JavaScript pozwala na zmianę koloru tekstu na niebieski w akapicie określonym w pliku HTML?

A. document.getElementById("jeden").background-color = "blue";
B. document.getElementById("jeden").style.background-color = "blue";
C. document.getElementById("jeden").color = "blue";
D. document.getElementById("jeden").style.color = "blue";
Patrząc na błędne odpowiedzi, warto zrozumieć, dlaczego niektóre z nich są błędne w kontekście JavaScript oraz DOM. W pierwszym przypadku, document.getElementById("jeden").color = "blue" nie zadziała poprawnie, bo używasz właściwości color bezpośrednio na elemencie, a powinna być ona w obiekcie style. Trzeba użyć style.color, żeby zmieniać kolory, to zasada w CSS. W drugim przypadku, document.getElementById("jeden").style.background-color = "blue" też jest do bani, bo w JavaScript musisz używać notacji camelCase, czyli powinno być backgroundColor, a nie background-color. I jeszcze ostatnia błędna opcja, document.getElementById("jeden").background-color = "blue" również nie działa, bo background-color to właściwość CSS, a nie bezpośrednio właściwość obiektu JavaScript. Często takie błędy wynikają z braku zrozumienia różnic między notacjami CSS i JavaScript. Dlatego ważne jest, żeby się tego trzymać i wiedzieć, jak te technologie współpracują, żeby unikać typowych pułapek przy programowaniu.

Pytanie 39

Kolor zdefiniowany kodem RGB o wartości rgb(128, 16, 8) w formacie szesnastkowym przyjmuje wartość

A. #FF0F80
B. #801008
C. #FF1008
D. #800F80
Odpowiedzi takie jak #FF1008, #800F80 i #FF0F80 są wynikiem błędnych konwersji wartości RGB do formatu szesnastkowego. Gdybyśmy przyjrzeli się pierwszej z tych odpowiedzi, widzimy, że wartość 'FF' oznacza 255 w systemie dziesiętnym, co nie odpowiada wartości 128 w kanale czerwonym tego koloru. Zastosowanie 'FF' w tym kontekście prowadzi do znacznego przeszacowania intensywności koloru czerwonego. Przechodząc do drugiej odpowiedzi, #800F80, wartość '0F' odpowiada 15, co również nie jest zgodne z pierwotną wartością 16 w kanale zielonym. To wskazuje na niedoszacowanie intensywności zielonej, co wpływa na percepcję koloru. Ostatnia odpowiedź, #FF0F80, znowu używa 'FF' w kanale czerwonym, co prowadzi do podobnych błędów jak w pierwszym przypadku. Kluczowym błędem, który można zidentyfikować w tych odpowiedziach, jest nieprawidłowe przeliczenie wartości RGB do formatu szesnastkowego, co jest powszechnym problemem dla osób, które nie są zaznajomione z konwersją systemów liczbowych. W praktyce, aby uniknąć takich pomyłek, warto korzystać z narzędzi online lub specjalistycznego oprogramowania, które automatycznie wykonuje te konwersje, co pozwala na zaoszczędzenie czasu i zminimalizowanie ryzyka błędów.

Pytanie 40

Znacznik

<pre> </pre>
służy do prezentacji:
A. treści czcionką o stałej szerokości
B. znaku przekreślenia
C. treści polską czcionką
D. znaku wielokropka
Interpretacja znacznika <pre> jako narzędzia do wyświetlania znaku przekreślenia lub wielokropka jest błędna, ponieważ te elementy nie mają związku z funkcją, jaką pełni <pre>. W kontekście HTML, znacznik <pre> nie jest zaprojektowany do formatowania treści na podstawie stylów czcionek, takich jak 'polska czcionka', ale skupia się na zachowaniu oryginalnego formatowania tekstu. Próba zrozumienia <pre> w kontekście czcionek wyłącznie ze względu na ich wygląd prowadzi do pomyłek, ponieważ nie dotyczy to głównego celu tego znacznika. Ponadto, używanie <pre> dla treści, które nie wymagają stałej szerokości czcionki, może prowadzić do złożonych problemów w responsywności układu strony oraz trudności w dostosowaniu treści do różnych urządzeń. Znaki przekreślenia i wielokropka są raczej reprezentowane przez inne znaczniki HTML, takie jak <s> lub <span>, które są bardziej odpowiednie do stylizacji tekstu. Właściwe zrozumienie roli każdego znacznika HTML jest kluczowe dla skutecznego projektowania stron internetowych i aplikacji, co podkreśla znaczenie edukacji w zakresie web developmentu.