Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 27 marca 2025 08:23
  • Data zakończenia: 27 marca 2025 08:47

Egzamin zdany!

Wynik: 22/40 punktów (55,0%)

Wymagane minimum: 20 punktów (50%)

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

W sklepie internetowym wykorzystuje się tabelę faktura. W trakcie generowania faktury pole dataPlatnosci nie zawsze jest uzupełnione. Aby to skorygować, pod koniec dnia należy wprowadzić bieżącą datę do wierszy, gdzie to pole jest puste. W tym celu można wykorzystać kwerendę

A. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE dataPlatnosci IS NOT NULL
B. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL
C. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE id = 3
D. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataplatnosci = '0000-00-00'
Niepoprawne odpowiedzi zawierają różne koncepcje, które prowadzą do błędnych wniosków. W pierwszej z nich zastosowano 'UPDATE faktury SET dataPlatnosci=CURTIME() WHERE id = 3;', co jest niewłaściwe, ponieważ ta kwerenda aktualizuje tylko jedną fakturę o identyfikatorze 3 i używa CURTIME(), co zwraca czas, a nie datę. W rezultacie, pole 'dataPlatnosci' pozostanie puste dla większości faktur. W innej odpowiedzi znalazła się kwerenda 'UPDATE faktury SET dataPlatnosci=CURTIME() WHERE dataPlatnosci IS NOT NULL;', co jest sprzeczne z założeniem, że aktualizować powinno się tylko te wpisy, gdzie pole jest puste. Kwerenda ta mogłaby zaktualizować datę tylko dla wierszy, które już zawierają datę płatności, co nie ma sensu. Ostatnia odpowiedź 'UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataplatnosci = '0000-00-00';' również nie jest skuteczna, ponieważ nie uwzględnia sytuacji, gdy pole 'dataPlatnosci' jest NULL. Zastosowanie wartości '0000-00-00' nie jest standardem w bazach danych, a operacje na takich wartościach mogą prowadzić do niejednoznaczności oraz problemów z integralnością danych. W kontekście programowania baz danych, istotne jest, aby stosować się do standardów, które umożliwiają zachowanie spójności i poprawności danych. Kwestie takie jak brak wartości NULL w kolumnach powinny być rozwiązywane w sposób systematyczny, aby uniknąć problemów w przyszłości.

Pytanie 2

W HTML 5 atrybut action jest wykorzystywany w znaczniku

A.
B.
C.
D.
Atrybut action w znaczniku jest kluczowym elementem w kontekście przesyłania danych formularzy w HTML5. Określa on adres URL, do którego zostaną wysłane dane po złożeniu formularza przez użytkownika. Przykładowo, jeżeli mamy formularz do logowania, atrybut action mógłby mieć wartość 'login.php', co oznacza, że po kliknięciu przycisku 'Zaloguj', dane z formularza zostaną przesłane do skryptu PHP obsługującego logowanie. Podczas projektowania formularzy warto przestrzegać zasad bezpieczeństwa, takich jak walidacja danych zarówno po stronie klienta, jak i serwera. Dobrą praktyką jest także stosowanie metod przesyłania danych, takich jak POST, aby ukryć dane użytkownika w URL. Dodatkowo, w ramach HTML5 wprowadzono atrybuty, takie jak novalidate, które pozwalają na wyłączenie domyślnej walidacji w przeglądarkach, co może być przydatne w określonych sytuacjach. Używanie znaczników formularzy zgodnie z ich przeznaczeniem zwiększa dostępność i użyteczność stron internetowych, co jest kluczowe w nowoczesnym web designie.

Pytanie 3

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

A. zwrócić referencję do pierwszego elementu HTML o wskazanym id
B. umieścić tekst o treści ’id’ na stronie internetowej
C. pobrać wartości z formularza i przypisać je do zmiennej id
D. zweryfikować poprawność formularza o identyfikatorze id
Niektóre twoje odpowiedzi trochę mylą rolę metody document.getElementById(id). Myślenie, że ta metoda pobiera dane z formularza i wkłada je do zmiennej id to zły trop. W rzeczywistości, ona służy do uzyskiwania dostępu do elementów, a jeśli chcesz odczytać wartości z pól formularzy, powinieneś użyć właściwości value. Mówienie o tym, że ta metoda sprawdza poprawność formularza, też nie jest na miejscu - do walidacji używa się innych funkcji, jak addEventListener() na zdarzenie 'submit' albo atrybutów HTML5, jak required. No i jeśli chodzi o wstawianie tekstu 'id' na stronę, to też nie tak to działa - document.getElementById(id) daje ci odnośnik do elementu, ale nie modyfikuje go w jakiś bezpośredni sposób. To błędy, które mogą wynikać z nie do końca jasnego zrozumienia, jak działają metody manipulacyjne w JavaScript.

Pytanie 4

Określ wynik działania załączonego kodu PHP, przy założeniu, że zmienna tab jest tablicą. ```$tab = explode(", "jelenie,sarny,dziki,lisy,borsuki"); echo $tab[1]." ".$tab[2];```

A. lisy borsuki
B. jelenie sarny
C. sarny dziki
D. dziki lisy
Niestety, Twoja odpowiedź okazała się niepoprawna. W analizowanym kodzie PHP jest użyta funkcja 'explode()', która dzieli ciąg znaków na tablicę, używając przecinków jako separatorów. Później wybierane są drugi i trzeci element z tej tablicy do wyświetlenia. Więc, jeśli poszedłeś w stronę 'dziki lisy' lub 'lisy borsuki', to może wynikać z niewłaściwego rozumienia działania funkcji 'explode()'. Pamiętaj, że w PHP tablice zaczynają się od 0, co oznacza, że drugi element ma indeks 1, a trzeci to 2. Ważne, żeby zwracać uwagę na dane wejściowe, które podajemy do 'explode()', bo to może mieć duży wpływ na wynik. To istotna rzecz, którą warto mieć na uwadze, gdy programujesz.

Pytanie 5

Wskaż właściwy zapis polecenia napisanego w języku JavaScript?

A. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " . 3.14 )
B. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " ; 3.14 )
C. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " 3.14 )
D. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " + 3.14 )
Analizując inne odpowiedzi, można zauważyć liczne błędy syntaktyczne oraz logiczne, które uniemożliwiają prawidłowe wykonanie kodu. W przypadku pierwszej niepoprawnej wersji, zastosowanie średnika przed liczbowym 3.14 jest błędne, ponieważ kończy to instrukcję, a nie łączy dodatkowy element, jakim jest liczba. W rezultacie, interpreter JavaScript nie będzie w stanie poprawnie zrozumieć kontekstu i wywoła błąd. W kolejnej wersji zastosowano kropkę przed liczbą, co również jest błędne, ponieważ operator kropki w JavaScript jest używany do dostępu do właściwości obiektów, a nie do łączenia danych. Takie użycie prowadzi do niepoprawnej składni. Ostatnia wersja jest również problematyczna, ponieważ brakuje operatora do konkatenacji, co powoduje, że interpreter traktuje liczby jako oddzielne elementy, co skutkuje błędem. Ważne jest, aby zrozumieć zasady składni JavaScript oraz sposób, w jaki funkcje i operatory współdziałają, aby uniknąć takich powszechnych błędów i poprawnie generować dynamiczne treści.

