Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 21:42
  • Data zakończenia: 8 czerwca 2026 22:05

Egzamin zdany!

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

Jakie imiona spełniają warunki klauzuli LIKE w podanym zapytaniu?

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Krzysztof, Krystyna, Romuald
B. Arleta, Krzysztof, Krystyna, Tristan
C. Gerald, Jarosław, Marek, Tamara
D. Rafał, Rebeka, Renata, Roksana
No, więc ta odpowiedź jest totalnie na miejscu, bo klauzula LIKE w SQL służy do szukania ciągów, które pasują do jakiegoś wzoru. W tym przypadku wzór '_r%' mówi nam, że przed literą 'r' musi być dokładnie jeden dowolny znak, a po 'r' może być cokolwiek. Jak spojrzymy na imiona, które wybrałeś, 'Arleta' i 'Krzysztof' mają 'r' na drugiej pozycji, a 'Krystyna' i 'Tristan' na trzeciej. Czyli wszystko się zgadza. W ogóle, klauzula LIKE jest super przydatna w wyszukiwaniu danych, na przykład w aplikacjach, gdy chcemy znaleźć kogoś po imieniu czy nazwisku. A ten symbol '%' to genialny sposób na dopasowywanie, bo pozwala na różne kombinacje. Fajna sprawa, nie?

Pytanie 2

Wskaż kod CSS odpowiadający układowi bloków 2 - 5, zakładając, że są one zbudowane w oparciu o przedstawiony kod HTML.

BLOK 1
BLOK 2BLOK 3BLOK 4
BLOK 5
<div id="pierwszy">BLOK 1</div>
<div id="drugi">BLOK 2</div>
<div id="trzeci">BLOK 3</div>
<div id="czwarty">BLOK 4</div>
<div id="piaty">BLOK 5</div>

Kod 1.
#drugi {
  float: left;
  width: 40%;
}
#trzeci {
  float: left;
  width: 30%;
}
#czwarty {
  float: right;
  width: 30%;
}
#piaty {
  clear: both;
  width: 30%;
}
Kod 2.
#drugi {
  float: left;
  width: 40%;
}
#trzeci {
  float: left;
  width: 30%;
}
#czwarty {
  float: right;
  width: 30%;
}
#piaty {
  float: left;
  width: 30%;
}
Kod 3.
#drugi {
  float: left;
  width: 40%;
}
#trzeci {
  float: left;
  width: 30%;
}
#czwarty {
  width: 30%;
}
#piaty {
  float: right;
  width: 30%;
}
Kod 4.
#drugi {
  float: left;
  width: 40%;
}
#trzeci {
  width: 30%;
}
#czwarty {
  width: 30%;
}
#piaty {
  float: right;
  width: 30%;
}
A. Kod 2.
B. Kod 1.
C. Kod 3.
D. Kod 4.
Niestety, twoja odpowiedź jest niepoprawna. Wybrałeś odpowiedź niezgodną z przedstawionym układem bloków. Analizując kod CSS, musisz zwrócić uwagę na różne aspekty, takie jak pozycja, szerokość i kolejność bloków. W tym przypadku, blok 'drugi' powinien być umieszczony po lewej stronie i zajmować 40% szerokości, bloki 'trzeci' i 'czwarty' powinny być odpowiednio po lewej i prawej stronie z szerokością 30%, a blok 'piąty' powinien być umieszczony na dole i zajmować 30% szerokości. To wszystko odpowiada układowi bloków na diagramie. Jeżeli wybrałeś inny kod, to prawdopodobnie źle zinterpretowałeś pozycję lub szerokość bloków, co jest kluczowe w tworzeniu układów stron. Ważne jest, aby zrozumieć i umieć manipulować kodem CSS, aby uzyskać pożądany układ strony. Pamiętaj, że praktyka i doświadczenie są kluczowe do zrozumienia jak kod CSS wpływa na układ i stylizację elementów strony.

Pytanie 3

Które z pól edycyjnych zostało przedstawione w opisanym stylu, zakładając, że pozostałe atrybuty pola mają wartości domyślne, a użytkownik wpisał imię Krzysztof w przeglądarce?

Ilustracja do pytania
A. Pole 4
B. Pole 3
C. Pole 1
D. Pole 2
Dobrze, że dopasowałeś Pole 2 do stylu z kodu CSS. Widać, że dobrze ogarniasz te rzeczy! Ten padding 10px, co dałeś, naprawdę robi różnicę. Dzięki temu tekst ma więcej przestrzeni wokół siebie. A kolor tła Teal? Super wybór, bo to taki fajny pośredni odcień między niebieskim a zielonym. Biały tekst na tym tle jest świetnie widoczny, co jest mega ważne. No i brak obramowania, czyli border none, dodaje nowoczesności! Zaokrąglenie krawędzi, które ustawiłeś na 7px, sprawia, że pole wygląda przyjemniej. Takie rzeczy są często stosowane, by przygotować interfejsy, które są estetyczne i funkcjonalne. Jak projektujesz, pamiętaj o kontrastach, bo to naprawdę podnosi jakość aplikacji. Troska o estetykę i użyteczność to kluczowa sprawa. Dobra robota!

Pytanie 4

O zmiennej predefiniowanej

$_POST 
w języku PHP można stwierdzić, że
A. jest rozwiniętą wersją tablicy $_SESSION
B. zawiera dane bezpośrednio dostarczone do skryptu z ciasteczka
C. jest odwzorowaniem tablicy $_COOKIE
D. zawiera dane przesłane do skryptu za pośrednictwem formularza
Odpowiedź, że zmienna predefiniowana $_POST zawiera dane przesłane do skryptu z formularza, jest w pełni poprawna. W języku PHP, $_POST to jedna z superglobalnych tablic, która umożliwia dostęp do danych przesyłanych metodą POST. Metoda ta jest powszechnie stosowana w formularzach HTML, gdzie użytkownik może wprowadzać dane, które następnie są wysyłane do serwera. Na przykład, formularz kontaktowy, w którym użytkownik wprowadza swoje imię i adres e-mail, może być przetwarzany za pomocą $_POST, co pozwala na łatwą i bezpieczną obsługę danych. Dobrą praktyką jest również walidacja danych przed ich użyciem, aby zminimalizować ryzyko ataków, takich jak SQL Injection czy XSS. Dzięki zastosowaniu $_POST, programiści mogą przechwytywać i przetwarzać dane użytkowników w bardziej zaawansowany sposób, co pozwala na dynamiczne generowanie treści i interakcję z użytkownikami.

Pytanie 5

