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: 9 marca 2026 11:09
  • Data zakończenia: 9 marca 2026 11:30

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

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

W języku JavaScript zdefiniowano następującą funkcję:

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
Jej celem jest:
A. Wypisać wartość bezwzględną argumentu f
B. Wypisać wartość odwrotną do argumentu f
C. Zwrócić wartość odwrotną do argumentu f
D. Zwrócić wartość bezwzględną argumentu f
Niepoprawne odpowiedzi wynikają z niepełnego zrozumienia funkcji i jej założeń. Wypisanie wartości bezwzględnej z f sugerowałoby że funkcja korzysta z mechanizmu wyjściowego takiego jak console.log co nie ma miejsca w tym przypadku. Funkcja jedynie zwraca wynik za pomocą return a nie wypisuje go na konsolę. Zwrócenie wartości odwrotnej do f oznaczałoby że funkcja miałaby inny cel: przekształcenie liczby na jej odwrotność czyli wartość 1/f co wymagało by dodatkowej logiki i warunkowania aby uniknąć dzielenia przez zero. Podobnie wypisanie wartości odwrotnej do f również wskazywałoby na potrzebę użycia mechanizmu wyjściowego a nie tylko return. Kluczowym błędem w takich rozumowaniach jest nieodróżnianie funkcji zwracających wartość od tych które wypisują wynik oraz niedocenienie znaczenia przekształcania wartości co jest fundamentem programowania funkcyjnego. Dobre praktyki programistyczne wymagają jasno zdefiniowanego celu funkcji co w tym przypadku jest poprawnie zrealizowane poprzez zwracanie wartości bezwzględnej co jest częstym i użytecznym wzorcem w wielu zastosowaniach praktycznych.

Pytanie 2

Na ilustracji widoczne są dwie tabele. Aby stworzyć relację jeden do wielu, gdzie jeden jest po stronie Klienci, a wiele po stronie Zamowienia, należy

Ilustracja do pytania
A. Utworzyć trzecią tabelę z dwoma kluczami obcymi. Jeden klucz połączyć z ID tabeli Klienci, a drugi z ID tabeli Zamowienia
B. Wprowadzić pole klucza obcego do tabeli Zamowienia i połączyć je z ID tabeli Klienci
C. Połączyć relacją pola ID z obu tych tabel
D. Wprowadzić pole klucza obcego do tabeli Klienci i połączyć je z ID tabeli Zamowienia
Relacja jeden do wielu polega na tym że jedna wartość z jednej tabeli może być związana z wieloma wartościami w innej tabeli W tym przypadku jeden klient może mieć wiele zamówień co oznacza że musimy dodać pole klucza obcego w tabeli Zamowienia które będzie odnosiło się do Klientów Klucz obcy w bazach danych to pole które odwołuje się do klucza głównego w innej tabeli Dobre praktyki projektowania baz danych sugerują aby takie połączenia realizować za pomocą kluczy obcych co pozwala na utrzymanie integralności danych oraz łatwiejsze ich przetwarzanie W praktyce oznacza to że w tabeli Zamowienia dodajemy pole które przechowuje ID z tabeli Klienci Standardy branżowe jak SQL ANSI określają sposób tworzenia takich relacji co zapewnia kompatybilność z większością systemów zarządzania bazami danych Dzięki temu możemy łatwo uzyskać wszystkie zamówienia przypisane do konkretnego klienta co jest funkcjonalnością często wymaganą w aplikacjach biznesowych

Pytanie 3

Arkusze stylów w formacie kaskadowym są tworzone w celu

A. ułatwienia formatowania strony
B. nadpisywania wartości znaczników, które już zostały ustawione na stronie
C. blokowania wszelkich zmian w wartościach znaczników już przypisanych w pliku CSS
D. połączenia struktury dokumentu strony z odpowiednią formą jej wizualizacji
Kaskadowe arkusze stylów (CSS) stanowią kluczowy element w tworzeniu nowoczesnych stron internetowych, umożliwiając deweloperom separację zawartości od stylizacji. Poprawna odpowiedź, dotycząca ułatwienia formatowania strony, odnosi się do głównej funkcji CSS, która polega na umożliwieniu precyzyjnego stylizowania elementów HTML przy użyciu różnych właściwości, takich jak kolor, czcionka, marginesy czy tło. Dzięki CSS, można łatwo zmieniać wygląd całej strony lub jej części, co znacznie upraszcza proces utrzymania i aktualizacji. Na przykład, jeśli chcemy zmienić kolor tła całej witryny, wystarczy zaktualizować jedną regułę w arkuszu stylów, zamiast edytować każdy element osobno. Dodatkowo, CSS wspiera responsywność, co oznacza, że możemy dostosować wygląd strony do różnych rozmiarów ekranów, co jest istotne w dobie urządzeń mobilnych. Takie podejście do rozwijania stron internetowych jest zgodne z najlepszymi praktykami branżowymi, co pozwala na bardziej efektywne zarządzanie projektem oraz zapewnienie spójnego wyglądu witryny.

Pytanie 4

Funkcję session_start() w PHP należy zastosować przy realizacji

A. wielostronicowej strony, która wymaga dostępu do danych podczas przechodzenia pomiędzy stronami
B. przetwarzania formularza
C. jakiejkolwiek strony internetowej, która obsługuje cookies
D. ładowania danych z zewnętrznych plików
Wybór odpowiedzi dotyczącej dowolnej witryny obsługującej ciasteczka wskazuje na niepełne zrozumienie roli sesji w PHP. Ciasteczka, choć są narzędziem do przechowywania danych w przeglądarkach, różnią się zasadniczo od sesji. Główną różnicą jest to, że ciasteczka są przechowywane po stronie klienta, co oznacza, że użytkownik ma dostęp do ich zawartości i mogą być one modyfikowane przez użytkownika. W przypadku sesji, dane są przechowywane po stronie serwera, co oferuje większe bezpieczeństwo i kontrolę nad danymi użytkownika. W kontekście wczytywania danych z plików zewnętrznych, nie ma związku z sesjami, ponieważ ta operacja nie wymaga przechowywania stanu użytkownika. Podobnie, odpowiedź dotycząca obsługi formularza również nie uwzględnia, że sesje są stosowane do utrzymywania stanu aplikacji, a nie do samej obsługi formularzy. Typowym błędem jest mylenie sesji z mechanizmami przechowywania danych, które są bardziej odpowiednie dla informacji statycznych, a nie dynamicznych interakcji użytkownika. Zrozumienie, kiedy używać sesji, a kiedy ciasteczek lub innych metod przechowywania, jest kluczowe dla tworzenia bezpiecznych i funkcjonalnych aplikacji internetowych.

Pytanie 5

Które zdarzenie języka JavaScript jest wyzwalane w momencie, gdy kursor myszy znajduje się na elemencie do którego jest przypisane?

