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: 6 maja 2026 11:04
  • Data zakończenia: 6 maja 2026 11:47

Egzamin zdany!

Wynik: 23/40 punktów (57,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

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

A. walidacji strony internetowej.
B. debugowania skryptu na stronie.
C. publikacji strony internetowej.
D. kompilacji 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 2

W JavaScript, wynik operacji przyjmuje wartość NaN, gdy skrypt usiłuje przeprowadzić

A. operację arytmetyczną, a zawartość zmiennej była tekstem
B. operację arytmetyczną na dwóch dodatnich zmiennych liczbowych
C. funkcję, która sprawdza długość stringa, a zawartość zmiennej była liczba
D. funkcję parseInt zamiast parseFloat na zmiennej numerycznej
W pytaniu zwrócono uwagę na różne operacje, które mogą prowadzić do uzyskania wartości NaN w JavaScript. Jednak nie wszystkie wymienione przypadki są związane z generowaniem tej wartości. Przykładowo, korzystanie z parseFloat zamiast parseInt przy konwersji zmiennych liczbowych nie ma wpływu na wynik operacji arytmetycznych i nie prowadzi do NaN. Funkcja parseFloat konwertuje ciąg znaków na liczbę zmiennoprzecinkową, podczas gdy parseInt konwertuje na liczbę całkowitą. W obu przypadkach, jeśli ciąg jest odpowiedni, wynik zawsze będzie liczbą, a nie NaN. Kolejną sytuacją jest sprawdzanie długości napisu; jeśli zmienna jest liczbą, operacje związane z długością nie wpływają na typ danych, więc nie powinny generować NaN. Trzeci przypadek, czyli działanie arytmetyczne na dwóch zmiennych liczbowych dodatnich, również nie prowadzi do uzyskania NaN, ponieważ operacje są poprawnie wykonywane. Zrozumienie tych koncepcji jest niezwykle ważne, aby unikać typowych błędów i nieporozumień, które mogą wystąpić w kodzie. Kluczowym zagadnieniem w programowaniu w JavaScript jest zarządzanie typami danych, a ich niewłaściwe użycie może prowadzić do trudnych do zdiagnozowania błędów w aplikacjach.

Pytanie 3

W bazie danych znajduje się tabela artykuły z kolumnami: nazwa, typ, producent, cena. Jakie polecenie należy użyć, aby wyświetlić wszystkie nazwy artykułów tylko o typie pralka, których cena mieści się w przedziale od 1000 PLN do 1500 PLN?

A. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500
B. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena FROM 1000 TO 1500
C. SELECT nazwa FROM artykuły WHERE typ='pralka' OR cena BETWEEN 1000 AND 1500
D. SELECT nazwa FROM artykuły WHERE typ='pralka' OR cena BETWEEN 1000 OR 1500
Jak chcesz wyciągnąć nazwy artykułów tylko dla pralek, które kosztują między 1000 a 1500 PLN, to musisz użyć polecenia SELECT z dobrymi warunkami. W SQL klauzula WHERE jest właśnie do tego, żeby określić, jakie dane chcesz wyciągnąć z tabeli. Ważne, żeby użyć operatora AND, bo musisz połączyć dwa warunki: typ musi być 'pralka', a cena musi mieścić się w tym przedziale. W tym wypadku operator BETWEEN będzie najlepszy, bo pozwala łatwo ustawić zakres wartości bez zawirowań z innymi operatorami. Takie zapytanie: SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500, zwróci wszystkie nazwy, które spełniają te kryteria. Dzięki BETWEEN masz pewność, że dolna i górna granica też są uwzględniane, co jest zgodne z zasadami SQL, a to z kolei sprawia, że przeszukiwanie danych jest efektywne. Dzięki temu zapytaniu dostajesz dokładne wyniki, co w zarządzaniu bazą danych jest mega ważne.

Pytanie 4

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

A. z zestawu xx-small, x-small, smali, medium, large, x-large, xx-large
B. tylko smali, smaller, large, larger
C. wyłącznie smali, medium, large
D. jedynie big i smali
Zrozumienie różnych wartości, które mogą być zastosowane w właściwości font-size, jest kluczowe dla efektywnego stylizowania tekstu w CSS. Pierwsza z nieprawidłowych odpowiedzi ogranicza się do zaledwie czterech terminów: smali, smaller, large oraz larger, co jest niewłaściwe, ponieważ właściwość font-size posiada znacznie szerszy zestaw wartości. Warto zauważyć, że 'smaller' oraz 'larger' są względnymi jednostkami, które odnoszą się do rozmiaru czcionki elementu nadrzędnego, a nie są one samodzielnymi wartościami słownikowymi. Dodatkowo, w odpowiedzi mowa jest o 'medium' i 'large', ale pomija się inne ważne terminy. Utrata kontekstu tych wartości prowadzi do ograniczonego zrozumienia typografii w web designie. Następna błędna odpowiedź zawiera jedynie trzy wartości: smali, medium i large, co nie pokrywa pełnego zestawu opcji dostępnych w CSS. Można zauważyć, że brak uwzględnienia pozostałych terminów, takich jak xx-small czy x-large, ogranicza możliwości projektanta w zakresie elastyczności i precyzji stylizacji tekstu. Tego rodzaju niedopatrzenie może prowadzić do niejednolitego wyglądu tekstów na różnych urządzeniach. Ostatnia fałszywa odpowiedź, która sugeruje, że font-size może przyjmować tylko wartości big i smali, jest całkowicie błędna. 'Big' nie jest uznawane za standardową wartość w CSS, co pokazuje brak zrozumienia podstawowych zasad dotyczących typografii. Przykłady te ilustrują, jak ważne jest zapoznanie się z pełnym zakresem opcji dostępnych w CSS oraz jak niewłaściwe interpretacje mogą prowadzić do nieefektywnego stylizowania elementów tekstowych.

Pytanie 5

W CSS, aby ustawić wcięcie pierwszej linii akapitu na 30 pikseli, należy użyć następującego zapisu

A. p { text-indent: 30px; }
B. p { line-indent: 30px; }
C. p { text-spacing: 30px; }
D. p { line-height: 30px; }
Odpowiedź p { text-indent: 30px; } jest poprawna, ponieważ właściwość text-indent w CSS służy do definiowania wcięcia pierwszej linii tekstu w elemencie blokowym, takim jak akapit (p). Umożliwia to nadanie tekstowi estetycznego wyglądu oraz zwiększenie czytelności, szczególnie w dłuższych blokach tekstu. Wartość 30px oznacza, że pierwsza linia akapitu zostanie przesunięta o 30 pikseli w prawo względem pozostałych linii. Przykładowo, jeśli mamy długi akapit z tekstem, zastosowanie wcięcia może pomóc w wyodrębnieniu go wizualnie, co sprzyja lepszemu zrozumieniu zawartości przez użytkowników. Warto także dodać, że standardy CSS są regularnie aktualizowane, a stosowanie dobrych praktyk, takich jak odpowiednie formatowanie tekstu, ma kluczowe znaczenie w projektowaniu responsywnych i przyjaznych dla użytkownika stron internetowych. Wykorzystanie text-indent jest jedną z technik, które przyczyniają się do poprawy UX (User Experience).

Pytanie 6

Jaki typ powinien być wykorzystany, aby pole danych mogło przyjmować liczby zmiennoprzecinkowe?

A. FLOAT
B. VARCHAR
C. INT
D. CHAR
Typ danych FLOAT jest idealnym rozwiązaniem do przechowywania liczb rzeczywistych, ponieważ umożliwia reprezentację wartości z przecinkiem dziesiętnym. W przeciwieństwie do typu INT, który obsługuje jedynie liczby całkowite, FLOAT potrafi przechowywać znacznie szerszy zakres wartości, w tym liczby z miejscami po przecinku. Użycie typu FLOAT jest szczególnie korzystne w aplikacjach wymagających precyzyjnych obliczeń, takich jak kalkulatory, systemy finansowe czy analizy danych. Przykładowo, w systemach baz danych SQL, definiując kolumnę jako FLOAT, możemy przechowywać wartości takie jak 3.14, -0.001 lub 2.71828. Standard SQL określa, że FLOAT może posiadać różne precyzje, co pozwala na dostosowanie pamięci do potrzeb konkretnej aplikacji. W praktyce, FLOAT jest wykorzystywany w złożonych obliczeniach inżynieryjnych, gdzie precyzyjne wartości są kluczowe dla wyników obliczeń.

Pytanie 7

Głównym celem systemu CMS jest oddzielenie treści portalu informacyjnego od jego wyglądu. Taki efekt osiąga się przez generowanie zawartości

A. ze statycznych plików HTML oraz wyglądu za pomocą technologii FLASH
B. ze statycznych plików HTML oraz wyglądu ze zdefiniowanego szablonu
C. z bazy danych oraz wyglądu za pomocą atrybutów HTML
D. z bazy danych oraz wyglądu ze zdefiniowanego szablonu
Wybór błędnych odpowiedzi wskazuje na niepełne zrozumienie architektury systemów zarządzania treścią. Odpowiedzi sugerujące generowanie zawartości z 'statycznych plików HTML' nie uwzględniają kluczowej zasady, jaką jest elastyczność i efektywność dynamicznego zarządzania treścią. Statyczne pliki HTML są trudne do aktualizacji, co powoduje, że zmiany w treści są czasochłonne i zwiększają ryzyko błędów. Przykładowo, w przypadku wprowadzenia istotnych zmian w treści, takich jak aktualizacje informacji o produktach, każda zmiana wymagałaby ręcznej edycji wielu plików, co jest niepraktyczne i nieefektywne. Ponadto, wykorzystanie technologii FLASH do generowania wyglądu jest przestarzałym podejściem, które nie jest już wspierane przez większość nowoczesnych przeglądarek internetowych. FLASH nie tylko ogranicza dostępność treści na urządzeniach mobilnych, ale także stwarza zagrożenia związane z bezpieczeństwem. Ostatecznie, podejścia te nie są zgodne z najlepszymi praktykami branżowymi, które kładą nacisk na wykorzystanie responsywnych, łatwych w zarządzaniu szablonów i dynamicznych baz danych, co jest kluczowe dla sukcesu nowoczesnych aplikacji internetowych.

Pytanie 8

W języku HTML zapisano formularz. Który z efektów działania poniższego kodu zostanie wyświetlony przez przeglądarkę, zakładając, że w pierwsze pole użytkownik wpisał wartość "Przykładowy tekst"?

<form>
    <textarea rows="3" cols="30"></textarea><br>
    <input type="checkbox"> Opcja1<br>
    <input type="checkbox"> Opcja2
</form>
Ilustracja do pytania
A. Efekt 3.
B. Efekt 1.
C. Efekt 2.
D. Efekt 4.
Twoja odpowiedź jest poprawna. Wybrałeś odpowiedź 'Efekt 2', która jest zgodna z zachowaniem formularza HTML w opisanym scenariuszu. Formularz zawiera pole tekstowe i dwa pola typu checkbox. Kiedy wpiszesz do pola tekstowego wartość 'Przykładowy tekst' i wyświetlisz formularz w przeglądarce, zobaczysz ten tekst w polu tekstowym oraz dwa pola wyboru typu checkbox poniżej z etykietami 'Opcja1' i 'Opcja2'. To dokładnie taki układ, co pokazuje Efekt 2. Tworzenie formularzy HTML to ważna umiejętność w projektowaniu stron internetowych. Pozwalają one na interakcję z użytkownikiem oraz zbieranie od niego informacji. Pamiętaj, że dobry formularz powinien być intuicyjny w użyciu i jasno prezentować swoje funkcje użytkownikowi.

Pytanie 9

Jaką technologię zaleca się przy budowie witryn WWW, aby użytkownicy bez umiejętności programistycznych mogli samodzielnie wprowadzać zmiany w treści bez kodowania?

A. SEO
B. CMS
C. FTP
D. SSL
SEO, czyli optymalizacja dla wyszukiwarek, to temat, który dotyczy poprawy widoczności strony w wynikach wyszukiwania. Choć jest szalenie ważne w marketingu internetowym, to nie ma bezpośredniego związku z tym, jak zarządzać treścią na stronie. Użytkownicy nie mogą zmieniać treści za pomocą SEO; chodzi raczej o to, żeby to, co już jest, było bardziej przyjazne dla robotów wyszukiwarek. Trzeba pamiętać, że jeśli się skupiamy na SEO, ale nie mamy porządnego CMS-a, to aktualizacja treści może być trudna, co w dłuższym czasie źle wpłynie na pozycjonowanie. FTP, czyli protokół transferu plików, jest do przesyłania plików między komputerami a serwerami, ale żeby z niego korzystać, trzeba znać strukturę plików, więc dla kogoś bez technicznych umiejętności to nie jest rozwiązanie. SSL, czyli bezpieczne połączenia, to ważna rzecz, ale z zarządzaniem treścią nie ma za bardzo wspólnego. Użytkownicy mogą się pogubić, myśląc, że te technologie wystarczą do zarządzania treścią, co może wprowadzać w błąd i powodować, że zasoby internetu będą wykorzystywane nieefektywnie.

Pytanie 10

Którego znacznika nie powinno się umieszczać w nagłówku dokumentu HTML?

A. <link>
B. <meta>
C. <h2>
D. <title>
Znacznik <h2> jest używany do definiowania nagłówków drugiego poziomu w dokumencie HTML. Jest to element, który powinien być umieszczony w treści dokumentu, a nie w jego nagłówku. Wartości semantyczne nagłówków od <h1> do <h6> są istotne z punktu widzenia SEO oraz dostępności stron internetowych. Poprawne użycie nagłówków pomaga w organizacji treści oraz umożliwia lepszą nawigację zarówno dla użytkowników, jak i dla wyszukiwarek internetowych. Przykładowo, jeśli mamy artykuł na blogu, <h1> może być tytułem artykułu, <h2> może być użyte do oznaczenia sekcji, a <h3> do podsekcji. Użycie tych znaczników w odpowiednich miejscach nie tylko poprawia strukturę dokumentu, ale także przyczynia się do lepszego indeksowania treści przez roboty wyszukiwarek. Zgodnie z wytycznymi W3C, nagłówki powinny być stosowane hierarchicznie, co oznacza, że nie możemy stosować <h2> przed <h1>.

Pytanie 11

Wskaż zapis warunku w języku JavaScript, który ma na celu sprawdzenie, czy spełniony jest przynajmniej jeden z poniższych przypadków:
1) dowolna liczba naturalna a jest liczbą trzycyfrową
2) dowolna liczba całkowita b ma wartość ujemną

