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: 10 kwietnia 2026 17:51
  • Data zakończenia: 10 kwietnia 2026 18:11

Egzamin zdany!

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

Kiedy należy wykorzystać kwerendę SELECT DISTINCT, aby wyodrębnić rekordy?

A. tak, aby w podanej kolumnie nie powtarzały się wartości.
B. występujące w bazie tylko raz.
C. posortowane malejąco lub rosnąco.
D. pogrupowane.
Zastosowanie kwerendy SELECT DISTINCT ma na celu eliminację duplikatów w wynikach zapytania, co nie odnosi się do sytuacji związanych z grupowaniem danych, ich sortowaniem czy innymi operacjami. Odpowiedzi sugerujące, że SELECT DISTINCT powinno być używane do grupowania czy sortowania danych, bazują na mylnych założeniach dotyczących jego funkcji. Grupa danych uzyskiwana za pomocą klauzuli GROUP BY ma na celu agregację informacji, co jest zupełnie inną operacją niż uzyskiwanie unikalnych wartości. Z kolei sortowanie danych malejąco lub rosnąco za pomocą klauzuli ORDER BY również nie ma związku z eliminacją duplikatów. Klauzula DISTINCT działa na poziomie wyników zapytania, podczas gdy grupowanie i sortowanie są procesami, które mogą być używane w różnych kontekstach. Typowym błędem jest mylenie DISTINCT z innymi operacjami manipulacji danymi, co prowadzi do nieporozumień w tworzeniu zapytań oraz ich interpretacji. Ważne jest, aby zrozumieć, że DISTINCT służy wyłącznie do uzyskiwania unikalnych rezultatów, podczas gdy inne operacje mają odmienne cele, takie jak agregacja lub porządkowanie wyników. Zrozumienie tych różnic jest kluczowe dla efektywnego korzystania z SQL i pracy z bazami danych.

Pytanie 2

W CSS wartości: underline, overline, line-through oraz blink odnoszą się do właściwości

A. font-decoration
B. font-style
C. text-decoration
D. text-align
W języku CSS właściwość text-decoration służy do definiowania stylów dekoracji tekstu. Wartości takie jak underline (podkreślenie), overline (nadkreślenie), line-through (przekreślenie) oraz blink (miganie) są częścią tej właściwości i umożliwiają programistom kontrolowanie, jak tekst jest prezentowany na stronie internetowej. Wartość underline, na przykład, jest powszechnie używana w linkach, aby wskazać, że są one klikalne. Przykład zastosowania: 'text-decoration: underline;' zastosowany w stylach CSS dla elementu <a> sprawia, że tekst linku jest podkreślony. Overline może być używane do dodawania linii nad tekstem, co może być przydatne w kontekście nagłówków lub wyróżnień. Wartość line-through jest często stosowana w przypadku prezentowania informacji o promocjach, gdzie oryginalna cena jest przekreślona. Wartość blink, choć nie jest już szeroko wspierana, mogła być używana w przeszłości do tworzenia efektu migania tekstu. Wszystkie te dekoracje są zdefiniowane w standardzie CSS, co czyni text-decoration kluczową właściwością w stylizacji tekstu w dokumentach HTML.

Pytanie 3

Kolor zdefiniowany kodem RGB o wartości rgb(128, 16, 8) w formacie szesnastkowym przyjmuje wartość

A. #FF0F80
B. #800F80
C. #801008
D. #FF1008
Odpowiedzi takie jak #FF1008, #800F80 i #FF0F80 są wynikiem błędnych konwersji wartości RGB do formatu szesnastkowego. Gdybyśmy przyjrzeli się pierwszej z tych odpowiedzi, widzimy, że wartość 'FF' oznacza 255 w systemie dziesiętnym, co nie odpowiada wartości 128 w kanale czerwonym tego koloru. Zastosowanie 'FF' w tym kontekście prowadzi do znacznego przeszacowania intensywności koloru czerwonego. Przechodząc do drugiej odpowiedzi, #800F80, wartość '0F' odpowiada 15, co również nie jest zgodne z pierwotną wartością 16 w kanale zielonym. To wskazuje na niedoszacowanie intensywności zielonej, co wpływa na percepcję koloru. Ostatnia odpowiedź, #FF0F80, znowu używa 'FF' w kanale czerwonym, co prowadzi do podobnych błędów jak w pierwszym przypadku. Kluczowym błędem, który można zidentyfikować w tych odpowiedziach, jest nieprawidłowe przeliczenie wartości RGB do formatu szesnastkowego, co jest powszechnym problemem dla osób, które nie są zaznajomione z konwersją systemów liczbowych. W praktyce, aby uniknąć takich pomyłek, warto korzystać z narzędzi online lub specjalistycznego oprogramowania, które automatycznie wykonuje te konwersje, co pozwala na zaoszczędzenie czasu i zminimalizowanie ryzyka błędów.

Pytanie 4

Jeżeli założymy, że zmienne: a, b, c mają wartości liczbowe, wynikiem spełnienia warunku będzie wyświetlenie liczby

if ($a > $b && $a > $c)
echo $a;
else if ($b > $c)
echo $b;
else
echo $c;
A. najmniejszej
B. parzystej
C. największej
D. nieparzystej
Prawidłowa odpowiedź, czyli największa liczba jest wynikiem analizy warunku, który sprawdza wartość zmiennych a, b i c. Wykorzystujemy tutaj strukturę warunkową if-else, co jest standardową techniką w wielu językach programowania, takich jak PHP czy JavaScript. Przy pierwszej linijce kodu if ($a > $b && $a > $c) echo $a sprawdzamy, czy a jest większe od b i jednocześnie większe od c. Jeśli warunek jest spełniony, wypisujemy wartość a, co oznacza, że a jest największa. Jest to zgodne z dobrą praktyką algorytmiczną, gdzie przy porównywaniu trzech wartości dokładne warunki logiczne pomagają w ustaleniu największej z nich. Struktura ta jest wydajna i łatwa do zrozumienia. Praktycznym zastosowaniem może być np. system oceniania, gdzie na podstawie kilku wyników wybieramy ten najwyższy do dalszej analizy. Prawidłowe rozpoznawanie i implementowanie takich warunków jest kluczowe w codziennej pracy programisty, który musi regularnie wybierać największe wartości do różnych zastosowań biznesowych.

Pytanie 5

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
Zakładając, że użytkownik wcześniej nie posiadał żadnych uprawnień, to polecenie SQL przyzna użytkownikowi anna prawa jedynie do:
A. wybierania, wstawiania oraz aktualizacji danych tabeli o nazwie klienci
B. wybierania, dodawania rekordów oraz modyfikacji struktury tabeli o nazwie klienci
C. wybierania, wstawiania oraz aktualizacji danych wszystkich tabel w bazie o nazwie klienci
D. wybierania, dodawania rekordów oraz zmiany struktury wszystkich tabel w bazie o nazwie klienci
Odpowiedź jest prawidłowa, ponieważ polecenie SQL 'GRANT SELECT, INSERT, UPDATE ON klienci TO anna;' przyznaje użytkownikowi 'anna' określone prawa do tabeli o nazwie 'klienci'. Prawa te obejmują możliwość wybierania, wstawiania oraz aktualizacji danych w tej tabeli, co jest zgodne z zasadami zarządzania uprawnieniami w systemach baz danych. W praktyce oznacza to, że użytkownik 'anna' będzie mógł wykonywać zapytania SELECT, co pozwoli mu na odczyt danych, a także wstawiać nowe rekordy (INSERT) oraz modyfikować istniejące (UPDATE). To jest standardowa praktyka w zarządzaniu dostępem do danych, która pozwala na precyzyjne kontrolowanie, jakie operacje mogą być wykonywane przez poszczególnych użytkowników. Dobrą praktyką jest ograniczenie uprawnień do minimum, które użytkownik potrzebuje do wykonania swoich zadań, co jest zgodne z zasadą najmniejszych uprawnień. Na przykład, jeżeli 'anna' jest odpowiedzialna tylko za wstawianie nowych klientów, to przyznawanie jej uprawnień do aktualizacji danych może nie być konieczne. W teorii i praktyce bazy danych, rozróżnienie pomiędzy różnymi rodzajami uprawnień jest kluczowe dla bezpieczeństwa i integralności danych.

