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: 13 maja 2026 23:37
  • Data zakończenia: 13 maja 2026 23:38

Egzamin niezdany

Wynik: 9/40 punktów (22,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

W danym środowisku programistycznym, aby uzyskać dostęp do listy błędów składniowych po nieudanej kompilacji, należy użyć kombinacji klawiszy

Ilustracja do pytania
A. Ctrl+W, T
B. Ctrl+W, N
C. Ctrl+W, E
D. Ctrl+W, O
W środowisku Visual Studio zrozumienie, które skróty klawiaturowe przypisane są do specyficznych funkcji, jest kluczowe dla efektywnej pracy programisty. Odpowiedzi błędne sugerują inne kombinacje klawiszy, które nie są przypisane do wyświetlania listy błędów. Na przykład Ctrl+W, O często jest skojarzone z otwieraniem konkretnej funkcjonalności czy widoku w innych programach, ale w Visual Studio nie odpowiada za listę błędów. Podobnie Ctrl+W, T i Ctrl+W, N również odnoszą się do innych zadań, takich jak otwieranie okna Zarządzania Zadaniami czy Notyfikacji. Błędne przyporządkowanie tych funkcji może wynikać z braku znajomości specyficznych dla Visual Studio skrótów lub z mylnego przenoszenia wiedzy z innego oprogramowania, które może używać podobnych kombinacji do innych celów. Typowym błędem myślowym jest zakładanie, że wszystkie zintegrowane środowiska programistyczne działają w podobny sposób lub że skróty klawiszowe są unifikowane pomiędzy różnymi platformami i aplikacjami. Dlatego tak ważne jest, by każdy korzystający z Visual Studio zapoznał się z dokumentacją i dostępnymi skrótami klawiaturowymi, aby móc efektywnie nawigować i korzystać z funkcji oferowanych przez to zaawansowane narzędzie.

Pytanie 2

Wskaż stwierdzenie, które nie jest prawdziwe dla następującej definicji funkcji w języku C++?

void zamien( float &x, float &y){
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja nie zwraca wartości.
B. Funkcja odwołuje się do parametrów przez referencję.
C. Funkcja posiada dwa parametry.
D. Funkcja zwraca wartość.
Niestety, wybrałeś odpowiedź, która nie jest właściwa. Poprawna odpowiedź w tym przypadku to 'Funkcja zwraca wartość', co jest nieprawdziwe dla podanej definicji funkcji w C++. Mówimy tutaj o funkcji typu 'void', która z zasady nie zwraca nic. Typ 'void' oznacza, że nie mamy zwracanego typu. Poza tym, stwierdzenia, że funkcja nie ma parametrów czy nie odnosi się do nich przez referencję, też są błędne. W rzeczywistości, funkcja ma dwa parametry typu float, które są przekazywane przez referencję. To naprawdę istotne, bo pomaga w modyfikacji wartości zmiennych, które przekazujemy do funkcji. Zrozumienie tego jest ważne w C++, żeby lepiej zarządzać pamięcią i danymi.

Pytanie 3

Jakie wyrażenie logiczne powinno zostać użyte w języku JavaScript, aby przeprowadzić operacje wyłącznie na dowolnych liczbach ujemnych z zakresu jednostronnie domkniętego <-200, -100)?

A. (liczba >= -200) || (liczba > -100)
B. (liczba >= -200) && (liczba < -100)
C. (liczba <= -200) && (liczba < -100)
D. (liczba <= -200) || (liczba > -100)
Wybór innego wyrażenia logicznego niż (liczba >= -200) && (liczba < -100) prowadzi do nieprawidłowego zakresu liczb, który nie odpowiada zdefiniowanym wymaganiom. Na przykład, użycie (liczba <= -200) && (liczba < -100) ogranicza zakres do wartości mniejszych lub równych -200 oraz mniejszych niż -100, co nie łapie wartości -200 jako dolnej granicy i odrzuca wszystkie liczby między -200 a -100. Podobnie, (liczba >= -200) || (liczba > -100) sprawdza, czy liczba jest większa lub równa -200, co obejmuje wszystkie liczby ujemne, a to nie jest zgodne z oczekiwanym przedziałem. Z kolei (liczba <= -200) || (liczba > -100) również nie pasuje do wymogów, ponieważ akceptuje liczby mniejsze niż -200 oraz te większe niż -100, co znów nie pokrywa się z ustalonym zakresem. Typowe błędy w myśleniu mogą wynikać z nieprecyzyjnego zrozumienia operatorów logicznych oraz sposobu, w jaki dane warunki wpływają na zakres wartości. Zrozumienie działania operatorów oraz ich wpływu na logikę aplikacji jest kluczowe dla skutecznego programowania, a ich niewłaściwe zastosowanie prowadzi do błędów, które mogą być trudne do zdiagnozowania. Ważne jest, aby przy definiowaniu warunków, zwracać szczególną uwagę na znaki porównania i ich dobór do oczekiwanego rezultatu.

Pytanie 4

Tabela filmy dysponuje kluczem głównym id oraz kluczem obcym rezyserlD. Tabela rezyserzy posiada klucz główny id. Obie tabele są połączone relacją jeden do wielu, gdzie rezyserzy są po stronie jeden, a filmy po stronie wiele. Jak należy zapisać kwerendę SELECT, aby połączyć tabele filmy i rezyserzy?

A. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...
B. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmylD ...
C. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.filmylD ...
D. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...
Wybór błędnych opcji opiera się na nieprawidłowym zrozumieniu relacji między tabelami oraz zasad normalizacji danych. W pierwszej z niepoprawnych odpowiedzi użycie 'filmy.rezyserlD = rezyserzy.filmylD' błędnie zakłada, że 'filmylD' jest kluczem w tabeli 'rezyserzy', podczas gdy w rzeczywistości jest to klucz obcy w tabeli 'filmy'. Może to prowadzić do nieporozumień podczas analizy danych. W drugiej odpowiedzi, porównanie 'filmy.id = rezyserzy.filmylD' wprowadza dodatkowy błąd, ponieważ klucz 'id' w tabeli 'filmy' jest niezwiązany z 'filmylD', co skutkuje odwołaniem do niewłaściwych danych. Z kolei trzecia odpowiedź, w której porównuje się 'filmy.id = rezyserzy.id', całkowicie ignoruje relację między tymi tabelami, co prowadzi do niepoprawnych wyników, jako że oba 'id' są kluczami głównymi w swoich tabelach i nie powinny być ze sobą porównywane. Typowe błędy myślowe w tym przypadku wynikają z nieprawidłowego rozumienia działania kluczy obcych oraz sposobu, w jaki tabele są ze sobą powiązane. Kluczowe jest, aby przy projektowaniu bazy danych zrozumieć, jak relacje między tabelami wpływają na struktury zapytań. Aby skutecznie pracować z bazami danych, ważne jest, aby przestrzegać zasad normalizacji oraz stosować odpowiednie klucze w relacjach, co zapewnia integralność danych i poprawność wyników zapytań.

Pytanie 5

W edytorze grafiki rastrowej funkcja „dodaj kanał alfa” umożliwia

A. ustawienie prawidłowego balansu bieli
B. wyostrzenie krawędzi obrazu
C. wprowadzenie warstwy z przezroczystością
D. powiększenie głębi ostrości obrazu
Dodanie kanału alfa w edytorze grafiki rastrowej to w zasadzie otworzenie drzwi do pracy z przezroczystością w obrazie. Kanał alfa jest dodatkową składową pikseli, która oprócz wartości RGB określa też poziom przejrzystości danego fragmentu grafiki. Moim zdaniem, to jeden z kluczowych elementów, jeśli chcesz przygotować grafikę do profesjonalnych zastosowań, np. do webdesignu, gier czy produkcji materiałów do druku z efektem nakładania. Standardowym przykładem jest sytuacja, gdy przygotowujesz logo i zależy Ci, żeby tło było przezroczyste – wtedy bez kanału alfa ani rusz. W praktyce, po dodaniu kanału alfa możesz wymazywać fragmenty lub stosować selektywne przezroczystości, co daje mnóstwo kreatywnych możliwości. To taka podstawa, bez której ciężko wyobrazić sobie pracę z warstwami, maskami czy efektami blendingu. Z mojego doświadczenia, osoby zaczynające pracę z grafiką często nie zdają sobie sprawy, jak ważne jest świadome zarządzanie przezroczystością – a kanał alfa właśnie to umożliwia. Nawet w najpopularniejszych formatach plików, jak PNG, obsługa kanału alfa jest już praktycznie standardem branżowym. Warto też wiedzieć, że w formatach takich jak JPEG tego nie uzyskasz, bo nie obsługują przezroczystości. Tak więc, jeśli planujesz pracę z grafiką wielowarstwową, przygotowywanie sprite’ów czy nowoczesnych UI, kanał alfa to absolutna podstawa, nie tylko bajer.

Pytanie 6

Jednoznacznym identyfikatorem rekordu w bazie danych jest pole

A. klucza głównego.
B. wyłącznie typu tekstowego.
C. klucza obcego.
D. wyłącznie typu logicznego.
Poprawna jest odpowiedź dotycząca klucza głównego, bo to właśnie pole (lub zestaw pól) oznaczone jako PRIMARY KEY w tabeli pełni rolę jednoznacznego identyfikatora rekordu. W praktyce oznacza to, że dla każdej krotki (wiersza) w tabeli wartość klucza głównego musi być unikalna i nie może być pusta (NULL). Systemy baz danych, takie jak MySQL, PostgreSQL, SQL Server czy Oracle, egzekwują te zasady automatycznie – jeśli spróbujesz wstawić drugi rekord z tą samą wartością klucza głównego, dostaniesz błąd naruszenia unikalności. Moim zdaniem to jedna z kluczowych zasad normalnego projektowania baz danych: zawsze projektujemy tabelę zaczynając od przemyślania klucza głównego. W aplikacjach webowych bardzo często używa się prostego klucza głównego typu liczbowego (np. INT AUTO_INCREMENT lub SERIAL), który jest technicznym identyfikatorem rekordu. Dzięki temu łatwo się odwołać do konkretnego użytkownika, zamówienia czy produktu po jego ID. Klucz główny jest też podstawą do definiowania kluczy obcych w innych tabelach – relacje typu 1:N czy N:M opierają się właśnie na odwołaniach do wartości PRIMARY KEY. Z mojego doświadczenia wynika, że stosowanie sztucznych (surrogate) kluczy głównych, zamiast kombinowania z wieloma polami naturalnymi, upraszcza później zapytania SQL, modyfikacje struktury i integrację z kodem w PHP czy JavaScript. W dobrze zaprojektowanej bazie danych każda tabela relacyjna powinna mieć jasno zdefiniowany klucz główny, bo bez tego trudno mówić o porządnym zarządzaniu danymi, spójności referencyjnej i wydajnym indeksowaniu.

Pytanie 7

Pętla w kodzie JavaScript zostanie uruchomiona

Ilustracja do pytania
A. 3 razy
B. 26 razy
C. 27 razy
D. 2 razy
Analizując podane odpowiedzi, warto zrozumieć, jak działa pętla do-while w JavaScript. Pętla ta różni się od tradycyjnych pętli for oraz while tym, że warunek jest sprawdzany na końcu każdej iteracji. Oznacza to, że ciało pętli wykona się przynajmniej raz, niezależnie od tego, czy warunek jest prawdziwy na początku. W analizowanej konstrukcji mamy zmienną x początkowo ustawioną na 1, która w każdej iteracji jest mnożona przez 3, oraz zmienną i zliczającą liczbę iteracji. Pętla kontynuuje, dopóki x nie osiągnie wartości 27. W obliczeniach x przyjmuje wartości 1, 3, 9, i na koniec 27. Dopiero po osiągnięciu 27 warunek x!=27 staje się fałszem, zatrzymując pętlę po trzeciej iteracji. Częstym błędem przy analizie takich pętli jest pomijanie faktu, że wykonają się one przynajmniej raz, co może prowadzić do błędnej oceny liczby iteracji. Rozumienie tej mechaniki jest kluczowe w projektowaniu algorytmów, które muszą zagwarantować wykonanie kodu niezależnie od początkowego stanu zmiennych.

Pytanie 8

Funkcja pg_connect w języku PHP służy do nawiązania połączenia z bazą danych

A. PostgreSQL
B. MS ACCESS
C. MS SQL
D. mySQL
Wszystkie inne odpowiedzi dotyczą baz danych, które nie są obsługiwane przez funkcję pg_connect. Użycie MS SQL, MS ACCESS lub mySQL w kontekście pg_connect wprowadza w błąd, ponieważ każda z tych technologii ma swoje własne metody połączenia. MS SQL, na przykład, jest systemem zarządzania bazą danych stworzonym przez Microsoft i do połączeń z tą bazą używa się funkcji syb_connect lub PDO w zależności od preferencji programisty. MS ACCESS, z kolei, jest bazą danych, która często jest wykorzystywana w mniejszych aplikacjach i wymaga innych podejść do połączeń, często przy użyciu ODBC lub DAO. MySQL, popularna baza danych open source, używa funkcji mysqli_connect lub PDO_MySQL. Typowe błędy myślowe prowadzące do nieprawidłowych odpowiedzi często wynikają z nieznajomości specyfiki i architektury różnych systemów baz danych oraz błędnego utożsamiania ich z funkcjami PHP. Każde z tych rozwiązań ma swoje unikalne cechy i różnice, które są istotne dla projektowania aplikacji oraz ich późniejszego rozwoju.

Pytanie 9

Filtracja sygnału wejściowego w czasie, która uwzględnia zasadę superpozycji, dotyczy filtru

A. liniowego
B. niezmiennym w czasie
C. przyczynowym
D. o skończonej odpowiedzi impulsowej
Odpowiedzi, które nie klasyfikują procesu filtracji sygnału jako liniowego, często prowadzą do nieporozumień w zakresie podstawowych pojęć związanych z teorią filtracji. Filtry o skończonej odpowiedzi impulsowej (FIR) rzeczywiście mogą być liniowe, ale to nie one definiują zasadę superpozycji, która jest kluczowa dla filtrów liniowych. Filtry FIR to jedynie jedna z klas filtrów, które można zaprojektować tak, aby były liniowe. Podejście przyczynowe w filtracji oznacza, że sygnał wyjściowy zależy tylko od bieżących i przeszłych wartości sygnału wejściowego, co również może być zgodne z filtrami liniowymi, ale nie jest ich jedyną cechą. Z kolei powiedzenie, że filtr jest 'niezmienny w czasie', odnosi się do filtrów, które nie zmieniają swoich właściwości w czasie, co również nie wyklucza filtrów liniowych, ale nie jest to kluczowe dla samej definicji procesów liniowych. Błędem jest zatem myślenie, że inne klasy filtrów automatycznie są niezwiązane z liniowością, gdyż wiele z nich, w tym FIR, IIR czy filtry przyczynowe, mogą spełniać tę właściwość. Ważne jest, aby zrozumieć, że linowość jest fundamentalnym pojęciem w teorii systemów i ma kluczowe znaczenie dla analizy sygnałów.

Pytanie 10

Jeżeli rozmiar pliku graficznego jest zbyt duży do publikacji w sieci, co należy zrobić?

A. dodać kanał alfa
B. zwiększyć jego głębię kolorów
C. zmniejszyć jego rozdzielczość
D. zapisać w formacie BMP
Zwiększenie głębi kolorów w pliku graficznym nie prowadzi do zmniejszenia jego rozmiaru, a wręcz przeciwnie, może spowodować, że plik stanie się większy. Głębia kolorów odnosi się do liczby bitów używanych do reprezentacji koloru pojedynczego piksela obrazu. Na przykład, zwiększenie głębi z 8 bitów (256 kolorów) do 16 bitów (65 536 kolorów) zwiększa objętość danych, co skutkuje większym rozmiarem pliku. Ponadto, zapis w formacie BMP to również błędny wybór, ponieważ BMP jest formatem, który przechowuje dane w sposób mało efektywny i niekompresowany, co sprawia, że pliki BMP są znacznie większe niż ich odpowiedniki w formatach skompresowanych, takich jak JPEG czy PNG. Dodanie kanału alfa do obrazu, choć może być przydatne w przypadku potrzeby przejrzystości, również zwiększy rozmiar pliku, ponieważ dodaje dodatkowe informacje o przezroczystości dla każdego piksela. W rezultacie, wszystkie te działania wprowadzą niepotrzebny wzrost rozmiaru pliku, co jest sprzeczne z celem optymalizacji pod kątem publikacji online.

Pytanie 11

W semantycznym HTML odpowiednikiem elementu <b>, który nie tylko pogrubia tekst, ale także wskazuje na jego większe znaczenie, jest

A. <mark>
B. <ins>
C. <em>
D. <strong>
Użycie znaczników <em>, <ins>, czy <mark> w kontekście pytania jest nieprawidłowe z różnych powodów. Znacznik <em> służy do podkreślenia znaczenia tekstu, ale jego domyślna semantyka wskazuje, że ma on charakter emocjonalny, a nie wagi. Z kolei <ins> oznacza dodanie nowego elementu treści, co również nie odzwierciedla idei pogrubienia z podkreśleniem znaczenia. Znacznik <mark> stosuje się do wyróżniania fragmentów tekstu, które są istotne w danym kontekście, jednak nie przekazuje on informacji o większym znaczeniu, jak to ma miejsce w przypadku <strong>. Dlatego myślenie, że te znaczniki mogą zastąpić <strong>, może prowadzić do błędnych interpretacji treści przez odwiedzających stronę. Warto zauważyć, że poprawne użycie semantyki w HTML nie tylko wpływa na estetykę strony, ale także na jej funkcjonalność i dostępność. Błędy w doborze znaczników mogą skutkować brakiem przystosowania witryny do potrzeb osób z niepełnosprawnościami, co jest sprzeczne z zasadami tworzenia dostępnych stron internetowych. Stąd zasada dobrych praktyk nakazuje, aby stosować odpowiednie znaczniki w oparciu o ich semantyczne znaczenie, co przynosi korzyści zarówno w kontekście SEO, jak i użyteczności.

Pytanie 12

Jaki jest efekt wielokrotnego wykonywania kodu PHP?

if (!isset($_COOKIE["ciastko"]))
    $zm = 1;
  else
    $zm = intval($_COOKIE["ciastko"]) + 1;
setcookie("ciastko", $zm);
A. pokazanie ciasteczka z zapisanym parametrem
B. dodanie danych do ciasteczka tylko przy pierwszym wejściu na stronę
C. zliczanie liczby wizyt na stronie
D. zapisanie do ciasteczka wartości 1 przy każdym odświeżeniu witryny
W pytaniu zawarto kilka opcji związanych z działaniem ciasteczek w PHP. Pierwsza z nich mówi o wyświetleniu ciasteczka z zapisaną zmienną co nie jest zgodne z kodem, który nie zawiera żadnej funkcji wyświetlającej jak echo. Ciasteczka służą do przechowywania danych po stronie klienta i mogą być wykorzystywane do wielu celów, ale ich wyświetlenie nie jest bezpośrednim efektem działania kodu. Druga opcja wspomina o zapisaniu danych do ciasteczka tylko przy pierwszym uruchomieniu strony. Jest to częściowa prawda, ponieważ pierwsze uruchomienie inicjuje ciasteczko, ale przy każdej kolejnej wizycie liczba odwiedzin jest aktualizowana a nie pozostaje stała. Ostatnia z niepoprawnych odpowiedzi sugeruje, że za każdym odświeżeniem zapisuje się wartość 1, co jest błędne ponieważ kod zwiększa wartość o 1 przy każdym odświeżeniu strony. Typowym błędem myślowym jest założenie, że ciasteczka są statyczne lub że ich funkcjonalność jest ograniczona do prostego przechowywania danych bez logiki związanej z ich aktualizacją czy modyfikacją w ramach sesji użytkownika. Ciasteczka są elastycznym narzędziem, które może być używane w wielu zaawansowanych scenariuszach, jednak ich manipulacja musi być dobrze zrozumiana by uniknąć nieprawidłowych wniosków czy implementacji.

Pytanie 13

Która z wymienionych funkcji sortowania w języku PHP służy do sortowania tablicy asocjacyjnej według kluczy?

A. rsort()
B. asort()
C. sort()
D. ksort()
Funkcje asort(), rsort() i sort() w języku PHP są używane do sortowania tablic, ale różnią się one znacząco od ksort(). Funkcja asort() służy do sortowania tablicy asocjacyjnej na podstawie wartości, pozostawiając klucze niezmienionymi. To podejście, choć może być przydatne w niektórych sytuacjach, nie odpowiada na pytanie dotyczące sortowania według indeksów, co prowadzi do nieporozumienia. Z kolei rsort() sortuje tablicę indeksowaną w porządku malejącym, a sort() wykonuje sortowanie rosnące, również dla tablic indeksowanych. Obie funkcje są nieprzydatne dla tablic asocjacyjnych, gdyż nie zachowują kluczy i nie dostosowują ich do zmieniającego się porządku wartości. Typowym błędem jest przyjmowanie, że wszystkie funkcje sortujące mogą działać na tablicach asocjacyjnych w taki sam sposób, co jest dalekie od prawdy. Kluczowe jest zrozumienie, jak różne funkcje sortujące wpływają na struktury danych i ich właściwości. Właściwe podejście do sortowania danych asocjacyjnych jest nie tylko kluczowe dla utrzymania porządku, ale również dla zapewnienia efektywności w przetwarzaniu danych w aplikacjach, co jest zgodne z najlepszymi praktykami rozwoju oprogramowania.

Pytanie 14

Która z metod wyświetlenia tekstu nie jest określona w języku JavaScript?

A. Funkcja MessageBox()
B. Funkcja window.alert()
C. Właściwość innerHTML
D. Metoda document.write()
Każda z podanych odpowiedzi, oprócz Funkcji MessageBox(), jest technicznie poprawna w kontekście języka JavaScript. Własność innerHTML pozwala na manipulację zawartością HTML elementów na stronie, co jest powszechnie stosowane w aplikacjach webowych do dynamicznego aktualizowania treści. Przykład użycia innerHTML: document.getElementById('elementId').innerHTML = '<p>Nowy tekst!</p>'; co zmienia zawartość elementu o określonym identyfikatorze na nowy tekst. Metoda window.alert() jest również powszechnie używana do informowania użytkowników o ważnych informacjach w prosty sposób, chociaż może być uważana za nieco przestarzałą w kontekście nowoczesnego UX. Dobrą praktyką jest unikanie nadmiernego korzystania z alertów, które mogą irytować użytkowników. Metoda document.write() z kolei, choć używana do dodawania treści do strony, jest zalecana do stosowania wyłącznie w kontekście ładowania strony, ponieważ użycie tej metody po załadowaniu strony może prowadzić do nadpisania całego dokumentu, co może być mylące i problematyczne. Dlatego ważne jest, aby zrozumieć kontekst użycia różnych metod JavaScript, aby uniknąć typowych pułapek i poprawić jakość interakcji użytkownika z aplikacjami webowymi.

Pytanie 15

Aby utworzyć tabelę w języku SQL, należy użyć polecenia

A. INSERT TABLE
B. ALTER TABLE
C. CREATE TABLE
D. ADD TABLE
Odpowiedź 'CREATE TABLE' jest poprawna, ponieważ w języku SQL to polecenie jest używane do tworzenia nowych tabel w bazie danych. Umożliwia definiowanie struktury tabeli, w tym nazw kolumn, typów danych oraz ograniczeń, takich jak klucze główne czy unikalność. Przykładowe użycie polecenia 'CREATE TABLE' może wyglądać następująco: 'CREATE TABLE pracownicy (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50));'. W tym przykładzie tworzymy tabelę 'pracownicy' z trzema kolumnami: 'id', 'imie' oraz 'nazwisko'. Warto zaznaczyć, że zgodnie z najlepszymi praktykami, przed wykonaniem polecenia warto sprawdzić, czy tabela o danej nazwie już istnieje, aby uniknąć błędów związanych z podwójnym tworzeniem. Zapewnienie odpowiedniej struktury bazy danych już na etapie jej tworzenia przekłada się na lepszą wydajność oraz łatwiejsze zarządzanie danymi w przyszłości.

Pytanie 16

Zidentyfikuj styl CSS, który doprowadził do uzyskania pokazanego efektu.

Ilustracja do pytania
A. Styl 4
B. Styl 1
C. Styl 3
D. Styl 2
W przypadku Styl 1 zastosowanie border-radius: 10% nie jest wystarczające do uzyskania pełnego zaokrąglenia prowadzącego do kształtu koła w przypadku kwadratowego obrazu. Wartość procentowa 10% oznacza, że promień zaokrąglenia wynosi 10% szerokości lub wysokości elementu, co na ogół skutkuje jedynie delikatnym zaokrągleniem narożników. Styl 3 z kolei próbuje uzyskać efekt okrągły stosując border o wartości 50% jednakże jest to błędne podejście ponieważ wartość ta nie odnosi się do faktycznego promienia zaokrąglenia a jedynie do szerokości i koloru obramowania elementu. To nie wpływa na kształt wewnętrzny elementu jedynie na jego zewnętrzny kontur co nie zmienia formy obrazu na okrągłą. Styl 4 używa właściwości shape: circle co jest błędne w kontekście CSS gdyż taka właściwość nie istnieje w specyfikacji CSS dla zmiany kształtu elementów graficznych. Takie podejście może wynikać z mylnego zrozumienia specyfikacji CSS lub z błędnego użycia właściwości specyficznych dla SVG lub CSS Shapes które nie działają w ten sposób w kontekście tagu img. Kluczowe jest dokładne zrozumienie działania i specyfiki właściwości CSS aby prawidłowo je stosować tworząc estetyczne i funkcjonalne projekty webowe.

Pytanie 17

Który atrybut pozwala na wskazanie lokalizacji pliku graficznego w znaczniku <img>?

A. alt
B. href
C. src
D. link
Wybór odpowiedzi, które nie odnoszą się do atrybutu 'src', może wynikać z niepełnego zrozumienia roli każdego z tych atrybutów w kontekście znacznika <img>. Atrybut 'alt' jest używany do opisu obrazów, co jest niezwykle istotne z punktu widzenia dostępności. Nie jest to jednak atrybut odpowiedzialny za lokalizację pliku graficznego, lecz ma na celu dostarczenie informacji o treści obrazu, gdy nie może on być wyświetlony lub dla użytkowników korzystających z technologii asystujących. 'Href' jest atrybutem używanym w znaczniku <a> do wskazywania adresu URL, do którego prowadzi odnośnik, a nie do lokalizowania obrazów. Z kolei 'link' nie jest standardowym atrybutem dla znacznika <img> i nie ma związku z wyświetlaniem obrazów, lecz odnosi się do relacji między dokumentami w nagłówku HTML. Te pomyłki mogą wynikać z nieprecyzyjnego zrozumienia, które atrybuty odpowiadają za konkretne funkcje w HTML. W praktyce, kluczowe jest, aby rozróżniać role różnych atrybutów oraz znać ich zastosowanie, co pozwoli na tworzenie bardziej profesjonalnych i funkcjonalnych stron internetowych. Dbanie o właściwe użycie atrybutów, takich jak 'src', 'alt' czy 'href', jest niezbędne, by zapewnić poprawne działanie oraz dostępność tworzonych rozwiązań internetowych.

Pytanie 18

W języku CSS określono styl dla stopki. Aby zastosować to formatowanie do bloku oznaczonego znacznikiem div, należy wpisać

#stopka { ... }
A. <div "stopka">
B. <div title="stopka">
C. <div id="stopka">
D. <div class="stopka">
W przypadku odpowiedzi <div "stopka"> brak jest poprawnej składni HTML ponieważ atrybuty w tagach HTML są zawsze parą nazwa-wartość i muszą być opatrzone znakami równości oraz cudzysłowami wokół wartości. Taka konstrukcja nie jest zgodna z zasadami HTML i nie zostanie przetworzona prawidłowo przez przeglądarki. Atrybut title czyli <div title="stopka"> używany jest do wyświetlania dodatkowych informacji w formie dymka po najechaniu kursorem i nie jest związany z selektorami CSS. Z kolei <div class="stopka"> odnosi się do użycia klasy. Klasy są bardziej elastyczne pozwalając na przypisywanie tego samego stylu do wielu elementów co jest użyteczne w przypadku powtarzających się elementów na stronie. Jednakże w pytaniu jest mowa o selektorze ID co oznacza że stylizacja dotyczy konkretnego niepowtarzalnego elementu. Selekcję przez id poprzedzamy znakiem # co jest konwencją stosowaną w projektach gdzie poszczególne elementy mają być unikalne w ramach dokumentu HTML. Zrozumienie i poprawne używanie atrybutów takich jak id i class jest kluczowe dla efektywnego zarządzania stylem w dużych i złożonych projektach internetowych. Selekcja poprzez id jest stosowana w przypadkach gdzie wymagana jest unikalna identyfikacja elementu co jest niezbędnym elementem w procesie projektowania struktury stron internetowych. Stąd też ważne jest aby unikać nadmiarowego stosowania id w miejscach gdzie powtarzalność elementów jest wymagana ponieważ prowadzi to do problemów w zakresie skalowalności i utrzymania kodu.

Pytanie 19

Jaką złożoność obliczeniową posiada algorytm znajdowania elementu w nieposortowanej jednowymiarowej tablicy?

A. kwadratową, O(n2)
B. stałą, O(1)
C. liniową, O(n)
D. silnia, O(n!)
Wybierając odpowiedzi niepoprawne, można natknąć się na różne złożoności obliczeniowe, które nie odnoszą się do algorytmu wyszukiwania elementu w nieposortowanej tablicy. Złożoność kwadratowa, O(n2), dotyczy algorytmów, które muszą porównywać każdy element z każdym innym, co najczęściej występuje w algorytmach sortujących, takich jak sortowanie bąbelkowe, gdzie liczba porównań rośnie wraz z kwadratem liczby elementów. Z kolei złożoność silni, O(n!), występuje w kontekście problemów kombinatorycznych, takich jak generowanie permutacji, co oznacza, że liczba operacji wzrasta niezwykle szybko w miarę zwiększania się liczby elementów, ale nie jest odpowiednia dla prostych algorytmów wyszukiwania. Złożoność stała, O(1), sugeruje, że operacja zajmuje tę samą ilość czasu niezależnie od rozmiaru danych, co w przypadku wyszukiwania w nieposortowanej tablicy nie jest możliwe, ponieważ musimy przejrzeć co najmniej jeden element. Te błędne odpowiedzi wynikają z nieporozumień na temat działania algorytmów w kontekście różnych struktur danych oraz z mylnego utożsamiania złożoności z ich zastosowaniem. Zrozumienie różnicy między tymi złożonościami jest kluczowe dla efektywnego projektowania algorytmów oraz oceny ich wydajności w różnych scenariuszach.

Pytanie 20

W SQL, aby dokonać zmiany w strukturze tabeli, na przykład dodać lub usunąć kolumnę, powinno się użyć polecenia

A. ALTER TABLE
B. DROP TABLE
C. TRUNCATE
D. UPDATE
Wybór poleceń takich jak 'UPDATE', 'TRUNCATE' czy 'DROP TABLE' wskazuje na nieporozumienia dotyczące ich zastosowania w kontekście zmiany struktury tabeli. 'UPDATE' jest używane do modyfikacji danych już istniejących w tabeli, a nie do zmiany jej struktury. Umożliwia aktualizację wartości w kolumnach, jednak nie wpływa na same kolumny czy ich definicje. 'TRUNCATE' służy do szybkiego usuwania wszystkich rekordów z tabeli, ale nie można go używać do zmiany struktury tabeli ani do usunięcia kolumn. Tego typu operacja nie tylko nie jest możliwa, ale także wymaga innego podejścia niż modyfikacja struktury. Z kolei 'DROP TABLE' całkowicie usuwa tabelę i wszystkie jej dane, co jest drastycznym krokiem, gdyż skutkuje utratą wszystkich informacji w niej zawartych. Wybór tych poleceń wskazuje na typowe błędy myślowe związane z zamianą operacji na danych z operacjami na strukturze bazy danych. W praktyce, modyfikacje struktury tabel powinny być zawsze przemyślane i zaplanowane, aby zachować integralność danych oraz zgodność z wymaganiami aplikacyjnymi.

Pytanie 21

Znacznik <pre> </pre> służy do prezentacji

A. treści polską czcionką
B. znaku wielokropka
C. treści czcionką o stałej szerokości
D. znaku przekreślenia
Wybór znaków przekreślenia, znaków wielokropka czy treści polską czcionką jest niepoprawny, ponieważ żaden z tych elementów nie jest związany z funkcją znacznika <pre>. Po pierwsze, znaki przekreślenia są używane w HTML do zaznaczania tekstu, który ma być przedstawiony jako przekreślony, co nie ma nic wspólnego z preformatowaniem tekstu. Element <s> lub <del> jest odpowiedzialny za takie formatowanie, a nie <pre>. Kolejną pomyłką jest zrozumienie roli wielokropka. W HTML nie istnieje znacznik, który odpowiada za wyświetlanie wielokropka w specyficzny sposób poza standardowym tekstem. W rzeczywistości wielokropek jest jedynie trzema kropkami i nie ma potrzeby go formatować w kontekście preformatowanego tekstu. Ostatnia z wymienionych odpowiedzi, sugerująca, że <pre> służy do wyświetlania treści polską czcionką, jest również błędna. HTML nie definiuje czcionek narodowych; zamiast tego, czcionki są kontrolowane przez CSS, a nie przez znaczniki HTML. Z tego powodu znaczniki <pre> nie mają żadnego wpływu na wybrany styl czcionki, a ich główną funkcją jest zachowanie formatowania tekstu, co czyni je idealnym narzędziem do wyświetlania kodu źródłowego, a nie do stylizacji typograficznej.

Pytanie 22

Tabele Osoby oraz Adresy są ze sobą połączone relacją typu jeden do wielu. Jakie zapytanie SQL powinno być użyte, aby poprawnie wyświetlić nazwiska oraz odpowiadające im miasta?

Ilustracja do pytania
A. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id=Adresy.id
B. SELECT nazwisko, Miasto FROM Osoby, Adresy
C. SELECT nazwisko, Miasto FROM Osoby.Adresy_id=Adresy.id FROM Osoby, Adresy
D. SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id=Adresy.id
Błędy w niepoprawnych odpowiedziach wynikają z niewłaściwego użycia konstrukcji SQL, co prowadzi do złego łączenia tabel. Pierwsze zapytanie korzysta z niejawnego łączenia, tylko oddzielając tabelę przecinkami, co jest już trochę staroświeckie. To prowadzi do tzw. iloczynu kartezjańskiego, co w praktyce oznacza, że każdy rekord z jednej tabeli łączy się z każdym rekordem z drugiej, co jest na ogół nieefektywne. W drugiej odpowiedzi próbujesz użyć warunku WHERE do łączenia tabel, ale niestety używasz identyfikatora id dla obu tabel, co psuje połączenie danych. Poprawne łączenie powinno opierać się na kluczu głównym i odpowiednim kluczu obcym. W trzeciej wersji zapytania masz błędną składnię, która nie trzyma się zasad SQL. W SQL każde FROM powinno być użyte tylko raz do określenia źródła danych. Często błędy wynikają z braku zrozumienia zasad łączenia tabel oraz niewłaściwego używania kluczy. Zrozumienie tych mechanizmów jest kluczowe, jeśli chcesz efektywnie korzystać z relacyjnych baz danych. Zdecydowanie warto znać poprawne konstrukcje SQL, żeby pracować z danymi w środowisku IT.

Pytanie 23

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

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

Pytanie 24

W bazie danych księgarni znajduje się tabela ksiazki, która zawiera pola: id, idAutor, tytul, ileSprzedanych, oraz tabela autorzy z polami: id, imie, nazwisko. Jak można utworzyć raport sprzedanych książek zawierający tytuły oraz nazwiska autorów?

A. należy zdefiniować relację l..n pomiędzy tabelami ksiazki a autorzy, a następnie stworzyć kwerendę łączącą obie tabele
B. należy zdefiniować relację 1..1 pomiędzy tabelami ksiazki a autorzy, a następnie stworzyć kwerendę łączącą obie tabele
C. trzeba utworzyć dwie oddzielne kwerendy: pierwsza do wyszukiwania tytułów książek, druga do wyszukiwania nazwisk autorów
D. konieczne jest stworzenie kwerendy, która wyszukuje tytuły książek
Relacja l..n między tabelami 'ksiazki' i 'autorzy' jest naprawdę ważna. To oznacza, że jeden autor może napisać kilka książek, co jest całkiem normalne w świecie księgarni. Dzięki tej relacji, dla każdego 'idAutor' w tabeli 'ksiazki' możemy mieć wiele wpisów, co super ułatwia powiązanie tytułów z autorami. Jakbyś stworzył kwerendę, która łączy te obie tabele, to bez problemu uzyskasz dane, które jasno pokazują te relacje. Na przykład, taka kwerenda SQL mogłaby wyglądać tak: SELECT ksiazki.tytul, autorzy.nazwisko FROM ksiazki JOIN autorzy ON ksiazki.idAutor = autorzy.id; Taki sposób działania jest zgodny z normalizacją danych, co sprawia, że nasze bazy danych będą efektywne i dobrze zorganizowane.

Pytanie 25

Jakie zadania programistyczne należy realizować po stronie serwera?

A. Ukrywanie oraz odkrywanie elementów strony w zależności od bieżącej pozycji kursora
B. Zapisanie danych pobranych z aplikacji internetowej do bazy danych
C. Zmiana stylu HTML na stronie spowodowana ruchem kursora
D. Walidacja danych wpisanych w pole tekstowe w czasie rzeczywistym
Kiedy użytkownik coś klika, jak na przykład zmienia styl HTML na stronie, to wszystko dzieje się po stronie klienta, czyli w przeglądarce. Zmiany te są przeważnie robione za pomocą JavaScript i CSS, dzięki czemu wszystko działa płynnie i szybko, bo nie musimy za każdym razem gadać z serwerem. Weźmy na przykład efekty hover – to coś, co naprawdę poprawia doświadczenie na stronie. Sprawdzanie danych w polach, jak adres e-mail, również odbywa się po stronie klienta. To właśnie tam walidujemy dane, co robi się najczęściej przez JavaScript. Dzięki temu nasz serwer nie dostaje za dużo niepotrzebnych zapytań, co czyni aplikacje bardziej responsywnymi. Jeśli chodzi o ukrywanie lub pokazywanie elementów na stronie w zależności od kursora, to również robimy to po stronie klienta. Takie rzeczy są zwykle ogarniane przez skrypty JavaScript, które zmieniają DOM. Tak więc, tego typu zadania musimy robić po stronie klienta, a nie na serwerze.

Pytanie 26

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

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

Pytanie 27

W formularzu dokumentu PHP znajduje się pole <input name="im" />. Po wpisaniu przez użytkownika ciągu „Janek”, aby dodać wartość tego pola do bazy danych, w tablicy $_POST będzie obecny element

A. Janek z kolejnym numerem indeksu
B. im z kolejnym numerem indeksu
C. Janek z indeksem im
D. im z indeksem Janek
Odpowiedzi, które nie są poprawne, bazują na nieprawidłowych założeniach dotyczących sposobu, w jaki PHP przetwarza dane z formularzy. Pierwsza z niepoprawnych odpowiedzi sugeruje, że w tablicy $_POST istnieje element o kluczu 'im' z indeksem 'Janek'. W rzeczywistości, kluczem jest nazwa pola, a wartością jest to, co zostało wprowadzone przez użytkownika, więc takie połączenie klucza i wartości jest mylące. W drugiej niepoprawnej opcji mowa o 'Janek' jako kluczu, co również jest błędne, ponieważ 'Janek' jest wartością, a nie kluczem. Klucz w tablicy $_POST to zawsze nazwa pola formularza, czyli w tym przypadku 'im', a jego wartość to 'Janek'. Trzecia niepoprawna odpowiedź sugeruje, że klucz 'im' miałby być skojarzony z kolejnym numerem indeksu. To również jest niewłaściwe, ponieważ PHP nie dodaje automatycznie numerów indeksów do kluczy tablic, a klucze pozostają takie same, jak nazwy w formularzu. W każdej sytuacji nazwa pola pozostaje kluczem, co jest istotnym elementem przetwarzania danych w PHP.

Pytanie 28

Funkcja zapisana w języku PHP wygląda tak patrz ramka): Jej celem jest

