Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 28 kwietnia 2026 16:58
  • Data zakończenia: 28 kwietnia 2026 17:04

Egzamin niezdany

Wynik: 7/40 punktów (17,5%)

Wymagane minimum: 20 punktów (50%)

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

W SQL, aby ustawić klucz główny na polu id w tabeli uczniowie, można użyć polecenia

A. INSERT TABLE uczniowie PRIMARY KEY (id)
B. INSERT TABLE uczniowie ADD PRIMARY KEY (id)
C. ALTER TABLE uczniowie ADD PRIMARY KEY (id)
D. ADD TABLE uczniowie PRIMARY KEY (id)
Wybór niewłaściwej opcji może wynikać z nieporozumienia dotyczącego składni SQL oraz zasadności użycia odpowiednich poleceń. Opcja 'ADD TABLE uczniowie PRIMARY KEY (id);' jest błędna, ponieważ polecenie ADD TABLE nie istnieje w standardzie SQL. Zamiast tego, do modyfikacji tabeli używa się polecenia ALTER TABLE. Kolejna niepoprawna odpowiedź, czyli 'INSERT TABLE uczniowie ADD PRIMARY KEY (id);', również jest błędna z tego samego powodu, a także dlatego, że instrukcja INSERT jest używana do dodawania nowych rekordów do tabeli, a nie do zmiany jej struktury. Trzecia opcja, 'INSERT TABLE uczniowie PRIMARY KEY (id);', jest niewłaściwa, ponieważ nie tylko zawiera błędne słowa kluczowe, ale również sugeruje, że można dodać klucz podstawowy za pomocą instrukcji wstawiającej, co jest całkowicie niezgodne z logiką SQL. W SQL klucz podstawowy jest definiowany podczas tworzenia tabeli lub dodawany później za pomocą ALTER TABLE. Rozumienie różnicy między tymi poleceniami jest kluczowe dla zrozumienia, jak zarządzać strukturą bazy danych. Przede wszystkim, kluczowe jest, aby unikać pomylenia operacji na danych (INSERT) z operacjami na strukturze tabeli (ALTER TABLE). To błędne myślenie może prowadzić do poważnych problemów w zarządzaniu danymi i ich integralnością w bazie.

Pytanie 2

W tabeli mieszkańcy zawierającej pola id, imie, nazwisko, ulica, numer, czynsz (wartość całkowita) należy zidentyfikować osoby zamieszkujące ulicę Mickiewicza pod numerami 71, 72, 80, których czynsz jest niższy niż
1000 zł. Jak będzie wyglądać klauzula WHERE w zapytaniu?

A. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000
B. WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000
C. WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR czynsz < 1000
D. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czynsz < 1000
Odpowiedź jest prawidłowa, ponieważ klauzula WHERE w zapytaniu SQL skutecznie filtruje dane zgodnie z wymaganiami. W tym przypadku, użycie operatora AND w połączeniu z IN i warunkiem < 1000 zapewnia, że zwrócone zostaną jedynie te rekordy, które spełniają wszystkie trzy kryteria: ulica musi być 'Mickiewicza', numer musi być jednym z 71, 72 lub 80, a czynsz musi być mniejszy niż 1000 zł. To jest zgodne z dobrą praktyką w SQL, gdzie łączenie warunków z użyciem operatorów logicznych pozwala na precyzyjne określenie zestawu danych, które nas interesują. Przy tak skonstruowanej klauzuli, zapytanie będzie wydajne i zrozumiałe, co jest kluczowe w pracy z bazami danych. Przykładowe zastosowanie to generowanie raportów dotyczących mieszkańców, co może być istotne dla zarządzania nieruchomościami lub analizy rynku wynajmu. Tego typu zapytania są powszechnie używane w aplikacjach webowych i systemach zarządzania danymi, co podkreśla znaczenie umiejętności formułowania precyzyjnych zapytań SQL.

Pytanie 3

Co oznacza zapis w obiekcie w języku JavaScript?

x = przedmiot.nazwa();
A. nazwa jest cechą obiektu przedmiot
B. nazwa jest atrybutem klasy przedmiot
C. zmienna x będzie przechowywać rezultat działania funkcji przedmiot
D. zmienna x będzie przechowywać wynik działania metody nazwa
Zapis przedmiot.nazwa() w języku JavaScript oznacza wywołanie metody nazwa na obiekcie przedmiot. Częstym błędem jest mylenie metody z polem klasy czy właściwością obiektu. Pole klasy odnosi się do zmiennej zdefiniowanej na poziomie klasy która przechowuje dane związane z instancjami tej klasy. Metody natomiast są funkcjami które wykonują operacje na danych obiektu. Jeśli chodzi o zmienną przechowującą wynik działania funkcji przedmiot nie jest to poprawna interpretacja ponieważ przedmiot w tym przypadku jest obiektem na którym działa metoda nazwa a nie funkcją. Kolejny błąd to mylenie wywołania metody z przypisaniem wartości właściwości obiektu. Właściwości to atrybuty które przechowują stany obiektu natomiast metody określają jego zachowanie i umożliwiają wykonywanie czynności. Często podczas nauki JavaScript błędnie interpretujemy składnię kropki jako odnoszącą się tylko do właściwości zamiast dostrzegać że może ona również oznaczać wywołanie metod. Dobra praktyka polega na jasnym rozróżnieniu pomiędzy metodami a właściwościami co zwiększa czytelność i niezawodność kodu ułatwiając jego późniejszą konserwację i rozwój przez zespoły programistyczne

Pytanie 4

O obiekcie zdefiniowanym w języku JavaScript można stwierdzić, że zawiera

var obiekt1 = {
  x: 0,
  y: 0,
  wsp: functon() { … }
}
A. dwie metody oraz jedną właściwość
B. trzy właściwości
C. trzy metody
D. dwie właściwości oraz jedną metodę
Analizując niepoprawne odpowiedzi, można zauważyć typowe błędy w zrozumieniu struktury obiektów w JavaScript. Odpowiedzi sugerujące, że obiekt ma trzy właściwości lub trzy metody, zbudowane są na błędnych założeniach dotyczących struktury obiektu. Obiekt `obiekt1` wyraźnie definiuje tylko dwie właściwości: `x` i `y`, co jest kluczowe dla zrozumienia, czym są właściwości w kontekście obiektów. Właściwości są to dane przechowywane w obiekcie, podczas gdy metody to funkcje przynależące do obiektu. Stwierdzenie, że obiekt ma trzy metody, błędnie interpretuje funkcję `wsp` jako wiele metod, podczas gdy w rzeczywistości jest to tylko jedna funkcja, a więc jedna metoda. Takie nieporozumienia mogą prowadzić do trudności w projektowaniu obiektów oraz ich późniejszym użytkowaniu. W praktyce, umiejętność prawidłowego identyfikowania właściwości i metod obiektów jest istotna w kontekście programowania obiektowego, które jest kluczowym paradygmatem w JavaScript. Niezrozumienie tych podstaw może skutkować błędami w kodzie, które są trudne do zdiagnozowania, zwłaszcza w większych projektach, gdzie struktura obiektów może być złożona. W związku z tym, zaleca się dokładne zapoznanie się z zasadami definiowania obiektów oraz ich składników, aby uniknąć takich nieporozumień w przyszłości.

Pytanie 5

W języku JavaScript, aby zmienić wartość atrybutu elementu HTML, po uzyskaniu obiektu za pomocą metody getElementById, należy zastosować

A. metodę getAttribute
B. pole innerHTML
C. pole attribute i podać nazwę atrybutu
D. metodę setAttribute
Wybór innych metod lub pól do zmiany wartości atrybutów w elementach HTML wskazuje na pewne nieporozumienia dotyczące sposobu działania DOM w JavaScript. Metoda getAttribute służy do odczytywania wartości atrybutu, a nie do jego modyfikacji. Użytkownik może mylnie sądzić, że wystarczy odczytać wartość atrybutu, aby następnie ją zmienić, co jest błędne. Podobnie, pole innerHTML jest używane do manipulacji zawartością wewnętrzną elementu, a nie bezpośrednio do zmiany atrybutów. Umożliwia to wstawienie lub zmianę HTML w obrębie elementu, ale nie wpływa na atrybuty, co może prowadzić do niezamierzonych efektów, takich jak utrata istniejących atrybutów. W przypadku, gdy ktoś zdecyduje się użyć pola attribute, wprowadza zamieszanie, ponieważ nie istnieje takie pole w standardowym obiekcie DOM. Dlatego kluczowe jest zrozumienie różnicy pomiędzy odczytem a zapisem atrybutów, co jest fundamentalne dla efektywnego programowania w JavaScript. Aby uniknąć typowych błędów, programiści powinni skupić się na wykorzystaniu właściwych metod i narzędzi, co zapewni prawidłowe zarządzanie atrybutami w dokumentach HTML.