A. onmouseup
B. onmouseover
C. onmousedown
D. onmouseout
W tym pytaniu łatwo się pomylić, bo wszystkie wymienione zdarzenia są związane z myszką, ale każde z nich opisuje inny, dość precyzyjny moment interakcji użytkownika z elementem. Kluczowe jest zrozumienie, że pytanie dotyczy sytuacji, gdy kursor *znajduje się na elemencie*, czyli w praktyce momentu wejścia kursora w obszar tego elementu. Właśnie to zachowanie reprezentuje onmouseover. Zdarzenie onmouseup dotyczy chwili, gdy użytkownik puszcza (zwalnia) przycisk myszy. Nie ma znaczenia samo położenie kursora nad elementem, tylko to, że wcześniej przycisk został wciśnięty i teraz jest puszczany. Typowo wykorzystuje się je przy obsłudze drag & drop, przycisków, elementów interaktywnych, ale nie do reagowania na samo najechanie kursorem. Mylenie onmouseup z onmouseover wynika często z założenia, że „skoro klikam na elemencie, to pewnie chodzi o mysz nad elementem”, ale technicznie są to dwa różne etapy akcji. Z kolei onmouseout jest w pewnym sensie odwrotnością onmouseover. Wyzwala się wtedy, gdy kursor opuszcza obszar elementu, czyli przestaje się nad nim znajdować. Używa się go chociażby do cofania efektów stworzonych przy onmouseover, np. przywracania koloru, ukrywania dymka z podpowiedzią. Jeśli więc szukamy momentu, w którym kursor jest już nad elementem, to onmouseout opisuje raczej sytuację, kiedy z tego elementu „schodzimy”. Zdarzenie onmousedown uruchamia się przy wciśnięciu przycisku myszy, w chwili naciśnięcia, a nie najechania. Jest to ważne w interakcjach typu rysowanie na canvasie, łapanie suwaka, obsługa własnych kontrolek. W praktyce, jeżeli ktoś kojarzy wszystkie te zdarzenia jedynie ogólnie jako „coś od myszy”, to łatwo wrzucić je do jednego worka i strzelać odpowiedzi, ale według specyfikacji DOM Events każde z nich ma ściśle zdefiniowaną rolę. W kontekście pytania tylko onmouseover opisuje wejście kursora w obszar elementu i utrzymywanie się nad nim, więc właśnie ono jest poprawnym wyborem.

Pytanie 6

Jakie są etapy w odpowiedniej kolejności przy tworzeniu aplikacji?

A. Programowanie, analiza oczekiwań klienta, określenie wymagań, wdrożenie, testowanie
B. Analiza oczekiwań klienta, określenie wymagań, programowanie, wdrożenie, testowanie
C. Analiza oczekiwań klienta, określenie wymagań, programowanie, testowanie, wdrożenie
D. Określenie wymagań, analiza oczekiwań klienta, programowanie, wdrożenie, testowanie
Odpowiedź wskazująca na kolejność: analiza wymagań klienta, specyfikacja wymagań, tworzenie, testy, wdrażanie jest poprawna i odzwierciedla standardowy model cyklu życia oprogramowania (SDLC). Zaczynamy od analizy wymagań, co oznacza zrozumienie potrzeb klienta i zebranie informacji, które będą fundamentem dalszych prac. Następnie przechodzimy do specyfikacji wymagań, gdzie dokumentujemy te potrzeby w formie, która będzie zrozumiała dla zespołu developerskiego. Tworzenie aplikacji następuje po szczegółowym omówieniu i zaakceptowaniu wymagań, co minimalizuje ryzyko błędów. Testy są kluczowym etapem, który pozwala na weryfikację, czy stworzone rozwiązanie spełnia wymagania oraz działa zgodnie z założeniami. Ostateczne wdrożenie aplikacji do użytkowania powinno nastąpić po przeprowadzeniu wszystkich testów i uzyskaniu pozytywnych wyników. Przykład zastosowania tej metodologii można zaobserwować w projektach realizowanych w metodologii Agile, gdzie iteracje pozwalają na ciągłe dostosowywanie aplikacji do zmieniających się potrzeb klienta. Takie podejście zwiększa satysfakcję użytkowników i minimalizuje koszty związane z poprawkami.

Pytanie 7

Który z zapisów znacznika <div> może pojawić się w dokumencie HTML tylko raz, a ponowne jego użycie spowoduje błędy podczas walidacji tego dokumentu?

A. <div class="klasa">
B. <div class="klasa1 klasa2">
C. <div id="identyfkator">
D. <div>
Odpowiedź <div id="identyfkator"> jest poprawna, ponieważ znacznik <div> z atrybutem id musi być unikalny w obrębie całego dokumentu HTML. Zgodnie z standardami W3C, atrybut id powinien być przypisany tylko do jednego elementu na stronie, co umożliwia jednoznaczne identyfikowanie tego elementu, na przykład w CSS lub JavaScript. Przykładowo, jeśli mamy <div id="header">, to nie możemy użyć tego samego identyfikatora dla innego <div> w tym samym dokumencie, aby uniknąć konfliktów. W praktyce, unikalność id jest kluczowa w kontekście manipulacji DOM, gdyż wiele bibliotek JavaScript polega na tej unikalności, aby prawidłowo odnajdywać i modyfikować elementy. Warto również pamiętać, że użycie unikalnych id sprzyja lepszej dostępności i ułatwia nawigację w dokumentach, co jest zgodne z dobrą praktyką projektowania stron internetowych.

Pytanie 8

Podczas tworzenia tabeli w SQL określono pole, w którym wartości muszą być unikalne. Którego atrybutu należy użyć w jego definicji?

A. IDENTITY
B. DEFAULT
C. NOT NULL
D. UNIQUE
Atrybut DEFAULT nie jest właściwym wyborem, gdyż jego głównym celem jest przypisanie domyślnej wartości do pola, gdy nie zostanie podana żadna inna. Na przykład, jeśli w tabeli produkcji mamy pole 'status', możemy ustawić DEFAULT na 'aktywny', co oznacza, że nowo dodawany rekord automatycznie otrzyma ten status, jeśli nie określimy go inaczej. Nie zapewnia to jednak unikalności wartości w tym polu i wprowadza nieporozumienie w kontekście wymogu o braku powtarzalności. Atrybut IDENTITY jest używany w kontekście automatycznego generowania wartości dla pól, co jest typowe dla kluczy głównych, ale również nie pomaga w utrzymaniu unikalności w szerszym kontekście pola. Przykładowo, kiedy używamy IDENTITY w tabeli, baza danych generuje kolejne liczby dla danego pola, co działa doskonale, ale nie odnosi się do przypadku, w którym chcemy zapewnić unikalność innego pola, jak adres e-mail. Ostatecznie, atrybut NOT NULL określa, że dane pole nie może być puste, co jest ważne dla integracji danych, ale nie ma wpływu na unikalność wartości. Problemy z rozpoznawaniem właściwych atrybutów mogą wynikać z mylnego założenia, że wszystkie te atrybuty mają na celu osiągnięcie unikalności, co jest błędne. Prawidłowe zrozumienie roli każdego z tych atrybutów jest kluczowe dla efektywnego projektowania baz danych i zapewnienia ich integralności.

Pytanie 9

W sekcji nagłówka dokumentu HTML umieszczono ```Strona miłośników psów``` Zawarty tekst będzie widoczny

A. w treści witryny, w pierwszym ukazanym nagłówku
B. w polu adresowym, za wprowadzonym adresem URL
C. w treści witryny, na banerze witryny
D. na pasku tytułu w przeglądarce
Wybór odpowiedzi, która sugeruje, że tytuł strony wyświetlany jest w treści strony, jest błędny. Tytuł nie jest częścią treści, na przykład w nagłówku, ani nie jest umieszczany na banerze witryny, co sugeruje inna odpowiedź. Tytuł strony jest wyświetlany na pasku tytułu przeglądarki, a jego podstawowym zadaniem jest identyfikacja strony w kontekście użytkowania przeglądarki. Błędne założenie, że tytuł może być częścią treści strony, wynika z nieporozumienia dotyczącego struktury dokumentu HTML oraz roli, jaką różne elementy odgrywają w prezentacji stron. Tytuł jest istotnym elementem metadanych, co oznacza, że nie jest przeznaczony do bezpośredniego wyświetlania na stronie, ale ma kluczowe znaczenie dla SEO oraz ułatwienia nawigacji. Właściwe zrozumienie roli tagu <title> jest kluczowe, aby uniknąć typowych błędów w tworzeniu witryn internetowych, takich jak używanie wygenerowanych tytułów, które mogą być zbyt ogólne lub mylące dla użytkowników oraz wyszukiwarek. W praktyce, tytuły stron powinny być odzwierciedleniem ich zawartości, co zwiększa ich użyteczność i efektywność w przyciąganiu odwiedzających.

