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: 22 kwietnia 2026 14:36
  • Data zakończenia: 22 kwietnia 2026 15:00

Egzamin zdany!

Wynik: 20/40 punktów (50,0%)

Wymagane minimum: 20 punktów (50%)

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

W CSS zapis w postaci

 h1::first-letter {color: red;} 

spowoduje, że kolor czerwony zostanie zastosowany do

A. pierwszej linii akapitu
B. tekstu nagłówka w pierwszym stopniu
C. pierwszej litery nagłówka w drugim stopniu
D. pierwszej litery nagłówka w pierwszym stopniu
Zapis <span>h1::first-letter {color: red;} </span> jest w porządku, bo korzysta z pseudoelementu :first-letter, który działa na pierwszą literkę w nagłówku h1. To całkiem fajne, bo możemy w ten sposób stylizować tę pierwszą literę i nadać nagłówkom ciekawszy wygląd. Na przykład, jeśli mamy nagłówek h1 z napisem 'Witaj świecie', to dzięki temu kodowi, litera 'W' zrobi się czerwona. W CSS warto ogarnąć, że :first-letter działa tylko na bloki, takie jak nagłówki czy akapity, więc warto to mieć na uwadze, gdy coś stylizujemy. Używanie pseudoelementów to dobre podejście do tworzenia ładnych i funkcjonalnych interfejsów, a przy okazji daje nam większą kontrolę nad tym, jak wyglądają nasze elementy.

Pytanie 2

Skrypt stworzony w języku JavaScript wyznacza cenę promocyjną dla swetrów w barwach: zielonej, niebieskiej (zmienna kolor) przy wydatkach przekraczających 200 zł (zmienna zakupy). Warunek niezbędny do obliczeń powinien być zapisany z użyciem wyrażenia logicznego?

A. zakupy > 200 && kolor == 'zielony' && kolor == 'niebieski'
B. zakupy > 200 && (kolor == 'zielony' || kolor == 'niebieski')
C. zakupy > 200 || (kolor == 'zielony' && kolor == 'niebieski')
D. zakupy > 200 || kolor == 'zielony' || kolor == 'niebieski'
Niepoprawne odpowiedzi bazują na błędnych założeniach dotyczących operatorów logicznych oraz struktury warunków. Odpowiedź zakupy > 200 || kolor == 'zielony' || kolor == 'niebieski' wykorzystuje operator '||' w sposób, który pozwala na spełnienie warunku nawet, gdy zakupy są mniejsze niż 200, co nie prowadzi do pożądanego efektu obliczenia ceny promocyjnej. Kolejna odpowiedź, zakupy > 200 && kolor == 'zielony' && kolor == 'niebieski', nie uwzględnia możliwości, że kolor może być jednym z dwóch dozwolonych, co sprawia, że jest zbyt restrykcyjna. Ostatnia odpowiedź zakupy > 200 || (kolor == 'zielony' && kolor == 'niebieski') implikuje, że kolor musi być jednocześnie zielony i niebieski, co w kontekście jednego swetra jest fizycznie niemożliwe. Kluczowym błędem myślowym w tych odpowiedziach jest nieprawidłowa interpretacja operatorów logicznych oraz brak zrozumienia, jak połączenie warunków '&&' i '||' wpływa na ich działanie. Zastosowanie odpowiednich operatorów w konstruowaniu wyrażeń logicznych jest fundamentalne w programowaniu, ponieważ nieprawidłowe podejście do logiki warunkowej może prowadzić do błędów w aplikacji oraz nieoczekiwanych zachowań w kodzie.

Pytanie 3

Jakie znaczenie ma akronim ACID w kontekście SQL?

A. atomic, constaint, isolated, dependable
B. atomic, consistent, isolated, durable
C. atomic, consistent, iss, dependable
D. atomic, comming, is, do
Każda z niepoprawnych odpowiedzi zawiera błędne definicje podstawowych pojęć związanych z właściwościami transakcji w bazach danych. Pierwsza z nich używa terminu "coming" zamiast "consistent", co jest poważnym błędem, ponieważ spójność jest kluczowa dla zapewnienia, że baza danych nie znajduje się w stanie półpełnym po zakończeniu transakcji. Druga odpowiedź zastępuje "durable" słowem "dependable", co nie oddaje rzeczywistego znaczenia trwałości w kontekście baz danych, gdzie ważne jest, aby wszelkie zmiany były zachowane mimo awarii systemu. Ostatnia odpowiedź błędnie używa słowa "constaint" zamiast "consistent", co wskazuje na nieporozumienie dotyczące fundamentalnych zasad działania baz danych. Ograniczenia (constraints) są istotne, ale to nie one definiują spójność transakcji. Właściwości ACID są kluczowe dla każdej operacji w bazach danych, a ich zrozumienie jest niezbędne dla zapewnienia integralności i bezpieczeństwa danych.

Pytanie 4

W języku PHP zmienna o nazwie $_SESSION przechowuje

A. zmienne przesyłane do skryptu poprzez formularze
B. zmienne przesyłane do skryptu za pośrednictwem ciasteczek (cookie)
C. zmienne zarejestrowane w aktualnej sesji
D. listę aktywnych sesji na serwerze WWW
Odpowiedzi niepoprawne w tej sytuacji dotyczą różnych aspektów funkcjonalności PHP oraz sposobu, w jaki sesje i dane są zarządzane. Po pierwsze, spis zarejestrowanych sesji na serwerze WWW nie jest przechowywany w $_SESSION. PHP zarządza sesjami poprzez identyfikatory sesji, które są przechowywane w pliku na serwerze, a nie w zmiennej $_SESSION. Ta zmienna służy jedynie do przechowywania danych dla aktywnej sesji użytkownika, co oznacza, że nie ma możliwości dostępu do listy wszystkich sesji. Kolejnym nieporozumieniem jest mylenie zmiennych przesyłanych do skryptu za pomocą formularza z danymi przechowywanymi w sesji. Zmienne form są dostępne przez superglobalną tablicę $_POST lub $_GET, a nie przez $_SESSION. Te dwie formy przesyłania danych mają różne zastosowania, a $_SESSION dotyczy wyłącznie danych przechowywanych w kontekście aktualnej sesji. Ostatnia niepoprawna odpowiedź odnosi się do ciastek (cookie), które również są oddzielnym mechanizmem przechowywania danych. Ciasteczka są używane do przechowywania informacji na komputerze klienta, a ich zawartość jest zarządzana przez przeglądarkę, co jest zupełnie innym procesem niż zarządzanie danymi sesji przez serwer. W rezultacie, $_SESSION skupia się na przechowywaniu danych sesyjnych, podczas gdy ciasteczka i dane form są zarządzane w innych kontekstach.

Pytanie 5

Metainformacja “Description" zawarta w pliku źródłowym HTML powinna zawierać

<head>
    <meta name="Description" content="..." >
</head>
A. nazwę programu, przy użyciu którego została stworzona strona.
B. informację, kto jest autorem strony.
C. opis, co znajduje się na stronie.
D. wyrazy kluczowe, z których korzystają wyszukiwarki sieciowe.
Poprawna odpowiedź to 'opis, co znajduje się na stronie'. Metainformacja 'Description' w pliku źródłowym HTML jest wykorzystywana przez wyszukiwarki internetowe do wyświetlania opisu strony w wynikach wyszukiwania. Dzięki temu użytkownik może zobaczyć na pierwszy rzut oka, czy strona jest związana z jego zapytaniem, czy też nie. Jest to jedno z kluczowych narzędzi w SEO (Search Engine Optimization), które ma na celu zwiększenie widoczności strony w wynikach wyszukiwania. W praktyce, opis powinien być krótki, zwięzły i zawierać ważne informacje o treści strony. Dobrą praktyką jest również uwzględnienie kluczowych słów, na które użytkownicy mogą szukać. Opis ten powinien być zrozumiały dla użytkowników, a także jest to miejsce, gdzie można wykorzystać strategie marketingowe, aby zachęcić do odwiedzenia strony.