Pytanie 6

Który z elementów relacyjnej bazy danych, zapisany w języku SQL, może być wykorzystany w zapytaniach modyfikujących kolumny danych udostępnione jako tabela, niezależnie od tego, czy jest stworzony programowo, czy dynamicznie?

A. Zasada
B. Funkcja zdefiniowana
C. Trigger
D. Procedura składowa
Kiedy analizujemy inne obiekty bazy danych, takie jak reguły, wyzwalacze i procedury składowe, możemy zidentyfikować, dlaczego nie są one odpowiednie w kontekście tego pytania. Reguły w SQL są używane do automatyzacji modyfikacji zapytań, ale ich zastosowanie jest ograniczone i rzadko używane w nowoczesnych bazach danych. Reguły są rzeczywiście często pomijane w nowoczesnych implementacjach ze względu na ich złożoność oraz ograniczenia w stosowaniu. Wyzwalacze natomiast są mechanizmami, które automatycznie wywołują się w odpowiedzi na określone zdarzenia w bazie danych, takie jak dodawanie, aktualizacja lub usuwanie rekordów. Choć mogą modyfikować dane, to nie są one wywoływane bezpośrednio przez zapytania, a raczej jako odpowiedź na zdarzenia, co czyni je mniej elastycznymi w kontekście bezpośrednich zapytań. Procedury składowe są kolejnym typem obiektu bazy danych, które mogą implementować złożoną logikę, jednak są one zazwyczaj wywoływane jako całość i nie mogą być używane w kontekście zapytań modyfikujących dane, jak to ma miejsce w przypadku funkcji zdefiniowanej. Zatem w kontekście elastyczności i modułowości w modyfikacjach danych, funkcje zdefiniowane pozostają najodpowiedniejszym rozwiązaniem.

Pytanie 7

Na ilustracji przedstawiono

Ilustracja do pytania
A. testy bezpieczeństwa strony.
B. testy funkcjonalne strony interenetowej.
C. analizę poprawności kodu strony internetowej.
D. analizę ruchu sieciowego między serwerem a przeglądarką.
Na ilustracji widoczna jest zakładka „Network” w narzędziach deweloperskich przeglądarki, a nie panel do testów funkcjonalnych, skanera bezpieczeństwa ani walidatora kodu HTML/CSS. Wiele osób myli te pojęcia, bo wszystko dzieje się w przeglądarce i dotyczy tej samej strony, ale zakres i cel tych narzędzi jest zupełnie inny. Testy funkcjonalne strony internetowej dotyczą sprawdzenia, czy funkcje działają zgodnie z wymaganiami: czy formularz poprawnie się wysyła, czy przyciski reagują, czy logowanie i rejestracja działają poprawnie, czy przekierowania prowadzą we właściwe miejsca. Do tego używa się zwykle scenariuszy testowych, narzędzi typu Selenium, Cypress, Playwright itp. Sama zakładka Network tylko pokazuje żądania HTTP i odpowiedzi, nie „wie”, czy logowanie jest zgodne z wymaganiami biznesowymi. Z kolei testy bezpieczeństwa strony obejmują takie tematy jak podatność na SQL Injection, XSS, CSRF, błędne konfiguracje nagłówków bezpieczeństwa, słabe hasła, podatne biblioteki. Do tego służą skanery bezpieczeństwa (np. OWASP ZAP, Burp Suite), audyty kodu, testy penetracyjne. W DevTools możesz co najwyżej podejrzeć pewne nagłówki bezpieczeństwa, ale to wciąż tylko analiza ruchu, a nie pełny test security. Analiza poprawności kodu strony internetowej to znowu coś innego: walidacja HTML i CSS (np. W3C Validator), lintowanie JavaScript (ESLint), sprawdzanie składni i semantyki. Na ekranie nie ma żadnych komunikatów walidatora, tylko tabela żądań sieciowych. Typowym błędem myślowym jest tu skupienie się na tym, że „to narzędzia deweloperskie, więc pewnie testy” albo „widzę pliki CSS i JS, więc to analiza kodu”. Tymczasem kluczowe jest to, co faktycznie pokazuje interfejs: czasy, statusy HTTP, typy zasobów, rozmiary odpowiedzi. To klasyczne monitorowanie i analizowanie ruchu sieciowego między przeglądarką a serwerem, które pomaga w debugowaniu komunikacji klient–serwer, optymalizacji wydajności i diagnozowaniu błędów ładowania zasobów.

Pytanie 8

Jakie zagadnienie powinno być uwzględnione w dokumentacji użytkownika aplikacji?

A. Szczegóły dotyczące kodu źródłowego
B. Charakterystyka użytej technologii oraz bibliotek
C. Opis zastosowanych algorytmów w kodzie
D. Wyjaśnienie działania funkcji systemu
Opisy algorytmów zastosowanych w kodzie, technologii i bibliotek oraz kodu źródłowego, choć ważne, nie są elementami, które powinny znaleźć się w dokumentacji użytkownika. Dokumentacja użytkownika skupia się na interakcji użytkownika z systemem, a nie na szczegółach technicznych, które są bardziej odpowiednie dla dokumentacji dewelopera. Opis algorytmów jest istotny dla programistów, którzy chcą zrozumieć sposób działania aplikacji, jednak przeciętny użytkownik nie będzie w stanie wykorzystać tej wiedzy w praktyce, co czyni ją nieistotną w kontekście obsługi. Opis technologii i bibliotek również nie jest przydatny dla końcowego użytkownika, który nie jest zainteresowany technicznymi aspektami budowy systemu, ale raczej jego funkcjonalnością. Co więcej, dokumentacja kodu źródłowego jest skierowana do programistów i osób technicznych, które chcą zrozumieć strukturę i logikę aplikacji, co nie odpowiada potrzebom użytkownika końcowego, który szuka jasnych instrukcji i wskazówek dotyczących obsługi. Dlatego, tworząc dokumentację użytkownika, kluczowe jest skupienie się na tym, co jest istotne z perspektywy użytkownika, aby ułatwić mu korzystanie z aplikacji i poprawić jego doświadczenia.

Pytanie 9

Semantyczny znacznik sekcji języka HTML 5 przeznaczony do umieszczenia stopki strony WWW to

A. <footer>
B. <aside> 
C. <figcaption>
D. <header>
W HTML5 każdy z wymienionych znaczników ma swoją dość precyzyjnie określoną rolę semantyczną i to jest klucz do zrozumienia, dlaczego tylko <footer> nadaje się na stopkę strony. Sporo osób myli te elementy, bo wizualnie można osiągnąć podobny efekt samym CSS-em, ale semantyka ma znaczenie dla wyszukiwarek, czytników ekranu i ogólnego porządku w kodzie. Znacznik <aside> służy do treści pobocznych, takich jak boczne panele, dodatkowe informacje, reklamy, krótkie notki, boks z „podobnymi artykułami” i tym podobne. To coś, co jest powiązane z główną treścią, ale nie stanowi jej głównej osi. Umieszczenie całej stopki w <aside> zaburza logikę dokumentu – roboty i narzędzia dostępności mogą odebrać to jako dodatkowy panel, a nie zakończenie strony. To jest typowy błąd: mylenie „czegoś na dole albo z boku” z „treścią poboczną” tylko dlatego, że tak wygląda layout. <figcaption> ma jeszcze węższe zastosowanie. Ten znacznik opisuje konkretnie podpis do grafiki lub innego elementu w obrębie <figure>. Służy na przykład do opisu zdjęcia, rysunku technicznego, wykresu. Stopka strony to zupełnie inny typ treści, związany z całym dokumentem, a nie z jedną ilustracją. Użycie <figcaption> do stopki jest po prostu sprzeczne z przeznaczeniem i specyfikacją – przeglądarka tego „nie ukarze”, ale semantycznie taki kod jest błędny. Z kolei <header> to semantyczny nagłówek strony lub sekcji. Zawiera zwykle logo, główne menu, tytuł serwisu, czasem wyszukiwarkę. Jest logicznym początkiem, a nie zakończeniem treści. Częsty błąd myślowy polega na tym, że ktoś traktuje <header> i <footer> tylko jako nazwy związane z designem, a nie z rolą w dokumencie. Tymczasem standard HTML5 jasno mówi: <header> – początek sekcji, <footer> – jej zakończenie. Dlatego wybór innego znacznika niż <footer> na stopkę strony łamie założenia semantyczne, utrudnia utrzymanie kodu i w dłuższej perspektywie szkodzi jakości projektu.