Pytanie 10

Reprezentacja znacznika HTML w formacie ```przejdź```

A. jest błędny, w atrybucie href należy wpisać adres URL
B. jest poprawny, po kliknięciu w odnośnik otworzy się strona internetowa o URL "hobby"
C. jest błędny, użyto niewłaściwego znaku "#" w atrybucie href
D. jest poprawny, po kliknięciu w odnośnik strona zostanie przewinięta do sekcji o nazwie "hobby"
W odpowiedziach, które wskazują na błędy w zapisie znacznika HTML, pojawiają się nieporozumienia dotyczące funkcji atrybutu href w tagu <a>. Niepoprawne są twierdzenia sugerujące, że użycie znaku '#' w atrybucie href jest błędne. Wręcz przeciwnie, znak '#' jest standardowym sposobem definiowania odnośników do identyfikatorów na tej samej stronie. Zastosowanie atrybutu href w takiej formie jest powszechnie akceptowane i stosowane w praktyce web developerskiej. Kolejnym błędnym wnioskiem jest stwierdzenie, że w atrybucie href należy podać pełny adres URL. W rzeczywistości, gdy celem jest nawigacja do sekcji na tej samej stronie, wystarczy użyć symbolu '#' i odpowiedniego identyfikatora. Dodatkowo, pominięcie praktyki użycia href do nawigacji wewnętrznej prowadzi do mniejszych korzyści w zakresie użyteczności strony. Użytkownicy oczekują, że będą mogli łatwo przemieszczać się pomiędzy różnymi sekcjami długich treści, a niewłaściwe podejście do definiowania odnośników może prowadzić do frustracji i obniżenia jakości doświadczeń użytkowników. Warto zatem zrozumieć, że poprawne stosowanie takich odnośników jest kluczowe dla skutecznego projektowania stron internetowych.

Pytanie 11

Kod JavaScript aktywowany przez kliknięcie przycisku ma na celu ``` ```

A. zamienić obraz1.gif na obraz2.gif
B. zmienić styl obrazu o id i1
C. pokazać obraz2.gif obok obraz1.gif
D. ukryć obraz2.gif
Kod JavaScript w przedstawionym przykładzie został zaprogramowany w celu zamiany źródła obrazu na nowe po naciśnięciu przycisku. Gdy użytkownik kliknie na przycisk, wywołuje on funkcję, która zmienia atrybut 'src' elementu <img> z 'obraz1.gif' na 'obraz2.gif'. Jest to typowy sposób manipulacji elementami DOM w JavaScript, co jest fundamentalnym elementem programowania interakcji na stronach internetowych. Takie podejście jest zgodne z najlepszymi praktykami w zakresie programowania front-end, ponieważ pozwala na dynamiczne zmiany na stronie bez konieczności przeładowania całej strony. Przykładem praktycznego zastosowania może być użycie tego typu kodu w aplikacjach webowych, gdzie użytkownik może interaktywnie zmieniać widok, na przykład w galeriach zdjęć, grach przeglądarkowych czy aplikacjach do nauki. Zrozumienie tej techniki jest kluczowe dla każdego programisty front-end, ponieważ efektywne wykorzystanie JavaScript do manipulacji DOM jest jednym z podstawowych narzędzi w budowie nowoczesnych aplikacji webowych.

Pytanie 12

Który efekt został zaprezentowany na filmie?

A. Zmiana jasności zdjęć.
B. Zmniejszenie kontrastu zdjęcia.
C. Przenikanie zdjęć.
D. Zwiększenie ostrości zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 13

Jakie obiekty w bazie danych służą do podsumowywania, prezentacji oraz drukowania danych?

A. zapytanie
B. formularz
C. zestawienie
D. raport
Raport jest narzędziem w bazach danych, które umożliwia podsumowywanie, wyświetlanie i wydruk danych w zorganizowanej formie. Jego głównym celem jest przedstawienie informacji w sposób zrozumiały i estetyczny, co jest szczególnie ważne w kontekście analizy danych oraz podejmowania decyzji biznesowych. Raporty mogą być wykorzystane do generowania zestawień wyników finansowych, analiz sprzedaży czy statystyk użytkowników. Umożliwiają one również prezentację danych w formie tabel, wykresów i diagramów, co zwiększa ich czytelność. W branży IT i zarządzania danymi, dobrą praktyką jest korzystanie z narzędzi raportowych, które integrują się z bazami danych, co pozwala na automatyczne aktualizowanie danych oraz lepszą wizualizację. Warto również wspomnieć o różnych formatach, w jakich raporty mogą być generowane, takich jak PDF, XLSX czy HTML, co umożliwia ich łatwe udostępnianie i archiwizowanie.

Pytanie 14

W HTML znacznik <i> powoduje uzyskanie takiego samego efektu wizualnego jak znacznik

A. <strong>
B. <pre>
C. <em>
D. <u>
Zastosowanie znaczników <u>, <pre> oraz <strong> w kontekście pytania jest błędne z kilku powodów. Znacznik <u> służy do podkreślenia tekstu, ale nie przekazuje on żadnego dodatkowego znaczenia semantycznego, co jest kluczowe w tworzeniu dostępnych treści. Choć wizualnie może to wyglądać podobnie, użycie <u> nie jest zgodne z najlepszymi praktykami, gdzie zaleca się stosowanie znaczników semantycznych, takich jak <em>, które informują o intencji autora. Z kolei znacznik <pre> jest używany do prezentacji tekstu w formacie preformatowanym, co nie ma nic wspólnego z wyróżnianiem tekstu w kontekście jego znaczenia. Oznacza to, że tekst wewnątrz <pre> zachowuje spacje oraz nowe linie, co jest istotne przy wyświetlaniu kodu lub danych, ale nie ma zastosowania w kontekście wyróżniania wyrazów w treści. Znacznik <strong>, chociaż wizualnie również pogrubia tekst, informuje o ważności treści, ale nie jest równoważny z <em>, które przekazuje bardziej subtelne znaczenie. Typowym błędem jest postrzeganie tych znaczników jako zamienników, co prowadzi do tworzenia kodu, który jest nieefektywny oraz trudny w interpretacji przez urządzenia asystujące, a w konsekwencji odbiorcy treści, w tym osób z niepełnosprawnościami. Właściwe zrozumienie ról poszczególnych znaczników jest kluczowe dla tworzenia stron internetowych zgodnych z WCAG i ogólnych standardów dostępności.

Pytanie 15

W kodzie HTML atrybut alt w tagu img służy do określenia

