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: 14 maja 2026 15:32
  • Data zakończenia: 14 maja 2026 15:52

Egzamin zdany!

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

Rodzaj zmiennej w języku JavaScript

A. musi być zadeklarowany na początku skryptu.
B. ma miejsce poprzez przypisanie wartości.
C. nie istnieje.
D. jest tylko jeden rodzaj.
W języku JavaScript typ zmiennej jest dynamicznie określany na podstawie wartości przypisanej do tej zmiennej. Oznacza to, że nie ma potrzeby deklarowania typu zmiennej przed jej użyciem. Na przykład, możemy stworzyć zmienną 'x' i przypisać jej wartość liczbową: 'let x = 10;'. W późniejszym czasie możemy przypisać do niej wartość tekstową: 'x = 'Hello!';' bez jakichkolwiek błędów. To zjawisko wpisuje się w koncepcję typowania dynamicznego, która jest cechą języków takich jak JavaScript. Dzięki temu programiści mogą pisać bardziej elastyczny kod, co jest szczególnie przydatne w projektach, gdzie wymagania mogą się szybko zmieniać. Praktyczne zastosowanie tego podejścia w JavaScript pozwala na tworzenie funkcji, które mogą przyjmować różne typy danych, co zwiększa ich uniwersalność i użyteczność. Warto również zauważyć, że dobrym zwyczajem jest stosowanie odpowiednich konwencji nazw zmiennych oraz ich dokumentowanie, aby zwiększyć czytelność kodu w projektach zespołowych.

Pytanie 2

Komenda skierowana do serwera bazy danych, która polega na zbieraniu, wyszukiwaniu lub zmienianiu danych w bazie, nosi nazwę

A. formularza
B. kolumny
C. kopii
D. kwerendy
Kwerenda to termin używany w kontekście baz danych, który odnosi się do polecenia wysyłanego do serwera bazy danych w celu wykonywania operacji na danych. Główne funkcje kwerend to zbieranie, modyfikowanie lub wyszukiwanie danych w tabelach bazy danych. Kwerendy są kluczowym elementem języka SQL (Structured Query Language), który jest standardem w zarządzaniu relacyjnymi bazami danych. Na przykład, kwerenda SELECT umożliwia pobieranie danych z określonych kolumn w tabeli, a kwerenda UPDATE pozwala na modyfikację istniejących danych. Dobre praktyki w pisaniu kwerend obejmują optymalizację zapytań, używanie indeksów, a także dbanie o bezpieczeństwo (np. unikanie ataków typu SQL Injection). Zrozumienie, jak działają kwerendy, jest niezbędne dla każdego, kto pracuje z bazami danych, ponieważ pozwala to na efektywne zarządzanie danymi oraz ich analizę.

Pytanie 3

Ustalenie klucza obcego jest konieczne do skonstruowania

A. klucza podstawowego
B. relacji 1..n
C. transakcji
D. relacji 1..1
Klucz obcy jest kluczowym elementem w modelowaniu relacji w bazach danych, szczególnie w kontekście relacji 1..n. Definiuje on powiązania pomiędzy dwiema tabelami, gdzie jedna tabela (tabela główna) może mieć wiele powiązanych rekordów w drugiej tabeli (tabela szczegółowa). Na przykład, w bazie danych dotyczącej studentów i ich zapisów na przedmioty, tabela studentów może mieć klucz obcy odnoszący się do tabeli przedmiotów. Dzięki temu, dla każdego studenta można przechowywać wiele zapisów na różne przedmioty, co jest istotne w kontekście analizy danych. Z perspektywy standardów, takie podejście jest zgodne z zasadami normalizacji, które mają na celu eliminację redundancji danych oraz zapewnienie integralności referencyjnej. Dobre praktyki w projektowaniu baz danych sugerują stosowanie kluczy obcych do zarządzania relacjami pomiędzy danymi, co ułatwia ich późniejsze przetwarzanie i analizy.

Pytanie 4

Program debugger służy do

A. interpretacji kodu w wirtualnej maszynie Java.
B. analizy wykonywanego programu w celu lokalizacji błędów.
C. tłumaczenia kodu zapisanego językiem wyższego poziomu na język maszynowy.
D. analizy kodu źródłowego w celu odnalezienia błędów składniowych.
Debugger to specjalistyczne narzędzie używane dokładnie do tego, co opisuje poprawna odpowiedź: do analizy wykonywanego programu w celu lokalizacji błędów. Chodzi tu głównie o błędy logiczne i wykonania (runtime), których kompilator zwykle nie wychwyci. Kompilator sprawdza składnię i typy, a debugger pozwala zajrzeć „do środka” działającego programu. Można zatrzymać program w wybranym miejscu (breakpoint), krokować instrukcja po instrukcji (step into, step over), podglądać wartości zmiennych, rejestrów, stos wywołań funkcji (call stack) i obserwować, jak zmienia się stan aplikacji w czasie rzeczywistym. W praktyce, w profesjonalnym programowaniu, praca z debuggerem to standard. W IDE takich jak Visual Studio, IntelliJ, Eclipse, VS Code debugowanie jest wbudowane i używane praktycznie codziennie. Moim zdaniem, kto dobrze opanuje debugger, ten dużo szybciej rozumie, co się faktycznie dzieje w kodzie, a nie tylko co „wydaje się” że się dzieje. Debugger świetnie sprawdza się przy szukaniu błędów związanych z nieprawidłowym przepływem sterowania, błędnym warunkiem w if-ach, problemami z pętlami, dereferencją pustych wskaźników, wyjątkiem w konkretnym miejscu, czy np. przy analizie wycieków pamięci. Dobre praktyki mówią też, żeby nie polegać wyłącznie na printach/logach, tylko łączyć je z debugowaniem krokowym. W nowoczesnych środowiskach można nawet debugować aplikacje webowe (np. JavaScript w przeglądarce, PHP z Xdebug), aplikacje zdalne na serwerze, a także w trybie attach do już działającego procesu. Debugger nie zastępuje testów jednostkowych ani code review, ale jest jednym z kluczowych narzędzi w całym procesie inżynierii oprogramowania.

Pytanie 5

W języku PHP, po wykonaniu poniższego fragmentu kodu, w zmiennej o nazwie Nowy_Napis zostanie zapisany:

$Napis = "ZaWszE SpRaWdZ swoj KoD";
$Nowy_Napis = strtolower($Napis);
A. zAwSZe sPrAwDz SWOJ kOd
B. ZaWszE
C. ZAWSZE SPRAWDZ SWOJ KOD
D. zawsze sprawdz swoj kod
Odpowiedź 'zawsze sprawdz swoj kod' jest poprawna, ponieważ funkcja strtolower() w PHP konwertuje wszystkie znaki w łańcuchu na małe litery. W przypadku podanego kodu, zmienna $Napis zawiera tekst 'ZaWszE SpRaWdZ swoj KoD', który po zastosowaniu funkcji strtolower() przekształca się na 'zawsze sprawdz swoj kod'. Praktyczne zastosowanie tej funkcji jest bardzo istotne w kontekście normalizacji danych wejściowych, szczególnie w aplikacjach internetowych, gdzie wielkość liter może wpływać na sposób przechowywania, wyszukiwania lub porównywania tekstów. Warto również podkreślić, że w przypadku korzystania z baz danych, stosowanie jednolitej konwencji zapisu (np. zawsze małe litery) może zminimalizować ryzyko błędów i niejednoznaczności. Dobrymi praktykami jest także walidacja danych użytkowników oraz przygotowywanie ich do dalszego przetwarzania, co sprzyja lepszej organizacji kodu i efektywności aplikacji.