A. ((a > 99) && (a < 1000)) || (b < 0)
B. ((a > 99) || (a < 1000)) && (b < 0)
C. ((a > 99) || (a < 1000)) || (b < 0)
D. ((a > 99) && (a < 1000)) && (b < 0)
Odpowiedź ((a > 99) && (a < 1000)) || (b < 0) jest poprawna, ponieważ spełnia wymagania dotyczące sprawdzenia dwóch warunków. Pierwsza część warunku, czyli (a > 99) && (a < 1000), precyzyjnie weryfikuje, czy liczba 'a' jest trzycyfrowa. Wartości, które spełniają ten warunek, to liczby od 100 do 999. Druga część warunku, czyli (b < 0), efektywnie sprawdza, czy liczba 'b' jest liczbą ujemną. Połączenie tych dwóch warunków za pomocą operatora logicznego OR (||) oznacza, że wystarczy, iż jeden z nich będzie prawdziwy, aby cały warunek został uznany za spełniony. To podejście jest zgodne z dobrymi praktykami programowania, gdzie klarowność i zwięzłość kodu są kluczowe, co ułatwia jego późniejsze utrzymanie. W zastosowaniach praktycznych, taki warunek mógłby być użyty w walidacji danych wejściowych, na przykład w formularzach, gdzie użytkownicy wprowadzają różne wartości, a program musi zapewnić, że przynajmniej jeden z warunków jest spełniony.

