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: 29 kwietnia 2026 15:48
  • Data zakończenia: 29 kwietnia 2026 16:13

Egzamin niezdany

Wynik: 18/40 punktów (45,0%)

Wymagane minimum: 20 punktów (50%)

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

Aby obliczyć liczbę wszystkich wierszy w tabeli Koty, należy zastosować zapytanie:

A. SELECT COUNT(Koty) AS ROWNUM
B. SELECT COUNT(*) FROM Koty
C. SELECT COUNT(ROWNUM) FROM Koty
D. SELECT ROWNUM() FROM Koty
Poprawna odpowiedź to 'SELECT COUNT(*) FROM Koty', ponieważ to standardowy sposób zliczania wszystkich wierszy w tabeli w SQL. Funkcja COUNT(*) zlicza wszystkie wiersze, niezależnie od tego, czy zawierają wartości NULL, czy nie. Jest to najczęściej używana metoda w praktyce, ponieważ zapewnia dokładny wynik i jest także optymalizowana przez silnik baz danych, co czyni ją efektywną. Na przykład, jeśli mamy tabelę 'Koty' zawierającą różne dane o kotach, użycie tego polecenia zwróci dokładną liczbę kotów zapisanych w tej tabeli. Dobrym zwyczajem jest również korzystanie z aliasów lub konstruowania zapytań z dodatkowymi warunkami, co pozwala na bardziej złożoną analizę danych. Przy pracy z dużymi zbiorami danych, zrozumienie jak działa COUNT(*) i jego zastosowanie w kontekście innych funkcji agregujących jest kluczowe dla optymalizacji zapytań. Warto również pamiętać, że w SQL standardowym zliczanie wierszy bezpośrednio z tabeli jest znacznie bardziej efektywne i czytelne niż inne metody, co czyni tę praktykę najlepszą do stosowania w codziennej pracy z bazami danych.

Pytanie 2

W języku JavaScript stworzono zmienną i, która będzie przechowywać wynik dzielenia równy 1, to

A. var i=3/2
B. var i=Number(3/2)
C. var i=parseInt(3/2)
D. var i=parseFloat(3/2)
Wybór pozostałych opcji jest błędny z kilku powodów związanych z typem zwracanej wartości oraz sposobem, w jaki JavaScript obsługuje konwersję typów. Pierwsza z niepoprawnych odpowiedzi, która korzysta z operatora dzielenia 3/2, zwraca wartość 1.5, a następnie wykorzystuje ją w konstrukcji var i=3/2; bez jakiejkolwiek konwersji. Rezultatem jest wartość zmiennoprzecinkowa, co nie odpowiada wymaganiu przechowywania wyniku jako liczby całkowitej. Druga odpowiedź wykorzystuje funkcję Number, co również skutkuje zwróceniem wartości 1.5. Funkcja Number konwertuje każdy argument na typ liczbowy, ale nie zaokrągla go w dół do najbliższej liczby całkowitej, co jest celem tego zadania. Ostatnia z niepoprawnych odpowiedzi, var i=parseFloat(3/2);, również prowadzi do tego samego rezultatu: 1.5. Funkcja parseFloat przekształca argument na liczbę zmiennoprzecinkową, a nie całkowitą, co jest sprzeczne z wymaganiami dotyczącymi uzyskania wyniku 1. W kontekście tego pytania, kluczowe znaczenie ma zrozumienie różnic między tymi funkcjami oraz ich zastosowania w praktyce programistycznej.

Pytanie 3

W firmie zajmującej się technologiami informacyjnymi otwarta jest rekrutacja na stanowisko administratora e-sklepu. Do jego zadań należy instalacja i konfiguracja systemu zarządzania treścią, który jest przeznaczony jedynie dla sklepu internetowego, zmiana szablonów wizualnych oraz dostosowanie grafiki. Jakie umiejętności powinien posiadać nowy pracownik?

A. CMS PrestaShop, CSS, Gimp
B. HTML, CSS, Photoshop
C. Photoshop, Gimp, JavaScript
D. CMS WordPress, HTML, Gimp
Wybór odpowiedzi CMS PrestaShop, CSS, Gimp jest prawidłowy, ponieważ dokładnie odpowiada wymaganiom związanym z rolą administratora sklepu internetowego. PrestaShop to jeden z najpopularniejszych systemów zarządzania treścią (CMS) dedykowanych dla e-commerce. Jego znajomość jest kluczowa, gdyż pozwala na efektywną instalację i konfigurację platformy sklepowej, co jest jednym z głównych obowiązków administratora. CSS jest niezbędnym narzędziem do zmiany szablonów i dostosowania wyglądu sklepu zgodnie z wymaganiami klienta oraz standardami responsywnego designu, co zapewnia lepsze doświadczenia użytkowników na różnych urządzeniach. Gimp jako narzędzie graficzne umożliwia modyfikację grafik i tworzenie nowych elementów wizualnych, co jest istotne dla personalizacji sklepu. Dobrą praktyką w branży jest umiejętność integrowania graficznych oraz technologicznych komponentów w celu stworzenia atrakcyjnej i funkcjonalnej platformy handlowej, co znacząco wpływa na konwersje i wyniki sprzedaży. Ponadto, znajomość PrestaShop otwiera drzwi do wielu zasobów i społeczności, co dodatkowo wspiera rozwój zawodowy administratora.

Pytanie 4

Ile razy powtórzy się pętla w JavaScript?

var x=1, i=0;
do{
    x*=3;
    i++;
}
while(x!=27);
A. 27 razy
B. 26 razy
C. 2 razy
D. 3 razy
Błędne odpowiedzi wynikają z niepoprawnego zrozumienia działania pętli do-while oraz mechanizmu iteracji w kodzie. Częstym błędem jest założenie, że pętla wykona się tak wiele razy, jak wynosi ostateczna wartość x. Jednak w rzeczywistości, każda iteracja zwiększa x przez jego pomnożenie przez 3, a nie przez dodawanie. Począwszy od wartości 1, zmienna x przyjmuje wartości 3, 9, i 27, co oznacza, że pętla musi wykonać się trzykrotnie, zanim osiągnie wartość równą 27. Innym częstym błędem jest założenie, że pętla do-while nie różni się od standardowej pętli while. W rzeczywistości, do-while wykonuje swój blok kodu przynajmniej raz, zanim oceni warunek, co jest kluczowe dla zrozumienia, dlaczego pętla wykonuje się dokładnie tyle razy. Niewłaściwe zrozumienie tego mechanizmu może prowadzić do nadmiernego wykonywania pętli lub nieoczekiwanego zakończenia przed osiągnięciem zamierzonego celu. Dobre praktyki programistyczne wymagają dokładnego przemyślenia warunków początkowych i końcowych pętli, aby uniknąć błędów logicznych i zapewnić poprawne działanie kodu w różnych sytuacjach praktycznych, takich jak przetwarzanie danych czy iteracyjne obliczenia matematyczne.

Pytanie 5

Aby usunąć nienaturalne wygładzanie ukośnych krawędzi w grafice rastrowej, czyli tak zwane schodkowanie, konieczne jest wykorzystanie filtru

