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: 3 maja 2026 19:30
  • Data zakończenia: 3 maja 2026 19:43

Egzamin zdany!

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

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 tablicy 50 elementów o składowych strukturalnych jest prawidłowy ze względu na potrzebę przechowywania złożonych danych o uczniach. W tym przypadku, każdy element tablicy powinien reprezentować jednego ucznia i zawierać jego imię, nazwisko oraz średnią ocen. Struktura danych, taka jak struktura, pozwala na grupowanie różnych typów danych w jeden obiekt, co jest zgodne z dobrymi praktykami programowania w językach strukturalnych. Przykładowo, w języku C można zadeklarować strukturę dla ucznia w następujący sposób: `struct Uczen { char imie[50]; char nazwisko[50]; float srednia; };`. Następnie można utworzyć tablicę 50 elementów tej struktury: `struct Uczen uczniowie[50];`. Stosowanie struktur w tym kontekście ułatwia zarządzanie danymi i zwiększa czytelność kodu, co jest szczególnie ważne w przypadku projektów wymagających łatwego dostępu do różnych atrybutów obiektów. Używanie dobrze zdefiniowanych struktur danych jest zgodne z zasadami programowania obiektowego, nawet w językach proceduralnych, i przyczynia się do lepszej organizacji kodu oraz jego skalowalności.

Pytanie 2

Aby przekształcić obraz z formatu JPEG do PNG bez utraty jakości, tak aby kolor biały w oryginalnym obrazie został zastąpiony przezroczystością w wersji docelowej, należy najpierw

A. dodać kanał alfa
B. usunięcie gumką wszystkich białych miejsc
C. załadować obraz do programu do edycji grafiki wektorowej
D. obniżyć rozdzielczość obrazu
Żeby zmienić obrazek z formatu JPEG na PNG i zachować przezroczystość tam, gdzie wcześniej był biały kolor, ważny krok to dodanie kanału alfa. To w zasadzie taka dodatkowa warstwa w obrazie, która mówi, które piksele mają być przezroczyste. JPEG nie umie obsługiwać przezroczystości, więc białe obszary będą się pokazywać jako nieprzezroczyste. Jak już dodasz ten kanał alfa, możesz ustawić przezroczystość dla białych pikseli, co pozwoli na ich ukrycie lub zamianę na przezroczystość w końcowym obrazku. Na przykład, w programach jak Adobe Photoshop można użyć narzędzia do zaznaczania kolorów, żeby wybrać wszystkie białe piksele i potem je usunąć, zostawiając tylko przezroczystość. W ten sposób dostajesz efekt, którego chcesz w obrazie PNG, co jest zgodne z dobrą praktyką w obróbce grafiki i pomaga utrzymać wysoką jakość obrazu bez żadnych strat.

Pytanie 3

Czynność, w której identyfikuje się i eliminuje błędy w kodzie źródłowym programów, to

A. debugowanie
B. normalizacja
C. kompilowanie
D. standaryzacja
Kompilowanie to proces przekształcania kodu źródłowego napisanego w języku programowania na kod maszynowy, który może być wykonany przez komputer. Nie zajmuje się bezpośrednio identyfikacją błędów logicznych czy runtime, lecz jedynie syntaktycznymi. Standaryzacja odnosi się do procesu tworzenia norm i wytycznych, które służą do ujednolicenia metodologii w inżynierii oprogramowania, co jest istotne dla zapewnienia interoperacyjności oraz ułatwienia współpracy zespołów, ale nie dotyczy usuwania błędów w kodzie. Normalizacja to termin, który często odnosi się do procesów mających na celu ujednolicenie dokumentacji, formatów danych lub procedur w organizacji, co ma na celu poprawę efektywności, ale ponownie nie odnosi się bezpośrednio do czynności związanej z usuwaniem błędów w kodzie źródłowym. Choć wszystkie te procesy są ważne w cyklu życia oprogramowania, to żaden z nich nie pełni funkcji, jaką ma debugowanie, dlatego odpowiedzi te są niepoprawne.

Pytanie 4

Który z akapitów został sformatowany według podanego stylu, przy założeniu, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 3
B. Efekt 2
C. Efekt 1
D. Efekt 4
Efekt 3 jest poprawny ponieważ formatowanie CSS zawiera ustawienie padding 20px co oznacza że wokół tekstu znajduje się przestrzeń o szerokości 20 pikseli Dodatkowo kolor tekstu jest niebieski zgodnie z ustawieniem color blue Także font-weight 900 wskazuje że tekst powinien być pogrubiony w najwyższym stopniu co jest widoczne w trzecim efekcie Obramowanie ma szerokość 1 piksel i jest solidne co oznacza że jest to ciągła linia wokół tekstu Efekt 3 dokładnie odzwierciedla te właściwości Formatowanie takie jest użyteczne w tworzeniu przyciągających uwagę nagłówków lub wyróżnień w treści strony internetowej W praktyce taki styl można zastosować do elementów interfejsu użytkownika które wymagają większej czytelności lub estetycznego oddzielenia od reszty treści Ważne jest aby odpowiednio zrozumieć i wykorzystać właściwości CSS dla uzyskania maksymalnej efektywności w projektowaniu stron internetowych Dobre praktyki obejmują także testowanie stylów na różnych urządzeniach aby upewnić się że wygląd spełnia zamierzone cele we wszystkich kontekstach

Pytanie 5

Aby zmienić wartość atrybutu elementu opisanego w CSS przy użyciu skryptu JavaScript, należy zastosować następujący zapis

A. document.getElementById(id).style.<nazwa właściwości> = <nowa wartość>
B. document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>
C. document.getElementById(id).<nazwa właściwości> = <nowa wartość>
D. document.getElementById(id).innerHTML = <nowa wartość>
Odpowiedź "document.getElementById(id).style.<nazwa właściwości> = <nowa wartość>;" jest poprawna, ponieważ umożliwia bezpośrednią modyfikację stylu CSS elementu HTML o określonym identyfikatorze. Przy użyciu metody getElementById() uzyskujemy dostęp do konkretnego elementu w DOM (Document Object Model), a następnie poprzez właściwość style, możemy zmieniać różne atrybuty CSS. Na przykład, aby zmienić kolor tła elementu, możemy napisać: document.getElementById('myElement').style.backgroundColor = 'red';. Wartością, którą przypisujemy, jest odpowiednia właściwość CSS, co czyni ten sposób zgodnym z dobrymi praktykami w programowaniu JavaScript. Dodatkowo, korzystając z tej metody, możemy dynamicznie dostosowywać styl elementów na stronie w odpowiedzi na interakcje użytkownika, co jest kluczowe w nowoczesnych aplikacjach webowych. Warto też zauważyć, że zmiany dokonane w ten sposób są natychmiast widoczne na stronie, co przyczynia się do lepszego doświadczenia użytkownika.

Pytanie 6

Po uruchomieniu zamieszczonego w ramce skryptu w języku JavaScript, w przeglądarce zostanie wyświetlona wartość:

var a = 5;
var b = a--;
a *= 3;
document.write(a + "," + b);
A. 15,5
B. 12,4
C. 12,5
D. 15,4
W tym skrypcie JavaScript mamy operator dekrementacji a--, gdzie najpierw wartość zmiennej a jest przypisana do zmiennej b, a dekrementacja następuje później. Jeśli tego nie rozumiesz, może to prowadzić do różnych nieporozumień co do wynikowych wartości. Czyli po a-- b przyjmuje pierwotną wartość a, która wynosi 5. Warto zrozumieć kolejność operacji, bo przy operatorze postfix zmiana wartości następuje po przypisaniu. Później, po dekrementacji, a staje się 4, co czasem jest źle interpretowane, bo ludzie myślą, że b też by się zmieniło. Potem jest a *= 3, gdzie 4 mnożymy przez 3 i dostajemy 12. Często ludzie popełniają błąd, zakładając, że operatory działają równocześnie w jednym wierszu kodu. Ważne jest, żeby znać te subtelności, bo pomaga to w lepszym programowaniu i kontrolowaniu, jak zmienne się zmieniają.

Pytanie 7

Jakiego języka można użyć do nawiązania połączenia z bazą MySQL w trakcie tworzenia aplikacji internetowej?

A. XHTML
B. CSS
C. PHP
D. HTML
PHP to naprawdę fajny język skryptowy, który świetnie sprawdza się w tworzeniu dynamicznych aplikacji internetowych. Jest super efektywny, kiedy trzeba połączyć się z bazami danych, takimi jak MySQL. Jako język serwerowy, daje programistom narzędzia do robienia różnych rzeczy z danymi, jak dodawanie, edytowanie czy usuwanie rekordów w bazie. Na przykład, gdy tworzysz aplikację do zarządzania użytkownikami, możesz użyć PHP do obsługi formularza rejestracyjnego, który zbiera dane od użytkowników i następnie łączy się z MySQL, by je zapisać. Do łączenia z bazą danych używa się funkcji, jak mysqli_connect() lub PDO (PHP Data Objects), co pozwala na bezpieczne i sprawne zarządzanie połączeniami oraz zapytaniami SQL. Co ważne, PHP zachęca do dobrych praktyk, jak stosowanie przygotowanych zapytań, co mocno zwiększa bezpieczeństwo aplikacji, chroniąc przed różnymi atakami, jak SQL injection.

Pytanie 8

Użytkownik Jan będzie miał możliwość realizacji

GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost';
A. wyłącznie operacje CREATE, ALTER, DROP na tabelach w bazie dane
B. wszystkie operacje na tabelach bazy dane oraz przekazywać prawa innym użytkownikom
C. wszystkie operacje na tabelach w bazie dane
D. tylko operacje manipulacji danymi oraz zmienić jedynie swoje uprawnienia
Odpowiedź jest prawidłowa, ponieważ polecenie GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost'; przyznaje użytkownikowi Jan wszelkie uprawnienia na wszystkich tabelach w bazie danych o nazwie 'dane'. Oznacza to, że Jan może wykonywać wszystkie operacje, takie jak SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP i inne, które są związane z zarządzaniem danymi oraz strukturą bazy. W praktyce oznacza to, że Jan ma pełną kontrolę nad bazą danych, co może być przydatne w scenariuszach, gdzie administratorzy chcą umożliwić użytkownikom elastyczność w zarządzaniu danymi. Warto jednak pamiętać, że przyznawanie ALL PRIVILEGES powinno być stosowane ostrożnie, aby uniknąć nieautoryzowanego dostępu do informacji. Dobrym rozwiązaniem jest stosowanie polityki minimalnych uprawnień, która ogranicza możliwości użytkowników do tylko tych, które są niezbędne do ich codziennych obowiązków.

Pytanie 9

Aby uruchomić skrypt JavaScript, potrzebne jest oprogramowanie

A. serwer WWW
B. przeglądarka internetowa
C. debugger JavaScript
D. serwer MySQL
Aby uruchomić skrypt JavaScript, niezbędne jest posiadanie przeglądarki internetowej, ponieważ JavaScript jest językiem skryptowym, który działa bezpośrednio w środowisku przeglądarki. Przeglądarki, takie jak Chrome, Firefox czy Safari, zawierają silniki JavaScript, które interpretują i wykonują kod skryptowy. Przykładem może być użycie funkcji 'console.log()', która umożliwia wyświetlanie danych w konsoli przeglądarki. Ponadto, standard ECMAScript, na którym oparty jest JavaScript, określa zasady i funkcje tego języka, a przeglądarki implementują te standardy, co zapewnia spójność działania skryptów. Użytkownicy mogą również używać narzędzi deweloperskich, dostępnych w przeglądarkach, do debugowania i optymalizacji skryptów, ale podstawowym warunkiem uruchomienia kodu JavaScript zawsze będzie przeglądarka internetowa. W obecnych czasach, JavaScript stał się kluczowym elementem tworzenia interaktywnych aplikacji internetowych, co podkreśla jego znaczenie w ekosystemie webowym.

Pytanie 10

Kolor zapisany w modelu RGB(255, 0, 0) to

A. zielony
B. czerwony
C. niebieski
D. żółty
Odpowiedź czerwona jest poprawna, ponieważ w modelu RGB kolor jest definiowany przez kombinację trzech podstawowych kolorów: czerwonego, zielonego i niebieskiego. Wartości w modelu RGB mieszczą się w zakresie od 0 do 255, gdzie 255 oznacza pełną intensywność danego koloru, a 0 brak intensywności. W przypadku RGB(255, 0, 0), maksymalna wartość oznacza, że kolor czerwony jest w pełni nasycony, podczas gdy wartości zielonej i niebieskiej są równe zeru, co skutkuje uzyskaniem czystego koloru czerwonego. W praktyce, model RGB jest powszechnie stosowany w technologii wyświetlania kolorów na ekranach komputerów, telewizorów oraz w grafice komputerowej. Zrozumienie modelu RGB jest kluczowe dla projektantów interfejsów użytkownika, grafików i specjalistów od marketingu wizualnego, którzy muszą umieć manipulować kolorami, aby osiągnąć zamierzony efekt wizualny lub brandingowy. Dobre praktyki w zakresie doboru kolorów obejmują uwzględnienie harmonii kolorystycznej oraz różnorodności percepcji kolorów przez różne osoby, co można osiągnąć poprzez testy A/B lub badania użytkowników.

Pytanie 11

Jakie polecenie pozwala na kontrolowanie oraz optymalizację bazy danych?

A. mysqlcheck
B. mysqlimport
C. mysqlshow
D. mysqldump
Odpowiedź 'mysqlcheck' jest poprawna, ponieważ jest to narzędzie służące do sprawdzania i optymalizacji baz danych MySQL. Umożliwia ono użytkownikom weryfikację integralności tabel, a także optymalizację struktury bazy danych, co jest kluczowe dla zapewnienia jej wydajności. Funkcja ta jest niezwykle przydatna w przypadku dużych baz danych, gdzie regularne sprawdzanie i optymalizacja mogą znacząco wpłynąć na szybkość wykonywania zapytań. W praktyce, mysqlcheck można uruchomić z różnymi opcjami, na przykład '-a' do automatycznej optymalizacji, co pozwala na zautomatyzowanie procesu konserwacji bazy. Ponadto, zgodnie z zaleceniami dobrych praktyk w zarządzaniu bazami danych, regularne korzystanie z mysqlcheck może pomóc w identyfikacji potencjalnych problemów przed ich eskalacją, co z kolei minimalizuje ryzyko awarii systemu i utraty danych.

Pytanie 12

Jaki jest domyślny port dla serwera HTTP?

