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 kwietnia 2026 14:28
  • Data zakończenia: 16 kwietnia 2026 14:52

Egzamin niezdany

Wynik: 18/40 punktów (45,0%)

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 języku SQL, dla dowolnych zbiorów danych w tabeli Uczniowie, aby uzyskać rekordy zawierające tylko uczennice o imieniu "Aleksandra", które urodziły się po roku "1998", należy sformułować zapytanie

A. SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia > "1998"
B. SELECT * FROM Uczniowie WHERE imie ="Aleksandra" OR rok_urodzenia < "1998"
C. SELECT * FROM Uczniowie WHERE imie="Aleksandra" OR rok_urodzenia > "1998"
D. SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia < "1998"
Pozostałe odpowiedzi niestety mają błędy w logice, co prowadzi do złych wyników. Jak używasz operatora OR, to istnieje szansa, że wyniki obejmą rekordy, które spełniają tylko jeden warunek, co nie pasuje do tego, co chciałeś uzyskać. Na przykład, zapytanie 'SELECT * FROM Uczniowie WHERE imie="Aleksandra" OR rok_urodzenia < "1998";' pokaże wszystkie Aleksandry, jak też wszystkie osoby urodzone przed 1998 rokiem, co jest kompletnie nie na miejscu, bo szukasz tylko tych urodzonych po 1998. Podobnie z użyciem operatora AND z warunkiem 'rok_urodzenia < "1998"', to także jest błędne, bo nie spełnia wymagań dotyczących urodzin po 1998 roku. Ważne jest, by operatorzy logiczni byli używani przemyślanie, żeby uniknąć niechcianych wyników. Często ludzie mylą AND z OR, co prowadzi do wniosków, które są dalekie od prawdy. W SQL musisz być precyzyjny w definiowaniu warunków, żeby wyniki pasowały do tego, co chcesz uzyskać.

Pytanie 2

Które z poniższych twierdzeń na temat klucza głównego jest prawdziwe?

A. Jest unikalny w ramach tabeli
B. Zawiera jedynie jedno pole
C. W przypadku tabeli z danymi osobowymi może to być pole nazwisko
D. Może mieć tylko wartości liczbowe
Wszystkie niepoprawne odpowiedzi opierają się na nieporozumieniach dotyczących definicji i właściwości klucza podstawowego. Klucz podstawowy nie jest ograniczony do jednego pola; może być złożony z kilku atrybutów, co jest typowe w bardziej skomplikowanych modelach danych. Zastosowanie kilku pól jako klucza podstawowego jest często konieczne, aby zapewnić unikalność w sytuacjach, gdzie pojedyncze pole może nie wystarczyć. Odpowiedź wskazująca, że klucz podstawowy składa się tylko z jednego pola, prowadzi do myślenia, które nie odzwierciedla rzeczywistości projektowania baz danych. Ponadto, klucz podstawowy może przyjmować różne typy danych, w tym tekstowe, co jest niezgodne z twierdzeniem, że może on przyjmować jedynie wartości liczbowe. W rzeczywistości, wiele baz danych używa tekstowych wartości jako kluczy, zwłaszcza w kontekście identyfikatorów, które są bardziej zrozumiałe dla użytkowników. W przypadku danych osobowych, pole nazwisko nie jest odpowiednim kandydatem na klucz podstawowy, ponieważ nie jest unikalne - wielu użytkowników może mieć to samo nazwisko. Używanie nieunikalnych danych jako kluczy podstawowych narusza podstawowe zasady projektowania baz danych, co może prowadzić do błędów i problemów z integralnością danych. Rozumienie tych koncepcji jest kluczowe dla prawidłowego projektowania i administracji baz danych.

Pytanie 3

Model fizyczny replikacji bazy danych pokazany na ilustracji jest modelem

Ilustracja do pytania
A. równorzędnym
B. centralnego subskrybenta
C. centralnego wydawcy
D. rozproszonym
Model centralnego wydawcy jest popularnym rozwiązaniem w replikacji baz danych gdzie jeden centralny serwer działa jako główny wydawca danych do wielu subskrybentów. Kluczowa cecha tego modelu polega na tym że wszystkie zmiany są inicjowane na głównym serwerze co pozwala na scentralizowane zarządzanie danymi. Centralny wydawca zapewnia że dane są spójne i aktualizowane we wszystkich subskrybentach zmniejszając ryzyko konfliktów danych. Taka architektura jest często stosowana w organizacjach z rozproszonymi jednostkami gdzie centralny serwer w centrali obsługuje oddziały terenowe. Przykładami zastosowań są systemy ERP i CRM które wymagają jednoczesnej replikacji danych do wielu lokalizacji. Dobre praktyki w tej architekturze obejmują regularne monitorowanie wydajności serwerów oraz optymalizację przepustowości sieci by minimalizować opóźnienia. Modele centralnego wydawcy wykorzystują technologie takie jak SQL Server Replication czy Oracle Streams które są dobrze udokumentowane i szeroko stosowane w branży zapewniając niezawodność i skalowalność.

Pytanie 4

Za pomocą podanego zapytania w tabeli zostanie wykonane

ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;
A. Dodana kolumna nazwa2 o typie zmiennoprzecinkowym.
B. Została zmieniona nazwa kolumny z nazwa1 na nazwa2.
C. Zmieniono typ kolumny nazwa2 na DOUBLE.
D. Dodana kolumna nazwa2, która nie przyjmuje wartości domyślnej.
Analizując dostępne odpowiedzi, warto zwrócić uwagę na kilka istotnych kwestii związanych z instrukcją ALTER TABLE oraz jej zastosowaniem. Pierwsza koncepcja, dotycząca zmiany nazwy kolumny z nazwa1 na nazwa2, jest niepoprawna, ponieważ zapytanie nie wskazuje na taką operację. Zamiast tego, tworzymy nową kolumnę, a nie modyfikujemy istniejącą. Przechodząc do drugiej odpowiedzi, zmiana wartości kolumny nazwa2 na DOUBLE jest błędna, ponieważ instrukcja nie odnosi się do zmian wartości, ale do struktury tabeli. Kolejna nieprawidłowa koncepcja, sugerująca dodanie kolumny nazwa2 przyjmującej wartość domyślną DOUBLE, jest również myląca, ponieważ w zapytaniu nie ma ustawienia wartości domyślnej, a jedynie określenie typu kolumny oraz ograniczenia NOT NULL. Typowe błędy myślowe, które prowadzą do takich wniosków, to nieścisłe rozumienie roli polecenia ALTER TABLE oraz mylenie operacji na kolumnach z ich definicjami. W praktyce, ważne jest, aby dokładnie rozumieć jak działają typy danych w SQL oraz jakie ograniczenia można na nich nakładać, aby zapewnić integralność i jakość przechowywanych danych.

Pytanie 5

W przedstawionej definicji typu wyliczeniowego w języku C++ enumerator CZWARTEK będzie miał wartość równą

Ilustracja do pytania
A. liczbie 4
B. napisowi 'CZWARTEK'
C. napisowi "CZWARTEK"
D. liczbie 1
W języku C++ typy wyliczeniowe, znane jako enum, są używane do definiowania zestawu nazwanych stałych całkowitych. Zrozumienie, jak działa inicjalizacja i przydzielanie wartości w ramach enum, jest kluczowe. W przedstawionej definicji enum dni {PONIEDZIAŁEK = 1, WTOREK, ŚRODA, CZWARTEK, PIĄTEK, SOBOTA, NIEDZIELA}; PONIEDZIAŁEK jest jawnie zainicjalizowany wartością 1. Następne enumeratory automatycznie otrzymują kolejne wartości całkowite, o ile nie zostaną zainicjalizowane samodzielnie. W konsekwencji WTOREK otrzymuje wartość 2, ŚRODA 3, a CZWARTEK 4, co wynika z automatycznego zwiększania wartości o 1. Wybór odpowiedzi wskazujących, że CZWARTEK to napis, jest błędny ze względu na sposób działania enum, które przypisują wartości całkowite. Enum nie obsługuje przypisywania wartości tekstowych czy znakowych do enumeratorów, co wyklucza odpowiedzi zakładające taką możliwość. Rozumienie tych koncepcji jest kluczowe, ponieważ typy wyliczeniowe są szeroko stosowane w programowaniu, umożliwiając uporządkowane zarządzanie stałymi symbolicznymi. Ich użycie zwiększa czytelność i konserwowalność kodu poprzez eliminację magicznych liczb oraz ułatwia śledzenie stanu aplikacji dzięki zastosowaniu nazwanych wartości. Mylne interpretacje wynikają często z braku wiedzy o możliwości automatycznego przypisywania wartości enum, co prowadzi do niepoprawnych założeń o przypisaniach tekstowych.

