Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 9 maja 2026 01:13
  • Data zakończenia: 9 maja 2026 01:30

Egzamin zdany!

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

Strona internetowa powinna mieć zorganizowaną strukturę bloków. Aby osiągnąć ten układ, należy przypisać sekcjom odpowiednie właściwości w ten sposób:

Ilustracja do pytania
A. float jedynie dla bloków: 3, 4; clear dla bloku 5
B. float tylko dla bloku 2; clear dla bloków: 3, 4
C. float wyłącznie dla bloku 5; clear dla bloku 2
D. float tylko dla bloków: 2, 3, 4; clear dla bloku 5
Odpowiedź czwarta jest prawidłowa, ponieważ użycie właściwości CSS float dla bloków 2, 3 i 4 oraz właściwości clear dla bloku 5 odpowiada oczekiwanemu układowi strony. Float pozwala na ustawienie elementów obok siebie w poziomie. W tym przypadku blok 2, 3 i 4 będą umieszczone w jednej linii dzięki właściwości float: left. Blok 2 będzie zajmował więcej przestrzeni w pionie, co pozwala umieścić bloki 3 i 4 obok siebie. Blok 5 powinien znaleźć się poniżej, więc wymaga zastosowania właściwości clear: both, aby uniknąć zachodzenia na inne elementy pływające. Taki układ jest często stosowany w projektowaniu responsywnych stron internetowych, gdzie float umożliwia elastyczne dostosowanie się elementów do różnych szerokości ekranów. Warto pamiętać, że obecnie często używa się także display: flex lub grid jako nowocześniejszych sposobów układania elementów, jednak float wciąż znajduje zastosowanie w prostych układach. Zrozumienie, jak działa float i clear, jest kluczowe dla tworzenia poprawnych i estetycznych układów bloków na stronie internetowej.

Pytanie 2

Polecenie serwera MySQL postaci

REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost'
sprawi, że użytkownikowi tKowal zostaną
A. przydzielone uprawnienia do wszelkiej zmiany struktury tabeli pracownicy
B. odebrane uprawnienia usuwania i modyfikowania danych w tabeli pracownicy
C. przydzielone uprawnienia do usuwania i aktualizowania danych w tabeli pracownicy
D. odebrane uprawnienia usuwania i dodawania rekordów w tabeli pracownicy
Wszystkie niepoprawne odpowiedzi dotyczą różnych aspektów zarządzania uprawnieniami w MySQL, ale nie odzwierciedlają skutków działania polecenia REVOKE. W pierwszej z nieprawidłowych odpowiedzi stwierdza się, że użytkownik otrzymuje prawa do usuwania i aktualizowania danych w tabeli 'pracownicy'. Jest to nieprawda, ponieważ komenda REVOKE ma na celu odebranie, a nie przydzielenie jakichkolwiek uprawnień. Kolejna odpowiedź sugeruje, że użytkownik traci prawa do usuwania i dodawania rekordów w tabeli. Chociaż uprawnienie do usuwania jest słuszne, dodawanie rekordów (INSERT) nie zostało wymienione w poleceniu REVOKE, więc ta odpowiedź jest myląca. Ostatnia niepoprawna opcja wskazuje, że użytkownik zyskuje prawa do zmiany struktury tabeli 'pracownicy'. W rzeczywistości REVOKE nie ma nic wspólnego z uprawnieniami związanymi ze strukturą tabeli, takimi jak ALTER czy CREATE. Właściwe zrozumienie mechanizmów zarządzania uprawnieniami jest kluczowe dla zapewnienia bezpieczeństwa danych oraz skutecznego zarządzania bazą danych w MySQL.

Pytanie 3

Jakie słowo kluczowe w SQL należy zastosować, aby usunąć powtarzające się rekordy?

A. ORDER BY
B. GROUP BY
C. LIKE
D. DISTINCT
Słowo kluczowe DISTINCT jest używane w języku SQL do eliminowania duplikatów z wyników zapytań. Gdy zastosujemy DISTINCT w zapytaniu SELECT, baza danych zwróci tylko unikalne wiersze, co jest niezwykle przydatne, gdy chcemy uzyskać listę bez powtarzających się wartości. Na przykład, jeśli mamy tabelę 'klienci' z kolumną 'miasto', a nasze zapytanie brzmi: 'SELECT DISTINCT miasto FROM klienci;', wówczas wynik będzie zawierał tylko unikalne nazwy miast, eliminując wszelkie duplikaty. To podejście nie tylko upraszcza analizę danych, ale również poprawia wydajność zapytań w wielu przypadkach, zwłaszcza gdy przetwarzamy duże zbiory danych. Użycie DISTINCT jest zgodne z najlepszymi praktykami w zakresie optymalizacji baz danych, ponieważ pozwala zapobiegać przypadkowemu wprowadzaniu niepotrzebnych danych podczas analizy. Warto także zauważyć, że DISTINCT działa na całym zestawie kolumn w zapytaniu. Oznacza to, że jeśli wybierzemy wiele kolumn z DISTINCT, unikalne wiersze będą określane na podstawie kombinacji wartości we wszystkich tych kolumnach, co daje jeszcze większą kontrolę nad wynikami zapytania.

Pytanie 4

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

A. O(n)
B. O(n!)
C. O(n3)
D. O(n2)
Odpowiedzi O(n2), O(n3) oraz O(n!) sugerują, że złożoność obliczeniowa algorytmu naiwnego wyszukiwania minimum jest wyższa niż rzeczywista złożoność O(n). Złożoność O(n2) oznaczałaby, że algorytm wymagałby odwiedzenia każdego elementu dla każdego innego elementu, co jest charakterystyczne dla algorytmów porównawczych, które porównują elementy parzyście, na przykład w sortowaniu bąbelkowym. Tego typu złożoność nie ma jednak zastosowania w prostym wyszukiwaniu minimum, gdzie wystarczy jedno przejście przez zbiór w celu znalezienia najmniejszego elementu. Z kolei O(n3) wskazywałoby na jeszcze bardziej skomplikowaną operację, co w kontekście wyszukiwania minimum jest nieadekwatne. Złożoność O(n!) sugerowałaby, że algorytm wymagałby przetwarzania wszystkich możliwych permutacji zbioru, co jest zjawiskiem spotykanym w złożonych problemach kombinatorycznych, takich jak problem komiwojażera. Aby uniknąć takich nieporozumień, ważne jest zrozumienie, że wyszukiwanie minimum to operacja podstawowa, która nie wymaga złożonych algorytmów ani dodatkowych złożoności, a jedynie prostego przejścia przez zbiór danych. W praktyce, złożoności O(n2), O(n3) i O(n!) nie mają zastosowania w kontekście wyszukiwania minimum, co jest kluczowe dla zrozumienia efektywności algorytmu.

Pytanie 5

Błędy w interpretacji kodu PHP są rejestrowane

