Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 11 maja 2026 10:35
  • Data zakończenia: 11 maja 2026 11:07

Egzamin zdany!

Wynik: 25/40 punktów (62,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Specjalna funkcja danej klasy stosowana w programowaniu obiektowym, która jest wywoływana automatycznie w momencie tworzenia obiektu, a jej głównym celem jest zazwyczaj inicjalizacja pól, to

A. konstruktor
B. destruktor
C. specyfikator dostępu
D. obiekt
Konstruktor jest specjalną metodą, która jest wywoływana automatycznie w momencie tworzenia obiektu danej klasy. Jego głównym zadaniem jest zainicjowanie pól obiektu, co jest kluczowe dla zapewnienia, że obiekt będzie w pełni gotowy do użycia zaraz po swoim utworzeniu. Konstruktor może przyjmować argumenty, co pozwala na elastyczne i dynamiczne przypisywanie wartości do pól obiektu. Na przykład, w języku Python konstruktor jest definiowany za pomocą metody __init__(), co pozwala na inicjowanie atrybutów obiektów. W praktyce, przy tworzeniu klasy 'Samochód', konstruktor może być użyty do przypisania wartości takich jak marka, model czy rok produkcji. Dobrym podejściem jest również implementacja konstruktorów z wartościami domyślnymi, co zwiększa uniwersalność i łatwość użycia klasy. Użycie konstruktorów jest zgodne z zasadami programowania obiektowego i wspomaga tworzenie bardziej modularnych i łatwiejszych w utrzymaniu aplikacji.

Pytanie 2

Aby na stronie internetowej umieścić logo z przezroczystym tłem, jaki format powinien być zastosowany?

A. JPG
B. PNG
C. BMP
D. CDR
Format PNG (Portable Network Graphics) jest preferowany do przechowywania obrazów z przezroczystym tłem, co czyni go idealnym wyborem dla logo. Główne zalety PNG to obsługa przezroczystości oraz wysoka jakość grafiki bez utraty danych, dzięki kompresji bezstratnej. W praktyce, kiedy logo jest umieszczane na różnych tłach, przezroczystość pozwala na harmonijne wpasowanie się w otoczenie, co zwiększa estetykę strony. Ponadto, PNG obsługuje różne poziomy przezroczystości (alfa), co daje projektantom więcej możliwości w zakresie efektów wizualnych. Użycie PNG w projektach internetowych jest zgodne z dobrymi praktykami w zakresie tworzenia responsywnych i estetycznych interfejsów, a także zapewnia kompatybilność z większością przeglądarek internetowych. Warto zauważyć, że PNG jest również często stosowany w grafikach wektorowych i ikonach, które wymagają przejrzystości. Korzystając z PNG, projektanci mogą być pewni, że ich grafiki będą wyglądać profesjonalnie na każdej platformie.

Pytanie 3

Aby zaprojektować kształt logo dla strony WWW sposobem przedstawionym na obrazie, należy zastosować funkcję

Ilustracja do pytania
A. różnicy.
B. wykluczenia.
C. części wspólnej.
D. sumy.
Niestety, wybrana odpowiedź jest niepoprawna. Zamiast 'różnicy', 'sumy' czy 'części wspólnej', poprawnym rozwiązaniem jest 'wykluczenie'. Na obrazie mamy do czynienia z dwoma kształtami, z których fioletowy jest nałożony na czerwony. Wynik to kształt pokazujący tylko te części czerwonego kształtu, które nie pokrywają się z fioletowym. Właśnie tak działa operacja wykluczenia w grafice komputerowej - wynikowa forma zawiera tylko te elementy jednego obiektu, które nie nakładają się z drugim. Operacje różnicy, sumy czy części wspólnej miałyby inne efekty. 'Różnica' usunęłaby część czerwonego kształtu pokrywającą się z fioletowym, 'suma' utworzyłaby kształt zawierający całość obu kształtów, a 'część wspólna' wytworzyłaby kształt pokrywający się z oboma kształtami. Odnoszenie się do niewłaściwych operacji może prowadzić do znacznych błędów w projektowaniu graficznym.

Pytanie 4

Warunek zapisany w języku PHP wyświetli liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest to liczba dodatnia
B. wynik dzielenia danej liczby przez 2 jest równy 0
C. jest to liczba pierwsza
D. jest to liczba parzysta
Analizując inne odpowiedzi należy zauważyć że dzielenie liczby przez 2 i uzyskiwanie wyniku 0 odnosi się do całkowitego ilorazu a nie reszty co jest fundamentalnym błędem w interpretacji operatora modulo. Przykładowo liczba 0 po podzieleniu przez 2 daje iloraz 0 ale to nie jest tym czego dotyczy operator % który ocenia resztę. Z kolei liczba pierwsza nie jest związana z dzieleniem przez 2 i nie musi być parzysta. Liczby pierwsze to liczby większe od 1 które dzielą się tylko przez 1 i siebie samą co wyklucza możliwość posługiwania się wyrażeniem modulo 2 do ich identyfikacji. Dodatkowo bycie liczbą dodatnią nie jest w żaden sposób związane z dzieleniem przez 2 ani z właściwościami operatora modulo. Liczby dodatnie mogą być zarówno parzyste jak i nieparzyste dlatego użycie warunku modulo w kontekście określania czy liczba jest dodatnia jest błędne. Te błędne interpretacje często wynikają z nieznajomości specyfiki działania operatorów arytmetycznych w PHP co jest kluczowe dla unikania logicznych błędów w kodzie.

Pytanie 5

Podaj polecenie SQL, które wprowadza kolumnę miesiacSiewu do istniejącej tabeli rosliny?

A. UPDATE rosliny ADD miesiacSiewu int
B. INSERT INTO rosliny VALUES (miesiacSiewu int)
C. CREATE TABLE rosliny {miesiacSiewu int}
D. ALTER TABLE rosliny ADD miesiacSiewu int
Poprawna odpowiedź to ALTER TABLE rosliny ADD miesiacSiewu int. To polecenie SQL jest używane do modyfikacji istniejącej tabeli w bazie danych. W tym przypadku, zmiana dotyczy dodania nowego pola 'miesiacSiewu', które określi miesiąc siewu roślin. Typ danych 'int' oznacza, że wartość tego pola będzie przechowywana jako liczba całkowita, co jest odpowiednie, jeśli miesiące będą reprezentowane jako liczby od 1 do 12. Przykład użycia polecenia w praktyce: po dodaniu tego pola można wprowadzać dane o miesiącu siewu dla różnych roślin, co może być przydatne w systemach zarządzania uprawami. Dobrą praktyką jest zawsze dokumentować zmiany w schemacie bazy danych, aby zapewnić spójność i przejrzystość w zarządzaniu danymi. Ważne jest również, aby przed modyfikacją tabeli upewnić się, że nie wprowadza to konfliktów z istniejącymi danymi lub strukturami.

Pytanie 6

Jaką wartość zwróci funkcja empty($a); w języku PHP, gdy zmienna $a będzie miała wartość 0?

A. TRUE
B. NULL
C. FALSE
D. 0
Wartości 0 i NULL nie są uznawane za tożsame. W przypadku zwrócenia FALSE z funkcji empty(), można byłoby pomyśleć, że 0 jest uważane za wartość pełną, co jest błędnym wnioskiem. 0 w kontekście PHP jest interpretowane jako wartość, która jest pusta, co prowadzi do nieporozumień w stosowaniu tej funkcji. Odpowiedź sugerująca, że funkcja zwróci 0, nie uwzględnia faktu, że empty() nie zwraca wartości liczbowej, lecz logiczną reprezentację pustoty. Podobnie, NULL to inna kategoria wartości, oznaczająca brak wartości. Przyjmowanie NULL jako zwracanej wartości przez empty() jest błędne, ponieważ ta funkcja nie zwraca NULL, a jedynie TRUE lub FALSE w zależności od tego, czy zmienna jest pusta. Odpowiedź sugerująca TRUE jako wynik działa zgodnie z logiką PHP, a błędne wnioski mogą wynikać z braku zrozumienia, jak PHP interpretuje różne typy danych. W praktyce warto unikać takich nieporozumień, stosując dokładne definicje typów i rozumiejąc, jak funkcje manipulują tymi typami.

Pytanie 7

Baza danych MySQL została uszkodzona. Które z poniższych działań NIE przyczyni się do jej naprawy?

A. Przywrócenie bazy z kopii zapasowej
B. Wykonanie naprawy przy użyciu polecenia REPAIR
C. Utworzenie nowej bazy oraz przeniesienie do niej tabeli
D. Zrealizowanie replikacji bazy danych
Wszystkie działania, które mają na celu naprawę uszkodzonej bazy danych, muszą być przemyślane i dostosowane do rzeczywistego stanu uszkodzenia. Odtworzenie bazy z kopii bezpieczeństwa jest jedną z najskuteczniejszych metod naprawy, ponieważ pozwala przywrócić dane do momentu ich ostatniego zabezpieczenia. Użycie polecenia REPAIR do naprawy uszkodzonych tabel może być skuteczną praktyką, jednak wymaga znajomości struktury tabel oraz potencjalnych konsekwencji błędów. Przeniesienie tabel do nowej bazy stanowi podejście, które może zwrócić uwagę na problemy z integracją danych, ale wiąże się z koniecznością dokładnego zrozumienia, jak były zorganizowane w pierwotnej bazie. Replikacja, jako technika, jest zaawansowanym rozwiązaniem, które skupia się na synchronizacji danych pomiędzy różnymi instancjami baz danych. W sytuacji uszkodzenia bazy, replikacja popełnia błąd, ponieważ sieje zamieszanie, kopiując problematyczne dane do innej lokalizacji, a nie naprawiając ich. To prowadzi do błędnego przekonania, że replikacja może być sposobem na ratunek, podczas gdy w rzeczywistości może jedynie pogłębić problem. Dlatego kluczowym elementem w procesie zarządzania bazami danych jest świadome podejście do awarii oraz znajomość dostępnych narzędzi i metod naprawy.

Pytanie 8

W języku Javascript obiekt typu array jest używany do przechowywania

A. wielu wartości jedynie liczbowych
B. wielu wartości różnych typów
C. wielu wartości lub metod
D. wielu wartości jedynie tekstowych
Obiekt typu array w języku JavaScript jest niezwykle potężnym narzędziem, które pozwala na przechowywanie wielu wartości dowolnego typu w jednej zmiennej. W przeciwieństwie do niektórych innych języków programowania, JavaScript pozwala na umieszczanie w tablicach zarówno liczb, jak i stringów, obiektów, a nawet funkcji. Dzięki temu programiści mogą tworzyć złożone struktury danych, które są elastyczne i dopasowane do ich potrzeb. Przykładem praktycznego zastosowania tablicy może być tworzenie listy użytkowników, gdzie każdy element tablicy może być obiektem użytkownika zawierającym różne właściwości, takie jak imię, nazwisko, adres e-mail itd. Dobrymi praktykami przy korzystaniu z tablic w JavaScript są stosowanie metod takich jak map, filter, reduce, które ułatwiają manipulację danymi oraz dbałość o czytelność kodu, co sprzyja jego późniejszej konserwacji. Warto także pamiętać o tym, że tablice są dynamiczne, co oznacza, że można je modyfikować w trakcie działania programu, co daje dodatkową elastyczność.

Pytanie 9

Wskaż PRAWIDŁOWE stwierdzenie dotyczące polecenia: CREATE TABLE IF NOT EXISTS ADRES(ulica VARCHAR(70) CHARACTER SET utf8);

A. Do tabeli nie można wprowadzać ulic, które zawierają w nazwie polskie znaki
B. Rekordem tabeli nie może być 3 MAJA
C. Klauzula CHARACTER SET utf8 jest wymagana
D. IF NOT EXISTS jest stosowane opcjonalnie, aby upewnić się, że tabela nie istnieje już w bazie danych
Stwierdzenie, że 'IF NOT EXISTS' stosuje się opcjonalnie, aby upewnić się, że brak w bazie danych takiej tabeli, jest jak najbardziej prawdziwe. Klauzula ta jest używana w kontekście tworzenia tabel, aby uniknąć błędu, który wystąpiłby, gdyby tabela o tej samej nazwie już istniała. Dzięki temu programista może mieć pewność, że operacja tworzenia tabeli przebiegnie pomyślnie, bez konieczności wcześniejszego sprawdzania, czy tabela już istnieje. Przykładowo, w praktyce programistycznej, podczas automatyzacji skryptów do zarządzania bazami danych, często wykorzystuje się tę klauzulę, aby zapewnić, że skrypty są odporne na błędy wynikające z istniejących obiektów. Jest to zgodne z dobrymi praktykami w programowaniu baz danych, które koncentrują się na minimalizowaniu ryzyka i poprawie efektywności pracy.

Pytanie 10

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

A. htaccess.cnf
B. .htaccess
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 11

Badania dotyczące skalowalności oprogramowania mają na celu sprawdzenie, czy aplikacja

A. jest w stanie funkcjonować przy przewidzianym oraz większym obciążeniu
B. jest chroniona przed nieautoryzowanymi operacjami, takimi jak dzielenie przez zero
C. posiada właściwą funkcjonalność
D. jest odpowiednio opisana dokumentacją
Odpowiedź 'potrafi działać przy zakładanym i większym obciążeniu' jest prawidłowa, ponieważ testy skalowalności oprogramowania mają na celu ocenę, jak aplikacja radzi sobie w warunkach wzrastającego obciążenia. Skalowalność odnosi się do zdolności systemu do obsługi większej ilości użytkowników lub danych bez utraty wydajności. Przykładem może być aplikacja internetowa, która musi obsługiwać rosnącą liczbę zapytań w godzinach szczytu. Dobrą praktyką jest przeprowadzanie testów obciążeniowych i stresowych, aby zidentyfikować punkty krytyczne i wąskie gardła w architekturze aplikacji. W standardzie ISO/IEC 25010 definiuje się jakość produktu oprogramowania, gdzie skalowalność jest kluczowym zjawiskiem wpływającym na niezawodność i wydajność systemu. Testy te pozwalają również na ocenę, czy architektura aplikacji jest wystarczająco elastyczna, aby dostosować się do zmieniających się potrzeb użytkowników oraz na potwierdzenie, że infrastruktura serwerowa i sieciowa spełniają wymagania związane z przyszłym wzrostem obciążenia.

Pytanie 12

W jakim standardzie języka hipertekstowego wprowadzono do składni znaczniki sekcji <footer>, <header>, <nav>?

A. HTML5
B. HTML4
C. XHTML 2.0
D. XHTML1.0
Tak, znaczników <footer>, <header> i <nav> zaczęto używać w HTML5, który zadebiutował w październiku 2014 roku. To jest ciekawe, bo HTML5 wprowadził sporo nowych semantycznych elementów, które pomagają w lepszej organizacji dokumentów HTML. Dzięki nim, przeglądarki i roboty wyszukiwarek mogą lepiej zrozumieć strukturę stron. Na przykład, <header> to nagłówek strony lub sekcji, <nav> tworzy menu nawigacyjne, a <footer> to stopka. Myślę, że to super sprawa, bo poprawia dostępność strony i jej SEO, bo tak naprawdę pomaga wyszukiwarkom w lepszym indeksowaniu treści, co może prowadzić do lepszych wyników w wyszukiwarkach. Dodatkowo, HTML5 ma też inne ciekawe nowinki, jak wsparcie dla multimediów, lokalne przechowywanie danych, a także lepszą kompatybilność z aplikacjami mobilnymi, więc zdecydowanie warto go wykorzystywać do budowy stron internetowych.

Pytanie 13

$x = 0; while($x < 5) { echo "$x,"; $x++; } Wskaż instrukcję, która jest funkcjonalnie równoważna dla podanej pętli while w języku PHP.

Ilustracja do pytania
A. Instrukcja 2
B. Instrukcja 3
C. Instrukcja 4
D. Instrukcja 1
Instrukcja while w PHP jest pętlą, która kontroluje warunek przed każdą iteracją. W jej przypadku zmienna $x jest początkowo równa 0, a warunek $x < 5 powoduje, że blok kodu wewnątrz pętli wykonuje się dopóki $x jest mniejsze od 5. Za każdym razem, gdy kod wewnątrz pętli się wykonuje, echo wyświetla aktualną wartość zmiennej $x, a następnie $x jest inkrementowane o 1. Instrukcja for, która jest funkcjonalnie równoważna tej pętli while, to taka, która zaczyna się z $x równe 0, kończy na $x mniejszym od 5, i w każdym kroku zwiększa $x o 1, dokładnie tak jak instrukcja 3. Odpowiednia struktura pętli for daje możliwość precyzyjnego określenia wszystkich trzech elementów: inicjalizacji zmiennej, warunku kontynuacji oraz zmiany wartości zmiennej po każdej iteracji, co zapewnia pełną kontrolę nad przebiegiem pętli i transparentność kodu, realizując te same funkcjonalności co pętla while w bardziej kompaktowy sposób. Tego typu podejście jest szeroko stosowane w branży ze względu na swoją czytelność i efektywność, co czyni je zgodnym z dobrymi praktykami programistycznymi.

Pytanie 14

W instrukcji CREATE TABLE zastosowanie klauzuli PRIMARY KEY przy definiowaniu pola tabeli spowoduje, że to pole stanie się

A. kluczem podstawowym
B. indeksem klucza
C. indeksem unikalnym
D. kluczem obcym
Użycie klauzuli PRIMARY KEY w instrukcji CREATE TABLE oznacza, że pole, do którego jest ona przypisana, stanie się kluczem podstawowym tabeli. Klucz podstawowy to atrybut lub zbiór atrybutów, które jednoznacznie identyfikują każdy rekord w tabeli. Klucz podstawowy musi być unikalny dla każdego rekordu oraz nie może zawierać wartości NULL. Na przykład, w tabeli użytkowników, pole 'user_id' często pełni rolę klucza podstawowego, co pozwala na jednoznaczne odnalezienie informacji o każdym użytkowniku. Stosowanie kluczy podstawowych jest zgodne z najlepszymi praktykami w projektowaniu baz danych, ponieważ zapewnia integralność danych oraz umożliwia efektywne indeksowanie i wyszukiwanie informacji. Dodatkowo, klucze podstawowe mogą być używane w relacjach z innymi tabelami jako klucze obce, co ułatwia tworzenie powiązań między danymi. Klucz podstawowy jest zatem fundamentem struktury danych w bazie, co potwierdzają standardy SQL oraz normy projektowania baz danych.

Pytanie 15

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. części wspólnej.
B. grupowania.
C. wykluczenia.
D. sumy.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 16

Jakie typy danych w C++ są używane do reprezentacji liczb rzeczywistych?

A. double oraz short
B. float oraz double
C. double oraz bool
D. float oraz long
Wybierając odpowiedzi takie jak 'double i short', 'double i bool', czy 'float i long', można napotkać na nieporozumienia dotyczące typów danych w C++. Typ 'short' jest typem całkowitym, przeznaczonym do przechowywania liczb całkowitych o mniejszych wartościach, a zatem nie ma zastosowania w kontekście liczb rzeczywistych. Typ 'bool' również nie ma nic wspólnego z liczbami rzeczywistymi, gdyż reprezentuje jedynie wartości logiczne: prawda (true) lub fałsz (false). Z kolei 'long', podobnie jak 'short', jest typem całkowitym, który jest używany do reprezentowania dużych wartości liczbowych, ale także nie mieści się w kategorii liczb rzeczywistych. Zrozumienie, że liczby rzeczywiste w C++ są reprezentowane wyłącznie przez typy 'float' i 'double', jest kluczowe dla efektywnego programowania. Używanie niewłaściwych typów danych może prowadzić do błędów w obliczeniach, takich jak zaokrąglenia, a także do problemów z pamięcią oraz wydajnością aplikacji. Dlatego ważne jest, aby przy wyborze typów danych kierować się ich specyfiką oraz zastosowaniami, co jest zgodne z najlepszymi praktykami programistycznymi.

Pytanie 17

Która z poniższych funkcji w języku PHP zamienia słowo "kota" na "mysz" w ciągu "ala ma kota"?

A. replace("ala ma kota", "kota", "mysz");
B. str_replace("ala ma kota", "kota", "mysz");
C. replace("kota", "mysz", "ala ma kota");
D. str_replace( "kota", "mysz", "ala ma kota");
Odpowiedzi, które nie wykorzystują funkcji str_replace, są nieprawidłowe, ponieważ nie uwzględniają właściwej składni oraz logiki działania funkcji w PHP. Przykładowo, w pierwszej odpowiedzi funkcja replace nie istnieje w standardowej bibliotece PHP. Użytkownicy mogą myśleć, że jakakolwiek funkcja o nazwie replace jest wystarczająca do zamiany tekstu, ale w rzeczywistości PHP wymaga zastosowania funkcji str_replace, aby uzyskać zamierzony efekt. Podobnie, trzecia odpowiedź wykorzystuje niewłaściwą kolejność argumentów, co prowadzi do nieporozumienia dotyczącego działania funkcji. W funkcji str_replace pierwszy argument powinien być szukanym ciągiem, a nie tekstem źródłowym. Czwarta odpowiedź również wprowadza w błąd, ponieważ umieszcza tekst źródłowy w pierwszym argumencie, co jest niezgodne z dokumentacją funkcji. Użytkownicy muszą zrozumieć, że poprawne zrozumienie argumentów w funkcjach jest kluczowe dla ich poprawnego działania. Typowe błędy myślowe prowadzące do takich wniosków często wynikają z braku znajomości dokumentacji PHP, co jest kluczowe dla efektywnego programowania. Dlatego warto zaznajomić się z oficjalną dokumentacją oraz przykładami użycia, aby unikać takich pomyłek w przyszłości.

Pytanie 18

Wskaż fragment kodu HTML5, który zostanie uznany przez walidator za niepoprawny?

A. <p class="stl" style="color: #F00">tekst</p>
B. <p class="stl">tekst</p>
C. <p class="stl"><style>.a{color:#F00}</style>tekst</p>
D. <p class="stl" id="a">tekst</p>
Odpowiedzi <p class="stl" id="a">tekst</p>, <p class="stl" style="color: #F00">tekst</p> oraz <p class="stl">tekst</p> są poprawne i zgodne z standardami HTML5. Element <p> jest ogólnym znacznikiem używanym do definiowania paragrafów, a jego właściwe użycie obejmuje dodanie klas i identyfikatorów, co może być przydatne do stylizacji i skryptów. Użycie klasy 'stl' w pierwszym przykładzie pozwala na łatwe stylizowanie tego elementu w arkuszach stylów, co jest zgodne z zasadami modularności i ponownego użycia kodu. W przypadku drugiego przykładu, zastosowanie atrybutu style pozwala na bezpośrednie zastosowanie stylu, co jest właściwym podejściem w kontekście prostych aplikacji, chociaż w praktyce lepiej jest unikać inline styles ze względu na trudności w utrzymaniu kodu. Ostatni przykład, czyli <p class="stl">tekst</p>, nie zawiera żadnych dodatkowych atrybutów, ale także jest poprawny i może być używany w wielu kontekstach, gdzie stylizacja nie jest wymagana. Błędne jest myślenie, że elementy HTML5 są jedynie kontenerami treści - ich semantyka i zastosowanie klasy, identyfikatorów oraz stylów mają kluczowe znaczenie dla efektywności i organizacji kodu, co powinno być brane pod uwagę przy projektowaniu stron internetowych.

Pytanie 19

.format1 {
    …
}
W CSS określono wspólne style dla pewnej grupy elementów. Użycie takich stylów w kodzie HTML odbywa się za pomocą atrybutu:
A. div = "format1"
B. style = "format1"
C. class = "format1"
D. id = "format1"
Inne odpowiedzi odnoszą się do atrybutów lub metod, które nie są optymalne lub poprawne w kontekście wspólnego formatowania znaczników za pomocą CSS. Użycie atrybutu style do bezpośredniego stylowania elementów może być nieefektywne i prowadzi do powielania kodu, co utrudnia utrzymanie. W przypadku większych projektów takie podejście skutkuje chaosem i zwiększa ryzyko błędów. Definiowanie stylów bezpośrednio w każdym elemencie HTML utrudnia wprowadzanie globalnych zmian w wyglądzie strony. Z kolei atrybut id jest przeznaczony do unikalnego identyfikowania pojedynczego elementu na stronie. Choć można by teoretycznie użyć go do stylowania, nie jest to zalecane, gdyż każdy id musi być unikalny w ramach całego dokumentu HTML, co wyklucza jego stosowanie dla grupy elementów dzielących ten sam styl. W praktyce id używa się do celów, takich jak manipulacja specyficznymi elementami przez JavaScript lub do nawigacji wewnętrznej strony z użyciem kotwic. Źle zrozumiane przez programistów są także strategie, które polegają na przypisaniu znaczników do odmiennych grup bez właściwego użycia klas, co prowadzi do nieczytelnego kodu i utrudnia przyszłe zmiany w projekcie. Zastosowanie atrybutu div w taki sposób nie jest poprawne, ponieważ div jest elementem blokowym HTML, a nie atrybutem, co powoduje błędne zrozumienie struktury HTML i CSS. Kluczem do zrozumienia poprawnych praktyk jest świadomość różnic w zastosowaniu poszczególnych atrybutów i elementów, co prowadzi do tworzenia lepiej zorganizowanego i efektywnego kodu w projektach webowych.

Pytanie 20

Podczas działania skryptu JavaScript został w konsoli wygenerowany błąd związany z działaniami na atrybucie elementu DOM. Z komunikatu wynika, że próbowano ustawić atrybut dla

Ilustracja do pytania
A. tabeli.
B. odnośnika.
C. paragrafu.
D. obrazu.
Twoja odpowiedź była prawidłowa. Błąd 'Uncaught TypeError: Cannot set property 'src' of null' jest związany z próbą przypisania wartości do atrybutu 'src' nieistniejącego elementu DOM. Atrybut 'src' jest charakterystyczny dla elementów HTML obrazu, czyli <img>, i służy do określenia źródła obrazka. Gdy masz do czynienia z błędem tego typu, najczęściej wynika to z próby manipulacji atrybutem 'src' obrazu, który nie istnieje w strukturze DOM, co może wynikać na przykład z błędu w selektorze. Pamiętaj, że przed przypisaniem wartości atrybutu, warto upewnić się, że dany element DOM faktycznie istnieje. W przeciwnym razie, jak w tym przypadku, JavaScript zwróci błąd. Zrozumienie charakterystyki błędów i potrafiące identyfikowanie ich przyczyn jest kluczowe w procesie programowania.

Pytanie 21

W tabeli o nazwie pracownicy zdefiniowano klucz główny w typie INTEGER z atrybutami NOT NULL oraz AUTO_INCREMENT. Dodatkowo zdefiniowane zostały pola imie oraz nazwisko. W przypadku wykonania podanej kwerendy SQL, która dodaje dane i pomija pole klucza, w bazie danych MySQL nastąpi

INSERT INTO pracownicy (imie, nazwisko)
VALUES ('Anna', 'Nowak');
A. błąd związany z niewłaściwą liczbą pól
B. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
C. zignorowanie polecenia, tabela nie ulegnie zmianie
D. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
W przypadku tabeli z kluczem głównym typu INTEGER z atrybutem AUTO_INCREMENT, kiedy wprowadzamy nowy rekord i pomijamy pole klucza głównego, baza danych MySQL sama automatycznie przydziela kolejną wartość liczbową dla tego pola. AUTO_INCREMENT to mechanizm, który zapewnia, że każdemu nowemu rekordowi przypisana jest unikalna wartość klucza głównego, zaczynając od wartości początkowej, zwykle 1, i zwiększając ją o 1 z każdym nowym rekordem. Jest to niezwykle użyteczne w sytuacjach, gdy zależy nam na unikalności wartości kluczy głównych, co zapewnia integralność danych i unika konieczności ręcznego określania wartości klucza przy każdym nowym wpisie. Takie podejście jest zgodne ze standardami dobrych praktyk, ponieważ minimalizuje ryzyko błędów związanych z duplikacją danych. Przykładowo, jeśli do tabeli pracownicy dodajemy rekord z danymi pracownika, nie musimy się martwić o wartość identyfikatora, co znacznie upraszcza proces zarządzania danymi. Mechanizm AUTO_INCREMENT jest zatem kluczowy w kontekście zarządzania bazami danych, zapewniając automatyzację i integralność danych.

Pytanie 22

W języku SQL używanym przez bazę danych MySQL atrybut UNIQUE w poleceniu CREATE TABLE

A. jest używany, jeżeli wartości w danej kolumnie nie mogą się powtarzać
B. jest stosowany jedynie w przypadku kolumn liczbowych
C. wymusza niepowtarzalne nazwy kolumn tabeli
D. uniemożliwia wprowadzenie wartości NULL
W pierwszej niepoprawnej odpowiedzi wspomniano o wymogu unikatowości nazw pól tabeli. To stwierdzenie jest błędne, ponieważ atrybut UNIQUE nie dotyczy nazw kolumn, lecz wartości przechowywanych w tych kolumnach. W SQL możemy mieć wiele kolumn w tabeli o tej samej nazwie, o ile są one częścią różnych tabel. Zatem, atrybut UNIQUE nie ma wpływu na nazywanie kolumn, a jego głównym celem jest zapewnienie unikalności danych. Kolejną nieprawidłową informacją jest stwierdzenie, że atrybut UNIQUE blokuje możliwość wpisania wartości NULL. W rzeczywistości, w MySQL atrybut UNIQUE pozwala na wprowadzenie wartości NULL, ponieważ wartość NULL jest traktowana jako brak danych, co oznacza, że różne rekordy mogą mieć NULL jako wartość w kolumnie oznaczonej przez UNIQUE. Wreszcie, twierdzenie, że atrybut UNIQUE jest stosowany tylko w przypadku pól liczbowych, jest również fałszywe. Atrybut UNIQUE można zastosować do dowolnego typu danych, w tym tekstowych, datowych czy liczbowych. W praktyce, atrybut ten może być używany w różnych kontekstach, aby zapewnić unikalność danych w każdej kolumnie, niezależnie od ich typów.

Pytanie 23

Typowym programem przeznaczonym do edycji grafiki wektorowej jest

A. Inkscape.
B. Audacity.
C. Paint.
D. Brasero.
Poprawnie wskazany program to Inkscape, bo jest to typowy, specjalistyczny edytor grafiki wektorowej. Grafika wektorowa opiera się na obiektach takich jak linie, krzywe Béziera, wielokąty, tekst, które są opisane matematycznie (współrzędne, promienie, kąty), a nie na siatce pikseli. Dzięki temu projekty można skalować praktycznie dowolnie bez utraty jakości, co jest absolutnym standardem przy projektowaniu logotypów, ikon, infografik, schematów technicznych czy elementów interfejsu użytkownika. Inkscape obsługuje format SVG, który jest otwartym standardem W3C i jest powszechnie stosowany w projektach webowych, także w responsywnych interfejsach. W praktyce, używając Inkscape, można tworzyć np. logo firmy, które później bez problemu osadzisz na stronie WWW, w materiałach do druku, na banerach, a nawet w aplikacji mobilnej, bez martwienia się o rozmazanie czy pikselizację. Program oferuje warstwy, style, grupowanie obiektów, precyzyjne wyrównywanie, siatki i prowadnice, co jest zgodne z dobrymi praktykami pracy z grafiką: porządek w projekcie, praca na oddzielnych warstwach, używanie krzywych zamiast „ręcznego” rysowania byle jakich kształtów. Moim zdaniem, znajomość Inkscape albo innego edytora wektorowego (np. Adobe Illustrator, CorelDRAW) to dzisiaj podstawowa umiejętność dla kogoś, kto myśli poważnie o grafice komputerowej czy front-endzie. Wiele firm wręcz wymaga, żeby materiały były dostarczane właśnie w formacie wektorowym, bo wtedy łatwiej je modyfikować, dopasowywać kolorystykę do brandingu i eksportować do różnych formatów (PNG, PDF, EPS) w zależności od potrzeb. Inkscape pozwala też na pracę z krzywymi, maskami, gradientami czy efektami filtrów, co daje bardzo duże możliwości przy zachowaniu zalet wektorów.

Pytanie 24

Jakie zapytanie SQL będzie odpowiednie do odnalezienia w podanej tabeli tylko imion oraz nazwisk pacjentów, którzy przyszli na świat przed rokiem 2002?

Ilustracja do pytania
A. SELECT * FROM Pacjenci WHERE rok_urodzenia LIKE 2002
B. SELECT imie, nazwisko FROM Pacjenci WHERE data_ostatniej_wizyty < 2002
C. SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002
D. SELECT * FROM Pacjenci WHERE rok_urodzenia <= 2002
W tym zapytaniu zastosowałeś składnię SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002, co jest super, bo pozwala wyciągnąć tylko te imiona i nazwiska pacjentów, którzy urodzili się przed rokiem 2002. Użycie konkretnych kolumn jak imie i nazwisko zamiast znaku * to niezła sprawa, bo ogranicza wyniki do tego, co naprawdę potrzebujesz. To z kolei może znacząco zwiększyć wydajność przesyłania danych. No i to WHERE rok_urodzenia < 2002 – świetny ruch! Fajnie, że potrafisz filtrować dane według konkretnego warunku. Bez tego miałbyś wszystkie osoby, nie tylko te sprzed 2002 roku. To jest właśnie selekcja warunkowa w SQL, a jej znajomość to podstawa przy analizie danych. Zgadzam się również, że uniknięcie znaków wieloznacznych jak LIKE w tej sytuacji to dobre podejście, bo używasz bezpośrednich porównań liczbowych, co generalnie działa lepiej i daje jaśniejsze wyniki.

Pytanie 25

W CSS, aby ustalić wewnętrzny górny margines, czyli odstęp pomiędzy elementem a jego obramowaniem, należy zastosować komendę

A. border-top
B. padding-top
C. local-top
D. outline-top
Odpowiedź 'padding-top' jest prawidłowa, ponieważ w CSS termin 'padding' odnosi się do wewnętrznego odstępu, który tworzy przestrzeń pomiędzy zawartością elementu a jego granicą (border). 'padding-top' specyfikuje górny odstęp wewnętrzny, co jest istotne w kontekście estetyki i układu strony. Definiując 'padding-top', możemy dostosować wygląd elementów, aby lepiej pasowały do reszty projektu i poprawiły czytelność. Na przykład, jeśli mamy przycisk z tekstem, użycie 'padding-top: 10px;' zapewni, że tekst nie będzie przyklejony do górnego brzegu przycisku, co zwiększy jego estetykę oraz użyteczność. W praktyce dobrą praktyką jest również stosowanie 'padding' w połączeniu z 'margin', aby osiągnąć odpowiednią separację między różnymi elementami w układzie. Przestrzeganie standardów CSS pomaga w tworzeniu responsywnych i dostosowanych układów, które dobrze działają na różnych urządzeniach.

Pytanie 26

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)
Odpowiedź ((a>99) && (a<1000)) || (b<0) jest prawidłowa, ponieważ warunek ten skutecznie sprawdza, czy dowolna naturalna liczba a jest trzycyfrowa lub czy dowolna całkowita liczba b jest ujemna. Część wyrażenia (a>99) && (a<1000) weryfikuje, czy liczba a jest w przedziale od 100 do 999, co definiuje liczby trzycyfrowe. Z kolei druga część (b<0) sprawdza, czy liczba b jest mniejsza od zera. Całość połączona jest operatorem OR (||), co oznacza, że wystarczy spełnienie jednego z tych warunków, aby cały warunek był spełniony. W praktyce, takie wyrażenia są powszechnie stosowane w programowaniu, szczególnie w formularzach walidacyjnych, gdzie ważne jest, aby dane wprowadzone przez użytkowników spełniały określone kryteria. Dobrą praktyką jest dbałość o czytelność kodu i stosowanie odpowiednich nazw zmiennych, co ułatwia zrozumienie logiki działania aplikacji. Warto również pamiętać o testowaniu różnych przypadków, aby upewnić się, że warunki działają zgodnie z zamierzeniami, co jest kluczowe w zapewnieniu wysokiej jakości oprogramowania.

Pytanie 27

Walidacja formularzowych pól polega na zweryfikowaniu

A. który użytkownik wprowadził informacje.
B. czy istnieje plik PHP, który odbierze dane.
C. czy wprowadzone dane spełniają określone reguły.
D. czy użytkownik jest zalogowany.
Walidacja pól formularza to mega ważny krok, kiedy zbieramy dane od użytkowników. Dzięki niej możemy mieć pewność, że wszystko, co użytkownik wprowadza, jest zgodne z pewnymi zasadami. To sprawia, że aplikacja działa jak należy i że dane są w miarę bezpieczne. Na przykład, walidacja może sprawdzać, czy użytkownik wpisał coś w pole tekstowe, czy adres e-mail wygląda jak należy, albo czy hasło ma odpowiednią długość i trudność. Fajnie jest, jak walidacja działa zarówno po stronie klienta, jak i serwera. Ta po stronie klienta jest super, bo użytkownik od razu widzi, że coś poszło nie tak i nie musi czekać na odpowiedź z serwera. A walidacja po stronie serwera dodaje jeszcze więcej bezpieczeństwa, bo broni aplikacji przed błędnymi danymi i różnymi atakami, jak na przykład SQL injection. Dlatego walidacja danych to absolutna podstawa w nowoczesnych systemach przetwarzania informacji.

Pytanie 28

Metoda w języku PHP, która pełni rolę konstruktora, nosi nazwę

A. _create
B. _new
C. _construct
D. _open
Konstruktor w języku PHP to specjalna metoda, która jest wywoływana automatycznie w momencie tworzenia obiektu danej klasy. Nazwa konstruktora w PHP to __construct, co jest zgodne z konwencjami programistycznymi i standardem PSR-1. Zastosowanie konstruktora pozwala na inicjalizację obiektu oraz przekazywanie parametrów, które mogą być wykorzystane w dalszej części kodu. Na przykład, jeśli mamy klasę `Samochod`, możemy zdefiniować konstruktor, który przyjmuje parametry takie jak marka, model i rok produkcji. Dzięki temu każdy nowo utworzony obiekt samochodu będzie miał ustawione te wartości. Stosowanie konstruktorów jest powszechną praktyką w programowaniu obiektowym, co sprzyja lepszemu zarządzaniu kodem i jego czytelności. Przykład: `public function __construct($marka, $model, $rok) { $this->marka = $marka; $this->model = $model; $this->rok = $rok; }`. Warto również pamiętać, że konstruktor może dziedziczyć właściwości i metody z klasy rodzicielskiej, co jest kluczowe w kontekście programowania obiektowego.

Pytanie 29

Jaką wartość uzyska zmienna x po wykonaniu kodu PHP zaprezentowanego w ramce?

Ilustracja do pytania
A. Ilość wierszy w bazie danych
B. Ilość wierszy dodanych do tabeli produkty
C. Ilość wierszy przetworzonych przez zapytanie DELETE FROM
D. Ilość wierszy w tabeli produkty, gdzie pole status jest większe od zera
W przedstawionym kodzie PHP funkcja mysqli_affected_rows() jest używana do uzyskania liczby wierszy zmienionych przez ostatnie zapytanie MySQL. W tym przypadku zapytanie DELETE FROM produkty WHERE status < 0 próbuje usunąć wszystkie rekordy z tabeli produkty, których pole status ma wartość mniejszą od zera. Po wykonaniu tego zapytania funkcja mysqli_affected_rows($db) zwróci liczbę wierszy, które zostały rzeczywiście usunięte. To jest szczególnie przydatne w kontekście sprawdzania wpływu operacji na bazę danych i pozwala na dynamiczne podejmowanie decyzji w aplikacjach bazodanowych. Przykładowo, jeśli po usunięciu chcemy wykonać dodatkowe operacje tylko wtedy, gdy co najmniej jeden rekord został usunięty, możemy użyć tej funkcji. Zgodnie z dobrymi praktykami, korzystanie z mysqli_affected_rows() jest standardem, gdyż pozwala również na obsługę wyjątków i błędów bazy danych. Optymalizacja operacji DELETE poprzez precyzyjne filtrowanie w WHERE, jak w naszym przykładzie, jest kluczowa dla zachowania wydajności bazy danych szczególnie w dużych systemach produkcyjnych.

Pytanie 30

Jak nazywa się organizacja odpowiedzialna za wyznaczanie standardów dla języka HTML?

A. WYSIWYG
B. ISO
C. W3C
D. NASK
Odpowiedzi ISO, NASK oraz WYSIWYG są niepoprawne w kontekście organizacji zajmującej się ustalaniem standardów dla języka HTML. ISO, czyli Międzynarodowa Organizacja Normalizacyjna, jest globalną organizacją zajmującą się ustalaniem standardów w różnych dziedzinach, takich jak jakości produktów, ale nie koncentruje się na standardach dotyczących technologii webowych. Jej standardy mogą obejmować aspekty techniczne, ale nie są specjalnie ukierunkowane na rozwój języków programowania czy specyfikacji związanych z internetem. NASK, czyli Naukowa i Akademicka Sieć Komputerowa, jest polską organizacją, która skupia się na rozwoju infrastruktury internetowej i usług sieciowych, w tym rejestracji nazw domen, ale nie jest odpowiedzialna za międzynarodowe standardy HTML. Z kolei WYSIWYG, co oznacza 'What You See Is What You Get', to termin odnoszący się do programów edytorskich, które pozwalają na tworzenie treści wizualnych w czasie rzeczywistym, ale nie jest to organizacja ani instytucja zajmująca się standardyzacją języka HTML. W zasadzie WYSIWYG to podejście do edycji treści, a nie struktura organizacyjna. Dlatego żadna z tych odpowiedzi nie odnosi się do kluczowej roli, jaką pełni W3C w kontekście ustalania standardów dla HTML i innych technologii internetowych.

Pytanie 31

W języku PHP wyniki zapytania z bazy danych zostały pobrane przy użyciu polecenia mysql_query(). Aby uzyskać dane w postaci wierszy z tej zwróconej kwerendy, należy użyć polecenia:

A. mysql_fetch_row()
B. mysql_fetch_lengths()
C. mysql_list_fields()
D. mysql_field_len()
Funkcja mysql_fetch_row() to naprawdę ważne narzędzie w PHP, które pomaga w pracy z wynikami zapytań SQL. Kiedy wykonasz zapytanie za pomocą mysql_query(), dostajesz zestaw wyników, który można traktować jak tablicę. Używając mysql_fetch_row(), możesz pobrać jeden wiersz danych z tego zestawu, a to przychodzi w formie tablicy numerycznej. To bardzo przydatne, szczególnie gdy chcesz przejść przez wszystkie wiersze, które zwraca zapytanie. Na przykład, przy wyświetlaniu danych w HTML. Super jest to, że ta funkcja jest prosta w użyciu i działa efektywnie, dlatego tak wielu programistów ją ceni. Pamiętaj, żeby zawsze zabezpieczać zapytania przed SQL Injection. Możesz to zrobić, stosując przygotowane zapytania (prepared statements) albo funkcje, jak mysqli_query() z mysqli_fetch_row(). Warto też wiedzieć, że jeśli nie ma już więcej wierszy do pobrania, to mysql_fetch_row() zwróci false. Można to wykorzystać do kontrolowania pętli w kodzie, co jest przydatne.

Pytanie 32

Głównym celem systemu CMS jest oddzielenie treści serwisu informacyjnego od jego wizualnej formy. Ten efekt osiągany jest przez generowanie zawartości

A. z plików HTML o stałej zawartości oraz wizualizacji przy pomocy technologii FLASH
B. z bazy danych oraz wyglądu ze zdefiniowanego szablonu
C. z plików HTML o stałej zawartości oraz wizualizacji z użyciem ustalonego szablonu
D. z bazy danych oraz wizualizacji poprzez atrybuty HTML
Poprawna odpowiedź na to pytanie to "z bazy danych oraz wyglądu ze zdefiniowanego szablonu". Systemy CMS (Content Management System) mają na celu oddzielenie treści od prezentacji, co pozwala na łatwiejsze zarządzanie i aktualizowanie zawartości serwisu. Wykorzystanie bazy danych do przechowywania treści jest kluczowe, ponieważ umożliwia dynamiczne generowanie zawartości na stronach internetowych. Dzięki temu, gdy zmienia się treść w bazie danych, zmiany te są automatycznie odzwierciedlane na stronie bez potrzeby modyfikacji statycznych plików HTML. Szablony, które definiują wygląd, są również niezmiernie ważne, ponieważ pozwalają na spójność wizualną serwisu i jego łatwą adaptację w przypadku zmian w designie. Przykładem może być użycie systemu szablonów, takiego jak Twig w Symfony, który umożliwia separację logiki biznesowej od prezentacji, co ułatwia pracę developerom i designerom. Takie podejście jest zgodne z najlepszymi praktykami w branży, zapewniając przy tym elastyczność i skalowalność serwisów internetowych.

Pytanie 33

Aby ustawić marginesy wewnętrzne dla elementu, gdzie margines górny wynosi 50px, dolny 40px, prawy 20px oraz lewy 30px, należy zastosować składnię CSS

A. padding: 40px, 30px, 50px, 20px;
B. padding: 20px, 40px, 30px, 50px;
C. style="margin-bottom: 0cm;"> padding: 50px, 20px, 40px, 30px;
D. style="margin-bottom: 0cm;"> padding: 50px, 40px, 20px, 30px;
W odpowiedziach, które nie są poprawne, występuje nieporozumienie w zakresie różnicy między 'padding' a 'margin'. Właściwość 'padding' odnosi się do przestrzeni wewnętrznej elementu, natomiast 'margin' dotyczy przestrzeni zewnętrznej, która oddziela element od sąsiadów. Niezrozumienie tych dwóch pojęć prowadzi do błędnego przypisania wartości do niewłaściwej właściwości. Na przykład, pierwsza z zaproponowanych odpowiedzi mylnie stosuje 'padding' w kontekście marginesów, co jest technicznie niepoprawne. Kolejny błąd wynika z nieodpowiedniej kolejności wartości, co może prowadzić do niezamierzonego efektu w układzie strony. Warto zwrócić uwagę, że standardy CSS wymagają ścisłego przestrzegania kolejności i formatu, aby zapewnić prawidłowe renderowanie w różnych przeglądarkach. Ponadto, brak zrozumienia znaczenia jednostek w CSS oraz ich wpływu na elastyczność układu strony może skutkować nieadekwatnym wyświetlaniem treści na różnych urządzeniach. Typowe błędy myślowe, które pojawiają się w takich sytuacjach, to przekonanie, że różne jednostki są wymienne, czy też że kolejność wartości w 'padding' nie ma znaczenia. W rzeczywistości, poprawne użycie CSS opiera się na znajomości jego specyfikacji oraz praktycznych zasad, które pomagają w tworzeniu spójnych i responsywnych stron internetowych.

Pytanie 34

Która z wymienionych funkcji sortowania w języku PHP służy do sortowania tablicy asocjacyjnej według kluczy?

A. rsort()
B. sort()
C. ksort()
D. asort()
Funkcja ksort() w języku PHP jest dedykowana do sortowania tablic asocjacyjnych według ich kluczy. Dzięki zastosowaniu tej funkcji, tablica zostaje uporządkowana w sposób rosnący, co jest szczególnie przydatne, gdy potrzebujemy danych w zorganizowanej formie lub gdy chcemy prezentować je użytkownikowi w logicznej kolejności. Przykładowo, jeśli mamy tablicę asocjacyjną, gdzie klucze reprezentują nazwy produktów, a wartości to ich ceny, użycie ksort() pozwoli nam posortować produkty alfabetycznie. Dobrą praktyką jest stosowanie ksort() w projektach, gdzie istotna jest czytelność i przejrzystość danych, co może mieć wpływ na UX (User Experience) aplikacji. Warto również pamiętać, że jeśli tablica zawiera różne typy kluczy, to sortowanie może prowadzić do nieoczekiwanych wyników. Z tego względu, ksort() jest najlepszym wyborem, gdyż spełnia wymagania standardów sortowania oraz zapewnia zgodność z dobrymi praktykami programistycznymi.

Pytanie 35

W SQL, przy użyciu polecenia ALTER, można

A. usunąć tabelę
B. stworzyć nową tabelę
C. zmienić strukturę tabeli
D. dodać dane do tabeli
Wszystkie pozostałe odpowiedzi są niepoprawne, ponieważ nie odzwierciedlają prawidłowego zastosowania polecenia ALTER w SQL. Usunięcie tabeli odbywa się za pomocą polecenia DROP, które całkowicie eliminuje tabelę oraz jej dane z bazy danych, co jest operacją nieodwracalną. Z kolei wprowadzanie danych do tabeli realizuje się za pomocą polecenia INSERT, które dodaje nowe rekordy do już istniejącej struktury tabeli, a nie zmienia jej samej. Tworzenie tabeli z kolei wykonuje się za pomocą polecenia CREATE TABLE, które definiuje nową strukturę tabeli oraz jej kolumny. W związku z tym, błędne jest myślenie, że polecenie ALTER może być używane do tych operacji, gdyż każda z nich ma swoje dedykowane polecenia, z innymi celami i konsekwencjami. Przykładami typowych błędów myślowych są mylenie pojęć związanych z tworzeniem, modyfikowaniem i usuwaniem struktur bazy danych, co może prowadzić do nieprawidłowego zarządzania danymi i nieefektywnej architektury baz danych. Właściwe zrozumienie funkcji poszczególnych poleceń i ich zastosowania w praktyce jest kluczowe dla efektywnego zarządzania bazami danych i unikania poważnych problemów z integralnością danych.

Pytanie 36

Błędy interpretacji kodu PHP są

A. zapisywane w logu pod warunkiem ustawienia odpowiedniego parametru w pliku php.ini.
B. wyświetlane w oknie edytora kodu PHP po wybraniu przycisku kompiluj.
C. ignorowane przez przeglądarkę oraz interpreter kodu PHP.
D. zapisywane w podglądzie zdarzeń systemu Windows.
Poprawnie – w PHP błędy interpretacji (parse errors, fatal errors itd.) są standardowo zapisywane do logu, o ile w konfiguracji serwera i pliku php.ini jest to włączone. Kluczowe są tu parametry takie jak `log_errors` (powinno być ustawione na `On`) oraz `error_log` (ścieżka do pliku logu). To właśnie te ustawienia decydują, czy komunikaty błędów trafią do pliku dziennika, czy zostaną po prostu zignorowane z punktu widzenia logowania. W praktyce administracyjnej i programistycznej log błędów PHP to jedno z podstawowych narzędzi diagnozowania problemów na serwerze. W środowisku produkcyjnym dobrą praktyką jest wyłączenie wyświetlania błędów w przeglądarce (`display_errors = Off`) i jednoczesne włączenie szczegółowego logowania do pliku. Dzięki temu użytkownik nie widzi wrażliwych informacji o strukturze aplikacji, a programista nadal ma pełen wgląd w to, co się posypało. Z mojego doświadczenia, dobrze skonfigurowane logi ratują masę czasu przy debugowaniu: np. gdy aplikacja zwróci białą stronę albo kod 500, pierwszy odruch to zajrzeć do `error_log` i sprawdzić dokładny komunikat, numer linii, plik, czas wystąpienia. W projektach zespołowych często stosuje się też rotację logów (logrotate) i dodatkowe narzędzia typu ELK, Graylog czy Sentry, które zbierają logi z wielu serwerów. Niezależnie od skali, zasada jest ta sama: błędy PHP powinny być automatycznie logowane, a konfiguracja w php.ini jest punktem wyjścia do ich prawidłowej obsługi i monitoringu w profesjonalnym środowisku webowym.

Pytanie 37

Walidator W3C zgłosił błąd walidacji: Zakończony tag p został znaleziony, jednak były otwarte elementy. Który element kodu to dotyczy?

A. <p>Ala ma <b>kota</b></p>
B. <p>Ala ma kota
C. <p>Ala ma <b>kota</p></b>
D. <p>Ala ma kota</p>
Analizując pozostałe odpowiedzi, można zauważyć, że zawierają one błędy w zakresie struktury HTML, które mogą prowadzić do niepoprawnego renderowania treści. W przypadku odpowiedzi, w której nie ma zamknięcia tagu <p>, czyli <p>Ala ma kota, przeglądarka może zinterpretować treść niepoprawnie, prowadząc do nieprzewidywalnych efektów na stronie. Odpowiedzi, w których zamknięcie tagu <b> następuje po zamknięciu tagu <p>, również są błędne, ponieważ w HTML tagi powinny być zamykane w odwrotnej kolejności, w jakiej zostały otwarte. To zjawisko jest znane jako „zagnieżdżanie”, które jest kluczowym aspektem podczas pisania poprawnego kodu HTML. Użycie tagów HTML w sposób, który nie przestrzega tych zasady, może prowadzić do błędów walidacji, co zostało jasno wskazane w standardach W3C. Użytkownicy powinni być świadomi, że poprawna struktura kodu nie tylko wpływa na estetykę strony, ale także na jej funkcjonalność oraz dostępność dla technologii asystujących. Dlatego istotne jest zrozumienie i stosowanie zasad poprawnego zagnieżdżania elementów, co jest fundamentem tworzenia dobrze działających stron internetowych.

Pytanie 38

Która funkcja edytora grafiki wektorowej spowoduje przekształcenie z przedstawionych po lewej stronie figur koła i prostokąta do figury półkola widocznej po prawej stronie?

Ilustracja do pytania
A. Podział.
B. Część wspólna.
C. Różnica.
D. Wykluczenie.
W grafice wektorowej operacje na kształtach, takie jak Różnica, Podział, Wykluczenie czy Część wspólna, to tzw. operacje boole’owskie. One nie są losowe – każda z nich ma bardzo konkretne, matematyczne znaczenie. Typowy błąd polega na tym, że patrzymy tylko na „intuicyjną” nazwę funkcji, a nie na to, co faktycznie dzieje się z obszarami wypełnienia. Różnica (ang. Subtract / Difference) polega na tym, że jedna figura „wycina” fragment z drugiej. Gdyby w naszym przykładzie użyć różnicy, to z jednej figury zostałby usunięty fragment zajmowany przez drugą. W efekcie dostalibyśmy kształt przypominający np. prostokąt z zaokrąglonym wycięciem, a nie pełne półkole. To przydaje się np. do robienia otworów, ramek, ikon z „dziurą”, ale nie do budowy półkola. Podział (ang. Divide / Fragment) dzieli obszar wszędzie tam, gdzie kształty się przecinają, na kilka osobnych obiektów. Wizualnie może to chwilowo wyglądać podobnie, ale końcowy efekt to kilka fragmentów, które trzeba ręcznie usuwać lub scalać. W testowym zadaniu chodzi o jedną, gotową figurę półkola, bez dodatkowego sprzątania, więc to nie jest optymalna operacja. Wykluczenie (ang. Exclude / XOR) działa odwrotnie do części wspólnej – usuwa obszar nakładania się, a zostawia tylko to, co jest „na zewnątrz” przecięcia. Gdyby użyć wykluczenia na kole i prostokącie, środek, czyli miejsce ich wspólnego nakładania, zniknie, a zostaną dwa osobne dziwne kształty po bokach. To dobra funkcja do tworzenia bardziej dekoracyjnych, ażurowych form, ale kompletnie nie nadaje się do uzyskania klasycznego półkola. W tym zadaniu kluczowe jest zrozumienie, że półkole jest dokładnie tym obszarem, gdzie koło i prostokąt się pokrywają. Stąd jedynie „Część wspólna” daje czysty, poprawny efekt bez dodatkowej obróbki. Warto przy takich pytaniach wyobrażać sobie, które fragmenty zostaną, a które zostaną usunięte, zamiast sugerować się tylko nazwą funkcji w menu programu.

Pytanie 39

Jakie polecenie należy zastosować, aby cofnąć uprawnienia przyznane użytkownikowi?

A. GRANT NO PRIVILEGES
B. REVOKE
C. DROP PRIVILEGES
D. REMOVE
Polecenie REVOKE jest standardowym poleceniem w systemach zarządzania bazami danych, które służy do odebrania wcześniej przyznanych uprawnień użytkownikowi. Używając tego polecenia, administrator może skutecznie kontrolować dostęp do różnych zasobów w bazie danych. Na przykład, jeśli użytkownik A otrzymał uprawnienia do edytowania danych w tabeli 'Zamówienia', a administrator postanowi, że użytkownik A nie powinien mieć już takich uprawnień, może użyć polecenia REVOKE, aby je odebrać. W praktyce użycie REVOKE wygląda następująco: "REVOKE UPDATE ON Zamówienia FROM 'użytkownikA'". Dzięki temu podejściu administratorzy mogą zapewnić, że dostęp do wrażliwych danych jest odpowiednio zarządzany i zgodny z zasadami bezpieczeństwa danych. Dobrą praktyką jest regularne przeglądanie przyznanych uprawnień i ich aktualizacja w zależności od zmieniających się potrzeb organizacji oraz polityki zarządzania dostępem.

Pytanie 40

Skrypt w języku JavaScript, który zajmuje się płacami pracowników, ma na celu stworzenie raportu dla osób zatrudnionych na umowę o pracę, które otrzymują wynagrodzenie w przedziale 4000 do 4500 zł, w tym przedziale obustronnie domkniętym. Jakie jest kryterium do wygenerowania raportu?

A. umowa == 'praca' || (pensja >= 4000 && pensja <= 4500)
B. umowa == 'praca' && (pensja >= 4000 || pensja <= 4500)
C. umowa == 'praca' || (pensja >= 4000 || pensja <= 4500)
D. umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)
Odpowiedź, którą wybrałeś, to umowa == 'praca' && (pensja >= 4000 && pensja <= 4500). To jest faktycznie odpowiednia opcja, bo spełnia warunki do wygenerowania raportu. To ważne, żeby oba warunki były spełnione – pracownik musi mieć umowę o pracę i pensja powinna być w zakresie od 4000 do 4500 zł. Na przykład, jeśli ktoś zarabia 4200 zł, to wtedy wszystko gra i raport się pojawi. W programowaniu używanie operatorów logicznych, takich jak '&&', jest kluczowe, bo pozwalają one precyzyjnie ustalić kryteria. Dobrze zrozumiane operatory '&&' i '||' pomagają unikać niejasności i błędów w logice, a to jest podstawa dobrego pisania kodu.