Pytanie 6

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. wykluczenia.
D. grupowania.
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 7

Parametr face elementu <font> jest używany do wskazania

A. rozmiaru czcionki
B. koloru czcionki
C. nazwa czcionki
D. efektów czcionki
Odpowiedzi sugerujące, że parametr face dotyczy barwy, wielkości lub efektów czcionki opierają się na nieprawidłowym zrozumieniu funkcji znacznika <font>. Chociaż kolory czcionek można faktycznie definiować w HTML, to odpowiedzialny za nie jest inny atrybut – color. Warto zauważyć, że barwa tekstu jest istotnym elementem projektowania stron, ale jest to niezwiązane z parametrem face. Wielkość czcionki z kolei jest regulowana przez atrybut size, co również jest osobną kwestią. Efekty czcionki, takie jak pogrubienie czy kursywa, są osiągane za pomocą atrybutów takich jak bold i italic, natomiast face precyzuje wyłącznie nazwę czcionki. Powszechnym błędem w myśleniu jest zakładanie, że wszystkie aspekty stylizacji czcionek są ze sobą powiązane w jednym parametrze. Kluczowe jest zrozumienie, że HTML i CSS mają różne role w tworzeniu stron internetowych. HTML skupia się na strukturze dokumentu, podczas gdy CSS odpowiada za jego wygląd. W przypadku nowoczesnych praktyk kodowania, atrybut face jest uznawany za przestarzały, co sprawia, że korzystanie z CSS jest bardziej efektywne i zgodne z aktualnymi standardami projektowania stron. Zamiast polegać na starych metodach, warto dostosować się do współczesnych technik kodowania, które oferują większą elastyczność oraz lepsze wsparcie dla responsywności stron.

Pytanie 8

Rodzaj zmiennej w języku JavaScript

A. musi być zadeklarowany na początku skryptu.
B. ma miejsce poprzez przypisanie wartości.
C. nie istnieje.
D. jest tylko jeden rodzaj.
Wiele osób uważa, że typ zmiennej w JavaScript powinien być z góry zadeklarowany, co jest niezgodne z jego zasadami działania. Twierdzenie, że typ zmiennej 'nie występuje', jest mylne, ponieważ każda wartość przypisana do zmiennej ma swój typ, nawet jeśli nie jest to jawnie określone. Ignorowanie tego faktu prowadzi do nieporozumień i błędów w kodzie. Kolejne nieprecyzyjne stwierdzenie, że 'jest tylko jeden' typ zmiennej, pomija kluczową cechę JavaScript jako języka dynamicznego, który obsługuje wiele typów, takich jak liczby, stringi, obiekty i tablice. Typy te mogą zmieniać się w trakcie działania programu, co czyni język bardzo elastycznym. Z kolei przekonanie, że zmienne muszą być zadeklarowane na początku skryptu, jest również błędne, ponieważ JavaScript pozwala na przypisywanie wartości do zmiennych w dowolnym miejscu w kodzie, co zwiększa jego dynamikę. Takie myślenie może prowadzić do nieefektywnego kodu, który jest trudniejszy w utrzymaniu oraz rozwijaniu. Ważne jest, aby zrozumieć zasady działające w tym języku, aby unikać typowych pułapek związanych z typowaniem zmiennych oraz właściwie wykorzystać zalety, jakie oferuje JavaScript.

Pytanie 9

Portal internetowy dysponuje bardzo złożonym systemem stylów, który obejmuje style zewnętrzne, wewnętrzne oraz lokalne. Jak można zagwarantować, że określona cecha zdefiniowana w zewnętrznym stylu jest zawsze stosowana do elementu HTML, niezależnie od bardziej priorytetowych stylów?

A. jako selektor potomka
B. jako pseudoklasę :active
C. przy pomocy pseudoelementu ::after
D. przy pomocy reguły !important
Odpowiedź, że cechę opisaną w zewnętrznym stylu należy zdefiniować przy pomocy reguły !important jest poprawna. Reguła !important w CSS jest używana do nadania określonej właściwości najwyższego priorytetu. Oznacza to, że nawet jeśli inne reguły CSS mają wyższy specyficzność lub są zdefiniowane później, właściwość oznaczona jako !important zostanie zastosowana. Przykład zastosowania to sytuacja, gdy styl globalny dla elementu przyjmuje kolor tła, ale chcemy, aby dany element zawsze miał czerwony kolor tła, niezależnie od innych reguł. W takim przypadku możemy zdefiniować ten styl jako: `.example { background-color: red !important; }`. Ważne jest, aby stosować !important z rozwagą, ponieważ może to prowadzić do trudności w utrzymaniu kodu oraz nadpisywaniu stylów w nieprzewidywalny sposób. Dobrym podejściem jest najpierw spróbować zwiększyć specyficzność selektora, a dopiero potem, w nagłych wypadkach, używać !important, aby unikać problemów z dziedziczeniem stylów.

Pytanie 10

Definicja stylu zaprezentowana w CSS odnosi się do odsyłacza, który

a:visited {color: orange;}
A. wskaźnik myszy znajduje się nad nim
B. został wcześniej odwiedzony
C. jeszcze nie był odwiedzony
D. posiada błędny adres URL
Wybór odpowiedzi związanej z błędnym adresem URL jest błędny, ponieważ kwestia odwiedzonych odsyłaczy w CSS nie ma związku z poprawnością adresu linku. Adres URL może być prawidłowy, a mimo to link może być nieodwiedzony lub odwiedzony, w zależności od tego, czy użytkownik wcześniej kliknął w dany odsyłacz. Użytkownicy często mylą te dwa pojęcia, co prowadzi do nieporozumień dotyczących działania linków w sieci. Kolejna błędna koncepcja to mylenie odsyłaczy z aktywnym stanem wskaźnika myszy. Pseudo-klasa `:hover` jest odpowiedzialna za stylizowanie odsyłaczy w momencie, gdy wskaźnik myszy znajduje się nad nimi, co jest zupełnie innym stanem niż stan odwiedzony. Takie pomylenie może prowadzić do nieprawidłowego projektowania interfejsu użytkownika, gdzie wizualizacje stanu linków są niewłaściwe. Z kolei stwierdzenie, że odsyłacz jeszcze nie został odwiedzony, ignoruje fakt, że stylizacja dotycząca odwiedzonych linków jest specyficzna dla tych, które były już otwarte przez użytkownika. Warto pamiętać, że CSS umożliwia precyzyjne definiowanie zachowań i stylów elementów, co powinno być stosowane zgodnie z ich przeznaczeniem i w dobrze zaplanowanej architekturze strony internetowej.

Pytanie 11

Jaką funkcję SQL można uznać za nieprzyjmującą argumentów?

