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: 10 czerwca 2026 21:17
  • Data zakończenia: 10 czerwca 2026 21:26

Egzamin niezdany

Wynik: 10/40 punktów (25,0%)

Wymagane minimum: 20 punktów (50%)

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

Jak utworzyć klucz obcy na wielu kolumnach podczas definiowania tabeli?

A. CONSTRAINT fk_osoba_uczen FOREIGN KEY(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
B. CONSTRAINT (nazwisko, imie) FOREIGN KEY REFERENCES osoby (nazwisko, imie)
C. CONSTRAINT fk_osoba_uczen FOREIGN KEY ON(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
D. CONSTRAINT (nazwisko, imie) FOREIGN REFERENCES KEY osoby (nazwisko, imie)
Pierwsza z niepoprawnych odpowiedzi zawiera błąd w składni, ponieważ nieprawidłowo łączy elementy definicji klucza obcego oraz niepoprawnie używa słowa kluczowego 'REFERENCES' przed 'FOREIGN KEY', co narusza standard SQL. W drugiej niepoprawnej odpowiedzi również występuje błąd w kolejności słów kluczowych, co czyni konstrukcję naruszającą zasady składni SQL. W trzeciej odpowiedzi z kolei mamy do czynienia z błędnym użyciem 'ON', które nie jest częścią definicji klucza obcego w tym kontekście. Ponadto, konstrukcja 'FOREIGN REFERENCES KEY' nie ma sensu w kontekście SQL, ponieważ nie istnieje pojęcie 'REFERENCES' obok 'FOREIGN KEY'. W związku z tym, wszystkie trzy niepoprawne odpowiedzi nie spełniają wymogów poprawnej definicji klucza obcego, co prowadzi do problemów z integralnością danych i błędami podczas wykonywania zapytań w bazie danych. Rekomendowane jest zawsze przestrzeganie standardów SQL i testowanie zapytań w bezpiecznym środowisku przed ich zastosowaniem w produkcji.

Pytanie 2

Który efekt został zaprezentowany na filmie?

A. Zmiana jasności zdjęć.
B. Zwiększenie ostrości zdjęcia.
C. Przenikanie zdjęć.
D. Zmniejszenie kontrastu zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 3

W aplikacji internetowej komunikat powinien pojawiać się tylko wtedy, gdy dany użytkownik jest na stronie po raz pierwszy. Którą funkcję PHP należy w tym celu zastosować?

A. setcookie
B. mysqli_change_user
C. session_destroy
D. define
W tym zadaniu kluczowe jest zrozumienie, jaki mechanizm w PHP pozwala rozpoznać użytkownika pomiędzy kolejnymi wizytami. Chodzi o sytuację, gdy przeglądarka zamyka się, mija trochę czasu, a my nadal chcemy wiedzieć, czy dana osoba już kiedyś była na stronie. Do tego nie wystarczą zwykłe zmienne czy nawet sama sesja, bo sesja zazwyczaj wygasa po pewnym czasie bezczynności i jest przechowywana po stronie serwera. Mechanizm, który naturalnie pasuje do takiego scenariusza, to właśnie cookies, ustawiane funkcją setcookie(). Propozycja define jest związana z definiowaniem stałych w kodzie PHP. To działa tylko w czasie wykonywania skryptu po stronie serwera i nie ma żadnego związku z konkretnym użytkownikiem czy jego przeglądarką. Stała zdefiniowana przez define() istnieje tylko w jednym przebiegu skryptu i znika po zakończeniu wykonania. Nie pozwala więc zapamiętać, że konkretny użytkownik był już kiedyś na stronie. To raczej narzędzie konfiguracyjne, np. do zdefiniowania ścieżek, wersji aplikacji, stałych liczbowych. Często pojawia się też mylne przekonanie, że skoro są sesje, to wystarczy coś zrobić z session_destroy. Ta funkcja służy do niszczenia całej sesji użytkownika (wylogowania, czyszczenia danych sesyjnych), a nie do wykrywania pierwszej wizyty. Co więcej, sesja jest mechanizmem krótkotrwałym i zależnym od identyfikatora sesji, więc do trwałego rozpoznawania „pierwszy raz / kolejny raz” bez logowania to średni pomysł. W standardowych projektach sesja jest używana do przechowywania aktualnego stanu użytkownika, a nie do długotrwałego śledzenia wizyt. mysqli_change_user natomiast dotyczy zupełnie innego obszaru – zmiany użytkownika połączenia z bazą danych MySQL. To operacja na poziomie serwera bazy, kompletnie oderwana od pojęcia „pierwsza wizyta użytkownika na stronie”. Moim zdaniem typowy błąd przy takich pytaniach polega na mieszaniu mechanizmów: programista widzi słowo „user” i od razu myśli o logowaniu do bazy albo sesji, zamiast pomyśleć o tym, jak HTTP i przeglądarka identyfikują użytkownika między wizytami. Według dobrych praktyk webowych, jeśli chcemy prostego rozróżnienia, czy ktoś był już na stronie, to używamy ciasteczek ustawianych setcookie(), a pozostałe wymienione funkcje pełnią zupełnie inne, bardziej lokalne lub serwerowe role.

Pytanie 4

W PHP w konstrukcji switch konieczne jest użycie

A. konstrukcji switch(wyrażenie)
B. instrukcji break po każdym przypadku case
C. przynajmniej dwóch instrukcji case
D. instrukcji default
Wiele osób może mylnie sądzić, że każda opcja wymieniona w pytaniu jest konieczna do prawidłowego działania instrukcji switch. Na przykład, powszechnym błędem jest przekonanie, że instrukcja default jest niezbędna. W rzeczywistości jest to sekcja opcjonalna, która jest wykonywana, jeśli żaden z przypadków case nie pasuje do wyrażenia. W przypadku, gdy instrukcja default nie jest użyta, program po prostu przejdzie do następnej instrukcji po switch, jeśli żaden z przypadków nie został spełniony. Również nie jest konieczne posiadanie przynajmniej dwóch case. Można mieć jedną sekcję case, a nawet żadną, ale w tym ostatnim przypadku kod nie będzie zawierał żadnego działania w switch. Innym częstym nieporozumieniem jest myślenie, że instrukcja break musi znajdować się po każdej sekcji case. Choć break jest zalecany, aby uniknąć tzw. 'fall-through', czyli niezamierzonego przejścia do kolejnych sekcji case, jego brak nie czyni switch niepoprawnym. Program wciąż działa, ale może nie zachowywać się zgodnie z oczekiwaniami, co może prowadzić do trudnych do zdiagnozowania błędów. W praktyce, dla czytelności i przewidywalności kodu, stosowanie break jest uznawane za dobrą praktykę. Zrozumienie tych zasad jest kluczowe dla efektywnego korzystania z konstrukcji switch w PHP.

Pytanie 5

W wyniku działania pętli zapisanej w języku PHP zostanie wypisany ciąg liczb:

 $liczba = 10;
while ($liczba < 50) {
    echo "$liczba ";
    $liczba = $liczba + 5;
}
A. 10 15 20 25 30 35 40 45
B. 0 5 10 15 20 25 30 35 40 45
C. 0 5 10 15 20 25 30 35 40 45 50
D. 10 15 20 25 30 35 40 45 50
Dobrze zrozumiałeś działanie pętli while w języku PHP. Wybrana przez Ciebie sekwencja liczb (10, 15, 20, 25, 30, 35, 40, 45) jest poprawna. Pętla while, znajdująca się w skrypcie PHP, rozpoczyna działanie od wartości zmiennej, którą określono jako 10 i zwiększa ją o 5 za każdą iteracją, dopóki jej wartość jest mniejsza niż 50. Tak więc, ostatnią wydrukowaną liczbą jest 45, ponieważ w kolejnym kroku wartość zmiennej wynosiłaby już 50, co jest wartością większą od maksymalnej zdefiniowanej w warunku pętli. Zrozumienie działania pętli to klucz do efektywnego programowania, umożliwiającego tworzenie skomplikowanych algorytmów. Dobre praktyki zalecają, aby zawsze dokładnie analizować i rozumieć, jak daną pętle będą interpretowane przez interpreter języka.

Pytanie 6

W PHP konstrukcja foreach stanowi rodzaj

A. pętli, wyłącznie dla elementów tablicy
B. wyboru, dla elementów tablicy
C. warunkową, niezależnie od typu zmiennej
D. pętli, niezależnie od typu zmiennej
Pierwsza niepoprawna odpowiedź myli foreach z instrukcją wyboru, co jest błędne. Foreach nie wybiera elementów, tylko je przetwarza. W PHP nie mamy jakiejś instrukcji wyboru jak if-else, które różnicują zadania w zależności od warunków. Pętla foreach działa na zasadzie przetwarzania wszystkich elementów, a nie ich selekcji. Następnie, ktoś napisał, że foreach jest niezależna od typu zmiennej, co również jest mylące. W prawdziwym życiu foreach wymaga, aby zmienna była tablicą. Jakbyś wrzucił coś innego, co nie jest tablicą, PHP wyrzuci błąd, więc to nie jest uniwersalne dla wszystkich typów. Ostatnia błędna odpowiedź próbuje przypisać foreach do instrukcji warunkowej. Instrukcje warunkowe, jak if czy switch, decydują na podstawie spełniania pewnych warunków, a foreach po prostu wykonuje operację na każdym elemencie tablicy. Ważne jest, żeby zrozumieć tę różnicę, bo każda z tych konstrukcji ma swoje zastosowania, które są istotne, gdy programujemy.

Pytanie 7

W kodzie JavaScript aby wywołać okno z polem do wprowadzania danych i przyciskami OK i ANULUJ, należy zastosować metodę

A. message();
B. alert();
C. prompt();
D. confirm();
W tym zadaniu wszystko kręci się wokół trzech podstawowych funkcji dialogowych JavaScriptu: alert(), confirm() i prompt(). Bardzo łatwo je ze sobą pomylić, bo wszystkie wywołują okienka przeglądarkowe i na pierwszy rzut oka wyglądają podobnie. Jednak ich przeznaczenie jest inne i warto to sobie raz porządnie poukładać w głowie. alert() służy wyłącznie do wyświetlenia komunikatu. Pokazuje okno z tekstem i jednym przyciskiem OK. Nie ma żadnego pola do wpisywania danych, nie zwraca też żadnej wartości od użytkownika – po prostu informuje. Typowe użycie to komunikaty ostrzegawcze albo bardzo proste debugowanie na początku nauki. Jeśli ktoś wybierze alert() przy pytaniu o wprowadzanie danych, to zwykle dlatego, że kojarzy „okienko w przeglądarce” właśnie z alertem, bo to najczęściej pokazywany przykład. confirm() to trochę inna bajka. To okno z komunikatem i dwoma przyciskami: OK i Anuluj. Ta funkcja zwraca wartość typu boolean: true dla OK, false dla Anuluj. Używa się jej, gdy chcesz zapytać użytkownika o potwierdzenie jakiejś akcji, np. „Czy na pewno chcesz usunąć ten rekord?”. I tu pojawia się częsty błąd: skoro są dwa przyciski, to wielu osobom wydaje się, że to jest dokładnie to, o co chodzi w pytaniu. Brakuje jednak kluczowego elementu – pola tekstowego do wpisania danych. confirm() niczego nie pobiera, jedynie pyta o decyzję tak/nie. Z kolei message() w ogóle nie jest standardową funkcją w JavaScripcie. Jeśli ktoś ją wybierze, to zwykle wynika to z domysłu na zasadzie „brzmi sensownie”. W specyfikacji ECMAScript nie ma takiej wbudowanej metody, więc w normalnym kodzie przeglądarkowym jej użycie zakończy się błędem ReferenceError. Tego typu odpowiedzi uczą, żeby nie zgadywać po nazwie, tylko kojarzyć konkretne funkcje z ich działaniem. Podsumowując, jedyna funkcja, która łączy w sobie pole tekstowe oraz przyciski OK i Anuluj, to prompt(). alert() tylko informuje, confirm() tylko pyta o potwierdzenie, a message() po prostu nie istnieje jako standardowa metoda. Typowy błąd myślowy polega na skupieniu się na samych przyciskach i pominięciu wymogu „pola do wprowadzania danych”, które jest tutaj kluczowe z punktu widzenia logiki języka JavaScript i sposobu komunikacji z użytkownikiem.

Pytanie 8

W tabeli podzespoly należy zaktualizować wartość pola URL na "toshiba.pl" dla wszystkich rekordów, w których pole producent jest równe TOSHIBA. Jak będzie wyglądała ta zmiana w języku SQL?

A. UPDATE producent='TOSHIBA' SET URL = 'toshiba.pl';
B. UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';
C. UPDATE podzespoly.producent='TOSHIBA' SET URL = 'toshiba.pl';
D. UPDATE podzespoly SET URL = 'toshiba.pl';
Aby zaktualizować wartość pola URL w tabeli podzespoly na 'toshiba.pl' dla wszystkich rekordów, gdzie pole producent jest równe 'TOSHIBA', należy użyć instrukcji UPDATE w języku SQL. Właściwa składnia tej instrukcji to: UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';. W tej instrukcji UPDATE najpierw wskazujemy, której tabeli dotyczy modyfikacja, w tym przypadku 'podzespoly'. Następnie określamy, jakie pole chcemy zaktualizować, czyli 'URL', oraz ustawiamy nową wartość, którą w tym przypadku jest 'toshiba.pl'. Kluczowym elementem tej operacji jest klauzula WHERE, która filtruje rekordy, które mają być zaktualizowane; w tym przypadku tylko te, które mają producenta 'TOSHIBA'. Bez klauzuli WHERE wszystkie rekordy w tabeli zostałyby zmodyfikowane, co mogłoby prowadzić do utraty danych. Przykład ilustruje, jak precyzyjnie można zarządzać danymi w bazie poprzez odpowiednie warunki. Tego typu operacje są zgodne z normami SQL, co zapewnia ich efektywność i bezpieczeństwo w zarządzaniu danymi.

Pytanie 9

Aby zaktualizować maksymalną długość kolumny imie w tabeli klienci do 30 znaków, należy zastosować w języku SQL poniższy kod

A. ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);
B. ALTER TABLE klienci CHANGE imie TEXT;
C. CHANGE TABLE klienci MODIFY imie CHAR(30);
D. CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);
Każda z pozostałych odpowiedzi zawiera błędne podejścia do zmiany długości pola w tabeli. Odpowiedź CHANGE TABLE klienci TO COLUMN imie SET CHAR(30) nie jest poprawna, ponieważ składnia SQL nie przewiduje użycia słowa kluczowego 'CHANGE' w kontekście zmiany kolumny. W SQL zmiany struktury tabeli wykonuje się za pomocą polecenia ALTER TABLE. Dodatkowo, CHAR(30) nie jest zalecane w przypadku, gdy długość przechowywanych danych może się różnić, gdyż zawsze rezerwuje miejsce na 30 znaków, co prowadzi do marnotrawstwa przestrzeni dyskowej. Odpowiedź ALTER TABLE klienci CHANGE imie TEXT jest błędna, ponieważ zmienia typ danych na TEXT, który może przechowywać znacznie większe ilości danych, co nie jest wymagane w przypadku imienia. Przykładowo, użycie TEXT uniemożliwia również wykorzystanie indeksów na tym polu, co może wpłynąć negatywnie na wydajność zapytań. Odpowiedź CHANGE TABLE klienci MODIFY imie CHAR(30) również jest nieprawidłowa z powodu stosowania złej składni oraz wyboru niewłaściwego typu danych. Stosowanie CHAR dla imion może prowadzić do nieefektywności w przechowywaniu, a także nieodpowiedniego zarządzania długością danych, co jest sprzeczne z najlepszymi praktykami projektowania baz danych.

