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: 8 czerwca 2026 23:01
  • Data zakończenia: 8 czerwca 2026 23:41

Egzamin niezdany

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

W MS SQL Server predefiniowana rola o nazwie dbcreator umożliwia użytkownikowi

A. zarządzanie plikami na nośniku
B. tworzenie, aktualizowanie, usuwanie oraz przywracanie bazy danych
C. wykonywanie wszelkich operacji na serwerze oraz posiadanie praw do każdej bazy
D. zarządzanie zabezpieczeniami systemu
Odpowiedź nr 3 jest poprawna, ponieważ rola dbcreator w MS SQL Server umożliwia użytkownikowi tworzenie, modyfikowanie, usuwanie oraz odzyskiwanie baz danych. Użytkownik z tą rolą ma prawo do pełnej kontroli nad bazami danych, co jest istotne w kontekście zarządzania i utrzymania infrastruktury danych. Przykład praktyczny to sytuacja, w której administrator bazy danych potrzebuje utworzyć nową bazę dla aplikacji. Dzięki roli dbcreator może to zrobić bez dodatkowych uprawnień. Rola ta jest zgodna z najlepszymi praktykami w zakresie zarządzania dostępem, gdzie ogranicza się uprawnienia do niezbędnego minimum, ale jednocześnie umożliwia wykonanie kluczowych zadań związanych z zarządzaniem bazą danych. Warto zaznaczyć, że nadmierne przyznawanie uprawnień może prowadzić do problemów związanych z bezpieczeństwem, dlatego istotne jest przydzielanie ról zgodnie z zasadą najmniejszych uprawnień (Least Privilege Principle). Użytkownicy z rolą dbcreator powinni być odpowiednio przeszkoleni i świadomi swoich działań, aby nie wprowadzać niezamierzonych zmian w środowisku produkcyjnym.

Pytanie 2

Funkcja PHP var_dump() prezentuje dane na temat zmiennej, w tym jej typ oraz wartość. Jakim wynikiem zakończy się poniższy fragment kodu?

$x = 59.85; var_dump($x);
A. float(59.85)
B. array(2) { [0]=> int(59) [1]=> int(85) }
C. int(59)
D. string(5) "59.85"
Wybrane odpowiedzi nie są zgodne z poprawnym wynikiem działania funkcji var_dump() w PHP. Odpowiedź, która sugeruje, że wynik to "int(59)" jest błędna, ponieważ funkcja ta nie konwertuje zmiennoprzecinkowych wartości na liczby całkowite, a 59.85 jest wyraźnie liczbą zmiennoprzecinkową. Inna odpowiedź, sugerująca "string(5) "59.85"", jest myląca, ponieważ zmienna $x została zadeklarowana jako liczba, a nie jako string. PHP automatycznie określa typ zmiennej na podstawie przypisanej wartości, a w tym przypadku jest to typ float. Odpowiedź "array(2) { [0]=> int(59) [1]=> int(85) }" również jest nieprawidłowa, ponieważ nie mamy do czynienia z tablicą, a z pojedynczą zmienną. Przykłady te ilustrują typowe nieporozumienia dotyczące typów danych w PHP. Programiści powinni zrozumieć, że PHP jest dynamicznie typowanym językiem, co oznacza, że typ zmiennej jest określany podczas wykonywania programu, a nie w czasie kompilacji. Właściwe zrozumienie typów danych oraz ich konwersji jest kluczowe dla zapewnienia poprawności i bezpieczeństwa kodu.

Pytanie 3