A. upper
B. year
C. len
D. now
Odpowiedzi, które wskazują na funkcje 'year', 'len' oraz 'upper', opierają się na błędnych założeniach dotyczących sposobu działania tych funkcji. Funkcja 'year' jest wykorzystywana do wyodrębnienia części roku z daty i wymaga podania argumentu, który jest datą. Na przykład, użycie 'year(data)' zwróci numer roku z podanej daty, co stawia tę funkcję w kontekście pobierania argumentów. Z kolei 'len' jest funkcją służącą do określenia długości łańcucha znaków, co również oznacza, że wymaga argumentu w postaci tekstu: 'len('tekst')' zwróci liczbę znaków w podanym łańcuchu. Funkcja 'upper' z kolei przekształca wszystkie znaki w podanym łańcuchu na wielkie litery, także wymaga argumentu: 'upper('tekst')'. Te funkcje są niezwykle użyteczne w codziennej pracy z danymi, ale ich zastosowanie powinno być świadome i oparte na znajomości ich specyfiki. W przypadku takich funkcji, typowym błędem myślowym jest przekonanie, że można je stosować bez znajomości wymaganych argumentów. W praktyce oznacza to, że aby korzystać z możliwości funkcji SQL, niezbędne jest zrozumienie ich struktury i działania, co jest kluczowe dla efektywnego pisania zapytań oraz przetwarzania danych w bazach danych.

Pytanie 12

Który z poniższych sposobów na dodawanie komentarzy do kodu nie jest używany w języku PHP?

A. <!-- komentarz -->
B. # komentarz
C. /* komentarz */
D. // komentarz
Komentarze w kodzie PHP są kluczowym aspektem, który wspomaga zrozumienie i utrzymanie kodu. W PHP możemy korzystać z różnych metod komentowania, które są standardowo akceptowane w branży. Użycie # lub // pozwala na tworzenie komentarzy jedno-liniowych, co jest szczególnie przydatne w przypadku krótkich uwag lub przypomnienia o szczególnych funkcjach kodu. Komentarze wielo-liniowe, z kolei, realizowane przy pomocy /* komentarz */ są idealne do bardziej rozbudowanych objaśnień lub do tymczasowego wyłączenia większych bloków kodu podczas testowania. Zastosowanie <!-- komentarz --> jest błędne, ponieważ jest to sposób komentowania stosowany w HTML, a nie w PHP. To mylne powiązanie może prowadzić do nieporozumień i błędów w kodzie, szczególnie dla programistów, którzy pracują z różnymi językami programowania. Kluczowe jest, aby przy pracy z różnymi językami programowania znać specyfikę ich składni oraz standardy. W praktyce, niepoprawne stosowanie komentarzy może skutkować poważnymi problemami w zrozumieniu kodu, co może prowadzić do zwiększenia czasu potrzebnego na jego debugowanie oraz mniejsze zrozumienie między członkami zespołu. W związku z tym, istotne jest, aby programiści byli świadomi różnorodnych konwencji komend oraz ich kontekstu, co jest kluczowe dla skutecznej współpracy i efektywności wszystkich pracujących nad projektem.

Pytanie 13

W programie INKSCAPE / COREL, aby uzyskać efekt przedstawiony w napisie, należy

Ilustracja do pytania
A. zastosować funkcję wykluczenia z kołem
B. skorzystać z funkcji wstaw / dopasuj tekst do ścieżki
C. posłużyć się funkcją gradientu
D. wykorzystać funkcję sumy z kołem
Funkcja wstaw dopasuj tekst do ścieżki w programach takich jak Inkscape czy CorelDraw pozwala na precyzyjne zarządzanie tekstem wzdłuż dowolnie wybranej krzywej lub obiektu ścieżki To narzędzie umożliwia tworzenie estetycznie atrakcyjnych projektów, które wykorzystują nieregularne kształty do formowania tekstu Jest to szczególnie przydatne w projektowaniu graficznym przy tworzeniu logo banerów czy innych materiałów reklamowych gdzie tekst musi podążać za określonym kształtem lub konturem Korzystanie z tej funkcji wymaga zrozumienia podstawowych pojęć takich jak ścieżki krzywe i ich edycja Projektant może stworzyć ścieżkę ręcznie za pomocą narzędzi rysunkowych lub wykorzystać istniejący kształt Następnie funkcja dopasowania automatycznie układa wybrany tekst wzdłuż tej ścieżki jednocześnie pozwalając na dostosowanie jego położenia i orientacji Kluczowe jest zrozumienie że edytowane ścieżki mogą być dowolnie modyfikowane a tekst będzie się dynamicznie dostosowywał co pozwala na kreatywne eksperymentowanie z formą i stylem Tekst zachowuje swoją czytelność i proporcje co jest istotne w kontekście czytelności i estetyki gotowego projektu

Pytanie 14

Wskaż sposób, w jaki należy odwołać się do pliku default.css, jeśli index.html znajduje się bezpośrednio w katalogu Strona?

Ilustracja do pytania
A. <link rel="stylesheet" type="text/css" href="./style/default.css" />
B. <link rel="stylesheet" type="text/css" href="c:/style/default.css" />
C. <link rel="stylesheet" type="text/css" href="c:\style/default.css" />
D. <link rel="stylesheet" type="text/css" href="...\style\default.css" />
Wybrana odpowiedź jest poprawna, ponieważ poprawnie odwołuje się do pliku CSS za pomocą ścieżki względnej. W HTML, aby odwołać się do pliku zlokalizowanego w katalogu nadrzędnym, używa się ścieżki względnej, która zaczyna się od './', co oznacza bieżący katalog. Następnie podaje się nazwę podkatalogu (w tym przypadku 'style') i nazwę pliku (tutaj 'default.css'). W praktyce, gdy budujesz strukturę katalogową dla swojej strony internetowej, dobrą praktyką jest organizowanie plików w sposób logiczny i konsekwentny, aby ułatwić nawigację i odwołanie do plików. Pamiętaj też, że ścieżki względne są preferowane w większości przypadków, ponieważ są uniwersalne i niezależne od konkretnego systemu plików, co ułatwia przenoszenie kodu między różnymi środowiskami.

Pytanie 15

Wskaż blok, który jest sformatowany zgodnie z podanym stylem CSS.

background: linear-gradient(to right, LightBlue, DarkBlue);
Ilustracja do pytania
A. Blok 3
B. Blok 1
C. Blok 2
D. Blok 4
Gradienty w CSS są potężnym narzędziem które pozwala na tworzenie gładkich i płynnych przejść między kolorami jednak ich zastosowanie wymaga zrozumienia jak działają różne typy gradientów W przypadku linear-gradient to right LightBlue DarkBlue gradient rozciąga się liniowo od lewej do prawej strony Blok 1 prawdopodobnie wykorzystuje gradient w pionie co wskazuje na niewłaściwe zrozumienie kierunku gradientu Kierunek gradientu jest kluczowy w CSS i warto zwracać uwagę na precyzyjne określenie jego początku i końca Blok 3 ukazuje gradient który wydaje się pochodzić z jednego punktu co sugeruje radial-gradient Zastosowanie radialnych gradientów różni się od liniowych gdyż rozciągają się one od środka do krawędzi Blok 4 wskazuje na nieregularny układ kolorów co może być wynikiem nieprawidłowego zastosowania wartości kolorów lub typów gradientu Takie nieintencjonalne błędy mogą wyniknąć z niewłaściwego zrozumienia składni CSS i zazwyczaj są efektem braku dokładności w definiowaniu stylów Zrozumienie jak gradienty wpływają na estetykę i funkcjonalność pomoże unikać tych błędów i tworzyć bardziej spójne i atrakcyjne wizualnie projekty internetowe Edukacja w zakresie poprawnego stosowania gradientów i ich właściwości umożliwia stworzenie bardziej efektywnych i przyjaznych dla użytkownika rozwiązań webowych co jest istotną częścią współczesnego projektowania UX i UI

Pytanie 16

Testy związane ze skalowalnością aplikacji mają na celu zweryfikowanie, czy program

