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

Egzamin zdany!

Wynik: 29/40 punktów (72,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Aby skutecznie stworzyć relację typu m…n, która będzie wolna od redundancji danych, konieczne jest

A. uporządkowanie przynajmniej jednej z tabel.
B. bezpośrednie połączenie kluczy podstawowych obu tabel.
C. zaprojektowanie tabeli pomocniczej.
D. bezpośrednie połączenie kluczy obcych z obu tabel.
Stworzenie tabeli pomocniczej to kluczowy element w projektowaniu relacji typu m:n (wiele do wielu) w bazach danych. Taka relacja, aby była efektywna i nienarażona na redundancję danych, wymaga wprowadzenia dodatkowej tabeli, która będzie pełniła rolę pośrednika między dwiema głównymi tabelami. Tabela pomocnicza zawiera klucze obce, które odnoszą się do kluczy podstawowych obu tabel, co pozwala na zminimalizowanie duplikacji danych. Na przykład, w bazie danych dotyczącej studiów, jeśli mamy tabelę studentów i tabelę kursów, relacja m:n między nimi mogłaby być reprezentowana przez tabelę pomocniczą 'Zapisani', która zawierałaby identyfikatory studentów i identyfikatory kursów. Dzięki temu każdy student może być zapisany na wiele kursów, a każdy kurs może mieć wielu studentów, bez powielania informacji. Tworzenie takich tabel pomocniczych jest zgodne z zasadami normalizacji danych, co jest standardem w projektowaniu baz danych, mającym na celu optymalizację struktury danych oraz eliminację redundancji.

Pytanie 2

Po uruchomieniu poniższego kodu PHP na ekranie ukaże się bieżąca data w formacie:

echo date("Y-m");
A. dzień, miesiąc, rok
B. dzień oraz rok
C. rok oraz miesiąc
D. tylko rok
Odpowiedź "rok i miesiąc" jest prawidłowa, ponieważ funkcja date() w PHP, kiedy wykorzystujemy format "Y-m", zwraca datę w formacie roku, np. 2023, oraz miesiąca w postaci dwucyfrowej, np. 09 dla września. Warto zrozumieć, że format "Y" generuje czterocyfrowy rok, natomiast "m" generuje dwucyfrowy miesiąc. To podejście jest często wykorzystywane w aplikacjach webowych do prezentacji dat w sposób zrozumiały dla użytkowników, a także do grupowania danych według miesięcy w bazach danych. Przykładowo, w systemach raportowania finansowego, często wykorzystuje się ten format do agregacji danych sprzedażowych według miesięcy, co ułatwia analizę wyników. Użycie odpowiednich standardów w formacie daty wspomaga utrzymanie spójności i czytelności danych w różnych systemach informatycznych.

Pytanie 3

Jakie mechanizmy są kluczowe dla Systemu Zarządzania Bazą Danych?

A. Moduł do wizualizacji diagramów encji
B. Narzędzia do generowania statystyk
C. Wielodostępność do danych
D. System do zarządzania wersjami bazy danych
System zarządzania wersjami bazy danych, choć może być użyteczny w kontekście rozwoju aplikacji, nie jest niezbędnym mechanizmem dla systemu zarządzania bazą danych. Służy on przede wszystkim do śledzenia zmian w strukturze bazy oraz w danych, co jest istotne w kontekście kontroli wersji. W praktyce, takie systemy są bardziej związane z procesem deweloperskim niż z podstawowymi funkcjami samego DBMS. Pakiety do tworzenia statystyk również nie są kluczowe dla działania systemu zarządzania bazą. Ich główną rolą jest pomoc w analizie danych oraz optymalizacji zapytań, co jest elementem dodatkowym, a nie wymaganym do prawidłowego funkcjonowania bazy danych. Z kolei przystawka do wizualizacji diagramów encji jest narzędziem wspierającym projektowanie baz danych, ale nie jest niezbędna dla samego systemu zarządzania bazą danych. Wybór odpowiednich narzędzi i mechanizmów w obszarze zarządzania bazami danych powinien być oparty na ich specyficznych zastosowaniach oraz potrzebach użytkowników. Często pojawia się mylne przekonanie, że funkcjonalności dodatkowe są równie istotne jak te podstawowe, co prowadzi do zrozumienia, że kluczowe dla funkcjonowania systemu są te elementy, które zapewniają jego podstawową operacyjność i niezawodność.

Pytanie 4

W skrypcie JavaScript zmienne mogą być definiowane

A. wyłącznie na początku skryptu
B. zawsze poprzedzone znakiem $ przed nazwą
C. w chwili pierwszego użycia zmiennej
D. jedynie wtedy, gdy podamy typ zmiennej oraz jej nazwę
W języku JavaScript zmienne mogą być zadeklarowane w momencie ich pierwszego użycia dzięki mechanizmowi hoisting. Oznacza to, że silnik JavaScript przenosi deklaracje zmiennych na początek ich zasięgu, co pozwala na ich użycie w kodzie przed ich faktycznym zadeklarowaniem. Przykładem może być sytuacja, gdy zmienną deklarujemy za pomocą słowa kluczowego 'let' lub 'const'. Chociaż sama deklaracja jest hoistowana, to inicjalizacja zmiennej pozostaje w miejscu, co oznacza, że nie można jej używać przed faktycznym przypisaniem wartości. Dobrą praktyką jest zawsze deklarowanie zmiennych przed ich użyciem, aby uniknąć niejasności i błędów, takich jak ReferenceError. Warto również zauważyć, że JavaScript pozwala na dynamiczne typowanie, więc nie trzeba określać typu zmiennej przy jej deklaracji, co zwiększa elastyczność i uproszcza kod.

Pytanie 5

Które z formatowań nie jest wyrażone w języku CSS?

Ilustracja do pytania
A. Formatowanie 2
B. Formatowanie 3
C. Formatowanie 4
D. Formatowanie 1
W tym zadaniu kluczowe jest rozróżnienie, co tak naprawdę jest wyrażone w języku CSS, a co jest tylko "udawanym" formatowaniem, opartym o stare atrybuty HTML. W trzech pokazanych fragmentach stylowania tła strony faktycznie użyto CSS, tylko w różnych formach. W jednym przypadku styl został umieszczony w sekcji `<style>` wewnątrz dokumentu HTML. Taki zapis jest standardowym przykładem tzw. stylu wbudowanego w dokument i zgodnie ze specyfikacją CSS używa selektora `body` oraz deklaracji `background-color: yellow;`. W innym przykładzie ten sam kod znalazł się w osobnym pliku `.css`. To zewnętrzny arkusz stylów, który jest uznawany za najlepszą praktykę przy większych projektach, bo pozwala centralnie zarządzać wyglądem wielu stron. Trzecia forma to atrybut `style` wpisany bezpośrednio w znacznik `<body>`, np. `style="background-color: yellow;"`. Chociaż wygląda to trochę inaczej, w środku atrybutu nadal znajduje się zwykły kod CSS: nazwy właściwości, wartości, średniki – wszystko tak jak w arkuszu stylów. To wciąż jest CSS, tylko tzw. styl inline. Z mojego doświadczenia bywa on nadużywany, ale technicznie nie można powiedzieć, że nie jest to CSS. Jedyną formą, która nie korzysta z języka CSS, jest zapis z atrybutem `bgcolor`, czyli `<body bgcolor="yellow">`. Tutaj kolor tła jest określony przez specjalny, prezentacyjny atrybut HTML, który pochodzi z czasów, gdy CSS jeszcze raczkował. Ten sposób formatowania jest dziś uznawany za przestarzały i niezgodny z nowoczesnym podejściem "separation of concerns" – oddzielania struktury dokumentu od warstwy prezentacji. Typowym błędem jest myślenie, że skoro coś zmienia wygląd strony, to na pewno jest CSS. Tymczasem liczy się język i mechanizm, a nie sam efekt wizualny. Właśnie dlatego, analizując takie pytania, warto patrzeć na składnię: jeżeli widzimy selektory, nawiasy klamrowe i pary `właściwość: wartość;`, to mamy do czynienia z CSS, nawet jeśli jest wpisany inline. Jeśli natomiast widzimy stare atrybuty typu `bgcolor`, to jest to czysto HTML‑owe, historyczne rozwiązanie, które w nowych projektach lepiej omijać szerokim łukiem.

Pytanie 6

Konstrukcja w języku SQL ALTER TABLE USA... służy do

A. usunięcia tabeli USA
B. zmiany tabeli USA
C. nadpisania istniejącej tabeli USA
D. stworzenia nowej tabeli USA
Polecenie SQL ALTER TABLE jest używane do modyfikacji istniejącej tabeli w bazie danych. W kontekście odpowiedzi na to pytanie, modyfikacja tabeli USA może obejmować różne operacje, takie jak dodawanie nowych kolumn, modyfikowanie istniejących kolumn, usuwanie kolumn lub zmiana typu danych kolumn. Przykładowo, jeśli chcemy dodać kolumnę z datą utworzenia rekordu, moglibyśmy użyć polecenia ALTER TABLE USA ADD COLUMN created_at DATE. Ważne jest, aby pamiętać, że ALTER TABLE nie tworzy nowej tabeli, ani jej nie usuwa, co jest kluczowe dla zrozumienia jego funkcji. Dobre praktyki przy użyciu ALTER TABLE obejmują wykonanie kopii zapasowej bazy danych przed wprowadzeniem zmian, aby uniknąć utraty danych, a także rozważenie wpływu wprowadzanych zmian na już istniejące dane oraz indeksy. Ponadto, każda operacja ALTER TABLE może wymagać zablokowania tabeli, co wpływa na dostępność bazy danych podczas modyfikacji.

Pytanie 7

W podanym przykładzie pseudoklasa hover spowoduje, że styl pogrubiony zostanie przypisany

a:hover { font-weight: bold; }
A. każdemu odnośnikowi bez względu na jego bieżący stan
B. wszystkim odnośnikom, które były wcześniej odwiedzane
C. odnośnikowi, gdy kursor myszy na niego najedzie
D. wszystkim odnośnikom, które nie były odwiedzane
Pseudoklasa hover jest jedną z najczęściej używanych pseudoklas w CSS stosowaną do stylizacji elementów HTML w momencie, gdy użytkownik najeżdża kursorem myszy na dany element. W podanym przykładzie kodu CSS zastosowano pseudoklasę hover dla elementów a czyli odnośników. Oznacza to, że gdy kursor myszy znajdzie się nad jakimkolwiek odnośnikiem, jego styl zmieni się na pogrubiony dzięki właściwości font-weight: bold. Jest to bardzo przydatne w interaktywnej stylizacji stron internetowych, ponieważ pozwala użytkownikom na wizualne odróżnienie elementów, z którymi mogą wchodzić w interakcję. Praktycznym zastosowaniem tej pseudoklasy jest zwiększenie użyteczności i estetyki strony poprzez subtelne wskazanie elementów interaktywnych, takich jak menu nawigacyjne czy linki w treści. Warto pamiętać o zachowaniu spójności stylizacji dla wszystkich stanów odnośników, co jest zalecane jako dobra praktyka w projektowaniu responsywnych interfejsów użytkownika. Pseudoklasa hover, jako część kaskadowego arkusza stylów, pozwala na dynamiczną interakcję z elementami strony, co znacząco wpływa na doświadczenia użytkownika.

Pytanie 8

Plik graficzny powinien być zapisany w formacie GIF, gdy

A. jest konieczność zapisu obrazu bez kompresji
B. jest to obraz stereoskopowy
C. jest to grafika wektorowa
D. jest potrzeba zapisu obrazu lub animacji
Format GIF (Graphics Interchange Format) jest szeroko stosowany do zapisu obrazów oraz animacji. GIF obsługuje do 256 kolorów w palecie, co czyni go idealnym do grafiki komputerowej o prostych kolorach, takich jak ikony czy grafiki internetowe. Kluczową cechą GIF-a jest możliwość kompresji bezstratnej, co pozwala na zachowanie jakości obrazu przy stosunkowo niskiej wadze pliku. Jest to szczególnie istotne w przypadku animacji, gdzie różne klatki mogą być przechowywane w jednym pliku, umożliwiając płynne przejścia. GIF jest również kompatybilny z większością przeglądarek internetowych, co czyni go doskonałym wyborem do zastosowań internetowych. Przykładowo, animowane GIF-y są często wykorzystywane w mediach społecznościowych i na stronach internetowych do przyciągania uwagi, a ich prosta struktura sprawia, że są łatwe w implementacji i odtwarzaniu. Dodatkowo, standard GIF został ustalony przez Compuserve w 1987 roku i od tego czasu stał się jednym z najpopularniejszych formatów graficznych w sieci.

Pytanie 9

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

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

Pytanie 10

W bazie danych produkt znajdują się artykuły wyprodukowane po 2000 roku, zawierające pola nazwa oraz rok_produkcji. Klauzula SQL wyświetli zestawienie artykułów wyprodukowanych

SELECT * FROM `produkt` WHERE
SUBSTR(rok_produkcji, 3, 2) = 17;
A. w latach innych niż 2017
B. po roku 2017
C. przed rokiem 2017
D. w roku 2017
To zapytanie SQL, które rozkminiamy, korzysta z funkcji SUBSTR, żeby wyrwać kawałek roku z kolumny rok_produkcji i porównać go z 17. Jasno z tego wynika, że wyciągamy dwie ostatnie cyfry, co odpowiada rokowi 2017. Dlatego odpowiedzi mówiące o innych latach są mylące. Jeśli ktoś myśli, że filtrujemy coś przed 2017, to się myli, bo zapytanie dotyczy końcówki roku, a nie pełnego roku. Są też błędne założenia, że to zapytanie pokazuje lata inne niż 2017. Dlatego warto pamiętać, że SUBSTR jasno mówi, że wybieramy lata kończące się na 17. A jeśli ktoś myśli o latach po 2017, to też jest w błędzie, bo zapytanie nie bierze pod uwagę pełnych lat, a tylko końce. Często ludzie źle interpretują takie zapytania, bo nie uwzględniają funkcji tekstowych, które zmieniają sposób filtrowania danych. Zrozumienie tych niuansów w SQL jest ważne dla przetwarzania i analizy danych. Te błędy mogą się brać z braku dokładnej analizy i zrozumienia użytych funkcji, co zdarza się często nowym użytkownikom SQL. Dobrze jest po prostu testować zapytanie i robić przeglądy kodu w zespole, co wspiera lepsze zrozumienie i użycie zapytań w praktyce.

Pytanie 11

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

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

Pytanie 12

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

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

Pytanie 13

Dana jest tablica n-elementowa o nazwie t[n] Zadaniem algorytmu zapisanego w postaci kroków jest wypisanie sumy

K1: i = 0; wynik = 0;
K2: Dopóki i < n wykonuj K3 .. K4
    K3: wynik ← wynik + t[i]
    K4: i ← i + 2
K5: wypisz wynik
A. sumy wszystkich elementów tablicy.
B. co drugiego elementu tablicy.
C. sumy tych elementów tablicy, których wartości są nieparzyste.
D. n-elementów tablicy.
Super rozebrałeś na czynniki pierwsze ten algorytm! Twoja odpowiedź 'co drugiego elementu tablicy' jest jak najbardziej trafna. W pytaniu chodzi o to, że algorytm sumuje co drugi element tablicy, zaczynając od pierwszego, a ten indeks to 0. Zmienna 'i' służy do poruszania się po tablicy i w każdej iteracji zwiększa się o 2. Dzięki temu pętla przeskakuje co drugi element, a te nieparzyste ignoruje. To naprawdę przydatna technika w programowaniu, bo pozwala na określony dostęp do danych. Takie algorytmy wykorzystuje się np. przy analizie danych z czujników, gdzie ważne są tylko wartości zapisane w regularnych odstępach.

Pytanie 14

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

p::first-line
{
    font-size: 150%;
}
A. pierwsza linia każdego z paragrafów będzie miała mniejszą wielkość czcionki od pozostałych linii
B. cały tekst w paragrafie zostanie powiększony o 150%
C. pierwsza linia każdego paragrafu będzie miała większą czcionkę niż pozostałe linie
D. pierwszy paragraf na stronie będzie miał powiększoną czcionkę w całości
Zapis CSS p::first-line { font-size: 150%; } używa selektora pseudo-elementu ::first-line który stosuje stylizację do pierwszej linii każdego paragrafu. W tym przypadku zmieniamy rozmiar czcionki pierwszej linii na 150% jej domyślnej wartości co oznacza że będzie ona o 50% większa niż reszta tekstu. Pseudo-element ::first-line jest często stosowany w projektowaniu stron internetowych aby wyróżnić pierwsze zdanie lub akapit co może pomóc w lepszej organizacji treści i zwiększeniu czytelności. Ten sposób formatowania jest zgodny ze standardami CSS i jest wspierany przez większość nowoczesnych przeglądarek internetowych. Takie podejście może być użyteczne w projektach gdzie istotne jest nadanie unikalnego wyglądu nagłówkom sekcji lub wprowadzeniom bez zmieniania struktury HTML. Ważne jest aby pamiętać że ::first-line stosuje się tylko do elementów blokowych takich jak paragrafy co ogranicza jego użycie do tych specyficznych scenariuszy ale jednocześnie pozwala na precyzyjne dostosowanie stylu tekstu w dokumencie.

Pytanie 15

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

A. przyczynowym
B. liniowego
C. o skończonej odpowiedzi impulsowej
D. niezmiennym w czasie
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 16

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

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze ta kwerenda?
idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
63wierzbowy przysmak35
72Mintał w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 2
B. 8
C. 13
D. 5
Trochę nie tak zrozumiałeś, jak działają klauzule 'WHERE' i 'LIMIT' w SQL. Klauzula 'WHERE' filtruje wiersze, a w tym przypadku miały być dwa warunki: 'typ' musi być mniejszy od 3 i 'cena' mniejsza od 30. Te warunki są połączone przez AND, więc wszystkie muszą być spełnione naraz. W tabeli tylko jeden wiersz to spełnia. Klauzula 'LIMIT' natomiast ustala maksymalną liczbę wierszy, które mogą się pojawić w wynikach, ale tu, nawet z limitem 5, wynik się nie zmienia, bo tylko jeden wiersz spełnia te kryteria. Zrozumienie, jak to wszystko współdziała, jest naprawdę ważne, żeby dobrze korzystać z SQL.

Pytanie 17

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, O
B. Ctrl+W, T
C. Ctrl+W, E
D. Ctrl+W, N
W środowisku Visual Studio, które jest jednym z najpopularniejszych zintegrowanych środowisk programistycznych (IDE) dla języków takich jak C# czy C++, kombinacja klawiszy Ctrl+W, E pozwala na szybkie wyświetlenie listy błędów składniowych i innych problemów związanych z kodem. Lista błędów Error List jest kluczowym narzędziem w codziennej pracy programisty, ponieważ pozwala na szybkie zidentyfikowanie i naprawienie błędów bez konieczności przeszukiwania całego kodu. Dzięki temu programista może skupić się na poprawianiu najważniejszych błędów i optymalizacji kodu. Standardy i dobre praktyki w programowaniu zalecają regularne monitorowanie listy błędów w celu utrzymania wysokiej jakości kodu i minimalizacji ryzyka wystąpienia błędów w działającej aplikacji. To narzędzie jest nieocenione podczas procesu debugowania, gdyż pozwala na szybkie zlokalizowanie i zrozumienie problemów składniowych oraz logicznych wpływających na działanie aplikacji. Używanie skrótów klawiszowych do nawigacji w IDE jest również zalecane jako dobra praktyka, która zwiększa efektywność pracy.

Pytanie 18

Użycie standardu ISO-8859-2 ma na celu zapewnienie prawidłowego wyświetlania

A. specjalnych znaków dla języka kodowania strony
B. znaków zarezerwowanych dla języka opisu strony
C. symboli matematycznych
D. polskich znaków, takich jak: ś, ć, ń, ó, ą
Odpowiedzi dotyczące symboli matematycznych, znaków specjalnych dla języka kodów strony oraz znaków zarezerwowanych dla języka opisu strony są niepoprawne w kontekście zastosowania standardu ISO-8859-2. Standard ten nie jest przeznaczony do wyświetlania symboli matematycznych, gdyż istnieją inne kody i standardy, takie jak Unicode, które lepiej radzą sobie z obsługą szerokiego zakresu symboli matematycznych oraz znaków specjalnych. ISO-8859-2 koncentruje się głównie na znakach używanych w językach europejskich, a nie na symbolach, które są specyficzne dla matematyki. Z kolei znaki specjalne dla języka kodów strony, takie jak HTML, wymagają innego podejścia w kodowaniu, na przykład zastosowania encji HTML, które są standardowym sposobem reprezentacji znaków, które mogą być zinterpretowane przez przeglądarki internetowe. Wreszcie, znaki zarezerwowane dla języka opisu strony, takie jak te używane w XML czy HTML, również nie są objęte standardem ISO-8859-2. Każdy z tych tematów wymaga zrozumienia kontekstu, w którym są stosowane, oraz standardów technicznych, które są bardziej odpowiednie do ich obsługi, co podkreśla ograniczenia ISO-8859-2 w obszarze, w którym zostały zaprojektowane.

Pytanie 19

Model fizyczny replikacji bazy danych pokazany na ilustracji to model

Ilustracja do pytania
A. centralnego subskrybenta
B. równorzędny
C. centralnego wydawcy
D. rozproszony
Model centralnego wydawcy jest kluczowym elementem w systemach replikacji baz danych gdzie jeden serwer pełni rolę wydawcy dystrybutora danych do wielu subskrybentów Ta architektura pozwala na efektywne zarządzanie danymi poprzez centralne sterowanie zmianami i ich dystrybucję do podłączonych serwerów subskrybentów W praktyce takie podejście jest używane w dużych organizacjach gdzie konieczne jest zapewnienie aktualności i spójności danych w różnych lokalizacjach Przykładowo w firmach z wieloma oddziałami centralny serwer może dystrybuować dane transakcyjne do lokalnych serwerów zapewniając wszystkim oddziałom bezpośredni dostęp do aktualnych informacji Dzięki temu możliwe jest przeprowadzenie analizy danych w czasie rzeczywistym oraz synchronizacja danych co jest kluczowe w przypadku systemów ERP i CRM Stosowanie modelu centralnego wydawcy zgodnie z dobrymi praktykami umożliwia także łatwe skalowanie systemu oraz zarządzanie bezpieczeństwem danych poprzez centralne punkty kontrolne Taka architektura minimalizuje ryzyko konfliktów danych i zapewnia integralność danych co jest zgodne ze standardami branżowymi

Pytanie 20

Jaką funkcję w języku PHP należy wykorzystać, aby nawiązać połączenie z bazą danych o nazwie zwierzaki?

A. $polacz = db_connect('localhost', 'root','','zwierzaki')
B. $polacz = mysqli_connect('localhost', 'root','','zwierzaki')
C. $polacz = sql_connect('localhost', 'root','','zwierzaki')
D. $polacz = server_connect('localhost', 'root','','zwierzaki')
Odpowiedź $polacz = mysqli_connect('localhost', 'root','','zwierzaki'); jest poprawna, ponieważ używa funkcji mysqli_connect, która jest standardowym sposobem nawiązywania połączenia z bazą danych MySQL w PHP. Funkcja ta pozwala na określenie hosta, użytkownika, hasła oraz nazwy bazy danych, co jest niezbędne do skutecznego nawiązania połączenia. Mysqli jest rozszerzeniem PHP przeznaczonym do pracy z bazami danych MySQL, wprowadzającym nowe funkcjonalności w porównaniu do starszego mysql. Ponadto, mysqli_connect obsługuje zarówno połączenia proceduralne, jak i obiektowe, co daje programistom elastyczność w wyborze stylu programowania. Przykładowo, po poprawnym połączeniu, można wykonywać zapytania do bazy danych w sposób zorganizowany, co sprzyja tworzeniu aplikacji webowych. Należy również pamiętać o dobrych praktykach, takich jak użycie try-catch do obsługi błędów przy nawiązywaniu połączenia, co zapewnia stabilność i niezawodność aplikacji. Stosowanie mysqli jest obecnie zalecane w dokumentacji PHP, a także w praktyce branżowej.

Pytanie 21

Który element blokowy języka HTML5 jest przeznaczony do umieszczenia w nim nawigacji witryny? 

A. nav
B. header
C. aside
D. main
Poprawnie wskazany został element <nav>, który w HTML5 jest semantycznym kontenerem przeznaczonym specjalnie na nawigację. Według specyfikacji HTML Living Standard element <nav> służy do grupowania głównych bloków odsyłaczy nawigacyjnych, takich jak menu główne, menu w stopce, menu kategorii czy paginacja. Przeglądarki, czytniki ekranu i różne narzędzia asystujące rozpoznają ten znacznik jako obszar nawigacyjny, co bardzo poprawia dostępność (accessibility) strony. Z mojego doświadczenia, gdy struktura jest zrobiona semantycznie, screen readery potrafią jednym skrótem klawiaturowym przeskoczyć do nawigacji, co jest ogromnym ułatwieniem dla użytkowników niewidomych. W praktyce w <nav> umieszczamy listy linków, najczęściej w postaci <ul><li><a>…</a></li></ul>. Przykładowo: <nav><ul><li><a href="/">Strona główna</a></li><li><a href="/oferta">Oferta</a></li><li><a href="/kontakt">Kontakt</a></li></ul></nav>. Taka konstrukcja jest zgodna z dobrymi praktykami front-endu: semantyczny HTML, czytelna struktura, łatwiejsze stylowanie w CSS i prostsza nawigacja w JavaScript. Co ważne, <nav> nie jest zwykłym divem – jego nazwa od razu mówi, do czego służy, co ułatwia pracę całego zespołu projektowego. W projektach komercyjnych często stosuje się kilka bloków <nav> na jednej stronie: główne menu w headerze, dodatkowe menu w stopce, czasem boczne menu kategorii. Standardy W3C dopuszczają to, pod warunkiem że te sekcje rzeczywiście służą do nawigowania. Dobrym zwyczajem jest nie umieszczać w <nav> pojedynczych przypadkowych linków w tekście artykułu – ten znacznik jest przewidziany dla istotnych struktur nawigacyjnych, a nie dla zwykłych hiperłączy w treści. Dzięki temu kod HTML pozostaje przejrzysty, łatwiej go walidować i utrzymywać w większych projektach.

Pytanie 22

Prezentowany fragment dokumentu HTML z użyciem JavaScript spowoduje, że po naciśnięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz2.png zostanie zniknięty
B. obraz1.png zostanie zniknięty
C. obraz1.png zostanie wymieniony przez obraz2.png
D. obraz2.png zostanie wymieniony przez obraz1.png
Odpowiedź jest poprawna, ponieważ przycisk w kodzie JavaScript powoduje, że po jego kliknięciu element HTML o identyfikatorze 'id1', który jest obrazem 'obraz2.png', zostanie ukryty. Wartość 'style.display' zmienia się na 'none', co jest standardowym sposobem na ukrycie elementu w dokumentach HTML. W praktyce takie podejście jest szeroko stosowane w interaktywnych aplikacjach webowych, aby poprawić doświadczenia użytkowników, umożliwiając im dynamiczne ukrywanie lub wyświetlanie treści w odpowiedzi na ich działania. Ukrywanie elementów zamiast ich usuwania z DOM ma swoje zalety, ponieważ umożliwia ich późniejsze przywrócenie, co jest bardziej efektywne w kontekście wydajności. Dobrym przykładem może być rozwijane menu na stronie, gdzie po kliknięciu na dany element, jego zawartość jest ukrywana lub pokazywana bez potrzeby przeładowywania całej strony.

Pytanie 23

W języku JavaScript zapisano poniższy fragment kodu. `````` Po uruchomieniu skryptu zmienna x

A. będzie miała wartość 11 i zostanie wyświetlona w oknie popup
B. będzie miała wartość 11 i zostanie wyświetlona w konsoli przeglądarki internetowej
C. będzie miała wartość 10 i zostanie pokazana w dokumencie HTML
D. będzie miała wartość 10 i zostanie wyświetlona w głównym oknie przeglądarki internetowej
W analizowanym fragmencie kodu JavaScript mamy do czynienia z prostą operacją inkrementacji zmiennej x, która początkowo wynosi 10. Operator ++ zwiększa wartość zmiennej o 1, co skutkuje wartością 11. Wartością, która zostanie wyświetlona, jest wartość zmiennej x, która po inkrementacji wynosi 11. Jednak ważnym aspektem jest to, że w kodzie jest błąd składniowy w wywołaniu funkcji console.log. Poprawna składnia powinna wyglądać tak: console.log(x); zamiast console.logx);. W obecnej formie kodu, mimo inkrementacji zmiennej x do wartości 11, pojawi się błąd wykonania, a wartość nie zostanie wypisana. Gdyby błąd został naprawiony, wynik 11 zostałby wyświetlony w konsoli przeglądarki, co jest standardowym miejscem do monitorowania wyjścia w aplikacjach JavaScript. To zachowanie jest zgodne ze specyfikacjami ECMAScript, które definiują zasady działania operatorów oraz metod konsoli.