Ilustracja do pytania
A. zwrócenie wartości 1, gdy liczba jest parzysta
B. wypisanie liczby nieparzystej
C. wypisanie liczby parzystej
D. zwrócenie wartości 0, gdy liczba jest parzysta
Funkcja w języku PHP jest zapisana w taki sposób że przyjmuje jeden argument liczba i sprawdza czy jest on parzysty. Używa operatora modulo % który zwraca resztę z dzielenia. Jeśli liczba podzielona przez 2 daje resztę równą 0 oznacza to że jest parzysta. W takim przypadku funkcja zwraca wartość 1. W przeciwnym razie czyli gdy liczba jest nieparzysta funkcja zwraca 0. Takie podejście jest częstym wzorcem w programowaniu gdyż pozwala na szybkie i efektywne sprawdzenie parzystości liczby. Stosowanie operatora modulo jest standardem w wielu językach programowania dzięki czemu kod jest zrozumiały i łatwo go przenieść między różnymi platformami. W praktyce takie funkcje mogą być używane w algorytmach gdzie konieczne jest filtrowanie danych na podstawie parzystości lub innych podobnych kryteriów. Dobre praktyki w kodowaniu w PHP obejmują również jasne nazywanie funkcji i zmiennych co poprawia czytelność i utrzymanie kodu. Można także zastanowić się nad rozszerzeniem funkcji o dodatkowe sprawdzania lub logikę w zależności od potrzeb projektu.