Pytanie 6

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. <aside>, potem <section>, a na końcu <nav>, 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 7

Które z instrukcji algorytmu odpowiada graficznemu przedstawieniu bloku pokazanego na ilustracji?

Ilustracja do pytania
A. n ← n – 3
B. n > 70
C. Wyświetl w konsoli wartość zmiennej n
D. Zrealizuj podprogram do sortowania tablicy t
Odpowiedź n ← n – 3 to typowa operacja matematyczna, którą naprawdę często używamy w programowaniu. W skrócie, chodzi o to, że zmieniamy wartość zmiennej. Można to przedstawić przy użyciu prostokątnego bloku w diagramie, co jest standardem w notacjach algorytmicznych. To jest ważne, zwłaszcza w strukturach kontrolnych, jak pętle, bo musimy modyfikować zmienną, żeby pętla mogła się zakończyć po pewnej liczbie powtórzeń. Na przykład, w pętli for możemy zmieniać wartość zmiennej, żeby przechodzić przez elementy tablicy w odwrotnym kierunku. Dobrze jest dokumentować takie operacje w kodzie, żeby potem łatwiej było do niego wrócić. Te przypisania są również kluczowe w algorytmach, bo nawet małe zmiany w zmiennych mogą znacząco wpłynąć na wydajność. Zrozumienie tego wszystkiego to podstawa dla każdego programisty, który chce pisać dobry kod.

Pytanie 8

Zapis selektora wskazuje, że kolor tła będzie brązowy dla

input[type=number] { background-color: Brown; }
A. formularzy, które są typu numerycznego
B. wszystkich tekstów na stronie internetowej
C. wszystkich formularzy
D. formularzy, gdy użytkownik wprowadzi w nie jakąkolwiek cyfrę
Zapis selektora CSS `input[type=number] { background-color: Brown; }` odnosi się do pól edycyjnych, które są zdefiniowane jako typu numerycznego. Oznacza to, że wszystkie elementy <input>, które mają atrybut `type` ustawiony na `number`, będą miały brązowe tło. Tego typu selektory są przydatne, ponieważ pozwalają na precyzyjne stylizowanie elementów formularzy, co jest kluczowe dla poprawy doświadczeń użytkowników. Stosowanie odpowiednich typów elementów formularza, takich jak `number`, umożliwia kontrolowanie danych wprowadzanych przez użytkowników, co jest zgodne z dobrymi praktykami w zakresie walidacji danych. W praktyce, jeśli w formularzu istnieje pole do wprowadzania dat, które powinno przyjmować tylko wartości liczbowe, stylizowanie go w ten sposób może pomóc w natychmiastowym wizualnym wskazaniu użytkownikowi, że pole jest przeznaczone do wprowadzania numerów. Warto również pamiętać, że stosowanie odpowiednich typów wejściowych wspiera responsywność, umożliwiając na przykład wyświetlanie klawiatury numerycznej na urządzeniach mobilnych, co zwiększa komfort użytkowania.

Pytanie 9

Która z funkcji agregujących wbudowanych w język SQL służy do obliczania średniej wartości w określonej kolumnie?

A. COUNT
B. AVG
C. SUM
D. MIN
Funkcja AVG w języku SQL jest jedną z kluczowych funkcji agregujących, która pozwala na obliczenie średniej wartości w określonej kolumnie zestawienia danych. Użycie tej funkcji jest szczególnie istotne w analizie statystycznej, gdyż pozwala uzyskać bardziej reprezentatywny wynik, eliminując wpływ skrajnych wartości, które mogą zniekształcać obraz danych. Na przykład, gdy mamy tabelę "sprzedaż" z kolumną "kwota", można użyć zapytania SELECT AVG(kwota) FROM sprzedaż, aby uzyskać średnią wartość sprzedaży. Funkcja ta jest nie tylko przydatna w kontekście analizy, ale także stanowi standardową praktykę w raportowaniu wyników finansowych, co może pomóc w podejmowaniu decyzji biznesowych. Warto również zauważyć, że AVG jest funkcją, która ignoruje wartości NULL, co jest ważne w kontekście danych, które mogą nie być pełne. Dobre praktyki sugerują, aby zawsze sprawdzać dane wejściowe przed stosowaniem funkcji agregujących, aby zapewnić ich jakość i dokładność wyników.

Pytanie 10

Aby włączyć kaskadowy arkusz stylów zapisany w pliku zewnętrznym, należy zastosować poniższy fragment kodu HTML

A. <meta charset="styl.css">
B. <link rel="stylesheet" type="text/css" href="styl.css">
C. <optionvalue="styl.css" type="text/css">
D. <div id="styl.css" relation="css">
Poprawna odpowiedź to <link rel="stylesheet" type="text/css" href="styl.css" />. Ten fragment kodu HTML jest standardowym sposobem dołączania zewnętrznych arkuszy stylów do dokumentu HTML. Atrybut 'rel' określa relację pomiędzy dokumentem a zewnętrznym plikiem, w tym przypadku jest to 'stylesheet', co informuje przeglądarkę, że plik ma zawierać style CSS. Atrybut 'type' wskazuje typ zawartości, a 'href' zawiera ścieżkę do pliku CSS, w tym przypadku 'styl.css'. Zewnętrzne arkusze stylów są zalecane, ponieważ umożliwiają oddzielenie treści od stylizacji, co jest zgodne z zasadą separacji obowiązków w inżynierii oprogramowania. Umożliwia to łatwe zarządzanie i aktualizowanie stylów bez konieczności modyfikowania samego HTML-a. Przykładem zastosowania może być stworzenie pliku styl.css, który zawiera wszystkie style dla danej strony, co pozwala na ponowne wykorzystanie tych samych stylów w różnych częściach serwisu, co zwiększa spójność i ułatwia utrzymanie kodu.

Pytanie 11

Strona internetowa została napisana w języku XHTML. Który z poniższych kodów przedstawia implementację zamieszczonego fragmentu strony, przy założeniu, że nie zdefiniowano żadnych stylów CSS?

Ilustracja do pytania
A. <h1>Początki HTML</h1><p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył<i>prototyp hipertekstowego systemu informacyjnego - <b>ENQUIRE</b></i></p>
B. <h1>Początki HTML</h1><p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył<b>prototyp hipertekstowego systemu informacyjnego - <i>ENQUIRE</i></b></p>
C. <b>Początki HTML</b><p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył<b>prototyp hipertekstowego systemu informacyjnego - <i>ENQUIRE</i></b></p>
D. <b>Początki HTML</b><p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<hr /> stworzył<b>prototyp hipertekstowego systemu informacyjnego - <i>ENQUIRE</i></b></p>
Odpowiedź druga jest prawidłowa, ponieważ w XHTML stosowanie znaczników zgodnych z HTML jest kluczowe. Nagłówek <h1> wskazuje na najbardziej wyróżniający się element na stronie, co jest zgodne z prezentowanym obrazem, gdzie 'Początki HTML' jest nagłówkiem. XHTML wymaga, by wszystkie elementy były poprawnie zagnieżdżone i zamknięte, a tag <br /> jest poprawnie użyty jako samo zamykający się, co jest wymagane w XHTML. Ponadto, struktura dokumentu XHTML musi być bardziej restrykcyjna, co oznacza, że używanie semantycznych znaczników jak <h1> dla nagłówków sprzyja lepszej interpretacji struktury dokumentu przez przeglądarki i narzędzia dostępności. Poprawne użycie <b> i <i> do wyróżniania tekstu jest zgodne ze standardami, chociaż w nowoczesnym HTML5 zaleca się używanie <strong> i <em> dla semantycznego formatowania. Takie podejście wspomaga dostępność oraz ułatwia zrozumienie kodu przez inne osoby. Dobór tagów w tej odpowiedzi pokazuje zrozumienie zasad semantyki oraz poprawnej struktury dokumentów w XHTML co jest zgodne z dobrymi praktykami web developmentu.