Pytanie 10

CMYK to kombinacja czterech podstawowych kolorów stosowanych w druku:

A. czerwonego, purpurowego, żółtego, szarego
B. turkusowego, purpurowego, białego, czarnego
C. turkusowego, purpurowego, żółtego, czarnego
D. turkusowego, błękitnego, białego, różowego
Wszystkie podane odpowiedzi zawierające inne kolory niż cyjan, magenta, żółty i czarny są niepoprawne, ponieważ nie odnoszą się do uznawanego modelu kolorów CMYK. Na przykład, zestaw kolorów turkusowy, błękitny, biały, różowy nie zawiera kluczowych składników, które definiują CMYK. Błękit, choć podobny do cyjanu, nie jest uznawany za jego zamiennik w kontekście druku. Ponadto, biały kolor nie jest używany w modelu CMYK, ponieważ jest reprezentowany jako brak pigmentu, a nie jako osobny kolor. Kolejny przykład - czerwony, purpurowy, żółty i szary - również nie oddaje prawdziwego modelu CMYK, ponieważ czerwony nie jest jednym z kolorów podstawowych w tym systemie. Zamiast tego, w modelu CMYK używa się magenty, która jest intensywnym odcieniem różowoczerwonym. Warto zauważyć, że niektóre osoby mogą mylić różowe odcienie z magentą, co prowadzi do błędów w projektowaniu, szczególnie w kontekście druku. Również zestaw kolorów turkusowy, purpurowy, białe i czarny nie oddaje zasadności stosowania czarnego jako 'kluczowego' koloru w modelu CMYK. Często w druku czarny jest dodawany, aby zwiększyć głębokość i kontrast kolorów. W zrozumieniu tych zasad kluczowe jest odniesienie się do praktyk druku oraz standardów branżowych, które jasno określają, jak kolory powinny być łączone i drukowane. Dlatego zrozumienie podstawowych kolorów w modelu CMYK ma fundamentalne znaczenie dla każdego, kto zajmuje się grafiką i drukiem.