Pytanie 10

Tabele Osoby i Adresy są połączone relacją jeden do wielu. Które zapytanie SQL należy wykonać, aby korzystając z tej relacji, prawidłowo wyświetlić nazwiska oraz przyporządkowane im miasta?

Ilustracja do pytania
A. SELECT nazwisko, Miasto FROM Osoby.Adresy_id = Adresy.id FROM Osoby, Adresy;
B. SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id = Adresy.id;
C. SELECT nazwisko, Miasto FROM Osoby, Adresy;
D. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;
Poprawne zapytanie korzysta z jawnego złączenia tabel: SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;. Kluczowe są tu dwie rzeczy: użycie słowa kluczowego JOIN oraz właściwy warunek ON, który łączy klucz obcy z kluczem głównym. W tabeli Osoby kolumna Adresy_id jest kluczem obcym (FK), który wskazuje na kolumnę id w tabeli Adresy. To dokładnie odzwierciedla relację jeden‑do‑wielu narysowaną na diagramie. Dzięki temu baza danych wie, które miasto przypisać do którego nazwiska. Takie podejście jest zgodne ze standardem SQL i dobrą praktyką w relacyjnych bazach danych. Jawne JOIN-y są czytelne, łatwe do modyfikacji (np. dodanie kolejnych tabel lub warunków filtrowania) i dobrze współpracują z optymalizatorem zapytań. W praktycznych projektach, np. w aplikacjach webowych, właśnie tak buduje się zapytania: łączymy tabelę użytkowników lub klientów z tabelą adresów, zamówień, faktur, logów itp. zawsze po kluczach głównych i obcych, a nie po przypadkowo dobranych kolumnach. Moim zdaniem warto od razu wyrabiać sobie nawyk pisania nazw tabel przy kolumnach, czyli Osoby.nazwisko, Adresy.Miasto – zmniejsza to ryzyko konfliktu nazw i poprawia czytelność kodu SQL. Gdyby w przyszłości w którejś tabeli pojawiła się druga kolumna o nazwie Miasto, zapytanie nadal byłoby jednoznaczne. W większych systemach, gdzie dochodzą dodatkowe warunki (WHERE, ORDER BY, GROUP BY), taka struktura zapytania z JOIN ON jest po prostu dużo łatwiejsza w utrzymaniu i debugowaniu. Warto też pamiętać, że relacja jeden‑do‑wielu oznacza, że jedna osoba może mieć wiele adresów albo jeden adres może być przypisany do wielu osób – dokładne powiązanie zależy od modelu, ale technika złączenia po kluczu obcym pozostaje taka sama.

Pytanie 11

Która z zasad walidacji stron internetowych jest niepoprawna?

A. W znacznikach nie zachodzi rozróżnienie pomiędzy dużymi a małymi literami, np. <p> i <P> są tym samym znacznikiem
B. Znaczniki, poza tymi samozamykającymi się, funkcjonują aż do momentu ich zakończenia znakiem '/', np. <p>...</p>
C. Jeżeli w instrukcji stosuje się kilka atrybutów, ich kolejność powinna odpowiadać porządkom alfabetycznym, np. <img alt="...." src="...." />
D. Wyłączanie znaczników powinno następować w odwrotnej kolejności do ich włączania, np. <p>....<big>...</big></p>
W kontekście walidacji znaczników HTML obowiązują szczegółowe zasady, które mają na celu zarówno poprawność syntaktyczną, jak i semantyczną kodu. Na przykład, w przypadku wyłączania znaczników, ważne jest, aby stosować się do zasady zwaną 'LIFO' (Last In, First Out), co oznacza, że znaczniki muszą być zamykane w odwrotnej kolejności, niż były otwierane. Otwierając znacznik <p>, a następnie <big>, w sytuacji, gdy oba są używane, <big> powinien być zamknięty przed <p>, co jest wymagane do zachowania poprawnej struktury dokumentu. Warto również podkreślić, że HTML jest językiem niestrict, co oznacza, że przeglądarki są dość tolerancyjne w stosunku do błędów, ale nieprawidłowe zamykanie znaczników może prowadzić do nieprzewidywalnych rezultatów wizualnych na stronie. Ponadto, wielkie i małe litery w znacznikach HTML nie mają znaczenia, co oznacza, że <p> i <P> będą interpretowane identycznie. Można jednak przyjąć zasadę, że stosowanie jednolitej konwencji, na przykład pisania wszystkich znaczników małymi literami, jest dobrym nawykiem, który zwiększa czytelność kodu. Przykład tego błędu można zaobserwować, gdy programiści mylą się w zamykaniu znaczników, co często prowadzi do złamania struktury DOM i problemów z renderowaniem strony. Utrzymywanie porządku w kodzie HTML jest kluczowe dla jego dalszego rozwoju i utrzymania.

Pytanie 12

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

p::first-line
{
    font-size: 150%;
}
A. pierwsza linia każdego paragrafu będzie miała większą czcionkę niż pozostałe linie
B. cały tekst w paragrafie zostanie powiększony o 150%
C. pierwsza linia każdego z paragrafów będzie miała mniejszą wielkość czcionki od pozostałych linii
D. pierwszy paragraf na stronie będzie miał powiększoną czcionkę w całości
Rozważając pozostałe możliwości zauważamy że zapis p::first-line { font-size: 150%; } odnosi się tylko do pierwszej linii każdego paragrafu a nie do całego tekstu paragrafu. Błędne myślenie że całość tekstu paragrafu będzie powiększona o 150% wynika z mylnego zrozumienia zasięgu pseudo-elementu. Pseudo-elementy takie jak ::first-line mają zastosowanie tylko do specyficznych części elementów blokowych w tym przypadku pierwszej linii co oznacza że ich działanie nie rozciąga się na cały paragraf. Podobnie sugerowanie że cała czcionka paragrafu zostanie zmieniona na mniejszą jest niepoprawne ponieważ ::first-line nie zmienia domyślnej wielkości czcionki pozostałych linii. W kontekście CSS rozmiar czcionki dla całego elementu można zmodyfikować bezpośrednio przez selektor elementu a nie przez pseudo-element. Przypisywanie zmiany czcionki tylko do pierwszej linii jest częstym sposobem na wyróżnienie tekstu w sposób który nie ingeruje w ogólny styl i strukturę dokumentu co jest zgodne z najlepszymi praktykami projektowania stron. Takie podejście umożliwia bardziej elegancką i czytelną prezentację informacji co jest kluczowe w tworzeniu intuicyjnych interfejsów użytkownika. Ważne jest aby rozumieć różnice między pseudo-elementami a innymi metodami stylizacji aby dokładnie przewidywać efekty określonych stylów w CSS i skutecznie stosować je do osiągania zamierzonych efektów projektowych. W przypadku chęci zmiany stylu całego paragrafu należałoby bezpośrednio użyć odpowiedniego selektora CSS dla całego elementu bez ograniczania się do pseudo-elementu first-line co pozwala na pełną kontrolę nad wszystkimi aspektami wizualnymi tekstu w danym kontekście.

Pytanie 13

Tabela o nazwie naprawy zawiera kolumny: klient, czyNaprawione. Jakie polecenie należy użyć, aby wykasować rekordy, w których pole czyNaprawione ma wartość prawdziwą?

