Wyniki egzaminu

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

Egzamin zdany!

Wynik: 29/40 punktów (72,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

W zamieszczonym przykładzie pseudoklasa hover sprawi, że styl pogrubiony będzie przypisany

a:hover { font-weight: bold; }
A. wszystkim odnośnikom odwiedzonym.
B. wszystkim odnośnikom nieodwiedzonym.
C. odnośnikowi, w momencie kiedy najechał na niego kursor myszy.
D. każdemu odnośnikowi niezależnie od aktualnego stanu.
Twoja odpowiedź jest prawidłowa. Pseudoklasa :hover w CSS jest używana do stylizacji elementów, na które najechał kursor myszy. Na przykład, jeżeli użyjemy stylu 'font-weight: bold;' z pseudoklasą :hover, tekst odnośnika stanie się pogrubiony tylko wtedy, kiedy na niego najedziemy kursorem. Jest to bardzo przydatne w interaktywnym designie strony internetowej, gdzie możemy w prosty sposób zasygnalizować użytkownikowi, że dany element jest aktywny lub interaktywny. Pamiętaj, że pseudoklasy w CSS są potężnym narzędziem, które pozwala nam na tworzenie zaawansowanych efektów bez konieczności użycia JavaScriptu. Znajomość i umiejętność wykorzystania pseudoklas jest zatem kluczową umiejętnością każdego front-end developera.

Pytanie 2

Wskaź złożony typ danych.

A. float
B. class
C. bool
D. char
Typy takie jak 'char', 'bool' i 'float' to prostsze typy, które mają na prawdę ograniczone możliwości w porównaniu do typów złożonych. 'char' to pojedynczy znak, więc może pomieścić na przykład 'A' albo '9', ale to wszystko. Używa się go czasami do przechowywania tekstu, ale jego funkcjonalność kończy się na prostych operacjach. Typ 'bool' to logiczny typ, który ma tylko dwie wartości - prawda (true) i fałsz (false). Jest istotny w podejmowaniu decyzji w programach, ale nie nadaje się do większych struktur danych. 'float' to typ liczbowy dla liczb zmiennoprzecinkowych, czyli takich z miejscami po przecinku. Jest przydatny w obliczeniach, ale jak widać, te wszystkie typy są dosyć ograniczone w porównaniu do złożonych typów, jak klasy, które pozwalają na tworzenie bardziej skomplikowanych struktur danych.

Pytanie 3

Jaki kolor reprezentuje zapis heksadecymalny #0000FF?

A. zielony
B. czerwony
C. niebieski
D. czarny
Kolor zapisany w notacji heksadecymalnej #0000FF oznacza niebieski. Notacja heksadecymalna używana jest w technologii webowej, szczególnie w CSS i HTML, do definiowania kolorów. W tej notacji każdy kolor składa się z sześciu znaków, gdzie pierwsze dwie cyfry reprezentują intensywność koloru czerwonego, drugie dwie zielonego, a ostatnie dwie niebieskiego. W przypadku #0000FF, '00' oznacza brak czerwonego, '00' brak zielonego, a 'FF' maksymalną intensywność niebieskiego. Dzięki temu systemowi można dokładnie określić kolory, co jest przydatne w projektowaniu stron internetowych oraz w grafice komputerowej. Zrozumienie tej notacji jest kluczowe dla każdego, kto pracuje w obszarze projektowania stron WWW, ponieważ pozwala na precyzyjne dostosowanie palet kolorów do estetyki projektu oraz zgodności z zasadami dostępności. Przykładowo, stosując odpowiednie kolory w notacji heksadecymalnej, możemy zapewnić lepszą czytelność tekstu na tle, co jest istotne w kontekście użyteczności stron internetowych.

Pytanie 4

W skrypcie napisanym w języku PHP należy przeprowadzić operacje, gdy spełniony jest warunek, że adresy są parzystymi numerami na ulicach: Bratkowej oraz Nasturcjowej. Jakie wyrażenie logiczne to określa?

A. $ulica == "Bratkowa" && $ulica == "Nasturcjowa" && $numer % 2 == 0
B. ($ulica == "Bratkowa" || $ulica == "Nasturcjowa") && $numer % 2 == 0
C. ($ulica == "Bratkowa" || $ulica == "Nasturcjowa") && $numer / 2 == 0
D. $ulica == "Bratkowa" && $ulica == "Nasturcjowa" && $numer / 2 == 0
Pojęcia zastosowane w odpowiedziach, które nie są poprawne, zawierają błędne założenia dotyczące użycia operatorów logicznych i arytmetycznych. W przypadku pierwszej odpowiedzi, użycie operatora && (i) do sprawdzania, czy zmienna $ulica jest jednocześnie równa "Bratkowa" i "Nasturcjowa" jest technicznie niemożliwe, ponieważ zmienna nie może przyjąć dwóch różnych wartości jednocześnie. Druga odpowiedź, która używa operatora / (dzielenie) w kontekście sprawdzania parzystości, wprowadza w błąd; reszta z dzielenia przez 2 jest właściwym sposobem sprawdzania parzystości, a nie dzielenie, które może prowadzić do nieprawidłowego wyniku - liczba będzie parzysta tylko wtedy, gdy reszta z dzielenia wynosi zero. W czwartej odpowiedzi, użycie operatora / również nie jest odpowiednie. Kluczowym błędem, który można zauważyć, jest nieprawidłowe myślenie o logice warunkowej i operatorach matematycznych. W praktyce, stosowanie reszty z dzielenia jako metody określenia parzystości jest powszechną praktyką w wielu językach programowania, w tym PHP. Dlatego konieczne jest zrozumienie, jak poprawnie formułować warunki logiczne oraz jakich operatorów używać, aby osiągnąć zamierzony efekt.

Pytanie 5

Fragment kodu w PHP przedstawia się następująco (patrz ramka): Przy założeniu, że zmienna tablicowa $tab zawiera liczby naturalne, wynik działania programu polega na wypisaniu

Ilustracja do pytania
A. najmniejszego elementu w tablicy
B. największego elementu w tablicy
C. tych elementów, które przewyższają wartość zmiennej $liczba
D. elementu tablicy równemu wartości $tab[0]
Kod w PHP, który widzisz, robi coś fajnego – znajduje największy element w tablicy. Na początku przydzielamy zmiennej $liczba wartość pierwszego elementu z tablicy $tab. Potem przechodzimy przez wszystkie elementy tablicy za pomocą pętli foreach. W środku mamy warunek if, który sprawdza, czy aktualny element $element jest większy od tego, co mamy w $liczba. Jeśli tak, zmieniamy wartość $liczba na ten właśnie element. Gdy już skończymy pętlę, w $liczba mamy największą wartość z tablicy, a następnie to wypisujemy przez echo. Takie podejście to całkiem dobre rozwiązanie, szczególnie przy mniejszych zbiorach danych. Moim zdaniem, jest to piece of cake w programowaniu i często używane za każdym razem, gdy porównujemy różne wartości. Dobrze jest się nauczyć tej metody, bo sprawdza się w różnych sytuacjach, chociaż przy większych danych warto też pomyśleć o innych algorytmach jak sortowanie, które mogą uprościć sprawę.

Pytanie 6

Efekt przedstawiony na obrazie, wykonany za pomocą edytora grafiki rastrowej, to

Ilustracja do pytania
A. szum RGB.
B. grawerowanie.
C. pikselizacja.
D. rozmycie Gaussa.
Twoja odpowiedź jest prawidłowa! Wybrany efekt to pikselizacja. Pikselizacja polega na zmniejszeniu rozdzielczości obrazu do poziomu, gdy każdy piksel staje się widoczny dla oka. Efekt ten charakteryzuje się wyraźnymi, dużymi blokami pikseli tworzącymi obraz. Jest to efekt często stosowany w grafice komputerowej, szczególnie w celu nadania grafice stylu retro. Pikselizacja była też kluczowym elementem estetyki gier wideo z lat 80. i 90., kiedy to technologiczne ograniczenia sprzętowe wymuszały korzystanie z niskiej rozdzielczości obrazu. W dzisiejszych czasach efekt pikselizacji jest często stosowany celowo, dla uzyskania określonego efektu artystycznego lub dla celów nostalgicznych. Warto jednak pamiętać, że nadmierne pikselizowanie obrazu może prowadzić do utraty szczegółów, dlatego zawsze warto dobrze przemyśleć zastosowanie tego efektu.

Pytanie 7

Czynnością polegającą na przetwarzaniu grafiki rastrowej na wektorową jest

A. skalowanie.
B. rasteryzacja.
C. wektoryzacja.
D. kadrowanie.
Poprawna odpowiedź to wektoryzacja, bo właśnie tak nazywa się proces zamiany obrazu rastrowego (zbudowanego z pikseli) na grafikę wektorową (opartą na krzywych, liniach i figurach matematycznych). W grafice komputerowej to dość kluczowe pojęcie. Obraz rastrowy, np. JPG z aparatu czy PNG z internetu, ma określoną rozdzielczość i po mocnym powiększeniu zaczyna się „pixeloza”. Natomiast grafika wektorowa (SVG, AI, EPS, CDR) jest opisana matematycznie, więc można ją skalować praktycznie bez utraty jakości. Wektoryzacja polega na analizie kształtów w obrazie rastrowym i zamianie ich na obiekty wektorowe: ścieżki, krzywe Béziera, wielokąty. Może być ręczna (rysujemy po śladzie w programie typu Adobe Illustrator, CorelDRAW, Inkscape) albo automatyczna, np. funkcją „Image Trace” czy „Przekształć na krzywe”. W praktyce używa się tego np. gdy klient przynosi rozmazane logo w JPG, a drukarnia potrzebuje pliku wektorowego do druku wielkoformatowego, grawerowania laserem czy wycinania ploterem. Z mojego doświadczenia wektoryzacja jest też ważna przy projektowaniu ikon, piktogramów, infografik na strony WWW – zapis w SVG jest lekki, dobrze się skaluje na różne ekrany i jest zgodny z dobrymi praktykami front-endu. Warto pamiętać, że wektoryzacja nie „magicznie” poprawia jakości zdjęcia, tylko zamienia je w inny typ reprezentacji, najlepiej sprawdza się przy prostych kształtach, logotypach, rysunkach technicznych, nie przy skomplikowanych fotografiach.

Pytanie 8

Które z poniższych twierdzeń o zasadach programowania w PHP jest poprawne?

A. Jest to język o słabej kontroli typów
B. W nazwach zmiennych nie rozróżnia się wielkości liter
C. Nazwy zmiennych zaczynają się od znaku !
D. Deklaracja zmiennych odbywa się po słowie kluczowym var
PHP jest językiem o słabej kontroli typów, co oznacza, że nie wymaga określenia typu zmiennej podczas jej deklaracji. W praktyce, PHP automatycznie konwertuje typy danych w zależności od kontekstu, w którym są używane. Przykładowo, jeśli przypiszesz do zmiennej wartość liczbową, a następnie użyjesz jej w kontekście tekstowym, PHP przekształci tę liczbę na łańcuch znaków automatycznie. Dzięki temu programiści mogą skupić się na logice aplikacji, a nie na zarządzaniu typami danych. Ważne jest jednak, aby pamiętać, że ta elastyczność może prowadzić do błędów, jeśli nie będziemy ostrożni. Dlatego dobrym podejściem jest stosowanie jawnych konwersji typów, gdy jest to możliwe, co zwiększa czytelność kodu i ułatwia jego późniejsze utrzymanie. Używanie funkcji takich jak (int), (float) czy (string) w celu wymuszenia określonych typów danych przed operacjami arytmetycznymi lub logicznymi, to praktyka, która może zapobiec wielu problemom z nieoczekiwanym zachowaniem skryptów. Znalezienie równowagi między wygodą a bezpieczeństwem typów jest kluczowym elementem programowania w PHP.

Pytanie 9

W języku JavaScript zapis

x = przedmiot.nazwa();
oznacza, że
A. zmienna x będzie przechowywać wynik działania metody nazwa.
B. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
C. nazwa jest polem klasy przedmiot.
D. nazwa jest właściwością obiektu przedmiot.
Twoja odpowiedź jest niepoprawna. Wybierając opcję, że 'nazwa jest właściwością obiektu przedmiot' możesz mylić funkcje i właściwości. Właściwości to wartości przechowywane w obiekcie, natomiast metody to funkcje związane z obiektem. Jeśli zapis jest w formie 'przedmiot.nazwa();', to 'nazwa' jest metodą, a nie właściwością obiektu. Druga niepoprawna odpowiedź, 'nazwa jest polem klasy przedmiot', sugeruje, że JavaScript jest językiem typu klasowego, jak Java czy C#. W rzeczywistości, JavaScript jest językiem prototypowym, co oznacza, że nie ma klas. Zamiast tego, obiekty dziedziczą bezpośrednio od innych obiektów. Ostatnia niepoprawna odpowiedź, 'zmienna x będzie przechowywać wynik działania funkcji przedmiot', prawdopodobnie wynika z niezrozumienia różnicy między metodami a wolno stojącymi funkcjami. W JavaScript, funkcje są 'wolno stojące', co oznacza, że nie są związane z żadnym obiektem, podczas gdy metody są funkcjami zdefiniowanymi na obiekcie.

Pytanie 10

Jak można utworzyć kopię zapasową bazy danych MySQL?

A. modyfikowaniem danych
B. eksportowaniem bazy
C. agregowaniem danych
D. importowaniem bazy
Eksport bazy danych MySQL to proces, który pozwala na tworzenie kopii zapasowych danych znajdujących się w bazie. Narzędzie do eksportu, takie jak mysqldump, umożliwia nie tylko zapisanie danych w formacie SQL, ale także w innych formatach, takich jak CSV czy JSON. Eksport jest kluczowy w przypadku migracji danych pomiędzy różnymi środowiskami baz danych lub w sytuacji, gdy zachodzi potrzeba odzyskania danych po awarii. Proces ten można zautomatyzować, korzystając z harmonogramów zadań (cron), co zapewnia regularne tworzenie kopii zapasowych. Zgodnie z najlepszymi praktykami, zaleca się, aby eksportować bazy danych regularnie oraz przechowywać kopie zapasowe w bezpiecznych lokalizacjach, aby zminimalizować ryzyko utraty danych. Standardy takie jak ISO 27001 podkreślają znaczenie odpowiednich procedur zarządzania danymi, w tym tworzenia kopii zapasowych, co czyni eksportu kluczowym elementem strategii ochrony danych w organizacjach.

Pytanie 11

W języku HTML zapis < spowoduje w przeglądarki wyświetlenie znaku

A. >
B. "
C. &
D. <
Znak < w HTML ma specjalne znaczenie, ponieważ jest używany do oznaczania początku znaczników, które są fundamentem struktury dokumentów HTML. Aby prawidłowo wyświetlić ten znak w przeglądarce, należy użyć encji HTML, która dla znaku mniejszości to &lt;. Użycie encji pozwala na uniknięcie nieporozumień, ponieważ przeglądarka mogłaby zinterpretować znak < jako początek nowego znacznika. Przykładowo, aby wyświetlić tekst 'A < B' w HTML, kod powinien wyglądać następująco: A &lt; B. Zgodnie z dokumentacją W3C, stosowanie encji jest kluczowe dla zachowania poprawności kodu. Dzięki temu użytkownicy mogą zobaczyć zamierzony tekst, zamiast nieprawidłowo interpretowanego oznaczenia. Warto również zauważyć, że istnieją inne encje, takie jak &gt; dla znaku większości oraz &amp; dla znaku ampersand, które również pełnią istotne funkcje w kontekście HTML. Poprawne użycie encji przyczynia się do lepszej dostępności i zobrazowania treści na stronach internetowych."

Pytanie 12

Jakiego zdarzenia należy użyć, aby funkcja JavaScript była uruchamiana za każdym razem, gdy użytkownik wprowadzi jakikolwiek znak w polu edycji?

A. onkeydown
B. onclick
C. onload
D. onmouseout
Odpowiedź 'onkeydown' jest poprawna, ponieważ to zdarzenie jest wywoływane za każdym razem, gdy użytkownik naciśnie klawisz na klawiaturze, a zatem idealnie nadaje się do sytuacji, gdy chcemy reagować na wprowadzanie tekstu w polu edycji. W praktyce oznacza to, że nasza funkcja może być użyta do natychmiastowego przetwarzania danych wprowadzanych przez użytkownika, co jest szczególnie istotne w przypadku dynamicznych interfejsów użytkownika. Na przykład, możemy wykorzystać 'onkeydown' do implementacji funkcji autouzupełniania, gdzie na bieżąco prezentujemy możliwe opcje na podstawie wprowadzanego tekstu. Dobrą praktyką jest również umieszczanie dodatkowych warunków, aby nasza funkcja nie była wywoływana dla klawiszy, które nie mają znaczenia dla wprowadzania tekstu, takich jak klawisze funkcyjne czy kombinacje klawiszy. Warto również zrozumieć, że istnieją inne zdarzenia, takie jak 'input', które mogą być użyte w podobnym kontekście, ale 'onkeydown' daje bardziej bezpośrednią kontrolę nad interakcją użytkownika.

Pytanie 13

W bazie danych znajduje się tabela o nazwie faktury, która posiada pola: numer, data, id_klienta, wartosc, status. Każdego dnia tworzony jest raport dotyczący faktur z danego dnia. W raporcie prezentowane są jedynie numery oraz wartości faktur. Która z poniższych kwerend SQL jest odpowiednia do wygenerowania tego raportu?

A. SELECT numer, wartosc FROM faktury;
B. SELECT * FROM faktury WHERE data = CURRENT_DATE();
C. SELECT * FROM faktury;
D. SELECT numer, wartosc FROM faktury WHERE data = CURRENT_DATE();
Wybrana kwerenda SQL, SELECT numer, wartosc FROM faktury WHERE data = CURRENT_DATE();, jest poprawna, ponieważ precyzyjnie spełnia wymagania dotyczące generowania raportu faktur dla bieżącego dnia. Kwerenda ta nie tylko wybiera odpowiednie kolumny, czyli 'numer' i 'wartosc', ale także filtruje wyniki, wykorzystując warunek WHERE, który ogranicza dane do tych, które mają datę równą aktualnej dacie. Użycie funkcji CURRENT_DATE() jest standardowym podejściem w SQL do uzyskiwania bieżącej daty, co pozwala na automatyzację raportowania. Praktycznie rzecz biorąc, takie kwerendy są kluczowe w aplikacjach biznesowych, gdzie codzienna analiza danych jest niezbędna, aby podejmować informowane decyzje. Przy tworzeniu raportów warto również zwrócić uwagę na indeksowanie kolumn używanych w filtrach, co może znacznie przyspieszyć czas odpowiedzi zapytania w dużych zbiorach danych. Dobrą praktyką jest również testowanie kwerend na mniejszych zestawach danych przed ich wdrożeniem na żywo, aby upewnić się, że zwracają oczekiwane wyniki.

Pytanie 14

W hurtowni utworzono tabelę sprzedaż, która zawiera pola: id, kontrahent, grupa_cenowa oraz obrot. Jakie polecenie należy wykorzystać, aby znaleźć tylko kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000 zł?

A. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 OR obrot>4000
B. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 AND obrot>4000
C. SELECT sprzedaz FROM kontrahent WHERE obrot>4000
D. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa=2 AND obrot>4000
Aby skutecznie wyszukać kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000 zł, należy zastosować odpowiednie zapytanie SQL. W tym przypadku, kluczowe jest zrozumienie użycia klauzul WHERE, które filtrują wyniki na podstawie określonych warunków. Poprawne zapytanie to 'SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 AND obrot>4000;'. W tym zapytaniu wybieramy kolumnę kontrahent z tabeli sprzedaz, filtrując wyniki na podstawie dwóch warunków: przynależności do drugiej grupy cenowej oraz obrotu większego niż 4000 zł. Operator AND jest istotny, ponieważ oba warunki muszą być spełnione, aby dany rekord został zwrócony. Takie podejście jest zgodne z zasadami normalizacji baz danych, co pozwala na zachowanie integralności danych i efektywność zapytań. Przykładem może być sytuacja, w której w tabeli znajdują się kontrahenci o różnych grupach cenowych i obrotach; zastosowanie powyższego zapytania pozwoli nam na wyselekcjonowanie tylko tych kontrahentów, którzy spełniają oba kryteria, co jest niezwykle przydatne w analizie sprzedaży i podejmowaniu decyzji biznesowych.

Pytanie 15

Jakie z wymienionych par znaczników HTML działają w ten sam sposób na stronie internetowej, jeżeli żadne style CSS nie zostały określone?

A. <meta> oraz <title>
B. <b> oraz <strong>
C. <b> oraz <big>
D. <p> oraz <h2>
Wybierając inne pary znaczników, można napotkać na kilka powszechnych nieporozumień dotyczących ich funkcji i zastosowania. Znacznik <meta> i <title> są znaczącymi elementami dokumentu HTML, ale pełnią całkowicie różne role. <meta> służy do dostarczania metainformacji o stronie, takich jak opis, słowa kluczowe czy informacje dotyczące kodowania, co jest kluczowe dla SEO i prezentacji strony w wyszukiwarkach. Z kolei <title> definiuje tytuł strony, który pojawia się na karcie przeglądarki oraz w wynikach wyszukiwania. Obie te pary znaczników nie mają wizualnego wpływu na treść wyświetlaną użytkownikowi, co sprawia, że są trudne do porównania w kontekście wizualnym. Z kolei <p> i <h2> to elementy używane do strukturyzowania treści; <p> definiuje akapit, a <h2> jest nagłówkiem drugiego poziomu. Użycie tych znaczników wpływa na hierarchię treści oraz czytelność strony. Różnice te są kluczowe w tworzeniu dostępnych i zrozumiałych dokumentów HTML. Wreszcie, <b> i <big>, mimo że oba zmieniają wygląd tekstu, nie mają podobnych zastosowań semantycznych. <big> służy do zwiększenia rozmiaru tekstu, co niekoniecznie wskazuje na jego znaczenie. Zrozumienie tych różnic jest kluczowe dla właściwego stosowania HTML i tworzenia stron, które są zgodne z dobrymi praktykami oraz standardami W3C.

Pytanie 16

Podany poniżej kod źródłowy w języku C++ ma na celu wypisywanie dla wprowadzonych dowolnych liczb całkowitych różniących się od zera:

int main(){
    int liczba;
    cin >> liczba;
    while (liczba != 0)
    {
        if ((liczba % 2) == 0)
            cout << liczba << endl;
        cin >> liczba;
    }
    return 0;
}
A. liczby pierwsze
B. wszystkie liczby
C. jedynie liczby parzyste
D. tylko liczby nieparzyste
Kod źródłowy napisany w języku C++ ma na celu wypisywanie tylko liczb parzystych. Funkcja main() wczytuje liczbę całkowitą za pomocą cin, a następnie wchodzi w pętlę while, która trwa tak długo, jak długo wczytana liczba nie jest równa zero. Wewnątrz pętli, zastosowano sprawdzenie warunku, który definiuje, czy liczba jest parzysta, poprzez operator modulo: (liczba % 2) == 0. Jeśli wynik tego działania jest równy zero, liczba jest parzysta i zostaje wypisana na ekranie. Wszelkie inne liczby (nieparzyste) nie są wyświetlane. Przykładem praktycznego zastosowania tego kodu może być program do analizy danych liczbowych, gdzie chcemy zebrać tylko liczby parzyste do dalszej obróbki, na przykład w statystyce lub w aplikacjach finansowych. Praktyczne podejście do programowania w C++ wymaga znajomości takich konstrukcji jak pętle i warunki, co jest zgodne z najlepszymi praktykami inżynieryjnymi w branży oprogramowania.

Pytanie 17

W tabeli mieszkańcy zawierającej pola id, imie, nazwisko, ulica, numer, czynsz (wartość całkowita) należy zidentyfikować osoby zamieszkujące ulicę Mickiewicza pod numerami 71, 72, 80, których czynsz jest niższy niż
1000 zł. Jak będzie wyglądać klauzula WHERE w zapytaniu?

A. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000
B. WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR czynsz < 1000
C. WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000
D. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czynsz < 1000
Odpowiedź jest prawidłowa, ponieważ klauzula WHERE w zapytaniu SQL skutecznie filtruje dane zgodnie z wymaganiami. W tym przypadku, użycie operatora AND w połączeniu z IN i warunkiem < 1000 zapewnia, że zwrócone zostaną jedynie te rekordy, które spełniają wszystkie trzy kryteria: ulica musi być 'Mickiewicza', numer musi być jednym z 71, 72 lub 80, a czynsz musi być mniejszy niż 1000 zł. To jest zgodne z dobrą praktyką w SQL, gdzie łączenie warunków z użyciem operatorów logicznych pozwala na precyzyjne określenie zestawu danych, które nas interesują. Przy tak skonstruowanej klauzuli, zapytanie będzie wydajne i zrozumiałe, co jest kluczowe w pracy z bazami danych. Przykładowe zastosowanie to generowanie raportów dotyczących mieszkańców, co może być istotne dla zarządzania nieruchomościami lub analizy rynku wynajmu. Tego typu zapytania są powszechnie używane w aplikacjach webowych i systemach zarządzania danymi, co podkreśla znaczenie umiejętności formułowania precyzyjnych zapytań SQL.

Pytanie 18

Tabela samochody zawiera poniższe rekordy.

idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017
Po wykonaniu podanego zapytania SQL, jakie dane zostaną zwrócone?
SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel";
A. zafira
B. opel zafira
C. opel zafira; opel insignia
D. zafira; insignia
Twoja odpowiedź jest nieprawidłowa, co sugeruje, że możesz nie do końca rozumieć, jak działa zapytanie SQL. Wszystkie odpowiedzi, które zawierały więcej niż jeden model samochodu, są niepoprawne, ponieważ zapytanie SQL jest skonstruowane tak, aby zwrócić tylko te modele, które spełniają oba warunki - markę 'opel' i rocznik większy niż 2017. W przypadku odpowiedzi zawierających tylko model 'zafira', ale bez wskazania marki, jest to błąd, ponieważ zapytanie SQL również wymaga, aby marka była równa 'opel'. W praktyce, błędy w konstrukcji zapytań SQL mogą prowadzić do błędnych wyników i potencjalnie do poważnych błędów w analizie danych lub oprogramowaniu. Dlatego, ważne jest, aby zrozumieć, jak prawidłowo konstruować zapytania SQL i jakie wyniki one zwracają.

Pytanie 19

W języku JavaScript rezultat działania instrukcji zmienna1 –= 1; będzie identyczny jak wynik instrukcji

A. zmienna1––;
B. zmienna1++;
C. zmienia1 = zmienna1 - 0;
D. zmienna1 === zmienna1 - 1;
W analizowanych odpowiedziach pojawiają się różne nieprawidłowe koncepcje. Pierwsza z nich, 'zmienna1 === zmienna1 - 1;', jest błędna, ponieważ porównuje dwie wartości, a nie aktualizuje zmiennej. Ten zapis stwierdza, czy 'zmienna1' jest równa 'zmienna1 - 1', co nie ma związku z dekrementacją, a jedynie sprawdza warunek. Kolejna odpowiedź, 'zmienna1++;', jest również niepoprawna. Operator '++' to operator inkrementacji, który zwiększa wartość zmiennej o 1, a więc całkowicie zaprzecza intencji dekrementacji. Zastosowanie tego operatora zamiast dekrementacji prowadziłoby do zwiększenia wartości 'zmienna1', co jest sprzeczne z założeniem pytania. Ostatnia odpowiedź, 'zmienia1 = zmienna1 - 0;', jest błędna z dwóch powodów: użycie 'zmienia1' sugeruje błąd typograficzny, a sama operacja 'zmienna1 - 0' nie wpłynie na wartość zmiennej, co jest niezgodne z zamiarem jej obniżenia. Powszechnym błędem w programowaniu jest mylenie operatorów oraz nieznajomość ich właściwości, co może prowadzić do poważnych błędów w kodzie. Właściwe rozumienie funkcji operatorów przypisania oraz ich skróconych form jest kluczowe dla efektywnego programowania w JavaScript.

Pytanie 20

W formularzu dane z pola input o typie number zostały przypisane do zmiennej a, a następnie przetwarzane w skrypcie JavaScript w następujący sposób:

var x = parseFloat(a);
Jaki typ będzie miała zmienna x?
A. NaN
B. napisowego
C. zmiennoprzecinkowego
D. liczbowego, całkowitego
Zmienna x będzie typu zmiennoprzecinkowego, ponieważ funkcja parseFloat() konwertuje wartość przekazaną jej jako argument na liczbę zmiennoprzecinkową. W przypadku, gdy zmienna a zawiera poprawną reprezentację liczby, np. '10.5' lub '3.14', parseFloat() zwróci odpowiednią wartość zmiennoprzecinkową. Dobrą praktyką jest zapewnienie, że wartość w a jest odpowiednio walidowana przed konwersją, aby uniknąć błędów i niepożądanych wyników. Zmiennoprzecinkowe dane mogą być szczególnie użyteczne w aplikacjach finansowych, graficznych czy inżynieryjnych, gdzie precyzyjne obliczenia są kluczowe. Ponadto, JavaScript automatycznie przekształca liczby całkowite do postaci zmiennoprzecinkowej, więc nawet jeśli a zawiera liczbę całkowitą, wynik w zmiennej x również będzie typem zmiennoprzecinkowym. Znajomość tego zachowania jest istotna dla programistów, aby skutecznie obsługiwać różnorodne operacje numeryczne.

Pytanie 21

Jaką wartość w formacie heksadecymalnym będzie miała barwa określona kodem rgb(255, 10, 22)?

A. #FF0A16
B. #FF1016
C. #2551022
D. #251022
Odpowiedź #FF0A16 jest poprawna, ponieważ kod RGB (255, 10, 22) jest konwertowany na format heksadecymalny, gdzie każdy z trzech kanałów (czerwony, zielony, niebieski) jest przedstawiany przez dwie cyfry szesnastkowe. W kodzie RGB wartość 255 dla kanału czerwonego odpowiada szesnastkowej wartości FF, wartość 10 dla kanału zielonego odpowiada wartości 0A, a wartość 22 dla kanału niebieskiego odpowiada wartości 16. Łącząc te wartości, otrzymujemy #FF0A16. Praktyczne zastosowania kodów kolorów w formacie heksadecymalnym są powszechne w projektowaniu stron internetowych oraz grafice komputerowej, gdzie umożliwiają precyzyjne definiowanie kolorów. Warto również pamiętać, że standard W3C zaleca używanie formatu heksadecymalnego w CSS, co czyni go bardziej efektywnym dla deweloperów. Ponadto, znajomość konwersji kolorów RGB na heksadecymalny jest kluczowa dla każdego, kto zajmuje się designem i programowaniem wizualnych interfejsów użytkownika.

Pytanie 22

Formatowanie CSS dla akapitu określa styl szarej ramki z następującymi właściwościami:

p {
    padding: 15px;
    border: 2px dotted gray;
}
A. Linia kreskowa; grubość 2 px; odległości poza ramką 15 px
B. Linia ciągła; grubość 2 px; odległości poza ramką 15 px
C. Linia ciągła; grubość 2 px; odległości pomiędzy tekstem a ramką 15 px
D. Linia kropkowa; grubość 2 px; odległości pomiędzy tekstem a ramką 15 px
Odpowiedź ta jest prawidłowa, ponieważ w CSS stylizowanie elementu akapitu za pomocą podanego kodu definiuje ramkę o linii kropkowej, grubości 2 pikseli oraz paddingu wynoszącym 15 pikseli. Padding to przestrzeń wewnętrzna pomiędzy zawartością elementu a jego ramką, co oznacza, że tekst w akapicie będzie oddalony od krawędzi ramki o 15 pikseli. Styl ramki 'dotted' jest często używany w projektach webowych, aby stworzyć efekt wizualny, który jest mniej formalny, a zarazem estetyczny. Można go wykorzystać w kontekście wyróżniania ważnych informacji lub sekcji strony, co zwiększa czytelność i przyciąga uwagę użytkowników. Przykładem zastosowania może być sekcja z informacjami o promocjach, gdzie forma wizualna ma na celu przyciągnięcie wzroku. Używając standardów CSS, dobrego podejścia do UX (User Experience) oraz wytycznych W3C, projektanci stron internetowych mogą efektywnie komunikować intencje i priorytety poprzez stylowanie wizualne.

Pytanie 23

Zamieszczony kod w języku PHP

Ilustracja do pytania
A. określa tablicę z sześcioma wartościami
B. jest niepoprawny, nieznany operator =>
C. definiuje tablicę z trzema wartościami
D. jest błędny, indeksami tablicy mogą być wyłącznie liczby całkowite
Kod przedstawiony w pytaniu to przykład definiowania tablicy asocjacyjnej w języku PHP. Tablica asocjacyjna to struktura danych, która pozwala na przechowywanie wartości związanych z kluczami, które nie muszą być liczbami. W tym przypadku kluczami są łańcuchy znaków: 'imie', 'nazwisko' oraz 'wiek'. Każdy klucz ma przypisaną wartość: 'Anna', 'Nowak' oraz 21. Zatem tablica ta rzeczywiście zawiera trzy pary klucz-wartość. Operator '=>' jest używany w PHP do przypisywania wartości kluczom w tablicach asocjacyjnych. Jest to poprawna składnia i bardzo popularny sposób reprezentowania danych, zwłaszcza w kontekście baz danych i przetwarzania formularzy, gdzie każda wartość ma swoje unikalne znaczenie i klucz. W praktyce tablice asocjacyjne są używane do przechowywania danych, które nie mają charakteru sekwencyjnego, ale są raczej zestawem właściwości lub atrybutów obiektu. Stosowanie tablic asocjacyjnych z odpowiednimi kluczami wspiera czytelność kodu i ułatwia jego zarządzanie zwłaszcza w większych projektach gdzie zrozumienie struktury danych odgrywa kluczową rolę.

Pytanie 24

Które dane zostaną wybrane w wyniku działania kwerendy na przedstawionych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";
idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Tylko identyfikator równy 8.
B. Identyfikatory równe 7 oraz 8.
C. Brak danych.
D. Wszystkie identyfikatory.
Prawidłowa odpowiedź wskazuje, że w wyniku działania kwerendy zostaną wybrane rekordy z id równymi 7 oraz 8, ponieważ oba te roczniki zaczynają się cyfrą 2 i kończą na 4, co spełnia warunek LIKE '2%4'. W SQL operator LIKE umożliwia wyszukiwanie wzorców w danych tekstowych i jest bardzo użyteczny w sytuacjach, gdy nieznana jest pełna wartość, a tylko jej część. W praktycznych aplikacjach, takich jak systemy zarządzania bazami danych, często stosuje się ten operator do filtrowania wyników na podstawie niepełnych informacji. Na przykład, jeżeli chciałbyś zidentyfikować wszystkie pojazdy z określonym rocznikiem, użycie LIKE może szybko zawęzić wyniki. Używanie tego operatora w połączeniu z innymi funkcjami SQL, jak GROUP BY czy JOIN, pozwala na kompozycję bardziej złożonych zapytań, co jest standardem w analityce danych.

Pytanie 25

Jakie funkcje w języku PHP umożliwiają weryfikację wartości oraz typu zmiennej?

A. readfile()
B. implode()
C. strlen()
D. var_dump()
W języku PHP do sprawdzania wartości i typu zmiennej można wykorzystać funkcję var_dump(). Ta funkcja jest niezwykle przydatna w procesie debugowania, ponieważ wyświetla szczegółowe informacje na temat zmiennej, w tym jej typ, wartość oraz, w przypadku tablic i obiektów, również ich strukturę. Przykładowo, jeśli mamy zmienną $a przypisaną do wartości 10, wywołując var_dump($a), otrzymamy wynik: int(10). Oznacza to, że $a jest zmienną typu całkowitego (integer) o wartości 10. Funkcja ta jest szczególnie użyteczna w sytuacjach, gdy potrzebujemy dokładnych informacji o złożonych strukturach danych, takich jak tablice czy obiekty. Warto zauważyć, że var_dump() jest zgodna z typowymi standardami PHP i często stosowana w praktyce przez programistów do szybkiego diagnozowania problemów w kodzie. Dodatkowo, jej użycie jest zalecane podczas pisania testów jednostkowych, gdyż umożliwia weryfikację stanu zmiennych.

Pytanie 26

Która z funkcji SQL nie wymaga podania argumentów?

A. now
B. len
C. year
D. upper
Funkcje takie jak len(), year() oraz upper() są przykładami funkcji, które wymagają przynajmniej jednego argumentu, co czyni je nieodpowiednimi w kontekście pytania o funkcję bezargumentową. Funkcja len() jest używana do obliczania długości łańcucha znaków. Wymaga podania łańcucha jako argumentu, na przykład SELECT len('Przykład'); zwróci długość 9, co wskazuje na to, że len() jest funkcją, która nie może działać bez informacji o analizowanym łańcuchu. Funkcja year() jest z kolei używana do wyodrębnienia roku z daty. Przykład użycia to SELECT year('2023-10-01');, który zwróci 2023. Zatem, również ta funkcja potrzebuje daty jako argumentu, aby móc prawidłowo działać. Ostatnia z wymienionych funkcji, upper(), konwertuje wszystkie znaki w łańcuchu na wielkie litery. Aby to przeprowadzić, należy podać łańcuch jako argument, na przykład SELECT upper('tekst');, co zwróci 'TEKST'. Wobec tego, len(), year() oraz upper() są przykładami funkcji, które wymagają podania argumentów, co wyklucza je z kategorii funkcji bezargumentowych.

Pytanie 27

Zakładając, że tablica $tab zawiera liczby naturalne, co program wyświetli?

$liczba = $tab[0];
foreach ($tab as $element)
{
  if ($element > $liczba)
    $liczba = $element;
}
echo $liczba;
A. największy element tablicy
B. element tablicy o wartości $tab[0]
C. najmniejszy element tablicy
D. elementy, które przewyższają zmienną $liczba
Program w tym pytaniu ilustruje proces wyszukiwania największego elementu w tablicy za pomocą pętli foreach. Na początku zmienna $liczba jest inicjalizowana pierwszym elementem tablicy $tab. Następnie program iteruje przez wszystkie elementy tablicy i porównuje każdy z nich z aktualną wartością $liczba. Jeśli bieżący element jest większy niż $liczba, to wartość $liczba jest aktualizowana do tej większej wartości. Dzięki tej logice na końcu pętli $liczba przechowuje największy element z tablicy. Jest to zgodne z powszechnie stosowanym wzorcem projektowym polegającym na iteracyjnej aktualizacji zmiennej przechowującej ekstremalną wartość, w tym przypadku maksymalną. Taka metoda jest skuteczna i efektywna, ponieważ przeszukuje całą tablicę tylko raz, co jest operacją o złożoności czasowej O(n), gdzie n to liczba elementów w tablicy. Podejście to jest stosowane nie tylko w programach edukacyjnych, ale również w rzeczywistych projektach programistycznych, gdzie optymalne przetwarzanie danych jest kluczowe. Dobrą praktyką jest inicjalizacja zmiennej kontrolnej wartością pierwszego elementu tablicy, co unika niepotrzebnego porównywania z nieistotnymi wartościami, np. minus nieskończonością, i jest zgodne z zasadą KISS (Keep It Simple, Stupid).

Pytanie 28

Wskaż nieprawidłowy opis optymalizacji kodu generowanego przez program.

A. Jej celem jest zwiększenie efektywności działania programu
B. Jej celem jest sprawdzenie zgodności z wymogami formalnymi
C. Może być realizowana na różnych etapach działania w celu przyspieszenia wykonania kodu przez procesor
D. Powinna skutkować modyfikacją kodu źródłowego, aby działał on szybciej
Optymalizacja kodu wynikowego programu to proces, którego celem jest poprawa wydajności i szybkości działania aplikacji. Obejmuje różnorodne techniki, takie jak eliminacja zbędnych operacji, zmniejszenie liczby instrukcji i wykorzystanie efektywniejszych algorytmów. Przykłady obejmują refaktoryzację kodu, gdzie zmieniane są struktury danych lub algorytmy w celu osiągnięcia lepszej wydajności. Również optymalizacja na poziomie kompilacji, w której kompilatory mogą przeprowadzać różne techniki optymalizacji, takie jak inlining funkcji czy eliminacja martwego kodu, jest kluczowa. Standardy, takie jak C99 czy C11, często zawierają wytyczne dotyczące wydajności, co podkreśla znaczenie optymalizacji w tworzeniu nowoczesnych aplikacji. Istotne jest, aby proces ten był prowadzony na różnych etapach, od fazy projektowania po końcowe testy, aby zidentyfikować wąskie gardła i zwiększyć efektywność kodu.

Pytanie 29

Który z poniższych znaczników HTML można wykorzystać do stworzenia struktury witryny internetowej?

A. <aside>
B. <input>
C. <mark>
D. <em>
<aside> to znacznik, który dodaje coś ekstra do treści głównej na stronie, jak np. informacje poboczne. Używanie go jest zgodne z zasadami HTML5, które promują sensowne budowanie dokumentów. Możesz go używać np. do wyróżniania sekcji z informacjami o autorze lub linkami do innych artykułów. Dzięki temu, że stosujesz semantyczne znaczniki jak <aside>, twoje treści stają się lepiej zrozumiałe dla użytkowników. Co więcej, to też polepsza dostępność strony dla osób korzystających z technologii wspomagających, jak czytniki ekranu. Dobrze zastosowane <aside> ułatwia organizację treści, co pozytywnie wpływa na SEO, bo wyszukiwarki łatwiej rozumieją strukturę strony. A i tak w ogóle, używanie semantycznych znaczników pozwala utrzymać kod w lepszej formie, co ważne, zwłaszcza przy pracy w zespołach nad większymi projektami.

Pytanie 30

Aby w JavaScript wykonać wymienione kroki:

1. Wyświetlić okno do wpisania wartości z poleceniem "Podaj kwalifikację: ",
   następnie po zatwierdzeniu
2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się
   wartość pobrana z okna "Kwalifikacja: ..."
należy w znaczniku <script> umieścić kod
A. A = prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);