A. w oknie edytora, w którym tworzony jest kod PHP
B. pomijane przez przeglądarkę oraz interpreter PHP
C. w dzienniku zdarzeń systemu Windows
D. w logu, o ile odpowiedni parametr jest ustawiony w pliku php.ini
Odpowiedzi, które sugerują inne metody zapisywania błędów interpretacji kodu PHP, są niepoprawne z kilku powodów. Po pierwsze, chociaż system Windows oferuje podgląd zdarzeń, nie jest on wykorzystywany do rejestrowania błędów PHP. PHP działa w swoim własnym kontekście, a wszelkie błędy są specyficzne dla tego języka i jego środowiska uruchomieniowego, a nie dla systemu operacyjnego. Po drugie, zapis błędów w oknie edytora, w którym powstaje kod PHP, jest praktyką niewłaściwą. Edytory kodu, chociaż mogą oferować funkcje podpowiedzi i analizy błędów na żywo, nie są odpowiednie do rejestrowania błędów wykonania, które mogą wystąpić w trakcie działania skryptów. To podejście ograniczałoby również możliwości analizy błędów, które mogą być istotne w późniejszym etapie prac nad projektem. Ostatnia z przedstawionych odpowiedzi, mówiąca o ignorowaniu błędów przez przeglądarkę oraz interpreter PHP, jest niezgodna z zasadami działania PHP. Interpreter PHP zawsze przetwarza błędy, a ich ignorowanie mogłoby prowadzić do poważnych problemów w działaniu aplikacji. Właściwą praktyką jest nie tylko rejestrowanie błędów, ale także ich odpowiednia obsługa, aby zapewnić stabilność i bezpieczeństwo aplikacji.

Pytanie 6

Do stworzenia stron internetowych w sposób graficzny należy zastosować

A. program do przeglądania stron
B. aplikację typu WYSIWYG
C. narzędzie do edycji CSS
D. oprogramowanie MS Office Picture Manager
Programy typu WYSIWYG (What You See Is What You Get) to narzędzia, które umożliwiają użytkownikom tworzenie stron internetowych w sposób wizualny, bez konieczności pisania kodu HTML czy CSS. Użytkownik może przeciągać i upuszczać elementy, takie jak tekst, obrazy czy formularze, a program automatycznie generuje odpowiedni kod. Przykładami popularnych programów WYSIWYG są Adobe Dreamweaver oraz Webflow, które posiadają zaawansowane funkcje, takie jak responsywność oraz integrację z systemami zarządzania treścią. W kontekście standardów webowych, programy WYSIWYG często oferują zgodność z aktualnymi wytycznymi, takimi jak HTML5 i CSS3, co pozwala na tworzenie nowoczesnych, atrakcyjnych wizualnie stron internetowych. Dla osób, które nie mają doświadczenia w programowaniu, takie narzędzia są szczególnie cenne, ponieważ umożliwiają łatwe tworzenie profesjonalnych witryn, które mogą być optymalizowane pod kątem SEO, co jest kluczowe w dzisiejszym świecie online. Dzięki programom WYSIWYG, także osoby z ograniczonymi umiejętnościami technicznymi mogą skutecznie tworzyć i edytować swoje strony, co znacznie przyspiesza proces projektowania.

Pytanie 7

Jaką metodę zastosowano do dodania arkusza stylów do dokumentu HTML w pokazanym kodzie?

Ilustracja do pytania
A. Styl wewnętrzny
B. Styl wpisany, lokalny
C. Styl alternatywny, zewnętrzny
D. Styl zewnętrzny
Styl wpisany lokalny w HTML to metoda definiowania stylów CSS bezpośrednio wewnątrz elementów HTML za pomocą atrybutu style. Jest to często stosowane, gdy chcemy szybko zdefiniować unikalne style dla pojedynczego elementu bez tworzenia lub edytowania zewnętrznego pliku CSS. Przykładowo poniższy kod HTML pokazuje jak możemy zmienić kolor tekstu w paragrafie na czerwony używając właśnie stylu pisanego zwanego również inline. Choć jest to proste i szybkie rozwiązanie nie jest zalecane dla większych projektów ze względu na brak możliwości ponownego użycia kodu i problematyczną jego konserwację. W praktyce najlepszym podejściem jest stosowanie stylów zewnętrznych które umożliwiają centralne zarządzanie wyglądem całego dokumentu. Standardy HTML i CSS promują modularność i oddzielenie warstwy prezentacyjnej od struktury co jest bardziej efektywne i zgodne z zasadami projektowania responsywnych aplikacji internetowych. Styl wpisany może być jednak przydatny w testach szybkich prototypach lub sytuacjach gdy zmiany muszą być wprowadzone lokalnie i mają one charakter jednorazowy. Dla bardziej złożonych aplikacji zaleca się jednak stosowanie bardziej zorganizowanych metod stylizacji takich jak style zewnętrzne.

Pytanie 8

Aby poprawnie udokumentować poniższą linię kodu, trzeba po znakach // dodać komentarz: ```document.getElementById("napis").innerHTML = Date(); //```

A. wyświetlenie daty i czasu w elemencie o id = napis
B. zmiana stylizacji atrybutu innerHTML
C. wyświetlenie tekstu "Date()" w elemencie o id = napis
D. błędne informacje
Odpowiedzi takie jak 'wyświetlenie tekstu "Date()" w znaczniku o id = napis' oraz 'zmiana stylu atrybutu innerHTML' zawierają pewne nieporozumienia dotyczące działania JavaScript. Pierwsza z tych odpowiedzi sugeruje, że kod wyświetli tekst 'Date()', co jest błędne, ponieważ funkcja 'Date()' jest wywoływana, a nie traktowana jako tekst. W rezultacie, zamiast tego, otrzymujemy obiekt daty, który jest przetwarzany i konwertowany na ciąg tekstowy przedstawiający aktualną datę i czas. Ponadto, odpowiedź mówiąca o 'zmianie stylu atrybutu innerHTML' wprowadza w błąd, ponieważ 'innerHTML' nie jest używane do zmiany stylów CSS, ale do manipulacji zawartością HTML. Atrybut 'innerHTML' odpowiada za zawartość wewnętrzną elementu, a nie za jego stylizację. Typowe błędy myślowe prowadzące do takich niepoprawnych konkluzji obejmują mylenie funkcji, które zwracają wartości, z tekstami literalnymi oraz niepełne zrozumienie różnicy między manipulacją treścią a stylami CSS. Aby uniknąć tych nieporozumień, ważne jest, aby zawsze dokładnie analizować, co dany fragment kodu robi i jakie są jego skutki w kontekście całej aplikacji.

Pytanie 9

W języku HTML zdefiniowano znacznik ```link``` Wartość nofollow atrybutu rel

A. oznacza, że kliknięcie na link nie przeniesie do strony website.com.
B. jest informacją dla robota wyszukiwarki Google, aby nie podążał za tym linkiem.
C. oznacza, że kliknięcie na link otworzy go w osobnej karcie przeglądarki.
D. jest informacją dla przeglądarki internetowej, aby nie formatowała słowa "link" jako odnośnika.
Niestety, to nie tak. Atrybut rel='nofollow' w tagu <a> nie mówi przeglądarkom, żeby otworzyły link w nowej karcie ani nie mówi użytkownikowi, że kliknięcie na link nie przeniesie go do strony website.com. Ten atrybut jest dla robotów wyszukiwarek. Możliwe, że wybrałeś tę odpowiedź, bo nie do końca rozumiesz, jak działają atrybuty w HTML. W HTML atrybuty to dodatkowe informacje o elemencie, które są w tagu otwierającym. W przypadku 'rel', chodzi o wskazówki dla robotów wyszukiwarek, jak powinny traktować dany link. Z mojego doświadczenia, zrozumienie roli różnych atrybutów w HTML jest kluczowe, jeśli chcesz robić dobre strony internetowe.

Pytanie 10

W przypadku przedstawionego fragmentu kodu walidator HTML zgłosi błąd, ponieważ

