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: 12 maja 2026 12:45
  • Data zakończenia: 12 maja 2026 12:59

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Kolumna, która pełni funkcję klucza głównego w tabeli, powinna

A. być innego rodzaju niż inne kolumny
B. posiadać ciągłą numerację
C. zawierać unikalne wartości
D. zawierać wartości liczbowe
Klucz główny w tabeli bazy danych to naprawdę ważny element. To taki unikalny identyfikator, który pozwala na jednoznaczne rozróżnianie rekordów. Dzięki temu unikamy dublowania danych, co jest istotne, żeby wszystko było jasne i klarowne, bo jak byśmy mieli dwa takie same rekordy, to mogłoby być sporo zamieszania. Na przykład w tabeli 'Klienci' klucz główny to np. numery PESEL czy jakieś unikalne identyfikatory klientów. W praktyce stosuje się też różne standardy, jak SQL, które pomagają ustawić te klucze jako ograniczenia. To sprawia, że nasze dane są bezpieczniejsze i bardziej poprawne. No i tak z doświadczenia, najlepiej jest, jak klucz główny jest prosty, może jako liczba całkowita, bo wtedy wszystko działa szybciej. Podsumowując, unikalność klucza głównego to podstawa, żeby mieć pewność, że nasze dane są spójne i wiarygodne. To kluczowe w każdym systemie bazodanowym.

Pytanie 2

W katalogu www znajdują się podkatalogi html oraz styles, w których umieszczone są pliki o rozszerzeniu html oraz pliki z rozszerzeniem css. Aby dołączyć styl.css do pliku HTML, należy zastosować

A. <link rel="Stylesheet" type="text/css" href="/style/styl.css" />
B. <link rel=" Stylesheet" type="text/css" href="www/style/styl. css" />
C. <link rel="Stylesheet" type="text/css" href="styl.css" />
D. <link rel="Stylesheet" type="text/css" href="../style/styl.css" />
Przy analizie pozostałych odpowiedzi można dostrzec pewne powszechne błędy w rozumieniu ścieżek do zasobów w dokumentach HTML. W pierwszej odpowiedzi, użycie ścieżki 'www/style/styl.css' sugeruje, że autor zakłada, że jest to pełna ścieżka dostępu, co jest mylące, ponieważ taka ścieżka nie jest względna w kontekście pliku HTML znajdującego się w folderze 'html'. Ponadto, użycie dużych liter w atrybucie 'rel' (np. 'Stylesheet') jest niepoprawne, ponieważ HTML jest językiem case-insensitive, lecz konwencjonalnie zaleca się używanie małych liter. Druga odpowiedź, wskazująca na '/style/styl.css', implikuje, że 'style' jest umiejscowione w katalogu głównym serwera, co również jest błędne w kontekście podanej struktury folderów. Takie podejście jest typowym błędem przy zrozumieniu relatywnych i bezwzględnych ścieżek URL. Ostatnia odpowiedź, 'styl.css', zakłada, że plik CSS znajduje się w tym samym folderze co plik HTML, co nie odpowiada rzeczywistości w przedstawionym układzie folderów. Wszyscy, którzy pracują nad projektami webowymi, muszą zrozumieć, jak ważne jest precyzyjne określenie lokalizacji zasobów, ponieważ błędy te mogą prowadzić do ładowania nieprawidłowych plików, co w efekcie negatywnie wpływa na wygląd i funkcjonalność strony. Wiedza na temat struktury folderów oraz umiejętność nawigacji po nich jest kluczowym elementem w pracy programisty.

Pytanie 3

Która z poniższych opcji najlepiej opisuje przedstawioną definicję w JavaScript?

var imiona = ["Anna", "Jakub", "Iwona", "Krzysztof"];
A. zbioru
B. klasy
C. tablicy
D. obiektu
Definicja przedstawiona na obrazku odpowiada tablicy w języku JavaScript. Tablice w JavaScript są typem obiektu, który pozwala na przechowywanie wielu wartości w jednej zmiennej. W tym przypadku zmienna imiona zawiera listę stringów reprezentujących imiona. Tablice w JavaScript są dynamiczne co oznacza że ich rozmiar można zmieniać podczas działania programu. Dostęp do poszczególnych elementów tablicy uzyskuje się za pomocą indeksów które zaczynają się od zera. Na przykład pierwszy element tej tablicy to imiona[0] czyli Anna. JavaScript oferuje wiele metod do manipulacji tablicami takich jak push do dodawania elementów na końcu tablicy pop do usuwania ostatniego elementu czy map do tworzenia nowej tablicy na podstawie istniejącej poprzez zastosowanie funkcji do każdego elementu. Zrozumienie działania tablic jest kluczowe dla efektywnego programowania w JavaScript ponieważ są one podstawowym narzędziem do przechowywania i zarządzania danymi.

Pytanie 4

Deklarując var x="true"; w języku JavaScript, jakiego typu zmienną się tworzy?

A. nieokreślonym (undefined)
B. liczbowym
C. string (ciąg znaków)
D. logicznym
W kontekście deklaracji var x="true"; niepoprawne odpowiedzi opierają się na nieporozumieniu dotyczącym typów danych w JavaScript. Zmienna logiczna, która jest jednym z typów boolean, przyjmuje jedynie dwie wartości: true lub false. Wartość "true" nie jest interpretowana jako wartość logiczna, ale jako tekst, co sprawia, że uznawanie jej za zmienną logiczną jest błędne. W JavaScript nie możemy przypisać stringa do typu boolean i oczekiwać, że uzyskamy wynik logiczny; w tej sytuacji wynik będzie zawsze tekstem. Kolejną niepoprawną odpowiedzią jest uznanie zmiennej za liczbową. Typ liczbowy w JavaScript odnosi się do wartości numerycznych, zarówno całkowitych jak i zmiennoprzecinkowych. Wartość "true" nie może być interpretowana jako liczba, ponieważ jest to ciąg znaków. Typ liczbowy wymaga, aby wartość była zapisana w formacie numerycznym, co w przypadku "true" nie ma miejsca. Ostatnią niepoprawną odpowiedzią jest stwierdzenie, że zmienna ma typ nieokreślony (undefined). W JavaScript typ undefined oznacza, że zmienna została zadeklarowana, ale nie przypisano jej żadnej wartości. W przypadku var x="true"; zmienna została zadeklarowana i przypisano jej wartość, więc nie można jej uznać za undefined. Dlatego wszystkie trzy niepoprawne odpowiedzi są wynikiem nieprawidłowego rozumienia typów danych oraz ich interpretacji w JavaScript.

Pytanie 5

W CSS zastosowano poniższe formatowanie. Kolorem czerwonym będzie wyświetlony