$z = mysqli_query($db, "SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a = mysqli_fetch_row($z);
echo "$a[1], $a[2]";
W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
A. miasta i kodu pocztowego z pierwszego zwróconego rekordu
B. miasta i kodu pocztowego ze wszystkich zwróconych rekordów
C. ulicy i miasta z pierwszego zwróconego rekordu
D. ulicy i miasta ze wszystkich zwróconych rekordów
Kod PHP wykonuje zapytanie do bazy danych przy użyciu funkcji mysqli_query co powoduje pobranie wszystkich rekordów z kolumn ulica miasto i kod_pocztowy z tabeli adresy jednak funkcja mysqli_fetch_row pobiera tylko pierwszy rekord z wynikowego zbioru danych. Jest to kluczowy aspekt ponieważ mysqli_fetch_row nie iteruje automatycznie przez wszystkie rekordy co jest częstym błędem w interpretacji działania tej funkcji. Często mylnie zakłada się że funkcja echo w połączeniu z pętlą może obsłużyć cały zestaw danych co w kontekście tego kodu nie ma miejsca ponieważ pętla nie została użyta. Zrozumienie działania funkcji takich jak mysqli_fetch_row jest kluczowe dla poprawnego przetwarzania danych z bazy. Indeksowanie w tablicach wynikowych zaczyna się od zera dlatego też $a[1] i $a[2] odnoszą się do drugiego i trzeciego elementu tablicy a nie pierwszego i drugiego co również jest częstym źródłem błędów wśród początkujących programistów. Ponadto brak zrozumienia że echo wypisuje wartości z jednego rekordu a nie wszystkich może prowadzić do błędnych założeń w projektowaniu logiki aplikacji. Aby uzyskać dane ze wszystkich rekordów konieczne byłoby zastosowanie pętli takiej jak while która iterowałaby przez cały zbiór wyników co pokazuje różnicę w podejściu między pobieraniem pojedynczego rekordu a całego zestawu danych. Zrozumienie tych koncepcji jest istotne dla efektywnego i bezpiecznego korzystania z bazy danych w aplikacjach PHP i pozwala na unikanie typowych błędów związanych z przetwarzaniem rekordów z bazy danych. Dokładne zrozumienie struktury tablic wynikowych i sposobu ich przetwarzania jest niezbędne do rozwijania wydajnych i bezpiecznych aplikacji webowych. Warto również pamiętać o zabezpieczeniach takich jak użycie przygotowanych zapytań SQL by uniknąć ataków typu SQL Injection co jest istotnym aspektem tworzenia aplikacji bezpiecznych i odpornych na próby nieautoryzowanego dostępu.

Pytanie 4

<?php
$dane = fread(fopen("plik.txt", "r"), filesize("plik.txt"));
?>
Przedstawiony kod zapisany w języku PHP ma za zadanie
A. zapisać do pliku plik.txt wartość zmiennej dane
B. zmiennej dane przypisać wielkość pliku plik.txt
C. zmiennej dane przypisać zawartość pliku plik.txt
D. otworzyć plik plik.txt i jako wartość zmiennej dane przypisać rozmiar pliku
Kod z pytania wykorzystuje trzy kluczowe elementy pracy z plikami w PHP: fopen, fread i filesize. Żeby dobrze zrozumieć, dlaczego niektóre interpretacje są błędne, trzeba rozdzielić pojęcia „odczyt” i „zapis” oraz pamiętać, co tak naprawdę zwracają poszczególne funkcje. fopen z parametrem "r" otwiera plik wyłącznie do czytania. W tym trybie nie ma możliwości zapisu danych do pliku, więc każda interpretacja sugerująca, że coś jest zapisywane do pliku, stoi w sprzeczności z dokumentacją PHP. To jest częsty błąd: ktoś widzi funkcję pracującą na plikach i automatycznie myśli o zapisie, a tutaj jest tylko odczyt.
Kolejna mylna ścieżka rozumowania dotyczy funkcji filesize. Ona faktycznie zwraca rozmiar pliku w bajtach, ale w tym kodzie ten rozmiar jest użyty wyłącznie jako argument dla fread, czyli jako informacja: „ile bajtów odczytać”. Zmienna $dane nie dostaje więc wartości rozmiaru pliku, tylko wynik działania fread, czyli tekstową zawartość pliku. Rozmiar pojawia się tu tylko po to, żeby powiedzieć fread, ile danych ma pobrać z uchwytu pliku. To jest subtelna, ale ważna różnica: wartość zwracana przez filesize nie jest przypisywana bezpośrednio do $dane.
Może się też pojawić pokusa, by myśleć, że kod jednocześnie otwiera plik i „przypisuje rozmiar pliku jako wartość zmiennej”. W praktyce mamy dwie operacje: otwarcie pliku (fopen) i odczyt zawartości (fread). Otworzenie pliku nie jest celem samym w sobie, jest tylko krokiem pośrednim, koniecznym do tego, żeby fread mogło pobrać dane. Z mojego doświadczenia wynika, że uczniowie często mieszają: co zwraca uchwyt pliku, co zwraca funkcja odczytu, a co funkcja podająca rozmiar. Tutaj zwracany jest string z treścią pliku, nie liczba bajtów i nie sam uchwyt.
Podsumowując merytorycznie: w tym przykładzie nie zachodzi zapis do pliku, zmienna $dane nie przyjmuje samego rozmiaru pliku, ani też nie jest do niej wprost przypisywana wartość z filesize. Cała logika kodu prowadzi do jednego efektu – odczytania pełnej zawartości pliku plik.txt i umieszczenia jej w zmiennej $dane, co jest poprawną interpretacją zgodną ze standardowym sposobem użycia fopen i fread w PHP.

Pytanie 5

Gdy zmienna $x przechowuje dowolną dodatnią liczbę naturalną, poniższy kod źródłowy PHP ma na celu wyświetlenie:

$licznik = 0;
while ($licznik != $x) 
{
    echo $licznik;
    $licznik++;
}
A. liczby wprowadzane z klawiatury, aż do momentu wprowadzenia wartości x
B. kolejne liczby od 0 do x-1
C. przypadkowe liczby z zakresu (0, x)
D. kolejne liczby od x do 0
Poprawna odpowiedź to 'kolejne liczby od 0 do x-1'. Kod PHP w pętli 'while' wyświetla kolejne liczby naturalne, zaczynając od 0. Pętla ta będzie kontynuowana, dopóki zmienna $licznik nie osiągnie wartości x, czyli dopóki $licznik < x. Wartością ostatniej liczby, jaką pętla wyświetli, będzie zatem x-1, ponieważ wartość x nie jest już spełnieniem warunku pętli. To ważne rozróżnienie w programowaniu, gdzie często stosuje się różne typy pętli i konstrukcje sterujące. W praktyce, zrozumienie tego mechanizmu jest kluczowe dla manipulowania danymi i tworzenia skryptów o różnych funkcjonalnościach. Pętle są jednym z podstawowych elementów kontroli przepływu w większości języków programowania, a różne ich typy i zastosowania pozwalają na realizację różnorodnych zadań, od prostych operacji na danych do skomplikowanych algorytmów.

Pytanie 6

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

A. <
B. "
C. >
D. &
W przypadku odpowiedzi, które nie są poprawne, warto zaznaczyć, że wyspecjalizowane znaki mają różne encje HTML, a odpowiedzi, które sugerują inne znaki, nieodpowiednio interpretują zasady użycia. Znak > jest stosowany do reprezentowania większości, a jego encja to &gt;. Użycie znaku > w sytuacji, gdy chcemy wyświetlić go dosłownie, również wymaga zastosowania encji, co sprawia, że ta odpowiedź jest błędna w kontekście pytania dotyczącego znaku <. Znak & jest z kolei używany do wprowadzania encji w HTML i jego książkowa reprezentacja to &amp;. Gdybyśmy spróbowali wyświetlić & bez użycia encji, przeglądarka mogłaby zinterpretować go jako początek nowej encji, co prowadziłoby do błędów w renderowaniu. Ostatni znak " również wymaga encji, aby był wyświetlany poprawnie, ponieważ jego bezpośrednie użycie mogłoby prowadzić do problemów z interpretacją atrybutów w znacznikach. W każdym z tych przypadków musimy stosować odpowiednie encje HTML dla zachowania integralności kodu oraz poprawności wyświetlania treści w przeglądarkach, co jest kluczowe w projektowaniu z wykorzystaniem HTML.

Pytanie 7

Deklarując var x="true"; w języku JavaScript, jakiego typu zmienną się tworzy?

A. Nieokreślonego (undefined)
B. Liczbowego
C. Logicznego
D. String (ciąg znaków)
Odpowiedź 'String (ciąg znaków)' jest poprawna, ponieważ w języku JavaScript zmienna zadeklarowana za pomocą 'var x="true";' przechowuje wartość typu tekstowego. Wartość 'true' jest traktowana jako ciąg znaków, ponieważ jest umieszczona w cudzysłowie. JavaScript jest językiem dynamicznie typowanym, co oznacza, że typ zmiennej jest określany w momencie przypisania wartości. W praktyce, ciągi znaków są powszechnie używane w programowaniu webowym do reprezentacji danych, takich jak teksty, komunikaty, a także do przetwarzania informacji z formularzy. Dobre praktyki obejmują użycie cudzysłowów pojedynczych lub podwójnych do definiowania ciągów, a także unikanie mieszania typów, co może prowadzić do błędów. Ważne jest, aby zawsze być świadomym typu danych, z którymi pracujemy, aby uniknąć nieoczekiwanych wyników w kodzie. Zrozumienie, jak JavaScript interpretuje różne typy danych, jest kluczowe dla efektywnego programowania oraz debugowania aplikacji.

Pytanie 8

Co według zasad ACID oznacza wymóg TRWAŁOŚCI (durability) transakcji?

A. transakcję można podzielić na dwa niezależne etapy
B. dane zatwierdzone przez transakcję pozostają dostępne mimo późniejszych zdarzeń
C. w trakcie transakcji dane mogą zmieniać inne transakcje
D. przy naruszeniu spójności transakcja usuwa tabele z kluczami obcymi
Trwałość (durability) z reguł ACID gwarantuje, że dane raz ZATWIERDZONE (commit) przez transakcję pozostaną w bazie na stałe - nawet jeśli zaraz potem nastąpi awaria zasilania czy restart serwera. System osiąga to, zapisując zmiany w sposób przetrwający awarię, np. w dzienniku transakcji. Dlatego trwałość oznacza, że zatwierdzone dane pozostają dostępne mimo późniejszych awarii.

Pytanie 9

Którego złączenia należy użyć, aby z dwóch tabel pobrać wszystkie wiersze tabeli po lewej stronie, nawet jeśli nie mają dopasowania w prawej?

A.
RIGHT JOIN
B.
INNER JOIN
C.
CROSS JOIN
D.
LEFT JOIN
Pozostałe złączenia działają inaczej. INNER JOIN zwraca wyłącznie wiersze, które mają dopasowanie w obu tabelach - pominie więc te z lewej bez pary. RIGHT JOIN zachowuje komplet wierszy tabeli prawej, czyli odwrotnie niż w pytaniu. CROSS JOIN tworzy iloczyn kartezjański, łącząc każdy wiersz z każdym, co nie dotyczy dopasowywania po kluczu. Wszystkie wiersze lewej tabeli (z NULL w miejscach bez pary) zwraca LEFT JOIN, dlatego to ono jest poprawne.

Pytanie 10

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

Pytanie 11

Program FileZilla może być użyty do

A. zarządzania bazami danych strony internetowej
B. walidacji strony internetowej
C. publikacji strony internetowej na serwerze
D. zmiany domyślnych ustawień hostingu dla strony internetowej
Wybór odpowiedzi, która nie odnosi się do publikacji strony internetowej na serwerze, jest typowym błędem związanym z myleniem różnych funkcji i zastosowań technologii internetowych. Walidacja strony internetowej, choć ważna, odnosi się do sprawdzania poprawności kodu HTML oraz zgodności z standardami W3C, co nie ma bezpośredniego związku z przesyłaniem plików na serwer. Użytkownicy często zakładają, że weryfikacja poprawności ich kodu jest wystarczająca do publikacji, co jest nieścisłe, ponieważ nawet poprawny kod nie będzie dostępny online bez przesłania na serwer. Zmiana domyślnych ustawień hostingu również nie ma związku z funkcjonalnością FileZilla, ponieważ takie zmiany zazwyczaj dokonuje się w panelu zarządzania hostingiem, a nie przez klienta FTP. Ponadto zarządzanie bazami danych, które jest inną kluczową częścią rozwoju aplikacji webowych, wymaga użycia narzędzi takich jak PHPMyAdmin czy konsola SQL, a nie narzędzi do przesyłania plików. Zrozumienie tych różnic jest niezbędne dla efektywnego korzystania z technologii webowych i unikania typowych pułapek, które mogą prowadzić do błędnych wniosków oraz problemów w procesie publikacji stron internetowych.

Pytanie 12

W dokumencie HTML zdefiniowano pewne elementy w klasie o nazwie "nomargin". W celu przeprowadzenia operacji na tych elementach za pomocą języka JavaScript, można wykorzystać funkcję

A. getElementById("nomargin")
B. getElement("nomargin")
C. getElementsByTagName("nomargin")
D. getElementsByClassName("nomargin")
Niepoprawność wybranych odpowiedzi wynika z niewłaściwego rozumienia zasad selekcji elementów w DOM przy użyciu JavaScript. Funkcja getElement("nomargin") nie istnieje w standardowym API JavaScript, co sprawia, że nie może zostać zastosowana do uzyskania elementów na stronie. Wybranie tej opcji świadczy o braku znajomości dostępnych metod w obiekcie document. Podobnie, zastosowanie getElementById("nomargin") jest niewłaściwe, ponieważ ta metoda działa jedynie na elementach, które mają unikalny identyfikator (id). Zgodnie z zasadami HTML, identyfikatory muszą być unikalne w obrębie dokumentu, co oznacza, że nie można przypisać tej samej wartości id wielu elementom. Dlatego wybór tej metody wskazuje na nieporozumienie dotyczące struktury HTML oraz zasad dotyczących unikalności identyfikatorów. Ponadto, getElementsByTagName("nomargin") jest również błędne, ponieważ ta metoda służy do selekcji elementów na podstawie ich nazwy tagu, a nie klasy. W praktyce, błędne podejście do selekcji może prowadzić do błędów w manipulacji DOM oraz obniżenia wydajności aplikacji, gdyż niewłaściwie wybrane metody mogą nie zwracać oczekiwanych wyników. Warto więc zapoznać się z dokumentacją i zrozumieć, jakie metody są dostępne oraz w jakim kontekście można je stosować, aby poprawnie działać w środowisku JavaScript.

Pytanie 13

W którym z poniższych przykładów walidacja fragmentu kodu CSS zakończy się sukcesem?

A. p { font-weight:bold; }
B. p { text-size:bold; }
C. <p style="font-size:bold;">
D. <p style="font-style:bold;">
Odpowiedzi, które próbują zastosować atrybuty stylów w niepoprawny sposób, zdradzają zrozumienie składni CSS oraz zasad stylizacji dokumentów HTML. W przypadku <p style="font-style:bold;"> pojawia się błąd, ponieważ atrybut style powinien zawierać właściwość font-weight, a nie font-style. Właściwość font-style jest przeznaczona do określenia stylu czcionki, takiego jak italic czy normal, a nie do ustawiania jej grubości. Zatem użycie 'bold' w kontekście font-style jest nieprawidłowe i prowadzi do tego, że przeglądarka nie zastosuje żadnej stylizacji. W kolejnej opcji, p { text-size:bold; }, znowu widzimy błąd w nazwie właściwości. Nie istnieje właściwość CSS o nazwie text-size; powinna być użyta font-size, a wartością mogą być jednostki takie jak px, em, rem itp. Ponadto, wartość 'bold' nie jest odpowiednia dla font-size, ponieważ ta właściwość przyjmuje liczby i jednostki, a nie stylizację. Ostatnia odpowiedź, <p style="font-size:bold;">, również jest błędna z tego samego powodu co wcześniej - font-size wymaga konkretnej wartości w jednostkach, a 'bold' nie jest akceptowalną wartością. Te błędne odpowiedzi pokazują, jak ważne jest zrozumienie składni CSS i stosowanie właściwych nazw właściwości w celu efektywnego stylizowania dokumentów HTML.

Pytanie 14

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

A. <em> </em>
B. <u> </u>
C. <b> </b>
D. <s> </s>
W tym pytaniu łatwo pomylić różne znaczniki HTML, bo wiele z nich wpływa na wygląd tekstu, ale pełnią zupełnie inne role semantyczne. W standardzie HTML <b> odpowiada głównie za pogrubienie tekstu, bez nadawania mu specjalnego znaczenia. To po prostu wizualne wyróżnienie, coś jak podkręcenie czcionki w edytorze tekstu. Nie informuje jednak, że treść jest błędna, nieaktualna czy powinna być zignorowana. W nowoczesnym kodzie, jeśli chcemy podkreślić ważność treści, lepszym wyborem jest <strong>, a nie <b>. Podobnie <em> nie ma nic wspólnego z przekreśleniem – ten znacznik służy do emfazy, czyli zaakcentowania fragmentu zdania, zwykle renderowany jest kursywą. Semantycznie oznacza, że dany fragment ma inne brzmienie albo nacisk w wypowiedzi, co jest istotne np. dla czytników ekranu czy tłumaczeń. Z kolei <u> historycznie kojarzy się z podkreślaniem tekstu, ale w HTML5 jego znaczenie zostało doprecyzowane: używa się go raczej do oznaczania treści, które są w jakiś sposób wyróżnione konwencjonalnie (np. błąd ortograficzny, nazwa własna w tekście innym alfabetem), a nie do dekoracyjnego podkreślania wszystkiego jak leci. Typowym błędem jest myślenie kategoriami „jak to wygląda”, zamiast „co to oznacza”. Wiele osób wybiera <b> albo <u>, bo kojarzy im się to z edytorem Word i zmianą stylu, a w HTML powinniśmy bardziej zwracać uwagę na semantykę i zgodność ze specyfikacją. Do oznaczania tekstu jako błędnego lub nieaktualnego używa się <s> (lub w bardziej formalnych zmianach <del>), bo te znaczniki jednoznacznie wskazują, że dana treść nie jest już obowiązująca. Dzięki temu narzędzia do dostępności, wyszukiwarki i style CSS mogą poprawnie interpretować znaczenie tego fragmentu, a nie tylko jego wygląd.

Pytanie 15

Język JavaScript wspiera

A. funkcje wirtualne
B. klasy abstrakcyjne
C. wysyłanie ciasteczek z identycznymi informacjami do wielu klientów witryny
D. obiekty DOM
Wybór klas abstrakcyjnych jako odpowiedzi na pytanie o możliwości JavaScript opiera się na mylnym przekonaniu o paradygmacie programowania obiektowego. W przeciwieństwie do języków takich jak Java, JavaScript nie wspiera klasycznych klas abstrakcyjnych. W JavaScript mamy do czynienia z prototypowym dziedziczeniem, a nie z hierarchicznymi klasami. Obiekty mogą być tworzone na podstawie prototypów, co oznacza, że nie ma potrzeby korzystania z klas abstrakcyjnych. W kontekście funkcji wirtualnych, również istnieje nieporozumienie. JavaScript nie używa tego pojęcia, ponieważ mechanizm dziedziczenia oparty na prototypach nie wymaga takiej funkcjonalności. Ponadto, odpowiedzi dotyczące wysyłania ciastek do wielu klientów są mylące, ponieważ ciasteczka są przypisane do domeny i nie istnieje możliwość ich wysyłania do wielu klientów na raz. Ciasteczka są przesyłane w nagłówkach HTTP, a ich działanie opiera się na współpracy między klientem a serwerem. Te błędne założenia mogą prowadzić do przekłamań w projektowaniu aplikacji webowych, gdzie zrozumienie podstawowych mechanizmów JavaScript oraz ich właściwości jest kluczowe dla efektywnego i wydajnego tworzenia stron internetowych. Zrozumienie różnic między podejściami obiektowymi w różnych językach jest istotne dla programistów, aby uniknąć pułapek myślowych oraz błędnych kierunków w kodowaniu.

Pytanie 16

Którą właściwość CSS należy zastosować, aby uzyskać efekt rozstrzelenia (zwiększonych odstępów) między literami?

A.
text-space
B.
letter-transform
C.
letter-spacing
D.
text-decoration
Odstęp między literami ustawia właściwość letter-spacing, np. letter-spacing: 3px. Wartość dodatnia rozsuwa litery (rozstrzelenie), ujemna je zbliża. Często stosuje się ją w nagłówkach i logotypach. Dlatego efekt rozstrzelenia liter daje letter-spacing.

Pytanie 17

Co oznacza pojęcie integralności referencyjnej w bazie danych?

A. Wartość atrybutu należy do jego dziedziny (dozwolonego zbioru)
B. Baza jest odporna na awarie sprzętu i oprogramowania
C. Każda encja ma klucz podstawowy o wartości unikatowej i różnej od NULL
D. Każdej wartości klucza obcego odpowiada istniejąca wartość klucza podstawowego
Pozostałe odpowiedzi opisują inne rodzaje integralności lub cechy bazy. Stwierdzenie, że wartość atrybutu należy do swojej dziedziny, to integralność dziedzinowa - dotyczy poprawnego typu i zakresu wartości w kolumnie. Odporność na awarie sprzętu i oprogramowania to zagadnienie niezawodności i bezpieczeństwa, nie spójności powiązań. Wymóg, by każda encja miała unikatowy, niepusty klucz podstawowy, to integralność encji. Integralność referencyjna dotyczy zgodności klucza obcego z istniejącym kluczem podstawowym, dlatego to ta odpowiedź jest poprawna.

Pytanie 18

W CSS zastosowano regułę: float:left; dla bloku. Jakie będzie jej zastosowanie?

A. ustawienie bloku na lewo względem innych
B. umieszczanie bloków jeden pod drugim
C. dopasowanie elementów tabeli do lewej krawędzi
D. wyrównanie tekstu do lewej strony
Wybór odpowiedzi dotyczący wyrównania elementów tabeli do lewej strony jest błędny, ponieważ reguła 'float: left;' nie dotyczy bezpośrednio tabel ani ich elementów. Tabele mają swoje własne mechanizmy układowe, które są inne niż te, które kontroluje reguła float. W przypadku wyrównania tekstu do lewej strony, stosuje się regułę 'text-align: left;', która jest odpowiednia dla elementów blokowych, ale nie jest związana z 'float'. Ustawienie bloków jeden pod drugim również nie jest zgodne z działaniem float, ponieważ ta reguła nie prowadzi do takiego układu, lecz wręcz przeciwnie – float powoduje, że elementy są ustawiane obok siebie. Warto zauważyć, że float działa głównie w kontekście obszaru, w którym się znajduje, a jego zastosowanie wymaga ostrożności, by nie wprowadzać problemów z układami, co wielu początkujących web developerów nie dostrzega. Typowym błędem jest mylenie float z flexboxem, który jest bardziej intuicyjny i zapewnia lepszą kontrolę nad układem. Dlatego kluczowe jest zrozumienie, kiedy i w jaki sposób stosować float w kontekście układów CSS, aby unikać nieporozumień i problemów w realizacji projektów.

Pytanie 19

Jaką wartość w formacie RGB będzie miała barwa oznaczona kodem heksadecymalnym: #1510FE?

A. rgb(15, 10, FE)
B. rgb(21, 16, 255)
C. rgb(21, 16, FE)
D. rgb(21, 16, 254)
Odpowiedź rgb(21, 16, 254) jest dobra, bo te wartości RGB pochodzą z kodu heksadecymalnego #1510FE. W tym kodzie każda para cyfr pokazuje, jak mocno świeci dany kolor: od 00, co oznacza brak koloru, do FF, gdzie mamy pełną intensywność. W naszym przypadku, pierwsza para '15' to kolor czerwony, '10' to zielony, a 'FE' to niebieski. Jak to przeliczymy na dziesiętny, to '15' daje nam 21, '10' daje 16, a 'FE' to 254. I stąd mamy rgb(21, 16, 254). Te wartości są super przydatne, na przykład przy tworzeniu stylów CSS, gdzie kolory są podstawą. Warto ogarnąć, jak przerabiać kolory z jednego formatu na drugi – to naprawdę pomaga w projektowaniu grafiki i stron www.

Pytanie 20

Który kod da: „pogrubiony” pogrubione, „pochylony” kursywą, a „górnym indeksie” w górnym indeksie?

A.
<b>pogrubiony</b> <i>pochylony</i> lub w <sup>górnym indeksie</sup>
B.
<i>pogrubiony</i> <b>pochylony</b> lub w <sub>górnym indeksie</sub>
C.
<b>pogrubiony <i>pochylony</i></b> lub w <sub>górnym indeksie</sub>
D.
<i>pogrubiony <b>pochylony lub w</i> <sup>górnym indeksie</sup>
Pozostałe warianty mylą znaczniki lub je krzyżują. Zamiana <b> z <i> daje pogrubienie tam, gdzie ma być kursywa (i odwrotnie). <sub> to indeks DOLNY, a nie górny. Błędne jest też przeplatanie i niepoprawne zagnieżdżanie znaczników (np. zamknięcie </i> przed </b> w złej kolejności). Poprawne efekty dają <b>, <i> i <sup>.

Pytanie 21

Jakiego polecenia SQL należy użyć, aby usunąć z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?

A. DELETE * FROM artykuly WHERE tresc = "%sto%";
B. DELETE FROM artykuly WHERE tresc = "%sto%";
C. DELETE FROM artykuly WHERE tresc LIKE "%sto%";
D. DELETE * FROM artykuly WHERE tresc LIKE "%sto%";
Poprawna odpowiedź to 'DELETE FROM artykuly WHERE tresc LIKE "%sto%";'. To polecenie SQL używa operatora LIKE, który pozwala na wyszukiwanie wzorców w danych tekstowych. Użycie znaków procentowych '%' jako symboli wieloznacznych umożliwia odnalezienie ciągów, w których słowo 'sto' występuje w dowolnym miejscu w kolumnie 'tresc'. W praktyce, tego rodzaju zapytanie jest niezwykle przydatne podczas zarządzania dużymi bazami danych, gdzie często zachodzi potrzeba filtrowania danych na podstawie ich zawartości. Zastosowanie tego polecenia jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi, ponieważ precyzyjnie określa, które wpisy mają zostać usunięte, minimalizując ryzyko przypadkowego usunięcia niewłaściwych danych. Warto znać i rozumieć różnice pomiędzy operatorami '=' a 'LIKE', ponieważ operator '=' wymaga dokładnego dopasowania, co w wielu przypadkach nie jest wystarczające do uzyskania pożądanych wyników. Przykładem może być sytuacja, gdy w kolumnie 'tresc' znajdują się artykuły zawierające słowo 'sto' w kontekście 'stołek', a operator '=' nie byłby w stanie ich zidentyfikować.

Pytanie 22

Która kwerenda utworzy WIDOK z klientami o statusie „Platynowy” (tabela klienci, pole status)?

A.
CREATE VIEW KlienciPlatyna AS klient WHERE status = "Platynowy";
B.
CREATE VIEW KlienciPlatyna AS SELECT status FROM klienci WHERE "Platynowy";
C.
CREATE VIEW KlienciPlatyna FROM klienci WHERE status = "Platynowy";
D.
CREATE VIEW KlienciPlatyna AS SELECT * FROM klienci WHERE status = "Platynowy";
Po AS musi nastąpić poprawne SELECT ... FROM ... WHERE .... Wariant z AS klient WHERE pomija SELECT i FROM. Wariant z FROM klienci bez AS SELECT nie ma definicji widoku. Wariant WHERE "Platynowy" gubi nazwę pola w warunku. Poprawne jest CREATE VIEW KlienciPlatyna AS SELECT * FROM klienci WHERE status = "Platynowy".

Pytanie 23

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

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

Pytanie 24

Który z poniższych zapisów w HTML określa kodowanie znaków stosowane w dokumencie?

A. <meta charset="UTF-8">
B. <meta encoding="UTF-8">
C. <encoding="UTF-8">
D. <charset="UTF-8">
Zapis <meta charset="UTF-8"> jest prawidłową deklaracją kodowania znaków w dokumencie HTML. Element <meta> jest używany w sekcji <head> dokumentu i pozwala na zdefiniowanie różnych metadanych, w tym kodowania znaków. Użycie "UTF-8" jako wartości dla atrybutu charset oznacza, że dokument będzie używał kodowania Unicode, które jest standardem preferowanym w sieci. Dzięki temu, dokumenty mogą poprawnie wyświetlać znaki z różnych języków, co jest kluczowe w zglobalizowanym świecie internetu. Przykładem zastosowania tego zapisu może być strona internetowa, która zawiera teksty w wielu językach, co wymaga wsparcia dla różnorodnych znaków diakrytycznych i symboli. Warto również podkreślić, że zgodnie z zasadami dobrych praktyk, zawsze powinno się definiować kodowanie znaków w dokumencie HTML, aby uniknąć problemów z wyświetlaniem treści, co może negatywnie wpłynąć na doświadczenia użytkowników oraz SEO strony.

Pytanie 25

Tworząc tabelę produkty, dla pola „cena” (kwota z groszami) najlepszy typ danych to:

A.
ENUM
B.
INTEGER(11)
C.
TINYTEXT
D.
DECIMAL(10, 2)
Pozostałe typy nie nadają się do dokładnej kwoty. ENUM pozwala wybrać jedną z wcześniej zdefiniowanych wartości tekstowych - nie służy do liczb ani cen. INTEGER przechowuje wyłącznie liczby całkowite, więc nie zapisze groszy (części po przecinku). TINYTEXT to typ tekstowy - kwota zapisana jako tekst utrudniałaby obliczenia i sortowanie po wartości. Dokładną cenę z groszami przechowuje DECIMAL(10, 2), dlatego ta odpowiedź jest poprawna.

Pytanie 26

W języku CSS zdefiniowano następujące formatowanie:

 h1 i {color: red;}
Kolorem czerwonym zostanie zapisany
A. tylko tekst pochylony we wszystkich poziomach nagłówków.
B. cały tekst nagłówka pierwszego stopnia oraz cały tekst pochylony, niezależnie od tego, w którym miejscu strony się znajduje.
C. tylko tekst pochylony nagłówka pierwszego stopnia.
D. cały tekst nagłówka pierwszego stopnia oraz pochylony tekst akapitu.
Pozostałe odpowiedzi zawierają nieprawidłowe założenia co do tego, jak działają selektory w CSS. Odpowiedź sugerująca, że czerwonym kolorem zostanie zapisany tylko tekst pochylony we wszystkich poziomach nagłówków, nie jest prawidłowa, ponieważ kod CSS h1 i {color: red;} wyraźnie określa, że reguła dotyczy tylko tekstu pochylonego (<i>) wewnątrz nagłówka pierwszego stopnia (<h1>). Podobnie, odpowiedź mówiąca, że cały tekst nagłówka pierwszego stopnia oraz cały tekst pochylony, niezależnie od tego w którym miejscu strony się znajduje, będzie czerwony, jest niepoprawna. Ta reguła CSS nie wpływa na cały tekst nagłówka pierwszego stopnia, ani na pochylony tekst w innych miejscach dokumentu. Wreszcie, odpowiedź sugerująca, że cały tekst nagłówka pierwszego stopnia oraz pochylony tekst akapitu będą czerwone, jest również nieprawidłowa, ponieważ jak wcześniej wspomniano, reguła dotyczy tylko tekstu pochylonego umieszczonego bezpośrednio w nagłówku pierwszego stopnia. Rozróżnienie między różnymi rodzajami selektorów i zrozumienie, jak są interpretowane przez przeglądarkę, to kluczowe umiejętności w codziennym kodowaniu CSS.

Pytanie 27

Którego znacznika NIE NALEŻY umieszczać w nagłówku dokumentu HTML?

A. <link>
B. <title>
C. <meta>
D. <h2>
Odpowiedź <h2> jest trafna, bo ten znacznik jest właśnie do nagłówków w HTML. Powinien być używany w sekcji <body>, nie w <head>. Jak dobrze wiesz, nagłówki, czyli <h1> do <h6>, mają spore znaczenie w organizacji tekstu i hierarchii, co wpływa później na SEO i dostępność strony. Dzięki <h2> możesz dodać podtytuł, co sprawia, że tekst jest bardziej przejrzysty i łatwiejszy do zrozumienia. Stosowanie nagłówków w odpowiedni sposób to ważna zasada, żeby dokument miał sens i był logicznie poukładany. Warto też wiedzieć, że znaczniki takie jak <link>, <meta> i <title> są super ważne dla strony, ale pełnią inne funkcje niż nagłówki. Więc ogólnie rzecz biorąc, fajnie, że to rozumiesz!

Pytanie 28

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

var text;
for ( var i = 0; i < tab.length; i++ ) {
  text += tab[i] + "<br>";
}
A. Zadeklarować zmienną i.
B. Sprawdzić rozmiar tabeli tab.
C. Zainicjować zmienną text.
D. Sprawdzić czy text j est typu znakowego.
Dobrze! Prawidłową odpowiedzią jest 'Zainicjować zmienną text'. W języku JavaScript, przed rozpoczęciem pętli, istotne jest zainicjowanie zmiennej, która będzie używana do akumulacji wyników. Zmienna 'text' w tym przypadku spełnia tę rolę. Jej prawidłowe zainicjowanie, czyli przypisanie jej początkowej wartości, zazwyczaj pustego ciągu znaków ('text = "";'), jest kluczowe dla poprawnej pracy kodu. Pozwala to na uniknięcie błędów związanych z niezdefiniowaną zmienną. Jest to standardowa procedura stosowana w wielu językach programowania, nie tylko w JavaScript. Zrozumienie i zastosowanie tej praktyki pomaga w pisaniu czystego i efektywnego kodu.

Pytanie 29

Jak można dodać zewnętrzny arkusz stylów do dokumentu HTML?

A. <meta>
B. <css>
C. <style>
D. <link>
Wybór niepoprawnych odpowiedzi wynika z nieporozumienia co do funkcji poszczególnych znaczników HTML. Znacznik <css> nie istnieje w standardzie HTML, co sprawia, że nie jest on w stanie zrealizować żadnej funkcji związanej z arkuszami stylów. To błędne podejście może prowadzić do niepoprawnego renderowania stron w przeglądarkach, które nie będą w stanie interpretować takiego znacznika. Z kolei znacznik <style> służy do wstawiania stylów CSS bezpośrednio w obrębie dokumentu HTML, w sekcji <head>. Choć pozwala na definiowanie stylów, nie jest on przeznaczony do ładowania zewnętrznych arkuszy stylów, co czyni go niewłaściwym wyborem w kontekście pytania. Ostatni z wymienionych znaczników, <meta>, jest używany do definiowania metadanych o dokumencie, takich jak opis, słowa kluczowe czy kodowanie znaków, ale nie ma związku z arkuszami stylów. Zrozumienie funkcji tych znaczników jest kluczowe dla prawidłowego tworzenia stron internetowych, ponieważ niepoprawne zastosowanie może prowadzić do problemów z wyświetlaniem oraz nawigacją na stronie.

Pytanie 30

W bazie danych samochodów pole kolor z tabeli samochody przyjmuje wartości kolorów jedynie ze słownika lakier. Aby połączyć tabele samochody i lakier relacją należy, zastosować kwerendę

A. ALTER TABLE samochody
   ADD FOREIGN KEY kolor REFERENCES lakier;

B. ALTER TABLE samochody
   ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);

