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: 25 czerwca 2026 17:37
  • Data zakończenia: 25 czerwca 2026 17:50

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Zdefiniowano funkcję w języku PHP:

function policz($Z) { 
while($Z < 5) {
$Z += 2 * $Z + 1;
}
return $Z;
}
Funkcja policz została wywołana z parametrem $Z = 1. Jaki rezultat zostanie zwrócony?
A. 4
B. 1
C. 13
D. 7
Funkcja policz w języku PHP działa na zmiennej $Z, która jest inicjowana wartością 1. W pętli while sprawdzany jest warunek, czy $Z jest mniejsze niż 5. W przypadku, gdy $Z wynosi 1, warunek jest spełniony, a funkcja przechodzi do ciała pętli. Wewnątrz pętli $Z jest aktualizowane poprzez wyrażenie $Z += 2 * $Z + 1. Oznacza to, że do $Z dodawana jest wartość 2 * $Z + 1, co dla $Z = 1 daje 2 * 1 + 1 = 3. Po pierwszym kroku $Z osiąga wartość 4. Pętla while sprawdza ponownie warunek: 4 < 5, co również jest prawdą. W drugim kroku $Z = 4, więc $Z zostaje zaktualizowane do 4 + 2 * 4 + 1, co daje 4 + 8 + 1 = 13. Po tym kroku $Z staje się 13 i pętla while zakończy działanie, ponieważ 13 nie jest już mniejsze niż 5. Funkcja zwraca wartość 13, co czyni tę odpowiedź poprawną. Tego typu operacje są typowe w sytuacjach, gdzie potrzeba wielokrotnego aktualizowania wartości na podstawie obliczeń matematycznych, a ich zrozumienie jest kluczowe w programowaniu.

Pytanie 2

Którą wartość zwróci funkcja zapisana w języku C++, jeżeli jej parametrem wejściowym jest tablica wypełniona w następujący sposób: tablica[6] = {3, 4, 2, 4, 10, 0};?

int fun1(int tab[]) {
    int wynik = 0;
    for (int i = 0; i < 6; i++)
        wynik += tab[i];
    return wynik;
}
A. 960
B. 10
C. 0
D. 23
Twoja odpowiedź jest niepoprawna. Wygląda na to, że nie do końca zrozumiałeś, jak działa ta funkcja w języku C++. Funkcja, o której mówimy, sumuje wartości wszystkich elementów tablicy. W podanym pytaniu mamy tablicę z sześcioma elementami: 3, 4, 2, 4, 10, 0. Suma tych elementów wynosi 23, a nie 960, 10 ani 0. Wartości 960, 10 i 0 mogą pochodzić z różnorodnych błędnych wniosków. Na przykład, 960 to produkt wszystkich elementów tablicy, a nie ich suma. Podobnie, 10 to najwyższa wartość w tablicy, a 0 to najniższa. Możliwe, że te wartości byłyby poprawne w innych kontekstach, na przykład, gdybyśmy pytali o produkt elementów, największy element lub najmniejszy element. Ważne jest, aby zawsze dokładnie czytać pytanie i zrozumieć, czego dokładnie oczekuje od nas funkcja. Praca z tablicami jest kluczowym aspektem programowania w języku C++, dlatego warto poświęcić więcej czasu na zrozumienie, jak one działają.

Pytanie 3

Zademonstrowano efekt stylizacji CSS oraz kod HTML. W jaki sposób należy ustawić styl, aby uzyskać takie formatowanie?

Ilustracja do pytania
A. .first-line {font-size: 200%; color:brown;}
B. p.first-line {font-size: 200%; color:brown;}
C. #first-line {font-size: 200%; color:brown;}
D. p::first-line {font-size: 200%; color:brown;}
Odpowiedź p::first-line {font-size: 200%; color:brown;} jest prawidłowa, ponieważ selektor ::first-line w CSS służy do formatowania pierwszej linii tekstu wewnątrz elementu blokowego, takiego jak <p>. W tym przypadku formatowanie odnosi się do zmiany rozmiaru czcionki na 200% i koloru na brązowy, co jest zgodne z efektem prezentowanym na obrazie. Jest to powszechna praktyka, gdy chcemy wyróżnić pierwszą linię tekstu, nadając jej specjalny wizualny akcent. Warto zaznaczyć, że selektory pseudo-klasowe, jak ::first-line, są częścią specyfikacji CSS i umożliwiają bardziej precyzyjne i kontekstualne formatowanie treści, co jest zgodne z najlepszymi praktykami w projektowaniu stron internetowych. Tego typu rozwiązania zwiększają czytelność i estetykę tekstu. W praktyce, stosowanie ::first-line jest szczególnie przydatne w projektach wymagających subtelnych wyróżnień tekstowych, takich jak artykuły prasowe, blogi czy strony promujące treści literackie. Taki styl programowania jest zgodny z zaleceniami W3C, co czyni go nie tylko efektywnym, ale i standardowym podejściem w tworzeniu nowoczesnych stron internetowych.

Pytanie 4

Jaką wiadomość należy umieścić w przedstawionym fragmencie kodu PHP zamiast znaków zapytania? $a=mysql_connect('localhost','adam','mojeHasło'); if(!$a) echo "?????????????????????????";

A. Rekord został pomyślnie dodany do bazy
B. Błąd połączenia z serwerem SQL
C. Wybrana baza danych nie istnieje
D. Błąd w przetwarzaniu zapytania SQL
W sytuacji, gdy nie udaje się nawiązać połączenia z serwerem baz danych MySQL, komunikat błędu powinien jasno wskazywać na problem związany z połączeniem. W kodzie PHP, używając funkcji mysql_connect(), jeśli połączenie się nie powiedzie, zwracany jest błąd, który powinien być odpowiednio obsłużony. W tym przypadku odpowiednia treść komunikatu powinna brzmieć 'Błąd połączenia z serwerem SQL'. Ważne jest, aby programiści dbali o poprawne komunikaty błędów, ponieważ ułatwiają one diagnozowanie problemów. Dobrą praktyką jest także stosowanie obsługi wyjątków, co zwiększa stabilność aplikacji. Przykład: zamiast używać mysql_connect(), zaleca się korzystanie z mysqli lub PDO, które oferują bardziej zaawansowane opcje zarządzania błędami oraz obsługę wyjątków. W przypadku użycia mysqli, mógłbyś to zrobić w następujący sposób: $mysqli = new mysqli('localhost', 'adam', 'mojeHasło'); if ($mysqli->connect_error) { echo 'Błąd połączenia z serwerem SQL: ' . $mysqli->connect_error; } Poprawne raportowanie błędów jest kluczowym elementem programowania, ponieważ pozwala na szybką identyfikację i naprawę potencjalnych problemów.

