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: 8 czerwca 2026 20:51
  • Data zakończenia: 8 czerwca 2026 21:20

Egzamin zdany!

Wynik: 26/40 punktów (65,0%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Którego narzędzia użyć, aby usunąć szum tła z nagrania (z taniego mikrofonu)?

A. echa
B. obwiedni
C. wyciszenia
D. usuwania szumów
Stały szum tła z taniego mikrofonu usuwa się narzędziem „usuwania szumów” (np. Noise Reduction w Audacity) - analizuje ono próbkę samego szumu i odejmuje go z całego nagrania. Dlatego należy użyć usuwania szumów.

Pytanie 2

W systemie baz danych wykonano następujące operacje dotyczące uprawnień użytkownika adam: GRANT ALL PRIVILEGES ON klienci To adam REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam. Jakie prawa będzie miał użytkownik adam po zrealizowaniu tych operacji?

A. usunięcia tabeli lub jej danych
B. aktualizowania danych oraz przeglądania tabeli klienci
C. tworzenia tabeli klienci oraz wprowadzania do niej danych
D. przeglądania tabeli klienci i dodawania do niej rekordów
Użytkownik adam po wykonaniu poleceń GRANT i REVOKE nie będzie miał wszystkich przywilejów na tabeli klienci, co wymaga szczegółowej analizy. Gdy polecenie GRANT ALL PRIVILEGES ON klienci TO adam zostało wykonane, użytkownik zyskał pełne prawa do tabeli klienci, w tym usuwania, aktualizowania, wstawiania, a także przeglądania danych. Następnie, polecenie REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam odebrało mu możliwość przeglądania (SELECT), wstawiania (INSERT) oraz aktualizowania (UPDATE) danych w tej tabeli. Jednakże, usunięcie (DELETE) nie zostało wymienione w poleceniu REVOKE, co oznacza, że użytkownik adam wciąż ma prawo do usunięcia rekordów w tabeli klienci. To zjawisko jest zgodne z zasadami zarządzania uprawnieniami w systemach baz danych SQL, gdzie uprawnienia mogą być przyznawane i odbierane niezależnie, co pozwala na precyzyjne zarządzanie dostępem do danych. W praktyce, sytuacja ta może prowadzić do niebezpieczeństw związanych z bezpieczeństwem danych, dlatego ważne jest, aby administratorzy baz danych dokładnie analizowali przyznawane i odbierane uprawnienia.

Pytanie 3

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

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

Pytanie 4

Który zestaw zawiera wyłącznie języki programowania działające po stronie serwera?

A. Java, C#, AJAX, Ruby, PHP
B. Java, C#, Python, Ruby, PHP
C. C#, Python, Ruby, PHP, JavaScript
D. Java, C#, Python, ActionScript, PHP
Pozostałe zestawy mieszają języki z technikami i językami klienckimi. AJAX to technika (nie język), JavaScript wykonuje się po stronie KLIENTA, a ActionScript to język Flasha (klienckiego). Wyłącznie serwerowe są Java, C#, Python, Ruby i PHP.

Pytanie 5

Którą czynność gwarantującą poprawne wykonanie przedstawionego kodu JavaScript należy wykonać przed pętlą?

var text;
for(var i=0; i<tab.length; i++ ){
    text+=tab[i] + "<br>";
}
A. Zadeklarować zmienną i
B. Zainicjować zmienną text
C. Sprawdzić długość tablicy tab
D. Upewnić się, że text jest typu string
Zadeklarowanie zmiennej 'i' przed pętlą nie jest konieczne, ponieważ JavaScript automatycznie deklaruje zmienną 'i' w kontekście pętli. Deklaracja zmiennych przy pomocy 'var', 'let' lub 'const' jest wystarczająca w momencie ich użycia w pętli. Kolejnym aspektem jest sprawdzenie rozmiaru tablicy 'tab'. Choć podjęcie takiego sprawdzenia jest dobrym zwyczajem, nie jest to warunek konieczny do poprawnego działania kodu. Pętla for działa w oparciu o długość tablicy, więc jeżeli tablica jest pusta, pętla po prostu się nie wykona, co nie prowadzi do błędów. Ostatnim punktem jest sprawdzenie, czy 'text' jest typu znakowego. JavaScript jest językiem dynamicznie typowanym, co oznacza, że zmienne mogą przyjmować różne typy danych w trakcie działania programu. Na początku 'text' powinno być inicjalizowane jako pusty łańcuch, ale sprawdzanie jego typu w momencie, gdy jest używane w pętli, nie jest konieczne. Wszystkie powyższe odpowiedzi mogą być postrzegane jako dobre praktyki, ale nie są kluczowymi krokami, które należy wykonać przed rozpoczęciem pętli, aby program działał poprawnie.

Pytanie 6

Pętla napisana w języku PHP wprowadzi do tablicy liczby
$x=0
for($i=0;$i<10;$i++)
{
   $tab[$i]=$x;
   $x=$x+10;
}

A. 0,1,2,3,4,5,6,7,8,9
B. 0,1,2,3,4,5,6,7,8,9,10
C. 0,10,20,30,40,50,60,70,80,90
D. 10,20,30,40,50,60,70,80,90,100
Pętla w języku PHP, zapisana w podanym kodzie, skutkuje wstawieniem do tablicy wartości będących kolejnymi wielokrotnościami liczby 10, począwszy od zera. Na początku zmienna $x jest inicjalizowana na wartość 0. Wewnątrz pętli for, która iteruje od 0 do 9, każda iteracja przypisuje do elementu tablicy $tab index $i wartość zmiennej $x, a następnie zwiększa $x o 10. Dzięki temu, w tablicy zostaną zapisane wartości: 0 ( dla i=0), 10 ( dla i=1), 20 ( dla i=2) i tak dalej, aż do 90 ( dla i=9). Po zakończeniu pętli tablica $tab będzie wyglądać następująco: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]. Jest to przykład prostego użycia pętli for oraz indeksowania tablicy w PHP, co jest podstawową umiejętnością programistyczną w tym języku. Użytkownicy mogą zauważyć, że zmiana wartości $x lub liczby iteracji w pętli zmieniłaby uzyskany wynik. Ten kod ilustruje sposób pracy z pętlami oraz tablicami w PHP, które są kluczowymi elementami programowania.