Pytanie 24

Deklaracja z właściwością background-attachment: scroll sprawia, że

A. tło strony zostanie zamocowane, a tekst będzie się poruszał
B. grafika tła będzie się powtarzać (kafelki)
C. grafika tła będzie widoczna w prawym górnym rogu strony
D. tło strony będzie przesuwane razem z zawartością tekstową
Właściwość CSS 'background-attachment: scroll' oznacza, że tło elementu będzie przewijane w równym tempie z treścią na stronie. Kiedy użytkownik przegląda stronę i przewija ją w dół lub w górę, tło przesuwa się razem z zawartością, co tworzy wrażenie głębokości i dynamiki. Przykładem zastosowania tej właściwości może być strona internetowa z długim tekstem, gdzie tło, takie jak kolor lub obraz, jest częścią estetyki projektu, ale nie powinno być statyczne. Warto zauważyć, że można to osiągnąć, ustawiając 'background-attachment' na 'scroll', co jest najczęściej stosowanym ustawieniem. W standardach CSS3 'background-attachment' ma cztery możliwe wartości: 'scroll', 'fixed', 'local', oraz 'inherit'. Stosowanie 'scroll' jest najbardziej intuicyjne i wspiera responsywność, ponieważ zmienia się w zależności od interakcji użytkownika z zawartością. To podejście jest zgodne z praktykami projektowania stron internetowych, które kładą nacisk na użytkownika i interaktywność.

