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: 16 maja 2025 18:27
  • Data zakończenia: 16 maja 2025 18:57

Egzamin zdany!

Wynik: 24/40 punktów (60,0%)

Wymagane minimum: 20 punktów (50%)

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

Jak brzmi nazwa metody sortowania, która polega na wielokrotnym analizowaniu kolejnych elementów tablicy oraz zamianie miejscami sąsiadujących elementów, aby utrzymać porządek według ustalonej reguły?

A. Sortowanie przez wybór
B. Sortowanie bąbelkowe
C. Sortowanie kubełkowe
D. Sortowanie szybkie
Wybór sortowania przez wybór, sortowania szybkiego oraz sortowania kubełkowego odnosi się do różnych metod organizacji danych, które różnią się zarówno w zakresie algorytmicznym, jak i zastosowaniami praktycznymi. Sortowanie przez wybór (Selection Sort) polega na znajdowaniu najmniejszego (lub największego) elementu z nieposortowanej części tablicy i zamienieniu go z pierwszym elementem tej części. To podejście jest mniej efektywne dla dużych zbiorów danych, ponieważ również ma złożoność O(n²) i nie korzysta z optymalizacji, które mogłyby przyspieszyć proces sortowania. Z kolei sortowanie szybkie (Quick Sort) to bardziej zaawansowana technika, która dzieli tablicę na mniejsze podtablice i sortuje je rekurencyjnie, co daje średnią złożoność O(n log n). To sprawia, że jest preferowane w aplikacjach, gdzie wydajność jest kluczowa. Sortowanie kubełkowe (Bucket Sort) z kolei polega na podziale danych na kilka "kubełków" i sortowaniu ich wewnętrznie, co również ma na celu zwiększenie efektywności sortowania, zwłaszcza w przypadku danych rozłożonych równomiernie. Typowe błędy myślowe, które mogą prowadzić do niepoprawnych wniosków, to mylenie różnorodnych technik sortowania na podstawie ich nazwy lub złożoności, a także zakładanie, że prostsze metody, jak sortowanie bąbelkowe, są wystarczające dla wszystkich przypadków bez uwzględnienia wymagań dotyczących wydajności.

Pytanie 2

W tabeli podzespoly należy zaktualizować wartość pola URL na "toshiba.pl" dla wszystkich rekordów, w których pole producent jest równe TOSHIBA. Jak będzie wyglądała ta zmiana w języku SQL?

A. UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';
B. UPDATE podzespoly SET URL = 'toshiba.pl';
C. UPDATE producent='TOSHIBA' SET URL = 'toshiba.pl';
D. UPDATE podzespoly.producent='TOSHIBA' SET URL = 'toshiba.pl';
Aby zaktualizować wartość pola URL w tabeli podzespoly na 'toshiba.pl' dla wszystkich rekordów, gdzie pole producent jest równe 'TOSHIBA', należy użyć instrukcji UPDATE w języku SQL. Właściwa składnia tej instrukcji to: UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';. W tej instrukcji UPDATE najpierw wskazujemy, której tabeli dotyczy modyfikacja, w tym przypadku 'podzespoly'. Następnie określamy, jakie pole chcemy zaktualizować, czyli 'URL', oraz ustawiamy nową wartość, którą w tym przypadku jest 'toshiba.pl'. Kluczowym elementem tej operacji jest klauzula WHERE, która filtruje rekordy, które mają być zaktualizowane; w tym przypadku tylko te, które mają producenta 'TOSHIBA'. Bez klauzuli WHERE wszystkie rekordy w tabeli zostałyby zmodyfikowane, co mogłoby prowadzić do utraty danych. Przykład ilustruje, jak precyzyjnie można zarządzać danymi w bazie poprzez odpowiednie warunki. Tego typu operacje są zgodne z normami SQL, co zapewnia ich efektywność i bezpieczeństwo w zarządzaniu danymi.

Pytanie 3

Aby umożliwić wybór kilku opcji jednocześnie w rozwijanej liście formularza HTML, należy dodać atrybut do znacznika select

Ilustracja do pytania
A. value
B. multiple
C. disabled
D. size
Atrybut size określa, ile opcji w pole listy rozwijalnej będzie widocznych, ale to nie umożliwia zaznaczenia wielu opcji naraz. Użytkownik wciąż może wybrać tylko jedną wartość, a zmiana rozmiaru może wprowadzać w błąd co do tego, jak działa lista. Atrybut value jest z kolei używany w znaczniku option, żeby określić wartość, która trafi na serwer po zaznaczeniu danej opcji, ale zmiana value nie wpływa na wybór wielu opcji. Często ludzie sądzą, że manipulacja tymi wartościami w znaczniku option coś zmienia, ale to błędne. Atrybut disabled sprawia, że lista staje się nieaktywna i użytkownik nie może zaznaczyć żadnych opcji. To ma sens, gdy niektóre opcje są wyłączone. Jak wrzucisz disabled do select, to blokuje całą interakcję i nie da się wybrać wielu opcji. Wybór odpowiednich atrybutów w HTML wymaga zrozumienia, jak to działa, żeby formularze były intuicyjne i faktycznie działały jak trzeba.

Pytanie 4

Skrypt PHP wyświetla aktualny czas w formacie godzina:minuta:sekunda, na przykład 15:38:20. Czas w tym formacie zostanie uzyskany dzięki funkcji

A. time("H:i:s");
B. date("H:i:s");
C. time("G:m:s");
D. date("G:m:s");
Wybór time("H:i:s") jako metody zwracającej aktualny czas w pożądanym formacie jest błędny, ponieważ funkcja time() nie formatuje daty ani czasu. Zamiast tego, time() zwraca czas w postaci znacznika czasu (timestamp) – liczby sekund, które upłynęły od 1 stycznia 1970 roku, co jest znane jako Unix Epoch. Dlatego wywołanie time("H:i:s") nie zadziała, ponieważ ta funkcja nie akceptuje parametrów formatujących. Kolejną nieprawidłową odpowiedzią jest date("G:m:s"). Chociaż funkcja date() jest stosowana do formatowania czasu, pole 'G' zwraca godziny w 24-godzinnym formacie, ale bez wiodących zer (tak jak 'H'), co może prowadzić do niepoprawnego wyświetlania godzin mniejszych niż 10. Dodatkowo, 'm' odnosi się do miesięcy, a nie minut, co czyni to podejście błędnym we wszystkich aspektach. Wreszcie, w odpowiedzi time("G:m:s") ponownie pojawia się problem ze zrozumieniem funkcji time(), która nie jest używana do formatowania czasu, a zamiast tego służy tylko do uzyskania znacznika czasu. Typowe błędy myślowe związane z tymi odpowiedziami obejmują mylenie funkcji do pozyskiwania danych z funkcjami do ich formatowania oraz niepełne zrozumienie składni i możliwości dostępnych funkcji PHP. Rekomenduje się zawsze dokładne zapoznanie się z dokumentacją PHP oraz praktyczne testowanie funkcji w różnych scenariuszach, aby lepiej zrozumieć ich zastosowanie i ograniczenia.

Pytanie 5

W dołączonym fragmencie kodu CSS kolor został przedstawiony w formie