A. jest w stanie funkcjonować przy zaplanowanym i większym obciążeniu
B. posiada odpowiednie funkcje
C. jest właściwie opisany w dokumentacji
D. jest chroniony przed nieautoryzowanymi działaniami, np. dzieleniem przez zero
Odpowiedź mówiąca o tym, że aplikacja potrafi działać przy zakładanym i większym obciążeniu, jest kluczowa, gdyż skalowalność oprogramowania odnosi się do zdolności systemu do efektywnego działania w warunkach wzrastającego zapotrzebowania na zasoby. Oznacza to, że aplikacja powinna być w stanie obsługiwać rosnącą liczbę użytkowników, transakcji lub innych operacji bez degradacji wydajności. Przykładem może być system e-commerce, który w okresie wyprzedaży musi obsługiwać znacznie więcej użytkowników niż w normalnych okolicznościach. Aby zapewnić skalowalność, programiści mogą wykorzystywać różne architektury, takie jak mikroserwisy, które pozwalają na niezależne skalowanie poszczególnych komponentów aplikacji. Dobre praktyki obejmują również wykorzystanie chmurowych rozwiązań, takich jak AWS czy Azure, które oferują elastyczność i automatyczne skalowanie w odpowiedzi na wzrost obciążenia. Warto także wdrażać mechanizmy monitorowania i optymalizacji wydajności, aby na bieżąco dostosowywać zasoby do potrzeb użytkowników.

Pytanie 17

Która komenda algorytmu odpowiada graficznej wizualizacji bloku przedstawionego na ilustracji?

Ilustracja do pytania
A. Wypisz n
B. n <- n + 5
C. Wykonaj podprogram sortowania tablicy t
D. n > 20
Analizując dostępne opcje należy zrozumieć że poprawna identyfikacja elementów algorytmu zależy od znajomości symboli używanych w schematach blokowych. Wybór n>20 jako poprawnej odpowiedzi wynika z rozpoznania rombu jako symbolu decyzji. Opcja Wypisz n sugeruje operację wyjściową która w schematach blokowych zwykle reprezentowana jest przez prostokąt z zakrzywionymi narożnikami co oznacza wyświetlanie wartości zmiennej. Instrukcja n <- n + 5 jest przykładem operacji przypisania lub inkrementacji która zazwyczaj oznacza modyfikację wartości zmiennej i byłaby przedstawiona jako prostokąt oznaczający proces. Natomiast Wykonaj podprogram sortowania tablicy t to wywołanie funkcji które także mieści się w zakresie standardowego bloku procesowego. Wybór tych opcji wskazuje na brak poprawnego zrozumienia jakie typy operacji reprezentują różne kształty w schematach blokowych co może prowadzić do błędów w projektowaniu algorytmów. Zrozumienie znaczenia każdego bloku jest kluczowe w procesie tworzenia dokładnych i funkcjonalnych modeli algorytmicznych które są podstawą efektywnego rozwiązywania problemów w informatyce i inżynierii oprogramowania. Warto zwrócić uwagę na standardy takie jak UML czy BPMN które także definiują podobne symbole i konwencje co ułatwia komunikację i dokumentację w zespołach projektowych.

Pytanie 18

Instrukcję for można zastąpić inną instrukcją

A. while
B. continue
C. switch
D. case
Instrukcja `while` jest poprawnym zamiennikiem dla instrukcji `for` w kontekście iteracji, ponieważ obie służą do powtarzania bloków kodu, dopóki spełniony jest określony warunek. Główna różnica polega na sposobie deklaracji warunków iteracji. W instrukcji `for` często używamy jej do iteracji po znanym zakresie, np. od 0 do n, co jest typowe w wielu zastosowaniach, takich jak przetwarzanie elementów tablicy. Natomiast `while` idealnie nadaje się do sytuacji, gdzie liczba iteracji jest nieznana na początku i zależy od dynamicznie ocenianych warunków. Przykładem może być przetwarzanie danych, gdzie pętla `while` kontynuuje działanie, aż do momentu, gdy nie napotka na wartość końcową, co jest szczególnie przydatne w algorytmach przetwarzania strumieni danych. Ponadto, od strony wydajnościowej, wybór między `for` a `while` powinien być uzależniony od contextu, w jakim są używane. Dobrą praktyką jest dopasowanie rodzaju pętli do specyfiki problemu, co zwiększa czytelność i efektywność kodu.

Pytanie 19

W podanym kodzie JavaScript ponumerowano linie dla ułatwienia. W programie występuje błąd, ponieważ po wykonaniu żadna wiadomość nie jest wyświetlana. Aby usunąć ten błąd, należy

1. if (a < b)
2. document.write(a);
3. document.write(" jest mniejsze");
4. else
5. document.write(b);
6. document.write(" jest mniejsze");
A. w liniach 2 i 5 zmienne a i b umieścić w cudzysłowach
B. dodać nawiasy klamrowe w sekcjach if oraz else
C. umieścić znaki $ przed nazwami zmiennych
D. w liniach 3 i 6 zamienić znaki cudzysłowu na apostrof, np. ' jest mniejsze'
Wstawienie znaków $ przed zmiennymi a i b jest podejściem, które nie ma zastosowania w standardowym JavaScript, gdyż nie jest to sposób na wskazywanie zmiennych w tym języku. W rzeczywistości, znaki $ są używane w niektórych bibliotekach, takich jak jQuery, ale nie wpływają na samą składnię JavaScript. Użycie apostrofów zamiast cudzysłowów również nie rozwiązuje problemu, gdyż JavaScript zezwala na użycie zarówno cudzysłowów, jak i apostrofów do definiowania ciągów tekstowych, jednak nie wpływa to na wykonanie bloków kodu. Zmiana zmiennych na ciągi znakowe w liniach 2 i 5 wprowadza błąd, ponieważ zamiast wartości zmiennych a i b, kod wyświetli dosłownie tekst 'a' oraz 'b', co nie jest zamierzonym celem. W programowaniu, ważne jest nie tylko zrozumienie składni, ale także logiki, jaką ona za sobą niesie. Regularne stosowanie dobrych praktyk, takich jak wstawianie nawiasów klamrowych, pozwala uniknąć takich typowych błędów, które mogą prowadzić do niewłaściwego działania kodu. Ponadto, poznanie i przestrzeganie standardów programistycznych znacznie zwiększa jakość i niezawodność tworzonych aplikacji.

Pytanie 20

Która z komórek tabeli została sformatowana przedstawionym stylem CSS zakładając, że pozostałe własności przyjmują wartości domyślne?

td {
  border: 1px solid black;
  padding: 15px;
  height: 40px;
  vertical-align: bottom;
}
dane w tabeli


dane w tabelidane w tabelidane w tabeli
Komórka 1Komórka 2Komórka 3Komórka 4
A. Komórka 4.
B. Komórka 1.
C. Komórka 3.
D. Komórka 2.
Gratulacje, to jest prawidłowa odpowiedź! Styl CSS, który został podany, określa, że komórka tabeli ma obramowanie o grubości 1px i kolorze czarnym, wewnętrzny margines (padding) o wielkości 15px, wysokość 40px oraz wyrównanie tekstu do dołu (vertical-align: bottom). Komórka 3. jest jedyną, która spełnia te kryteria - tekst jest wyrównany do dołu, a komórka ma widoczne obramowanie i odpowiednią wysokość. Formatowanie CSS jest kluczowym aspektem projektowania stron internetowych, które pozwalają na personalizację wyglądu elementów na stronie. Kiedy formatujesz komórkę tabeli w CSS, musisz zwrócić uwagę na szczegóły, takie jak wysokość, wewnętrzny margines, narożniki i wyrównanie tekstu. Wszystko to wpływa na ostateczny wygląd i doświadczenie użytkownika na stronie. Pamiętaj, że praktyka jest kluczem do zrozumienia, jak te elementy razem pracują, dlatego zawsze warto eksperymentować z różnymi ustawieniami.

Pytanie 21

Ile razy wykona się poniższa pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?

