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: 23 kwietnia 2026 14:18
  • Data zakończenia: 23 kwietnia 2026 14:19

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

W języku HTML aby zdefiniować słowa kluczowe strony, należy użyć zapisu

A. <meta name = "keywords" = "psy, koty, gryzonie">
B. <meta name = "description" content = "psy, koty, gryzonie">
C. <meta keywords = "psy, koty, gryzonie">
D. <meta name = "keywords" content = "psy, koty, gryzonie">
Poprawna odpowiedź to <meta name = "keywords" content = "psy, koty, gryzonie">, ponieważ jest to właściwy sposób definiowania słów kluczowych w sekcji <head> dokumentu HTML. Element <meta> służy do dostarczania metadanych o stronie internetowej, a atrybut 'name' określa, jakie informacje są zawarte w danym elemencie. W przypadku 'keywords', atrybut 'content' z kolei zawiera listę słów kluczowych, które są związane z treścią strony. Chociaż znaczenie słów kluczowych w SEO zmienia się, wciąż są one używane przez niektóre wyszukiwarki do kategoryzowania zawartości strony. Przykładowo, jeśli strona dotyczy zwierząt domowych, użycie fraz takich jak 'psy', 'koty', czy 'gryzonie' w atrybucie 'content' może pomóc w poprawie widoczności w wynikach wyszukiwania. Dobrą praktyką jest, aby słowa kluczowe były specyficzne, związane z tematyką strony i nie przekraczały rozsądnej liczby, aby nie wprowadzać w błąd algorytmy wyszukiwarek. Używanie odpowiednich metatagów to kluczowy element optymalizacji SEO.

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. 10
B. 960
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

Jakiej funkcji w języku PHP należy użyć, aby nawiązać połączenie z bazą danych pod nazwą zwierzaki?

A. $polacz = sql_connect('localhost', 'root', '', 'zwierzaki')
B. $polacz = mysqli_connect('localhost', 'root', '', 'zwierzaki')
C. $polacz = server_connect('localhost', 'root', '', 'zwierzaki')
D. $polacz = db_connect('localhost', 'root', '', 'zwierzaki')
Funkcje zaproponowane w odpowiedziach 1, 2 i 3 nie są poprawne, ponieważ nie istnieją w standardowej bibliotece PHP do obsługi baz danych MySQL. Przykład $polacz = db_connect('localhost', 'root', '', 'zwierzaki'); sugeruje, że istnieje funkcja o nazwie db_connect, co jest mylnym przekonaniem. Tego typu nazewnictwo może powstać z pomyłki lub z nieznajomości dokumentacji PHP, a także z prób tworzenia własnych abstrakcji, które jednak wymagają dodatkowej implementacji. W przypadku drugiej odpowiedzi, $polacz = sql_connect('localhost', 'root', '', 'zwierzaki'); również nie jest poprawne, ponieważ nie istnieje funkcja sql_connect w żadnej wersji PHP. Może to wynikać z mylenia terminologii, ponieważ wielu programistów używa terminów SQL i MySQL zamiennie, nie zdając sobie sprawy, że MySQL jest specyficzną implementacją obsługi SQL. Ostatnia sugestia, $polacz = server_connect('localhost', 'root', '', 'zwierzaki'); jest także nieprawidłowa, ponieważ taka funkcja nie istnieje w kontekście PHP i jest przykładem błędnego wnioskowania, które może prowadzić do dezorientacji wśród programistów. W programowaniu niezwykle istotne jest trzymanie się udokumentowanych funkcji i standardów, aby uniknąć problemów z kompatybilnością, wydajnością oraz bezpieczeństwem aplikacji. Dlatego kluczowe jest zapoznanie się z dokumentacją PHP oraz zrozumienie, jak poprawnie łączyć się z bazami danych, aby móc efektywnie korzystać z ich możliwości.

Pytanie 4

Jakie wartości zostaną wypisane przez funkcję wypisz(2) zaimplementowaną w JavaScript?

function wypisz(a)
{
    for (var i=1; i<6; i++)
    {
        a++;
        if ((a%2==0)|| (a%3==0))
        document.write(a+" " );
    }
}
A. 6
B. 2 3 4 6
C. 3 4 6 8
D. 3 4 6
Jak analizujemy tę funkcję wypisz, to ważne jest, aby zrozumieć, jak pętla for działa oraz jakie liczby spełniają warunki w if. W przypadku, gdy ktoś myśli, że funkcja wypisze tylko 6, to musi wiedzieć, że poprawna odpowiedź 3 to tak naprawdę cały zestaw liczb 3, 4 i 6. Wypisanie tylko 6 to błąd, bo musimy uwzględnić inne wartości, które też spełniają warunek. Opcja, że ma być wypisane 3, 4, 6 i 8, wydaje się mylna, bo 8 wcale się nie pojawia w pętli, więc ten warunek a%2==0 || a%3==0 nie ma tu zastosowania. Podobnie, myślenie, że 2, 3, 4, 6 będą wypisane, to fałsz, bo 2 nigdy nie jest sprawdzane. Na początku a jest równe 2, a po pierwszym obiegu pętli, a++ daje 3, która spełnia warunek, ale 2 zostaje zignorowane w tej kolejności. To jest prosty błąd wynikający z nieuważności, bo trzeba zwrócić uwagę, że inkrementacja dzieje się przed sprawdzeniem условия w if. Warto to zrozumieć, bo to daje solidne podstawy do lepszego programowania i umiejętności pisania bardziej skomplikowanego kodu JavaScript.

Pytanie 5

Algorytm pokazany na ilustracji można zapisać w języku JavaScript przy użyciu instrukcji

Ilustracja do pytania
A. var i = 0; do i = i + 2; while(i < 10)
B. var i = 0; do i++; while(i > 10)
C. var i = 0; while(i <= 10) i += 2
D. for(i = 0; i > 10; i++)
W przypadku odpowiedzi var i = 0; do i = i + 2; while(i < 10); błąd tkwi w zastosowaniu pętli do-while. Pętla do-while wykonuje blok kodu przynajmniej raz przed sprawdzeniem warunku, co może prowadzić do nieoczekiwanych wyników, jeśli warunek początkowy nie jest spełniony. Odpowiedź for(i = 0; i > 10; i++) zawiera niepoprawny warunek i > 10, co oznacza, że pętla nigdy się nie wykona, ponieważ warunek początkowy nie jest prawdziwy. Ostatnia odpowiedź var i = 0; do i++; while(i > 10); również wykorzystuje do-while, ale z nieprawidłowym warunkiem i > 10, przez co pętla wykona się tylko raz, gdy i zwiększy się na 1, co nie odpowiada przedstawionemu algorytmowi. Typowym błędem jest zastosowanie niewłaściwych warunków w pętlach, które mogą skutkować nieskończonymi iteracjami lub niewłaściwym zakresem przetwarzanych danych. Dobrze jest zawsze dokładnie analizować logikę warunków i struktur pętli, co pozwala na uniknięcie błędów logicznych i zapewnia poprawność działania kodu, zwłaszcza w kontekście iteracji i przetwarzania danych.

Pytanie 6

Pętla w kodzie JavaScript zostanie uruchomiona