Pytanie 6

W aplikacji webowej komunikat powinien być wyświetlany jedynie wtedy, gdy użytkownik odwiedza stronę po raz pierwszy. Jakiej funkcji PHP należy użyć w tym przypadku?

A. define
B. mysqli_change_user
C. setcookie
D. session_destroy
Funkcja setcookie w PHP jest wykorzystywana do ustawiania ciasteczek w przeglądarkach użytkowników. Ciasteczka te mogą przechowywać różne informacje, co umożliwia personalizację doświadczeń użytkownika na stronie internetowej. W kontekście opisanego zagadnienia, można zastosować setcookie do zdefiniowania ciasteczka, które będzie informować, że dany użytkownik odwiedza stronę po raz pierwszy. Przykładowe zastosowanie może wyglądać tak: jeśli na stronie nie ma określonego ciasteczka (np. 'first_visit'), można wyświetlić komunikat powitalny i wówczas ustawić ciasteczko z odpowiednim czasem ważności, co pozwala na ukrycie tego komunikatu przy kolejnych wizytach. Użycie tej funkcji jest zgodne z najlepszymi praktykami w zakresie zarządzania sesjami użytkowników, ponieważ pozwala na zachowanie stanu użytkownika w sposób prosty i efektywny. Dodatkowo, dzięki ciasteczkom, można analizować zachowanie użytkowników, co pozwala na dalsze optymalizowanie doświadczeń na stronie.

Pytanie 7

Przy konwersji obrazu o 8 bitowej głębi kolorów na 4 bitową, liczba dostępnych kolorów zmniejszy się o

A. 24
B. 256
C. 16
D. 240
Wszystkie odpowiedzi, które nie są poprawne, wynikają z nieprawidłowych obliczeń związanych z ilością dostępnych kolorów w różnych głębokościach bitowych. W przypadku odpowiedzi wskazujących na 16, 24 i 256 kolorów, każda z tych wartości nie odzwierciedla rzeczywistych możliwości kolorystycznych wynikających z konwersji. 16 kolorów to dokładna liczba dostępna w 4-bitowym formacie, ale nie jest to wartość, o którą zmniejsza się liczba kolorów, a to właśnie ona jest końcową liczbą kolorów w 4-bitowym obrazie. 24 kolory nie mają sensu w kontekście 8-bitowego obrazu, ponieważ 24 kolory sugerowałyby, że redukujemy z 8-bitowego obrazu do jeszcze niższego poziomu, co jest niepoprawne. Mówiąc o 256 kolorach, to liczba ta odnosi się do początkowej ilości kolorów w obrazie 8-bitowym, a nie do liczby kolorów, które zostają po konwersji. Dla pełnego zrozumienia, warto zaznaczyć, że każdy poziom głębi kolorów w obrazach rastrowych określa liczbę kolorów, które mogą być wyświetlane i przetwarzane, a konwersja pomiędzy nimi wymaga precyzyjnych obliczeń, które uwzględniają te wartości.

Pytanie 8

Według którego parametru oraz dla ilu tabel zostaną zwrócone wiersze na liście w wyniku przedstawionego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis WHERE
  producent.nr_id = hurtownia.nr_id AND
  producent.wyrob_id = serwis.wyrob_id AND
  hurtownia.nr_id = sklep.nr_id AND
  sklep.nr_id = serwis.nr_id AND
  producent.nr_id = 1;
A. Według parametru wyrób id dla wszystkich tabel.
B. Według parametru nr id dla wszystkich tabel.
C. Według parametru wyrób Jd wyłącznie dla trzech tabel.
D. Według parametru nr id wyłącznie dla trzech tabel.
Brawo! Wybrałeś poprawną odpowiedź, zgodnie z którą parametrem nr id zwraca wiersze dla wszystkich tabel. To zapytanie SQL odnosi się do czterech tabel: producent, hurtownia, sklep i serwis. Zwraca ono wiersze, gdzie wartość kolumny nr_id jest taka sama we wszystkich tych tabelach i równa 1. Dodatkowo, jakość danych jest wspierana przez fakt, że zapytanie sprawdza zgodność wartości kolumny wyrob_id między tabelami producent i serwis. Zrozumienie tego, jak działa to zapytanie i dlaczego to jest ważne, jest kluczowe w praktyce programistycznej. Zapewnia to, że możemy skutecznie i efektywnie manipulować danymi, a także zrozumieć, jak nasze zapytania wpływają na wyniki, które otrzymujemy. Dobra praktyka jest zawsze zrozumienie, jakie dane są zwracane przez nasze zapytanie, zanim zaczniemy z nich korzystać w naszym kodzie. Ostatecznie, zrozumienie, jak korzystać z zapytań SQL do manipulacji i odzyskiwania danych, jest kluczowym elementem dowolnej roli programistycznej.

Pytanie 9

Aby wykonać kopię zapasową bazy danych w MySQL, jakie polecenie należy zastosować?

A. mysqlcheck
B. mysqlreplicate
C. mysqldump
D. mysqlslap
Polecenie mysqldump jest standardowym narzędziem w systemie MySQL, które służy do tworzenia kopii zapasowych baz danych. Umożliwia on eksportowanie danych oraz struktury wszystkich tabel w postaci pliku tekstowego, co sprawia, że jest niezwykle przydatny przy przeprowadzaniu migracji, aktualizacji lub przywracania danych. Przykładowe użycie mysqldump może wyglądać następująco: 'mysqldump -u użytkownik -p nazwa_bazy_danych > kopia_zapasowa.sql', co tworzy plik o nazwie 'kopia_zapasowa.sql' zawierający wszystkie dane i strukturę wskazanej bazy. Dobrą praktyką jest regularne tworzenie kopii zapasowych, szczególnie przed wprowadzeniem istotnych zmian w schemacie bazy danych lub podczas aktualizacji systemu. Ponadto, mysqldump umożliwia także eksportowanie danych w formacie CSV, co ułatwia ich dalszą analizę lub przeniesienie do innych systemów. Warto także pamiętać, że polecenie to oferuje różnorodne opcje, takie jak --single-transaction, które zapewniają spójność danych podczas tworzenia kopii zapasowej w bazach danych o dużym ruchu.

Pytanie 10

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