Pytanie 6

W JavaScript zdefiniowano obiekt. W jaki sposób można uzyskać dostęp do właściwości nazwisko?

var osoba = {imie: "Anna", nazwisko: "Kowalska", rok_urodzenia: 1985};
A. osoba[2]
B. osoba.nazwisko
C. osoba::nazwisko
D. osoba[1]
W przypadku niepoprawnych odpowiedzi osoba[2], osoba::nazwisko i osoba[1] odniesienie do właściwości obiektu w JavaScript zostało błędnie przedstawione. Metoda osoba[2] oraz osoba[1] sugeruje użycie notacji tablicowej, która jest stosowana do odwoływania się do elementów tablicy przez ich indeks. Jednak obiekt w JavaScript nie jest tablicą, a zestawem par klucz-wartość, dlatego stosowanie indeksów w tym kontekście nie ma zastosowania. Indeksowanie za pomocą nawiasów kwadratowych jest właściwe w przypadku tablic, natomiast obiekty wymagają dostępu przez klucze opisane jako stringi. Próba użycia osoba::nazwisko jest niepoprawna, ponieważ podwójny dwukropek nie jest częścią syntaksu JavaScript pozwalającego na dostęp do właściwości obiektu. Tego typu notacja może pojawiać się w innych językach programowania jak C++ jako operator zakresu, jednak w JavaScript jest pozbawiona sensu. Błędny wybór w tym przypadku wynika z niezrozumienia różnicy między różnymi strukturami danych oraz ich specyficznej składni w obrębie różnych języków programowania. Bardzo istotne jest zapamiętanie, że w JavaScript do właściwości obiektu najczęściej odwołuje się za pomocą notacji kropkowej, co jest nie tylko standardem, ale również poprawia czytelność i zrozumiałość kodu. Świadomość różnicy między tablicami a obiektami oraz umiejętność wyboru odpowiedniej składni są kluczowe w pisaniu efektywnego i poprawnego kodu w JavaScript. Poprawne zrozumienie tych różnic i składni pozwala unikać błędów i pisania kodu, który może być trudny do debugowania i zrównoważenia w przyszłości.

Pytanie 7

Dostępna jest tabela uczniowie, która zawiera pól id, imie, nazwisko, data_ur (format rrrr-mm-dd). Które zapytanie w SQL wyświetli tylko imiona oraz nazwiska uczniów urodzonych w roku 2001?

A. SELECT imie, nazwisko FROM uczniowie WHERE data_ur like "2001-%-%"
B. SELECT id, imie, nazwisko, data_ur FROM uczniowie WHERE data_ur like "2001-*-*"
C. SELECT * FROM uczniowie WHERE data_ur == 2001-%-%
D. SELECT * FROM uczniowie WHERE data_ur like "2001"
Wybrana odpowiedź jest prawidłowa, ponieważ wykorzystuje odpowiednią składnię SQL do wyszukania imion i nazwisk uczniów, których data urodzenia przypada na rok 2001. Użycie klauzuli 'LIKE' wraz z wzorcem '2001-%-%' jest kluczowe – znak '%' w SQL reprezentuje dowolny ciąg znaków (w tym również brak znaków). Oznacza to, że jakiekolwiek miesiące i dni mogą występować po roku '2001', co jest zgodne z formatem daty 'rrrr-mm-dd'. Tego typu zapytania są używane w praktycznych zastosowaniach w bazach danych, na przykład przy tworzeniu raportów dotyczących uczniów, którzy urodzili się w określonym roku. Umożliwia to efektywne zarządzanie danymi i przyspiesza proces analizy, co jest zgodne z dobrymi praktykami w zakresie przetwarzania danych. W kontekście SQL, selekcja konkretnych kolumn, takich jak 'imie' i 'nazwisko', jest bardziej efektywna niż pobieranie wszystkich danych, co może być istotne w przypadku większych zestawów danych. Warto również zwrócić uwagę na znaczenie odpowiedniego formatowania dat, co jest kluczowe dla poprawności zapytań do baz danych.

Pytanie 8

Tabela gory zawiera dane o polskich szczytach oraz górach, w których się one znajdują. Jakie zapytanie należy wykonać, aby zobaczyć Koronę Gór Polskich, czyli najwyższy szczyt w każdym z pasm górskich?

A. SELECT pasmo, szczyt, wysokosc FROM gory;
B. SELECT pasmo, szczyt, MAX(wysokosc) FROM gory;
C. SELECT pasmo, szczyt, MAX(wysokosc) FROM gory GROUP BY pasmo;
D. SELECT pasmo, szczyt FROM gory GROUP BY wysokosc;
Analizując pozostałe odpowiedzi, można zauważyć kluczowe błędy w podejściu do zadania. W pierwszej opcji, SELECT pasmo, szczyt, wysokosc FROM gory; kwerenda ta zwracałaby wszystkie rekordy z tabeli, co oznacza, że nie zrealizowano by celu znalezienia najwyższego szczytu w każdym pasmie. Brak użycia grupowania i funkcji agregującej prowadzi do nieefektywnego przetwarzania danych. Kolejna odpowiedź, SELECT pasmo, szczyt, MAX(wysokosc) FROM gory; wygląda na bliską poprawności, ale również nie spełnia wymogów, ponieważ nie zawiera klauzuli GROUP BY, co skutkuje błędem w kontekście SQL. Bez grupowania nie można poprawnie zidentyfikować wartości maksymalnych w odniesieniu do poszczególnych pasm. Dodatkowo, kwerenda SELECT pasmo, szczyt FROM gory GROUP BY wysokosc; jest całkowicie wadliwa, ponieważ grupuje dane według wysokości szczytów, co nie ma sensu w kontekście poszukiwania najwyższych szczytów w każdym pasmie. Takie podejście może prowadzić do niejednoznacznych i niepoprawnych wyników, które nie odpowiadają zadaniu. Typowe błędy myślowe, które prowadzą do takich wniosków, obejmują nieprawidłowe zrozumienie zasad grupowania i agregacji w SQL, co jest fundamentalne do skutecznego wykorzystania relacyjnych baz danych.

Pytanie 9

W PHP, aby poprawnie zakończyć połączenie z bazą danych MySQL, ostatnim krokiem powinno być użycie polecenia

A. exit
B. die
C. mysql_exit
D. mysqli_close
Aby prawidłowo obsłużyć połączenie z bazą danych MySQL w języku PHP, kluczowym krokiem jest zamknięcie tego połączenia po zakończeniu operacji na bazie danych. Najlepszą praktyką jest użycie funkcji mysqli_close. Ta funkcja jest częścią rozszerzenia MySQLi (MySQL Improved), które oferuje nowoczesne podejście do komunikacji z bazą danych, w tym zwiększone bezpieczeństwo i wydajność. Po wywołaniu mysqli_close, wszystkie zasoby związane z połączeniem są zwalnianie, co pozwala na uniknięcie potencjalnych wycieków pamięci. Przykładowe użycie: $connection = mysqli_connect('host', 'user', 'password', 'database'); // Po dokonaniu operacji na bazie danych mysqli_close($connection);. Ważne jest, aby zamykać połączenia, szczególnie w aplikacjach działających w środowisku produkcyjnym, aby zapewnić optymalne wykorzystanie zasobów serwera oraz bezpieczeństwo danych. Standardowe zalecenia dokumentacji PHP podkreślają znaczenie użycia mysqli_close w celu zakończenia sesji z bazą danych, co sprzyja stabilności i niezawodności aplikacji.