h1 i {
   color: red;
}
A. jedynie tekst italic we wszystkich poziomach nagłówków
B. tylko tekst italic nagłówka pierwszego stopnia
C. cały tekst nagłówka pierwszego stopnia oraz tekst italic akapitu
D. cały tekst nagłówka pierwszego stopnia oraz wszelki tekst italic, niezależnie od lokalizacji na stronie
Analizując dostępne odpowiedzi, widzimy, że tylko jedna poprawnie interpretuje zastosowanie selektora CSS. Pierwsza odpowiedź sugeruje, że kolor czerwony zostanie zastosowany jedynie do tekstu pochylonego we wszystkich poziomach nagłówków, co jest błędne. Selekcja h1 i odnosi się wyłącznie do pochylonych elementów wewnątrz nagłówka pierwszego poziomu, a nie w innych nagłówkach. Druga odpowiedź zakłada, że cały tekst nagłówka pierwszego poziomu oraz pochylony tekst akapitu będzie czerwony. To nieprawda, ponieważ selektor dotyczy wyłącznie tekstu w tagu <i> wewnątrz <h1>, a nie oddzielnie pochyłych akapitów. Trzecia odpowiedź również źle interpretuje zakres selektora, twierdząc, że każdy pochyły tekst na stronie zostanie sformatowany na czerwono, co jest niezgodne z koncepcją selektorów złożonych, które w tym przypadku działają tylko w kontekście <h1>. Podstawowy błąd we wszystkich niepoprawnych odpowiedziach polega na nieprawidłowym rozumieniu, jak precyzyjnie działają selektory CSS, co jest kluczowe dla efektywnego zarządzania stylami w projektowaniu stron internetowych. Dobra znajomość selektorów pozwala na uniknięcie nadmiernego użycia klas czy identyfikatorów oraz sprzyja tworzeniu bardziej semantycznego kodu CSS, co jest zgodne z najlepszymi praktykami w branży. Precyzyjna wiedza na temat działania selektorów złożonych pozwala na bardziej efektywne stylizowanie stron oraz minimalizowanie niepożądanych konfliktów stylów.

Pytanie 6

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

A. instrukcja break po każdej instrukcji case
B. konstrukcja switch(wyrażenie)
C. instrukcja default
D. przynajmniej dwie instrukcje 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 7

Tabela Pracownicy zawiera informacje na temat pracowników różnych działów, co jest zaznaczone przez pole liczbowe dzial. Z racji tego, że zazwyczaj kwerendy dotyczą tylko działu 2, można uprościć zapytania do tej tabeli, tworząc wirtualną tabelę o nazwie Prac_dzial2 przy użyciu zapytania

A. CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2;
B. VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;
C. VIEW Prac_dzial2 SELECT FROM Pracownicy WHERE dzial=2;
D. CREATE VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;
Wybór odpowiedzi, która nie zawiera pełnej składni SQL, prowadzi do nieporozumień w zrozumieniu, jak działa tworzenie widoków w bazach danych. Odpowiedzi takie jak 'CREATE VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;' są błędne, ponieważ użycie słowa kluczowego 'FROM' jest niewłaściwe w kontekście definicji widoku. W standardowym SQL używa się 'AS' do określenia zapytania, które definiuje widok, co jest kluczowe dla poprawnego przetwarzania zapytania przez silnik bazy danych. Z kolei odpowiedzi, które zaczynają się od 'VIEW', takie jak 'VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;' oraz 'VIEW Prac_dzial2 SELECT FROM Pracownicy WHERE dzial=2;', są całkowicie niepoprawne, ponieważ w SQL nie istnieje polecenie 'VIEW' jako samodzielne polecenie do tworzenia widoków. To może prowadzić do mylnego przekonania, że komendy SQL są bardziej elastyczne w kwestii składni, co nie jest zgodne z rzeczywistością. Użytkownicy powinni zawsze odnosić się do dokumentacji SQL oraz standardów, aby upewnić się, że struktura zapytań jest zgodna z wymaganiami danego systemu bazy danych. Rozumienie poprawnej składni i semantyki SQL jest podstawowym elementem efektywnego zarządzania bazami danych i kluczowym krokiem w procesie nauki oraz implementacji skutecznych rozwiązań bazodanowych.

Pytanie 8

Użytkownik Jan będzie miał możliwość realizacji

GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost';
A. wyłącznie operacje CREATE, ALTER, DROP na tabelach w bazie dane
B. tylko operacje manipulacji danymi oraz zmienić jedynie swoje uprawnienia
C. wszystkie operacje na tabelach bazy dane oraz przekazywać prawa innym użytkownikom
D. wszystkie operacje na tabelach w bazie dane
Odpowiedź jest prawidłowa, ponieważ polecenie GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost'; przyznaje użytkownikowi Jan wszelkie uprawnienia na wszystkich tabelach w bazie danych o nazwie 'dane'. Oznacza to, że Jan może wykonywać wszystkie operacje, takie jak SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP i inne, które są związane z zarządzaniem danymi oraz strukturą bazy. W praktyce oznacza to, że Jan ma pełną kontrolę nad bazą danych, co może być przydatne w scenariuszach, gdzie administratorzy chcą umożliwić użytkownikom elastyczność w zarządzaniu danymi. Warto jednak pamiętać, że przyznawanie ALL PRIVILEGES powinno być stosowane ostrożnie, aby uniknąć nieautoryzowanego dostępu do informacji. Dobrym rozwiązaniem jest stosowanie polityki minimalnych uprawnień, która ogranicza możliwości użytkowników do tylko tych, które są niezbędne do ich codziennych obowiązków.

Pytanie 9

Co oznacza zapis w obiekcie w języku JavaScript?

x = przedmiot.nazwa();
A. nazwa jest cechą obiektu przedmiot
B. zmienna x będzie przechowywać rezultat działania funkcji przedmiot
C. nazwa jest atrybutem klasy przedmiot
D. zmienna x będzie przechowywać wynik działania metody nazwa
Zapis przedmiot.nazwa() w języku JavaScript oznacza wywołanie metody nazwa na obiekcie przedmiot. Częstym błędem jest mylenie metody z polem klasy czy właściwością obiektu. Pole klasy odnosi się do zmiennej zdefiniowanej na poziomie klasy która przechowuje dane związane z instancjami tej klasy. Metody natomiast są funkcjami które wykonują operacje na danych obiektu. Jeśli chodzi o zmienną przechowującą wynik działania funkcji przedmiot nie jest to poprawna interpretacja ponieważ przedmiot w tym przypadku jest obiektem na którym działa metoda nazwa a nie funkcją. Kolejny błąd to mylenie wywołania metody z przypisaniem wartości właściwości obiektu. Właściwości to atrybuty które przechowują stany obiektu natomiast metody określają jego zachowanie i umożliwiają wykonywanie czynności. Często podczas nauki JavaScript błędnie interpretujemy składnię kropki jako odnoszącą się tylko do właściwości zamiast dostrzegać że może ona również oznaczać wywołanie metod. Dobra praktyka polega na jasnym rozróżnieniu pomiędzy metodami a właściwościami co zwiększa czytelność i niezawodność kodu ułatwiając jego późniejszą konserwację i rozwój przez zespoły programistyczne

Pytanie 10

Metoda w języku PHP, która pełni rolę konstruktora, nosi nazwę