Pytanie 29

Fragment tabeli gory prezentuje polskie łańcuchy górskie oraz ich najwyższe szczyty. Przedstaw kwerendę, która oblicza średnią wysokość szczytów dla każdego łańcucha górskiego.

Idpasmonazwa wysokosc
134Góry Bystrzyckie(brak nazwy)949
137Góry BystrzyckieAnielska Kopa871
74Beskid ŻywieckiBabia Góra (Diablak)1725
41Beskid ŚląskiBarania Góra1220
145Góry KarczewskieBaraniec723
128Góry BardzkieBardzka Góra (Kalwaria)583
297TatryBeskid2012
A. SELECT pasmo, COUNT(wysokosc) FROM gory ORDER BY pasmo
B. SELECT pasmo, AVG(wysokosc) FROM gory LIMIT pasmo
C. SELECT pasmo, AVG(wysokosc) FROM gory GROUP BY pasmo
D. SELECT pasmo, SUM(wysokosc) FROM gory GROUP BY pasmo
Błędne odpowiedzi wynikają z nieprawidłowego zrozumienia, jak działa grupowanie i agregacja danych w SQL. Odpowiedź SELECT pasmo, AVG(wysokosc) FROM gory LIMIT pasmo nie jest poprawna, ponieważ klauzula LIMIT służy do ograniczenia liczby wyników zwracanych przez zapytanie, a nie do grupowania danych według pasma. Zastosowanie LIMIT pasmo prowadzi do błędu składniowego, gdyż LIMIT oczekuje liczby całkowitej, która określa maksymalną liczbę rekordów do zwrócenia. Odpowiedź SELECT pasmo, SUM(wysokosc) FROM gory GROUP BY pasmo chociaż poprawnie używa klauzuli GROUP BY, liczy sumę wysokości, a nie średnią, co jest niezgodne z treścią pytania. SUM() zlicza całkowitą wysokość szczytów w każdym paśmie, co nie odpowiada na pytanie o średnią wysokość. Odpowiedź SELECT pasmo, COUNT(wysokosc) FROM gory ORDER BY pasmo liczy ilość szczytów w każdym paśmie, co znowu mija się z celem pytania, które dotyczy średniej wysokości. COUNT() używa się do zliczania liczby niepustych rekordów w danej kolumnie, a ORDER BY po prostu sortuje wynik według wartości pasmo. Zrozumienie roli i funkcji każdej z klauzul SQL oraz ich połączenia jest kluczowe w dokładnym przetwarzaniu i interpretacji danych w kontekście analitycznym i raportowym. Tego typu błędy wynikają często z pomylenia funkcji agregujących lub niepełnego zrozumienia mechaniki SQL, co może prowadzić do błędnych wniosków w analizie danych.