Pytanie 10

Kolor określony kodem RGB, mający wartość rgb(255, 128, 16) w przedstawieniu szesnastkowym, przyjmie jaką wartość?

A. #ff8010
B. #ff8011
C. #008010
D. #ff0fl0
Odpowiedź #ff8010 jest trafna. Konwersja wartości RGB na szesnastkowy to w sumie przekształcanie kolorów: czerwony, zielony i niebieski. W przypadku rgb(255, 128, 16), czerwony (255) zmienia się w 'ff', zielony (128) w '80', a niebieski (16) w '10'. Gdy to wszystko połączymy, dostajemy kod #ff8010. To wiedza, która naprawdę się przydaje, gdy pracujesz z kolorami w stronach www, aplikacjach graficznych czy przy projektowaniu interfejsów. W branży IT używanie standardu RGB i konwersji do HEX to normalka, bo to pozwala na dokładne określenie kolorów w kodzie. Na przykład, w CSS łatwo będzie używać kolorów w tym formacie, a to pomaga w lepszej czytelności kodu.

Pytanie 11

W przedstawionym kodzie HTML ukazany styl CSS to styl:

<p style="color: red;">To jest przykładowy akapit.</p>
A. lokalny.
B. zewnętrzny.
C. dynamiczny.
D. nagłówkowy.
Wybrane opcje mogą wprowadzać w błąd, gdyż każda z nich odnosi się do innego sposobu stosowania stylów w CSS. Styl zewnętrzny polega na umieszczeniu wszystkich reguł stylów w osobnym pliku CSS, który jest linkowany do dokumentu HTML. To podejście jest niezwykle efektywne, ponieważ pozwala na oddzielenie treści od prezentacji i umożliwia wielokrotne wykorzystanie tych samych stylów w różnych częściach witryny. Z kolei styl dynamiczny odnosi się do technik, które zmieniają wygląd elementów w czasie rzeczywistym, na przykład przy użyciu JavaScript lub poprzez interakcje użytkownika. Styl nagłówkowy umieszczany jest w sekcji <head> dokumentu HTML, zazwyczaj za pomocą tagu <style>, co również różni się od stylu lokalnego, który jest bezpośrednio przypisany do konkretnego elementu. Kluczową różnicą jest wpływ na organizację i zarządzanie kodem – zewnętrzne i nagłówkowe style sprzyjają lepszej strukturze, podczas gdy lokalne style mogą prowadzić do nieczytelności kodu i problemów z utrzymywaniem. Zrozumienie tych różnic jest istotne dla efektywnego projektowania stron internetowych oraz dla przestrzegania najlepszych praktyk w zakresie CSS.

Pytanie 12

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

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

Pytanie 13

Zaprezentowane pole input daje możliwość

<input type="checkbox" name="text1" value="text2">
A. wpisania dowolnego tekstu
B. zaznaczenia opcji z listy zawierającej wartości text1 i text2
C. wprowadzenia hasła
D. wybrania opcji
Element HTML z atrybutem type="checkbox" jest używany do tworzenia pól wyboru które pozwalają użytkownikowi zaznaczać jedną lub więcej opcji. Checkboxy są częstym elementem formularzy internetowych gdyż umożliwiają elastyczne zbieranie danych od użytkowników. Przykładowo w formularzach rejestracyjnych można używać ich do akceptacji regulaminu zapisów na newslettery czy wyboru zainteresowań. Składnia takiego elementu jest prosta: tag <input> z atrybutami name i value. Atrybut name jest niezbędny do grupowania checkboxów a value do przekazywania wartości zaznaczonej opcji do serwera podczas wysyłania formularza. Dobre praktyki zalecają dodawanie etykiet opisujących znaczenie checkboxa co poprawia dostępność dla osób korzystających z czytników ekranowych. Stosowanie checkboxów powinno być przemyślane by nie przeciążać użytkownika zbyt dużą liczbą opcji co mogłoby negatywnie wpłynąć na UX. Właściwe użycie checkboxów zgodne ze standardami HTML i UX jest kluczowe dla intuicyjnego interfejsu użytkownika.

Pytanie 14

Który z linków ma poprawną formę?