tr:nth-child(even) {background-color: #F2F2F2;}
Zastosowane formatowanie selektora tr:nth-child(even) spowoduje:
A. wypełnienie wszystkich wierszy tabeli szarym tłem.
B. wypełnienie szarym tłem nieparzystych wierszy tabeli.
C. wypełnienie szarym tłem parzystych wierszy tabeli.
D. oddzielenie wierszy nieparzystych od parzystych wierszem z szarym tłem.
Selektor CSS tr:nth-child(even) oznacza dokładnie: wybierz wszystkie elementy <tr>, które są parzystymi dziećmi swojego rodzica, licząc od 1 w górę. W CSS funkcja nth-child() przyjmuje słowo kluczowe even dla elementów parzystych (2, 4, 6, …) i odd dla elementów nieparzystych (1, 3, 5, …). To jest zdefiniowane w specyfikacji CSS Selectors Level 3. W Twoim przykładzie even powoduje, że przeglądarka nadaje styl background-color: #F2F2F2; wszystkim parzystym wierszom tabeli, czyli 2., 4., 6. itd. wierszowi <tr>. Dzięki temu powstaje tzw. zebra-striping, czyli naprzemienne kolorowanie wierszy tabeli, bardzo często stosowane w interfejsach webowych, bo poprawia czytelność danych i ułatwia śledzenie wiersza wzrokiem. W praktyce używa się tego zwykle razem z drugim stylem, np. tr:nth-child(odd) { background-color: white; }, żeby wyraźnie rozróżnić wiersze. Warto też pamiętać, że nth-child() liczy wszystkie dzieci danego rodzica, a nie tylko te z określoną klasą, więc jeżeli w tabeli pojawią się np. wiersze nagłówkowe <tr> w <thead>, to selektor tr:nth-child(even) zastosowany globalnie może dać trochę inne efekty niż się spodziewasz. Dobrą praktyką jest zawężanie selektora, np. tbody tr:nth-child(even), żeby kolorowanie dotyczyło tylko części z danymi, bez nagłówków. Z mojego doświadczenia warto też używać kolorów o niewielkim kontraście, tak jak #F2F2F2, żeby nie męczyć wzroku użytkownika przy długich tabelach.

Pytanie 6

Co należy zrobić przed rozpoczęciem pętli, by zapewnić poprawne działanie przedstawionego kodu JavaScript?

var text;
for( var i = 0; i < tab.length; i++){
    text += tab[i] + "<br>";
}
A. Zainicjować zmienną text
B. Zweryfikować, czy text ma typ string
C. Sprawdzić rozmiar tabeli tab
D. Zadeklarować zmienną i
Deklaracja zmiennej i jest już zawarta w nagłówku pętli for co czyni ją poprawną konstrukcją w kontekście iteracyjnego dostępu do elementów tablicy. Sprawdzanie typu zmiennej text przed pętlą mogłoby mieć znaczenie jedynie w szczególnych przypadkach gdyby istniała niepewność co do rodzaju danych z jakimi program ma do czynienia jednak w kontekście zadania najistotniejsze jest zapewnienie że zmienna ta jest zainicjowana. Rozmiar tablicy tab jest sprawdzany w warunku pętli for co stanowi standardową praktykę w celu uniknięcia przekroczenia granic tablicy lecz operacja ta nie ma wpływu na poprawność działania zmiennej text i jej przetwarzanie w pętli. Typowe błędy myślowe w zakresie inicjalizacji zmiennych to pomijanie tego kroku z założeniem że zmienne są automatycznie ustawiane na wartość domyślną co w przypadku JavaScript jest mylące podobnie jak błędne założenie że deklaracja zmiennej i jest opcjonalna przy iteracjach co prowadzi do trudno wykrywalnych błędów w dużych kodach. Kluczowym wnioskiem jest zrozumienie że inicjalizacja zmiennej jest fundamentem poprawnej i bezpiecznej obsługi danych w cyklu programistycznym.

Pytanie 7

Baza danych MySQL została uszkodzona. Które z poniższych działańnie przyczyni się do jej naprawy?

A. Utworzenie nowej bazy i przeniesienie do niej tabel
B. Wykonanie replikacji bazy danych
C. Próba naprawy za pomocą polecenia REPAIR
D. Odtworzenie bazy z kopii zapasowej
Wykonanie replikacji bazy danych nie pomoże w naprawie uszkodzonej bazy MySQL, ponieważ replikacja polega na tworzeniu kopii danych z jednej bazy do drugiej w czasie rzeczywistym. Jeśli źródłowa baza danych jest uszkodzona, to zainicjowana replikacja jedynie skopiuje wszelkie błędy i uszkodzenia do nowej instancji. Replikacja jest techniką stosowaną głównie dla zwiększenia dostępności bazy danych lub zapewnienia wsparcia w przypadku awarii, a nie jako metoda naprawy uszkodzeń. Dla skutecznej naprawy bazy danych należy najpierw przywrócić jej integralność, a nie tylko jedynie skopiować uszkodzone dane. Dobrym przykładem jest użycie polecenia REPAIR TABLE, które jest dedykowane do naprawy uszkodzonych tabel, lub przywracanie bazy danych z kopii zapasowej, co zapewnia integralność i spójność danych. W sytuacji awarii bazy, kluczowe jest zrozumienie, że naprawa powinna być priorytetowym celem, a nie kopiowanie problemów.

Pytanie 8

Kod źródłowy przedstawiony poniżej ma na celu wyświetlenie

Ilustracja do pytania
A. wylosowanych liczb z zakresu od 1 do 99
B. liczb wprowadzonych z klawiatury, aż do momentu wprowadzenia wartości 0
C. ciągu liczb od 1 do 100
D. losowych liczb od 0 do 100, aż do wylosowania wartości 0
Programowanie wymaga precyzyjnego zrozumienia działania każdej instrukcji oraz wpływu na końcowy wynik. W przypadku omawianego pytania kilka błędnych koncepcji mogło wprowadzić w błąd. Po pierwsze założenie że kod wyświetla wylosowane liczby od 1 do 99 jest nieprawidłowe ponieważ używana funkcja rand(0 100) pozwala na losowanie liczb od 0 do 100 włącznie. Należy zauważyć że zrozumienie zakresu generowanych wartości przez funkcje losujące jest kluczowe zwłaszcza w aplikacjach wymagających precyzyjnego sterowania zakresem danych wejściowych. Druga potencjalna pomyłka to przypisanie kodowi zadania wyświetlania kolejnych liczb od 1 do 100 co w rzeczywistości wymagałoby zupełnie innej konstrukcji pętli najlepiej for z precyzyjnie określonym zakresem liczbowym. Trzecim nieporozumieniem mogłoby być przyjęcie że program wczytuje liczby z klawiatury dopóki nie zostanie wpisane zero co sugerowałoby użycie funkcji pobierającej dane od użytkownika jak np. scanf w języku C lub input w Pythonie. Zrozumienie różnicy między pobieraniem danych od użytkownika a losowaniem z automatycznie generowanego przedziału jest istotne przy tworzeniu interaktywnych aplikacji. Rozróżnienie tych mechanizmów umożliwia tworzenie bardziej złożonych i elastycznych programów które mogą reagować na różne źródła danych oraz zmieniające się warunki w środowisku uruchomieniowym. Poprawne rozumienie i wykorzystanie tych koncepcji jest fundamentalne dla efektywnego tworzenia oprogramowania i optymalizacji procesów programistycznych.

Pytanie 9

Fragment kodu SQL wskazuje, że klucz obcy

FOREIGN KEY (imie) REFERENCES obiekty (imiona) …
A. jest przypisany do kolumny obiekty
B. wiąże się z kolumną imiona
C. jest odniesieniem do siebie samego
D. znajduje się w tabeli obiekty
Odpowiedź wskazująca, że klucz obcy łączy się z kolumną 'imiona' jest prawidłowa, ponieważ definicja klucza obcego w SQL stanowi, że odwołuje się on do kolumny w innej tabeli, w tym przypadku do kolumny 'imiona' w tabeli 'obiekty'. Klucz obcy jest używany do ustanowienia relacji między dwiema tabelami, co poprawia integralność danych i umożliwia tworzenie bardziej złożonych zapytań. Na przykład, jeśli mamy tabelę 'uczniowie' z kolumną 'imie', a tabela 'obiekty' zawiera kolumnę 'imiona' jako klucz podstawowy, to możemy użyć klucza obcego, aby zapewnić, że każde imię w tabeli 'uczniowie' odnosi się do istniejącego rekordu w tabeli 'obiekty'. Dobrą praktyką jest zawsze stosowanie kluczy obcych w celu minimalizacji błędów danych i zapewnienia ich spójności. Użycie kluczy obcych jest zgodne z zasadami normalizacji baz danych, które dążą do eliminacji redundancji i poprawy organizacji danych.

Pytanie 10

W języku HTML, aby uzyskać następujący efekt formatowania
pogrubiony pochylony lub w górnym indeksie
należy zapisać kod:

A. <i>pogrubiony </i><b>pochylony </b>lub w <sub>górnym indeksie</sub>
B. <b>pogrubiony <i>pochylony</i></b> lub w <sup>górnym indeksie</sup>
C. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
D. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
Odpowiedź, w której użyłeś znaczników <b> i <i> w odpowiednich miejscach, jest całkiem dobra. Znak <b> jest świetny do pogrubiania tekstu, co przydaje się, gdy chcesz podkreślić coś ważnego. Natomiast <i> pozwala na pochylanie tekstu, co dodaje mu charakteru i może sugerować cytaty czy tytuły. Co ciekawe, znacznik <sup> stosujemy, gdy chcemy pokazać górny indeks, np. przy potęgach czy jednostkach miar. Przykład takiego użycia byłby taki: <b>Waga</b> <i>w kilogramach</i> wynosi <sup>2</sup> dla dwóch jednostek. Jak widać, stosowanie HTML w odpowiedni sposób pozwala robić czytelne i estetyczne prezentacje, co jest zgodne z dobrymi praktykami w web designie oraz standardami W3C. Warto też pamiętać, że dobrze dobrane znaczniki mają znaczenie nie tylko wizualne, ale także pomagają w indeksowaniu treści przez wyszukiwarki, co z kolei wpływa na SEO.

Pytanie 11

Zastosowana w dokumencie HTML definicja multimediów sprawi, że na stronie:

<video controls>
    <source src="video1.mp4" type="video/mp4">
    <source src="video1.ogg" type="video/ogg">
    Komunikat dotyczący video
</video>
A. pod wyświetlanym filmem zostanie wyświetlony napis „Komunikat dotyczący video”.
B. zostaną wyświetlone obok siebie dwa filmy z plików: video1.mp4 oraz video1.ogg.
C. zostanie wyświetlony film z pliku video1.mp4 lub, w przypadku nierozpoznania formatu MPEG-4, film z pliku video1.ogg.
D. wyświetlony film zostanie automatycznie uruchomiony zaraz po załadowaniu strony internetowej.
Niestety, twoja odpowiedź nie jest prawidłowa. Kod HTML, który analizowaliśmy, nie sugeruje, że pod wyświetlanym filmem zostanie wyświetlony napis 'Komunikat dotyczący video' ani że zostaną wyświetlone obok siebie dwa filmy. Takie zachowanie strony wymagałoby dodatkowego kodu HTML i CSS. Także automatyczne uruchomienie filmu po załadowaniu strony nie jest domyślnym zachowaniem elementu video. Warto zauważyć, że takie automatyczne odtwarzanie może być uciążliwe dla użytkowników i jest często uważane za niezgodne z dobrymi praktykami projektowania stron internetowych. Również, aby film automatycznie się odtwarzał, w elemencie video powinien być umieszczony atrybut 'autoplay'. Zrozumienie, jak działa element video HTML i jakie ma atrybuty, jest kluczowe do tworzenia efektywnych i użytecznych stron internetowych.

Pytanie 12

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

A. grupowania.
B. wykluczenia.
C. części wspólnej.
D. sumy.
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 13

Podany fragment kodu PHP ma na celu wstawienie wartości z zmiennych $a, $b, $c do bazy danych, w tabeli dane. Tabela ta składa się z czterech kolumn, z których pierwsza to autoinkrementowany klucz podstawowy. Które z zapytań powinno być przypisane do zmiennej $zapytanie?

<?php
...
$zapytanie = "...";
mysqli_query($db, $zapytanie);
...
?>
A. ```INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');```
B. ```SELECT '$a', '$b', '$c' FROM dane;```
C. ```SELECT NULL, '$a', '$b', '$c' FROM dane;```
D. ```INSERT INTO dane VALUES ('$a', '$b', '$c');```
Odpowiedzi, które zaczynają się od polecenia SELECT, są błędne, ponieważ nie mają na celu wstawienia nowych danych do tabeli. SELECT jest używane do pobierania danych z bazy danych, a nie do ich dodawania. Polecenie "SELECT '$a', '$b', '$c' FROM dane;" jedynie wyciąga dane, nie wprowadza żadnych zmian w tabeli, co nie spełnia wymagań zadania. Również "SELECT NULL, '$a', '$b', '$c' FROM dane;" działa podobnie, wciąż pozostając w zakresie odczytu danych, a nie ich dodawania. Dwa pierwsze polecenia nie tylko nie są związane z wstawianiem danych, ale również mogą wprowadzać użytkownika w błąd, sugerując, że ich celem jest modyfikacja bazy. Kolejna odpowiedź "INSERT INTO dane VALUES ('$a', '$b', '$c');" jest błędna, ponieważ nie uwzględnia klucza głównego, który powinien być autoinkrementowany. Przekazanie NULL jako pierwszego argumentu jest kluczowe, ponieważ pozwala bazie danych na zarządzanie identyfikatorem. Typowe błędy myślowe obejmują pomylenie operacji wstawiania z operacjami odczytu oraz nieprawidłowe przypuszczenie, że można pominąć kolumny kluczy głównych w zapytaniach wstawiających.

Pytanie 14

Do przechowywania jakich danych służy w tabeli pole typu BLOB?

A. dużych danych binarnych, np. grafiki
B. łańcuchów znaków o nieokreślonej długości
C. danych logicznych, np. true
D. liczb całkowitych większych od zakresu INT
Typ BLOB (Binary Large Object) służy do przechowywania DUŻYCH danych binarnych - np. grafiki, plików audio czy dokumentów zapisanych bezpośrednio w bazie. Trzyma surowe bajty, a nie tekst czy liczby. Dlatego BLOB przechowuje duże dane binarne.

Pytanie 15

Aby stworzyć relację jeden do wielu, w tabeli po stronie wiele, co należy zdefiniować?

A. klucz podstawowy wskazujący na klucz podstawowy tabeli po stronie jeden
B. klucz obcy wskazujący na klucz obcy tabeli po stronie jeden
C. klucz obcy wskazujący na klucz podstawowy tabeli po stronie jeden
D. klucz sztuczny odnoszący się do kluczy podstawowych obu tabel
W relacji jeden do wielu, klucz obcy w tabeli po stronie wiele jest kluczowym elementem, który wskazuje na klucz podstawowy tabeli po stronie jeden. Dzięki temu możliwe jest powiązanie wielu rekordów w tabeli 'wiele' z jednym rekordem w tabeli 'jeden', co jest fundamentalnym aspektem modelowania relacyjnych baz danych. Klucz obcy zapewnia integralność referencyjną, co oznacza, że każda wartość klucza obcego w tabeli 'wiele' musi odpowiadać istniejącemu kluczowi podstawowemu w tabeli 'jeden'. Przykładem może być sytuacja, w której mamy tabelę 'Klienci' i tabelę 'Zamówienia'. W tabeli 'Zamówienia' klucz obcy 'ID_Klienta' wskazuje na 'ID' w tabeli 'Klienci', co pozwala na przypisanie wielu zamówień do jednego klienta. Zgodnie z dobrymi praktykami branżowymi, klucze obce powinny być odpowiednio zindeksowane, co pozwala na szybsze zapytania oraz efektywniejsze przetwarzanie danych.

Pytanie 16

Który zapis wyświetli obraz kotek.jpg z tekstem alternatywnym „obrazek kotka”?

A.
<img src="/kotek.jpg" alt="obrazek kotka">
B.
<img href="/kotek.jpg" alt="obrazek kotka">
C.
<img src="/kotek.jpg" title="obrazek kotka">
D.
<img href="/kotek.jpg" title="obrazek kotka">
Obraz wstawia się znacznikiem <img>, podając źródło w src i tekst alternatywny w alt: <img src="/kotek.jpg" alt="obrazek kotka">. Dlatego poprawny jest ten zapis.

Pytanie 17

Aby wykonać przycisk na stronę internetową zgodnie z przedstawionym wzorem, w programie do grafiki rastrowej należy użyć opcji:

Ilustracja do pytania
A. zaznaczenie eliptyczne
B. zniekształcenie i deformacja
C. propagacja wartości
D. zaokrąglenie narożników (prostokąt z zaokrąglonymi rogami)
Wzór przedstawia prostokątny przycisk z zaokrąglonymi rogami. Taki kształt rysuje się w edytorze grafiki rastrowej narzędziem prostokąta z zaokrąglonymi rogami (lub zaokrąglając zaznaczenie o zadanym promieniu). Daje to równe, gładkie narożniki zgodne z przykładem. Dlatego poprawna jest opcja zaokrąglenia narożników.

Pytanie 18

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

A. używanie skomplikowanych haseł do bazy.
B. blokowanie portów związanych z bazą danych.
C. aktywacja zapory.
D. defragmentacja dysków.
Defragmentacja dysków nie jest bezpośrednio związana z zabezpieczaniem serwera bazy danych przed atakami hakerskimi. Choć defragmentacja może poprawić wydajność systemu plików poprzez uporządkowanie fragmentów plików na dysku, nie ma wpływu na kwestie bezpieczeństwa. Przykłady skutecznych działań w zakresie zabezpieczeń obejmują włączenie zapory, co stanowi pierwszą linię obrony, blokowanie portów, które mogą być wykorzystywane przez potencjalnych intruzów, oraz stosowanie złożonych haseł, co minimalizuje ryzyko nieautoryzowanego dostępu. W kontekście zarządzania bezpieczeństwem baz danych, kluczowe jest przestrzeganie najlepszych praktyk, takich jak regularne aktualizacje oprogramowania, monitorowanie logów dostępu oraz stosowanie zasad minimalnych uprawnień. Właściwe zabezpieczenia powinny być wdrażane zgodnie z wytycznymi standardów takich jak ISO/IEC 27001.

Pytanie 19

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

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

Pytanie 20

Polecenie SQL przedstawione poniżej ma za zadanie

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. ustawienie wartości kolumny id_klasy na 1 dla każdego rekordu w tabeli Uczen
B. zwiększenie o jeden wartości pola Uczen
C. ustawienie wartości pola Uczen na 1
D. zwiększenie o jeden wartości kolumny id_klasy dla wszystkich rekordów tabeli Uczen
Analizując inne odpowiedzi warto zrozumieć dlaczego są one błędne Instrukcja zwiększenia wartości pola Uczen nie ma sensu w kontekście podanego polecenia SQL ponieważ w poleceniu modyfikujemy kolumnę id_klasy zamiast Uczen Nie istnieje tam również żaden mechanizm by ustawić wartość kolumny id_klasy na 1 dla wszystkich rekordów ponieważ taki efekt wymagałby użycia konkretnej wartości w poleceniu zamiast operacji dodawania jeden Dodatkowo ustawienie wartości pola Uczen na 1 nie ma związku z podanym zapytaniem które wyraźnie odnosi się do kolumny id_klasy Błędne zrozumienie poleceń SQL często wynika z nieuwagi i braku zrozumienia składni SQL Ważne jest aby zawsze dokładnie analizować jakich kolumn dotyczy operacja i jaka jest jej intencja SQL jako język deklaratywny wymaga precyzji w konstrukcji zapytań by osiągnąć zamierzony efekt Takie błędy mogą prowadzić do niezamierzonych modyfikacji danych dlatego zrozumienie kontekstu i poprawne interpretowanie poleceń jest kluczowe w pracy z bazami danych

Pytanie 21

<img src="/rysunek.png" alt="pejzaż"> Zapisany został kod HTML, który wstawia obrazek na stronę. Jeśli rysunek.png nie zostanie znaleziony, przeglądarka

A. w miejscu grafiki pokaże tekst "rysunek.png"
B. w miejscu grafiki zasygnalizuje błąd wyświetlania strony
C. nie załaduje strony internetowej
D. wyświetli w miejscu grafiki tekst "pejzaż"
Kiedy przeglądarka internetowa napotyka na kod HTML, który zawiera element graficzny, w takim przypadku, jeśli wskazany plik nie jest dostępny, następuje zachowanie określone przez atrybut 'alt'. W omawianym przykładzie, gdy przeglądarka nie może znaleźć pliku 'rysunek.png', wyświetli tekst alternatywny 'pejzaż'. Atrybut 'alt' jest niezwykle ważny z perspektywy dostępności oraz SEO, ponieważ pozwala na dostarczenie informacji o obrazie osobom, które nie mogą go zobaczyć, takim jak osoby niewidome korzystające z czytników ekranu. Z punktu widzenia standardów W3C, atrybut 'alt' jest zalecany dla każdego elementu <img>, aby poprawić użyteczność strony. W praktyce, dobrze skonstruowane opisy w atrybucie 'alt' mogą również wpłynąć pozytywnie na pozycjonowanie witryny w wyszukiwarkach, co czyni go kluczowym elementem podczas tworzenia treści na stronie internetowej. Z tego powodu umieszczanie informacyjnych i zrozumiałych opisów w tym atrybucie jest niezbędne nie tylko dla poprawy dostępności, ale także dla efektywnej optymalizacji SEO.

Pytanie 22

W języku MySQL należy wykorzystać polecenie REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian wyłącznie w definicji struktury bazy danych. Polecenie, które służy do odebrania tych uprawnień, ma następującą formę

A. REVOKE ALL ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
C. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
D. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
Wybór innego podejścia do odbierania uprawnień użytkownikowi 'anna' jest niewłaściwy z kilku powodów. Po pierwsze, REVOKE ALL ON tabela1 FROM 'anna'@'localhost' jest zbyt ogólnie sformułowane, jako że odbiera wszystkie przydzielone uprawnienia, w tym te, które mogą być konieczne do wykonywania podstawowych operacji na danych. Taki ruch mógłby całkowicie zablokować użytkownika w interakcji z tabelą, co nie odzwierciedla zamierzonego celu, jakim jest jedynie ograniczenie możliwości modyfikacji struktury. Drugą nieodpowiednią propozycją jest REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'. Ta komenda również jest błędna, ponieważ wprowadza uprawnienie UPDATE, które nie jest związane z zarządzaniem strukturą bazy danych. Odbieranie tego uprawnienia sprawiłoby, że użytkownik nie mógłby wprowadzać danych do tabeli, co jest sprzeczne z intencją ograniczenia jedynie modyfikacji struktury. Kolejną niewłaściwą odpowiedzią jest REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost', która również nie spełnia wymogów, ponieważ odbiera uprawnienia związane z wstawianiem i usuwaniem danych, co jest istotne dla pracy z danymi w tabeli. W kontekście zarządzania bazami danych, istotne jest, aby precyzyjnie określać, jakie uprawnienia są odbierane, a także dokładnie rozumieć ich zastosowanie oraz potencjalne konsekwencje ich odebrania.

Pytanie 23

W zaprezentowanym fragmencie zapytania SQL, instrukcja SELECT ma za zadanie zwrócić

SELECT COUNT(wartosc) FROM ...
A. suma w kolumnie wartosc
B. liczby rekordów
C. średniej wartości tabeli
D. średniej w kolumnie wartosc
W przypadku języka SQL, funkcja SELECT służy do wybierania danych z bazy i często jest mylona ze sposobem podsumowywania danych. Odpowiedzi wskazujące na obliczanie średniej w tabeli lub w kolumnie są błędne, ponieważ średnia (AVG) jest obliczana zupełnie inną funkcją. Select średniej w kolumnie wymaga użycia AVG zamiast COUNT. To powszechny błąd, wynikający z niepełnego zrozumienia różnicy między różnymi funkcjami agregującymi. Z kolei zrozumienie dlaczego odpowiedź dotycząca sumy w kolumnie jest błędna wiąże się z innym typowym nieporozumieniem w SQL. SUM służy do dodawania wartości liczbowych w kolumnie, jednak COUNT skupia się na liczbie wierszy, co oznacza, że jego celem nie jest sumowanie wartości, lecz ich zliczanie. W tej sytuacji pytanie dotyczyło liczby niepustych wartości w kolumnie wartosc, a nie sumy tych wartości. Takie błędy często wynikają z mylnego postrzegania funkcji jako wzajemnie zamiennych, podczas gdy każda z nich ma specyficzne zastosowanie i wynika z niej inna logika działania. Warto zatem skupić się na zrozumieniu przeznaczenia i użycia każdej z funkcji agregujących osobno, co pozwoli uniknąć takich nieporozumień w przyszłości. Ważne jest, aby pamiętać o tych różnicach i stosować odpowiednie funkcje zgodnie z potrzebami analizy danych. Poprawne użycie funkcji COUNT pozwala na efektywne zliczanie wartości i jest fundamentalne dla prawidłowego przetwarzania danych w SQL.

Pytanie 24

Proces normalizacji tabel ma na celu

A. weryfikację i poprawę efektywności bazy danych
B. wyłącznie stworzenie tabel oraz powiązań w bazie
C. dodanie danych do bazy
D. wizualizację bazy
Normalizacja tabel jest procesem, który ma na celu organizację struktury bazy danych w taki sposób, aby zminimalizować redundancję danych oraz zapewnić integralność danych. Proces ten polega na podziale dużych tabel na mniejsze i łączeniu ich za pomocą relacji, co pozwala na efektywniejsze zarządzanie danymi. Przykładem normalizacji może być podział tabeli zawierającej informacje o klientach i ich zamówieniach na dwie oddzielne tabele: jedna do przechowywania danych klientów, a druga do danych zamówień, z relacją między nimi. W praktyce normalizacja, zgodna z metodologią Codd'a, obejmuje kilka poziomych form normalnych, takich jak 1NF, 2NF, i 3NF, z których każda wprowadza dodatkowe ograniczenia i zasady. Przy odpowiedniej normalizacji można uniknąć problemów z aktualizacją danych, takich jak anomalie aktualizacji czy usuwania, co jest kluczowe w utrzymywaniu wysokiej jakości danych w systemach bazodanowych.

Pytanie 25

Z ilustracji można odczytać, że użytkownik bazy danych posiada uprawnienia do:

Ilustracja do pytania
A. wyświetlania, dodawania i usuwania danych.
B. wyświetlania, aktualizacji i usuwania danych.
C. dodawania, aktualizacji i usuwania danych.
D. wyświetlania, dodawania i aktualizacji danych.
Na ilustracji widać listę uprawnień do bazy danych w typowym narzędziu administracyjnym (bardzo podobne okno można spotkać np. w phpMyAdminie). Zaznaczone są pola SELECT, UPDATE i DELETE, a niezaznaczone INSERT oraz FILE. W praktyce oznacza to, że użytkownik może odczytywać dane (SELECT), modyfikować istniejące rekordy (UPDATE) oraz je usuwać (DELETE), ale nie ma prawa dodawać nowych wierszy (INSERT) ani operować na plikach na serwerze (FILE). Dlatego poprawna odpowiedź to: „wyświetlania, aktualizacji i usuwania danych”. SELECT odpowiada za wyświetlanie/odczyt danych, UPDATE za aktualizację rekordów, a DELETE za kasowanie danych w tabelach. W administracji bazą danych takie precyzyjne rozróżnienie uprawnień jest jedną z podstawowych dobrych praktyk bezpieczeństwa: użytkownik powinien mieć dokładnie takie prawa, jakich potrzebuje do pracy (zasada najmniejszych uprawnień – least privilege). Na przykład: typowy użytkownik aplikacji raportującej potrzebuje zwykle tylko SELECT, bo ma jedynie oglądać dane. Pracownik działu obsługi klienta może mieć SELECT i UPDATE, aby poprawiać błędne dane klientów, ale niekoniecznie DELETE, żeby przypadkiem nie usuwać rekordów. Z kolei konto techniczne używane przez skrypty migracyjne albo instalator systemu może mieć pełen zestaw: SELECT, INSERT, UPDATE, DELETE. Moim zdaniem warto od razu kojarzyć te nazwy z typowymi poleceniami SQL, bo później, przy pisaniu zapytań w kodzie (PHP, JavaScript z backendem, itp.), dokładnie te same słowa kluczowe pojawiają się w instrukcjach. Jeśli system pokazuje uprawnienia tak jak na obrazku, zawsze patrz najpierw, które checkboxy są zaznaczone, i od razu tłumacz je sobie na: odczyt, dodawanie, zmiana, usuwanie danych.

Pytanie 26

W poniższym kodzie PHP wykonano operację na bazie danych. Której funkcji należy użyć, aby pobrać liczbę zmienionych w tabeli wierszy?

$zapytanie="UPDATE kadra SET stanowisko='Programista' WHERE id < 10";
mysqli_query($db, $zapytanie);
A. mysqli_num_rows()
B. mysqli_affected_rows()
C. mysqli_use_result()
D. mysqli_field_count()
Wybrana odpowiedź jest niestety niepoprawna. Może to wynikać z niezrozumienia różnych funkcji dostępnych w języku PHP do manipulowania danymi w bazach danych MySQL. Funkcja mysqli_field_count() zwraca liczbę pól w wyniku zapytania SELECT, a nie liczbę zmienionych wierszy. Z kolei mysqli_use_result() inicjuje pobieranie wyników zapytania wysłanego do serwera MySQL i nie zwraca informacji o liczbie zmienionych wierszy. Natomiast funkcja mysqli_num_rows() zwraca liczbę wierszy w wyniku zapytania SELECT, a nie liczbę zmienionych wierszy. Do tego celu służy jedynie funkcja mysqli_affected_rows(), która zwraca liczbę wierszy zmienionych, dodanych lub usuniętych przez ostatnie wywołanie funkcji mysqli_query() na serwerze MySQL. Pamiętaj więc, że wybór odpowiedniej funkcji zależy od kontekstu i rodzaju operacji wykonanej na bazie danych.

Pytanie 27

W poniższym zapytaniu SQL, co oznacza symbol gwiazdki w jego wyniku?

SELECT * FROM mieszkancy WHERE imie = 'Anna';
A. wyświetlenie wszystkich rekordów z tabeli mieszkancy
B. zignorowanie warunku dotyczącego imienia
C. pokazanie pola o nazwie '*' (gwiazdka)
D. wyświetlenie wszystkich kolumn z tabeli mieszkancy
W zapytaniu SQL znak gwiazdki (*) nie oznacza wyświetlenia wszystkich rekordów w tabeli, lecz wskazuje, że w wyniku zapytania mamy otrzymać wszystkie kolumny. To ważne rozróżnienie, ponieważ mylenie tych pojęć prowadzi do nieporozumień dotyczących struktury wyników. Każde zapytanie z gwiazdką ograniczone jest jedynie kolumnami nie rekordami. W tym przypadku część WHERE imie = 'Anna' dodatkowo sie mplementuje ograniczenie do konkretnych rekordów co należy do odrębnej części logiki zapytania. Z kolei interpretacja gwiazdki jako pola o nazwie '*' jest błędnym założeniem ponieważ w standardzie SQL nie istnieje możliwość nadania pola o takiej nazwie poprzez użycie gwiazdki. Gdybyśmy chcieli wyświetlić pole o konkretnej nazwie musielibyśmy użyć jego dokładnej nazwy a nie gwiazdki. Interpretacja gwiazdki jako zignorowania warunku WHERE również jest niepoprawna ponieważ WHERE jest integralną częścią zapytania SQL określającą kryteria filtrowania rekordów i działa niezależnie od gwiazdki. Zrozumienie różnic między wyborem kolumn a wyborem rekordów jest kluczowe dla prawidłowego konstruowania zapytań SQL i optymalizacji ich działania w praktycznych zastosowaniach.

Pytanie 28

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

Ilustracja do pytania
A. Kod 1
B. Kod 4
C. Kod 2
D. Kod 3
Kod 2 jest poprawny, ponieważ najlepiej odpowiada przedstawionemu układowi bloków. W tym układzie blok 2 ma style float: left i szerokość 40%, co oznacza, że jest wypływany w lewo i zajmuje 40% dostępnej szerokości. Blok 3 również jest ustawiony z float: left, ale z szerokością 30%, co pozwala na ułożenie go obok bloku 2, o ile suma szerokości nie przekracza 100%. Blok 4 jest ustawiony z float: right i szerokością 30%, co umieszcza go po prawej stronie kontenera. Takie ustawienie float pozwala na zapełnienie przestrzeni między blokiem 2 i 4 blokiem 3, przy zachowaniu równowagi wizualnej. Blok 5 został ustawiony z float: left i szerokością 30%, co pozwala mu na umieszczenie poniżej bloku 3, ale z wyrównaniem do lewej. Taki układ jest częsty w projektowaniu stron, gdzie używa się systemu float do tworzenia responsywnych układów. W praktyce jednak, float jest coraz częściej zastępowany flexboxem lub gridem, które oferują bardziej elastyczne i intuicyjne sposoby zarządzania układem elementów na stronie.

Pytanie 29

W CSS, stosowanie poniższego kodu na stronie z kilkoma akapitami, gdzie każdy składa się z kilku linijek, spowoduje, że

p::first-line
{
    font-size: 150%;
}
A. pierwszy paragraf na stronie będzie miał powiększoną czcionkę w całości
B. cały tekst w paragrafie zostanie powiększony o 150%
C. pierwsza linia każdego z paragrafów będzie miała mniejszą wielkość czcionki od pozostałych linii
D. pierwsza linia każdego paragrafu będzie miała większą czcionkę niż pozostałe linie
Rozważając pozostałe możliwości zauważamy że zapis p::first-line { font-size: 150%; } odnosi się tylko do pierwszej linii każdego paragrafu a nie do całego tekstu paragrafu. Błędne myślenie że całość tekstu paragrafu będzie powiększona o 150% wynika z mylnego zrozumienia zasięgu pseudo-elementu. Pseudo-elementy takie jak ::first-line mają zastosowanie tylko do specyficznych części elementów blokowych w tym przypadku pierwszej linii co oznacza że ich działanie nie rozciąga się na cały paragraf. Podobnie sugerowanie że cała czcionka paragrafu zostanie zmieniona na mniejszą jest niepoprawne ponieważ ::first-line nie zmienia domyślnej wielkości czcionki pozostałych linii. W kontekście CSS rozmiar czcionki dla całego elementu można zmodyfikować bezpośrednio przez selektor elementu a nie przez pseudo-element. Przypisywanie zmiany czcionki tylko do pierwszej linii jest częstym sposobem na wyróżnienie tekstu w sposób który nie ingeruje w ogólny styl i strukturę dokumentu co jest zgodne z najlepszymi praktykami projektowania stron. Takie podejście umożliwia bardziej elegancką i czytelną prezentację informacji co jest kluczowe w tworzeniu intuicyjnych interfejsów użytkownika. Ważne jest aby rozumieć różnice między pseudo-elementami a innymi metodami stylizacji aby dokładnie przewidywać efekty określonych stylów w CSS i skutecznie stosować je do osiągania zamierzonych efektów projektowych. W przypadku chęci zmiany stylu całego paragrafu należałoby bezpośrednio użyć odpowiedniego selektora CSS dla całego elementu bez ograniczania się do pseudo-elementu first-line co pozwala na pełną kontrolę nad wszystkimi aspektami wizualnymi tekstu w danym kontekście.

Pytanie 30

Jakie zapytanie należy użyć, aby wyświetlić tylko imię, nazwisko oraz ulicę wszystkich mieszkańców?

Ilustracja do pytania
A. SELECT imie, nazwisko, ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id
B. SELECT * FROM Mieszkancy JOIN Adresy ON Adresy.id = Mieszkancy.Adresy.id
C. SELECT imie, nazwisko, ulica FROM Mieszkancy, Adresy ON Mieszkancy.Adresy_id = Adresy.id
D. SELECT * FROM Mieszkancy, Adresy ON Mieszkancy.id = Adresy.id
Odpowiedź SELECT imie nazwisko ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id jest trafna, bo korzysta z dobrej składni dołączenia tabel w SQL. Dzięki temu wyciągasz tylko te kolumny, które są Ci potrzebne. W tym przypadku, używając JOIN, łączysz tabele Mieszkancy i Adresy na podstawie odpowiednich kluczy, co dobrze odpowiada zasadom baz danych. Klucz obcy Adresy_id w tabeli Mieszkancy wskazuje na id w tabeli Adresy, co jest super ważne, bo zapewnia, że dane są spójne. To zapytanie pokazuje, jak optymalizować SQL, bo ogranicza wybór do niezbędnych kolumn (imie, nazwisko, ulica), co zmniejsza obciążenie bazy i przyspiesza wyrzucanie wyników. W praktyce takie podejście jest fajne do efektywnego zarządzania danymi w relacyjnych bazach. Dobrze jest mieć w głowie, jak używać JOIN oraz wybierać konkretne kolumny, bo to naprawdę pomaga w pisaniu bardziej zrozumiałych i wydajnych zapytań, co jest przydatne w pracy zawodowej.

Pytanie 31

Aby za pomocą CSS zdefiniować przedstawione na rysunku opływanie obrazu tekstem należy w stylu obrazu wprowadzić zapis

Ilustracja do pytania
A. float: left;
B. clear: both;
C. float: right;
D. table: left;
Twoja odpowiedź nie jest prawidłowa. Wszystkie podane błędne odpowiedzi są niepoprawne, ponieważ nie tworzą żądanego efektu opływania obrazu przez tekst. 'clear: both;' jest własnością CSS, która służy do zapobiegania opływaniu, a nie jego tworzeniu. Jest używana, gdy nie chcemy, aby dany element był opływany przez inne. 'table: left;' nie jest istniejącą własnością CSS, i nie ma związanego z nią konkretnego efektu. Właściwość 'float: left;' powoduje, że obraz zostaje przesunięty na lewą stronę strony, co powoduje, że tekst opływa go od prawej strony, a nie od lewej, jak to jest wymagane w pytaniu. Pamiętaj, aby zawsze dobrze zrozumieć, jakie efekty daje użycie konkretnych właściwości CSS, zanim zastosujesz je w praktyce.

Pytanie 32

Jaką operację trzeba wykonać podczas edytowania zdjęcia w programie graficznym, aby zamienić białe tło na przezroczystość?

A. Skadrować obraz
B. Dodać kanał alfa
C. Maksymalnie zmniejszyć jasność
D. Zmienić saturację obrazu
Aby zamienić białe tło na przezroczystość w edytorze grafiki, kluczowym krokiem jest dodanie kanału alfa do obrazu. Kanał alfa jest używany do zarządzania przezroczystością pikseli w obrazie rastrowym, co pozwala na zachowanie tylko tych elementów, które mają być widoczne. Proces ten jest szczególnie istotny przy pracy z grafiką stosowaną w projektach multimedialnych, takich jak strony internetowe, animacje czy prezentacje. Po dodaniu kanału alfa, można użyć narzędzi selekcji, takich jak różdżka czy lasso, aby zaznaczyć obszar białego tła i usunąć go, co skutkuje uzyskaniem przezroczystości. Dobrą praktyką jest również zapisanie pliku w formacie obsługującym przezroczystość, jak PNG, co zapewnia, że efekt końcowy zostanie zachowany, a tło będzie rzeczywiście przezroczyste. Przykład zastosowania można znaleźć w tworzeniu grafik do mediów społecznościowych, gdzie przezroczystość tła pozwala na lepsze dopasowanie elementów do różnych szablonów.

Pytanie 33

W zaprezentowanym fragmencie algorytmu użyto

Ilustracja do pytania
A. jeden blok decyzyjny.
B. trzy bloki operacyjne (procesy).
C. jedną pętlę.
D. dwie pętle.
Niepoprawne odpowiedzi wynikają z błędnego zrozumienia struktury algorytmu. Opcja dotycząca dwóch pętli zakłada istnienie dwóch niezależnych cykli co nie znajduje potwierdzenia w przedstawionym schemacie. Taki błąd może wynikać z nieumiejętności rozróżniania złożonych konstrukcji czy mylenia pętli z blokami decyzyjnymi. Jedna pętla oznacza jedną sekwencję powtarzającą się co jest wyraźnie zilustrowane przez powrót strzałki w schemacie. Odpowiedź sugerująca jeden blok decyzyjny nie uwzględnia faktu że blok decyzyjny jest częścią struktury warunkowej a nie pętli. Decyzje wpływają na przepływ sterowania ale nie tworzą same w sobie powtarzającej się sekwencji. Trzy bloki operacyjne odnoszą się do liczby operacji w algorytmie lecz nie implikują pętli. Bloki operacyjne wykonują konkretne zadania jak obliczenia czy przypisania ale nie zmieniają struktury iteracyjnej. Zrozumienie roli każdego z tych elementów jest kluczowe w analizie algorytmów i projektowaniu efektywnego kodu.

Pytanie 34

<source src="plik.mp4" type="video/mp4">
Aby osadzić plik wideo na stronie WWW, przedstawiony kod HTML5 należy umieścić wewnątrz znaczników:
A. <div> </div>
B. <video> </video>
C. <section> </section>
D. <embed> </embed>
Poprawna odpowiedź to umieszczenie znacznika `<source>` wewnątrz `<video>...</video>`. W HTML5 to właśnie element `<video>` jest kontenerem odpowiedzialnym za osadzanie plików wideo na stronie WWW. Atrybuty takie jak `controls`, `autoplay`, `loop`, `muted`, `width` czy `height` przypisujemy właśnie do `<video>`, a nie do `<source>`. Znacznik `<source>` służy głównie do wskazania konkretnego pliku multimedialnego i jego typu MIME, np.: `<video controls width="640" height="360"><source src="film.mp4" type="video/mp4"><source src="film.webm" type="video/webm">Twoja przeglądarka nie obsługuje elementu video.</video>`. Przeglądarka przechodzi po kolei po elementach `<source>` i wybiera pierwszy format, który potrafi odtworzyć. To jest zgodne ze specyfikacją HTML Living Standard (WHATWG) oraz zaleceniami W3C dotyczącymi multimediów w sieci. W praktyce, w projektach komercyjnych, często dodaje się kilka formatów (np. MP4, WebM), właśnie po to, by zapewnić maksymalną kompatybilność między różnymi przeglądarkami i systemami. Moim zdaniem warto od razu wyrabiać sobie nawyk pisania pełnej, semantycznie poprawnej struktury: `<video>` jako główny element odtwarzacza, w środku jeden lub więcej `<source>` i ewentualnie tekst alternatywny. Dzięki temu kod jest czytelny, łatwiej go stylować w CSS, a także lepiej zachowuje się w kontekście dostępności (np. czytniki ekranu widzą, że to element wideo). Dodatkowo, `<video>` można łatwo obsługiwać z poziomu JavaScript, korzystając z jego API (play, pause, currentTime, volume itd.), co w praktyce daje sporą kontrolę nad odtwarzaniem multimediów na stronie.

Pytanie 35

W tabeli artykuły wykonano następujące instrukcje dotyczące uprawnień użytkownika jan:

GRANT ALL PRIVILEGES ON artykuly TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan
Po zrealizowaniu tych instrukcji pracownik jan będzie uprawniony do
A. tworzenia tabeli i wypełniania jej danymi
B. wyświetlania zawartości tabeli
C. tworzenia tabeli oraz edytowania danych w niej
D. edycji danych oraz przeglądania tabeli
Jan, po wydaniu polecenia GRANT ALL PRIVILEGES ON artykuly TO jan, miał pełne uprawnienia do wszystkich operacji na tabeli artykuly. Jednakże, po wykonaniu polecenia REVOKE SELECT, UPDATE ON artykuly FROM jan, jego uprawnienia do przeglądania danych (SELECT) oraz aktualizacji danych (UPDATE) zostały odebrane. Oznacza to, że Jan zachowuje możliwość tworzenia nowych tabel oraz wypełniania ich danymi (INSERT), ponieważ nie został ograniczony w tym zakresie. Możliwości tworzenia tabeli i wypełniania jej danymi są częścią przyznanych uprawnień. W standardzie SQL, komendy GRANT i REVOKE służą odpowiednio do przyznawania i odbierania uprawnień użytkownikom. W praktycznym zastosowaniu, takie operacje są kluczowe dla zarządzania bezpieczeństwem i dostępem do danych w bazach danych, co zapobiega nieautoryzowanym zmianom i zabezpiecza integralność danych.

Pytanie 36

W języku C++ stworzono zmienną char zm1[10]; Czym jest ta zmienna?

A. tablicą łańcuchów
B. liczbą
C. znakiem
D. tablicą znaków
Zmienna char zm1[10] w języku C++ jest tablicą znaków, co oznacza, że może przechowywać do 10 pojedynczych znaków. Tablice znaków są szeroko stosowane w programowaniu do reprezentacji łańcuchów tekstowych. W C++ tablice są strukturami, które umożliwiają przechowywanie kolekcji elementów tego samego typu. Zmienna char zm1[10] alokuje pamięć dla 10 znaków, gdzie każdy znak jest typu char. Dzięki temu możemy wykorzystać taką tablicę do przechowywania napisów, takich jak imiona, tytuły czy inne teksty. Przykładowo, możemy przypisać do tej tablicy łańcuch znaków: 'Hello', co wymaga dodatkowego miejsca dla znaku null ('\0'), co oznacza koniec łańcucha. W praktyce, aby przypisać wartość do zmiennej, możemy użyć funkcji strncpy lub strcat. Zgodnie z dobrymi praktykami, warto zawsze pamiętać o maksymalnym rozmiarze tablicy, aby uniknąć przepełnienia bufora, które może prowadzić do poważnych błędów w programie. Przy tworzeniu aplikacji, które operują na tekstach, znajomość tablic znaków jest kluczowa i niezbędna dla prawidłowego zarządzania danymi tekstowymi."

Pytanie 37

Na podstawie przydzielenia wartości do zmiennych w języku PHP można zauważyć, że

$zmienna1 = 15;
$zmienna2 = "15";
$zmienna3 = (string) $zmienna1;
A. zmienna1 i zmienna3 mają ten sam typ.
B. zmienna2 i zmienna3 mają ten sam typ.
C. wszystkie zmienne mają ten sam typ.
D. zmienna1 i zmienna2 mają ten sam typ.
Dobrze widzisz, że $zmienna2 i $zmienna3 mają ten sam typ. Obie przechowują wartości jako stringi, co jest spoko. $zmienna2 to łańcuch z "15", a $zmienna3 to wynik rzutowania $zmienna1 (która jest liczbą całkowitą) na string. W PHP takie rzutowanie to normalna sprawa i nie zmienia wartości, tylko jej format. W praktyce, jeżeli dobrze rozumiesz typy danych, to ułatwia Ci to życie w programowaniu. Różne typy mogą wpływać na to, jak działają operacje i jak dane są przechowywane. Warto więc pamiętać, żeby w kodzie jasno definiować typy zmiennych i używać rzutowania tam, gdzie trzeba, bo to pomaga unikać błędów. Jak się w to wczujesz, to łatwiej będzie Ci ogarniać pamięć i optymalizować kod, zwłaszcza w większych projektach.

Pytanie 38

Wskaż najefektywniejszą metodę wyczyszczenia wszystkich danych z tabeli adresy, nie wpływając na jej strukturę

A. DELETE * FROM adresy;
B. DROP TABLE adresy;
C. DELETE TABLE adresy;
D. TRUNCATE TABLE adresy;
Usunięcie wszystkich rekordów z tabeli adresy bez usuwania jej struktury można zrealizować na wiele sposobów, jednak nie wszystkie z nich są właściwe. DROP TABLE adresy; jest komendą, która usuwa całą tabelę wraz z jej strukturą oraz danymi, co jest całkowicie sprzeczne z założeniem pytania. Takie podejście może prowadzić do poważnych problemów w aplikacjach, które polegają na istnieniu tabeli, ponieważ po wykonaniu tej komendy tabela przestaje istnieć, co uniemożliwia dalsze operacje na niej. DELETE * FROM adresy; wydaje się być poprawną próbą usunięcia danych, ale składnia ta jest błędna, ponieważ w SQL nie używa się znaku „*” w kontekście polecenia DELETE. Poprawna składnia powinna być DELETE FROM adresy;, co z kolei prowadzi do przetwarzania każdego rekordu w tabeli i może być znacznie wolniejsze w przypadku dużych zbiorów danych. DELETE również nie resetuje identyfikatorów autoinkrementacyjnych, co może być niepożądanym efektem. Z kolei DELETE TABLE adresy; to niewłaściwe wyrażenie, ponieważ SQL nie rozpoznaje komendy DELETE TABLE. W rzeczywistości, by usunąć tabelę, musielibyśmy użyć DROP TABLE. Zasadniczo, błędne odpowiedzi wskazują na niepełne zrozumienie zasadności i syntaktyki SQL oraz różnic pomiędzy operacjami na danych. Warto zatem przywiązywać wagę do detali, aby unikać nieefektywnych i błędnych rozwiązań, szczególnie w pracy z bazami danych, gdzie każdy błąd może prowadzić do utraty cennych danych.

Pytanie 39

Ile razy powtórzy się pętla w JavaScript?

var x=1, i=0;
do{
    x*=3;
    i++;
}
while(x!=27);
A. 2 razy
B. 27 razy
C. 26 razy
D. 3 razy
W przedstawionym kodzie JavaScript, pętla do-while wykonuje się do momentu, gdy zmienna x nie jest równa 27. Zaczynając od wartości x równej 1, przy każdym przejściu przez pętlę zmienna x jest mnożona przez 3. Kolejno, x przyjmuje wartości: 3, 9, 27. Zatem pętla wykonuje się trzy razy, ponieważ dopiero po trzecim cyklu x osiąga wartość 27, co powoduje zakończenie pętli. Do-while zawsze wykonuje przynajmniej jedno przejście, niezależnie od warunku końcowego, dzięki czemu jest przydatna w sytuacjach, gdy operacja musi być przeprowadzona co najmniej raz. Dobrym przykładem wykorzystania tego mechanizmu jest oczekiwanie na spełnienie określonego warunku, np. uzyskanie poprawnej odpowiedzi od użytkownika. Warto zwrócić uwagę, że w przypadku operacji matematycznych wymagających określonej liczby iteracji, pętla do-while zapewnia prostotę i przejrzystość implementacji, zgodnie z dobrymi praktykami zapewniającymi łatwość w czytaniu i utrzymaniu kodu.

Pytanie 40

Na tabeli dania, której wiersze zostały pokazane poniżej, wykonano przedstawioną kwerendę:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze ta kwerenda?
idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
63wierzbowy przysmak35
72Mintał w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 13
B. 2
C. 8
D. 5
Twoja odpowiedź jest jak najbardziej trafna. To zapytanie SQL, które mamy, wybiera z tabeli 'dania' te wiersze, gdzie 'typ' jest mniejszy niż 3, a 'cena' nie przekracza 30. Wiem, że dodanie 'LIMIT 5' może wydawać się istotne, ale w tym przypadku tak naprawdę nie wpływa to na wynik, bo tylko jeden wiersz pasuje – danie 'Gazpacho'. Warto pamiętać, że w SQL, gdy używamy warunku 'WHERE', łączymy je z operatorem AND, co oznacza, że muszą być spełnione jednocześnie. Klauzula 'LIMIT' jest przydatna w różnych sytuacjach, ale tutaj, nawet z ograniczeniem do 5, i tak mamy tylko jeden wynik.