Pytanie 5

Gdzie umieścić informacje o autorze, opisie i słowach kluczowych strony?

A. w <body>, w znaczniku <meta>
B. w <head>, w znaczniku <meta>
C. w <head>, w znaczniku <style>
D. w <body>, w znaczniku <html>
Informacje o autorze, opisie i słowach kluczowych to METADANE strony - umieszcza się je w sekcji <head> w znaczniku <meta> (np. <meta name="author" ...>). Dlatego należą do <head>, w <meta>.

Pytanie 6

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

A. Progowanie.
B. Barwienie.
C. Inwersja.
D. Krzywe.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 7

W języku SQL zrealizowano polecenia GRANT przedstawione w ramce. Kto uzyska prawo do przeglądania i modyfikowania danych?

GRANT ALL ON frmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON frmy TO 'anna'@'localhost';
GRANT SELECT, INSERT, UPDATE ON frmy TO 'tomasz'@'localhost';
A. Tomasz i Adam
B. Adam oraz Anna
C. Jedynie Tomasz
D. Tomasz oraz Anna
Odpowiedź, że prawo do przeglądania i zmiany danych mają Tomasz i Adam, jest prawidłowa, ponieważ wynikają one z poleceń GRANT wykonanych w SQL. Adam otrzymuje pełne prawa do bazy danych 'frmy' dzięki komendzie 'GRANT ALL', co oznacza, że może zarówno przeglądać, jak i modyfikować wszelkie dane w tej bazie. Z kolei Tomasz, dzięki przyznanym mu uprawnieniom SELECT, INSERT i UPDATE, również ma możliwość przeglądania danych oraz ich zmiany. Ta sytuacja odzwierciedla kluczowe aspekty zarządzania uprawnieniami w systemach baz danych, gdzie precyzyjne przydzielanie ról i dostępów jest fundamentalne dla zapewnienia bezpieczeństwa i integralności danych. Praktyczne zastosowania takich operacji obejmują sytuacje, w których administratorzy baz danych muszą zróżnicować dostęp do danych w zależności od ról użytkowników, co jest zgodne z zasadami minimalnych uprawnień, które są standardem w branży IT.

Pytanie 8

Aby uzyskać informacje o środowisku pracy serwera obsługującego PHP, należy skorzystać z funkcji

A.
phpgetinfo()
B.
phpinfo()
C.
php()
D.
phpinformation()
Funkcja phpinfo() po wywołaniu generuje gotową stronę z kompletem informacji o środowisku, w którym działa PHP. Znajdziesz tam wersję interpretera, listę załadowanych rozszerzeń, aktywne ustawienia z pliku php.ini, ścieżki i zmienne środowiskowe oraz dane o serwerze HTTP. Dzięki temu szybko sprawdzisz, czy potrzebny moduł jest dostępny i jak skonfigurowane jest środowisko - to podstawowe narzędzie diagnostyczne przy wdrażaniu i uruchamianiu aplikacji. Wystarczy umieścić w skrypcie wywołanie tej funkcji i otworzyć stronę w przeglądarce. Pamiętaj jednak, by nie zostawiać takiego pliku na działającym serwerze publicznie - ujawnia on szczegóły konfiguracji, które mogą pomóc atakującemu.

Pytanie 9

Instrukcję transakcyjną ROLLBACK wydaje się, aby:

A. zatwierdzić transakcję
B. cofnąć (wycofać) zmiany wykonane w transakcji
C. zatwierdzić tylko wybrane zmiany transakcji
D. cofnąć transakcję już po wykonaniu COMMIT
Transakcja to zbiór operacji wykonywanych „wszystko albo nic”. Instrukcja ROLLBACK wycofuje wszystkie zmiany dokonane od początku transakcji, przywracając bazę do stanu sprzed niej - stosuje się ją, gdy w trakcie coś pójdzie nie tak i nie chcemy zapisać częściowych modyfikacji. Przeciwieństwem jest COMMIT, który zmiany zatwierdza na stałe. Można też cofnąć się tylko do oznaczonego miejsca poleceniem ROLLBACK TO SAVEPOINT. Dlatego ROLLBACK służy do cofnięcia działania transakcji.

Pytanie 10

Co sprawdzić przed wykonaniem kopii zapasowej bazy, aby dało się ją potem poprawnie odtworzyć?

A. możliwość udostępnienia bazy
B. prawa dostępu do serwera
C. poprawność składni zapytań
D. spójność bazy danych
Pozostałe rzeczy nie decydują o przydatności kopii. Możliwość udostępnienia bazy i prawa dostępu do serwera dotyczą uprawnień, a nie jakości zapisanych danych. Poprawność składni zapytań odnosi się do kodu aplikacji, nie do stanu bazy. Przed kopią weryfikuje się spójność danych.

Pytanie 11

Podany fragment kodu PHP ma na celu wstawienie wartości z zmiennych $a, $b, $c do bazy danych, w tabeli dane. Tabela ta składa się z czterech kolumn, z których pierwsza to autoinkrementowany klucz podstawowy. Które z zapytań powinno być przypisane do zmiennej $zapytanie?