Ilustracja do pytania
A. 27 razy
B. 2 razy
C. 26 razy
D. 3 razy
Analizując podane odpowiedzi, warto zrozumieć, jak działa pętla do-while w JavaScript. Pętla ta różni się od tradycyjnych pętli for oraz while tym, że warunek jest sprawdzany na końcu każdej iteracji. Oznacza to, że ciało pętli wykona się przynajmniej raz, niezależnie od tego, czy warunek jest prawdziwy na początku. W analizowanej konstrukcji mamy zmienną x początkowo ustawioną na 1, która w każdej iteracji jest mnożona przez 3, oraz zmienną i zliczającą liczbę iteracji. Pętla kontynuuje, dopóki x nie osiągnie wartości 27. W obliczeniach x przyjmuje wartości 1, 3, 9, i na koniec 27. Dopiero po osiągnięciu 27 warunek x!=27 staje się fałszem, zatrzymując pętlę po trzeciej iteracji. Częstym błędem przy analizie takich pętli jest pomijanie faktu, że wykonają się one przynajmniej raz, co może prowadzić do błędnej oceny liczby iteracji. Rozumienie tej mechaniki jest kluczowe w projektowaniu algorytmów, które muszą zagwarantować wykonanie kodu niezależnie od początkowego stanu zmiennych.

Pytanie 7

W PHP zmienna $_GET stanowi zmienną

A. utworzoną przez autora strony, przeznaczoną do przesyłania danych z formularza przez adres URL
B. predefiniowaną, wykorzystywaną do zbierania danych formularza po nagłówkach żądania HTTP (informacje z formularza nie są widoczne w URL)
C. predefiniowaną, służącą do przesyłania informacji do skryptów PHP przez adres URL
D. zwykłą, utworzoną przez autora strony
Odpowiedzi, które wskazują na to, że zmienna $_GET jest zwykłą zmienną lub jest definiowana przez twórcę strony, są nieprawidłowe. $_GET jest superglobalną tablicą, co oznacza, że jej dostępność jest zapewniona w całym skrypcie bez potrzeby wcześniejszego deklarowania. Zrozumienie różnicy między zmiennymi predefiniowanymi a tymi zdefiniowanymi przez użytkownika jest kluczowe dla właściwego zarządzania danymi w PHP. Ponadto, odpowiedzi sugerujące, że $_GET służy do gromadzenia wartości formularza po nagłówkach zlecenia HTTP, mylą metodę GET z metodą POST. W przeciwieństwie do POST, dane przesyłane za pomocą GET są widoczne w adresie URL, co czyni je mniej bezpiecznymi dla wrażliwych danych. Mówiąc o formularzach, $_GET jest jedynie jedną z metod przesyłania danych, obok $_POST i $_REQUEST, z których każda ma swoje specyficzne zastosowania i ograniczenia. Generalnie, korzystanie z $_GET jest odpowiednie do przesyłania niewielkich ilości danych, takich jak parametry zapytań, ale należy być świadomym, że wykorzystywanie tej metody z danymi wrażliwymi jest ryzykowne i należy unikać tego podejścia w praktyce. Dbając o bezpieczeństwo aplikacji, warto zrozumieć te różnice i stosować się do dobrych praktyk dotyczących przetwarzania danych wejściowych.

Pytanie 8

W bazie danych znajduje się tabela artykuły z kolumnami: nazwa, typ, producent, cena. Jakie polecenie należy użyć, aby wyświetlić wszystkie nazwy artykułów tylko o typie pralka, których cena mieści się w przedziale od 1000 PLN do 1500 PLN?

A. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500
B. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena FROM 1000 TO 1500
C. SELECT nazwa FROM artykuły WHERE typ='pralka' OR cena BETWEEN 1000 OR 1500
D. SELECT nazwa FROM artykuły WHERE typ='pralka' OR cena BETWEEN 1000 AND 1500
Pierwsza błędna odpowiedź ma problem z zapisem SQL, bo używa frazy 'cena FROM 1000 TO 1500', co się nie trzyma zasad. Operator 'FROM' nie może być tu użyty, powinno być BETWEEN. Druga odpowiedź korzysta z operatora OR, co sprawia, że można dostać wyniki, które są typu pralka, ale cena może być spoza tego przedziału. To nie jest to, czego szukamy i może zwrócić za dużo wyników. Co do trzeciej odpowiedzi, mimo użycia operatora BETWEEN, to też jest nie tak, bo znów jest OR, co powoduje, że wyciągniesz niechciane wyniki. Kiedy używasz AND i OR w złych miejscach, możesz uzyskać niejasne wyniki i zamącić logikę zapytania. Dlatego ważne jest, żeby trzymać się odpowiednich operatorów, w tej konkretnej sytuacji potrzebujesz AND dla obu warunków.

Pytanie 9

Która z czynności NIE WPŁYNIE na wielkość zajmowanej pamięci pliku graficznego?

A. Skalowanie obrazu przy użyciu atrybutów HTML
B. Kompresja
C. Interpolacja
D. Zmiana rozdzielczości obrazu
Interpolacja, zmiana rozdzielczości obrazu oraz kompresja to operacje, które na różne sposoby wpływają na wielkość pliku graficznego. Interpolacja polega na dodawaniu nowych pikseli w celu zwiększenia rozmiaru obrazu, co w rezultacie zwiększa ilość danych i tym samym rozmiar pliku. Gdy obraz jest skalowany w górę, a algorytmy interpolacji nieuchronnie dodają nowe informacje, prowadzi to do wzrostu rozmiaru pliku. Z kolei zmiana rozdzielczości obrazu, która polega na zwiększeniu liczby pikseli w danym obrazie, również skutkuje jego powiększeniem. Im wyższa rozdzielczość, tym więcej informacji musi być przechowywanych, co zwiększa rozmiar pliku. Kompresja, mimo że jest techniką stosowaną w celu zmniejszenia rozmiaru pliku, w rzeczywistości zmienia dane obrazu, co również wpływa na jego ostateczną wielkość. Kompresja bezstratna i stratna oferują różne podejścia do redukcji rozmiaru, ale zawsze wprowadza to zmiany w oryginalnych danych. Typowym błędem jest mylenie skali wizualnej z rzeczywistym rozmiarem pliku, co prowadzi do nieprawidłowych wniosków o wpływie operacji na wielkość pliku. Zrozumienie tych różnic jest kluczowe w kontekście efektywnej optymalizacji obrazów w projektach webowych.

Pytanie 10

W JavaScript, aby wyodrębnić fragment tekstu pomiędzy wskazanymi indeksami, powinno się zastosować metodę

A. replace()
B. trim()
C. slice()
D. concat()
Wybór innych metod do manipulacji ciągami tekstowymi sugeruje niezrozumienie ich właściwości. Metoda trim() służy do usuwania białych znaków z początku i końca napisu, co nie ma nic wspólnego z wydobywaniem fragmentów. Użytkownicy mogą mylnie sądzić, że trim() jest przydatna do ekstrakcji, jednak jej zastosowanie jest zupełnie inne i polega na oczyszczaniu danych. Metoda concat() łączy dwa lub więcej ciągów tekstowych, co również nie odpowiada na potrzebę wydobywania podciągu. Zrozumienie, że concat() nie jest odpowiedzią na pytanie o wydobycie fragmentu, jest kluczowe dla efektywnego korzystania z języka JavaScript. Z kolei replace() służy do zamiany określonego fragmentu tekstu na inny, co może wprowadzać w błąd, gdyż nie wydobywa fragmentów, lecz je modyfikuje. Użytkownicy mogą mylić te metody, nie dostrzegając różnic między modyfikacją a wydobywaniem, co jest istotne w kontekście manipulacji danymi. Ważne jest, aby rozumieć specyfikę każdej metody oraz jej zastosowanie w codziennym programowaniu, co pozwala na efektywniejsze i bardziej precyzyjne pisanie kodu w JavaScript.