A. _new
B. _create
C. _open
D. _construct
Konstruktor w języku PHP to specjalna metoda, która jest wywoływana automatycznie w momencie tworzenia obiektu danej klasy. Nazwa konstruktora w PHP to __construct, co jest zgodne z konwencjami programistycznymi i standardem PSR-1. Zastosowanie konstruktora pozwala na inicjalizację obiektu oraz przekazywanie parametrów, które mogą być wykorzystane w dalszej części kodu. Na przykład, jeśli mamy klasę `Samochod`, możemy zdefiniować konstruktor, który przyjmuje parametry takie jak marka, model i rok produkcji. Dzięki temu każdy nowo utworzony obiekt samochodu będzie miał ustawione te wartości. Stosowanie konstruktorów jest powszechną praktyką w programowaniu obiektowym, co sprzyja lepszemu zarządzaniu kodem i jego czytelności. Przykład: `public function __construct($marka, $model, $rok) { $this->marka = $marka; $this->model = $model; $this->rok = $rok; }`. Warto również pamiętać, że konstruktor może dziedziczyć właściwości i metody z klasy rodzicielskiej, co jest kluczowe w kontekście programowania obiektowego.

Pytanie 11

W której superglobalnej tablicy w PHP należy przechowywać informacje dotyczące logowania użytkownika w sposób gwarantujący ich bezpieczeństwo?

A. $_SESSION
B. $_SERVER
C. $_FILES
D. $_COOKIE
Wybór $_COOKIE do przechowywania danych logowania to kiepski pomysł z kilku powodów. Ciasteczka są trzymane po stronie klienta, co znaczy, że mogą być łatwo dostępne dla innych, a to stwarza poważne zagrożenie dla bezpieczeństwa. Na przykład, hakerzy mogą wykraść ciasteczka przez różne techniki, takie jak XSS, co mogłoby prowadzić do nieautoryzowanego dostępu do kont. Poza tym, ciasteczka mają ograniczoną pojemność i użytkownik może je modyfikować, co czyni je nieodpowiednim miejscem na wrażliwe dane. Używanie $_FILES także jest nietrafione, bo ta tablica służy do obsługi plików przesyłanych przez użytkowników, a nie zarządzania sesjami. $_SERVER to z kolei tablica, która ma informacje o serwerze oraz zapytaniach, ale nie nadaje się do trzymania danych użytkowników. Typowym błędem przy wyborze $_COOKIE czy $_SERVER jest to, że nie rozumie się ich funkcji, co może prowadzić do niebezpiecznych sytuacji. Żeby dobrze zabezpieczyć dane logowania, najlepiej korzystać z sesji, bo są zaprojektowane właśnie do tego i oferują znacznie lepszą ochronę.

Pytanie 12

Funkcja PHP var_dump() wyświetla informację na temat zmiennej: jej typ i wartość. Wynikiem dla przedstawionego fragmentu kodu jest:

$x = 59.85;
var_dump($x);
A. float(59.85)
B. string(5) "59.85"
C. array(2) { [0]=> int(59) [1]=> int(85) }
D. int(59)
Niestety, Twoja odpowiedź nie była poprawna. Niepoprawne odpowiedzi sugerowały różne typy danych i struktury, które nie odpowiadają prawdziwemu wynikowi funkcji var_dump() dla zmiennej o wartości 59.85. Na przykład, jedna z niepoprawnych odpowiedzi sugerowała, że wynikiem jest int(59), co by było prawdą, gdyby wartość zmiennej była liczbą całkowitą, a nie liczbą zmiennoprzecinkową. Inna niepoprawna odpowiedź sugeruje, że wynikiem jest string(5) "59.85". W tym przypadku, wartość jest prawidłowa, ale typ jest nieprawidłowy. PHP nie zamienia automatycznie liczb na stringi bez jawnego żądania. Jeszcze inna błędna odpowiedź sugeruje, że wynikiem jest tablica składająca się z dwóch liczb całkowitych, co jest niezgodne z rzeczywistością. PHP nie tworzy automatycznie tablic z pojedynczych zmiennych. Sugerowane przez te niepoprawne odpowiedzi błędy wynikają z niezrozumienia typów danych w PHP oraz zasady działania funkcji var_dump(). Zrozumienie jak PHP obsługuje różne typy danych jest kluczowe do poprawnego korzystania z tego języka.

Pytanie 13

Aby z tabeli Pracownicy wybrać tylko nazwiska kończące się na literę „i”, można zastosować następującą kwerendę SQL

A. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i%";
B. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i%";
C. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i";
D. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i;
Prawidłowa kwerenda SQL do wyszukania nazwisk pracowników, których ostatnią literą jest 'i', to 'SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i";'. Operator LIKE w SQL jest używany do wyszukiwania wzorców w danych tekstowych. W tym przypadku symbol '%' przed literą 'i' oznacza, że przed 'i' może występować dowolna liczba znaków (w tym zero), co umożliwia znalezienie wszystkich nazwisk kończących się na tę literę. Przykładowe nazwiska, które mogą być zwrócone przez tę kwerendę to 'Kowalski', 'Nowak', czy 'Wiśniewski'. Zgodnie z standardem SQL, użycie podwójnych cudzysłowów dla wzorca jest właściwe w kontekście baz danych, jednak w wielu systemach baz danych, w tym MySQL, częściej stosuje się pojedyncze cudzysłowy. Warto także zauważyć, że technika ta jest przydatna przy pracy z bazami danych, gdyż umożliwia elastyczne wyszukiwanie informacji oraz jest szczególnie cenne w aplikacjach wymagających filtrowania danych według specyficznych kryteriów.

Pytanie 14

Ustalenie klucza obcego jest konieczne do skonstruowania

A. relacji 1..1
B. klucza podstawowego
C. relacji 1..n
D. transakcji
Zdefiniowanie klucza obcego nie jest bezpośrednio związane z relacjami 1..1, transakcjami czy kluczem podstawowym, ponieważ każde z tych pojęć odnosi się do innego aspektu zarządzania danymi w relacyjnych bazach danych. W przypadku relacji 1..1, każdemu rekordowi w jednej tabeli odpowiada dokładnie jeden rekord w drugiej tabeli, co oznacza, że nie ma potrzeby stosowania klucza obcego, gdyż relacja ta nie wymaga wskazywania powiązań między różnymi rekordami. Ponadto, transakcje są zbiorem operacji, które muszą być wykonane w całości lub wcale, a klucz obcy nie ma bezpośredniego wpływu na ich działanie - klucze obce służą głównie do zapewnienia integralności danych, a nie do zarządzania transakcjami. Klucz podstawowy, z drugiej strony, to unikalny identyfikator każdego rekordu w tabeli, a jego definicja jest odrębna od definicji klucza obcego. W praktyce, pomylenie tych pojęć prowadzi do błędnych wniosków o strukturyzacji danych oraz ich relacjach, co może skutkować nieefektywnym projektowaniem baz danych oraz trudnościami w późniejszym zarządzaniu danymi.

Pytanie 15

Na przedstawionej grafice widać fragment bazy danych. Jakie kwerendę należy zastosować, aby uzyskać nazwy produktów zakupionych przez klienta o id = 1?