for ($i = 0; $i <= 10; $i+=2) { ... }
A. 10
B. 6
C. 0
D. 5
W przypadku błędnych odpowiedzi, takich jak 10, 5, 0 czy 6, można zauważyć, że wynikają one z nieprawidłowego zrozumienia działania pętli for w PHP. Odpowiedź 10 sugeruje, że użytkownik zakłada, iż pętla wykonuje się do 10, co jest błędne, ponieważ na każdym kroku zmienna $i zwiększa się o 2. Użycie 5 jako odpowiedzi może wskazywać na niepoprawne obliczenie liczby iteracji przy założeniu, że pętla mogłaby wykonać się z tylko pięcioma incrementami, co jest również mylące. Wybór 0 jako odpowiedzi jest konsekwencją mylnego założenia, że pętla mogłaby w ogóle nie działać, co jest sprzeczne z logiką, ponieważ pętla rozpoczyna się od $i = 0 i spełnia warunek kontynuacji. Ważne jest, aby podczas analizy pętli skupić się na warunkach początkowych, zmiennej sterującej oraz modyfikacji tej zmiennej w każdym cyklu. Prawidłowe obliczenie liczby iteracji pętli jest kluczowe w programowaniu, ponieważ ma to bezpośredni wpływ na wydajność i efektywność działania algorytmów.

Pytanie 22

Aby na stronie internetowej wyświetlić logo, którego tło jest przezroczyste, należy zastosować format

A. BMP
B. PNG
C. JPG
D. CDR
W tym zadaniu kluczowe jest zrozumienie, jakie właściwości mają różne formaty graficzne i do czego są projektowane. Wiele osób automatycznie wybiera JPG, bo „to przecież najpopularniejszy format obrazków w internecie”. I faktycznie, JPEG jest świetny do zdjęć, gdzie liczy się mocna kompresja i akceptowalna utrata jakości. Natomiast JPG nie obsługuje przezroczystości z prawdziwego zdarzenia – nie ma kanału alfa. Można co najwyżej kombinować z kolorem maskującym, ale w praktyce na stronach WWW kończy się to brzydkimi obwódkami i artefaktami na krawędziach logo. Dlatego stosowanie JPG do logo z przezroczystym tłem jest po prostu sprzeczne z dobrymi praktykami front-endu. Inny typowy trop to wybór formatu CDR, bo kojarzy się on z logotypami, poligrafią i projektowaniem. CDR to jednak natywny, wektorowy format programu CorelDRAW, przeznaczony do edycji, a nie do bezpośredniego wyświetlania w przeglądarce. Żadna standardowa przeglądarka nie wczyta pliku CDR jako obrazka w `<img>`. Pliki tego typu trzeba najpierw wyeksportować do formatu webowego, np. PNG, JPG albo SVG. Myślenie w stylu „logo jest z Corela, to dam CDR na stronę” wynika raczej z pomieszania formatu roboczego z formatem docelowym. Z kolei BMP to bardzo prosty, stary format map bitowych, który w praktyce w ogóle nie jest używany w profesjonalnym webdesignie. Co prawda można w nim zapisać informację o kolorach, ale nie oferuje on efektywnej kompresji, więc pliki są ogromne, a obsługa przezroczystości jest w praktyce problematyczna i nieprzystosowana do nowoczesnych wymagań stron WWW. Ładowanie ciężkiego BMP z logo na stronę tylko spowolni serwis i będzie sprzeczne z zasadami optymalizacji wydajności (performance, Core Web Vitals itd.). Dobra praktyka jest taka: dla logo z przezroczystym tłem wybieramy format, który zapewnia kanał alfa, bezstratną jakość i powszechną obsługę przez przeglądarki. W tym zestawie odpowiedzi spełnia to tylko PNG. Błędne odpowiedzi wynikają najczęściej z kierowania się popularnością formatu (JPG), skojarzeniem z narzędziem graficznym (CDR) albo z ignorowania wagi plików i standardów webowych (BMP). W projektowaniu stron warto zawsze myśleć o tym, jak przeglądarka faktycznie zinterpretuje dany format i czy spełni on wymagania: jakość, przezroczystość, rozmiar i kompatybilność.

Pytanie 23

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

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

Pytanie 24

Fragment kodu w języku HTML zawarty w ramce ilustruje zestawienie

Ilustracja do pytania
A. numerowaną.
B. wypunktowaną.
C. odnośników.
D. skrótów.
Kod HTML zawierający znaczniki <ol> oraz <li> tworzy listę numerowaną ponieważ <ol> oznacza ordered list czyli listę uporządkowaną co skutkuje automatycznym numerowaniem każdego elementu w przeglądarkach internetowych. Znaczniki <li> reprezentują pojedyncze elementy listy zapewniając organizację danych w czytelnej formie. Taki sposób przedstawiania informacji jest powszechnie stosowany w tworzeniu dokumentów HTML i stron internetowych gdzie hierarchia i kolejność elementów ma kluczowe znaczenie. Za pomocą CSS można dodatkowo dostosować styl numerowania oraz wizualne aspekty listy co pozwala na większą elastyczność w projektowaniu interfejsu użytkownika. Standardy internetowe takie jak te rekomendowane przez W3C zachęcają do stosowania semantycznych znaczników co poprawia dostępność i SEO strony. Ponadto listy numerowane są użyteczne w sytuacjach gdy wymagana jest jasna kolejność wykonywania zadań lub prezentacja kroków w procesie co czyni je idealnym narzędziem zarówno w dokumentacji technicznej jak i w interaktywnych przewodnikach online.

Pytanie 25

Jakie polecenie umożliwia pokazanie konfiguracji serwera PHP, w tym między innymi informacji o: wersji PHP, systemie operacyjnym serwera oraz wartościach przedefiniowanych zmiennych?

A. print_r(ini_get_all());
B. phpinfo();
C. phpcredits();
D. echo phpversion();
Kiedy deweloperzy szukają sposobów na wyświetlenie konfiguracji serwera PHP, mogą łatwo pomylić różne funkcje, które mają różne zastosowania. Na przykład funkcja phpcredits() nie dostarcza informacji o konfiguracji serwera, lecz wyświetla informacje o twórcach PHP oraz licencjach. Jest to przydatne w kontekście weryfikacji historii rozwoju języka, ale nie dostarcza żadnych merytorycznych danych na temat aktualnej konfiguracji serwera czy środowiska. Z kolei echo phpversion() zwraca jedynie wersję zainstalowanego PHP, co jest informacją ograniczoną i nie daje pełnego obrazu konfiguracji, jak ma to miejsce w przypadku phpinfo(). print_r(ini_get_all()) z kolei zwraca tablicę wszystkich dostępnych ustawień konfiguracyjnych, ale nie formatuje ich w przejrzysty sposób, jak czyni to phpinfo(). Takie podejście, jak wykorzystanie print_r(), może prowadzić do trudności w interpretacji wyników, zwłaszcza w dużych projektach, gdzie trzeba szybko uzyskać dostęp do konkretnych informacji. Typowym błędem jest zakładanie, że każda z tych funkcji dostarcza takich samych lub porównywalnych informacji, co nie jest prawdą. Używanie niewłaściwej funkcji w sytuacji, gdy potrzebne są szczegółowe i kompleksowe informacje o konfiguracji serwera, może prowadzić do frustracji i opóźnień w pracy nad projektem. Kluczowym jest zrozumienie, że każda z wymienionych funkcji ma swoje specyficzne przeznaczenie i różne konteksty zastosowania.

Pytanie 26

W HTML atrybut znacznika video, który umożliwia ciągłe odtwarzanie, to

A. poster
B. controls
C. muted
D. loop
Atrybut loop w znaczniku video jest kluczowy dla zapewnienia, że wideo będzie odtwarzane w nieskończoność, co jest szczególnie przydatne w przypadku prezentacji multimedialnych czy tła w aplikacjach webowych. Umożliwia to automatyczne powtarzanie treści bez interwencji użytkownika, co może poprawić doświadczenia użytkownika oraz skuteczność przekazu. Zgodnie z dokumentacją HTML5, aby użyć atrybutu loop, wystarczy dodać go do znacznika video, co pozwala na osiągnięcie zamierzonego efektu. Przykładem może być: <video src='video.mp4' loop autoplay></video>, gdzie wideo będzie się odtwarzać automatycznie i w kółko. Użycie tego atrybutu jest szczególnie istotne w kontekście interaktywnych aplikacji i gier, gdzie ciągłość odtwarzania może być kluczowa dla zaangażowania odbiorcy. Atrybut loop jest częścią specyfikacji W3C dotyczącej HTML5, która promuje dostępność i elastyczność w tworzeniu nowoczesnych aplikacji internetowych.