Pytanie 25

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

A. Zmiana stylu HTML na stronie spowodowana ruchem kursora
B. Zapisanie danych pobranych z aplikacji internetowej do bazy danych
C. Walidacja danych wpisanych w pole tekstowe w czasie rzeczywistym
D. Ukrywanie oraz odkrywanie elementów strony w zależności od bieżącej pozycji kursora
Zapis danych z aplikacji internetowej w bazie to super ważna sprawa. Ogólnie mówiąc, to serwer się tym zajmuje. To on trzyma i zarządza informacjami, które wysyłamy, jak się rejestrujemy czy wypełniamy jakieś formularze. Kiedy użytkownik coś wpisuje, te dane muszą lecieć do serwera, gdzie są przetwarzane i lądować w bazie danych. Przykładowo, w relacyjnych bazach danych, jak MySQL czy PostgreSQL, używa się zapytań SQL do zarządzania tymi danymi, co ułatwia ich późniejsze szukanie. Warto też pamiętać o bezpieczeństwie – serwer musi robić walidację danych, żeby nie dać się nabrać na ataki typu SQL Injection. No i architektura MVC świetnie pokazuje, jak ważne jest miejsce serwera dla danych. Zapis danych to po prostu kluczowy element w działaniu aplikacji webowych.

Pytanie 26

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

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