Ilustracja do pytania
A. SELECT nazwa FROM produkty JOIN transakcje ON nr_produktu = nr_klienta WHERE nr_klienta = 1
B. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) JOIN transakcje USING(nr_transakcji) WHERE nr_klienta = 1
C. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) WHERE nr_klienta = 1
D. SELECT nazwa FROM produkty JOIN transakcje_produkty JOIN transakcje WHERE nr_klienta = 1
Prawidłowa odpowiedź używa właściwego połączenia tabel baz danych aby otrzymać nazwy produktów zakupionych przez klienta o konkretnym identyfikatorze. W SQL kwerenda z JOIN umożliwia łączenie danych z więcej niż jednej tabeli na podstawie wspólnego pola. W tym przypadku tabela produkty jest połączona z transakcje_produkty przez pole nr_produktu oraz tabela transakcje jest połączona z transakcje_produkty przez pole nr_transakcji. Dzięki temu możliwe jest uzyskanie pełnego obrazu transakcji dla klienta o id = 1. Zastosowanie USING(nr_produktu) i USING(nr_transakcji) upraszcza kwerendę eliminując konieczność jawnego określania kolumn po obu stronach klauzuli ON. Praktyczne zastosowanie takich kwerend jest podstawą w analizie danych sprzedażowych gdzie analiza historii zakupów klientów może dostarczyć cennych informacji dla działów marketingu oraz logistyki. Dobre praktyki obejmują również optymalizację zapytań SQL aby były jak najbardziej efektywne co jest kluczowe przy pracy z dużymi zbiorami danych.

Pytanie 16

Zgodnie z zasadami ACID, odnoszącymi się do przeprowadzania transakcji, wymóg trwałości (ang. durability) wskazuje, że

A. w trakcie realizacji transakcji dane mogą być zmieniane przez inne transakcje
B. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od tego, co się wydarzy po jej zakończeniu
C. transakcja może w pewnych okolicznościach być rozdzielona na dwa niezależne etapy
D. w sytuacji naruszenia spójności bazy danych transakcja eliminuje tabele z kluczami obcymi
Wymóg trwałości (durability) w kontekście właściwości ACID oznacza, że po zatwierdzeniu transakcji, wszystkie zmiany dokonane na danych muszą być utrwalone w trwałym magazynie danych, a ich dostępność nie może być zagrożona przez awarie systemu, takie jak utrata zasilania czy awarie oprogramowania. Przykładem może być system bankowy, gdzie po wykonaniu operacji przelewu, saldo konta musi być natychmiastowo zaktualizowane i dostępne w systemie, niezależnie od tego, co wydarzy się później. W praktyce, wiele systemów zarządzania bazami danych, takich jak PostgreSQL czy MySQL, wykorzystuje mechanizmy logowania transakcji oraz techniki replikacji, aby zapewnić, że dane pozostaną spójne i dostępne nawet w obliczu kryzysów. Zgodność z zasadą trwałości jest kluczowa dla utrzymania zaufania użytkowników i stabilności operacyjnej systemów informacyjnych, co jest wspierane przez standardy takie jak ISO/IEC 27001 dotyczące zarządzania bezpieczeństwem informacji.

Pytanie 17

Co uzyskujemy po wykonaniu zapytania SQL?

Ilustracja do pytania
A. średnią wszystkich ocen uczniów
B. całkowitą liczbę uczniów
C. suma ocen uczniów, których średnia ocen wynosi 5
D. liczbę uczniów, których średnia ocen wynosi 5
Zapytanie SQL SELECT count(*) FROM Uczniowie WHERE srednia = 5; wykorzystuje funkcję agregującą count(*), która służy do zliczania liczby wierszy spełniających określone warunki. W tym przypadku warunkiem jest srednia = 5 co oznacza że zapytanie zlicza wszystkich uczniów których średnia ocen wynosi dokładnie 5. Jest to powszechna praktyka w analizie danych gdzie często potrzebujemy określić liczebność pewnych grup danych na przykład aby przeanalizować ich rozkład lub porównać je z innymi grupami. W profesjonalnej bazie danych zliczanie wierszy na podstawie kryteriów jest standardem co umożliwia generowanie raportów i podejmowanie decyzji na podstawie danych. Użycie count(*) bez dodatkowych parametrów jest zgodne z dobrymi praktykami ponieważ jest wydajne i łatwe w interpretacji. W praktyce stosowanie tego typu zapytań jest nieodzowne w działach analizy danych zarządzania relacjami z klientami czy w edukacji gdzie analizujemy wyniki uczniów.

Pytanie 18

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

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

Pytanie 19

Informacje o ciasteczkach są przechowywane w tablicy

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

Pytanie 20

Podczas edytowania grafiki w programie do obróbki rastrowej należy usunąć kolory z obrazu, aby uzyskać wizualizację w odcieniach szarości. W tym celu można zastosować funkcję

A. filtru rozmycia
B. kadrowania
C. desaturacji
D. szumu RGB
Desaturacja to proces, który polega na usunięciu kolorów z obrazu, co skutkuje uzyskaniem jego wersji w odcieniach szarości. W kontekście edytorów grafiki rastrowej, takich jak Adobe Photoshop lub GIMP, desaturacja jest kluczową funkcją, umożliwiającą szybkie przekształcenie zdjęcia kolorowego w monochromatyczne. Tego typu operacje są szczególnie przydatne w fotografii czarno-białej, w grafice artystycznej oraz w projektowaniu, gdzie kolor może odwracać uwagę od kompozycji lub detali. Aby wykonać desaturację, wystarczy zastosować odpowiednią funkcję menu, co pozwala na łatwe i efektywne pozbycie się kolorów. Dobrą praktyką jest również eksploracja różnych metod desaturacji, takich jak konwersja do skali szarości lub użycie filtrów, które mogą dać różne efekty wizualne. Warto również zaznaczyć, że desaturacja nie jest tym samym co konwersja do odcieni szarości, gdyż może zachować pewne informacje o luminancji, które są istotne w kontekście dalszej obróbki obrazu.

Pytanie 21

Jakie będą skutki wykonania podanego zapytania w tabeli?

ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;
A. zmiana wartości kolumny nazwa2 na DOUBLE
B. dodanie kolumny nazwa2 z wartością domyślną typu DOUBLE
C. zmiana nazwy kolumny z nazwa1 na nazwa2
D. dodanie kolumny nazwa2 typu zmiennoprzecinkowego
Pytanie dotyczy użycia polecenia SQL ALTER TABLE w celu modyfikacji struktury istniejącej tabeli. W przedstawionym zapytaniu ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL; widzimy, że użyto słowa kluczowego ADD co wskazuje na dodanie nowej kolumny do tabeli. Kolumna ta nazywa się nazwa2 i ma typ danych DOUBLE co oznacza, że będzie przechowywać wartości zmiennoprzecinkowe. Specyfikacja NOT NULL oznacza, że żadna wartość w tej kolumnie nie może być NULL co jest częstym wymogiem w bazach danych aby zapewnić spójność i prawidłowość danych. Dodawanie nowych kolumn do tabeli jest typową operacją w zarządzaniu bazami danych umożliwiającą rozbudowę ich struktury w celu spełnienia nowych wymagań biznesowych. Typ DOUBLE jest szczególnie użyteczny w przechowywaniu danych liczbowych wymagających dużej precyzji takich jak wartości finansowe czy pomiary naukowe. Ważne jest aby zawsze po dodaniu nowej kolumny dostosować aplikacje korzystające z bazy danych aby mogły poprawnie obsługiwać nowe dane co jest zgodne z najlepszymi praktykami w branży IT.

Pytanie 22

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", konieczne jest zastosowanie funkcji w PHP