Pytanie 6

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

if (empty($_POST["name"])) {
    $nameErr = "Name is required";
}

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

Pytanie 7

W języku JavaScript należy sformułować warunek, który będzie prawdziwy, gdy zmienna a będzie jakąkolwiek liczbą naturalną dodatnią (również nie zerową) lub gdy zmienna b będzie liczbą mieszczącą się w przedziale od 10 do 100, włącznie. Wyrażenie logiczne zastosowane w tym warunku powinno mieć formę

A. (a>0) && ((b>=10) && (b<=100))
B. (a>0) || ((b>=10) || (b<=100))
C. (a>0) && ((b>=10) || (b<=100))
D. (a>0) || ((b>=10) && (b<=100))
Analizując inne odpowiedzi, widać, że zawierają one różne błędne koncepcje w interpretacji warunków logicznych. W przypadku (a>0) && ((b>=10) || (b<=100)), użycie operatora || w drugiej części powoduje, że warunek dla b zawsze będzie spełniony, niezależnie od wartości b, co jest niezgodne z założeniem, że b powinno znajdować się w przedziale od 10 do 100. Takie błędne zrozumienie operatorów logicznych prowadzi do niepoprawnych interpretacji. W odpowiedzi (a>0) || ((b>=10) || (b<=100)), ponownie użycie operatora || w drugiej części sprawia, że warunek b również nie działa zgodnie z założeniem, ponieważ b może być każdą liczbą, co nie spełnia wymogu ograniczenia do przedziału 10-100. Kolejna odpowiedź, (a>0) && ((b>=10) && (b<=100)), wprowadza błędny wniosek, że obie części muszą być spełnione jednocześnie. Takie podejście jest zrozumiałe, ale nie odpowiada na pierwotne założenie, że wystarczy, aby jeden z warunków był spełniony. Rozumienie logiki warunkowej w programowaniu jest kluczowe dla tworzenia efektywnych algorytmów i unikania problemów z bezpieczeństwem danych. Dlatego ważne jest, aby dokładnie analizować składnię i semantykę wyrażeń logicznych, co przekłada się na jakość kodu i jego łatwość w utrzymaniu.

Pytanie 8

Jaką maksymalną ilość znaczników można zastosować w tabeli składającej się z trzech kolumn i trzech wierszy, w której nie ma złączeń komórek ani wiersza nagłówkowego?

A. 12
B. 6
C. 3
D. 9
Tabela o trzech kolumnach i trzech wierszach składa się z 9 komórek, co oznacza, że maksymalna liczba znaczników , które można zastosować w takiej tabeli, wynosi 9. Każda komórka tabeli jest reprezentowana przez znacznik , dlatego musisz pomnożyć liczbę kolumn (3) przez liczbę wierszy (3), co daje 3 * 3 = 9. To podejście odzwierciedla najlepsze praktyki w tworzeniu tabel HTML, które zakładają, że każda komórka powinna być jednoznacznie określona. Warto pamiętać, że unikanie złączeń komórek upraszcza strukturę tabeli, co ułatwia przetwarzanie przez różne systemy oraz poprawia dostępność strony. Przykład zastosowania to np. wyświetlanie danych o produktach w sklepie internetowym, gdzie każda informacja o produkcie, taka jak nazwa, cena i opis, znajduje się w osobnej komórce. Zgodnie z wytycznymi W3C, stosowanie semantycznych znaczników poprawia SEO i ułatwia nawigację.

Pytanie 9

Istnieje tabela o nazwie wycieczki z kolumnami: nazwa, cena oraz miejsca (reprezentujące liczbę dostępnych miejsc). Aby wyświetlić tylko nazwy wycieczek, których cena jest mniejsza od 2000 zł oraz mają co najmniej cztery wolne miejsca, należy użyć zapytania

A. SELECT nazwa FROM wycieczki WHERE cena < 2000 AND miejsca > 3
B. SELECT nazwa FROM wycieczki WHERE cena < 2000 OR miejsca > 4
C. SELECT * FROM wycieczki WHERE cena < 2000 AND miejsca > 4
D. SELECT * FROM wycieczki WHERE cena < 2000 OR miejsca > 3
Wszystkie inne odpowiedzi są po prostu błędne i prowadzą do złych wyników w kontekście pytania. Na przykład zapytanie z operatorem OR, czyli 'SELECT nazwa FROM wycieczki WHERE cena < 2000 OR miejsca > 4', pozwala na zwrócenie wycieczek, które spełniają tylko jeden z warunków. To oznacza, że mogą być pokazywane wycieczki droższe, które mają wystarczająco dużo miejsc, co jest niezgodne z wymaganiami. Jeszcze innym błędnym przypadkiem jest użycie operatora AND w 'SELECT nazwa FROM wycieczki WHERE cena < 2000 AND miejsca > 3', gdzie ten drugi warunek jest zbyt ogólny. Powinien precyzować, że miejsc musi być co najmniej cztery, a nie tylko więcej niż trzy. Co więcej, zapytanie 'SELECT * FROM wycieczki WHERE cena < 2000 AND miejsca > 4' zwróci wszystkie kolumny, a nie tylko nazwy wycieczek, co też nie jest tym, czego potrzebujemy. Typowe błędy w myśleniu, które prowadzą do tych błędnych wniosków, to złe łączenie warunków i niewłaściwe zrozumienie, co jest ważne w kontekście wymagań. Aby dobrze pisać zapytania SQL, kluczowe jest zrozumienie struktury danych i logiki, która pozwala na wybranie odpowiednich rekordów.

Pytanie 10

Czego nie należy robić, aby zabezpieczyć serwer bazy danych przed atakami hakerów?

A. używanie skomplikowanych haseł do bazy.
B. defragmentacja dysków.
C. blokowanie portów związanych z bazą danych.
D. aktywacja zapory.
Włączenie zapory sieciowej jest istotnym krokiem w zabezpieczaniu serwera bazy danych. Zapora działa jako filtr, który kontroluje ruch przychodzący i wychodzący, blokując potencjalnie szkodliwe połączenia, co jest kluczowe w kontekście ochrony przed atakami DDoS oraz nieautoryzowanym dostępem. Ponadto stosowanie złożonych haseł jest fundamentalnym elementem bezpieczeństwa, jako że proste hasła mogą być łatwo złamane przez ataki typu brute-force. Wdrożenie polityki silnych haseł, które zawierają kombinacje liter, cyfr oraz symboli, znacząco zwiększa poziom ochrony dostępu do bazy danych. Blokowanie portów to kolejna ważna praktyka; poprzez zamykanie portów, które nie są używane przez serwer bazy danych, znacznie ograniczamy możliwości ataków, ponieważ wiele złośliwych działań opiera się na próbie skanowania otwartych portów w celu znalezienia luk w zabezpieczeniach. Zrozumienie tych aspektów jest kluczowe dla wszystkich administratorów baz danych, którzy muszą dbać o integralność i bezpieczeństwo danych. Ignorowanie tych praktyk w imię nieistotnych działań, takich jak defragmentacja, może prowadzić do poważnych naruszeń bezpieczeństwa, co podkreśla znaczenie stosowania znanych i sprawdzonych metod ochrony w środowisku IT.