<?php
...
$zapytanie = "...";
mysqli_query($db, $zapytanie);
...
?>
A. ```INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');```
B. ```SELECT '$a', '$b', '$c' FROM dane;```
C. ```SELECT NULL, '$a', '$b', '$c' FROM dane;```
D. ```INSERT INTO dane VALUES ('$a', '$b', '$c');```
Prawidłowa odpowiedź to "INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');" ponieważ wstawia dane do bazy danych w sposób zgodny z jej strukturą. W tabeli dane pierwsze pole jest kluczem głównym, który jest autoinkrementowany, co oznacza, że nie musimy go podawać ręcznie. Wartość NULL w tym przypadku pozwala bazie danych na automatyczne wygenerowanie nowego identyfikatora. Pozostałe zmienne, $a, $b i $c, zawierają dane, które chcemy wstawić do odpowiednich kolumn. Stosowanie przygotowanych zapytań (prepared statements) w PHP z wykorzystaniem mysqli jest najlepszą praktyką, ponieważ zapewnia ochronę przed atakami SQL injection oraz poprawia wydajność. Przykład zastosowania tego typu zapytania może obejmować dodawanie użytkowników do systemu, gdzie każdy użytkownik ma unikalny identyfikator generowany przez bazę danych. Warto również pamiętać o walidacji i sanitizacji danych przed ich wprowadzeniem do bazy.

Pytanie 12

Rodzaj zmiennej w języku JavaScript

A. nie istnieje.
B. musi być zadeklarowany na początku skryptu.
C. jest tylko jeden rodzaj.
D. ma miejsce poprzez przypisanie wartości.
W języku JavaScript typ zmiennej jest dynamicznie określany na podstawie wartości przypisanej do tej zmiennej. Oznacza to, że nie ma potrzeby deklarowania typu zmiennej przed jej użyciem. Na przykład, możemy stworzyć zmienną 'x' i przypisać jej wartość liczbową: 'let x = 10;'. W późniejszym czasie możemy przypisać do niej wartość tekstową: 'x = 'Hello!';' bez jakichkolwiek błędów. To zjawisko wpisuje się w koncepcję typowania dynamicznego, która jest cechą języków takich jak JavaScript. Dzięki temu programiści mogą pisać bardziej elastyczny kod, co jest szczególnie przydatne w projektach, gdzie wymagania mogą się szybko zmieniać. Praktyczne zastosowanie tego podejścia w JavaScript pozwala na tworzenie funkcji, które mogą przyjmować różne typy danych, co zwiększa ich uniwersalność i użyteczność. Warto również zauważyć, że dobrym zwyczajem jest stosowanie odpowiednich konwencji nazw zmiennych oraz ich dokumentowanie, aby zwiększyć czytelność kodu w projektach zespołowych.

Pytanie 13

Jak zbudować zapytanie SELECT, aby wyświetlić nazwiska mieszkańców bez powtórzeń (unikalne)?

A.
SELECT AVG(nazwisko) FROM mieszkancy;
B.
SELECT TOP 10 nazwisko FROM mieszkancy;
C.
SELECT DISTINCT nazwisko FROM mieszkancy;
D.
SELECT nazwisko FROM mieszkancy ORDER BY nazwisko;
Aby usunąć powtórzenia z wyniku, dodaje się do SELECT słowo DISTINCT, np. SELECT DISTINCT nazwisko FROM mieszkancy. Zapytanie zwróci wtedy każde nazwisko tylko raz, nawet jeśli w tabeli występuje wielokrotnie. Dlatego unikalne nazwiska daje SELECT DISTINCT.

Pytanie 14

W CSS określono styl dla paragrafu, który nada mu poniższe cechy:

background-color: red;
color: blue;
margin: 40px;
A. tło w kolorze niebieskim, tekst w kolorze czerwonym, marginesy zewnętrzne o wartości 40px
B. tło w kolorze niebieskim, tekst w kolorze czerwonym, marginesy wewnętrzne o wartości 40px
C. tło w kolorze czerwonym, tekst w kolorze niebieskim, marginesy zewnętrzne o wartości 40px
D. tło w kolorze czerwonym, tekst w kolorze niebieskim, marginesy wewnętrzne o wartości 40px
W podanym przykładzie z CSS zastosowano trzy kluczowe właściwości stylizujące element HTML: background-color color oraz margin. Właściwość background-color określa kolor tła danego elementu tutaj przyjęto wartość red co oznacza czerwone tło. Właściwość color definiuje kolor tekstu w elemencie który w tym przypadku jest ustawiony na blue czyli niebieski. Ostatnią właściwością jest margin która odpowiada za marginesy zewnętrzne elementu. Marginesy zewnętrzne to przestrzeń wokół elementu od jego krawędzi do sąsiadujących elementów i w tym przykładzie mają wartość 40px. Takie ustawienia są często używane w praktyce aby zapewnić czytelność i estetykę projektu. Używanie marginesów zewnętrznych to dobra praktyka w celu zachowania odpowiednich odstępów w układzie strony. Warto podkreślić że użycie tych właściwości jest zgodne ze standardami CSS zapewniając kompatybilność z większością przeglądarek. Właściwe stosowanie kolorów i marginesów jest kluczowe w projektowaniu przyjaznym dla użytkownika UX oraz estetycznie spójnych interfejsów graficznych.

Pytanie 15

Który format najlepiej nadaje się do zapisu RASTROWEGO obrazu z przezroczystością na stronę WWW?

A. BMP
B. PNG
C. SVG
D. JPG
Do rastrowego obrazu z przezroczystością przeznaczonego na stronę WWW najlepszy jest PNG - łączy kanał alfa, kompresję bezstratną i pełne wsparcie przeglądarek. Sprawdza się przy logo, ikonach i grafikach nakładanych na różne tła. Zapamiętaj: raster + przezroczystość + web = PNG.

Pytanie 16

W SQL polecenie INSERT INTO służy do