Pytanie 27

W języku JavaScript funkcja getElementById() odnosi się do

A. elementu HTML o określonym id
B. elementu HTML o wskazanej nazwie klasy
C. klasy zdefiniowanej w CSS
D. zmiennej liczbowej
Metoda getElementById() jest jedną z najczęściej używanych funkcji w JavaScript, która pozwala na bezpośrednie odwołanie się do elementu DOM (Document Object Model) za pomocą atrybutu id. Gdy wywołujemy tę metodę, przekazujemy jej jako argument ciąg znaków odpowiadający wartości atrybutu id danego elementu HTML. Przykładowo, jeśli mamy znacznik `<div id='myDiv'></div>`, możemy uzyskać do niego dostęp za pomocą `document.getElementById('myDiv')`. Jest to bardzo efektywny sposób na manipulowanie elementami strony, umożliwiający m.in. zmianę ich zawartości, stylu czy atrybutów. Dzięki tej metodzie programiści mogą szybko i łatwo modyfikować interfejs użytkownika oraz reagować na zdarzenia, co jest zgodne z zasadami responsywnego projektowania i tworzenia dynamicznych aplikacji webowych. Warto również pamiętać, że użycie unikalnych identyfikatorów w HTML jest zgodne z dobrymi praktykami, ponieważ pozwala na łatwiejszą nawigację po strukturze dokumentu i unika konfliktów z innymi elementami.

Pytanie 28

W SQL prawo SELECT w poleceniu GRANT umożliwia użytkownikowi bazy danych na

A. zmianę danych w tabeli
B. usuwanie danych z tabeli
C. pobieranie danych z tabeli
D. tworzenie nowych tabel
Przywilej SELECT w poleceniu GRANT w języku SQL jest kluczowym elementem zarządzania dostępem do danych w bazach danych. Umożliwia on użytkownikowi wykonanie operacji odczytu na danych przechowywanych w tabelach. W praktyce oznacza to, że użytkownik, któremu przyznano ten przywilej, może wykonywać zapytania SELECT, aby przeglądać dane, analizować je i generować raporty. Przykładowo, w kontekście systemu zarządzania bazą danych (DBMS) takiego jak MySQL, po przyznaniu przywileju SELECT dla konkretnej tabeli, użytkownik może wywołać zapytanie takie jak 'SELECT * FROM nazwa_tabeli;', co pozwala mu na wyświetlenie wszystkich rekordów z tej tabeli. Praktyka ta jest zgodna z podstawowymi zasadami zarządzania dostępem do danych, które są zdefiniowane w standardzie SQL. Odczytywanie danych jest fundamentalnym zadaniem w analizie danych, a przywilej SELECT jest często pierwszym krokiem w budowaniu bardziej złożonych zapytań, które mogą obejmować agregacje, filtrowanie czy łączenie tabel. W ten sposób przywilej SELECT nie tylko umożliwia dostęp do danych, ale także stanowi podstawę dla bardziej zaawansowanych operacji na danych.

Pytanie 29

Podaj zapis w języku JavaScript, który sprawdzi, czy spełniony jest przynajmniej jeden z następujących warunków: 1) dowolna liczba naturalna a jest liczbą trzycyfrową, 2) dowolna liczba całkowita b jest liczbą ujemną?

A. ((a>99) || (a<1000)) || (b<0)
B. ((a>99) || (a<1000)) && (b<0)
C. ((a>99) && (a<1000)) && (b<0)
D. ((a>99) && (a<1000)) || (b<0)
Odpowiedź ((a>99) && (a<1000)) || (b<0) jest prawidłowa, ponieważ warunek ten skutecznie sprawdza, czy dowolna naturalna liczba a jest trzycyfrowa lub czy dowolna całkowita liczba b jest ujemna. Część wyrażenia (a>99) && (a<1000) weryfikuje, czy liczba a jest w przedziale od 100 do 999, co definiuje liczby trzycyfrowe. Z kolei druga część (b<0) sprawdza, czy liczba b jest mniejsza od zera. Całość połączona jest operatorem OR (||), co oznacza, że wystarczy spełnienie jednego z tych warunków, aby cały warunek był spełniony. W praktyce, takie wyrażenia są powszechnie stosowane w programowaniu, szczególnie w formularzach walidacyjnych, gdzie ważne jest, aby dane wprowadzone przez użytkowników spełniały określone kryteria. Dobrą praktyką jest dbałość o czytelność kodu i stosowanie odpowiednich nazw zmiennych, co ułatwia zrozumienie logiki działania aplikacji. Warto również pamiętać o testowaniu różnych przypadków, aby upewnić się, że warunki działają zgodnie z zamierzeniami, co jest kluczowe w zapewnieniu wysokiej jakości oprogramowania.

Pytanie 30

Jakie cechy powinien posiadać klucz główny?

A. Reprezentowany jest przez jedno pole tabeli, jego wartość nie może ulegać zmianie
B. Nie może przybierać wartości, reprezentowany jest przez dokładnie jedno pole tabeli
C. Jest unikatowy, może mieć tylko wartości całkowite
D. Jest unikatowy, nie może zawierać pustych wartości
Wszystkie błędne odpowiedzi zawierają nieprecyzyjne lub mylące stwierdzenia dotyczące kluczy głównych. Na przykład, twierdzenie, że klucz główny może przyjmować tylko wartości całkowite, nie jest zgodne z rzeczywistością. Klucz główny może być reprezentowany przez różne typy danych, w tym tekst, daty, a nawet złożone obiekty, co czyni tę koncepcję zbyt ograniczoną. Kolejne stwierdzenie, że klucz główny jest reprezentowany przez dokładnie jedno pole tabeli, również nie oddaje pełnego obrazu. Możliwe jest tworzenie kluczy głównych z kilku kolumn, znanych jako klucze złożone, co jest przydatne w sytuacjach, gdy pojedyncza kolumna nie może zapewnić unikalności. Ponadto, stwierdzenie, że wartości klucza głównego nie mogą się zmieniać, wprowadza w błąd. Chociaż zmiana wartości klucza głównego może wprowadzić komplikacje, zwłaszcza w relacjach z innymi tabelami, technicznie jest to możliwe. Właściwe podejście do zarządzania kluczami głównymi obejmuje zrozumienie konsekwencji takich zmian oraz odpowiednie aktualizacje w powiązanych tabelach. Wreszcie, nieznajomość tych aspektów może prowadzić do typowych błędów w projektowaniu baz danych, takich jak brak unikalności lub trudności w zarządzaniu relacjami, co z kolei może wpłynąć na wydajność oraz integralność aplikacji bazodanowych. Zrozumienie roli kluczy głównych jest zatem fundamentalne dla każdego, kto chce skutecznie projektować i zarządzać bazami danych.

Pytanie 31

W języku PHP funkcja trim służy do

