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: 29 kwietnia 2026 09:18
  • Data zakończenia: 29 kwietnia 2026 09:30

Egzamin zdany!

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

Jaką wartość zwróci funkcja zoo zdefiniowana w języku C++, wywołana z aktualnym parametrem 3.55

int zao(float x){
    return (x + 0.5);
}
A. 4
B. 3
C. 4.05
D. 3.5
Dobra robota! Wybrałeś poprawną odpowiedź, która wynosi 4. W języku C++ typy zmiennoprzecinkowe (float) są konwertowane do typów całkowitych (int) poprzez odrzucenie części ułamkowej liczby. W tym przypadku, nawet jeśli wynik działania wewnątrz funkcji wynosi 4.05, po konwersji do typu int, zostaje z tego tylko 4. Jest to dobra praktyka, aby zawsze pamiętać o tym zachowaniu podczas pracy z różnymi typami danych w językach programowania, zwłaszcza jeśli precyzja jest istotna dla twojego kodu. Odrzucenie części ułamkowej może prowadzić do nieoczekiwanych wyników, jeśli nie jest to świadome działanie. Dlatego w języku C++ zaleca się zawsze jasne i precyzyjne określenie typu danych.

Pytanie 2

W języku PHP, aby zaprezentować ciąg n znaków @, konieczne jest skorzystanie z funkcji

A. function znaki($i){for($i=0;$i<$n;$i++)print("@");}znaki($i);
B. function znaki($znak,$n){for($i=0;$i<$n;$i++)print($znak);}znaki("@",$n);
C. function znaki($znak,$i++){for($i=0;$i<$n;$i++)print($znak);}znaki($n);
D. function znaki($znak,$i++){for($i=0;$i<$n;$i++)print($znak);}znaki(@,$n);
Aby wyświetlić ciąg n znaków @ w języku PHP, właściwe jest użycie funkcji zdefiniowanej jako function znaki($znak, $n). Funkcja ta przyjmuje dwa argumenty: pierwszy z nich to znak, który chcemy wydrukować (w tym przypadku @), a drugi to liczba powtórzeń, czyli n. Wewnątrz funkcji wykorzystujemy pętlę for, która iteruje od 0 do n-1, co pozwala na wydrukowanie znaku n razy. Warto zaznaczyć, że konstrukcja pętli jest fundamentalnym elementem programowania w PHP, a jej zastosowanie w tej funkcji pozwala na efektywne generowanie i wyświetlanie powtarzających się elementów. Oprócz tego, odpowiednia definicja parametrów funkcji zgodnie z konwencjami PHP oraz prawidłowe przekazywanie argumentów sprawiają, że kod jest bardziej czytelny oraz elastyczny. Przykładowe wywołanie znaki('@', 5) spowoduje wyświetlenie @@@@@. Tego typu podejście jest zgodne z najlepszymi praktykami programowania w PHP, gdzie wykorzystuje się funkcje do modularizacji kodu oraz ponownego wykorzystania logiki w różnych częściach aplikacji.

Pytanie 3

W bazie danych sklepu internetowego, w tabeli klienci znajdują się m.in. pola całkowite: punkty, liczbaZakupow oraz pole ostatnieZakupy o typie DATE. Klauzula WHERE dla zapytania wybierającego klientów, którzy mają ponad 3000 punktów lub dokonali zakupów więcej niż 100 razy, a ich ostatnie zakupy miały miejsce co najmniej w roku 2022, przyjmuje postać

A. WHERE punkty > 3000 AND liczbaZakupow > 100 AND ostatnieZakupy >= '2022-01-01'
B. WHERE (punkty > 3000 OR liczbaZakupow > 100) AND ostatnieZakupy >= '2022-01'
C. WHERE punkty > 3000 OR liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
D. WHERE punkty > 3000 AND liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
Odpowiedź ta jest poprawna, ponieważ zastosowano w niej właściwą logikę warunków w klauzuli WHERE. Aby wybrać klientów, którzy spełniają co najmniej jeden z dwóch pierwszych warunków (posiadają więcej niż 3000 punktów lub wykonali więcej niż 100 zakupów), używamy operatora OR. Z kolei ostatni warunek, dotyczący daty ostatnich zakupów, musi łączyć się z poprzednimi za pomocą operatora AND. Oznacza to, że aby klient został uwzględniony w wynikach, musi spełniać przynajmniej jeden z warunków dotyczących punktów lub liczby zakupów, a równocześnie musi mieć ostatnie zakupy dokonane w roku 2022 lub później. Takie podejście jest zgodne z dobrymi praktykami w SQL, w których operator OR jest wykorzystywany do łączenia warunków alternatywnych, a AND do warunków koniecznych. Na przykład, jeśli chcemy analizować dane klientów w kontekście programów lojalnościowych, takie zapytanie pozwoliłoby nam na wyodrębnienie najbardziej aktywnych klientów, co może być przydatne przy planowaniu kampanii marketingowych.

Pytanie 4

Wykonano następującą kwerendę na tabeli Pracownicy:

SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;

Na tabeli Pracownicy, której wiersze zostały pokazane na obrazie, wykonano przedstawioną kwerendę SELECT. Które dane zostaną wybrane?

idimienazwiskostanowisko
1AnnaKowalska1
2MonikaNowak2
3EwelinaNowakowska2
4AnnaPrzybylska3
5MariaKowal3
6EwaNowacka4
A. Anna, Maria, Ewa.
B. Monika, Ewelina, Maria.
C. Tylko Anna.
D. Tylko Maria.
Gratulacje, udzielona odpowiedź jest prawidłowa! Wykonana kwerenda SQL 'SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;' zwraca imiona pracowników, którzy albo mają nazwisko 'Kowal', albo zajmują stanowisko o numerze większym niż 2. W kontekście przedstawionej tabeli pracowników, taka kwerenda zwróci nam poprawną odpowiedź 'Anna, Maria, Ewa'. To dlatego, że Anna pracuje na stanowisku 3, co jest większe niż 2, Maria ma nazwisko 'Kowal', a Ewa pracuje na stanowisku 4, które jest również większe niż 2. SQL jako język zapytań pozwala na efektywne zarządzanie danymi, niezależnie od skomplikowania zapytania. W praktyce, gdy mamy do czynienia z dużym zbiorem danych, takie zapytania pomagają w szybkim filtrowaniu i dostępie do potrzebnych informacji. Dobrym standardem jest wymyślanie i testowanie zapytań SQL w celu zrozumienia, jakie dane zostaną zwrócone, zanim zapytanie zostanie użyte w prawdziwej aplikacji lub systemie.

Pytanie 5

Jakie zapytanie SQL będzie odpowiednie do odnalezienia w podanej tabeli tylko imion oraz nazwisk pacjentów, którzy przyszli na świat przed rokiem 2002?

Ilustracja do pytania
A. SELECT * FROM Pacjenci WHERE rok_urodzenia LIKE 2002
B. SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002
C. SELECT * FROM Pacjenci WHERE rok_urodzenia <= 2002
D. SELECT imie, nazwisko FROM Pacjenci WHERE data_ostatniej_wizyty < 2002
W tym zapytaniu zastosowałeś składnię SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002, co jest super, bo pozwala wyciągnąć tylko te imiona i nazwiska pacjentów, którzy urodzili się przed rokiem 2002. Użycie konkretnych kolumn jak imie i nazwisko zamiast znaku * to niezła sprawa, bo ogranicza wyniki do tego, co naprawdę potrzebujesz. To z kolei może znacząco zwiększyć wydajność przesyłania danych. No i to WHERE rok_urodzenia < 2002 – świetny ruch! Fajnie, że potrafisz filtrować dane według konkretnego warunku. Bez tego miałbyś wszystkie osoby, nie tylko te sprzed 2002 roku. To jest właśnie selekcja warunkowa w SQL, a jej znajomość to podstawa przy analizie danych. Zgadzam się również, że uniknięcie znaków wieloznacznych jak LIKE w tej sytuacji to dobre podejście, bo używasz bezpośrednich porównań liczbowych, co generalnie działa lepiej i daje jaśniejsze wyniki.

Pytanie 6

Plik konfiguracyjny, który umożliwia ustalenie parametrów PHP dla całego serwera, to