Pytanie 27

W znaczniku meta w miejsce kropek należy wpisać

<meta name="description" content="…">
A. informację o dostosowaniu do urządzeń mobilnych.
B. streszczenie treści strony.
C. nazwę edytora.
D. język dokumentu.
Mówiąc, że w znaczniku meta w polu 'content' trzeba umieścić nazwę edytora, to trochę nie na miejscu. Opis strony powinien odnosić się do tego, co właściwie na niej jest, a nie do narzędzia, którym została zrobiona. Tak samo mówienie o definicji języka dokumentu w tym miejscu jest błędne, bo powinno się to robić z atrybutem 'lang' w znaczniku <html>. Wstawianie informacji o wersji mobilnej do pola 'content' znacznika meta też wprowadza w błąd, bo takie rzeczy zazwyczaj są podawane przez odpowiednie style CSS i znacznik <meta name='viewport'>. Często użytkownicy mogą się mylić, myśląc że te informacje można zamieścić w opisie, co jest nieprawda. Każda z tych odpowiedzi pokazuje, że nie do końca rozumiesz, jak działają znaczniki meta i jaka jest ich rola przy tworzeniu stron. Ważne jest, żeby znać gdzie i jak używać różnych atrybutów, bo to wpływa na SEO i na to, jak strona wygląda w wynikach wyszukiwania oraz jakie wartościowe informacje dostarczasz użytkownikom.