A. porównywania dwóch tekstów i wyświetlania ich wspólnej części
B. usuwania białych znaków lub innych określonych w parametrze znaków z obu końców tekstu
C. redukcji tekstu o liczbę znaków określoną w parametrze
D. podawania długości tekstu
Funkcja <i>trim</i> w języku PHP ma na celu usuwanie białych znaków oraz innych znaków, które są określone w jej parametrach, z obu końców napisu. To niezwykle przydatne narzędzie w programowaniu, szczególnie podczas przetwarzania danych wejściowych, gdzie użytkownicy mogą nieświadomie dodawać zbędne spacje, tabulatory lub nowe linie. Na przykład, gdy przetwarzamy dane formularzy, może się zdarzyć, że użytkownik wprowadzi swoje imię z dodatkowymi spacjami na początku lub końcu. Użycie <i>trim</i> pozwala na zapewnienie, że dane będą miały odpowiednią formę przed dalszym przetwarzaniem, co jest kluczowe w kontekście walidacji i normalizacji danych. Dodatkowo, funkcja ta wspiera podawanie własnych znaków do usunięcia, co czyni ją bardzo elastycznym narzędziem w codziennym programowaniu. Używanie <i>trim</i> jako standardowej praktyki przy obróbce danych tekstowych jest rekomendowane przez wielu ekspertów, ponieważ zwiększa to jakość i spójność przetwarzanych informacji.

Pytanie 32

W języku JavaScript zadeklarowano funkcję.
function absValue(f) {
    return Math.abs(f);
}

A. zwrócić wartość bezwzględną z f
B. wypisać wartość bezwzględną z f
C. wypisać wartość przeciwną do f
D. zwrócić wartość przeciwną do f
To niepoprawna odpowiedź. Funkcja absValue(f) w języku JavaScript została zapisana w taki sposób, że zwraca wartość bezwzględną przekazanego argumentu f, a nie jego wartość przeciwną ani nie wypisuje żadnego wyniku na ekran. Wewnątrz funkcji użyto polecenia return Math.abs(f);, które powoduje zwrócenie liczby zawsze nieujemnej. Metoda Math.abs() automatycznie sprawdza, czy podana liczba jest ujemna, i jeśli tak, zamienia ją na dodatnią, pozostawiając bez zmian liczby dodatnie. Opcja „wypisać wartość przeciwną do f” jest błędna, ponieważ funkcja nie używa instrukcji wypisującej (console.log()), a ponadto nie tworzy liczby przeciwnej (czyli o przeciwnym znaku). Podobnie niepoprawna jest opcja „zwrócić wartość przeciwną do f”, gdyż funkcja nie odwraca znaku liczby poprzez -f, tylko korzysta z wbudowanego mechanizmu obliczania wartości bezwzględnej. Również opcja „wypisać wartość bezwzględną z f” jest błędna, ponieważ działanie return nie powoduje wypisania wartości, lecz jej zwrócenie. Poprawna odpowiedź to „zwrócić wartość bezwzględną z f”. Właśnie to robi funkcja absValue(f) — zwraca wynik obliczeń, który może być dalej użyty w programie, np. do porównań, analiz danych lub obliczeń matematycznych. Rozumienie różnicy między „zwracaniem” a „wypisywaniem” jest bardzo istotne w programowaniu, ponieważ pozwala odróżnić operacje wewnętrzne w kodzie od tych, które mają wpływ na to, co użytkownik zobaczy na ekranie.

Pytanie 33

Typ zmiennych int odnosi się do wartości liczbowych

A. całkowitych
B. w systemie zmiennoprzecinkowym
C. w systemie stałoprzecinkowym
D. naturalnych
Wybór odpowiedzi, która odnosi się do pojęcia notacji stałoprzecinkowej lub zmiennoprzecinkowej, zdradza pewne nieporozumienia dotyczące podstawowych typów danych w programowaniu. Notacja stałoprzecinkowa odnosi się do sposobu reprezentacji liczb, który pozwala na przechowywanie wartości liczbowych z określoną liczbą miejsc po przecinku, co jest stosowane głównie w kontekście obliczeń finansowych, gdzie precyzja jest kluczowa. Z drugiej strony, notacja zmiennoprzecinkowa (ang. floating-point) używana jest do reprezentacji liczb, które mogą mieć część dziesiętną, co jest istotne w aplikacjach wymagających dużej precyzji, na przykład w graficznych czy naukowych obliczeniach. Wybierając odpowiedzi wskazujące na liczby naturalne, można pomylić się myśląc, że zmienne typu int mogą przechowywać tylko liczby nieujemne, co jest niezgodne z istotą tego typu danych. Liczby całkowite obejmują wszystkie liczby naturalne oraz liczby ujemne. Zrozumienie tych różnic jest kluczowe dla prawidłowego korzystania z typów zmiennych w programowaniu, a także dla efektywnego rozwiązywania problemów obliczeniowych, co uwypukla znaczenie tego zagadnienia w praktyce programistycznej. Również warto zauważyć, że dobór odpowiedniego typu danych jest jednym z fundamentów optymalizacji kodu i zarządzania pamięcią w programach.

Pytanie 34

Rekord w bazie danych identyfikowany jest jednoznacznie przez pole

A. klucza obcego
B. klucza podstawowego
C. relacji
D. numeryczne
Klucz obcy jest to pole, które odnosi się do klucza podstawowego innej tabeli w celu utworzenia relacji pomiędzy nimi. Jego głównym celem jest zapewnienie integralności referencyjnej, co oznacza, że pozwala na łączenie danych z różnych tabel. Dlatego klucz obcy nie może być użyty jako jednoznaczny identyfikator rekordu w danej tabeli, gdyż nie gwarantuje on unikalności, a jedynie odniesienie do innego rekordu. Numeryczne pole samo w sobie nie jest wystarczające do identyfikacji rekordu, ponieważ nie każde pole numeryczne jest unikalne. Pola numeryczne mogą zawierać powtarzające się wartości, co czyni je niewłaściwym wyborem na identyfikator rekordu. Relacje, mimo że są kluczowym elementem w strukturze baz danych, nie są specyficznymi polami, które mogłyby pełnić rolę klucza. Relacje definiują, jak różne tabele interagują ze sobą, ale nie identyfikują konkretnych rekordów. W związku z tym, żadne z wymienionych pól nie mogą pełnić roli jednoznacznego identyfikatora rekordu w bazie danych, poza kluczem podstawowym, który jest fundamentalnym elementem relacyjnych baz danych.

Pytanie 35

Jakie właściwości języka CSS mogą mieć wartości: underline, overline, line-through?

A. text-style
B. font-weight
C. text-decoration
D. font-style
Odpowiedź 'text-decoration' jest poprawna, ponieważ właściwość ta jest używana w CSS do stylizacji tekstu, a jej wartości mogą obejmować 'underline', 'overline' i 'line-through'. Właściwość 'text-decoration' umożliwia dodawanie dekoracji do tekstu, co jest szczególnie przydatne w przypadku podkreślania, przekreślania tekstu czy dodawania linii nad tekstem. Przykład zastosowania: aby podkreślić tekst, można użyć reguły CSS: `p { text-decoration: underline; }`. Dzięki temu wszystkie akapity na stronie będą miały podkreślony tekst. Warto również zauważyć, że w ramach standardów CSS3, właściwość ta zyskała dodatkowe wartości, takie jak 'none' czy 'blink', co jeszcze bardziej rozszerza jej funkcjonalność. W praktyce, 'text-decoration' jest często stosowane w projektach webowych, aby poprawić czytelność i estetykę treści. Dobrą praktyką jest jednak używanie tej właściwości w umiarkowany sposób, aby nie przytłoczyć użytkownika zbyt wieloma dekoracjami, co mogłoby wpłynąć na ogólną użyteczność strony.

Pytanie 36

Jak można usunąć ciasteczko o nazwie ciastko, korzystając z języka PHP?