Pytanie 30

Wskaż zdanie, które jest nieprawdziwe w odniesieniu do poniższej definicji funkcji w języku C++? void zamien(float &x, float &y){ float tmp; tmp=x; x=y; y=tmp; }

A. Funkcja zwraca jakąś wartość
B. Funkcja nie zwraca żadnej wartości
C. Funkcja ma dwa argumenty
D. Funkcja korzysta z parametrów przez referencję
Wszystkie niepoprawne odpowiedzi zawierają błędne założenia dotyczące definicji i działania funkcji zamien. Po pierwsze, twierdzenie, że funkcja zwraca wartość, jest nieprawdziwe, ponieważ w definicji funkcji użyto słowa kluczowego 'void', co jednoznacznie wskazuje, że nie ma zwracanej wartości. W C++ funkcje, które zwracają wartości, muszą mieć określony typ, a brak takiego typu sugeruje, że funkcja nie zwraca żadnych danych. Drugie stwierdzenie, że funkcja nie zwraca wartości, jest rzeczywiście poprawne. Warto zauważyć, że w przypadku funkcji, która dokonuje jedynie zamiany wartości argumentów przez referencję, nie ma potrzeby zwracania wyniku, gdyż zmiany te są widoczne w zmiennych przekazanych do funkcji. Trzecia odpowiedź, która wskazuje, że funkcja posiada dwa parametry, jest również prawdziwa, ponieważ funkcja 'zamien' przyjmuje dwa argumenty typu 'float', które są przekazywane przez referencję. Odnosi się to do aspektu przekazywania argumentów, gdzie użycie referencji pozwala na modyfikację przekazywanych danych. Na koniec, czwarta odpowiedź, mówiąca, że funkcja odwołuje się do parametrów przez referencję, również jest poprawna. Przekazywanie przez referencję jest techniką, która umożliwia bezpośrednią manipulację zmiennymi zewnętrznymi, co zwiększa elastyczność i efektywność funkcji, zwłaszcza w kontekście operacji na dużych zbiorach danych. W związku z tym, analiza wszystkich odpowiedzi prowadzi do wniosku, że tylko pierwsze stwierdzenie jest błędne, ponieważ jasno pokazuje, że funkcja zamien nie zwraca żadnej wartości.