A. php.ini
B. my.ini
C. config.inc.php
D. httpd.conf
Plik konfiguracyjny php.ini jest kluczowym elementem w konfiguracji środowiska PHP na serwerze. Umożliwia on zdefiniowanie różnorodnych ustawień, które mają wpływ na działanie aplikacji PHP. W pliku tym można ustawić m.in. poziom raportowania błędów, limit czasu wykonywania skryptów, wielkość pamięci, dostępne rozszerzenia oraz wiele innych parametrów. Dla przykładu, można zdefiniować dyrektywę 'memory_limit', która określa maksymalną ilość pamięci, jaką może używać jeden skrypt PHP. Dzięki temu administratorzy serwera mają pełną kontrolę nad środowiskiem uruchomieniowym, co jest niezwykle istotne w kontekście bezpieczeństwa i wydajności aplikacji. Plik php.ini jest zgodny ze standardami PHP i jest dokumentowany w oficjalnej dokumentacji, co ułatwia jego poprawne skonfigurowanie. Bez odpowiedniego dostosowania ustawień w php.ini, aplikacje mogą napotykać na problemy, takie jak przekroczenie limitu pamięci czy niewłaściwe raportowanie błędów, co może prowadzić do trudności w diagnozowaniu problemów.

Pytanie 7

W poniższym zapytaniu SQL znak „*” wskazuje, że w wyniku tego zapytania zostaną zwrócone:

SELECT * FROM mieszkancy WHERE imie = 'Anna';
A. wszystkie rekordy z tabeli mieszkańcy będą widoczne
B. zostanie pokazane pole zatytułowane „*” (gwiazdka)
C. zostaną wyświetlone wszystkie kolumny tabeli mieszkańcy
D. warunek dotyczący imienia zostanie pominięty
W zapytaniu SQL, operator '*' jest używany do oznaczania wszystkich kolumn w tabeli. W kontekście zapytania 'SELECT * FROM mieszkancy WHERE imie = 'Anna';', zapytanie to zwraca wszystkie kolumny z tabeli 'mieszkancy', które spełniają warunek określony w klauzuli WHERE, czyli te rekordy, w których pole 'imie' ma wartość 'Anna'. Przykład zastosowania: jeśli tabela 'mieszkancy' zawiera kolumny takie jak 'id', 'imie', 'nazwisko', 'adres', to wynik zapytania będzie zawierał wszystkie te kolumny dla osób o imieniu 'Anna'. Używanie '*' w zapytaniach jest powszechnie stosowaną praktyką, ale w dobrych praktykach programistycznych zaleca się określanie, które kolumny są faktycznie potrzebne w wyniku, aby zoptymalizować zapytania i zmniejszyć ilość przesyłanych danych, szczególnie w większych bazach danych.

Pytanie 8

Do zapisania prostej animacji na stronę internetową można zastosować format

A. GIF
B. JPG
C. CDR
D. PNG
Format GIF (Graphics Interchange Format) jest idealny do zapisywania prostych animacji na potrzeby stron internetowych. GIF obsługuje do 256 kolorów w palecie, co czyni go odpowiednim do animacji o niskiej rozdzielczości i małej liczbie kolorów. Animacje GIF składają się z serii klatek, które są wyświetlane w szybkim tempie, co pozwala na płynne przejścia między różnymi etapami animacji. Dzięki swojej powszechności i wsparciu w większości przeglądarek internetowych, GIF stał się standardem dla prostych animacji w sieci. Format ten wspiera również przezroczystość, co pozwala na umiejscowienie animacji na różnych tłach bez widocznego prostokątnego obramowania. Przykłady zastosowania GIF obejmują ikony ładowania, animacje przycisków czy krótkie klipy wideo zamienione na animacje. GIF jest także często wykorzystywany w marketingu internetowym i mediach społecznościowych, aby przyciągnąć uwagę użytkowników. Standardy dotyczące GIF są określone przez specyfikacje formatów obrazów i są szeroko akceptowane przez deweloperów webowych, co czyni go wygodnym wyborem dla twórców stron internetowych.

Pytanie 9

Definicja obiektu została zapisana w języku JavaScript jako var osoba={imie:"Anna", nazwisko:"Kowalska", rok_urodzenia:1985}; Jak można odwołać się do właściwości nazwisko?

A. osoba.nazwisko
B. osoba[2]
C. osoba[1]
D. osoba::nazwisko
Wszystkie inne odpowiedzi są niepoprawne z różnych powodów technicznych. Pierwsza z nich, osoba[1], opiera się na indeksowaniu tablicy, co jest błędne w kontekście obiektów. W JavaScript obiekty nie mają indeksów; zamiast tego są zorganizowane w pary klucz-wartość, gdzie klucze są nazwami właściwości. Próba uzyskania dostępu do właściwości przez indeksowanie zwróci undefined, ponieważ obiekt nie ma takiego klucza. Kolejna niepoprawna odpowiedź, osoba[2], jest analogicznie błędna, ponieważ odnosi się do drugiego elementu, co również nie ma zastosowania w obiektach. Obiekty w JavaScript nie są tablicami i nie można do nich odwoływać się w sposób, który sugeruje, że mają one numerowane właściwości. Ostatnia odpowiedź, osoba::nazwisko, jest syntaktycznie niepoprawna w JavaScript. Notacja z podwójnymi dwukropkami nie jest stosowana w języku, a niepoprawne użycie operatorów prowadzi do błędów wykonania. W JavaScript poprawny jest tylko dostęp przez notację kropkową lub nawiasową, ponieważ język nie wspiera takiej składni. Te pomyłki mogą wynikać z nieporozumienia w zakresie struktur danych w JavaScript oraz ich właściwego dostępu.

Pytanie 10

Do jakiego celu służy polecenie mysqldump?

A. stworzenia kopii zapasowej bazy
B. naprawy niespójnej bazy
C. sprawdzenia integralności bazy
D. optymalizacji bazy
Niektóre odpowiedzi mogą wydawać się na pierwszy rzut oka sensowne, jednak ich analiza pokazuje, że nie oddają one rzeczywistej funkcji mysqldump. Naprawa niespójnej bazy danych jest zadaniem, które wymaga zastosowania innych narzędzi, takich jak `myisamchk` dla silnika MyISAM lub `innodb_force_recovery` dla silnika InnoDB. Mysqldump nie zawiera mechanizmów naprawczych, więc jego użycie w tym kontekście jest błędne. Ponadto proces optymalizacji bazy danych, taki jak reorganizacja indeksów czy usuwanie nieużywanych danych, również nie jest domeną mysqldump, lecz narzędzi takich jak `OPTIMIZE TABLE` czy `ANALYZE TABLE`. Kolejnym błędnym podejściem jest sugestia, że mysqldump służy do sprawdzania integralności bazy danych. Integralność danych w bazach MySQL zapewniają różne mechanizmy, w tym transakcje, a także kontrola spójności danych na poziomie aplikacji. Mysqldump nie jest narzędziem do przeprowadzania walidacji danych ani analizy ich integralności, a skupić się powinien przede wszystkim na tworzeniu kopii zapasowych. W związku z tym, aby poprawnie zrozumieć zastosowanie mysqldump, warto wystrzegać się mylnych przekonań dotyczących jego funkcji, bazując na rzeczywistych możliwości tego narzędzia. Właściwe zrozumienie ról różnych narzędzi w ekosystemie baz danych jest kluczowe dla efektywnego zarządzania i ochrony danych.

Pytanie 11

Aby wykonać usunięcie tabeli, należy użyć kwerendy

A. UNIQUE
B. DROP TABLE
C. TRUNCATE TABLE
D. DELETE
Poprawna odpowiedź to DROP TABLE, ponieważ jest to standardowa komenda SQL używana do całkowitego usunięcia tabeli z bazy danych. Użycie tej komendy powoduje nie tylko usunięcie samej struktury tabeli, ale również wszystkich danych, które były w niej przechowywane. Przykładowo, jeśli mamy tabelę 'Użytkownicy' i chcemy ją usunąć, piszemy: DROP TABLE Użytkownicy; Należy jednak pamiętać, że po wykonaniu tej operacji nie można odzyskać ani tabeli, ani jej danych, dlatego ważne jest, aby przed takim krokiem wykonać odpowiednie kopie zapasowe lub upewnić się, że dane są już zbędne. W kontekście dobrych praktyk, przed usunięciem tabeli warto przeanalizować wpływ na inne obiekty bazy danych, takie jak klucze obce, które mogą być związane z usuwaną tabelą. Istotne jest również zrozumienie, że DROP TABLE nie można użyć, jeśli w tabeli istnieją aktywne ograniczenia lub jeśli jest ona częścią jakiejś transakcji. W takiej sytuacji, czynności te należy zrealizować w odpowiedniej kolejności, aby uniknąć błędów.