A. DELETE FROM naprawy WHERE czyNaprawione = TRUE;
B. DELETE naprawy WHERE czyNaprawione = TRUE;
C. DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
D. DELETE FROM naprawy;
W przypadku drugiej odpowiedzi, 'DELETE naprawy WHERE czyNaprawione = TRUE;', brak jest kluczowego słowa 'FROM', co jest niezgodne z syntaksą SQL. W standardzie SQL polecenie DELETE zawsze wymaga określenia tabeli, z której mają zostać usunięte dane, za pomocą słowa kluczowego 'FROM'. Bez tego, zapytanie będzie generować błąd. Kolejna odpowiedź, 'DELETE FROM naprawy;', jest niepoprawna, ponieważ usuwa wszystkie rekordy z tabeli 'naprawy', co zwykle nie jest pożądanym działaniem. To podejście może prowadzić do utraty wszystkich zapisów, co w praktyce jest katastrofalne, jeśli nie wykonano wcześniej kopii zapasowej. Czwarta odpowiedź, 'DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;', błędnie sugeruje, że można wskazać konkretne kolumny do usunięcia, co jest także niezgodne z zasadami SQL. W SQL nie można wskazać pojedynczych kolumn do usunięcia, to całe rekordy są usuwane. Typowe błędy myślowe, które prowadzą do takich nieprawidłowych wniosków, to brak znajomości podstawowych zasad działania zapytań SQL oraz mylenie koncepcji usuwania danych z modyfikowaniem ich zawartości.

Pytanie 14

Wskaż, jaki błąd walidacyjny zawiera przedstawiony fragment kodu w języku HTML 5.

<h6>CSS</h6>
<p>Kaskadowe arkusze stylów (<b>ang. <i>Cascading Style Sheets</b></i>)<br>to język służący ...</p>
A. Znacznik h6 nie jest używany w HTML5
B. Znacznik br nie powinien znajdować się wewnątrz znacznika p
C. Znacznik br nie został prawidłowo zamknięty
D. Znacznik zamykający /b jest niezgodny z zasadą zagnieżdżania
Znacznik br w języku HTML5 może być stosowany samodzielnie i nie wymaga dodatkowego zamykania. Jest to znacznik pusty, który służy do wstawiania przerw w tekście i nie ma żadnych treści wewnętrznych. Jest szeroko używany i całkowicie dopuszczalny w ramach standardu HTML5. Użycie go wewnątrz znacznika p nie jest błędem; br jest wykorzystywany do łamania linii w akapitach i jest często stosowany w celach formatowania tekstu. W przypadku znacznika <h6>, jest on jak najbardziej częścią HTML5, służąc do definiowania nagłówków o najmniejszej ważności w hierarchii nagłówków. Zastosowanie wszystkich sześciu poziomów nagłówków (<h1> do <h6>) jest zgodne ze standardami, a każdy z nich ma swoje specyficzne zastosowanie w strukturze dokumentu. Dlatego też odpowiedzi sugerujące, że znacznik br musi być zamknięty lub że h6 nie jest częścią HTML5, są błędne i wynikają z niezrozumienia lub nieaktualnej wiedzy na temat standardów HTML. Prawidłowa konstrukcja dokumentu HTML i znajomość specyfikacji pozwalają na tworzenie semantycznie poprawnych i dobrze działających stron WWW.

Pytanie 15

W MS SQL Server predefiniowana rola o nazwie dbcreator umożliwia użytkownikowi

A. zarządzanie plikami na nośniku
B. zarządzanie zabezpieczeniami systemu
C. tworzenie, aktualizowanie, usuwanie oraz przywracanie bazy danych
D. wykonywanie wszelkich operacji na serwerze oraz posiadanie praw do każdej bazy
Wszystkie pozostałe odpowiedzi są niepoprawne z punktu widzenia funkcji przypisanych do roli dbcreator w MS SQL Server. Stwierdzenie, że rola ta pozwala na wykonywanie każdej operacji na serwerze i posiadanie prawa własności każdej bazy, jest błędne, ponieważ taka funkcjonalność jest zarezerwowana dla roli sysadmin, która ma pełne uprawnienia serwera. Użytkownicy z rolą sysadmin mogą wykonywać jakiekolwiek operacje, co stawia ich w pozycji pełnej kontroli, w przeciwieństwie do roli dbcreator, która jest ograniczona do zarządzania bazami danych. Odnośnie zarządzania bezpieczeństwem systemu, to również nie jest odpowiednia funkcja dla dbcreator, ponieważ zarządzanie bezpieczeństwem wymaga bardziej zaawansowanych uprawnień, które są przydzielane innym rolom, takim jak securityadmin. W końcu, zarządzanie plikami na dysku nie wchodzi w zakres kompetencji dbcreator, ponieważ ta rola skupia się na operacjach związanych z bazami danych, a nie na zarządzaniu systemem plików czy innymi zasobami systemowymi. Te nieprawidłowe wnioski mogą wynikać z nieporozumienia dotyczącego funkcji ról w SQL Server, a także z braku znajomości hierarchii uprawnień oraz ich zastosowania w praktyce. Zrozumienie różnic między rolami jest kluczowe w kontekście efektywnego zarządzania bezpieczeństwem i dostępem w środowisku baz danych.

Pytanie 16

Wskaż polecenie SQL, które dodaje kolumnę miesiacSiewu do już istniejącej tabeli rośliny

A. CREATE TABLE rosliny {miesiacSiewu int}
B. ALTER TABLE rosliny ADD miesiacSiewu int
C. UPDATE rosliny ADD miesiacSiewu int
D. INSERT INTO rosliny Values (miesiacSiewu int)
Pierwsza niepoprawna odpowiedź wykorzystuje polecenie 'UPDATE rosliny ADD miesiacSiewu int;', ale to zupełnie nie to, bo UPDATE jest do zmieniania już istniejących rekordów, a nie do dodawania kolumn. Kolejna odpowiedź, w której jest 'CREATE TABLE rosliny {miesiacSiewu int};', to też zły pomysł. CREATE TABLE jest do tworzenia nowych tabel, co w tym przypadku nie ma sensu, bo tabela 'rosliny' już przecież jest. Stworzenie nowej tabeli zamiast zmieniania tej istniejącej tylko by skomplikowało sprawę. Ostatnia odpowiedź z 'INSERT INTO rosliny Values (miesiacSiewu int);' też nie pasuje, bo INSERT INTO jest do dodawania nowych rekordów, a nie do kolumn. Do tego to 'miesiacSiewu int' nie powinno się tam znaleźć, bo w poleceniu INSERT powinny być rzeczywiste dane, a nie definicje typów. Te niepoprawne odpowiedzi pokazują różne rzeczy w SQL, ale żadna z nich nie osiąga celu dodania kolumny do istniejącej tabeli.

Pytanie 17

Ustalenie w języku CSS wartości background-attachment: scroll oznacza, że

A. tło witryny pozostanie nieruchome i nie będzie się przesuwać podczas przewijania strony
B. obraz tła pojawi się w prawym górnym rogu witryny
C. obrazek tła będzie się powtarzać (kafelki)
D. tło witryny będzie przesuwane wraz z przewijaniem strony
Wszystkie pozostałe odpowiedzi zawierają błędne interpretacje właściwości 'background-attachment: scroll'. W pierwszej odpowiedzi sugeruje się, że ta właściwość powoduje powtarzanie grafiki tła. W rzeczywistości powtarzanie tła reguluje właściwość 'background-repeat', a nie 'background-attachment'. Właściwość ta jest odpowiedzialna za sposób, w jaki tło jest renderowane na stronie, a nie za jego przewijanie. Natomiast w odpowiedzi odnoszącej się do stałego tła, również jest to niepoprawne rozumienie. 'background-attachment: fixed' jest właściwością, która ustawia tło w taki sposób, aby pozostawało nieruchome podczas przewijania strony. Użytkownicy mogą być skłonni pomylić te dwie właściwości, co prowadzi do nieporozumień w projektowaniu stron. Warto również zauważyć, że umieszczanie grafiki w określonym miejscu, jak w odpowiedzi sugerującej umiejscowienie w prawym górnym rogu, jest regulowane przez właściwość 'background-position', a nie 'background-attachment'. Takie błędne podejście może prowadzić do nieefektywnego wykorzystania CSS oraz do problemów w interpretacji stylów przez przeglądarki. Zrozumienie różnicy między tymi właściwościami jest kluczowe dla skutecznego projektowania i implementacji stylów CSS, co jest fundamentalne w branży web developmentu. Używanie odpowiednich właściwości w odpowiednich kontekstach pozwala na uzyskanie optymalnych efektów wizualnych i funkcjonalnych na stronach internetowych.