Pytanie 7

Jak nazywa się proces przedstawienia, w formie właściwej dla danego środowiska, informacji zawartych w dokumencie elektronicznym?

A. mapowanie
B. rasteryzacja
C. renderowanie
D. teksturowanie
Pozostałe pojęcia oznaczają inne operacje. Mapowanie to przyporządkowanie elementów jednego zbioru do drugiego (np. klawiszy do funkcji, danych do struktur) - nie tworzy obrazu dokumentu. Rasteryzacja to konkretna zamiana grafiki wektorowej na siatkę pikseli, czyli wycinek szerszego procesu, a nie samo przedstawienie dokumentu. Teksturowanie należy do grafiki 3D i polega na nakładaniu tekstur (obrazów) na powierzchnie modeli. Przekształcenie dokumentu w jego widoczną postać to renderowanie, dlatego ta odpowiedź jest poprawna.

Pytanie 8

CAPTCHA to technika zabezpieczeń stosowana na stronach WWW, która pozwala:

A. przyspieszyć logowanie do aplikacji internetowej
B. pominąć proces uwierzytelniania w aplikacji
C. potwierdzić, że dane z formularza wysyła człowiek, a nie program
D. automatycznie wypełnić formularz danymi użytkownika
CAPTCHA to test, który ma odróżnić człowieka od programu (bota) - np. przepisanie zniekształconego tekstu, wskazanie obrazków czy proste zadanie. Stosuje się ją w formularzach (rejestracja, komentarze, logowanie), by utrudnić masowe, automatyczne wysyłanie danych przez boty i spam. Dlatego CAPTCHA potwierdza, że dane z formularza wysyła człowiek.

Pytanie 9

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

A. PCX
B. TGA
C. PNG
D. FLIF
Spośród wymienionych to PNG jest rastrowym formatem obsługiwanym natywnie przez przeglądarki internetowe - obok JPG i GIF tworzy zestaw bezpiecznych formatów webowych. Wyświetli się bez wtyczek i konwersji. Zapamiętaj webowe rastry: JPG (zdjęcia), PNG (jakość + przezroczystość), GIF (proste animacje).

Pytanie 10

Na ilustracji pokazano relację jeden do wielu. Łączy ona

Ilustracja do pytania
A. klucz obcy rezyserzy_id tabeli filmy z kluczem obcym id tabeli rezyserzy
B. klucz podstawowy id tabeli filmy z kluczem podstawowym id tabeli rezyserzy
C. klucz obcy rezyserzy_id tabeli filmy z kluczem podstawowym id tabeli rezyserzy
D. klucz podstawowy id tabeli filmy z kluczem obcym rezyserzy_id tabeli rezyserzy
Relacja jeden do wielu w bazach danych często wiąże się z sytuacją, gdzie jeden rekord w tabeli nadrzędnej może być powiązany z wieloma rekordami w tabeli podrzędnej. W tym kontekście tabela nadrzędna to rezyserzy posiadająca klucz podstawowy id, natomiast tabela podrzędna to filmy która odnosi się do tej wartości poprzez klucz obcy rezyserzy_id. Klucz podstawowy to unikalny identyfikator rekordu w tabeli, który pozwala na jednoznaczne rozróżnienie każdego rekordu. Klucz obcy natomiast jest atrybutem w tabeli podrzędnej, który odnosi się do klucza podstawowego w tabeli nadrzędnej. Jest to zgodne z teorią normalizacji baz danych, gdzie relacje jeden do wielu są standardowym podejściem do projektowania struktur danych. Użycie klucza obcego pozwala na utrzymanie integralności referencyjnej, co oznacza że każda wartość klucza obcego musi odpowiadać wartości klucza podstawowego w powiązanej tabeli lub być null, jeśli taka relacja jest dozwolona. Praktyczne zastosowanie tej relacji można zaobserwować w systemach zarządzania treścią, gdzie jeden autor (reżyser) może mieć przypisanych wiele artykułów (filmów), jednak każdy artykuł jest przypisany do jednego autora, co umożliwia na przykład efektywne zarządzanie danymi i generowanie raportów o twórczości danego autora.

Pytanie 11

Jaki typ danych w PHP oznacza float?

A. logiczny
B. całkowity
C. łańcuchowy
D. zmiennoprzecinkowy
Typ float w PHP oznacza liczbę ZMIENNOPRZECINKOWĄ (rzeczywistą), czyli z częścią ułamkową, np. 3.14. Część dziesiętną zapisuje się kropką. Dlatego float to typ zmiennoprzecinkowy.

Pytanie 12

Którego słowa kluczowego użyć do deklaracji zmiennej w JavaScript?

A.
var
B.
new
C.
variable
D.
instanceof
Do deklaracji zmiennej w JavaScripcie służy słowo var (a w nowszym standardzie także let i const), np. var liczba = 5;. Dlatego zmienną deklaruje var.

Pytanie 13

Która komenda algorytmu odpowiada graficznej wizualizacji bloku przedstawionego na ilustracji?

Ilustracja do pytania
A. n > 20
B. Wypisz n
C. n <- n + 5
D. Wykonaj podprogram sortowania tablicy t
Blok przedstawiony na rysunku to romb który symbolizuje operację decyzyjną w schemacie blokowym algorytmu. Taki blok decyzyjny jest używany do przedstawienia pytania które ma dwie możliwe odpowiedzi: prawda lub fałsz. W kontekście programowania instrukcja warunkowa pozwala na podjęcie decyzji w zależności od spełnienia określonego warunku. W tym przypadku wyrażenie n>20 jest warunkiem logicznym który weryfikuje czy wartość zmiennej n jest większa niż 20. Jeśli warunek ten jest spełniony algorytm wykonuje określoną sekwencję instrukcji natomiast w przeciwnym razie może przejść do innego fragmentu kodu. Tego typu struktury są powszechnie stosowane w programowaniu proceduralnym i obiektowym oraz są kluczowym elementem w tworzeniu algorytmów elastycznych i responsywnych na różne scenariusze operacyjne. Stanowią także fundamentalną część logiki w systemach takich jak automatyczne kontrolery procesów gdzie decyzje muszą być podejmowane dynamicznie w oparciu o zmienne warunki wejściowe. Zrozumienie i umiejętność implementacji bloków decyzyjnych jest niezbędne dla każdego programisty co ułatwia tworzenie efektywnych i skalowalnych rozwiązań technologicznych.