Pytanie 31

Aby w tabeli praca, tworzonej w języku SQL, dodać do kolumny stawka warunek, który wymusza, aby przyjmowane były jedynie wartości dodatnie, a jednocześnie mniejsze niż 50, należy zastosować zapis

A. … stawka foat CHECK (stawka>0 OR stawka<50.00)
B. … stawka foat CHECK (stawka BETWEEN 0 AND 50.00)
C. … stawka foat CHECK (stawka>0 AND stawka<50.00)
D. … stawka foat CHECK (stawka IN (0, 50.00))
Poprawna odpowiedź to zapis '… stawka foat CHECK (stawka>0 AND stawka<50.00)', ponieważ warunek ten precyzyjnie określa, że wartość w kolumnie 'stawka' musi być większa od zera oraz mniejsza od 50, co oznacza, że akceptowane będą tylko rzeczywiste wartości dodatnie mieszczące się w tym przedziale. Zastosowanie warunku CHECK jest kluczowym elementem w zapewnieniu integralności danych w bazach danych. Dzięki temu, przy wstawianiu lub aktualizacji danych w tabeli 'praca', system zablokuje wszelkie operacje, które nie spełniają tego kryterium, co z kolei zapobiega wprowadzaniu błędnych danych. W praktyce, stosowanie takich warunków w definicji kolumn w SQL jest zgodne z dobrymi praktykami projektowania baz danych, które kładą nacisk na walidację danych już na poziomie schematu bazy. Przykładowo, jeżeli chcemy zapewnić, aby stawka wynagrodzenia pracowników nie przekraczała określonego limitu, stosowanie CHECK z warunkiem 'stawka<50.00' stanowi efektywny sposób na wymuszenie tej zasady. Tego rodzaju rozwiązania nie tylko poprawiają jakość danych, ale również ułatwiają przyszłe analizy statystyczne oraz raportowanie.