A. tekstu, który będzie prezentowany, gdy obraz nie może być załadowany
B. opisu, który pojawi się pod obrazem
C. atrybutów obrazu, takich jak rozmiar, ramka, wyrównanie
D. ścieżki oraz nazwy pliku źródłowego
Niepoprawne odpowiedzi pokazują, że występuje niezrozumienie roli atrybutu alt w HTML. Po pierwsze, on nie służy do określania takich rzeczy jak rozmiar, obramowanie czy wyrównanie obrazków. To regulują inne atrybuty, takie jak width, height czy border, które wpływają na wygląd obrazów na stronie. Te atrybuty są istotne, ale nie dotyczą funkcji atrybutu alt. Po drugie, atrybut alt nie służy do tworzenia podpisów pod obrazkami. Do tego lepszym rozwiązaniem są inne znaczniki HTML, jak <figcaption> w połączeniu z <figure>, dzięki czemu treść jest lepiej zorganizowana. Ostatni błąd dotyczy lokalizacji pliku, co również jest nietrafione, bo te dane dostarcza atrybut src. Atrybut alt ma tylko za zadanie podać alternatywny opis dla obrazka, co jest kluczowe nie tylko z perspektywy dostępności, ale także poprawia doświadczenia użytkowników oraz SEO.

Pytanie 16

Kiedy należy użyć kwerendy SELECT DISTINCT, aby wybrać rekordy?

A. tak, aby w wskazanej kolumnie nie powtarzały się wartości.
B. pogrupowane.
C. uporządkowane w kolejności malejącej lub rosnącej.
D. obecne w bazie tylko raz.
Kwerenda SELECT DISTINCT jest używana w SQL do zwracania unikalnych rekordów z określonej kolumny lub kolumn. Głównym celem tej kwerendy jest eliminacja duplikatów z wyników zapytania, co jest szczególnie przydatne w sytuacjach, gdy interesuje nas uzyskanie listy unikalnych wartości, na przykład nazwisk pracowników w firmie, których można znaleźć w tabeli „Pracownicy”. Dzięki zastosowaniu DISTINCT, wynik zapytania dostarczy tylko różne nazwiska, eliminując powtarzające się wystąpienia. W kontekście dobrych praktyk w projektowaniu baz danych, korzystanie z DISTINCT pozwala na efektywniejsze analizowanie danych oraz lepsze zrozumienie struktury informacji w tabelach. Użycie SELECT DISTINCT może również pomóc w optymalizacji zapytań, szczególnie w rozbudowanych bazach danych, gdzie występowanie duplikatów może prowadzić do zafałszowania wyników analiz. Przykład praktyczny to zapytanie: SELECT DISTINCT kraj FROM Klienci, które zwróci wszystkie różne kraje, w których znajdują się klienci, co jest kluczowe w analizach geolokalizacyjnych.

Pytanie 17

Fragment kodu napisany w języku JavaScript, który realizuje sumowanie dwóch liczb, wygląda następująco (zobacz ramka): Aby operacja dodawania odbywała się po naciśnięciu przycisku zatytułowanego "dodaj", należy w miejsce wykropkowane wprowadzić

Ilustracja do pytania
A. <button onselect="return dodaj()">oblicz</button>
B. <button onclick="return obliczj()">dodaj</button>
C. <button onclick="return dodaj()">dodaj</button>
D. <button onselect="return dodaj()">dodaj</button>
Wybór innych odpowiedzi wskazuje na niepełne zrozumienie sposobu przypisywania zdarzeń do elementów HTML w kontekście języka JavaScript. Atrybut onselect w HTML nie jest przeznaczony dla przycisków, lecz dla elementów tekstowych, takich jak input czy textarea, gdzie jest wykorzystywany do reagowania na wybór tekstu przez użytkownika. Zastosowanie onselect w kontekście przycisku jest niepoprawne, gdyż nie wywoła żadnej funkcji w odpowiedzi na kliknięcie użytkownika. Z kolei użycie niewłaściwej nazwy funkcji, jak w przypadku onselect="return dodaj()" dla przycisku "oblicz", wskazuje na błąd logiczny. Jeśli funkcja została nazwana dodaj() w kodzie JavaScript, musi być właśnie tak wywoływana. Zasady dobrego projektowania aplikacji webowych wymagają, aby atrybuty HTML odpowiadały zgodnie z ich przeznaczeniem, co zapewnia poprawne działanie i łatwość debugowania. Poprawne przypisanie zdarzeń to kluczowy aspekt w programowaniu interfejsów użytkownika, a błędne użycie atrybutów prowadzi do problemów z funkcjonalnością strony. Dlatego tak istotne jest zrozumienie i stosowanie właściwych atrybutów zdarzeń, co ułatwia rozwój i zarządzanie aplikacjami internetowymi.

Pytanie 18

Na podstawie przedstawionego kodu w języku JavaScript można powiedzieć, że alert nie zostanie wyświetlony, ponieważ

var x = 10;
switch(x) {
    case "10": alert("Test instrukcji switch");
}
A. Nie zastosowano instrukcji break.
B. Wartość zmiennej x nie została zdefiniowana przed instrukcją switch.
C. W instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x.
D. Nie zastosowano wyrażenia default.
Prawda jest taka, że zastosowanie wyrażenia default, definicja zmiennej x przed instrukcją switch oraz użycie instrukcji break nie wpływają na wyświetlenie alertu w omawianym kodzie JavaScript. Wyrażenie default w instrukcji switch służy jako gwarancja wykonania bloku kodu, gdy żaden z przypadków nie pasuje do wyrażenia switch, ale jego brak nie jest przyczyną niepojawienia się alertu. Co więcej, zmienna x jest zdefiniowana przed instrukcją switch, co jest zgodne z zasadami JavaScript. Instrukcja break służy do zakończenia pętli lub instrukcji switch i przeniesienia wykonania do następnej instrukcji po instrukcji switch lub pętli, ale nie ma ona wpływu na porównanie typów danych w instrukcji case. Rzeczywistym powodem, dla którego alert nie jest wyświetlany, jest fakt, że JavaScript używa tzw. 'strict comparison' w instrukcji case, porównując zarówno wartość, jak i typ danych, a typy danych liczby 10 i ciągu znaków '10' są różne. Dlatego jest istotne, ażeby zawsze zwracać uwagę na typy danych podczas korzystania z instrukcji switch i case w JavaScript.

Pytanie 19

Aby obraz w filmie zmieniał się gładko, liczba klatek (niezachodzących na siebie) w ciągu sekundy musi mieścić się przynajmniej w zakresie

A. 24 do 30 fps
B. 31 do 36 fps
C. 16 do 19 fps
D. 20 do 23 fps
Wybór '31 do 36 fps' jest trochę mylący, bo chociaż teoretycznie mogłoby to zapewnić płynny obraz, to w praktyce nie jest to standard w produkcjach filmowych. Klatki powyżej 30 fps w tradycyjnym kinie to rzadkość, co może wprowadzać zamieszanie co do efektów wizualnych. Ponadto sztuczne zwiększenie fps takich jak 31 może sprawić, że ruch będzie wyglądał na rozmyty, a to niespecjalnie pasuje do estetyki filmowej. Z drugiej strony, '20 do 23 fps' to zdecydowanie za mało, by zapewnić przyzwoitą jakość w profesjonalnych produkcjach. Takie wartości mogą się sprawdzić w animacjach czy niskobudżetowych filmach, ale już w bardziej skomplikowanych ujęciach nie dają płynności. Natomiast '16 do 19 fps' to totalna porażka, bo powoduje skoki i zacięcia, a to w branży nie przechodzi. Dlatego w pracy z wideo, warto pilnować minimum 24 fps, żeby widzowie mieli fajne wrażenia wizualne.

Pytanie 20

W tabeli zwierzeta znajdują się kolumny nazwa, gatunek, gromada, cechy, dlugosc_zycia. Aby uzyskać listę nazw zwierząt, które dożywają przynajmniej 20 lat oraz są ssakami, jakie zapytanie należy wykonać?