Pytanie 14

DOM udostępnia metody i właściwości, które w języku JavaScript umożliwiają:

A. manipulowanie łańcuchami znaków zadeklarowanymi w kodzie
B. wysłanie danych formularza bezpośrednio do bazy danych
C. wykonywanie operacji na zmiennych liczbowych
D. pobieranie i modyfikowanie elementów wyświetlonej strony
DOM (Document Object Model) to drzewiasta reprezentacja dokumentu HTML, którą przeglądarka udostępnia skryptom. Dzięki niej JavaScript może pobierać elementy strony (np. document.getElementById("x")), zmieniać ich treść (innerHTML), atrybuty i style, a także dodawać lub usuwać elementy oraz reagować na zdarzenia. To podstawa interaktywności stron - bez przeładowania zmienia się ich zawartość i wygląd. Dlatego DOM umożliwia pobieranie i modyfikowanie elementów wyświetlonej strony.

Pytanie 15

Aby wygodnie wprowadzać i edytować dane w bazie danych, można posłużyć się:

A. raportem
B. formularzem
C. filtrowaniem
D. kwerendą SELECT
Trzy pozostałe pojęcia dotyczą oglądania lub wyszukiwania danych, a nie ich zmiany. Raport przygotowuje dane do prezentacji i wydruku w czytelnej formie, ale jest tylko do odczytu. Filtrowanie pozwala zawęzić widok do wierszy spełniających warunek - ułatwia odnalezienie informacji, lecz niczego nie modyfikuje. Kwerenda SELECT pobiera dane z tabel i również ich nie edytuje (do zmian służą INSERT, UPDATE, DELETE). Wygodne wprowadzanie i edycję danych zapewnia formularz, który daje gotowe pola powiązane z kolumnami tabeli.

Pytanie 16

Podano tabelę ksiazki z kolumnami: tytul, autor (w formacie tekstowym), cena (w formacie liczbowym). Aby zapytanie SELECT zwracało jedynie tytuły, dla których cena jest niższa niż 50zł, należy użyć:

A. SELECT ksiazki FROM tytul WHERE cena < '50 zł'
B. SELECT tytul FROM ksiazki WHERE cena > '50 zł'
C. SELECT * FROM ksiazki WHERE cena < 50
D. SELECT tytul FROM ksiazki WHERE cena < 50
Odpowiedź 'SELECT tytul FROM ksiazki WHERE cena < 50;' jest poprawna, ponieważ precyzyjnie formułuje zapytanie w języku SQL, które ma na celu wyodrębnienie z tabeli 'ksiazki' tylko tych tytułów, których cena jest niższa niż 50. W tym przypadku użycie operatora porównania '<' skutkuje filtracją danych według określonego kryterium. Jest to zgodne z dobrą praktyką w programowaniu baz danych, ponieważ pozwala uzyskać potrzebne informacje w sposób efektywny i zrozumiały. Przykładem praktycznego zastosowania może być stworzenie raportu dla księgarni, która chce zobaczyć, które książki są w sprzedaży w przystępnej cenie. Zwracając tylko potrzebne kolumny (tytuł), minimalizujesz ilość przesyłanych danych, co jest ważne w kontekście wydajności i szybkości działania aplikacji korzystających z bazy danych. Dodatkowo, unikanie podawania ceny w formacie tekstowym (np. '50 zł') jest zgodne z zasadami dobrego projektowania baz danych, które zalecają stosowanie odpowiednich typów danych, co w tym przypadku oznacza liczbę bez jednostki walutowej.

Pytanie 17

W jakim przypadku w JavaScript warunek jest spełniony, jeśli zmienna x przyjmuje wartość

if ((!isNaN(x)) && (x > 0))
A. pusty ciąg znaków
B. nie-liczbową wartość
C. wszelką całkowitą wartość liczbową
D. wszelką dodatnią wartość liczbową
Warunek zapisany w JavaScript if (!isNaN(x) && x>0) jest prawdziwy, gdy zmienna x przechowuje dowolną dodatnią wartość liczbową Takie podejście jest zgodne z dobrymi praktykami programistycznymi ponieważ umożliwia skuteczne sprawdzenie czy wartość jest zarówno liczbowa jak i dodatnia Funkcja isNaN(x) zwraca true gdy x nie jest liczbą co powoduje że !isNaN(x) zwraca true tylko wtedy gdy x jest liczbą Następnie dodatkowy warunek x>0 sprawdza czy liczba jest większa od zera co oznacza że jest dodatnia Takie warunki są często używane w aplikacjach webowych do walidacji danych użytkownika Na przykład podczas wprowadzania kwoty transakcji system może używać podobnego warunku aby upewnić się że użytkownik nie wprowadza ujemnych wartości co mogłoby prowadzić do błędów logicznych w aplikacji Używanie takich warunków wspiera bezpieczeństwo i poprawność kodu co jest kluczowe w profesjonalnym środowisku programistycznym Dodatkowo takie podejście jest zgodne z zasadą przewidywalności działania kodu co jest istotne dla zapewnienia jego łatwej utrzymywalności i czytelności dla innych programistów

Pytanie 18

Podaj zapis w języku JavaScript, który sprawdzi, czy spełniony jest przynajmniej jeden z następujących warunków: 1) dowolna liczba naturalna a jest liczbą trzycyfrową, 2) dowolna liczba całkowita b jest liczbą ujemną?

