Wyniki egzaminu

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

Egzamin zdany!

Wynik: 31/40 punktów (77,5%)

Wymagane minimum: 20 punktów (50%)

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

Analizując poniższy kod HTML, jak w przeglądarce zachowa się blok B względem bloku A?

<div>A</div>
<div style="margin-top: 20px">B</div>
A. blok B będzie oddalony od bloku A o 20 px
B. zostanie ustawiony dolny margines bloku B
C. blok A zostanie przesunięty w lewo o 20 px
D. bloki A i B będą nachodzić na siebie
Drugi <div> (blok B) ma w atrybucie style ustawione margin-top: 20px - to margines zewnętrzny po GÓRNEJ stronie. Ponieważ blok B leży pod blokiem A, ten 20-pikselowy margines tworzy odstęp nad B, odsuwając go w dół od A. Dlatego blok B będzie oddalony od bloku A o 20 px.

Pytanie 2

Aby zrealizować opisane czynności w JavaScript, konieczne jest umieszczenie poniższego kodu w znaczniku <script>

Ilustracja do pytania
A. A = prompt("Podaj kwalifikację: ");
document.write("Kwalifikacja: ".A)
B. A = alert("Podaj kwalifikację: ");
document.write("Kwalifikacja: "+A)
C. A << prompt("Podaj kwalifikację: ");
document.write("Kwalifikacja: "+A)
D. A = prompt("Podaj kwalifikację: ");
document.write("Kwalifikacja: "+A)
W JavaScript użycie funkcji prompt() pozwala na wyświetlenie okna dialogowego, które umożliwia użytkownikowi wprowadzenie danych. W przypadku poprawnej odpowiedzi kod A = prompt('Podaj kwalifikację: '); document.write('Kwalifikacja: '+A); realizuje dokładnie te kroki. Funkcja prompt() czeka na wprowadzenie danych przez użytkownika i zwraca wprowadzaną wartość, która jest następnie przypisywana do zmiennej A. Następnie document.write() jest używane do bezpośredniego wstawienia zawartości zmiennej A na stronę internetową w połączeniu z tekstem 'Kwalifikacja: '. To podejście jest zgodne z dobrymi praktykami tworzenia aplikacji internetowych, gdzie dynamiczne wprowadzanie danych przez użytkownika i ich wyświetlanie jest kluczowe. Używanie prompt() jest powszechne w prostych aplikacjach do interakcji z użytkownikiem, lecz w bardziej zaawansowanych projektach zaleca się korzystanie z bardziej zaawansowanych metod jak formularze HTML czy asynchroniczne żądania sieciowe. Niemniej jednak, zrozumienie działania prompt() oraz document.write() jest podstawowe dla tworzenia dynamicznych stron WWW i stanowi fundament dalszej nauki w JavaScript.

Pytanie 3

Którego narzędzia użyć, aby usunąć szum tła z nagrania (z taniego mikrofonu)?

A. usuwania szumów
B. echa
C. wyciszenia
D. obwiedni
Stały szum tła z taniego mikrofonu usuwa się narzędziem „usuwania szumów” (np. Noise Reduction w Audacity) - analizuje ono próbkę samego szumu i odejmuje go z całego nagrania. Dlatego należy użyć usuwania szumów.

Pytanie 4

Podano tabelę ksiazki z kolumnami: tytul, autor (w formacie tekstowym), cena (w formacie liczbowym). Aby zapytanie SELECT zwracało jedynie tytuły, dla których cena jest niższa niż 50zł, należy użyć:

A. SELECT * FROM ksiazki WHERE cena < 50
B. SELECT tytul FROM ksiazki WHERE cena < 50
C. SELECT ksiazki FROM tytul WHERE cena < '50 zł'
D. SELECT tytul FROM ksiazki WHERE cena > '50 zł'
Odpowiedź 'SELECT tytul FROM ksiazki WHERE cena < 50;' jest poprawna, ponieważ precyzyjnie formułuje zapytanie w języku SQL, które ma na celu wyodrębnienie z tabeli 'ksiazki' tylko tych tytułów, których cena jest niższa niż 50. W tym przypadku użycie operatora porównania '<' skutkuje filtracją danych według określonego kryterium. Jest to zgodne z dobrą praktyką w programowaniu baz danych, ponieważ pozwala uzyskać potrzebne informacje w sposób efektywny i zrozumiały. Przykładem praktycznego zastosowania może być stworzenie raportu dla księgarni, która chce zobaczyć, które książki są w sprzedaży w przystępnej cenie. Zwracając tylko potrzebne kolumny (tytuł), minimalizujesz ilość przesyłanych danych, co jest ważne w kontekście wydajności i szybkości działania aplikacji korzystających z bazy danych. Dodatkowo, unikanie podawania ceny w formacie tekstowym (np. '50 zł') jest zgodne z zasadami dobrego projektowania baz danych, które zalecają stosowanie odpowiednich typów danych, co w tym przypadku oznacza liczbę bez jednostki walutowej.

Pytanie 5

Co można powiedzieć o zmiennej predefiniowanej $_POST w języku PHP?