A. SELECT nazwa FROM zwierzeta WHERE gromada = 'ssak';
B. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20 OR gromada = 'ssak';
C. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20;
D. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20 AND gromada = 'ssak';
Wybrana odpowiedź jest prawidłowa, ponieważ spełnia wymagania określone w pytaniu, które dotyczą zarówno długości życia zwierząt, jak i ich przynależności do grupy ssaków. Zapytanie SQL 'SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20 AND gromada = ‘ssak‘;' precyzyjnie definiuje warunki, które muszą być spełnione, aby uzyskać oczekiwane wyniki. Warunek 'dlugosc_zycia >=20' zapewnia, że tylko zwierzęta o długości życia wynoszącej co najmniej 20 lat będą uwzględnione w rezultatach, co jest kluczowe dla osiągnięcia zamierzonego celu. Dodatkowo, użycie operatora 'AND' łączy oba kryteria, co oznacza, że obie zasady muszą być spełnione jednocześnie. Dzięki temu zapytanie jest zwięzłe i efektywne, co jest zgodne z najlepszymi praktykami w dziedzinie baz danych, gdzie ważne jest, aby unikać zbędnych danych w wynikach, co usprawnia proces przetwarzania informacji. Ta metoda jest szczególnie przydatna w kontekście analizy danych i raportowania, gdzie precyzyjne filtry pomagają w uzyskaniu istotnych informacji.

Pytanie 21

Funkcją w PHP, która służy do tworzenia ciasteczek, jest

A. echocokie()
B. createcookie()
C. setcookie()
D. addcokie()
W pytaniu o funkcję tworzącą ciasteczko w języku PHP, niektóre odpowiedzi nie są poprawne z kilku kluczowych powodów. Stwierdzenie, że createcookie() jest funkcją odpowiedzialną za tworzenie ciasteczek, jest błędne, gdyż nie istnieje taka funkcja w standardowej bibliotece PHP. Pomimo podobieństwa nazwy, programiści nie znajdą jej w dokumentacji PHP, co czyni ją nieodpowiednią odpowiedzią. Kolejna odpowiedź, echocokie(), również jest myląca, ponieważ nie jest to funkcja ani słowo kluczowe w PHP. Funkcja echo w PHP służy do wyświetlania danych, ale nie ma związku z zarządzaniem ciasteczkami. Również, addcokie() jest nieprawidłową nazwą, która może sugerować działanie związane z dodawaniem ciasteczek, lecz taka funkcjonalność nie istnieje w języku PHP. Prawidłowym podejściem do zarządzania ciasteczkami jest wykorzystanie setcookie(), która stanowi jedyną standardową metodę w PHP do ich tworzenia i edytowania. Zrozumienie właściwych nazw funkcji oraz ich zastosowania jest kluczowe dla efektywnego programowania w PHP i unikania błędów w kodzie.

Pytanie 22

Ogólne tablice służące do przechowywania informacji o ciasteczkach oraz sesjach: $_COOKIE oraz $_SESSION są elementem języka

A. PHP
B. C#
C. Perl
D. JavaScript
Wybór odpowiedzi z języków C#, Perl czy JavaScript może prowadzić do nieporozumień związanych z funkcjonalnościami tych technologii. C# to język programowania ogólnego przeznaczenia, często używany w aplikacjach Windows oraz serwerowych, ale nie oferuje wbudowanej obsługi $_COOKIE i $_SESSION, które są specyficzne dla języka PHP. Perl, jako język skryptowy, również nie ma tych konstrukcji, a jego podejście do zarządzania sesjami i ciasteczkami różni się od tego w PHP, co może prowadzić do błędów w realizacji aplikacji webowych. JavaScript, z drugiej strony, działa głównie po stronie klienta i nie ma bezpośredniego dostępu do superglobalnych tablic, takich jak $_COOKIE, które są zarządzane przez serwer. Chociaż JavaScript może manipulować ciasteczkami przez obiekt document.cookie, nie obsługuje sesji w taki sam sposób jak PHP. W konsekwencji, odpowiedzi te mogą prowadzić do błędnych wniosków o tym, jak zarządzać danymi sesyjnymi i ciasteczkami w kontekście aplikacji webowych, co jest kluczowe dla zapewnienia bezpieczeństwa i poprawności działania aplikacji. Zrozumienie roli PHP w tym kontekście jest niezbędne dla programistów webowych, aby mogli tworzyć funkcjonalne i bezpieczne aplikacje.

Pytanie 23

Które z poniższych twierdzeń o zasadach programowania w PHP jest poprawne?

A. Jest to język o słabej kontroli typów
B. W nazwach zmiennych nie rozróżnia się wielkości liter
C. Nazwy zmiennych zaczynają się od znaku !
D. Deklaracja zmiennych odbywa się po słowie kluczowym var
Deklaracja zmiennych w PHP odbywa się za pomocą znaku dolara ($), a nie słowa kluczowego 'var'. W przeciwieństwie do niektórych innych języków programowania, takich jak JavaScript, gdzie 'var' jest używane do deklarowania zmiennych, PHP przyjmuje inny sposób. Również w kontekście nazw zmiennych, w PHP wielkość liter ma znaczenie; zmienna $zmienna i $Zmienna są różnymi zmiennymi. To oznacza, że programiści muszą być szczególnie ostrożni przy pisaniu kodu, aby uniknąć niezamierzonych błędów. Ponadto, w PHP niektóre typy zmiennych są ściśle określone przez ich wartości, co może prowadzić do nieporozumień na temat 'słabej kontroli typów'. Ostatecznie, PHP nie jest językiem o ścisłej kontroli typów, lecz dzięki swojej słabej kontroli typów umożliwia programistom większą elastyczność w pracy z danymi. Zrozumienie tych różnic jest kluczowe dla każdego programisty PHP, aby uniknąć typowych pułapek, które mogą prowadzić do błędów w kodzie i trudności w utrzymaniu aplikacji. W praktyce, warto korzystać z dobrych praktyk, takich jak stosowanie typów w PHP 7 i nowszych, które wprowadzają możliwość określania typów dla argumentów funkcji i wartości zwracanych, co zwiększa stabilność i przewidywalność kodu.

Pytanie 24

W języku PHP zapisano fragment kodu. Plik cookie utworzony przy pomocy tego polecenia

setcookie("osoba", "Anna Kowalska", time()+(3600*24));
A. zostanie usunięty po 24 godzinach od jego stworzenia
B. zostanie usunięty po jednej godzinie od momentu jego utworzenia
C. będzie przechowywany na serwerze przez 24 godziny
D. będzie przechowywany na serwerze przez jedną godzinę
W języku PHP funkcja setcookie służy do ustawiania plików cookie w przeglądarce użytkownika. Trzeci parametr tej funkcji określa czas wygaśnięcia cookie w postaci znacznika czasowego UNIX co oznacza liczbę sekund od początku epoki UNIX (01.01.1970). W podanym kodzie użyto funkcji time która zwraca aktualny czas w sekundach i dodano do niego wartość 3600 pomnożoną przez 24. Oznacza to dodanie liczby sekund odpowiadającej jednemu pełnemu dniu (24 godziny x 3600 sekund na godzinę). Takie ustawienie skutkuje tym że plik cookie zostanie usunięty automatycznie z przeglądarki użytkownika po upływie dokładnie jednego dnia od jego stworzenia. Jest to zgodne z najlepszymi praktykami zarządzania sesjami i danymi użytkowników w aplikacjach internetowych ponieważ pozwala na kontrolę nad czasem przechowywania danych wrażliwych. Dzięki temu użytkownicy mogą być pewni że ich dane nie będą przechowywane dłużej niż to konieczne co wpływa na zwiększenie bezpieczeństwa i zaufania do aplikacji.