C. ALTER TABLE samochody
   ADD FOREIGN KEY barwa REFERENCES samochody.lakier;

D. ALTER TABLE lakier
   ADD FOREIGN KEY (barwa) REFERENCES samochody(kolor);
A. D.
B. A.
C. B.
D. C.
Odpowiedź B jest prawidłowa, ponieważ ciało odpowiedzi zawiera prawidłową składnię SQL do połączenia dwóch tabel: 'samochody' i 'lakier'. W przypadku relacji między tabelami, klucz obcy w jednej tabeli odpowiada kluczowi głównemu w drugiej tabeli. W tym przypadku, pole 'kolor' w tabeli 'samochody' jest kluczem obcym, który odwołuje się do klucza głównego w tabeli 'lakier' (założenie: 'lakierId'). W praktyce, połączenie tabel na podstawie relacji między kluczem obcym a kluczem głównym jest fundamentalnym aspektem projektowania bazy danych, umożliwiającym sprawną organizację i odnajdywanie danych. Dobrą praktyką jest utrzymanie integralności referencyjnej, zapewniającej, że relacje między tabelami są zawsze spójne. To z kolei umożliwia realizację zapytań złożonych, które łączą dane z wielu tabel w celu uzyskania potrzebnych informacji.

Pytanie 31