<img src="kwiat.jpg alt="kwiat">
A. nie zamknięto cudzysłowu
B. nie odnaleziono pliku kwiat.jpg
C. wprowadzono nieznany atrybut alt
D. użyto niewłaściwego znacznika do wyświetlenia obrazu
Poprawna odpowiedź to nie domknięto cudzysłowu ponieważ w kodzie HTML atrybuty muszą być poprawnie zamknięte aby poprawnie interpretować ich wartości. W przedstawionym fragmencie kodu dla znacznika img brakuje końcowego cudzysłowu po wartości src co stanowi błąd składniowy. Tego typu błędy mogą prowadzić do nieprawidłowego działania strony ponieważ przeglądarka nie jest w stanie jednoznacznie określić końca wartości atrybutu co może skutkować nieprawidłowym renderowaniem danych. Zgodnie z najlepszymi praktykami każde otwarte cudzysłowie powinno być zamknięte aby zapewnić poprawną interpretację kodu. Ponadto stosowanie poprawnego zamykania cudzysłowów zwiększa czytelność kodu co jest istotne przy współpracy zespołowej i ułatwia jego utrzymanie. Warto także korzystać z walidatorów HTML które automatycznie wykrywają takie błędy pomagając w ich szybkim usunięciu. Tego rodzaju narzędzia są kluczowe w procesie tworzenia stron internetowych ponieważ umożliwiają weryfikację zgodności kodu z obowiązującymi standardami co ma bezpośredni wpływ na jego wydajność i kompatybilność z różnymi przeglądarkami.

Pytanie 11

Jeżeli rozmiar pliku graficznego jest zbyt duży do publikacji w sieci, co należy zrobić?

A. zmniejszyć jego rozdzielczość
B. zwiększyć jego głębię kolorów
C. dodać kanał alfa
D. zapisać w formacie BMP
Zmniejszenie rozdzielczości pliku graficznego jest jedną z najskuteczniejszych metod na zmniejszenie jego rozmiaru, co jest niezwykle ważne w kontekście publikacji w Internecie. Rozdzielczość obrazu odnosi się do liczby pikseli, które składają się na dany obraz, wyrażoną zazwyczaj w pikselach na cal (PPI) lub w całkowitej liczbie pikseli w szerokości i wysokości. Zmniejszając rozdzielczość, obniżamy liczbę pikseli, co w efekcie prowadzi do mniejszego rozmiaru pliku. Na przykład, obraz o rozdzielczości 4000x3000 pikseli ma 12 milionów pikseli, podczas gdy obraz o rozdzielczości 2000x1500 pikseli zaledwie 3 miliony pikseli. Oprócz zmniejszenia rozdzielczości, można również zastosować inne techniki kompresji, takie jak zmiana formatu pliku na JPEG, który jest bardziej efektywny w kompresji zdjęć, a także wykorzystanie narzędzi do optymalizacji grafiki, takich jak TinyPNG czy ImageOptim. Zmniejszając rozdzielczość, należy jednak pamiętać o zachowaniu odpowiedniej jakości obrazu, aby nie wpłynęło to negatywnie na jego czytelność i estetykę, co jest kluczowe w kontekście publikacji online.

Pytanie 12

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

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

Pytanie 13

Jaki typ danych w MySQL należy zastosować, aby w jednym polu zapisać zarówno datę, jak i czas?

A. TIMESTAMP
B. BOOLEAN
C. YEAR
D. DATE
Typ danych TIMESTAMP w MySQL jest przeznaczony do przechowywania zarówno daty, jak i czasu w jednym polu. Jest szczególnie przydatny w sytuacjach, gdy potrzebne jest śledzenie zdarzeń w czasie, takich jak rejestracja daty i godziny utworzenia lub modyfikacji rekordów w bazie danych. TIMESTAMP przechowuje dane w formacie 'YYYY-MM-DD HH:MM:SS', co pozwala na precyzyjne określenie momentu w czasie. Wartością dodaną tego typu danych jest automatyczne aktualizowanie znacznika czasu przy każdej zmianie rekordu (jeśli ustawimy odpowiednie opcje), co jest zgodne z najlepszymi praktykami w zakresie audytu danych. Przykładem zastosowania może być rejestracja logów aktywności użytkowników w aplikacji internetowej lub monitorowanie transakcji w systemach finansowych, gdzie dokładny czas zdarzenia jest kluczowy. Dodatkowo, TIMESTAMP obsługuje różnice stref czasowych, co czyni go idealnym wyborem w aplikacjach działających w różnych lokalizacjach geograficznych.

Pytanie 14

Jak nazywa się metoda dodawania arkusza stylów do dokumentu HTML zastosowana w poniższym kodzie?

<p style="color: red;">tekst paragrafu</p>
A. Styl alternatywny, zewnętrzny
B. Styl wewnętrzny
C. Styl wpisany, lokalny
D. Styl zewnętrzny
Styl wpisany, lokalny, to metoda definiowania stylów bezpośrednio w elemencie HTML, co jest dokładnie tym, co widzimy w przedstawionym kodzie. W tym przypadku atrybut "style" jest użyty, aby ustawić kolor tekstu na czerwony dla konkretnego paragrafu. Ta metoda jest przydatna, gdy potrzebujemy szybko wprowadzić zmiany w stylu pojedynczego elementu bez konieczności edytowania zewnętrznych arkuszy stylów. Z perspektywy standardów webowych, lokalne style mogą wprowadzać poważne problemy z utrzymaniem kodu, gdy stosowane w nadmiarze, ponieważ kody CSS mogą stać się trudne do zarządzania, a konsystencja stylów może być zagrożona. Z tego powodu, dla bardziej rozbudowanych projektów, rekomenduje się korzystanie z arkuszy stylów zewnętrznych lub wewnętrznych, które zapewniają lepszą organizację kodu oraz ułatwiają zarządzanie stylami na większą skalę. Dobrą praktyką jest również korzystanie z klas CSS, co pozwala na ponowne wykorzystanie stylów w różnych częściach dokumentu, eliminując duplikacje.

Pytanie 15

Jednostka ppi (pixels per inch) odnosi się do rozdzielczości?

A. jest wskaźnikiem definiującym rozdzielczość cyfrowych urządzeń dokonujących pomiarów
B. określa rozdzielczość obrazów rastrowych
C. jest miarą rozdzielczości skanerów, definiującą częstotliwość próbkowania obrazu
D. określa rozdzielczości obrazów wytwarzanych przez drukarki oraz plotery
Zrozumienie pojęcia PPI (pixels per inch) jest kluczowe dla efektywnego zarządzania grafiką cyfrową, a podawanie PPI jako parametru odniesienia do rozdzielczości innych urządzeń, takich jak skanery lub drukarki, jest mylne. PPI odnosi się ściśle do rozdzielczości obrazów rastrowych, które są tworzone z pikseli. Pojęcia, takie jak rozdzielczość skanerów, odnoszą się do innej jednostki miary, zazwyczaj określanej w DPI (dots per inch), która określa liczbę kropli tuszu lub punktów, jakie maszyna może nałożyć na cal. To prowadzi do nieporozumień w interpretacji, ponieważ DPI i PPI, mimo że są używane w kontekście jakości obrazu, służą różnym celom. W przypadku rozdzielczości generowanej przez drukarki i plotery, ich wydajność nie jest bezpośrednio związana z PPI, lecz raczej z DPI, co ma kluczowe znaczenie w kontekście technik druku oraz jakości uzyskiwanych wydruków. W praktyce, błędne zrozumienie tych jednostek może prowadzić do zaprojektowania grafiki, która nie spełnia oczekiwań jakościowych, co jest szczególnie istotne w sytuacjach, gdy precyzja i szczegółowość są kluczowe, takich jak w projektach reklamowych czy publikacjach. Dlatego istotne jest, aby zawsze odnosić się do właściwych jednostek miary w zależności od kontekstu zastosowania, co umożliwia optymalne wykorzystanie zasobów i osiągnięcie zamierzonych rezultatów w projektowaniu graficznym.