Pytanie 11

Jaką wartość wyświetli się po uruchomieniu poniższego kodu JavaScript? ```javascript document.write(Math.round(4.51) + Math.pow(2, 3)); ```

A. 13
B. 12
C. 11
D. 14
Zobaczmy, jak doszliśmy do poprawnej odpowiedzi 13. W kodzie JavaScript mamy fragment: <script type='text/javascript'> document.write(Math.round(4.51) + Math.pow(2, 3)); </script>. Co tu się dzieje? Dwie główne operacje to zaokrąglanie i potęgowanie. Funkcja Math.round(4.51) zaokrągla do najbliższej liczby i zwraca 5. Potem mamy Math.pow(2, 3), które daje wynik 8, bo 2 do potęgi 3 to 2 * 2 * 2. Jak to zsumujemy, to mamy 5 + 8, co daje 13. Warto wiedzieć, że Math.round i Math.pow są częścią obiektu Math w JavaScript, który ma różne przydatne funkcje. Na przykład, Math.sqrt() oblicza pierwiastek kwadratowy, a Math.random() daje losowe liczby. To są naprawdę przydatne rzeczy w aplikacjach webowych, gdzie często potrzebujemy obliczeń z danymi liczbowymi. Standard ECMA-262 opisuje, jak te funkcje mają działać, więc możemy być pewni, że będą działać tak samo w różnych środowiskach JavaScript.

Pytanie 12

W HTML umieszczono formularz. Jakie skutki działania tego kodu zostaną pokazane przez przeglądarkę, jeśli użytkownik w drugim polu wprowadzi wartość "ala ma kota"?

Ilustracja do pytania
A. Efekt 1
B. Efekt 3
C. Efekt 4
D. Efekt 2
Efekt 2 jest prawidłowy, ponieważ kod HTML używa elementu select do stworzenia listy rozwijanej z trzema opcjami: Kraków, Poznań i Szczecin. Użytkownik może wybrać jedną z tych opcji, co jest standardowym zastosowaniem elementu select w formularzach HTML. Drugim elementem jest pole input typu password które maskuje wpisywany tekst. W formularzach HTML pole typu password jest używane do ukrywania wprowadzanego tekstu co jest szczególnie ważne przy wprowadzaniu danych wrażliwych takich jak hasła. Gdy użytkownik wpisuje hasło widoczne są tylko znaki maskujące często kropki lub gwiazdki co zapewnia prywatność danych. Stosowanie takich elementów jest zgodne z dobrymi praktykami projektowania interfejsów użytkownika w sieci co zwiększa bezpieczeństwo i wygodę użytkowania formularzy. Właściwe korzystanie z elementów HTML jak select i input type=password jest kluczowe w tworzeniu efektywnych i bezpiecznych stron internetowych co jest szczególnie istotne w kontekście e-commerce i aplikacji bankowych.

Pytanie 13

W języku JavaScript obiekt typu array jest wykorzystywany do przechowywania

A. wielu wartości wyłącznie tekstowych.
B. wielu wartości dowolnego typu.
C. wielu wartości wyłącznie liczbowych.
D. wielu wartości lub funkcji.
Wybierając odpowiedzi, które ograniczają typy danych do tylko jednej kategorii, można zauważyć, że są one niepoprawne. Obiekty typu array w JavaScript mogą przechowywać wartości dowolnego rodzaju, co wyklucza te odpowiedzi. Niepoprawna jest idea przechowywania tylko wielu wartości lub funkcji, ponieważ tablice są znacznie bardziej wszechstronne. Funkcje mogą być jedynie jednym z elementów tablicy, ale nie definiują jej głównej funkcji. Przechowywanie tylko wielu wartości wyłącznie liczbowych jest również błędne, ponieważ tablica może zawierać różnorodne typy danych, nie tylko liczby. Tak samo, ograniczenie do wartości wyłącznie tekstowych jest mylące, gdyż tablica może przechowywać obiekty, inne tablice oraz liczby. Przykładowo, w tablicy można mieć mieszankę różnych typów danych takich jak: let mixedArray = [1, 'tekst', true, {key: 'value'}, [5, 6, 7]]; co pokazuje, że tablice są zdolne do przechowywania różnorodnych informacji. W związku z tym, ograniczenie do pojedynczych typów danych nie oddaje w pełni potencjału, jaki oferują tablice w JavaScript, co jest kluczowe dla ich użyteczności w programowaniu.

Pytanie 14

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. Napis powinien mieć dokładnie 30 znaków.
C. Do funkcji printf przekazano za mało argumentów.
D. Napis powinien być umieszczony w cudzysłowie.
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 15

Gdzie w dokumencie HTML mogą być umieszczane fragmenty kodu JavaScript?

A. wyłącznie w sekcji <body>, w znaczniku <java>
B. tak w sekcji <head>, jak i <body>, w znaczniku <java>
C. zarówno w sekcji <head>, jak i <body>, w znaczniku <script>
D. jedynie w sekcji <head>, w znaczniku <script>
Umieszczanie JavaScript w znaczniku <java> to całkowita pomyłka, bo taki znacznik nie istnieje w HTML. To może być mylące dla początkujących, którzy mogą pomyśleć, że to dobry sposób na dodawanie skryptów. Powinieneś używać znacznika <script>, to jest standard. Innym typowym błędem jest mylenie <head> z <body>. <head> zawiera różne metadane, jak linki do stylów czy skrypty, które powinny być załadowane na start. Ale wrzucanie skryptów tylko do <head> może spowolnić renderowanie treści. Najlepiej korzystać z obu sekcji w odpowiedni sposób, żeby optymalnie ładować stronę. Pamiętaj, że w HTML5 <script> ma atrybuty jak 'async' czy 'defer', które pomagają w zarządzaniu kolejnością skryptów i szybszym ładowaniu strony, co jest bardzo ważne przy tworzeniu nowoczesnych aplikacji.

Pytanie 16

Wynikiem działania pętli będzie wypisanie liczb

for ($i = 0; $i <= 20; $i += 4)
echo $i . ', ';
A. 0, 4, 8, 12, 16,
B. 0, 4, 8, 12, 16, 20,
C. 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
D. 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
Twoja odpowiedź jest prawidłowa. Pętla for w języku PHP jest strukturą kontrolną, która pozwala na wielokrotne wykonanie określonej sekwencji instrukcji. W tym konkretnym przypadku, pętla zaczyna od wartości 0 i zwiększa wartość $i o 4 przy każdej iteracji, aż osiągnie lub przekroczy wartość 20. W wyniku tego, wartości, które otrzymujemy i zostają wypisane, to 0, 4, 8, 12, 16, 20. Pętle są niezwykle użyteczne i wszechstronne w programowaniu, pozwalając na automatyzację i usprawnienie wielu zadań. Pętla for, którą tu widzimy, jest przykładem zastosowania tej struktury do generowania sekwencji liczb, co ma wiele zastosowań, na przykład w tworzeniu tablic, sterowaniu kolejnością wykonywania operacji lub generowaniu dynamicznych treści na stronach internetowych.

Pytanie 17

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", konieczne jest zastosowanie funkcji w PHP