Ilustracja do pytania
A. HSL
B. CMYK
C. szesnastkowej
D. dziesiętnej
Kolor zapisany w postaci szesnastkowej w CSS to popularny sposób definiowania barw na stronach internetowych. Szesnastkowy format koloru wykorzystuje sześć znaków, które są kombinacją cyfr oraz liter od A do F, poprzedzone znakiem hash (#). Każda para znaków reprezentuje wartość jednego z trzech podstawowych kolorów RGB: czerwonego, zielonego i niebieskiego. Na przykład kolor #008000 składa się z czerwonego o wartości 00, zielonego o wartości 80 i niebieskiego o wartości 00. Szesnastkowy zapis jest preferowany ze względu na swoją kompaktowość i zgodność ze standardami sieciowymi. W praktyce, projektanci często używają narzędzi do konwersji kolorów, aby uzyskać pożądane odcienie, co ułatwia zastosowanie odpowiednich wartości szesnastkowych w kodzie. Format ten pozwala także na tworzenie skróconych wersji, jak #FFF dla bieli. Jego użycie jest powszechne i dobrze zrozumiałe w branży, co czyni go uniwersalnym wyborem w projektach webowych.

Pytanie 6

W jaki sposób można określić w CSS styl dla hiperłącza, aby link, który nie był odwiedzony, miał kolor żółty, natomiast odwiedzony link był w kolorze zielonym?

A. a:link { color: yellow; } a:visited { color: green; }
B. a:hover { color: yellow; } a:visited { color: green; }
C. a:hover { color: green; } a.link { color: yellow; }
D. a:visited { color: yellow; } a:link { color: green; }
Właściwa odpowiedź definiuje style CSS dla hiperłączy w sposób zgodny z ich rolą i statusami. Selektor `a:link` odpowiada za stylizację nieodwiedzonych linków, a w tym przypadku ustawia kolor tekstu na żółty. Z kolei selektor `a:visited` odnosi się do linków, które użytkownik już odwiedził, i ustawia ich kolor na zielony. Taka separacja stylizacji pozwala na intuicyjne rozróżnienie między linkami, co jest korzystne z punktu widzenia użyteczności i dostępności. Praktyczne zastosowanie tych selektorów pozwala na łatwe dostosowanie wyglądu strony internetowej w zależności od stanu hiperłączy, co może być przydatne w nawigacji. Zgodnie z dobrymi praktykami, zawsze warto testować wygląd strony w różnych przeglądarkach, ponieważ niektóre z nich mogą interpretować style CSS nieco inaczej. Dodatkowo, warto pamiętać o dostępności - kontrastujące kolory mogą znacznie poprawić czytelność i ułatwić nawigację osobom z wadami wzroku.

Pytanie 7

W tabeli mieszkancy znajdują się dane o osobach z całego kraju. Aby ustalić, ile unikalnych miast występuje w tej tabeli, trzeba zapisać kwerendę

A. SELECT COUNT(DISTINCT miasto) FROM mieszkancy;
B. SELECT COUNT(miasto) FROM mieszkancy DISTINCT;
C. SELECT DISTINCT miasto FROM mieszkancy;
D. SELECT COUNT(miasto) FROM mieszkancy;
Wybór odpowiedzi "SELECT COUNT(DISTINCT miasto) FROM mieszkancy;" jest naprawdę trafny. Używasz funkcji COUNT razem z DISTINCT, co pozwala na zliczenie tylko unikalnych miast w tabeli 'mieszkancy'. Funkcja COUNT liczy wszystkie wiersze, a DISTINCT usuwa duplikaty, dzięki czemu dostajemy dokładną liczbę miast. Fajnie jest to wykorzystać, gdy analizujesz dane demograficzne – wtedy wiesz, jakie masz rozkłady w różnych miastach. W bazach danych to standardowy sposób, bo dzięki temu unikasz powielania danych i masz lepsze analizy. Ważne jest też, żeby pamiętać o wydajności zapytań; połączenie DISTINCT z COUNT może być bardziej efektywne niż próba szukania duplikatów później. No i zasady normalizacji bazy danych? One rzeczywiście pomagają w tym, żeby dane były uporządkowane, co ułatwia ich przetwarzanie i analizowanie.

Pytanie 8

Możliwość utworzenia konta użytkownika jan z hasłem janPass można osiągnąć przy pomocy polecenia

A. CREATE USER 'jan'@'localhost' IDENTIFIED BY 'janPass';
B. CREATE USER 'jan'@'%localhost' IDENTIFIED VIA mysql_native_password USING 'janPass';
C. CREATE USER 'jan'@'localhost';
D. CREATE USER 'jan'@'localhost' PASSWORD EXPIRE;
Odpowiedź ta jest poprawna, ponieważ prawidłowo wykorzystuje składnię polecenia SQL do tworzenia użytkownika w bazie danych MySQL. Polecenie 'CREATE USER 'jan'@'localhost' IDENTIFIED BY 'janPass';' tworzy nowego użytkownika o nazwie 'jan' z hasłem 'janPass', które jest wymagane do autoryzacji. Użycie 'IDENTIFIED BY' jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa, ponieważ pozwala na bezpośrednie zdefiniowanie hasła w momencie tworzenia konta użytkownika. W praktyce, stworzenie użytkownika z odpowiednim hasłem jest kluczowym krokiem w zarządzaniu bazą danych, zwłaszcza w kontekście bezpieczeństwa danych. Umożliwia to ograniczenie dostępu do zasobów bazy danych tylko do autoryzowanych użytkowników. Dodatkowo, w codziennej pracy należy regularnie aktualizować hasła użytkowników oraz stosować złożone hasła, aby zwiększyć poziom bezpieczeństwa. Warto również zaznaczyć, że w nowoczesnych wersjach MySQL możliwe jest użycie dodatkowych opcji, takich jak 'REQUIRE SSL', dla podniesienia poziomu zabezpieczeń przy nawiązywaniu połączeń.

Pytanie 9

Aby za pomocą instrukcji SELECT uzyskać listę nazwisk osób mieszkających na osiedlu, przy czym nazwiska te nie mogą się powtarzać, należy sformułować zapytanie w następujący sposób

A. SELECT TOP 10 nazwisko FROM mieszkancy
B. SELECT nazwisko FROM mieszkancy ORDER BY nazwisko
C. SELECT AVG(nazwisko) FROM mieszkancy
D. SELECT DISTINCT nazwisko FROM mieszkancy
Odpowiedź "SELECT DISTINCT nazwisko FROM mieszkancy;" jest prawidłowa, ponieważ użycie klauzuli DISTINCT pozwala na wyświetlenie unikalnych wartości z kolumny 'nazwisko', eliminując wszelkie duplikaty. W praktyce jest to niezwykle przydatne, gdyż często zdarza się, że w bazach danych ta sama informacja może być wprowadzana wielokrotnie, co prowadzi do nieczytelnych raportów. Dzięki zastosowaniu klauzuli DISTINCT, możemy uzyskać czysty i zrozumiały zbiór danych, co jest zgodne z najlepszymi praktykami w analizie danych. Na przykład, w sytuacji, gdy chcemy uzyskać listę wszystkich nazwisk mieszkańców danego osiedla, DISTINCT pozwala na oszczędność czasu w późniejszej obróbce danych, eliminując potrzebę ręcznej filtracji wyników. Zastosowanie DISTINCT jest również standardem w wielu zapytaniach SQL, co czyni tę technikę fundamentalną w efektywnym zarządzaniu bazami danych oraz analizy informacji. Warto dodać, że klauzula DISTINCT może być używana z różnymi rodzajami danych, co pozwala na jej wszechstronność.

Pytanie 10

Aby baza danych działała poprawnie i konsekwentnie, konieczne jest wprowadzenie w każdej tabeli

A. klucza PRIMARY KEY z wartością NOT NULL i UNIQUE
B. klucza obcego z wartością NOT NULL i UNIQUE
C. kluczy PRIMARY KEY i FOREIGN KEY
D. klucza FOREIGN KEY z wartością NOT NULL
Każda z pozostałych opcji jest błędna z perspektywy podstawowych zasad projektowania baz danych. Klucz FOREIGN KEY jest ważnym elementem w relacyjnych bazach danych, jednak jego sama obecność nie wystarcza do zapewnienia integralności danych w tabeli. Klucz obcy służy jako odniesienie do klucza głównego innej tabeli, co pozwala na łączenie danych, ale nie gwarantuje, że każdy rekord w tabeli będzie miał unikalny identyfikator. W przypadku wartości NOT NULL, nie jest to wymagane dla klucza FOREIGN KEY, ponieważ klucz obcy może odnosić się do wartości NULL w tabeli głównej. Wprowadzenie ograniczenia UNIQUE na kluczu obcym również nie jest konieczne, ponieważ jego głównym celem jest relacja pomiędzy tabelami, a nie zapewnienie unikalności w obrębie jednej tabeli. Dodatkowo, klucz PRIMARY KEY z wartością NOT NULL i UNIQUE jest niezbędny, ponieważ to właśnie te cechy zapewniają, że tabela będzie dobrze zorganizowana i efektywna. Dlatego też, aby zapewnić spójność i integralność danych, klucz PRIMARY KEY odgrywa kluczową rolę, a inne opcje nie mogą zastąpić jego fundamentalnych właściwości.

Pytanie 11

Po wykonaniu przedstawionego kodu PHP, w zmiennej $napis zostaje zapisany ciąg znaków.

$napis = "Programowanie w PHP";
$napis = substr($napis, 3, 5);

A. gramo
B. ogram
C. og
D. gr
W przypadku analizy funkcji substr() kluczowe jest zrozumienie jak działają indeksy i jak funkcja operuje na ciągach znaków. Przyjmowanie błędnych założeń co do indeksowania jest częstym błędem wśród programistów zwłaszcza u początkujących. Indeksy w PHP zaczynają się od zera co oznacza że pierwszy znak ciągu ma indeks 0 drugi ma indeks 1 i tak dalej. W podanym kodzie użyta jest funkcja substr() z parametrami 3 i 5 co oznacza że zaczynamy od czwartego znaku i wycinamy pięć znaków. Niepoprawne odpowiedzi mogą wynikać z braku uwzględnienia indeksowania od zera lub błędnej interpretacji długości wycinka. Przy wyborze odpowiedzi 'og' czy 'ogram' można podejrzewać pomyłkę w zrozumieniu jak działa długość wycinka oraz gdzie dokładnie zaczyna się wycinanie. Może to wynikać z błędnego wyobrażenia jak indeksy przypisują się do liter w danym ciągu. Ważne jest aby dokładnie śledzić jak indeksy przyporządkowują się do liter co pozwala na bardziej precyzyjne operowanie na napisach. Funkcja substr() jest jedną z podstawowych w PHP i jej zrozumienie jest niezbędne do efektywnego manipulowania ciągami znaków. Przy pracy z danymi tekstowymi warto stosować dobre praktyki w zakresie czytelności kodu oraz odpowiedniego nazywania zmiennych co pozwala unikać nieporozumień i zwiększa czytelność kodu.

Pytanie 12

Wartości, które może przyjąć zmienna typu double, to:

A. 1979-12-05; 12:33
B. 2.4; 4; 3.2
C. "Ala"; 'd'
D. 1,44; 2,55
Wszystkie przedstawione w pytaniu odpowiedzi, które nie dotyczą typowych wartości zmiennych typu double, zawierają błędne koncepcje. Przykłady 1979-12-05 i 12:33 są reprezentacjami daty oraz czasu, które w większości języków programowania są traktowane jako różne typy danych (np. Date, Time) i nie są odpowiednie dla zmiennych typu double. Problem pojawia się, gdy mylimy reprezentację danych z ich rzeczywistym typem. Z kolei odpowiedzi "Ala" oraz 'd' to ciągi znaków, które w ogóle nie mogą być przypisane do zmiennej typu double, ponieważ ten typ przeznaczony jest wyłącznie dla wartości numerycznych. Dodatkowo typowe błędy myślowe związane z tymi odpowiedziami mogą wynikać z braku zrozumienia, jakie wartości mogą być przechowywane w zmiennych o różnych typach. Warto podkreślić znaczenie zrozumienia podstawowych typów danych, co jest kluczowe dla programowania. Znajomość typów danych oraz ich zastosowań w kontekście kodowania przyczynia się do tworzenia bardziej efektywnego i czytelnego kodu, co jest zgodne z najlepszymi praktykami w inżynierii oprogramowania.

Pytanie 13

W języku JavaScript, w programowaniu obiektowym, zapis this.zawod w przedstawionym kodzie oznacza

function Uczen(){
  this.imie = "";
  this.nazwisko = "";
  this.technik = 'informatyk';
  this.zawod = function(){
    return this.technik;
  };
}

A. klasę
B. metodę
C. konstruktor
D. właściwość
Kod JavaScript używa funkcji do tworzenia obiektów, co może być mylące. Kiedy wskazujesz this.zawod, to pokazujesz, że to jest metoda, ale wybór odpowiedzi klasa jest nieprawidłowy. JavaScript nie działa z klasami jak w Javie czy C#. Klasy pojawiły się dopiero w ES6 jako taki dodatek do funkcji konstrukcyjnych. Odpowiedź metoda to w sumie strzał w dziesiątkę, bo w obiektach funkcja przypisana do właściwości to właśnie metoda, która działa na danych obiektu. Wybór konstruktor też jest błędny, bo konstruktor to specjalna funkcja do tworzenia nowych obiektów, i w naszym przykładzie to ta funkcja Uczen. Z kolei odpowiedź właściwość jest myląca, bo choć this.zawod to właściwość, która trzyma funkcję, to jest też metodą. Warto zrozumieć różnice między właściwościami a metodami, bo to jest kluczowe w programowaniu obiektowym w JavaScript.

Pytanie 14

Atrybut value w formularzu XHTML

A. określa wartość domyślną
B. ustawia pole jako tylko do odczytu
C. określa nazwę pola
D. ogranicza maksymalną długość pola
Atrybut 'value' w polu formularza XHTML pełni kluczową rolę w określeniu wartości początkowej, która jest wyświetlana w danym polu tekstowym. W przypadku elementu, wartość atrybutu 'value' jest predefiniowaną odpowiedzią, która pojawia się w polu, gdy formularz jest załadowany. To pozwala programistom na wprowadzenie domyślnych danych, co jest szczególnie przydatne w kontekście ułatwienia wprowadzania informacji przez użytkowników. Na przykład, jeśli mamy formularz, w którym użytkownik ma podać swoje imię, możemy ustawić 'value' na 'Jan', co sprawi, że pole wypełni się automatycznie tą wartością, dając użytkownikowi wskazówkę. Wartość ta może być również używana do ułatwienia wprowadzania danych w przypadku, gdy formularz jest ponownie wyświetlany po błędzie. Zgodnie z dokumentacją W3C dotyczącą XHTML, atrybut 'value' jest standardowo stosowany w formularzach, co czyni go niezbędnym narzędziem w projektowaniu interfejsów użytkownika. Odpowiednie wykorzystanie tego atrybutu przyczynia się do lepszej użyteczności aplikacji internetowych oraz zwiększa komfort użytkowników.

Pytanie 15

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

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

Pytanie 16

Strona internetowa została zaprezentowana w taki sposób:

Rozdział 1

tekst

Podrozdział 1.1

tekst

Podrozdział 1.2

Jakie są poprawne znaczniki do tego formatu?

A.

Rozdział 1

tekst

Podrozdział 1.1

tekst

Podrozdział 1.2

B.Rozdział 1tekstPodrozdział 1.1tekstPodrozdział 1.2
C.

Rozdział 1

tekst

Podrozdział 1.1

tekst

Podrozdział 1.2

D.
  • Rozdział 1
  • tekst
  • Podrozdział 1.1
  • tekst
  • Podrozdział 1.2
Stosowanie znaczników HTML w sposób niezgodny z ich przeznaczeniem prowadzi do poważnych problemów w kontekście SEO oraz dostępności. Przykładowo, użycie znacznikaw odpowiedzi, która nie zawiera żadnej strukturalnej informacji, nie jest zgodne z zasadami semantycznymi HTML. Znacznikma na celu jedynie zwiększenie rozmiaru czcionki, co nie wnosi wartości do struktury dokumentu ani nie określa hierarchii treści. Tego rodzaju podejście może wprowadzać w błąd osoby przeglądające stronę oraz algorytmy wyszukiwarek, które bazują na odpowiednio zdefiniowanej semantyce do oceny treści. Dodatkowo, pominięcie znaczników

w odpowiedziach spowoduje, że tekst stanie się trudniejszy do odczytania i zrozumienia. Tworzenie listy za pomocą znacznika

    może być w niektórych kontekstach użyteczne, jednak w tym przypadku nie pasuje do struktury, jaką określono w pytaniu. Struktura HTML powinna być przejrzysta i logiczna, aby ułatwić użytkownikom poruszanie się po stronie oraz wspierać indeksację treści przez wyszukiwarki. Niezrozumienie tych zasad często prowadzi do nieprawidłowego stosowania znaczników, co z kolei wpływa negatywnie na doświadczenia użytkownika oraz widoczność w wyszukiwarkach.

Pytanie 17

Kod PHP z fragmentem ```if(empty($_POST["name"])){ $nameErr = "Name is required"; }``` służy do obsługi

A. formularza
B. bazy danych
C. ciasteczek
D. sesji
Przedstawiony fragment kodu PHP sprawdza, czy w przesłanym formularzu (metodą POST) zawartość pola 'name' jest pusta. Jeśli tak, ustawia zmienną $nameErr z komunikatem "Name is required", co oznacza, że pole imienia jest wymagane. Tego typu walidacja jest kluczowym elementem przy pracy z formularzami, ponieważ pozwala na zapewnienie, że użytkownik dostarcza wszystkie niezbędne dane przed ich przetworzeniem. W praktyce, walidacja po stronie serwera jest niezbędna dla bezpieczeństwa aplikacji oraz poprawności danych, które są później przetwarzane i przechowywane w bazie danych. Standardy branżowe sugerują, aby każdy formularz miał walidację zarówno po stronie klienta (JavaScript), jak i serwera (PHP), aby minimalizować ryzyko nieprawidłowych danych i ataków, takich jak SQL Injection. Przykładowo, w formularzach rejestracyjnych i logowania, walidacja pól takich jak imię, email czy hasło jest powszechną praktyką, aby poprawić doświadczenie użytkownika oraz bezpieczeństwo aplikacji.

Pytanie 18

Które z pól są umieszczone w formularzu?





Studia podyplomoweKurs

A. Textarea, Option, Input(Checkbox), Input(Checkbox), Input (Submit), Input(Reset)
B. Input(Text), Select, Input(Radio), Input(Radio), Input (Submit), Input(Reset)
C. Input(Text), Input(Checkbox), Select, Select, Input(Submit), Input(Reset)
D. Textarea, Select, Input(Radio), Input(Radio), Input(Reset), Input(Submit)
Twoja odpowiedź sugeruje pewne nieporozumienia co do typów pól używanych w formularzach html. Przykładowo, Textarea to pole wieloliniowego tekstu, które nie zostało użyte w tym formularzu. Podobnie, Element Option jest zazwyczaj używany wewnątrz elementu Select i nie jest samodzielnym polem formularza. Co więcej, Input(Checkbox) to pole wyboru, które pozwala na zaznaczenie wielu opcji. W tym formularzu, używane są przyciski wyboru (Input(Radio)), które są podobne, ale pozwalają tylko na wybór jednej opcji. Wreszcie, należy pamiętać, że nie wszystkie formularze muszą zawierać wszystkie typy pól. Różne typy pól są używane w zależności od tego, jakiego rodzaju informacje chcemy zebrać. Ważne jest, aby zrozumieć różnice między nimi i kiedy ich używać, aby stworzyć skuteczny formularz, który będzie łatwy do wypełnienia dla użytkowników i będzie zbierał potrzebne informacje.

Pytanie 19

Który z podanych formatów pozwala na zapis zarówno dźwięku, jak i obrazu?

A. MP3
B. PNG
C. WAV
D. MP4
W przypadku formatów MP3, PNG i WAV, każdy z nich jest zaprojektowany do przechowywania jedynie jednego typu danych, co wyklucza ich zdolność do jednoczesnego zapisu dźwięku i obrazu. MP3 to format kompresji dźwięku opracowany głównie do przechowywania muzyki i innych nagrań audio. Choć jest szeroko stosowany i oferuje wysoką jakość dźwięku przy niewielkim rozmiarze pliku, nie ma możliwości zapisu danych wizualnych. Z kolei PNG jest formatem graficznym, który obsługuje przechowywanie obrazów rastrowych, oferując przezroczystość i bezstratną kompresję, ale nie jest przeznaczony do przechowywania dźwięku. Format WAV, z drugiej strony, jest standardem dla przechowywania dźwięku w postaci nieskompresowanej, co zapewnia wysoką jakość audio, ale również nie wspiera zapisu wideo. W związku z tym, wszystkie te formaty mają swoje specyficzne zastosowania, ale żaden z nich nie jest w stanie zrealizować funkcji zapisu zarówno dźwięku, jak i obrazu, co czyni MP4 jedynym odpowiednim wyborem w tym kontekście.

Pytanie 20

W dokumencie HTML zdefiniowano pewne elementy w klasie o nazwie "nomargin". W celu przeprowadzenia operacji na tych elementach za pomocą języka JavaScript, można wykorzystać funkcję

A. getElementById("nomargin")
B. getElementsByTagName("nomargin")
C. getElement("nomargin")
D. getElementsByClassName("nomargin")
Funkcja getElementsByClassName("nomargin") jest poprawnym sposobem na uzyskanie dostępu do elementów HTML przypisanych do klasy o nazwie 'nomargin'. Jest to metoda dostępna w obiekcie document, która zwraca kolekcję wszystkich elementów, które mają wskazaną klasę. W przeciwieństwie do getElementById, która zwraca pojedynczy element o podanym identyfikatorze, getElementsByClassName zwraca listę, co jest szczególnie przydatne, gdy mamy do czynienia z wieloma elementami oznaczonymi tą samą klasą. Przykładowo, jeśli mamy kilka divów z klasą 'nomargin', możemy w łatwy sposób iterować przez wszystkie z nich i stosować różne operacje, takie jak zmiana stylów czy dodawanie zdarzeń. Używanie tej metody jest zgodne z najlepszymi praktykami, ponieważ pozwala na selekcję grupy elementów, co z kolei wspiera modularność i łatwość zarządzania kodem. Warto również pamiętać, że w przypadku użycia tej metody, zmiany w DOM będą miały wpływ na wszystkie elementy, co może być przydatne w złożonych interfejsach użytkownika.

Pytanie 21

Polecenie MySQL przedstawione poniżej ma na celu

A. dodać do tabeli ksiazki kolumnę tytul
B. usunąć kolumnę tytul z tabeli ksiazki
C. zmienić nazwę kolumny w tabeli ksiazki
D. zmienić typ kolumny tytul w tabeli ksiazki
Zaprezentowane odpowiedzi, które są niepoprawne, zawierają kilka istotnych błędów w interpretacji polecenia ALTER TABLE. Usunięcie kolumny tytul z tabeli ksiazki jest działaniem, które można zrealizować za pomocą polecenia DROP COLUMN, a nie ALTER, które służy do zmiany istniejących elementów. W kontekście bazy danych, usunięcie kolumny wiąże się z nieodwracalnym utratą wszystkich danych w tej kolumnie, co stanowi poważne zagrożenie dla integralności danych. Dodanie kolumny do tabeli również jest mylnie zrozumiane, ponieważ polecenie ALTER TABLE w tym przypadku nie wykonuje operacji ADD COLUMN, lecz MODIFY, co oznacza modyfikację istniejącej kolumny. Zmiana nazwy kolumny również nie dotyczy tego zapytania, gdyż do tego celu należałoby użyć polecenia RENAME COLUMN. Przykłady te pokazują, jak ważne jest zrozumienie specyfiki poleceń SQL oraz ich zastosowań w kontekście zarządzania bazami danych. Każda z tych niepoprawnych odpowiedzi pomija kluczowe funkcjonalności oraz różnice między operacjami na tabelach, które są fundamentalne dla efektywnego zarządzania danymi.

Pytanie 22

Normalizacja tabel to proces, którego celem jest

A. sprawdzenie i optymalizację bazy danych
B. wyłącznie stworzenie tabel oraz relacji w bazie
C. dodanie danych do bazy
D. wizualizacja bazy
Normalizacja tabel jest kluczowym procesem w projektowaniu baz danych, który ma na celu usprawnienie struktury danych poprzez eliminację redundancji i zapewnienie integralności danych. Proces ten składa się z kilku kroków, które prowadzą do stworzenia dobrze zorganizowanej bazy danych. Głównym celem normalizacji jest zminimalizowanie powielania danych, co w rezultacie prowadzi do optymalizacji przestrzeni dyskowej oraz zwiększenia wydajności zapytań. Przykładem zastosowania normalizacji jest podział tabeli zawierającej informacje o klientach i zamówieniach na dwie odrębne tabele. W ten sposób, każdy klient ma swoje unikalne dane w jednej tabeli, natomiast w drugiej tabeli zapisywane są tylko odniesienia do klientów zamiast ich powtórzeń. Dobre praktyki związane z normalizacją uwzględniają różne formy normalne, z których każda ma swoje zasady, np. pierwsza forma normalna (1NF) wymaga, aby każda kolumna w tabeli zawierała tylko atomowe wartości. Wysoka jakość projektowania baz danych, w tym normalizacja, znacząco wpływa na późniejsze zarządzanie danymi oraz ich analizy.

Pytanie 23

Język HTML oferuje nagłówki, które służą do tworzenia hierarchii zawartości. Te nagłówki występują wyłącznie w zakresie

A. h1 - h10
B. h1 - h4
C. h1 - h6
D. h1 - h8
Odpowiedź h1 - h6 jest poprawna, ponieważ w języku HTML nagłówki są definiowane w ramach sześciu poziomów, od h1 do h6. Nagłówki te pełnią kluczową rolę w organizacji treści na stronie internetowej, umożliwiając tworzenie hierarchii oraz struktury dokumentu. h1 jest najważniejszym nagłówkiem i powinien być używany do oznaczania głównego tytułu strony, podczas gdy h2, h3, h4, h5 i h6 służą do tworzenia podtytułów i hierarchii treści w miarę potrzeby. Na przykład, nagłówek h2 może być użyty do oznaczenia sekcji podrzędnej w stosunku do h1, a h3 do następnej sekcji podrzędnej. Takie zrozumienie hierarchii nagłówków jest istotne z punktu widzenia SEO, ponieważ wyszukiwarki korzystają z tych struktur do indeksowania treści. Dobrze zorganizowane nagłówki poprawiają również dostępność strony, co jest zgodne z najlepszymi praktykami webowymi, a także ułatwiają nawigację użytkownikom, zarówno ludziom, jak i robotom wyszukiwarek.

Pytanie 24

Deklaracja CSS margin: auto; wskazuje, że marginesy są

A. przechodzące z elementu nadrzędnego dla danego elementu
B. stałe dla danej przeglądarki, niezależnie od jej okna
C. obliczane przez przeglądarkę w taki sposób, aby element był wyśrodkowany poziomo
D. zgodne z domyślnymi wartościami marginesów elementu, do którego zostały przypisane
Zastosowanie zapisu CSS 'margin: auto;' ma na celu automatyczne wycentrowanie elementu w poziomie w obrębie jego kontenera. Gdy zastosujemy tę właściwość, przeglądarka oblicza marginesy po lewej i prawej stronie elementu, aby zapewnić równą przestrzeń, co skutkuje wyśrodkowaniem elementu. Jest to szczególnie przydatne w przypadku kontenerów o ustalonej szerokości, takich jak divy czy bloki tekstowe. Na przykład, jeśli mamy element o szerokości 50% kontenera, to przy zastosowaniu 'margin: auto;' marginesy po obu stronach będą miały równą wartość, co skutkuje centrowanym wyglądem. Warto dodać, że 'margin: auto;' działa w kontekście blokowym, co oznacza, że najlepiej sprawdza się w przypadku elementów wyświetlanych jako bloki. Zgodnie z zaleceniami standardów CSS, jest to jedna z najprostszych i najskuteczniejszych metod na osiągnięcie efektu wyśrodkowania, który jest zalecany w wielu projektach webowych.

Pytanie 25

Tekst można pogrubić za pomocą znacznika ``````, a także stosując odpowiednie właściwości CSS.

A. font-size
B. font-weight
C. text-weight
D. text-size
Odpowiedź 'font-weight' jest poprawna, ponieważ jest to właściwość CSS, która kontroluje grubość tekstu w elementach HTML. Używając 'font-weight', możesz określić grubość czcionki w sposób zarówno liczbowy (np. 400 dla normalnej grubości, 700 dla pogrubionej) jak i słowny (np. 'normal', 'bold'). Przykładem zastosowania może być stylizacja nagłówków na stronie internetowej, gdzie chcesz wyróżnić ważne informacje. W praktyce, stylizując nagłówki h1, h2, h3, można użyć 'font-weight: bold;' aby przyciągnąć uwagę czytelników. Zgodnie z najlepszymi praktykami, ważne jest, aby nie przesadzać z używaniem pogrubienia, ponieważ może to prowadzić do problemów z czytelnością tekstu. Warto również pamiętać, że dostępność stron internetowych jest kluczowa, dlatego należy testować różne style na różnych urządzeniach i w różnych przeglądarkach, aby upewnić się, że tekst jest czytelny dla wszystkich użytkowników.

Pytanie 26

Po zrealizowaniu przedstawionego fragmentu kodu w języku C/C++ do zmiennej o nazwie zmienna2 przypisany zostanie ```int zmienna1 = 158; int *zmienna2 = &zmienna1;```

A. przypisana ta sama wartość, która jest przechowywana w zmienna1
B. przypisana liczba w kodzie binarnym odpowiadająca wartości, która jest przechowywana w zmienna1
C. przypisana zamieniona na łańcuch wartość, która jest przechowywana w zmienna1
D. przypisany adres zmiennej o nazwie zmienna1
W odpowiedziach 2, 3 i 4 pojawiają się błędne interpretacje tego, co właściwie dzieje się w kodzie. Odpowiedź 2 sugeruje, że zmienna2 otrzyma tę samą wartość, co zmienna1, co jest błędne, ponieważ zmienna2 jest wskaźnikiem, a nie zmienną przechowującą wartość. W C/C++ wskaźnik przechowuje adres, a nie samą wartość. Odpowiedź 3 zakłada, że wartość przechowywana w zmienna1 zostanie przekształcona na łańcuch, co jest również niepoprawne. Wskaźniki nie dokonują automatycznych konwersji wartości na inne typy, a operator '&' zwraca adres zmiennej, a nie jej wartość. Wreszcie, odpowiedź 4 sugeruje, że zmienna2 otrzyma liczbę binarną odpowiadającą wartości zmiennej zmienna1. To również jest nieprawdziwe, ponieważ adres pamięci jest reprezentowany w systemie heksadecymalnym lub dziesiętnym, a nie binarnym. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków często wynikają z niewłaściwego zrozumienia różnicy między wartością a adresem w kontekście wskaźników. Zrozumienie tego rozróżnienia jest kluczowe dla efektywnego programowania w C/C++ i unikania problemów z zarządzaniem pamięcią.

Pytanie 27

Instrukcja REVOKE SELECT ON nazwa1 FROM nazwa2 w SQL pozwala na

A. przyznawanie praw dostępu do tabeli
B. usuwanie konta użytkownika z bazy danych
C. pozbawianie użytkownika uprawnień
D. przyznawanie uprawnień za pomocą ustalonego schematu
Pierwsza z błędnych odpowiedzi dotyczy nadawania uprawnień przy użyciu schematu, co jest trochę mylące. REVOKE nie nadaje, a odbiera uprawnienia. Wiele osób to myli, co prowadzi do zamieszania w zarządzaniu uprawnieniami. Kolejna nieprawidłowa odpowiedź mówi o usuwaniu użytkownika z bazy, co też jest błędne, bo REVOKE nie usuwa kont, a tylko zmienia uprawnienia. Kluczowe jest, żeby rozumieć różnicę między zarządzaniem uprawnieniami a użytkownikami. Ostatnia z błędnych odpowiedzi sugeruje, że to polecenie nadaje prawa do tabeli, a to totalnie mija się z prawdą, bo jego zadaniem jest właśnie odbieranie takich uprawnień. Z mojego doświadczenia, przydatne jest stosowanie GRANT do nadawania uprawnień, żeby uniknąć zamieszania. W zarządzaniu bazami danych ważne jest, żeby wiedzieć, jakie operacje dotyczą bezpieczeństwa danych i jak je właściwie stosować, żeby wszystko działało jak należy.

Pytanie 28

W zakresie ochrony serwera bazy danych przed atakami hakerównie wlicza się

A. blokada portów powiązanych z bazą danych
B. defragmentacja dysków
C. aktywacja zapory
D. używanie skomplikowanych haseł do bazy
Defragmentacja dysków to proces, który ma na celu optymalizację wydajności dysków twardych poprzez reorganizację danych na nośniku. Choć jest to operacja ważna dla poprawy wydajności systemu, nie ma ona bezpośredniego wpływu na bezpieczeństwo serwera bazy danych. W kontekście zabezpieczeń, kluczowymi działaniami są m.in. blokowanie portów związanych z bazą danych, co zapobiega nieautoryzowanemu dostępowi z zewnątrz; włączenie zapory, która filtruje ruch do i z serwera; oraz stosowanie złożonych haseł do bazy, które utrudniają ataki typu brute force. Przykładowo, wiele firm przyjmuje politykę wymuszania zmian haseł co kilka miesięcy oraz minimalnych wymagań dotyczących ich złożoności. Właściwa strategia zabezpieczeń obejmuje także regularne aktualizacje oprogramowania oraz monitorowanie logów serwera w poszukiwaniu nietypowych aktywności. Zastosowanie tych praktyk znacząco podnosi poziom bezpieczeństwa danych przechowywanych w bazie.

Pytanie 29

Poziom izolacji transakcji Repeatable Read (tryb powtarzalnego odczytu) używany przez MS SQL jest związany z problemem

A. brudnych odczytów
B. utraty aktualizacji
C. odczytów widm
D. niepowtarzalnych odczytów
Wybór odpowiedzi 'niepowtarzalnych odczytów', 'brudnych odczytów' lub 'utraty aktualizacji' wskazuje na brak zrozumienia, jak działają różne poziomy izolacji transakcji w kontekście baz danych. Odczyty niepowtarzalne polegają na tym, że transakcja może odczytać różne wartości w kolejnych odczytach tego samego wiersza, co jest problemem rozwiązywanym przez poziom Repeatable Read. Oznacza to, że dane odczytane w jednym kroku transakcji pozostają spójne do końca tej transakcji, a zatem nie są one narażone na zmiany poprzez inne transakcje w tym samym czasie. Brudne odczyty występują, gdy jedna transakcja odczytuje dane zapisane przez inną, jeszcze niezakończoną transakcję, co jest problemem z kolei eliminowanym przez poziomy izolacji takie jak Read Committed. Utrata aktualizacji to inny problem, który polega na tym, że dwie transakcje odczytują tę samą wartość i zapisują zmodyfikowane wartości, przy czym ostatnia zapisuje nadpisując wcześniejszą, co także nie jest bezpośrednim problemem w kontekście Repeatable Read. W praktyce, zrozumienie różnicy między tymi problemami jest kluczowe dla zapewnienia spójności transakcji. Warto zatem studiować dokumentację i standardy, aby właściwie dobierać poziomy izolacji w zależności od wymagań konkretnej aplikacji.

Pytanie 30

Podano fragment kodu PHP, w którym znajduje się zadeklarowana zmienna typu tablica. Jakie imię zostanie wyświetlone po wykonaniu tego kodu?

Ilustracja do pytania
A. Aleksandra
B. Tomasz
C. Anna
D. Krzysztof
W prezentowanym kodzie PHP mamy do czynienia z tablicą indeksowaną. Tablica ta zawiera cztery elementy: 'Anna' 'Tomasz' 'Krzysztof' i 'Aleksandra'. W PHP tablice indeksowane są zerowane czyli pierwszy element znajduje się pod indeksem 0 drugi pod indeksem 1 i tak dalej. Dlatego jeśli chcemy uzyskać dostęp do trzeciego elementu tablicy musimy odwołać się do indeksu 2. W związku z tym wyrażenie echo $imiona[2] wypisze wartość 'Krzysztof'. Zrozumienie indeksowania tablic w PHP jest kluczowe zwłaszcza przy operacjach na dużych zbiorach danych. Poprawna praktyka programistyczna polega na dokładnym śledzeniu indeksów aby uniknąć błędów typu 'index out of range'. Warto również zwrócić uwagę na alternatywne sposoby deklaracji tablic w PHP np. za pomocą skróconej notacji [] co jest preferowane w nowszych wersjach PHP ze względu na czytelność i zwięzłość kodu. Takie podejście zgodne jest z dobrymi praktykami w programowaniu obiektowym oraz w przypadku tworzenia API gdzie struktury danych są często wykorzystywane w podobny sposób.

Pytanie 31

Przedstawione polecenie SQL, użytkownikowi adam@localhost nadaje prawa

GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost

A. zarządzania strukturą tabeli klienci.
B. manipulowania danymi w tabeli klienci.
C. manipulowania danymi bazy danych klienci.
D. zarządzania strukturą bazy danych klienci.
Niepoprawne odpowiedzi sugerują, że polecenie SQL nadaje użytkownikowi 'adam' z hosta 'localhost' prawa zarządzania strukturą bazy danych lub tabeli 'klienci', co jest niezgodne z prawdą. Zgodnie z konstrukcją polecenia GRANT, użytkownik otrzymuje prawa do manipulowania danymi, a nie do zarządzania strukturą. Zarządzanie strukturą bazy danych lub tabeli obejmuje operacje takie jak CREATE, ALTER, DROP, które pozwalają na tworzenie, modyfikowanie lub usuwanie bazy danych lub tabeli. Te uprawnienia są zazwyczaj zarezerwowane dla administratorów bazy danych i nie są nadawane zwykłym użytkownikom, co jest zgodne z zasadą minimalnych uprawnień dla bezpieczeństwa systemu. Dodatkowo, polecenie nie odnosi się do całej bazy danych 'klienci', tylko do konkretnej tabeli 'klienci'. Tę pomyłkę można zrozumieć, jako nieprawidłowe zrozumienie hierarchii i struktury bazy danych.

Pytanie 32

W języku HTML, aby uzyskać efekt podobny do tego w przykładzie, trzeba użyć konstrukcji

Ilustracja do pytania
A.

Duży tekstzwykły tekst

B.

Duży tekstzwykły tekst

C.

Duży tekst zwykły tekst

D.

Duży tekst

zwykły tekst
Odpowiedź jest prawidłowa, ponieważ w języku HTML, aby zwiększyć rozmiar czcionki dla części tekstu, można użyć znacznika. Znacznik ten powoduje, że tekst wewnątrz jest wyświetlany w większym rozmiarze niż tekst otaczający. Jest to przydatne w sytuacjach, gdy chcemy wyróżnić część tekstu bez stosowania zaawansowanego stylu CSS. Chociażjest uznawany za przestarzały w nowoczesnym HTML, dla celów edukacyjnych i zgodności z starszymi dokumentami HTML wciąż może być stosowany. Praktyką zalecaną w aktualnych standardach jest używanie stylów CSS, np. poprzez przypisanie klasy lub bezpośrednie stylowanie in-line. Warto zaznaczyć, że stosowanienie jest zalecane w nowych projektach, ponieważ CSS oferuje większą elastyczność i kontrolę nad wyglądem tekstu. Niemniej jednak, znajomość takich znaczników jakpomaga w zrozumieniu, jak rozwijał się HTML i jakie są różnice między starszymi a nowoczesnymi metodami formatowania tekstu.

Pytanie 33

W instrukcji warunkowej w języku JavaScript należy zweryfikować sytuację, w której zmienne a i b są większe od zera, przy czym zmienna b nie przekracza wartości 100. Taki warunek powinien być zapisany w następujący sposób:

A. if (a > 0 && b > 0 && b < 100) ...
B. if (a>0 || b> 0 || b > 100) ...
C. if (a > 0 && b > 0 || b > 100) ...
D. if (a>0 || (b> 0 && b<100)) ...
Warunek zapisany jako 'if (a > 0 && b > 0 && b < 100)' jest prawidłowy, ponieważ spełnia wszystkie wymagane kryteria. Składnia tego wyrażenia logicznego wskazuje, że zarówno zmienna 'a' musi być większa od zera, jak i zmienna 'b' musi być większa od zera oraz mniejsza od 100. Użycie operatora '&&' (AND) oznacza, że wszystkie warunki muszą być spełnione, aby blok kodu wewnątrz instrukcji 'if' został wykonany. To jest zgodne z najlepszymi praktykami programowania, które zalecają, aby warunki były wyraźnie zdefiniowane i logicznie powiązane, aby uniknąć nieporozumień i błędów. W praktycznych zastosowaniach, jeśli chcemy np. przyznać użytkownikowi dostęp do systemu tylko wtedy, gdy spełnione są konkretne kryteria, takie podejście zapewnia, że nasze instrukcje są wykonywane tylko w odpowiednich okolicznościach. Dodatkowo, definiując precyzyjnie nasze warunki, zwiększamy czytelność kodu, co jest kluczowe w projektach zespołowych, gdzie wiele osób może pracować nad tym samym kodem.

Pytanie 34

Instrukcją równoważną funkcjonalnie do przedstawionej instrukcji JavaScript jest

for (i = 0; i < 100; i += 10)
  document.write(i + ' ');
Kod 1.
while (i < 10) {
  document.write(i + ' ');
  i += 10;
}
Kod 2.
while (i < 100)
  document.write(i + ' ');
Kod 3.
i = 0;
while (i < 100) {
  document.write(i + ' ');
  i += 10;
}
Kod 4.
i = 0;
while (i < 10) {
  document.write(i + ' ');
  i++;
}

A. Kod 2.
B. Kod 1.
C. Kod 3.
D. Kod 4.
Gratulacje! Wybrałeś poprawną odpowiedź, która jest Kodem 3. Pętla for prezentowana na obrazku inicjuje zmienną i na 0, a następnie sprawdza warunek i < 100, wykonuje instrukcje w pętli for i zwiększa i o 10 za każdą iteracją. To jest standardowe zachowanie dla pętli for w języku programowania JavaScript. Kod 3 jest równoważny funkcjonalnie z pętlą for, ponieważ również inicjuje zmienną i na 0, a następnie w pętli while sprawdza warunek (i < 100), wykonuje instrukcje w pętli i zwiększa i o 10 w każdej iteracji. Zrozumienie różnych rodzajów pętli i ich równoważności jest kluczowe dla skutecznego programowania, ponieważ pozwala na optymalizację kodu i poprawę jego czytelności. Dobrą praktyką jest zrozumienie, kiedy używać różnych typów pętli w zależności od specyficznych wymagań danego problemu programistycznego.

Pytanie 35

Jak powinien być poprawnie zapisany znacznik <img>, służący do umieszczenia na stronie internetowej obrazu rys.jpg, przeskalowanego do szerokości 120 px oraz wysokości 80 px z tekstem alternatywnym "krajobraz"?

A.krajobraz
B.
C.krajobraz
D.
Odpowiedźkrajobrazjest poprawna z kilku powodów. Przede wszystkim, atrybut 'src' wskazuje na lokalizację pliku graficznego, co jest kluczowe dla poprawnego wyświetlania obrazu na stronie internetowej. Atrybuty 'width' oraz 'height' pozwalają na precyzyjne określenie rozmiarów obrazu, co jest istotne zarówno dla responsywności strony, jak i dla optymalizacji czasu ładowania. Użycie jednostki 'px' (pikseli) jest poprawne, jednak w HTML5 można pominąć tę jednostkę, wpisując jedynie wartość liczbową. Atrybut 'alt' jest niezwykle ważny dla dostępności, ponieważ dostarcza alternatywny opis obrazu dla użytkowników, którzy nie mogą go zobaczyć, na przykład osób niewidomych korzystających z czytników ekranu. Używanie odpowiednich atrybutów oraz wartości jest zgodne z najlepszymi praktykami w tworzeniu stron WWW oraz standardami W3C, co wpływa na lepszą użyteczność oraz SEO strony. Przykładem praktycznym może być umieszczenie grafiki w nagłówku strony, gdzie obraz jest widoczny, a opis alternatywny wspiera dostępność i kontekst treści.

Pytanie 36

W tabeli artykuly wykonano określone instrukcje dotyczące uprawnień użytkownika jan. Po ich realizacji użytkownik jan uzyska możliwość

GRANT ALL PRIVILEGES ON artykuly TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan

A. tworzenia tabeli oraz edytowania jej zawartości
B. edycji danych i przeglądania zawartości tabeli
C. tworzenia tabeli i wypełniania jej informacjami
D. sprawdzania zawartości tabeli
Analizując pytanie i dostępną sekwencję poleceń SQL jasno wynika że użytkownik jan po wykonaniu tych poleceń nie zachowa uprawnień do przeglądania ani aktualizowania danych w tabeli artykuly. Pierwsze polecenie GRANT ALL PRIVILEGES przyznaje pełne uprawnienia co obejmuje tworzenie modyfikowanie usuwanie danych oraz ich przeglądanie. Jednakże drugie polecenie REVOKE SELECT UPDATE wycofuje konkretne prawa do przeglądania (SELECT) oraz aktualizowania (UPDATE) danych co oznacza że jan nie będzie mógł ani przeglądać ani modyfikować istniejących danych. To wyklucza odpowiedzi dotyczące aktualizowania danych i przeglądania tabeli jako poprawne. Często błędem jest założenie że cofnięcie tylko dwóch uprawnień nie wpłynie na możliwość podstawowych operacji takich jak przeglądanie. W rzeczywistości koordynacja uprawnień w bazach danych wymaga dokładnej analizy wszystkich przyznanych i cofniętych praw. Takie zarządzanie dostępem jest kluczowe dla zapewnienia bezpieczeństwa i integralności danych szczególnie w środowiskach produkcyjnych gdzie błędna konfiguracja może prowadzić do niepożądanych modyfikacji lub utraty danych.

Pytanie 37

Na podstawie tabeli Towar zrealizowano poniższe zapytanie SQL: ```SELECT nazwa_towaru FROM `Towar` WHERE cena_katalogowa < 65 ORDER BY waga DESC``` Jaki będzie rezultat tej operacji?

Ilustracja do pytania
A. Papier ksero A4, Kredki 24 kolory, Zeszyt A5 w linie, Zeszyt A5
B. Zeszyt A5, Zeszyt A5 w linie, Kredki 24 kolory, Papier ksero A4
C. Zeszyt A5 w linie, Zeszyt A5, Kredki 24 kolory, Papier ksero A4
D. Papier ksero A4, Kredki 24 kolory, Zeszyt A5, Zeszyt A5 w linie
Zapytanie SQL selekcjonuje towary z tabeli Towar, których cena katalogowa jest mniejsza niż 65, a następnie sortuje wyniki malejąco według wagi. Dzięki temu otrzymujemy listę towarów uporządkowaną od najcięższego do najlżejszego, a jednocześnie wykluczamy towary, które nie spełniają kryterium ceny. W podanym zestawie danych znajdują się cztery towary spełniające warunek cenowy: Papier ksero A4, Zeszyt A5, Zeszyt A5 w linie i Kredki 24 kolory. Spośród tych towarów najcięższy jest Papier ksero A4 (2.3), następnie Kredki 24 kolory (0.3), Zeszyt A5 (0.13), a najlżejszy jest Zeszyt A5 w linie (0.12). Kolejność wyników odpowiada zatem prawidłowej odpowiedzi numer 3. W praktyce umiejętność tworzenia zapytań SQL z warunkami filtrowania i sortowania jest niezwykle istotna w analizie danych, umożliwiając precyzyjne wyodrębnienie potrzebnych informacji z dużych zbiorów danych. Dobrym standardem jest zawsze testowanie zapytań na przykładowych danych, aby potwierdzić poprawność wyników przed ich zastosowaniem w środowisku produkcyjnym.

Pytanie 38

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

A. (a>0) || ((b>=10) || (b<=100))
B. (a>0) && ((b>=10) || (b<=100))
C. (a>0) || ((b>=10) && (b<=100))
D. (a>0) && ((b>=10) && (b<=100))
Odpowiedź (a>0) || ((b>=10) && (b<=100)) jest poprawna, ponieważ precyzyjnie odwzorowuje wymagane warunki. Warunek logiczny składa się z dwóch głównych części. Pierwsza część, (a>0), sprawdza, czy zmienna a jest liczbą naturalną dodatnią. Liczby naturalne dodatnie to liczby całkowite większe od zera, co oznacza, że a musi być większe od zera, aby warunek był spełniony. Druga część warunku, ((b>=10) && (b<=100)), wymaga, aby zmienna b znajdowała się w przedziale od 10 do 100, włącznie z tymi wartościami. Zastosowanie operatora && w tej części oznacza, że obie nierówności muszą być spełnione jednocześnie. Operator || łączy te dwie części, co oznacza, że wystarczy spełnić jeden z warunków, aby cały wyrażenie logiczne zwróciło prawdę. Jest to zgodne z zasadami programowania, które wskazują na konieczność precyzyjnego definiowania warunków w celu uniknięcia niejasności. W praktyce takie wyrażenie jest niezwykle przydatne w sytuacjach, gdy konieczne jest weryfikowanie wartości zmiennych przed ich dalszym przetwarzaniem, co pozwala na zwiększenie bezpieczeństwa i stabilności aplikacji.

Pytanie 39

Zaproponowany blok ilustruje operację

Ilustracja do pytania
A. wykorzystania wcześniej zdefiniowanej procedury lub funkcji
B. podjęcia decyzji
C. realizacji zadania w pętli
D. załadowania lub przedstawienia danych
Podjęcie decyzji w programowaniu jest kluczowym elementem umożliwiającym dynamiczne i warunkowe działania w aplikacjach. Symbolicznie, blok decyzyjny w diagramie przepływu, takim jak przedstawiony na obrazku, oznacza punkt, w którym program sprawdza określony warunek i w zależności od jego wyniku podejmuje różne ścieżki działania. Jest to często implementowane przy użyciu struktur decyzyjnych takich jak instrukcje if-else w wielu językach programowania. Na przykład w języku Python decyzję można wyrazić jako if temperatura > 30: print('Gorąco') else: print('Chłodno'). Decyzje te pozwalają programowi reagować na zmieniające się warunki i dane wejściowe, co jest niezbędne w tworzeniu interaktywnych aplikacji czy systemów sterowania. Zgodnie z dobrymi praktykami w inżynierii oprogramowania, właściwe stosowanie bloków decyzyjnych sprzyja czytelności kodu i efektywności jego działania. Dodatkowo, w większych projektach często stosuje się wzorce projektowe takie jak stan lub strategia, które opierają się na mechanizmach decyzyjnych, pomagając zarządzać złożonością kodu i poprawiać jego skalowalność.

Pytanie 40

W znaczniku(w sekcji) strony internetowej nie zamieszcza się informacji odnoszących się do

A. rodzaju dokumentu
B. autora
C. automatycznego przeładowania
D. kodowania
Odpowiedź "typu dokumentu" jest trafna, bo znacznikw HTML jest używany do ustawiania metadanych, które nie mówią nam bezpośrednio o typie dokumentu. W praktyce, to co znajdziemy w, dotyczy głównie takich rzeczy jak automatyczne odświeżanie strony (przez tag http-equiv="refresh"), kodowanie (gdzie definiujemy zestaw znaków, np. UTF-8) czy informacje o autorze strony (poprzez tag name="author"). Typ dokumentu jest ustalany w deklaracji DOCTYPE na początku dokumentu HTML, a nie w. Znacznikimogą też pomóc w SEO i lepszym indeksowaniu przez wyszukiwarki. Na przykład, używając tagu, możemy pomóc wyszukiwarkom lepiej zrozumieć, o czym jest nasza strona, co może zachęcić do kliknięcia w link w wynikach wyszukiwania.