Pytanie 25

W języku JavaScript zdefiniowano obiekt. Aby uzyskać wartość atrybutu, można użyć następującego zapisu:

obiekt = { q: 1, w: 2, e: 3, r:4 };
A. obiekt::w
B. obiekt:w
C. obiekt.w
D. obiekt->w
Błędne odpowiedzi opierają się na nieprawidłowej interpretacji sposobu dostępu do właściwości obiektów w JavaScript. Notacja 'obiekt:w' nie jest poprawna, ponieważ nie stosuje się dwukropka do uzyskiwania dostępu do właściwości. Dwukropek jest używany w kontekście tworzenia obiektów, gdzie określa parę klucz-wartość, a nie podczas odczytywania wartości. Z kolei notacja 'obiekt::w' w JavaScript również nie ma zastosowania. Podwójny dwukropek nie jest uznawany za prawidłową operację i nie ma zastosowania w kontekście obiektów. Zresztą, w wielu innych językach programowania, takich jak C++ czy Python, używa się podwójnego dwukropka w zupełnie innym kontekście, co może prowadzić do pomyłek. Ostatnia odpowiedź 'obiekt->w' może sugerować wpływy z języków takich jak C czy C++, gdzie operator strzałki '->' jest używany do dostępu do właściwości wskaźnika na obiekt. W JavaScript jednak nie używa się wskaźników, a dostęp do właściwości obiektu odbywa się przez notację kropkową lub notację indeksu. Właściwe zrozumienie tych koncepcji jest kluczowe dla efektywnego programowania w JavaScript, a błędne podejście do notacji prowadzi do frustracji i błędów w kodzie.

Pytanie 26

Który z poniższych fragmentów kodu HTML sformatuje tekst zgodnie z wymaganiami? (zauważ, że słowo "stacji" jest wyświetlane w większej czcionce niż pozostałe słowa w tej linii)

Ilustracja do pytania
A. Odpowiedź 3: C
B. Odpowiedź 2: B
C. Odpowiedź 1: A
D. Odpowiedź 4: D
Odpowiedź B jest prawidłowa ponieważ używa znacznika big do zwiększenia rozmiaru czcionki dla słowa stacji wewnątrz paragrafu. Znacznik big jest standardowym sposobem na zwiększenie tekstu w HTML chociaż obecnie rekomendowane jest stosowanie CSS do takich stylizacji co pozwala na oddzielenie treści od prezentacji. Przykładowo można użyć CSS w stylu inline lub w oddzielnym arkuszu stylów aby uzyskać ten sam efekt co zwiększa elastyczność i spójność projektu. Warto pamiętać że HTML5 wprowadza pewne zmiany i deprecjonuje niektóre znaczniki co wymaga ciągłego aktualizowania wiedzy dewelopera. Znacznik big mimo że działa w większości przeglądarek może być mniej przewidywalny w przyszłości w porównaniu z CSS. Rozdzielenie stylów od struktury dokumentu jest dobrą praktyką programistyczną co ułatwia zarządzanie kodem oraz poprawia dostępność stron internetowych. Pamiętaj by regularnie analizować i aktualizować swoje projekty zgodnie z najnowszymi standardami HTML i CSS.

Pytanie 27

Kwerenda umożliwiająca wprowadzenie zmian w wielu rekordach lub przeniesienie ich za pomocą jednej operacji nosi nazwę kwerendy

A. wybierającej
B. parametrycznej
C. funkcjonalnej
D. krzyżowej
Kwerenda parametryczna to rodzaj kwerendy, która umożliwia użytkownikowi wprowadzenie parametrów w celu wykonania zapytania. Choć parametry mogą być wykorzystywane do modyfikacji danych, nie są one odpowiednie do wprowadzania masowych zmian, ponieważ wymagają interakcji użytkownika w celu ustalenia wartości parametrów. Z kolei kwerenda wybierająca, której celem jest pobieranie danych z bazy, nie wprowadza ani nie modyfikuje informacji, a jedynie prezentuje dane zgodnie z określonymi kryteriami. To sprawia, że nie można jej używać do wprowadzania zmian w rekordach. Kwerenda krzyżowa natomiast, która jest wykorzystywana do analizy danych w formie tabel przestawnych, również nie działa w kontekście masowych aktualizacji lub przeniesień rekordów. Zamiast tego, kwerendy krzyżowe agregują dane w celu analizy, co sprawia, że są one skuteczne do raportowania, ale nie do operacji modyfikujących bazę danych. Wszystkie te trzy typy kwerend mają swoje specyficzne zastosowania, lecz w kontekście pytania, to kwerenda funkcjonalna jest jedynym odpowiednim narzędziem do wprowadzania zmian w wielu rekordach jednocześnie.

Pytanie 28

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

A. tło strony będzie przesuwane razem z zawartością tekstową
B. tło strony zostanie zamocowane, a tekst będzie się poruszał
C. grafika tła będzie się powtarzać (kafelki)
D. grafika tła będzie widoczna w prawym górnym rogu strony
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 29

W trakcie weryfikacji stron internetowych nie uwzględnia się

A. działania hiperłączy
B. błędów w składni kodu
C. zgodności z różnymi przeglądarkami
D. źródła pochodzenia narzędzi edytorskich
Walidacja stron internetowych to proces, który ma na celu zapewnienie, że HTML, CSS oraz inne elementy technologii webowych są zgodne ze standardami określonymi przez W3C (World Wide Web Consortium). W kontekście walidacji nie bada się źródła pochodzenia narzędzi edytorskich, ponieważ te narzędzia, takie jak edytory tekstu czy IDE (Integrated Development Environment), są jedynie medium do tworzenia kodu, a nie jego treści. Z perspektywy walidacji, kluczowe jest, aby kod był syntaktycznie poprawny oraz spełniał standardy interoperability, takie jak HTML5 czy CSS3. Przykładem walidacji może być użycie narzędzi takich jak W3C Validator, które analizują kod strony i wskazują błędy składniowe, problemy z dostępnością oraz niezgodności z różnymi przeglądarkami. Dzięki walidacji, developers mogą zapewnić, że ich strony będą działały poprawnie na różnych urządzeniach i przeglądarkach, co wpływa na lepsze doświadczenia użytkowników. Walidacja jest zatem kluczowym krokiem w procesie tworzenia stron internetowych, zapewniającym ich jakość i zgodność ze światowymi standardami.

Pytanie 30

Do jakich działań można wykorzystać program FileZilla?

A. kompilacji skryptu na stronie.
B. publikacji strony internetowej.
C. walidacji strony internetowej.
D. debugowania skryptu na stronie.
FileZilla jest popularnym klientem FTP (File Transfer Protocol), który służy do przesyłania plików między lokalnym komputerem a serwerem. Publikacja strony internetowej polega na przesyłaniu plików HTML, CSS, JavaScript i innych zasobów związanych z witryną na serwer, aby były one dostępne w Internecie. Używając FileZilla, użytkownik może łatwo połączyć się z serwerem poprzez protokół FTP, co pozwala na wygodne zarządzanie plikami, ich przesyłanie oraz organizowanie folderów na serwerze. Przykładowo, po edytowaniu strony lokalnie na komputerze, można za pomocą FileZilla przesłać zmodyfikowane pliki na serwer w kilka kliknięć, co przyspiesza proces aktualizacji witryny. Zgodnie z dobrymi praktykami branżowymi, ważne jest także ustawienie odpowiednich uprawnień do plików oraz regularne tworzenie kopii zapasowych, co zwiększa bezpieczeństwo publikowanych treści. FileZilla obsługuje również protokoły SFTP i FTPS, które zapewniają dodatkowe warstwy bezpieczeństwa podczas transferu danych, co jest istotne w kontekście ochrony danych użytkowników i integracji z różnymi usługami hostingowymi.