Pytanie 11

Jaką postać ma kolor zdefiniowany w formacie szesnastkowym jako #11FE07 w modelu RGB?

A. rgb(ll, 127, 7)
B. rgb(17, FE, 7)
C. rgb(17, 255, 7)
D. rgb(17, 254, 7)
Odpowiedzi rgb(ll, 127, 7), rgb(17, 255, 7) i rgb(17, FE, 7) mają błędy, które wynikają z niewłaściwego zrozumienia konwersji szesnastkowych na dziesiętne. W pierwszej odpowiedzi 'll' to w ogóle nie jest poprawna wartość w kontekście kolorów RGB. W systemie RGB musimy używać całkowitych liczb od 0 do 255, a 'll' to żaden numer. W drugiej odpowiedzi, zmiana 'FE' na '255' to błąd, bo 'FE' w szesnastkowym to 254 w dziesiętnym, więc tu jest niezgodność. A w odpowiedzi 'rgb(17, FE, 7)' znowu nie przeliczono 'FE', przez co staje się to nieczytelne i niezgodne ze standardami RGB. Często ludzie mylą różne systemy liczbowe przy konwertowaniu kolorów i to jest zwyczajny błąd. Fajnym pomysłem na naukę jest zabawa z narzędziami do kolorów w programach graficznych, bo to pomaga lepiej zrozumieć te przeliczenia i ogarnąć różnice między systemami liczbowymi.

Pytanie 12

Funkcję Clean Project środowiska IDE stosuje się do

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

Pytanie 13

Wskaźnik HTML, który umożliwia oznaczenie tekstu jako błędnego lub nieodpowiedniego poprzez jego przekreślenie, to jaki?

A. <s> </s>
B. <b> </b>
C. <u> </u>
D. <em> </em>
Element <s> w HTML służy do oznaczania tekstu jako nieaktualnego, błędnego albo już nieobowiązującego poprzez jego przekreślenie. Przeglądarka domyślnie renderuje taki fragment z poziomą linią przez środek tekstu. W praktyce używa się go np. przy cenach promocyjnych: <p>Stara cena: <s>199 zł</s> Nowa cena: 149 zł</p> albo przy korektach treści, kiedy chcemy pokazać, że coś zostało zmienione, ale wciąż widoczne jest, co było wcześniej. Warto wiedzieć, że historycznie do podobnych celów używano też <strike>, ale ten znacznik jest przestarzały (deprecated) w standardzie HTML i nie powinien być już stosowany. Moim zdaniem lepiej od razu przyzwyczajać się do poprawnych, aktualnych tagów, bo to się później opłaca przy większych projektach. W nowszych specyfikacjach HTML5 zaleca się stosowanie <s> właśnie do treści nieaktualnych, ale nie takich, które zostały formalnie wycofane – do tego jest znacznik <del>, który dodatkowo semantycznie wskazuje usunięcie fragmentu, często używany w systemach kontroli wersji treści. Z mojego doświadczenia warto rozróżniać <s>, <del> i <ins>, bo w połączeniu z CSS i narzędziami do dostępności (np. czytnikami ekranu) daje to lepszą semantykę dokumentu. Dobrą praktyką jest też nie nadużywać przekreśleń tylko dla „efektu wizualnego” – jeśli chcesz coś tylko wyróżnić graficznie, lepiej użyć CSS, a znaczników semantycznych używać zgodnie z ich przeznaczeniem.

Pytanie 14

W SQL, aby dokonać zmiany w strukturze tabeli, na przykład dodać lub usunąć kolumnę, powinno się użyć polecenia

A. DROP TABLE
B. ALTER TABLE
C. TRUNCATE
D. UPDATE
Odpowiedź 'ALTER TABLE' jest prawidłowa, ponieważ to polecenie w SQL umożliwia modyfikację struktury istniejącej tabeli. Dzięki 'ALTER TABLE' możemy dodawać nowe kolumny, usuwać istniejące, zmieniać typy danych kolumn, a także ustawiać ograniczenia, takie jak klucze główne czy unikalne. Przykładowe zastosowanie to: 'ALTER TABLE employees ADD COLUMN birthdate DATE;' co dodaje kolumnę 'birthdate' do tabeli 'employees'. Użycie tego polecenia jest zgodne z dobrymi praktykami, ponieważ pozwala na elastyczne dostosowywanie struktury bazy danych w odpowiedzi na zmieniające się wymagania aplikacji. Warto również zaznaczyć, że 'ALTER TABLE' jest standardowym poleceniem w SQL, co oznacza, że jest obsługiwane przez większość systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL czy SQL Server, co czyni je uniwersalnym narzędziem w pracy z danymi.

Pytanie 15

W języku PHP użyto funkcji is_int). Które z wymienionych wywołań tej funkcji zwróci wartość TRUE?