Pytanie 18

W języku JavaScript funkcja getElementById odnosi się do

A. klasy zdefiniowanej w CSS
B. elementu HTML z określoną nazwą klasy
C. zmiennej numerycznej
D. elementu HTML z podanym id
Wybór odpowiedzi dotyczącej zmiennej liczbowej jest błędny, ponieważ metoda getElementById nie odnosi się w żaden sposób do typów danych, takich jak liczby. Metoda ta jest skoncentrowana na manipulacji elementami HTML, a nie na danych. Natomiast powiązanie z klasą zdefiniowaną w CSS jest również mylące. getElementById nie działa na klasach; zamiast tego, aby uzyskać elementy na podstawie klasy, używa się metody getElementsByClassName lub querySelector. Identyfikowanie elementów za pomocą klas nie jest wystarczające, ponieważ może prowadzić do sytuacji, gdzie wiele elementów ma tę samą klasę, co nie jest zgodne z ideą unikalności id. Próba użycia id w kontekście tagów HTML o podanej nazwie klasy również jest błędna, ponieważ id powinno być używane do unikalnego identyfikowania elementów, a klasy służą do grupowania elementów. Niektórzy deweloperzy mogą mylić te dwa koncepty, co prowadzi do nieefektywnego kodu oraz problemów w zarządzaniu stylami i skryptami. W związku z tym, kluczowe jest, aby pamiętać, że getElementById jest dedykowane do pracy z unikalnymi identyfikatorami, a nie z klasami czy innymi typami danych.

Pytanie 19

Według zasad walidacji HTML5, właściwym zapisem dla znacznika hr jest

A. </ hr />
B. <hr>
C. </hr?>
D. </ hr>
Znaczniki HTML mają ściśle określoną składnię, której nieprzestrzeganie prowadzi do błędów interpretacji przez przeglądarki oraz problemów z dostępnością. W przypadku odpowiedzi, które zawierają '/ hr', '/hr?>' oraz '/ hr />', pojawia się nieporozumienie dotyczące struktury znaczników samodzielnych. W HTML5 znaczniki takie jak <hr> są elementami samodzielnymi, co oznacza, że nie potrzebują ani otwierającego, ani zamykającego znacznika. Użycie '/ hr' sugeruje, że element wymaga zamknięcia, co jest błędne. Ponadto, '/hr?>' zawiera nieprawidłowy znak '>', który w kontekście HTML nie ma sensu, co skutkuje błędem w kodzie. ' />' w odpowiedzi '/ hr />' może powodować mylenie z XHTML, gdzie rzeczywiście wymagane jest zamknięcie dla elementów samodzielnych. XHTML i HTML5 to różne standardy, a HTML5 został zaprojektowany w taki sposób, aby uprościć pisanie kodu i zwiększyć jego czytelność. Typowe błędy myślowe obejmują mylenie zasad dotyczących XHTML z HTML5 oraz niewłaściwe rozumienie, że wszystkie elementy muszą być zamykane. Ważne jest, aby zrozumieć różnice między tymi dwiema technologiami oraz stosować aktualne standardy, aby zapewnić kompatybilność i poprawność kodu.

Pytanie 20

Jakiego elementu w języku HTML brakuje, aby walidator HTML zgłosił ostrzeżenie lub błąd?

A. <link>
B. przynajmniej jednego <h1>
C. <title>
D. <meta name="author" content=". . . .">
Odpowiedzi związane z elementami <link>, przynajmniej jednym <h1> oraz <meta name="author" content="..."> mogą wydawać się istotne w kontekście tworzenia strony internetowej, jednak nie są one obowiązkowe dla poprawnej walidacji dokumentu HTML. Element <link> jest używany do łączenia dokumentu HTML z zewnętrznymi zasobami, takimi jak arkusze stylów CSS, ale jego brak nie powoduje błędów walidacyjnych. W przypadku <h1>, jest to istotny element struktury nagłówków w HTML, ale nie ma wymogu, aby na stronie znajdował się przynajmniej jeden taki element. Choć warto stosować nagłówki do hierarchizacji treści, ich brak nie skutkuje ostrzeżeniem. Z kolei element <meta name="author"> dostarcza informacji o autorze strony, ale również nie jest obowiązkowy dla walidacji HTML. Nieprawidłowe podejście do wnioskowania o znaczeniu tych elementów może prowadzić do błędnych założeń o ich krytycznej roli w strukturze HTML. Ważne jest, aby zrozumieć, że standardy HTML definiują zasady walidacji, a element <title> jest jednym z nielicznych, które są uznawane za obligatoryjne w każdym dokumencie. Zrozumienie tych zasad pozwala na lepsze projektowanie stron, które są zgodne z najlepszymi praktykami oraz wymaganiami SEO.

Pytanie 21

Jakie zapytanie SQL będzie odpowiednie do odnalezienia w podanej tabeli tylko imion oraz nazwisk pacjentów, którzy przyszli na świat przed rokiem 2002?

Ilustracja do pytania
A. SELECT imie, nazwisko FROM Pacjenci WHERE data_ostatniej_wizyty < 2002
B. SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002
C. SELECT * FROM Pacjenci WHERE rok_urodzenia <= 2002
D. SELECT * FROM Pacjenci WHERE rok_urodzenia LIKE 2002
W tym zapytaniu zastosowałeś składnię SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002, co jest super, bo pozwala wyciągnąć tylko te imiona i nazwiska pacjentów, którzy urodzili się przed rokiem 2002. Użycie konkretnych kolumn jak imie i nazwisko zamiast znaku * to niezła sprawa, bo ogranicza wyniki do tego, co naprawdę potrzebujesz. To z kolei może znacząco zwiększyć wydajność przesyłania danych. No i to WHERE rok_urodzenia < 2002 – świetny ruch! Fajnie, że potrafisz filtrować dane według konkretnego warunku. Bez tego miałbyś wszystkie osoby, nie tylko te sprzed 2002 roku. To jest właśnie selekcja warunkowa w SQL, a jej znajomość to podstawa przy analizie danych. Zgadzam się również, że uniknięcie znaków wieloznacznych jak LIKE w tej sytuacji to dobre podejście, bo używasz bezpośrednich porównań liczbowych, co generalnie działa lepiej i daje jaśniejsze wyniki.

Pytanie 22

Aby uzyskać rezultaty działania skryptu napisanego w języku PHP, który jest częścią strony WWW, musi on być

A. zinterpretowany po stronie klienta
B. skomponowany po stronie klienta
C. skomponowany po stronie serwera
D. zinterpretowany po stronie serwera
Pierwsza niepoprawna odpowiedź sugeruje, że PHP powinno działać po stronie klienta, a to nie ma sensu. PHP to język interpretowany, więc nie trzeba go kompilować do jakiegoś tam kodu maszynowego przed uruchomieniem. Nasze przeglądarki nie ogarniają kodu PHP, tylko chcą dostać gotowy HTML. Druga błędna odpowiedź znowu mówi o kompilacji, ale to nie tak działa. Choć są kompilatory PHP, to standardowo PHP działa na zasadzie interpretacji, a nie kompilacji. Ta interpretacja pozwala na to, żeby treści były generowane dynamicznie. Na koniec, ostatnia z błędnych odpowiedzi twierdzi, że PHP powinno działać po stronie klienta, co też jest totalnie nieprawda. PHP przetwarzany jest na serwerze, a klient dostaje już tylko wynik w HTML, CSS i JavaScript. Nie ma dostępu do źródłowego kodu PHP, bo jest on przerobiony przez serwer zanim trafi do klienta. To zapewnia bezpieczeństwo i wydajność stron, bo serwer ogarnia logikę, a klient tylko wyświetla to, co dostaje.

Pytanie 23

Jakie wyrażenie należy umieścić w miejsce ??? w pętli napisanej w języku C++, aby na ekranie zostały wyświetlone wyłącznie elementy tablicy tab?