Pytanie 12

Jaką szerokość zaplanowano dla treści strony, bazując na podanej definicji CSS?

body {
  border: 2px;
  height: 600px;
  width: 560px;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
A. 2 px
B. 560 px
C. 600 px
D. 640 px
Gratulacje, udzieliłeś poprawnej odpowiedzi. W definicji CSS dla elementu body, szerokość ustawiono na 560 px. Właściwość box-sizing: border-box, gwarantuje, że szerokość ta obejmuje również obramowanie. Dlatego, w praktyce, szerokość strony pozostawiona na treść wynosi 560 px. Wartości te są bardzo ważne przy projektowaniu stron internetowych, szczególnie przy tworzeniu responsywnych layoutów, gdzie musimy precyzyjnie kontrolować szerokość i rozmieszczenie elementów. Pamiętaj, że wykorzystanie odpowiednich jednostek i precyzyjne definiowanie wymiarów jest kluczowe dla zachowania poprawnej struktury strony. Dobrym nawykiem jest również stosowanie właściwości box-sizing: border-box, która ułatwia kontrolę nad rozmiarem elementów, zwłaszcza przy komplikowanych układach strony.

Pytanie 13

Na ilustracji pokazano tabelę z połączonymi komórkami. Jakie atrybuty scalania zastosowano, aby uzyskać ten efekt?

Ilustracja do pytania
A. colspan w drugim wierszu i pierwszej komórce oraz rowspan w trzecim wierszu i czwartym wierszu
B. rowspan w drugim wierszu i pierwszej komórce oraz colspan w trzecim wierszu, trzeciej komórce
C. colspan w drugim wierszu we wszystkich trzech komórkach oraz rowspan w trzecim wierszu ostatniej komórce
D. colspan w drugim wierszu i pierwszej komórce oraz rowspan w trzecim wierszu, trzeciej komórce
Niepoprawne odpowiedzi wynikają z błędnego przypisania atrybutów colspan i rowspan w tabeli HTML. Rozważając zastosowanie rowspan w drugim wierszu i pierwszej komórce, błędnie zakłada się, że komórka ta miałaby rozciągać się na kilka wierszy, co nie jest prawdą dla przedstawionego układu. Zastosowanie colspan w trzecim wierszu i trzeciej komórce również jest nieprawidłowe, gdyż komórki te nie są rozciągane poziomo na kilka kolumn. Kolejne błędne przypisanie to colspan we wszystkich trzech komórkach drugiego wiersza - w rzeczywistości tylko jedna z komórek wymaga takiego scalania, aby uzyskać pokazany efekt. Podobnie, użycie rowspan w czwartym wierszu nie znajduje zastosowania w załączonym obrazie, gdzie komórki są jednolicie rozmieszczone. Takie błędy w zrozumieniu mechaniki tabel HTML mogą wynikać z braku doświadczenia z praktycznym zastosowaniem tych atrybutów. Ważne jest, aby dokładnie analizować strukturę tabel i zrozumieć specyfikę ich projektowania, co pozwala na poprawne i efektywne wykorzystanie dostępnych narzędzi. Edukacja w zakresie semantyki HTML i praktyczne ćwiczenia mogą znacznie poprawić umiejętność tworzenia i zarządzania złożonymi układami tabelarycznymi na stronach internetowych, a także przyczynić się do lepszej dostępności i responsywności stron.

Pytanie 14

Który z poniższych formatów plików graficznych wspiera przejrzystość?

A. BMP
B. NEF
C. PNG
D. JPG
Format PNG (Portable Network Graphics) jest jednym z najpopularniejszych formatów plików graficznych obsługujących przezroczystość. Jego główną zaletą jest możliwość zachowania kanału alfa, który umożliwia tworzenie obrazów z przezroczystymi elementami. PNG wykorzystuje bezstratną kompresję, co oznacza, że jakość obrazu nie ulega pogorszeniu podczas zapisywania i otwierania pliku. Format ten jest szczególnie ceniony w aplikacjach internetowych, ponieważ pozwala na uzyskanie estetycznych efektów, takich jak cienie, przezroczystość i delikatne przejścia kolorów. Warto również zauważyć, że PNG obsługuje głębię kolorów do 48 bitów, co umożliwia uzyskanie bogatych i szczegółowych obrazów. Standard PNG został opracowany w 1996 roku jako alternatywa dla formatu GIF, który był ograniczony do 256 kolorów oraz nie obsługiwał przezroczystości w sposób, który byłby zadowalający dla projektantów. Dzięki swoim właściwościom, PNG jest szeroko stosowany w grafice komputerowej, w tym w tworzeniu logo, ikon oraz w elementach interfejsów użytkownika, a także w fotografii cyfrowej, gdzie zachowanie jakości jest kluczowe.

Pytanie 15

Jakim słowem kluczowym w języku z rodziny C można przypisać alternatywną nazwę dla już istniejącego typu danych?

A. typedef
B. union
C. switch
D. enum
Wybór błędnych słów kluczowych wskazuje na nieporozumienie dotyczące podstawowych koncepcji typów danych w języku C. 'enum' jest używane do definiowania enumeracji, które pozwalają na tworzenie zbioru nazwanych stałych, co jest użyteczne w kontekście ograniczonego zestawu wartości, ale nie ma zastosowania w nadawaniu alternatywnych nazw dla istniejących typów. 'union' natomiast definiuje typ, który może przechowywać różne typy danych w tym samym miejscu pamięci, lecz również nie ma na celu zmiany nazwy typu. 'switch' to konstrukcja sterująca, która nie ma nic wspólnego z definiowaniem typów danych, a służy do wyboru i wykonania jednego z wielu bloków kodu na podstawie wartości wyrażenia. Te błędne odpowiedzi mogą sugerować, że użytkownik nie zrozumiał roli, jaką pełnią różne słowa kluczowe w języku C. Często mylnie zakłada się, że 'enum' czy 'union' mogą pełnić funkcję, która w rzeczywistości przypisana jest do 'typedef', co prowadzi do nieścisłości w kodzie i utrudnień w jego interpretacji. Kluczowe jest zrozumienie, że 'typedef' nie tworzy nowego typu, ale jedynie nową nazwę dla już istniejącego, co jest fundamentalne w celu utrzymania przejrzystości oraz spójności w projekcie. Niezrozumienie tej zasady może prowadzić do nieefektywnego zarządzania kodem oraz błędów przy jego rozwoju.

Pytanie 16

W SQL, aby uniemożliwić stworzenie konta przy wykonywaniu kwerendy CREATE USER, gdy konto już istnieje, można zastosować następującą składnię

A. CREATE USER OR DROP 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
B. CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
C. CREATE OR REPLACE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
D. CREATE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
Odpowiedzi, które nie zawierają klauzuli 'IF NOT EXISTS', nie są optymalne, ponieważ mogą prowadzić do błędów, gdy próbuje się utworzyć konto, które już istnieje. W przypadku polecenia 'CREATE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';', jeśli konto 'anna' jest już w systemie, użytkownik otrzyma błąd, co skutkuje niepowodzeniem całego skryptu. W kontekście administracji baz danych, jest to szczególnie problematyczne, gdy skrypty są uruchamiane automatycznie, ponieważ mogą one przerywać dalsze operacje. Natomiast składnia 'CREATE USER OR DROP 'anna'@'localhost' IDENTIFIED BY 'yu&T%';' jest nieprawidłowa, ponieważ nie istnieje w standardzie SQL. Użytkownicy mogą mylić 'DROP' z opcją usunięcia konta, co w praktyce nie powinno być podejmowane bez wyraźnej intencji. Ostatecznie, 'CREATE OR REPLACE USER...' działa odmiennie, ponieważ nie jest standardową operacją w SQL dla użytkowników; bardziej odpowiednie byłoby jej zastosowanie w kontekście obiektów, takich jak procedury czy widoki. Kluczowe jest zrozumienie, że błędne podejście do tworzenia użytkowników może prowadzić do chaosu w zarządzaniu bazą danych i stwarzać potencjalne zagrożenia dla bezpieczeństwa. Dlatego tak istotne jest stosowanie klauzuli 'IF NOT EXISTS', co jest zgodne z najlepszymi praktykami w branży zarządzania systemami baz danych.

Pytanie 17

Aby sformatować wszystkie obrazy w akapicie przy użyciu stylów CSS, należy zastosować selektor

A. p + img
B. p.img
C. p img
D. p # img
Jak spojrzysz na odpowiedzi, to widać, że selektor 'p # img' jest pomyłką. W CSS '#' oznacza 'id', a to powinno być unikalne dla konkretnego elementu. Nie da się tego używać z selektorem potomka, bo to by oznaczało, że szukasz <img> z unikalnym id w akapicie, co nie ma sensu. Z kolei 'p + img' odnosi się do obrazków, które są bezpośrednio po akapicie, czyli nie stylizuje wszystkich obrazków wewnątrz akapitów. Takie coś nie zadziała. A 'p.img' to błąd, bo sugeruje, że <p> ma klasę 'img', co nie jest ok. Klasa 'img' powinna być przypisana do <img>, nie do akapitu. Te wszystkie błędy w selektorach pokazują, jak ważne jest zrozumienie struktury DOM i hierarchii w HTML, żeby dobrze ogarniać CSS.

Pytanie 18

Dokument HTML określa akapit oraz obrazek. Aby obrazek był wyświetlany przez przeglądarkę w tej samej linii co akapit po jego lewej stronie, należy w stylu CSS obrazka uwzględnić właściwość

A. align: left;
B. style: left;
C. alt: left;
D. float: left;
Odpowiedź "float: left;" jest naprawdę trafna. Ta właściwość w CSS sprawia, że elementy układają się obok siebie, co w tym przypadku oznacza, że rysunek wyląduje po lewej stronie akapitu. Jak użyjemy float, to rysunek 'przesuwa się' na lewo, a tekst z akapitu otacza go z prawej strony. To taki popularny sposób w webdesignie, który pozwala na ładniejsze połączenie obrazków z tekstem. Warto pamiętać, że czasem trzeba zastosować clearfix, zwłaszcza gdy mamy pływające elementy w większym układzie, żeby uniknąć problemów z rozmieszczeniem. Stosowanie float w CSS to dobra praktyka, bo pomaga zachować czytelność i estetykę tekstu. Na przykład, jeśli mamy sekcję artykułu z obrazem, który ilustruje omawiany temat, to zastosowanie float: left; sprawi, że treść będzie ładnie się układać i poprawi wrażenia użytkownika.

Pytanie 19

Jaką właściwość pola w tabeli powinno się ustawić, aby akceptowało ono wyłącznie dane liczbowe?

Ilustracja do pytania
A. Regułę sprawdzania poprawności
B. Tagi inteligentne
C. Maskę wprowadzania
D. Wartość domyślną
Maska wprowadzania to opcja pozwalająca na zdefiniowanie wzorca, według którego użytkownicy mogą wprowadzać dane do pola w bazie danych. W przypadku konieczności przyjmowania wyłącznie cyfr, maska wprowadzania może ograniczyć użytkownika do wpisywania numerów, co jest szczególnie przydatne w aplikacjach wymagających precyzyjnego formatu danych, takich jak numery telefonów, kody pocztowe czy numery identyfikacyjne. Maska zapewnia spójność danych oraz minimalizuje ryzyko błędnych wpisów. Przykładowo, maska 0000-000-000 może być użyta do wymuszenia formatu numeru telefonu, gdzie każda liczba 0 reprezentuje wymaganą cyfrę. W branży IT oraz w procesie projektowania systemów bazodanowych, takie rozwiązania przyczyniają się do podniesienia jakości danych oraz upraszczają proces ich przetwarzania. Stosowanie masek wprowadzania jest zgodne z najlepszymi praktykami w dziedzinie zarządzania danymi, które podkreślają znaczenie walidacji danych na poziomie aplikacji oraz baz danych, aby uniknąć nieprawidłowych lub niekompletnych danych w systemie.

Pytanie 20

Które ze znaczników HTML umożliwią wyświetlenie na stronie tekstu w jednym wierszu, jeżeli żadne formatowanie CSS nie zostało zdefiniowane?

Dobre strony mojej strony

A. <h3>Dobre strony </h3><h3 style=”letter-spacing:3px”>mojej strony</h3>
B. <span>Dobre strony </span><span style=”letter-spacing:3px”>mojej strony</span>
C. <div>Dobre strony </div><div style=”letter-spacing:3px”>mojej strony</div>
D. <p>Dobre strony </p><p style=”letter-spacing:3px”>mojej strony</p>
Gratulacje, Twoja odpowiedź jest prawidłowa. Wybrałeś znacznik <span>, który jest znacznikiem liniowym w HTML. Znaczniki liniowe nie zaczynają nowego wiersza po swoim zakończeniu, co oznacza, że tekst zawarty w kolejnych znacznikach <span> będzie wyświetlany w jednym wierszu, o ile nie zdefiniowano inaczej za pomocą CSS. Jest to bardzo ważne, kiedy chcemy utworzyć strukturę strony, która nie zależy od domyślnych formatowań. Przykładowo, używając <span>, możemy skonstruować skomplikowane layouty, które są niemożliwe do osiągnięcia za pomocą samych znaczników blokowych. Pamiętaj jednak, że odpowiednie stosowanie znaczników liniowych i blokowych jest ważnym elementem tworzenia semantycznie poprawnych stron internetowych, co może pomóc w poprawie SEO i dostępności Twojej strony.

Pytanie 21

Prezentowany blok kodu ilustruje proces

Ilustracja do pytania
A. podjęcia decyzji
B. załadowania lub wyświetlenia informacji
C. realizacji zadania w pętli
D. użycia zdefiniowanej procedury lub funkcji
Symbol przedstawiony na obrazku to romb który w diagramach przepływu algorytmów i schematach blokowych oznacza podjęcie decyzji Jest to kluczowy element w programowaniu i inżynierii oprogramowania używany do podejmowania decyzji lub wyrażania warunków logicznych Decyzja to punkt w programie gdzie przetwarzanie może podążać różnymi ścieżkami w zależności od spełnienia określonych warunków Na przykład w językach programowania takich jak Python lub Java warunek if-else jest używany do podjęcia decyzji w zależności od wartości logicznych Wyobraźmy sobie sytuację w której program ma zdecydować czy użytkownik jest pełnoletni W takim przypadku instrukcja if sprawdza warunek wiek użytkownika większy lub równy 18 i w zależności od tego wykonuje odpowiednie instrukcje Takie podejście jest zgodne z dobrymi praktykami programowania które kładą nacisk na klarowność kodu i jego elastyczność Dzięki temu programiści mogą tworzyć bardziej złożone systemy które reagują na różne scenariusze i dostosowują swoje działanie do dynamicznie zmieniających się warunków co jest kluczowe w projektowaniu skalowalnych i efektywnych rozwiązań

Pytanie 22

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: right; }
B. nav { float: right; } section { float: right; }
C. nav { float: left; } aside { float: left; }
D. aside {float: left; }

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie. W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie. Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 23