Pytanie 11

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 12

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. obcy
B. przestawny
C. inkrementacyjny
D. podstawowy
Klucz podstawowy (ang. primary key) to fundamentalny element projektowania baz danych, który jednoznacznie identyfikuje każdy wiersz w tabeli. Jego główną funkcją jest zapewnienie unikalności danych, co oznacza, że żaden z wierszy nie może mieć tej samej wartości klucza podstawowego. W praktyce często wykorzystuje się pole takie jak 'id', które jest autoinkrementowane, dzięki czemu każdy nowy rekord otrzymuje unikalny numer. Klucze podstawowe są kluczowe dla zapewnienia integralności referencyjnej – umożliwiają powiązanie danych z różnych tabel. Na przykład, w tabeli 'Klienci' możemy mieć klucz podstawowy 'KlientID', który jest następnie używany jako klucz obcy w tabeli 'Zamówienia', co pozwala na łatwe śledzenie zamówień przypisanych do konkretnego klienta. Dobrą praktyką jest także stosowanie kluczy podstawowych jako indeksów, co zwiększa wydajność zapytań w bazie danych. Ważne jest, aby klucz podstawowy był jak najbardziej stabilny i niezmienny w czasie, aby uniknąć problemów z integracją danych.

Pytanie 13

W języku PHP w konstrukcji switch powinno się znajdować

A. instrukcja default
B. konstrukcja switch(wyrażenie)
C. przynajmniej dwie instrukcje case
D. instrukcja break po każdej instrukcji case
Instrukcja switch w języku PHP jest konstrukcją, która umożliwia wykonywanie różnych bloków kodu w zależności od wartości zmiennej. Kluczowym elementem tej konstrukcji jest wyrażenie, które następnie jest porównywane z różnymi wartościami zdefiniowanymi w instrukcjach case. Jeśli wartość wyrażenia pasuje do wartości case, odpowiedni blok kodu zostaje wykonany. Warto zauważyć, że konstrukcja switch nie wymaga posiadania instrukcji default ani przynajmniej dwóch instrukcji case, choć są to często używane praktyki dla pełniejszego przetwarzania różnych możliwych wartości. Przykładowo, można zdefiniować zmienną $color, a następnie użyć switch do wykonania różnych akcji w zależności od wartości tej zmiennej: switch ($color) { case 'red': echo 'Czerwony'; break; case 'blue': echo 'Niebieski'; break; default: echo 'Inny kolor'; } W tym przykładzie, jeżeli $color wynosi 'red', zostanie wyświetlona wartość 'Czerwony'. W standardach PHP wyraźnie określono, że konstrukcja switch wymaga co najmniej jednego wyrażenia, na którym będzie operować, co czyni odpowiedź nr 2 poprawną.

Pytanie 14

Aby zdefiniować pole w klasie, do którego dostęp mają wyłącznie metody tej klasy, a które nie jest dostępne dla klas dziedziczących, powinno się zastosować kwalifikator dostępu

A. prywatny.
B. opublikowany.
C. chroniony.
D. publiczny.
Kwalifikator dostępu 'private' jest używany w programowaniu obiektowym do deklarowania pól klasy, które są dostępne wyłącznie w obrębie tej klasy. Oznacza to, że żadne inne klasy, w tym klasy pochodne, nie mają dostępu do tych pól, co sprzyja enkapsulacji, jednej z fundamentalnych zasad programowania obiektowego. Enkapsulacja pozwala na ochronę danych i logiki wewnętrznej obiektu, co zmniejsza ryzyko wystąpienia błędów oraz zwiększa bezpieczeństwo aplikacji. Przykładowo, gdy w klasie 'Samochod' mamy pole 'prędkość', które powinno być modyfikowane jedynie przez metody klasy 'Samochod', zadeklarowanie go jako 'private' uniemożliwia dostęp do tego pola z zewnątrz. Dobre praktyki sugerują unikanie dostępu do pól klasy bezpośrednio, a zamiast tego korzystanie z metod dostępowych (getterów i setterów), co pozwala na wprowadzenie dodatkowych reguł walidacyjnych. W ten sposób zapewniamy większą kontrolę nad tym, jak dane są używane i zmieniane w aplikacji.

Pytanie 15

Jakie efekt osiągnie się za pomocą przedstawionego formatowania CSS dla nagłówka trzeciego poziomu?

Ilustracja do pytania
A. kolor tekstu będzie pomarańczowy
B. kolor tekstu będzie szary
C. tło będzie w odcieniu szarym
D. tło będzie pomarańczowe
Poprawna odpowiedź dotycząca tła pomarańczowego wynika z zasady specyficzności CSS W przedstawionym przykładzie stylu dla elementu h3 zastosowano właściwość background-color przypisując jej wartość orange bezpośrednio w znaczniku HTML co zwiększa specyficzność takiego stylu nad stylem zdefiniowanym w sekcji style w nagłówku strony Specyficzność w CSS to mechanizm określający który styl ma pierwszeństwo w przypadku konfliktu stylów dla tego samego elementu Styl wbudowany inline ma wyższą specyficzność niż style określone w sekcjach style co oznacza że definiując background-color inline jako orange nadpisuje on wcześniej zdefiniowane style Dzięki temu można precyzyjnie kontrolować wygląd poszczególnych elementów na stronie co jest dobrą praktyką w przypadku gdy konieczne są jednorazowe zmiany stylu dla konkretnego elementu Warto jednak pamiętać że nadmierne wykorzystywanie stylów inline może prowadzić do trudności w zarządzaniu wyglądem całej strony dlatego dobrą praktyką jest używanie ich oszczędnie oraz stosowanie zewnętrznych arkuszy stylów CSS tam gdzie to możliwe

Pytanie 16

W stylu CSS zdefiniowano klasę uzytkownik. ```p.uzytkownik { color: blue; }``` Na stronie będą wyświetlane czcionką w kolorze niebieskim.

A. akapitów, którym przypisano klasę uzytkownik.
B. wszystkie akapity.
C. wszelkie elementy w sekcji `````` z przypisaną klasą uzytkownik.
D. tylko elementy tekstowe typu ```

```, ```

```.

Odpowiedź, którą zaznaczyłeś, to 'paragrafy, do których została przypisana klasa uzytkownik'. I to jest całkiem w porządku, bo w CSS klasa działa jak etykieta, którą przypisujemy różnym elementom, żeby nadać im wspólne style. Wyobraź sobie, że masz klasę 'uzytkownik' w stylach CSS. Możesz ją potem przypisać do różnych tagów na stronie, żeby wszystkie wyglądały tak samo. Na przykład, wszystkie paragrafy z klasą 'uzytkownik' będą miały niebieski kolor tekstu. To się zgadza z tym, co jest dozwolone w CSS, które jest standardem w tworzeniu stron internetowych. W praktyce, to naprawdę ułatwia zachowanie spójności na stronie. Jeżeli masz na przykład grupę informacji o użytkownikach, dobrze jest, żeby wszystkie były w niebieskim kolorze, żeby je wyróżnić. Właśnie tak działa przypisywanie klas!

Pytanie 17

Instrukcję for można zastąpić inną instrukcją