<?php
for($x = 1; $x <= 55; $x++)
{
  if($x % 2 != 0) continue;
  echo $x . " ";
}
?>
A. for($x = 1; $x <= 55; $x++) {echo $x." ";}
B. for($x = 2; $x <= 54; $x += 2) {echo $x." ";}
C. for($x = 2; $x <= 56; $x += 2) {echo $x." ";}
D. for($x = 1; $x <= 55; $x += 1) {echo $x." ";}
Niestety, wybrałeś błędną odpowiedź. Wszystkie opcje oprócz odpowiedzi A nie są alternatywą dla kodu zawartego w ramce. Cechą wspólną dla niepoprawnych odpowiedzi jest fakt, że nie uwzględniają one aspektu parzystości liczb, na którym operują. Kod w ramce pomija liczby parzyste za pomocą instrukcji 'continue', która jest wywoływana, gdy reszta z dzielenia przez 2 jest równa 0. W odpowiedzi A, pętla jest zaprojektowana tak, że wykonuje operacje tylko na liczbach parzystych (zaczyna od 2 i zwiększa wartość o 2 za każdą iterację). Błędne odpowiedzi nie uwzględniają takiego podziału na liczby parzyste i nieparzyste, co jest kluczowym aspektem funkcjonowania kodu w ramce. Pamiętaj, że podczas analizy kodu, zwracaj uwagę na wszystkie jego aspekty, takie jak warunki, instrukcje sterujące czy operacje wykonywane na danych.

Pytanie 11

Wskaż zapis stylu CSS formatujący punktor list numerowanych na wielkie cyfry rzymskie, a list punktowanych na kwadraty.

A. ol { list-style-type: upper-alpha; }
   ul { list-style-type: disc; }

B. ol { list-style-type: square; }
   ul { list-style-type: upper-roman; }

C. ol { list-style-type: disc; }
   ul { list-style-type: upper-alpha; }

D. ol { list-style-type: upper-roman; }
   ul { list-style-type: square; }
A. D.
B. A.
C. C.
D. B.
Gratulacje, twoja odpowiedź jest poprawna! Wybór opcji D. odnosi się do poprawnego formatowania list w CSS. Odpowiedź pokazuje dobrą znajomość właściwości list-style-type, która jest kluczowa do formatowania typów list. W tym przypadku, dla listy numerowanej (ol), jest ustawiona wartość upper-roman, która reprezentuje wielkie cyfry rzymskie. Dla listy punktowanej (ul) ustawiamy wartość square, co daje efekt punktów w formie kwadratów. To właśnie takie formatowanie list jest preferowane w branży ze względu na jego estetykę i czytelność. Pamiętaj, że zrozumienie i umiejętność manipulacji różnymi właściwościami CSS jest kluczem do tworzenia atrakcyjnych i funkcjonalnych stron internetowych.

Pytanie 12

Warunek zapisany w języku PHP wyświetli liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest to liczba dodatnia
B. jest to liczba pierwsza
C. wynik dzielenia danej liczby przez 2 jest równy 0
D. jest to liczba parzysta
Analizując inne odpowiedzi należy zauważyć że dzielenie liczby przez 2 i uzyskiwanie wyniku 0 odnosi się do całkowitego ilorazu a nie reszty co jest fundamentalnym błędem w interpretacji operatora modulo. Przykładowo liczba 0 po podzieleniu przez 2 daje iloraz 0 ale to nie jest tym czego dotyczy operator % który ocenia resztę. Z kolei liczba pierwsza nie jest związana z dzieleniem przez 2 i nie musi być parzysta. Liczby pierwsze to liczby większe od 1 które dzielą się tylko przez 1 i siebie samą co wyklucza możliwość posługiwania się wyrażeniem modulo 2 do ich identyfikacji. Dodatkowo bycie liczbą dodatnią nie jest w żaden sposób związane z dzieleniem przez 2 ani z właściwościami operatora modulo. Liczby dodatnie mogą być zarówno parzyste jak i nieparzyste dlatego użycie warunku modulo w kontekście określania czy liczba jest dodatnia jest błędne. Te błędne interpretacje często wynikają z nieznajomości specyfiki działania operatorów arytmetycznych w PHP co jest kluczowe dla unikania logicznych błędów w kodzie.

Pytanie 13

Aby dodać nowy rekord do tabeli Pracownicy, konieczne jest zastosowanie polecenia SQL

A. INSERT INTO Pracownicy VALUES ('Jan',' Kowalski')
B. INSERT VALUES (Jan, Kowalski) INTO Pracownicy
C. INSERT VALUES Pracownicy INTO (Jan, Kowalski)
D. INSERT (Jan, Kowalski) INTO Pracownicy
Aby dodać nowy rekord do tabeli Pracownicy w bazie danych, należy skorzystać z polecenia SQL INSERT INTO, które jest standardowym sposobem na wprowadzenie nowych danych do tabeli. Poprawna składnia polecenia to 'INSERT INTO <nazwa_tabeli> VALUES (<wartości>)'. W przypadku podanego przykładu, używamy 'INSERT INTO Pracownicy VALUES ('Jan', 'Kowalski');', co jest zgodne z wymaganiami SQL. Polecenie to wprowadza dwa nowe atrybuty: imię 'Jan' oraz nazwisko 'Kowalski' do tabeli Pracownicy. Ważne jest, aby wartości były poprawnie otoczone apostrofami w przypadku typów danych tekstowych. Zgodnie z normami SQL, zapis ten pozwala na dodanie rekordu, pod warunkiem, że kolumny tabeli są zgodne z wprowadzanymi danymi, a tabela Pracownicy została wcześniej zdefiniowana w bazie danych. Przykładem może być sytuacja, w której tabela Pracownicy ma kolumny 'Imie' i 'Nazwisko', a wprowadzenie wartości bezpośrednio do tych kolumn jest zgodne z ich definicją.

Pytanie 14

W systemie baz danych sklepu komputerowego znajduje się tabela o nazwie komputery. Aby stworzyć raport, który wyświetla dane z tabeli dla komputerów z co najmniej 8 GB pamięci oraz procesorem Intel, można użyć kwerendy

A. SELECT * FROM komputery WHERE procesor = "Intel" AND pamiec < 8
B. SELECT * FROM komputery WHERE procesor = "Intel" OR pamiec < 8
C. SELECT * FROM komputery WHERE procesor = "Intel" OR pamiec >= 8
D. SELECT * FROM komputery WHERE procesor = "Intel" AND pamiec >= 8
Odpowiedź "SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec >= 8;" jest poprawna, ponieważ wykorzystuje operator AND do jednoczesnego spełnienia dwóch warunków: procesor musi być równy 'Intel', a pamięć musi wynosić co najmniej 8 GB. Taki zapis jest zgodny z najlepszymi praktykami w programowaniu zapytań SQL, którymi są m.in. precyzyjność oraz jednoznaczność. Dzięki użyciu operatora AND, zapytanie filtruje wyniki w sposób, który jest zgodny z wymaganiami użytkownika. W praktyce, takie kwerendy są niezwykle ważne dla analizy danych w bazach danych, ponieważ umożliwiają wyodrębnienie specyficznych informacji, które są krytyczne dla podejmowania decyzji biznesowych. Na przykład, w kontekście sklepu komputerowego, analiza komputerów z określonymi parametrami technicznymi może pomóc w lepszym dostosowaniu oferty do potrzeb klientów. Ponadto, rozumienie składni SQL oraz umiejętność formułowania efektywnych zapytań to kluczowa umiejętność dla specjalistów w dziedzinie zarządzania danymi.

Pytanie 15

Określ złożoność obliczeniową algorytmu prostego (standardowego) wyszukiwania najmniejszej wartości w zestawie liczb?

A. O(n2 )
B. O(n!)
C. O(n3 )
D. O(n)
Algorytm naiwnego wyszukiwania minimum jest dość prosty, bo jego złożoność obliczeniowa to O(n). To znaczy, że im więcej mamy elementów w zbiorze, tym dłużej trwa jego działanie, ale w prosty sposób, czyli liniowo. W praktyce algorytm przeszukuje każdy element, porównując go z innymi, co jest dosyć klasyczne i używane w wielu podstawowych programach. Na przykład, gdy programujemy w Pythonie, możemy użyć pętli do przejścia przez listę, co sprawia, że łatwo to zrozumieć. W branży programistycznej często mówimy o tym w kontekście analizy złożoności obliczeniowej, co czyni go naprawdę istotnym tematem dla każdego programisty. Moim zdaniem, zrozumienie O(n) jest kluczowe, gdy chcemy optymalizować nasz kod i oceniać, jak nasze algorytmy radzą sobie z większymi zbiorami danych. To chyba jeden z podstawowych tematów w inżynierii oprogramowania i analizie danych.