Pytanie 16

W zapytaniu SQL, umieszczonym w ramce, symbol gwiazdki wskazuje, że w wyniku tego zapytania

Ilustracja do pytania
A. zostaną wyświetlone wszystkie kolumny tabeli mieszkańcy
B. zostanie pominięty warunek dotyczący imienia
C. zostaną wyświetlone wszystkie wpisy z tabeli mieszkańcy
D. zostanie pokazane pole o nazwie "*" (gwiazdka)
W kontekście zapytań SQL często dochodzi do błędów interpretacyjnych związanych z użyciem znaku gwiazdki (*). Niektóre osoby mogą błędnie zakładać, że znak ten ma inne zastosowanie niż wyświetlanie wszystkich kolumn, co prowadzi do nieporozumień. Pierwszym błędnym założeniem jest myśl, że znak gwiazdki zignoruje warunek w klauzuli WHERE; SQL jest językiem deklaratywnym i każde zapytanie wykonuje się zgodnie z jego składnią, uwzględniając podane warunki filtracji danych. Zapytanie SELECT * FROM mieszkańcy WHERE imie='Anna'; zawsze będzie selekcjonować rekordy, gdzie imię jest równe 'Anna', niezależnie od tego, co jest umieszczone po SELECT. Innym błędnym rozumieniem jest przekonanie, że znak gwiazdki wyświetli kolumnę o nazwie '*'. W rzeczywistości SQL nie rozpoznaje '*' jako nazwy kolumny, lecz jako symbol zastępczy dla wszystkich kolumn w tabeli. Takie podejście byłoby przeciwne samej naturze języka SQL, który jest precyzyjny i zorientowany na strukturalne przetwarzanie danych. Dobre praktyki branżowe zalecają także stosowanie jawnego nazywania kolumn w zapytaniach produkcyjnych, co zwiększa czytelność i bezpieczeństwo zapytania, zwłaszcza gdy bazy danych są duże i złożone.

Pytanie 17

Najłatwiejszym i najmniej czasochłonnym sposobem na przetestowanie działania strony internetowej w różnych przeglądarkach i ich wersjach jest

A. wykorzystanie walidatora kodu HTML
B. zainstalowanie różnych przeglądarek na kilku komputerach i testowanie strony
C. użycie emulatora przeglądarek internetowych, np. Browser Sandbox
D. sprawdzenie działania strony w programie Internet Explorer, zakładając, że inne przeglądarki będą kompatybilne
Emulatory przeglądarek internetowych, takie jak Browser Sandbox, stanowią najefektywniejsze narzędzie do testowania witryn w różnych środowiskach. Dzięki nim można symulować działanie witryny w wielu przeglądarkach oraz ich wersjach bez potrzeby fizycznej instalacji. To podejście jest zgodne z najlepszymi praktykami w zakresie testowania oprogramowania, ponieważ pozwala na oszczędność czasu i zasobów. W przypadku użycia emulatora, programiści mogą szybko przetestować i porównać, jak strona zachowuje się w różnych przeglądarkach, co jest kluczowe dla zapewnienia spójności działania i doświadczeń użytkownika. Przykładem zastosowania emulatorów jest możliwość weryfikacji responsywności witryny na różnych rozmiarach ekranów oraz dostosowanie stylów CSS dla różnych przeglądarek. To pozwala na identyfikację problemów z kompatybilnością, które mogą występować w starszych wersjach przeglądarek, a także w zapewnieniu, że nowoczesne standardy webowe są poprawnie interpretowane. Praktyczne wykorzystanie emulatorów w codziennym procesie tworzenia oprogramowania powinno być integralną częścią każdej strategii testowania, aby zapewnić optymalne działanie witryny na wszystkich platformach.

Pytanie 18

W językach programowania o układzie strukturalnym, aby przechować dane o 50 uczniach (ich imionach, nazwiskach oraz średniej ocen), konieczne jest zastosowanie

A. klasy z 50 elementami typu tablicowego
B. tablicy z 50 elementami o składowych typu łańcuchowego
C. struktury z 50 elementami o składowych typu tablicowego
D. tablicy z 50 elementami o składowych strukturalnych
Wybór niewłaściwych podejść do przechowywania informacji o uczniach często wynika z nieporozumienia dotyczącego struktury danych i ich właściwego zastosowania. Tworzenie struktury 50 elementów o składowych typu tablicowego sugeruje, że każdy element byłby tablicą, co nie odpowiada rzeczywistej naturze danych. Tego rodzaju podejście nie tylko komplikuje dostęp do informacji, ale również zwiększa ryzyko błędów w zarządzaniu danymi. Z kolei użycie tablicy 50 elementów o składowych łańcuchowych ogranicza nas do prostych typów danych, takich jak ciągi znaków, co uniemożliwia przechowywanie średniej ocen, która wymagałaby użycia innego typu danych, co narusza zasady typizacji. W przypadku klasy z 50 elementami typu tablicowego, problemem jest, że klasa powinna być używana do modelowania złożonych obiektów z zachowaniem, co nie jest konieczne w tym przypadku. Te nieścisłości pokazują typowe błędy myślowe związane z projektowaniem struktur danych. Kluczowym elementem skutecznego programowania jest zrozumienie, jak najlepiej reprezentować i przechowywać złożone dane, a także znajomość odpowiednich struktur, które umożliwią efektywne operacje na tych danych.

Pytanie 19

Według którego parametru oraz dla ilu tabel zostaną zwrócone wiersze na liście w wyniku przedstawionego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis WHERE
  producent.nr_id = hurtownia.nr_id AND
  producent.wyrob_id = serwis.wyrob_id AND
  hurtownia.nr_id = sklep.nr_id AND
  sklep.nr_id = serwis.nr_id AND
  producent.nr_id = 1;
A. Według parametru nr id dla wszystkich tabel.
B. Według parametru wyrób Jd wyłącznie dla trzech tabel.
C. Według parametru nr id wyłącznie dla trzech tabel.
D. Według parametru wyrób id dla wszystkich tabel.
Brawo! Wybrałeś poprawną odpowiedź, zgodnie z którą parametrem nr id zwraca wiersze dla wszystkich tabel. To zapytanie SQL odnosi się do czterech tabel: producent, hurtownia, sklep i serwis. Zwraca ono wiersze, gdzie wartość kolumny nr_id jest taka sama we wszystkich tych tabelach i równa 1. Dodatkowo, jakość danych jest wspierana przez fakt, że zapytanie sprawdza zgodność wartości kolumny wyrob_id między tabelami producent i serwis. Zrozumienie tego, jak działa to zapytanie i dlaczego to jest ważne, jest kluczowe w praktyce programistycznej. Zapewnia to, że możemy skutecznie i efektywnie manipulować danymi, a także zrozumieć, jak nasze zapytania wpływają na wyniki, które otrzymujemy. Dobra praktyka jest zawsze zrozumienie, jakie dane są zwracane przez nasze zapytanie, zanim zaczniemy z nich korzystać w naszym kodzie. Ostatecznie, zrozumienie, jak korzystać z zapytań SQL do manipulacji i odzyskiwania danych, jest kluczowym elementem dowolnej roli programistycznej.

Pytanie 20

W semantycznym HTML odpowiednikiem elementu <b>, który nie tylko pogrubia tekst, ale także wskazuje na jego większe znaczenie, jest