Pytanie 31

Na podstawie relacji przedstawionej na ilustracji, można stwierdzić, że jest to relacja

Ilustracja do pytania
A. wiele do wielu pomiędzy kluczami głównymi obu tabel
B. jeden do jednego, gdzie obie tabele mają przypisane klucze obce
C. jeden do wielu, gdzie kluczem obcym jest pole w tabeli kadra
D. jeden do wielu, gdzie kluczem obcym jest pole w tabeli uslugi
Odpowiedzi błędne opierają się na niewłaściwym zrozumieniu relacji w bazach danych. Pierwsza z błędnych koncepcji sugeruje relację jeden do wielu, gdzie kluczem obcym jest pole w tabeli kadra, co jest odwrotne do przedstawionej struktury, gdyż w rzeczywistości pole kadra_id znajduje się w tabeli uslugi, wskazując na tabelę kadra. Relacja jeden do jednego, w której obie tabele mają klucze obce, oznaczałoby, że każdy rekord w jednej tabeli jest ściśle powiązany z jednym rekordem w drugiej, co nie jest przypadkiem dla tych danych. Takie podejście zwykle stosuje się, gdy tabele przechowują różne aspekty tego samego podmiotu, co nie jest odzwierciedlone na diagramie. Relacja wiele do wielu między kluczami głównymi obu tabel wymagałaby użycia dodatkowej tabeli łączącej, co umożliwiałoby powiązanie wielu rekordów każdej z tabel z wieloma rekordami drugiej, co również nie jest przedstawione tutaj. Typową pomyłką przy analizie tego typu relacji jest nieuwzględnienie struktury kluczy obcych i ich roli w łączeniu danych poprzez zrozumienie ich jako jedynie strukturalne powiązania, zamiast narzędzi umożliwiających integralność i spójność danych w bazie. Ważne jest, aby zawsze analizować kierunek relacji i rolę kluczowych pól w kontekście aplikacji i modelu danych, co zapobiega błędnym interpretacjom i wspiera prawidłowe projektowanie bazy danych, zgodnie z jej wymaganiami funkcjonalnymi i wydajnościowymi.

Pytanie 32

Które z poleceń przyznaje użytkownikowi uczen najniższe uprawnienia w kontekście modyfikacji danych oraz struktury tabeli?

A. GRANT ALTER, SELECT ON szkola.przedmioty TO uczen;
B. GRANT INSERT, DROP ON szkola.przedmioty TO uczen;
C. GRANT SELECT ON szkola.przedmioty TO uczen;
D. GRANT DROP ON szkola.przedmioty TO uczen;
Patrząc na błędne odpowiedzi, można zauważyć, że większość z nich przyznaje użytkownikowi 'uczen' zbyt wiele uprawnień, które mogą prowadzić do niebezpiecznych sytuacji. Na przykład, opcja GRANT DROP ON szkola.przedmioty TO uczen pozwala na usunięcie całej tabeli 'przedmioty', co, moim zdaniem, jest zdecydowanie przesadą dla ucznia. Podobnie, jeśli dajemy GRANT ALTER, SELECT ON szkola.przedmioty TO uczen, to on może zmieniać strukturę tabeli, co dla kogoś, kto dopiero się uczy, nie jest dobrym pomysłem, bo mogą się pojawić błędy i problemy z danymi. Uprawnienia GRANT INSERT, DROP ON szkola.przedmioty TO uczen także są kiepskim pomysłem, bo taki użytkownik mógłby dodawać nowe wiersze czy usuwać istniejące, co znowu zagraża integralności danych. Często myślimy, że im więcej uprawnień damy, tym lepiej, ale w praktyce taka szeroka swoboda może przynieść więcej szkody niż pożytku. Dlatego ważne jest, żeby stosować zasadę minimalnych uprawnień i dokładnie przemyśleć, co naprawdę potrzebne, żeby uczeń mógł spokojnie uczyć się przedmiotów.

Pytanie 33

W relacyjnych bazach danych, gdy dwie tabele są ze sobą powiązane przez ich klucze główne, mamy do czynienia z relacją

A. n .. 1
B. n .. n
C. 1 .. n
D. 1 .. 1
Odpowiedź 1 .. 1 jest prawidłowa, ponieważ opisuje relację, w której każdemu rekordowi w jednej tabeli odpowiada dokładnie jeden rekord w drugiej tabeli. Taka relacja jest często wykorzystywana w systemach baz danych, gdzie klucz główny jednej tabeli jest jednocześnie kluczem obcym w drugiej tabeli. Przykładem może być relacja między tabelą 'Użytkownicy' a tabelą 'Profile', gdzie każdy użytkownik ma dokładnie jeden profil, a każdy profil jest przypisany do jednego użytkownika. W kontekście standardów baz danych, relacje 1 .. 1 pomagają w eliminacji redundancji danych i zapewniają integralność danych. Dobrą praktyką jest stosowanie takich relacji w sytuacjach, gdy dane mogą być logicznie podzielone, ale nie powinny być powielane. Inne podejścia, jak relacje 1 .. n czy n .. n, mogą prowadzić do większej złożoności w modelowaniu danych oraz potencjalnych problemów z integralnością danych, dlatego stosowanie relacji 1 .. 1 jest korzystne dla przejrzystości i efektywności struktury bazy danych.

Pytanie 34

Globalne zmienne do przechowywania informacji o ciasteczkach oraz sesjach: $_COOKIE oraz $_SESSION stanowią część języka

A. JavaScript
B. PHP
C. C#
D. Perl
Odpowiedzi C# i JavaScript są niewłaściwe, ponieważ te języki programowania nie posiadają natywnej obsługi dla $_COOKIE oraz $_SESSION, które są specyficzne dla PHP. C# jest językiem wykorzystywanym głównie w kontekście aplikacji webowych ASP.NET, gdzie zarządzanie stanem sesji odbywa się w zupełnie inny sposób, zazwyczaj przy użyciu obiektów typu SessionState, które są zintegrowane z serwerem. Użycie ciasteczek w C# wymaga od programisty ręcznego zarządzania headerami HTTP i cookie, co może być bardziej złożone i wymagające. Z kolei JavaScript, będący językiem skryptowym działającym po stronie klienta, nie ma bezpośredniego dostępu do sesji serwera ani nie operuje na $_COOKIE, które są mechanizmem PHP. JavaScript może korzystać z ciasteczek, ale jego zastosowanie w zakresie utrzymywania sesji jest ograniczone, ponieważ nie oferuje on zarządzania stanem aplikacji na poziomie serwera. W rzeczywistości, programiści mogą mylić rolę ciasteczek i sesji, sądząc, że oba mechanizmy są identyczne, podczas gdy różnią się one w kontekście przechowywania i bezpieczeństwa danych. Właściwe zrozumienie tych różnic jest kluczowe dla efektywnego projektowania aplikacji webowych, dlatego ważne jest, aby odnosić się do odpowiednich dokumentacji i standardów dla każdego z używanych języków.

Pytanie 35

Kod CSS można włączyć do dokumentu HTML, używając znacznika