Która z poniższych funkcji w języku PHP zmieni słowo „kota” na „mysz” w zdaniu „ala ma kota”?

A. str_replace("ala ma kota", "kota", "mysz");
B. str_replace( "kota", "mysz", "ala ma kota");
C. replace("ala ma kota", "kota", "mysz");
D. replace("kota", "mysz", "ala ma kota");
Wszystkie inne odpowiedzi wykazują nieporozumienia w zakresie używania funkcji zamiany tekstu w PHP. Na przykład, pierwszy wariant używa funkcji replace, która nie istnieje w standardowej bibliotece PHP. W PHP funkcja do zamiany ciągów znaków to str_replace, co oznacza, że taka odpowiedź nie może być prawidłowa. Z kolei drugi wariant również błędnie stosuje funkcję replace, ale dodatkowo zamienia argumenty – pierwszy argument powinien być tym, co zamieniamy, a nie tym, co jest zmieniane. Użycie str_replace z nieodpowiednią kolejnością argumentów prowadziłoby do niespodziewanych rezultatów. Natomiast trzecia odpowiedź podaje argumenty w prawidłowej kolejności, jednak również używa nieistniejącej funkcji replace, co czyni ją błędną. Typowe błędy myślowe, które mogą prowadzić do takich niepoprawnych wniosków, to nieprawidłowe rozumienie syntaktyki funkcji oraz mylenie istniejących funkcji z nieistniejącymi. Ważne jest zrozumienie, że w PHP musimy korzystać z dokumentacji, aby upewnić się, że używamy odpowiednich funkcji i argumentów, co jest kluczowe dla prawidłowego działania aplikacji. Niezrozumienie tych podstaw może prowadzić do frustracji i trudności w programowaniu.