A. ucfirst('ala ma psa')
B. strstr('ala ma psa')
C. strtolower('ala ma psa')
D. strtoupper('ala ma psa')
Użycie funkcji strtolower('ala ma psa') prowadzi do błędnych rezultatów, bo ta funkcja zmienia wszystkie litery na małe. W tym pytaniu chcemy mieć cały tekst wielkimi literami, więc to jest totalnie nie na miejscu. Gdybyśmy chcieli znormalizować tekst do małych liter, to tak, wtedy miałoby to sens, na przykład przy wyszukiwaniu. Kolejna odpowiedź, strstr('ala ma psa'), też jest chybiona, bo ta funkcja służy do szukania części ciągu, a nie do modyfikacji liter. Można by tego użyć, żeby sprawdzić, czy konkretne słowo występuje w zdaniu, ale nie do zmiany rozmiaru liter. Ostatnia odpowiedź, ucfirst('ala ma psa'), działa tylko na pierwszą literę ciągu, więc też nie pasuje do tego, co pytanie chce osiągnąć. Ta funkcja jest super przy formatowaniu imion czy tytułów, ale nie w sytuacji, gdy potrzebujemy przekształcić całe zdanie. Takie nieporozumienia pokazują, że warto zrozumieć, które funkcje w PHP najlepiej pasują do danego celu, żeby uniknąć błędów w przyszłości.

Pytanie 23

Kolorem, który ma odcień niebieski, jest kolor

A. #EE00EE
B. #EE0000
C. #00EE00
D. #0000EE
Poprawna odpowiedź to kolor #0000EE, który reprezentuje odcień niebieskiego w systemie RGB. Kolory w tym systemie definiowane są poprzez trzy składowe: czerwoną, zieloną i niebieską (RGB), gdzie wartości są podawane w formacie szesnastkowym. W przypadku #0000EE, pierwsze dwie pary zer oznaczają brak składowych czerwonej i zielonej, natomiast ostatnia para 'EE' wskazuje na wysoką intensywność składowej niebieskiej. Takie podejście jest powszechnie stosowane w programowaniu i projektowaniu stron internetowych, gdzie precyzyjnie określone kolory mają kluczowe znaczenie dla estetyki i użyteczności interfejsu. Przykładem zastosowania koloru niebieskiego może być jego użycie w projektach związanych z tematyką technologiczną lub finansową, gdzie niebieski symbolizuje zaufanie i profesjonalizm. Warto również zwrócić uwagę, że w kontekście dostępności barw, stosowanie odpowiednich kontrastów z tłem jest niezbędne, aby zapewnić czytelność tekstu i elementów graficznych. Odpowiednie wykorzystanie kodów koloru może znacząco wpłynąć na postrzeganie marki oraz interakcję użytkowników z treściami wizualnymi na stronach internetowych.

Pytanie 24

Która rozdzielczość jest wyrażana za pomocą jednostki ppi (ang. pixels per inch)?

A. Skanerów.
B. Obrazów tworzonych przez drukarki i plotery.
C. Cyfrowych urządzeń wykonujących pomiary.
D. Obrazów rastrowych.
Jednostka ppi (pixels per inch) wielu osobom myli się z innymi rodzajami rozdzielczości, co jest całkiem zrozumiałe, bo w grafice i poligrafii mamy kilka podobnie brzmiących pojęć. Ppi opisuje gęstość pikseli w obrazie rastrowym, czyli informację, jak gęsto ułożone są piksele w danym fizycznym rozmiarze. To cecha samego obrazu lub projektu, a nie cecha urządzenia pomiarowego czy drukarki. Częsty błąd polega na kojarzeniu ppi z rozdzielczością skanera. Skaner co prawda pracuje na pikselach, ale standardowo jego rozdzielczość określa się w dpi (dots per inch). W uproszczeniu: mówimy o tym, ile punktów skaner jest w stanie „odczytać” z jednego cala skanowanego dokumentu. Efektem pracy skanera jest obraz rastrowy i to właśnie ten wynikowy plik ma swoją rozdzielczość w pikselach i może mieć zdefiniowaną wartość ppi, ale sama specyfikacja urządzenia jest zwykle opisana w dpi. Podobnie mylące bywa kojarzenie ppi z cyfrowymi urządzeniami pomiarowymi. One najczęściej operują na zupełnie innych parametrach: dokładności pomiaru, częstotliwości próbkowania, rozdzielczości przetwornika ADC, liczbie bitów itp. Tam nie ma siatki pikseli w sensie graficznym, więc jednostka ppi po prostu nie pasuje do charakteru tych urządzeń. Dużo osób utożsamia też ppi z rozdzielczością drukarek i ploterów. W świecie druku standardową jednostką jest dpi, bo urządzenie fizycznie „strzela” punktami tuszu lub toneru na papier. Drukarka może z jednego piksela obrazu rastrowego wygenerować wiele mikroskopijnych punktów farby, aby uzyskać odpowiedni kolor i odcień, dlatego jej rozdzielczość w dpi bywa znacznie wyższa niż rozdzielczość samego pliku. Tu właśnie tkwi subtelna różnica: ppi opisuje obraz, dpi opisuje urządzenie drukujące. Pomylenie tych pojęć prowadzi do złego przygotowania materiałów – np. za niska rozdzielczość obrazu rastrowego przy wysokiej rozdzielczości drukarki da nieostry, „rozmyty” wydruk, mimo że specyfikacja drukarki wygląda imponująco. Z mojego doświadczenia, dobrą praktyką jest zawsze pytać: „czy mówimy o pliku graficznym (rastrowym), czy o urządzeniu?” – wtedy łatwiej poprawnie zastosować ppi i dpi i uniknąć nieporozumień przy projektach graficznych i webowych.

Pytanie 25

Który z elementów relacyjnej bazy danych, zapisany w języku SQL, może być wykorzystany w zapytaniach modyfikujących kolumny danych udostępnione jako tabela, niezależnie od tego, czy jest stworzony programowo, czy dynamicznie?

A. Funkcja zdefiniowana
B. Procedura składowa
C. Trigger
D. Zasada
Kiedy analizujemy inne obiekty bazy danych, takie jak reguły, wyzwalacze i procedury składowe, możemy zidentyfikować, dlaczego nie są one odpowiednie w kontekście tego pytania. Reguły w SQL są używane do automatyzacji modyfikacji zapytań, ale ich zastosowanie jest ograniczone i rzadko używane w nowoczesnych bazach danych. Reguły są rzeczywiście często pomijane w nowoczesnych implementacjach ze względu na ich złożoność oraz ograniczenia w stosowaniu. Wyzwalacze natomiast są mechanizmami, które automatycznie wywołują się w odpowiedzi na określone zdarzenia w bazie danych, takie jak dodawanie, aktualizacja lub usuwanie rekordów. Choć mogą modyfikować dane, to nie są one wywoływane bezpośrednio przez zapytania, a raczej jako odpowiedź na zdarzenia, co czyni je mniej elastycznymi w kontekście bezpośrednich zapytań. Procedury składowe są kolejnym typem obiektu bazy danych, które mogą implementować złożoną logikę, jednak są one zazwyczaj wywoływane jako całość i nie mogą być używane w kontekście zapytań modyfikujących dane, jak to ma miejsce w przypadku funkcji zdefiniowanej. Zatem w kontekście elastyczności i modułowości w modyfikacjach danych, funkcje zdefiniowane pozostają najodpowiedniejszym rozwiązaniem.