A. wprowadzania nowych pól do tabeli
B. dodawania danych do tabeli
C. tworzenia nowej tabeli
D. zmiany rekordów na wskazaną wartość
Polecenie INSERT INTO w języku SQL jest kluczowym narzędziem do wprowadzania danych do tabeli w bazie danych. Umożliwia dodawanie nowych rekordów, co jest niezwykle istotne w kontekście zarządzania danymi. Przykładowo, jeśli mamy tabelę 'Klienci' z kolumnami 'ID', 'Imię', 'Nazwisko', można użyć polecenia INSERT INTO, aby dodać nowego klienta: 'INSERT INTO Klienci (ID, Imię, Nazwisko) VALUES (1, 'Jan', 'Kowalski');'. Poprawne użycie tego polecenia zgodnie z najlepszymi praktykami SQL wymaga również przestrzegania reguł dotyczących typów danych oraz unikalności kluczy głównych, co pozwala na zachowanie integralności danych. Dzięki INSERT INTO można efektywnie zarządzać danymi w aplikacjach biznesowych, takich jak systemy CRM czy ERP, gdzie regularne dodawanie nowych informacji jest niezbędne do bieżącego funkcjonowania organizacji. Dodatkowo, polecenie to może być używane w połączeniu z innymi instrukcjami SQL, takimi jak SELECT, co pozwala na bardziej złożone operacje na danych.

Pytanie 17

Jaki jest cel funkcji napisanej w PHP?

function fun1($liczba)
{
  if($liczba % 2 == 0)
    return 1;

  return 0;
}
A. Wypisanie liczby nieparzystej
B. Zwrócenie wartości 1, gdy liczba jest parzysta
C. Zwrócenie wartości 0, gdy liczba jest parzysta
D. Wypisanie liczby parzystej
Funkcja w języku PHP została zaprogramowana w taki sposób, aby najpierw sprawdzić, czy podana liczba jest parzysta, używając operatora modulo (%). Operacja $liczba % 2 == 0 sprawdza resztę z dzielenia przez 2, która dla liczb parzystych wynosi 0. Jeśli warunek jest spełniony, funkcja natychmiast zwraca wartość 1, co oznacza, że liczba jest parzysta. Taki sposób kodowania jest wydajny, ponieważ funkcja zakończy działanie natychmiast po spełnieniu warunku, bez dalszego przetwarzania. Jest to dobry przykład stosowania operacji warunkowych w funkcjach, co jest zgodne z dobrymi praktykami programistycznymi, zwłaszcza gdy zależność logiczna jest prosta i może być szybko zidentyfikowana. Takie funkcje często wykorzystywane są w systemach walidacji danych, gdzie szybkie potwierdzenie poprawności danych jest kluczowe dla wydajności całego systemu. Pozwala również na łatwe rozszerzenie logiki, jeśli w przyszłości zajdzie taka potrzeba.

Pytanie 18

Funkcja
fun1(a,b) {
  if(a % 2 != 0) a++;
  for(let n = a; n <= b; n+=2) document.write(n);
}
ma na celu

A. sprawdzenie, czy liczba a jest nieparzysta; w przypadku pozytywnej odpowiedzi, jej wypisanie
B. zwrócenie parzystych wartości liczb od a do b
C. wypisanie liczb parzystych w zakresie od a do b
D. wypisanie wszystkich liczb w przedziale od a do b
Funkcja fun1 w JavaScript ma za zadanie wypisać liczby parzyste w przedziale od a do b. Na początku sprawdzamy, czy a jest liczbą nieparzystą, korzystając z operatora modulo. Jeśli a jest nieparzysta, to ją zwiększamy o 1, tym samym przekształcając ją w liczbę parzystą. Potem mamy pętlę for, która zaczyna od a i w każdym kroku zwiększa n o 2, co gwarantuje, że będziemy wypisywać tylko liczby parzyste. Pętla działa dopóki n jest mniejsze lub równe b. Wyniki są pokazywane na stronie dzięki document.write(). To się zgadza z tym, co ma robić ta funkcja, bo faktycznie wypisuje liczby parzyste. Na przykład, kiedy mamy a=3 i b=9, to wypisze 4, 6 i 8.

Pytanie 19

W języku JavaScript zdefiniowano funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Prawidłowa forma wywołania tej funkcji, razem z przypisaniem jej wyniku, powinna wyglądać następująco

A. liczba_max(a, b, c, wynik);
B. liczba_max(a, b, c);
C. liczba_max(a, b, c) = wynik;
D. var wynik = liczba_max(a, b, c);
Wywołanie funkcji 'liczba_max' w postaci 'var wynik = liczba_max(a, b, c);' jest prawidłowe, ponieważ stosuje syntaksę języka JavaScript do przypisania wartości zwróconej przez funkcję do zmiennej. Zdefiniowana funkcja 'liczba_max' przyjmuje trzy argumenty, które są porównywane, a maksymalna z nich jest zwracana jako wynik. W tym przypadku 'var wynik' tworzy nową zmienną, która przechowuje tę wartość, co jest zgodne z najlepszymi praktykami programowania, gdzie wyniki operacji są przypisywane do zmiennych dla dalszego wykorzystania. Użycie 'var' (lub 'let', 'const' w nowszych wersjach JavaScript) jest kluczowe, aby jasno określić zakres zmiennej. Przykładowo, jeśli a = 5, b = 10, c = 3, to po wywołaniu 'var wynik = liczba_max(a, b, c);', zmienna 'wynik' będzie miała wartość 10. Tego typu konstrukcje są podstawą programowania w JavaScript i są niezwykle przydatne w tworzeniu dynamicznych aplikacji webowych, gdzie operacje na danych są na porządku dziennym.

Pytanie 20

Edytor, który spełnia kryteria WYSIWYG, powinien umożliwiać