A. is_int(135)
B. is_int("135")
C. is_int(13.5)
D. is_int(NULL)
Wybór is_int(135) jako poprawnej odpowiedzi jest uzasadniony, ponieważ funkcja is_int w języku PHP służy do sprawdzania, czy zmienna jest typu całkowitego (integer). W tym przypadku 135 jest liczbą całkowitą, co oznacza, że funkcja zwróci wartość TRUE. Użycie is_int w praktyce jest przydatne, gdy chcemy upewnić się, że nasze dane wejściowe są odpowiedniego typu, co jest szczególnie ważne w aplikacjach, gdzie typ danych ma kluczowe znaczenie, na przykład w operacjach matematycznych czy przy interakcji z bazą danych. Dobrą praktyką jest zawsze walidowanie danych, aby uniknąć potencjalnych błędów i zapewnić stabilność aplikacji. Ponadto, w PHP typy są dynamiczne, co sprawia, że błędne typy danych mogą prowadzić do trudnych do zdiagnozowania błędów, dlatego stosowanie is_int może znacząco poprawić jakość kodu i jego bezpieczeństwo. Przykładowo, przed wykonaniem operacji arytmetycznych na wartościach przekazanych z formularza, warto sprawdzić, czy są one typu integer, aby zapobiec niepożądanym zachowaniom programu.

Pytanie 16

Funkcja drzewo kontekstowe w edytorze WYSIWYG Adobe Dreamweaver ma na celu

A. określenie kaskadowych arkuszy stylów przypisanych do strony
B. prezentowanie interaktywnej struktury drzewa HTML dla treści statycznych i dynamicznych
C. stylizację tekstu za pomocą dostępnych znaczników
D. przygotowanie szablonu witryny internetowej
Wybór odpowiedzi dotyczącej definiowania kaskadowych arkuszy stylów (CSS) w kontekście funkcji drzewa kontekstowego w Adobe Dreamweaver jest mylący. Kaskadowe arkusze stylów są narzędziem służącym do stylizacji stron internetowych, ale nie są bezpośrednio związane z funkcjonalnością drzewa kontekstowego, które koncentruje się na przedstawieniu struktury HTML dokumentu. Kiedy projektant korzysta z edytora, może wprowadzać zmiany w stylach CSS, jednak drzewo kontekstowe nie jest dedykowane temu procesowi. Ponadto, zrozumienie struktury HTML jest kluczowe do efektywnego stosowania CSS, ale to nie oznacza, że można je mylić. Druga odpowiedź, dotycząca tworzenia szablonu strony internetowej, jest również nieprecyzyjna. Szablony są narzędziem do ułatwienia konstrukcji stron, ale drzewo kontekstowe nie jest bezpośrednio związane z ich tworzeniem. Podobnie, formatowanie tekstu przy pomocy znaczników nie jest funkcją drzewa kontekstowego; jest to zadanie edytora WYSIWYG jako całości. Zrozumienie tych koncepcji technicznych jest kluczowe, aby uniknąć typowych pułapek myślowych, takich jak mylenie różnych funkcji edytorów oraz ich zastosowań w procesie tworzenia stron internetowych. Osoby pracujące w branży powinny być dobrze zaznajomione z odpowiedzialnością, jaką niesie ze sobą poprawne stosowanie narzędzi i technologii, aby efektywnie realizować projekty webowe.

Pytanie 17

Jakie prawa będzie miał użytkownik jan po wykonaniu poniższych poleceń na bazie danych?

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie mógł dodawać rekordy do tabeli klienci
B. Będzie mógł zmieniać strukturę tabeli klienci
C. Będzie mógł usuwać rekordy z tabeli klienci
D. Będzie mógł przeszukiwać dane w tabeli klienci
Polecenie GRANT ALL PRIVILEGES ON klienci TO jan pozwala użytkownikowi jan na wykonywanie wszystkich operacji na tabeli klienci. Obejmuje to działania takie jak SELECT INSERT UPDATE DELETE oraz inne operacje strukturalne jak ALTER czy DROP. Następnie polecenie REVOKE SELECT INSERT UPDATE DELETE ON klienci FROM jan usuwa część tych uprawnień. Po wykonaniu tych poleceń jan zachowuje uprawnienia do zmiany struktury tabeli klienci czyli może wykonywać operacje takie jak ALTER. ALTER TABLE jest kluczowe w zarządzaniu bazą danych pozwalając na dodawanie lub usuwanie kolumn oraz modyfikację typów danych. W praktyce oznacza to że jan może np. dostosować strukturę danych do nowych wymagań biznesowych co jest ważnym aspektem elastycznego zarządzania bazą danych. Umiejętność zarządzania strukturą tabel jest ważną częścią administracji baz danych i powinna być wykonywana zgodnie z najlepszymi praktykami aby zapewnić integralność danych i wydajność systemu. Użytkownik powinien regularnie przeglądać i aktualizować dokumentację techniczną aby śledzić wszelkie zmiany w strukturze bazy danych

Pytanie 18

Który zapis w języku JavaScript daje jednakowy rezultat do przedstawionego kodu?

x = 0;
x += 10;
A. x = 10; x = 0;
B. x = 0; x--; x *= 9;
C. x = 10; x = x + 10;
D. x = 0; x++; x = x + 9;
Doskonale! Wybrałeś prawidłową odpowiedź, która jest zgodna z przykładem kodu przedstawionym na zdjęciu. W JavaScript, zapis 'x = 0; x++; x = x + 9;' działa w następujący sposób: najpierw zmienna 'x' jest inicjalizowana wartością 0. Następnie, operator inkrementacji '++', zwiększa wartość zmiennej 'x' o 1. Końcowa instrukcja dodaje 9 do obecnej wartości zmiennej 'x', która wynosi 1. W rezultacie końcowa wartość zmiennej 'x' wynosi 10, co jest zgodne z kodem przedstawionym na zdjęciu. To jest praktyczne zastosowanie operatorów inkrementacji oraz dodawania w JavaScript, umożliwiające manipulację wartościami zmiennych. To jest ważne w kontekście algorytmów i operacji matematycznych. Warto zwrócić uwagę, że operator '++' jest skrótem dla 'x = x + 1', co jest zgodne ze standardami JavaScript.

Pytanie 19

W HTML-u atrybut shape w znaczniku area, który definiuje kształt obszaru, może przyjąć wartość

A. rect, poly, circle
B. rect, triangle, circle
C. rect, square, circle
D. poly, square, circle
Wybór niewłaściwej odpowiedzi może wynikać z nieporozumień dotyczących atrybutu shape w znaczniku area. Odpowiedzi wskazujące na 'square' lub 'triangle' są błędne, ponieważ te kształty nie są obsługiwane przez standard HTML. W przypadku 'square', mogłoby się wydawać, że jest to po prostu inna forma prostokąta, jednak HTML nie definiuje takiej wartości dla atrybutu shape. Również 'triangle' nie jest uznawany w kontekście standardowych atrybutów; HTML nie pozwala na bezpośrednie definiowanie kształtów trójkątnych w obszarach mapy obrazów. Tego rodzaju zamieszanie może wynikać z niepełnego zrozumienia funkcji atrybutu, który jest jednoznacznie związany z prostokątem, okręgiem oraz wielokątem. Kluczowe jest, aby przyjrzeć się dokumentacji HTML oraz standardom W3C, które jasno określają poprawne wartości dla atrybutu shape. W praktyce, zrozumienie tych różnic jest istotne dla tworzenia efektywnych i dostępnych interfejsów użytkownika, gdzie każdy element jest precyzyjnie zdefiniowany i zrozumiały dla przeglądarek oraz użytkowników. Ponadto, stosowanie niepoprawnych wartości może prowadzić do błędów w renderowaniu strony, co negatywnie wpływa na doświadczenia użytkowników i dostępność serwisu.