A. zawiera dane przesłane do skryptu z formularza
B. zawiera dane przesłane do skryptu z ciasteczka
C. jest kopią tablicy $_COOKIE
D. jest rozszerzoną wersją tablicy $_SESSION
Zmienna predefiniowana $_POST zawiera dane przesłane do skryptu z FORMULARZA wysłanego metodą POST - trafiają one w treści żądania, a nie w adresie URL. Odczytuje się je np. $_POST['login']. Dlatego $_POST zawiera dane z formularza.

Pytanie 6

Czemu odpowiada pojęcie „krotka” w relacyjnej bazie danych?

A. relacji
B. tabeli
C. wierszowi
D. kolumnie
W modelu relacyjnym „krotka” odpowiada WIERSZOWI tabeli - czyli pojedynczemu rekordowi z danymi jednego egzemplarza encji. Dlatego krotka to wiersz.

Pytanie 7

Taki styl CSS sprawi, że na stronie internetowej

ul{ list-style-image: url('rys.gif'); }
A. punkt listy nienumerowanej będzie rys.gif
B. rys.gif wyświetli się jako tło dla listy nienumerowanej
C. każdy punkt listy zyska osobne tło z grafiki rys.gif
D. rys.gif stanie się ramką dla listy nienumerowanej
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 SQL, po wykonaniu przedstawionych poleceń GRANT, prawo do edytowania struktury tabeli oraz jej usunięcia zostanie przyznane

GRANT ALL ON firmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON firmy TO 'anna'@'localhost';
GRANT SELECT, INSERT, UPDATE ON firmy TO 'tomasz'@'localhost';
A. Tomaszowi i Adamowi
B. tylko Annie
C. Adamowi i Annie
D. Tomaszowi i Annie
Odpowiedź Adamowi i Annie jest poprawna ponieważ polecenie GRANT w SQL służy do przydzielania określonych uprawnień użytkownikom. W zapytaniu GRANT ALL ON firmy TO 'adam'@'localhost' Adam otrzymuje wszystkie możliwe uprawnienia do tabeli co obejmuje również możliwość zmiany struktury tabeli poprzez ALTER oraz jej usuwania poprzez DROP. Z kolei Anna dzięki poleceniu GRANT ALTER CREATE DROP również uzyskuje te same dwa kluczowe uprawnienia dotyczące zmiany struktury i usuwania tabeli. Takie przydzielanie uprawnień jest zgodne z branżowymi standardami zapewniającymi elastyczność i bezpieczeństwo w zarządzaniu bazami danych. Praktyczne zastosowanie tych uprawnień umożliwia administratorom bazy danych delegowanie odpowiedzialności za różne aspekty zarządzania bazą innym użytkownikom co jest szczególnie przydatne w dużych zespołach. Ważne jest również aby zawsze monitorować i regularnie audytować przydzielone uprawnienia aby zapewnić że użytkownicy posiadają tylko te uprawnienia które są niezbędne do wykonywania ich zadań co jest zgodne z zasadą najmniejszych uprawnień w bezpieczeństwie IT.

Pytanie 9

Wskaż prawdziwe stwierdzenie o poleceniu:

CREATE TABLE IF NOT EXISTS adres (ulica VARCHAR(70) CHARACTER SET utf8);
A. klauzula IF NOT EXISTS jest opcjonalna i zapobiega błędowi, gdy tabela już istnieje
B. rekordem tabeli nie może być „3 MAJA”
C. do tabeli nie można wpisywać ulic z polskimi znakami
D. klauzula CHARACTER SET utf8 jest obowiązkowa
Klauzula IF NOT EXISTS jest OPCJONALNA i zabezpiecza CREATE TABLE - jeśli tabela o danej nazwie już istnieje, polecenie nie zgłosi błędu i nie utworzy jej ponownie. Dlatego prawdą jest, że IF NOT EXISTS jest opcjonalna i zapobiega błędowi przy istniejącej tabeli.

Pytanie 10

Z tabeli mieszkańcy należy uzyskać unikalne nazwy miejscowości, do czego konieczne jest użycie wyrażenia SQL z klauzulą

A. HAVING
B. CHECK
C. UNIQUE
D. DISTINCT
Odpowiedź 'DISTINCT' jest poprawna, ponieważ w SQL służy do eliminowania powtórzeń w wynikach zapytań. Użycie klauzuli DISTINCT pozwala na zwrócenie jedynie unikalnych wartości z danej kolumny, co jest idealne w sytuacjach, gdy chcemy uzyskać listę miast, w których mieszkają osoby z tabeli 'mieszkańcy'. Na przykład, zapytanie 'SELECT DISTINCT miasto FROM mieszkańcy;' zwróci wszystkie różne miasta, w których zamieszkują mieszkańcy, eliminując duplikaty. W praktyce, klauzula DISTINCT jest często stosowana w raportach oraz analityce danych, gdzie istotne jest zrozumienie rozkładu unikalnych wartości. Warto również zauważyć, że DISTINCT może być używane w połączeniu z innymi klauzulami SQL, takimi jak WHERE, aby jeszcze bardziej zawęzić wyniki. Przykład użycia: 'SELECT DISTINCT miasto FROM mieszkańcy WHERE kraj = 'Polska';'. Dobrą praktyką jest stosowanie DISTINCT w sytuacjach, gdy zarządzamy dużymi zbiorami danych, aby zapewnić ich przejrzystość i uniknąć nadmiarowych informacji.