Pytanie 26

Który z poniższych kodów HTML odpowiada opisanej tabeli? (W celu uproszczenia zrezygnowano z zapisu stylu obramowania tabeli oraz komórek)

Ilustracja do pytania
A. Odpowiedź D
B. Odpowiedź B
C. Odpowiedź A
D. Odpowiedź C
W koncepcji struktury tabeli HTML, zrozumienie atrybutów rowspan i colspan jest kluczowe dla poprawnego tworzenia układu danych. W analizie dostępnych odpowiedzi, niektóre z nich błędnie stosują te atrybuty lub ich nie używają, co prowadzi do niepoprawnego renderowania tabeli. Na przykład, w niektórych przypadkach, gdy użycie colspan lub rowspan jest niepotrzebne, może to prowadzić do nieporządku wizualnego i semantycznego. W odpowiedziach, w których zaniedbano atrybut rowspan, nie osiągnięto prawidłowego połączenia wierszy w kolumnie, co powoduje, że dane są wyświetlane w sposób nieczytelny. Typowym błędem myślowym jest zakładanie, że zagnieżdżenie danych w kolejnych komórkach wystarczy do ich poprawnej prezentacji, jednak w praktyce to prowadzi do rozbicia logicznej ciągłości informacji. Takie podejście może zaburzać użytkownikom interakcję z danymi, zwłaszcza gdy przeglądają oni tabele na urządzeniach mobilnych, gdzie przestrzeń jest ograniczona. Właściwe użycie rowspan zapewnia jednolitą prezentację, poprawiając zarówno estetykę, jak i funkcjonalność tabeli, zgodnie z dobrymi praktykami projektowania interfejsów użytkownika.

Pytanie 27

W celu przyznania użytkownikowi w systemie MySQL możliwości nadawania i modyfikowania uprawnień innym użytkownikom, konieczne jest użycie klauzuli

A. FLUSH PRIVILEGES
B. TRGGER
C. ALL PRIVILEGES
D. GRANT OPTION
Aby w systemie MySQL nadać użytkownikowi prawo do nadawania i zmiany uprawnień innym użytkownikom, należy zastosować klauzulę GRANT OPTION. Ta klauzula jest istotnym elementem systemu zarządzania uprawnieniami, ponieważ umożliwia użytkownikowi, który posiada określone uprawnienia, dzielenie się nimi z innymi użytkownikami. Oznacza to, że użytkownik z GRANT OPTION ma prawo nie tylko do wykonania pewnych działań, ale także do przekazywania tych uprawnień innym, co jest kluczowe w zarządzaniu dużymi bazami danych, gdzie konieczne jest delegowanie zadań. Przykład użycia klauzuli GRANT OPTION może wyglądać następująco: 'GRANT SELECT, INSERT ON my_database.* TO 'user1'@'localhost' WITH GRANT OPTION;', co daje użytkownikowi 'user1' prawo do wykonywania operacji SELECT i INSERT oraz możliwość przekazywania tych uprawnień innym użytkownikom. Taki mechanizm jest fundamentalny dla utrzymania hierarchii uprawnień i bezpieczeństwa w bazach danych, co jest zgodne z najlepszymi praktykami w zarządzaniu dostępem do danych.

Pytanie 28

Zdefiniowano bazę danych z tabelą sklepy, która zawiera pola: nazwa, ulica, miasto, branza. W celu zlokalizowania wszystkich nazw sklepów spożywczych, które znajdują się tylko we Wrocławiu, należy wykorzystać kwerendę:

A. SELECT nazwa FROM sklepy WHERE branza="spozywczy" AND miasto="Wrocław"
B. SELECT sklepy FROM nazwa WHERE branza="spożywczy" BETWEEN miasto="Wrocław"
C. SELECT sklepy FROM branza="spożywczy" WHERE miasto="Wrocław"
D. SELECT nazwa FROM sklepy WHERE branza="spozywczy" OR miasto="Wrocław"
Odpowiedź 'SELECT nazwa FROM sklepy WHERE branza="spozywczy" AND miasto="Wrocław";' jest poprawna, ponieważ wykorzystuje właściwą składnię SQL do pobrania danych. W tym przypadku chcemy wybrać nazwy sklepów z tabeli 'sklepy', które spełniają dwa warunki: branża musi być równa 'spozywczy', a miasto musi być równe 'Wrocław'. Użycie operatora AND zapewnia, że oba kryteria muszą być spełnione jednocześnie, co jest kluczowe w tym zadaniu. Ponadto, dobrym zwyczajem jest stosowanie podwójnych cudzysłowów dla nazw kolumn i wartości tekstowych. Przykładowo, w praktyce taka kwerenda może być użyta do analizy lokalizacji sklepów spożywczych w danym mieście, co może być istotne dla strategii marketingowej lub planowania rozwoju sieci handlowej. Zrozumienie struktury SQL oraz sposób formułowania zapytań jest fundamentem efektywnego zarządzania danymi w relacyjnych bazach danych.

Pytanie 29

Przedstawiona ikona funkcji edytora grafiki rastrowej o nazwie "różdżka" umożliwia

Ilustracja do pytania
A. odręczne zaznaczanie obszarów przez przeciąganie po nich kursora.
B. zaznaczenie obszaru na podstawie koloru.
C. pobranie wskazanego koloru i ustawienie go jako aktywny.
D. wybiórcze rozsmarowywanie koloru za pomocą pędzla.
Niestety, wybrane odpowiedzi nie są prawidłowe. Narzędzie 'różdżka' w edytorze grafiki rastrowej, nie służy do pobierania wskazanego koloru i ustawienia go jako aktywny. Ta funkcja jest zazwyczaj realizowana przez narzędzie 'pipeta'. Różdżka również nie służy do wybiórczego rozsmarowywania koloru za pomocą pędzla - tę funkcję pełni narzędzie 'pędzel' lub 'rozmycie'. Odręczne zaznaczanie obszarów przez przeciąganie po nich kursora jest możliwe, ale nie jest to główne zadanie narzędzia 'różdżka', które służy do automatycznego zaznaczania obszarów na podstawie koloru. Niepoprawne odpowiedzi mogły wynikać z niezrozumienia specyfiki pracy z edytorem grafiki rastrowej, oraz z niewłaściwego zrozumienia funkcji poszczególnych narzędzi. Kluczowe dla poprawnej odpowiedzi było zrozumienie, że różdżka jest narzędziem do automatycznego zaznaczania obszarów o podobnym kolorze, co znacznie ułatwia pracę, szczególnie przy edycji skomplikowanych kształtów czy dużych obszarów o podobnej barwie.

Pytanie 30

Jakie znaczniki HTML pozwolą na prezentację tekstu w jednym wierszu na stronie, zakładając, że nie zastosowano żadnych reguł CSS?