A. <a href="mailto:adres">tekst</a>
B. <a href='mailto:adres'>tekst</a>
C. <a href="http://adres">tekst</a>
D. <a href='http://:adres'>tekst</a>
Pierwsza z niepoprawnych odpowiedzi wykorzystuje pojedyncze cudzysłowy w atrybucie 'href' oraz niepoprawny format adresu e-mail. Chociaż pojedyncze cudzysłowy są dozwolone, w kontekście standardów HTML zaleca się stosowanie podwójnych cudzysłowów. Druga odpowiedź przedstawia nieprawidłowy format adresu URL z dodatkowym dwukropkiem po 'http://', co czyni go niekompletnym i niezgodnym z zasadami tworzenia linków w HTML. Taki błąd uniemożliwia prawidłowe załadowanie strony internetowej oraz może prowadzić do niepoprawnego działania linków. Trzecia odpowiedź używa nietypowych cudzysłowów (\"\" zamiast standardowych podwójnych cudzysłowów), co nie jest zgodne z konwencjami kodowania w HTML i może prowadzić do problemów z interpretacją przez przeglądarki. Użycie odpowiednich cudzysłowów jest kluczowe dla prawidłowego działania kodu HTML i zapobiega potencjalnym błędom w renderowaniu strony. Wszelkie niezgodności z przyjętymi standardami mogą negatywnie wpłynąć na jakość i funkcjonalność strony internetowej, co ma znaczenie również z perspektywy SEO.

Pytanie 15

Który z opisów komentarza odzwierciedla działanie funkcji zdefiniowanej w języku PHP ```function fun1($a, $b) { if($a > $b) return $a; elseif($b > $a) return $b; else return -1; }```?

A. /* Funkcja zwraca wyższą wartość spośród dwóch podanych, w przypadku równości zwraca -1 */
B. /* Funkcja zwraca niższą wartość spośród dwóch podanych, w przypadku równości zwraca wartość $a */
C. /* Funkcja zwraca wyższą wartość spośród dwóch podanych, w przypadku równości zwraca wartość $a */
D. /* Funkcja zwraca niższą wartość spośród dwóch podanych, w przypadku równości zwraca -1 */
Funkcja `fun1` w języku PHP ma na celu porównanie dwóch wartości przekazanych jako argumenty `$a` i `$b`. Zastosowana logika w funkcji jest jasna: jeśli `$a` jest większe od `$b`, funkcja zwraca wartość `$a`; jeśli `$b` jest większe, zwraca wartość `$b`. W przypadku, gdy obie wartości są równe, funkcja zwraca -1, co jasno wskazuje na brak różnicy między tymi wartościami. Takie podejście jest zgodne z dobrymi praktykami programistycznymi, ponieważ funkcje powinny być jednoznaczne i przewidywalne w swoim działaniu. Wykorzystanie zwracania wartości -1 jako wskaźnika równości jest ciekawym rozwiązaniem, które może być przydatne w dalszej logice aplikacji, gdzie różne kody zwrotne mogą reprezentować różne stany. W praktycznych zastosowaniach taka funkcja mogłaby być używana w algorytmach sortujących lub w analizach danych, gdzie potrzeba porównania wartości jest powszechna. Dobrą praktyką jest także dokumentowanie funkcji, aby inni programiści mogli łatwo zrozumieć jej działanie i zastosowanie.

Pytanie 16

Jakie polecenie należy zastosować, aby cofnąć uprawnienia przyznane użytkownikowi?

A. GRANT NO PRIVILEGES
B. REMOVE
C. DROP PRIVILEGES
D. REVOKE
Polecenie REVOKE jest standardowym poleceniem w systemach zarządzania bazami danych, które służy do odebrania wcześniej przyznanych uprawnień użytkownikowi. Używając tego polecenia, administrator może skutecznie kontrolować dostęp do różnych zasobów w bazie danych. Na przykład, jeśli użytkownik A otrzymał uprawnienia do edytowania danych w tabeli 'Zamówienia', a administrator postanowi, że użytkownik A nie powinien mieć już takich uprawnień, może użyć polecenia REVOKE, aby je odebrać. W praktyce użycie REVOKE wygląda następująco: "REVOKE UPDATE ON Zamówienia FROM 'użytkownikA'". Dzięki temu podejściu administratorzy mogą zapewnić, że dostęp do wrażliwych danych jest odpowiednio zarządzany i zgodny z zasadami bezpieczeństwa danych. Dobrą praktyką jest regularne przeglądanie przyznanych uprawnień i ich aktualizacja w zależności od zmieniających się potrzeb organizacji oraz polityki zarządzania dostępem.

Pytanie 17

Jakie z poniższych warunków logicznych w języku C weryfikuje, czy zmienna o nazwie zm1 znajduje się w zakresie 6, 203>?

A. (zm1 > 6) && (zm1 != 203)
B. (zm1 > 6) || (zm1 != 203)
C. (zm1 > 6) && (zm1 <= 203)
D. (zm1 > 6) || (zm1 <= 203)
Odpowiedź (zm1 > 6) && (zm1 <= 203) jest poprawna, ponieważ używa operatora logicznego AND (&&), co oznacza, że oba warunki muszą być spełnione, aby wyrażenie zwróciło wartość prawda (true). Zmienna zm1 musi być większa od 6 oraz jednocześnie mniejsza lub równa 203, co dokładnie definiuje przedział wartości. Takie podejście jest zgodne z najlepszymi praktykami programistycznymi, gdzie ważne jest precyzyjne określenie zakresu wartości. W zastosowaniach praktycznych, na przykład w walidacji danych użytkowników, możemy użyć tego wyrażenia do sprawdzenia, czy wiek wprowadzony przez użytkownika mieści się w dozwolonym zakresie. Warto zrozumieć, że korzystając z operatora AND, eliminujemy przypadki, w których zmienna zm1 byłaby na przykład równa 6 lub 203, co może być istotne w kontekście określonych ograniczeń biznesowych. W programowaniu ważne jest, aby warunki były jasno definiowane, co sprzyja lepszej czytelności kodu oraz minimalizuje ryzyko błędów.

Pytanie 18

Na tabeli muzyka, przedstawionej na rysunku, zostało wykonane następujące zapytanie SQL. Jaki wynik zwróci ta kwerenda?

SELECT wykonawca FROM `muzyka` WHERE wykonawca LIKE 'C%w';
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzeslaw Niemen2005Przyjdz W Taka Noc itd.
2IkonaStan Borys2014
3AerolitCzeslaw Niemen2017Winylowa reedycja płyty „Aerolit”.
4JourneyMikolaj Czechowski2013
A. pusty wynik
B. Czeslaw, Niemen
C. Czeslaw
D. Czeslaw, Czechowski
Niepoprawna odpowiedź wynika ze złego zrozumienia, jak działa operator LIKE w zapytaniach SQL. Operator LIKE jest używany do porównania wartości z określonym wzorcem. W naszym przypadku, wzorzec to 'C%w', gdzie '%' oznacza dowolne zero lub więcej znaków. Czyli szukamy wykonawców, których nazwy zaczynają się na 'C' i kończą na 'w'. Błędne odpowiedzi sugerują, że niezrozumienie polega na tym, że '%w' miałoby oznaczać 'wszystkie nazwy kończące się na w', co nie jest prawdą. W rzeczywistości, '%w' oznacza 'dowolne znaki, po których następuje litera w'. Dlatego, żadne z podanych wykonawców nie spełnia tego kryterium, a wynik zapytania jest pusty. To ważne, aby zrozumieć, jak działają wzorce w SQL, gdyż są one bardzo użyteczne przy wyszukiwaniu danych w bazie.

Pytanie 19

Do uruchomienia kodu napisanego w języku PHP konieczne jest posiadanie w systemie

A. serwera WWW, parsera PHP oraz bazy danych MySQL
B. serwera WWW z bazą danych MySQL
C. serwera WWW z interpreterem PHP
D. przeglądarki internetowej
Pierwsza z niepoprawnych odpowiedzi sugeruje, że wystarczy zainstalować przeglądarkę internetową do uruchamiania kodu PHP. To podejście jest błędne, ponieważ przeglądarki internetowe są narzędziami do wyświetlania zawartości HTML i nie mają zdolności do interpretowania skryptów PHP. PHP musi być przetwarzany na serwerze, a przeglądarka jedynie odbiera już przetworzone dane. Kolejna niepoprawna odpowiedź wskazuje na konieczność posiadania serwera WWW wraz z serwerem MySQL. Chociaż MySQL jest popularnym systemem zarządzania bazami danych używanym w połączeniu z PHP, nie jest on niezbędny do uruchamiania samych skryptów PHP, zwłaszcza w sytuacjach, gdy aplikacja nie korzysta z bazy danych. Ostatnia z niepoprawnych odpowiedzi odnosi się do potrzeby posiadania serwera WWW, parsera PHP oraz serwera MySQL. Choć jest to podejście bardziej kompleksowe, to znowu, do uruchomienia kodu PHP wystarczy jedynie serwer WWW z interpreterem PHP. MySQL jest opcjonalny i wykorzystywany tylko wtedy, gdy aplikacja wymaga interakcji z bazą danych. Wnioskując, aby uruchomić kod PHP, kluczowym elementem jest serwer WWW z interpreterem PHP, co czyni inne odpowiedzi niepoprawnymi w kontekście podstawowych wymagań.

Pytanie 20

W języku JavaScript, deklaracja: ```var x=true;``` sprawia, że zmienna x ma typ

A. enumeracyjny
B. numeryczny
C. łańcuch znaków
D. logiczy
Zmienna x w JavaScript, która została zadeklarowana jako 'var x=true;', to typ logiczny, czyli boolean. W tym języku mamy dwie możliwe wartości: true (prawda) i false (fałsz). Ten typ jest naprawdę ważny, zwłaszcza gdy mówimy o warunkach w programach, bo to właśnie one są bazą dla programowania strukturalnego i obiektowego. Kiedy piszesz instrukcje if albo pętle, typ logiczny odgrywa kluczową rolę w tym, co się dzieje w programie. Fajnie jest korzystać z zmiennych logicznych, by kontrolować, co się dzieje w kodzie, a także sprawiać, że warunki są czytelniejsze. Ciekawe jest też to, że w JavaScript inne typy, jak liczby czy ciągi znaków, mogą być używane w kontekście wartości prawdziwych i fałszywych. To czyni typ logiczny bardzo elastycznym i wszechstronnym. Im lepiej rozumiesz ten typ, tym lepiej potrafisz tworzyć dynamiczne aplikacje, które dobrze reagują na różne sytuacje.

Pytanie 21

Co robi funkcja napisana w języku JavaScript?

function fun1(f)
{
  if(f < 0)
    f = f * (-1);
  return f;
}
A. wypisanie wartości odwrotnej do f
B. zwrócenie wartości odwrotnej do f
C. wypisanie wartości bezwzględnej z f
D. zwrócenie wartości bezwzględnej z f
Funkcja, którą podałeś w JavaScript, ma za zadanie zwrócić wartość bezwzględną z podanego argumentu f. Sprawdza, czy f jest mniejsze od zera, a jeśli tak, to mnoży je przez -1, co w praktyce oznacza, że zmienia znak liczby na dodatni. Jeśli wartość jest już dodatnia, to nic się nie dzieje. To wszystko jest zgodne z tym, jak definiujemy wartość bezwzględną, bo ta zawsze jest równa lub większa od zera. Z mojego doświadczenia, wartości bezwzględne są przydatne w różnych dziedzinach, jak matematyka czy analiza danych, gdzie zależy nam na wartościach liczbowych bez względu na to, czy są dodatnie, czy ujemne. Warto też wspomnieć, że JavaScript ma wbudowaną funkcję Math.abs(), która robi to samo i jest to naprawdę dobry wybór, bo ułatwia zrozumienie kodu i zmniejsza ryzyko błędów. Tworzenie takiej funkcji, jak w Twoim zadaniu, to świetny sposób na lepsze poznanie działania języka i manipulowania danymi.

Pytanie 22

Model fizyczny replikacji bazy danych pokazany na ilustracji jest modelem

Ilustracja do pytania
A. rozproszonym
B. centralnego subskrybenta
C. równorzędnym
D. centralnego wydawcy
Model centralnego wydawcy jest popularnym rozwiązaniem w replikacji baz danych gdzie jeden centralny serwer działa jako główny wydawca danych do wielu subskrybentów. Kluczowa cecha tego modelu polega na tym że wszystkie zmiany są inicjowane na głównym serwerze co pozwala na scentralizowane zarządzanie danymi. Centralny wydawca zapewnia że dane są spójne i aktualizowane we wszystkich subskrybentach zmniejszając ryzyko konfliktów danych. Taka architektura jest często stosowana w organizacjach z rozproszonymi jednostkami gdzie centralny serwer w centrali obsługuje oddziały terenowe. Przykładami zastosowań są systemy ERP i CRM które wymagają jednoczesnej replikacji danych do wielu lokalizacji. Dobre praktyki w tej architekturze obejmują regularne monitorowanie wydajności serwerów oraz optymalizację przepustowości sieci by minimalizować opóźnienia. Modele centralnego wydawcy wykorzystują technologie takie jak SQL Server Replication czy Oracle Streams które są dobrze udokumentowane i szeroko stosowane w branży zapewniając niezawodność i skalowalność.

Pytanie 23

W HTML-u utworzono formularz. Jaki efekt działania poniższego kodu zostanie pokazany przez przeglądarkę, jeśli w drugie pole użytkownik wprowadził tekst "ala ma kota"?

<form>
    <select>
        <option value="v1">Kraków</option>
        <option value="v2">Poznań</option>
        <option value="v3">Szczecin</option>
    </select><br>
    <input type="password" />
</form>
Ilustracja do pytania
A. A
B. B
C. D
D. C
Odpowiedź B jest prawidłowa, ponieważ pokazuje typowy sposób renderowania formularza HTML z elementem wyboru i polem hasła w przeglądarce. W kodzie HTML widzimy element select z trzema opcjami wyboru. Po zaznaczeniu jednej z opcji, jak Kraków, tworzy się rozwijane menu, które jest widoczne na obrazie jako pole z wybraną wartością. Drugim elementem formularza jest pole input typu password. Ten typ pola zamienia wpisany tekst na znaki maskujące, takie jak kropki lub gwiazdki, co widzimy na obrazie w odpowiedzi B. To jest standardowe zachowanie przeglądarek w przypadku pól hasła, mające na celu ochronę prywatności. W kodzie HTML nie ma elementów typu checkbox ani radio, co eliminowałoby inne prezentacje danych, takie jak checkboxy czy przyciski radiowe. Dobrą praktyką jest używanie pól hasła w formularzach tam, gdzie wymagane jest wprowadzenie danych, które powinny być chronione. Odpowiednie użycie elementów HTML zwiększa użyteczność i bezpieczeństwo aplikacji internetowej i jest zgodne z konwencjami projektowania UI.

Pytanie 24

Jakie rozwiązanie powinno być wdrożone w organizacji danych, aby przyspieszyć wykonanie zapytań w bazie danych?

A. Klucze podstawowe
B. Indeksy
C. Reguły
D. Wartości domyślne
Klucze podstawowe pełnią inną rolę w bazach danych niż indeksy. Służą one do jednoznacznej identyfikacji każdego wiersza w tabeli i zapewniają, że nie ma duplikatów danych. Choć klucze podstawowe mogą być automatycznie indeksowane przez system bazy danych, ich głównym celem jest zapewnienie integralności danych, a nie przyspieszanie wyszukiwania. Reguły, z drugiej strony, dotyczą logiki aplikacji i kontroli danych, ale nie wpływają na szybkość dostępu do danych. Mogą one być używane do walidacji danych przed ich zapisaniem w bazie, co jest ważne, lecz nie przyspiesza samego procesu wyszukiwania. Wartości domyślne definiują, jakie dane mają być wstawiane, gdy nie podano żadnej wartości, ale również nie mają wpływu na wydajność zapytań. Wszystkie te elementy mają swoje istotne miejsce w projektowaniu baz danych, jednak nie są bezpośrednio związane z optymalizacją szybkości zapytań jak to jest w przypadku indeksów. Często mylnie zakłada się, że klucze podstawowe i inne mechanizmy są wystarczające do poprawy wydajności, co może prowadzić do nieefektywnego projektowania i nieodpowiednich optymalizacji w systemie bazodanowym.

Pytanie 25

Obiekt bazy danych, którego głównym przeznaczeniem jest drukowanie lub wyświetlanie zestawień danych, to

A. raport.
B. formularz.
C. makro.
D. moduł.
Poprawna odpowiedź to „raport”, bo właśnie ten obiekt bazy danych jest przeznaczony typowo do estetycznego drukowania lub wyświetlania gotowych zestawień danych. W typowych systemach bazodanowych, takich jak Microsoft Access czy różne narzędzia klasy RAD, formularze służą głównie do wprowadzania i edycji danych, kwerendy do ich wyszukiwania i filtrowania, a raporty do prezentacji wyników w uporządkowanej, czytelnej formie. Raport ma własny projekt układu: nagłówki, stopki, grupowanie po polach (np. po kliencie, dacie, dziale), sumy częściowe i końcowe, numerację stron, a często także pola obliczeniowe. To jest dokładnie to, czego potrzebujemy, gdy chcemy przygotować np. wydruk faktur, miesięczne zestawienie sprzedaży, raport obecności pracowników albo raport kasowy do działu księgowości. Z mojego doświadczenia raport traktuje się jako końcowy produkt pracy z danymi – użytkownika końcowego zwykle nie interesują tabele czy relacje, tylko czy dostanie przejrzysty wydruk lub PDF, który można wysłać dalej. Dobre praktyki mówią, żeby w raportach nie upychać logiki biznesowej ani skomplikowanych obliczeń, tylko oprzeć je na dobrze przygotowanych kwerendach. Raport powinien być możliwie prosty, czytelny i stabilny – tak, żeby zmiana sposobu liczenia odbywała się w warstwie zapytań, a nie w każdym raporcie osobno. W narzędziach BI (np. Power BI, Tableau, ale też klasyczne Crystal Reports) idea jest podobna: raport to warstwa prezentacji, która korzysta z danych z bazy, modelu analitycznego albo widoków SQL. W praktyce w firmach raporty są podstawą podejmowania decyzji, więc poprawne zrozumienie ich roli w bazie danych jest naprawdę kluczowe.

Pytanie 26

Na podstawie tabeli Towar wykonano następujące zapytanie SQL. Jaki będzie wynik tej operacji?

 SELECT nazwa_towaru FROM `Towar` WHERE cena_katalogowa < 65 ORDER BY waga DESC;
IDnazwa_towarucena_katalogowawagakolor
1Papier ksero A4112.3biel
2Zeszyt A54.20.13wielokolorowy
3Zeszyt A5 w linie3.50.12niebieski
4Kredki 24 kolory90.3wielokolorowy
5Plecak szkolny65.51.3zielony
A. Zeszyt A5, Zeszyt A5 w linie, Kredki 24 kolory, Papier ksero A4
B. Papier ksero A4, Kredki 24 kolory, Zeszyt A5 w linie, Zeszyt A5
C. Papier ksero A4, Kredki 24 kolory, Zeszyt A5, Zeszyt A5 w linie
D. Zeszyt A5 w linie, Zeszyt A5, Kredki 24 kolory, Papier ksero A4
Twoja odpowiedź jest poprawna. Wykonane zapytanie SQL zwracałoby nazwy towarów, które spełniają warunek ceny katalogowej mniejszej niż 65. Listę tych towarów następnie sortuje od najcięższego do najlżejszego. W przypadku podanej tabeli towary, które spełniają te warunki to: Papier ksero A4 (waga 2.3), Kredki 24 kolory (waga 0.3), Zeszyt A5 (waga 0.13) i Zeszyt A5 w linie (waga 0.12). To jest kluczowy aspekt zrozumienia zapytań SQL, które obejmują selekcję i sortowanie danych. W praktyce, umiejętność filtrowania i organizowania danych jest niezbędna do analizy danych i tworzenia raportów w systemach baz danych. Zrozumienie jak zapytania SQL działa na poziomie podstawowym, umożliwi Ci przewidywanie wyników zapytań, co jest kluczowe dla dobrze zaprojektowanych systemów baz danych.

Pytanie 27

Wskaż nieprawidłowy opis optymalizacji kodu generowanego przez program.

A. Jej celem jest sprawdzenie zgodności z wymogami formalnymi
B. Jej celem jest zwiększenie efektywności działania programu
C. Powinna skutkować modyfikacją kodu źródłowego, aby działał on szybciej
D. Może być realizowana na różnych etapach działania w celu przyspieszenia wykonania kodu przez procesor
Wszystkie niepoprawne odpowiedzi odnoszą się do różnych aspektów, które nie są zgodne z rzeczywistym celem optymalizacji kodu wynikowego. Poprawa wydajności programu i zwiększenie szybkości wykonywania kodu przez procesor są kluczowymi elementami optymalizacji; niezbędne jest dążenie do maksymalizacji efektywności działania aplikacji. Proces optymalizacji nie może być związany jedynie z zgodnością z wymogami formalnymi, ponieważ to bardziej dotyczy analizy jakości kodu i jego zgodności z zasadami programowania, a nie jego wydajności. Dodatkowo, modyfikacje kodu źródłowego w kontekście optymalizacji powinny koncentrować się na przyspieszeniu działania, a nie tylko na poprawie formalnych aspektów, które mogą nie wpływać na wydajność. W praktyce, jeśli kod źródłowy nie jest zoptymalizowany pod kątem wydajności, może prowadzić do znacznych opóźnień, co jest niezgodne z celem optymalizacji. Dlatego istotne jest, aby w procesie tym skupić się na zwiększaniu szybkości i wydajności, a nie na spełnianiu jedynie formalnych wymogów, które mogą być mniej istotne w kontekście ogólnej funkcjonalności i szybkości działania programów.

Pytanie 28

Jakie jest zadanie poniższej pętli?

int x = 0;
while (x < 10)
{
    mojeKsiazki[x] = new Ksiazka();
    x++;
}
A. Uzupełnienie tablicy mojeKsiazki danymi.
B. Stworzenie dziesięciu instancji obiektów typu Ksiazka.
C. Wyświetlenie na ekranie informacji z tabeli Ksiazka.
D. Stworzenie jednego obiektu typu mojeKsiazki.
Wszystkie pozostałe odpowiedzi zawierają błędne interpretacje działania przedstawionej pętli. Po pierwsze, wypełnienie tabeli Ksiazka danymi nie jest precyzyjnie określone w kodzie. Pętla nie przypisuje żadnych konkretów do utworzonych obiektów, a jedynie je inicjalizuje. Odpowiedź dotycząca wypisania na ekranie danych tabeli Ksiazka również jest błędna. W kodzie nie ma żadnych instrukcji wyświetlających dane obiektów, więc ta interpretacja jest myląca. Kolejną nieprawidłowością jest sugestia, że pętla tworzy tylko jeden obiekt. W rzeczywistości pętla jest zaprojektowana tak, aby utworzyć osiem obiektów, co jest sprzeczne z założeniem, że jedna iteracja odpowiada jednemu obiektowi. Typowe błędy myślowe prowadzące do takich wniosków to brak zrozumienia mechanizmu działania pętli i nieumiejętność analizy kodu krok po kroku. Ważne jest, aby programiści potrafili czytać i analizować kod w kontekście ogólnych zasad programowania obiektowego oraz rozumieli rolę pętli w tworzeniu i zarządzaniu obiektami.

Pytanie 29

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

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

Pytanie 30

Do grupowania elementów w blok, można użyć znacznika

A. <div>
B. <param>
C. <span>
D. <p>
W tym pytaniu chodziło konkretnie o grupowanie elementów w jeden blok, czyli o wybór typowego elementu blokowego, który pełni rolę ogólnego kontenera. Bardzo łatwo tu pomylić różne znaczniki, bo większość z nich po prostu „coś wyświetla”, ale ich rola w strukturze dokumentu HTML jest zupełnie inna. Znacznik <p> tworzy akapit, czyli logiczny fragment tekstu. Jest również elementem blokowym, ale jego przeznaczenie jest ściśle semantyczne: ma zawierać treść akapitu, a nie dowolne grupy elementów. Wrzucanie tam divów, formularzy czy skomplikowanych struktur to zła praktyka i często prowadzi do błędnego DOM oraz dziwnych efektów w różnych przeglądarkach. Z punktu widzenia standardów HTML <p> nie jest neutralnym kontenerem, tylko konkretnym elementem tekstowym. Z kolei <span> to przeciwieństwo tego, czego szukamy: jest elementem liniowym (inline). Używa się go do zaznaczania fragmentów tekstu lub małych kawałków treści wewnątrz innych elementów, właśnie bez łamania linii, np. do nadania koloru jednemu słowu albo do oznaczenia krótkiego fragmentu dla JavaScriptu. Typowy błąd to traktowanie <span> jak „mini-diva” i próba budowania na nim całych układów strony. Da się to czasem wymusić przez display:block w CSS, ale to obejście, a nie zgodne z ideą HTML rozwiązanie. Natomiast <param> w ogóle nie służy do prezentacji treści ani układu. To znacznik używany historycznie wewnątrz <object> do przekazywania parametrów obiektom osadzanym na stronie (np. wtyczkom, apletem). Dzisiaj praktycznie się go nie używa w nowoczesnym webdevie, a już na pewno nie do grupowania czegokolwiek. Typowe błędne myślenie przy takich pytaniach polega na patrzeniu tylko na efekty wizualne („to też robi nową linię” albo „to też coś grupuje”) zamiast na semantykę i przeznaczenie znacznika. Do neutralnego, blokowego grupowania elementów, które potem stylujemy w CSS albo manipulujemy w JavaScript, standardowo używa się <div> i to jest zgodne zarówno z dokumentacją, jak i z praktyką w realnych projektach.

Pytanie 31

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

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

Pytanie 32

Kwerenda

ALTER TABLE artykuly MODIFY cena float;
ma na celu dokonanie zmian w tabeli artykuly.
A. usunąć kolumnę o nazwie cena typu float
B. dodać kolumnę o nazwie cena z typem float, jeżeli jeszcze nie istnieje
C. zmienić typ kolumny cena na float
D. zmienić nazwę kolumny cena na float
Twoja odpowiedź o zmianie typu na float dla kolumny cena jest całkiem na miejscu! W pracy z bazami danych ważne jest, żeby odpowiednio zarządzać typami danych w tabelach. Typ float to coś, co często wykorzystuje się do przechowywania wartości liczbowych, które mają część dziesiętną. To istotne przy cenach, które często muszą być dokładnie przedstawione, na przykład do dwóch miejsc po przecinku. Wspomniana kwerenda ALTER TABLE to świetne narzędzie do zmiany struktury tabeli, i to jest zgodne z dobrymi praktykami zarządzania bazami, zwłaszcza z zasadą elastyczności. Dzięki temu można dostosować tabelę do zmieniających się potrzeb bez potrzeby przebudowy całej bazy. Wiesz, takie operacje są dość typowe, ale trzeba uważać, by nie stracić danych czy mieć jakieś niezgodności. Dlatego zawsze warto zrobić kopię zapasową i testować zmiany w środowisku testowym. Zrozumienie takich operacji pomoże ci w lepszym zarządzaniu bazami danych i ich optymalizacji.

Pytanie 33

Który kod jest alternatywny do kodu zamieszczonego w ramce?

<?php
for($x = 1; $x <= 55; $x++)
{
  if($x % 2 != 0) continue;
  echo $x . " ";
}
?>
A. for($x = 2; $x <= 54; $x += 2) {echo $x." ";}
B. for($x = 1; $x <= 55; $x += 1) {echo $x." ";}
C. for($x = 1; $x <= 55; $x++) {echo $x." ";}
D. for($x = 2; $x <= 56; $x += 2) {echo $x." ";}
Brawo! Wybrałeś odpowiedź A, która jest poprawna. Kod zawarty w tej odpowiedzi jest alternatywą dla kodu zamieszczonego w ramce. W obydwu przypadkach mamy do czynienia z pętlą, która operuje na liczbach. W pętli zamieszczonej w ramce, instrukcja 'continue' powoduje, że pętla pomija operacje na liczbach parzystych. Tym samym, końcowy efekt tego kodu to operacje na liczbach nieparzystych. W odpowiedzi A, pętla została skonstruowana w taki sposób, że operacje wykonywane są tylko na liczbach parzystych (pętla zaczyna od liczby 2 i zwiększa wartość o 2 za każdym razem). Tą technikę możemy wykorzystać, kiedy chcemy zbudować kod, który nie uwzględnia pewnego podzbioru danych. W tym przypadku, jeśli chcemy stworzyć kod, który operuje tylko na liczbach nieparzystych, możemy zastosować instrukcję 'continue' w połączeniu z warunkiem sprawdzającym parzystość liczby.

Pytanie 34

Jaką rolę pełni funkcja PHP o nazwie mysql_num_rows()?

A. numeruje rekordy w bazie danych
B. zwraca rekord o numerze podanym w argumencie funkcji
C. zwraca ilość wierszy znajdujących się w rezultacie zapytania
D. zwraca następny rekord z wynikami zapytania
Wybór odpowiedzi, że funkcja mysql_num_rows() zwraca rekord, którego numer podany został w parametrze funkcji, jest błędny, ponieważ nie odzwierciedla rzeczywistego działania tej funkcji. mysql_num_rows() nie ma możliwości indeksowania rekordów ani bezpośredniego ich zwracania; jej jedyną rolą jest zliczanie wierszy w zestawie wyników z zapytania SQL. Kolejny wybór sugerujący, że funkcja ponumerowuje rekordy w bazie danych, uwidacznia nieporozumienie dotyczące operacji na bazach danych. W rzeczywistości, numeracja rekordów jest zadaniem, które powinno być rozwiązywane na poziomie aplikacji, a nie na poziomie bazy danych. Również odpowiedź mówiąca, że funkcja zwraca kolejny rekord z wynikami zapytania, wprowadza w błąd, ponieważ mysql_num_rows() nie jest przeznaczona do nawigacji po wynikach; nie zwraca konkretnego rekordu, lecz jedynie liczbę dostępnych wierszy. Typowy błąd myślowy przy takich odpowiedziach polega na pomyleniu funkcji do zliczania z funkcjami, które manipulują lub przetwarzają dane. Rozumienie funkcji i ich właściwości jest kluczowe dla efektywnego programowania w PHP oraz dla optymalizacji interakcji z bazami danych.

Pytanie 35

Załatwienie sprawy urzędowej online wymaga autoryzacji

A. numerem NIP.
B. imieniem i nazwiskiem.
C. serią i numerem dowodu osobistego.
D. profilem zaufanym.
Prawidłowo wskazany został profil zaufany, bo właśnie on jest standardowym mechanizmem autoryzacji w polskich e-usługach administracji publicznej. Profil zaufany to specjalne, elektroniczne potwierdzenie tożsamości obywatela, powiązane z jego numerem PESEL i zweryfikowane np. przez bank, urząd skarbowy albo punkt potwierdzający. Dzięki temu urząd ma pewność, że po drugiej stronie ekranu jest konkretna, zidentyfikowana osoba, a nie ktoś podszywający się pod kogoś innego. W praktyce wygląda to tak, że logujesz się do serwisu typu ePUAP, mObywatel, PUE ZUS, e-Urząd Skarbowy właśnie przez profil zaufany (albo bank, który technicznie używa mechanizmu profilu zaufanego). Po zalogowaniu możesz złożyć wniosek o dowód osobisty, zgłosić działalność gospodarczą, sprawdzić punkty karne, wysłać pismo ogólne do urzędu, podpisać elektronicznie dokument urzędowy. Ten podpis nie jest „odręczny”, tylko elektroniczny, ale z punktu widzenia prawa jest wiążący, bo jest połączony z Twoim profilem zaufanym. Moim zdaniem to jest dobry przykład, jak powinno się robić bezpieczeństwo w usługach online: zamiast losowych danych typu imię i nazwisko, używa się centralnego systemu identyfikacji, opartego o silne uwierzytelnianie i protokoły szyfrowania. Dobre praktyki branżowe mówią jasno: autoryzacja do wrażliwych systemów (a takim jest system urzędowy) powinna być oparta na czymś więcej niż tylko dane, które każdy może znać, i powinna być powiązana z mechanizmami logowania dwuskładnikowego oraz zaufaną infrastrukturą państwową. Profil zaufany dokładnie to realizuje i dlatego jest wymagany do załatwiania większości spraw urzędowych online.

Pytanie 36

Obejrzyj tabelę mieszkań, która zawiera kolumny: adres, metraż, ile_pokoi, standard, status, cena. Wykonanie poniższej kwerendy SQL SELECT spowoduje wyświetlenie:

SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3;
A. metraż oraz cena tych mieszkań, które posiadają co najmniej 3 pokoje
B. wszystkie informacje, z wyjątkiem adresu, dotyczące mieszkań z więcej niż 3 pokojami
C. metraż oraz cena tych mieszkań, które mają więcej niż 3 pokoje
D. wszystkie dane mieszkań, które mają co najmniej 3 pokoje
Odpowiedź wskazująca na metraż oraz cenę mieszkań, które mają więcej niż 3 pokoje jest prawidłowa, ponieważ kwerenda SQL wykorzystuje operator '>', co oznacza, że wybrani będą tylko ci, którzy mają co najmniej 4 pokoje. W kontekście tabeli mieszkania, zapytanie SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3; efektywnie filtruje dane, aby zwrócić tylko kolumny metraż oraz cena dla mieszkań spełniających ten warunek. W praktyce, umiejętność pisania takich zapytań SQL jest kluczowa w pracy z bazami danych, gdzie często potrzebne jest zrozumienie struktury danych i umiejętność ich analizy. Przykładem zastosowania może być analiza rynku nieruchomości, gdzie deweloperzy mogą chcieć zbadać ceny mieszkań większych niż 3 pokoje, aby lepiej dostosować swoje oferty do potrzeb klientów. Warto również zaznaczyć, że takie zapytania powinny być pisane zgodnie z najlepszymi praktykami, takimi jak unikanie selekcji niepotrzebnych danych, co przyspiesza ich przetwarzanie oraz zmniejsza obciążenie bazy danych.

Pytanie 37

Zaproponowany blok ilustruje operację

Ilustracja do pytania
A. wykorzystania wcześniej zdefiniowanej procedury lub funkcji
B. podjęcia decyzji
C. załadowania lub przedstawienia danych
D. realizacji zadania w pętli
Zastosowanie gotowej procedury lub funkcji odnosi się do sytuacji, w której programista korzysta z wcześniej zdefiniowanego zestawu instrukcji, które wykonują określone zadanie. Jest to kluczowy aspekt programowania proceduralnego i modularyzacji kodu, ale nie wiąże się bezpośrednio z podejmowaniem decyzji, chyba że te funkcje zawierają wewnętrzne warunki. Wczytanie lub wyświetlenie danych to operacje wejścia-wyjścia, które polegają na interakcji z użytkownikiem lub systemem plików. Choć mogą one być częścią logicznego przepływu programu, nie obejmują one decyzyjności jako swojej podstawowej funkcji. Zadania w pętli, takie jak iteracje za pomocą for czy while, umożliwiają wykonywanie zestawu instrukcji wielokrotnie, dopóki dany warunek jest spełniony. Są one istotne w kontekście operacji powtarzalnych, ale również nie spełniają kryterium podejmowania decyzji w znaczeniu przedstawionym w tym pytaniu. Typowe nieporozumienie polega na tym, że pętle mogą zawierać decyzje, jednak to nie one same stanowią mechanizm decyzyjny, tylko raczej wykorzystują go do kontrolowania liczby iteracji. Podjęcie decyzji jest więc odrębną, fundamentalną czynnością w programowaniu, umożliwiającą dynamiczność i elastyczność kodu poprzez warunkowe sterowanie przepływem programu.

Pytanie 38

W bazie danych MySQL znajduje się tabela z programami komputerowymi, posiadająca kolumny: nazwa, producent, rokWydania. Jaką kwerendę SELECT należy zastosować, aby uzyskać listę wszystkich producentów, unikając powtórzeń?

A. SELECT UNIQUE producent FROM programy
B. SELECT producent FROM programy WHERE producent NOT DUPLICATE
C. SELECT producent FROM programy WHERE UNIQUE
D. SELECT DISTINCT producent FROM programy
Wybór pierwszej odpowiedzi, która sugeruje użycie słowa kluczowego UNIQUE, jest błędny. W MySQL, UNIQUE nie jest słowem kluczowym stosowanym do eliminacji duplikatów w kwerendzie SELECT; zamiast tego jest używane w kontekście definiowania unikalnych kluczy w tabelach. Również, odpowiedź zawierająca WHERE UNIQUE jest niepoprawna, ponieważ kombinacja WHERE z UNIQUE jest syntaktycznie niepoprawna w SQL. WHERE służy do filtrowania wyników, ale UNIQUE nie jest używane w tej konstrukcji. Kolejną nieprawidłową odpowiedzią jest użycie WHERE producent NOT DUPLICATE; termin 'NOT DUPLICATE' jest również nieznany w kontekście SQL. Takie frazy nie są uznawane przez silnik baz danych MySQL. W praktyce, aby wykluczyć duplikaty, niezbędne jest zastosowanie słowa kluczowego DISTINCT, które jest standardowym podejściem i zapewnia prawidłowe wyniki. Ostatecznie, wszystkie te niepoprawne odpowiedzi wskazują na brak zrozumienia podstawowych zasad działania języka SQL oraz funkcji przeznaczonych do manipulacji danymi w bazach danych.

Pytanie 39

Jakie znaki będą przechowywane w zmiennej $napis po uruchomieniu poniższego kodu PHP?

$napis = "Programowanie w PHP";
$napis = substr($napis, 3, 5);
A. gramo
B. ogram
C. og
D. gr
Wybrana odpowiedź jest niepoprawna, ponieważ nie uwzględnia prawidłowego działania funkcji substr w PHP. Ta funkcja wyodrębnia określoną liczbę znaków z ciągu, zaczynając od określonego indeksu. Tutaj funkcja substr wyodrębniła 5 znaków, zaczynając od czwartego znaku (indeks 3). Stąd poprawna odpowiedź to 'gramo', nie 'og', 'ogram' czy 'gr'. W przypadku odpowiedzi 'og', wydaje się, że nastąpiło błędne zrozumienie jak działa indeksowanie w PHP. Indeksy zaczynają się od zera, nie od jednego. Dlatego też czwarty znak ma indeks 3, a nie 4. W przypadku odpowiedzi 'ogram', prawdopodobnie zrozumiano, że substr wyodrębni całe słowo od indeksu 3, a nie tylko 5 znaków. Natomiast odpowiedź 'gr' sugeruje, że nie zrozumiano liczby znaków do wyodrębnienia. To jest typowy błąd, gdzie zakłada się, że funkcja substr wyodrębni tylko dwa następne znaki, a nie określoną liczbę znaków.

Pytanie 40

Aby zapewnić integralność danych w bazie programu Microsoft Access, należy zastosować

A. archiwizację bazy
B. kwerendę aktualizującą
C. defragmentację bazy
D. więzy integralności
Kwerendy aktualizujące są narzędziem, które służą do modyfikacji istniejących danych w bazie, ale nie są one odpowiednie do zapewnienia spójności danych. Ich podstawowym celem jest wprowadzanie zmian, takich jak aktualizacja wartości w tabelach, co może prowadzić do niezamierzonych błędów, jeśli nie są stosowane ostrożnie i z pełną świadomością istniejących więzów integralności. Defragmentacja bazy to proces optymalizacji, który ma na celu poprawę wydajności dostępu do danych przez reorganizację zapisanych danych na dysku, ale nie wpływa na spójność samych danych. Chociaż defragmentacja jest istotna z perspektywy wydajności, nie ma bezpośredniego wpływu na to, czy dane są poprawne czy spójne. Archiwizacja bazy odnosi się do procesu przenoszenia danych do archiwum, co ma na celu zwolnienie miejsca w głównej bazie danych, ale także nie ma nic wspólnego z zapewnieniem integralności danych. Archiwizacja, choć pomocna w zarządzaniu dużymi zbiorami danych, nie eliminuje ryzyka wystąpienia błędów w danych, które mogą pozostać w aktywnej bazie. Wszystkie te podejścia mają swoje zastosowanie, ale nie są metodami zapewniającymi spójność danych na poziomie strukturalnym, jak to robią więzy integralności.