Pytanie 16

Jak wygląda instrukcja przypisania wartości do elementu tablicy w języku JavaScript względem tablicy? ```Tablica['technik'] = 'informatyk';```

A. statycznej
B. wielowymiarowej
C. asocjacyjnej
D. numerycznej
Wszystkie inne odpowiedzi są błędne z kilku kluczowych powodów. Statyczna tablica oznaczałaby, że jej rozmiar i elementy są ustalone podczas kompilacji i nie mogą być zmieniane w trakcie działania programu. W JavaScript tablice są dynamiczne, co w pełni przeczy koncepcji statyczności, ponieważ można dodawać, usuwać lub modyfikować elementy w trakcie działania programu. Numeryczne tablice w JavaScript odnoszą się do tablic, które są indeksowane przy użyciu liczb całkowitych. Choć tablice w JavaScript mają domyślnie numeryczną indeksację, w podanym przykładzie użycie stringa jako indeksu wskazuje na typ obiektu asocjacyjnego, a nie numerycznego. Wielowymiarowa tablica to pojęcie, które odnosi się do tablic zawierających inne tablice jako elementy, tworząc struktury o wielu wymiarach. Przykład 'Tablica[\'technik\'] = \'informatyk\';' nie tworzy wielowymiarowej tablicy, lecz jedynie dodaje nowy klucz do obiektu, a nie nową tablicę jako element. Reasumując, żadna z tych odpowiedzi nie zgadza się z właściwym zastosowaniem tablicy jako obiektu asocjacyjnego w JavaScript, co jest kluczem do zrozumienia elastyczności tego języka.

Pytanie 17

Można wydać instrukcję transakcyjną ROLLBACK, aby

A. zatwierdzić transakcję
B. cofnąć działanie transakcji
C. cofnąć transakcję po zastosowaniu instrukcji COMMIT
D. zatwierdzić jedynie wybrane modyfikacje transakcji
Odpowiedź 2 jest poprawna, ponieważ instrukcja ROLLBACK jest używana w systemach zarządzania bazami danych, aby cofnąć wszystkie zmiany wprowadzone w bieżącej transakcji. ROLLBACK przywraca stan bazy danych do momentu sprzed rozpoczęcia transakcji, co jest niezwykle istotne w kontekście zapewnienia integralności danych. W sytuacjach, gdy transakcja kończy się błędem lub występują nieprzewidziane okoliczności, ROLLBACK umożliwia usunięcie wszystkich niepoprawnych lub niekompletnych operacji. Na przykład, podczas aktualizacji danych w bazie, jeśli część operacji zakończy się niepowodzeniem, a część nie, zastosowanie ROLLBACK pozwala na ochronę danych przed niespójnym stanem. W praktyce, ROLLBACK powinien być stosowany w ramach transakcji, co jest zgodne z zasadami ACID (Atomicity, Consistency, Isolation, Durability), które są kluczowe dla bezpieczeństwa i spójności operacji w bazach danych. Dobrą praktyką jest również testowanie scenariuszy, w których mogą wystąpić błędy, aby upewnić się, że ROLLBACK działa poprawnie w sytuacjach awaryjnych, co może pomóc w ochronie przed utratą danych oraz w utrzymaniu zaufania użytkowników względem systemu.

Pytanie 18

Zakładając, że użytkownik nie miał wcześniej żadnych uprawnień, polecenie SQL przyzna użytkownikowi anna jedynie uprawnienia do

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
A. wybierania, wstawiania oraz aktualizacji danych tabeli o nazwie klienci
B. wybierania, dodawania pól oraz modyfikacji struktury wszystkich tabel w bazie o nazwie klienci
C. wybierania, wstawiania oraz modyfikacji danych w wszystkich tabelach w bazie o nazwie klienci
D. wybierania, dodawania pól oraz modyfikacji struktury tabeli o nazwie klienci
Jak się przyjrzysz innym odpowiedziom, to zauważysz, że mają trochę błędnych założeń. Pierwsza odpowiedź mówi o nadawaniu praw do wszystkich tabel w bazie klienci, co jest błędne, bo polecenie SQL mówi tylko o jednej tabeli - klienci. Nie ma tu mowy o całej bazie, więc ta odpowiedź jest do bani. Druga opcja, która dotyczy dodawania pól i zmiany struktury tabeli, też jest złudna. Te operacje wymagają użycia zmiany komendy ALTER, a nie GRANT, bo GRANT to tylko nadawanie praw do już istniejących danych. Czwarta odpowiedź myli się sugerując, że można zmieniać strukturę wszystkich tabel, co w ogóle nie jest tym, co robi GRANT. Często pojawia się ten błąd, że jedna komenda SQL może mieć szerokie zastosowanie, a tak naprawdę każda z nich ma swoją specyfikę i ograniczenia w działaniach. Rozumienie tego jest kluczem do efektywnego zarządzania uprawnieniami w bazach danych. Warto być czujnym, bo źle nadane uprawnienia mogą zaszkodzić bezpieczeństwu i integralności danych.

Pytanie 19

Jaką złożoność obliczeniową mają problemy związane z przeprowadzaniem operacji na łańcuchach lub tablicach w przypadku dwóch zagnieżdżonych pętli przetwarzających wszystkie elementy?

A. O(n)
B. O(n!)
C. O(log n)
D. O(n2)
Odpowiedź O(n²) jest jak najbardziej trafna. Wiesz, jak to działa? Gdy masz dwie zagnieżdżone pętle, które przetwarzają elementy w kolekcji, to liczba operacji rośnie kwadratowo w zależności od tego, ile tych elementów masz. Dla n elementów w tablicy, każda z tych n elementów wymaga n operacji w drugiej pętli, co daje razem n*n, czyli n². Przykłady? Algorytmy sortowania bąbelkowego czy przez wstawianie świetnie to ilustrują – obydwa działają w czasie O(n²). Pamiętaj, że jako programiści musimy zwracać uwagę na złożoność algorytmów, bo to wpływa na wydajność naszych aplikacji, szczególnie gdy mamy do czynienia z dużymi zbiorami danych. Dobrze jest próbować optymalizować złożoność, żeby nie wpaść w pułapki wydajnościowe. No i fakt, przy problemach, gdzie musimy porównywać wszystkie elementy, O(n²) to często jedyna opcja, która się sprawdza.

Pytanie 20

Zmienna zadeklarowana w C++ jako double x*; to

A. zmienna zmiennoprzecinkowa
B. wskaźnik
C. parametr formalny typu zmiennoprzecinkowego
D. zmienna typu całkowitego
Parametr formalny typu rzeczywistego nie ma zastosowania w kontekście 'double x*;', ponieważ nie jest to definicja dla parametru funkcji, lecz dla wskaźnika na zmienną typu double. Zmienna rzeczywista odnosi się do prostej deklaracji zmiennej, która przechowuje wartość typu double, jednak w tym przypadku mamy do czynienia z wskaźnikiem, a nie ze zmienną przechowującą wartość. Zmienna całkowita z kolei jest typem danych przechowującym liczby całkowite, a więc nie ma związku z typem double, który jest przeznaczony dla liczb zmiennoprzecinkowych. Wskaźniki są bardziej zaawansowanym konceptem w C++, pozwalającym na manipulacje adresami w pamięci oraz umożliwiającym dynamiczne alokacje pamięci. Użycie wskaźników jest kluczowe w przypadku struktur danych oraz programowania obiektowego, gdzie pozwalają one na efektywne przechowywanie i zarządzanie danymi. Zrozumienie różnic między różnymi typami danych w języku C++ oraz ich zastosowań jest niezbędne dla prawidłowego projektowania aplikacji i unikania błędów programistycznych.