A. 21
B. 80
C. 8080
D. 443
Port 80 to domyślny port dla protokołu HTTP (Hypertext Transfer Protocol), który jest najczęściej używany do przesyłania stron internetowych w sieci. Ten port jest zarezerwowany dla HTTP przez Internet Assigned Numbers Authority (IANA) i jest standardowo używany przez serwery WWW, aby umożliwić użytkownikom dostęp do stron internetowych bez konieczności podawania numeru portu w adresie URL. Gdy wpisujesz adres strony w przeglądarce, np. http://example.com, przeglądarka domyślnie łączy się z serwerem na porcie 80. W praktyce oznacza to, że serwery WWW zazwyczaj nasłuchują na tym porcie, aby odbierać i obsługiwać żądania HTTP od klientów, takich jak przeglądarki internetowe. Domyślne użycie portu 80 sprawia, że nie trzeba go podawać w adresie URL, co upraszcza korzystanie z sieci dla użytkowników końcowych. Z mojego doświadczenia, znajomość domyślnych portów jest kluczowa dla każdego administratora sieci i dewelopera aplikacji internetowych, ponieważ wpływa na sposób konfiguracji zarówno serwerów, jak i firewalli, a także pomaga w rozwiązywaniu problemów z łącznością.

Pytanie 13

Instrukcja SQL przedstawiona w formie graficznej

ALTER TABLE 'miasta'
ADD 'kod' text;
A. wprowadza do tabeli dwie kolumny o nazwach: kod i text
B. zmienia nazwę tabeli miasta na nazwę kod
C. dodaje do tabeli kolumnę o nazwie kod typu text
D. w tabeli miasta zmienia nazwę kolumny kod na nazwę text
Polecenie ALTER TABLE w SQL to naprawdę przydatne narzędzie, które pozwala na modyfikowanie struktury tabeli w bazie danych. W Twoim przypadku dodajesz nową kolumnę o nazwie 'kod' typu text do tabeli 'miasta'. To słowo kluczowe ADD oznacza, że chcemy coś dorzucić do tej tabeli. Typ text jest fajny, bo jest używany do przechowywania różnych dłuższych tekstów, co sprawia, że idealnie nadaje się do takich danych jak opisy czy kody pocztowe. Pamiętaj, że przed robieniem zmian w tabelach warto pomyśleć, jak to wpłynie na całe działanie aplikacji i procesów w firmie. Na przykład, jeśli musisz przechować dodatkowe info o miastach, jak właśnie kody pocztowe, to dodanie tego jest super pomysłem. Znajomość ALTER TABLE jest mega przydatna w zarządzaniu bazami danych, bo pozwala na elastyczne dostosowanie tabel do zmieniających się potrzeb. To naprawdę może zwiększyć efektywność systemu, jeśli dobrze to ogarniesz.

Pytanie 14

Element lub zestaw elementów, który jednoznacznie identyfikuje każdy pojedynczy rekord w tabeli bazy danych, nazywamy kluczem

A. przestawny
B. inkrementacyjny
C. obcy
D. podstawowy
Klucz podstawowy (ang. primary key) jest to pole lub zbiór pól w tabeli bazy danych, które jednoznacznie identyfikują każdy row w tej tabeli. Klucz podstawowy nie może zawierać wartości NULL i musi być unikalny dla każdego rekordu, co zapewnia integralność danych w bazie. Przykładem klucza podstawowego może być identyfikator użytkownika w tabeli użytkowników, gdzie każdy użytkownik ma unikalny numer ID. Zgodnie z normami projektowania baz danych, klucz podstawowy powinien być prosty, a jego wartość nie powinna się zmieniać w czasie, aby zachować stabilność odniesień do tego rekordu w innych tabelach. W dobrych praktykach projektowania baz danych dla kluczy podstawowych często stosuje się typy danych takie jak INTEGER z automatycznym inkrementowaniem, co umożliwia wygodne dodawanie nowych rekordów bez ryzyka kolizji wartości. Używanie kluczy podstawowych ułatwia również tworzenie relacji z innymi tabelami, znanych jako klucze obce, co jest fundamentem relacyjnych baz danych.

Pytanie 15

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", należy zastosować funkcję PHP

A. strtolower("ala ma psa")
B. ucfirst("ala ma psa")
C. strstr("ala ma psa")
D. strtoupper("ala ma psa")
Fajnie, że użyłeś funkcji strtoupper w PHP! Dzięki niej przekształcasz cały tekst na wielkie litery, co w tym przypadku zmienia 'ala ma psa' na 'ALA MA PSA'. To naprawdę przydatna funkcja, zwłaszcza w aplikacjach webowych, gdzie ważne jest, żeby tekst wyglądał tak, jak powinien, np. zgodnie z zasadami SEO czy przy prezentacji danych. Przykładowo, w formularzach warto, żeby nazwy użytkowników zawsze były w tym samym formacie. Poza tym jest cała masa innych funkcji w PHP, które mogą przydać się do manipulacji tekstem, a ich znajomość poprawia jakość kodu i jego czytelność.

Pytanie 16

Podczas walidacji witryn internetowych nie analizuje się

A. źródła pochodzenia narzędzi edycyjnych
B. działania hiperlinków
C. zgodności z różnymi przeglądarkami
D. błędów w składni kodu
W procesie walidacji stron internetowych, źródło pochodzenia narzędzi edytorskich nie jest przedmiotem analizy, ponieważ walidacja koncentruje się na technicznych aspektach kodu HTML, CSS i JavaScript, które wpływają na funkcjonalność oraz dostępność strony. Główne obszary walidacji obejmują zgodność z przeglądarkami, co oznacza, że strona powinna działać poprawnie w różnych środowiskach przeglądarkowych. Działania linków są również monitorowane, aby zapewnić, że wszystkie odnośniki kierują do właściwych lokalizacji oraz nie prowadzą do błędów 404. Błędy składni kodu są kluczowe, ponieważ mogą znacząco wpłynąć na sposób, w jaki strona jest renderowana przez przeglądarki. Przykładowo, walidatory HTML, takie jak W3C Validator, pomagają identyfikować błędy i ostrzegają o problemach, które mogą wpłynąć na dostępność i SEO strony. Dobre praktyki wymuszają, aby każda strona internetowa była nie tylko estetyczna, ale przede wszystkim funkcjonalna i zgodna z obowiązującymi standardami, co przekłada się na lepsze doświadczenia użytkowników.

Pytanie 17

Wskaż metodę biblioteki Math języka JavaScript, która dla parametru x = 2.8 zwróci wartość 2.

A. exp(x)
B. floor(x)
C. ceil(x)
D. sqrt(x)
Poprawna jest metoda Math.floor(x), ponieważ w JavaScript odpowiada ona za zaokrąglenie liczby w dół do najbliższej liczby całkowitej. Dla x = 2.8 wynik Math.floor(2.8) to 2, bo funkcja „odcina” część ułamkową i schodzi do najbliższej liczby całkowitej mniejszej lub równej podanej wartości. To zachowanie jest zdefiniowane w specyfikacji ECMAScript i jest spójne we wszystkich nowoczesnych przeglądarkach oraz środowiskach typu Node.js. W praktyce Math.floor bardzo często wykorzystuje się przy pracy z indeksami tablic, generowaniu losowych liczb całkowitych czy przy obliczeniach, gdzie fragment ułamkowy nie ma znaczenia, np. liczba stron, liczba pełnych paczek produktu, paginacja rekordów. Typowy wzorzec to na przykład Math.floor(Math.random() * 10), który daje liczby całkowite z zakresu 0–9. Warto też świadomie odróżniać Math.floor od innych metod zaokrąglania: Math.ceil(2.8) zwróci 3, bo zaokrągla „w górę”, a Math.round(2.8) również zwróci 3, bo zaokrągla do najbliższej liczby całkowitej. Z mojego doświadczenia w JS często używa się właśnie floor tam, gdzie ważna jest przewidywalność w dół, np. przy obliczaniu indeksów czy dzieleniu na równe segmenty, żeby nie wyjść poza zakres. Warto też pamiętać, że Math.floor działa poprawnie również dla liczb ujemnych, ale tam „w dół” oznacza w kierunku −∞, więc Math.floor(−2.8) da −3, co czasem potrafi zaskoczyć, jeśli ktoś myśli tylko o „obcięciu” części po przecinku.