A. switch
B. while
C. continue
D. case
Instrukcja `while` jest poprawnym zamiennikiem dla instrukcji `for` w kontekście iteracji, ponieważ obie służą do powtarzania bloków kodu, dopóki spełniony jest określony warunek. Główna różnica polega na sposobie deklaracji warunków iteracji. W instrukcji `for` często używamy jej do iteracji po znanym zakresie, np. od 0 do n, co jest typowe w wielu zastosowaniach, takich jak przetwarzanie elementów tablicy. Natomiast `while` idealnie nadaje się do sytuacji, gdzie liczba iteracji jest nieznana na początku i zależy od dynamicznie ocenianych warunków. Przykładem może być przetwarzanie danych, gdzie pętla `while` kontynuuje działanie, aż do momentu, gdy nie napotka na wartość końcową, co jest szczególnie przydatne w algorytmach przetwarzania strumieni danych. Ponadto, od strony wydajnościowej, wybór między `for` a `while` powinien być uzależniony od contextu, w jakim są używane. Dobrą praktyką jest dopasowanie rodzaju pętli do specyfiki problemu, co zwiększa czytelność i efektywność kodu.

Pytanie 18

Klient wpisał adres nieistniejącego zasobu na serwerze. Próba nawiązania połączenia spowoduje wystąpienie błędu

A. 500
B. 404
C. 400
D. 503
Odpowiedź 404 jest prawidłowa, ponieważ oznacza, że serwer nie może znaleźć żądanego zasobu. Kiedy użytkownik wprowadza nieistniejący adres URL, serwer HTTP zwraca ten kod błędu jako odpowiedź informującą, że dany zasób nie został znaleziony. Jest to standardowy sposób na komunikowanie się z klientami, że ich prośba nie mogła zostać zrealizowana z powodu braku zasobu. W praktyce, kod 404 jest powszechnie używany do zarządzania sytuacjami, w których użytkownik wpisuje niewłaściwy adres lub gdy zasób został usunięty. Dobrą praktyką jest tworzenie własnych stron błędu 404, które informują użytkowników o tym, co mogą zrobić dalej, na przykład sugerując im powrót na stronę główną lub wyszukiwanie w serwisie. Z perspektywy bezpieczeństwa, warto również unikać ujawniania szczegółów dotyczących struktury serwera w odpowiedziach 404, aby zminimalizować potencjalne ryzyko ataków.

Pytanie 19

W języku SQL wykonano przedstawione poniżej polecenia GRANT. Kto otrzyma uprawnienia do przeglądania oraz modyfikowania danych?

A. Tomasz i Adam
B. Anna i Tomasz
C. Adam i Anna
D. Jedynie Tomasz
Odpowiedź 'Tomasz i Adam' jest poprawna, ponieważ obaj użytkownicy mają przypisane odpowiednie uprawnienia do przeglądania oraz modyfikacji danych w bazie 'firmy'. Adam otrzymał pełne uprawnienia, co oznacza, że może przeglądać (SELECT) oraz modyfikować (INSERT, UPDATE, DELETE) dane, a także zmieniać strukturę tabel (ALTER, CREATE, DROP). Tomasz, z kolei, ma przydzielone szczegółowe uprawnienia do przeglądania danych (SELECT) oraz ich modyfikacji (INSERT, UPDATE). W praktyce, przydzielanie uprawnień w bazach danych odbywa się zgodnie z zasadą minimalnych uprawnień, co oznacza, że każdy użytkownik powinien mieć tylko te uprawnienia, które są mu niezbędne do realizacji przydzielonych zadań. Dobrą praktyką jest regularna weryfikacja przydzielonych uprawnień oraz ich dostosowywanie do zmieniających się potrzeb organizacji.

Pytanie 20

Które z poniższych stwierdzeń dotyczy skalowania obrazu?

A. Łączy bądź pozbywa się kształtów
B. Prowadzi do zmiany wielkości obrazu bez zmiany istotnej zawartości wizualnej
C. Skutkuje wycięciem z oryginalnego obrazu konkretnego fragmentu, aby uzyskać lepszy widok
D. Opiera się na modyfikacji formatu zapisu obrazu w celu zmiany metody kompresji
Skalowanie obrazu to proces, który polega na zmianie rozmiaru obrazu przy zachowaniu jego kluczowych elementów wizualnych. W praktyce oznacza to, że przy skalowaniu nie zmienia się proporcji ani istotne detale, co jest niezbędne w wielu zastosowaniach profesjonalnych, takich jak grafika komputerowa, projektowanie stron internetowych czy edycja zdjęć. Dobrze wykonane skalowanie gwarantuje, że obraz będzie czytelny i estetyczny, niezależnie od zmienionych wymiarów. Na przykład, w przypadku przygotowywania obrazów do publikacji online, właściwe skalowanie pozwala na optymalne ładowanie strony oraz utrzymanie jakości wizualnej. W branży graficznej korzysta się z różnych algorytmów skalowania, takich jak najbliższego sąsiada, bilinearny czy bicubic, w zależności od wymaganych efektów końcowych. Przestrzeganie standardów dotyczących rozmiarów obrazów, takich jak te określone przez W3C, pomoże uniknąć problemów z wydajnością i estetyką w projektach multimedialnych.

Pytanie 21

Jakie znaczenie ma pojęcie krotka?

A. tabeli
B. wierszowi
C. relacji
D. kolumnie
Relacje, tabele i kolumny są istotnymi pojęciami w kontekście baz danych, ale nie można ich mylić z pojęciem krotki. Relacja jest abstrakcyjnym pojęciem odnoszącym się do zbioru danych w tabeli oraz opisuje sposób, w jaki dane są związane ze sobą. To nie jest to samo, co konkretne wpisy w tabeli. Tabela to struktura, która organizuje dane w formie wierszy i kolumn, ale sama w sobie nie reprezentuje jednostkowego rekordu danych. Kolumna z kolei odnosi się do pojedynczego atrybutu w tabeli, który przechowuje dane jednego typu, na przykład wszystkich adresów e-mail. Typowym błędem jest mylenie tych pojęć, co może prowadzić do niepoprawnych założeń na temat struktury danych oraz ich interakcji. Właściwe zrozumienie tego, czym jest krotka, jest kluczowe dla efektywnej pracy z bazami danych, ponieważ pozwala uniknąć problemów z integracją danych i ich późniejszym przetwarzaniem. W praktyce, brak znajomości różnic między tymi pojęciami może prowadzić do błędów w projektowaniu baz danych oraz w zapytaniach SQL, co negatywnie wpływa na wydajność i jakość danych.

Pytanie 22

W SQL po wykonaniu zapytania ALTER TABLE osoba DROP COLUMN grupa; co się stanie?

A. nazwa kolumny zmieni się na grupa
B. kolumna grupa zostanie usunięta
C. kolumna grupa zostanie dodana
D. nazwa tabeli zmieni się na grupa
No więc dobrze trafiłeś. To zapytanie SQL ALTER TABLE osoba DROP COLUMN grupa; jest używane do usunięcia kolumny 'grupa' z tabeli 'osoba'. To polecenie jest częścią SQL, który służy do zmieniania struktury tabel. Usunięcie kolumny może być fajne, gdy już nie jest potrzebna, albo jeśli wprowadzasz jakieś zmiany w danych. Na przykład, może się zdarzyć, że kolumna 'grupa' ma dane, które są już nieaktualne, bo zmieniłeś sposób klasyfikacji. A tak w ogóle, dobrze jest przed taką operacją zrobić kopię zapasową danych, bo usunięcie kolumny to trwała zmiana. To podejście jest powszechnie wykorzystywane w zarządzaniu bazami danych oraz w procesach ETL, gdzie ważne jest, by dane były dobrze zorganizowane.