A. strtolower('ala ma psa')
B. ucfirst('ala ma psa')
C. strstr('ala ma psa')
D. strtoupper('ala ma psa')
Użycie funkcji strtolower('ala ma psa') prowadzi do błędnych rezultatów, bo ta funkcja zmienia wszystkie litery na małe. W tym pytaniu chcemy mieć cały tekst wielkimi literami, więc to jest totalnie nie na miejscu. Gdybyśmy chcieli znormalizować tekst do małych liter, to tak, wtedy miałoby to sens, na przykład przy wyszukiwaniu. Kolejna odpowiedź, strstr('ala ma psa'), też jest chybiona, bo ta funkcja służy do szukania części ciągu, a nie do modyfikacji liter. Można by tego użyć, żeby sprawdzić, czy konkretne słowo występuje w zdaniu, ale nie do zmiany rozmiaru liter. Ostatnia odpowiedź, ucfirst('ala ma psa'), działa tylko na pierwszą literę ciągu, więc też nie pasuje do tego, co pytanie chce osiągnąć. Ta funkcja jest super przy formatowaniu imion czy tytułów, ale nie w sytuacji, gdy potrzebujemy przekształcić całe zdanie. Takie nieporozumienia pokazują, że warto zrozumieć, które funkcje w PHP najlepiej pasują do danego celu, żeby uniknąć błędów w przyszłości.

Pytanie 18

Jedną z charakterystyk relacyjnej bazy danych jest

A. obecność klas, obiektów i metod
B. używanie języka zapytań OQL
C. stosowanie kluczy głównych do identyfikacji rekordów w tabelach
D. zdefiniowanie jej stanu według obiektowego modelu danych
Odpowiedzi, które wskazują na stosowanie języka zapytań OQL, występowanie klas, obiektów i metod, oraz określenie stanu zgodnie z obiektowym modelem danych, nie odnoszą się do kluczowych cech relacyjnych baz danych. OQL (Object Query Language) jest językiem zapytań używanym w kontekście baz danych obiektowych, a nie relacyjnych. W relacyjnych bazach danych głównym językiem zapytań jest SQL (Structured Query Language), który został zaprojektowany do pracy z tabelami i relacjami między nimi. Przypisanie klas, obiektów i metod jest charakterystyczne dla obiektowych baz danych, które różnią się od relacyjnych, gdzie dane są organizowane w struktury tabelaryczne, a nie w obiektach. Ponadto, określenie stanu bazy danych zgodnie z obiektowym modelem danych nie jest praktyką występującą w relacyjnych bazach danych, które są zorganizowane wokół relacji między tabelami. Typowymi błędami myślowymi, które prowadzą do takich niepoprawnych wniosków, są mylenie różnych modeli baz danych oraz ich specyfikacji. Właściwe zrozumienie różnic między modelami obiektowymi a relacyjnymi jest kluczowe dla efektywnego projektowania baz danych i unikania problemów związanych z nieoptymalnym przechowywaniem oraz zarządzaniem danymi. W kontekście projektowania baz danych, ogólna zasada to, że należy dostosować używane technologie do specyficznych potrzeb aplikacji, co w przypadku relacyjnych baz danych oznacza korzystanie z zasad normalizacji i kluczy głównych dla poprawy integralności danych.

Pytanie 19

Która z pętli w PHP umożliwia przeprowadzenie operacji na wszystkich elementach tablicy z automatycznym przypisaniem indeksów tych elementów?

A. do...while
B. foreach
C. for
D. while
Zarówno konstrukcja 'for', 'while', jak i 'do...while' są pętlami, które służą do wykonywania bloków kodu wielokrotnie, jednak każda z nich ma swoje specyficzne zastosowania, które mogą prowadzić do nieefektywności w kontekście iteracji po tablicach. Użycie pętli 'for' wymaga manualnego zarządzania indeksami, co zwiększa ryzyko błędów, zwłaszcza w przypadku tablic o zmiennej długości. Przykładowo, iterując po tablicy za pomocą 'for', musimy ustawić warunki początkowe, końcowe oraz właściwie modyfikować indeks, co może prowadzić do błędów, jeśli nie zostanie to prawidłowo skonfigurowane. Z drugiej strony, pętle 'while' i 'do...while' są bardziej elastyczne, ale również wymagają dodatkowego sprawdzania warunków, co czyni je mniej przejrzystymi w kontekście iteracji po tablicach. Często prowadzi to do sytuacji, w których programiści popełniają błędy logiczne, takie jak zapętlenie się lub pominięcie elementów, co z kolei skutkuje trudnościami w utrzymaniu kodu. Dlatego, zamiast stosować te pętle, lepiej jest korzystać z 'foreach', która jest dedykowana do pracy z tablicami i eliminuje wiele problemów związanych z zarządzaniem indeksami.

Pytanie 20

Jaką formę przybierze data po wykonaniu poniższego kodu PHP?

<?php
echo date('l, dS F Y');
?>
A. Monday, 10th July 17
B. Monday, 10th July 2017
C. 10, Monday July 2017
D. Monday, 10 July 2017
Błędne odpowiedzi wynikają z niepoprawnego zrozumienia specyfikacji formatów używanych w funkcji date() w PHP. Formatowanie daty w PHP wymaga precyzyjnego zastosowania odpowiednich znaków formatujących, które określają sposób wyświetlania poszczególnych elementów daty. Wykorzystanie 'l' daje pełną nazwę dnia tygodnia, co eliminuje wszelkie opcje, które tego nie uwzględniają. 'd' zwraca dwucyfrowy dzień miesiąca, a 'S' dodaje sufiks porządkowy, co jest charakterystyczne dla języka angielskiego. Dlatego też formaty, które nie zawierają sufiksu porządkowego, są niepoprawne. 'F' oznacza pełną nazwę miesiąca, więc każdy format, który nie przedstawia miesiąca w pełni, jest błędny. 'Y' z kolei formatuje rok w pełnej czterocyfrowej formie, co jest standardem dla aplikacji wymagających precyzji i unikania nieporozumień związanych z rokiem dwucyfrowym. Pomyłki często wynikają z mylnego przyjęcia założenia, że PHP automatycznie dostosuje format do oczekiwanego rezultatu, co nie jest prawdą i wymaga świadomego użycia odpowiednich specyfikatorów formatujących.

Pytanie 21

Elementy <header>, <article>, <section>, <footer> są typowe dla języka

A. XHTML 1.1
B. HTML 4.01 Strict
C. HTML 5
D. HTML 4.01 Transitional
Wybór XHTML 1.1, HTML 4.01 Transitional lub HTML 4.01 Strict jako odpowiedzi na pytanie jest błędny, ponieważ te wersje języka HTML nie mają zdefiniowanych znaczników semantycznych, które są charakterystyczne dla HTML 5. XHTML 1.1, będący bardziej rygorystyczną wersją HTML, koncentruje się na zgodności z XML, co utrudnia elastyczność w projektowaniu i wprowadza dodatkowe wymagania dotyczące składni, ale nie oferuje nowych znaczników semantycznych. HTML 4.01 Transitional to wersja, która umożliwia stosowanie zarówno nowych, jak i starych technik HTML, jednak nie zawiera semantycznych elementów, które zostały wprowadzone w HTML 5. Z kolei HTML 4.01 Strict wprowadza ścisłe zasady dotyczące struktury dokumentu, ale również nie obejmuje nowych znaczników semantycznych. Istotnym błędem myślowym jest przekonanie, że wcześniejsze wersje HTML, które koncentrują się na zgodności z przeglądarkami, mogą dostarczyć takiej samej funkcjonalności jak HTML 5. Znaczniki semantyczne, takie jak <header>, <article>, <section> i <footer>, są kluczowe dla nowoczesnego podejścia do tworzenia stron internetowych, które koncentrują się na dostępności, SEO oraz lepszej organizacji treści. Wybierając nieodpowiednią wersję HTML, można nie tylko utracić na semantyce, ale również narazić projekt na problemy z przyszłą kompatybilnością i utrzymaniem.