Pytanie 11

Co umożliwia polecenie CREATE USER w MySQL?

A. utworzenie nowego użytkownika
B. utworzenie użytkownika i nadanie mu uprawnień
C. zmianę hasła istniejącego użytkownika
D. wyświetlenie danych o użytkowniku
Polecenie CREATE USER zakłada nowe KONTO użytkownika na serwerze MySQL, np. CREATE USER 'jan'@'localhost' IDENTIFIED BY 'haslo';. Samo utworzenie konta NIE nadaje jeszcze uprawnień do baz - te przyznaje się osobno poleceniem GRANT. Dlatego CREATE USER służy do utworzenia użytkownika.

Pytanie 12

Aby poprawnie zdefiniować hierarchiczną strukturę tekstu na stronie internetowej, należy zastosować:

A. znacznik <p> z formatowaniem
B. znacznik <div>
C. znaczniki <frame> i <table>
D. znaczniki <h1>, <h2> oraz <p>
Hierarchię tekstu na stronie budują znaczniki nagłówków <h1> do <h6>, gdzie <h1> to tytuł najważniejszy, a kolejne poziomy oznaczają sekcje i podsekcje. Przeglądarka, wyszukiwarki i czytniki ekranu odczytują z nich plan dokumentu, dlatego nagłówków używa się zgodnie ze znaczeniem, a nie dla samego wyglądu. Akapity <p> uzupełniają tę strukturę właściwą treścią. Taki układ poprawia czytelność, dostępność i pozycjonowanie strony - i właśnie dlatego poprawna odpowiedź łączy nagłówki z akapitem.

Pytanie 13

Jakie narzędzie jest używane do organizowania oraz przedstawiania danych z wielu rekordów w celu ich wydruku lub dystrybucji?

A. makropolecenie
B. kwerenda
C. raport
D. formularz
Makropolecenie, formularz oraz kwerenda to narzędzia o różnych zastosowaniach, które często mylnie utożsamiane są z raportem. Makropolecenie to zestaw instrukcji, które automatyzują powtarzalne zadania w programach komputerowych, szczególnie w arkuszach kalkulacyjnych. Chociaż mogą one służyć do generowania raportów, same w sobie nie są narzędziem do grupowania informacji, lecz raczej do automatyzacji procesów. Formularz służy do zbierania danych od użytkowników, ale nie jest przeznaczony do ich analizy ani prezentacji w formie zrozumiałych zestawień. Kwerenda natomiast to zapytanie skierowane do bazy danych, które umożliwia wydobycie specyficznych informacji, ale ponownie, nie jest to narzędzie do ich prezentacji. Użytkownicy mogą mylić te narzędzia z raportem, co prowadzi do nieporozumień w zakresie ich funkcjonalności. Kluczowe jest zrozumienie, że raporty są podsumowaniem danych, które były wcześniej przetworzone, podczas gdy makropolecenia, formularze i kwerendy są narzędziami do działania na danych, ale nie do ich ostatecznego przedstawienia. Ważne jest, aby potrafić rozróżnić te pojęcia i stosować je zgodnie z ich przeznaczeniem w praktyce biznesowej.

Pytanie 14

Który ze sposobów komentowania NIE jest stosowany w kodzie PHP?

A.
# komentarz
B.
/* komentarz */
C.
// komentarz
D.
<!-- komentarz -->
PHP udostępnia trzy sposoby komentowania: jednoliniowe // oraz #, a także wieloliniowe (blokowe) /* ... */. Zapis <!-- ... --> to komentarz języka HTML - PHP go nie interpretuje jako własnego komentarza; trafi on do kodu wynikowego strony. Dlatego w kodzie PHP NIE używa się <!-- ... -->.

Pytanie 15

Jak w PHP otworzyć plik dane.txt TYLKO do odczytu i wczytać jego zawartość?

A.
fopen("dane.txt", "w")  oraz  fgets()
B.
fopen("dane.txt", "r")  oraz  fputs()
C.
fopen("dane.txt", "w")  oraz  fputs()
D.
fopen("dane.txt", "r")  oraz  fgets()
Aby otworzyć plik TYLKO do odczytu, używa się trybu "r": fopen("dane.txt", "r"), a zawartość czyta się np. funkcją fgets() (pobiera kolejne wiersze). Dlatego poprawne jest fopen(..., "r") oraz fgets().

Pytanie 16

Który z wymienionych programów służy do tworzenia i edycji grafiki wektorowej?

A. Paint
B. Corel Draw
C. WordPad
D. Audacity
Pozostałe programy nie służą do grafiki wektorowej. Paint to prosty edytor grafiki rastrowej - pracuje na pikselach, więc powiększanie obrazu pogarsza jakość, a krzywych wektorowych nie tworzy. Audacity to w ogóle inna dziedzina: edytor i rejestrator dźwięku, nie ma związku z grafiką. WordPad to podstawowy edytor tekstu sformatowanego, służący do dokumentów, a nie rysunków. Grafikę wektorową tworzy i edytuje Corel Draw, dlatego to on jest poprawną odpowiedzią.

Pytanie 17

Którą właściwością CSS ustawia się kolor tła elementu (np. strony)?