A. ((a>99) && (a<1000)) || (b<0)
B. ((a>99) && (a<1000)) && (b<0)
C. ((a>99) || (a<1000)) && (b<0)
D. ((a>99) || (a<1000)) || (b<0)
W analizowanych odpowiedziach pojawia się kilka koncepcji, które prowadzą do niepoprawnych wyników. Wyrażenie ((a>99) && (a<1000)) && (b<0) wymaga, aby obie części były spełnione jednocześnie, co jest sprzeczne z założeniem, że wystarczy spełnienie jednego z warunków. To podejście zakłada, że zarówno liczba a musi być trzycyfrowa, jak i liczba b musi być ujemna, co jest zbyt restrykcyjne i nie odzwierciedla wymaganego warunku. Kolejne błędne podejście to ((a>99) || (a<1000)) && (b<0), które również jest niepoprawne, ponieważ pierwsza część tego wyrażenia jest błędnie skonstruowana - naturalna liczba a może być dowolną liczbą, a więc nie ma sensu porównywać jej do wartości mniejszej od 1000, co zawsze będzie prawdziwe dla liczby a większej od 99. Ostatnia z analizowanych opcji - ((a>99) || (a<1000)) || (b<0) - również zawiera błąd, ponieważ pierwsza część implikuje, że każda liczba a, która jest większa niż 99, jest spełniona, co nie jest zgodne z definicją liczby trzycyfrowej. W związku z tym, najczęstsze błędy polegają na nieprawidłowym zastosowaniu operatorów logicznych oraz nieścisłościach w definiowaniu zakresu liczb, co prowadzi do niespójności w logice warunków. Kluczowe jest, aby dokładnie zrozumieć, co każdy fragment kodu ma na celu, aby uniknąć takich pomyłek.

Pytanie 19

W zaprezentowanym fragmencie algorytmu wykorzystano

Ilustracja do pytania
A. jedną pętlę
B. jeden blok decyzyjny
C. trzy bloki operacyjne (procesy)
D. dwie pętle
Błędy w odpowiedziach mogą wynikać z mylnego odbioru diagramu. Posiadanie bloku decyzyjnego nie zawsze znaczy, że mamy pętlę, bo pętle potrzebują zarówno warunków, jak i mechanizmu powtarzania. Wydaje się, że są różne bloki, ale w rzeczywistości mamy tu dwa bloki decyzyjne i jeden operacyjny, co nie zgadza się z odpowiedzią. Na diagramie nie da się znaleźć dwóch pętli, co może sugerować, że nie do końca rozumiesz strukturę algorytmu. Często w takich analizach ludzie mylą bloki decyzyjne z pętlami, co jest błędne, bo pętle są bardziej złożonymi strukturami. Jak się programuje, ważne jest, żeby dobrze rozróżniać te elementy, bo to wpływa na jakość algorytmu. Mnie osobiście pomogło to w pisaniu lepszego kodu, dlatego warto poświęcić chwilę na zrozumienie różnic między tymi pojęciami.

Pytanie 20

Która funkcja SQL NIE przyjmuje żadnych argumentów?

A.
NOW()
B.
UPPER()
C.
LEN()
D.
YEAR()
Pozostałe funkcje BEZ argumentu nie mają sensu - muszą coś dostać do przetworzenia. UPPER() potrzebuje tekstu, by zamienić go na wielkie litery. LEN() potrzebuje tekstu, by policzyć znaki. YEAR() potrzebuje daty, by wyciągnąć z niej rok. Pusty nawias akceptuje tylko NOW().

Pytanie 21

W skrypcie JavaScript operatory: ||, && są klasyfikowane jako operatorzy

A. arytmetyczne
B. logicznymi
C. bitowe
D. przypisania
Operatory || (OR logiczny) oraz && (AND logiczny) w języku JavaScript należą do grupy operatorów logicznych. Używają ich programiści do prowadzenia operacji na wartościach boolowskich (true/false), co jest kluczowe w tworzeniu warunków w instrukcjach warunkowych i pętlach. Operator && zwraca true, jeśli obie jego operandy są prawdziwe, natomiast operator || zwraca true, gdy przynajmniej jedna z operand jest prawdziwa. Przykładem praktycznego zastosowania operatora && może być sprawdzanie, czy użytkownik jest zalogowany i ma odpowiednie uprawnienia do wykonania danej operacji. Z kolei operator || może być użyty do wyświetlenia komunikatu, jeśli użytkownik nie podał danych, bądź podał niewłaściwe wartości. Dobrze jest stosować te operatory w kontekście logiki programowania, co pozwala na tworzenie bardziej złożonych, ale jednocześnie czytelnych i efektywnych warunków. Warto również pamiętać, aby w kodzie unikać zbyt skomplikowanych warunków, co może prowadzić do trudności w utrzymaniu kodu oraz zwiększać ryzyko błędów.

Pytanie 22

W języku PHP symbol "//" oznacza

A. operator dzielenia całkowitego
B. operator alernatywy
C. początek skryptu
D. początek komentarza jednoliniowego
W PHP znak "//" oznacza początek komentarza jednoliniowego. Komentarze są niezwykle ważnym elementem kodu, ponieważ pozwalają programistom na dodawanie objaśnień i notatek, które nie są wykonywane przez interpreter. Dzięki temu kod staje się bardziej czytelny i łatwiejszy w utrzymaniu, zwłaszcza w projektach zespołowych czy przy dłuższych skryptach. Na przykład, można użyć komentarza, aby wyjaśnić, jak działa dana funkcjonalność lub dlaczego podjęto określoną decyzję projektową. Ponadto, stosowanie komentarzy zgodnie z dobrymi praktykami zwiększa jakość dokumentacji projektu oraz ułatwia przyszłym programistom (lub samemu autorowi) zrozumienie logiki kodu. Warto również zauważyć, że w PHP istnieją inne sposoby komentowania, takie jak "#" dla komentarzy jednoliniowych oraz "/* ... */" dla komentarzy wieloliniowych. Użycie komentarzy w kodzie źródłowym jest istotnym aspektem programowania, promującym najlepsze praktyki związane z czytelnością i zarządzaniem projektami.

Pytanie 23

Po przeprowadzeniu walidacji dokumentu HTML pojawił się błąd przedstawiony na zrzucie. Jak można go usunąć?