Pytanie 12

Kod umieszczony w ramce tworzy tabelę, która zawiera

Ilustracja do pytania
A. dwa wiersze i jeden słupek
B. dwa wiersze i dwa słupki
C. jeden wiersz i jeden słupek
D. jeden wiersz i dwa słupki
Podany kod HTML tworzy tabelę z jednym wierszem i dwoma kolumnami ponieważ w strukturze tabeli element <tr> definiuje wiersz a element <td> definiuje komórkę w tym wierszu. W tym przypadku kod zawiera jeden element <tr> co wskazuje na pojedynczy wiersz oraz dwa elementy <td> co oznacza że w tym wierszu znajdują się dwie kolumny. Tego typu struktura jest powszechnie wykorzystywana do przedstawiania danych w formie tabelarycznej co jest standardową praktyką w web developmencie. Tabele HTML są kluczowym elementem w projektowaniu stron internetowych gdyż pozwalają na uporządkowane prezentowanie informacji często używane do tworzenia harmonogramów porównań czy formularzy. Ważne jest aby pamiętać o poprawnym zamykaniu znaczników oraz przestrzeganiu hierarchii struktury tabeli co zapewnia jej poprawne wyświetlanie w przeglądarkach. Dobrą praktyką jest również stosowanie zewnętrznych arkuszy CSS do stylizacji tabel co pozwala na oddzielenie struktury od prezentacji i ułatwia zarządzanie wyglądem strony. Znajomość i umiejętność tworzenia tabel jest niezbędna dla każdego web dewelopera ponieważ tabele stanowią fundamentalny element organizacji danych w HTML.

Pytanie 13

Który format graficzny rastrowy jest obsługiwany przez przeglądarki internetowe?

A. TGA
B. PCX
C. FLIF
D. PNG
Format PNG (Portable Network Graphics) to jeden z tych formatów, które są naprawdę popularne w sieci. Przeglądarki go dobrze obsługują, co jest dużym plusem. Został stworzony jako lepsza wersja formatu GIF i do tego ma większą paletę kolorów oraz wspiera przezroczystość. To oznacza, że jakość obrazka pozostaje wysoka, kiedy go zapisujesz, bo PNG korzysta z bezstratnej kompresji. Dodatkowo, ten format pozwala na różne stopnie przezroczystości, co czyni go idealnym do różnych grafik w Internecie, na przykład logo czy ikony. Fajnie, że jest zgodny z HTML5 i CSS, bo to ułatwia pracę przy projektowaniu stron. Można go używać z kolorami w trybie RGBA, dzięki czemu można dodawać fajne efekty z przezroczystością, co zdecydowanie poprawia wygląd stron. W praktyce wiele witryn korzysta z PNG, bo nie tylko zachowuje jakość, ale też nie zajmuje dużo miejsca na serwerze, co sprawia, że strony ładują się szybciej i użytkownicy mają lepsze doświadczenia.

Pytanie 14

Systemy CMS charakteryzują się

A. wbudowanym edytorem grafiki wektorowej.
B. możliwością programowania w zaawansowanych frameworkach dla aplikacji Web.
C. wbudowanym serwerem poczty elektronicznej.
D. możliwością edycji treści bez konieczności znajomości HTML.
Poprawnie wskazana cecha CMS to możliwość edycji treści bez konieczności znajomości HTML. Właśnie po to powstały systemy zarządzania treścią: żeby osoba nietechniczna, np. pracownik działu marketingu czy sekretariat, mogła samodzielnie aktualizować stronę WWW. W typowym CMS (WordPress, Joomla, Drupal) mamy edytor WYSIWYG przypominający Worda: pogrubienie, nagłówki, listy, wstawianie obrazków, linków. Cały kod HTML generuje się w tle automatycznie. Użytkownik widzi tekst i przyciski, a nie znaczniki typu <div>, <p> czy <a>. Z mojego doświadczenia to ogromne ułatwienie w firmach, gdzie programista nie ma czasu na każdą drobną zmianę w treści. Dobra praktyka jest taka, żeby w CMS rozdzielać warstwę treści (content) od warstwy prezentacji (szablony, CSS). Administrator, redaktor czy copywriter pracuje na treści, a programista i frontendowiec dbają o wygląd i logikę. Dzięki temu aktualizacja np. cennika, aktualności czy opisów produktów nie wymaga dotykania kodu strony. Co więcej, nowoczesne CMS-y stosują mechanizmy wersjonowania treści, workflow publikacji, uprawnienia użytkowników. Wszystko nadal bez konieczności pisania HTML, choć oczywiście możliwość podejrzenia i ręcznej edycji kodu często jest dostępna dla bardziej zaawansowanych użytkowników. W praktyce: jeśli ktoś umie obsłużyć edytor tekstu, to po krótkim przeszkoleniu zwykle bez problemu poradzi sobie z podstawową obsługą CMS i edycją treści na stronie WWW.

Pytanie 15

W CSS zapis selektora p > i { color: red;} wskazuje, że kolorem czerwonym zostanie zdefiniowany

A. wszelki tekst w znaczniku <p> lub wszelki tekst w znaczniku <i>
B. tylko ten tekst w znaczniku <i>, który znajduje się bezpośrednio wewnątrz znacznika <p>
C. wszelki tekst w znaczniku <p>, z wyjątkiem tych w znaczniku <i>
D. tylko ten tekst w znaczniku <p>, który posiada klasę o nazwie i
Zapis selektora p > i w CSS oznacza, że styl zostanie zastosowany jedynie do znaczników <i>, które są bezpośrednimi dziećmi znacznika <p>. W praktyce oznacza to, że jeśli w dokumencie HTML mamy strukturę, gdzie znacznik <i> znajduje się bezpośrednio wewnątrz <p>, tekst w tym <i> zostanie sformatowany na czerwono. Takie podejście do stylizacji jest zgodne z zasadami kaskadowego arkusza stylów, gdzie selektory mogą precyzyjnie określać, które elementy mają być stylizowane. Użycie operatora > jest dobrym przykładem zastosowania selektorów potomków w CSS, co pozwala na bardziej precyzyjne i efektywne zarządzanie stylami. Dobrą praktyką jest unikanie nadmiernej hierarchii w selektorach, co może prowadzić do złożonych i trudnych do utrzymania arkuszy stylów. W związku z tym, zrozumienie działania selektorów jest kluczowe dla efektywnego korzystania z CSS.