A.
bgcolor
B.
background-color
C.
color
D.
text-background
Pozostałe odpowiedzi nie ustawią tła w CSS. color to prawdziwa właściwość, ale odpowiada za kolor tekstu, a nie tła. text-background w ogóle nie istnieje - przeglądarka taką deklarację zignoruje. bgcolor to przestarzały atrybut HTML (np. <body bgcolor="...">), wycofany na rzecz stylów - nie jest właściwością CSS. Kolor tła elementu ustawia background-color, dlatego to ona jest poprawna.

Pytanie 18

Aby przyspieszyć ładowanie strony z dużą grafiką (2000×760 px), należy zmniejszyć jej rozmiar:

A. za pomocą atrybutów HTML
B. w programie graficznym
C. właściwością CSS w procentach
D. właściwością CSS w pikselach
Aby naprawdę przyspieszyć stronę, trzeba zmniejszyć wagę i wymiary pliku graficznego w programie graficznym (np. zmienić rozmiar do faktycznie potrzebnych pikseli i zoptymalizować kompresję). Dopiero wtedy przeglądarka pobiera mniejszy plik. Skalowanie w HTML czy CSS zmienia jedynie sposób wyświetlania, nie wielkość pobieranych danych. Dlatego grafikę zmniejsza się w programie graficznym.

Pytanie 19

Jakiej kwerendy w bazie MariaDB należy użyć, aby wybrać artykuły, których ceny mieszczą się w przedziale domkniętym <10, 20>?

A. SELECT * FROM Artykuly WHERE Cena LIKE 1%, 2%
B. SELECT * FROM Artykuly WHERE Cena IN (10, 20)
C. SELECT * FROM Artykuly WHERE Cena BETWEEN 10 AND 20
D. SELECT * FROM Artykuly WHERE Cena > 10 AND Cena < 20
Odpowiedź 'SELECT * FROM Artykuly WHERE Cena BETWEEN 10 AND 20;' jest prawidłowa, ponieważ wykorzystuje operator BETWEEN, który jest idealny do określenia wartości zawartych w obustronnie domkniętym przedziale. W tym przypadku zapytanie zwróci wszystkie artykuły, których cena jest równa 10 lub 20 oraz wszystkie wartości znajdujące się pomiędzy tymi dwoma wartościami. Operator BETWEEN jest standardowym sposobem na łatwe zapisywanie takich warunków w SQL, co czyni kod bardziej czytelnym i zrozumiałym. Przykład zastosowania to sytuacja, gdy chcemy znaleźć produkty w określonym przedziale cenowym na stronie e-commerce. Tego typu kwerendy są bardzo powszechne w analizie danych i zarządzaniu bazami danych, a ich znajomość jest kluczowa dla efektywnego wykonywania zadań związanych z eksploracją danych. Zastosowanie BETWEEN w praktyce pozwala na automatyzację procesów wyszukiwania i filtrowania danych, co jest zgodne z najlepszymi praktykami w zakresie optymalizacji zapytań w bazach danych.

Pytanie 20

Czynnością zalecaną przed wykonaniem kopii zapasowej bazy danych MySQL jest:

A. sprawdzenie integralności bazy i ewentualna jej naprawa
B. sprawdzenie, czy baza jest dostatecznie wydajna
C. nadanie administratorowi uprawnień do przeglądania bazy
D. zdefiniowanie systemu kodowania znaków w bazie
Kopia zapasowa ma sens tylko, gdy zapisuje sprawne dane. Jeśli baza jest uszkodzona, backup utrwali błędy i przy odtwarzaniu odzyskamy wadliwy stan. Dlatego przed wykonaniem kopii zaleca się sprawdzenie integralności bazy (np. CHECK TABLE) i ewentualną naprawę (REPAIR TABLE). Dopiero zdrową bazę warto archiwizować. Dlatego poprawne jest sprawdzenie integralności i ewentualna naprawa.

Pytanie 21

Stronę internetową zapisano w języku XHTML. Który z kodów stanowi implementację przedstawionego fragmentu strony, jeżeli żadne style CSS nie zostały zdefiniowane?

Początki HTML

W 1980 fizyk Tim Berners-Lee, pracownik CERN,
stworzył prototyp hipertekstowego systemu informacyjnego – ENQUIRE


A.
<b>Początki HTML</b>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
B.
<h1>Początki HTML</h1>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
C.
<b>Początki HTML</b>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<hr /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
D.
<h1>Początki HTML</h1>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<i>prototyp hipertekstowego systemu informacyjnego – <b>ENQUIRE</b></i></p>
A. B.
B. C.
C. D.
D. A.
Twoja odpowiedź jest poprawna. Wybrałeś opcję B, która przedstawiała poprawną implementację fragmentu strony internetowej napisanej w języku XHTML. W tym fragmencie wykorzystane zostały standardowe tagi XHTML, takie jak <h1> do oznaczenia nagłówka pierwszego poziomu oraz <p> do definiowania akapitu. Dodatkowo w tekście użyte zostały tagi <b> i <i> do odpowiednio pogrubienia i kursywy, co podkreśla ważność wybranych fragmentów tekstu. Tag <br /> pozwala na stworzenie przerwy wiersza, co jest szczególnie użyteczne w przypadku długich akapitów tekstu. Pamiętaj, że XHTML jest bardziej rygorystyczną wersją HTML i wymaga zawsze domknięcia tagów. Wiedza na ten temat jest niezwykle ważna podczas tworzenia stron internetowych, a standardy i dobre praktyki branżowe pomagają w utrzymaniu kodu w czytelnej i zrozumiałej formie.