Pytanie 12

Jakie informacje z ośmiu wpisanych rekordów w tabeli zwierzęta zostaną przedstawione w wyniku wykonania wskazanej instrukcji SQL?

Ilustracja do pytania
A. Anna Kowalska, Jan Nowak
B. Dika, Fuks
C. Fafik, Brutus, Dika, Fuks
D. Figaro, Dika, Fuks
Zapytanie SQL SELECT imie FROM zwierzeta WHERE rodzaj = 2 AND szczepienie = 2016; filtruje wyniki według dwóch kryteriów: rodzaj musi być równy 2 i rok szczepienia musi być 2016. W danych mamy kilka zwierząt, ale tylko Dika i Fuks spełniają oba te warunki. Dika i Fuks mają rodzaj równy 2 oraz rok szczepienia 2016, co czyni je jedynymi zwierzętami w tabeli spełniającymi te kryteria. Zrozumienie tego typu zapytań wymaga znajomości składni SQL oraz logiki warunkowej. W praktyce stosowanie filtrów WHERE to jedna z podstawowych technik selekcji danych umożliwiająca precyzyjne wyciąganie rekordów z dużych zbiorów danych. Warto również zaznaczyć, że poprawne używanie takich zapytań w pracy zawodowej jest niezbędne dla zapewnienia jakości i wydajności procesów związanych z bazami danych. Wiedza ta jest kluczowa w wielu branżach, w których przetwarzanie dużych ilości danych jest codziennością.

Pytanie 13

Jaki rezultat zostanie wyświetlony po wykonaniu przedstawionego kodu HTML?

<ol>
    <li>punkt</li>
    <li>punkt
        <ul>
            <li>punkt</li>
            <li>punkt</li>
        </ul>
    </li>
    <li>punkt</li>
</ol>
<ol type="A" start="4">
    <li>punkt</li>
</ol>

1. punkt

2. punkt

  • punkt
  • punkt

3. punkt

4. punkt

A.

1. punkt

2. punkt

  • punkt
  • punkt

3. punkt

4. punkt

B.

1. punkt

2. punkt

  • punkt
  • punkt

3. punkt

D. punkt

C.

1. punkt

2. punkt

  • punkt
  • punkt

3. punkt

D. punkt

D.

A. C.
B. D.
C. A.
D. B.
Gratulacje, wybrałeś poprawną odpowiedź, która jest 'D'. Twoja znajomość struktury i semantyki kodu HTML jest na dobrym poziomie. Kod HTML w pytaniu składa się z dwóch uporządkowanych list (``), z których pierwsza zawiera trzy elementy. Drugi element pierwszej listy uporządkowanej zawiera zagnieżdżoną nieuporządkowaną listę (``) z dwoma elementami. Zwróć uwagę, że elementy listy nieuporządkowanej są wyświetlane z kropkami. Druga lista uporządkowana zaczyna numerację od litery 'D', co jest zgodne z odpowiedzią 'D'. W praktyce, zagnieżdżone listy są często używane do tworzenia struktur menu w aplikacjach webowych, a atrybut start w liście uporządkowanej pozwala na kontrolowanie numeracji elementów listy. Pamiętaj, że zrozumienie struktury i semantyki tagów HTML jest kluczowe dla tworzenia efektywnych i użytecznych stron internetowych.

Pytanie 14

W formularzu wartość z pola input o typie number została przypisana do zmiennej a i następnie przetworzona w skrypcie JavaScript w poniższy sposób. Jaki typ będzie miała zmienna z?

var z = parseFloat(a);
A. liczbowego, całkowitego
B. NaN
C. napisowego
D. zmiennoprzecinkowego
W kontekście działania funkcji parseFloat() ważne jest zrozumienie, dlaczego niektóre odpowiedzi mogą być błędne. Funkcja ta przetwarza dane tekstowe na liczby zmiennoprzecinkowe, więc oczekiwanie, że wynik będzie typu liczbowego całkowitego, jest nieprawidłowe. Bardzo często pojawia się błędne założenie, że skoro do funkcji przekazano liczbę całkowitą, to wynik również powinien być typu całkowitego. W rzeczywistości parseFloat() zawsze zwraca typ zmiennoprzecinkowy, co ma na celu zapewnienie elastyczności w przetwarzaniu zarówno liczb całkowitych, jak i dziesiętnych. Kolejnym nieporozumieniem jest oczekiwanie, że funkcja zwróci NaN. Taka sytuacja miałaby miejsce tylko wtedy, gdyby łańcuch zaczynał się od znaków niemożliwych do zinterpretowania jako liczba. Błędne jest również przypuszczenie, że wynik będzie typu tekstowego czy napisowego, ponieważ głównym celem parseFloat() jest konwersja tekstu do liczby, a nie odwrotnie. Zrozumienie tych subtelności pozwala uniknąć typowych błędów myślowych, takich jak zakładanie, że wszystkie wartości pochodzące z pól input zawsze mają poprawny typ przed interpretacją. Warto przy tym pamiętać o dobrych praktykach w programowaniu, które nakazują świadome zarządzanie typami danych, zwłaszcza w językach dynamicznie typowanych, jakim jest JavaScript. Dzięki temu programy stają się bardziej odporne na błędy wynikające z nieoczekiwanych typów danych.

Pytanie 15

Jak kwerenda SQL przedstawiona w ramce wpłynie na tabelę pracownicy?

ALTER TABLE pracownicy MODIFY plec char(9);
A. Doda kolumnę plec ze znakowym typem danych o zmiennej długości 9
B. Doda kolumnę plec ze znakowym typem danych o stałej długości 9
C. Zmieni typ danych kolumny plec na znakowy o zmiennej długości 9
D. Zmieni typ danych kolumny plec na znakowy o stałej długości 9
Inne odpowiedzi, które podałeś, dotyczą różnych operacji SQL, które nie mają związku z tym, co robi ALTER TABLE pracownicy MODIFY plec char(9). Musisz zrozumieć, że różnica między CHAR a VARCHAR jest dość istotna. CHAR ma stałą długość, to znaczy, że każda wartość w kolumnie zawsze ma tę samą liczbę znaków, uzupełnianą spacjami. Z kolei VARCHAR przechowuje dane o zmiennej długości, co może oszczędzać miejsce, ale wymaga więcej uwagi w zarządzaniu długością. Dodatkowo, jeśli chciałbyś dodać nową kolumnę, musiałbyś użyć polecenia ADD, a nie MODIFY. Ta różnica między dodawaniem a modyfikowaniem często myli początkujących w projektowaniu baz danych. Z mojego doświadczenia, wybór odpowiedniego typu danych i operacji jest kluczowy, bo źle przypisane polecenie może prowadzić do problemów z aplikacjami i zarządzaniem danymi. Tak że kluczowe jest zrozumienie, jak działają te polecenia SQL, żeby dobrze projektować efektywne bazy danych.

Pytanie 16

W skrypcie napisanym w języku PHP należy przeprowadzić operacje, gdy spełniony jest warunek, że adresy są parzystymi numerami na ulicach: Bratkowej oraz Nasturcjowej. Jakie wyrażenie logiczne to określa?

A. ($ulica == "Bratkowa" || $ulica == "Nasturcjowa") && $numer % 2 == 0
B. $ulica == "Bratkowa" && $ulica == "Nasturcjowa" && $numer % 2 == 0
C. $ulica == "Bratkowa" && $ulica == "Nasturcjowa" && $numer / 2 == 0
D. ($ulica == "Bratkowa" || $ulica == "Nasturcjowa") && $numer / 2 == 0
Wyrażenie logiczne ($ulica == "Bratkowa" || $ulica == "Nasturcjowa") && $numer % 2 == 0 jest poprawne, ponieważ łączy dwa istotne warunki: sprawdzenie, czy ulica jest jedną z dozwolonych (Bratkowa lub Nasturcjowa) oraz weryfikacja, czy numer adresu jest parzysty. Operator || (lub) skutkuje tym, że tylko jeden z warunków ulicy musi być prawdziwy, aby wyrażenie było spełnione. Z kolei operator % (modulo) skutkuje sprawdzeniem reszty z dzielenia przez 2, co jest standardowym podejściem do ustalania, czy liczba jest parzysta. W kontekście programowania w PHP, takie konstrukcje są powszechnie używane w celu walidacji danych wejściowych. Na przykład w formularzach rejestracyjnych, aby upewnić się, że użytkownik wprowadza prawidłowe informacje, można zastosować podobne wyrażenia. Warto również zauważyć, że jest to zgodne z dobrymi praktykami programowania, które zachęcają do stosowania czytelnych i zrozumiałych warunków logicznych, co ułatwia późniejsze utrzymanie kodu i jego rozbudowę.