Do czego służy w PHP funkcja mysqli_num_rows()?

A. do zwrócenia rekordu o numerze z parametru
B. do zwrócenia LICZBY wierszy w wyniku zapytania
C. do ponumerowania rekordów w bazie
D. do zwrócenia kolejnego rekordu wyniku
Pozostałe opisy mylą tę funkcję z innymi etapami pracy z wynikiem. Pobranie KOLEJNEGO rekordu to zadanie mysqli_fetch_assoc() lub mysqli_fetch_row(), a nie mysqli_num_rows(). Funkcja nie „numeruje rekordów w bazie” ani nie pobiera „rekordu o numerze z parametru” - nie przyjmuje numeru wiersza, tylko cały wynik. Zwraca wyłącznie LICZBĘ wierszy w wyniku zapytania.

Pytanie 32

Reprezentacja znacznika HTML w formacie

<a href="#hobby">przejdź</a>
A. jest błędny, w atrybucie href należy wpisać adres URL
B. jest poprawny, po kliknięciu w odnośnik strona zostanie przewinięta do sekcji o nazwie "hobby"
C. jest poprawny, po kliknięciu w odnośnik otworzy się strona internetowa o URL "hobby"
D. jest błędny, użyto niewłaściwego znaku "#" w atrybucie href
Zapis znacznika HTML przedstawiony w pytaniu jest poprawny i spełnia standardy języka HTML. Użycie elementu <a> z atrybutem href i wartością #hobby oznacza, że użytkownik po kliknięciu w ten link zostanie przewinięty do sekcji na stronie, która ma przypisany identyfikator "hobby". Takie podejście jest zgodne z dobrymi praktykami w projektowaniu stron internetowych, umożliwiając tworzenie nawigacji wewnętrznej. Warto zaznaczyć, że użycie znaku hash (#) w atrybucie href wskazuje na lokalizację w obrębie tej samej strony. To jest powszechnie stosowane w przypadkach, gdy chcemy ułatwić użytkownikom dostęp do różnych sekcji na tej samej stronie, bez konieczności ładowania nowej strony. Przykładem zastosowania może być strona z długim artykułem, gdzie linki do poszczególnych nagłówków ułatwiają orientację czytelników. Oprócz tego, korzystając z takiej struktury, możemy również poprawić doświadczenia użytkowników oraz zwiększyć efektywność SEO, ponieważ wyszukiwarki są w stanie lepiej zrozumieć organizację treści na stronie.