Pytanie 20

Jak nazywa się platforma wspierająca rozwój oprogramowania w technologii .NET?

A. framework
B. db2
C. middleware
D. eclipse
Framework to kluczowy element w ekosystemie programowania w technologii .NET, który dostarcza zestaw narzędzi, bibliotek i standardów do tworzenia aplikacji. .NET Framework, opracowany przez firmę Microsoft, umożliwia deweloperom tworzenie różnorodnych aplikacji, od aplikacji webowych po aplikacje desktopowe i mobilne. Framework ten wspiera szeroki zakres języków programowania, w tym C#, Visual Basic i F#. Działa na zasadzie dostarczania środowiska uruchomieniowego oraz zestawu klas, które ułatwiają proces programowania, przyspieszając rozwój dzięki gotowym komponentom i wspólnym funkcjonalnościom. Przykładowo, ASP.NET, część .NET Framework, jest używany do budowy aplikacji webowych, co pozwala na łatwe implementowanie funkcji takich jak autoryzacja użytkowników, zarządzanie sesjami i integracja z bazami danych. Dzięki swojej architekturze, .NET Framework przestrzega standardów, takich jak Common Language Specification (CLS), co zapewnia interoperacyjność między różnymi językami programowania. Jest to fundament, na którym opiera się wiele nowoczesnych rozwiązań w świecie IT, co czyni go niezastąpionym narzędziem dla każdego programisty w technologii .NET.

Pytanie 21

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

A. TRUE
B. NULL
C. 0
D. FALSE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja empty() w PHP służy do sprawdzania, czy zmienna jest pusta. Zmienna uznawana jest za pustą, jeśli nie istnieje, ma wartość NULL, jest równoważna FALSE, jest pustym ciągiem (''), jest pustą tablicą lub ma wartość 0. W przypadku zmiennej $a, która ma wartość liczbową równą 0, funkcja empty($a) zwróci TRUE, co oznacza, że zmienna jest uznawana za pustą. Kluczowym aspektem jest zrozumienie, że w PHP wartość 0 jest interpretowana jako fałszywa w kontekście logicznym, a tym samym spełnia kryteria funkcji empty(). Praktyczne zastosowanie tej funkcji można zauważyć w wielu aspektach programowania: na przykład podczas walidacji danych wejściowych w formularzach, gdzie chcemy upewnić się, że użytkownik nie pozostawił pustych pól. Dobrą praktyką jest użycie empty() zamiast bezpośrednich porównań, ponieważ jest bardziej odporna na różne typy danych oraz zrozumiała w kontekście semantycznym, co poprawia czytelność kodu.

Pytanie 22

W CSS, aby zastosować efekt przekreślenia, a także podkreślenia dolnego lub górnego w tekście, należy użyć

A. text-transform
B. text-align
C. text-indent
D. text-decoration

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'text-decoration' jest prawidłowa, ponieważ ta właściwość CSS umożliwia dodawanie różnych efektów dekoracyjnych do tekstu, takich jak przekreślenie, podkreślenie oraz nadkreślenie. Przykładowo, aby przekreślić tekst, możesz użyć następującego kodu: 'text-decoration: line-through;'. Z kolei dla podkreślenia tekstu zastosujesz 'text-decoration: underline;'. W kontekście standardów CSS3, 'text-decoration' ma na celu nie tylko estetykę, ale także poprawę czytelności, co jest kluczowe w projektowaniu responsywnych i dostępnych stron internetowych. Warto również pamiętać o dobrych praktykach, takich jak unikanie nadmiernego stosowania dekoracji, które mogą odwracać uwagę od treści. W praktyce, kontrolowanie wyglądu tekstu za pomocą 'text-decoration' pozwala na tworzenie bardziej zróżnicowanych i atrakcyjnych interfejsów użytkownika, co w efekcie może zwiększyć zaangażowanie odwiedzających stronę.

Pytanie 23

Które z poniższych twierdzeń na temat języków programowania jest FAŁSZYWE?

A. C++ jest językiem obiektowym
B. JavaScript jest językiem skryptowym
C. SQL jest językiem programowania strukturalnego
D. PHP jest językiem do tworzenia stron w czasie rzeczywistym

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
SQL (Structured Query Language) to język zapytań, który służy do zarządzania danymi w relacyjnych bazach danych. Pomimo swojej nazwy, SQL nie jest językiem programowania strukturalnego w tradycyjnym sensie, ponieważ nie obsługuje pełnych konstrukcji programistycznych, takich jak pętle czy warunki, które są charakterystyczne dla języków takich jak C czy Pascal. SQL jest językiem deklaratywnym, co oznacza, że użytkownicy formułują zapytania, które definiują, jakie dane chcą uzyskać, a nie jak je uzyskać. Dzięki temu SQL jest niezwykle efektywny w pracy z dużymi zbiorami danych i umożliwia szybkie wykonywanie operacji na bazach danych. Przykładowe zastosowanie SQL to tworzenie zapytań do wyszukiwania określonych informacji w bazie danych klientów lub przy używaniu funkcji agregujących do analizy danych. Zrozumienie roli SQL w architekturze baz danych oraz umiejętność jego stosowania jest kluczowe w dziedzinie analizy danych i rozwijania aplikacji webowych.

Pytanie 24

Hermetyzacja to zasada programowania obiektowego, która wskazuje, że

A. klasy i obiekty mogą mieć zdefiniowane metody wirtualne, które są realizowane w klasach lub obiektach pochodnych.
B. typy pól w klasach i obiektach mogą być zmieniane dynamicznie w zależności od przypisywanych danych.
C. pola oraz metody, które są używane wyłącznie przez daną klasę lub obiekt, są ograniczane zasięgiem private lub protected.
D. klasy i obiekty mogą dzielić się funkcjonalnością.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Hermetyzacja (ang. encapsulation) to kluczowa zasada programowania obiektowego, która polega na ukrywaniu wewnętrznej logiki obiektów oraz ograniczaniu dostępu do ich wewnętrznych danych. Dzięki hermetyzacji, pola i metody, które są używane tylko przez daną klasę lub obiekt, mogą być oznaczone jako private lub protected. Oznaczenie private sprawia, że dany element jest dostępny tylko w obrębie klasy, w której został zdefiniowany, natomiast protected pozwala na dostęp do niego również w klasach potomnych. Przykładowo, w języku Java można zdefiniować klasę 'Samochod', w której pole 'numerRejestracyjny' jest oznaczone jako private. Oznacza to, że inne klasy nie mogą bezpośrednio modyfikować tego pola, co zwiększa bezpieczeństwo danych i zmniejsza ryzyko błędów. Hermetyzacja wspiera również zasadę pojedynczej odpowiedzialności, ograniczając zasięg zmian w kodzie do konkretnej klasy. Standardy programowania obiektowego, takie jak SOLID, również podkreślają znaczenie hermetyzacji jako sposobu na osiągnięcie lepszej organizacji kodu i jego większej elastyczności. W praktyce, hermetyzacja pozwala programistom tworzyć bardziej spójne i łatwiejsze w utrzymaniu systemy, gdzie komponenty są od siebie odseparowane, a interakcje między nimi są dobrze zdefiniowane.

Pytanie 25

Aby dostosować dźwięk do określonego poziomu głośności, należy zastosować efekt