A. gradientu
B. szumu
C. antyaliasingu
D. pikselizacji
Zalecane podejście do eliminacji schodkowania nie powinno opierać się na metodach takich jak gradienty, szum czy pikselizacja. Gradienty są techniką stosowaną do uzyskiwania płynnych przejść kolorów, jednak nie rozwiązują one problemu schodkowania. Mimo że mogą poprawić estetykę wizualną, szczególnie w obszarach z płynnymi przejściami, nie eliminują one zjawiska poszarpanych krawędzi w grafice rastrowej. Szum wprowadza losowe zmiany do grafiki, co w niektórych kontekstach może dawać efekt „zmiękczenia” obrazu, lecz nie jest skuteczną metodą na wygładzanie krawędzi. Działanie to może nawet pogorszyć wrażenie wizualne, ponieważ wprowadza niepożądany chaos kolorystyczny. Pikselizacja z kolei to technika, która redukuje szczegóły obrazu przez ograniczenie liczby kolorów i ich rozdzielczości, co w rzeczywistości bardziej uwydatnia schodkowanie, zamiast je eliminować. W praktyce, zastosowanie tych technik może prowadzić do błędnych wniosków o jakości obrazu i skuteczności ich działania. Często zdarza się, że osoby mylą różne metody wygładzania krawędzi z innymi technikami przetwarzania obrazu, co prowadzi do nieefektywnego wykorzystania dostępnych narzędzi. Aby uzyskać najlepsze rezultaty w grafice, należy stosować antyaliasing jako standardową metodę wygładzania krawędzi.

Pytanie 6

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. UPDATE artykuly SET nowy = TRUE;
B. INSERT INTO artykuly VALUE nowy = TRUE;
C. UPDATE nowy FROM artykuly VALUE TRUE;
D. INSERT INTO nowy FROM artykuly SET 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 7

Wybierz prawidłowy sposób umieszczania komentarzy w kodzie źródłowym HTML

A. "" informacje komentarza ""
B. -- informacje komentarza --
C. /* informacje komentarza */
D. <!-- informacje komentarza -->
Komentarze w HTML mają swoją bardzo konkretną składnię i to jest coś, czego przeglądarka trzyma się dość sztywno. Wiele osób myli tu różne języki i przenosi nawyki z innych technologii. Na przykład zapis w stylu -- informacje komentarza -- wygląda trochę jak fragment właściwego komentarza, bo są myślniki, ale brakuje kluczowych elementów: otwierającego ciągu <!-- i zamykającego -->. Bez tych znaków przeglądarka potraktuje taki tekst po prostu jako zwykłą treść strony lub wręcz jako błędny fragment kodu, co może rozwalić strukturę dokumentu. Taki zapis nie jest nigdzie opisany w specyfikacji HTML, więc po prostu nie działa jako komentarz. Z kolei zapis /* informacje komentarza */ pochodzi z zupełnie innego świata – to składnia komentarzy w CSS, w JavaScript (dla komentarza blokowego), w wielu językach programowania typu C, Java, PHP. I tu pojawia się typowy błąd: ktoś zna już programowanie, więc „z przyzwyczajenia” używa tych samych komentarzy w HTML. Niestety HTML nie jest językiem programowania, tylko językiem znaczników i ma własne zasady. Przeglądarka zignoruje /* */ jako komentarz HTML, a jeśli w środku będą jakieś znaki specjalne, może to nawet powodować dziwne efekty w wyświetlaniu. Podobnie zapis w cudzysłowach, czyli "" informacje komentarza "", jest po prostu tekstem w cudzysłowie. W HTML takie coś może się pojawić np. jako wartość atrybutu, ale na pewno nie jako komentarz. Przeglądarka to normalnie wyświetli, bo nie ma żadnego powodu, żeby to ukrywać. Typowy błąd myślowy jest tu taki, że skoro komentarz to „coś, czego użytkownik nie widzi”, to wystarczy „jakoś to oznaczyć”. Niestety, w technologiach webowych nie działa „jakoś”, tylko dokładnie to, co przewiduje standard. Jedyną poprawną formą komentarza w HTML jest <!-- treść komentarza -->. Warto to sobie dobrze utrwalić, bo mieszanie składni z CSS, JavaScriptu czy języków backendowych w HTML prowadzi do trudnych do wykrycia błędów i nieczytelnego kodu.

Pytanie 8

Jakie formatowanie obramowania jest zgodne ze stylem border-style: dotted solid;?

Ilustracja do pytania
A. Formatowanie 2
B. Formatowanie 4
C. Formatowanie 1
D. Formatowanie 3
Styl obramowania w CSS pozwala na precyzyjne określenie wyglądu krawędzi elementu na stronie internetowej. W przypadku „border-style: dotted solid;” mamy do czynienia z kombinacją dwóch różnych stylów obramowania. Pierwsza wartość „dotted” odnosi się do obramowania o kropkowanej strukturze, co jest często stosowane w celu nadania lekkości i subtelności wizualnej. Druga wartość „solid” oznacza jednolite obramowanie, które jest bardziej wyraźne i stosowane, gdy wymagana jest wyraźna separacja elementów. Formatowanie 2 odpowiada właśnie temu stylowi, ponieważ przedstawia górne i dolne obramowanie jako kropkowane, a boczne jako jednolite. Takie zastosowanie jest typowe w sytuacjach, gdzie potrzebny jest kompromis między estetyką a funkcjonalnością, np. w tabelach danych, gdzie górne i dolne obramowanie może być delikatniejsze, by nie przytłaczać, a boczne wyraźne dla czytelności. Wybór właściwego stylu obramowania jest kluczowy dla użyteczności i estetyki strony, zgodnie z zasadami projektowania zorientowanego na użytkownika.

Pytanie 9

Aby wyeliminować nienaturalne odwzorowanie ukośnych krawędzi w grafice rastrowej, znane jako schodkowanie, powinno się użyć filtru

A. szumowego
B. antyaliasingu
C. gradientowego
D. pikselowego
Filtr szumu nie jest właściwym rozwiązaniem do eliminacji efektu schodkowania. Szum jest używany w grafice do dodawania losowego wzoru w celu maskowania artefaktów lub zwiększania realizmu tekstur, ale nie wpływa na wygładzanie krawędzi, co jest kluczowe dla estetyki grafiki rastrowej. Z kolei filtr gradientu jest techniką wykorzystywaną do tworzenia płynnych przejść kolorystycznych, jednak nie ma on na celu eliminacji schodków na krawędziach. Gradienty mogą poprawić ogólną wizualizację, ale nie są efektywne w walce z ząbkowatością krawędzi. Pikselizacja, z drugiej strony, odnosi się do efektu, gdzie obraz staje się widocznie złożony z dużych pikseli, co w rzeczywistości potęguje problem schodkowania, zamiast go rozwiązywać. Pikselizacja jest często postrzegana jako technika stylizacji, która może być używana celowo, ale nie ma zastosowania w profesjonalnym wygładzaniu krawędzi. Wszystkie te metody, choć użyteczne w odpowiednich kontekstach, nie zastępują techniki antyaliasingu w walce z efektem schodkowania w grafice rastrowej.

Pytanie 10

Systemem zarządzania wersjami w projekcie oprogramowania, który jest rozproszony, jest

A. FileZilla
B. TotalCommander
C. GIT
D. Eclipse
Eclipse to zintegrowane środowisko programistyczne (IDE), które wspiera rozwój aplikacji, jednak nie jest systemem kontroli wersji. Jego głównym celem jest ułatwienie pisania, testowania i debugowania kodu, a nie zarządzanie wersjami plików źródłowych. Eclipse oferuje również wtyczki, które mogą integrować się z systemami kontroli wersji, ale sama w sobie nie pełni tej funkcji. FileZilla to program kliencki do przesyłania plików, który działa na zasadzie protokołu FTP. Został zaprojektowany do przesyłania plików między komputerem a serwerem internetowym, a jego funkcje nie obejmują zarządzania wersjami kodu. FileZilla nie śledzi zmian w plikach ani nie umożliwia współpracy nad kodem, co czyni go nieodpowiednim narzędziem w kontekście kontroli wersji. TotalCommander to menedżer plików, który pozwala na zarządzanie plikami i folderami na lokalnym komputerze, jednak nie jest to narzędzie do kontroli wersji. Jego funkcje koncentrują się na operacjach na plikach, takich jak kopiowanie, przenoszenie czy usuwanie, a nie na śledzeniu historii zmian w projektach programistycznych. W skrócie, ani Eclipse, ani FileZilla, ani TotalCommander nie spełniają kryteriów systemu kontroli wersji, co czyni GIT jedynym właściwym wyborem w tej kategorii.