Ilustracja do pytania
A. w znaczniku img zmienić nazwę atrybutu src na href
B. dodać atrybut alt do grafiki
C. w znaczniku img zmienić nazwę atrybutu src na alt
D. zmienić zapis </h1> na <h1>
Atrybut alt w znaczniku img jest kluczowym elementem poprawnego i dostępnego kodu HTML. Służy on do dostarczenia tekstowego opisu zawartości obrazu co jest niezwykle ważne dla osób korzystających z technologii asystujących takich jak czytniki ekranu. Dodanie atrybutu alt poprawia również indeksowanie strony przez wyszukiwarki internetowe co wpływa na SEO. Zgodnie z wytycznymi W3C oraz WCAG każda grafika powinna posiadać ten atrybut aby zapewnić dostępność treści. Przykładowo jeśli obraz przedstawia logo firmy alt powinien zawierać nazwę firmy. W przypadku obrazów dekoracyjnych atrybut alt może być pusty co sygnalizuje że obraz nie niesie istotnej informacji. Takie praktyki wspierają budowanie witryn przyjaznych i zgodnych ze standardami co jest nie tylko wymogiem prawnym w wielu jurysdykcjach ale także dobrym nawykiem programistycznym. W związku z tym dodanie atrybutu alt jest nie tylko środkiem do eliminacji błędu walidacji ale również krokiem w stronę odpowiedzialnego tworzenia treści internetowych.

Pytanie 24

W systemie baz danych sklepu znajdują się dwie tabele połączone relacją: produkty oraz oceny. Tabela oceny zawiera dowolną liczbę ocen wystawionych przez klientów dla konkretnego produktu, opisaną poprzez pola: id, ocena (pole numeryczne), produktID (klucz obcy). Aby uzyskać maksymalną ocenę dla produktu o ID wynoszącym 10, należy wykorzystać zapytanie

A. SELECT MAX(ocena) FROM oceny WHERE produktID = 10;
B. COUNT MAX SELECT ocena FROM oceny WHERE produktID = 10;
C. MAX SELECT ocena FROM oceny WHERE produktID = 10;
D. SELECT MAX COUNT(ocena) FROM oceny WHERE produktID = 10;
Odpowiedź 'SELECT MAX(ocena) FROM oceny WHERE produktID = 10;' jest poprawna, ponieważ wykorzystuje funkcję agregującą MAX, która zwraca największą wartość w danej kolumnie. W kontekście tego zapytania, funkcja MAX jest stosowana do kolumny 'ocena' w tabeli 'oceny', a dodatkowy warunek 'WHERE produktID = 10' ogranicza wyniki do tylko tych ocen, które są związane z produktem o ID równym 10. To podejście jest zgodne z najlepszymi praktykami SQL, które zalecają korzystanie z funkcji agregujących dla wydobywania statystyk z danych. W praktyce, takie zapytania są niezwykle ważne w analizie danych, na przykład do oceny jakości produktów, co może wpłynąć na decyzje biznesowe. Dzięki umiejętności konstruowania takich zapytań, analitycy mogą w łatwy sposób uzyskać kluczowe informacje niezbędne do strategii marketingowych oraz poprawy jakości obsługi klienta.

Pytanie 25

Którym poleceniem wyświetlisz konfigurację serwera PHP (wersję PHP, system serwera, wartości zmiennych predefiniowanych)?

A.
print_r(ini_get_all());
B.
phpinfo();
C.
phpcredits();
D.
echo phpversion();
Aby zobaczyć konfigurację serwera PHP - wersję, system, rozszerzenia i zmienne predefiniowane - używa się phpinfo();. Funkcja sama buduje czytelną stronę z tymi danymi, więc nie trzeba ich zbierać ręcznie. Zapamiętaj: jedno wywołanie phpinfo() zastępuje dziesiątki osobnych sprawdzeń środowiska.

Pytanie 26

W języku CSS stworzono określony styl. Sekcja sformatowana tym stylem będzie miała obramowanie o szerokości

div {
    border: solid 2px blue;
    margin: 20px;
}
A. 2 px oraz marginesy wewnętrzne tego obramowania
B. 20 px oraz marginesy zewnętrzne tego obramowania
C. 20 px oraz marginesy wewnętrzne tego obramowania
D. 2 px oraz marginesy zewnętrzne tego obramowania
Odpowiedź 2 px oraz marginesy na zewnątrz tego obramowania jest prawidłowa ponieważ w definicji stylu CSS ustawiono właściwość border z wartością solid 2px blue co oznacza że element będzie miał obramowanie o grubości 2 pikseli z niebieskim kolorem Dodatkowo użyto właściwości margin z wartością 20px co wskazuje że element ma margines zewnętrzny o szerokości 20 pikseli na każdej stronie Właściwość margin w CSS odnosi się zawsze do przestrzeni na zewnątrz granic elementu co odróżnia ją od padding który dotyczy marginesu wewnętrznego Praktyczne zastosowanie takiego stylu można znaleźć w projektach gdzie projektant chce oddzielić elementy od siebie zachowując równomierne odstępy W ten sposób można tworzyć przejrzyste i estetyczne układy na stronach internetowych Zastosowanie border pozwala również na wizualne wyróżnienie elementów co jest często wykorzystywane w interfejsach użytkownika aby podkreślić ważne informacje Dobrą praktyką jest używanie takich stylizacji aby poprawić czytelność i funkcjonalność strony poprzez jasne rozgraniczenie sekcji oraz zapewnienie odpowiednich odstępów między nimi zgodnie z zasadami UX

Pytanie 27

Jaka wartość zostanie wypisana na standardowym wyjściu dla zamieszczonego w ramce fragmentu programu napisanego w języku C++ ?

int obliczenia( int x ){
    x %= 3;
    x++;
    return x;
}

int main( ){
    std::cout << obliczenia(32);
}
A. 2
B. 3
C. 0
D. 32
Niestety, to nie jest to. Wybranie niewłaściwej opcji oznacza, że mogłeś nie do końca zrozumieć, jak działają operatory w C++. Mamy tu funkcję 'obliczenia', która przyjmuje 32 jako wartość dla 'x'. Potem 'x' jest zmieniane przez operację modulo (x %= 3). Ta operacja daje nam resztę z dzielenia przez 3, czyli 2. Jeżeli wybrałeś opcję 2, to może umknął ci krok, w którym 'x' jest zwiększane o 1 (x++). Na końcu dostajemy 3, a to jest wynik, który funkcja zwraca. Jeśli wybrałeś opcję 32, mógłbyś błędnie założyć, że argument funkcji się nie zmienia, a tak nie jest. 'x' jest zmieniane wewnątrz funkcji. A jak wybrałeś opcję 0, to pewnie zrozumiałeś źle, jak działa operator modulo. To nie daje wyniku dzielenia, tylko resztę. Staraj się pamiętać o tych zasadach, bo są istotne w dalszym programowaniu.