int tab[6];
for (int i = 0; ???; i++)
    cout << tab[i];
A. i >= 6
B. i <= 6
C. i < 6
D. i > 6
Niepoprawne wybory wyrażenia warunkowego w pętli for mogą prowadzić do różnych problemów, z których głównym jest przekroczenie zakresu tablicy, co jest powszechnym błędem w programowaniu w językach takich jak C++. Błędne zastosowanie warunku i >= 6 spowodowałoby, że pętla nie wykonałaby się ani razu, ponieważ początkowa wartość i wynosi 0, co nie spełnia tego warunku. Warunek i <= 6 może wydawać się poprawny, ponieważ uwzględnia indeks 6, jednak indeks ten wykracza poza zakres tablicy posiadającej 6 elementów (z indeksami od 0 do 5), co prowadziłoby do błędu out-of-bounds. Warunek i > 6 również jest błędny, ponieważ nigdy nie zostanie spełniony przy początkowej wartości i równej 0, a pętla tym samym się nie wykona. Typowe błędy myślowe prowadzące do takich wyborów wynikają z nieprawidłowego rozumienia indeksowania tablic oraz zakresu pętli. Ważne jest, aby dokładnie przeanalizować, jak indeksy są przypisywane w tablicach i dostosować warunki pętli, aby zawsze mieściły się w poprawnym zakresie. Aby uniknąć takich błędów, zaleca się stosowanie podejścia, które uwzględnia długość tablicy i iteruje do mniejszej wartości niż jej rozmiar. Tego typu prewencja nie tylko zwiększa stabilność programu, ale również jego bezpieczeństwo, eliminując ryzyko naruszenia pamięci programu i potencjalnych podatności bezpieczeństwa.

Pytanie 24

Jaką kompetencję społeczną możemy przypisać osobie, która potrafi wyrażać swoje zdanie oraz argumentować swoje racje, nie naruszając przy tym granic własnych i innych ludzi?

A. Empatia
B. Akomodacja
C. Asertywność
D. Konformizm
Empatia, akomodacja i konformizm to pojęcia, które choć związane z interakcjami społecznymi, nie oddają istoty umiejętności wyrażania własnego zdania w sposób asertywny. Empatia, często mylona z asertywnością, odnosi się do zdolności do rozumienia uczuć i perspektyw innych ludzi. Osoba empatyczna może dostrzegać, co czują inni, ale niekoniecznie jest w stanie wyrażać swoje własne zdanie w sposób, który nie narusza ich przestrzeni. Akomodacja z kolei polega na dostosowywaniu się do potrzeb i oczekiwań innych, często kosztem własnych przekonań, co stoi w sprzeczności z asertywnym wyrażaniem siebie. Osoba stosująca akomodację może unikać konfliktów, lecz nie zyskuje na autentyczności ani nie rozwija umiejętności obrony własnych racji. Konformizm natomiast to tendencja do dostosowywania się do norm grupowych, co może prowadzić do rezygnacji z osobistych przekonań. Chociaż konformizm może pomagać w budowaniu relacji, często wymaga poświęcenia indywidualności, co jest niewłaściwe w kontekście asertywności. W praktyce, zbyt duży nacisk na empatię, akomodację czy konformizm może prowadzić do problemów komunikacyjnych i utraty osobistej tożsamości, co nie jest zgodne z ideą asertywnego wyrażania swoich poglądów.

Pytanie 25

var obj1 = {     czescUlamkowa: 10,     czescCalkowita: 20,     oblicz: function) {...} } Kod przedstawiony powyżej jest zapisany w języku JavaScript. W podanej definicji obiektu, metodą jest element o nazwie

A. czescUlamkowa
B. oblicz
C. obj1
D. czescCalkowita
Zrozumienie, dlaczego obj1 i jego właściwości czescUlamkowa oraz czescCalkowita nie są metodami, to kluczowy element nauki programowania w JavaScript. Obiekt obj1 to jakby instancja, która przechowuje dane, ale nie jest funkcją ani metodą. Generalnie, obiekt to struktura z różnymi właściwościami i metodami, ale sama z siebie nie robi nic. CzescUlamkowa i czescCalkowita to tylko właściwości z wartościami liczbowymi, ale nie mają w sobie żadnej logiki wykonawczej. Więc mylenie ich z metodami jest po prostu błędne, bo nie mają przypisanych funkcji ani nie są zdefiniowane jako funkcje w kontekście tego obiektu. Żeby właściwości stały się metodami, musiałyby być zdefiniowane jako funkcje, jak ta nasza oblicz. Metoda oblicz to przykład funkcji związanej z obiektem, a nie tylko przechowującej dane. Dlatego całość obj1 i jego właściwości czescUlamkowa oraz czescCalkowita nie mogą być uznawane za metody. Ważne jest, żeby to zrozumieć, bo to wpływa na to, jak zarządza się danymi w aplikacjach JavaScript.

Pytanie 26

Zapis CSS w postaci: ```ul{ list-style-image:url('rys.gif');}``` spowoduje, że na stronie internetowej

A. rys.gif będzie służyć jako tło dla nienumerowanej listy
B. punktorem nienumerowanej listy stanie się rys.gif
C. rysunek rys.gif zostanie wyświetlony jako punkt listy nienumerowanej
D. każdy element listy zyska indywidualne tło pochodzące z grafiki rys.gif
Podane odpowiedzi, które sugerują alternatywne interpretacje, nie są zgodne z rzeczywistością techniczną CSS. Przede wszystkim, twierdzenie, że rys.gif będzie stanowił ramkę dla listy nienumerowanej, jest błędne, ponieważ właściwość 'list-style-image' nie ma wpływu na obramowanie listy, a jedynie na sposób, w jaki są wyświetlane punkty listy. CSS do definiowania obramowań używa innych właściwości, takich jak 'border'. Z kolei stwierdzenie o wyświetlaniu rysunku rys.gif jako tł listy nienumerowanej jest mylące; to nie jest tło całej listy, ale pojedyncze punkty, które zastępują tradycyjne znaczniki. Ostatnia niepoprawna odpowiedź sugeruje, że każdy punkt listy miałby osobne tło pobrane z grafiki rys.gif. Jest to błędne, ponieważ definicja tła w CSS dotyczy całego elementu, a nie poszczególnych znaczników. Aby uzyskać różne tła dla elementów listy, należałoby użyć oddzielnych właściwości CSS dla każdego z nich zamiast 'list-style-image'. Dlatego wszystkie te odpowiedzi nie uwzględniają zasadniczej funkcji właściwości CSS, jaką jest kontrolowanie wizualnych markerów listy.

Pytanie 27

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 28

Który z poniższych sposobów wyświetlania tekstu nie jest określony w języku JavaScript?

A. Metoda document.write()
B. Funkcja window.alert()
C. Właściwość innerHTML
D. Funkcja MessageBox()
Niestety, wszystkie trzy odpowiedzi, które zaznaczyłeś, są poprawne w JavaScript i mają swoje własne zastosowania. Własność innerHTML to jedna z najpopularniejszych metod do modyfikacji zawartości HTML. Umożliwia ona dodawanie nowych wartości do elementów, co pozwala na dynamiczne zmienianie treści strony bez przeładowania jej. Technicznie, innerHTML można używać w każdym elemencie HTML i akceptuje zarówno tekst, jak i poprawny kod HTML. Metoda window.alert() to prosta funkcja, dzięki której można pokazać komunikat w oknie przeglądarki, co bywa przydatne w różnych sytuacjach, na przykład do potwierdzania działań lub informowania o błędach. Te metody są dość podstawowe, ale ich wykorzystanie w aplikacjach webowych może być ograniczone przez kwestie estetyki oraz doświadczenia użytkownika. Natomiast document.write() to starsza technika, która pozwala na wypisywanie treści w trakcie ładowania strony. Choć dziś nie jest zbyt często używana w nowoczesnych praktykach, można ją jeszcze spotkać w prostych skryptach czy materiałach edukacyjnych. Warto jednak wiedzieć, że w dzisiejszym programowaniu lepiej korzystać z metod manipulacji DOM, jak document.createElement(), czy używać frameworków jak React czy Vue.js, które oferują bardziej rozbudowane podejście do zarządzania zawartością stron.