Pytanie 22

Wykonanie zapytania SQL spowoduje skasowanie

DELETE FROM mieszkania WHERE status = 1;
A. elementów o nazwie status z tabeli mieszkania
B. rekordów, w których wartość pola status jest równa 1, z tabeli mieszkania
C. tabeli mieszkania znajdującej się w bazie danych
D. tabel, w których wartość pola status wynosi 1, z bazy danych mieszkania
Wskazanie, że kwerenda SQL usunie tabele, pola lub całą tabelę, jest niepoprawne i opiera się na nieporozumieniach dotyczących struktury zapytań SQL. Składnia SQL rozróżnia operacje na poziomie tabel, kolumn i rekordów. W przypadku zapytania DELETE, operacja dotyczy zawsze rekordów, które spełniają określony warunek, a nie struktur tabeli ani kolumn. Usunięcie tabeli wymagałoby użycia zapytania DROP TABLE, natomiast usunięcie kolumny to operacja ALTER TABLE, a następnie DROP COLUMN. Warto zauważyć, że nie można usunąć pola (kolumny) przy pomocy zapytania DELETE, ponieważ to zapytanie nie działa na poziomie strukturalnym bazy danych, a jedynie na danych. W procesie uczenia się SQL, ważne jest, aby zrozumieć, że każdy typ zapytania ma swoje specyficzne zastosowanie i niepoprawne zrozumienie ich funkcji może prowadzić do poważnych pomyłek. Dlatego kluczowe jest, aby przed przystąpieniem do edycji danych w bazie, zapoznać się z dokumentacją oraz najlepszymi praktykami zarządzania danymi, co pozwala uniknąć niepożądanych skutków.

Pytanie 23

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

A. liczby wierszy, które zwraca kwerenda
B. ilości znaków w rekordach zwróconych przez kwerendę
C. minimalnej wartości kolumny, która jest wynikiem kwerendy
D. średniej wartości różnych pól w rekordu zwróconego przez zapytanie
Wszystkie trzy pozostałe odpowiedzi nie są właściwe w kontekście funkcji agregującej MIN. Funkcja ta nie ma na celu zliczania liczby wierszy zwróconych przez kwerendę; zamiast tego służy do obliczania minimalnej wartości w danej kolumnie. Zliczanie wierszy to zadanie dla funkcji COUNT, która zwraca liczbę rekordów spełniających określone kryteria. Kolejnym błędnym stwierdzeniem jest, że funkcja MIN może obliczać długość znaków w zwróconych rekordach. Długość znaków to kwestia związana z funkcjami takimi jak LEN w SQL, które mierzą długość ciągów znakowych, jednak nie mają one związku z funkcją agregującą MIN. Ostatnia z błędnych odpowiedzi, dotycząca obliczania średniej wartości różnych pól rekordu, również nie jest zgodna z definicją funkcji MIN. Średnia jest obliczana przy użyciu funkcji AVG, która sumuje wartości w danej kolumnie i dzieli je przez liczbę tych wartości. W związku z tym, funkcja MIN jest jedynie odpowiedzialna za wydobycie najniższej wartości z zestawu danych, co jest kluczowe w wielu analizach, ale nie obejmuje ona żadnych z wymienionych w odpowiedziach zadań.

Pytanie 24

Aby uruchomić skrypt JavaScript, potrzebne jest oprogramowanie

A. serwer MySQL
B. serwer WWW
C. przeglądarka internetowa
D. debugger JavaScript
Zarówno serwer WWW, serwer MySQL, jak i debugger JavaScript nie są niezbędne do uruchomienia skryptu JavaScript w kontekście przeglądarki internetowej. Serwery WWW służą do hostowania stron internetowych i obsługi zapytań HTTP, jednak nie są one konieczne do uruchamiania lokalnych skryptów JavaScript. Można uruchamiać skrypty bezpośrednio w przeglądarce, co czyni serwer WWW zbędnym w tym kontekście. Z kolei serwer MySQL jest systemem zarządzania bazami danych, który nie ma nic wspólnego z interpretacją skryptów JavaScript; jego rola polega na przechowywaniu i zarządzaniu danymi, a nie na ich wykonaniu. Debugger JavaScript, mimo że jest przydatnym narzędziem dla programistów, nie jest wymagany do podstawowego uruchamiania skryptów. Debugger pomaga w analizie i naprawie błędów w kodzie, ale nie jest niezbędny do samego wykonania skryptu. W związku z tym, żadne z wymienionych narzędzi nie jest konieczne do działania podstawowego skryptu JavaScript w przeglądarkach, co podkreśla, że kluczowym elementem jest sama przeglądarka, która umożliwia interpretację i wykonanie kodu.

Pytanie 25

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

A. UPDATE podzespoly.producent='TOSHIBA' SET URL = 'toshiba.pl';
B. UPDATE podzespoly SET URL = 'toshiba.pl';
C. UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';
D. UPDATE producent='TOSHIBA' SET URL = 'toshiba.pl';
Wszystkie odpowiedzi, które nie zawierają poprawnej składni SQL, prowadzą do błędów w wykonywaniu aktualizacji. Przykładowo, pierwsze podejście do aktualizacji polega na usunięciu klauzuli WHERE, co skutkuje zaktualizowaniem wartości URL dla wszystkich rekordów w tabeli, a nie tylko dla tych, które dotyczą producenta 'TOSHIBA'. Taki błąd może prowadzić do masowej utraty danych, co jest niedopuszczalne w zarządzaniu bazami danych. W drugiej niepoprawnej odpowiedzi następuje zmiana w logicznym układzie zapytania, co prowadzi do błędu składniowego. Nie możemy zacząć od przypisania wartości do pola producent, a następnie ustawić URL; składnia aktualizacji wymaga innego porządku. Trzecia odpowiedź również jest niepoprawna, ponieważ sugeruje użycie kropki w odniesieniu do pola producent, co jest sprzeczne z konwencjami SQL. W SQL nie stosuje się kropki do oddzielania pól i tabeli w kontekście aktualizacji. Takie błędy składniowe mogą prowadzić do tego, że zapytanie nie zostanie wykonane, a użytkownik nie osiągnie zamierzonego efektu aktualizacji. Użycie niepoprawnej składni w SQL nie tylko ogranicza funkcjonalność, ale może również generować poważne problemy w zarządzaniu danymi.

Pytanie 26

Wykonano następującą kwerendę na tabeli Pracownicy:

SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;

Na tabeli Pracownicy, której wiersze zostały pokazane na obrazie, wykonano przedstawioną kwerendę SELECT. Które dane zostaną wybrane?