Pytanie 21

Zaprezentowano poniżej obsługę

if (!isset($_COOKIE[$nazwa]))
  echo "nie ustawiono!";
else
  echo "ustawiono: " . $_COOKIE[$nazwa];
A. bazy danych
B. zmiennych tekstowych
C. sesji
D. ciasteczek
Obsługa ciasteczek jest kluczowym elementem w zarządzaniu stanem w aplikacjach webowych. Ciasteczka, czyli małe pliki tekstowe przechowywane w przeglądarce użytkownika, pozwalają na śledzenie aktywności użytkownika między stronami i sesjami. W kodzie powyżej widzimy użycie globalnej tablicy PHP $_COOKIE do sprawdzania, czy ciasteczko o określonej nazwie zostało ustawione. Funkcja isset() sprawdza, czy zmienna jest zdefiniowana i nie jest null. Jeśli ciasteczko istnieje, jego wartość jest wyświetlana. Ciasteczka są powszechnie używane do zarządzania sesjami, personalizacji treści czy śledzenia zachowań użytkowników. W praktyce, zabezpieczenia są ważnym aspektem zarządzania ciasteczkami. Powinny być szyfrowane i oznaczone jako HttpOnly oraz Secure, aby zminimalizować ryzyko kradzieży informacji przez ataki XSS. Programiści powinni także stosować polityki prywatności zgodnie z regulacjami RODO, informując użytkowników o użyciu ciasteczek. Zrozumienie tych mechanizmów jest fundamentalne dla budowy bezpiecznych i funkcjonalnych aplikacji webowych.

Pytanie 22

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

A. sumy.
B. części wspólnej.
C. grupowania.
D. wykluczenia.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 23

Zadaniem poniższego kodu napisanego w języku C++ jest wypisanie dla podanych dowolnych liczb całkowitych różnych od zera:

int main()
{
    int liczba;
    cin >> liczba;

    while (liczba != 0)
    {
        if ((liczba % 2) == 0)
            cout << liczba << endl;

        cin >> liczba;
    }
    return 0;
}
A. jedynie liczby parzyste
B. liczby pierwsze
C. wszystkie liczby
D. wyłącznie liczby nieparzyste
Prezentowany kod źródłowy w języku C++ jest zaprogramowany do wypisywania tylko liczb parzystych spośród wprowadzanych przez użytkownika liczb całkowitych różnych od zera. Kluczowym elementem jest tutaj operacja modulo (%), która oblicza resztę z dzielenia liczby przez 2. Dla liczb parzystych wynik tej operacji wynosi 0, co jest sprawdzane w warunku if. Kod używa pętli while, która pozwala na wprowadzanie i sprawdzanie wielu liczb w sposób iteracyjny, aż do momentu wprowadzenia zera, które kończy działanie programu. Zrozumienie tej struktury jest kluczowe w programowaniu i pozwala na efektywne filtrowanie danych. W praktyce taki mechanizm mógłby być użyty w systemach analizujących dane wejściowe pod kątem ich właściwości liczbowych. Podstawowe operacje na liczbach, takie jak modulo, są szeroko stosowane w algorytmach i strukturach danych, gdzie ważne jest klasyfikowanie czy filtrowanie elementów według zadanych kryteriów. Warto zwrócić uwagę na efektywność tego podejścia, które minimalizuje zbędne operacje poprzez bezpośrednie sprawdzanie warunku wewnątrz pętli.

Pytanie 24

Jakie wyniki zostaną wyświetlone po wykonaniu podanej w ramce kwerendy SQL SELECT na tabeli pracownicy, która zawiera rekordy?

idimienazwiskopensja
1AnnaKowalska3400
2MonikaNowak1300
3EwelinaNowakowska2600
4AnnaPrzybylska4600
5MariaKowal2200
6EwaNowacka5400
SELECT SUM(pensja) FROM pracownicy WHERE pensja > 4000;
A. Kwota 5400, co oznacza najwyższą pensję wśród pracowników
B. Kwota 19500, czyli suma wszystkich pensji zatrudnionych
C. Kwota 10000, co stanowi sumę pensji pracowników o id=4 i id=6
D. Dwie kwoty: 4600 oraz 5400, jako wynagrodzenia pracowników przekraczające 4000
W zapytaniu SQL użyto funkcji agregującej SUM, która służy do sumowania wartości w określonej kolumnie. Klauzula WHERE ogranicza zbiór rekordów do tych, które spełniają dany warunek. W tym przypadku, pensja musi być większa niż 4000. Analizując tabelę, znajdujemy dwie osoby z pensjami spełniającymi ten warunek: pracownik o id=4 z pensją 4600 oraz pracownik o id=6 z pensją 5400. SUM(4600 + 5400) daje 10000. Prawidłowe zrozumienie wykorzystania funkcji agregujących w SQL jest kluczowe w analizie danych i raportowaniu. Jest to standardowa praktyka w branży IT, gdzie analiza danych jest podstawą przy podejmowaniu decyzji biznesowych. Funkcje agregujące, takie jak SUM, AVG, MAX, są fundamentalnymi narzędziami analitycznymi w bazach danych. Przy pracy nad większymi zbiorami danych, takie zapytania pomagają szybko uzyskać podsumowania, co jest nieocenione w analizie finansowej czy tworzeniu raportów zarządczych.

Pytanie 25

W hurtowni utworzono tabelę sprzedaż, która zawiera pola: id, kontrahent, grupa_cenowa oraz obrot. Jakie polecenie należy wykorzystać, aby znaleźć tylko kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000 zł?

A. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa=2 AND obrot>4000
B. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 AND obrot>4000
C. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 OR obrot>4000
D. SELECT sprzedaz FROM kontrahent WHERE obrot>4000
Aby skutecznie wyszukać kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000 zł, należy zastosować odpowiednie zapytanie SQL. W tym przypadku, kluczowe jest zrozumienie użycia klauzul WHERE, które filtrują wyniki na podstawie określonych warunków. Poprawne zapytanie to 'SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 AND obrot>4000;'. W tym zapytaniu wybieramy kolumnę kontrahent z tabeli sprzedaz, filtrując wyniki na podstawie dwóch warunków: przynależności do drugiej grupy cenowej oraz obrotu większego niż 4000 zł. Operator AND jest istotny, ponieważ oba warunki muszą być spełnione, aby dany rekord został zwrócony. Takie podejście jest zgodne z zasadami normalizacji baz danych, co pozwala na zachowanie integralności danych i efektywność zapytań. Przykładem może być sytuacja, w której w tabeli znajdują się kontrahenci o różnych grupach cenowych i obrotach; zastosowanie powyższego zapytania pozwoli nam na wyselekcjonowanie tylko tych kontrahentów, którzy spełniają oba kryteria, co jest niezwykle przydatne w analizie sprzedaży i podejmowaniu decyzji biznesowych.

Pytanie 26

W systemie baz danych sklepu komputerowego znajduje się tabela o nazwie komputery. Aby stworzyć raport pokazujący dane z tabeli, obejmujący tylko komputery z co najmniej 8 GB pamięci oraz procesorem Intel, można wykorzystać kwerendę