A. style="margin-bottom: 0cm;"><p>Dobre strony </p><p style="letter-spacing:3px">mojej strony</p>
B. style="margin-bottom: 0cm;"><div>Dobre strony </div><div style="letter-spacing:3px">mojej strony</div>
C. style="margin-bottom: 0cm;"><h3>Dobre strony </h3><h3 style="letter-spacing:3px">mojej strony</h3>
D. <span>Dobre strony </span><span style="letter-spacing:3px">mojej strony</span>
Wszystkie trzy niepoprawne odpowiedzi wykorzystują znaczniki blokowe lub nieodpowiednie stylizacje, które wprowadzają nowe linie. Znacznik <p> (paragraf) domyślnie powoduje, że przeglądarki wstawiają odstęp przed i po elemencie, co zmienia układ tekstu na stronie. Zastosowanie <h3> również prowadzi do podobnych problemów, ponieważ nagłówki są elementami blokowymi, które z definicji powinny być wyświetlane w nowym wierszu. Ostatecznie, użycie <div> ma podobne konsekwencje, gdyż jest to również znacznik blokowy, co prowadzi do niepożądanego układu tekstu w nowych liniach. W kontekście tworzenia stron internetowych, zachowanie zgodności z zasadami HTML oraz CSS jest kluczowe, aby zachować porządek i estetykę strony. Elementy blokowe są idealne do tworzenia struktury, ale nie do wyświetlania tekstu w linii, dlatego w kontekście zadania, wybrane odpowiedzi nie spełniają wymogu utrzymania tekstu w jednej linii. Idealnym rozwiązaniem w takiej sytuacji jest użycie znaczników inline, takich jak <span>, które pozwalają na bardziej elastyczne formatowanie treści bez zakłócania układu.

Pytanie 31

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Krzywe.
B. Inwersja.
C. Progowanie.
D. Barwienie.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 32

Jaką konstrukcją w języku C++ jest double *x;?

A. Formalny argument typu rzeczywistego
B. Zmienna rzeczywista
C. Zmienna całkowita
D. Wskaźnik
Wybór odpowiedzi, która sugeruje, że 'double *x;' jest parametrem formalnym typu rzeczywistego, jest nieprawidłowy, ponieważ wskaźnik nie jest sam w sobie parametrem formalnym. Parametry formalne w C++ są definiowane w nagłówkach funkcji i odnoszą się do zmiennych przekazywanych do funkcji. Wskaźnik, jak 'double *x;', jest po prostu zmienną, która przechowuje adres innej zmiennej, co jest zupełnie inną koncepcją. Z kolei określenie zmiennej całkowitej jest również błędne, ponieważ 'double' wskazuje na typ zmiennoprzecinkowy, a nie całkowity. Zrozumienie różnicy między typami danych jest kluczowe w C++. Ostatnia niepoprawna opcja, mówiąca o zmiennej rzeczywistej, nie odnosi się do wskaźnika, ponieważ wskaźnik nie jest zmienną przechowującą wartość typu 'double', ale adresem, pod którym taka wartość może być przechowywana. Typowe błędy myślowe, które mogą prowadzić do takich niepoprawnych odpowiedzi, obejmują mylenie pojęcia wskaźnika z typem zmiennej, a także brak zrozumienia roli wskaźników w kontekście zarządzania pamięcią i przekazywania danych do funkcji. Właściwe zrozumienie tych podstawowych koncepcji jest niezbędne do skutecznego programowania w C++.

Pytanie 33

W języku HTML zdefiniowano listę:

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

Pytanie 34

W języku SQL aby zmodyfikować dane w tabeli, należy posłużyć się poleceniem

A. UPDATE
B. JOIN
C. CREATE
D. SELECT
Polecenie UPDATE to w SQL podstawowe narzędzie do modyfikowania istniejących danych w tabelach. W praktyce oznacza to, że jeśli chcesz np. zmienić wartość jakiegoś pola dla wybranego rekordu, to właśnie tego polecenia używasz. Przykład z życia: masz tabelę pracowników i ktoś zmienił numer telefonu – nie robisz nowego wpisu, nie tworzysz nowej tabeli, tylko aktualizujesz jedną kolumnę w odpowiednim wierszu. Składnia tego polecenia jest dość intuicyjna: UPDATE nazwa_tabeli SET kolumna=nowa_wartość WHERE warunek. Bardzo ważne jest stosowanie klauzuli WHERE, bo inaczej możesz przez przypadek podmienić dane we wszystkich wierszach tabeli, co niestety zdarza się nawet doświadczonym programistom, zwłaszcza przy pracy na środowiskach testowych. Warto wiedzieć, że SQL-92 (czyli jeden z najważniejszych standardów języka SQL) dokładnie opisuje sposób działania tego polecenia. Często w praktyce spotyka się też połączenie UPDATE z transakcjami, żeby mieć możliwość cofnięcia zmian, gdyby coś poszło nie tak. Moim zdaniem umiejętne stosowanie UPDATE to podstawa pracy z bazami danych – prawie każdy większy system korzysta z tego polecenia na co dzień. Dobrze też pamiętać o bezpieczeństwie i zawsze sprawdzać, czy warunek w WHERE jest poprawny, żeby nie napsuć w danych. Praktyka czyni mistrza i z czasem takie operacje wchodzą w krew.

Pytanie 35

Jakiego protokołu należy użyć do przesyłania plików witryny internetowej na serwer hostingowy?

A. HTTP
B. IRC
C. SMTP
D. FTP
Wybór protokołu IRC (Internet Relay Chat) jest niewłaściwy, ponieważ IRC jest przeznaczony do komunikacji w czasie rzeczywistym, a nie do transferu plików. IRC umożliwia użytkownikom prowadzenie rozmów na czatach i wymianę wiadomości, co nie ma zastosowania w kontekście przesyłania plików na serwer hostingowy. Podobnie, protokół HTTP (Hypertext Transfer Protocol) jest używany głównie do przesyłania danych w formacie stron internetowych, ale nie służy do przesyłania plików na serwer. HTTP obsługuje żądania i odpowiedzi między przeglądarką a serwerem, ale nie jest dedykowany do transferu plików na poziomie, który zapewnia FTP. Z kolei protokół SMTP (Simple Mail Transfer Protocol) jest używany do wysyłania wiadomości e-mail i również nie ma zastosowania w kontekście transferu plików na serwer. Wybierając odpowiedź, ważne jest zrozumienie, że każdy z tych protokołów ma swoje specyficzne zastosowanie i funkcjonalność. Często popełnianym błędem jest mylenie przeznaczenia poszczególnych protokołów, co prowadzi do nieprawidłowych wniosków. Aby udostępnić pliki na stronie internetowej, kluczowe jest zastosowanie odpowiedniego protokołu, który jest stworzony specjalnie do tego celu, w tym przypadku FTP.

Pytanie 36

W przedstawionym kodzie PHP, co powinno się wyświetlić zamiast znaków zapytania?