Pytanie 24

Zakładając, że tablica $tab zawiera liczby naturalne, co program wyświetli?

$liczba = $tab[0];
foreach ($tab as $element)
{
  if ($element > $liczba)
    $liczba = $element;
}
echo $liczba;
A. elementy, które przewyższają zmienną $liczba
B. największy element tablicy
C. element tablicy o wartości $tab[0]
D. najmniejszy element tablicy
Program w tym pytaniu ilustruje proces wyszukiwania największego elementu w tablicy za pomocą pętli foreach. Na początku zmienna $liczba jest inicjalizowana pierwszym elementem tablicy $tab. Następnie program iteruje przez wszystkie elementy tablicy i porównuje każdy z nich z aktualną wartością $liczba. Jeśli bieżący element jest większy niż $liczba, to wartość $liczba jest aktualizowana do tej większej wartości. Dzięki tej logice na końcu pętli $liczba przechowuje największy element z tablicy. Jest to zgodne z powszechnie stosowanym wzorcem projektowym polegającym na iteracyjnej aktualizacji zmiennej przechowującej ekstremalną wartość, w tym przypadku maksymalną. Taka metoda jest skuteczna i efektywna, ponieważ przeszukuje całą tablicę tylko raz, co jest operacją o złożoności czasowej O(n), gdzie n to liczba elementów w tablicy. Podejście to jest stosowane nie tylko w programach edukacyjnych, ale również w rzeczywistych projektach programistycznych, gdzie optymalne przetwarzanie danych jest kluczowe. Dobrą praktyką jest inicjalizacja zmiennej kontrolnej wartością pierwszego elementu tablicy, co unika niepotrzebnego porównywania z nieistotnymi wartościami, np. minus nieskończonością, i jest zgodne z zasadą KISS (Keep It Simple, Stupid).

Pytanie 25

Funkcją zaprezentowanego kodu PHP jest napełnienie tablicy $tab 10 losowymi liczbami z przedziału od -100 do 100, a następnie wypisanie liczb ujemnych. Kod prezentuje się następująco:

$tab = array();
for ($i = 0; $i < 10; $i++)
{
    $tab[$i] = rand(-100, 100);
}

foreach ($tab as $x)
{
    if ($x < 0)
        echo "$x ";
}
A. kolejnymi liczbami od 0 do 9 i ich wyświetlenie
B. 100 losowymi liczbami, a następnie wypisanie liczb dodatnich
C. 10 losowymi wartościami, a następnie wypisanie liczb ujemnych
D. kolejnymi liczbami od -100 do 100 oraz wypisanie liczb ujemnych
Interpretacja kodu pod kątem generowania liczb od -100 do 100 i ich wypisywania jest błędna ze względu na niewłaściwe zrozumienie funkcji rand oraz struktury pętli. Kod generuje dziesięć losowych wartości, ale nie wypisuje wszystkich liczb z zakresu, a jedynie ujemne liczby z wylosowanego zbioru. Podobnie, przypuszczenie, że kod wypełnia tablicę kolejnymi liczbami od 0 do 9 i je wypisuje, wynika z błędnego pojmowania mechanizmu inkrementacji zmiennej i oraz przypisania losowych wartości w tablicy. Wreszcie, myśl, że kod wypełnia 100 losowymi wartościami, jest błędna, ponieważ struktura pętli została ustawiona na dziesięć iteracji i nie ma elementu, który by sugerował generowanie aż 100 elementów. Ważne jest, aby dokładnie przeanalizować strukturę kodu i zrozumieć, jakie operacje są wykonywane w ramach każdej pętli oraz jakie wartości są faktycznie manipulowane. Zrozumienie funkcji rand i poprawne rozpoznanie zakresu liczby iteracji jest kluczowe w analizie i interpretacji kodu w językach programowania takich jak PHP. Poprawne zrozumienie logiki warunkowej if umożliwia prawidłową identyfikację, jakie elementy są wypisywane na końcu procesu, co jest istotne w wielu praktycznych zastosowaniach programistycznych.

Pytanie 26

Aby dołączyć kod zawarty w pliku zewnętrznym do skryptu PHP, należy użyć funkcji