Pytanie 18

Testy aplikacji webowej, których celem jest ocena wydajności aplikacji oraz bazy danych, a także architektury serwera i konfiguracji, określane są mianem testów

A. funkcjonalności
B. kompatybilności
C. użyteczności
D. bezpieczeństwa
Testy bezpieczeństwa koncentrują się na ocenie, jak dobrze aplikacja chroni dane użytkowników oraz jak reaguje na próby nieautoryzowanego dostępu. W tym kontekście testy te mają na celu identyfikację luk bezpieczeństwa, które mogłyby być wykorzystane przez atakujących. Testy te nie koncentrują się na aspektach skalowalności ani architektury serwera, a ich celem jest zapewnienie, że aplikacja jest odporna na zagrożenia. Z kolei testy funkcjonalności mają na celu weryfikację, czy wszystkie elementy aplikacji działają zgodnie z wymaganiami. Obejmują one testowanie poszczególnych funkcji i ich interakcji, ale nie badają wydajności systemu w warunkach dużego obciążenia ani nie analizują architektury bazy danych. Funkcjonalność aplikacji może być poprawna, ale nieprzystosowana do obsługi wzrastającej liczby użytkowników, co jest istotne w kontekście skalowalności. Testy użyteczności oceniają, jak łatwo użytkownicy mogą korzystać z aplikacji, koncentrując się na interfejsie, ergonomii oraz ogólnym doświadczeniu użytkownika. Choć te aspekty są niezwykle ważne, nie mają one bezpośredniego związku z testowaniem architektury serwera czy skalowalności systemu, co jest kluczowe dla odpowiedzi na postawione pytanie.

Pytanie 19

Plik cookie utworzony przedstawionym poleceniem PHP:

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. będzie przechowywany na serwerze przez jedną dobę.
B. będzie przechowywany na serwerze przez jedną godzinę.
C. wygaśnie po jednej godzinie od jego utworzenia.
D. wygaśnie po jednej dobie od jego utworzenia.
Kod z funkcją setcookie() w PHP bardzo często myli się z mechanizmami przechowywania danych po stronie serwera, dlatego łatwo tu o błędne skojarzenia. W tym przykładzie kluczowe są dwie rzeczy: po pierwsze, gdzie fizycznie przechowywane jest cookie, a po drugie, w jakiej jednostce podajemy czas. Ciasteczka HTTP są zawsze przechowywane po stronie klienta, czyli w przeglądarce użytkownika, w jej lokalnym magazynie. Serwer jedynie informuje przeglądarkę, jaki ma być czas życia takiego wpisu, wysyłając odpowiedni nagłówek Set-Cookie z datą wygaśnięcia. Stąd pomysł, że cookie „będzie przechowywane na serwerze” jest po prostu nietrafiony – serwer nie ma osobnego magazynu na ciasteczka użytkowników, on tylko je odczytuje z nagłówków przychodzących żądań i ewentualnie ustawia nowe. Druga częsta pomyłka dotyczy samego czasu. Funkcja time() zwraca aktualny timestamp w sekundach od 1.01.1970, a w wyrażeniu 3600 * 24 wyliczana jest liczba sekund w jednej dobie. Jeśli ktoś pobieżnie spojrzy na zapis, może skojarzyć 3600 z godziną i założyć, że cookie jest ważne tylko godzinę, ignorując mnożenie przez 24. To typowy błąd „czytania po łebkach” kodu. Tymczasem przeglądarka dostaje konkretny moment w przyszłości, przesunięty o 86400 sekund, i do tej chwili będzie wysyłać cookie przy każdym żądaniu do odpowiedniej domeny i ścieżki. Warto też pamiętać, że samo istnienie cookie nie oznacza trwałego przechowywania danych po stronie serwera. Dane z ciasteczka trafiają na serwer dopiero, gdy przeglądarka wyśle je w nagłówku HTTP. Dlatego planując logikę aplikacji, trzeba jasno rozróżniać dane sesyjne na serwerze (np. w $_SESSION) od danych w cookie, które użytkownik może modyfikować po swojej stronie i które wygasają dokładnie według tego timestampu, jaki podamy w setcookie().

Pytanie 20

Uprawnienia obiektowe, przyznawane użytkownikom serwera bazy danych, mogą umożliwiać lub uniemożliwiać

A. wykonywanie operacji na bazie, takich jak wstawianie lub modyfikowanie danych
B. realizowanie czynności, takich jak tworzenie kopii zapasowej
C. zmienianie ról oraz kont użytkowników
D. dziedziczenie uprawnień
Uprawnienia obiektowe w systemach zarządzania bazami danych (DBMS) są kluczowym elementem bezpieczeństwa oraz zarządzania dostępem do danych. Pozwalają one na kontrolowanie, kto i w jaki sposób może korzystać z zasobów bazy danych. Odpowiedź dotycząca wykonywania operacji na bazie, takich jak wstawianie lub modyfikowanie danych, jest poprawna, ponieważ uprawnienia te bezpośrednio odnoszą się do możliwości modyfikacji danych, co jest fundamentem działania aplikacji bazodanowych. Na przykład, użytkownik z odpowiednimi uprawnieniami może dodawać nowe rekordy do tabeli za pomocą instrukcji SQL INSERT lub modyfikować istniejące dane za pomocą UPDATE. W kontekście standardów, takie jak SQL-92 oraz nowsze wersje, definiują uprawnienia, które mogą być przyznawane użytkownikom na poziomie obiektów, co pozwala na granularne zarządzanie dostępem. W praktyce, administratorzy baz danych muszą starannie przydzielać te uprawnienia, aby zapewnić integralność i bezpieczeństwo danych w systemie, co jest niezbędne do efektywnego zarządzania informacjami.

Pytanie 21

Jakie z poniższych stwierdzeń poprawnie opisuje zdefiniowaną tabelę?

CREATE TABLE dane (kolumna INTEGER(3));
A. Tabela o nazwie dane zawiera trzy kolumny typu całkowitego.
B. Kolumny tabeli dane są nazywane: kolumna 1, kolumna2, kolumna3.
C. Tabela ma jedną kolumnę, która zawiera tablice z trzema elementami.
D. Tabela o nazwie dane posiada jedną kolumnę liczb całkowitych.
Odpowiedź jest prawidłowa, ponieważ w zdefiniowanej tabeli 'dane' mamy jedną kolumnę o nazwie 'kolumna', której typ danych to INTEGER. Wartość 3 w definicji INTEGER(3) oznacza, że kolumna może przechowywać liczby całkowite, a nie liczb o długości 3, co często jest mylone. W praktyce INTEGER w SQL nie ma ograniczenia do przechowywania tylko trzech cyfr; to po prostu sugeruje, że przyjmuje się, iż liczby będą miały długość do trzech cyfr, co jest w rzeczywistości ignorowane, ponieważ SQL nie narzuca takich ograniczeń. Wartości w tej kolumnie mogą być zarówno jednocyfrowe, jak i trzycyfrowe. W kontekście projektowania baz danych, dobrą praktyką jest nadawanie kolumnom zrozumiałych nazw oraz dokładne określanie ich typów danych, co ułatwia późniejsze zarządzanie danymi. Poprawne zdefiniowanie tabeli jest kluczowe dla wydajności bazy danych oraz jej integralności, dlatego dla kolumny INTEGER nie ma potrzeby dodatkowego określania ograniczeń, chyba że są one wymagane w kontekście aplikacyjnym.