A. setcookie("ciastko", "", time()-3600);
B. setcookie("$ciastko", "", 0);
C. unsetcookie("$ciastko");
D. deletecookie("ciastko");
Wszystkie pozostałe odpowiedzi zawierają błędy koncepcyjne, które uniemożliwiają skuteczne usunięcie ciasteczka. Przykładowo, deletecookie("ciastko") to niepoprawne podejście, ponieważ nie istnieje funkcja o takiej nazwie w standardowej bibliotece PHP. Użytkownicy mogą myśleć, że wystarczy wywołać funkcję, która usunie ciasteczko, jednak PHP wymaga korzystania z funkcji setcookie(), aby to osiągnąć. W przypadku setcookie("$ciastko", "", 0), użytkownik próbuje usunąć ciasteczko, ale błędnie ustawia czas wygaśnięcia na zero. Wartość zero nie jest interpretowana jako czas przeszły, co uniemożliwia przeglądarce uznanie ciasteczka za wygasłe. Ponadto, użycie zmiennej "$ciastko" zamiast bezpośredniego odniesienia do nazwy ciasteczka wprowadza dodatkowe zamieszanie. Ostatnia propozycja, unsetcookie("$ciastko"), również jest błędna, ponieważ nie istnieje funkcja unsetcookie() w PHP. Użytkownicy mogą mylnie przypuszczać, że funkcje do usuwania zmiennych i ciasteczek są sobie równe, jednak każda z nich ma swoje specyficzne zastosowanie i zachowanie. Kluczowym punktem w pracy z ciasteczkami jest zrozumienie, że celem jest ich usunięcie przez ustawienie daty wygaśnięcia w przeszłości, a nie przez wywoływanie nieistniejących funkcji.

Pytanie 37

Aby ułatwić wprowadzanie oraz modyfikację danych w tabeli, konieczne jest zdefiniowanie

A. filtra
B. formularza
C. kwerendy SELECT
D. raportu
Odpowiedzi, które nie obejmują formularza, wskazują na pewne nieporozumienia dotyczące sposobu, w jaki użytkownicy wchodzą w interakcje z danymi w bazie danych. Kwerenda SELECT, mimo że jest fundamentalnym narzędziem do pobierania informacji, nie jest odpowiednia do wprowadzania czy edytowania danych. Kwerendy są stosowane głównie do filtrowania i prezentowania danych istniejących, a nie do ich wprowadzania. W kontekście zarządzania danymi, kwerendy powinny być używane w celu analizy danych, a nie ich modyfikacji. Z kolei filtry są narzędziami, które umożliwiają użytkownikom przeszukiwanie i wyświetlanie określonych zestawów danych, ale również nie są przeznaczone do edytowania danych. Filtry są bardziej funkcjonalne w kontekście przeglądania już wprowadzonych informacji, co nie spełnia wymogu prostoty wprowadzania danych. Raporty natomiast są używane do generowania zestawień i podsumowań danych, co jest zupełnie innym procesem niż ich wprowadzanie. Powszechnym błędem jest zrozumienie tych narzędzi jako równoważnych formularzom, co jest mylne. Właściwe podejście do zarządzania danymi w bazach danych wymaga zrozumienia ról różnych narzędzi i ich zastosowań w praktyce, co jest kluczowe dla efektywnego zbierania i zarządzania informacjami.

Pytanie 38

Jak należy prawidłowo udokumentować wzorcowanie pola nazwa we fragmencie kodu JavaScript?

function validateForm(Form)
{
reg=/^\[1-9\]*[A-ZŻŹĘĄĆŚÓŁŃ]{1}[a-zżźćńółęąś]{2,}$/;
wyn = Form.nazwa.value.match(reg);
if (wyn == null) {
    alert("Proszę podać poprawną nazwę");
    return false;
}
return true;
}
A. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
B. /* Pole nazwa musi składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i dwóch małych liter. */
C. /* Pole nazwa powinno składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
D. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
Odpowiedź druga jest poprawna, ponieważ dokładnie opisuje wzorzec walidacji użyty w kodzie JavaScript. Wyrażenie regularne określa, że pole nazwa może zaczynać się od dowolnej liczby cyfr od 1 do 9, co oznacza, że cyfra 0 jest wykluczona, co jest zgodne z opisem. Następnie musi wystąpić jedna duża litera, co jest również zgodne z wymogiem wzorca. Kolejnym wymogiem jest wystąpienie co najmniej dwóch małych liter, co także jest zgodne z przedstawionym wzorcem. Poprawna i precyzyjna dokumentacja kodu ma kluczowe znaczenie dla utrzymania oraz dalszego rozwoju oprogramowania. Dobrze udokumentowane wyrażenia regularne pozwalają na lepsze zrozumienie logiki walidacji i ułatwiają pracę zespołom deweloperskim. Warto również zauważyć, że stosowanie wyrażeń regularnych w walidacji danych wejściowych jest standardową praktyką w branży IT, szczególnie w aplikacjach webowych, gdzie dane użytkowników wymagają szczegółowego sprawdzania pod kątem poprawności i bezpieczeństwa. Dzięki temu można uniknąć potencjalnych błędów i ataków wynikających z niewłaściwie przetworzonych danych.

Pytanie 39

W języku HTML zdefiniowano listę, która

<ol>
  <li>biały</li>
  <li>czerwony
    <ul>
      <li>różowy</li>
      <li>pomarańczowy</li>
    </ul></li>
  <li>niebieski</li>
</ol>
A. jest punktowana z zagłębioną listą numerowaną
B. jest numerowana z zagłębioną listą punktowaną
C. nie posiada zagłębień i jest punktowana, wyświetla 5 punktów
D. nie zawiera zagłębień i jest numerowana, słowo "niebieski" ma przyporządkowany numer 5
Analizując zadanie, można łatwo przeoczyć, jak przeglądarka interpretuje zagnieżdżone listy w HTML. Wiele osób zakłada, że każda lista <ul> i <ol> działa identycznie, niezależnie od kontekstu, a to niestety częsty błąd. Jeśli myśli się, że całość wygląda jako lista punktowana z zagłębioną numerowaną, to znak, że pomieszano kolejność znaczników. Zgodnie ze standardem, <ol> zawsze daje numerowanie głównych elementów, a <ul> – wypunktowanie podrzędnych. Nie ma tu domyślnego przestawiania typów list przez przeglądarkę. Twierdzenie, że lista nie ma zagłębień i wyświetla 5 punktów, ignoruje fakt, że zagnieżdżone <ul> są wyraźnie widoczne jako podlista, a <li> w <ol> nie jest dzielone automatycznie na więcej numerów – każdy <li> to kolejny numer. Przy odpowiedzi sugerującej, że „niebieski” jest piąty, pominięto, że zagnieżdżone <li> w <ul> nie zwiększają liczby pozycji głównej listy numerowanej – są po prostu podpunktami drugiego poziomu. To typowy błąd polegający na traktowaniu wszystkich elementów <li> jako jednej płaskiej listy, a tak HTML nie działa. W programowaniu webowym bardzo ważne jest rozumienie tej hierarchii, bo właściwe zagnieżdżanie pozwala na zachowanie porządku w strukturze dokumentów i poprawne wyświetlanie treści. Dobre praktyki mówią, żeby zawsze pilnować, gdzie zaczynamy i kończymy kolejne listy oraz jaki typ listy stosujemy, bo to ma wpływ na czytelność i dostępność strony. Z mojego doświadczenia wynika, że zrozumienie tej różnicy bardzo pomaga potem w pracy z bardziej zaawansowanymi strukturami, np. nawigacją czy dynamicznymi listami w JavaScript.

Pytanie 40

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. metodę
B. właściwość
C. konstruktor
D. klasę
W JavaScript programowanie obiektowe działa trochę inaczej niż w innych językach. W tym kodzie, zapis this.zawod wskazuje, że mamy do czynienia z metodą obiektu. Po prostu, metoda to funkcja przypisana do właściwości obiektu, która może korzystać z danych w obiekcie. Używając this, mamy dostęp do innych właściwości. W tym przypadku, funkcja pod this.zawod zwraca wartość this.technik, co ładnie pokazuje, jak metody mogą zmieniać dane obiektu. To jest właśnie cała filozofia programowania obiektowego, gdzie logika jest umieszczona w funkcjach związanych z danymi. To sprawia, że kod jest bardziej modułowy i łatwiejszy do ogarnięcia. W pracy w zespole dobrze jest, jak nazwy metod mówią, co robią, bo to bardzo pomaga innym zrozumieć, co się dzieje w kodzie.