Pytanie 17

W języku C do przedstawiania liczb zmiennoprzecinkowych używa się typu

A. int
B. bool
C. char
D. double
Typ `char` jest przeznaczony do przechowywania pojedynczych znaków, takich jak litery i cyfry, a jego rozmiar to zazwyczaj 1 bajt. Użycie typu `char` do przechowywania liczb zmiennoprzecinkowych jest błędne, ponieważ typ ten nie ma mechanizmu do reprezentacji wartości dziesiętnych. Z kolei typ `int` jest wykorzystywany do reprezentacji liczb całkowitych, co oznacza, że nie może przechowywać wartości z częścią dziesiętną, co czyni go niewłaściwym w kontekście zmiennoprzecinkowym. Użycie `int` w obliczeniach wymagających precyzyjnych wartości dziesiętnych prowadziłoby do utraty informacji, co może być krytyczne w aplikacjach, takich jak systemy finansowe, które muszą działać z dużą dokładnością. Typ `bool` z kolei jest używany do reprezentacji wartości logicznych (prawda/fałsz) i nie ma możliwości przechowywania wartości numerycznych, co czyni go nieodpowiednim w kontekście liczb zmiennoprzecinkowych. W związku z tym, wybór odpowiedniego typu danych w programowaniu jest kluczowy dla zachowania dokładności i poprawności obliczeń. Niezrozumienie różnicy między tymi typami może prowadzić do poważnych błędów programistycznych oraz nieprecyzyjnych rezultatów w aplikacjach, co podkreśla znaczenie stosowania typów danych zgodnie z ich przeznaczeniem.

Pytanie 18

Wskaż sposób, w jaki należy odwołać się do pliku default.css, jeśli index.html znajduje się bezpośrednio w katalogu Strona?