A. SELECT * FROM komputery WHERE procesor = 'Intel' OR pamiec < 8
B. SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec < 8
C. SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec >= 8;
D. SELECT * FROM komputery WHERE procesor = 'Intel' OR pamiec >= 8;
Wybrana kwerenda SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec >= 8; jest prawidłowa, ponieważ precyzyjnie spełnia wymagania dotyczące filtracji danych w tabeli komputery. Użycie operatora AND jest kluczowe w tej sytuacji, ponieważ umożliwia jednoczesne sprawdzenie dwóch warunków: pierwszy warunek wymaga, aby procesor był równy 'Intel', a drugi, aby pamięć RAM była większa lub równa 8 GB. W rezultacie kwerenda zwróci tylko te rekordy, które spełniają oba kryteria, co jest zgodne z założeniem raportu. W praktyce, tego typu kwerendy są niezwykle ważne, szczególnie w kontekście analizy danych, gdzie precyzyjne określenie kryteriów jest kluczowe dla uzyskania wartościowych wyników. Dobre praktyki w tworzeniu zapytań SQL obejmują także wykorzystanie odpowiednich indeksów na kolumnach procesor i pamiec, co może znacznie zwiększyć wydajność zapytań, zwłaszcza w dużych zbiorach danych.

Pytanie 27

Instrukcja w języku SQL ```GRANT ALL PRIVILEGES ON klienci TO pracownik```

A. Przyznaje uprawnienia grupie klienci do tabeli pracownik
B. Odbiera wszystkie uprawnienia pracownikowi do tabeli klienci
C. Przyznaje wszystkie uprawnienia do tabeli klienci użytkownikowi pracownik
D. Przenosi uprawnienia z grupy klienci na użytkownika pracownik
Odpowiedź jest poprawna, ponieważ polecenie GRANT ALL PRIVILEGES ON klienci TO pracownik w języku SQL rzeczywiście nadaje wszystkie dostępne uprawnienia do tabeli klienci użytkownikowi pracownik. To oznacza, że pracownik zyskuje możliwość wykonywania wszelkich operacji na tej tabeli, w tym SELECT, INSERT, UPDATE oraz DELETE. Przykład zastosowania tego polecenia jest istotny w kontekście zarządzania bazami danych, gdzie administratorzy muszą przyznawać różnorodne uprawnienia użytkownikom w zależności od ich roli. Przykładowo, jeśli pracownik jest odpowiedzialny za wprowadzanie i aktualizację danych klientów, to nadanie mu wszystkich uprawnień jest uzasadnione. Ważne jest, aby przyznawać uprawnienia zgodnie z zasadą najmniejszych uprawnień, co oznacza, że użytkownik powinien mieć tylko te uprawnienia, które są niezbędne do realizacji jego zadań. W praktyce, administrator baz danych powinien monitorować przyznane uprawnienia i regularnie je przeglądać, aby zapewnić bezpieczeństwo systemu. Koszty błędów w przyznawaniu uprawnień mogą być znaczne, w tym ryzyko nieautoryzowanego dostępu do danych, dlatego kluczowe jest stosowanie dobrych praktyk w zarządzaniu uprawnieniami.

Pytanie 28

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

A. RESTORE DATABASE
B. DBCC CHECKDB
C. REBACKUP DATABASE
D. SAVE 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 29

Aby zwiększyć wydajność operacji w bazie danych, należy skupić się na polach, które są często wyszukiwane lub sortowane

A. utworzyć indeks
B. stworzyć oddzielną tabelę przechowującą wyłącznie te pola
C. dodać klucz obcy
D. dodać więzy integralności
Utworzenie indeksu w bazie danych jest kluczowym krokiem w optymalizacji operacji wyszukiwania i sortowania. Indeksy działają jak spis treści w książce, umożliwiając szybsze odnajdywanie danych bez konieczności przeszukiwania całej tabeli. Gdy zapytania często wykorzystują konkretne kolumny do filtracji lub sortowania, indeksowanie tych kolumn znacznie przyspiesza wydajność. Na przykład, jeśli często wyszukujesz klientów według ich nazwisk, utworzenie indeksu na kolumnie nazwiska pozwoli bazie danych szybko zlokalizować odpowiednie rekordy. Standardy branżowe, takie jak SQL Server czy MySQL, zalecają stosowanie indeksów zwłaszcza na dużych tabelach, gdzie operacje skanowania mogą być czasochłonne. Dobrą praktyką jest również monitorowanie wydajności i regularne dostosowywanie indeksów w zależności od zmieniających się wzorców zapytań. Należy jednak pamiętać, że nadmierna liczba indeksów może wpłynąć negatywnie na operacje zapisu, dlatego kluczowe jest znalezienie odpowiedniej równowagi.

Pytanie 30

Jaką kompetencję społeczną możemy przypisać osobie, która potrafi wyrażać swoje zdanie oraz argumentować swoje racje, nie naruszając przy tym granic własnych i innych ludzi?

A. Konformizm
B. Asertywność
C. Empatia
D. Akomodacja
Empatia, akomodacja i konformizm to pojęcia, które choć związane z interakcjami społecznymi, nie oddają istoty umiejętności wyrażania własnego zdania w sposób asertywny. Empatia, często mylona z asertywnością, odnosi się do zdolności do rozumienia uczuć i perspektyw innych ludzi. Osoba empatyczna może dostrzegać, co czują inni, ale niekoniecznie jest w stanie wyrażać swoje własne zdanie w sposób, który nie narusza ich przestrzeni. Akomodacja z kolei polega na dostosowywaniu się do potrzeb i oczekiwań innych, często kosztem własnych przekonań, co stoi w sprzeczności z asertywnym wyrażaniem siebie. Osoba stosująca akomodację może unikać konfliktów, lecz nie zyskuje na autentyczności ani nie rozwija umiejętności obrony własnych racji. Konformizm natomiast to tendencja do dostosowywania się do norm grupowych, co może prowadzić do rezygnacji z osobistych przekonań. Chociaż konformizm może pomagać w budowaniu relacji, często wymaga poświęcenia indywidualności, co jest niewłaściwe w kontekście asertywności. W praktyce, zbyt duży nacisk na empatię, akomodację czy konformizm może prowadzić do problemów komunikacyjnych i utraty osobistej tożsamości, co nie jest zgodne z ideą asertywnego wyrażania swoich poglądów.

Pytanie 31

W języku SQL polecenie INSERT INTO