Pytanie 33

Który z poniższych fragmentów kodu HTML sformatuje tekst zgodnie z wymaganiami? (zauważ, że słowo "stacji" jest wyświetlane w większej czcionce niż pozostałe słowa w tej linii)

Ilustracja do pytania
A. Odpowiedź 3: C
B. Odpowiedź 1: A
C. Odpowiedź 2: B
D. Odpowiedź 4: D
Odpowiedź B jest prawidłowa ponieważ używa znacznika big do zwiększenia rozmiaru czcionki dla słowa stacji wewnątrz paragrafu. Znacznik big jest standardowym sposobem na zwiększenie tekstu w HTML chociaż obecnie rekomendowane jest stosowanie CSS do takich stylizacji co pozwala na oddzielenie treści od prezentacji. Przykładowo można użyć CSS w stylu inline lub w oddzielnym arkuszu stylów aby uzyskać ten sam efekt co zwiększa elastyczność i spójność projektu. Warto pamiętać że HTML5 wprowadza pewne zmiany i deprecjonuje niektóre znaczniki co wymaga ciągłego aktualizowania wiedzy dewelopera. Znacznik big mimo że działa w większości przeglądarek może być mniej przewidywalny w przyszłości w porównaniu z CSS. Rozdzielenie stylów od struktury dokumentu jest dobrą praktyką programistyczną co ułatwia zarządzanie kodem oraz poprawia dostępność stron internetowych. Pamiętaj by regularnie analizować i aktualizować swoje projekty zgodnie z najnowszymi standardami HTML i CSS.