A. osiągnięcie zbliżonego rezultatu tworzonej strony do jej wyglądu w przeglądarce internetowej
B. tworzenie podstawowych grafik wektorowych
C. przygotowanie plików dźwiękowych przed ich umieszczeniem na stronie internetowej
D. publikację strony na serwerze za pomocą wbudowanego klienta FTP
Odpowiedzi dotyczące obróbki plików dźwiękowych, publikacji na serwerze FTP oraz tworzenia podstawowej grafiki wektorowej nie są zgodne z podstawowymi funkcjonalnościami edytorów WYSIWYG. Edytory te koncentrują się na treści wizualnej i układzie strony, a nie na specyficznych zadaniach związanych z multimediami czy publikacją. Obróbka plików dźwiękowych wymaga zaawansowanych narzędzi audio, które są poza zakresem WYSIWYG. Takie programy są projektowane do edycji treści tekstowych i graficznych w kontekście układu, a nie jako kompleksowe środowiska do pracy z dźwiękiem. Publikacja stron internetowych na serwerze FTP jest aspektem bardziej związanym z hostingiem i zarządzaniem plikami, a nie z samym tworzeniem treści. Ponadto, tworzenie grafiki wektorowej wymaga wyspecjalizowanych narzędzi graficznych, takich jak Adobe Illustrator, które są dedykowane do grafiki wektorowej, a nie funkcji edytorów WYSIWYG. Błędne wnioski wynikają często z mylnego postrzegania roli edytora WYSIWYG, który nie powinien być traktowany jako uniwersalne narzędzie do wszelkich aspektów tworzenia stron internetowych. Właściwe zrozumienie jego funkcji pozwala na efektywne wykorzystanie edytorów do projektowania stron, a nie do zadań, do których nie zostały zaprojektowane.

Pytanie 21

Do której właściwości można przypisać wartości: static, relative, fixed, absolute oraz sticky?

A. text-transform
B. position
C. list-style-type
D. display
Wybór czegoś innego niż 'position' pokazuje, że mogło dojść do małego miszmaszu z rozumieniem CSS. Na przykład, 'display' decyduje, jak elementy się wyświetlają – czy są blokowe, czy liniowe – ale nie ma nic wspólnego z ich pozycjonowaniem. 'display: block' sprawia, że element zajmuje całą szerokość, a 'display: inline' pozwala na mniejszy wpływ na inne elementy, co może wprowadzić w błąd, jeśli chodzi o pozycjonowanie. 'list-style-type' to kwestia stylizacji list, więc to też nie ma związku z układem elementów na stronie. Tak samo, 'text-transform' zmienia wygląd tekstu, na przykład na wielkie litery, ale nie wpływa na to, gdzie elementy są umieszczone. Wydaje mi się, że warto by było jeszcze raz przestudiować, jak działa pozycjonowanie w CSS. Fajnie by było też zajrzeć do dokumentacji i zobaczyć konkretne przykłady, żeby lepiej to zrozumieć.

Pytanie 22

W której notacji diagramów ER został zapisany model związków encji przedstawiony na ilustracji?

Ilustracja do pytania
A. Min-Max.
B. Bachmana.
C. Martina.
D. Chena.
Prawidłowa odpowiedź to notacja Martina. Na diagramie widać bardzo charakterystyczne cechy tej notacji: encje są przedstawione jako prostokąty z nagłówkiem wypełnionym innym kolorem (tu: ciemnoszary pasek z nazwą encji KLIENT, ZAKUP, TOWAR), a pod spodem w formie tabelki wypisane są atrybuty, jeden pod drugim. Klucz główny jest po prostu pierwszym atrybutem na liście (ID), bez dodatkowych ozdobników typu podkreślenie czy elipsa, co jest typowe właśnie dla podejścia Martina, zorientowanego na projektowanie relacyjnej bazy danych. Związki między encjami są rysowane liniami z tzw. crow’s foot ("kurzą łapką") po stronie encji wielokrotnej, a po stronie encji pojedynczej mamy prostą kreskę. Na ilustracji dokładnie to widać: ZAKUP jest encją pośredniczącą, a relacje KLIENT–ZAKUP i TOWAR–ZAKUP mają klasyczną symbolikę notacji Martina. W praktyce, w wielu narzędziach CASE (np. w starszych wersjach ERwin, PowerDesigner, Visio z szablonem Database Model Diagram) domyślny styl ERD jest właśnie bardzo zbliżony do notacji Martina. Taki diagram jest od razu „bliski” strukturze fizycznej tabel w SQL, więc łatwo go przełożyć na CREATE TABLE, klucze obce i indeksy. Z mojego doświadczenia w firmach produkcyjnych i w małych software house’ach notacja Martina jest często używana przy projektach, gdzie liczy się szybkie przejście z modelu koncepcyjnego do modelu logicznego i fizycznego, bez zbyt rozbudowanej symboliki teoretycznych ER-ów. Dlatego rozpoznanie tej notacji po wyglądzie encji-tabelek i crow’s foot jest bardzo praktyczną umiejętnością przy pracy z bazami danych.

Pytanie 23

Aby policzyć wszystkie wiersze w tabeli Koty, należy użyć zapytania:

A.
SELECT COUNT(*) FROM Koty
B.
SELECT COUNT(Koty) AS ROWNUM
C.
SELECT ROWNUM() FROM Koty
D.
SELECT COUNT(ROWNUM) FROM Koty
Liczbę wszystkich wierszy tabeli zwraca funkcja agregująca COUNT(*), użyta w zapytaniu SELECT COUNT(*) FROM Koty. Gwiazdka oznacza „policz wszystkie wiersze”, niezależnie od wartości w kolumnach (także te z NULL). Dlatego poprawne jest SELECT COUNT(*) FROM Koty.

Pytanie 24

Dostępna jest tabela z danymi o mieszkaniach, zawierająca kolumny: adres, metraż, liczba_pokoi, standard, status, cena. Wykonanie poniższej kwerendy SQL SELECT spowoduje wyświetlenie

SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3;
A. Metraż oraz koszt tych mieszkań, które mają przynajmniej 3 pokoje
B. Wszystkie informacje poza adresem tych mieszkań, które mają więcej niż 3 pokoje
C. Wszystkie informacje o tych mieszkaniach, które mają minimum 3 pokoje
D. Metraż oraz koszt tych mieszkań, które mają więcej niż 3 pokoje
W tym zapytaniu SQL chodzi o to, żeby ściągnąć konkretne dane z tabeli mieszkania. Używamy klauzuli SELECT, dlatego wybieramy tylko te kolumny, które nas interesują, czyli metraż i cena. I to wszystko bierzemy z tabeli mieszkania, co mamy w klauzuli FROM. Jeszcze dodajemy filtr WHERE, który mówi, że bierzemy tylko te mieszkania, które mają więcej niż trzy pokoje. To naprawdę dobra strategia, bo dzięki temu dokładnie widzimy, co nas interesuje. Takie zapytanie przydaje się w analizach rynku nieruchomości, bo można porównywać ceny mieszkań z większą ilością pokoi. Ogólnie mówiąc, SQL jest super narzędziem do pracy z danymi, bo pozwala nam szybko i efektywnie wyciągać to, co jest dla nas ważne. Wiedza na temat takich zapytań to podstawa, zwłaszcza w pracy z dużymi bazami danych i generowaniu różnych raportów.