B. A = prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " .A);

C. A = alert("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);

D. A << prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);
A. B.
B. D.
C. C.
D. A.
Wygląda na to, że nie do końca trafiłeś. Niektóre odpowiedzi sugerowały użycie funkcji, które nie nadają się do tego zadania. Na przykład, `alert` pokazuje tylko jakiś komunikat, ale nie pozwala na wpisanie czegoś przez użytkownika. Inną możliwością mogły być też metody manipulacji DOM, ale to już trochę bardziej skomplikowane i nie było w tym przypadku konieczne. Ważne jest, żeby wiedzieć, które funkcje w JavaScript są do czego, żeby móc je dobrze wykorzystać.

Pytanie 31

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: right; } section { float: right; }
B. aside {float: left; }
C. nav { float: left; } aside { float: left; }
D. nav { float: right; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie. W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie. Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 32

Która z poniższych funkcji języka PHP zamieni wyraz „kota” na wyraz „mysz” w zdaniu „ala ma kota”?

A. str_replace( "kota", "mysz", "ala ma kota");
B. replace("ala ma kota", "kota", "mysz");
C. replace("kota", "mysz", "ala ma kota");
D. str_replace("ala ma kota", "kota", "mysz");
Niektóre z odpowiedzi mogą wydawać się na pierwszy rzut oka zbliżone do prawidłowego rozwiązania, jednak po bliższym przyjrzeniu się można zauważyć ich zasadnicze błędy. Pierwsza z niepoprawnych opcji używa funkcji replace, jednak ta funkcja nie istnieje w PHP; poprawna nazwa to str_replace. Druga opcja również nie jest poprawna, ponieważ argumenty zostały podane w niewłaściwej kolejności. Funkcja str_replace zawsze wymaga, aby szukany ciąg był podany jako pierwszy argument, a nie drugi. Ostatnia z propozycji również jest błędna, ponieważ zamienia miejscami ciąg do zastąpienia i kontekst, co uniemożliwia prawidłowe działanie. Takie błędne przekonania często wynikają z mylnego założenia, że kolejność argumentów jest dowolna lub że istnieje inna funkcja o nazwie replace, co jest nieprawdziwe. W praktyce programiści powinni zwracać szczególną uwagę na dokumentację PHP oraz przestrzegać definicji funkcji, aby unikać takich pomyłek. Zrozumienie właściwego użycia funkcji oraz jej argumentów jest kluczowe dla efektywnego programowania w PHP i unikania błędów, które mogą prowadzić do nieoczekiwanych rezultatów.

Pytanie 33

Funkcja agregująca MIN w języku SQL ma na celu obliczenie

A. liczby wierszy, które zwraca kwerenda
B. minimalnej wartości kolumny, która jest wynikiem kwerendy
C. ilości znaków w rekordach zwróconych przez kwerendę
D. średniej wartości różnych pól w rekordu zwróconego przez zapytanie
Funkcja agregująca MIN w języku SQL jest kluczowym narzędziem do analizy danych, której głównym celem jest zwracanie najmniejszej wartości z kolumny wynikowej zapytania. Jej zastosowanie jest szczególnie przydatne w kontekście analizy danych numerycznych, gdzie można chcieć określić najniższą wartość, na przykład w przypadku cen produktów, ocen studentów czy dat. Funkcja ta może być używana w klauzulach SELECT z instrukcją GROUP BY, co pozwala na obliczanie minimalnych wartości w różnych grupach danych. Przykładowo, zapytanie SELECT kategoria, MIN(cena) FROM produkty GROUP BY kategoria; zwróci najniższą cenę w każdej kategorii produktów. Warto także dodać, że zgodnie z standardem SQL, funkcja MIN działa na różnych typach danych, w tym liczbach całkowitych, zmiennoprzecinkowych i datach, co czyni ją niezwykle wszechstronnym narzędziem w codziennej pracy z bazami danych. Zrozumienie działania funkcji MIN i jej zastosowań pozwala na efektywne przetwarzanie danych oraz podejmowanie lepszych decyzji biznesowych opartych na analizie statystycznej.

Pytanie 34

Jakiego typu w języku PHP można użyć do przechowywania wielu wartości z opcją ich indeksowania?

A. float
B. boolean
C. array
D. double
W PHP, jeśli chcesz przechowywać wiele wartości z możliwością ich indeksowania, to wybór pada na tablicę, czyli array. Tablice to naprawdę elastyczne struktury danych i mogą trzymać różne typy danych, takie jak liczby, teksty, obiekty, a nawet inne tablice. Fajną sprawą jest to, że możesz tworzyć tablice asocjacyjne, co oznacza, że przypisujesz wartości do konkretnych kluczy. Na przykład możesz stworzyć tablicę z imionami i numerami telefonów, jak w tym przykładzie: $contacts = array('Jan' => '123456789', 'Anna' => '987654321'). W PHP możesz łatwo dodawać i usuwać elementy, co jest super przydatne w programowaniu. A jakby tego było mało, tablice mogą być też wielowymiarowe, co sprawia, że idealnie nadają się do skomplikowanych danych, na przykład w bazach danych czy w aplikacjach webowych. Warto wiedzieć, że tablice w PHP są traktowane jako obiekty, więc masz dostęp do różnych funkcji, jak array_merge(), array_filter() czy array_map(). Dzięki nim manipulacja danymi staje się znacznie łatwiejsza. Tak więc odpowiedź 'array' to nie tylko dobry wybór, ale też kluczowa kwestia w programowaniu w PHP!

Pytanie 35

Rekord w bazie danych identyfikowany jest jednoznacznie przez pole

A. klucza podstawowego
B. relacji
C. numeryczne
D. klucza obcego
Klucz podstawowy jest unikalnym identyfikatorem rekordu w tabeli bazy danych, który zapewnia jednoznaczność każdego wpisu. W praktyce oznacza to, że żaden z wpisów w tabeli nie może mieć tego samego klucza podstawowego, co pozwala na łatwe odnajdywanie i łączenie danych. Klucz podstawowy jest często implementowany jako pole numeryczne, co umożliwia szybką i efektywną indeksację. W standardzie SQL klucz podstawowy definiuje się za pomocą polecenia 'PRIMARY KEY'. Przykładem zastosowania klucza podstawowego może być tabela 'Użytkownicy', w której pole 'ID_Użytkownika' pełni rolę klucza podstawowego, zapewniając unikalność dla każdego użytkownika. Klucz podstawowy może składać się z jednego lub więcej pól, a w przypadku złożonych kluczy podstawowych, wszystkie pola muszą być wypełnione, aby rekord był uznany za unikalny. Dlatego właśnie klucz podstawowy jest fundamentem relacyjnych baz danych, umożliwiającym prawidłowe zarządzanie danymi.

Pytanie 36

W języku CSS określono formatowanie znacznika h1 według poniższego wzoru. Zakładając, że do znacznika h1 nie dodano żadnego innego formatowania, wskaż sposób formatowania tego znacznika.

h1 {
    font-style: oblique;
    font-variant: small-caps;
    text-align: right;
}
Ilustracja do pytania
A. C.
B. D.
C. A.
D. B.
Gratulacje, Twoja odpowiedź jest prawidłowa. W CSS określono, że znacznik h1 ma być wyświetlany z pochyłą czcionką, co jest osiągane za pomocą właściwości 'font-style: oblique'. Dodatkowo, małe wielkie litery są realizowane przez 'font-variant: small-caps', które zmieniają wszystkie małe litery na wielkie litery, ale z zachowaniem mniejszego rozmiaru. Wreszcie, do wyrównania tekstu do prawej strony służy 'text-align: right'. Wszystko to razem składa się na formatowanie znacznika h1, które zostało zdefiniowane w CSS. To jest dobra praktyka, aby zrozumieć i zapamiętać różne właściwości CSS, ponieważ pozwalają one na bardzo szczegółowe kontrolowanie wyglądu i układu elementów na stronie. Pamiętaj, że CSS jest niezwykle potężnym narzędziem w rękach doświadczonego programisty front-end i pozwala na tworzenie estetycznych, responsywnych i przyjaznych dla użytkownika interfejsów.

Pytanie 37

input:focus { background-color: LightGreen; } W Ciebie CSS określono stylizację dla pola wejściowego. Tak przygotowane pole wejściowe będzie miało tło w odcieniu jasnozielonym?

A. po naciśnięciu przycisku myszy w celu wprowadzenia tekstu
B. jeżeli jest to pierwsza obecność tego elementu w dokumencie
C. kiedy zostanie najechane kursorem myszy bez jego klikania
D. w każdej sytuacji
Odpowiedź 'po kliknięciu myszą w celu zapisania w nim tekstu' jest poprawna, ponieważ styl CSS zdefiniowany jako 'input:focus' odnosi się do stanu, w którym pole edycyjne jest aktywne i gotowe do wprowadzania danych. Kiedy użytkownik klika w pole edycyjne, przeglądarka przełącza jego stan na 'focus', co skutkuje zastosowaniem zdefiniowanego stylu, w tym przypadku jasnozielonego tła. Dzięki temu użytkownicy mogą wizualnie zidentyfikować, które pole edycyjne jest aktualnie wybrane, co znacząco poprawia użyteczność i interaktywność formularzy na stronach internetowych. W praktyce, jest to kluczowe podczas projektowania formularzy, aby zapewnić użytkownikom wyraźne wskazówki dotyczące aktualnego stanu interfejsu. Dobrym przykładem zastosowania jest formularz rejestracyjny, gdzie aktywne pole edycyjne wyróżnia się kolorem, ułatwiając użytkownikom wprowadzanie danych. Zgodnie z wytycznymi WCAG (Web Content Accessibility Guidelines), takie wizualne wskazówki są istotne dla zapewnienia dostępności aplikacji webowych, co czyni je standardem branżowym.

Pytanie 38

Do podzbioru DML (ang. Data Manipulation Language) języka SQL należą polecenia:

A. BEGIN, COMMIT, ROLLBACK
B. CREATE, DROP, ALTER
C. GRANT, REVOKE, DENY
D. INSERT, UPDATE, DELETE
W SQL bardzo łatwo pomylić różne grupy poleceń, bo wszystkie wyglądają podobnie, a jednak należą do innych podzbiorów języka. Podzbiór DML (Data Manipulation Language) dotyczy wyłącznie operacji na danych w tabelach: wstawiania, modyfikowania, usuwania i odczytu rekordów. Dlatego do DML zaliczamy przede wszystkim INSERT, UPDATE, DELETE oraz w wielu opracowaniach także SELECT. Wszystko to, co zmienia zawartość tabel, a nie ich definicję czy uprawnienia. Częsty błąd polega na wrzucaniu do jednego worka wszystkich poleceń SQL, bo „to też jest praca na bazie danych”. Na przykład CREATE, DROP i ALTER należą do DDL (Data Definition Language). One definiują strukturę bazy: tworzą tabele, usuwają je, zmieniają kolumny. To są operacje na schemacie bazy, a nie na rekordach. W praktyce używasz ich przy projektowaniu lub migracjach, a nie przy codziennej pracy aplikacji na danych użytkowników. Z kolei GRANT, REVOKE i DENY to klasyka DCL (Data Control Language). Te polecenia sterują uprawnieniami: kto może wykonywać SELECT, INSERT czy DELETE na danej tabeli, kto może tworzyć obiekty, itd. To już bardziej klimat administracji i bezpieczeństwa niż typowej manipulacji rekordami. BEGIN, COMMIT i ROLLBACK też bywają mylące. Dotyczą transakcji i zalicza się je zwykle do TCL (Transaction Control Language). One nie dodają ani nie zmieniają pojedynczego rekordu, tylko kontrolują „pakiet” operacji DML: pozwalają zatwierdzić lub wycofać całą serię INSERT/UPDATE/DELETE. Typowy błąd myślowy jest taki: skoro coś ma związek z danymi lub ich bezpieczeństwem, to pewnie DML. A jednak standardy i dobra praktyka wyraźnie rozdzielają DDL, DML, DCL i TCL, bo to pomaga lepiej rozumieć odpowiedzialność poszczególnych instrukcji i projektować bezpieczniejsze aplikacje. W codziennej pracy programisty webowego DML to głównie to, co stoi „pod spodem” formularzy: zapisywanie, edycja i kasowanie rekordów, a nie zarządzanie strukturą czy uprawnieniami.

Pytanie 39

Do czego wykorzystywany jest program debugger?

A. do badania kodu źródłowego w celu wykrycia błędów składniowych
B. do interpretacji kodu w wirtualnej maszynie Java
C. do analizy działającego programu w celu odnalezienia błędów
D. do przetwarzania kodu napisanego w języku wyższego poziomu na język maszynowy
Pomimo że niektóre odpowiedzi mogą wydawać się bliskie prawdy, należy zrozumieć istotne różnice między funkcjami debuggera a innymi narzędziami w ekosystemie programistycznym. Interpretacja kodu w wirtualnej maszynie Java nie jest zadaniem debuggera, lecz specyficzną funkcją maszyny wirtualnej, która wykonuje programy napisane w języku Java. Ta odpowiedź myli koncepcję uruchamiania kodu z jego analizą i diagnostyką. Z kolei analiza kodu źródłowego w celu odnalezienia błędów składniowych odnosi się do działania kompilatora, który sprawdza poprawność składniową przed uruchomieniem programu, podczas gdy debugger działa na już uruchomionym kodzie. Tłumaczenie kodu zapisanego w języku wyższego poziomu na język maszynowy to proces kompilacji, który ma miejsce przed wykonaniem programu. Debugger, zamiast tego, koncentruje się na dynamicznej analizie działania programu, co jest kluczowe podczas testowania i naprawiania błędów. Zrozumienie tych różnic jest niezbędne, aby poprawnie wykorzystać narzędzia dostępne w procesie tworzenia oprogramowania oraz aby unikać typowych błędów myślowych, takich jak mylenie etapu kompilacji z etapem wykonania.

Pytanie 40

Jakie słowo kluczowe w SQL należy zastosować, aby usunąć powtarzające się rekordy?

A. DISTINCT
B. ORDER BY
C. LIKE
D. GROUP BY
Słowo kluczowe DISTINCT jest używane w języku SQL do eliminowania duplikatów z wyników zapytań. Gdy zastosujemy DISTINCT w zapytaniu SELECT, baza danych zwróci tylko unikalne wiersze, co jest niezwykle przydatne, gdy chcemy uzyskać listę bez powtarzających się wartości. Na przykład, jeśli mamy tabelę 'klienci' z kolumną 'miasto', a nasze zapytanie brzmi: 'SELECT DISTINCT miasto FROM klienci;', wówczas wynik będzie zawierał tylko unikalne nazwy miast, eliminując wszelkie duplikaty. To podejście nie tylko upraszcza analizę danych, ale również poprawia wydajność zapytań w wielu przypadkach, zwłaszcza gdy przetwarzamy duże zbiory danych. Użycie DISTINCT jest zgodne z najlepszymi praktykami w zakresie optymalizacji baz danych, ponieważ pozwala zapobiegać przypadkowemu wprowadzaniu niepotrzebnych danych podczas analizy. Warto także zauważyć, że DISTINCT działa na całym zestawie kolumn w zapytaniu. Oznacza to, że jeśli wybierzemy wiele kolumn z DISTINCT, unikalne wiersze będą określane na podstawie kombinacji wartości we wszystkich tych kolumnach, co daje jeszcze większą kontrolę nad wynikami zapytania.