idimienazwiskostanowisko
1AnnaKowalska1
2MonikaNowak2
3EwelinaNowakowska2
4AnnaPrzybylska3
5MariaKowal3
6EwaNowacka4
A. Monika, Ewelina, Maria.
B. Anna, Maria, Ewa.
C. Tylko Maria.
D. Tylko Anna.
Gratulacje, udzielona odpowiedź jest prawidłowa! Wykonana kwerenda SQL 'SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;' zwraca imiona pracowników, którzy albo mają nazwisko 'Kowal', albo zajmują stanowisko o numerze większym niż 2. W kontekście przedstawionej tabeli pracowników, taka kwerenda zwróci nam poprawną odpowiedź 'Anna, Maria, Ewa'. To dlatego, że Anna pracuje na stanowisku 3, co jest większe niż 2, Maria ma nazwisko 'Kowal', a Ewa pracuje na stanowisku 4, które jest również większe niż 2. SQL jako język zapytań pozwala na efektywne zarządzanie danymi, niezależnie od skomplikowania zapytania. W praktyce, gdy mamy do czynienia z dużym zbiorem danych, takie zapytania pomagają w szybkim filtrowaniu i dostępie do potrzebnych informacji. Dobrym standardem jest wymyślanie i testowanie zapytań SQL w celu zrozumienia, jakie dane zostaną zwrócone, zanim zapytanie zostanie użyte w prawdziwej aplikacji lub systemie.

Pytanie 27

Aby usunąć zduplikowane wiersze z wyniku zapytania, trzeba zastosować klauzulę

A. DISTINCT
B. LIMIT
C. UNIQUE
D. ORDER BY
Klauzula DISTINCT w SQL jest naprawdę przydatna, jeśli chcemy pozbyć się dublujących się wierszy w naszych wynikach. Wyobraź sobie, że masz tabelę 'Klienci' z kolumną 'Miasto'. Jak użyjesz zapytania SELECT DISTINCT Miasto FROM Klienci, to dostaniesz listę wszystkich miast, w których są klienci, bez powtarzania tych samych miejsc. To bardzo pomaga, gdy staramy się uporządkować dane i skupić się na unikalnych wartościach. Ale pamiętaj, żeby używać DISTINCT z rozwagą, bo może spowolnić nasze zapytania, zwłaszcza gdy mamy do czynienia z dużą ilością danych. Dobrze jest stosować ją tam, gdzie naprawdę jest potrzebna, według zasad optymalizacji zapytań w SQL.

Pytanie 28

Jakie polecenie jest poprawne w kontekście walidacji HTML5?

A. <img src = "mojPiesek.jpg" alt = "pies">
B. <img src = mojPiesek.jpg alt = pies>
C. <img src = "mojPiesek.jpg" >
D. <img src = mojPiesek.jpg" alt = "pies>
Odpowiedź <img src = "mojPiesek.jpg" alt = "pies"> jest poprawna zgodnie z zasadami walidacji HTML5. W tej konstrukcji atrybut 'src' jest prawidłowo sformatowany, z odpowiednimi cudzysłowami otaczającymi wartość, co jest wymagane przez standardy HTML. Dodatkowo atrybut 'alt' również jest poprawnie użyty, co jest kluczowe z perspektywy dostępności. Atrybut 'alt' zapewnia tekst alternatywny, który jest istotny dla osób korzystających z czytników ekranu oraz w sytuacjach, gdy obrazek nie może zostać załadowany. Odpowiednia walidacja kodu HTML jest nie tylko wymagana dla poprawnego działania strony, ale także wpływa na SEO i ogólną użyteczność witryny. Przykład ten pokazuje, jak ważne jest przestrzeganie standardów, aby zapewnić lepsze doświadczenia użytkowników oraz uniwersalność strony internetowej. W praktyce, stosowanie właściwych atrybutów i ich wartości powinno być zawsze brane pod uwagę podczas tworzenia treści webowych.

Pytanie 29

Z tabeli mieszkancy trzeba wydobyć unikalne nazwy miast, w tym celu należy użyć wyrażenia SQL zawierającego klauzulę

A. CHECK
B. UNIQUE
C. DISTINCT
D. HAVING
Odpowiedzi takie jak 'UNIQUE', 'CHECK' i 'HAVING' są błędne, ponieważ nie pełnią one funkcji eliminacji duplikatów w kontekście wyboru unikalnych wartości. 'UNIQUE' jest klauzulą, która służy do definiowania ograniczeń w tabelach, gwarantując, że wartości w danej kolumnie są unikalne w kontekście wierszy w tabeli. Jest to przydatne przy projektowaniu schematów baz danych, ale nie jest stosowane w zapytaniach do selekcji danych. 'CHECK' służy do walidacji danych wprowadzanych do tabeli, zapewniając, że spełniają one określone warunki, co jest istotne przy definiowaniu reguł dotyczących wartości, jakie mogą być wprowadzane. Z kolei 'HAVING' jest używane w kontekście grupowania danych, w połączeniu z klauzulą 'GROUP BY', aby filtrować grupy w oparciu o warunki, co jest zupełnie inną operacją niż eliminacja duplikatów. Typowym błędem jest mylenie koncepcji związanych z grupowaniem i selekcją unikalnych wartości. W praktyce, korzystając z 'HAVING', nie uzyskamy unikalnych wartości z kolumny bez wcześniejszego użycia 'GROUP BY', co sprawia, że jest to narzędzie bardziej skomplikowane i mniej efektywne w kontekście prostego wyciągania unikalnych danych. Aby właściwie zrozumieć zasady dotyczące zapytań SQL, ważne jest, aby rozróżniać te różne klauzule oraz ich zastosowania, co pozwoli na bardziej świadome i efektywne korzystanie z języka SQL.

Pytanie 30

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

A. Barwienie.
B. Progowanie.
C. Krzywe.
D. Inwersja.
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 31

Celem testów związanych ze skalowalnością oprogramowania jest ocena, czy aplikacja

A. jest chroniona przed nieautoryzowanymi operacjami, np. dzieleniem przez zero
B. jest właściwie udokumentowana
C. posiada odpowiednią funkcjonalność
D. potrafi funkcjonować przy założonym i wyższym obciążeniu
Twoja odpowiedź o funkcjonalności aplikacji i unikaniu błędów, jak dzielenie przez zero, nie do końca odnosi się do testów skalowalności. Właściwie, kluczowym punktem w testach skalowalności jest to, jak system radzi sobie z większym obciążeniem. Funkcjonalność trochę dotyczy tego, co aplikacja umie, ale to nie to samo co skalowanie. Posiadanie dobrej dokumentacji jest istotne, ale nie wpływa na to, jak aplikacja reaguje na rosnące obciążenie. Owszem, zabezpieczenia są ważnym elementem, żeby system był stabilny, ale to właśnie nie ma wiele wspólnego z zagadnieniem skalowalności. Myślę, że część osób myli różne aspekty, takie jak funkcjonalność z wydajnością i zabezpieczeniami. Ważne, żeby umieć je oddzielać i wiedzieć, jak każdy z tych elementów wpływa na ogólną jakość aplikacji w obliczu zmieniającego się zapotrzebowania.

Pytanie 32

Który modyfikator jest związany z opisem podanym poniżej?