Pytanie 32

W języku JavaScript funkcja document.getElementById(id) służy do

A. sprawdzania poprawności formularza z identyfikatorem id
B. umieszczenia tekstu 'id' na stronie WWW
C. pobierania danych z pola formularza i przypisania ich do zmiennej id
D. uzyskania odniesienia do pierwszego elementu HTML o wskazanym id
Zrozumienie funkcji document.getElementById(id) jest fundamentalne dla efektywnej pracy z DOM w JavaScript. Wiele błędnych odpowiedzi na to pytanie wynika z nieporozumień dotyczących podstawowych zasad działania tej metody. Propozycja, że metoda ta sprawdza poprawność formularza o identyfikatorze id, jest nieprawidłowa, ponieważ jej głównym celem nie jest walidacja danych, lecz lokalizacja elementu w dokumencie. Walidacja formularza zwykle realizowana jest za pomocą innych metod, takich jak event listeners, które reagują na interakcje użytkownika. Twierdzenie, że document.getElementById() pobiera dane z pola formularza i wstawia je do zmiennej id, jest także mylące, ponieważ id to atrybut, który wskazuje na element, a nie zmienną do przechowywania wartości. W rzeczywistości, jeśli chcielibyśmy uzyskać wartość pola formularza, musielibyśmy najpierw uzyskać odniesienie do tego elementu, a następnie odczytać jego wartość za pomocą np. element.value. Ostatnia nieprawidłowa koncepcja, czyli wstawienie tekstu o treści 'id' na stronie WWW, również jest błędna, gdyż metoda ta nie wstawia tekstu, a jedynie zwraca odniesienie do elementu. Wskazuje to na powszechne błędy myślowe, gdzie użytkownicy mylą funkcję szukania elementu z funkcjami manipulacji jego zawartością. Zrozumienie tych różnic jest kluczowe w nauce programowania w JavaScript.