Pytanie 29

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. td, th { background-color: Pink; }
B. tr { background-color: Pink; }
C. tr:active { background-color: Pink; }
D. tr:hover { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 30

W aplikacji PHP do bazy danych została wysłana kwerenda SELECT przy pomocy funkcji mysqli_query. Jaką funkcję powinien wykorzystać użytkownik, aby ustalić, ile rekordów zostało zwróconych przez zapytanie?

A. mysqli_num_rows
B. mysqli_query
C. mysqli_connect
D. mysqli_fetch_row
Przy wyborze niewłaściwych funkcji jako alternatywy dla mysqli_num_rows pojawia się wiele nieporozumień dotyczących operacji na wynikach zapytań w PHP. Wybór mysqli_fetch_row sugeruje, że użytkownik mylnie zakłada, iż ta funkcja zwraca liczbę rekordów. W rzeczywistości, mysqli_fetch_row służy do pobierania kolejnych wierszy z wyniku zapytania jako tablicy, co oznacza, że do zliczenia rekordów musielibyśmy wielokrotnie wywoływać tę funkcję w pętli, co jest nieefektywne i niezgodne z zasadami optymalizacji. Z kolei mysqli_query, choć fundamentem do wykonania zapytania, nie ma funkcji zliczającej rekordy. Użytkownicy często mylą jej wydajność z funkcją zliczania, co prowadzi do nieefektywnego kodu. Funkcja mysqli_connect jest przeznaczona do nawiązywania połączenia z bazą danych, a nie do operacji na wynikach zapytań. Jest to typowy błąd nowicjuszy, którzy nie rozumieją, że użycie funkcji do zaistnienia w bazie nie ma związku ze zliczaniem rekordów. W praktyce, aby uzyskać informacje o liczbie rekordów, kluczowe jest zrozumienie, że każda z tych funkcji ma swoje zdefiniowane zadania i użycie ich w nieodpowiednich kontekstach prowadzi do nieoptymalnych rozwiązań, co jest sprzeczne z najlepszymi praktykami programowania.

Pytanie 31

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
Niestety, twoja odpowiedź jest niepoprawna. Właściwość CSS box-sizing: border-box sprawia, że szerokość elementu obejmuje zarówno treść, jak i obramowanie. Zatem, jeżeli w definicji CSS dla elementu body ustawiono szerokość na 560 px, oznacza to, że całkowita szerokość strony wynosi 560 px, niezależnie od szerokości obramowania. Powszechnym błędem jest mylenie szerokości całkowitej strony z szerokością jej treści, pomijając przy tym obramowanie. W przypadku właściwości box-sizing: border-box szerokość elementu obejmuje zarówno treść, jak i obramowanie, co jest standardem stosowanym w projektowaniu stron internetowych. Wszystkie odpowiedzi, które sugerują inny wynik, są błędne. Ważne jest, aby zrozumieć, jak działają różne jednostki i właściwości CSS, aby poprawnie definiować wymiary i rozmieszczenie elementów na stronie.

Pytanie 32

W MS SQL Server komenda RESTORE DATABASE jest używana do

A. zaktualizowania bazy danych z weryfikacją więzów integralności
B. przywrócenia bazy danych z kopii zapasowej
C. rekonstrukcji bazy danych na podstawie danych buforowanych
D. usunięcia bazy danych z serwera centralnego subskrybenta
Odpowiedzi, które wskazują na inne funkcje polecenia RESTORE DATABASE, nie uwzględniają kluczowej roli, jaką odgrywa ono w odtwarzaniu bazy danych z kopii zapasowej. Przykładowo, odświeżenie bazy danych z kontrolą więzów integralności sugeruje, że polecenie to zajmuje się aktywnym zarządzaniem danymi i ich integralnością, co jest mylnym zrozumieniem jego funkcji. Kontrola integralności danych jest istotna, ale nie jest bezpośrednio związana z procesem przywracania bazy. Inna niepoprawna koncepcja odnosi się do przebudowywania bazy danych w oparciu o buforowane dane, co sugeruje, że można modyfikować strukturę bazy w oparciu o dane przechowywane w pamięci operacyjnej. Takie podejście jest błędne, ponieważ przywracanie bazy danych z kopii zapasowej ma na celu przywrócenie jej dokładnego stanu, a nie zmianę. Wreszcie, usunięcie bazy danych z serwera subskrybenta nie ma żadnego związku z poleceniem RESTORE DATABASE, które jest używane do odtwarzania, a nie usuwania. Te mylne interpretacje mogą prowadzić do poważnych błędów w zarządzaniu bazami danych, dlatego kluczowe jest, aby zrozumieć konkretne funkcje i zastosowania polecenia w kontekście administracji baz danych.

Pytanie 33

Określ złożoność obliczeniową algorytmu naiwnego (zwykłego) poszukiwania minimum w kolekcji liczb?

A. O(n!)
B. O(n)
C. O(n2)
D. O(n3)
Algorytm naiwnego (zwykłego) wyszukiwania minimum w zbiorze liczb charakteryzuje się złożonością obliczeniową O(n), co oznacza, że jego czas wykonania rośnie liniowo w zależności od liczby elementów w zbiorze. W praktyce oznacza to, że aby znaleźć najmniejszy element w zbiorze liczb, algorytm przeszukuje wszystkie elementy, porównując je ze sobą. W przypadku zbioru zawierającego n elementów, konieczne jest wykonanie n-1 porównań, co skutkuje liniową złożonością. Wyszukiwanie minimum jest użyteczne w wielu aplikacjach, takich jak analiza danych, gdzie może być wykorzystywane do szybkiego lokalizowania najniższej wartości w zestawie wyników. Dobrymi praktykami w tym zakresie są stosowanie tego algorytmu w sytuacjach, gdy zbiór danych jest relatywnie mały lub gdy zależy nam na prostocie i czytelności kodu. Złożoność O(n) jest optymalna dla tego typu operacji, ponieważ nie da się znaleźć minimum bez przeszukania każdego elementu przynajmniej raz, co potwierdza zasadę, że konieczne jest zbadanie wszystkich danych w celu uzyskania poprawnego wyniku.

Pytanie 34

Utworzono bazę danych z tabelą mieszkancy, która zawiera pola: nazwisko, imie, miasto. Następnie zrealizowano poniższe zapytanie do bazy: ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' UNION ALL SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Kraków';``` Wskaź, które zapytanie zwróci te same dane.

A. ```SELECT nazwisko, imie FROM mieszkancy AS 'Poznań' OR 'Kraków';```
B. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' OR miasto='Kraków';```
C. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto HAVING 'Poznań' OR 'Kraków';```
D. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto BETWEEN 'Poznań' OR 'Kraków';```
Wszystkie niepoprawne odpowiedzi zawierają błędy syntaktyczne lub logiczne, które uniemożliwiają prawidłowe wykonanie zapytania. W pierwszej odpowiedzi użycie aliasu 'AS' jest niewłaściwe w tym kontekście, ponieważ nie można zastosować aliasu dla warunku w klauzuli WHERE. SQL nie interpretuje 'OR' w ten sposób, co powoduje, że zapytanie nie zwróci żadnych wyników. Druga odpowiedź z zastosowaniem klauzuli HAVING jest także błędna, ponieważ HAVING służy do filtrowania wyników po agregacji, a nie do prostego filtrowania danych w kolumnach. W tym przypadku poprawne byłoby użycie WHERE, które jest dedykowane do tego celu. Ostatnia odpowiedź z użyciem 'BETWEEN' jest zupełnie nieprawidłowa, ponieważ operator BETWEEN oczekuje dwóch wartości do porównania oraz nie może być używany z wieloma wartościami za pomocą 'OR'. W przypadku miast, powinno się stosować warunek, który precyzyjnie zdefiniuje, które miasta mają być brane pod uwagę, co w tej sytuacji nie zostało spełnione. Te błędy wskazują na nieprawidłowe zrozumienie zasad działania SQL oraz różnic pomiędzy operatorami logicznymi.

Pytanie 35

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

Ilustracja do pytania
A. jeden do wielu, gdzie kluczem obcym jest pole w tabeli uslugi
B. jeden do wielu, gdzie kluczem obcym jest pole w tabeli kadra
C. jeden do jednego, gdzie obie tabele mają przypisane klucze obce
D. wiele do wielu pomiędzy kluczami głównymi obu tabel
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 36

Które z poniższych poleceń przywróci funkcjonalność uszkodzonej tabeli w SQL?

A. REPAIR TABLE tbl_name
B. ANALYZE TABLE tbl_name
C. REGENERATE TABLE tbl_name
D. OPTIMIZE TABLE tbl_name
Pozostałe polecenia, takie jak REGENERATE TABLE, OPTIMIZE TABLE i ANALYZE TABLE, nie służą do naprawy uszkodzonych tabel, co czyni je nieodpowiednimi w kontekście podanego pytania. REGENERATE TABLE jest w rzeczywistości niepoprawnym poleceniem, ponieważ nie istnieje takie polecenie w standardowych implementacjach SQL. Możliwe, że chodziło o inny kontekst, jednak w tej formie nie ma zastosowania. OPTIMIZE TABLE jest używane do optymalizacji struktury tabeli, co może poprawić wydajność zapytań poprzez reorganizację danych, ale nie ma na celu naprawy uszkodzeń. Proces ten działa poprzez usuwanie nieaktualnych danych i zmniejszanie fragmentacji, a nie przez naprawę uszkodzonej struktury. Z kolei ANALYZE TABLE służy do zbierania statystyk dotyczących tabeli oraz indeksów, co pozwala silnikowi bazy danych lepiej planować wykonanie zapytań. Chociaż jest to ważne dla wydajności bazy danych, to jednak nie ma związku z naprawą potencjalnych uszkodzeń. Wszystkie te polecenia pełnią swoje funkcje w zarządzaniu bazami danych, jednak nie są w stanie efektywnie naprawić uszkodzonej tabeli jak REPAIR TABLE.

Pytanie 37

Podstawowym celem korzystania z edytora WYSIWYG jest

A. szybka wizualizacja tworzonej strony
B. ściąganie z Internetu pełnych portali WWW
C. wykrywanie błędów w bazie danych
D. automatyzacja odtwarzania plików multimedialnych
Edytory WYSIWYG (What You See Is What You Get) są narzędziami, które umożliwiają tworzenie i edytowanie treści internetowych w sposób wizualny, co oznacza, że użytkownik widzi na ekranie dokładnie to, co otrzyma po zapisaniu dokumentu. Głównym celem ich stosowania jest przyspieszenie procesu projektowania stron internetowych poprzez natychmiastowe wizualizowanie zmian. Dzięki temu, osoby nieposiadające zaawansowanej wiedzy programistycznej mogą łatwo tworzyć atrakcyjne wizualnie strony, co ma ogromne znaczenie w kontekście szybkiego rozwoju branży webowej. Przykłady zastosowania edytorów WYSIWYG to platformy takie jak WordPress, Wix czy Squarespace, które umożliwiają użytkownikom dodawanie treści, obrazów i multimediów bez potrzeby pisania kodu. Warto również zauważyć, że edytory te wspierają standardy webowe, takie jak HTML5 i CSS3, co pozwala na optymalizację stron pod kątem SEO oraz responsywności. W związku z rosnącą popularnością edytorów WYSIWYG, znajomość ich działania staje się kluczowa dla każdego, kto pragnie efektywnie zarządzać treściami w sieci.

Pytanie 38

Strona internetowa została stworzona w języku XHTML. Który z poniższych kodów reprezentuje realizację zaprezentowanego fragmentu strony, jeśli nie zdefiniowano żadnych stylów CSS?

Ilustracja do pytania
A. B
B. D
C. A
D. C
Odpowiedzi nieprawidłowe nie spełniają wymogów semantycznych oraz składniowych XHTML. XHTML wymaga, aby dokumenty były poprawne pod względem składniowym, co oznacza między innymi zamykanie wszystkich znaczników oraz stosowanie poprawnej struktury dokumentu. Warianty odpowiedzi, które używają znacznika <b> zamiast semantycznych nagłówków jak <h1>, nie są zgodne z dobrymi praktykami, ponieważ <h1> nadaje kontekst semantyczny, informując o hierarchii treści. W przypadku XHTML, znaczniki powinny być zamykane, a ich nazwy pisane małymi literami, co jest kluczowe dla zgodności z XML. Brak odpowiedniej struktury, jak w przypadku użycia <b> do nagłówków, może prowadzić do niepoprawnej interpretacji przez przeglądarki oraz problemy z dostępnością dla technologii wspomagających. Ponadto, używanie znaczników inline jak <br> do wizualnego formatowania tekstu nie jest zalecane, gdyż nie oddziela treści od prezentacji, co jest jednym z fundamentalnych założeń nowoczesnego tworzenia stron internetowych. To może prowadzić do problemów z dostępnością oraz negatywnie wpływać na SEO, jako że wyszukiwarki lepiej interpretują treści poprawnie zorganizowane i semantycznie poprawne.

Pytanie 39

Po zrealizowaniu polecenia użytkownik Jacek będzie miał możliwość

GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost';
A. usuwać rekordy z tabeli i przeglądać informacje
B. przeglądać dane w tabeli i wstawiać nowe dane
C. modyfikować strukturę tabeli oraz dodawać nowe dane
D. usuwać tabelę i zakładać nową
Wydawać by się mogło, że przyznane uprawnienia w odpowiedzi na pytanie dają użytkownikowi Jacek możliwość pełnej kontroli nad tabelą, jednakże jest to błędne założenie. Należy zauważyć, że opcje takie jak usuwanie tabeli czy zmiana jej struktury wymagają zupełnie innych uprawnień. Na przykład, aby usunąć tabelę, potrzebne są uprawnienia DROP, a do zmiany struktury tabeli konieczne są uprawnienia ALTER. Takie niepoprawne rozumienie zakresu uprawnień użytkownika może prowadzić do niebezpiecznych błędów w operacjach na bazie danych. Podobnie, wstawianie i usuwanie danych w tabeli wymaga różnych uprawnień, które powinny być odpowiednio zarządzane, aby zapobiegać sytuacjom, w których użytkownicy mogą przypadkowo lub celowo zniszczyć istotne dane. W branży IT kluczowe jest stosowanie zasady najmniejszych uprawnień, co oznacza, że użytkownikom powinno się nadawać jedynie te uprawnienia, które są niezbędne do wykonania ich zadań. Ignorując tę zasadę i udostępniając pełne uprawnienia, narażamy się na ryzyko utraty danych i naruszenia bezpieczeństwa informacji. Należy zawsze mieć na uwadze, że zarządzanie uprawnieniami w bazach danych jest fundamentem dobrej praktyki w obszarze bezpieczeństwa oraz integralności danych.

Pytanie 40

W MSSQL Server rola dbcreator, która jest predefiniowana, umożliwia użytkownikowi

A. zarządzanie bezpieczeństwem systemu
B. wykonywanie każdej operacji na serwerze i posiadanie prawa własności każdej bazy
C. zarządzanie plikami na dysku
D. tworzenie, modyfikowanie, usuwanie i odzyskiwanie bazy danych
Rola dbcreator w Microsoft SQL Server jest jedną z predefiniowanych ról serwerowych, która umożliwia użytkownikom zaawansowane zarządzanie bazami danych. Użytkownicy z tą rolą mają pełne uprawnienia do tworzenia nowych baz danych, modyfikowania istniejących oraz usuwania ich, co jest kluczowe dla administratorów i deweloperów pracujących w środowisku SQL. Rola ta pozwala także na odzyskiwanie baz danych, co jest niezbędne w kontekście zarządzania danymi krytycznymi oraz zapewniania ciągłości działania aplikacji. Przykład praktyczny zastosowania roli dbcreator można zobaczyć w sytuacji, gdy zespół deweloperski tworzy nowe środowisko testowe na podstawie istniejącej bazy danych produkcyjnej. Dzięki tej roli, deweloperzy mogą w łatwy sposób sklonować bazę, przeprowadzić modyfikacje i testy, a następnie usunąć niepotrzebne już zasoby. Standardy bezpieczeństwa oraz dobre praktyki zarządzania danymi zalecają ograniczanie uprawnień, co czyni rolę dbcreator narzędziem potężnym, ale wymagającym odpowiedzialnego podejścia ze strony użytkowników.