Pytanie 34

Kolor Chartreuse przedstawiony w formie heksadecymalnej jako #7FFF00 odpowiada wartości RGB wynoszącej

A. rgb(192, 255, 0)
B. rgb(128, 255, 0)
C. rgb(127, 255, 0)
D. rgb(64, 255, 0)
Odpowiedź rgb(127, 255, 0) jest poprawna, ponieważ odpowiada wartościom RGB z koloru Chartreuse zapisanego w postaci heksadecymalnej #7FFF00. W systemie heksadecymalnym, pierwsze dwa znaki (7F) odpowiadają wartości czerwonej (R), drugie dwa znaki (FF) wartości zielonej (G), a ostatnie dwa znaki (00) wartości niebieskiej (B). Przekształcając te wartości na system dziesiętny, 7F w heksadecymalnym to 127 w dziesiętnym, FF to 255, a 00 to 0. Użycie tego koloru w projektach graficznych, web designie czy w aplikacjach mobilnych jest szerokie, zwłaszcza w kontekście tworzenia interfejsów użytkownika, gdzie Chartreuse może być wykorzystany jako kolor akcentujący, przyciągający uwagę. Dobrą praktyką jest stosowanie kolorów o wysokim kontraście dla elementów interaktywnych, co sprawia, że korzystanie z tak żywego koloru jak Chartreuse może poprawić użyteczność oraz estetykę projektu. Warto również zaznaczyć, że znajomość konwersji kolorów między różnymi modelami (HEXA, RGB, CMYK) jest kluczowa dla każdego projektanta wizualnego, z uwagi na różne zastosowania w druku i w mediach cyfrowych.