Pytanie 16

W dokumencie HTML zdefiniowano pewne elementy w klasie o nazwie "nomargin". W celu przeprowadzenia operacji na tych elementach za pomocą języka JavaScript, można wykorzystać funkcję

A. getElementsByTagName("nomargin")
B. getElementsByClassName("nomargin")
C. getElementById("nomargin")
D. getElement("nomargin")
Funkcja getElementsByClassName("nomargin") jest poprawnym sposobem na uzyskanie dostępu do elementów HTML przypisanych do klasy o nazwie 'nomargin'. Jest to metoda dostępna w obiekcie document, która zwraca kolekcję wszystkich elementów, które mają wskazaną klasę. W przeciwieństwie do getElementById, która zwraca pojedynczy element o podanym identyfikatorze, getElementsByClassName zwraca listę, co jest szczególnie przydatne, gdy mamy do czynienia z wieloma elementami oznaczonymi tą samą klasą. Przykładowo, jeśli mamy kilka divów z klasą 'nomargin', możemy w łatwy sposób iterować przez wszystkie z nich i stosować różne operacje, takie jak zmiana stylów czy dodawanie zdarzeń. Używanie tej metody jest zgodne z najlepszymi praktykami, ponieważ pozwala na selekcję grupy elementów, co z kolei wspiera modularność i łatwość zarządzania kodem. Warto również pamiętać, że w przypadku użycia tej metody, zmiany w DOM będą miały wpływ na wszystkie elementy, co może być przydatne w złożonych interfejsach użytkownika.

Pytanie 17

Jakim formatem plików dźwiękowych charakteryzuje się kompresja bezstratna?

A. MP3
B. WAW
C. FLAC
D. MPEG
FLAC, czyli Free Lossless Audio Codec, to format dźwiękowy, który kompresuje pliki, ale nie traci przy tym żadnych danych. Dzięki temu jakość dźwięku pozostaje taka sama jak w oryginale, co jest super ważne dla audiofilów i profesjonalnych producentów. Wiesz, FLAC jest popularny wśród miłośników muzyki, bo pozwala na przechowywanie wysokiej jakości utworów w mniejszych plikach niż WAV, który potrafi zająć naprawdę dużo miejsca. Poza tym wiele odtwarzaczy audio i programów do edycji dźwięku obsługuje ten format, więc jest naprawdę uniwersalny. Można też dodawać metadane, czyli informacje o wykonawcy czy albumie, co jest bardzo przydatne. No i nie zapominajmy, że FLAC jest otwartym standardem, co oznacza, że każdy może z niego korzystać bez opłat – to na pewno przyczynia się do jego popularności, zarówno wśród amatorów, jak i profesjonalistów.

Pytanie 18

Aby zapewnić integralność danych w bazie programu Microsoft Access, należy zastosować

A. więzy integralności
B. archiwizację bazy
C. defragmentację bazy
D. kwerendę aktualizującą
W celu zapewnienia spójności danych w bazie programu Microsoft Access kluczowe jest zastosowanie więzów integralności. Więzy integralności to zasady, które definiują warunki, jakie muszą być spełnione, aby dane w bazie były spójne i zgodne z określonymi regułami. Przykładowo, więzy te mogą obejmować ograniczenia unikalności, które zapobiegają wprowadzaniu zduplikowanych wartości w kolumnie, oraz więzy klucza obcego, które zapewniają, że wartości w jednej tabeli muszą odpowiadać wartościom w innej tabeli. Zastosowanie więzów integralności jest zgodne z zasadami normalizacji baz danych, które mają na celu minimalizowanie redundancji danych oraz eliminowanie niezgodności. Z perspektywy praktycznej, gdy tworzymy aplikacje bazodanowe, ustanowienie odpowiednich więzów integralności od samego początku pozwala uniknąć wielu problemów związanych z błędnymi danymi, co przynosi korzyści w kontekście analizy danych i raportowania. W związku z tym, więzy integralności są kluczowym elementem w projektowaniu baz danych, który znacząco wpływa na jakość i trwałość przechowywanych informacji.

Pytanie 19

Właściwość CSS animation-duration określa

A. liczba powtórzeń animacji.
B. czas trwania jednego cyklu animacji.
C. opóźnienie startu animacji.
D. kierunek rozpoczęcia animacji.
Właściwość CSS `animation-duration` dokładnie określa, ile czasu trwa jeden pełny cykl animacji – od początku do końca zdefiniowanych klatek kluczowych (`@keyframes`). Jeśli ustawisz `animation-duration: 2s;`, to przeglądarka ma 2 sekundy na przejście od stanu początkowego do końcowego w danej animacji. Moim zdaniem warto to sobie wyobrazić jak czas trwania jednego „przejścia” animacji, zanim ewentualnie zacznie się kolejny obrót, jeśli używasz `animation-iteration-count`. Technicznie jest to czas trwania pojedynczej iteracji, zgodnie ze specyfikacją CSS Animations (W3C). W praktyce wygląda to np. tak: `.box { animation-name: fadeIn; animation-duration: 1.5s; }`. Tu element będzie się „pojawiał” przez 1,5 sekundy. Jeśli dodasz `animation-iteration-count: 3;`, to ta 1,5 sekundowa animacja zostanie odtworzona trzy razy, ale sama długość pojedynczego cyklu nadal wynosi 1,5 s. Częsty dobry nawyk w front-endzie to trzymanie się krótkich, płynnych animacji, zwykle w zakresie 150–500 ms dla prostych efektów (hover, focus), a dłuższych, do 1–2 sekund, dla bardziej złożonych przejść, żeby użytkownik nie czuł się znużony. `animation-duration` przyjmuje wartości w sekundach (`s`) lub milisekundach (`ms`), np. `300ms`. Można też ustawiać różne czasy dla wielu animacji naraz, rozdzielając wartości przecinkami. Warto pamiętać, że jeśli nie podasz `animation-duration`, domyślna wartość to `0s`, czyli animacja tak naprawdę się nie odtworzy – to jeden z częstszych powodów, czemu początkującym „nie działa animacja”. Dobrą praktyką jest zawsze jawne ustawianie `animation-duration` oraz spójne używanie jednostek czasu w całym projekcie, żeby interfejs wyglądał konsekwentnie i profesjonalnie.

Pytanie 20

W kodzie HTML 5, w celu walidacji wartości pola <input type="text"> za pomocą wyrażenia regularnego, należy użyć atrybutu