A. strlen()
B. str_replace()
C. include()
D. isset()
W tym pytaniu chodzi o dołączenie kodu z zewnętrznego pliku do skryptu PHP, czyli o mechanizm, który sprawia, że zawartość jednego pliku jest interpretowana tak, jakby była częścią innego. W PHP realizuje się to za pomocą include(), require() oraz ich odmian z _once. Pozostałe odpowiedzi dotyczą zupełnie innych zagadnień i to pomieszanie pojęć jest dość typowe, gdy ktoś dopiero zaczyna z PHP i myli funkcje operujące na zmiennych z funkcjami związanymi ze strukturą aplikacji. Funkcja isset() służy do sprawdzania, czy zmienna jest ustawiona i nie ma wartości null. Używa się jej bardzo często przy walidacji danych z formularzy, przy obsłudze tablic superglobalnych $_GET, $_POST czy $_SESSION. Na przykład: if (isset($_POST['login'])) { ... }. To zupełnie inna warstwa logiki niż dołączanie plików – isset() niczego nie ładuje, nie wczytuje i nie łączy, tylko bada stan zmiennej. Kolejna funkcja, strlen(), zwraca długość łańcucha znaków. Jest przydatna przy sprawdzaniu długości haseł, walidacji pól tekstowych czy prostych analizach danych tekstowych, np. strlen($haslo) >= 8. To typowa funkcja do operacji na stringach, bez żadnego związku z organizacją kodu na pliki. Gdy ktoś ją wybiera w takim pytaniu, to zwykle wynika to z kojarzenia „funkcja PHP jakakolwiek” zamiast zrozumienia kontekstu: pliki, modułowość, wczytywanie kodu. Z kolei str_replace() służy do zamiany fragmentów tekstu w ciągach znaków, np. usuwania spacji, podmiany znaczników czy prostych filtrów: str_replace('ala', 'Ola', $tekst). To narzędzie typowo tekstowe, używane przy przetwarzaniu zawartości, a nie przy budowaniu struktury aplikacji. W profesjonalnych projektach PHP kod dzieli się na wiele plików właśnie po to, żeby był czytelny i łatwy w utrzymaniu, a do ich łączenia stosuje się include/require. Mylenie tego z funkcjami typu isset, strlen czy str_replace pokazuje, że warto jeszcze raz przejrzeć podstawy: które funkcje działają na danych, a które wpływają na sposób ładowania i organizacji kodu w projekcie.

Pytanie 27

W języku PHP wykonano poniższą operację. Aby uzyskać wszystkie rezultaty tego zapytania, należy:

$tab = mysqli_query($db, "SELECT imie FROM Osoby WHERE wiek < 18");
A. użyć polecenia mysql_fetch
B. wyświetlić zmienną $db
C. zastosować pętlę z poleceniem mysqli_fetch_row
D. zaindeksować zmienną tab, tab[0] to pierwsze imię
Odpowiedź, która zakłada zastosowanie pętli z poleceniem mysqli_fetch_row, jest poprawna, ponieważ po wykonaniu zapytania do bazy danych za pomocą mysqli_query, otrzymujemy wynik w postaci zestawu rekordów, który musimy przetworzyć. Funkcja mysqli_fetch_row pozwala na iteracyjne pobieranie wierszy z tego zestawu, co jest niezbędne do wyświetlenia wszystkich imion osób, które spełniają warunek wieku poniżej 18 lat. Przykładowy kod do iteracji może wyglądać tak: while($wiersz = mysqli_fetch_row($tab)) { echo $wiersz[0]; } W ten sposób każda iteracja w pętli wyświetli pierwszą kolumnę (imie) z każdego wiersza rezultatu. Tego typu podejście jest zgodne z dobrymi praktykami, ponieważ pozwala na efektywne zarządzanie pamięcią i ogranicza ryzyko przeciążenia systemu, szczególnie w przypadku dużych zbiorów danych. Ważne jest, aby pamiętać, że połączenie z bazą danych i zapytania powinny być zawsze odpowiednio zamykane i zabezpieczane przed atakami, co jest istotne w kontekście bezpieczeństwa aplikacji.

Pytanie 28

Które zdarzenie umożliwia wykonanie skryptu w języku JavaScript podczas przesyłania formularza HTML oraz kontrolowanie jego wysłania?

A. onEnter
B. onSubmit
C. onChange
D. onClick
Zdarzenia 'onClick', 'onEnter' oraz 'onChange' są często mylone z 'onSubmit', co może prowadzić do błędnych wniosków na temat ich zastosowania w kontekście formularzy HTML. Zdarzenie 'onClick' jest wywoływane, gdy użytkownik klika element, ale nie jest bezpośrednio powiązane z procesem wysyłania formularza. Może być używane w celu uruchomienia różnych akcji, ale nie służy do walidacji danych przed wysłaniem. Podobnie, 'onEnter' nie jest standardowym zdarzeniem w JavaScript; to raczej mylne odniesienie do działania klawisza Enter, które nie ma formalnego związku z formularzami. Zdarzenie 'onChange' jest wywoływane, gdy wartość elementu formularza zmienia się, co również nie jest bezpośrednio związane z wysyłaniem formularza. To zdarzenie jest przydatne w kontekście dynamicznej walidacji lub aktualizacji interfejsu, ale nie pozwala na kontrolowanie całego procesu wysyłania. Te niepoprawne odpowiedzi ilustrują typowy błąd myślowy, polegający na myleniu różnych zdarzeń w JavaScript i ich funkcji. Aby poprawnie zrozumieć, kiedy i jak stosować te zdarzenia, warto zgłębić dokumentację oraz standardy dotyczące programowania w JavaScript, co pozwoli uniknąć nieporozumień i zwiększyć efektywność tworzonych aplikacji.

Pytanie 29

W CSS zapis w postaci

 h1::first-letter {color: red;} 

spowoduje, że kolor czerwony zostanie zastosowany do

A. tekstu nagłówka w pierwszym stopniu
B. pierwszej litery nagłówka w drugim stopniu
C. pierwszej litery nagłówka w pierwszym stopniu
D. pierwszej linii akapitu
Zapis <span>h1::first-letter {color: red;} </span> jest w porządku, bo korzysta z pseudoelementu :first-letter, który działa na pierwszą literkę w nagłówku h1. To całkiem fajne, bo możemy w ten sposób stylizować tę pierwszą literę i nadać nagłówkom ciekawszy wygląd. Na przykład, jeśli mamy nagłówek h1 z napisem 'Witaj świecie', to dzięki temu kodowi, litera 'W' zrobi się czerwona. W CSS warto ogarnąć, że :first-letter działa tylko na bloki, takie jak nagłówki czy akapity, więc warto to mieć na uwadze, gdy coś stylizujemy. Używanie pseudoelementów to dobre podejście do tworzenia ładnych i funkcjonalnych interfejsów, a przy okazji daje nam większą kontrolę nad tym, jak wyglądają nasze elementy.

Pytanie 30

Dodanie ograniczenia klucza obcego w taki sposób, aby kolumna Klasy_id z tabeli Uczniowie była powiązana z kolumną id w tabeli Klasy zostanie wykonane przy użyciu polecenia

Ilustracja do pytania
A. ALTER TABLE Uczniowie ADD CONSTRAINT FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
B. ALTER TABLE Uczniowie ADD FOREIGN KEY FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
C. ALTER TABLE Uczniowie DROP FOREIGN KEY FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
D. ALTER TABLE Uczniowie DROP CONSTRAINT FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie wskazana składnia polecenia `ALTER TABLE Uczniowie ADD CONSTRAINT FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);` dokładnie odpowiada temu, co chcemy osiągnąć: dodać ograniczenie klucza obcego do już istniejącej tabeli. W SQL (np. w standardowym podejściu stosowanym w SQL Server, Oracle, wielu innych systemach) dodawanie klucza obcego odbywa się właśnie przez `ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY ... REFERENCES ...`. Najpierw wskazujemy modyfikowaną tabelę (`Uczniowie`), potem nazwę nowego ograniczenia (`FKKlasy`), następnie kolumnę w tabeli podrzędnej (`Klasy_id`), a na końcu tabelę oraz kolumnę, do której się odwołujemy (`Klasy(id)`). Dzięki temu silnik bazy danych wie, że każda wartość w `Uczniowie.Klasy_id` musi mieć odpowiadający rekord w `Klasy.id`. To jest właśnie istota referencyjnej integralności danych. W praktyce takie powiązanie uniemożliwia np. dopisanie ucznia do nieistniejącej klasy albo usunięcie klasy, do której nadal przypisani są uczniowie (chyba że jawnie zdefiniujemy `ON DELETE CASCADE` czy inne zachowanie). Moim zdaniem warto też zwracać uwagę na nazewnictwo: prefiks `FK` w nazwie ograniczenia (`FKKlasy`) to dobra praktyka, bo od razu widać, że to klucz obcy, a nie np. unikalny indeks. W większych projektach przyjęcie spójnej konwencji, typu `FK_Uczniowie_Klasy`, bardzo ułatwia debugowanie błędów i analizę schematu. W codziennej pracy z bazami danych takie polecenie wykorzystuje się często po wczytaniu danych testowych albo po przebudowie tabel, gdy chcemy najpierw stworzyć strukturę bez ograniczeń, a potem krok po kroku dokładać klucze główne i obce. Warto też pamiętać, że przed dodaniem klucza obcego kolumna `Klasy_id` powinna mieć ten sam lub kompatybilny typ co `Klasy.id` (np. oba `INT`) i nie może zawierać wartości, które nie istnieją w tabeli `Klasy`, bo wtedy polecenie zakończy się błędem i klucz obcy nie zostanie utworzony.