Pytanie 22

Podczas wykonywania zapytania można skorzystać z klauzuli DROP COLUMN

A. DROP TABLE
B. ALTER TABLE
C. ALTER COLUMN
D. CREATE TABLE
Odpowiedź 'ALTER TABLE' jest poprawna, ponieważ klauzula DROP COLUMN jest używana w kontekście zmiany struktury tabeli w bazach danych. Polecenie ALTER TABLE pozwala na modyfikację istniejącej tabeli, w tym dodawanie, usuwanie lub modyfikowanie kolumn. Użycie klauzuli DROP COLUMN umożliwia usunięcie określonej kolumny z tabeli, co jest przydatne, gdy kolumna nie jest już potrzebna, zawiera nieaktualne dane lub w celu optymalizacji struktury bazy danych. Na przykład, jeśli mamy tabelę 'Użytkownicy' z kolumną 'wiek', której chcemy się pozbyć, możemy użyć polecenia: 'ALTER TABLE Użytkownicy DROP COLUMN wiek;'. Ważne jest, aby przed wykonaniem tej operacji upewnić się, że usunięcie kolumny nie wpłynie negatywnie na integralność danych lub logikę aplikacji. Praktyki dotyczące zarządzania bazami danych zalecają również wykonanie kopii zapasowej danych przed takimi operacjami, aby zminimalizować ryzyko utraty danych.

Pytanie 23

Który z zaprezentowanych kodów HTML sformatuje tekst zgodnie z podanym wzorem?
Uwaga: słowo "stacji" jest napisane większą czcionką niż pozostałe wyrazy w tej linijce)

Lokomotywa

Stoi na stacji lokomotywa ...

A. <p><small>Lokomotywa</small></p> <p>Stoi na <big>stacji<big> lokomotywa ...</p>
B. <h1>Lokomotywa</h1> <p>Stoi na <big>stacji</big> lokomotywa ...</p>
C. <h1>Lokomotywa</h1> <p>Stoi na <big>stacji</big> lokomotywa ...</p>
D. <h1>Lokomotywa</h1> <p>Stoi na <big>stacji lokomotywa ...</p>
W zaprezentowanych błędnych rozwiązaniach widać kilka typowych problemów z HTML-em: niepełne zamykanie znaczników, obejmowanie tagiem zbyt dużego fragmentu tekstu oraz mylenie roli nagłówków z innymi elementami formatowania. Jeżeli znacznik <big> obejmuje więcej niż powinien, na przykład całe wyrażenie „stacji lokomotywa ...”, to efekt wizualny nie odpowiada wzorcowi – powiększony zostaje nie tylko jeden wyraz, ale cała reszta, co psuje zamierzony wygląd. To jest częsty błąd: zaznaczenie zbyt szerokiego fragmentu tekstu zamiast dokładnie tego słowa, które ma być wyróżnione. Drugi typ problemu to brak zamknięcia znacznika, jak w przypadku użycia <big> bez odpowiadającego mu </big>. Z punktu widzenia specyfikacji HTML takie konstrukcje są niepoprawne, a choć współczesne przeglądarki próbują „naprawiać” kod, skutki bywają nieprzewidywalne: część tekstu może być niechcący powiększona albo cała struktura akapitu zostanie zinterpretowana inaczej. Do tego dochodzi mylenie semantyki: nagłówek <h1> służy do oznaczania tytułu sekcji czy strony, a nie do przypadkowego pomniejszania czy powiększania tekstu. Używanie <small> w miejscu, gdzie w treści powinien wystąpić nagłówek, zaburza hierarchię dokumentu i szkodzi dostępności, bo czytniki ekranu i roboty wyszukiwarek mocno opierają się na strukturze nagłówków. Moim zdaniem warto wyrobić sobie nawyk: najpierw poprawna, logiczna struktura (h1, p, itd.), a dopiero potem delikatne wyróżnianie fragmentów, dokładnie obejmując tagami tylko te słowa, które mają być zmienione. W nowoczesnej praktyce webowej zamiast takich prezentacyjnych tagów jak <big> czy <small> lepiej stosować <span> z klasą i przerzucić całą logikę wyglądu do CSS, ale fundament jest ten sam – precyzyjne zakresy znaczników i poprawnie zamknięte tagi.

Pytanie 24

W zamieszczonym kodzie PHP, zamiast znaków zapytania powinien być wyświetlony komunikat:

$x = mysql_query('SELECT * FROM mieszkancy');
if (!$x)
    echo '??????????????????????';
A. Niepoprawna nazwa bazy danych
B. Niepoprawne hasło do bazy danych
C. Błąd w trakcie przetwarzania zapytania
D. Zapytanie zostało poprawnie przetworzone
Wybór nieprawidłowej odpowiedzi wskazuje na pewne nieporozumienia związane z obsługą błędów w kontekście zapytań do bazy danych. Nieprawidłowe hasło do bazy danych oraz nieprawidłowa nazwa bazy danych dotyczą problemów, które występują w momencie próby nawiązania połączenia z bazą. W przypadku, gdy połączenie nie zostanie nawiązane, kod PHP nie dotrze do linii z zapytaniem SQL, a więc komunikat błędu w takim kontekście nie zostanie wyświetlony. Z kolei zapytanie przetworzone pomyślnie sugerowałoby, że operacja SQL została wykonana poprawnie, co jest sprzeczne z sytuacją, w której wynik funkcji mysql_query() jest fałszywy. W przypadku, kiedy zapytanie jest źle sformułowane lub odnosi się do nieistniejącej tabeli, funkcja mysql_query() zwraca fałsz, co powinno wywołać wyświetlenie komunikatu o błędzie przetwarzania zapytania. Kluczowe jest zrozumienie, że błędne interpretacje związane z połączeniem i zapytaniami mogą prowadzić do niewłaściwej diagnozy problemu. W praktyce, dobrym zwyczajem jest zawsze sprawdzanie wyników zapytań i używanie funkcji diagnostycznych, aby uniknąć nieporozumień i poprawnie zarządzać błędami w aplikacjach bazodanowych.

Pytanie 25

Który z podanych znaczników HTML nie jest używany do formatowania tekstu?