Pytanie 35

Która właściwość CSS przyjmuje wartości underline, overline, line-through?

A.
text-decoration
B.
font-style
C.
text-style
D.
font-weight
text-style w CSS nie istnieje. font-style ustawia styl kroju, np. italic. font-weight reguluje grubość, np. bold. Linie pod, nad i przez tekst ustawia text-decoration.

Pytanie 36

W języku PHP, instrukcja foreach pełni rolę

A. Pętli, niezależnej od typu zmiennej
B. Wyboru, dotyczącej elementów tablicy
C. Pętli, przeznaczonej wyłącznie dla elementów tablicy
D. Warunkową, niezależną od typu zmiennej
W PHP, instrukcja foreach to super sposób na przechodzenie przez elementy tablicy. Dzięki niej nie musisz się martwić o indeksy, tylko po prostu przeglądasz wszystkie wartości, co naprawdę ułatwia pisanie kodu. Na przykład, jeżeli mamy tablicę z nazwiskami, taką jak $nazwiska = ['Kowalski', 'Nowak', 'Wiśniewski'], to możemy to wrzucić w foreach: foreach ($nazwiska as $nazwisko) { echo $nazwisko; }. W tym przypadku każda wartość z tablicy zostanie wyświetlona po kolei. Z mojego doświadczenia, dobrze jest używać foreach kiedy mamy do czynienia z tablicami, bo to sprawia, że kod jest bardziej przejrzysty i łatwiejszy do zrozumienia. Co więcej, foreach ma tę fajną cechę, że poradzi sobie z różnymi typami wartości w tablicy, więc to naprawdę uniwersalne narzędzie. Pamiętaj, że używając tej pętli, poprawiasz nie tylko wydajność swojego kodu, ale też jego czytelność, co jest super ważne, zwłaszcza w dużych projektach.