A. wyciszenia
B. usuwania szumów
C. normalizacji
D. podbicia basów

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Normalizacja to proces, który polega na dostosowywaniu poziomu głośności nagrania audio, tak aby maksymalny sygnał osiągał określony poziom, najczęściej bliski maksymalnej wartości dostępnej dla formatu audio. Normalizacja dźwięku może być zastosowana zarówno do pojedynczych ścieżek, jak i do całych projektów, co pozwala na uzyskanie spójności głośności w różnych utworach. W praktyce oznacza to, że nagrania są przetwarzane tak, aby największy dźwięk nie przekraczał ustalonego progu, co zapobiega zniekształceniom i pogorszeniu jakości dźwięku. Standardowe poziomy normalizacji obejmują wartości takie jak -1 dBFS, które zapewniają odpowiednią przestrzeń dla dynamicznych szczytów dźwięku. Przykładem zastosowania normalizacji jest przygotowywanie playlisty do transmisji radiowej, gdzie wszystkie utwory muszą być na podobnym poziomie głośności, aby zapewnić komfort słuchania. W branży muzycznej normalizacja jest kluczowym procesem, który zapewnia nie tylko odpowiednią jakość dźwięku, ale i profesjonalny odbiór nagrań przez słuchaczy.

Pytanie 26

Dzięki poleceniu ALTER TABLE można

A. usunąć rekord
B. zmieniać wartości rekordów
C. skasować tabelę
D. zmieniać strukturę tabeli

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Polecenie ALTER TABLE jest kluczowym elementem w zarządzaniu bazami danych, umożliwiającym wprowadzanie zmian w strukturze istniejących tabel. Dzięki temu poleceniu możemy dodawać nowe kolumny, zmieniać typy danych istniejących kolumn, usuwać kolumny, a także zmieniać ograniczenia, takie jak klucze główne czy obce. Na przykład, w przypadku potrzeby dodania kolumny 'data_urodzenia' do tabeli 'użytkownicy', można użyć komendy: ALTER TABLE użytkownicy ADD data_urodzenia DATE;. Zmiany strukturalne są niezbędne, aby dostosować bazę danych do ewoluujących potrzeb aplikacji oraz do zapewnienia integralności danych. W praktyce, operacje te są często stosowane przy modernizacji aplikacji lub w odpowiedzi na zmieniające się wymagania biznesowe. Dobre praktyki wskazują, że przed wprowadzeniem zmian w strukturze tabeli warto wykonać kopię zapasową danych oraz przeanalizować wpływ tych zmian na istniejące zapytania i aplikacje, które korzystają z danej tabeli.

Pytanie 27

Tabela filmy dysponuje kluczem głównym id oraz kluczem obcym rezyserlD. Tabela rezyserzy posiada klucz główny id. Obie tabele są połączone relacją jeden do wielu, gdzie rezyserzy są po stronie jeden, a filmy po stronie wiele. Jak należy zapisać kwerendę SELECT, aby połączyć tabele filmy i rezyserzy?

A. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmylD ...
B. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.filmylD ...
C. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...
D. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna odpowiedź: '... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...' jest zgodna z zasadami łączenia tabel w relacyjnych bazach danych. W tym przypadku 'rezyserlD' jest kluczem obcym w tabeli 'filmy', który odnosi się do 'id' w tabeli 'rezyserzy', co oznacza, że jeden reżyser może być przypisany do wielu filmów. Dzięki temu połączeniu możemy uzyskać informacje o filmach razem z danymi reżyserów. W praktyce, aby uzyskać szczegółowe informacje o filmach oraz ich reżyserach, takie zapytanie umożliwia efektywne łączenie danych, co jest kluczowe w aplikacjach bazodanowych, które wymagają integracji danych z różnych źródeł. Zastosowanie kluczy obcych w relacyjnych bazach danych jest standardem i pozwala na zapewnienie integralności danych, a także optymalizację zapytań. Dobrą praktyką jest również dbałość o odpowiednie nazewnictwo kolumn, aby jasno wskazywały one na ich przeznaczenie oraz relacje między tabelami, co znacząco ułatwia późniejszą pracę z bazą.

Pytanie 28

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

A. archiwizację bazy
B. więzy integralności
C. defragmentację bazy
D. kwerendę aktualizującą

Brak odpowiedzi na to pytanie.

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

Pytanie 29

Aby za pomocą instrukcji SELECT uzyskać listę nazwisk osób mieszkających na osiedlu, przy czym nazwiska te nie mogą się powtarzać, należy sformułować zapytanie w następujący sposób

A. SELECT TOP 10 nazwisko FROM mieszkancy
B. SELECT AVG(nazwisko) FROM mieszkancy
C. SELECT DISTINCT nazwisko FROM mieszkancy
D. SELECT nazwisko FROM mieszkancy ORDER BY nazwisko

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "SELECT DISTINCT nazwisko FROM mieszkancy;" jest prawidłowa, ponieważ użycie klauzuli DISTINCT pozwala na wyświetlenie unikalnych wartości z kolumny 'nazwisko', eliminując wszelkie duplikaty. W praktyce jest to niezwykle przydatne, gdyż często zdarza się, że w bazach danych ta sama informacja może być wprowadzana wielokrotnie, co prowadzi do nieczytelnych raportów. Dzięki zastosowaniu klauzuli DISTINCT, możemy uzyskać czysty i zrozumiały zbiór danych, co jest zgodne z najlepszymi praktykami w analizie danych. Na przykład, w sytuacji, gdy chcemy uzyskać listę wszystkich nazwisk mieszkańców danego osiedla, DISTINCT pozwala na oszczędność czasu w późniejszej obróbce danych, eliminując potrzebę ręcznej filtracji wyników. Zastosowanie DISTINCT jest również standardem w wielu zapytaniach SQL, co czyni tę technikę fundamentalną w efektywnym zarządzaniu bazami danych oraz analizy informacji. Warto dodać, że klauzula DISTINCT może być używana z różnymi rodzajami danych, co pozwala na jej wszechstronność.

Pytanie 30

Dana jest tabela ksiazki z polami: tytul, autor, cena (typu liczbowego). Aby kwerenda SELECT wybrała tylko tytuły, dla których cena jest mniejsza od 50 zł, należy zapisać

A. SELECT tytul FROM ksiazki WHERE cena < 50;
B. SELECT * FROM ksiazki WHERE cena < 50;
C. SELECT ksiazki FROM tytul WHERE cena < '50 zł';
D. SELECT tytul FROM ksiazki WHERE cena > '50 zł';

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź wybiera dokładnie to, o co chodzi w treści zadania: tylko kolumnę tytul z tabeli ksiazki, ale tylko dla tych rekordów, gdzie cena jest mniejsza niż 50. Składnia SELECT tytul FROM ksiazki WHERE cena < 50; jest zgodna ze standardowym SQL i pokazuje dobrą praktykę – pobieramy tylko te dane, które są nam potrzebne, zamiast używać SELECT *. Dzięki temu zapytanie jest lżejsze, szybsze i czytelniejsze, co w większych projektach ma naprawdę duże znaczenie. Moim zdaniem warto zwrócić uwagę na kilka elementów. Po pierwsze, w klauzuli SELECT podajemy konkretne nazwy kolumn (tu: tytul), nie nazwę tabeli. Po drugie, w FROM podajemy dokładnie nazwę tabeli, z której korzystamy (ksiazki). Po trzecie, warunek WHERE cena < 50 poprawnie porównuje wartość liczbową, bo kolumna cena ma typ liczbowy, więc nie używamy tu cudzysłowów ani żadnych „zł” w środku. W praktyce podobny wzorzec stosuje się cały czas, np.: SELECT tytul, autor FROM ksiazki WHERE cena <= 30; żeby dostać tańsze książki, albo SELECT tytul FROM ksiazki WHERE cena BETWEEN 20 AND 40; gdy interesuje nas konkretny przedział. W profesjonalnych aplikacjach webowych taka precyzja w definiowaniu zapytań SQL jest podstawą: ułatwia optymalizację, indeksowanie kolumn (np. indeks na kolumnie cena przyspiesza filtrowanie w WHERE) i minimalizuje przesyłanie niepotrzebnych danych między bazą a aplikacją. Dobra praktyka jest też taka, żeby dostosowywać typy danych: skoro cena jest liczbą, to porównujemy ją z liczbą, bez jednostek, a formatowanie typu „50 zł” robimy później w warstwie prezentacji, np. w PHP, JavaScript albo w szablonach widoków.