A. step
B. value
C. pattern
D. readonly
Prawidłowa odpowiedź to „pattern”, bo właśnie ten atrybut w HTML5 służy do walidacji zawartości pola tekstowego za pomocą wyrażeń regularnych po stronie przeglądarki. Atrybut pattern przyjmuje jako wartość wyrażenie regularne w składni zbliżonej do tej znanej z JavaScript (ECMAScript). Przeglądarka sprawdza, czy wpisany tekst pasuje do wzorca i jeśli nie, to nie pozwoli wysłać formularza, o ile pole ma ustawiony atrybut required lub użytkownik wywoła standardową walidację formularza. Przykład praktyczny: jeśli chcemy wymusić, żeby użytkownik wpisał dokładnie 3 cyfry, możemy napisać: <input type="text" name="kod" pattern="\d{3}" required> Wtedy poprawne będą wartości typu „123”, a „12a” czy „1234” zostaną odrzucone. Dla adresu e‑mail (prostej wersji) można użyć np.: <input type="text" name="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}"> W praktyce i tak często łączy się walidację HTML5 (pattern) z walidacją po stronie serwera, bo walidacja w przeglądarce jest tylko pierwszą linią obrony i użytkownik może ją wyłączyć. Z mojego doświadczenia warto pamiętać, że pattern działa tylko na tekst (input type="text", „search”, „tel”, „email”, „url” itd.) i jest walidowany dopiero w momencie wysyłki formularza lub wywołania metody checkValidity() w JavaScript. Dobrą praktyką jest też dodanie atrybutu title z opisem formatu danych, np. title="Wpisz 3 cyfry", żeby użytkownik zrozumiał, czemu formularz go nie przepuszcza. W projektach komercyjnych pattern bardzo pomaga szybko ogarnąć proste reguły, jak kody pocztowe, numery indeksów, proste loginy itp., bez konieczności pisania dodatkowego skryptu JS.

Pytanie 21

W języku PHP zamieszczono fragment kodu. Plik cookie utworzony przez to polecenie

setcookie("osoba", "Anna Kowalska", time()+(3600*24));
A. zostanie usunięty po jednej godzinie od jego utworzenia
B. zostanie usunięty po jednym dniu od jego utworzenia
C. będzie przechowywany na serwerze przez jedną godzinę
D. będzie przechowywany na serwerze przez jeden dzień
W odpowiedzi na pytanie, poprawna interpretacja fragmentu kodu PHP zawartego w funkcji setcookie jest kluczowa dla zrozumienia działania ciasteczek w aplikacjach webowych. W analizowanym kodzie, funkcja setcookie została użyta do utworzenia pliku cookie o nazwie 'osoba' z wartością 'Anna Kowalska'. Kluczowym elementem jest parametr czasowy, który jest obliczany jako time() + 3600 * 24. Funkcja time() zwraca aktualny znacznik czasu, a 3600 * 24 to liczba sekund w jednym dniu (3600 sekund w godzinie razy 24 godziny). To oznacza, że plik cookie będzie ważny przez 24 godziny od momentu jego utworzenia, co w praktyce oznacza, że zostanie usunięty automatycznie po upływie jednego dnia. Ważnością ciasteczek zarządzają przeglądarki, które automatycznie usuwają pliki cookie po upływie ustalonego czasu. Praktycznym zastosowaniem cookies jest np. pamiętanie o zalogowaniu użytkownika, co umożliwia płynne korzystanie z serwisów bez konieczności ciągłego logowania. Dobrą praktyką jest jednak informowanie użytkowników o stosowaniu cookies w aplikacjach webowych, co jest zgodne z regulacjami o ochronie danych osobowych.

Pytanie 22

Które z poniższych poleceń jest poprawne w kontekście walidacji HTML5?

A. &lt;img src = mojPiesek.jpg&quot; alt = &quot;pies&gt;
B. &lt;img src = mojPiesek.jpg alt = pies&gt;
C. &lt;img src = &quot;mojPiesek.jpg&quot; &gt;
D. &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt;
Odpowiedź &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt; jest poprawna zgodnie z wymaganiami HTML5, ponieważ przestrzega zasad dotyczących składni znaczników. W HTML5 atrybuty powinny być stosowane w formacie klucz-wartość, gdzie klucz jest nazwą atrybutu, a wartość jest przypisana w cudzysłowach. W tym przypadku atrybut 'src' wskazuje na źródło obrazu, a 'alt' dostarcza tekst alternatywny, co jest istotne z punktu widzenia dostępności. Tekst alternatywny jest używany przez technologie asystujące oraz wyświetlany, gdy obraz nie może być załadowany. Przykład użycia: &lt;img src=&quot;logo.png&quot; alt=&quot;Logo firmy&quot;&gt; jest zgodny z dobrymi praktykami, ponieważ informuje użytkowników o zawartości obrazu. Warto również pamiętać, że w HTML5 nie jest wymagane zamykanie tagu &lt;img&gt;, co czyni go bardziej elastycznym w użyciu. Poprawne stosowanie atrybutów oraz odpowiedzialność za dostępność treści to kluczowe aspekty projektowania stron internetowych w dzisiejszych czasach.

Pytanie 23

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

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

Pytanie 24

Aby utworzyć styl strony responsywnej dla ekranów o szerokości od 600 px do 800 px należy zastosować regułę CSS

A. @media (min-width: 800px){/*style css*/}
B. @media (max-width: 800px) (min-width: 600px){/*style css*/}
C. @media screen and (max-width: 800px) and (min-width: 600px){/*style css*/}
D. @media screen (min-width: 800px) and (max-width: 600px){/*style css*/}
Prawidłowa reguła to @media screen and (max-width: 800px) and (min-width: 600px){/*style css*/}, bo dokładnie określa zakres szerokości ekranu od 600 px do 800 px i robi to w sposób zgodny ze składnią CSS. Kluczowe są tu trzy elementy: słowo kluczowe screen, operator and oraz poprawna kolejność i zapis warunków min-width i max-width. Media queries działają tak, że przeglądarka sprawdza, czy wszystkie warunki połączone słowem and są spełnione. W tym przypadku styl zadziała tylko wtedy, gdy typ urządzenia to ekran (screen) i szerokość widoku (viewport) jest jednocześnie nie mniejsza niż 600 px i nie większa niż 800 px. To jest właśnie typowy zapis tzw. przedziału (range) w responsywnym CSS. W praktyce taki zakres wykorzystuje się np. do stylowania widoków tabletów w pozycji pionowej lub poziomej, w zależności od projektu. Możesz tam zmieniać układ kolumn z trzech na dwie, powiększać przyciski, dostosowywać rozmiary czcionek, marginesy, czy ukrywać mniej ważne elementy. Co ważne, użycie screen ogranicza stosowanie tych styli tylko do ekranów, a nie np. do wydruku (print), co jest zgodne z dobrą praktyką opisaną w specyfikacji CSS Media Queries Level 3 i nowszych. Z mojego doświadczenia dobrym nawykiem jest zawsze pilnować spójnych breakpointów, np. 480 px, 600 px, 768 px, 1024 px, i dla każdego z nich pisać media queries w dokładnie takim formacie, jak w tej poprawnej odpowiedzi. Ułatwia to późniejsze utrzymanie kodu i eliminuje dziwne „przeskoki” layoutu między rozdzielczościami. Dodatkowo warto pamiętać, że kolejność min-width i max-width nie ma znaczenia dla działania, ale przyjęcie jednej konwencji w projekcie mocno poprawia czytelność kodu zespołowego.

Pytanie 25

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

A. HTML
B. CSS
C. XHTML
D. PHP
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 26

Na przedstawionej tabeli samochody wykonano zapytanie SQL SELECT