$x = mysql_query('SELECT * FROM mieszkancy');
if(!$x)
echo "???????????????????????";
A. Zapytanie zostało zrealizowane pomyślnie
B. Niepoprawna nazwa bazy danych
C. Nieprawidłowe hasło do bazy danych
D. Błąd w trakcie przetwarzania zapytania
W przypadku odpowiedzi Nieprawidłowe hasło do bazy danych taki komunikat pojawiłby się raczej na wcześniejszym etapie procesu nawiązywania połączenia z bazą danych a nie podczas przetwarzania samego zapytania SQL Błąd związany z hasłem jest związany z funkcją mysql_connect a nie z mysql_query co wskazuje na niepoprawne zrozumienie sekwencji działań w PHP Podobnie odpowiedź Nieprawidłowa nazwa bazy danych sugeruje problem na etapie nawiązywania połączenia z bazą danych zanim jakiekolwiek zapytanie zostanie wykonane Takie błędy zwykle wynikają z podania niepoprawnych parametrów w funkcji łączącej z bazą danych a nie podczas wykonywania zapytania Dodatkowo wybór tej odpowiedzi wskazuje na brak zrozumienia jak działa mechanizm wyboru bazy danych w PHP Odpowiedź Zapytanie przetworzono pomyślnie jest logicznie błędna w kontekście użycia bloku if(!x) który wyraźnie wskazuje na reakcję na niepowodzenie zadania więc nie może być wybrana jako prawidłowa w sytuacji gdy oczekiwane jest wystąpienie błędu Takie błędy myślowe często wynikają z niezrozumienia struktury warunkowej w PHP oraz sposobu obsługi błędów Praktyczną wskazówką jest zawsze testowanie i logowanie komunikatów zwracanych przez funkcje PHP co jest zgodne z dobrymi praktykami programistycznymi i pozwala unikać takich pomyłek

Pytanie 37

Zgodnie z zasadami walidacji HTML5, prawidłowy zapis tagu hr to

A. <hr>
B. </ hr>
C. </hr?>
D. </ hr />
Znak <hr> jest poprawnym zapisem znacznika poziomej linii w HTML5. Zgodnie z definicją, <hr> jest elementem samodzielnym, co oznacza, że nie wymaga znacznika zamykającego. Jest to zgodne z zasadami HTML5, które wprowadziły uproszczoną składnię dla wielu elementów. W praktyce <hr> jest używany do wizualnego oddzielania sekcji w dokumencie HTML, co poprawia czytelność i estetykę strony. Na przykład, w artykule internetowym można zastosować <hr> między różnymi sekcjami, aby wskazać zmianę tematu lub podział pomiędzy wprowadzeniem a treścią główną. Zgodność z tym standardem nie tylko ułatwia pracę z kodem, ale również zapewnia lepszą kompatybilność z przeglądarkami i narzędziami dostępu. Warto także zwrócić uwagę, że dobrym zwyczajem jest dodawanie atrybutów klasy lub identyfikatora do tego znacznika w celu dalszej personalizacji stylów CSS, co zwiększa elastyczność w projektowaniu graficznym strony.

Pytanie 38

Wskaż polecenie SQL, które dodaje kolumnę miesiacSiewu do już istniejącej tabeli rośliny

A. UPDATE rosliny ADD miesiacSiewu int
B. INSERT INTO rosliny Values (miesiacSiewu int)
C. CREATE TABLE rosliny {miesiacSiewu int}
D. ALTER TABLE rosliny ADD miesiacSiewu int
Polecenie SQL 'ALTER TABLE rosliny ADD miesiacSiewu int;' to całkiem sensowny sposób na dodanie nowej kolumny do tabeli w bazie danych. Gdy chcemy coś zmieniać w tabeli, to 'ALTER TABLE' jest tym, czego szukamy, bo pozwala nam modyfikować tabelę bez jej usuwania. Dodając kolumnę 'miesiacSiewu', przechowamy dane typu całkowitego (int), co idealnie pasuje do wartości miesięcy. Dzięki temu poleceniu możemy łatwo dostosować strukturę bazy do potrzeb aplikacji. Po jego wykonaniu, w każdej chwili można już wrzucać dane do nowej kolumny. To by się na pewno przydało przy analizie danych dotyczących upraw. W SQL to w sumie standard, więc działa w większości systemów jak MySQL czy PostgreSQL.

Pytanie 39

Aby przywrócić bazę danych MS SQL z archiwum, należy użyć polecenia

A. REBACKUP DATABASE
B. SAVE DATABASE
C. DBCC CHECKDB
D. RESTORE DATABASE
Aby przywrócić bazę danych w systemie MS SQL Server z kopii bezpieczeństwa, wykorzystuje się polecenie RESTORE DATABASE. To polecenie umożliwia odtworzenie całej bazy danych ze wskazanej kopii zapasowej. Proces ten jest kluczowy w sytuacjach awaryjnych, takich jak usunięcie danych, awaria sprzętu czy uszkodzenie bazy danych. W kontekście standardów Microsoft, RESTORE DATABASE jest integralną częścią zarządzania danymi i bezpieczeństwa. Przykładowe zastosowanie polecenia obejmuje: RESTORE DATABASE [nazwa_bazy] FROM DISK = 'ścieżka_do_pliku.bak', gdzie 'ścieżka_do_pliku.bak' wskazuje na lokalizację pliku z kopią zapasową. Dodatkowo, można użyć opcji WITH RECOVERY, aby przywrócić bazę do stanu operacyjnego, lub WITH NORECOVERY, aby umożliwić dalsze operacje przywracania. Warto zaznaczyć, że przed przywróceniem bazy danych ważne jest odpowiednie przygotowanie środowiska oraz sprawdzenie integralności kopii zapasowej, co można osiągnąć za pomocą narzędzi takich jak DBCC CHECKDB. Zastosowanie polecenia RESTORE DATABASE jest niezbędne w codziennym zarządzaniu bazami danych, a jego znajomość jest kluczowa dla administratorów systemów baz danych.

Pytanie 40

Kwerenda ma za zadanie w tabeli artykuly ALTER TABLE artykuly MODIFY cena float;

A. usunąć kolumnę cena typu float
B. dodać kolumnę cena o typie float, jeśli nie istnieje
C. zmienić nazwę kolumny z cena na float
D. zmienić typ na float dla kolumny cena
Odpowiedzi, które sugerują usunięcie kolumny 'cena', zmiana jej nazwy albo dodanie nowej kolumny, nie są zgodne z rzeczywistym działaniem polecenia ALTER TABLE w kontekście przedstawionym w pytaniu. Usunięcie kolumny jest operacją destrukcyjną, która prowadzi do utraty wszystkich danych w tej kolumnie, co z reguły nie jest celem operacji zmiany typu danych. Zmiana nazwy kolumny na typ float również jest niewłaściwa, ponieważ typ danych nie powinien być nazwą kolumny; kolumny mają nazwy, a polecenie ALTER TABLE nie zmienia ich nazw na typy danych. Dodanie nowej kolumny 'cena' o typie float, jeśli nie istnieje, jest z kolei inną operacją, która nie odnosi się do modyfikacji istniejącej kolumny, a zamiast tego tworzy nową kolumnę, co jest całkowicie innym zamysłem. Kluczowe błędy myślowe w tych odpowiedziach wynikają z nieporozumienia dotyczącego podstawowego działania kwerend SQL i różnicy między modyfikacją a usuwaniem czy dodawaniem kolumn. W praktyce, przede wszystkim należy rozumieć, że ALTER TABLE jest używane do zmiany struktury tabeli, a nie do jej usuwania czy dodawania zbędnych elementów.