Pytanie 31

W instrukcji warunkowej w języku JavaScript należy zweryfikować sytuację, w której wartość zmiennej a leży w przedziale (0,100), a wartość zmiennej b jest większa od zera. Odpowiedni zapis warunku jest następujący:

A. if (a > 0 && a < 100 && b > 0 )
B. if (a > 0 || a < 100 && b > 0 )
C. if (a > 0 || a < 100 || b < 0 )
D. if (a > 0 && a < 100 || b < 0 )
Odpowiedź 'if (a > 0 && a < 100 && b > 0)' jest dokładnie to, czego szukamy. Zmiana 'a' musi być w przedziale powyżej 0, ale poniżej 100, a do tego 'b' musi być większe od zera. To tak jakby ustalać zasady dla jakiegoś wyzwania – żeby coś się udało, musi być spełnionych kilka warunków na raz. Przykładowo, jeżeli myślimy o zakupach online, to możemy zrobić zakupy tylko wtedy, gdy kwota jest w porządku (czyli w tym przedziale) i nasze konto ma jakieś pieniądze. Takie jasne zasady są super ważne, bo pomagają w pisaniu czytelnego kodu, który potem łatwiej zrozumieć i utrzymać.

Pytanie 32

W języku JavaScript, aby w jednym poleceniu zweryfikować, czy dany ciąg tekstowy zawiera inny ciąg, można zastosować metodę

A. repeat()
B. includes()
C. valueOf()
D. substr()
Metoda includes() w JavaScript służy do sprawdzenia, czy dany ciąg znaków zawiera określony podciąg. Jest to niezwykle przydatne narzędzie, które pozwala na szybkie weryfikowanie zawartości zmiennych tekstowych. Przykład zastosowania to: let str = 'JavaScript jest świetny'; console.log(str.includes('świe')); // true. Warto zwrócić uwagę, że includes() jest metodą case-sensitive, co oznacza, że wielkość liter ma znaczenie w procesie wyszukiwania. Dobrą praktyką jest korzystanie z tej metody w sytuacjach, gdzie chcemy szybko i efektywnie analizować tekst, na przykład podczas walidacji danych wejściowych w formularzach. Ponadto, jest ona zgodna z ES6, co sprawia, że jest szeroko wspierana w nowoczesnych przeglądarkach oraz środowiskach JavaScript. Zastąpienie starszych metod, takich jak indexOf(), które zwracałoby pozycję podciągu, co wymagałoby dodatkowych operacji logicznych do weryfikacji, czyni includes() bardziej eleganckim i przejrzystym rozwiązaniem.

Pytanie 33

W kontekście baz danych, co oznacza termin atrybut?

A. nazwa kolumny w tabeli, która określa konkretną cechę
B. wpis w tabeli, który zawiera informacje dotyczące pojedynczego egzemplarza elementu
C. związek między dwoma lub większą liczbą danych
D. element składający się z charakterystyk opisanych przez kolumny
Twoje odpowiedzi są trochę mylne, bo opierają się na niepoprawnych założeniach o strukturze baz danych. Na przykład, mówienie, że atrybut to obiekt składający się z cech nie jest precyzyjne – atrybut to raczej konkretna kolumna w tabeli. Kolumny to zbiory atrybutów, a nie obiekty. W dodatku, myślenie, że atrybut to jakieś połączenie danych, nie oddaje rzeczywistej definicji atrybutu. Atrybuty to pojedyncze jednostki danych, a nie relacje między różnymi danymi. Relacje tworzy się z pomocą kluczy obcych, nie samych atrybutów. Na koniec, mówienie, że atrybut to rekord tabeli, który zawiera dane o jednym obiekcie, jest błędne. Rekordy to całe instancje, podczas gdy atrybuty to tylko ich elementy. Zrozumienie tego jest naprawdę istotne, żeby dobrze pracować z bazami danych i uniknąć problemów w projektowaniu, co potem wpływa na wydajność i użyteczność bazy.

Pytanie 34

W jaki sposób funkcjonuje instrukcja do łączenia wyników zapytań INTERSECT w SQL?

A. Zwraca te wiersze, które wystąpiły w wyniku drugiego zapytania, natomiast nie było ich w wyniku pierwszego zapytania
B. Zwraca zbiór wyników z pierwszego zapytania oraz zbiór wyników z drugiego zapytania, automatycznie eliminując powtarzające się wiersze
C. Zwraca te wiersze, które wystąpiły w wyniku pierwszego zapytania, jednak nie były obecne w wyniku drugiego zapytania
D. Zwraca część wspólną wyników dwóch zapytań

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Instrukcja INTERSECT w języku SQL jest używana do zwracania wspólnych wyników dwóch lub więcej zapytań SELECT. W praktyce INTERSECT identyfikuje i zwraca jedynie te wiersze, które występują zarówno w pierwszym, jak i w drugim zbiorze wyników. Warto zauważyć, że podczas używania tej instrukcji, domyślnie usuwane są duplikaty, co oznacza, że każde unikalne wystąpienie wspólnych wierszy zostanie zwrócone tylko raz. Na przykład, jeżeli mamy dwa zapytania: pierwsze zwracające klientów z miasta A, a drugie klientów z miasta B, zastosowanie INTERSECT pozwoli nam uzyskać listę klientów, którzy znajdują się w obu zbiorach, co może być istotne w kontekście analizy danych lub segmentacji rynku. W kontekście standardów SQL, INTERSECT jest jednym z operatorów zbiorowych, obok UNION i EXCEPT, co czyni go fundamentalnym narzędziem w pracy z relacyjnymi bazami danych. Użycie INTERSECT może być korzystne w sytuacjach, gdy chcemy uzyskać analizę porównawczą lub zidentyfikować wspólne elementy pomiędzy różnymi zestawami danych, co jest kluczowe w wielu zastosowaniach analitycznych i raportowych.

Pytanie 35

Gdzie w dokumencie HTML powinien być umieszczony wewnętrzny arkusz stylów?