Pytanie 33

Jaką wartość zwróci funkcja ```empty($a);``` w języku PHP, gdy zmienna ```$a``` będzie miała wartość liczbową równą 0?

A. FALSE
B. TRUE
C. NULL
D. 0
Odpowiedzi, które wskazują, że funkcja empty() zwraca 0, FALSE lub NULL, są mylne z kilku powodów. Po pierwsze, wartość 0 w PHP to po prostu liczba i nie jest interpretowana jako pusta. Zmienne, które mają wartość 0 są traktowane jako fałszywe w kontekście logicznym, ale nie są uznawane za puste zgodnie z definicją funkcji empty(). Kiedy przyjmujemy, że empty($a) zwraca 0, w rzeczywistości mylimy funkcję empty() z innymi, które operują na wartościach liczbowych. Podobnie, FALSE jako wynik również nie jest poprawny; chociaż 0 jest uważane za fałszywe, empty() zwraca TRUE, a nie FALSE, gdy zmienna jest pusta. Także NULL to typ danych, a w kontekście empty() jest uznawany za pusty, ale nie jest to wynik, jaki uzyskalibyśmy dla zmiennej $a = 0. Właściwe zrozumienie zwrotów z funkcji PHP oraz typów danych jest kluczowe dla skutecznego programowania. Pomocne jest, aby programiści upewniali się, że korzystają z odpowiednich funkcji do określenia pustych wartości, a w przypadku empty() nie mogą pomylić jej działania z innymi funkcjami, które operują na wartościach logicznych lub liczbowych.

Pytanie 34

Określ wynik wykonania poniższego fragmentu kodu JavaScript.

var akapit = document.createElement("p");
document.body.appendChild(akapit);
A. Usunięcie akapitu z treści strony
B. Wyświetlenie okna dialogowego z komunikatem "akapit"
C. Dodanie akapitu na samym końcu strony
D. Wstawienie akapitu na początku strony
Wybór innej odpowiedzi niż dodanie akapitu na końcu strony może świadczyć o tym, że nie do końca rozumiesz, jak działa manipulacja DOM w JavaScript. Wydaje się, że sądzisz, że kod usuwa akapit, ale tak naprawdę używana jest tylko metoda do tworzenia i dodawania elementów, a usuwanie wymagałoby czegoś innego, jak removeChild czy remove. Również mylenie dodawania elementu na początku strony jest błędne, bo appendChild zawsze dodaje na końcu. Jakbyś chciał dodać na początku, musiałbyś zastosować insertBefore z odniesieniem do pierwszego dziecka. Myślenie, że kod wyświetla okno dialogowe, też nie ma podstaw, bo nie użyto tu żadnej metody dialogowej jak alert czy prompt. Z mojego doświadczenia, takie mylne podejście często wynika z braku praktyki z manipulacją DOM, co jest istotne do prawidłowego stosowania JavaScript w projektach webowych.

Pytanie 35

Podczas przechowywania hasła użytkownika serwisu internetowego (np. bankowości online), aby chronić je przed ujawnieniem, zazwyczaj stosuje się funkcję

A. klucza.
B. abstrakcyjnych.
C. cyklometrycznych.
D. mieszających.
Mieszające funkcje, choć istotne w kryptografii, nie są właściwym podejściem do zabezpieczania haseł użytkowników. Ich głównym celem jest zapewnienie, że nawet niewielka zmiana w danych wejściowych prowadzi do drastycznie różniącego się wyniku, co jest przydatne w kontekście tworzenia funkcji hashujących, ale nie wystarcza do ochrony haseł. Funkcje abstrakcyjne, z kolei, dotyczą bardziej teoretycznych modeli czy algorytmów, które nie mają bezpośredniego zastosowania w procesie zabezpieczania haseł. Kluczowe jest, aby zrozumieć, że hasła powinny być przede wszystkim szyfrowane przy użyciu odpowiednich algorytmów, a nie jedynie mieszane czy abstrakcyjne. Cyklometryczne metody również nie mają zastosowania w kontekście ochrony haseł, gdyż ich zastosowanie jest ograniczone do analizy danych czy grafów, a nie do rzeczywistych procesów szyfrowania czy zabezpieczania informacji. Dlatego błędem jest przypuszczenie, że inne metody mogą zastąpić funkcje klucza w kontekście ochrony haseł. W praktyce, stosowanie nieodpowiednich metod zabezpieczających prowadzi do poważnych luk w bezpieczeństwie, które mogą być wykorzystane przez cyberprzestępców.

Pytanie 36