Metoda oraz zmienna jest dostępna wyłącznie dla innych metod własnej klasy.
A. protected
B. static
C. public
D. private
Modyfikator static to pojęcie związane nie z ograniczaniem dostępu, a z przypisywaniem pola lub metody do samej klasy, a nie instancji obiektu. Użycie static nie wpływa na kontrolę dostępu do metod lub zmiennych z innych klas, jest raczej związane z zarządzaniem pamięcią i odwołaniami. Public z kolei oznacza brak ograniczeń w dostępie, umożliwiając użycie metod i zmiennych przez inne klasy, co jest przeciwieństwem private. Public sprawia, że elementy klasy są dostępne dla wszystkich, co może prowadzić do niezamierzonych zmian i trudności w utrzymaniu kodu szczególnie w dużych systemach. Protected to modyfikator pozwalający na dostęp do elementów klasy jedynie klasom dziedziczącym i znajdującym się w tym samym pakiecie (w Java). Jest przydatny w dziedziczeniu, ale nie ogranicza dostępu tak jak private. Typowym błędem jest mylenie static i public z mechanizmami ochrony danych, podczas gdy odnoszą się one do innych aspektów zarządzania klasami. Static dotyczy współdzielenia danych w obrębie klasy, a public szerokiego dostępu. Wybór odpowiedniego modyfikatora dostępu jak private jest kluczowy dla implementacji enkapsulacji, co jest fundamentem bezpieczeństwa i elastyczności w programowaniu obiektowym. Static i public to koncepcje o różnym zastosowaniu, niekoniecznie związane z ochroną i ukrywaniem danych przed dostępem zewnętrznym.

Pytanie 33

Podczas tworzenia formularza konieczne jest dodanie kontrolki, która odnosi się do kontrolki w innym formularzu. Jakie działania w bazie danych Access są w tym przypadku możliwe?

A. możliwe poprzez określenie ścieżki do kontrolki w atrybucie „Źródło kontrolki”.
B. niemożliwe we wszystkich trybach z wyjątkiem trybu projektowania.
C. niemożliwe.
D. możliwe o ile dotyczą danych liczbowych.
No więc, dobrze zrozumiałeś, że można ustawić kontrolkę, żeby odnosiła się do innej w innym formularzu przez wybór odpowiedniej ścieżki w właściwości „Źródło kontrolki”. W Accessie to naprawdę działa! Dzięki temu masz możliwość dynamicznego wczytywania danych do formularzy, co jest mega przydatne. Wyobraź sobie, że masz formularz A, który korzysta z danych z formularza B – po prostu wpisujesz odpowiednią ścieżkę i wszystko działa. To w sumie jest zgodne z tym, co się robi w projektowaniu baz danych, gdzie ważne jest, żeby unikać zbędnego powielania danych. Dzięki temu, jeśli zaktualizujesz coś w jednym miejscu, to automatycznie odbija się to w innym, co naprawdę ułatwia życie. W praktyce, takie podejście sprawia, że praca z dużymi aplikacjami staje się znacznie prostsza i bardziej efektywna.

Pytanie 34

Jakie rozwiązanie należy zastosować w przechowywaniu danych, aby przyspieszyć wykonywanie zapytań w bazie danych?

A. Klucze podstawowe.
B. Domyślne wartości.
C. Indeksy.
D. Zasady.
Reguły, wartości domyślne oraz klucze podstawowe nie mają bezpośredniego wpływu na przyspieszenie wykonywania zapytań w bazach danych. Reguły, chociaż mogą być użyteczne do definiowania logiki i ograniczeń w danych, nie przyspieszają procesu wyszukiwania informacji. Ich główną funkcją jest kontrola danych i automatyzacja pewnych działań w momencie wprowadzania lub aktualizacji danych. Vartości domyślne są z kolei używane do przypisywania określonych wartości do kolumn, gdy dane nie są podawane, jednak nie wpływają na wydajność zapytań. Klucze podstawowe służą do unikalnej identyfikacji rekordów w tabeli i zapewnienia integralności danych, ale nie przyspieszają one procesu wyszukiwania. W rzeczywistości klucze podstawowe są często indeksowane automatycznie przez DBMS, co może poprawić wydajność, ale same w sobie nie są rozwiązaniem optymalizacyjnym, jak indeksy. Dlatego, aby nasze zapytania były bardziej wydajne, kluczowe jest zastosowanie odpowiednich indeksów, a nie poleganie na regułach, wartościach domyślnych czy kluczach podstawowych.

Pytanie 35

Które rozszerzenie pliku jest związane z formatem wideo?

A. *.jpg
B. *.png
C. *.avi
D. *.bmp
Poprawna odpowiedź to *.avi, ponieważ jest to klasyczne rozszerzenie pliku wideo opartego na formacie AVI (Audio Video Interleave), opracowanym przez firmę Microsoft. Ten format pozwala na przechowywanie zarówno strumienia obrazu, jak i dźwięku w jednym kontenerze, co jest typowe dla plików wideo. W praktyce oznacza to, że plik .avi może zawierać w sobie różne kodeki wideo (np. DivX, Xvid) i różne kodeki audio. Z punktu widzenia użytkownika – klikasz plik .avi i od razu odtwarzacz multimedialny uruchamia film, a nie pojedynczy obrazek. W branży multimedialnej przyjęło się, że rozszerzenie musi jasno sugerować typ zawartości. Dobre praktyki mówią, żeby nie mieszać formatów graficznych z wideo, bo potem powstaje chaos w projektach, katalogach i na serwerach. Jeżeli tworzysz stronę WWW i chcesz osadzić film, stosujesz formaty wideo, np. .mp4, .webm, .avi (choć dzisiaj na web .avi raczej się nie używa, ale nadal możesz się z nim spotkać w starszych materiałach). Natomiast .jpg, .png, .bmp to formaty grafiki statycznej. One nie mają strumienia czasu, klatek na sekundę, ścieżki audio itd. Moim zdaniem warto też pamiętać, że AVI jest formatem kontenerowym, a nie samym kodekiem. To znaczy, że jakość, rozmiar i kompatybilność pliku zależą nie tylko od .avi jako rozszerzenia, ale głównie od tego, jakim kodekiem zakodowano obraz i dźwięk. W praktyce, przy pracy z multimediami, zawsze zwraca się uwagę na trzy rzeczy: rozszerzenie (typ kontenera), kodek (np. H.264, MPEG-4) oraz docelową platformę (przeglądarka, odtwarzacz, telewizor Smart TV). W projektach webowych i e-learningowych standardem jest raczej .mp4 (H.264/AAC), ale znajomość .avi nadal jest potrzebna, choćby po to, żeby wiedzieć, jak konwertować stare materiały wideo do nowszych, bardziej wydajnych formatów.

Pytanie 36

Używając polecenia ALTER TABLE, co można zrobić?

A. zmiana wartości w rekordach tabeli
B. usunięcie tabeli
C. stworznie tabeli
D. zmiana struktury tabeli
W odpowiedziach pojawia się wiele nieprawidłowych koncepcji dotyczących funkcji polecenia ALTER TABLE w SQL. Usuwanie tabeli nie jest zadaniem ALTER TABLE - aby usunąć tabelę, używamy polecenia DROP TABLE. To polecenie całkowicie eliminuje tabelę z bazy danych, co jest zupełnie inną operacją niż modyfikacja już istniejącej struktury. Tworzenie tabeli także nie należy do funkcji ALTER TABLE; do tego celu używamy polecenia CREATE TABLE. To polecenie jest podstawowym narzędziem w procesie projektowania bazy danych, pozwalającym na definiowanie nowych struktur. Kolejną niepoprawną odpowiedzią było sugerowanie, że ALTER TABLE może modyfikować wartości zapisane w rekordach tabeli. Zmiana wartości w rekordach wymaga użycia polecenia UPDATE, które jest zaprojektowane do aktualizacji danych w tabeli, pozostawiając strukturę tabeli nietkniętą. Typowym błędem myślowym jest mylenie operacji strukturalnych z operacjami na danych. W praktyce, zrozumienie różnicy między tymi operacjami jest kluczowe dla efektywnego zarządzania bazami danych. Znalezienie odpowiednich poleceń i technik do realizacji zadań związanych z bazami danych jest fundamentalne dla każdego administratora bazy danych lub programisty, a właściwe korzystanie z ALTER TABLE to jedna z wielu umiejętności, które trzeba opanować.