SELECT model FROM samochody WHERE rocznik = 2016;
idmarkamodelrocznikkolorstan
1FiatPunto2016czerwonybardzo dobry
2FiatPunto2002czerwonydobry
3FiatPunto2007niebieskibardzo dobry
4OpelCorsa2016grafitowybardzo dobry
5OpelAstra2003niebieskiporysowany lakier
6ToyotaCorolla2016czerwonybardzo dobry
7ToyotaCorolla2014szarydobry
8ToyotaYaris2004granatowydobry
A. Czerwony, grafitowy.
B. Punto, Corsa, Astra, Corolla, Yaris.
C. Punto, Corsa, Corolla.
D. Fiat, Opel, Toyota.
Twoja odpowiedź jest prawidłowa. Zapytanie SQL 'SELECT model FROM samochody WHERE rocznik = 2016' miało na celu wydobycie informacji o modelach samochodów z rocznika 2016 z tabeli 'samochody'. SQL (Structured Query Language) jest standardowym językiem służącym do manipulowania danymi w bazach danych. W tym przypadku, użyliśmy klauzuli WHERE do nakierowania zapytania na konkretne rekordy - te, dla których wartość w kolumnie 'rocznik' to 2016. Dlatego też poprawna odpowiedź to 'Punto, Corsa, Corolla', ponieważ to właśnie te modele samochodów są z rocznika 2016. To jest praktyczne zastosowanie zapytań SQL - pozwalają one na filtrowanie danych na podstawie konkretnych kryteriów. Dobrym zwyczajem jest tworzenie zapytań SQL, które są jak najbardziej precyzyjne, co przekłada się na efektywność i wydajność pracy z bazą danych.

Pytanie 27

Na tabeli dania, której wiersze zostały pokazane poniżej, wykonano przedstawioną kwerendę:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze ta kwerenda?
idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
63wierzbowy przysmak35
72Mintał w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 5
B. 2
C. 13
D. 8
Twoja odpowiedź jest jak najbardziej trafna. To zapytanie SQL, które mamy, wybiera z tabeli 'dania' te wiersze, gdzie 'typ' jest mniejszy niż 3, a 'cena' nie przekracza 30. Wiem, że dodanie 'LIMIT 5' może wydawać się istotne, ale w tym przypadku tak naprawdę nie wpływa to na wynik, bo tylko jeden wiersz pasuje – danie 'Gazpacho'. Warto pamiętać, że w SQL, gdy używamy warunku 'WHERE', łączymy je z operatorem AND, co oznacza, że muszą być spełnione jednocześnie. Klauzula 'LIMIT' jest przydatna w różnych sytuacjach, ale tutaj, nawet z ograniczeniem do 5, i tak mamy tylko jeden wynik.

Pytanie 28

W języku SOL komenda INSERT INTO

A. modyfikuje rekordy ustaloną wartością
B. wprowadza pola do tabeli
C. wprowadza dane do tabeli
D. tworzy tabelę
Polecenie INSERT INTO w języku SQL (Structured Query Language) jest kluczowym komponentem do wprowadzania danych do tabeli w bazie danych. Używając tego polecenia, użytkownicy mogą dodać nowe rekordy, co jest podstawowym zadaniem w zarządzaniu informacjami w systemach zarządzania bazą danych (DBMS). Przykładowo, jeśli mamy tabelę 'Użytkownicy', możemy dodać nowego użytkownika za pomocą: INSERT INTO Użytkownicy (Imię, Nazwisko) VALUES ('Jan', 'Kowalski'). Warto zauważyć, że wprowadzanie danych powinno być zgodne z definicją tabeli, co oznacza, że typy danych w wartości muszą odpowiadać typom zdefiniowanym w tabeli. Dobrą praktyką jest również walidacja danych przed ich wprowadzeniem, aby zapewnić spójność i integralność danych. W przypadku pracy z dużymi zbiorami danych, warto rozważyć użycie transakcji, aby zapewnić, że operacje wprowadzania są atomowe i nie wprowadzą niezgodności w bazie danych, co jest zgodne ze standardami ACID (Atomicity, Consistency, Isolation, Durability).

Pytanie 29

Ile razy zostanie wykonana pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w trakcie działania pętli?
for ($i = 0; $i <= 10; $i+=2) { .... }

A. 0
B. 10
C. 6
D. 5
Odpowiedź 6 jest poprawna, ponieważ pętla for w języku PHP jest skonstruowana w taki sposób, że iteruje od 0 do 10 w krokach co 2. Inicjalizacja zmiennej $i zaczyna się od 0, a warunek kontynuacji pętli to $i <= 10. Przeanalizujmy zatem wartości, które przyjmie zmienna $i w kolejnych iteracjach: 0, 2, 4, 6, 8, 10. Widzimy, że pętla zatrzyma się po osiągnięciu wartości 10, co daje nam 6 iteracji. W praktyce, takie konstrukcje są bardzo użyteczne w różnych scenariuszach, na przykład, gdy chcemy iterować przez elementy tablicy, które mają parzyste indeksy. Dobrym przykładem może być generowanie dynamicznego kodu HTML, w którym chcemy wyświetlić co drugi element listy, co jest istotne w kontekście optymalizacji wizualnej interfejsów użytkownika. Zrozumienie działania pętli for oraz zasad dotyczących kontrolowania iteracji jest kluczowe w programowaniu, co jest zgodne z najlepszymi praktykami w branży.

Pytanie 30

Określ na podstawie diagramu, jaką liczebność należy zdefiniować przy związku pomiędzy encjami Podręcznik i Wydawnictwo zakładając, że dane dotyczące różnych podręczników odpowiadają jednemu wydawnictwu.

Ilustracja do pytania
A. M-N (M przy encji Podręcznik, N przy encji Wydawnictwo)
B. 1-N (1 przy encji Podręcznik, N przy encji Wydawnictwo)
C. 1-1 (1 przy encji Podręcznik, 1 przy encji Wydawnictwo)
D. N-1 (N przy encji Podręcznik, 1 przy encji Wydawnictwo)
Poprawnie wskazana krotność N–1 oznacza, że wiele podręczników może być powiązanych z jednym wydawnictwem, natomiast każdy pojedynczy podręcznik ma dokładnie jedno wydawnictwo. Dokładnie to wynika z treści: „dane dotyczące różnych podręczników odpowiadają jednemu wydawnictwu”. W notacji związków encji mówimy więc o relacji wiele‑do‑jednego z punktu widzenia encji Podręcznik. W praktycznym modelu relacyjnej bazy danych przekłada się to na klucz obcy w tabeli PODRĘCZNIK, który wskazuje na klucz główny (np. id_wydawnictwa) w tabeli WYDAWNICTWO. Dzięki temu nie powielamy danych o wydawnictwie przy każdym rekordzie, tylko przechowujemy je w jednym miejscu, zgodnie z zasadą normalizacji (co najmniej 2. i 3. postać normalna). Moim zdaniem to jest jedno z podstawowych i najczęściej wykorzystywanych powiązań: podobny schemat mamy przy relacji Produkt–Producent, Samochód–Marka, Student–Grupa itp. W takich przypadkach w tabeli „wiele” zawsze ląduje kolumna z kluczem obcym do tabeli „jeden”. Dodatkowo warto zauważyć, że gdybyśmy kiedyś chcieli pozwolić na zmianę nazwy wydawnictwa, to dzięki takiemu modelowi robimy to tylko w jednym wierszu tabeli WYDAWNICTWO, a wszystkie powiązane podręczniki automatycznie „widzą” zaktualizowaną wartość. To jest dokładnie ta dobra praktyka projektowania: minimalizacja redundancji i łatwiejsze utrzymanie spójności danych (integralność referencyjna, klucze obce z ON UPDATE/DELETE). W dobrze zaprojektowanych systemach bibliotecznych czy księgarni internetowych ta relacja N–1 między książką/podręcznikiem a wydawnictwem jest standardem branżowym i praktycznie normą w modelach ER.

