Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Rozpoczęcie: 7 czerwca 2026 23:17
Zakończenie: 7 czerwca 2026 23:26
Egzamin zdany!
Wynik: 40/40 punktów (100,0%)
Wymagane minimum: 20 punktów (50%)
Twój wynik na tle innych
Twój wynik jest lepszy niż 99% podejść do kwalifikacji INF.03.
Porównanie z 39483 zakończonymi podejściami do tej kwalifikacji (dane zbiorcze, bez wyników indywidualnych).
Poprawa! Poprzednio 97,5%, teraz 100,0% (+2,5 p.p.).
Zachowaj ten wynik na koncie
Załóż darmowe konto albo zaloguj się - ten egzamin przypiszemy do Twojego konta, więc wrócisz do swoich błędów, będziesz śledzić postęp i dostaniesz powtórki dobrane do Twoich odpowiedzi.
Czynnością zalecaną przed wykonaniem kopii zapasowej bazy danych MySQL jest:
A. sprawdzenie, czy baza jest dostatecznie wydajna
B. zdefiniowanie systemu kodowania znaków w bazie
C. nadanie administratorowi uprawnień do przeglądania bazy
D. sprawdzenie integralności bazy i ewentualna jej naprawa
Kopia zapasowa ma sens tylko, gdy zapisuje sprawne dane. Jeśli baza jest uszkodzona, backup utrwali błędy i przy odtwarzaniu odzyskamy wadliwy stan. Dlatego przed wykonaniem kopii zaleca się sprawdzenie integralności bazy (np. CHECKTABLE) i ewentualną naprawę (REPAIRTABLE). Dopiero zdrową bazę warto archiwizować. Dlatego poprawne jest sprawdzenie integralności i ewentualna naprawa.
Pytanie 2
Jakie kolory wchodzą w skład modelu barw CMYK?
A. czerwony, zielony i niebieski
B. cyjan, magenta, żółty i czarny
C. cyjan, magenta, żółty i karmazyn
D. czerwony, zielony, niebieski i kanał alfa
Model CMYK tworzą cztery składowe: cyan (niebieskozielony), magenta (purpurowy), yellow (żółty) i black (czarny, oznaczany K). Stosuje się go w druku. Dlatego CMYK to cyjan, magenta, żółty i czarny.
Pytanie 3
Który z formatów plików dźwiękowych zapewnia największą redukcję rozmiaru pliku?
A. WAV
B. PCM
C. MP3
D. CD-Audio
MP3 to format z kompresją stratną - odrzuca dźwięki słabo słyszalne dla ucha, dzięki czemu plik jest wielokrotnie mniejszy od zapisu nieskompresowanego, przy akceptowalnej jakości. To dlatego zdominował przechowywanie i przesyłanie muzyki. Pozostałe wymienione formaty są zasadniczo nieskompresowane, więc zajmują dużo miejsca. Stopień kompresji MP3 reguluje przepływność (bitrate). Dlatego największą redukcję rozmiaru daje MP3.
Pytanie 4
Którego polecenia użyć, aby włączyć do skryptu zawartość pliku egzamin.php z kodem PHP?
A.
fgets("egzamin.php");
B.
fopen("egzamin.php");
C.
getfile("egzamin.php");
D.
include("egzamin.php");
Aby włączyć do skryptu zawartość innego pliku z kodem PHP, używa się include("egzamin.php"); - PHP wykona dołączony kod w miejscu wywołania. Dlatego poprawne jest include("egzamin.php");.
Pytanie 5
W hurtowni utworzono tabelę sprzedaż, która zawiera pola: id, kontrahent, grupa_cenowa oraz obrot. Jakie polecenie należy wykorzystać, aby znaleźć tylko kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000 zł?
A. SELECT sprzedaz FROM kontrahent WHERE obrot>4000
B. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 OR obrot>4000
C. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 AND obrot>4000
D. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa=2 AND obrot>4000
Aby skutecznie wyszukać kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000 zł, należy zastosować odpowiednie zapytanie SQL. W tym przypadku, kluczowe jest zrozumienie użycia klauzul WHERE, które filtrują wyniki na podstawie określonych warunków. Poprawne zapytanie to 'SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 AND obrot>4000;'. W tym zapytaniu wybieramy kolumnę kontrahent z tabeli sprzedaz, filtrując wyniki na podstawie dwóch warunków: przynależności do drugiej grupy cenowej oraz obrotu większego niż 4000 zł. Operator AND jest istotny, ponieważ oba warunki muszą być spełnione, aby dany rekord został zwrócony. Takie podejście jest zgodne z zasadami normalizacji baz danych, co pozwala na zachowanie integralności danych i efektywność zapytań. Przykładem może być sytuacja, w której w tabeli znajdują się kontrahenci o różnych grupach cenowych i obrotach; zastosowanie powyższego zapytania pozwoli nam na wyselekcjonowanie tylko tych kontrahentów, którzy spełniają oba kryteria, co jest niezwykle przydatne w analizie sprzedaży i podejmowaniu decyzji biznesowych.
Pytanie 6
W dołączonym fragmencie kodu CSS kolor został przedstawiony w formie
A. szesnastkowej
B. dziesiętnej
C. CMYK
D. HSL
Kolor zapisany w postaci szesnastkowej w CSS to popularny sposób definiowania barw na stronach internetowych. Szesnastkowy format koloru wykorzystuje sześć znaków, które są kombinacją cyfr oraz liter od A do F, poprzedzone znakiem hash (#). Każda para znaków reprezentuje wartość jednego z trzech podstawowych kolorów RGB: czerwonego, zielonego i niebieskiego. Na przykład kolor #008000 składa się z czerwonego o wartości 00, zielonego o wartości 80 i niebieskiego o wartości 00. Szesnastkowy zapis jest preferowany ze względu na swoją kompaktowość i zgodność ze standardami sieciowymi. W praktyce, projektanci często używają narzędzi do konwersji kolorów, aby uzyskać pożądane odcienie, co ułatwia zastosowanie odpowiednich wartości szesnastkowych w kodzie. Format ten pozwala także na tworzenie skróconych wersji, jak #FFF dla bieli. Jego użycie jest powszechne i dobrze zrozumiałe w branży, co czyni go uniwersalnym wyborem w projektach webowych.
Pytanie 7
W CSS zapis w formie: p{background-image: url"rysunek.jpg")} spowoduje, że rysunek.png stanie się
A. tłem całej witryny
B. tłem każdego bloku tekstowego
C. wyświetlany obok każdego bloku tekstowego
D. pokazany, jeśli w kodzie użyty będzie znacznik img
Zapis p{background-image: url('rysunek.jpg')} oznacza, że każdy <p>, czyli paragraf, dostanie jako tło obrazek o nazwie rysunek.jpg. To jest po prostu sposób, żeby nadać każdyemu paragrafowi ten sam wygląd. Działa to świetnie, gdy chcesz, żeby cały tekst miał spójny styl czy dodać coś wizualnego do treści. Ważne, żeby ten plik rysunek.jpg był w dobrym miejscu, bo jak go nie znajdziesz, to przeglądarka go nie wczyta. Można to wykorzystać, żeby strona wyglądała bardziej estetycznie i przyciągała wzrok – każdy paragraf z własnym tłem na pewno sprawi, że będzie się lepiej czytało. Możesz też bawić się dodatkowymi właściwościami w CSS, jak background-repeat czy background-size, bo to otwiera drzwi do jeszcze ciekawszych efektów wizualnych.
Pytanie 8
Kanał alfa jest wykorzystywany do określenia
A. jasności oraz kontrastu kolorów
B. przezroczystości obiektu graficznego
C. wybranego fragmentu obiektu graficznego
D. podstawowych właściwości obiektu graficznego
Kanał alfa to bardzo ważny element w grafice komputerowej, który odpowiada za to, jak przezroczyste są różne obiekty graficzne. W systemach kolorów, jak RGBA, kanał alfa jest dodatkowym składnikiem obok kolorów czerwonego, zielonego i niebieskiego. Dzięki niemu możemy określić, jak przezroczysty jest dany piksel. Wartości kanału alfa wahają się od 0, co oznacza całkowitą przezroczystość, do 255, co daje pełną nieprzezroczystość. Przykładem użycia kanału alfa są aplikacje graficzne, takie jak Photoshop czy GIMP, gdzie można na przykład zmieniać przezroczystość warstw. Te technologie, jak OpenGL czy DirectX, też korzystają z kanału alfa, żeby renderować obiekty w 3D. To wszystko sprawia, że obrazy i sceny stają się bardziej realistyczne, a efekty wizualne, takie jak cienie czy odbicia, wyglądają znacznie lepiej.
Pytanie 9
Użytkownik podał adres nieistniejącego zasobu na serwerze. Jaki błąd HTTP zostanie zwrócony?
A. 400
B. 404
C. 500
D. 503
Gdy serwer nie znajduje zasobu pod podanym adresem, zwraca kod HTTP 404 (Not Found). Należy on do klasy 4xx, czyli błędów po stronie klienta - tu chodzi o żądanie nieistniejącej strony lub pliku. Dlatego serwer zwróci 404.
Pytanie 10
Witryna internetowa powinna mieć zaprezentowaną strukturę bloków. Aby osiągnąć ten układ, należy przypisać sekcjom odpowiednie właściwości w następujący sposób:
A. float wyłącznie dla bloku 5; clear dla bloku 2
B. float tylko dla bloków: 3, 4; clear dla bloku 5
C. float tylko dla bloku 2; clear dla bloków: 3, 4
D. float tylko dla bloków: 2, 3, 4; clear dla bloku 5
Żeby osiągnąć układ, który widzisz w pytaniu, musisz dobrze zrozumieć, jak działają właściwości CSS float i clear. Właściwość float umożliwia przesunięcie elementów w lewo lub w prawo w stosunku do ich kontenera oraz innych elementów. To jest przydatne do tworzenia układów kolumnowych. W tym przypadku bloki 2, 3 i 4 muszą być przesunięte w prawo, żeby ułożyły się obok siebie na poziomie. Blok 2 jest największy i pełni rolę ramki dla pozostałych bloków. Użycie float dla tych bloków daje oczekiwany efekt. Jednak żeby blok 5 znalazł się pod całą strukturą, musisz zastosować clear dla bloku 5. Dzięki temu clear, blok 5 nie będzie otoczony przez inne elementy z float i znajdzie się poniżej. Z mojego doświadczenia, praktyczne wykorzystanie float i clear jest świetne, bo pozwala na tworzenie responsywnych układów bez potrzeby sięgania po bardziej skomplikowane metody jak flexbox czy grid. Choć float nie jest już tak powszechnie stosowany w profesjonalnych projektach, dobrze jest znać jego działanie i ograniczenia, żeby lepiej rozumieć ewolucję CSS oraz móc pracować z kodem, który jeszcze wykorzystuje te klasyczne metody.
Pytanie 11
Które polecenie usunie z tabeli artykuly wiersze, gdzie pole tresc zawiera „sto” w dowolnym miejscu?
A.
DELETEFROMartykulyWHEREtresc="%sto%";
B.
DELETE*FROMartykulyWHEREtresc="%sto%";
C.
DELETEFROMartykulyWHEREtrescLIKE"%sto%";
D.
DELETE*FROMartykulyWHEREtrescLIKE"%sto%";
Dopasowanie fragmentu tekstu wymaga operatora LIKE i znaku %. DELETEFROMartykulyWHEREtrescLIKE"%sto%"; usunie wiersze, w których pole tresc zawiera „sto” w dowolnym miejscu. Dlatego poprawne jest DELETEFROMartykulyWHEREtrescLIKE"%sto%";.
Pytanie 12
Ile razy należy użyć instrukcji warunkowej, aby wdrożyć w danym języku programowania przedstawiony algorytm?
A. Jednokrotnie
B. Dwukrotnie
C. Trzykrotnie
D. Czterokrotnie
Aby prawidłowo zaimplementować algorytm przedstawiony na diagramie, musisz zrozumieć jego strukturę. Diagram pokazuje dwa punkty decyzyjne, co wskazuje na konieczność użycia dwóch instrukcji warunkowych w kodzie. Każda instrukcja warunkowa odpowiada jednemu z tych punktów decyzyjnych. W praktyce, instrukcje warunkowe są kluczowe w programowaniu, pozwalając na podejmowanie decyzji i wykonywanie różnych działań w zależności od spełnienia określonych warunków. Można to zobrazować za pomocą języków programowania takich jak Python czy C++, gdzie 'if', 'else if' oraz 'else' są standardowymi konstrukcjami używanymi do tego celu. Warto zauważyć, że implementując algorytm, należy również zwrócić uwagę na poprawne użycie bloków kodu zagnieżdżonych w instrukcjach warunkowych, co jest dobrą praktyką programistyczną. Dzięki temu kod jest bardziej czytelny i łatwiejszy w utrzymaniu, co jest zgodne z zasadami czystego kodu i standardami branżowymi.
Pytanie 13
Co oznacza zapis w obiekcie w języku JavaScript?
x = przedmiot.nazwa();
A. zmienna x będzie przechowywać rezultat działania funkcji przedmiot
B. nazwa jest atrybutem klasy przedmiot
C. nazwa jest cechą obiektu przedmiot
D. zmienna x będzie przechowywać wynik działania metody nazwa
W języku JavaScript wyrażenie przedmiot.nazwa() oznacza wywołanie metody nazwa na obiekcie przedmiot. Wynik tego wywołania jest przypisywany do zmiennej x. Metody są funkcjami zdefiniowanymi wewnątrz obiektu które mogą wykorzystywać jego dane. Przy wywołaniu metody używamy operatora kropki do dostępu do konkretnej funkcji w obiekcie. Taki zapis jest powszechnie stosowany w programowaniu obiektowym i pozwala na wykonywanie operacji zdefiniowanych w kontekście danego obiektu. Dobre praktyki zalecają aby nazewnictwo metod było opisowe co ułatwia rozumienie kodu i jego utrzymanie przez innych programistów. Przykładem może być obiekt samochód mający metodę uruchom która po wywołaniu realizuje logikę uruchomienia samochodu. Warto również zwrócić uwagę na aspekt asynchroniczności który w JavaScript ma duże znaczenie zwłaszcza przy operacjach sieciowych gdzie często stosuje się metody zwracające obietnice. Dzięki temu zapis x = przedmiot.nazwa() jest podstawowym przykładem zastosowania programowania obiektowego w praktyce
Pytanie 14
Grafika powinna być zapisana w formacie GIF, jeśli
A. jest to obraz w technologii stereoskopowej
B. istnieje potrzeba zapisu obrazu w formie bez kompresji
C. konieczne jest zapisanie obrazu lub animacji
D. jest to grafika wektorowa
Format GIF (Graphics Interchange Format) jest powszechnie wykorzystywany do przechowywania obrazów oraz animacji. Dzięki obsłudze przezroczystości oraz możliwości tworzenia prostych animacji, GIF stał się standardem w przypadku grafiki na stronach internetowych. Jego ograniczenie do 256 kolorów sprawia, że idealnie nadaje się do prostych grafik, takich jak logo czy ikony, gdzie nie jest wymagana pełna gama kolorów, co ma miejsce w formatach takich jak JPEG czy PNG. W przypadku animacji, GIF umożliwia zapis wielu klatek w jednym pliku, co pozwala na odtwarzanie sekwencji obrazu bez potrzeby korzystania z dodatkowego oprogramowania. Praktyczne zastosowanie GIF-a można zaobserwować w mediach społecznościowych, gdzie animowane obrazki są często wykorzystywane do wyrażania emocji, a także na stronach internetowych do przedstawiania logo w ruchu. Używanie formatu GIF w kontekście animacji jest zgodne z dobrą praktyką w branży, ponieważ pozwala na efektywne zarządzanie zasobami wizualnymi oraz zwiększa atrakcyjność treści wizualnych.
Pytanie 15
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. 3 razy
D. 2 razy
W przedstawionym kodzie JavaScript, pętla do-while wykonuje się do momentu, gdy zmienna x nie jest równa 27. Zaczynając od wartości x równej 1, przy każdym przejściu przez pętlę zmienna x jest mnożona przez 3. Kolejno, x przyjmuje wartości: 3, 9, 27. Zatem pętla wykonuje się trzy razy, ponieważ dopiero po trzecim cyklu x osiąga wartość 27, co powoduje zakończenie pętli. Do-while zawsze wykonuje przynajmniej jedno przejście, niezależnie od warunku końcowego, dzięki czemu jest przydatna w sytuacjach, gdy operacja musi być przeprowadzona co najmniej raz. Dobrym przykładem wykorzystania tego mechanizmu jest oczekiwanie na spełnienie określonego warunku, np. uzyskanie poprawnej odpowiedzi od użytkownika. Warto zwrócić uwagę, że w przypadku operacji matematycznych wymagających określonej liczby iteracji, pętla do-while zapewnia prostotę i przejrzystość implementacji, zgodnie z dobrymi praktykami zapewniającymi łatwość w czytaniu i utrzymaniu kodu.
Pytanie 16
Tablica tab[] jest wypełniona losowymi liczbami całkowitymi. Jaka będzie wartość zmiennej zm2 po wykonaniu poniższego fragmentu kodu?
int tab[10]; int zm1 = 0; double zm2 = 0; … for (int i=0; i < 10; i++) { zm1 = zm1 + tab[i]; } zm2 = zm1 / 10;
A. Suma elementów z tablicy
B. Średnia arytmetyczna liczb z tablicy
C. Średnia geometryczna liczb od 0 do 9
D. Suma liczb od 1 do 10
W tym kodzie fajnie widać, jak oblicza się średnią arytmetyczną z liczb w tablicy tab[]. Na początku ustawiamy zmienne zm1 i zm2 na 0, co jest spoko, bo potem w pętli for dodajemy wszystkie liczby z tablicy do zm1. Gdy pętla się kończy, zm1 zbiera całą sumę liczb, a żeby dostać średnią, dzielimy ją przez 10, bo tyle mamy elementów. Wynik przypisujemy do zm2. To bardzo przydatny proces w programowaniu – średnie są często używane w analizie danych czy obliczeniach wyników. Pamiętaj jednak, żeby nie zapomnieć o możliwych błędach dzielenia przez zero. Dobrze jest sprawdzić, czy tablica nie jest pusta, aby uniknąć kłopotów. I jeszcze jedna rzecz – używanie typu double dla zmiennej zm2 to dobry pomysł, żeby średnia była dokładna, zwłaszcza gdy mowa o liczbach, które nie są całkowite. To wszystko jest zgodne z dobrymi praktykami w IT.
Pytanie 17
W systemie baz danych hurtowni utworzono tabelę sprzedaz z polami: id, kontrahent, grupa_cenowa, obrot. Jakie polecenie należy zastosować, aby znaleźć jedynie kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000zł?
A. SELECT sprzedaz FROM kontrahent WHERE obrot > 4000
B. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa = 2 AND obrot > 4000
C. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 OR obrot > 4000
D. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000
Poprawna odpowiedź to 'SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000;'. To polecenie SQL precyzyjnie spełnia wymagania postawione w pytaniu, ponieważ korzysta z operatora AND do jednoczesnego filtrowania kontrahentów w drugiej grupie cenowej oraz tych, których obrót przekracza 4000 zł. W praktyce, takie zapytanie jest niezwykle użyteczne w analizie danych w hurtowniach, umożliwiając wyodrębnienie tylko tych kontrahentów, którzy spełniają oba warunki, co jest kluczowe w procesach selekcji kontrahentów do dalszych działań marketingowych czy analizy rentowności. Warto zauważyć, że dobrym nawykiem jest dokładne określenie, które pola chcemy wyświetlić, a w tym przypadku 'kontrahent' wskazuje na konkretne dane, które są istotne dla analizy. Dodatkowo, stosowanie odpowiednich warunków w zapytaniach SQL jest zgodne z najlepszymi praktykami w zakresie optymalizacji wydajności bazy danych, ponieważ pozwala na minimalizację ilości przetwarzanych danych oraz zwiększa przejrzystość wyników.
Pytanie 18
Aby usunąć z nagrania szmery i zakłócenia tła, należy zastosować efekt:
A. redukcji szumów
B. normalizacji
C. pogłosu (reverb)
D. zmiany wysokości dźwięku
Redukcja (usuwanie) szumów to obróbka, która analizuje stałe, niepożądane tło - szum, przydźwięk, syk - i wycisza je, pozostawiając właściwy sygnał. W edytorach audio zwykle pobiera się próbkę samego szumu, a program odejmuje go z całego nagrania. Dlatego do usunięcia szmerów i zakłóceń tła służy efekt redukcji szumów.
Pytanie 19
Po wykonaniu przedstawionego kodu PHP, w zmiennej $napis zostaje zapisany ciąg znaków.
$napis = "Programowanie w PHP"; $napis = substr($napis, 3, 5);
A. gramo
B. og
C. ogram
D. gr
W podanym kodzie PHP używana jest funkcja substr() która służy do wycinania fragmentu ciągu znaków. W tym przypadku mamy ciąg znaków 'Programowanie w PHP'. Funkcja substr() przyjmuje trzy argumenty: pierwszy to ciąg znaków drugi to pozycja startowa trzecia to długość wycinka. Pozycje w ciągu znaków w PHP zaczynają się od zera dlatego pozycja startowa 3 oznacza czwarty znak w ciągu co w przypadku 'Programowanie w PHP' odpowiada literze 'g'. Trzeci argument 5 oznacza że wycinamy pięć znaków zaczynając od pozycji 3. Stąd funkcja zwróci napis 'gramo'. Znajomość funkcji substr() jest przydatna w różnych sytuacjach na przykład podczas formatowania danych wejściowych lub wyodrębniania części łańcucha takich jak numery telefonów czy kody pocztowe. Ważne jest aby pamiętać że indeksowanie zaczyna się od zera co jest kluczowe przy używaniu tej funkcji. Dobre praktyki w programowaniu zalecają również traktowanie długości wycinka jako parametru opcjonalnego co umożliwia wycięcie do końca łańcucha.
Pytanie 20
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. opcji udostępnienia bazy danych
C. poprawności składni zapytań
D. spójności 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 21
W przypadku przedstawionego fragmentu kodu walidator HTML zgłosi błąd, ponieważ
<img src="kwiat.jpg alt="kwiat">
A. nie zamknięto cudzysłowu
B. nie odnaleziono pliku kwiat.jpg
C. użyto niewłaściwego znacznika do wyświetlenia obrazu
D. wprowadzono nieznany atrybut alt
Poprawna odpowiedź to nie domknięto cudzysłowu ponieważ w kodzie HTML atrybuty muszą być poprawnie zamknięte aby poprawnie interpretować ich wartości. W przedstawionym fragmencie kodu dla znacznika img brakuje końcowego cudzysłowu po wartości src co stanowi błąd składniowy. Tego typu błędy mogą prowadzić do nieprawidłowego działania strony ponieważ przeglądarka nie jest w stanie jednoznacznie określić końca wartości atrybutu co może skutkować nieprawidłowym renderowaniem danych. Zgodnie z najlepszymi praktykami każde otwarte cudzysłowie powinno być zamknięte aby zapewnić poprawną interpretację kodu. Ponadto stosowanie poprawnego zamykania cudzysłowów zwiększa czytelność kodu co jest istotne przy współpracy zespołowej i ułatwia jego utrzymanie. Warto także korzystać z walidatorów HTML które automatycznie wykrywają takie błędy pomagając w ich szybkim usunięciu. Tego rodzaju narzędzia są kluczowe w procesie tworzenia stron internetowych ponieważ umożliwiają weryfikację zgodności kodu z obowiązującymi standardami co ma bezpośredni wpływ na jego wydajność i kompatybilność z różnymi przeglądarkami.
Pytanie 22
Tworząc tabelę produkty, dla pola „cena” (kwota z groszami) najlepszy typ danych to:
A.
ENUM
B.
DECIMAL(10,2)
C.
INTEGER(11)
D.
TINYTEXT
Do przechowywania kwot najlepiej nadaje się typ DECIMAL (stałoprzecinkowy), bo zapisuje liczby z dokładną, ustaloną liczbą miejsc po przecinku - nie powstają błędy zaokrągleń typowe dla FLOAT/DOUBLE. Zapis DECIMAL(10,2) oznacza do 10 cyfr łącznie, z czego 2 po przecinku, np. 12345678.99 - idealne dla ceny z groszami. Dlatego dla pola „cena” właściwy jest DECIMAL(10,2).
Pytanie 23
W programowaniu istnieje tylko jeden typ danych, który może przyjąć tylko dwie wartości. Jak nazywa się ten typ?
A. ciągowy
B. logiczy
C. znakowy
D. tablicowy
Typ logiczny, znany również jako typ boolean, jest jedynym typem danych w językach programowania, który przyjmuje wyłącznie dwie wartości: prawda (true) i fałsz (false). To podstawowe założenie czyni go niezwykle ważnym w kontekście programowania, zwłaszcza w logice warunkowej oraz w kontrolowaniu przepływu programu. W praktyce typ logiczny jest szeroko stosowany w instrukcjach warunkowych, takich jak 'if', 'while' czy 'for', gdzie pozwala na podejmowanie decyzji na podstawie spełnienia określonych warunków. Na przykład w języku Python możemy sprawdzić, czy zmienna jest większa od zera, a wynik tej operacji będzie wartością typu logicznego, co pozwoli na podjęcie dalszych działań w programie. Ponadto, typ logiczny odgrywa kluczową rolę w strukturach danych, takich jak listy i słowniki, które mogą przechowywać warunki logiczne jako klucze. Zgodnie z dobrymi praktykami programistycznymi, zaleca się używanie typu logicznego w sytuacjach, gdzie wynik operacji powinien być jednoznaczny, co prowadzi do poprawy czytelności i utrzymywalności kodu.
Pytanie 24
Znacznik
<pre> </pre>
służy do prezentacji:
A. znaku przekreślenia
B. znaku wielokropka
C. treści polską czcionką
D. treści czcionką o stałej szerokości
Znacznik <pre> służy do wyświetlania treści w formacie, który zachowuje oryginalne formatowanie i białe znaki. Treści umieszczone wewnątrz tego znacznika są wyświetlane czcionką o stałej szerokości (monospace), co sprawia, że każda litera i znak zajmują tę samą ilość miejsca. Jest to szczególnie przydatne przy prezentacji kodu komputerowego, danych tabelarycznych lub wszelkich innych informacji, gdzie istotne jest zachowanie struktury. Na przykład, w języku HTML, umieszczając kod CSS lub JavaScript w znaczniku <pre>, programista zapewnia, że formatowanie kodu (np. wcięcia) jest widoczne, co ułatwia czytanie i zrozumienie. Zastosowanie znacznika <pre> jest zgodne z zasadami dobrych praktyk w web designie, gdzie czytelność kodu i danych jest kluczowa dla efektywnej komunikacji z użytkownikami oraz dla poprawnego działania aplikacji webowych.
Pytanie 25
Która z funkcji SQL nie wymaga żadnych argumentów?
A. now
B. len
C. upper
D. year
Funkcja SQL 'now()' jest jedną z funkcji, które nie wymagają argumentów, a jej głównym zadaniem jest zwracanie bieżącej daty i godziny systemowej w formacie odpowiednim dla bazy danych. Użycie tej funkcji jest niezwykle przydatne w kontekście rejestrowania momentu wykonania operacji w bazie danych, na przykład przy dodawaniu nowych rekordów do tabeli. Przykładowe zastosowanie tej funkcji można zobaczyć w poniższym zapytaniu SQL: 'INSERT INTO wydarzenia (nazwa, data_utworzenia) VALUES ('Nowe Wydarzenie', now());'. Takie podejście nie tylko automatyzuje proces rejestrowania czasu, ale także zapewnia spójność danych, eliminując ryzyko błędów związanych z ręcznym wprowadzaniem daty. W praktyce, stosowanie funkcji, które nie wymagają argumentów, jest często zgodne z zasadami dobrych praktyk programistycznych, które promują czytelność i prostotę kodu.
Pytanie 26
W instrukcji warunkowej w języku JavaScript należy zweryfikować sytuację, w której wartość zmiennej a mieści się w przedziale (0, 100), a wartość zmiennej b jest większa od zera. Jak można poprawnie zapisać taki warunek?
A. if ((a > 0 11 a < 100) && b > 0)
B. if (a > 0 || a < 100 11 b < 0)
C. if (a > 0 && a < 100 && b > 0)
D. if ((a > 0 && a < 100) 11 b < 0)
Odpowiedź if (a > 0 && a < 100 && b > 0) jest prawidłowa, ponieważ dokładnie odzwierciedla wymogi przedstawione w pytaniu. W tym przypadku, warunek sprawdza, czy zmienna 'a' jest większa od zera oraz mniejsza od 100, co oznacza, że mieści się w przedziale (0, 100). Dodatkowo, warunek b > 0 zapewnia, że zmienna 'b' ma wartość większą od zera. Użycie operatora logicznego && jest kluczowe, ponieważ pozwala na połączenie wszystkich trzech warunków, co oznacza, że wszystkie muszą być spełnione, aby blok kodu w instrukcji if został wykonany. W praktyce, ten typ instrukcji jest niezwykle użyteczny w różnorodnych aplikacjach, na przykład w systemach walidacji danych wejściowych, gdzie istotne jest sprawdzenie, czy wartości są w określonych zakresach przed przetwarzaniem. Dobrą praktyką jest zawsze stosowanie wyraźnych i zrozumiałych warunków logicznych w celu zwiększenia czytelności i utrzymania kodu, co jest zgodne z zasadami czystego kodowania.
Pytanie 27
Tabele: Studenci, Zapisy, Zajecia są powiązane relacją. Aby wybrać jedynie nazwiska studentów oraz odpowiadające im idZajecia dla studentów z grupy 15, należy wydać kwerendę
A. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;
B. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
C. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
D. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;
Ta odpowiedź jest dokładnie tym, czego oczekuje się w praktycznej pracy z relacyjnymi bazami danych. Kluczowe jest tutaj poprawne połączenie tabeli Studenci z tabelą Zapisy na podstawie klucza głównego Studenci.id oraz obcego Zapisy.idStudenta. To klasyczna sytuacja, gdzie chcemy wydobyć informacje z dwóch tabel powiązanych relacją jeden-do-wielu. Dzięki użyciu JOIN oraz warunku ON określającego relację, uzyskujemy możliwość pobrania nazwisk studentów i odpowiadających im identyfikatorów zajęć. Warunek WHERE ogranicza wynik do studentów z konkretnej grupy, co jest bardzo częstym wymaganiem biznesowym np. przy generowaniu list obecności czy analizie frekwencji. Takie podejście jest czytelne, zgodne ze składnią SQL ANSI i pozwala uniknąć nieporozumień przy większych kwerendach. Moim zdaniem warto pamiętać, że stosowanie jawnych JOIN-ów zamiast łączenia 'po przecinku' czy w warunku WHERE, ułatwia późniejszą rozbudowę zapytań oraz ogranicza ryzyko tzw. 'kartesjańskiego koszmaru', czyli niekontrolowanego zwielokrotnienia rekordów. Warto też wiedzieć, że zapis ten jest optymalny wydajnościowo, bo wykorzystuje istniejące klucze i indeksy – a to podstawa dobrych praktyk w pracy z bazami danych. Generalnie, jak się opanuje ten schemat, to potem większość operacji na relacyjnych bazach danych jest dużo łatwiejsza.
Pytanie 28
Którego atrybutu należy użyć w miejscu trzech kropek w znaczniku HTML5 <blockquote>, aby zdefiniować źródło cytatu?
<blockquote ...="https://pl.wikipedia.org">
Pokojowa Nagroda Nobla jest przyznawana kandydatom, którzy wykonali największą lub najlepszą
pracę na rzecz braterstwa między narodami
</blockquote>
A. alt
B. cite
C. src
D. href
Gratulacje, twoja odpowiedź jest poprawna. Atrybut 'cite' w znaczniku <blockquote> jest używany do definiowania źródła cytatu. Jest to zgodne z definicją tego atrybutu zawartą w specyfikacji HTML5. W praktyce, jeśli chcesz zacytować fragment tekstu z innego źródła na swojej stronie internetowej, możesz użyć znacznika <blockquote> i atrybutu 'cite' do określenia źródła cytatu, co jest zgodne z dobrymi praktykami branżowymi. Na przykład, <blockquote cite='https://www.example.com'> Tutaj umieść tekst cytatu </blockquote>. Dzięki temu, czytelnik może łatwo odnaleźć źródło cytowanego tekstu. Warto zaznaczyć, że choć atrybut 'cite' nie jest wyświetlany bezpośrednio na stronie, jest on użyteczny dla użytkowników technologii asystujących, takich jak czytniki ekranowe.
Pytanie 29
Po uruchomieniu poniższego fragmentu kodu PHP:
echodate("Y");
na ekranie pojawi się bieżąca data zawierająca tylko:
A. dzień
B. rok
C. miesiąc i rok
D. dzień i miesiąc
W odpowiedzi na pytanie, kod PHP echo date("Y"); zwraca aktualny rok, co jest zgodne z jego konstrukcją. Funkcja date() w PHP jest standardowym sposobem na formatowanie daty i czasu. Przekazany argument "Y" oznacza, że chcemy otrzymać rok w czterocyfrowym formacie. Na przykład, jeśli aktualny rok to 2023, wynik będzie wynosił 2023. Tego rodzaju operacje są niezwykle przydatne w różnych aplikacjach, od prostych stron internetowych po bardziej złożone systemy zarządzania treścią, gdzie dane o roku mogą być wykorzystywane do generowania dynamicznych treści, takich jak stopki z roku lub nagłówki z aktualnym rokiem. Użycie funkcji date() w odpowiedni sposób jest zgodne z najlepszymi praktykami programowania w PHP, które zalecają używanie wbudowanych funkcji do zarządzania datami i czasem, co zapewnia większą niezawodność i prostotę w kodzie.
Pytanie 30
W języku PHP zmienna $a została przypisana do wartości 1. Wyrażenie $a === $b będzie miało wartość true, gdy zmienna $b będzie ustawiona na wartość
A. '1'
B. *1
C. 1 lub '1'
D. "1" lub '1'
Odpowiedź *1 jest prawidłowa, ponieważ w języku PHP porównanie $a === $b sprawdza zarówno wartość, jak i typ zmiennej. W tym przypadku $a jest zainicjowane jako liczba całkowita z wartością 1, co oznacza, że aby porównanie zwróciło true, zmienna $b musi być również zainicjowana jako liczba całkowita z wartością 1. W PHP, użycie operatora porównania identyczności (===) wymaga, aby obie zmienne były tego samego typu. Jeśli $b byłoby zainicjowane jako '1' (łańcuch znaków) lub "1" (również łańcuch znaków), porównanie zwróciłoby false, ponieważ typy nie są zgodne. W praktyce, stosowanie porównań identyczności jest zalecane, aby uniknąć nieprzewidzianych rezultatów, które mogą wystąpić przy użyciu operatora porównania równości (==), który nie uwzględnia typów. Warto również pamiętać, że w kontekście dobrych praktyk programowania powinno się unikać sytuacji, w których typy zmiennych mogą prowadzić do niejednoznacznych wyników. Zrozumienie różnicy między porównaniami a typami danych jest kluczowe w tworzeniu stabilnych aplikacji w PHP."
Pytanie 31
Aby uzyskać dane z tabeli pracownicy wyłącznie dla osób, które osiągnęły 26 lat, należy zastosować zapytanie
A. SELECT * FROM wiek WHERE pracownicy > '25'
B. SELECT * FROM pracownicy AND wiek > '25'
C. SELECT * FROM pracownicy WHERE wiek > '25'
D. SELECT * FROM pracownicy OR wiek > '25'
Poprawne zapytanie to 'SELECT * FROM pracownicy WHERE wiek > '25';'. To zapytanie jest zgodne z zasadami SQL i pozwala na wyświetlenie wszystkich rekordów z tabeli 'pracownicy', które spełniają określony warunek dotyczący wieku. Używając klauzuli WHERE, precyzyjnie filtrujemy wyniki i zwracamy tylko tych pracowników, którzy mają więcej niż 25 lat. Warto pamiętać, że w SQL operator '>' jest wykorzystywany do porównywania wartości, a w tym przypadku pozwala nam na wybranie pracowników, którzy ukończyli 26 lat. Przy projektowaniu zapytań SQL, kluczowe jest stosowanie odpowiednich warunków filtrujących, aby ograniczyć zwracane dane do tych istotnych dla analiz. Przykładowo, analiza wieku pracowników w kontekście przyznawania dodatków lub przeprowadzania szkoleń może opierać się na takich zapytaniach. W praktyce, ważne jest także wykorzystanie indeksów w bazach danych, aby zwiększyć wydajność zapytań, zwłaszcza w dużych zbiorach danych.
Pytanie 32
Wskaż polecenie, które działa identycznie jak instrukcja while w PHP.
Instrukcja 4 for ($x=1; $x<=5; $x++) { echo "$x,"; }
A. Instrukcja 1
B. Instrukcja 2
C. Instrukcja 3
D. Instrukcja 4
Instrukcja 3 jest funkcjonalnie równoważna podanej instrukcji while w języku PHP. W obu przypadkach pętla zaczyna się z wartością zmiennej x równej 0 i kontynuuje dopóki x jest mniejsze od 5. W każdej iteracji zmienna x jest zwiększana o 1. Wyrażenie warunkowe w pętli for to x<5 co odpowiada warunkowi while $x<5. Część inicjalizacyjna for ustawia zmienną na 0 co jest zgodne z inicjalizacją przed pętlą while. Instrukcje zawarte w pętli wykonują te same operacje wyświetlania wartości x i inkrementacji. W praktyce stosowanie pętli for może być korzystne dla czytelności gdyż wszystkie elementy sterujące pętlą są zgrupowane w jednej linii co ułatwia zrozumienie jej działania. Jest to zgodne z dobrymi praktykami programistycznymi które promują klarowność kodu. Instrukcje for są często wykorzystywane w sytuacjach gdy liczba iteracji jest z góry znana co czyni je bardziej intuicyjnymi w takich przypadkach.
Pytanie 33
W CSS zastosowano stylowanie elementu listy, przy czym żadne inne style CSS nie zostały ustalone. Użyte stylowanie spowoduje, że
li :hover { color: Maroon; }
A. Teksty wszystkich elementów, którym nadano id „hover”, będą w kolorze Maroon.
B. Po najechaniu kursorem na element listy, kolor tekstu zmieni się na Maroon.
C. Wszystkie teksty elementów listy będą w kolorze Maroon.
D. Kolor Maroon będzie dotyczył co drugiego elementu listy.
Twoja odpowiedź jest na pewno trafna, bo reguła CSS li:hover { color: Maroon; } działa w kontekście pseudo-klasy :hover. To znaczy, że jak najedziesz kursorem na element listy (li), to jego kolor tekstu zmienia się na Maroon. Fajnie, że to wiesz! Takie podejście jest zgodne z zasadami CSS, które pozwalają na dynamiczne zmiany wyglądu elementów, gdy użytkownik z nimi interaguje. Na przykład, jeżeli masz listę z elementami <li>, to najeżdżając na nie, kolor tekstu zmienia się na Maroon. To może naprawdę poprawić użytkowanie strony i wyróżnić ważne elementy w interfejsie. Używanie pseudo-klas, jak :hover, to standard w projektowaniu stron, które są responsywne i interaktywne, co znacznie podnosi komfort przeglądania.
Pytanie 34
Jakim słowem kluczowym w języku z rodziny C można przypisać alternatywną nazwę dla już istniejącego typu danych?
A. enum
B. union
C. switch
D. typedef
Słowo kluczowe 'typedef' w języku C służy do definiowania alternatywnych nazw dla istniejących typów danych. Dzięki temu programiści mogą tworzyć bardziej czytelny i zrozumiały kod, który jest łatwiejszy w utrzymaniu. Na przykład, jeśli mamy złożony typ danych, taki jak struktura, możemy użyć 'typedef', aby uprościć jego użycie w kodzie. Przykład użycia: 'typedef struct { int x; int y; } Point;' pozwala na użycie 'Point' zamiast 'struct { int x; int y; }' w dalszej części programu, co zwiększa czytelność. Ponadto, stosowanie 'typedef' jest zgodne z najlepszymi praktykami programowania w C, które rekomendują jasność i zwięzłość kodu. Używanie alternatywnych nazw może również ułatwić późniejsze modyfikacje kodu, ponieważ zmiana definicji typu danych w jednym miejscu automatycznie propaguje zmiany w całym kodzie, co jest istotne w większych projektach. Przykłady zastosowania 'typedef' można znaleźć w bibliotekach C, gdzie definiuje się typy dla wskaźników czy tablic, co przyczynia się do lepszego zrozumienia kodu. Warto zaznaczyć, że 'typedef' nie zmienia samego typu danych, a jedynie wprowadza nową nazwę, co jest kluczowe dla zachowania zgodności z normami języka.
Pytanie 35
Która kwerenda utworzy WIDOK z klientami o statusie „Platynowy” (tabela klienci, pole status)?
Widok tworzy się poleceniem CREATEVIEW<nazwa>AS<SELECT...> - jego definicją jest pełne zapytanie. Zapis CREATEVIEWKlienciPlatynaASSELECT*FROMklienciWHEREstatus="Platynowy" poprawnie wybiera platynowych klientów. Dlatego prawidłowa jest ta kwerenda.
Pytanie 36
Jakie będzie rezultatem działania poniższego kodu PHP?
Kod PHP zawiera kilka warunków logicznych w strukturze if-else. Przy początkowych wartościach zmiennych, $a i $c są równe true, natomiast $b i $d są false. Pierwszy warunek if sprawdza czy ($a && $b) || ($c && $d), co tłumaczy się na (true && false) || (true && false), co daje false || false, a w rezultacie false. Zatem warunek się nie spełnia i przechodzimy do kolejnego. W elseif mamy ($a && $b) || ($c || $d), co oznacza (true && false) || (true || false), co daje false || true, czyli true. Ten warunek się spełnia i wyświetla 'warunek2'. Kod przechodzi do następnego elseif tylko wtedy, gdy poprzednie warunki były false, co w tym przypadku nie ma miejsca. W praktyce, analizując kod PHP, ważne jest zrozumienie operatorów logicznych: && oznacza 'i', || oznacza 'lub', a ! oznacza negację. Prawidłowe stosowanie tych operatorów jest kluczowe w programowaniu warunkowym, pozwalając na kontrolę przepływu programu i podejmowanie decyzji w oparciu o złożone logiki. Użycie elseif pozwala na czytelne i klarowne rozgałęzienie kodu, co jest dobrą praktyką w pisaniu złożonych skryptów.
Pytanie 37
Na przedstawionej grafice znajduje się struktura sekcji dla witryny internetowej. Przyjmując, że blok5 nie ma przypisanej szerokości, a bloki są określone w dokumencie HTML w kolejności ich numeracji, jak powinno wyglądać zdefiniowanie opływania?
Odpowiedź 3 jest poprawna, ponieważ odpowiada układowi bloków na stronie i ich pozycjonowaniu. Użycie właściwości CSS float: left; dla bloków 1, 2 i 4 pozwala im ułożyć się w linii po lewej stronie. Blok 3 z float: right; zostanie umieszczony po prawej stronie, co jest zgodne z przedstawionym układem. Blok 5 natomiast, znajdujący się na dole i rozciągający się na całą szerokość, wymaga użycia clear: both;, aby nie opływały go inne bloki i mógł zająć całą dostępną przestrzeń poziomą. Takie zastosowanie float i clear jest zgodne z najlepszymi praktykami w projektowaniu układów stron internetowych. Stylowanie za pomocą float jest powszechnie używane w CSS do tworzenia dynamicznych układów, a właściwość clear zapewnia, że element nie będzie opływany przez poprzedzające elementy pływające, co jest szczególnie istotne dla elementów podsumowujących lub końcowych na stronie.
Pytanie 38
ALTERTABLEtransportMODIFYCOLUMNrok_produkcjiINT;
Wykonanie powyższej kwerendy SQL w bazie MySQL spowoduje:
A. usunięcie kolumny rok_produkcji w tabeli transport.
B. zmianę typu danych w kolumnie rok_produkcji na INT.
C. utworzenie tabeli transport zawierającej kolumnę rok_produkcji.
D. dodanie kolumny rok_produkcji typu INT w tabeli transport.
Poprawnie – polecenie ALTER TABLE ... MODIFY COLUMN w MySQL służy do modyfikowania istniejącej kolumny, a nie do jej tworzenia czy usuwania. W podanym przykładzie baza danych szuka tabeli o nazwie `transport`, a następnie zmienia definicję kolumny `rok_produkcji` tak, aby jej typ danych był `INT`. Jeśli kolumna już istnieje (a musi istnieć, żeby MODIFY zadziałało), to po wykonaniu polecenia dalej będzie miała tę samą nazwę, ale jej typ i właściwości zostaną nadpisane nową definicją. W MySQL warto pamiętać, że przy MODIFY COLUMN trzeba podać pełną definicję kolumny, nie tylko sam typ. Czyli jeśli wcześniej była np. NOT NULL albo miała domyślną wartość, to dobra praktyka jest napisać coś w stylu: `ALTER TABLE transport MODIFY COLUMN rok_produkcji INT NOT NULL DEFAULT 2000;` – inaczej można przypadkiem zgubić część ustawień. W praktyce takie polecenia stosuje się przy zmianach w projekcie bazy: np. najpierw kolumna jest typu VARCHAR, bo ktoś przechowuje tam rok jako tekst, a potem, zgodnie z lepszymi zasadami projektowania, zmienia się to na typ liczbowy INT, żeby można było łatwo filtrować, sortować, robić warunki typu `WHERE rok_produkcji > 2015`. Z mojego doświadczenia dobrze jest przed taką zmianą sprawdzić, czy wszystkie dane da się bezpiecznie skonwertować na liczbę, bo jeśli w kolumnie są jakieś śmieciowe wartości tekstowe, to MySQL może je obciąć albo zamienić na 0, co później robi bałagan w raportach. W środowiskach produkcyjnych takie ALTER TABLE najlepiej wykonywać po zrobieniu kopii zapasowej i często w oknie serwisowym, bo przy dużych tabelach operacja może chwilowo blokować dostęp do danych.
Pytanie 39
Jak zapisać marginesy zewnętrzne: górny i dolny 20 px, lewy i prawy 40 px?
A.
margin:40px20px;
B.
margin:20px40px;
C.
margin:20px20px40px40px;
D.
margin:20px40px40px20px;
W zapisie skróconym z dwiema wartościami margin:pionpoziom pierwsza dotyczy góry i dołu, druga lewej i prawej. Górny i dolny 20px, boczne 40px daje więc margin:20px40px;. Dlatego poprawny jest margin:20px40px;.
Pytanie 40
Który składnik nie jest wymagany do instalacji i uruchomienia systemu CMS Joomla!?
A. serwer WWW
B. baza danych
C. parser PHP
D. platforma .NET
Poprawnie wskazana została platforma .NET jako element, który nie jest wymagany do instalacji i działania Joomla!. Ten CMS jest napisany w PHP i z założenia działa w klasycznym stosie LAMP/LEMP, czyli Linux/Windows + serwer WWW (najczęściej Apache lub Nginx) + PHP + baza danych (MySQL/MariaDB, czasem PostgreSQL). Joomla! korzysta z interpretera PHP do wykonywania całej logiki aplikacji: obsługi logowania, generowania szablonów, pracy z bazą danych, modułów, komponentów itd. Serwer WWW (HTTP) odpowiada za przyjmowanie żądań z przeglądarki i przekazywanie ich do PHP, a baza danych przechowuje treści, użytkowników, konfigurację, menu, artykuły i całą resztę danych dynamicznych. Platforma .NET to zupełnie inny ekosystem technologiczny, typowy dla aplikacji pisanych w C#, ASP.NET, .NET Core, działających np. na IIS. Joomla! nie jest aplikacją .NET, więc nie potrzebuje środowiska uruchomieniowego .NET ani serwera IIS, żeby działać. W praktyce, w typowej firmie hostingowej, gdy chcesz uruchomić Joomla!, patrzysz czy jest obsługa PHP w odpowiedniej wersji, dostęp do bazy MySQL/MariaDB oraz czy serwer WWW pozwala na friendly URLs (mod_rewrite lub odpowiednik). To są realne wymagania. Można oczywiście postawić Joomla! także na Windowsie, ale dalej korzystasz z PHP i serwera WWW, a nie z ASP.NET. Moim zdaniem warto zapamiętać prostą zasadę: jeśli CMS jest napisany w PHP, to kluczowe są PHP, serwer HTTP i baza danych, a nie platformy typowe dla innych języków, jak .NET czy Java.