A. W skrypcie dołączonym do dokumentu
B. W sekcji treści strony
C. W obrębie znacznika, którego dotyczy styl
D. W sekcji nagłówkowej dokumentu
Wewnętrzny arkusz stylów należy umieścić w części nagłówkowej strony HTML, co oznacza, że powinien być zawarty w znaczniku <head>. Jest to zgodne z zaleceniami standardów W3C, które określają, że nagłówek powinien zawierać metadane oraz inne informacje dotyczące dokumentu. Umieszczając arkusz stylów w sekcji <head>, zapewniamy, że przeglądarka ma dostęp do stylów przed renderowaniem treści strony, co przyczynia się do lepszego doświadczenia użytkownika. Przykładowo, kod CSS umieszczony w <style> w <head> może wyglądać tak: <style> body { background-color: lightblue; } </style>. Taki wewnętrzny arkusz stylów pozwala na łatwe zarządzanie stylem pojedynczej strony bez potrzeby tworzenia osobnych plików CSS. Ponadto, umieszczając style w nagłówku, unikamy problemów z wydajnością, które mogłyby wystąpić, gdyby były one wstrzykiwane w treści strony. Warto również zauważyć, że umieszczanie arkuszy stylów w <head> jest standardową praktyką w tworzeniu responsywnych i semantycznych stron internetowych.

Pytanie 36

Aby zainstalować system CMS Joomla!, potrzebne jest środowisko

A. Apache oraz PHP
B. PHP oraz MySQL
C. IIS, PERL i MySQL
D. Apache, PHP i MySQL
Użytkownicy mogą mieć wątpliwości co do wyboru odpowiednich technologii dla uruchomienia systemu CMS Joomla!. Odpowiedzi sugerujące jedynie Apache i PHP ignorują istotny element, jakim jest baza danych. Brak MySQL w konfiguracji oznacza, że nie byłoby możliwości przechowywania oraz zarządzania danymi, co jest kluczowe w każdej aplikacji webowej. Z kolei odpowiedź zakładająca użycie IIS, PERL i MySQL wprowadza nieprawidłową konfigurację, gdyż IIS jest serwerem stworzonym przez Microsoft, który może być używany z innymi technologiami, ale nie jest standardowym wyborem dla Joomla!. PERL to język programowania, który nie jest powszechnie używany w ekosystemie Joomla! i nie jest wymagany do jej działania. Inną kwestią jest odpowiedź proponująca tylko PHP i MySQL, która również pomija serwer WWW - fundament działania aplikacji webowych. Prawidłowe uruchomienie Joomla! wymaga zintegrowania wszystkich trzech komponentów: serwera, języka skryptowego i bazy danych. Ignorowanie tych zależności prowadzi do błędnego rozumienia architektury aplikacji internetowych, co może w przyszłości skutkować problemami w implementacji oraz działaniu projektów opartych na Joomla!. Właściwe podejście wymaga zrozumienia, że każdy z tych elementów odgrywa kluczową rolę w zapewnieniu stabilności, bezpieczeństwa oraz wydajności aplikacji.

Pytanie 37

W relacyjnym modelu danych, krotki definiuje się jako

A. wszystkie wiersze w tabeli łącznie z wierszem nagłówkowym
B. wiersze tabeli wyłączając wiersz nagłówkowy, w którym znajdują się nazwy kolumn
C. liczbę rekordów w tabeli
D. wszystkie kolumny tabeli, które reprezentują atrybuty obiektu
Krotka to taki ważny element w relacyjnych bazach danych, który odnosi się do konkretnych rekordów w tabeli. Każda krotka to jakby zestaw informacji, który dotyczy jednej jednostki, na przykład pojedynczego użytkownika w tabeli 'Użytkownicy'. Zawiera wartości atrybutów, które są przypisane do kolumn w tabeli. Te wartości są przechowywane w wierszach, a nagłówek z nazwami kolumn nie wchodzi w grę, jeśli chodzi o definicję krotek. Na przykład, w tabeli dotyczącej studentów, każdy wiersz mógłby zawierać dane jednego studenta, takie jak imię, nazwisko, wiek czy kierunek studiów. Myślę, że zrozumienie, czym jest krotka, jest kluczowe, żeby dobrze projektować bazy danych i używać SQL, bo w nim operacje na krotkach to podstawa większości zapytań. W praktyce, krotki pomagają również tworzyć relacje między tabelami w bazie danych, gdzie można je wykorzystać do przedstawiania powiązań między różnymi obiektami, na przykład 'Studenci' i 'Kursy'.

Pytanie 38

W języku SQL przedstawiony warunek jest równoważny warunkowi

liczba >= 10 AND liczba <= 100
A. liczba IN (10, 100)
B. liczba BETWEEN 10 AND 100
C. liczba LIKE '10%'
D. NOT (liczba < 10 AND liczba > 100)
Dobra robota! Twoja odpowiedź jest na pewno poprawna. Warunek 'liczba >= 10 AND liczba <= 100' w SQL oznacza, że musimy znaleźć liczbę, która jest większa lub równa 10 i mniejsza lub równa 100. Można to również zapisać jako 'liczba BETWEEN 10 AND 100', co po prostu definiuje zakres wartości od 10 do 100, łącznie z tymi granicami. Używanie operatorów takich jak BETWEEN jest naprawdę przydatne w SQL, bo ułatwia nam życie przy pisaniu zapytań i sprawia, że łatwiej jest zrozumieć, co ten kod właściwie robi. Fajnie umieć takie rzeczy, bo to naprawdę klucz do efektywnej pracy z bazami danych.

Pytanie 39

Zgodnie z zasadami walidacji HTML5, prawidłowy zapis tagu hr to

A. </hr?>
B. </ hr />
C. <hr>
D. </ hr>
Znak <hr> jest poprawnym zapisem znacznika poziomej linii w HTML5. Zgodnie z definicją, <hr> jest elementem samodzielnym, co oznacza, że nie wymaga znacznika zamykającego. Jest to zgodne z zasadami HTML5, które wprowadziły uproszczoną składnię dla wielu elementów. W praktyce <hr> jest używany do wizualnego oddzielania sekcji w dokumencie HTML, co poprawia czytelność i estetykę strony. Na przykład, w artykule internetowym można zastosować <hr> między różnymi sekcjami, aby wskazać zmianę tematu lub podział pomiędzy wprowadzeniem a treścią główną. Zgodność z tym standardem nie tylko ułatwia pracę z kodem, ale również zapewnia lepszą kompatybilność z przeglądarkami i narzędziami dostępu. Warto także zwrócić uwagę, że dobrym zwyczajem jest dodawanie atrybutów klasy lub identyfikatora do tego znacznika w celu dalszej personalizacji stylów CSS, co zwiększa elastyczność w projektowaniu graficznym strony.

Pytanie 40

Jakie wyrażenie logiczne powinno być użyte w języku JavaScript, aby zastosować operacje tylko dla wszystkich liczb ujemnych z przedziału jednostronnie domkniętego <-200,-100)?

A. (liczba <=-200) && (liczba<-100)
B. (liczba <=-200) || (liczba>-100)
C. (liczba >=-200) && (liczba<-100)
D. (liczba >=-200) || (liczba>-100)
Jeśli chcesz wykonywać operacje tylko na liczbach ujemnych w przedziale od -200 do -100 w JavaScript, musisz użyć takiego wyrażenia: (liczba >= -200) && (liczba < -100). To wyrażenie łączy dwa warunki, co oznacza, że oba muszą być spełnione, żeby całość była prawdziwa. Pierwszy warunek mówi, że liczba musi być większa lub równa -200, a drugi, że musi być mniejsza niż -100. Tak definiujemy przedział, co jest zgodne z zasadami ECMAScript, na których oparty jest JavaScript. Dla przykładu, jeśli weźmiesz liczbę -150, to to wyrażenie zwróci prawdę, bo -150 jest w tym przedziale. Natomiast dla -250, wyrażenie zwróci fałsz, bo nie spełnia pierwszego warunku. Dzięki temu, programista ma pewność, że operacje wykonywane są jedynie na liczbach w danym przedziale. Takie zastosowanie można spotkać na przykład w walidacji danych w formularzach czy w filtracji danych w aplikacjach webowych.