A. dodaje tabelę.
B. dodaje pola do tabeli.
C. wprowadza dane do tabeli.
D. aktualizuje rekordy określoną wartością.
Polecenie INSERT INTO w SQL służy dokładnie do tego, co wskazuje poprawna odpowiedź: do wprowadzania danych do istniejącej tabeli. W praktyce oznacza to dodanie nowego wiersza (rekordu) do tabeli, która ma już zdefiniowaną strukturę: kolumny, typy danych, klucze itp. Najprostszy przykład w standardowym SQL wygląda tak: INSERT INTO klienci (imie, nazwisko, email) VALUES ('Jan', 'Kowalski', '[email protected]'); Tutaj tabela klienci już istnieje, a polecenie tylko dopisuje nowy rekord. Moim zdaniem warto zapamiętać, że INSERT pracuje na danych, a nie na strukturze tabeli. Do tworzenia tabel służy CREATE TABLE, do zmiany struktury ALTER TABLE, a do modyfikacji istniejących rekordów UPDATE. W codziennej pracy z bazami danych INSERT INTO jest jednym z absolutnie podstawowych poleceń. Używa się go przy obsłudze formularzy rejestracji użytkownika, dodawaniu zamówień w sklepie internetowym, logowaniu zdarzeń w systemie (logi), czy zapisywaniu wyników pomiarów z czujników. Dobrą praktyką jest zawsze podawanie listy kolumn, do których wstawiamy dane, zamiast polegać na kolejności kolumn w tabeli. Dzięki temu kod SQL jest czytelniejszy i mniej podatny na błędy po zmianach w strukturze tabeli. Warto też wiedzieć, że istnieją różne warianty INSERT, np. INSERT ... SELECT (wstawianie danych na podstawie wyników zapytania), INSERT IGNORE czy INSERT ... ON CONFLICT/ON DUPLICATE KEY w konkretnych systemach (PostgreSQL, MySQL). To wszystko dalej jest ta sama rodzina poleceń: celem zawsze jest dodanie nowych rekordów, a nie modyfikacja starych czy zmiana schematu bazy. Z mojego doświadczenia, kto dobrze ogarnie różne formy INSERT, temu dużo łatwiej budować sensowne aplikacje bazodanowe.

Pytanie 32

Które z podanych formatów NIE JEST zapisane w języku CSS?

Ilustracja do pytania
A. C
B. D
C. A
D. B
Odpowiedź C jest prawidłowa, ponieważ atrybut bgcolor jest przestarzałą metodą określania koloru tła w HTML i nie jest częścią CSS. CSS (Cascading Style Sheets) zostało stworzone, aby oddzielić prezentację dokumentu od jego struktury. Korzystanie z CSS pozwala na lepsze zarządzanie stylem i spójność w wyglądzie wielu stron internetowych. Atrybuty HTML związane z wyglądem, takie jak bgcolor, zostały zastąpione przez deklaracje w CSS. Na przykład w CSS można ustawić kolor tła całej strony za pomocą selektora body i właściwości background-color. Takie podejście jest bardziej elastyczne i zgodne z nowoczesnymi standardami. Dzięki CSS możliwe jest stosowanie zaawansowanych stylizacji, takich jak gradienty czy obrazy tła, które nie były dostępne w prostych atrybutach HTML. Przy projektowaniu stron internetowych zaleca się, aby unikać przestarzałych atrybutów HTML, które mogą być niekompatybilne z nowoczesnymi przeglądarkami i powodować problemy z dostępnością.

Pytanie 33

Na stronie internetowej zdefiniowano styl, który ma być stosowany tylko do określonych znaczników (takich jak niektóre nagłówki i wybrane akapity). W takim kontekście, aby przypisać styl do konkretnych elementów, najlepiej jest użyć

{ text-align: right; }
A. pseudoklasy
B. identyfikatora
C. klasy
D. seletora akapitu
Klasa w CSS jest jednym z najczęściej stosowanych mechanizmów do nadawania stylów elementom HTML na stronach internetowych Kiedy chcemy przypisać styl do kilku konkretnych znaczników które niekoniecznie są tego samego typu użycie klasy jest najlepszym rozwiązaniem Klasy są definiowane w arkuszu stylów przy użyciu kropki przed nazwą klasy na przykład .myClass Następnie można je przypisać do dowolnego elementu HTML dodając atrybut class w znaczniku elementu Co ważne jeden element może mieć przypisane wiele klas co umożliwia bardzo elastyczne zarządzanie stylami Na przykład jeżeli chcemy aby określone nagłówki i akapity miały ten sam kolor tła możemy stworzyć klasę .highlight i przypisać ją zarówno do nagłówków jak i akapitów Klasy są fundamentalnym elementem wykorzystywanym w CSS i są wspierane przez wszystkie przeglądarki zgodnie ze standardami W3C Dzięki nim możemy pisać czytelny i efektywny kod który jest łatwy w utrzymaniu i skalowalny Klasy pozwalają na wielokrotne użycie tego samego zestawu stylów co znacząco ułatwia modyfikację wyglądu strony

Pytanie 34

W języku JavaScript, aby uzyskać element wykorzystując metodę getElementById, jaką właściwością można zmienić jego zawartość?

A. HTML
B. innerBody
C. Body
D. innerHTML
Właściwość innerHTML jest kluczowym elementem manipulacji zawartością DOM (Document Object Model) w JavaScript. Umożliwia ona programistom dostęp do zawartości danego elementu HTML oraz jej modyfikację. Gdy pobieramy element za pomocą metody getElementById, mamy możliwość bezpośredniego zmienienia jego treści poprzez przypisanie nowego stringa do innerHTML. Przykładowo, jeśli mamy element o identyfikatorze 'myElement', możemy zaktualizować jego zawartość w następujący sposób: document.getElementById('myElement').innerHTML = 'Nowa treść!';. To podejście jest powszechnie stosowane w dynamicznych aplikacjach internetowych, gdzie treść na stronie musi być często aktualizowana w odpowiedzi na działania użytkownika. Warto jednak pamiętać, że użycie innerHTML niesie ze sobą pewne ryzyko związane z bezpieczeństwem, takie jak podatność na ataki XSS (Cross-Site Scripting). Dlatego zaleca się stosowanie tej właściwości z ostrożnością i rozważenie alternatyw, jak np. textContent, w przypadku, gdy nie potrzebujemy interpretować HTML. Dobrą praktyką jest również walidacja i sanitizacja danych wejściowych, aby zminimalizować ryzyko związane z wstrzyknięciem niepożądanych skryptów. W kontekście standardów kodowania, zasadniczo zaleca się preferowanie metod, które nie tylko poprawiają bezpieczeństwo, ale także czytelność kodu.

Pytanie 35

Jaki atrybut powinien zostać umieszczony w miejscu trzech kropek w znaczniku HTML5 <blockquote>, aby wskazać źródło cytatu?

A. alt
B. cite
C. src
D. href
Odpowiedzi 'src', 'alt' i 'href' są nieprawidłowe, ponieważ każdy z tych atrybutów pełni inną rolę w kontekście HTML. Atrybut 'src' jest wykorzystywany do określenia źródła dla elementów takich jak <img> czy <script>, a więc nie ma zastosowania w przypadku znacznika <blockquote>. Wybierając 'src', można pomylić cytat z obrazem lub skryptem, co prowadzi do błędnej interpretacji struktury dokumentu. Atrybut 'alt' jest używany do dostarczania alternatywnego tekstu dla obrazów, co również nie ma zastosowania w kontekście cytatów. Użytkownik, wybierając odpowiedź 'alt', może błędnie sądzić, że alternatywny tekst jest istotny dla przedstawienia źródła cytatu, co jest mylne. Natomiast 'href', który jest stosowany w elementach <a> do określenia adresu URL, również nie ma zastosowania w kontekście cytatów. Zastosowanie 'href' w znaczeniu cytatu mogłoby prowadzić do zamieszania związane z funkcją nawigacyjną i semantyką dokumentu. Każda z tych odpowiedzi ilustruje typowe nieporozumienia dotyczące roli atrybutów HTML, co pokazuje, jak ważne jest zrozumienie właściwych kontekstów, w których atrybuty powinny być używane. Prawidłowe zrozumienie znaczenia atrybutu 'cite' jest kluczowe dla tworzenia semantycznych i czytelnych dokumentów HTML, które poprawnie odzwierciedlają intencje autora oraz są zgodne z najlepszymi praktykami webowymi.

Pytanie 36

Polecenie serwera MySQL postaci

REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost'
sprawi, że użytkownikowi tKowal zostaną
A. przydzielone uprawnienia do wszelkiej zmiany struktury tabeli pracownicy
B. odebrane uprawnienia usuwania i modyfikowania danych w tabeli pracownicy
C. odebrane uprawnienia usuwania i dodawania rekordów w tabeli pracownicy
D. przydzielone uprawnienia do usuwania i aktualizowania danych w tabeli pracownicy
Polecenie REVOKE w systemie zarządzania bazą danych MySQL jest używane do odebrania przydzielonych wcześniej uprawnień użytkownikowi lub grupie użytkowników. W przypadku instrukcji REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost', użytkownik 'tKowal' traci prawa do usuwania (DELETE) oraz aktualizowania (UPDATE) danych w tabeli 'pracownicy'. Przykładowo, jeśli wcześniej użytkownik 'tKowal' miał możliwość usuwania rekordów pracowników i modyfikacji ich danych, po wykonaniu tej instrukcji te uprawnienia zostaną odebrane. Ważne jest, aby zrozumieć, że REVOKE nie wpływa na inne uprawnienia, które użytkownik mógł posiadać, a jego działanie jest ograniczone do wymienionych operacji w kontekście konkretnej tabeli. W MySQL istnieje także możliwość przydzielania uprawnień za pomocą komendy GRANT, co stanowi odwrotność do REVOKE. Dokumentacja MySQL szczegółowo opisuje te mechanizmy, a ich właściwe użycie jest istotne dla bezpieczeństwa i administracji bazami danych. Aby lepiej zrozumieć praktyczne zastosowanie tych komend, można zapoznać się z przykładami na oficjalnej stronie MySQL, które ilustrują, jak zarządzać uprawnieniami użytkowników w różnych scenariuszach.

Pytanie 37

W języku SQL, w wyniku wykonania poniższego zapytania:

ALTER TABLE osoba DROP COLUMN grupa;
A. zostanie usunięta kolumna grupa
B. zostanie zmieniona nazwa kolumny na grupa
C. zostanie zmieniona nazwa tabeli na grupa
D. zostanie dodana kolumna grupa
Zapytanie SQL 'ALTER TABLE osoba DROP COLUMN grupa;' jest komendą, która służy do usunięcia kolumny o nazwie 'grupa' z tabeli 'osoba'. Komenda ta wykorzystuje instrukcję ALTER TABLE, która jest standardową konstrukcją SQL używaną do modyfikacji struktury istniejącej tabeli. W kontekście baz danych, usunięcie kolumny może być nieodwracalne, co oznacza, że wszystkie dane zawarte w tej kolumnie zostaną trwale usunięte. Przykładem zastosowania tej komendy może być sytuacja, w której kolumna 'grupa' nie jest już potrzebna, na przykład, po zmianie wymagań aplikacji lub po analogicznym przekształceniu modelu danych. Zgodnie z normami SQL, aby uniknąć błędów, przed wykonaniem takiej operacji warto wykonać kopię zapasową bazy danych. Warto również pamiętać, że niektóre systemy zarządzania bazami danych mogą wymagać dodatkowych opcji, aby zrealizować tę operację, na przykład, jeśli kolumna jest kluczem obcym lub jest związana z innymi strukturami. Podsumowując, użycie tej komendy skutkuje trwałym usunięciem kolumny 'grupa' z tabeli 'osoba'.

Pytanie 38

Podany kod źródłowy ma na celu pokazanie

$liczba = 1;
while ($liczba != 0)
{
  $liczba = rand(0, 100);
  echo $liczba;
}
A. kolejne liczby od 1 do 100
B. wylosowane liczby od 1 do 99
C. losowe liczby od 0 do 100 aż do momentu, gdy wylosowana zostanie wartość 0
D. liczby wprowadzane z klawiatury do momentu, gdy wczytana zostanie wartość 0
Odpowiedź "losowe liczby od 0 do 100 tak długo, aż nie zostanie wylosowana wartość 0" jest poprawna, ponieważ kod źródłowy wykorzystuje funkcję rand(), która generuje losowe liczby z zadanego zakresu, w tym przypadku od 0 do 100. Pętla while działa w taki sposób, że kontynuuje swoje działanie, dopóki zmienna $liczba nie przyjmie wartości 0. Oznacza to, że wszystkie wylosowane liczby, niezależnie od tego, czy są to liczby parzyste, nieparzyste, czy wartości graniczne, będą wyświetlane na ekranie do momentu, aż wylosowana zostanie wartość 0, która przerwie działanie pętli. Przykładem zastosowania tego typu kodu może być generowanie próbki danych w celu testowania algorytmów lub symulacji. Praktyka ta jest zgodna z dobrymi standardami programowania, gdzie często wykorzystuje się losowe dane do różnych celów, takich jak testowanie, analizy statystyczne lub gry. Ponadto, rozumienie jak działa generowanie liczb losowych i kontrola pętli jest podstawową umiejętnością w programowaniu, która pomaga w rozwoju bardziej zaawansowanych aplikacji.

Pytanie 39

Która z poniższych funkcji sortujących, stosowanych w języku PHP, porządkuje tablicę asocjacyjną według kluczy?

A. rsort()
B. ksort()
C. asort()
D. sort()
Funkcje sort(), rsort() i asort() czasami mylą się z ksort(), ale każda z nich działa trochę inaczej. Sort() na przykład, sortuje elementy tablicy według wartości, a nie kluczy, więc w asocjacyjnej tablicy klucze nie mają tu znaczenia. Rsort() działa odwrotnie, bo sortuje wartości w kolejności malejącej, co może być przydatne, gdy chcesz mieć dane od najwyższej do najniższej wartości, ale też nie zmienia kluczy. Asort() znowu sortuje tablicę asocjacyjną według wartości, ale klucze mogą pozostać w pierwotnej kolejności. Wybór funkcji sortującej jest ważny, żeby dobrze zorganizować dane, więc warto ogarnąć te różnice między funkcjami.

Pytanie 40

Tabela Pacjenci zawiera kolumny: imie, nazwisko, wiek, lekarz_id. Aby stworzyć raport, który będzie zawierał jedynie imiona oraz nazwiska pacjentów mających mniej niż 18 lat i zapisanych do lekarza o id równym 6, można wykorzystać kwerendę SQL

A. SELECT imie, nazwisko WHERE wiek<18 OR lekarz_id=6
B. SELECT imie, nazwisko WHERE wiek<18 AND lekarz_id=6
C. SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 OR lekarz_id=6
D. SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 AND lekarz_id=6
Aby uzyskać raport z tabeli Pacjenci, w którym znajdują się wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia zapisanych do lekarza o id równym 6, należy użyć następującej kwerendy SQL: SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 AND lekarz_id=6. Kluczowe w tej kwerendzie jest zastosowanie operatora AND, który pozwala na jednoczesne spełnienie obu warunków. W SQL, operator AND łączy dwa warunki, które muszą być prawdziwe, aby dany wiersz został uwzględniony w wynikach. Operator OR byłby nieodpowiedni, ponieważ mógłby zwrócić pacjentów, którzy są młodsi niż 18 lat, ale zapisani do innych lekarzy, co nie spełnia wymagań zadania. Ta kwerenda jest zgodna z ANSI SQL, który jest standardem dla zapytań do baz danych, a także dobrze ilustruje zasady filtracji danych w kontekście relacyjnych baz danych. Przykład takiej tabeli mógłby wyglądać następująco: imie: 'Jan', nazwisko: 'Kowalski', wiek: 17, lekarz_id: 6. W tym przypadku, zapytanie zwróciłoby imię i nazwisko Jana Kowalskiego, ponieważ spełnia on oba warunki.