Pytanie 28

W tabeli artykuly (kolumna cena) chcemy wybrać artykuły, których cena NIE mieści się w przedziale od 1000 do 1500 zł. Którego warunku WHERE należy użyć?

A.
cena BETWEEN 1000 AND 1500
B.
cena < 1000 AND cena > 1500
C.
cena NOT IN (1000, 1500)
D.
cena NOT BETWEEN 1000 AND 1500
Pozostałe warunki nie zwrócą wartości spoza przedziału. BETWEEN 1000 AND 1500 robi dokładnie odwrotność - wybiera ceny W zakresie. Zapis cena < 1000 AND cena > 1500 jest sprzeczny: użyto AND, a żadna liczba nie jest naraz mniejsza od 1000 i większa od 1500 (poprawny byłby OR). NOT IN (1000, 1500) wyklucza jedynie dwie konkretne wartości, a nie cały przedział pomiędzy nimi. Wartości spoza zakresu daje NOT BETWEEN 1000 AND 1500, dlatego to ono jest poprawne.

Pytanie 29

Jakie jest zadanie funkcji przedstawionej w języku JavaScript?

 function fun1(a, b) {
    if (a % 2 != 0) a++;
    for (n = a; n <= b; n+=2)
        document.write(n);
}
A. wypisanie wszystkich liczb z zakresu od a do b
B. zwrócenie wartości liczb parzystych od a do b
C. wypisanie liczb parzystych z zakresu od a do b
D. sprawdzenie, czy liczba a jest nieparzysta; w przypadku potwierdzenia, wypisanie jej
Odpowiedź "wypisanie liczb parzystych z przedziału od a do b" jest prawidłowa, ponieważ funkcja fun1(a, b) w języku JavaScript ma na celu wyświetlenie wszystkich liczb parzystych w zdefiniowanym zakresie. Funkcja najpierw sprawdza, czy liczba a jest nieparzysta; jeśli tak, to zwiększa ją o 1, co zapewnia, że zaczynamy od najbliższej liczby parzystej. Następnie, za pomocą pętli for, iteruje przez liczby od a do b, zwiększając n o 2 w każdej iteracji. Dzięki temu wypisujemy tylko liczby parzyste. Przykładowo, jeśli a = 3 i b = 9, to funkcja zacznie od 4 i wypisze 4, 6, i 8. Tego typu funkcje są przydatne w różnych kontekstach programistycznych, takich jak generowanie sekwencji liczb dla algorytmów matematycznych, generowanie danych testowych czy też przy pracy z interfejsami użytkownika, gdzie występują interwały liczbowe. Dobrą praktyką jest zawsze jasno określać zakres przetwarzanych danych, co ta funkcja realizuje, zapewniając, że wyniki są zgodne z oczekiwaniami użytkownika.

Pytanie 30

Które z formatowań nie jest wyrażone w języku CSS?

A. Fragment pliku strona.html:
<style>
body { background-color: yellow; }
</style>
B. Fragment pliku formatowanie.css:
body { background-color: yellow; }
C. Fragment pliku strona.html:
<body bgcolor="yellow">
D. Fragment pliku strona.html:
<body style="background-color: yellow;" >
A. A.
B. B.
C. C.
D. D.
Gratulacje, prawidłowo wybrałeś odpowiedź C. To pytanie dotyczyło zrozumienia, które formatowania nie są wyrażone w języku CSS. W CSS wykorzystuje się różnego rodzaju selektory, aby określić elementy strony, do których mają być stosowane określone style. Fragmenty A i B przedstawiają formatowanie w języku CSS. Fragment A demonstruje styl wewnątrz dokumentu HTML, co jest jednym z trzech sposobów dodawania styli CSS do dokumentu HTML. Natomiast fragment B pokazuje styl z zewnętrznego pliku CSS, co jest zgodne ze standardami i uważane za najlepszą praktykę, ponieważ pozwala na utrzymanie oddzielenia struktury i prezentacji. Fragment D również wykorzystuje CSS, ale jest to tzw. "inline CSS", który jest stosowany bezpośrednio do elementu HTML. Ostatecznie, jedynie fragment C nie używa CSS. Zamiast tego, wykorzystuje przestarzały atrybut HTML "bgcolor" do określenia koloru tła, co obecnie jest uważane za złą praktykę. Pamiętaj, że zrozumienie różnicy pomiędzy HTML a CSS jest kluczowe w budowaniu poprawnie działających i dobrze zaprojektowanych stron internetowych.

Pytanie 31

Której funkcji PHP użyć, aby NAWIĄZAĆ połączenie z serwerem bazy danych?

A.
mysqli_get_connection_stats()
B.
mysqli_fetch_row()
C.
mysqli_autocommit()
D.
mysqli_connect()
Aby PHP mogło rozmawiać z bazą, najpierw trzeba NAWIĄZAĆ połączenie - robi to mysqli_connect(host, uzytkownik, haslo, baza), np. mysqli_connect("localhost", "root", "", "sklep"). Funkcja zwraca uchwyt połączenia, którego potem używasz we wszystkich kolejnych operacjach (zapytaniach, pobieraniu wyników). To zawsze pierwszy krok pracy z bazą. Zapamiętaj nazwę: „connect” = połącz się z serwerem bazy danych.

Pytanie 32

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

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

Pytanie 33

Wskaż zapytanie, które z tabeli klienci wybierze wyłącznie nazwiska trzech najlepszych klientów, czyli takich, którzy posiadają najwięcej punktów na swoim koncie (pole całkowite punkty)?

A. SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC
B. SELECT nazwisko FROM klienci LIMIT 3
C. SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3
D. SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3
Analiza niepoprawnych odpowiedzi ujawnia szereg kluczowych błędów w interpretacji zapytania SQL. W pierwszym przypadku, 'SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC;' następuje nieprawidłowa składnia, ponieważ klauzula LIMIT powinna być umieszczona po klauzuli ORDER BY. Taki błąd sprawia, że zapytanie nie zostanie zrealizowane przez system baz danych. Kolejna odpowiedź, 'SELECT nazwisko FROM klienci LIMIT 3;', pomija istotny element sortowania, dlatego zwróci po prostu pierwsze trzy nazwiska z tabeli, bez względu na ilość punktów. Takie podejście jest mało efektywne, ponieważ nie identyfikuje najlepszych klientów na podstawie ich punktów, co jest kluczowe dla analizy jakości klientów. Ostatnia odpowiedź, 'SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3;', znów koncentruje się na sortowaniu alfabetycznym nazwisk zamiast na punktach, co nie spełnia kryteriów określonych w pytaniu. Takie błędy ukazują typowe nieporozumienia w zakresie funkcji SQL, gdzie kluczowe jest rozróżnienie pomiędzy różnymi metodami sortowania i ograniczania wyników. Istotne jest, aby w analizach danych zawsze zwracać uwagę na odpowiednie kryteria oraz zasady, które mają realny wpływ na proces podejmowania decyzji.

Pytanie 34

char str1[30] = 'Ala ma kota';
printf("%s", str1); 
Jakie jest źródło błędu w prezentowanym kodzie napisanym w języku C++?
A. Do funkcji printf przekazano za mało argumentów.
B. Napis powinien mieć dokładnie 30 znaków.
C. Napis powinien być umieszczony w cudzysłowie.
D. W funkcji printf nie można używać formatowania %s.
Stwierdzenie, że do funkcji printf przekazano zbyt mało argumentów, jest błędne, ponieważ printf w tym przypadku otrzymuje jeden argument, który jest zgodny z jego prototypem. Funkcja printf przyjmuje łańcuch formatowania jako pierwszy argument, a pozostałe argumenty, które mogą być przekazane, są opcjonalne. Ponadto, pomijanie argumentów nie skutkuje błędem w kontekście tej konkretnej funkcji. Kolejne twierdzenie, że napis powinien mieć dokładnie 30 znaków, jest również mylące. W praktyce, długość napisu nie musi odpowiadać rozmiarowi tablicy, pod warunkiem, że na końcu napisu znajduje się znak null, co jest automatycznie dołączane przez kompilator przy użyciu cudzysłowów. Wreszcie, stwierdzenie, że w funkcji printf nie można stosować formatowania %s, jest fałszywe, ponieważ %s jest standardowym formatem używanym do wyświetlania łańcuchów znaków. Właściwe użycie formatów jest kluczowe w programowaniu w C/C++, a ich znajomość jest niezbędna do prawidłowego wyświetlania danych. Typowe błędy myślowe prowadzące do tych niepoprawnych wniosków obejmują nieznajomość podstaw języków C/C++ oraz niewłaściwe rozumienie zasad dotyczących łańcuchów i formatów w funkcjach wyjściowych.

Pytanie 35

Które z poniższych twierdzeń najlepiej opisuje klasę Owoc zdefiniowaną w PHP i przedstawioną w kodzie?

class Owoc {
  public $nazwa;
  private $kolor;
  function set_nazwa($nazwa) {
    $this->nazwa = $nazwa;
  }
}
A. Zawiera jedno pole oraz dwie metody, przy czym jedna z metod ma zakres prywatny
B. Zawiera dwa pola oraz jedną metodę, pole kolor ma widoczność ograniczoną jedynie do metod klasy
C. Zawiera dwa pola oraz jedną metodę, pole nazwa ma widoczność ograniczoną tylko do metod klasy
D. Zawiera dwa pola oraz jeden konstruktor, oba pola mają widoczność ograniczoną tylko do metod klasy
Klasa Owoc w języku PHP jest zdefiniowana z dwoma polami: publicznym $nazwa i prywatnym $kolor. Odpowiedź wskazująca, że pole kolor ma ograniczony dostęp tylko do metod klasy, jest prawidłowa, ponieważ zastosowanie modyfikatora private oznacza, że pole to jest dostępne wyłącznie wewnątrz klasy. Jest to dobra praktyka projektowania, gdzie prywatne pola chronią integralność danych, umożliwiając dostęp i modyfikację tylko za pośrednictwem metod klasy. W tym przypadku, metoda set_nazwa pozwala na ustawienie wartości dla pola $nazwa, ale nie ma bezpośredniej metody dla $kolor, co jest celową strategią, aby zapewnić kontrolę nad dostępem do tego pola. W praktyce, pole $kolor mogłoby być wykorzystywane do przechowywania informacji, które nie powinny być zmieniane zewnętrznie, a jedynie konfigurowane wewnątrz klasy lub podczas jej inicjalizacji. Taki układ sprzyja enkapsulacji, jednym z filarów programowania obiektowego, promując bezpieczeństwo danych i modularność kodu. W projektach komercyjnych zaleca się również dodanie metod get i set dla prywatnych zmiennych, aby zachować elastyczność i kontrolę nad danymi.

Pytanie 36

W zaprezentowanym fragmencie algorytmu użyto

Ilustracja do pytania
A. dwie pętle.
B. jedną pętlę.
C. jeden blok decyzyjny.
D. trzy bloki operacyjne (procesy).
Niepoprawne odpowiedzi wynikają z błędnego zrozumienia struktury algorytmu. Opcja dotycząca dwóch pętli zakłada istnienie dwóch niezależnych cykli co nie znajduje potwierdzenia w przedstawionym schemacie. Taki błąd może wynikać z nieumiejętności rozróżniania złożonych konstrukcji czy mylenia pętli z blokami decyzyjnymi. Jedna pętla oznacza jedną sekwencję powtarzającą się co jest wyraźnie zilustrowane przez powrót strzałki w schemacie. Odpowiedź sugerująca jeden blok decyzyjny nie uwzględnia faktu że blok decyzyjny jest częścią struktury warunkowej a nie pętli. Decyzje wpływają na przepływ sterowania ale nie tworzą same w sobie powtarzającej się sekwencji. Trzy bloki operacyjne odnoszą się do liczby operacji w algorytmie lecz nie implikują pętli. Bloki operacyjne wykonują konkretne zadania jak obliczenia czy przypisania ale nie zmieniają struktury iteracyjnej. Zrozumienie roli każdego z tych elementów jest kluczowe w analizie algorytmów i projektowaniu efektywnego kodu.

Pytanie 37

Jakie wyrażenie logiczne w języku PHP weryfikuje, czy zmienna1 znajduje się w jednostronnie domkniętym przedziale <-5, 10)?