A. <sub>
B. <div>
C. <em>
D. <strong>
<div> jest znacznikiem HTML, który służy do grupowania elementów na stronie, co ułatwia ich stylizację i manipulację w CSS oraz JavaScript. W przeciwieństwie do znaczników takich jak <em>, <sub> i <strong>, które mają konkretne zastosowania związane z formatowaniem tekstu, <div> pełni rolę kontenera, co czyni go bardziej uniwersalnym narzędziem do strukturyzacji treści. Przykładowo, można użyć <div> do utworzenia sekcji nagłówka, stopki lub bocznego panelu na stronie. Zgodnie z standardami W3C, <div> jest elementem blokowym, co oznacza, że zajmuje całą szerokość dostępną w swoim rodzicu. W praktyce, <div> pozwala na efektywne zarządzanie układem strony i jest często stosowany w połączeniu z CSS w celu uzyskania pożądanej prezentacji wizualnej. Przykład zastosowania: <div class='container'>...</div> może być użyty do zawarcia innych elementów jak <h1>, <p> czy <img>. Dzięki temu można łatwo manipulować stylem i zachowaniem tych elementów, co czyni <div> kluczowym narzędziem w nowoczesnym web designie.

Pytanie 26

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Progowanie.
B. Inwersja.
C. Barwienie.
D. Krzywe.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 27

Częstotliwość próbkowania ma wpływ na

A. skalę głośności zapisywanego utworu
B. amplitudę fali dźwiękowej utworu
C. jakość analogowego dźwięku
D. jakość cyfrowego dźwięku
Częstotliwość próbkowania, wyrażana w hercach (Hz), odnosi się do liczby próbek dźwięku zbieranych na sekundę w procesie cyfryzacji sygnału audio. Im wyższa częstotliwość próbkowania, tym więcej szczegółów dźwiękowych jest uchwyconych, co bezpośrednio wpływa na jakość cyfrowego dźwięku. Standardowe częstotliwości próbkowania to 44,1 kHz, stosowane w płytach CD, oraz 48 kHz, powszechnie używane w filmach. Wyższe częstotliwości, jak 96 kHz czy 192 kHz, są stosowane w profesjonalnych studiach nagraniowych, gdzie jakość audio jest kluczowa. W praktyce, zwiększona częstotliwość próbkowania umożliwia lepsze odwzorowanie wysokich tonów oraz bardziej precyzyjne oddanie niuansów dźwięku, co jest istotne w produkcji muzycznej. Warto jednak zauważyć, że zbyt wysoka częstotliwość próbkowania może prowadzić do nadmiernego obciążenia systemu oraz zwiększenia rozmiaru plików audio, co wymaga równowagi między jakością a wydajnością.

Pytanie 28

Podaj polecenie SQL, które pozwoli na dodanie kolumny miesiacSiewu do tabeli rośliny znajdującej się w bazie danych

A. INSERT INTO rośliny VALUES (miesiacSiewu int);
B. CREATE TABLE rośliny {miesiacSiewu int};
C. UPDATE rośliny ADD miesiacSiewu int;
D. ALTER TABLE rośliny ADD miesiacSiewu int;
Odpowiedź 'ALTER TABLE rośliny ADD miesiacSiewu int;' jest jak najbardziej na miejscu. Używasz tutaj komendy SQL 'ALTER TABLE', co jest standardem, jeśli chcesz coś zmienić w już istniejącej tabeli. W tym przypadku dodajesz nowe pole 'miesiacSiewu' w formacie 'int' do tabeli 'rośliny'. Fajnie, bo dodawanie kolumn w relacyjnych bazach danych to chleb powszedni, zwłaszcza gdy musisz dodać nowe informacje. Na przykład, jak chcesz wiedzieć, kiedy siać rośliny, to zrobienie tego przy pomocy tej komendy pozwoli Ci trzymać te dane blisko innych szczegółów roślin. Warto też pamiętać, żeby nowe kolumny były dobrze indeksowane lub miały jakieś wartości domyślne, bo to może przyspieszyć zapytania do bazy. Tego typu operacje są naprawdę ważne w zarządzaniu bazami danych, bo dają Ci elastyczność, żeby dostosować strukturę bazy do potrzeb Twojej aplikacji.

Pytanie 29

Aby zweryfikować ustawienia w pliku php.ini, można wykonać skrypt PHP, który zawiera polecenie

A. <?php phpcredits(); ?>
B. <?php echo phpversion(); ?>
C. <?php phpinfo(); ?>
D. <?php ini_set(); ?>
Funkcja phpinfo() jest jednym z najczęściej używanych narzędzi w PHP do uzyskiwania szczegółowych informacji o środowisku PHP, w tym ustawieniach konfiguracyjnych z pliku php.ini. Po jej wywołaniu, generowana jest strona HTML zawierająca dane o wersji PHP, zainstalowanych modułach, dostępnych zmiennych i wielu innych istotnych informacjach. Dzięki temu programiści mogą szybko zidentyfikować, jakie opcje są aktywne, co jest szczególnie przydatne przy diagnozowaniu problemów lub optymalizacji aplikacji. Przykładowo, w przypadku występowania błędów związanych z pamięcią lub czasem wykonywania skryptów, programista może skorzystać z phpinfo(), aby sprawdzić, jakie limity są ustawione. Warto również zauważyć, że korzystanie z tej funkcji w środowisku produkcyjnym powinno być ograniczone, aby uniknąć ujawnienia informacji o serwerze. Dobrym praktyką jest ograniczenie dostępu do wyników phpinfo() tylko do zaufanych użytkowników lub wyłączenie jej w wersji produkcyjnej.

Pytanie 30

Czym w relacyjnej bazie danych jest odpowiednik encji?

A. atrybut
B. wiersz
C. tabela
D. kolumna
No, odpowiedzi w formie wierszy, kolumn czy atrybutów nie oddają tego, co encja oznacza w relacyjnych bazach danych. Wiersz to niby pojedynczy rekord, ale nie pokazuje encji w pełni. Jakbyśmy uznali wiersz za encję, to moglibyśmy źle zrozumieć, że encja to tylko jeden zestaw danych, a nie cały zbiór rekordów. Kolumna z kolei definiuje atrybuty encji, ale sama nie oddaje encji w całości. Atrybuty są do opisu cech obiektów, ale to nie znaczy, że same w sobie pokazują ich zbiór. Ważne jest, żeby pojąć, że encja jako całość jest reprezentowana przez tabelę, a nie przez pojedyncze składniki jej struktury. W praktyce wiele osób myli te pojęcia, co rzadko prowadzi do efektywnego modelowania danych i może sprawiać problemy z integracją oraz wydajnością zapytań. Dlatego warto uczyć się o strukturze bazy danych, skupiając się na tym, jak różne elementy współdziałają, żeby tworzyć sensowną całość, która dobrze przechowuje i zarządza danymi.

Pytanie 31

W systemach bazodanowych, aby przedstawić dane, które spełniają określone kryteria, należy stworzyć

A. formularz
B. raport
C. makropolecenie
D. relację
Formularze, makropolecenia i relacje to różne rzeczy, które używamy w bazach danych, ale nie nadają się do tworzenia raportów. Formularz to narzędzie do wprowadzania danych, jego głównym celem jest to, żeby użytkownik mógł dodawać lub edytować informacje w bazie. Choć są przydatne do zbierania danych, to już do ich analizy czy prezentacji się nie nadają. Makropolecenia to z kolei instrukcje, które pomagają w automatyzacji powtarzalnych zadań, ale znowu – nie są do raportów. Użytkownicy mogą myśleć, że makropolecenia zastąpią raporty, ale to zupełnie inne rzeczy. Relacje dotyczą sposobu łączenia tabel w bazie danych, co jest ważne dla struktury, ale też nie ma to nic wspólnego z prezentacją danych. Warto wiedzieć, jakie są różnice między tymi pojęciami, bo to może pomóc w lepszym zarządzaniu danymi i uniknięciu nieporozumień.