Pytanie 31

Jaki jest cel funkcji napisanej w PHP?

$zapytanie = mysql_query("SELECT * FROM napisy");
A. zmianę hasła do bazy danych
B. uzyskanie danych z bazy danych
C. ochronę bazy danych
D. nawiązanie połączenia z bazą danych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Podana funkcja w języku PHP demonstruje zastosowanie polecenia SQL SELECT które jest używane do pobierania danych z bazy danych MySQL. Funkcja mysql_query jest używana do wykonywania zapytań SQL w kontekście bazy danych MySQL. W tym przypadku zapytanie SQL SELECT * FROM napisy pobiera wszystkie rekordy z tabeli o nazwie napisy. W praktyce wybór danych przy użyciu komendy SELECT jest kluczowy w aplikacjach PHP które działają z bazami danych ponieważ pozwala na dynamiczne generowanie zawartości strony internetowej w oparciu o informacje przechowywane w bazie. Ważne jest przestrzeganie najlepszych praktyk takich jak użycie funkcji mysqli_query czy PDO w nowych aplikacjach PHP w celu zapewnienia bezpieczeństwa i wydajności ponieważ mysql_query jest przestarzałe. Dodatkowo należy stosować techniki zabezpieczające przed SQL injection takie jak przygotowane zapytania co zwiększa bezpieczeństwo aplikacji

Pytanie 32

Jaką relację typu uzyskuje się w wyniku powiązania kluczy głównych dwóch tabel?

A. wiele do wielu
B. jeden do jednego
C. jeden do wielu
D. wiele do jednego

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź „jeden do jednego” jest poprawna, ponieważ relacja typu jeden do jednego oznacza, że każdy rekord w jednej tabeli jest powiązany z dokładnie jednym rekordem w drugiej tabeli. Tego rodzaju relacje są często wykorzystywane w sytuacjach, gdzie istnieje potrzeba rozdzielenia danych w celu zwiększenia organizacji lub wydajności, na przykład w przypadku wrażliwych informacji, które są przechowywane oddzielnie od podstawowych danych użytkowników. Praktycznym przykładem może być relacja między tabelą użytkowników a tabelą profili, gdzie każdy użytkownik ma dokładnie jeden profil. W dobrych praktykach projektowania baz danych, takie relacje są stosowane, aby zapewnić integralność danych oraz umożliwić skuteczne zarządzanie informacjami w systemach. Ponadto, stosowanie relacji jeden do jednego może pomóc w optymalizacji zapytań, ponieważ zminimalizowane jest ryzyko duplikacji danych, co przyczynia się do efektywniejszego przetwarzania operacji w bazach danych.

Pytanie 33

Wskaż komendę, która dokonuje aktualizacji danych w tabeli?

A. ALTER
B. SELECT
C. UPDATE
D. CREATE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "UPDATE" jest jak najbardziej trafna. To takie podstawowe polecenie SQL, które pozwala na aktualizowanie już istniejących danych w tabeli. Możesz dzięki niemu zmienić jeden albo kilka wierszy w tabeli, w zależności od tego, jakie masz kryteria. Na przykład, jeśli mamy tabelę "pracownicy" i chcemy zwiększyć pensję programistów do 6000 zł, wystarczy użyć polecenia: `UPDATE pracownicy SET pensja = 6000 WHERE stanowisko = 'programista';`. To polecenie działa w taki sposób, że modyfikuje dane, ale przy tym dba o integralność, co jest bardzo ważne w pracy z bazami danych. Warto zawsze dodawać klauzulę WHERE, żeby zmiany dotyczyły tylko wybranych wierszy – to pomoże uniknąć sytuacji, w której przypadkiem zmienisz wszystko. Umiejętność korzystania z UPDATE jest naprawdę istotna, jeżeli chcesz efektywnie zarządzać swoimi danymi.

Pytanie 34

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

Ilustracja do pytania
A. klucz podstawowy id tabeli filmy z kluczem obcym rezyserzy_id tabeli rezyserzy
B. klucz obcy rezyserzy_id tabeli filmy z kluczem podstawowym id tabeli rezyserzy
C. klucz obcy rezyserzy_id tabeli filmy z kluczem obcym id tabeli rezyserzy
D. klucz podstawowy id tabeli filmy z kluczem podstawowym id tabeli rezyserzy

Brak odpowiedzi na to pytanie.

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

Pytanie 35

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

class Owoc {
  public $nazwa;
  private $kolor;
  function set_nazwa($nazwa) {
    $this->nazwa = $nazwa;
  }
}
A. Zawiera dwa pola oraz jeden konstruktor, oba pola mają widoczność ograniczoną tylko do metod klasy
B. Zawiera dwa pola oraz jedną metodę, pole kolor ma widoczność ograniczoną jedynie do metod klasy
C. Zawiera jedno pole oraz dwie metody, przy czym jedna z metod ma zakres prywatny
D. Zawiera dwa pola oraz jedną metodę, pole nazwa ma widoczność ograniczoną tylko do metod klasy

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Klasa Owoc w języku PHP jest zdefiniowana z dwoma polami: publicznym $nazwa i prywatnym $kolor. Odpowiedź wskazująca, że pole kolor ma ograniczony dostęp tylko do metod klasy, jest prawidłowa, ponieważ zastosowanie modyfikatora private oznacza, że pole to jest dostępne wyłącznie wewnątrz klasy. Jest to dobra praktyka projektowania, gdzie prywatne pola chronią integralność danych, umożliwiając dostęp i modyfikację tylko za pośrednictwem metod klasy. W tym przypadku, metoda set_nazwa pozwala na ustawienie wartości dla pola $nazwa, ale nie ma bezpośredniej metody dla $kolor, co jest celową strategią, aby zapewnić kontrolę nad dostępem do tego pola. W praktyce, pole $kolor mogłoby być wykorzystywane do przechowywania informacji, które nie powinny być zmieniane zewnętrznie, a jedynie konfigurowane wewnątrz klasy lub podczas jej inicjalizacji. Taki układ sprzyja enkapsulacji, jednym z filarów programowania obiektowego, promując bezpieczeństwo danych i modularność kodu. W projektach komercyjnych zaleca się również dodanie metod get i set dla prywatnych zmiennych, aby zachować elastyczność i kontrolę nad danymi.

Pytanie 36

Zarządzanie procesem przekształcania kodu źródłowego stworzonego przez programistę na kod maszynowy, który jest zrozumiały dla komputera, nosi nazwę