Pytanie 11

Selektor CSS a:link {color:red} użyty w kaskadowych arkuszach stylów określa

A. pseudoelement
B. identyfikator
C. klasę
D. pseudoklasę
Zdecydowanie coś poszło nie tak w Twojej odpowiedzi, bo wygląda na to, że nie do końca rozumiesz podstawowe pojęcia związane z CSS. Klasy i identyfikatory, używane do grupowania elementów i nadawania im stylów, to zupełnie inna sprawa niż pseudoklasy. Klasy w CSS definiujesz przez kropkę, jak na przykład .nazwa-klasy, a pseudoklasy zawsze zaczynają się od dwukropka. Klasy są super do stylizacji większej grupy elementów, podczas gdy identyfikatory są unikalne i służą do stylizacji pojedynczych elementów, zaczynają się od hasha (#). Pseudoelementy, które mogą być mylone z pseudoklasami, pomagają stylizować tylko część elementów, jak na przykład ::before lub ::after, co pozwala na dodawanie treści przed lub po danym elemencie. Rozróżnienie tych pojęć jest naprawdę kluczowe, gdy chcesz dobrze zrozumieć CSS. Często zdarza się, że ludzie mylą te pojęcia, co prowadzi do chaosu przy stylizacji stron. Żeby uniknąć tych nieporozumień, warto przejrzeć dokumentację CSS i trochę poćwiczyć z różnymi selektorami. Z mojej perspektywy, jest to najlepszy sposób, by zrozumieć jak to wszystko działa i jakie są różnice między tymi pojęciami.

Pytanie 12

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

A. Progowanie.
B. Krzywe.
C. Inwersja.
D. Barwienie.
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 13

Gdy zmienna $x przechowuje dowolną dodatnią liczbę naturalną, poniższy kod źródłowy PHP ma na celu wyświetlenie:

$licznik = 0;
while ($licznik != $x) 
{
    echo $licznik;
    $licznik++;
}
A. kolejne liczby od x do 0
B. przypadkowe liczby z zakresu (0, x)
C. kolejne liczby od 0 do x-1
D. liczby wprowadzane z klawiatury, aż do momentu wprowadzenia wartości x
Poprawna odpowiedź to 'kolejne liczby od 0 do x-1'. Kod PHP w pętli 'while' wyświetla kolejne liczby naturalne, zaczynając od 0. Pętla ta będzie kontynuowana, dopóki zmienna $licznik nie osiągnie wartości x, czyli dopóki $licznik < x. Wartością ostatniej liczby, jaką pętla wyświetli, będzie zatem x-1, ponieważ wartość x nie jest już spełnieniem warunku pętli. To ważne rozróżnienie w programowaniu, gdzie często stosuje się różne typy pętli i konstrukcje sterujące. W praktyce, zrozumienie tego mechanizmu jest kluczowe dla manipulowania danymi i tworzenia skryptów o różnych funkcjonalnościach. Pętle są jednym z podstawowych elementów kontroli przepływu w większości języków programowania, a różne ich typy i zastosowania pozwalają na realizację różnorodnych zadań, od prostych operacji na danych do skomplikowanych algorytmów.

Pytanie 14

W formularzu wartości z pola input o typie number zostały przypisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w sposób następujący: ```var x = parseInt(a);``` Jakiego typu będzie zmienna x?

A. napisowego
B. Nan
C. liczbowego, całkowitego
D. zmiennoprzecinkowego
Zmienna x, przypisana w wyniku zastosowania funkcji parseInt na zmiennej a, będzie typu liczbowego, całkowitego. Funkcja parseInt jest używana w JavaScript do konwersji wartości na liczbę całkowitą. Jeśli a jest wartością wprowadzoną przez użytkownika w polu input o typie number, to parseInt(a) zwróci wartość liczbową, eliminując wszelkie znaki niebędące cyframi. Wartością return będzie liczba całkowita, ponieważ parseInt zwraca tylko całkowite części liczb. Wartością zwróconą będzie NaN, jeśli a nie zawiera żadnych cyfr, co w tym kontekście nie ma miejsca, zakładając, że użytkownik wprowadził poprawne dane. Przykład: jeśli użytkownik wprowadzi '42.5', to parseInt('42.5') zwróci 42, eliminując część dziesiętną. Warto zaznaczyć, że parseInt może przyjąć drugi argument, który określa system liczbowy (bazę), w jakim liczba ma być interpretowana, co jest zgodne z wytycznymi ECMAScript. Poznanie możliwości i ograniczeń funkcji parseInt jest kluczowe w pracy z danymi liczbowymi w JavaScript, szczególnie w kontekście walidacji danych wejściowych.

Pytanie 15

Jakie właściwości stylu CSS poprawnie definiują dla akapitu czcionkę: Arial; jej wielkość: 16 pt; oraz styl czcionki: kursywa?

A. p {font-style: Arial; font-size: 16pt; font-variant: normal;}
B. p {font-family: Arial; font-size: 16pt; font-style: italic;}
C. p {font-style: Arial; size: 16px; font-weight: normal;}
D. p {font-family: Arial; font-size: 16px; font-variant: normal;}
W analizowanych odpowiedziach zawarte są błędy, które wynikają z niepoprawnego użycia właściwości CSS. Przede wszystkim w przypadku pierwszej odpowiedzi, użycie font-style do definiowania kroju czcionki jest całkowicie błędne, ponieważ ta właściwość powinna odnosić się do stylu (np. italic, normal), a nie do krój czcionki, który powinien być definiowany przez font-family. Druga odpowiedź także zawiera podobne niedociągnięcie, w której zamiast font-family podano font-style, co prowadzi do nieprawidłowego zinterpretowania deklaracji. Dodatkowo, właściwość size jest niepoprawna, ponieważ powinna być font-size; użycie size nie jest zgodne z żadnym standardem CSS. Trzecia odpowiedź z kolei posługuje się jednostką px zamiast pt dla rozmiaru czcionki, co może prowadzić do problemów z wyświetlaniem tekstu na różnych urządzeniach. Chociaż px jest popularną jednostką w CSS, nie jest ona zalecana, gdy mamy do czynienia z typografią opartą na punktach, co jest szczególnie istotne w druku. Wreszcie, czwarta odpowiedź również niepoprawnie używa jednostki px oraz font-variant w kontekście stylu czcionki, co świadczy o braku zrozumienia zastosowań tych właściwości. Kluczowe jest, aby rozumieć funkcję każdej z właściwości CSS i stosować je zgodnie z ich przeznaczeniem, co pozwoli na tworzenie estetycznych i funkcjonalnych stylów w projektach webowych.

Pytanie 16

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

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

Pytanie 17

Jak nazywa się domyślny plik konfiguracyjny dla serwera Apache?

A. .htaccess
B. htaccess.cnf
C. .configuration
D. configuration.php
Plik htaccess.cnf nie jest standardowym plikiem konfiguracyjnym serwera Apache i nie ma on znaczenia w kontekście zarządzania ustawieniami serwera. Często używana jest konwencja .cnf dla plików konfiguracyjnych w innych aplikacjach, jednak nie w przypadku Apache, który do lokalnych ustawień używa właśnie pliku .htaccess. Nazwa .configuration również jest niepoprawna, ponieważ nie odpowiada żadnemu uznanemu formatowi pliku konfiguracyjnego w ekosystemie Apache. Plik konfiguracyjny serwera Apache znajduje się zazwyczaj w lokalizacji /etc/httpd/conf/httpd.conf lub /etc/apache2/apache2.conf, a nie w formie pliku ukrytego z kropką na początku. Trzecią niepoprawną odpowiedzią jest configuration.php, która jest typowa dla aplikacji opartych na PHP, takich jak WordPress czy Joomla, ale nie ma zastosowania w kontekście konfiguracji samego serwera Apache. Tego typu pliki PHP są używane do przechowywania ustawień specyficznych dla aplikacji, a nie serwera. Użycie niepoprawnych nazw plików konfiguracyjnych może prowadzić do nieprawidłowego działania serwera, w tym błędów konfiguracyjnych czy problemów z dostępem i bezpieczeństwem strony. Dlatego ważne jest, aby administratorzy serwerów stosowali się do uznawanych standardów i konwencji w konfiguracji Apache.

Pytanie 18

W pliku CSS znajdują się poniższe style. Kiedy klikniemy na hiperłącze i wrócimy na stronę, jego kolor zmieni się na

a { color: Brown; }
a:link { color: Green; }
a:visited { color: Red; }
a:hover { color: Yellow; }
A. czerwony
B. żółty
C. brązowy
D. zielony
W stylach CSS dla hiperłączy istnieją różne pseudoklasy które określają ich wygląd w zależności od stanu. W tym przypadku kolor czerwony przypisany jest do pseudoklasy a:visited co oznacza że po odwiedzeniu i późniejszym powrocie na stronę hiperłącze przyjmie kolor czerwony. Pseudoklasa a:visited jest używana aby oznaczyć linki które użytkownik już odwiedził co jest przydatne w nawigacji i pozwala użytkownikom zidentyfikować które strony już odwiedzili. Dobre praktyki w projektowaniu stron internetowych zalecają użycie wyraźnych i kontrastujących kolorów aby użytkownicy mogli łatwo rozpoznać odwiedzone linki co poprawia doświadczenie użytkownika. Warto pamiętać że przeglądarki mają różne poziomy wsparcia dla pseudoklasy a:visited w kontekście stylizacji innych właściwości niż kolor co wynika z wymogów prywatności. Dlatego w standardowych przypadkach kolorowe oznaczenie linków przynosi pożądany efekt zapewniając zgodność z wytycznymi WCAG dotyczącymi dostępności stron internetowych. Bardzo ważne jest aby projektując strony internetowe dbać o klarowność i intuicyjność nawigacji co zwiększa satysfakcję z użytkowania serwisu.

Pytanie 19

Przed przystąpieniem do tworzenia kopii zapasowej bazy danych, aby była ona poprawna i zdatna do późniejszego przywrócenia, konieczne jest sprawdzenie

A. uprawnień dostępu do serwera bazy danych
B. spójności bazy danych
C. poprawności składni zapytań
D. opcji udostępnienia bazy danych
Spójność bazy danych to kluczowy aspekt, który należy sprawdzić przed wykonaniem kopii bezpieczeństwa. Oznacza to, że wszystkie dane w bazie muszą być zgodne z ustalonymi regułami i zapewniać prawidłowe relacje między różnymi tabelami oraz rekordami. Na przykład, jeżeli w bazie danych znajdują się relacje między tabelami, to każda referencja musi wskazywać na istniejący rekord. W praktyce, przed wykonaniem kopii zapasowej, administratorzy często przeprowadzają operacje takie jak walidacja danych, aby upewnić się, że nie ma błędów, które mogłyby prowadzić do nieprawidłowych wyników po przywróceniu danych. Dobre praktyki w zarządzaniu bazami danych, takie jak regularne wykonywanie kontroli spójności oraz audytów danych, pomagają zminimalizować ryzyko problemów z danymi. Warto również korzystać z narzędzi automatyzacyjnych, które mogą wykrywać niezgodności w danych, co znacznie ułatwia proces przed wykonaniem kopii zapasowej.

Pytanie 20

Przedstawiono efekt formatowania CSS oraz kod HTML. Jak należy zdefiniować styl, aby osiągnąć takie formatowanie?

<p>
Mimozami jesień się zaczyna,<br>
Złotawa, krucha i miła.<br>
To ty, to ty jesteś ta dziewczyna,<br>
Która do mnie na ulicę wychodziła.
</p>
Ilustracja do pytania
A. .first-line { font-size: 200%; color: brown; }
B. p::first-line { font-size: 200%; color: brown; }
C. p.first-line { font-size: 200%; color: brown; }
D. #first-line { font-size: 200%; color: brown; }
Niestety, wybrana przez ciebie odpowiedź jest niepoprawna. Najważniejszym błędem jest brak zrozumienia, jak działają pseudoelementy i selektory CSS. Pseudoelement ::first-line jest używany specyficznie do formatowania pierwszej linii paragrafu. Zastosowanie selektora typu ID (#first-line) lub klasy (.first-line) nie dałoby oczekiwanego efektu, ponieważ te selektory odnoszą się do elementów o określonym identyfikatorze lub klasie, a nie do pierwszej linii paragrafu. Podobnie, selektor p.first-line oznacza paragraf o klasie 'first-line', a nie pierwszą linię paragrafu. Dlatego w tym przypadku prawidłowym rozwiązaniem jest zastosowanie pseudoelementu ::first-line w połączeniu z selektorem paragrafu (p), co umożliwi formatowanie tylko pierwszej linii paragrafu. Pamiętaj, że prawidłowe rozumienie selektorów CSS jest kluczowe do efektywnego stylowania stron internetowych i tworzenia responsywnych, atrakcyjnych layoutów.

Pytanie 21

Poziom izolacji transakcji Repeatable Read (tryb powtarzalnego odczytu) używany przez MS SQL jest związany z problemem

A. utraty aktualizacji
B. odczytów widm
C. brudnych odczytów
D. niepowtarzalnych odczytów
Wszystkie pozostałe odpowiedzi dotyczą problemów, które nie są bezpośrednio związane z poziomem izolacji Repeatable Read. Utrata aktualizacji występuje, gdy dwie transakcje odczytują ten sam wiersz i obie próbują go zaktualizować. Problem ten jest bardziej związany z poziomem izolacji Read Committed, gdzie jedno z odczytów może nadpisać zmiany dokonane przez drugie, co prowadzi do utraty ważnych informacji. Brudne odczyty z kolei występują, gdy transakcja odczytuje dane zmienione przez inną transakcję, która jeszcze nie została zatwierdzona. Ten problem jest charakterystyczny dla najniższego poziomu izolacji, czyli Read Uncommitted, gdzie brak jakiejkolwiek kontroli nad odczytem danych skutkuje niebezpieczeństwem uzyskania nieaktualnych lub niepoprawnych informacji. Niepowtarzalne odczyty natomiast to sytuacje, w których iż dane mogą zmieniać się pomiędzy dwoma odczytami w tej samej transakcji. Problem ten występuje w poziomie Read Committed, gdzie zmiany dokonane przez inne transakcje mogą być widoczne dla aktualnej transakcji, co prowadzi do niespójności w wynikach. Tak więc, choć wszystkie wymienione zjawiska są ważnymi problemami w zarządzaniu transakcjami, tylko odczyty widm są specyficznie związane z poziomem izolacji Repeatable Read.

Pytanie 22

Jakie pojęcia są wykorzystywane do opisu interfejsu użytkownika serwisu internetowego?

A. Przetwarzanie danych, system zarządzania treścią, projektowanie informacji
B. Przyciski, menu, interakcja użytkownika z aplikacją
C. Wysyłanie zapytań do bazy, skrypty PHP
D. Szkic strony, mapa witryny, diagram przepływu informacji
Odpowiedź "Przyciski, menu, interakcja użytkownika z aplikacją" jest prawidłowa, ponieważ odnosi się bezpośrednio do kluczowych elementów interfejsu użytkownika (UI) na stronach internetowych. Interfejs użytkownika to zespół wszystkich punktów kontaktowych między użytkownikiem a systemem, a przyciski i menu są podstawowymi składnikami, które umożliwiają interakcję z aplikacją. Dobre praktyki projektowania UI opierają się na zapewnieniu intuicyjności i dostępności tych elementów, co jest podstawą pozytywnego doświadczenia użytkownika (UX). Na przykład, przyciski powinny być jasno oznaczone i łatwo rozpoznawalne, a menu powinno być zorganizowane w sposób logiczny, aby użytkownicy mogli szybko znaleźć potrzebne informacje. W kontekście standardów, warto zwrócić uwagę na wytyczne WCAG, które dotyczą dostępności treści internetowych, oraz zasady heurystyki Jakobsona, które pomagają w ocenie interfejsu użytkownika. Dobry design UI powinien również uwzględniać responsywność, co oznacza, że interfejs powinien być użyteczny na różnych urządzeniach i rozmiarach ekranów.

Pytanie 23

Jakie są etapy w odpowiedniej kolejności przy tworzeniu aplikacji?

A. Analiza oczekiwań klienta, określenie wymagań, programowanie, testowanie, wdrożenie
B. Analiza oczekiwań klienta, określenie wymagań, programowanie, wdrożenie, testowanie
C. Określenie wymagań, analiza oczekiwań klienta, programowanie, wdrożenie, testowanie
D. Programowanie, analiza oczekiwań klienta, określenie wymagań, wdrożenie, testowanie
Odpowiedź wskazująca na kolejność: analiza wymagań klienta, specyfikacja wymagań, tworzenie, testy, wdrażanie jest poprawna i odzwierciedla standardowy model cyklu życia oprogramowania (SDLC). Zaczynamy od analizy wymagań, co oznacza zrozumienie potrzeb klienta i zebranie informacji, które będą fundamentem dalszych prac. Następnie przechodzimy do specyfikacji wymagań, gdzie dokumentujemy te potrzeby w formie, która będzie zrozumiała dla zespołu developerskiego. Tworzenie aplikacji następuje po szczegółowym omówieniu i zaakceptowaniu wymagań, co minimalizuje ryzyko błędów. Testy są kluczowym etapem, który pozwala na weryfikację, czy stworzone rozwiązanie spełnia wymagania oraz działa zgodnie z założeniami. Ostateczne wdrożenie aplikacji do użytkowania powinno nastąpić po przeprowadzeniu wszystkich testów i uzyskaniu pozytywnych wyników. Przykład zastosowania tej metodologii można zaobserwować w projektach realizowanych w metodologii Agile, gdzie iteracje pozwalają na ciągłe dostosowywanie aplikacji do zmieniających się potrzeb klienta. Takie podejście zwiększa satysfakcję użytkowników i minimalizuje koszty związane z poprawkami.

Pytanie 24

W języku JavaScript, aby uzyskać podciąg tekstu pomiędzy wskazanymi indeksami, należy skorzystać z metody

A. trim()
B. concat()
C. replace()
D. slice()
Metoda slice() w JavaScript jest używana do wydzielania części napisu na podstawie podanych indeksów. Przyjmuje dwa argumenty: indeks początkowy oraz indeks końcowy, co pozwala na uzyskanie fragmentu tekstu w określonym zakresie. Na przykład, jeśli mamy napis 'JavaScript' i zastosujemy slice(0, 4), otrzymamy 'Java'. Metoda ta nie zmienia oryginalnego napisu, co jest zgodne z zasadą niemodyfikowalności w JavaScript. Dobrą praktyką jest również pamiętanie, że indeks końcowy jest wyłączny, co oznacza, że znak na tym indeksie nie jest wliczany do wynikowego napisu. Ponadto, slice() może przyjmować wartości ujemne, co pozwala na łatwe wydzielanie fragmentów z końca napisu, co jest szczególnie przydatne w dynamicznych aplikacjach webowych. Warto również wiedzieć, że slice() jest preferowane do używania nad innymi metodami, gdyż jest bardziej intuicyjna i wydajna w kontekście manipulacji łańcuchami znaków.

Pytanie 25

Jaką treść komunikatu należy umieścić w kodzie PHP zamiast znaków zapytania?

$a = mysql_connect('localhost', 'adam', 'mojeHaslo');

if (!$a)
    echo "?????????????";
A. Wybrana baza danych nie istnieje
B. Błąd w trakcie przetwarzania zapytania SQL
C. Błąd połączenia z serwerem SQL
D. Rekord został pomyślnie dodany do bazy
Poprawna odpowiedź 'Błąd połączenia z serwerem SQL' jest właściwa, ponieważ funkcja mysql_connect() służy do nawiązywania połączenia z serwerem bazy danych MySQL. Jeśli połączenie nie powiedzie się, zwraca false. W takiej sytuacji należy poinformować użytkownika o nieudanym połączeniu. Jest to kluczowe w debugowaniu i zapewnianiu użytkownikowi zrozumiałych komunikatów błędów. W praktyce, połączenie z bazą danych jest podstawowym krokiem w wielu aplikacjach internetowych, a jego poprawna obsługa to standardowa praktyka branżowa. Współczesne podejście wymaga także użycia rozszerzenia mysqli lub PDO zamiast przestarzałej funkcji mysql_connect(). Jest to zalecane ze względu na lepsze wsparcie bezpieczeństwa i wydajności. Użycie funkcji mysqli_connect() pozwala na obsługę zarówno błędów połączenia, jak i zapytań SQL w sposób bardziej elastyczny i bezpieczny.

Pytanie 26

W języku CSS określono styl dla pola edycyjnego. Pole to będzie miało jasnozielony kolor tła, gdy będzie w trybie edycji.

A. w każdej sytuacji.
B. jeśli jest to pierwsze wystąpienie tego elementu w dokumencie.
C. po naciśnięciu na nie myszką w celu wpisania tekstu.
D. gdy będzie na nie najechane kursorem bez kliknięcia.
Inne odpowiedzi mogą wydawać się logiczne na pierwszy rzut oka, jednak każda z nich ma swoje wady. Stwierdzenie, że tło zmienia się "gdy zostanie wskazane kursorem myszy bez kliknięcia" jest nieprawidłowe, ponieważ stan "focus" wymaga interakcji użytkownika poprzez kliknięcie. W przeciwnym razie, pole nie będzie miało przypisanego stylu. Możliwość ustawienia tła przy najechaniu kursorem myszy można osiągnąć za pomocą pseudo-klasy :hover, ale to zupełnie inny kontekst. Twierdzenie, że tło zmienia się "w każdym przypadku" jest również mylące, ponieważ reguła CSS dotyczy tylko specyficznego stanu, a nie wszystkich stanów. Ostatecznie, stwierdzenie, że zmiana tła zachodzi "jeśli jest to pierwsze wystąpienie tego znacznika w dokumencie" jest nieprawdziwe, ponieważ reguła CSS odnosi się do każdego elementu <input>, który znajdzie się w stanie "focus", niezależnie od jego miejsca w dokumencie. Tego rodzaju myślenie prowadzi do nieporozumień dotyczących zastosowania selektorów CSS oraz ich właściwości. Dlatego ważne jest, aby mieć jasność co do mechanizmów działania CSS i zrozumieć, że odpowiednie style są stosowane w oparciu o interakcje użytkownika, a nie tylko na podstawie struktury dokumentu.

Pytanie 27

Które z poniższych twierdzeń na temat klucza głównego jest prawdziwe?

A. Zawiera jedynie jedno pole
B. W przypadku tabeli z danymi osobowymi może to być pole nazwisko
C. Jest unikalny w ramach tabeli
D. Może mieć tylko wartości liczbowe
Klucz podstawowy jest fundamentalnym elementem w projektowaniu baz danych. Jego główną funkcją jest zapewnienie unikalności każdego rekordu w tabeli, co oznacza, że nie mogą istnieć dwa identyczne wiersze z tym samym kluczem podstawowym. To jest kluczowe dla zachowania integralności danych i umożliwia efektywne zarządzanie informacjami. Na przykład, w tabeli z danymi klientów klucz podstawowy może stanowić unikalny identyfikator klienta (np. numer ID), który pozwala na szybkie i jednoznaczne zlokalizowanie rekordu. Dobrą praktyką jest używanie kluczy podstawowych, które są długoterminowo stabilne, co oznacza, że nie zmieniają się w czasie. Warto również stosować technologię baz danych, która wspiera mechanizmy zapewniające unikalność kluczy, takie jak indeksy unikalne. Ponadto, klucz podstawowy nie musi być wyłącznie pojedynczym polem; może składać się z kilku pól, co jest powszechnie stosowane w przypadku złożonych relacji między tabelami.

Pytanie 28

Zestawienie dwóch kolorów znajdujących się naprzeciwko siebie w kole kolorów jest zestawieniem

A. dopełniającym
B. monochromatycznym
C. trójkątnym
D. sąsiadującym
Wybór odpowiedzi trójkątnym odnosi się do koncepcji, w której kolory są rozmieszczone w formie trójkąta na kole barw. Takie połączenie nie tworzy jednak charakterystycznej relacji, jaką posiadają kolory dopełniające. W praktyce, kolory trójkątne służą do tworzenia bardziej złożonych palet, gdzie każdy kolor współdziała z pozostałymi, ale nie generują one tak silnego kontrastu jak dopełniające. Odpowiedź sąsiadującym sugeruje, że barwy są blisko siebie w kole barw, co prowadzi do harmonijnego, ale jednolitego efektu, a nie do wyraźnych kontrastów. Barwy sąsiadujące można stosować do uzyskania delikatniejszych przejść kolorystycznych, co jest przydatne w projektach, które wymagają subtelności. Z kolei monochromatycznym odnosi się do jednego koloru i jego odcieni, co pozwala na stworzenie spójnej, ale mało zróżnicowanej palety kolorystycznej. Użycie monochromatycznych kolorów może być przydatne do zbudowania jednolitego stylu, lecz nie oferuje ono intensywności wizualnej, którą uzyskuje się dzięki kolorom dopełniającym. Generalnie, błędne podejścia do kolorów mogą prowadzić do ograniczenia kreatywności i nieefektywnego wykorzystania kolorystyki w projektach artystycznych czy graficznych. Zrozumienie różnic między tymi połączeniami jest kluczowe dla efektywnego wykorzystania teorii kolorów w praktycznych zastosowaniach.

Pytanie 29

Jak powinna wyglądać odpowiednia sekwencja procesów przetwarzania dźwięku z analogowego na cyfrowy?

A. próbkowanie, kwantyzacja, kodowanie
B. próbkowanie, kodowanie, kwantyzacja
C. kwantyzacja, kodowanie, próbkowanie
D. kwantyzacja, próbkowanie, kodowanie
Wybór niepoprawnych odpowiedzi pokazuje, że pewnie nie do końca zrozumiałeś, jak te procesy przetwarzania dźwięku powinny przebiegać. Pierwszy błąd to pominięcie jednego z kluczowych kroków, co może mylić, bo nie jest jasne, jak właściwie przekształcamy sygnał analogowy w cyfrowy. Jeśli byś kodował dane przed kwantyzacją, to mogłoby to zniekształcić informacje przez brak zaokrągleń, co sprawiłoby, że dane nie oddają oryginału. Z kolei, jeśli nie rozumiesz, że kwantyzacja ma być po próbkowaniu, to może się wydawać, że dźwięk przechodzi w formę cyfrową w dziwny sposób. W efekcie, może się zdarzyć, że nie oddasz właściwego zakresu dynamiki, co znacznie pogorszy jakość dźwięku. Może być tak, że dźwięk będzie zniekształcony albo straci ważne szczegóły, przez co będzie trudny do słuchania. Fajnie by było, żebyś lepiej zrozumiał te procesy, bo są mega ważne dla każdego, kto działa w inżynierii dźwięku lub produkcji muzycznej.

Pytanie 30

<?php
function silnia($liczba)
{
    if($liczba < 2)
        return 1;
    else
        return $liczba * silnia($liczba - 1);
}
?>
Funkcja silnia jest funkcją
A. rekurencyjną.
B. nie zwracającą wyniku.
C. abstrakcyjną.
D. bezparametrową.
Kod przedstawia funkcję `silnia($liczba)` w PHP, która oblicza silnię liczby naturalnej. Kluczową cechą tej funkcji jest to, że wewnątrz swojego ciała wywołuje samą siebie: `silnia($liczba - 1)`. To właśnie sprawia, że jest to funkcja rekurencyjna, a nie żadna z pozostałych podanych opcji. Warto zrozumieć, skąd mogą brać się błędne skojarzenia. Niektórzy patrzą na definicję i myślą, że skoro funkcja ma prostą postać, to może jest „bezparametrowa”. Tymczasem funkcja bezparametrowa to taka, która nie przyjmuje żadnych argumentów, np. `function test(){ ... }`. Tutaj mamy wyraźnie zdefiniowany parametr `$liczba`, który jest używany w warunku `if($liczba < 2)` oraz w obliczeniach, więc nie ma mowy o braku parametrów. Pojawia się też czasem mylne przekonanie, że skoro funkcja „coś robi”, to może nie musi zwracać wyniku. W tym przykładzie jasno widać słowo kluczowe `return` użyte w obu gałęziach instrukcji warunkowej: najpierw `return 1;`, a potem `return $liczba * silnia($liczba - 1);`. To jest funkcja, która zwraca konkretną wartość liczbową – wynik obliczenia silni – a nie funkcja typu „procedura”, która tylko wykonuje efekt uboczny. W PHP dobra praktyka jest taka, żeby funkcje obliczeniowe zawsze coś zwracały, zamiast np. tylko wypisywać dane na ekran. Opcja „abstrakcyjna” również nie pasuje do tego przykładu. Pojęcie funkcji abstrakcyjnej wiąże się z programowaniem obiektowym, klasami abstrakcyjnymi i interfejsami, gdzie definiujemy metodę bez implementacji (w PHP np. `abstract public function foo();`). Tutaj mamy zwykłą, w pełni zaimplementowaną funkcję globalną, bez słowa kluczowego `abstract` i bez kontekstu klasy. Z mojego doświadczenia często problem bierze się z mieszania pojęć: ktoś kojarzy abstrakcję z „czystą matematyką” silni i automatycznie myśli „abstrakcyjna funkcja”, ale w terminologii PHP to zupełnie coś innego. Poprawne rozpoznanie rekurencji wymaga zwrócenia uwagi tylko na jedną rzecz: czy funkcja wywołuje samą siebie i czy ma warunek końca. Tutaj oba te elementy są obecne, więc jedynym poprawnym opisem jest właśnie funkcja rekurencyjna.

Pytanie 31

Które z poniższych stwierdzeń dotyczących klucza głównego jest poprawne?

A. Może przyjmować tylko wartości numeryczne
B. W tabeli z danymi osobowymi może to być pole z nazwiskiem
C. Składa się wyłącznie z jednego pola
D. Jest unikalny w obrębie tabeli
Klucz podstawowy to atrybut lub zestaw atrybutów, który jednoznacznie identyfikuje każdy rekord w tabeli bazy danych. Najważniejszym wymogiem jest, aby klucz podstawowy był unikalny dla każdego wiersza, co oznacza, że nie może być powtórzony w obrębie tej samej tabeli. Przykładem może być numer identyfikacyjny (np. PESEL, NIP) przypisany do konkretnej osoby, który gwarantuje, że każda osoba w tabeli danych osobowych jest jednoznacznie identyfikowalna. Stosowanie kluczy podstawowych jest zgodne z zasadami normalizacji baz danych, co pozwala na minimalizację redundancji danych oraz poprawę integralności danych. Klucz podstawowy może składać się z jednego lub więcej pól, co daje elastyczność w projektowaniu bazy danych, aby pasowała do specyficznych potrzeb aplikacji. Dobre praktyki wskazują, że klucz podstawowy powinien być stabilny, czyli nie zmieniać się w czasie, oraz prosty do zaimplementowania i używania w zapytaniach SQL.

Pytanie 32

Kwalifikatory dostępu: private, protected oraz public określają mechanizm

A. rekurencji
B. polimorfizmu
C. hermetyzacji
D. przeładowania
Kwalifikatory dostępu: private, protected i public, są kluczowymi elementami hermetyzacji w programowaniu obiektowym. Hermetyzacja polega na ukrywaniu wewnętrznych szczegółów implementacji obiektu i ograniczaniu dostępu do jego danych oraz metod. Dzięki tym kwalifikatorom programista może definiować, które elementy klasy są dostępne dla innych klas, co znacząco poprawia bezpieczeństwo kodu oraz jego czytelność. Na przykład, deklarując zmienną jako private, uniemożliwiamy jej bezpośredni dostęp z zewnątrz, co zapobiega przypadkowemu lub niezamierzonemu modyfikowaniu jej wartości. Dzięki temu kod staje się bardziej odporny na błędy oraz łatwiejszy do utrzymania. W praktyce, hermetyzacja jest jedną z podstawowych zasad programowania obiektowego i jest zgodna z najlepszymi praktykami, takimi jak SOLID, które promują pisanie przejrzystego i elastycznego kodu. Dobrze zaprojektowane klasy, które stosują hermetyzację, są bardziej modułowe i ułatwiają współpracę w zespołach programistycznych, co jest niezmiernie istotne w dużych projektach.

Pytanie 33

Jakiego polecenia SQL należy użyć, aby usunąć z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?

A. DELETE * FROM artykuly WHERE tresc = "%sto%";
B. DELETE FROM artykuly WHERE tresc = "%sto%";
C. DELETE * FROM artykuly WHERE tresc LIKE "%sto%";
D. DELETE FROM artykuly WHERE tresc LIKE "%sto%";
Wszystkie błędne odpowiedzi opierają się na niezrozumieniu podstawowej funkcji operatora DELETE w języku SQL oraz zasad dotyczących dopasowywania wzorców. Przykłady takie jak 'DELETE * FROM artykuly WHERE tresc = "%sto%";' oraz 'DELETE * FROM artykuly WHERE tresc LIKE "%sto%";' zawierają nieprawidłowe użycie składni, które nie jest zgodne z standardem SQL. W SQL nie używa się znaku '*' w poleceniach DELETE, gdyż zapis 'DELETE * FROM' jest poprawny tylko dla zapytań SELECT. W kontekście usuwania danych, należy używać jedynie 'DELETE FROM', co jest wystarczające dla określenia, z jakiej tabeli mają zostać usunięte rekordy. Ponadto, pierwsza błędna odpowiedź zdobija wszystkie potencjalne błędy związane z niepoprawnym użyciem operatora '='. Operator '=' wymaga dokładnego dopasowania, co oznacza, że nie może być stosowany do wyszukiwania wzorców, w przeciwieństwie do operatora LIKE, który umożliwia elastyczne dopasowanie z użyciem znaków wieloznacznych. Typowym błędem jest więc przekonanie, że '=' oraz LIKE mogą być stosowane zamiennie bez uwzględnienia, że '=' nie przyjmuje znaków procentowych. Dlatego kluczowe jest, aby przed użyciem poleceń SQL upewnić się, że rozumie się ich składnię oraz zasady działania, co pozwoli uniknąć wielu pułapek w codziennej pracy z bazami danych.

Pytanie 34

Który z przedstawionych ciągów znaków nie pasuje do wzorca wyrażenia regularnego określonego poniżej?

(([A-ZŁŻ][a-ząęóźżćńś]{2,})(-[A-ZŁŻ][a-ząęóźżćńś]{2,})?)
A. Kowalski
B. Kasprowicza
C. Jelenia Góra
D. Nowakowska-Kowalska
Wzorce wyrażeń regularnych stosowane są do dokładnego dopasowywania lub przekształcania tekstu. Podany wzorzec wymaga, by ciąg tekstu zaczynał się dużą literą, po której następuje co najmniej dwie małe litery, opcjonalnie kontynuowane przez myślnik i kolejną sekwencję dużej i co najmniej dwóch małych liter. Błędem jest uznanie za poprawne ciągów zawierających odstęp, jak Jelenia Góra, który nie spełnia tego wymogu, gdyż spacja nie jest dozwolona w środku wzorca. Typowym błędnym przekonaniem jest myślenie, że każda sekwencja zaczynająca się dużą literą będzie pasować, co nie jest prawdą, ponieważ struktura musi być jednorodna bez przerw, takich jak spacje. Wyrażenia regularne są użyteczne w programowaniu przy walidacji danych wejściowych, gdzie musimy sprawdzić, czy dane spełniają określone kryteria. Często stosuje się je do filtrowania danych lub wyszukiwania specyficznych informacji w ciągach tekstowych. Zrozumienie ich logiki pomaga unikać błędów i skutecznie analizować tekst, co jest kluczowe w pracy z danymi w IT. Praktyka z wyrażeniami regularnymi pozwala lepiej kontrolować i przetwarzać skomplikowane struktury tekstowe, co jest nieocenioną umiejętnością w zawodach związanych z programowaniem i analizą danych.

Pytanie 35

Jakie wartości zostaną wypisane po wykonaniu poniższego skryptu?

var x = 1;
var y;
/*0*/ ++y;
/*1*/ document.write(++x);
/*2*/ document.write(" ");
/*3*/ document.write(x--);
/*4*/ document.write(" ");
/*5*/ document.write(x);
A. 1 2 1
B. 2 1 1
C. 1 2 2
D. 2 2 1
Analizując wyniki działania skryptu, warto zwrócić uwagę na różnice wynikające z użycia operatorów preinkrementacji i postdekrementacji. Wiele osób mylnie interpretuje, jak te operatory wpływają na zmienną w danej kolejności operacji. Preinkrementacja (++x) zwiększa wartość zmiennej o 1 przed jej użyciem w wyrażeniu, co oznacza, że każda operacja wykonywana później będzie bazować na już zwiększonej wartości. Z kolei postdekrementacja (x--) najpierw używa bieżącej wartości zmiennej, a dopiero potem ją zmniejsza, co może prowadzić do błędnych założeń, jeśli nie jest się świadomym tej różnicy. Częstym błędem jest założenie, że obie operacje działają jednocześnie, co nie jest prawdą. Różnica ta jest kluczowa, ponieważ ma znaczący wpływ na kolejność wykonania operacji i rezultat końcowy. Przy programowaniu w JavaScript należy zatem nie tylko znać różnice między tymi operatorami, ale także dokładnie rozumieć, jak wpływają one na przepływ sterowania w kodzie. Znajomość tego mechanizmu pozwala unikać typowych błędów, które prowadzą do nieoczekiwanych wyników i problemów z debugowaniem kodu. Jest to nieodzowna wiedza w inżynierii oprogramowania, szczególnie przy optymalizacji i pisaniu efektywnego kodu.

Pytanie 36

Jakie będą skutki wykonania podanego zapytania w tabeli?

ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;
A. dodanie kolumny nazwa2 typu zmiennoprzecinkowego
B. dodanie kolumny nazwa2 z wartością domyślną typu DOUBLE
C. zmiana wartości kolumny nazwa2 na DOUBLE
D. zmiana nazwy kolumny z nazwa1 na nazwa2
Analiza błędnych odpowiedzi związanych z zapytaniem ALTER TABLE wymaga zrozumienia funkcji oraz ograniczeń tej komendy w SQL. Słowo kluczowe ADD wskazuje na intencję dodania nowego elementu do struktury tabeli co eliminuje możliwość zmiany istniejącej kolumny jak sugerują niektóre odpowiedzi. Typ DOUBLE jest używany do przechowywania danych zmiennoprzecinkowych lecz nie oznacza to że istniejąca kolumna może zmieniać się na ten typ poprzez użycie ADD co jest błędnym zrozumieniem funkcji SQL. Typowe błędy myślowe obejmują mylenie dodawania nowej kolumny ze zmianą istniejącej co można osiągnąć jedynie poprzez bezpośrednie użycie MODIFY w poleceniu ALTER TABLE. Również błędne jest założenie że dodawanie kolumny automatycznie ustali wartość domyślną co wymaga specjalnego określenia DEFAULT w zapytaniu aby wprowadzić takie ustawienie. Konsekwencją takiego błędnego rozumienia jest niepoprawna rozbudowa struktury danych co może prowadzić do problemów w aplikacjach wykorzystujących bazę danych. Prawidłowe rozumienie działania ALTER TABLE jest kluczowe w efektywnym zarządzaniu i rozwoju baz danych co zgodne jest z dobrymi praktykami w tej dziedzinie. Aby uniknąć tych błędów warto zapoznać się z dokumentacją i praktykami związanymi z obsługą SQL i wdrożyć systematyczne testowanie zmian strukturalnych przed ich implementacją w środowisku produkcyjnym co minimalizuje ryzyko błędów i ich wpływ na operacje biznesowe. Poprawne użycie ALTER TABLE wymaga także zaawansowanej znajomości typów danych i zasad spójności w bazach danych co jest istotnym elementem kompetencji każdego specjalisty IT zarządzającego danymi. W kontekście tego pytania ważne jest zrozumienie że kluczową operacją jest dodanie nowej kolumny a nie zmiana istniejącej struktury co wymaga innego podejścia i komend SQL.

Pytanie 37

Aby usunąć tabelę, trzeba użyć kwerendy

A. DROP TABLE
B. DELETE
C. UNIQUE
D. TRUNCATE TABLE
Odpowiedź 'DROP TABLE' jest poprawna, ponieważ jest to standardowe polecenie SQL służące do usunięcia całej tabeli z bazy danych. Użycie tego polecenia oznacza, że wszystkie dane przechowywane w tabeli zostaną trwale usunięte, a sama struktura tabeli również zostanie skasowana. Przykład zastosowania: jeśli mamy tabelę 'klienci' i chcemy usunąć ją z bazy danych, stosujemy polecenie 'DROP TABLE klienci;'. Ważne jest, aby przed wykonaniem tego polecenia upewnić się, że nie ma już odniesień do tej tabeli w innych obiektach bazy danych, takich jak klucze obce. Usunięcie tabeli jest procesem nieodwracalnym, dlatego zaleca się wykonanie kopii zapasowej danych przed podjęciem takiej decyzji. W praktyce, ten operator jest często używany w sytuacjach, gdy dane są zbędne, a struktura bazy danych wymaga reorganizacji lub uproszczenia, co jest zgodne z najlepszymi praktykami w zarządzaniu bazami danych.

Pytanie 38

W języku PHP, aby uzyskać dostęp do pliku dane.txt w trybie tylko do odczytu i odczytać jego zawartość, należy użyć funkcji:

A. fopen("dane.txt", "w") oraz fputs()
B. fopen("dane.txt", "r") oraz fputs()
C. fopen("dane.txt", "w") oraz fgets()
D. fopen("dane.txt", "r") oraz fgets()
Odpowiedź fopen("dane.txt", "r") oraz fgets() jest poprawna, ponieważ zastosowanie funkcji fopen z parametrem 'r' otwiera plik w trybie do odczytu. Funkcja fgets służy do odczytywania pojedynczej linii z pliku, co idealnie odpowiada potrzebie pobrania zawartości z pliku dane.txt. Przykładowe użycie tej pary funkcji może wyglądać tak: $handle = fopen('dane.txt', 'r'); if ($handle) { while (($line = fgets($handle)) !== false) { echo $line; } fclose($handle); } Warto również zauważyć, że przy pracy z plikami w PHP zaleca się zawsze sprawdzanie, czy plik został poprawnie otwarty, aby uniknąć błędów w czasie wykonania. Dobre praktyki obejmują także zamykanie pliku po jego użyciu, co pomaga w zarządzaniu zasobami systemowymi. Dodatkowo, w przypadku błędów, można wykorzystać funkcję error_reporting(), aby monitorować błędy i ostrzeżenia, co jest niezbędne w profesjonalnym rozwoju aplikacji webowych w PHP.

Pytanie 39

W której superglobalnej tablicy w PHP należy przechowywać informacje dotyczące logowania użytkownika w sposób gwarantujący ich bezpieczeństwo?

A. $_COOKIE
B. $_SERVER
C. $_SESSION
D. $_FILES
Wybór $_COOKIE do przechowywania danych logowania to kiepski pomysł z kilku powodów. Ciasteczka są trzymane po stronie klienta, co znaczy, że mogą być łatwo dostępne dla innych, a to stwarza poważne zagrożenie dla bezpieczeństwa. Na przykład, hakerzy mogą wykraść ciasteczka przez różne techniki, takie jak XSS, co mogłoby prowadzić do nieautoryzowanego dostępu do kont. Poza tym, ciasteczka mają ograniczoną pojemność i użytkownik może je modyfikować, co czyni je nieodpowiednim miejscem na wrażliwe dane. Używanie $_FILES także jest nietrafione, bo ta tablica służy do obsługi plików przesyłanych przez użytkowników, a nie zarządzania sesjami. $_SERVER to z kolei tablica, która ma informacje o serwerze oraz zapytaniach, ale nie nadaje się do trzymania danych użytkowników. Typowym błędem przy wyborze $_COOKIE czy $_SERVER jest to, że nie rozumie się ich funkcji, co może prowadzić do niebezpiecznych sytuacji. Żeby dobrze zabezpieczyć dane logowania, najlepiej korzystać z sesji, bo są zaprojektowane właśnie do tego i oferują znacznie lepszą ochronę.

Pytanie 40

Integralność encji w systemie baz danych będzie zapewniona, jeśli między innymi

A. dla każdej tabeli zostanie ustanowiony klucz główny
B. każda kolumna otrzyma zdefiniowany typ danych
C. każdy klucz główny będzie miał odpowiadający mu klucz obcy w innej tabeli
D. klucz główny zawsze będzie liczbą całkowitą
Odpowiedź, że dla każdej tabeli zostanie utworzony klucz główny, jest prawidłowa, ponieważ klucz główny odgrywa kluczową rolę w zapewnieniu integralności encji w bazach danych. Klucz główny to unikalny identyfikator dla każdego rekordu w tabeli, co oznacza, że nie może zawierać wartości NULL i musi być unikalny w obrębie danej tabeli. Przykładowo, w tabeli 'Klienci', kolumna 'ID_klienta' może być kluczem głównym, który jednoznacznie identyfikuje każdego klienta. Umożliwia to nie tylko prawidłową organizację danych, ale także przyspiesza operacje wyszukiwania i modyfikacji. Dodatkowo, zgodnie z normami ACID, klucz główny jest niezbędny do zapewnienia spójności i integralności danych. Dobrze zdefiniowane klucze główne są również podstawą do tworzenia kluczy obcych, co pozwala na tworzenie relacji między tabelami i wspiera strukturyzację danych w relacyjnych bazach danych.