Pytanie 22

Tabele: Studenci, Zapisy, Zajecia są powiązane relacją. Aby wybrać jedynie nazwiska studentów oraz odpowiadające im idZajecia dla studentów z grupy 15, należy wydać kwerendę

Ilustracja do pytania
A. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;
B. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
C. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
D. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;
W tej odpowiedzi zostało wszystko zrobione zgodnie z zasadami projektowania relacyjnych baz danych oraz praktyk SQL. Użycie JOIN zamiast starego stylu łączenia tabel przez przecinek i warunek WHERE to nie tylko kwestia czytelności, ale już od dawna standard branżowy. JOIN jasno pokazuje, na jakiej zasadzie łączą się tabele, w tym wypadku Studenci i Zapisy – łączymy po id studenta, bo tylko w taki sposób faktycznie powiążemy konkretne osoby z ich zapisami na zajęcia. WHERE grupa = 15 dodatkowo ogranicza wynik do tej konkretnej grupy studentów, co jest bardzo powszechną praktyką filtrowania wyników w zapytaniach. Przy bardziej złożonych systemach, gdzie mamy dużo relacji, taki zapis jest czytelny i łatwy do modyfikacji. Z mojego doświadczenia, jeżeli ktoś pracuje z większą ilością danych, czy nawet pisze bardziej skomplikowane raporty, to dokładnie taki zapis – z wyraźnie określonym JOIN-em i selekcją kolumn – bardzo ułatwia życie. Warto też pamiętać, że w praktyce biznesowej często chcemy wyciągnąć konkretną informację o użytkownikach lub powiązanych encjach, a nie wszystko naraz. W tym zadaniu to właśnie połączenie po idStudenta i selekcja po grupie daje najprecyzyjniejszy i najczystszy rezultat, zgodny i z logiką, i praktyką codziennej pracy z bazami danych.

Pytanie 23

Przedstawiono efekt formatowania CSS oraz kod HTML. Jak należy zdefiniować styl, aby osiągnąć takie formatowanie?