Pytanie 32

Jakie są wyniki wykonania zapytania SQL?

SELECT count(*) FROM Uczniowie WHERE srednia=5;
A. łączna liczba uczniów
B. ilość uczniów, których średnia ocen wynosi 5
C. suma ocen uczniów z średnią 5
D. średnia wszystkich ocen uczniów
Zapytanie SQL używa funkcji COUNT aby policzyć liczbę rekordów w tabeli Uczniowie spełniających warunek srednia=5 Klauzula WHERE ogranicza zestaw zliczanych rekordów do tych gdzie średnia ocen ucznia wynosi dokładnie 5 W efekcie wynik zapytania odpowiada liczbie uczniów mających średnią ocen równą 5 Takie podejście jest powszechnie stosowane w analizie danych gdzie wymagane jest określenie liczby jednostek spełniających konkretne kryteria Zastosowanie COUNT w połączeniu z WHERE umożliwia precyzyjną kontrolę nad analizowanym zbiorem danych co jest standardem w wielu systemach bazodanowych Praktyczne zastosowanie tej techniki można spotkać w raportowaniu wyników nauczania generowaniu statystyk czy w analizach biznesowych gdzie kluczowe jest zrozumienie struktury i charakterystyki danych Zapytanie to ilustruje dobrą praktykę pracy z bazami danych polegającą na efektywnym i precyzyjnym formułowaniu zapytań w celu uzyskania wartościowych i precyzyjnych informacji

Pytanie 33

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

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

Pytanie 34

Po wykonaniu instrukcji języka JavaScript  x = Math.ceil(2.4); wartość zmiennej x będzie wynosić

A. 4
B. 2
C. 3
D. 8
W tym zadaniu najczęstszy problem polega na pomyleniu różnych sposobów zaokrąglania liczb w JavaScript. Wiele osób odruchowo myśli o zwykłym zaokrąglaniu matematycznym i zakłada, że 2.4 powinno zostać zaokrąglone do 2, bo jest bliżej dwójki niż trójki. To byłoby prawdziwe dla Math.round(2.4), ale nie dla Math.ceil(2.4). I tu jest cały haczyk. Math.ceil() nie patrzy, czy liczba jest bliżej niższego czy wyższego całkowitego. Ta funkcja zawsze zaokrągla w górę, czyli w stronę dodatniej nieskończoności. Jeżeli mamy 2.0001, 2.4 czy 2.9 – w każdym z tych przypadków Math.ceil() zwróci 3. Jedynie gdy liczba jest już całkowita, np. 2.0, wynik pozostanie 2. Odpowiedź 2 wynika więc z błędnego założenia, że ceil działa jak klasyczne „zaokrąglanie w dół przy małej części ułamkowej”. Tymczasem do zaokrąglania w dół służy Math.floor(), która z 2.4 zrobiłaby 2. Zdarza się też, że ktoś mechanicznie przeskakuje o „więcej niż jedną” jednostkę i wybiera 4 albo nawet 8, jakby ceil miał coś wspólnego z podwajaniem wartości albo jakimś magicznym przeskokiem. To już kompletnie nie ma uzasadnienia w definicji funkcji. Math.ceil() nie skaluje liczby, nie mnoży jej, nie patrzy na „odległość” od kolejnych całkowitych, tylko wybiera najbliższą liczbę całkowitą większą lub równą podanej wartości. Z mojego doświadczenia taki błąd często wynika z mieszania w głowie kilku funkcji naraz: ceil, floor, round, czasem jeszcze parseInt. Dobra praktyka jest taka, żeby kojarzyć je kierunkowo: floor – w dół, ceil – w górę, round – do najbliższej. W codziennym programowaniu webowym ma to ogromne znaczenie, np. przy paginacji, gdzie zazwyczaj właśnie Math.ceil() liczy liczbę stron, bo nie możesz obciąć „końcówki” wyników. Jeśli zaokrąglisz w dół, użytkownik straci część danych. Jeżeli zrozumiesz dokładnie różnicę między tymi funkcjami, takie pytania nie będą sprawiały żadnego problemu.

Pytanie 35

Które z poniższych twierdzeń na temat języków programowania jest FAŁSZYWE?

A. C++ jest językiem obiektowym
B. PHP jest językiem do tworzenia stron w czasie rzeczywistym
C. JavaScript jest językiem skryptowym
D. SQL jest językiem programowania strukturalnego
SQL (Structured Query Language) to język zapytań, który służy do zarządzania danymi w relacyjnych bazach danych. Pomimo swojej nazwy, SQL nie jest językiem programowania strukturalnego w tradycyjnym sensie, ponieważ nie obsługuje pełnych konstrukcji programistycznych, takich jak pętle czy warunki, które są charakterystyczne dla języków takich jak C czy Pascal. SQL jest językiem deklaratywnym, co oznacza, że użytkownicy formułują zapytania, które definiują, jakie dane chcą uzyskać, a nie jak je uzyskać. Dzięki temu SQL jest niezwykle efektywny w pracy z dużymi zbiorami danych i umożliwia szybkie wykonywanie operacji na bazach danych. Przykładowe zastosowanie SQL to tworzenie zapytań do wyszukiwania określonych informacji w bazie danych klientów lub przy używaniu funkcji agregujących do analizy danych. Zrozumienie roli SQL w architekturze baz danych oraz umiejętność jego stosowania jest kluczowe w dziedzinie analizy danych i rozwijania aplikacji webowych.

Pytanie 36

Skrypt stworzony w języku JavaScript wyznacza cenę promocyjną dla swetrów w barwach: zielonej, niebieskiej (zmienna kolor) przy wydatkach przekraczających 200 zł (zmienna zakupy). Warunek niezbędny do obliczeń powinien być zapisany z użyciem wyrażenia logicznego?

A. zakupy > 200 || kolor == 'zielony' || kolor == 'niebieski'
B. zakupy > 200 && (kolor == 'zielony' || kolor == 'niebieski')
C. zakupy > 200 || (kolor == 'zielony' && kolor == 'niebieski')
D. zakupy > 200 && kolor == 'zielony' && kolor == 'niebieski'
Niepoprawne odpowiedzi bazują na błędnych założeniach dotyczących operatorów logicznych oraz struktury warunków. Odpowiedź zakupy > 200 || kolor == 'zielony' || kolor == 'niebieski' wykorzystuje operator '||' w sposób, który pozwala na spełnienie warunku nawet, gdy zakupy są mniejsze niż 200, co nie prowadzi do pożądanego efektu obliczenia ceny promocyjnej. Kolejna odpowiedź, zakupy > 200 && kolor == 'zielony' && kolor == 'niebieski', nie uwzględnia możliwości, że kolor może być jednym z dwóch dozwolonych, co sprawia, że jest zbyt restrykcyjna. Ostatnia odpowiedź zakupy > 200 || (kolor == 'zielony' && kolor == 'niebieski') implikuje, że kolor musi być jednocześnie zielony i niebieski, co w kontekście jednego swetra jest fizycznie niemożliwe. Kluczowym błędem myślowym w tych odpowiedziach jest nieprawidłowa interpretacja operatorów logicznych oraz brak zrozumienia, jak połączenie warunków '&&' i '||' wpływa na ich działanie. Zastosowanie odpowiednich operatorów w konstruowaniu wyrażeń logicznych jest fundamentalne w programowaniu, ponieważ nieprawidłowe podejście do logiki warunkowej może prowadzić do błędów w aplikacji oraz nieoczekiwanych zachowań w kodzie.