Pytanie 25

Zademonstrowano fragment kodu JavaScript. Po jego uruchomieniu zmienna str2 otrzyma wartość.

var str1 = "JavaScript";
var str2 = str1.substring(2, 6);
A. avaScr
B. vaSc
C. vaScri
D. avaS
Pierwsza z niepoprawnych odpowiedzi 'avaS' sugeruje, że odczytujemy znaki zaczynając od drugiego indeksu, jednak końcowy indeks 6 zmienia sposób odczytu. Możliwe, że ktoś mógł pomylić kolejność lub sposób, w jaki substring działa, co jest częstym błędem w zrozumieniu tej metody. Druga odpowiedź 'vaScri' wydaje się sugerować, że ktoś zrozumiał, jak działa substring, ale błędnie wyznaczył końcowy indeks, co prowadzi do wyodrębnienia znacznie większej ilości znaków. W rzeczywistości, aby uzyskać 'vaScri', należałoby użyć indeksów 2 i 8, co również jest nieprawidłowe. Ostatnia niepoprawna odpowiedź 'avaScr' wskazuje na błędne wyznaczenie pierwszego znaku. Użytkownik mógł pomylić interpretację indeksu zaczynając od 0, co w JavaScript jest istotne. W kontekście całego łańcucha, odpowiedzi te pokazują, jak ważne jest zrozumienie indeksowania i prawidłowego użycia metod do manipulacji tekstem, aby unikać błędów w kodzie. Rozwój umiejętności w pracy z łańcuchami tekstowymi jest kluczowy dla efektywnego programowania w JavaScript.

Pytanie 26

Który element relacyjnej bazy danych (kod w języku SQL) można WYWOŁAĆ wewnątrz zapytania, tak że zwróci wartość lub dane widoczne jak tabela?

A. procedura składowana
B. reguła
C. wyzwalacz
D. funkcja zdefiniowana przez użytkownika
Pozostałe elementy działają inaczej. Wyzwalacz (trigger) uruchamia się automatycznie przy zmianie danych, a nie na żądanie w zapytaniu. Procedury składowanej nie wywołuje się wewnątrz SELECT jak źródła danych (uruchamia się ją osobno). Reguła to ograniczenie. Wartość lub dane w zapytaniu zwraca funkcja zdefiniowana przez użytkownika.

Pytanie 27

W języku PHP, przy pracy z bazą MySQL, aby zakończyć sesję z bazą, należy wywołać

A. mysqli_commit()
B. mysqli_rollback()
C. mysqli_close()
D. mysqli_exit()
Inne odpowiedzi na to pytanie wprowadzają w błąd, ponieważ każda z nich ma inne znaczenie i zastosowanie w kontekście operacji na bazie danych MySQL. Na przykład, mysqli_exit() nie jest standardową funkcją w bibliotece MySQLi i nie istnieje w dokumentacji PHP, co czyni ją nieprawidłową. Funkcje mysqli_commit() i mysqli_rollback() służą do zarządzania transakcjami w bazach danych. mysqli_commit() zapisuje wszystkie zmiany dokonane w bieżącej transakcji, podczas gdy mysqli_rollback() przywraca stan bazy danych do momentu rozpoczęcia transakcji w przypadku, gdy wystąpił błąd lub gdy zdecydujemy się nie akceptować dokonanych zmian. Użycie tych funkcji jest kluczowe w kontekście zapewnienia integralności danych, zwłaszcza w aplikacjach, gdzie wiele operacji zmienia stan bazy danych. Typowy błąd myślowy, który prowadzi do wyboru tych odpowiedzi, to mylenie zamknięcia połączenia z bazą z zarządzaniem transakcjami. Ważne jest, aby zrozumieć, że mimo iż zarówno zamknięcie połączenia, jak i zarządzanie transakcjami są ważnymi aspektami pracy z bazą danych, pełnią one zupełnie różne funkcje. Właściwe zamknięcie połączenia jest kluczowe, aby uniknąć problemów z wydajnością i dostępnością zasobów, które mogą wystąpić, jeśli połączenia nie zostaną prawidłowo zakończone.

Pytanie 28

W języku SQL, aby dodać atrybut klucza podstawowego do pola id w istniejącej tabeli produkt należy użyć składni

A. ALTER TABLE produkt ALTER COLUMN id INT
B. ALTER TABLE produkt DROP CONSTRAINT id
C. ALTER TABLE produkt DROP PRIMARY KEY
D. ALTER TABLE produkt ADD PRIMARY KEY (id)
Poprawna składnia to ALTER TABLE produkt ADD PRIMARY KEY (id), bo dokładnie to polecenie dodaje do istniejącej tabeli nowy klucz podstawowy oparty na kolumnie id. Instrukcja ALTER TABLE służy do modyfikowania struktury tabeli, a klauzula ADD PRIMARY KEY definiuje ograniczenie (constraint) typu klucz podstawowy dla wskazanej kolumny lub zestawu kolumn. W praktyce oznacza to, że kolumna id musi być unikalna i nie może przyjmować wartości NULL. Silnik bazy danych (np. MySQL, PostgreSQL, SQL Server) zwykle tworzy do tego indeks typu UNIQUE, który przyspiesza wyszukiwanie po kluczu głównym.
Moim zdaniem warto pamiętać, że takie polecenie będzie działać tylko wtedy, gdy dane w kolumnie id już spełniają warunki klucza podstawowego: brak duplikatów i brak wartości pustych. W realnym projekcie często robi się to w dwóch krokach: najpierw uzupełnia się brakujące wartości, usuwa lub poprawia duplikaty, a dopiero potem dodaje PRIMARY KEY. Przykładowo:
ALTER TABLE produkt ADD PRIMARY KEY (id);
W wielu systemach, zwłaszcza w aplikacjach webowych, kolumna id jest też często ustawiana jako AUTO_INCREMENT (MySQL) lub używa sekwencji (PostgreSQL, Oracle). Wtedy definicja tabeli przy tworzeniu może wyglądać np. tak:
CREATE TABLE produkt (id INT PRIMARY KEY AUTO_INCREMENT, nazwa VARCHAR(100));
Jeśli jednak tabela już istnieje i kolumna id była zwykłą kolumną, to właśnie ALTER TABLE ... ADD PRIMARY KEY (id) jest standardowym, poprawnym sposobem nadania jej roli klucza głównego. To rozwiązanie jest zgodne z ogólną składnią SQL i dobrą praktyką modelowania relacyjnych baz danych, gdzie każda tabela powinna mieć jasno zdefiniowany klucz podstawowy, najlepiej prosty, stabilny i jednoznaczny.