Pytanie 37

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Progowanie.
B. Inwersja.
C. Krzywe.
D. Barwienie.
Prawidłowo wskazana funkcja to „Progowanie”, bo dokładnie ona zamienia obraz kolorowy lub w odcieniach szarości na obraz dwuwartościowy: piksel jest albo czarny, albo biały, w zależności od tego, czy jego jasność przekracza ustawiony próg. W GIMP-ie znajdziesz ją w menu Kolory → Progowanie. Suwakami ustalasz zakres poziomów jasności, które mają zostać potraktowane jako „białe”, a wszystko poza tym zakresem staje się „czarne”. Efekt, który się wtedy uzyskuje, jest bardzo charakterystyczny: mocno kontrastowy, bez półtonów, coś w stylu skanu czarno-białego lub grafiki do druku na ploterze tnącym. Z mojego doświadczenia progowanie świetnie nadaje się do przygotowania logotypów, szkiców technicznych, schematów, a także do wyciągania konturów z lekko rozmytych zdjęć. Często używa się go też przed wektoryzacją, żeby program śledzący krawędzie miał wyraźne granice między czernią a bielą. W pracy z grafiką na potrzeby stron WWW próg bywa stosowany np. przy tworzeniu prostych ikon, piktogramów albo masek (maski przezroczystości można przygotować właśnie na bazie obrazu progowanego). Dobrą praktyką jest najpierw sprowadzenie obrazu do odcieni szarości i dopiero potem użycie progowania, bo wtedy masz większą kontrolę nad tym, jak rozkłada się jasność i gdzie wypadnie granica progu. Warto też pamiętać, że progowanie jest operacją destrukcyjną – traci się informacje o półtonach – więc najlepiej pracować na kopii warstwy, żeby w razie czego móc wrócić do oryginału i poprawić ustawienia progu.

Pytanie 38

Jakie mogą być źródła rekordów dla raportu?

A. tabela
B. zapytanie INSERT INTO
C. zapytanie GRANT
D. inny raport
Tabela jest podstawowym źródłem danych, które może być wykorzystane do generowania raportów w systemach zarządzania bazami danych (DBMS). Raporty są często tworzone w oparciu o zawartość tabel, które przechowują zorganizowane dane w postaci wierszy i kolumn. Przykładowo, w systemach takich jak SQL Server czy MySQL, można użyć zapytań SELECT, aby pobrać dane z tabel i zaprezentować je w formie raportu. Stosowanie tabel jako źródła informacji jest zgodne z zasadami normalizacji danych, co pozwala na minimalizację redundancji i zwiększa integralność danych. Dobre praktyki w tworzeniu raportów zakładają, że dane powinny być pobierane z tabel skonstruowanych zgodnie z zasadami projektowania baz danych, co zapewnia efektywność i łatwość w zarządzaniu informacjami. Oprócz tego, raporty mogą być wzbogacane o różne agregacje i analizy, co czyni je bardziej użytecznymi w podejmowaniu decyzji biznesowych. W praktyce, programiści i analitycy danych często korzystają z narzędzi do wizualizacji, takich jak Tableau czy Power BI, które łączą się z danymi w tabelach, aby generować interaktywne raporty i dashboardy.

Pytanie 39

W języku Javascript obiekt typu array służy do przechowywania

A. wielu wartości różnego rodzaju
B. wielu wartości tylko liczbowych
C. wielu wartości lub funkcji
D. wielu wartości tylko tekstowych
Obiekt typu array w języku JavaScript jest niezwykle elastycznym narzędziem, które pozwala na przechowywanie wielu wartości dowolnego typu. Arrays mogą zawierać liczby, stringi, obiekty, a nawet inne tablice, w ramach jednego zbioru. Taka struktura danych jest bardzo przydatna w programowaniu, szczególnie w kontekście pracy z danymi, gdyż umożliwia tworzenie kolekcji o zmiennej długości, które można łatwo przetwarzać. Na przykład, w aplikacjach webowych można wykorzystać tablice do grupowania danych z formularzy lub przechowywania wyników zapytań do bazy danych. Dzięki metody takim jak .push(), .pop() czy .map(), programiści mogą łatwo manipulować danymi w tablicach. Ważnym aspektem jest również to, że tablice są obiektami w JavaScript, co oznacza, że można do nich przypisywać dodatkowe właściwości i metody, zwiększając ich funkcjonalność. Przykładem zaawansowanego zastosowania tablic jest wykorzystanie ich do implementacji algorytmów, takich jak sortowanie czy przeszukiwanie danych. Zgodnie z dokumentacją MDN, tablice w JavaScript są dynamiczne, co oznacza, że ich rozmiar może być dostosowywany w czasie działania programu, co czyni je bardzo wszechstronnym narzędziem w pracy programisty.

Pytanie 40

W języku JavaScript zdefiniowano następującą funkcję:

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
Jej celem jest:
A. Zwrócić wartość odwrotną do argumentu f
B. Wypisać wartość bezwzględną argumentu f
C. Wypisać wartość odwrotną do argumentu f
D. Zwrócić wartość bezwzględną argumentu f
Niepoprawne odpowiedzi wynikają z niepełnego zrozumienia funkcji i jej założeń. Wypisanie wartości bezwzględnej z f sugerowałoby że funkcja korzysta z mechanizmu wyjściowego takiego jak console.log co nie ma miejsca w tym przypadku. Funkcja jedynie zwraca wynik za pomocą return a nie wypisuje go na konsolę. Zwrócenie wartości odwrotnej do f oznaczałoby że funkcja miałaby inny cel: przekształcenie liczby na jej odwrotność czyli wartość 1/f co wymagało by dodatkowej logiki i warunkowania aby uniknąć dzielenia przez zero. Podobnie wypisanie wartości odwrotnej do f również wskazywałoby na potrzebę użycia mechanizmu wyjściowego a nie tylko return. Kluczowym błędem w takich rozumowaniach jest nieodróżnianie funkcji zwracających wartość od tych które wypisują wynik oraz niedocenienie znaczenia przekształcania wartości co jest fundamentem programowania funkcyjnego. Dobre praktyki programistyczne wymagają jasno zdefiniowanego celu funkcji co w tym przypadku jest poprawnie zrealizowane poprzez zwracanie wartości bezwzględnej co jest częstym i użytecznym wzorcem w wielu zastosowaniach praktycznych.