Pytanie 31

Aby odzyskać bazę danych z kopii zapasowej na serwerze MSSQL, należy użyć polecenia

A. UNBACKUP DATABASE
B. BACKUP DATABASE
C. RESTORE DATABASE
D. EXPORT DATABASE
Jakbyśmy spojrzeli na inne odpowiedzi, to każda z nich ma jakieś wady, przez które nie nadają się do przywracania bazy danych w MSSQL. Na przykład polecenie EXPORT DATABASE jest błędne, bo w MSSQL nie ma takiej komendy do eksportu całej bazy. Można to robić innymi narzędziami, jak SQL Server Integration Services (SSIS), ale to nie jest metoda przywracania. Z kolei BACKUP DATABASE, mimo że służy do robienia kopii zapasowych, nie nadaje się do przywracania. Ten komendę robimy wręcz odwrotnie — zapisuje obecny stan na dysku, a nie przywraca go. No i ostatnia opcja, UNBACKUP DATABASE, w ogóle nie istnieje w MSSQL. To brzmi jak coś, co mogłoby odwracać kopię zapasową, ale to wcale nie jest dostępne w tym systemie. Więc wybór złych komend może prowadzić do nieefektywnego zarządzania danymi i strat, jakby coś się stało.

Pytanie 32

Program napisany w języku PHP ma na celu wyliczenie średniej pozytywnych ocen ucznia w zakresie od 2 do 6. Warunek doboru ocen w pętli obliczającej średnią powinien zawierać wyrażenie logiczne

A. $ocena >= 2 or $ocena <= 6
B. $ocena >= 2 and $ocena <= 6
C. $ocena > 2 or $ocena < 6
D. $ocena > 2 and $ocena < 6
Wybrana odpowiedź jest poprawna, ponieważ warunek '$ocena >= 2 and $ocena <= 6' precyzyjnie definiuje zakres ocen, które mają być brane pod uwagę przy obliczaniu średniej. Użycie operatora 'and' zapewnia, że tylko oceny mieszczące się w przedziale od 2 do 6, włącznie z obydwoma krańcami, będą uwzględnione. Przykład praktyczny to sytuacja, w której programista chciałby zrealizować system oceny uczniów, w którym dopuszczalne oceny to 2, 3, 4, 5 i 6. Gdybyśmy użyli operatora 'or', program mógłby przyjąć oceny spoza tego zakresu, co prowadziłoby do nieprawidłowych obliczeń i fałszywych wniosków. W kontekście programowania w PHP, stosowanie poprawnych warunków logicznych jest kluczowe dla zapewnienia prawidłowego działania kodu. Dobrym przykładem zastosowania takiego warunku jest pętla, która iteruje przez zestaw ocen i sumuje je, aby na końcu obliczyć średnią. Stosując odpowiednie warunki, programista może być pewny, że obliczenia są realizowane na danych, które są zgodne z wymaganiami. Warto również zauważyć, że w kontekście dobrych praktyk programistycznych, jasne definiowanie warunków logicznych pozwala na łatwiejsze zrozumienie kodu przez innych programistów oraz ułatwia jego późniejsze utrzymanie.

Pytanie 33

W tabeli artykuly znajduje się pole o nazwie nowy. Aby pole to wypełnić wartościami TRUE dla każdego rekordu, należy zastosować kwerendę

A. INSERT INTO nowy FROM artykuly SET TRUE;
B. UPDATE artykuly SET nowy = TRUE;
C. INSERT INTO artykuly VALUE nowy = TRUE;
D. UPDATE nowy FROM artykuly VALUE TRUE;
Poprawna kwerenda UPDATE artykuly SET nowy = TRUE; jest klasycznym przykładem instrukcji aktualizacji danych w SQL. Słowo kluczowe UPDATE wskazuje, że modyfikujemy istniejące rekordy, a nie dodajemy nowe. Nazwa tabeli artykuly określa, w której tabeli wykonujemy operację. Następnie część SET nowy = TRUE ustawia dla kolumny nowy wartość logiczną TRUE we wszystkich wierszach, ponieważ w zapytaniu nie ma klauzuli WHERE. I to jest tu kluczowe: brak WHERE oznacza, że aktualizacja dotknie każdego rekordu w tabeli. Moim zdaniem warto zapamiętać schemat: UPDATE nazwa_tabeli SET kolumna = wartość WHERE warunek;. W praktyce bardzo często dodaje się WHERE, np.: UPDATE artykuly SET nowy = TRUE WHERE data_dodania >= '2026-01-01'; – wtedy oznaczamy jako nowe tylko artykuły dodane od konkretnej daty. W zadaniu jednak wyraźnie jest mowa o każdym rekordzie, więc brak WHERE jest jak najbardziej zgodny z treścią. W większości systemów bazodanowych (MySQL, PostgreSQL, SQL Server, MariaDB) ta składnia jest standardowa i zalecana. Dobra praktyka jest taka, żeby przed odpaleniem UPDATE bez WHERE najpierw zrobić SELECT * FROM artykuly; albo SELECT COUNT(*) FROM artykuly;, żeby mieć świadomość, ile rekordów zmienimy. W projektach produkcyjnych często dodaje się też transakcje, np. w PostgreSQL: BEGIN; UPDATE artykuly SET nowy = TRUE; COMMIT; dzięki temu w razie pomyłki można zrobić ROLLBACK. Warto też wiedzieć, że kolumna typu logicznego może przyjmować wartości TRUE, FALSE, czasem 1/0 (np. w MySQL), ale forma z TRUE/FALSE jest czytelniejsza i bardziej zgodna z semantyką. W wielu aplikacjach webowych pole w stylu nowy służy np. do filtrowania artykułów w panelu administracyjnym albo na stronie głównej: SELECT * FROM artykuly WHERE nowy = TRUE;. To dokładnie ten sam atrybut, który przed chwilą masowo ustawiliśmy poleceniem UPDATE.

Pytanie 34

Celem testów wydajnościowych jest ocena

A. sekwencji zdarzeń, w której prawdopodobieństwo wystąpienia każdego zdarzenia zależy wyłącznie od wyniku zdarzenia poprzedniego
B. możliwości oprogramowania do funkcjonowania w warunkach niewłaściwej pracy systemu
C. poziomu spełnienia wymagań dotyczących wydajności przez system bądź moduł
D. możliwości oprogramowania do funkcjonowania w warunkach błędnej pracy sprzętu
Testy wydajnościowe są kluczowym elementem procesu zapewnienia jakości oprogramowania, mającym na celu ocenę, w jakim stopniu system lub moduł spełnia określone wymagania wydajnościowe. Zazwyczaj obejmują one pomiar czasu reakcji, przepustowości, obciążenia oraz skalowalności aplikacji w różnych warunkach użytkowania. Przykładowo, podczas testów wydajnościowych można symulować równoczesne połączenia użytkowników, aby ocenić, jak system zachowuje się pod dużym obciążeniem. Dobre praktyki w tej dziedzinie, takie jak przeprowadzanie testów w kontrolowanym środowisku oraz stosowanie narzędzi takich jak JMeter czy LoadRunner, pozwalają na uzyskanie wiarygodnych wyników. Prawidłowe przeprowadzenie testów wydajnościowych jest istotne nie tylko dla spełnienia oczekiwań klientów, ale także dla uniknięcia problemów z wydajnością po wdrożeniu systemu na rynek, co może prowadzić do utraty reputacji firmy oraz finansowych strat.