A. <head>
B. <body>
C. <style>
D. <meta>
Odpowiedź <style> jest prawidłowa, ponieważ ten znacznik HTML jest dedykowany do osadzania kodu CSS wewnątrz dokumentu HTML. Znacznik <style> powinien być umieszczony w sekcji <head> dokumentu, co umożliwia przeglądarkom interpretację stylów przed renderowaniem treści strony. Dzięki temu można definiować różne reguły CSS, które modyfikują wygląd elementów HTML, co jest kluczowe w tworzeniu estetycznych i funkcjonalnych stron internetowych. Przykładowo, można użyć <style> do określenia koloru tła, rozmiaru czcionki czy marginesów. Ważne jest, aby stosować zasady dotyczące kaskadowości, ponieważ style zdefiniowane w <style> mają priorytet nad stylem zewnętrznym, jeśli są tak samo specyficzne. Dodatkowo, korzystanie z <style> jest zgodne z zasadami dobrych praktyk, takich jak unikanie nadmiarowego ładowania zewnętrznych plików CSS w przypadku prostych projekty, co przyspiesza czas ładowania strony.

Pytanie 36

Technika projektowania algorytmów, która polega na dzieleniu problemu na dwa lub więcej mniejszych podproblemów, aż do momentu gdy fragmenty staną się na tyle proste, że można je rozwiązać bezpośrednio, to

A. sito Eratostenesa
B. dziel i zwyciężaj
C. słowa Fibonacciego
D. sortowanie przez wybór
Metoda "dziel i zwyciężaj" jest jedną z podstawowych technik projektowania algorytmów, która polega na rozwiązywaniu problemów poprzez dzielenie ich na mniejsze, bardziej zarządzalne podproblemy. Proces ten można opisać w trzech krokach: dzielenie, rozwiązywanie i łączenie wyniku. W praktyce oznacza to, że algorytm najpierw dzieli dany problem na dwa lub więcej podproblemów, następnie rozwiązuje każdy z nich osobno, a na końcu łączy zebrane rozwiązania, aby uzyskać odpowiedź na pierwotny problem. Przykładem może być algorytm sortowania szybkim (Quicksort), który wykorzystuje tę metodę poprzez wybór pivota, podział zbioru na mniejsze części i rekurencyjne sortowanie. Kolejnym przykładem jest algorytm mnożenia dużych liczb, taki jak algorytm Karatsuby. Dziel i zwyciężaj jest również stosowane w zaawansowanych technikach optymalizacji i w algorytmach wyszukiwania, co czyni tę metodę niezwykle uniwersalną i efektywną w wielu dziedzinach informatyki.

Pytanie 37

Przedstawiona ikona funkcji edytora grafiki rastrowej o nazwie "różdżka" umożliwia

Ilustracja do pytania
A. zaznaczenie obszaru na podstawie koloru.
B. wybiórcze rozsmarowywanie koloru za pomocą pędzla.
C. pobranie wskazanego koloru i ustawienie go jako aktywny.
D. odręczne zaznaczanie obszarów przez przeciąganie po nich kursora.
Dobrze! Odpowiedź jest poprawna. Narzędzie 'różdżka' w edytorze grafiki rastrowej służy do zaznaczania obszarów na podstawie koloru. Jest to bardzo przydatne, gdy chcemy zaznaczyć obszar o jednolitym kolorze lub gradientem kolorów. Działa ona na zasadzie kliknięcia w dany punkt obrazu, a następnie automatycznego zaznaczenia pikseli o kolorze zbliżonym do tego, w który kliknęliśmy. Użycie tej funkcji jest zdecydowanie efektywniejsze niż ręczne zaznaczanie obszarów, szczególnie dla skomplikowanych kształtów lub dużych obszarów o podobnej barwie. Ponadto, narzędzie to jest zgodne ze standardami i dobrą praktyką w branży edycji grafiki rastrowej, a jego umiejętne wykorzystanie może znacznie przyspieszyć prace edycyjne i zapewnić lepszą precyzję.

Pytanie 38

Jakim sposobem można w języku PHP dokumentować blok komentarza składający się z wielu linii?

A. //
B. <!-- -->
C. #
D. /* */
Komentarze w języku PHP mogą być tworzone na kilka sposobów, jednak jedynie sposób wykorzystujący /* */ pozwala na zapis bloku komentarza rozciągającego się na wiele linii. Jest to szczególnie użyteczne w sytuacjach, gdy programista chce umieścić obszerniejsze wyjaśnienia dotyczące kodu, które nie ograniczają się do jednej linii. Przykładem zastosowania może być opis skomplikowanej funkcji lub sekcji kodu, gdzie istotne jest podanie kontekstu lub dodatkowych informacji. Na przykład: /* * Funkcja obliczająca sumę dwóch liczb. * Przyjmuje dwa argumenty: a oraz b. */ function suma($a, $b) { return $a + $b; } Stosowanie bloku komentarza zgodnie z tym stylem jest zgodne z najlepszymi praktykami programowania, gdyż poprawia czytelność kodu oraz ułatwia jego późniejsze utrzymanie. Z punktu widzenia standardów kodowania, szczególnie w większych projektach, dobrze opisane fragmenty kodu mogą zminimalizować ryzyko błędów oraz ułatwić pracę zespołową.

Pytanie 39

W języku PHP symbol "//" oznacza

A. operator dzielenia całkowitego.
B. początek komentarza jednoliniowego
C. operator alternatywy.
D. początek programu.
Znak "//" w PHP to początek komentarza jednoliniowego. Komentarze to naprawdę ważna część kodowania, bo dzięki nim można dodawać notatki, które wyjaśniają, co się dzieje w kodzie. Ułatwia to późniejsze zrozumienie przy pracy nad projektem. Kiedy programista wpisuje "//", mówi interpreterowi PHP, żeby zignorował wszystko, co znajduje się w tej linii po tym znaku. Dzięki temu można opisywać funkcje czy klasy albo tymczasowo wyłączać część kodu, gdy testujemy różne rzeczy. To dobra praktyka, bo czytelność i dokumentacja kodu są kluczowe, szczególnie w większych projektach. Przykładowo, można zobaczyć taki komentarz: // Funkcja oblicza sumę dwóch liczb function suma($a, $b) { return $a + $b; } Dzięki takiemu komentarzowi inny programista szybko zrozumie, co ta funkcja robi, co jest super ważne w sytuacjach, gdy w zespole jest więcej osób.

Pytanie 40

Model, w którym wszystkie informacje są zgromadzone w jednej tabeli, określa się jako struktura prostych baz danych

A. hierarchicznym
B. sieciowym
C. relacyjnym
D. jednorodnym
Model jednorodny, znany też jako model płaskiej tabeli, to taka struktura bazy, w której trzymamy wszystkie dane w jednej tabeli. To najprostsza opcja do zrozumienia i wdrożenia, dlatego świetnie nadaje się do małych i prostych aplikacji. W tym modelu dane są poukładane w wiersze i kolumny – każdy wiersz to jakiś rekord, a kolumny to różne cechy lub atrybuty tego rekordu. Na przykład, wyobraź sobie tabelę z informacjami o książkach: każda książka to osobny wiersz, a kolumny mogą zawierać tytuł, autora, rok wydania czy ISBN. Oczywiście, ma to swoje ograniczenia, zwłaszcza jeśli chodzi o wydajność i zarządzanie dużymi zbiorami danych. Dlatego w praktyce często przechodzi się na bardziej zaawansowane modele, jak relacyjny. Mimo to, model jednorodny sprawdza się w prototypowaniu albo tam, gdzie liczy się prostota i szybki dostęp do danych. Warto też wiedzieć, że nie korzysta się tu do końca ze standardów typu SQL, bo nie ma relacji między danymi.