Pytanie 23

W bazie danych znajduje się tabela uczniowie z kolumnami: imie, nazwisko, klasa. Jakie polecenie SQL należy wykorzystać, aby znaleźć imiona oraz nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN 'M%';
B. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = 'M%';
C. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN 'M%';
D. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';
Wybrana odpowiedź jest poprawna, ponieważ używa operatora LIKE, który jest standardowym rozwiązaniem w SQL do wyszukiwania wzorców w danych. W tym przypadku 'M%' oznacza, że chcemy znaleźć wszystkie nazwiska, które zaczynają się na literę M. Operator LIKE jest szczególnie przydatny w sytuacjach, gdy potrzebujemy elastycznego wyszukiwania, umożliwiającego zastosowanie symboli wieloznacznych, takich jak '%' oznaczający dowolną liczbę znaków. Przykład zastosowania tego zapytania może obejmować generowanie listy uczniów dla nauczycieli, którzy chcą szybko zobaczyć wszystkich uczniów z nazwiskiem zaczynającym się na M, co może być przydatne przy organizowaniu wydarzeń czy klas. Dobrą praktyką jest także używanie odpowiednich indeksów w bazie danych, co może znacznie przyspieszyć wykonanie zapytań, zwłaszcza w dużych zbiorach danych. Znajomość operatorów SQL i ich zastosowań, jak również umiejętność formułowania zapytań, jest kluczowa w pracy z relacyjnymi bazami danych.

Pytanie 24

Atrybut colspan służy do poziomego łączenia komórek tabeli, natomiast rowspan pozwala na łączenie ich w pionie. Którą z poniższych tabel ukazuje fragment kodu napisany w języku HTML?

  
 

Ilustracja do pytania
A. rys. D
B. rys. B
C. rys. C
D. rys. A
W języku HTML atrybut rowspan w znaczniku pozwala na scalanie komórek w pionie co oznacza że dana komórka zajmuje miejsce w kilku wierszach tabeli W podanym kodzie pierwsza komórka w pierwszym wierszu posiada atrybut rowspan z wartością 2 co sprawia że zajmuje ona miejsce w dwóch wierszach Pierwszy wiersz zawiera dwie komórki z czego pierwsza jest połączona pionowo z komórką w drugim wierszu Druga komórka w pierwszym wierszu oraz jedyna komórka w drugim wierszu nie posiadają atrybutu rowspan ani colspan dlatego nie są połączone z innymi komórkami Takie użycie rowspan jest zgodne z praktykami HTML które umożliwiają tworzenie bardziej złożonych układów tabeli dzięki czemu można lepiej zarządzać przestrzenią w interfejsie użytkownika Jako że kod tworzy tabelę z dwiema kolumnami i dwoma wierszami gdzie pierwsza komórka po lewej stronie zajmuje dwa wiersze przedstawia to układ jak na rysunku B Możliwości jakie daje rowspan są niezwykle przydatne w sytuacjach gdy chcemy aby dane w tabeli były czytelniejsze i bardziej zorganizowane szczególnie w raportach czy formularzach gdzie różne kategorie danych muszą być jasno oddzielone

Pytanie 25

W przedstawionym kodzie PHP w miejscu kropek powinno zostać umieszczone polecenie

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++)
{
  $wiersz = ……………………………….;
  echo "$wiersz[0] $wiersz[1]";
}

A. mysqli_query($zapytanie);
B. mysqli_num_fields($zapytanie);
C. mysqli_fetch_row($zapytanie);
D. mysqli_free_result($zapytanie);
W kontekście przedstawionego kodu PHP, prawidłowe uzupełnienie wiersza poleceń to użycie funkcji mysqli_fetch_row($zapytanie). Funkcja ta pobiera jeden wiersz z zestawu wyników zapytania jako tablicę indeksowaną numerycznie. Jest to istotny krok w procesie przetwarzania danych z bazy danych, ponieważ po wykonaniu zapytania SQL, dane muszą być odpowiednio odczytane, aby można je było wykorzystać w aplikacji. Przykładowo, po wykonaniu zapytania, możemy mieć wiele wierszy danych, a mysqli_fetch_row pozwala na iteracyjne pobieranie każdego z nich. W praktyce, stosując tę funkcję w pętli, możemy w prosty sposób zbudować listę lub tabelę, wyświetlając imię i nazwisko każdego użytkownika. Warto również pamiętać, że przy pracy z bazami danych ważne jest, aby uważnie monitorować proces pobierania danych, by uniknąć problemów z pamięcią, a także aby zwolnić zasoby po zakończeniu operacji. W związku z tym, standardową praktyką jest również stosowanie mysqli_free_result($zapytanie) po zakończeniu pracy z danymi, co pozwala na efektywne zarządzanie pamięcią.

Pytanie 26

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

A. defragmentację bazy
B. więzy integralności
C. kwerendę aktualizującą
D. archiwizację bazy
W celu zapewnienia spójności danych w bazie programu Microsoft Access kluczowe jest zastosowanie więzów integralności. Więzy integralności to zasady, które definiują warunki, jakie muszą być spełnione, aby dane w bazie były spójne i zgodne z określonymi regułami. Przykładowo, więzy te mogą obejmować ograniczenia unikalności, które zapobiegają wprowadzaniu zduplikowanych wartości w kolumnie, oraz więzy klucza obcego, które zapewniają, że wartości w jednej tabeli muszą odpowiadać wartościom w innej tabeli. Zastosowanie więzów integralności jest zgodne z zasadami normalizacji baz danych, które mają na celu minimalizowanie redundancji danych oraz eliminowanie niezgodności. Z perspektywy praktycznej, gdy tworzymy aplikacje bazodanowe, ustanowienie odpowiednich więzów integralności od samego początku pozwala uniknąć wielu problemów związanych z błędnymi danymi, co przynosi korzyści w kontekście analizy danych i raportowania. W związku z tym, więzy integralności są kluczowym elementem w projektowaniu baz danych, który znacząco wpływa na jakość i trwałość przechowywanych informacji.

Pytanie 27

Dostępna jest tabela z danymi o mieszkaniach, zawierająca kolumny: adres, metraż, liczba_pokoi, standard, status, cena. Wykonanie poniższej kwerendy SQL SELECT spowoduje wyświetlenie

SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3;