Pytanie 28

Ustalenie klucza obcego jest konieczne do skonstruowania

A. klucza podstawowego
B. transakcji
C. relacji 1..n
D. relacji 1..1
Klucz obcy jest kluczowym elementem w modelowaniu relacji w bazach danych, szczególnie w kontekście relacji 1..n. Definiuje on powiązania pomiędzy dwiema tabelami, gdzie jedna tabela (tabela główna) może mieć wiele powiązanych rekordów w drugiej tabeli (tabela szczegółowa). Na przykład, w bazie danych dotyczącej studentów i ich zapisów na przedmioty, tabela studentów może mieć klucz obcy odnoszący się do tabeli przedmiotów. Dzięki temu, dla każdego studenta można przechowywać wiele zapisów na różne przedmioty, co jest istotne w kontekście analizy danych. Z perspektywy standardów, takie podejście jest zgodne z zasadami normalizacji, które mają na celu eliminację redundancji danych oraz zapewnienie integralności referencyjnej. Dobre praktyki w projektowaniu baz danych sugerują stosowanie kluczy obcych do zarządzania relacjami pomiędzy danymi, co ułatwia ich późniejsze przetwarzanie i analizy.

Pytanie 29

Aby w tabeli praca, tworzonej w SQL, dodać warunek w kolumnie stawka, który nakazuje przyjmowanie dodatnich wartości rzeczywistych mniejszych niż 50, należy zastosować zapis