Pytanie 37

Podczas zapisywania hasła użytkownika w serwisie internetowym (np. w bankowości online), w celu zabezpieczenia go przed ujawnieniem, zazwyczaj stosuje się funkcję

A. cyklometrycznych
B. mieszających
C. klucza
D. abstrakcyjnych
Zrozumienie błędnych odpowiedzi wymaga analizy koncepcji zabezpieczeń haseł w kontekście cyberbezpieczeństwa. Mieszające funkcje, mimo że są ważne w kontekście algorytmów kryptograficznych, nie są odpowiednie do bezpiecznego przechowywania haseł. Ich głównym celem jest zapewnienie, że wyjście funkcji jest trudne do przewidzenia na podstawie wartości wejściowych, ale nie spełniają one wymagań dotyczących przechowywania haseł. Cyklometryczne podejścia nie są związane z mechanizmami zabezpieczeń haseł i dotyczą bardziej analizy algorytmów. Abstrakcyjne koncepcje również nie wnoszą istotnych wartości w kontekście zabezpieczeń, ponieważ nie odnoszą się do rzeczywistych praktyk zabezpieczających dane. Prowadzi to do powszechnego błędu myślowego, polegającego na zakładaniu, że różne techniki kryptograficzne mogą być stosowane zamiennie bez zrozumienia ich specyfiki i zastosowania. W kontekście przechowywania haseł kluczowe jest zrozumienie, że ich skuteczne zabezpieczenie wymaga zastosowania odpowiednich algorytmów oraz dobrych praktyk w zakresie zarządzania danymi użytkowników. Dlatego nie można lekceważyć znaczenia klucza w procesie zapewniania bezpieczeństwa informacji.

Pytanie 38

Wykorzystanie definicji stylu CSS spowoduje, że nagłówki drugiego poziomu będą się wyświetlać

h2 {
    text-decoration: overline;
    font-style: italic;
    line-height: 60px;
}
A. czcionką kursywną, z linią pod tekstem, wysokość wiersza wynosi 60 px
B. czcionką standardową, z linią pod tekstem, odległość między znakami wynosi 60 px
C. czcionką standardową, z linią nad tekstem, wysokość wiersza wynosi 60 px
D. czcionką kursywną, z linią nad tekstem, wysokość wiersza wynosi 60 px
Nieprawidłowe koncepcje w pozostałych odpowiedziach wynikają z błędnego zrozumienia zastosowania właściwości CSS. Pierwsza odpowiedź sugeruje użycie czcionki podstawowej z linią pod tekstem oraz odległością między znakami wynoszącą 60 px, co nie odpowiada żadnej z zastosowanych właściwości w definicji CSS. Często myli się pojęcia line-height z letter-spacing, które odpowiada za odstępy między znakami. Właściwe zastosowanie tych właściwości jest kluczowe dla poprawnej prezentacji tekstu. Trzecia odpowiedź także jest błędna, ponieważ zamiast właściwości czcionki pochylonej mowa jest o podstawowej, co nie jest zgodne z font-style: italic. Również text-decoration: overline jest zamieniona na linię nad tekstem, co jest poprawne, jednak brak pochylonej czcionki czyni tę odpowiedź niekompletną. Czwarta odpowiedź ponownie myli właściwości, ponieważ choć zawiera pochyloną czcionkę, to proponuje linię pod tekstem zamiast nad nim. To pokazuje częsty błąd w interpretacji właściwości text-decoration. Zrozumienie, jak każda z tych właściwości wpływa na ostateczny wygląd nagłówków, jest kluczowe dla efektywnego stylizowania stron internetowych. Właściwe użycie takich atrybutów jest zgodne z dobrymi praktykami projektowania stron, które kładą nacisk na spójność i estetykę wizualną w połączeniu z funkcjonalnością. Dlatego znajomość tych szczegółów i ich poprawne zastosowanie jest niezmiernie ważne w pracy projektanta stron internetowych.

Pytanie 39

Dla dowolnego a z zakresu (0,99) celem funkcji napisanej w języku JavaScript jest
function fun(a)
 {
    for(n=a; n <=100; n++)
    document.write(n);
    return(n);
 }

A. wypisanie liczb z zakresu a .. 99 oraz zwrócenie wartości 100
B. wypisanie wartości zmiennej a i zwrócenie wartości zmiennej n
C. wypisanie liczb z zakresu a .. 100 oraz zwrócenie wartości zmiennej n
D. zwrócenie liczb z zakresu a .. 99
Funkcja napisana w JavaScript przewiduje iterację w celu wypisania liczb z przedziału ustalonego przez zmienną 'a' do 100. W kodzie zastosowano pętlę for, która zaczyna się od wartości a, a kończy na 100. Wartość zmiennej 'n' jest używana jako iterator, zaczynając od 'a' i zwiększając się o 1 w każdym obiegu pętli, aż osiągnie 100. Warto zauważyć, że funkcja wykorzystuje metodę 'document.write()', która służy do zapisywania danych na stronie internetowej. Po zakończeniu iteracji funkcja zwraca wartość zmiennej 'n', co w kontekście tego zadania oznacza, że zwróci ona wartość 101, ponieważ po ostatniej iteracji n przekroczy wartość 100. Przykład użycia tej funkcji w praktyce może obejmować generowanie dynamicznych treści na stronach internetowych, które wymagają wyświetlenia zakresu wartości liczbowych. Warto również dodać, że zgodnie z aktualnymi standardami JavaScript, kod mógłby być bardziej elegancko zapisany, wykorzystując np. funkcję 'console.log()' zamiast 'document.write()', co jest bardziej zalecane w nowoczesnym podejściu do programowania w JavaScript.

Pytanie 40

CAPTCHA to metoda zabezpieczeń stosowana na stronach WWW, która umożliwia

A. przyspieszenie logowania do aplikacji internetowej
B. automatyczne wypełnienie formularza logowania danymi użytkownika
C. potwierdzenie, że informacje z formularza są przesyłane przez człowieka
D. ominięcie procesu autoryzacji w aplikacji internetowej
CAPTCHA, czyli Completely Automated Public Turing test to tell Computers and Humans Apart, to technika zabezpieczeń powszechnie stosowana na stronach internetowych, której celem jest rozróżnienie użytkowników ludzkich od automatycznych programów (botów). Mechanizm ten działa poprzez prezentację wyzwań, które są trudne do rozwiązania przez maszyny, ale relatywnie proste dla ludzi. Przykłady obejmują rozpoznawanie tekstu zniekształconego w obrazach, wybieranie obrazków pasujących do podanych kategorii, czy rozwiązywanie prostych zagadek logicznych. CAPTCHA jest bardzo istotnym narzędziem w ochronie przed spamem, atakami typu brute-force oraz innymi formami nadużyć, które mogą zagrażać bezpieczeństwu aplikacji internetowych. Zastosowanie CAPTCHA stało się standardem w branży IT i jest szeroko wspierane przez organizacje, takie jak Google, które opracowały popularny reCAPTCHA, integrujący technologię uczenia maszynowego do dalszego poprawienia skuteczności i użyteczności testów. Wdrożenie CAPTCHA w formularzach rejestracyjnych czy logowania znacząco zwiększa poziom bezpieczeństwa, jednocześnie zmniejszając ryzyko nadużyć oraz ochroniając dane użytkowników.