Pytanie 35

Który z poniższych znaczników HTML jest używany do tworzenia struktury strony internetowej?

A. <aside>
B. <input>
C. <mark>
D. <em>
Znacznik <aside> jest poprawnym rozwiązaniem, ponieważ jest używany do definiowania treści, która jest powiązana z otaczającym kontekstem, ale nie jest kluczowa dla głównego przebiegu informacji. Z perspektywy budowy struktury strony internetowej, <aside> doskonale wpisuje się w koncepcję bocznych paneli, przypisów, lub dodatkowych informacji, które wzbogacają główną treść. Przykładem zastosowania może być umieszczenie sekcji z cytatami, powiązanymi artykułami lub innymi treściami uzupełniającymi. Zgodnie z zasadami semantyki HTML5, <aside> pozwala na lepszą interpretację treści przez przeglądarki oraz narzędzia do analizy SEO, co przyczynia się do poprawy dostępności i użyteczności strony. W praktyce, korzystanie z semantycznych znaczników, takich jak <aside>, wspiera także tworzenie bardziej czytelnych i strukturalnych dokumentów, co jest zgodne z najlepszymi praktykami w tworzeniu stron internetowych.

Pytanie 36

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

<img src="kwiat.jpg alt="kwiat">
A. użyto niewłaściwego znacznika do wyświetlenia obrazu
B. wprowadzono nieznany atrybut alt
C. nie odnaleziono pliku kwiat.jpg
D. nie zamknięto cudzysłowu
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 37

W notacji szesnastkowej kolor zielony reprezentowany jest jako #008000. Jaką wartość przyjmuje on w notacji RGB?

A. rgb(0, 80, 0)
B. rgb(0, 160, 0)
C. rgb(0, 100, 0)
D. rgb(0, 128, 0)
Wartość koloru zielonego w notacji szesnastkowej #008000 odpowiada w notacji RGB wartości rgb(0, 128, 0). W tym systemie kolorów każda składowa koloru (czerwony, zielony, niebieski) jest reprezentowana jako liczba całkowita w przedziale od 0 do 255, co odpowiada 8-bitowym wartościom. W przypadku koloru zielonego, składowa czerwonego ma wartość 0, składowa zielonego 128, a składowa niebieskiego także 0. W praktyce, RGB jest powszechnie stosowane w projektowaniu graficznym, programowaniu oraz w tworzeniu stron internetowych, gdzie kolory są definiowane w taki sposób, aby zapewnić szeroką gamę odcieni. Wartości RGB mogą być wykorzystywane w CSS do stylizacji elementów, co pozwala na precyzyjne odwzorowanie zamierzonych kolorów oraz estetyki. Stosując standardy webowe, umiejętność konwersji między różnymi formatami kolorów jest niezbędna, zwłaszcza w kontekście zapewnienia spójności wizualnej na różnych urządzeniach i platformach.

Pytanie 38

Algorytm pokazany na ilustracji można zapisać w języku JavaScript przy użyciu instrukcji

Ilustracja do pytania
A. for(i = 0; i > 10; i++)
B. var i = 0; do i++; while(i > 10)
C. var i = 0; do i = i + 2; while(i < 10)
D. var i = 0; while(i <= 10) i += 2
Odpowiedź var i = 0 while(i <= 10) i += 2; jest poprawna, ponieważ reprezentuje poprawną implementację pętli while w języku JavaScript, która odzwierciedla logikę przedstawioną na rysunku. Kluczowym elementem jest inicjalizacja zmiennej i, ustawiając ją na 0. Następnie pętla while jest używana do sprawdzenia warunku i <= 10, co oznacza, że dopóki ten warunek jest spełniony, blok pętli będzie wykonywany. W każdym cyklu wartość i jest zwiększana o 2 za pomocą wyrażenia i += 2. Jest to typowy sposób iteracji w JavaScript, który pozwala na kontrolowaną manipulację zmienną kontrolującą pętlę. Takie podejście jest zgodne z najlepszymi praktykami, ponieważ zapewnia przejrzystość kodu i łatwość jego późniejszej modyfikacji. W praktycznych zastosowaniach, takie struktury są często używane w sytuacjach, gdy potrzebujemy przetworzyć dane w określonym zakresie, np. iterując przez elementy tablicy co drugi element. Zastosowanie pętli while z odpowiednim warunkiem umożliwia precyzyjną kontrolę nad przebiegiem iteracji, co jest kluczowe w programowaniu aplikacji i skryptów.

Pytanie 39

Tworząc tabelę produkty, należy dodać pole cena, które będzie odzwierciedlać koszt produktu. Jaki typ powinno mieć to pole?

A. ENUM
B. TINYTEXT
C. DECIMAL(10, 2)
D. INTEGER(11)
Typ DECIMAL(10, 2) jest odpowiedni dla pola ceny w tabeli produktów, ponieważ umożliwia dokładne przechowywanie wartości liczbowych z określoną precyzją i skalą. W tym przypadku liczba 10 oznacza maksymalną liczbę cyfr, które mogą być przechowywane, a 2 oznacza liczbę cyfr po przecinku. Dzięki temu można przechowywać wartości cenowe, które mają do dwóch miejsc po przecinku, co jest standardem w większości aplikacji związanych z handlem. Przykładem może być cena produktu wynosząca 19,99 PLN. Użycie typu DECIMAL jest zgodne z dobrymi praktykami w projektowaniu baz danych, ponieważ zapobiega problemom związanym z zaokrąglaniem, które mogą występować przy użyciu typów zmiennoprzecinkowych. Stosowanie DECIMAL jest szczególnie istotne w aplikacjach finansowych, gdzie precyzja wartości jest kluczowa. Warto dodać, że zgodnie z normami SQL, stosowanie tego typu danych pozwala na wykonywanie dokładnych zapytań i obliczeń, co jest niezbędne do prawidłowego funkcjonowania systemów zarządzania danymi.

Pytanie 40

Który program komputerowy przekłada kod źródłowy, stworzony w określonym języku programowania, na język maszyny?

A. Kompilator
B. Debugger
C. Środowisko programistyczne
D. Edytor kodu źródłowego
Kompilator to taki mega ważny program, który pomaga w tworzeniu aplikacji. Przekształca kod, który napisaliśmy w danym języku programowania, na język maszynowy, czyli taki, który komputery rozumieją. To jest kluczowe, bo komputery działają na kodzie binarnym. Tak więc, jak piszemy programy w językach, takich jak C++, Java czy Python, musimy przekształcić ten skomplikowany kod na coś, co maszyna będzie mogła ogarnąć. Kompilatory nie tylko zamieniają nasz kod, ale też sprawdzają go pod kątem błędów, co jest super ważne dla jakości oprogramowania. Dla przykładu, jest taki kompilator GCC do języka C/C++, który jest bardzo popularny w projektach open source. Dobrze jest regularnie kompilować kod podczas pisania, bo to pozwala szybko łapać błędy i lepiej pracować w zespole.