<p>
Mimozami jesień się zaczyna,<br>
Złotawa, krucha i miła.<br>
To ty, to ty jesteś ta dziewczyna,<br>
Która do mnie na ulicę wychodziła.
</p>
Ilustracja do pytania
A. p.first-line { font-size: 200%; color: brown; }
B. .first-line { font-size: 200%; color: brown; }
C. #first-line { font-size: 200%; color: brown; }
D. p::first-line { font-size: 200%; color: brown; }
Niestety, wybrana przez ciebie odpowiedź jest niepoprawna. Najważniejszym błędem jest brak zrozumienia, jak działają pseudoelementy i selektory CSS. Pseudoelement ::first-line jest używany specyficznie do formatowania pierwszej linii paragrafu. Zastosowanie selektora typu ID (#first-line) lub klasy (.first-line) nie dałoby oczekiwanego efektu, ponieważ te selektory odnoszą się do elementów o określonym identyfikatorze lub klasie, a nie do pierwszej linii paragrafu. Podobnie, selektor p.first-line oznacza paragraf o klasie 'first-line', a nie pierwszą linię paragrafu. Dlatego w tym przypadku prawidłowym rozwiązaniem jest zastosowanie pseudoelementu ::first-line w połączeniu z selektorem paragrafu (p), co umożliwi formatowanie tylko pierwszej linii paragrafu. Pamiętaj, że prawidłowe rozumienie selektorów CSS jest kluczowe do efektywnego stylowania stron internetowych i tworzenia responsywnych, atrakcyjnych layoutów.

Pytanie 24

Które zapytanie policzy WSZYSTKIE wiersze tabeli Koty?

A.
SELECT COUNT(*) FROM Koty;
B.
SELECT COUNT(ROWNUM) FROM Koty;
C.
SELECT ROWNUM() FROM Koty;
D.
SELECT COUNT(Koty) AS ROWNUM;
Liczbę wszystkich wierszy tabeli zwraca funkcja COUNT(*). Zapis SELECT COUNT(*) FROM Koty; policzy każdy rekord tabeli Koty. Dlatego poprawne jest SELECT COUNT(*) FROM Koty;.

Pytanie 25

Rekordy do raportu mogą pochodzić z

A. innego raportu
B. zapytania INSERT INTO
C. makropolecenia
D. tabeli
Wybór innego raportu jako źródła danych może wydawać się logiczny na pierwszy rzut oka, jednak w rzeczywistości, raporty są zazwyczaj wynikiem analizy danych już zgromadzonych w bazach danych, a nie bezpośrednim źródłem tych danych. Raport oparty na innym raporcie może prowadzić do niepotrzebnej złożoności oraz braku przejrzystości w dostępie do danych. Ponadto użycie makropolecenia jako źródła do generowania raportu jest niewłaściwe, ponieważ makropolecenia są narzędziami do automatyzacji zadań, a nie strukturami danych. W kontekście zapytania 'INSERT INTO', należy zauważyć, że jest to instrukcja służąca do dodawania nowych rekordów do tabeli, a nie do pobierania danych. Wybranie takiego podejścia mogłoby wprowadzić w błąd, ponieważ nie odzwierciedla rzeczywistego procesu raportowania, który wymaga analizy istniejących danych. Często błędy myślenia w tym kontekście wynikają z pomylenia celów automatyzacji z celami analizy danych. Poprawne zrozumienie roli tabel w bazach danych pozwala na wydajne raportowanie i podejmowanie decyzji na podstawie rzeczywistych i aktualnych informacji.

Pytanie 26

Jakie skutki wywoła poniższy fragment kodu w języku JavaScript?

n = "Napis1"; s = n.length;
A. Przypisze zmiennej s wartość odpowiadającą długości tekstu w zmiennej n
B. Wyświetli liczbę znaków napisu z zmiennej n
C. Przypisze wartość zmiennej n do zmiennej s
D. Przypisze zmiennej s część napisu ze zmiennej n o długości określonej przez zmienną length
Fragment skryptu w języku JavaScript, w którym zmienna n jest przypisana do napisu "Napis1", a następnie zmienna s jest przypisana do długości tego napisu, korzysta z właściwości length. Odpowiedź 3 jest poprawna, ponieważ właściwość length dla obiektów typu string zwraca liczbę znaków w danym napisie. W tym przypadku "Napis1" ma 6 znaków, więc zmienna s przyjmie wartość 6. Tego typu operacje są powszechnie stosowane w programowaniu do manipulacji i analizy danych tekstowych, co jest istotnym aspektem tworzenia aplikacji webowych. W praktyce, programiści często muszą sprawdzać długość napisów, aby weryfikować dane wejściowe, przygotowywać napisy do dalszego przetwarzania lub dostosowywać interfejs użytkownika. Dobrym przykładem zastosowania length jest walidacja formularzy, gdzie długość wprowadzonego tekstu musi spełniać określone kryteria, np. minimalną lub maksymalną liczbę znaków. Warto zaznaczyć, że zgodnie ze standardami ECMAScript, wszystkie napisy w JavaScript mają tę właściwość, co czyni ją niezwykle użyteczną w codziennej pracy programisty.

Pytanie 27

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 czerwone, kolor tekstu niebieski, marginesy wewnętrzne na poziomie 40 px
C. tło niebieskie, kolor tekstu czerwony, 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 28

Metoda i zmienna są dostępne dla metod tej klasy ORAZ klas po niej dziedziczących (potomnych). Który modyfikator?

A.
private
B.
static
C.
protected
D.
public
Modyfikator protected udostępnia składowe metodom TEJ klasy ORAZ klasom po niej DZIEDZICZĄCYM (potomnym), ale nie kodowi z zewnątrz. To pośredni poziom między private a public, przydatny, gdy klasa bazowa ma coś udostępnić dziedzicom, lecz ukryć przed światem. Zapamiętaj: protected = „dla mnie i moich potomków”.

Pytanie 29

W języku HTML zdefiniowano listę:

<ol>
  <li>biały</li>
  <li>czerwony
    <ul>
      <li>różowy</li>
      <li>pomarańczowy</li>
    </ul></li>
  <li>niebieski</li>
</ol>
A. Jest to lista numerowana z zagłębioną listą punktowaną.
B. Nie ma zagłębień i jest numerowana, słowo "niebieski" ma przyporządkowany numer 5.
C. Jest to lista punktowana z zagłębioną listą numerowaną.
D. Nie ma zagłębień i jest punktowana, wyświetla 5 punktów.
Dobra robota! Twoja odpowiedź jest na miejscu. Ta lista HTML, co widziałeś na obrazku, to faktycznie lista uporządkowana, stworzona przy pomocy znacznika <ol>. Takie listy są numerowane, co sprawia, że łatwiej je śledzić. W HTML mamy dwa rodzaje list: uporządkowane, czyli numerowane z <ol>, i nieuporządkowane, które robimy z <ul> i one są punktowane. Fajnie, że pamiętasz o CSS, bo dzięki niemu możemy dostosować wygląd tych list. Ogólnie, lista numerowana zaczyna od 1 i idzie dalej (1, 2, 3 itd.), a punktowana pokazuje kropki. Co ciekawe, można też zagnieżdżać listy, co daje nam takie wielopoziomowe struktury. Dlatego w tej liście mamy wewnątrz punktowaną, która jest stworzona z <ul>. I pamiętaj, że używanie właściwych znaczników ma znaczenie – szczególnie dla osób korzystających z czytników ekranu.

Pytanie 30

Tabela ksiazki ma kolumny tytul, autor, cena (liczbowa). Która kwerenda zwróci TYLKO tytuły książek tańszych niż 50?

A.
SELECT tytul FROM ksiazki WHERE cena < 50;
B.
SELECT tytul FROM ksiazki WHERE cena > '50 zł';
C.
SELECT ksiazki FROM tytul WHERE cena < '50 zł';
D.
SELECT * FROM ksiazki WHERE cena < 50;
Skoro w wyniku mają być TYLKO tytuły, po SELECT podajemy jedną kolumnę tytul, a nie *. Kolumna cena jest liczbą, więc porównujemy ją z liczbą bez cudzysłowów: SELECT tytul FROM ksiazki WHERE cena < 50; zwróci tytuły książek tańszych niż 50. Dlatego ta kwerenda jest poprawna.

Pytanie 31

Która funkcja PHP służy do załadowania (dołączenia) pliku z serwera?

A.
parse_str()
B.
echo()
C.
include()
D.
mysqli_connect()
Funkcja include() dołącza (ładuje) zawartość innego pliku do bieżącego skryptu i wykonuje zawarty w nim kod PHP. Dlatego do dołączania pliku służy include().

Pytanie 32

W przedstawionej regule CSS h1{color: blue} co oznacza h1?

A. wartość
B. klasę
C. selektor
D. deklarację
W regule CSS h1{color: blue} termin h1 odnosi się do selektora, który jest używany do wybierania elementów HTML, a w tym przypadku oznacza wszystkie nagłówki pierwszego poziomu. Selekcje w CSS są kluczowym elementem stylizacji stron internetowych, ponieważ pozwalają na precyzyjne określenie, które elementy mają być stylizowane. Selekcja h1 odnosi się do wszystkich elementów <h1> w dokumencie HTML, co oznacza, że wszystkie nagłówki pierwszego poziomu zostaną stylizowane zgodnie z podaną regułą. Wartością kolorystyki, czyli blue, jest przypisana do właściwości CSS 'color', co skutkuje zmianą koloru tekstu nagłówka na niebieski. Zgodnie z W3C, CSS (Cascading Style Sheets) pozwala na oddzielenie treści od prezentacji, co zwiększa elastyczność i ułatwia zarządzanie stylem strony. Przykładem praktycznym może być strona internetowa, gdzie wszystkie nagłówki pierwszego poziomu są wyróżnione kolorem niebieskim, co przyciąga uwagę użytkowników i poprawia czytelność. Selekcja jest zatem podstawowym narzędziem w stylizacji, umożliwiającym aplikację reguł CSS do określonych elementów HTML.

Pytanie 33

Zapytanie MySQL przedstawione poniżej ma na celu

ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL;
A. dodać kolumnę tytul do tabeli ksiazki
B. zmienić nazwę kolumny w tabeli ksiazki
C. usunąć kolumnę tytul z tabeli ksiazki
D. zmienić typ kolumny tytul w tabeli ksiazki
Polecenie 'ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL;' służy do zmiany typu danych lub ograniczeń kolumny w istniejącej tabeli. W tym przypadku modyfikujemy kolumnę 'tytul' w tabeli 'ksiazki', zmieniając jej typ danych na VARCHAR(100) oraz ustawiając ograniczenie NOT NULL. Polecenie MODIFY jest używane w SQL do zmiany struktury kolumny, takiej jak typ danych, długość, czy też dodawanie ograniczeń. Praktyczne zastosowanie tego polecenia można znaleźć w sytuacjach, gdy oryginalna definicja kolumny jest niewystarczająca, np. zwiększenie długości pola tekstowego, aby pomieścić dłuższe wartości. Dobre praktyki przy modyfikacji kolumn obejmują dokładne zrozumienie zmian, które wprowadzasz, oraz testowanie ich w środowisku deweloperskim przed wdrożeniem na żywo. Ważne jest także rozważenie wpływu na istniejące dane oraz wydajność zapytań. Zmiana typu kolumny na VARCHAR z określoną długością jest szczególnie przydatna, gdy chcemy zminimalizować wykorzystanie pamięci w bazie danych.

Pytanie 34

Jakie będzie wynik działania programu napisanego w JavaScript, umieszczonego w ramce, kiedy wprowadzisz wartość 5?

var n, i;
var a = 1;

n = prompt("Podaj n:", "");

for (i=n; i>=2; i--)
    a*=i;

document.write("Wynik ",a);
A. 60
B. 120
C. 625
D. 125
Niepoprawne odpowiedzi wynikają z niezrozumienia działania pętli i operatora *= w języku JavaScript. Program implementuje algorytm obliczający silnię, co oznacza wielokrotne mnożenie kolejnych liczb całkowitych malejących aż do wartości 2. Niezrozumienie, że silnia n to iloczyn n*(n-1)*(n-2)*...*2, prowadzi do błędnych odpowiedzi. Początkowa wartość zmiennej a ustawiona na 1 jest kluczowa, ponieważ działa jako neutralny element mnożenia. Każda iteracja pętli zmniejsza wartość i, a *= i oznacza, że a jest mnożone przez bieżącą wartość i, co jest często źle interpretowane jako dodawanie lub niedokładne mnożenie. To typowy błąd przy próbie szybkiego zrozumienia kodu bez analizy krok po kroku. Kolejnym częstym błędem jest złe zrozumienie zakresu działania pętli for, która w tym przypadku działa od wartości n aż do 2 włącznie, co jest istotne, bo mnożenie przez 1 nie zmienia wyniku, ale jest częścią klasycznej definicji silni. Dla danych wejściowych 5, poprawnym wynikiem jest 5*4*3*2*1, co daje 120, a inne wartości jak 125, 60 czy 625 wskazują na błędne założenia lub niepełne zrozumienie mechanizmu działania pętli i mnożenia w kontekście silni.

Pytanie 35

Którą funkcją PHP sprawdzić WARTOŚĆ oraz TYP zmiennej?

A.
strlen()
B.
readfile()
C.
var_dump()
D.
implode()
Pozostałe funkcje robią co innego. strlen() zwraca tylko długość napisu, implode() skleja tablicę w tekst, a readfile() wypisuje zawartość pliku. Wartość wraz z typem zmiennej pokazuje var_dump().

Pytanie 36

Który kod oznacza kolor o odcieniu NIEBIESKIM?

A.
#EE0000
B.
#EE00EE
C.
#0000EE
D.
#00EE00
W zapisie #RRGGBB ostatnia para to niebieski. #0000EE ma zerowy czerwony i zielony, a wysoką składową niebieską - więc kolor jest NIEBIESKI. Dlatego niebieski to #0000EE.

Pytanie 37

Jaką kwerendę w bazie MariaDB należy zastosować, aby wybrać artykuły z cenami mieszczącymi się w zakresie obustronnie domkniętym <10, 20>?

A. SELECT * FROM Artykuly WHERE Cena IN (10, 20)
B. SELECT * FROM Artykuly WHERE Cena LIKE 1%, 2%
C. SELECT * FROM Artykuly WHERE Cena BETWEEN 10 AND 20
D. SELECT * FROM Artykuly WHERE Cena > 10 AND Cena < 20
Odpowiedź ta jest prawidłowa, ponieważ wykorzystuje operator BETWEEN, który jest idealnym narzędziem do określenia przedziału wartości w bazie danych. W przypadku tego zapytania, operator BETWEEN obejmuje wszystkie wartości z przedziału obustronnie domkniętego od 10 do 20, co oznacza, że zostaną uwzględnione zarówno wartości 10 jak i 20. Tego typu zapytanie jest niezwykle przydatne w praktyce, gdy chcemy szybko wyselekcjonować dane spełniające określone kryteria. Wartością dodaną stosowania BETWEEN jest oszczędność czasu i zwiększenie czytelności zapytań, co jest zgodne z zasadami dobrych praktyk w programowaniu SQL. Przykładem zastosowania może być sytuacja, gdy w firmie potrzebujemy analizować sprzedaż produktów w określonym przedziale cenowym, aby ocenić efektywność promocji. Dzięki temu rozwiązaniu możemy szybko i efektywnie uzyskać potrzebne dane, co ułatwia podejmowanie decyzji biznesowych.

Pytanie 38

Znacznik <ins> w HTML jest używany do wskazywania

A. tekstu, który został usunięty
B. tekstu, który został przeformatowany
C. cytowanego fragmentu tekstu
D. tekstu, który został dodany
Wiesz, znacznik <ins> w HTML to coś, co używamy, żeby pokazać tekst dodany w stosunku do poprzedniej wersji dokumentu. To mega przydatne, zwłaszcza kiedy edytujemy różne treści, bo od razu widać, co się zmieniło. Zastosowanie tego znacznika można znaleźć w różnych dokumentach, jak blogi czy umowy, gdzie ważne jest, żeby pokazać, co się zmieniło w treści. Zgodnie z tym, co mówią wytyczne W3C, używanie znaczników semantycznych, jak <ins>, sprzyja lepszej dostępności tekstów i ułatwia ich zrozumienie przez wyszukiwarki oraz technologie wspierające. Przykładowo, gdy robisz poprawki w dokumencie, właśnie dzięki <ins> możesz wyróżnić nowe informacje, co sprawi, że użytkownicy łatwiej ogarną, co się zmieniło. Dobrze jest też dodać odpowiedni styl CSS, żeby nadać tym elementom wyraźniejszy wygląd.

Pytanie 39

W języku PHP instrukcja foreach jest rodzajem

A. pętli, niezależnie od rodzaju zmiennej
B. instrukcji wyboru, dla elementów tablicy
C. instrukcji warunkowej, niezależnie od typu zmiennej
D. pętli, przeznaczonej wyłącznie dla elementów tablicy
Trochę mylne jest stwierdzenie, że <i>foreach</i> to pętla, która może działać na każdej zmiennej. W rzeczywistości <i>foreach</i> jest ściśle związana z tablicami. Jak spróbujesz użyć jej na zmiennej, która nie jest tablicą, to dostaniesz błąd. I nie ma co mówić, że <i>foreach</i> to instrukcja warunkowa, bo to też nieprawda. Instrukcje warunkowe, jak <i>if</i>, podejmują decyzje, a <i>foreach</i> jest do tego, żeby iterować. I to, co ktoś napisał o pętli wyboru, też wprowadza w błąd. Pętle jak <i>for</i> czy <i>while</i> powtarzają kod na podstawie warunków, a <i>foreach</i> to po prostu iteracja po elementach tablicy. Tak że tu ważne jest, żeby nie mylić pętli iteracyjnych z warunkowymi oraz rozumieć, gdzie można używać <i>foreach</i>, bo jak się tego nie zrozumie, to mogą być problemy w programowaniu w PHP i można nie wykorzystać dostępnych narzędzi jak trzeba.

Pytanie 40

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

A. aside {float: left; }
B. nav { float: right; } section { float: right; }
C. nav { float: right; }
D. nav { float: left; } aside { float: left; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie.

W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie.

Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.