Pytanie 29

Przed przystąpieniem do tworzenia kopii zapasowej bazy danych, aby była ona poprawna i zdatna do późniejszego przywrócenia, konieczne jest sprawdzenie

A. spójności bazy danych
B. uprawnień dostępu do serwera bazy danych
C. poprawności składni zapytań
D. opcji udostępnienia bazy danych
Prawa dostępu do serwera bazy danych, możliwość udostępnienia bazy danych oraz poprawność składni zapytań to aspekty, które są istotne w kontekście zarządzania bazami danych, jednak nie mają one bezpośredniego wpływu na możliwość wykonania poprawnej kopii bezpieczeństwa. Sprawdzanie praw dostępu jest kluczowe z punktu widzenia bezpieczeństwa, ale nawet przy odpowiednich uprawnieniach, kopia zapasowa będzie bezwartościowa, jeśli dane są niezgodne lub uszkodzone. Możliwość udostępnienia bazy danych odnosi się do tego, czy inni użytkownicy mogą z niej korzystać, co również nie ma wpływu na integralność danych, które kopiujemy. Z kolei poprawność składni zapytań dotyczy aspektu komunikacji z bazą danych, a nie stanu samych danych. Właściwie skonstruowane zapytania mogą z powodzeniem zwrócić wynik, ale nie gwarantują, że dane, które chcemy zarchiwizować, są zgodne i spójne. Często w praktyce pomija się te elementy, koncentrując się na bezpośrednich aspektach zarządzania danymi, co może prowadzić do poważnych problemów po przywróceniu bazy z kopii zapasowej. Najważniejsze jest, aby przed wykonaniem kopiowania danych, zapewnić ich spójność, co jest fundamentem operacji backupu.

Pytanie 30

Fragment kodu SQL wskazuje, że klucz obcy

FOREIGN KEY (imie) REFERENCES obiekty (imiona) …
A. wiąże się z kolumną imiona
B. znajduje się w tabeli obiekty
C. jest odniesieniem do siebie samego
D. jest przypisany do kolumny obiekty
Próba interpretacji klucza obcego jako referencji do samego siebie jest niepoprawna, ponieważ klucz obcy w SQL zasadniczo odnosi się do kolumny w innej tabeli, a nie do tej samej tabeli. W rzeczywistości, klucz obcy może być zdefiniowany w obrębie tej samej tabeli, co nazywa się rekurencyjnym kluczem obcym, ale w przedstawionym przypadku odnosi się on do kolumny w tabeli 'obiekty'. Odpowiedź sugerująca, że klucz obcy znajduje się w tabeli 'obiekty' jest myląca, ponieważ definicja klucza obcego nie dotyczy miejsca jego przechowywania, lecz relacji między tabelami. Z kolei stwierdzenie, że klucz obcy jest ustawiony na kolumnie 'obiekty' również jest błędne, ponieważ odnosi się do kolumny 'imiona', co jest kluczowym punktem w zrozumieniu struktury relacyjnych baz danych. Klucz obcy powinien zawsze odnosić się do klucza podstawowego innej tabeli, co ma na celu zapewnienie integralności referencyjnej. Typowe błędy myślowe, które prowadzą do takich nieprawidłowych wniosków, obejmują niepełne zrozumienie koncepcji relacji tabelarycznych oraz mylenie kluczy podstawowych i obcych.

Pytanie 31

Który zapis znacznika hr jest poprawny zgodnie z walidacją HTML5?

A.
</ hr>
B.
</hr?>
C.
</ hr />
D.
<hr>
<hr> to element PUSTY (void), więc poprawny zapis to po prostu <hr> - bez znacznika zamykającego i bez ukośnika (w HTML5 <hr/> jest zbędny). Dlatego poprawny jest <hr>.

Pytanie 32

Który zapis CSS ustawi punktor listy NUMEROWANEJ na wielkie cyfry rzymskie, a PUNKTOWANEJ na kwadraty?

A.
ol { list-style-type: square; } ul { list-style-type: upper-roman; }
B.
ol { list-style-type: upper-alpha; } ul { list-style-type: disc; }
C.
ol { list-style-type: upper-roman; } ul { list-style-type: square; }
D.
ol { list-style-type: disc; } ul { list-style-type: upper-alpha; }
Rodzaj punktora ustawia list-style-type. Dla listy numerowanej <ol> wielkie cyfry rzymskie to upper-roman, a dla punktowanej <ul> kwadraty to square. Dlatego poprawny jest ol { list-style-type: upper-roman; } ul { list-style-type: square; }.

Pytanie 33

Który opis dotyczy metody POST przesyłania formularza?

A. ma ograniczenie długości adresu do 255 znaków
B. dane są przesyłane w adresie URL, widoczne dla użytkownika
C. można ją zapisać jako zakładkę w przeglądarce
D. jest zalecana przy przesyłaniu danych wrażliwych (hasło, numer karty)
Pozostałe opisy dotyczą metody GET. To GET przesyła dane w URL (widoczne dla użytkownika), pozwala zapisać żądanie jako zakładkę i ma ograniczoną długość adresu. POST ukrywa dane w treści żądania, więc jest zalecana dla danych wrażliwych.