A. wdrażanie
B. kompilowanie
C. analizowanie
D. rozpoczynanie

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kompilowanie to proces, w którym kod źródłowy, napisany w języku programowania wysokiego poziomu, jest przekształcany na kod maszynowy, który może być zrozumiany i wykonany przez komputer. Działa to na zasadzie analizy składniowej i semantycznej kodu źródłowego, a następnie generowania odpowiednich instrukcji dla procesora. Przykładem narzędzi, które realizują ten proces, są kompilatory, takie jak GCC dla języka C czy javac dla języka Java. Kompilowanie ma kluczowe znaczenie w programowaniu, ponieważ pozwala na optymalizację kodu, co zwiększa wydajność aplikacji. Dobre praktyki wskazują, że kompilowanie powinno być częścią cyklu programowania, a regularne kompilowanie kodu pomaga w szybszym wykrywaniu błędów oraz zapewnia, że kod jest zawsze zgodny z wymaganiami projektowymi. Warto również zaznaczyć, że proces kompilacji może obejmować różne etapy, takie jak prekompilacja, generacja kodu pośredniego oraz linkowanie, co czyni go złożonym i wieloetapowym działaniem.

Pytanie 37

Którego formatu należy użyć do zapisu zdjęcia z kompresją stratną?

A. PNG
B. PCX
C. GIF
D. JPEG

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Format JPEG (Joint Photographic Experts Group) jest powszechnie stosowany do zapisu obrazów z kompresją stratną, co oznacza, że ​​część danych jest usuwana, aby zmniejszyć rozmiar pliku. JPEG jest szczególnie efektywny w przypadku fotografii i obrazów z wieloma kolorami oraz gradientami, gdzie niewielka utrata jakości jest akceptowalna dla użytkowników. Ten format kompresji stratnej działa na zasadzie analizy obrazu i eliminacji informacji, które są mniej zauważalne dla ludzkiego oka, co pozwala na znaczne zmniejszenie rozmiaru pliku. Przykładem zastosowania JPEG jest publikacja zdjęć w sieci, gdzie prędkość ładowania strony ma duże znaczenie. W praktyce format JPEG jest szeroko stosowany w mediach społecznościowych, portalach internetowych i w fotografii cyfrowej, co czyni go jednym z najpopularniejszych formatów graficznych. Dodatkowo, JPEG wspiera różne profile kolorów, co pozwala na lepszą reprezentację kolorystyczną w różnych urządzeniach wyjściowych, takich jak monitory i drukarki, co jest zgodne z najlepszymi praktykami w dziedzinie obróbki obrazu.

Pytanie 38

Pokazane pole input pozwala na  

<input type = "checkbox" name = "text1" value = "text2">

A. wybranie opcji
B. wprowadzenie dowolnego tekstu
C. wprowadzenie hasła
D. selekcja opcji z listy o wartościach text1 i text2

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "zaznaczenie opcji" jest na pewno trafna, bo pole checkbox (<input type='checkbox'>) jest stworzone do tego, żeby użytkownicy mogli wybrać jedną lub więcej opcji z danej grupy. Widzisz, checkboxy są bardzo popularne w formularzach internetowych, bo pozwalają na różnorodność wyborów, w przeciwieństwie do przycisków radiowych, które pozwalają na zaznaczenie tylko jednej opcji. Na przykład, jak się rejestrujesz na stronie, możesz zaznaczyć różne zgody na przetwarzanie danych, co daje możliwość wyboru więcej niż jednej opcji. Z punktu widzenia HTML i najlepszych praktyk w projektowaniu formularzy, warto dodać odpowiednie etykiety (label) do checkboxów, żeby ułatwić korzystanie z nich osobom, które używają technologii asystujących. Jeśli dobrze ustalimy atrybuty 'name' i 'value', to dane po przesłaniu formularza będą odpowiednio przetworzone. Pamiętaj, że wartość checkboxa jest przesyłana tylko wtedy, gdy jest zaznaczony, co jest zgodne z oczekiwaniami użytkowników oraz standardami W3C.

Pytanie 39

Które zapytanie MySQL należy użyć, aby usunąć jedynie pracowników, którzy zarabiają nie mniej niż 500 i nie więcej niż 1000 zł oraz ich miejsce pracy zawiera frazę tx

A. DELETE FROM pracownicy WHERE pensja > 500 AND pensja < 1000 AND miejsce_pracy LIKE '%tx%';
B. DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 OR miejsce_pracy LIKE '%tx%';
C. DELETE FROM pracownicy WHERE pensja IN (500,1000) AND miejsce_pracy LIKE '*tx*';
D. DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 AND miejsce_pracy LIKE '%tx%';

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawne jest zapytanie: DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 AND miejsce_pracy LIKE '%tx%';. Słowo kluczowe BETWEEN w SQL oznacza przedział domknięty, czyli w tym przypadku usuwani będą pracownicy, którzy zarabiają co najmniej 500 i jednocześnie nie więcej niż 1000 zł. To dokładnie odpowiada treści zadania, bez żadnych niedomówień na granicach zakresu. Gdybyśmy użyli > i <, to wartości 500 i 1000 zostałyby wykluczone, co w tym zadaniu byłoby niezgodne z wymaganiem. Drugi warunek korzysta z operatora LIKE wraz z maską '%tx%'. Wzorzec z procentami z obu stron oznacza: znajdź wszystkie wiersze, gdzie ciąg znaków „tx” występuje gdziekolwiek w tekście kolumny miejsce_pracy – na początku, w środku albo na końcu. W MySQL znak % jest standardowym symbolem wieloznacznym (wildcard) dla dowolnego ciągu znaków, a nie gwiazdka *, dlatego zapis z % jest poprawny i zgodny z dokumentacją. Spójnik AND jest tu kluczowy, bo warunek mówi wyraźnie: usuwamy tylko tych pracowników, którzy spełniają jednocześnie oba kryteria – zarówno zakres pensji, jak i fragment tekstu w miejscu pracy. W praktyce takie zapytanie stosuje się np. przy porządkowaniu danych testowych: można szybko usunąć sztuczne rekordy z określonego przedziału płac i z wybranych lokalizacji. Moim zdaniem warto wyrabiać sobie nawyk bardzo precyzyjnego formułowania warunków logicznych (AND/OR) i zawsze sprawdzać, czy zakres jest domknięty czy otwarty. Dobrą praktyką jest też najpierw wykonać SELECT z tym samym WHERE, zobaczyć jakie rekordy zostaną naruszone, a dopiero potem odpalać DELETE – szczególnie na produkcyjnej bazie, bo tam pomyłki bywają bolesne.

Pytanie 40

Jak nazywa się metoda tworząca obiekt w języku PHP?

A. __create
B. __construct
C. __new
D. __open

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Konstruktor w języku PHP to specjalna metoda, która jest automatycznie wywoływana w momencie tworzenia instancji obiektu danej klasy. W PHP konstruktorzy są definiowani za pomocą słowa kluczowego __construct. Jest to zgodne z zasadami programowania obiektowego, które zakładają, że każdy obiekt powinien być odpowiednio zainicjowany przed użyciem. Dzięki temu programiści mogą ustawić właściwości obiektu lub przeprowadzić inne operacje inicjalizacyjne, które są niezbędne dla prawidłowego działania obiektu. Na przykład, jeśli mamy klasę 'Samochod', konstruktor może przyjmować parametry takie jak marka czy model, a następnie przypisywać je do właściwości obiektu. Przykład: class Samochod { public $marka; public $model; public function __construct($marka, $model) { $this->marka = $marka; $this->model = $model; } }. Konstruktorzy są kluczowym elementem w programowaniu obiektowym, ponieważ wspierają enkapsulację i pomagają w tworzeniu bardziej zorganizowanego i łatwiejszego w utrzymaniu kodu. PHP w wersji 5 i wyższych wprowadził zdefiniowane konstruktorzy, co znacząco poprawiło jakość kodu oraz jego czytelność.