A. $zmienna1 >= -5 || $zmienna1 < 10
B. $zmienna1 <= -5 || $zmienna1 < 10
C. $zmienna1 >= -5 && $zmienna1 < 10
D. $zmienna1 <= -5 && $zmienna1 < 10
W analizowanych odpowiedziach pojawia się kilka błędnych koncepcji związanych z użyciem operatorów logicznych oraz interpretacją przedziałów. W przypadku wyrażenia $zmienna1 >= -5 || $zmienna1 < 10, zastosowanie operatora || (OR) prowadzi do sytuacji, w której warunki są połączone w sposób, który nie spełnia wymagań jednostronnie domkniętego przedziału. W praktyce oznacza to, że jeśli zmienna1 jest mniejsza od 10, ale większa od -5, cały warunek zwraca prawdę, co jest niezgodne z zamierzonym przedziałem. Podobny błąd występuje w wyrażeniu $zmienna1 <= -5 || $zmienna1 < 10, gdzie również użycie operatora OR skutkuje tym, że przedział nie jest odpowiednio ograniczony. Ostatnie wyrażenie $zmienna1 <= -5 && $zmienna1 < 10 zawiera dodatkowo błąd związany z interpretacją granicy -5, które nie powinno być włączone w przedział domknięty. Takie błędne rozumienie prowadzi do nieprawidłowego przechwytywania wartości zmiennej, co jest szczególnie istotne w kontekście programowania w PHP, gdzie precyzyjne określenie warunków jest kluczowe dla zapewnienia poprawności działania aplikacji. Zrozumienie różnicy między jednostronnie domkniętym a domkniętym przedziałem jest fundamentem w programowaniu i pozwala uniknąć typowych pułapek podczas implementacji logiki aplikacji. Warto także regularnie przeglądać dokumentację oraz standardy dotyczące operatorskich konstrukcji w PHP, aby utrzymać wysoką jakość kodu.

Pytanie 38

Przedstawiona w języku C++ definicja typu wyliczeniowego sprawi, że enumerator CZWARTEK będzie równy

enum dni {PONIEDZIALEK = 1, WTOREK, SRODA, CZWARTEK, PIATEK, SOBOTA, NIEDZIELA};
A. napisowi "CZWARTEK"
B. napisowi 'CZWARTEK'
C. liczbie 1
D. liczbie 4
Definicja typu wyliczeniowego (enum) w języku C++ jest używana do tworzenia zestawu nazwanych stałych, co zwiększa czytelność i organizację kodu. W przypadku podanej definicji enum dni {PONIEDZIALEK = 1, WTOREK, SRODA, CZWARTEK, PIATEK, SOBOTA, NIEDZIELA};, każdy element enumeracji automatycznie przyjmuje wartość całkowitą, zaczynając od podanej wartości dla pierwszego elementu, czyli PONIEDZIALEK = 1. Kolejne elementy, WTOREK, SRODA i CZWARTEK, przyjmują wartości 2, 3 i 4 odpowiednio. Tak więc CZWARTEK, będący czwartym elementem listy, ma przypisaną wartość 4. W praktyce, takie zdefiniowanie dni tygodnia jako enum pozwala na łatwe i zrozumiałe odwoływanie się do dni w kodzie, co ułatwia jego konserwację oraz eliminację błędów. Przy implementacji programów, w których operuje się na dniach tygodnia, korzystanie z typów wyliczeniowych jest powszechną praktyką i jest zgodne ze standardami kodowania, które promują użycie czytelnych i zrozumiałych nazw dla wartości.

Pytanie 39

Jak sprawdzić spójność danych w tabeli bazy MySQL?

A.
mysql
B.
mysqldump
C.
CHECK TABLE
D.
REPAIR TABLE
Spójność danych w tabeli MySQL sprawdza polecenie CHECK TABLE - analizuje tabelę pod kątem błędów i uszkodzeń, nie modyfikując jej. Naprawę wykonuje się dopiero osobno, gdy problem zostanie wykryty. Dlatego do sprawdzenia spójności służy CHECK TABLE.

Pytanie 40

Funkcję Clean Project środowiska IDE stosuje się do

A. usuwania całego projektu.
B. usuwania wyników kompilacji projektu.
C. kompilowania projektu, gdy pliki źródłowe zostały zmienione.
D. debugowania skompilowanego i uruchomionego projektu.
Poprawnie – funkcja „Clean Project” w typowym IDE służy właśnie do usuwania wyników kompilacji, czyli wszystkich plików pośrednich i końcowych wygenerowanych podczas builda. Chodzi o katalogi typu bin, obj, target, build, różne *.class, *.o, *.exe tworzone automatycznie przez kompilator i linker. IDE po wywołaniu „Clean” nie rusza Twoich plików źródłowych, projektów, konfiguracji czy bibliotek w repozytorium – usuwa tylko artefakty budowania. Po co to się robi? Głównie po to, żeby wymusić tzw. „czystą kompilację” (clean build). Przydaje się to, gdy: zmieniłeś konfigurację projektu lub środowiska, dodałeś/zmieniłeś biblioteki, zmieniła się wersja kompilatora lub pluginów, a projekt zaczyna zachowywać się dziwnie, mimo że kod wygląda OK. Z mojego doświadczenia, w dużych projektach webowych (np. aplikacje w PHP z kompilowanym frontendem, czy Java/JavaScript z bundlerami) „Clean” pomaga pozbyć się starych, zcache’owanych plików, które potrafią powodować bardzo mylące błędy: IDE widzi jedno, a uruchamia się coś innego. Dobrą praktyką jest robienie pełnego „Clean & Build” przed wypuszczeniem wersji na produkcję albo przed puszczeniem testów integracyjnych, żeby mieć pewność, że wszystko zostało zbudowane od zera na podstawie aktualnego kodu. W wielu narzędziach CI/CD analogiczną rolę spełnia usuwanie katalogu build/ lub target/ przed kompilacją. W skrócie: Clean nie jest operacją destrukcyjną dla projektu, tylko porządkuje środowisko kompilacji i usuwa „śmieci” po poprzednich buildach, co wpisuje się w standardowe dobre praktyki pracy z kodem.