A. ... stawka float CHECK(stawka>0 OR stawka<50.00)
B. ... stawka float CHECK(stawka IN (0, 50.00))
C. ... stawka float CHECK(stawka BETWEEN 0 AND 50.00)
D. ... stawka float CHECK(stawka>0 AND stawka<50.00)
Aby w tabeli SQL dodać warunek dla kolumny 'stawka', który zapewni, że wartości będą rzeczywiste, dodatnie i mniejsze od 50, należy skorzystać z klauzuli CHECK. Odpowiedni zapis to 'CHECK(stawka > 0 AND stawka < 50.00)'. Klauzula CHECK w SQL pozwala na definiowanie ograniczeń dla wartości kolumny, co jest kluczowe w zapewnieniu integralności danych. W tym przypadku, użycie operatora AND jest istotne, ponieważ umożliwia jednoczesne sprawdzenie dwóch warunków: że 'stawka' jest większa od 0 oraz mniejsza od 50. Zastosowanie tego warunku jest zgodne z zasadami normalizacji bazy danych, która ma na celu eliminację nieprawidłowych danych. Przykładowo, jeśli spróbujesz wprowadzić wartość 0 lub 50 do kolumny 'stawka', system zwróci błąd, co zapobiega wprowadzeniu niepożądanych danych. Takie podejście jest również zalecane w standardach SQL, takich jak ANSI SQL, które podkreślają znaczenie walidacji danych.

Pytanie 30

Którego związku selektorów CSS należy użyć w miejscu znaków zapytania, aby zdefiniowany styl został zastosowany tylko do tekstu „paragrafie”?

<!DOCTYPE html>
<html>
  <head>
    <style>
      ???{letter-spacing: 10px; color: red;}
    </style>
  </head>
  <body>
    <p>Styl <b>tekstu</b> w pierwszym <i>paragrafie</i></p>
  </body>
</html>
A. b > i
B. b i
C. i + b
D. b + i
W tym zadaniu kluczowe jest zrozumienie, jak działają różne rodzaje selektorów powiązanych w CSS i jak odwzorowują one strukturę DOM. W kodzie HTML mamy element <p>, a w nim kolejno <b>tekstu</b> oraz zaraz po nim <i>paragrafie</i>. Oba są rodzeństwem, mają tego samego rodzica i występują w konkretnej kolejności. To, którą odpowiedź się wybierze, zależy od poprawnego odczytania tej relacji. Zapis „b i” to selektor potomka (descendant selector). Oznacza on: wybierz każdy element <i>, który znajduje się gdziekolwiek wewnątrz elementu <b>, na dowolnym poziomie zagnieżdżenia. W naszym przykładzie <i> nie jest wewnątrz <b>, tylko obok niego, więc taki selektor nic nie znajdzie. To jest dość typowe nieporozumienie: wiele osób myli „potomka” z „rodzeństwem”. Potomek to element zagnieżdżony, a nie kolejny po. Z kolei „b > i” to selektor dziecka (child selector). Jest jeszcze bardziej restrykcyjny – wybiera tylko te elementy <i>, które są bezpośrednimi dziećmi <b>. Czyli <i> musi być natychmiast wewnątrz <b>, bez żadnego pośredniego poziomu. W naszym kodzie znowu ten warunek nie jest spełniony, bo <i> nie jest dzieckiem <b>, tylko jego sąsiadem w tym samym paragrafie. To pokazuje, że zarówno selektor potomka, jak i dziecka są tu po prostu złym typem relacji. Odpowiedź „i + b” odwraca właściwy kierunek. Selektor sąsiedniego rodzeństwa z operatorem „+” działa zawsze w przód: po lewej stronie jest element, który występuje jako pierwszy, po prawej ten, który ma zostać wybrany. „i + b” oznacza więc: wybierz <b>, który stoi bezpośrednio po <i>. W naszym HTML jest odwrotnie – najpierw <b>, potem <i>. To częsty błąd myślowy: ktoś kojarzy poprawny typ selektora („+”), ale nie zwraca uwagi na kolejność elementów. Podsumowując, wszystkie błędne odpowiedzi ignorują prawdziwą relację strukturalną między <b> i <i>. Albo zakładają zagnieżdżenie tam, gdzie go nie ma, albo mylą kierunek selektora sąsiedniego. Dobra praktyka przy pracy z CSS to zawsze patrzenie na drzewo DOM jak na strukturę rodzic–dziecko–rodzeństwo i dobieranie selektora dokładnie do tej relacji. Dzięki temu styl trafia w jeden, konkretny element, zamiast działać przypadkowo lub wcale.

Pytanie 31