Ilustracja do pytania
A. <link rel="stylesheet" type="text/css" href="...\style\default.css" />
B. <link rel="stylesheet" type="text/css" href="./style/default.css" />
C. <link rel="stylesheet" type="text/css" href="c:\style/default.css" />
D. <link rel="stylesheet" type="text/css" href="c:/style/default.css" />
Błędne odpowiedzi w tym pytaniu wynikają z niewłaściwego użycia ścieżek do plików. Dwie z błędnych odpowiedzi sugerują użycie ścieżki bezwzględnej do pliku (rozpoczynającej się od 'c:/' lub 'c:\'), co nie jest zalecane, ponieważ takie ścieżki są specyficzne dla konkretnego systemu plików i mogą nie działać w innych środowiskach. Ponadto jedna z błędnych odpowiedzi sugeruje użycie nieprawidłowej składni ('...\') do odwołania się do pliku. Dobrą praktyką jest zawsze korzystanie ze ścieżek względnych podczas odwoływania się do plików w HTML, ponieważ są one uniwersalne i niezależne od systemu plików. Pamiętaj, że właściwe zarządzanie ścieżkami do plików i organizacja plików w strukturze katalogu to klucz do skutecznego i efektywnego kodowania.

Pytanie 19

CMYK to zestaw czterech podstawowych kolorów używanych w druku:

A. turkusowego, błękitnego, białego, różowego
B. czerwonego, purpurowego, żółtego, szarego
C. turkusowego, purpurowego, żółtego, czarnego
D. turkusowego, purpurowego, białego, czarnego
Wśród pozostałych odpowiedzi znajdują się kolory, które nie są częścią modelu CMYK. Przykładowo, wykorzystanie białego jako jednego z podstawowych kolorów jest błędne, ponieważ w druku subtraktywnym biały kolor uzyskuje się poprzez brak nałożenia farby, a nie przez jej obecność. Ponadto, odpowiedzi zawierające szary również są niepoprawne, ponieważ szary nie jest podstawowym kolorem w modelu CMYK, a jego uzyskanie wymaga mieszania pozostałych kolorów w odpowiednich proporcjach. W druku istotne jest, aby zrozumieć, że kolory muszą pochodzić z farb o wysokiej czystości, które efektywnie współpracują ze sobą podczas procesu drukowania. Również, obecność turkusowego w tych odpowiedziach jest myląca, ponieważ w kontekście CMYK chodzi o cyjan, który ma zupełnie inną charakterystykę kolorystyczną. Znajomość właściwych terminów i kolorów w druku jest niezbędna, aby unikać pomyłek w projektowaniu oraz druku materiałów, co może prowadzić do znacznych błędów w końcowym produkcie.

Pytanie 20

Aby obliczyć liczbę wszystkich wierszy w tabeli Koty, należy zastosować zapytanie:

A. SELECT ROWNUM() FROM Koty
B. SELECT COUNT(ROWNUM) FROM Koty
C. SELECT COUNT(Koty) AS ROWNUM
D. SELECT COUNT(*) FROM Koty
Poprawna odpowiedź to 'SELECT COUNT(*) FROM Koty', ponieważ to standardowy sposób zliczania wszystkich wierszy w tabeli w SQL. Funkcja COUNT(*) zlicza wszystkie wiersze, niezależnie od tego, czy zawierają wartości NULL, czy nie. Jest to najczęściej używana metoda w praktyce, ponieważ zapewnia dokładny wynik i jest także optymalizowana przez silnik baz danych, co czyni ją efektywną. Na przykład, jeśli mamy tabelę 'Koty' zawierającą różne dane o kotach, użycie tego polecenia zwróci dokładną liczbę kotów zapisanych w tej tabeli. Dobrym zwyczajem jest również korzystanie z aliasów lub konstruowania zapytań z dodatkowymi warunkami, co pozwala na bardziej złożoną analizę danych. Przy pracy z dużymi zbiorami danych, zrozumienie jak działa COUNT(*) i jego zastosowanie w kontekście innych funkcji agregujących jest kluczowe dla optymalizacji zapytań. Warto również pamiętać, że w SQL standardowym zliczanie wierszy bezpośrednio z tabeli jest znacznie bardziej efektywne i czytelne niż inne metody, co czyni tę praktykę najlepszą do stosowania w codziennej pracy z bazami danych.

Pytanie 21

Po przeprowadzeniu walidacji dokumentu HTML pojawił się błąd przedstawiony na zrzucie. Jak można go usunąć?

Ilustracja do pytania
A. dodać atrybut alt do grafiki
B. w znaczniku img zmienić nazwę atrybutu src na href
C. w znaczniku img zmienić nazwę atrybutu src na alt
D. zmienić zapis </h1> na <h1>
W znaczniku img atrybut src jest niezbędny do określenia źródła obrazka a zmiana jego nazwy na href jest nieprawidłowa. Atrybut href jest używany w tagach a do wskazywania lokalizacji linku a nie w przypadku obrazów. Zamiana src na alt całkowicie zmieniłaby funkcję znacznika uniemożliwiając ładowanie obrazka. Sama zmiana nazw atrybutów nie rozwiązuje problemu związanego z brakiem opisu alternatywnego. Natomiast ostatnia opcja dotycząca zamiany </h1> na <h1> odnosi się do struktury nagłówka HTML a nie ma związku z problemem z obrazkiem. Poprawne oznaczanie struktury dokumentu za pomocą nagłówków jest kluczowe dla semantyki i dostępności jednak nie likwiduje błędu związanego z atrybutem alt. Każdy z tych błędnych pomysłów wynika z niezrozumienia roli atrybutów w HTML oraz ich wpływu na dostępność i SEO. Poprawne stosowanie atrybutów to podstawa dobrych praktyk kodowania i niezbędny element tworzenia dostępnych stron. Warto zaznaczyć że alt to nie tylko standard ale również wyraz dbałości o użytkowników i ich doświadczenia na stronie. Błędne rozumienie tych koncepcji prowadzi do nieskutecznego lub wadliwego kodu który nie spełnia wymogów współczesnych aplikacji webowych. Poprawa jakości kodu poprzez zrozumienie jego struktury i funkcjonalności jest kluczowa dla każdego specjalisty z branży IT.

Pytanie 22

W każdej iteracji pętli wartość aktualnego elementu tablicy jest przypisywana do zmiennej, a wskaźnik tablicy przesuwa się o jeden, aż do osiągnięcia ostatniego elementu tablicy. To stwierdzenie jest prawdziwe w kontekście instrukcji

A. foreach
B. if
C. switch
D. next
Wybór if, next i switch jako odpowiedzi nie jest poprawny w kontekście opisanego działania pętli, ponieważ każda z tych instrukcji ma odmienny cel i zastosowanie. Instrukcja if służy do warunkowego wykonywania bloków kodu, co oznacza, że nie umożliwia iteracji po elementach tablicy. W przypadku używania if, programista musi samodzielnie zarządzać pętlami, co wprowadza dodatkową złożoność oraz możliwość wystąpienia błędów. Z kolei next jest używane w kontekście iteracji w niektórych językach programowania, ale nie funkcjonuje jako samodzielna instrukcja. Zazwyczaj next jest częścią pętli, jak na przykład w pętli while, gdzie służy do przesunięcia wskaźnika lub indeksu, lecz nie pełni roli do iteracji po tablicach w sposób zautomatyzowany. Z kolei switch jest konstrukcją służącą do stosowania wielokrotnych warunków, co pozwala na wybór jednego z wielu możliwych bloków kodu na podstawie wartości danej zmiennej. Nie jest to mechanizm iteracyjny, dlatego nie można go zastosować do przetwarzania elementów tablicy w sposób opisany w pytaniu. Analizując te trzy odpowiedzi, można zauważyć, że żadna z nich nie spełnia kryteriów, które opisuje działanie instrukcji foreach.

Pytanie 23

tr:nth-child(even) {background-color: #F2F2F2;}
Zastosowane formatowanie selektora tr:nth-child(even) spowoduje:
A. wypełnienie szarym tłem parzystych wierszy tabeli.
B. wypełnienie wszystkich wierszy tabeli szarym tłem.
C. oddzielenie wierszy nieparzystych od parzystych wierszem z szarym tłem.
D. wypełnienie szarym tłem nieparzystych wierszy tabeli.
W tym zadaniu kluczowe jest zrozumienie, jak dokładnie działa funkcja nth-child() w CSS oraz co oznaczają słowa kluczowe even i odd. Wiele osób intuicyjnie myli te pojęcia i zakłada, że selektor zadziała trochę „magicznie”, np. tylko na wybrane elementy, albo że numeracja zaczyna się od zera. Tymczasem przeglądarka liczy dzieci danego elementu rodzica od 1 w górę, w kolejności ich występowania w drzewie DOM. Słowo kluczowe even oznacza wszystkie elementy o indeksach parzystych: 2, 4, 6, 8 itd. Dlatego tr:nth-child(even) nie może oznaczać wypełnienia nieparzystych wierszy tabeli – do tego służyłby selektor tr:nth-child(odd). Pomylenie even z odd to bardzo typowy błąd, zwłaszcza na początku nauki CSS, bo nazwy są krótkie i łatwo je skojarzyć odwrotnie, niż trzeba. Kolejne nieporozumienie to przekonanie, że nth-child(even) obejmuje wszystkie wiersze tabeli. Gdyby chodziło o wszystkie wiersze <tr>, wystarczyłby prosty selektor tr bez nth-child. Funkcja nth-child() zawsze wybiera tylko pewien podzbiór dzieci, zgodnie z podanym wzorem, więc mówienie, że styl z taką funkcją dotyczy wszystkich elementów, jest po prostu sprzeczne z definicją tej konstrukcji w specyfikacji CSS. Pojawia się też czasem myśl, że taka reguła ma jakiś „separujący” charakter, czyli że wstawia wizualny wiersz oddzielający nieparzyste i parzyste rekordy. CSS nie dodaje nowych elementów do DOM, on tylko styluje te, które już istnieją. tr:nth-child(even) nie tworzy żadnego dodatkowego wiersza, nie wstawia separatorów, po prostu zmienia tło wybranych istniejących wierszy, zgodnie z parzystością ich indeksu. W praktyce, jeśli chcemy mieć efekt wyraźnego rozdzielenia wierszy, używa się obramowań (border), cieni lub właśnie naprzemiennego kolorowania, ale zawsze w ramach istniejących <tr>. Dobrym nawykiem jest też pamiętanie, że nth-child() liczy wszystkie dzieci danego rodzica, więc jeśli w tabeli mamy thead, tbody i tfoot, to często stosuje się selektor tbody tr:nth-child(even), żeby uniknąć nieoczekiwanych przesunięć numeracji przez nagłówki. Zrozumienie tej zasady bardzo ułatwia późniejsze korzystanie z bardziej złożonych wzorów nth-child, jak np. 2n+1 czy 3n.

Pytanie 24

Jakie będzie wynikowe wyjście po uruchomieniu tego skryptu PHP?

<?php
$kolory = array("czarny", "zielony", "niebieski", "biały");
rsort($kolory);
$ile = count($kolory);
for($x = 0; $x < $ile; $x++)
{
  echo $kolory[$x].", ";
}
?>
A. czarny, zielony, niebieski, biały
B. biały, czarny, niebieski, zielony
C. zielony, niebieski, czarny, biały
D. biały, niebieski, zielony, czarny
W przypadku podanego skryptu PHP błędne odpowiedzi wynikają z niewłaściwej interpretacji działania funkcji rsort(). Zadaniem tej funkcji jest sortowanie elementów tablicy w porządku malejącym na podstawie wartości ASCII pierwszego znaku każdego elementu. Jeśli przyjrzymy się tablicy zawierającej słowa czarny zielony niebieski biały funkcja rsort() ułoży je w odwrotnej kolejności alfabetycznej zaczynając od słów których pierwsze litery mają wyższą wartość ASCII. Typowym błędem może być niezrozumienie że rsort() działa na całych wartościach łańcuchów a nie tylko na pierwszych literach. Należy również pamiętać że funkcje sortujące takie jak rsort() nie zwracają nowej tablicy lecz modyfikują istniejącą co czasem może prowadzić do niepoprawnych założeń dotyczących oryginalnych danych. Innym częstym błędem jest zakładanie że rsort() zachowuje porządek elementów o tej samej wartości początkowej co nie jest prawdą jeśli dwa elementy miałyby tę samą pierwszą literę rsort() może zmienić ich kolejność względem siebie. Właściwe zrozumienie działania funkcji sortujących w PHP jest niezbędne aby uniknąć błędów logicznych i zapewnić że nasze aplikacje działają zgodnie z oczekiwaniami.

Pytanie 25

Baza danych 6-letniej szkoły podstawowej zawiera tabelę szkola z polami: imie, nazwisko oraz klasa. Uczniowie z klas 1-5 przeszli do wyższej klasy. Jakie polecenie należy użyć, aby zwiększyć wartość w polu klasa o 1?

A. SELECT szkola FROM klasa=klasa+1 WHERE klasa >=1 AND klasa <=5
B. UPDATE nazwisko, imie SET klasa=klasa+1 WHERE klasa>1 OR klasa<5
C. SELECT nazwisko, imie FROM klasa=klasa+1 WHERE klasa>1 OR klasa <5
D. UPDATE szkola SET klasa=klasa+1 WHERE klasa>=1 AND klasa <=5
Odpowiedź jest prawidłowa, ponieważ polecenie SQL 'UPDATE szkola SET klasa=klasa+1 WHERE klasa>=1 AND klasa <=5;' skutecznie zwiększa wartość w polu 'klasa' dla wszystkich uczniów klas 1-5. W tym kontekście 'UPDATE' jest używane do modyfikowania istniejących danych w tabeli. Wyrażenie 'SET klasa=klasa+1' oznacza, że wartość w polu 'klasa' dla każdego rekordu, który spełnia warunek, zostanie zwiększona o 1. Warunek 'WHERE klasa>=1 AND klasa <=5' zapewnia, że zmiana dotyczy tylko uczniów, którzy są w klasach 1-5, co jest zgodne z założeniem, że wszyscy ci uczniowie zdali do następnej klasy. Praktyczne zastosowanie tego polecenia może być widoczne w sytuacjach, gdy szkoła regularnie aktualizuje dane uczniów na koniec roku szkolnego. Ważne jest, aby zawsze przetestować zapytania aktualizacyjne w środowisku testowym przed ich wdrożeniem w produkcji, aby uniknąć niezamierzonych zmian w danych.

Pytanie 26

Który z zaprezentowanych kodów HTML sformatuje tekst zgodnie z podanym wzorem?
Uwaga: słowo "stacji" jest napisane większą czcionką niż pozostałe wyrazy w tej linijce)

Lokomotywa

Stoi na stacji lokomotywa ...

A. <h1>Lokomotywa</h1> <p>Stoi na <big>stacji lokomotywa ...</p>
B. <h1>Lokomotywa</h1> <p>Stoi na <big>stacji</big> lokomotywa ...</p>
C. <h1>Lokomotywa</h1> <p>Stoi na <big>stacji</big> lokomotywa ...</p>
D. <p><small>Lokomotywa</small></p> <p>Stoi na <big>stacji<big> lokomotywa ...</p>
Poprawny kod dokładnie odtwarza wzór: nagłówek poziomu pierwszego <h1> z tekstem „Lokomotywa” oraz akapit <p>, w którym tylko słowo „stacji” jest wyróżnione większym rozmiarem za pomocą znacznika <big>. Dzięki temu przeglądarka powiększa wyłącznie ten jeden wyraz, a reszta zdania zachowuje standardowy rozmiar czcionki wynikający z kaskady CSS lub domyślnych ustawień. Struktura dokumentu jest też logiczna: tytuł w <h1>, treść w akapicie, bez zbędnego mieszania poziomów nagłówków. W praktyce taki zapis dobrze pokazuje, jak selektywnie formatować tekst wewnątrz akapitu – możemy objąć znacznikiem <big> tylko fragment, podobnie jak używa się <strong> albo <em> do wyróżniania pojedynczych słów. W nowoczesnych projektach zamiast <big> zaleca się raczej stosowanie CSS, np. <span class="wiekszy">stacji</span> i w CSS: .wiekszy { font-size: 1.2em; }. Daje to większą kontrolę nad wyglądem i jest zgodne z aktualnymi standardami W3C, bo <big> jest znacznikiem przestarzałym (deprecated). Mimo to, z punktu widzenia tego zadania, kluczowe jest zrozumienie, że tag musi dokładnie obejmować tylko słowo, które ma być powiększone, oraz że znacznik musi być poprawnie zamknięty. Taka precyzyjna selekcja fragmentu tekstu to podstawa przy formatowaniu treści w HTML i późniejszym stylowaniu w CSS.

Pytanie 27

Wskaź poprawną formę kodowania polskich znaków w pliku HTML?

A. <meta charset="UTF-8">
B. <meta content='UTF8'>
C. <meta "content=UTF-8">
D. <meta char set= "UTF-8">
Odpowiedź <meta charset="UTF-8"> to strzał w dziesiątkę! To zgodny z nowoczesnymi standardami HTML sposób na określenie kodowania znaków w dokumencie. Dzięki temu, że używamy atrybutu 'charset' z wartością 'UTF-8', mówimy przeglądarkom, że tekst powinien być interpretowany według tego kodowania. UTF-8 jest super popularne, bo obsługuje wszystkie znaki w Unicode. To oznacza, że możemy pisać wszystkie polskie znaki diakrytyczne, czyli te jak ą, ć, ę, ł itd., bez obaw o błędy w wyświetlaniu. Jeśli wstawisz ten tag w sekcji <head> swojego dokumentu HTML, masz pewność, że strona będzie dobrze wyglądać w różnych przeglądarkach i na różnych urządzeniach. Dobrze jest umieszczać go na początku sekcji <head>, żeby uniknąć problemów z pokazywaniem treści. Co więcej, korzystanie z UTF-8 jest rekomendowane przez W3C, więc to naprawdę dobry wybór dla nowoczesnych aplikacji webowych.

Pytanie 28

Jaką wartość zwróci ten algorytm?

Z = 0
N = 1
dopóki Z < 3:
    N = N * 2 + 1
    Z = Z + 1
wypisz N
A. 7
B. 15
C. 3
D. 5
Analizując pozostałe odpowiedzi, można zauważyć, że wszystkie one są wynikiem błędnego rozumienia działania algorytmu. Odpowiedź 3 wynika z mylnego założenia, że N po pierwszej iteracji to ostateczna wartość. Przy pierwszej iteracji N wynosi 3, ale w kolejnych iteracjach ulega dalszym modyfikacjom. Odpowiedź 5 może pochodzić z błędnego dodania 1 do wartości N po pierwszej iteracji, co prowadzi do niepełnego zrozumienia pętli. Wartość 7 jest wynikiem niepoprawnego obliczenia po drugiej iteracji, gdy Z wynosi 2, jednak nie uwzględnia trzeciej iteracji. Wszystkie te odpowiedzi ilustrują typowe błędy w logice algorytmicznej, gdzie użytkownicy nie śledzą zmian wartości zmiennych w kolejnych krokach pętli. Kluczowe jest zrozumienie, że każda iteracja pętli wpływa na wynik końcowy poprzez modyfikację zmiennych, co jest niezbędne w programowaniu. Często popełnianym błędem jest zatrzymywanie się na etapie, na którym zmienna wydaje się mieć odpowiednią wartość, co prowadzi do nieuwzględnienia kolejnych obliczeń. Efektywne programowanie wymaga pełnego zrozumienia logiki pętli, a także umiejętności przewidywania dalszych zmian w zmiennych.

Pytanie 29

Jaką funkcję pełni program debugger?

A. badania kodu źródłowego w celu wykrycia błędów składniowych
B. przekładania kodu napisanego w języku wyższego poziomu na język maszynowy
C. analizy działającego programu w celu wykrycia błędów
D. interpretacji kodu w ramach wirtualnej maszyny Java
Debugger jest narzędziem, które pozwala na analizowanie i monitorowanie działania programów w trakcie ich wykonywania. Jego głównym celem jest lokalizacja błędów, co jest kluczowe w procesie programowania. Umożliwia on programiście śledzenie wartości zmiennych, monitorowanie stanu aplikacji oraz identyfikowanie momentów, w których występują błędy. Dobre praktyki wskazują, że regularne korzystanie z debuggersów w procesie developmentu przyczynia się do wczesnego wykrywania problemów, co z kolei redukuje koszty i czas potrzebny na naprawę. Na przykład, w przypadku aplikacji webowych, debugger może pomóc w analizie, dlaczego dany fragment kodu nie działa tak, jak oczekiwano, umożliwiając programiście zatrzymanie wykonania w konkretnym punkcie oraz sprawdzenie stanu aplikacji. Współczesne środowiska programistyczne, takie jak Visual Studio czy IntelliJ IDEA, oferują rozbudowane funkcje debugowania, które są nieocenione w codziennej pracy programisty.

Pytanie 30

Co należy zrobić, gdy rozmiar pliku graficznego jest zbyt duży do umieszczenia w Internecie?

A. zapisać w formacie BMP
B. dodać kanał alfa
C. zmniejszyć jego rozdzielczość
D. zwiększyć jego głębię kolorów
Zmniejszenie rozdzielczości pliku graficznego to jedna z najskuteczniejszych metod redukcji jego rozmiaru, co jest kluczowe przy publikacji w Internecie. Rozdzielczość odnosi się do ilości pikseli, które tworzą obraz, a jej zmniejszenie prowadzi do mniejszej ilości danych do przechowania. Przykładowo, zamiast publikować obraz o rozdzielczości 4000x3000 pikseli, można zmniejszyć go do 1920x1080, co drastycznie zmniejszy wielkość pliku bez zauważalnej utraty jakości wizualnej na ekranach komputera czy urządzeń mobilnych. Zmniejszenie rozdzielczości jest zgodne z najlepszymi praktykami w zakresie optymalizacji zasobów internetowych, w tym zasadami dotyczącymi czasu ładowania strony i wydajności. Dodatkowo, odpowiednia rozdzielczość może poprawić doświadczenia użytkowników, zmniejszając czas ładowania i zwiększając responsywność witryn. Warto również pamiętać o formatowaniu plików graficznych, gdzie JPEG jest często preferowanym formatem dla zdjęć, a PNG dla obrazów z przezroczystością. Stosowanie technologii takich jak responsywne obrazy również przyczynia się do efektywnej prezentacji graficznej w sieci, co ma kluczowe znaczenie w dzisiejszym świecie online.

Pytanie 31

Jakie mechanizmy przydzielania zabezpieczeń, umożliwiające przeprowadzanie operacji na bazie danych, są powiązane z zagadnieniami dotyczącymi zarządzania kontami, użytkownikami oraz uprawnieniami?

A. Z atrybutami
B. Z przywilejami obiektowymi
C. Z regułami
D. Z przywilejami systemowymi
Uprawnienia związane z atrybutami i regułami mogą mylnie wydawać się odpowiednie w kontekście zarządzania dostępem, ale ich zrozumienie jest kluczowe, aby uniknąć błędnych wniosków. Atrybuty w kontekście systemów zarządzania bazami danych są często używane do definiowania cech obiektów, takich jak kolumny w tabelach, ale nie są bezpośrednio związane z mechanizmami nadawania uprawnień. Reguły, choć mogą być wykorzystywane do definiowania polityk bezpieczeństwa, nie są tym samym co przywileje systemowe. Przywileje obiektowe, z kolei, dotyczą dostępu do konkretnych obiektów w bazie danych, takich jak tabele czy widoki, a nie ogólnych uprawnień administracyjnych. Często występuje nieporozumienie, że wszystkie te mechanizmy są równoważne, co prowadzi do niewłaściwego stosowania uprawnień w systemach. Kluczowe jest zrozumienie, że przywileje systemowe są tymi, które kontrolują dostęp do całej struktury bazy danych, a nie tylko do jej poszczególnych elementów, co stanowi podstawę dla skutecznego zarządzania bezpieczeństwem w środowiskach IT. W praktyce niepoprawne przypisywanie uprawnień może prowadzić do nieautoryzowanego dostępu do danych, co jest sprzeczne z najlepszymi praktykami ochrony informacji.

Pytanie 32

Który protokół jest stosowany do przesyłania plików na serwer WWW?

A. POP3
B. FTP
C. DHCP
D. DNS
FTP, czyli File Transfer Protocol, to protokół używany do przesyłania plików między komputerami w sieci, zwłaszcza w kontekście serwerów WWW. Umożliwia on użytkownikom łatwe przesyłanie, pobieranie, a także zarządzanie plikami na serwerze. FTP działa na bazie modelu klient-serwer, gdzie klient nawiązuje połączenie z serwerem i może przesyłać pliki w obie strony. Protokół ten operuje na portach 20 i 21, co czyni go standardem w dziedzinie przesyłania plików. W praktyce, wiele aplikacji klienckich, takich jak FileZilla czy WinSCP, wykorzystuje FTP do zarządzania plikami na serwerach. FTP wspiera różne metody autoryzacji, w tym logowanie anonimowe, co umożliwia użytkownikom dostęp do publicznych zasobów. Warto również zaznaczyć, że istnieją rozszerzenia, takie jak FTPS czy SFTP, które oferują dodatkowe funkcje zabezpieczeń, umożliwiając szyfrowanie danych podczas transferu. W kontekście standardów, FTP jest definiowany w dokumentach RFC 959 oraz RFC 3659, które określają jego działanie oraz interakcje w sieci. Dzięki swojej wszechstronności i niezawodności, FTP pozostaje jednym z najpopularniejszych protokołów do przesyłania plików w Internecie.

Pytanie 33

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

A. Metoda POST, przy użyciu protokołu HTTP
B. Metoda GET, przy użyciu protokołu HTTPS
C. Metoda POST, przy użyciu protokołu HTTPS
D. Metoda GET, przy użyciu protokołu HTTP
Wybór metody GET za pomocą protokołu HTTP do przesyłania poufnych danych wiąże się z poważnymi zagrożeniami dla bezpieczeństwa. Metoda GET przesyła dane jako część adresu URL, co oznacza, że mogą one być łatwo widoczne w historii przeglądania użytkownika i logach serwera. Oznacza to, że jakiekolwiek dane osobowe lub informacje finansowe mogą zostać przypadkowo ujawnione osobom trzecim. Przykładowo, jeśli użytkownik wprowadza swoje hasło w formularzu używając metody GET, to jego hasło będzie widoczne w pasku adresu przeglądarki, co stwarza ryzyko kradzieży tożsamości. Protokół HTTP dodatkowo nie zapewnia żadnego szyfrowania, co czyni go podatnym na ataki typu „man-in-the-middle”, w których złośliwy użytkownik może przechwycić przesyłane dane. Praktyki bezpieczeństwa wymagają, aby poufne informacje były zawsze przesyłane za pomocą bezpiecznego połączenia oraz odpowiedniej metody, co czyni odpowiedzi na bazie HTTP jako nieodpowiednie. Często spotykanym błędem jest mylenie metod GET i POST; niektórzy użytkownicy mogą nie dostrzegać różnicy i nie zdawać sobie sprawy z tego, jak ważne jest odpowiednie zabezpieczenie komunikacji w sieci. Dlatego kluczowe jest, aby przy przesyłaniu wrażliwych danych zawsze korzystać z HTTPS oraz metody POST, co stanowi standard w branży internetowej.

Pytanie 34

Wskaż kod CSS, który odpowiada layoutowi bloków 2 – 5, zakładając, że są one utworzone na podstawie podanego kodu HTML.

Ilustracja do pytania
A. Kod 3
B. Kod 2
C. Kod 1
D. Kod 4
Prawidłowy układ bloków wymaga precyzyjnego zarządzania ich pozycjonowaniem za pomocą właściwości CSS float. W niepoprawnych odpowiedziach pojawiają się często błędy związane z nieodpowiednim pozycjonowaniem bloków, co skutkuje niepożądanym układem. Na przykład w Kodzie 1, użycie właściwości clear: both dla bloku 5 powoduje, że zaczyna on nowy wiersz, co jest niezgodne z założeniem układu, w którym blok 5 powinien znajdować się pod blokiem 3. Brak odpowiedniego wyrównania bloków może prowadzić do niepożądanego zapełnienia przestrzeni, co może być kłopotliwe szczególnie w responsywnym projektowaniu. Kod 3 nie uwzględnia potrzeby wyczyszczenia float, co może prowadzić do nakładania się bloków. W przypadku Kodu 4, brak użycia float dla bloku 3 powoduje, że ten nie zachowuje się jak oczekiwano, co może prowadzić do niezgodności z przedstawionym układem. Typowym błędem jest również niewłaściwe obliczenie sumarycznej szerokości bloków w jednym wierszu, co może prowadzić do przekroczenia dostępnej przestrzeni, a tym samym zaburzenia układu. Takie błędy często wynikały z braku zrozumienia działania mechanizmu float i clear, co jest kluczowe w tradycyjnym projektowaniu układów stron za pomocą CSS. Obecnie, dla bardziej zaawansowanych układów, zaleca się stosowanie takich technologii jak flexbox czy grid layout, które oferują większą elastyczność i kontrolę nad rozmieszczeniem elementów na stronie.

Pytanie 35

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

A. grupowania.
B. części wspólnej.
C. sumy.
D. wykluczenia.
W tym zadaniu łatwo się pomylić, bo w grafice wektorowej mamy kilka różnych funkcji, które na pierwszy rzut oka wyglądają podobnie: łączą obiekty w coś, co zachowuje się jak jeden element. Jednak ich działanie „pod maską” jest zupełnie inne. Funkcje typu suma, wykluczenie czy część wspólna to klasyczne operacje boolowskie na kształtach. One zmieniają geometrię obiektów, czyli tworzą nową ścieżkę wynikową na podstawie przecięcia lub połączenia istniejących. W praktyce oznacza to, że jeśli zastosujesz sumę na tekście i wielokącie, program najczęściej zamieni tekst na krzywe i połączy wszystko w jedną ścieżkę. Efekt wizualny może być fajny, ale edytowalność tekstu przepada. Nie możesz już po prostu zmienić czcionki czy liter, bo to nie jest tekst, tylko zestaw węzłów. Podobnie z wykluczeniem: ta operacja tworzy „dziurę” jednego obiektu w drugim. Używa się jej np. do wycinania napisu z tła lub tworzenia maski. To jest typowy trik przy projektach logotypów albo efektach dekoracyjnych. Ale z punktu widzenia pytania – to działanie jest destrukcyjne dla tekstu, bo znowu zamienia go na kształt i łączy z wielokątem w sposób nieodwracalny (poza cofnięciem operacji). Część wspólna działa jeszcze ostrzej: zostawia tylko obszar, w którym obiekty się nakładają. Reszta jest tracona. To też jest operacja geometryczna, a nie organizacyjna. Typowy błąd myślowy polega na założeniu, że „skoro po operacji mam jeden obiekt, to znaczy, że to jest to samo co grupowanie”. Niestety nie. Grupowanie nie modyfikuje kształtów, tylko tworzy kontener logiczny – tak jakbyś w folderze trzymał kilka plików. Możesz je potem rozgrupować i wszystko wraca do stanu sprzed grupowania. Operacje suma, wykluczenie, część wspólna są destrukcyjne względem oryginalnych obiektów, bo generują nową ścieżkę zamiast starych. W kontekście dobrych praktyk w grafice komputerowej i multimediach przyjmuje się, że dopóki chcesz zachować pełną edytowalność (szczególnie tekstów), używasz grupowania, warstw i wyrównywania, a dopiero na późnym etapie projektu stosujesz operacje boolowskie, i to świadomie, wiedząc, że cofasz się już tylko historią edycji. Dlatego w pytaniu, gdzie mowa jest wprost o połączeniu tekstu i wielokąta w jeden obiekt w sposób odwracalny, jedyną sensowną odpowiedzią jest funkcja grupowania, a nie suma, wykluczenie czy część wspólna.

Pytanie 36

Które z wymienionych par znaczników HTML mają identyczny efekt wizualny na stronie internetowej, jeśli nie zastosowano żadnych stylów CSS?

A. <b> i <big>
B. <meta> oraz <title>
C. <b> i <strong>
D. <p> oraz <h2>
Odpowiedź <b> i <strong> jest poprawna, ponieważ oba znaczniki służą do wyróżniania tekstu, przy czym nie mają one różnicy w wizualizacji, jeśli nie zastosowano żadnych stylów CSS. Z punktu widzenia semantyki HTML, <strong> jest znacznikiem, który wyraża większe znaczenie dla zawartego w nim tekstu, co jest korzystne dla dostępności oraz SEO, ale wizualnie, bez dodatkowych stylów, obie etykiety wykazują te same cechy. Przykładowo, można ich używać w sytuacjach, gdy chcemy wyróżnić ważne informacje w artykule lub nagłówku. Zastosowanie tych znaczników zgodnie z dobrymi praktykami HTML pozwala na lepsze zrozumienie struktury strony przez wyszukiwarki oraz czytniki ekranu, co ma znaczenie w kontekście dostępności. W związku z tym, wyróżnianie tekstu za pomocą <b> i <strong> jest nie tylko estetyczne, ale także funkcjonalne, wspierając zarówno użytkowników, jak i algorytmy wyszukiwania.

Pytanie 37

Jaki typ mechanizmu zapewnienia bezpieczeństwa podczas uruchamiania aplikacji jest zawarty w środowisku .NET Framework?

A. Mechanizm wykonywania aplikacji realizowany przez funkcję Windows API (Application Programming Interface)
B. Mechanizm wykonywania aplikacji realizowany przez frameworki aplikacji webowych (ASP.NET)
C. Mechanizm wykonywania aplikacji oparty na uprawnieniach kodu (CAS - Code Access Security) oraz na rolach (RBS - Role-Based Security)
D. Mechanizm wykonywania aplikacji dla bibliotek klas
Mechanizmy bezpieczeństwa w .NET Framework obejmują różne podejścia, ale odpowiedzi odnoszące się do frameworków aplikacji internetowych, bibliotek klas czy funkcji Windows API nie są stosowane jako główne metody kontroli bezpieczeństwa aplikacji. Frameworki aplikacji internetowych, takie jak ASP.NET, zapewniają pewne funkcjonalności bezpieczeństwa, ale nie są one mechanizmami kontroli dostępu samodzielnie. Kluczowym błędem jest mylenie frameworków z mechanizmami bezpieczeństwa; same frameworki to zestawy narzędzi do budowy aplikacji, które mogą implementować różne mechanizmy, ale bezpieczeństwo nie jest ich jedyną funkcją. Z kolei mechanizmy dla bibliotek klas wiążą się głównie z udostępnianiem kodu i zarządzaniem jego użyciem, a nie z jego bezpieczeństwem. Co więcej, odwoływanie się do funkcji Windows API jako mechanizmu wykonywania aplikacji jest mylące, ponieważ API to zestaw funkcji umożliwiających interakcję z systemem operacyjnym, a nie środowisko uruchomieniowe. Rozumienie różnicy między tymi pojęciami jest istotne, aby nie wprowadzać się w błąd co do zabezpieczeń aplikacji i ich implementacji. Prawidłowe podejście do bezpieczeństwa wymaga znajomości zarówno standardów, jak i najlepszych praktyk związanych z zarządzaniem uprawnieniami oraz monitorowaniem dostępu, co jest kluczowe w kontekście tworzenia trudnych do przełamania aplikacji.

Pytanie 38

W utworzonej tabeli pole należące do typu BLOB służy do składowania

A. danych logicznych takich jak true
B. łańcuchów znaków o nieokreślonej długości
C. liczb całkowitych, które przekraczają zakres typu INT
D. danych binarnych o dużych rozmiarach, takich jak grafika
Pole typu BLOB (Binary Large Object) jest przeznaczone do przechowywania danych binarnych dużych rozmiarów, co czyni je idealnym do przechowywania plików multimedialnych, takich jak obrazy, wideo lub dźwięki. W bazach danych, BLOB jest używane, gdy dane są zbyt duże, aby mogły być przechowywane w standardowych typach danych, takich jak VARCHAR czy INT. Przykładem zastosowania BLOB może być strona internetowa, która pozwala użytkownikom na przesyłanie zdjęć profilowych. W takim przypadku, zdjęcia są przechowywane w kolumnie typu BLOB w bazie danych, co pozwala na efektywne zarządzanie dużymi plikami binarnymi. Zastosowanie standardów takich jak SQL przy projektowaniu baz danych zapewnia optymalizację przechowywania danych, a użycie BLOB jako typu danych dla dużych plików jest zgodne z najlepszymi praktykami w tej dziedzinie.

Pytanie 39

Element lub grupa elementów, która w jednoznaczny sposób identyfikuje każdy pojedynczy rekord w tabeli w bazie danych, nazywa się kluczem

A. podstawowy
B. obcy
C. inkrementacyjny
D. przestawny
Klucz inkrementacyjny to termin, który może być mylnie stosowany w kontekście kluczy podstawowych. Choć klucz podstawowy może być inkrementacyjny, co oznacza, że jego wartość rośnie w miarę dodawania nowych rekordów, nie jest to jego jedyna możliwa forma. Klucz podstawowy może być również złożony z kilku pól (klucz złożony) lub oparty na wartościach, które nie są inkrementowane. Z kolei klucz przestawny (ang. pivot key) to termin nieznany w klasycznej terminologii baz danych; nie odnosi się on do identyfikacji wierszy, a raczej do organizacji danych w tabelach przestawnych, które służą do agregacji danych. Klucz obcy (ang. foreign key) jest innym pojęciem, oznaczającym pole, które wskazuje na klucz podstawowy w innej tabeli i służy do zapewnienia powiązań między danymi, ale nie identyfikuje ono pojedynczych rekordów w danej tabeli. Typowe błędy w rozumieniu tych pojęć to mylenie ich ról oraz funkcji, co prowadzi do niewłaściwego projektowania baz danych, w którym integralność oraz relacje pomiędzy danymi są niewłaściwie zaimplementowane. Kluczowe jest, aby zrozumieć, że klucz podstawowy jest podstawowym komponentem dla każdej tabeli, a inne typy kluczy pełnią różne funkcje w kontekście relacji między danymi.

Pytanie 40

Który z protokołów umożliwia publikację strony internetowej na serwerze?

A. SMTP
B. NNTP
C. ICMP
D. FTP
To, że wybrałeś FTP, to strzał w dziesiątkę! Ten protokół jest super przydatny do przesyłania plików między komputerami, zwłaszcza kiedy chcemy wrzucić naszą stronę na serwer. Działa tak, że logujesz się zdalnie na serwer, przeglądasz, co tam jest, i możesz łatwo przesyłać, pobierać albo nawet usuwać pliki. Jak twórcy stron chcą się podzielić swoimi plikami, jak HTML czy CSS, to sięgają po programy FTP, takie jak FileZilla. W momencie, kiedy połączysz się z serwerem, praca z plikami staje się naprawdę prosta. Warto pamiętać, że są też bezpieczniejsze wersje tego protokołu, czyli SFTP lub FTPS, które szyfrują dane, co jest ważne, bo zwiększa bezpieczeństwo przesyłanych plików.