A. <strong>
B. <mark>
C. <ins>
D. <em>
Znacznik <strong> w HTML semantycznym służy nie tylko do pogrubienia tekstu, ale także do wskazania, że dany fragment ma większe znaczenie w kontekście semantycznym. Zgodnie z zaleceniami W3C, użycie tego znacznika poprawia dostępność treści, ponieważ technologie wspomagające, takie jak czytniki ekranu, interpretują <strong> jako tekst o podwyższonej wadze, co może pomóc w lepszym zrozumieniu struktury dokumentu przez osoby z niepełnosprawnościami. Przykładem zastosowania może być podkreślenie ważnych informacji na stronie, takich jak zasady, ostrzeżenia czy kluczowe dane, które użytkownicy powinni zauważyć. W praktyce, stosowanie elementów semantycznych, takich jak <strong>, zamiast czysto stylistycznych, jest zgodne z zasadami budowania stron przyjaznych dla użytkowników i poprawia SEO, ponieważ wyszukiwarki mogą lepiej analizować kontekst treści. Warto pamiętać, że w przypadku użycia <strong>, nie zmienia to tylko sposobu wyświetlania, ale także wzbogaca znaczenie tekstu w kontekście całej strony.

Pytanie 21

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

A. aside {float: left; }
B. nav { float: right; } section { float: right; }
C. nav { float: right; }
D. nav { float: left; } aside { float: left; }
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 22

Jakie czynniki wpływają na wysokość dźwięku?

A. czas oscylacji źródła dźwięku
B. intensywność wzbudzenia drgań
C. metoda wzbudzania drgań
D. częstotliwość drgań fali akustycznej
To prawda, że czas drgania źródła dźwięku i sposoby, jakimi te drgania są wzbudzane, mają swoje znaczenie, ale nie wpływają one na wysokość dźwięku tak, jak to robi częstotliwość. Czas drgania to okres jednego cyklu drgania, a jego odwrotność to częstotliwość. Można by pomyśleć, że dłuższy czas drgania oznacza niższy dźwięk, ale to nie tak działa. W rzeczywistości to częstotliwość jest wyznacznikiem wysokości dźwięku. W muzyce, różne techniki, takie jak atak struny czy wibrato, mogą zmieniać brzmienie, ale nie mają wpływu na podstawową częstotliwość. Można też mówić o sile wzbudzenia drgań, co dotyczy amplitudy fali akustycznej, a to z kolei wpływa na głośność, a nie wysokość dźwięku. Często ludzie mylą głośność z wysokością, co może prowadzić do różnych nieporozumień. Na przykład, niektóre instrumenty mogą grać zarówno głośno, jak i cicho, ale na tej samej wysokości, co pokazuje, że te dwa aspekty dźwięku to zupełnie różne sprawy. Zrozumienie tych różnic to podstawa dla każdego, kto działa w akustyce czy inżynierii dźwięku.

Pytanie 23

Który typ danych SQL należy użyć, jako optymalny, do zapisania numeru PESEL?

A. CHAR(11)
B. BLOB
C. TINYINT
D. FLOAT(11)
W przypadku numeru PESEL kluczowe jest zrozumienie, że mamy do czynienia z identyfikatorem, a nie z liczbą, na której będziemy wykonywać obliczenia. To rozróżnienie jest bardzo ważne w projektowaniu baz danych, bo prowadzi do innego doboru typów danych. Częsty błąd polega na tym, że skoro PESEL składa się tylko z cyfr, to „na logikę” powinien być przechowywany jako typ liczbowy. W praktyce to podejście generuje więcej problemów niż pożytku. Typ TINYINT jest zdecydowanie zbyt mały – w większości systemów pozwala przechować zakres od 0 do 255 lub podobny, a PESEL ma 11 cyfr, więc nawet nie ma fizycznej możliwości, żeby taki typ pomieścił pełną wartość. To jest po prostu zupełnie nieadekwatny zakres. Z kolei użycie typu zmiennoprzecinkowego, takiego jak FLOAT(11), jest jeszcze gorszym pomysłem. Typ FLOAT służy do przybliżonego zapisu liczb rzeczywistych i może wprowadzać błędy zaokrągleń. W przypadku identyfikatora, który musi być zapisany dokładnie co do cyfry, jakikolwiek błąd reprezentacji jest niedopuszczalny. Dodatkowo typy zmiennoprzecinkowe nie gwarantują zachowania wszystkich cyfr w sposób bezstratny przy dużych wartościach, a PESEL ma ich 11. Można też natknąć się na problem utraty zer wiodących, bo liczby w SQL nie „pamiętają” formatu, tylko samą wartość liczbową. BLOB natomiast służy do przechowywania danych binarnych: plików, obrazów, dokumentów, zaszyfrowanych bloków danych. Używanie BLOB‑a do trzymania prostego tekstowego identyfikatora jest sprzeczne z dobrymi praktykami projektowania. Utrudnia to indeksowanie, wyszukiwanie, sortowanie i walidację, a do tego zużywa niepotrzebnie więcej zasobów. W profesjonalnych projektach baz danych przyjmuje się zasadę: dane tekstowe o znanej długości przechowujemy w typach znakowych (CHAR/VARCHAR), liczby do obliczeń w typach numerycznych, a typy binarne zostawiamy na pliki i dane nieustrukturyzowane. Błędne odpowiedzi wynikają zwykle z automatycznego kojarzenia „cyfry = liczba” i z braku rozróżnienia między wartością liczbową a identyfikatorem, który tylko składa się z cyfr, ale nie jest przeznaczony do liczenia. Właśnie dlatego optymalnym i zgodnym z dobrymi praktykami wyborem dla PESEL jest typ znakowy o stałej długości, czyli CHAR(11).

Pytanie 24

W instrukcji warunkowej w JavaScript powinno się zweryfikować sytuację, w której zmienne a oraz b są większe od zera, przy czym zmienna b jest mniejsza od 100. Taki warunek należy zapisać w następujący sposób:

A. if ( a > 0 && b > 0 && b < 100)
B. if ( a > 0 || b > 0 || b > 100)
C. if ( a > 0 && b > 0 || b > 100)
D. if ( a > 0 || (b > 0 && b < 100))
Odpowiedź if ( a > 0 && b > 0 && b < 100) jest poprawna, ponieważ precyzyjnie spełnia wszystkie wymagane warunki. Wyrażenie to sprawdza, czy obie zmienne a i b są dodatnie, przy czym dodatkowo b musi być mniejsze niż 100. W kontekście programowania, taki sposób sprawdzania warunków jest zgodny z najlepszymi praktykami, gdyż wykorzystuje operator logiczny AND (&&), co zapewnia, że wszystkie warunki muszą być spełnione jednocześnie. Na przykład, w aplikacji, w której mamy do czynienia z ograniczeniami dla zmiennej b, takie podejście pozwala na kontrolowanie wartości, co jest istotne w kontekście bezpieczeństwa danych. W przypadku, gdyby b miało mieć wartość większą lub równą 100, mogłoby to generować błędy, a więc taki warunek jest kluczowy w zabezpieczaniu logiki programu. Dodatkowo, stosowanie złożonych warunków w instrukcjach warunkowych pozwala na elastyczność i łatwość w modyfikacjach kodu w przyszłości, co jest zgodne z zasadą DRY (Don't Repeat Yourself).

Pytanie 25

Wskaź model kolorów, który jest używany do prezentacji barw na monitorze komputerowym?

A. CMY
B. CMYK
C. HLS
D. RGB
Model barw RGB (Red, Green, Blue) jest systemem addytywnym, który jest powszechnie stosowany w technologii wyświetlania kolorów na urządzeniach elektronicznych, takich jak monitory komputerowe, telewizory oraz smartfony. W modelu RGB kolory są tworzone poprzez łączenie trzech podstawowych barw: czerwonej, zielonej i niebieskiej. Dzięki regulacji intensywności tych trzech składowych można uzyskać pełną gamę kolorów, co czyni ten model szczególnie efektywnym w zastosowaniach związanych z wyświetlaniem na ekranie. Na przykład, gdy wszystkie trzy kolory są ustawione na maksymalną wartość, uzyskujemy kolor biały, natomiast brak wszystkich kolorów daje czarny. Model RGB jest zgodny z wieloma standardami, w tym sRGB, który jest najczęściej stosowanym standardem dla monitorów komputerowych i Internetu. W praktyce, kolorowy piksel na ekranie składa się z małych punktów, które mogą świecić w różnych intensywnościach czerwonego, zielonego i niebieskiego światła, co pozwala na wyświetlanie milionów różnych kolorów. W związku z tym, RGB jest fundamentalnym modelem stosowanym w grafice komputerowej oraz cyfrowym przetwarzaniu obrazów.

Pytanie 26

W JavaScript zapis a++; można przedstawić w inny sposób jako

A. a = a & 1
B. a = a + 1
C. 1 += a
D. a << 1
Odpowiedź 'a = a + 1;' jest poprawna, ponieważ dokładnie odzwierciedla działanie operatora inkrementacji 'a++;'. Operator '++' w JavaScript zwiększa wartość zmiennej o 1. W przypadku użycia 'a = a + 1;', operacja ta jest explicite zapisana jako przypisanie aktualnej wartości 'a' powiększonej o 1. Taki zapis jest często stosowany w sytuacjach, gdy chcemy lepiej zrozumieć, co się dzieje w kodzie, szczególnie dla początkujących programistów. Przykładowo, jeśli mamy zmienną, która przechowuje liczbę, możemy użyć 'a = a + 1;' w pętli, aby zliczać ilość iteracji. Warto zauważyć, że użycie operatora '++' jest bardziej zwięzłe i często preferowane w profesjonalnym kodzie, jednak zrozumienie, jak działa to na poziomie podstawowym, jest kluczowe. Dobrą praktyką jest dbałość o przejrzystość kodu, zwłaszcza w zespołach, gdzie różne osoby mogą pracować nad tym samym projektem.

Pytanie 27

Ograniczanie dostępu do niektórych pól lub metod obiektów danej klasy, tak aby mogły być one wykorzystywane wyłącznie przez wewnętrzne metody tej klasy lub funkcje zaprzyjaźnione, to

A. dziedziczenie
B. hermetyzacja
C. polimorfizm
D. konkatenacja
Hermetyzacja to kluczowa koncepcja programowania obiektowego, która polega na ograniczaniu dostępu do pewnych pól i metod danej klasy, aby chronić integralność danych i zapewnić ich poprawne użycie. Przykładem hermetyzacji jest użycie modyfikatorów dostępu, takich jak 'private' i 'protected', co pozwala na ukrycie implementacji od użytkowników klasy, a jednocześnie umożliwia dostęp do tych elementów wewnętrznym metodom klasy. Dzięki hermetyzacji programiści mogą wprowadzać zmiany w implementacji bez wpływu na kod zewnętrzny, co wspiera zasady SOLID i ułatwia zarządzanie dużymi systemami. Rekomendowane praktyki w programowaniu obiektowym zalecają, aby klasy były odpowiedzialne za zarządzanie swoimi danymi, a dostęp do tych danych powinien odbywać się wyłącznie poprzez zdefiniowane interfejsy, takie jak metody publiczne, co pozwala na kontrolowanie operacji i walidację danych. W ten sposób hermetyzacja przyczynia się do większej niezawodności, czytelności oraz łatwości w testowaniu aplikacji.

Pytanie 28

Co zazwyczaj wchodzi w skład Framework'a?

A. obsługa błędów i domena
B. zarządzanie komunikacją z bazą danych, mechanizm uruchamiania i przetwarzania akcji
C. wbudowany serwer i obsługa formularzy
D. certyfikat http oraz mechanizm przetwarzania i uruchamiania akcji
Frameworki to zestawy narzędzi i bibliotek, które ułatwiają rozwój aplikacji webowych, a ich najważniejsze elementy to zarządzanie komunikacją z bazą danych oraz mechanizm uruchamiania i przetwarzania akcji. Zarządzanie komunikacją z bazą danych odnosi się do sposobu, w jaki aplikacja łączy się z systemem zarządzania bazą danych (DBMS), wykonuje zapytania oraz przetwarza wyniki. Przykładem może być użycie ORM (Object-Relational Mapping), które upraszcza interakcję z bazą, eliminując potrzebę pisania skomplikowanych zapytań SQL. Mechanizm uruchamiania i przetwarzania akcji odnosi się do sposobu, w jaki framework zarządza cyklem życia żądania. Obejmuje to odbieranie żądania od użytkownika, przetwarzanie logiki biznesowej oraz generowanie odpowiedzi. Frameworki takie jak Ruby on Rails czy Django stosują wzorzec MVC (Model-View-Controller), co pozwala na rozdzielenie logiki aplikacji od warstwy prezentacji, co zwiększa czytelność i ułatwia zarządzanie kodem. Aby w pełni zrozumieć te mechanizmy, warto zaznajomić się z dokumentacją odpowiedniego frameworka, co dostarczy informacji na temat najlepszych praktyk i standardów.

Pytanie 29

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

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

Pytanie 30

W JavaScript metoda Math.random() ma na celu

A. zwrócić liczbę pseudolosową
B. zwrócić liczbę po zaokrągleniu
C. zaokrąglić liczbę do najbliższej większej liczby całkowitej
D. porównać dwie sekwencje znaków
Metoda Math.random() w języku JavaScript jest kluczowym narzędziem do generowania liczb pseudolosowych w zakresie od 0 (włącznie) do 1 (wyłącznie). Oznacza to, że każdorazowe wywołanie tej metody zwraca nową, losową wartość zmiennoprzecinkową, co jest przydatne w wielu zastosowaniach, takich jak tworzenie gier, symulacje, a także w algorytmach generujących dane testowe. Ważne jest, aby pamiętać, że Math.random() nie generuje liczb losowych w sensie statystycznym, lecz wykorzystuje algorytmy deterministyczne do produkcji wartości, co oznacza, że są one przewidywalne, jeśli znany jest stan początkowy. W praktyce, aby uzyskać liczbę losową w określonym zakresie, można zastosować następujący wzór: Math.floor(Math.random() * (max - min + 1)) + min, gdzie 'min' i 'max' to odpowiednio dolna i górna granica zakresu. To podejście jest zgodne z dobrymi praktykami w programowaniu, gdyż pozwala na elastyczne wykorzystanie losowości w aplikacjach.

Pytanie 31

Definicja stylu w CSS, którą zaprezentowano, dotyczy odsyłacza, który

a:visited {color: orange;}
A. posiada niepoprawny adres URL
B. jeszcze nigdy nie został odwiedzony
C. był wcześniej odwiedzany
D. ma wskaźnik myszy umieszczony nad sobą
Pseudoklasa :visited w CSS jest używana do stylizowania odsyłaczy, które zostały już odwiedzone przez użytkownika. Oznacza to, że przeglądarka zapisuje informacje o odwiedzonych stronach w historii przeglądania i na tej podstawie zmienia styl odsyłacza. W przykładzie a:visited {color: orange;} zmienia kolor tekstu odwiedzonych linków na pomarańczowy. Jest to powszechna praktyka stosowana w projektowaniu stron internetowych, która pomaga użytkownikom wizualnie odróżniać odwiedzone odsyłacze od nieodwiedzonych, co poprawia ich orientację na stronie. Dobre praktyki projektowania zakładają tworzenie intuicyjnych interfejsów użytkownika i użycie mechanizmu :visited do poprawy użyteczności. Ważne jest, aby unikać stosowania bardziej zaawansowanych stylów w :visited, takich jak zmiana rozmiaru czcionki czy dodawanie obrazów tła, ze względu na ograniczenia bezpieczeństwa przeglądarek, które chronią prywatność użytkowników. Korzystanie z :visited w sposób świadomy i zgodny ze standardami W3C zwiększa efektywność nawigacji i jest istotnym elementem przyjaznego projektowania stron WWW

Pytanie 32

Jakim poleceniem SQL można zlikwidować z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?

A. DELETE FROM artykuly WHERE tresc LIKE "%sto%"
B. DELETE * FROM artykuly WHERE tresc LIKE "%sto%"
C. DELETE FROM artykuly WHERE tresc = "%sto%"
D. DELETE * FROM artykuly WHERE tresc = "%sto%"
Wybór odpowiedzi "DELETE * FROM artykuly WHERE tresc = '%sto%';" jest po prostu zły z paru powodów. Po pierwsze, w SQL nie używamy znaku '*' przy DELETE. Jak chcemy usunąć wiersze, to piszemy tylko "DELETE FROM nazwa_tabeli". To '*' sugeruje, że chcesz usunąć jakieś konkretne kolumny, a to w SQL się nie sprawdzi. Druga sprawa to operator '=' zamiast 'LIKE'. '=' używamy do porównania wartości, nie do wyszukiwania wzorców, a tu właśnie szukamy wystąpienia słowa 'sto' w dłuższym tekście. Dlatego operator LIKE z wildcardami jest tu konieczny, by znaleźć i usunąć te wiersze, które mają 'sto' gdziekolwiek. Często ludzie mylą te operatory w SQL, co prowadzi do problemów i nieefektywnego wyszukiwania.

Pytanie 33

Jaką wartość będzie mieć zmienna str2 po wykonaniu poniższego fragmentu kodu JavaScript?

var str1 = "JavaScript"; var str2 = str1.substring(2, 6);
A. avaS
B. vaSc
C. vaScri
D. avaScr
Zrozumienie działania metody substring jest kluczowe do prawidłowego wyodrębniania części łańcucha znaków w JavaScript. Metoda ta przyjmuje dwa argumenty: indeks początkowy oraz opcjonalny indeks końcowy. Indeks początkowy wskazuje od którego znaku zaczynamy wycinanie a indeks końcowy wskazuje na pierwszy znak który nie zostanie uwzględniony. Jeśli indeks końcowy nie jest podany metoda wycina do końca łańcucha. Indeksowanie w JavaScript jest zerowe co oznacza że pierwszy znak ma indeks 0 drugi indeks 1 itd. To może prowadzić do mylnych założeń jeśli nie zrozumie się poprawnie jak działają indeksy. Typowym błędem jest użycie indeksu końcowego w sposób który uwzględnia także znak na tej pozycji co jest błędne ponieważ indeks końcowy jest wyłączny. W pytaniu gdy użyjemy substring(2 6) z łańcuchem JavaScript zaczynamy od znaku o indeksie 2 czyli v i kontynuujemy do indeksu 6 nie włączając go co daje nam ciąg vaSc. Inne odpowiedzi mogą wynikać z błędnego uwzględnienia indeksów początkowego lub końcowego co prowadzi do wycinania niepoprawnych fragmentów łańcucha. Rozumienie i stosowanie zasad indeksowania oraz logiki zerowania indeksów jest kluczowe przy pracy z łańcuchami znaków w JavaScript.

Pytanie 34

Jakiego języka skryptowego ogólnego zastosowania powinno się użyć do tworzenia aplikacji internetowych, które są zintegrowane z HTML i działają na serwerze?

A. C#
B. JavaScript
C. PHP
D. Perl
JavaScript, choć jest niezwykle popularnym językiem skryptowym używanym do tworzenia interaktywnych elementów na stronach internetowych, działa głównie po stronie klienta, co oznacza, że kod jest wykonywany w przeglądarce użytkownika, a nie na serwerze. To ogranicza możliwość bezpośredniej interakcji z bazą danych lub przetwarzania danych na serwerze. Użycie Javy jako języka skryptowego w aplikacjach webowych również napotyka ograniczenia, ponieważ jest to język o większej złożoności i przeznaczeniu systemowym, a nie specjalnie dostosowany do dynamicznych treści w sieci. W przypadku Perla, choć jest to język o dużych możliwościach, jego popularność w tworzeniu aplikacji WWW znacznie zmalała na rzecz bardziej nowoczesnych rozwiązań, jak PHP lub Python. C# również nie jest idealnym wyborem dla aplikacji WWW, które mają być zagnieżdżane w HTML, ponieważ jest językiem głównie stosowanym w ekosystemie Microsoftu i .NET, który wymaga dodatkowej konfiguracji serwera. To prowadzi do nieefektywności, jeśli chodzi o szybkość i łatwość wdrażania. Wybór niewłaściwego języka do danego zadania, takiego jak tworzenie aplikacji WWW, może skutkować poważnymi komplikacjami, w tym większym czasem ładowania, trudnościami w integracji oraz mniejszą elastycznością w rozwoju aplikacji. Dlatego tak ważne jest zrozumienie specyfiki i zastosowania różnych języków skryptowych w kontekście budowy aplikacji webowych.

Pytanie 35

Sklep online używa tabeli faktury. W trakcie generowania faktury pole dataPlatnosci nie zawsze zostaje uzupełnione. Aby to skorygować, na zakończenie dnia trzeba wpisać bieżącą datę do rekordów, w których to pole nie jest wypełnione. Można to osiągnąć za pomocą kwerendy

A. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE dataPlatnosci IS NOT NULL;
B. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL;
C. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataplatnosci = '0000-00-00';
D. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE id = 3;
Odpowiedź, którą wybrałeś, jest jak najbardziej trafna. Kwerenda UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL rzeczywiście aktualizuje pole dataPlatnosci w tabeli faktur, ale tylko wtedy, gdy jest ono puste. Super, że korzystasz z CURDATE(), bo to daje nam bieżącą datę. W SQL ważne jest, żeby nie tracić czasu na aktualizowanie wierszy, które już mają datę. Dobrze widzieć, że zastosowałeś IS NULL, bo to pozwala uniknąć kłopotów z porównywaniem dat i wydobywaniem takich wartości jak '0000-00-00', co na pewno by namieszało z interpretacją. Twoje podejście jest zgodne z tym, co powinno być w bazach danych – minimalizowanie zbędnych danych i dbanie o ich spójność. Z mojego doświadczenia, zawsze lepiej korzystać z funkcji datowych, bo to pozwala mieć pewność, że wprowadzane wartości są aktualne i pasują do reszty aplikacji.

Pytanie 36

Jakie zadanie wykonuje funkcja COUNT w języku SQL?

A. zliczanie rekordów uzyskanych z kwerendy
B. liczenie znaków w polu tekstowym
C. obliczenie wartości bezwzględnej w polu liczbowym
D. wyliczenie średniej wartości w danej kolumnie
Funkcja COUNT w języku SQL jest jedną z najbardziej fundamentalnych funkcji agregujących, która służy do zliczania liczby rekordów w zestawie danych. Użycie tej funkcji jest kluczowe w kontekście analizy danych, ponieważ pozwala na szybkie uzyskanie informacji o ilości danych, które spełniają określone kryteria. Przykład użycia COUNT może wyglądać następująco: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska'; Taki zapytanie zwróci liczbę wszystkich klientów z Polski. Funkcja COUNT jest również używana w połączeniu z klauzulą GROUP BY, co umożliwia zliczanie rekordów w podgrupach. Na przykład, SELECT kraj, COUNT(*) FROM klienci GROUP BY kraj; zliczy wszystkich klientów w każdym kraju. Warto podkreślić, że COUNT różni się od innych funkcji agregujących, takich jak AVG czy SUM, które obliczają wartości na podstawie danych, a nie zliczają ich. Funkcja COUNT jest zgodna z normami SQL-92 i jest wspierana przez wszystkie popularne systemy zarządzania bazami danych, co czyni ją uniwersalnym narzędziem w pracy z danymi.

Pytanie 37

Ile razy zostanie wykonana pętla przedstawiona w języku PHP, zakładając, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?
for($i = 0; $i <= 10; $i++) { ...... }

A. 0 razy
B. Nieskończoność
C. 10 razy
D. 11 razy
Odpowiedzi 0, 10 oraz nieskończoność są niepoprawne z kilku powodów. Przyjęcie, że pętla wykona się 0 razy, jest błędne, ponieważ pętla for rozpoczyna swoje działanie od zainicjowania zmiennej $i na 0. Zgodnie z konstrukcją pętli, pierwsze sprawdzenie warunku $i <= 10 jest pozytywne, co implikuje, że blok kodu zostanie wykonany przynajmniej raz. W odniesieniu do odpowiedzi 10, zakłada ona, że pętla zakończy się, gdy $i osiągnie wartość 10, co jest mylące. W rzeczywistości, pętla wykonuje się 11 razy, ponieważ ostatnie wykonanie kodu następuje przy $i równym 10, a następnie następuje inkrementacja, co sprawia, że $i osiąga 11 i przerywa działanie pętli. Wreszcie, odpowiedź sugerująca nieskończoną ilość iteracji jest również błędna. Nieskończone pętle często wynikają z braku modyfikacji zmiennej sterującej, jednak w tym przypadku pętla for ma zdefiniowaną inkrementację, co zapewnia, że po pewnym czasie pętla zakończy swoje działanie, nie generując nieskończoności. Każda z tych błędnych odpowiedzi pokazuje różne nieporozumienia dotyczące działania pętli for oraz logiki programistycznej w PHP.

Pytanie 38

Formularz, który pełni rolę pośrednika w nawigacji po bazie danych pomiędzy formularzami i kwerendami dostępnymi w systemie, określany jest jako formularz

A. zagnieżdżonym
B. pierwotnym
C. sterującym
D. głównym
Wybór odpowiedzi nie jest trafny, ponieważ w kontekście baz danych i interfejsów użytkownika pojęcia pierwotny, zagnieżdżony i główny nie oddają prawidłowo roli formularza sterującego. Formularz pierwotny nie jest pojęciem standardowym w kontekście baz danych; może on być mylnie interpretowany jako formularz, na którym bazują inne formularze, co nie jest odpowiednie w tym kontekście, ponieważ nie pełni on funkcji nawigacyjnej. Z kolei formularz zagnieżdżony odnosi się do formularzy umieszczonych wewnątrz innych formularzy, co służy do organizacji danych w sposób hierarchiczny, ale nie jest to jego główna funkcjonalność. Zagnieżdżone formularze mogą być użyteczne w specyficznych scenariuszach, ale nie są one odpowiednie do sterowania nawigacją pomiędzy różnymi sekcjami aplikacji. Odpowiedź „główny” również nie oddaje meritum, gdyż sugeruje, że formularz główny pełni tę funkcję, co jest mylące, gdyż w rzeczywistości to formularz sterujący odpowiada za organizację i kontrolę nawigacji w bazie danych. Formułując odpowiedzi, często można pomylić terminy oraz ich funkcje, co prowadzi do nieporozumień w zrozumieniu architektury aplikacji. W praktyce, kluczowe jest zrozumienie roli formularza sterującego jako centralnego elementu interfejsu użytkownika, który ma na celu uproszczenie interakcji z danymi.

Pytanie 39

Który z poniższych kodów stanowi alternatywę dla kodu umieszczonego w ramce?

Ilustracja do pytania
A. <?php for($x=1;$x<=55;$x+=1){echo $x." ";} ?>
B. <?php for($x=2;$x<=54;$x+=2){echo $x." ";} ?>
C. <?php for($x=2;$x<=56;$x+=2){echo $x." ";} ?>
D. <?php for($x=1;$x<=55;$x++){echo $x." ";} ?>
W odpowiedzi zaprezentowałeś kod, który generuje liczby parzyste od 2 do 54, co jest zgodne z tym, co było w zadaniu. W ramce masz pętlę for, która zaczyna się od x=1, ale trzeba wiedzieć, że w takiej konfiguracji będziesz też generować liczby nieparzyste. W Twoim kodzie lepiej było zacząć od x=2 i zwiększać x o 2, bo wtedy automatycznie pomijasz liczby, które nie są parzyste. To sprawia, że kod działa sprawniej, bo nie trzeba co chwilę sprawdzać, czy liczba jest parzysta, tylko po prostu się ją generuje. Jak dla mnie, jak chcesz tylko parzyste, to taki styl jest o niebo lepszy – klarowny i łatwy do ogarnięcia. W programowaniu istotne jest, żeby pisać kod, który nie tylko działa, ale też jest prosty do zrozumienia dla innych. Dzięki temu unikniesz problemów w przyszłości, gdy trzeba będzie coś poprawiać w kodzie.

Pytanie 40

Jakie uprawnienia posiada użytkownik jan po wykonaniu poniższych poleceń na bazie danych? ```GRANT ALL PRIVILEGES ON klienci TO jan;``` ```REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;```

A. Będzie miał możliwość zmiany struktury tabeli klienci
B. Będzie miał możliwość wyszukiwania danych w tabeli klienci
C. Będzie miał możliwość wstawiania rekordów do tabeli klienci
D. Będzie miał możliwość usuwania rekordów z tabeli klienci
Odpowiedź jest poprawna, ponieważ po wykonaniu poleceń SQL użytkownik jan ma przyznane wszystkie uprawnienia do tabeli klienci, a następnie odebrano mu konkretne uprawnienia do wykonywania operacji SELECT, INSERT, UPDATE oraz DELETE. Oznacza to, że jedynym uprawnieniem, które pozostaje jemu po tych operacjach, jest możliwość zmiany struktury tabeli, co oznacza operacje takie jak ADD COLUMN czy DROP COLUMN. W praktyce, gdy przyznajemy użytkownikowi rolę, często stosujemy uprawnienia do wykonywania operacji DDL (Data Definition Language), które są niezbędne do modyfikacji schematu bazy danych. Odpowiedzi na pytania dotyczące uprawnień powinny uwzględniać kontekst celów administracyjnych, ponieważ różne role użytkowników mogą mieć różne poziomy dostępu. W związku z tym, zrozumienie systemu uprawnień w kontekście zarządzania bazą danych jest kluczowe, a dobrym standardem jest nadawanie użytkownikom tylko tych uprawnień, które są niezbędne do wykonywania ich zadań.