Który z akapitów został zapisany w wskazanym stylu, zakładając, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 2
B. Efekt 4
C. Efekt 3
D. Efekt 1
Odpowiedź Efekt 3 jest poprawna, ponieważ odzwierciedla wszystkie zadane style CSS. Styl zawiera padding 20px co oznacza, że wewnętrzna przestrzeń wokół tekstu w paragrafie powinna wynosić 20 pikseli. Daje to efekt przestrzeni pomiędzy tekstem a obramowaniem. Kolor tekstu został ustawiony na niebieski co powoduje, że sam tekst przyjmuje niebieską barwę. Parametr font-weight jest ustawiony na 900 co oznacza, że tekst powinien być bardzo pogrubiony. Obecnie jest to maksymalna wartość dla własności font-weight w standardzie CSS która powoduje, że tekst wygląda na bardzo wyrazisty i wyróżnia się na tle innych elementów. Dodatkowo border ustawiono na 1px solid co oznacza, że paragraf powinien mieć jednolitą linię o grubości jednego piksela otaczającą jego obszar. Wszystkie te style są poprawnie zastosowane w Efekcie 3 gdzie tekst jest niebieski bardzo pogrubiony z przestrzenią 20 pikseli do obramowania oraz otoczony cienką linią. Taki styl jest często wykorzystywany w projektach stron internetowych dla wyraźnego wyróżnienia ważnych sekcji co zgodne jest z dobrymi praktykami projektowania interfejsów użytkownika.

Pytanie 32

Używając polecenia ALTER TABLE, co można zrobić?

A. stworznie tabeli
B. zmiana struktury tabeli
C. usunięcie tabeli
D. zmiana wartości w rekordach tabeli
Polecenie ALTER TABLE w SQL jest używane do modyfikacji struktury istniejącej tabeli w bazie danych. Dzięki temu poleceniu można dodawać nowe kolumny, usuwać istniejące, zmieniać typ danych kolumn, a także dodawać klucze obce lub indeksy. Przykładem zastosowania ALTER TABLE może być dodanie nowej kolumny do tabeli pracowników w celu rejestrowania daty zatrudnienia: 'ALTER TABLE pracownicy ADD COLUMN data_zatrudnienia DATE;'. Good practices w zakresie modyfikacji tabeli sugerują, aby przed dokonaniem takich zmian zawsze tworzyć kopię zapasową bazy danych. Warto również monitorować wpływ zmian na istniejące zapytania oraz aplikacje, które wykorzystują tę tabelę, aby uniknąć potencjalnych błędów w przyszłości. W kontekście projektowania baz danych, ALTER TABLE stanowi kluczowy element w utrzymaniu i dostosowywaniu struktury bazy danych do zmieniających się potrzeb organizacji. Na przykład, w miarę wzrostu firmy mogą pojawić się potrzeby wprowadzenia nowych informacji dotyczących klientów, co wymaga elastyczności w strukturze bazy danych.

Pytanie 33

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

A. 24
B. 256
C. 240
D. 16
Konwersja obrazu z 8-bitową głębią kolorów na 4-bitową głębię oznacza, że zredukowana zostaje liczba możliwych kolorów. W 8-bitowym obrazie mamy 2^8, co daje 256 kolorów. Natomiast w 4-bitowym obrazie liczba kolorów wynosi 2^4, czyli 16 kolorów. Aby określić, o ile kolorów zmniejsza się obraz, należy od liczby kolorów w 8-bitowym obrazie odjąć liczbę kolorów w 4-bitowym obrazie: 256 - 16 = 240. Proces ten jest istotny w kontekście kompresji obrazu i ograniczeń pamięci, szczególnie w systemach wbudowanych, gdzie zasoby są ograniczone. Przykładowo, starsze urządzenia graficzne mogą być ograniczone do 4-bitowej głębi koloru, co wpływa na jakość wyświetlanego obrazu, ale pozwala na oszczędność zasobów. Zmniejszenie głębi kolorów wprowadza również zmiany w palecie kolorów, co może być istotne w zastosowaniach takich jak grafika rastrowa czy tworzenie gier retro, gdzie stylizacja i ograniczenia techniczne mogą wprowadzać estetyczne aspekty do projektowania.

Pytanie 34

Aby zdefiniować pole w klasie, do którego dostęp mają wyłącznie metody tej klasy, a które nie jest dostępne dla klas dziedziczących, powinno się zastosować kwalifikator dostępu

A. publiczny.
B. prywatny.
C. chroniony.
D. opublikowany.
Kwalifikator dostępu 'private' jest używany w programowaniu obiektowym do deklarowania pól klasy, które są dostępne wyłącznie w obrębie tej klasy. Oznacza to, że żadne inne klasy, w tym klasy pochodne, nie mają dostępu do tych pól, co sprzyja enkapsulacji, jednej z fundamentalnych zasad programowania obiektowego. Enkapsulacja pozwala na ochronę danych i logiki wewnętrznej obiektu, co zmniejsza ryzyko wystąpienia błędów oraz zwiększa bezpieczeństwo aplikacji. Przykładowo, gdy w klasie 'Samochod' mamy pole 'prędkość', które powinno być modyfikowane jedynie przez metody klasy 'Samochod', zadeklarowanie go jako 'private' uniemożliwia dostęp do tego pola z zewnątrz. Dobre praktyki sugerują unikanie dostępu do pól klasy bezpośrednio, a zamiast tego korzystanie z metod dostępowych (getterów i setterów), co pozwala na wprowadzenie dodatkowych reguł walidacyjnych. W ten sposób zapewniamy większą kontrolę nad tym, jak dane są używane i zmieniane w aplikacji.

Pytanie 35

Podana deklaracja funkcji w języku C++ przyjmuje parametry typu liczbowego: void mojaFunkcja(int a, short b, long c);

A. liczbowe i zmiennoprzecinkowe jako argumenty i nie zwraca wartości.
B. liczbowe jako argumenty i nie zwraca wartości.
C. liczbowe jako argumenty i zwraca wartość.
D. liczbowe i zmiennoprzecinkowe jako argumenty i zwraca wartość.
Odpowiedź, że funkcja przyjmuje liczby całkowite jako parametry i nie zwraca wartości, jest poprawna z kilku powodów. Deklaracja funkcji 'void mojaFunkcja(int a, short b, long c)' wskazuje, że funkcja ma typ zwracany 'void', co oznacza, że nie zwraca ona żadnej wartości po jej wykonaniu. Parametry 'int', 'short' oraz 'long' są typami danych całkowitych, co potwierdza, że funkcja przyjmuje tylko liczby całkowite. Typ 'int' jest standardowym typem całkowitym w C++, 'short' to typ reprezentujący mniejsze liczby całkowite, a 'long' może przechowywać większe wartości całkowite. W praktyce, funkcje, które nie zwracają wartości, są często używane do wykonywania operacji na danych wejściowych, takich jak modyfikacje obiektów, zmiany w strukturach danych lub operacje wejścia/wyjścia. Takie podejście jest zgodne z zasadami programowania strukturalnego oraz dobrymi praktykami programowania, gdzie funkcje powinny być odpowiedzialne za określone zadania, zamiast zwracać wartości. Warto zaznaczyć, że użycie typów całkowitych jako parametrów jest powszechną praktyką, ponieważ pozwala na precyzyjne operacje matematyczne oraz efektywne zarządzanie pamięcią.