Podaj nazwę Systemu Zarządzania Treścią, którego logo jest pokazane na dołączonym rysunku?

Ilustracja do pytania
A. WordPress
B. MediaWiki
C. Drupal
D. Joomla!
Drupal WordPress i MediaWiki to również popularne systemy zarządzania treścią jednak różnią się one znacząco od Joomla! pod względem funkcjonalności i przeznaczenia. Drupal to zaawansowany CMS często wybierany do dużych i złożonych projektów które wymagają wysokiego poziomu personalizacji i rozbudowanej struktury danych. Z kolei WordPress początkowo rozwinięty jako platforma bloggingowa jest obecnie najczęściej używanym systemem CMS na świecie dzięki prostocie użycia i szerokiej gamie wtyczek co czyni go idealnym narzędziem do tworzenia blogów i mniejszych stron biznesowych. MediaWiki natomiast to oprogramowanie stworzone z myślą o prowadzeniu wiki co sprawia że jest świetnym narzędziem do gromadzenia i organizacji wiedzy w formie stron edytowanych przez wielu użytkowników ale nie jest to narzędzie o szerokim zastosowaniu w kontekście typowych stron internetowych. Często popełnianym błędem jest zakładanie że wszystkie CMS-y pełnią te same funkcje podczas gdy każdy z nich ma swoje unikalne cechy i zastosowania. Wybór systemu powinien być uzależniony od specyficznych wymagań projektu oraz oczekiwań dotyczących funkcjonalności i skalowalności. Rozpoznawanie logo poszczególnych CMS-ów jest praktyczną umiejętnością pomocną w identyfikacji właściwego narzędzia dla określonej potrzeby projektowej co jest istotne dla profesjonalistów z branży web developmentu. Zrozumienie różnic między tymi systemami pozwala na trafniejsze podejmowanie decyzji projektowych i efektywne wykorzystanie dostępnych technologii.

Pytanie 37

Aby prawidłowo zorganizować hierarchiczną strukturę tekstu na stronie internetowej, powinno się wykorzystać

A. znaczniki <frame> i <table>
B. znaczniki <h1>, <h2> oraz <p>
C. znacznik <p> z formatowaniem
D. znacznik <div>
Aby poprawnie zdefiniować hierarchiczną strukturę tekstu witryny internetowej, kluczowe jest zastosowanie znaczników <h1>, <h2>, oraz <p>. Znacznik <h1> jest najważniejszym nagłówkiem na stronie i powinien być używany tylko raz, aby wskazać główny temat treści. Z kolei znaczniki <h2> służą do wyodrębnienia podtematów, co pozwala na tworzenie czytelnej i logicznej struktury dokumentu. Dzięki tym znacznikom, zarówno użytkownicy, jak i wyszukiwarki internetowe mogą łatwiej zrozumieć hierarchię treści. Znacznik <p> jest używany do definiowania akapitów, co dodatkowo poprawia czytelność tekstu. Zastosowanie tej struktury jest zgodne z wytycznymi W3C oraz zasadami SEO, co przyczynia się do lepszego indeksowania przez wyszukiwarki. Przykładowo, strona internetowa poświęcona zdrowemu stylowi życia może mieć <h1> jako 'Zdrowy Styl Życia', a <h2> jako 'Dieta' i 'Ćwiczenia', co ułatwia użytkownikom nawigację oraz przyswajanie treści.

Pytanie 38

Który z poniższych zapisów w HTML określa kodowanie znaków stosowane w dokumencie?

A. <meta charset="UTF-8">
B. <meta encoding="UTF-8">
C. <charset="UTF-8">
D. <encoding="UTF-8">
Odpowiedzi <charset="UTF-8">, <encoding="UTF-8"> oraz <meta encoding="UTF-8"> są niepoprawne i wskazują na pewne nieporozumienia w zakresie składni HTML oraz roli metadanych. Pierwszy zapis, <charset="UTF-8">, jest nieprawidłowy, ponieważ nie jest to poprawna konstrukcja HTML. Element <meta> jest niezbędny, aby deklarować kodowanie znaków, a sam atrybut 'charset' musi być jego częścią. Bez elementu <meta> nie będzie można skutecznie ustalić kodowania, co prowadzi do problemów z wyświetlaniem tekstu. Druga odpowiedź, <encoding="UTF-8">, również jest błędna, ponieważ nie istnieje taki atrybut w kontekście elementu <meta>. Elementy HTML muszą przestrzegać określonej składni, a atrybut 'encoding' nie jest uznawany za standard w HTML. Ostatnia odpowiedź, <meta encoding="UTF-8">, jest niepoprawna, ponieważ właściwy atrybut to 'charset', a nie 'encoding'. To typowe błędy, które mogą wynikać z nieznajomości standardów HTML i ich ewolucji. Użycie niewłaściwych atrybutów może prowadzić do frustracji programistycznej oraz problemów z efektywnością strony, dlatego tak istotne jest zrozumienie i przestrzeganie dobrych praktyk w zakresie kodowania stron internetowych.

Pytanie 39

Jaką formę przybierze data po wykonaniu poniższego kodu PHP?

<?php
echo date('l, dS F Y');
?>
A. Monday, 10 July 2017
B. 10, Monday July 2017
C. Monday, 10th July 17
D. Monday, 10th July 2017
W tym przykładzie funkcja date() w PHP przyjmuje ciąg znaków 'l dS F Y' jako parametr formatowania, co determinuje sposób wyświetlenia daty. Znak 'l' reprezentuje pełną nazwę dnia tygodnia, co w przypadku poniedziałku da 'Monday'. 'd' to dwucyfrowa reprezentacja dnia miesiąca, dodając 'S' uzyskujemy jego wersję z angielskim sufiksem porządkowym, np. '10th', co jest zgodne z odpowiedzią. 'F' reprezentuje pełną nazwę miesiąca, czyli 'July', a 'Y' to pełny rok, czyli '2017'. Kombinacja tych formatów pozwala na uzyskanie czytelnej i zgodnej ze standardami reprezentacji daty w języku angielskim, co jest często wykorzystywane w międzynarodowych projektach webowych. Takie formatowanie jest nie tylko intuicyjne dla użytkowników, ale także zgodne z dobrymi praktykami w zakresie czytelności i użyteczności w aplikacjach internetowych. PHP umożliwia elastyczne formatowanie dat, co jest bardzo przydatne w kontekście globalnych aplikacji wymagających różnych lokalizacji.

Pytanie 40

Która metoda obiektu location w języku JavaScript pozwala na zamianę aktualnego dokumentu na dokument z adresu podanego w parametrze metody?

A. replace();
B. close();
C. open();
D. reaload();
Wybór metod takich jak open(), close() oraz reload() świadczy o niepełnym zrozumieniu funkcji obiektu location w JavaScript oraz ich zastosowania w kontekście manipulacji dokumentami webowymi. Metoda open() jest używana do otwierania nowych okien przeglądarki lub kart, co nie ma związku z zastępowaniem bieżącego dokumentu. Użytkownicy często mylą tę metodę z funkcjonalnością nawigacyjną, jednak efektem otwarcia nowego okna jest jedynie dodanie nowej instancji, a nie modyfikacja bieżącej. Z kolei close() ma na celu zamknięcie obecnego okna, co również nie odpowiada na potrzebę zmiany dokumentu. Użycie reload() może prowadzić do nieporozumień, gdyż ta metoda odnawia bieżący dokument, ale nie zastępuje go nowym - przeglądarka ponownie ładuje tę samą stronę, co nie spełnia założenia pytania. W praktyce, użytkownik, uznając reload() za właściwe podejście, może napotkać na problemy z wydajnością i użytecznością, gdyż wielokrotne odświeżanie tej samej strony może prowadzić do niepożądanych efektów, takich jak utrata danych w formularzach. Kluczowe jest zrozumienie różnic pomiędzy tymi metodami oraz ich odpowiednim zastosowaniem w kontekście nawigacji i zarządzania historią przeglądarki, co jest istotne dla osiągnięcia optymalnego doświadczenia użytkownika.