Pytanie 37

Formatem grafiki wektorowej jest

A. GIF
B. SVG
C. PNG
D. JPG
W tym pytaniu łatwo się pomylić, bo wszystkie podane formaty są popularne w internecie, ale tylko jeden z nich jest wektorowy. Kluczowa różnica to sposób przechowywania obrazu. Grafika rastrowa zapisuje informację o każdym pikselu, a wektorowa opisuje kształty za pomocą równań matematycznych. To fundamentalne, bo wpływa na skalowanie, jakość i zastosowanie w praktyce. Formaty JPG, GIF i PNG to typowe formaty grafiki rastrowej. JPG (JPEG) jest używany głównie do zdjęć i skomplikowanych obrazów z wieloma kolorami oraz przejściami tonalnymi. Stosuje kompresję stratną, więc zmniejsza rozmiar pliku kosztem jakości. Przy powiększaniu obraz JPG zaczyna się „pikselizować”, czyli widać pojedyncze piksele i artefakty kompresji. To kompletnie inny świat niż grafika wektorowa. GIF to również format rastrowy, dosyć stary, obsługujący ograniczoną liczbę kolorów (do 256). Kojarzy się głównie z prostymi animacjami w internecie, ale nadal operuje na siatce pikseli. Nie nadaje się do skalowalnych ikon czy logotypów, bo po powiększeniu traci ostrość. PNG z kolei jest rastrowym formatem bezstratnym, świetnym do zrzutów ekranu, interfejsów, grafiki z przezroczystością. Mimo że jakość PNG jest bardzo dobra, obraz dalej pozostaje nieprzystosowany do dowolnego skalowania bez utraty ostrości. Typowym błędem jest myślenie, że skoro GIF czy PNG są używane w interfejsach, ikonach i elementach stron, to muszą być „wektorowe”. W praktyce to po prostu dobrze wyglądające bitmapy w określonej rozdzielczości. Kiedy zwiększymy rozmiar, widać piksele. Grafika wektorowa, jak SVG, zachowuje ostrość niezależnie od skali. Dlatego przy pytaniach o formaty wektorowe warto zawsze z tyłu głowy mieć tę prostą zasadę: JPG, GIF, PNG – raster; SVG – wektor (w kontekście WWW). Zrozumienie tej różnicy bardzo pomaga później przy projektowaniu layoutów, doborze formatów i optymalizacji grafiki na stronach.

Pytanie 38

Dostępna jest tabela programisci, która zawiera pola: id, nick, ilosc_kodu, ocena. Pole ilosc_kodu wskazuje liczbę linii kodu stworzonych przez programistę w danym miesiącu. W celu obliczenia łącznej liczby linii kodu napisanych przez wszystkich programistów, należy zastosować poniższe polecenie

A. SELECT COUNT(programisci) FROM ilosc_kodu;
B. SELECT MAX(ilosc_kodu) FROM programisci;
C. SELECT SUM(ocena) FROM ilosc_kodu;
D. SELECT SUM(ilosc_kodu) FROM programisci;
Pierwsza z niepoprawnych odpowiedzi wykorzystuje funkcję SUM() w połączeniu z kolumną 'ocena', co jest błędne, ponieważ pole 'ocena' nie jest związane z liczbą linii kodu napisanych przez programistów. Ocena jest zazwyczaj stosowana do oceny jakości pracy, a nie do mierzenia ilości kodu. Kolejna odpowiedź, która sugeruje użycie COUNT() z kolumną 'ilosc_kodu', jest również niewłaściwa, ponieważ funkcja COUNT() zlicza wiersze, a nie sumuje wartości w kolumnie. Zatem, użycie COUNT() zwróciłoby liczbę programistów, a nie całkowitą liczbę linii kodu. Ostatnia z odpowiedzi wywołuje funkcję MAX() w relacji do kolumny 'ilosc_kodu', co również jest błędne w kontekście pytania. Funkcja MAX() zwraca najwyższą wartość w danej kolumnie, a nie sumę wszystkich wartości. Dlatego te odpowiedzi nie odpowiadają na pytanie o sumę linii kodu, a ich stosowanie prowadzi do błędnych wyników oraz może wprowadzać w błąd podczas analizy danych.

Pytanie 39

Która metoda JavaScript służy do dodawania nowego elementu na końcu tablicy?

A. shift()
B. pop()
C. push()
D. unshift()
Metoda <code>pop()</code> jest często mylona z <code>push()</code>, ale jej działanie jest odwrotne. <code>pop()</code> usuwa ostatni element z tablicy i zwraca go, co oznacza, że nie dodaje żadnych nowych elementów. Jest to użyteczne, gdy chcesz manipulować danymi poprzez usuwanie, ale nie w kontekście dodawania nowych elementów. <code>shift()</code> z kolei usuwa pierwszy element z tablicy, a nie ostatni, i przesuwa wszystkie pozostałe elementy o jedno miejsce do przodu. Jest to przydatne, gdy musisz przetwarzać elementy tablicy w kolejności FIFO, ale nie ma zastosowania przy dodawaniu nowych elementów. Natomiast <code>unshift()</code> dodaje nowe elementy na początku tablicy, co zmienia indeksy wszystkich istniejących elementów, przesuwając je w prawo. Choć może być użyteczne w niektórych scenariuszach, nie jest to metoda dodawania elementów na końcu tablicy. Wszystkie wymienione metody mają swoje specyficzne zastosowania, ale tylko <code>push()</code> jest właściwym wyborem, gdy chcemy dodać elementy na końcu tablicy. Typowe błędy myślowe obejmują mylenie kierunków zmian w tablicach i wybór niewłaściwej metody manipulacji w zależności od wymagań aplikacji.

Pytanie 40

Znacznik <pre> </pre> służy do wyświetlania

A. znaku wielokropkowego
B. znaku skreślenia
C. treści czcionką w języku polskim
D. treści czcionką o stałej szerokości
Znacznik <pre> </pre> jest używany do wyświetlania treści w formacie, który zachowuje oryginalny układ oraz czcionkę o stałej szerokości. Umożliwia on prezentację tekstu w takiej formie, w jakiej został wprowadzony, co jest szczególnie przydatne w kontekście kodu źródłowego, danych tabelarycznych lub innych elementów, gdzie zachowanie spacji, łamań linii i innych formatów jest istotne. Przykładem zastosowania znacznika <pre> może być wyświetlanie fragmentów kodu w dokumentacji HTML lub na stronach internetowych, gdzie istotne jest, aby użytkownik mógł widzieć dokładnie, jak kod wygląda, bez modyfikacji przestrzeni lub układu, co jest często problematyczne w przypadku standardowego tekstu HTML. Używanie tego znacznika jest zgodne z dobrymi praktykami w tworzeniu przejrzystych i czytelnych interfejsów, zwłaszcza w kontekście tworzenia stron internetowych o charakterze technicznym.