A. Wszystkie informacje poza adresem tych mieszkań, które mają więcej niż 3 pokoje
B. Metraż oraz koszt tych mieszkań, które mają więcej niż 3 pokoje
C. Metraż oraz koszt tych mieszkań, które mają przynajmniej 3 pokoje
D. Wszystkie informacje o tych mieszkaniach, które mają minimum 3 pokoje
W tym zapytaniu SQL chodzi o to, żeby ściągnąć konkretne dane z tabeli mieszkania. Używamy klauzuli SELECT, dlatego wybieramy tylko te kolumny, które nas interesują, czyli metraż i cena. I to wszystko bierzemy z tabeli mieszkania, co mamy w klauzuli FROM. Jeszcze dodajemy filtr WHERE, który mówi, że bierzemy tylko te mieszkania, które mają więcej niż trzy pokoje. To naprawdę dobra strategia, bo dzięki temu dokładnie widzimy, co nas interesuje. Takie zapytanie przydaje się w analizach rynku nieruchomości, bo można porównywać ceny mieszkań z większą ilością pokoi. Ogólnie mówiąc, SQL jest super narzędziem do pracy z danymi, bo pozwala nam szybko i efektywnie wyciągać to, co jest dla nas ważne. Wiedza na temat takich zapytań to podstawa, zwłaszcza w pracy z dużymi bazami danych i generowaniu różnych raportów.

Pytanie 28

Aby uzyskać przedstawiony efekt napisu w programie INKSCAPE / COREL, należy

Ilustracja do pytania
A. zastosować opcję sumy z kołem
B. zastosować opcję wykluczenia z kołem
C. skorzystać z opcji gradientu
D. skorzystać z opcji wstaw / dopasuj tekst do ścieżki
Zastosowanie funkcji wykluczenia z kołem nie jest właściwe w kontekście dopasowywania tekstu do ścieżki ponieważ funkcja ta służy do tworzenia efektów wycinania w których elementy jednego obiektu są wykluczane z drugiego. Jest to przydatne w sytuacjach gdzie potrzebujemy stworzyć złożone kształty poprzez odejmowanie jednego obiektu od drugiego. Natomiast zastosowanie funkcji sumy z kołem odnosi się do łączenia kilku obiektów w jeden nowy kształt co jest użyteczne przy tworzeniu złożonych kompozycji graficznych ale nie ma związku z manipulowaniem kształtem tekstu. Funkcja gradientu jest związana z kolorowaniem obiektów przez stopniowe przechodzenie jednego koloru w drugi co nadaje obiektom atrakcyjny efekt wizualny ale nie wpływa na kształtowanie liter wzdłuż ścieżki. Typowym błędem jest myślenie że te funkcje mogą być używane wymiennie z narzędziami do tekstu co wynika z niepełnego zrozumienia ich specyficznych zastosowań i ograniczeń w kontekście projektowania grafiki wektorowej. Zrozumienie różnych funkcji dostępnych w programach do grafiki wektorowej jak Inkscape czy CorelDRAW jest kluczowe dla efektywnego tworzenia projektów które są zarówno estetyczne jak i funkcjonalne. Profesjonalne wykorzystanie tych narzędzi wymaga nie tylko znajomości ich podstawowych funkcji ale także świadomości kontekstu ich użycia oraz możliwości jakie oferują w tworzeniu zaawansowanych projektów graficznych które spełniają określone wymagania wizualne i techniczne.

Pytanie 29

Ustalenie w języku CSS wartości background-attachment: scroll oznacza, że

A. tło witryny będzie przesuwane wraz z przewijaniem strony
B. tło witryny pozostanie nieruchome i nie będzie się przesuwać podczas przewijania strony
C. obrazek tła będzie się powtarzać (kafelki)
D. obraz tła pojawi się w prawym górnym rogu witryny
Odpowiedź 2 jest poprawna, ponieważ zdefiniowana przez właściwość CSS 'background-attachment: scroll' oznacza, że tło strony przewija się razem z zawartością strony. W praktyce oznacza to, że gdy użytkownik przewija stronę w dół lub w górę, tło porusza się w tym samym kierunku, co inne elementy na stronie. Ta właściwość jest szczególnie przydatna w sytuacjach, kiedy chcemy, aby tło było bardziej zintegrowane z treścią, dając bardziej dynamiczny efekt wizualny. Zastosowanie 'scroll' jest zgodne z zachowaniem większości stron internetowych, gdzie tło i zawartość poruszają się synchronizacyjnie. Dobrym przykładem może być użycie tła w postaci gradientu lub subtelnego obrazu, który nie odwraca uwagi od treści, a jednocześnie wprowadza estetyczny element do projektu. Warto pamiętać, że w przypadku większych projektów, właściwość ta powinna być używana z rozwagą, aby uniknąć nieczytelności tekstu na tle lub nadmiernego rozpraszania uwagi użytkowników. Dobrą praktyką jest również testowanie różnych ustawień tła na różnych urządzeniach, aby zapewnić spójne doświadczenie użytkownika.

Pytanie 30

Interpreter PHP zgłosi błąd i nie zrealizuje kodu, jeśli programista

A. będzie pisał kod bez odpowiednich wcięć
B. będzie definiował zmienne w obrębie warunku
C. nie umieści średnika po wyrażeniu w instrukcji if, jeśli po nim występuje sekcja else
D. pobierze wartość z formularza, w którym pole input nie zostało wypełnione
W języku PHP, średnik jest traktowany jako znak końca instrukcji. W przypadku, gdy po wyrażeniu w instrukcji 'if' następuje sekcja 'else', programista musi upewnić się, że poprawnie zakończył instrukcję 'if' średnikiem. W przeciwnym razie, interpreter PHP nie będzie w stanie poprawnie zinterpretować kodu, co prowadzi do błędu składniowego. Przykład: 'if ($a > $b) echo 'a jest większe'; else echo 'b jest większe';' jest poprawny, ponieważ średnik znajduje się po instrukcji 'if'. Jednak, jeśli napiszemy 'if ($a > $b) echo 'a jest większe' else echo 'b jest większe';', to zaowocuje to błędem, ponieważ brak średnika prowadzi do niejednoznaczności w interpretacji. Standardy PHP wymagają, aby każda instrukcja była zakończona średnikiem, co jest kluczowym elementem składni tego języka.

Pytanie 31

Jakim formatem plików dźwiękowych charakteryzuje się kompresja bezstratna?

A. MPEG
B. MP3
C. FLAC
D. WAW
MP3 to format dźwiękowy, który wykorzystuje kompresję, ale niestety jest to kompresja stratna, więc część danych audio się traci. Dlatego jakość dźwięku nie jest najlepsza, co może być problemem dla audiofilów, którzy szukają czegoś lepszego. Z kolei WAV to format nieskompresowany, co oznacza, że zachowuje wszystkie dane, ale pliki są duże… mało praktyczne, zwłaszcza jak masz ogromną bibliotekę muzyczną. MPEG, znany bardziej jako standard kompresji wideo, też może być używany do dźwięku, ale tak jak MP3, traci na jakości. Generalnie ani MP3, ani WAV, ani MPEG nie nadają się do kompresji bezstratnej, więc to nie są dobre odpowiedzi w tym przypadku.

Pytanie 32

W języku JavaScript, aby w jednym poleceniu zweryfikować, czy dany ciąg tekstowy zawiera inny ciąg, można zastosować metodę