Pytanie 34

Którego słowa kluczowego użyć w języku C, aby zdefiniować stałą?

A.
#INCLUDE
B.
const
C.
#CONST
D.
static
W języku C stałą definiuje się słowem kluczowym const, np. const int max = 100; - wartości takiej zmiennej nie można potem zmienić. Dlatego stałą tworzy const.

Pytanie 35

Które z rozszerzeń NIE jest związane z plikiem wideo?

A. MP4
B. MOV
C. AVI
D. GIF
Pozostałe rozszerzenia to formaty WIDEO: AVI, MP4 i MOV to kontenery przechowujące obraz ruchomy (zwykle z dźwiękiem). GIF jest inny - to format graficzny/animacja bez dźwięku, więc to on nie należy do plików wideo.

Pytanie 36

Które polecenie SQL służy do wstawienia nowego rekordu z danymi?

A.
CREATE
B.
ADD
C.
INSERT INTO
D.
UPDATE
Nowy rekord (wiersz) z danymi wstawia polecenie INSERT INTO, po którym podaje się tabelę i wartości. Dlatego do wstawienia rekordu służy INSERT INTO.

Pytanie 37

W CSS zapis selektora

p > i { color: red;} 
wskazuje, że kolorem czerwonym będzie wyróżniony
A. tylko ten tekst znacznika <p>, który ma przypisaną klasę o nazwie i
B. wszystkie teksty w znaczniku <p> lub każdy tekst w znaczniku <i>
C. każdy tekst w znaczniku <p> z wyjątkiem tych w znaczniku <i>
D. jedynie tekst w znaczniku <i>, który znajduje się bezpośrednio wewnątrz znacznika <p>
Odpowiedzi, które nie uznają znaczenia operatora > oraz kontekstu, w jakim elementy <i> są umieszczone, mogą prowadzić do błędnych wniosków. Przykładowo, stwierdzenie, że każdy tekst w znaczniku <p> za wyjątkiem tych w znaczniku <i> zostanie sformatowany, jest niezgodne z zasadami działania CSS, ponieważ selektor ten nie wyklucza jedynie <i>, lecz odnosi się do hierarchii struktury DOM. W praktyce, jeśli <i> nie jest bezpośrednim dzieckiem <p>, to nie będzie objęte regułą. Z kolei pomylenie selektorów może skutkować tym, że nie osiągniemy zamierzonych efektów stylizacji, co jest częstym problemem w projektach webowych. Ponadto, odpowiedzi sugerujące, że selektor dotyczy wszystkich elementów <p> lub że dotyczy on klasy <i>, wynikają z niepełnego zrozumienia podstaw CSS. Należy pamiętać, że klasy są definiowane w osnowie HTML, a nie w kontekście selektorów bezpośrednich. Właściwe zrozumienie selektorów jest kluczowe dla efektywnego stylizowania i organizacji kodu, a także dla osiągnięcia zamierzonych efektów wizualnych na stronach internetowych.

Pytanie 38

Jak zapisać marginesy zewnętrzne: górny i dolny 20 px, lewy i prawy 40 px?

A.
margin: 40px 20px;
B.
margin: 20px 40px;
C.
margin: 20px 40px 40px 20px;
D.
margin: 20px 20px 40px 40px;
Kolejność ma znaczenie. margin: 40px 20px; ustawia odwrotnie (góra/dół 40, boki 20). Zapisy czterowartościowe margin: 20px 20px 40px 40px; i margin: 20px 40px 40px 20px; idą w kolejności góra-prawo-dół-lewo i dają inny układ niż wymagany. Poprawny jest margin: 20px 40px;.

Pytanie 39

Który zapis w HTML deklaruje kodowanie znaków dokumentu?

A.
<charset="UTF-8">
B.
<meta charset="UTF-8">
C.
<encoding="UTF-8">
D.
<meta encoding="UTF-8">
Kodowanie znaków dokumentu deklaruje się znacznikiem <meta charset="UTF-8">, umieszczanym na początku sekcji <head>. Informuje on przeglądarkę, jak interpretować bajty tekstu - UTF-8 obsługuje m.in. polskie znaki diakrytyczne, więc jego brak lub błędne kodowanie powoduje „krzaczki” zamiast ą, ę, ł. Atrybutem niosącym tę informację jest charset. Dlatego poprawny zapis to <meta charset="UTF-8">.

Pytanie 40

W programie do edycji grafiki rastrowej, aby skoncentrować się na wybranej części obrazu, nie wpływając na pozostałe jego fragmenty, można zastosować

A. warstwy
B. przycinanie
C. zmianę rozmiaru
D. odwrócenie
Zastosowanie skalowania w edytorze grafiki rastrowej polega na zmianie rozmiaru obrazu, co wpływa na wszystkie jego elementy. Przykładowo, jeśli zdecydujemy się na skalowanie, wszystkie obiekty na obrazie zostaną powiększone lub pomniejszone w równym stopniu, co nie pozwala na selektywne modyfikacje. Inwersja, z kolei, to proces zmiany kolorów pikseli w obrazie na ich przeciwieństwa, co również nie umożliwia pracy na wybranej części obrazu bez zmiany innych elementów. Ponadto kadrowanie, które polega na przycinaniu części obrazu, również nie dostarcza narzędzi do edytowania wybranych elementów bez wpływu na resztę kompozycji. Takie podejścia są często mylnie postrzegane jako odpowiednie metody do pracy z grafiką rastrową, podczas gdy w rzeczywistości nie oferują elastyczności potrzebnej do profesjonalnej edycji. Nieprawidłowe wnioski mogą prowadzić do frustracji w trakcie edycji, zwłaszcza w bardziej złożonych projektach, gdzie precyzyjna kontrola nad elementami obrazu jest kluczowa. Dlatego istotne jest zrozumienie roli warstw jako jedynego narzędzia, które umożliwia niezależne zarządzanie elementami grafiki rastrowej.