Pytanie 36

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

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

W CSS właściwość font-size może przyjmować wartości według słów kluczowych

A. jedynie big i smali
B. tylko smali, smaller, large, larger
C. z zestawu xx-small, x-small, smali, medium, large, x-large, xx-large
D. wyłącznie smali, medium, large
Właściwość font-size w CSS pozwala na określenie rozmiaru czcionki za pomocą zestawu wartości słownikowych, które obejmują xx-small, x-small, small, medium, large, x-large oraz xx-large. Użycie tych słów kluczowych jest zgodne z wytycznymi CSS i zapewnia spójne i zrozumiałe podejście do projektowania. Przykładowo, definiując klasę CSS dla nagłówka, możemy zastosować: h1 { font-size: large; } co skutkuje odpowiednim zwiększeniem rozmiaru czcionki, co jest zgodne z hierarchią typograficzną dokumentu. Zastosowanie wartości słownikowych zwiększa czytelność i dostępność treści, ponieważ są one zrozumiałe zarówno dla programistów, jak i dla przeglądarek. Ponadto, korzystając z tych wartości, projektanci mogą łatwiej dostosować wygląd strony do różnych urządzeń, co jest kluczowe w kontekście responsywnego web designu. Warto również wspomnieć, że wartości te są niezależne od jednostek miary, takich jak em czy px, co sprawia, że są bardziej elastyczne w użyciu.

Pytanie 38

Które stwierdzenie najlepiej opisuje klasę Owoc zdefiniowaną w języku PHP i przedstawioną na listingu?

class Owoc {
    public $nazwa;
    private $kolor;
    function set_nazwa($nazwa) {
        $this->nazwa = $nazwa;
    }
}
A. Zawiera jedno pole i dwie metody, z których jedna ma ograniczony zasięg prywatny.
B. Zawiera dwa pola oraz jeden konstruktor, oba pola mają zasięg widzialności ograniczony wyłącznie do metod klasy.
C. Zawiera dwa pola i jedną metodę, a pole nazwa ma zasięg widzialności ograniczony wyłącznie do metod klasy.
D. Zawiera dwa pola i jedną metodę, a pole kolor ma zasięg widzialności ograniczony wyłącznie do metod klasy.
Wiele z błędnych odpowiedzi opiera się na niewłaściwej interpretacji widoczności pól oraz liczby metod w klasie. Klasa Owoc ma jedno publiczne pole o nazwie nazwa oraz jedno prywatne pole kolor, co oznacza, że tylko metody wewnątrz klasy mogą uzyskiwać dostęp do pola kolor. Pierwsza odpowiedź sugeruje, że klasa ma jedno pole i dwie metody, co jest niezgodne z rzeczywistością, ponieważ nie zdefiniowano drugiej metody. Z kolei odpowiedzi wskazujące na istnienie konstruktora są również błędne, ponieważ klasa Owoc nie definiuje żadnego konstruktora, co oznacza, że PHP automatycznie generuje domyślny konstruktor, ale nie jest on jawnie widoczny w kodzie. Istotnym błędem jest również założenie, że pole nazwa ma ograniczoną widoczność, co nie jest prawdziwe, gdyż jest ono publiczne i dostępne z zewnątrz klasy. Takie nieprawidłowe wnioski mogą wynikać z braku zrozumienia podstawowych zasad programowania obiektowego oraz widoczności w PHP, co jest kluczowe dla poprawnego projektowania aplikacji. W szczególności, umiejętność rozróżnienia między różnymi poziomami widoczności (publiczne, prywatne, chronione) jest niezbędna dla efektywnego korzystania z obiektów i klas w tym języku.

Pytanie 39

Wskaż zapytanie, które z tabeli klienci wybierze tylko nazwiska trzech najlepszych klientów, czyli tych, którzy mają najwięcej punktów na swoim koncie (pole całkowite punkty)?

A. SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3
B. SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3
C. SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC
D. SELECT nazwisko FROM klienci LIMIT 3
Wybór kwerendy SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3 jest poprawny, ponieważ wykorzystuje klauzulę ORDER BY w celu posortowania wyników na podstawie kolumny 'punkty' w porządku malejącym. Dzięki temu, najpierw wyświetlone zostaną rekordy z najwyższą liczbą punktów. Zastosowanie LIMIT 3 oznacza, że z całej posortowanej listy, wybierane są jedynie trzy rekordy, co idealnie odpowiada wymaganiu znalezienia trzech najlepszych klientów. Takie podejście jest zgodne z dobrymi praktykami w programowaniu SQL, ponieważ pozwala na precyzyjne wydobycie danych z bazy, a także na efektywne zarządzanie wynikami zapytań. Przykład zastosowania to sytuacja, gdy firma chce nagrodzić swoich najlepszych klientów na podstawie ich aktywności, co może przyczynić się do zwiększenia ich lojalności. W kontekście analizy danych, zrozumienie, jak korzystać z klauzul ORDER BY i LIMIT, jest kluczowe dla optymalizacji zapytań oraz interpretacji wyników.

Pytanie 40

Aby utworzyć relację wiele do wielu między tabelami A i B, wystarczy, że

A. zostanie zdefiniowana trzecia tabela z kluczami obcymi do tabel A i B
B. tabela A będzie miała identyczne pola jak tabela B
C. połączenie tabeli A z tabelą B nastąpi poprzez określenie kluczy obcych
D. wiele wpisów z tabeli A powtórzy się w tabeli B
Odpowiedź, że należy zdefiniować trzecią tabelę z kluczami obcymi do tabel A i B, jest poprawna, ponieważ relacja wiele do wielu wymaga pośrednictwa trzeciej tabeli, często nazywanej tabelą asocjacyjną lub łączącą. W praktyce oznacza to, że każdy rekord w tabeli A może być powiązany z wieloma rekordami w tabeli B i vice versa. Tabela asocjacyjna zawiera co najmniej dwa pola kluczy obcych: jedno wskazujące na odpowiedni rekord w tabeli A i drugie na odpowiadający mu rekord w tabeli B. Na przykład, w systemie zarządzania kursami, tabela 'Studenci' i tabela 'Kursy' mogą być połączone poprzez tabelę 'Rejestracje', która przechowuje identyfikatory studentów i kursów, umożliwiając przypisanie wielu studentów do wielu kursów. To podejście jest zgodne z zasadami normalizacji baz danych, które mają na celu minimalizację redundancji i zapewnienie spójności danych. Dobrą praktyką jest również zapewnienie, że klucze obce w tabeli asocjacyjnej są odpowiednio indeksowane, co poprawia wydajność zapytań oraz umożliwia łatwe zarządzanie relacjami.