A. valueOf()
B. substr()
C. includes()
D. repeat()
Metody valueOf(), substr() oraz repeat() nie są odpowiednie do sprawdzania, czy dany napis zawiera inny napis, co może prowadzić do nieporozumień w zakresie ich zastosowań. Metoda valueOf() jest używana do zwracania prymitywnej wartości obiektu, co czyni ją nieprzydatną w kontekście wyszukiwania podciągów w tekstach. Nie ma ona związku z analizą treści stringów. Podobnie, substr() służy do wyodrębniania podciągu z danego napisu, co również nie jest odpowiednie dla kontekstu sprawdzania zawartości. Użycie tej metody wymagałoby najpierw zdefiniowania pozycji początkowej i długości podciągu, co nie odpowiada na pytanie o obecność. Metoda repeat() natomiast, jak sama nazwa wskazuje, powiela dany ciąg znaków określoną liczbę razy. Choć jest przydatna w sytuacjach, gdzie potrzebujemy duplikować tekst, nie może być użyta do weryfikacji istnienia podciągu. Typowym błędem jest mylenie funkcji analitycznych z funkcjami manipulacyjnymi, co prowadzi do frustracji i błędów w kodzie. Ważne jest, aby zrozumieć różnice między metodami oraz ich specyfikę, aby efektywnie korzystać z możliwości, jakie oferuje JavaScript.

Pytanie 33

Który kod HTML zapewni identyczny efekt formatowania jak na przedstawionym obrazku?

W tym paragrafie zobaczysz sposoby formatowania tekstu w HTML

A.

W tym paragrafie zobaczysz sposoby formatowania tekstu w HTML

B.

W tym paragrafie zobaczysz sposoby formatowania tekstu w HTML

C.

W tym paragrafiezobaczyszsposoby formatowania tekstu w HTML

D.

W tym paragrafie zobaczysz sposoby formatowania tekstu w HTML

Wybór niepoprawnych odpowiedzi wynika z błędnego użycia znaczników HTML, co wpływa na końcowe formatowanie tekstu. Pierwsza odpowiedź zawiera błąd polegający na niewłaściwym zamknięciu znacznika przez dodanie spacji przed ukośnikiem, co powoduje, że przeglądarki mogą błędnie interpretować strukturę HTML. W konsekwencji, tekst może nie być prawidłowo pogrubiony, ponieważ przeglądarka nie rozpoznaje zamknięcia znacznika. Trzecia odpowiedź całkowicie pomija znacznik , co oznacza, że tekst 'zobaczysz' nie zostanie pogrubiony, co jest niezgodne z wymaganym efektem wizualnym. Brak zastosowania odpowiednich znaczników wpływa na semantyczne znaczenie zawartości, co jest kluczowe w kontekście dostępności i dobrych praktyk w web designie. Czwarta odpowiedź błędnie rozdziela znaczniki wokół słowa 'zobaczysz', co nie tworzy efektu jednoczesnej kursywy i pogrubienia. Wiedza dotycząca zagnieżdżania znaczników jest istotna, aby uzyskać pożądany efekt wizualny, a także utrzymać semantykę i dostępność zgodnie z nowoczesnymi standardami tworzenia stron internetowych. Rozumienie hierarchii i poprawne zamykanie znaczników ma kluczowe znaczenie dla renderowania strony zgodnie z oczekiwaniami, jak również dla zachowania zgodności z HTML5.

Pytanie 34

Co oznacza w języku C++ przedstawiony fragment kodu?

struct CONTACT
{
std::string nazwisko;
std::string telefon;
int numer;
};

A. Organizację zmiennych
B. Typ strukturalny składający się z trzech pól
C. Interakcję między zmiennymi lokalnymi a globalnymi
D. Trzy niezależne zmienne
W C++ struktury to takie narzędzia do grupowania danych, co już wiesz. Jednak w twoim opisie pojawił się błąd dotyczący zmiennych globalnych i lokalnych. To nie do końca ma związek z tym, co robi struktura. Globalne zmienne to te, które możesz używać wszędzie w programie, a lokalne tylko w danym bloku kodu. Hierarchia zmiennych to inny temat, bo zazwyczaj chodzi o klasy i dziedziczenie, a nie o struktury. W przypadku CONTACT, wszystkie pola są równorzędne, więc nie ma tam żadnej hierarchii. Twoje stwierdzenie, że te zmienne są niepowiązane, również jest nietrafione, bo z definicji struktury wszystkie te pola skupiają się na tym samym obiekcie. To, że struktury grupują dane, to jedna z ich najważniejszych cech, którą trzeba mieć na uwadze, żeby dobrze wykorzystywać możliwości C++.

Pytanie 35

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

var n, i;
var a = 1;

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

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

document.write("Wynik ",a);

A. 125
B. 625
C. 120
D. 60
Program jest przykładem prostego algorytmu obliczającego silnię liczby n, którą użytkownik wprowadza za pomocą funkcji prompt. Zmienna a jest inicjalizowana wartością 1 i służy do przechowywania wyniku. Pętla for rozpoczyna się od wartości n i zmniejsza wartość i do 2, za każdym razem mnożąc a przez i. Dla n=5 pętla wykona się pięć razy, obliczając kolejno 5*4*3*2*1, co daje wynik 120. Metoda document.write wyświetla wynik na stronie. Rozumienie mechanizmu działania pętli for i operatora *= jest kluczowe w zrozumieniu algorytmów obliczeniowych używanych w programowaniu JavaScript. Silnia jest podstawowym przykładem algorytmu rekurencyjnego, który można również zaimplementować za pomocą funkcji rekurencyjnej, co jest często stosowane w programowaniu funkcyjnym. Znajomość takich konstrukcji pozwala na tworzenie bardziej zaawansowanych algorytmów przetwarzania danych i optymalizację kodu, co jest cenioną umiejętnością w branży IT.

Pytanie 36

Edytor, który realizuje zasady WYSIWYG, powinien umożliwiać

A. tworzenie elementów podstawowej grafiki wektorowej
B. przetwarzanie plików dźwiękowych przed ich umieszczeniem na stronie internetowej
C. publikację serwisów na serwerze przy użyciu wbudowanego klienta FTP
D. osiągnięcie podobnego rezultatu tworzonej strony do jej wizualizacji w przeglądarce internetowej
Wybór niepoprawnych odpowiedzi ukazuje szerszy kontekst funkcjonalności edytorów WYSIWYG i ich ograniczeń. Tworzenie podstawowej grafiki wektorowej nie jest typowym zadaniem dla edytora WYSIWYG, ponieważ te narzędzia koncentrują się głównie na edytowaniu treści tekstowych, układzie stron oraz zarządzaniu mediami, a nie na tworzeniu grafiki. Edytory graficzne, takie jak Adobe Illustrator czy Inkscape, są przeznaczone do pracy z grafiką wektorową, co różni się od funkcji edytora WYSIWYG. Publikacja strony na serwerze poprzez wbudowanego klienta FTP natomiast odnosi się do procesu transferu plików i nie jest kluczowym aspektem edytorów WYSIWYG, które skupiają się na tworzeniu i edytowaniu treści. Zazwyczaj użytkownicy korzystają z dedykowanych programów FTP do zarządzania tym procesem, a edytory WYSIWYG powinny jedynie eksportować gotową stronę do formatu, który można łatwo przesłać. Obróbka plików dźwiękowych przed umieszczeniem ich na stronie internetowej również nie jest funkcją edytora WYSIWYG. Edytory te zazwyczaj oferują jedynie opcje wstawiania multimediów, takich jak dźwięk czy wideo, ale nie zajmują się ich edytowaniem. Programy do edycji dźwięku, takie jak Audacity, służą do tego celu i oferują pełne możliwości obróbcze. W kontekście edytorów WYSIWYG kluczowe jest ich skupienie na prezentacji i łatwości użycia, a nie na złożonych procesach edycyjnych innych typów plików.

Pytanie 37

Polecenie MySQL pokazane poniżej spowoduje, że użytkownikowi tkowal zostanie

REVOKE DELETE, UPDATE ON pracownicy
FROM 'tkowal'@'localhost'

Ilustracja do pytania
A. odebrane uprawnienia do usuwania i dodawania rekordów w tabeli pracownicy
B. przydzielone uprawnienia do wszelkich zmian struktury tabeli pracownicy
C. przydzielone uprawnienia do usuwania oraz aktualizacji danych w tabeli pracownicy
D. odebrane uprawnienia do usuwania i modyfikacji danych w tabeli pracownicy
Polecenie REVOKE w MySQL jest używane do cofania praw dostępu, które wcześniej zostały przyznane użytkownikowi. W zapytaniu REVOKE DELETE UPDATE ON pracownicy FROM tkowal@localhost cofamy prawa do usuwania i aktualizowania danych w tabeli pracownicy użytkownikowi o nazwie tkowal. To konkretne polecenie wskazuje, że wspomniane uprawnienia były wcześniej nadane temu użytkownikowi i teraz administrator bazy danych postanowił je cofnąć. Revoke jest kluczowe w zarządzaniu bezpieczeństwem i kontrolą dostępu w systemach baz danych zwłaszcza gdy potrzeby biznesowe lub polityka bezpieczeństwa wymagają ograniczenia możliwości użytkowników MySQL. Praktycznym przykładem może być sytuacja w której pracownik o niższym poziomie uprawnień nie powinien modyfikować lub usuwać kluczowych danych w bazie co zabezpiecza dane przed nieautoryzowanymi zmianami. Dobre praktyki branżowe zalecają regularne przeglądy uprawnień i ich aktualizację tak aby były one zgodne z aktualnymi potrzebami operacyjnymi i polityką bezpieczeństwa organizacji. Zarządzanie uprawnieniami w bazach danych jest fundamentalnym elementem bezpieczeństwa IT.

Pytanie 38

Jakie oznaczenie wykorzystuje się do jednoliniowego komentarza w skryptowym języku PHP?

A. $
B. #
C. /*
D. --
Stosowanie znaków '/*', '$' oraz '--' jako sposobów na oznaczanie jednoliniowych komentarzy w PHP jest niepoprawne i może prowadzić do nieporozumień. Znaki '/*' oraz '*/' są stosowane do tworzenia komentarzy wieloliniowych, co oznacza, że jeśli kod zawierający takie oznaczenie pojawi się w kontekście jednoliniowym, to system nie rozpozna, gdzie komentarz się zaczyna, a gdzie kończy. Może to prowadzić do błędów składniowych, które uniemożliwiają poprawne działanie programu. Znak '$' w PHP jest używany do definiowania zmiennych, co czyni go całkowicie nieodpowiednim w kontekście komentarzy. Użycie '$' jako prefiksu dla zmiennych jest kluczowym elementem języka, ale nie ma nic wspólnego z oznaczaniem komentarzy. Przykładowo, $variable = 'value'; jest poprawnym użyciem, natomiast '$ This is a comment' nie będzie zrozumiane jako komentarz. Znak '--' jest często stosowany w SQL do komentowania linii, jednak w przypadku PHP jego użycie nie jest prawidłowe. Przyjęcie niepoprawnych metod dla komentarzy może prowadzić do nieczytelności kodu, a także do trudności w jego utrzymaniu i rozwoju przez innych programistów, co jest sprzeczne z najlepszymi praktykami w branży technicznej.

Pytanie 39

Edytor, który spełnia kryteria WYSIWYG, powinien umożliwiać

A. przygotowanie plików dźwiękowych przed ich umieszczeniem na stronie internetowej
B. osiągnięcie zbliżonego rezultatu tworzonej strony do jej wyglądu w przeglądarce internetowej
C. tworzenie podstawowych grafik wektorowych
D. publikację strony na serwerze za pomocą wbudowanego klienta FTP
Odpowiedzi dotyczące obróbki plików dźwiękowych, publikacji na serwerze FTP oraz tworzenia podstawowej grafiki wektorowej nie są zgodne z podstawowymi funkcjonalnościami edytorów WYSIWYG. Edytory te koncentrują się na treści wizualnej i układzie strony, a nie na specyficznych zadaniach związanych z multimediami czy publikacją. Obróbka plików dźwiękowych wymaga zaawansowanych narzędzi audio, które są poza zakresem WYSIWYG. Takie programy są projektowane do edycji treści tekstowych i graficznych w kontekście układu, a nie jako kompleksowe środowiska do pracy z dźwiękiem. Publikacja stron internetowych na serwerze FTP jest aspektem bardziej związanym z hostingiem i zarządzaniem plikami, a nie z samym tworzeniem treści. Ponadto, tworzenie grafiki wektorowej wymaga wyspecjalizowanych narzędzi graficznych, takich jak Adobe Illustrator, które są dedykowane do grafiki wektorowej, a nie funkcji edytorów WYSIWYG. Błędne wnioski wynikają często z mylnego postrzegania roli edytora WYSIWYG, który nie powinien być traktowany jako uniwersalne narzędzie do wszelkich aspektów tworzenia stron internetowych. Właściwe zrozumienie jego funkcji pozwala na efektywne wykorzystanie edytorów do projektowania stron, a nie do zadań, do których nie zostały zaprojektowane.

Pytanie 40

W aplikacjach webowych tablice asocjacyjne to struktury, w których

A. indeks ma postać łańcucha znakowego
B. elementy tablicy zawsze są indeksowane od 0
C. w każdej komórce tablicy znajduje się inna tablica
D. posiadają co najmniej dwa wymiary
W kontekście tablic asocjacyjnych, nie jest prawdą, że muszą one mieć przynajmniej dwa wymiary. Tablice asocjacyjne są zazwyczaj jednowymiarowe, gdzie każdy klucz odnosi się do jednej wartości. Możliwe jest oczywiście zagnieżdżanie tablic asocjacyjnych, tworząc struktury wielowymiarowe, ale sama definicja tablicy asocjacyjnej nie wymaga tego. Dodatkowo, stwierdzenie, że elementy tablicy są zawsze indeksowane od 0, odnosi się głównie do tradycyjnych tablic indeksowanych liczbami całkowitymi, gdzie pierwszy element ma indeks 0. W przypadku tablic asocjacyjnych, klucze mogą być dowolnymi łańcuchami tekstowymi, co oznacza, że nie ma jednolitego sposobu indeksowania. Ostatnia niepoprawna odpowiedź sugeruje, że każda komórka tablicy przechowuje inną tablicę, co jest mylące. W rzeczywistości, w tablicach asocjacyjnych każda komórka może przechowywać dowolny typ danych, w tym liczby, łańcuchy tekstowe, obiekty czy inne tablice. Ostatecznie, w tablicach asocjacyjnych klucze są używane do dostępu do wartości, a nie do indeksowania jak w tradycyjnych tablicach.