Wyniki egzaminu

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

Egzamin niezdany

Wynik: 12/40 punktów (30,0%)

Wymagane minimum: 20 punktów (50%)

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

Jak wygląda instrukcja przypisania wartości do elementu tablicy w języku JavaScript względem tablicy? ```Tablica['technik'] = 'informatyk';```

A. numerycznej
B. asocjacyjnej
C. wielowymiarowej
D. statycznej
W języku JavaScript tablice mogą być traktowane jako obiekty, a więc wykazują cechy struktur asocjacyjnych. Przypisując wartość do tablicy za pomocą notacji z nawiasami kwadratowymi, jak w przykładzie 'Tablica[\'technik\'] = \'informatyk\';', tworzymy nowy element o kluczu 'technik', co jest charakterystyczne dla obiektów asocjacyjnych. W JavaScript tablice są dynamiczne, co oznacza, że możemy dodawać elementy w dowolny sposób, a ich rozmiar nie jest ustalony z góry. Standard ECMAScript definiuje tablice jako obiekty, gdzie klucze są indeksami liczb całkowitych, ale można również używać stringów jako kluczy, co czyni tablice asocjacyjnymi. Przykładem może być obiekt, który przechowuje różne informacje, a elementy są dostępne zarówno za pomocą indeksów numerycznych, jak i stringów. Warto zaznaczyć, że użycie tablicy jako obiektu asocjacyjnego może być praktyczne w wielu zastosowaniach, np. w przechowywaniu konfiguracji czy zestawów danych. Dobrą praktyką jest jednak ograniczać użycie takich technik dla przejrzystości kodu."

Pytanie 2

Która z funkcji zdefiniowanych w języku PHP zwraca jako wynik połowę kwadratu wartości podanej jako argument?

A. function licz($a) { return $a*$a/2; }
B. function licz($a) { echo $a*$a/2; }
C. function licz($a) { return $a/2; }
D. function licz($a) { echo $a/2; }
Dobra robota, jeśli chodzi o tę funkcję! Właściwa odpowiedź to taka, która zwraca połowę kwadratu podanej wartości. W przykładzie 'function licz($a) { return $a*$a/2; }' widać, że użycie 'return' jest bardzo ważne, bo to dzięki niemu wynik trafia tam, gdzie funkcję wywołujemy. Najpierw 'a' jest podnoszone do kwadratu, czyli 'a * a', a potem dzielimy to przez 2. Jak dla 'a' podstawimy 4, to wyjdzie 8, bo połowa z 16 (kwadrat z 4) to właśnie 8. Bardzo dobrze, że zwracasz uwagę na takie szczegóły, bo to naprawdę istotne w programowaniu. Można tę funkcję stosować w różnych sytuacjach, np. w aplikacjach z interfejsem graficznym czy przy analizie jakichś danych, no wiesz, tam, gdzie matematyka wchodzi w grę.

Pytanie 3

W języku JavaScript, funkcja Math.pow() wykorzystuje się do obliczenia

A. wartości przybliżonej liczby
B. pierwiastka kwadratowego liczby
C. potęgi liczby
D. wartości bezwzględnej liczby
Wybierając odpowiedzi, które nie są zgodne z funkcją Math.pow(), można popełnić pewne typowe błędy myślowe. Odpowiedź dotycząca wartości bezwzględnej liczby nie ma związku z działania funkcji Math.pow(). Funkcja ta nie jest zaprojektowana do obliczania wartości bezwzględnej, co jest zadaniem funkcji Math.abs(). Wartość bezwzględna to odległość liczby od zera na osi liczbowej, a obliczenia potęgowania nie mają tutaj zastosowania. Z kolei pierwiastek kwadratowy liczy się zupełnie inaczej. Aby obliczyć pierwiastek kwadratowy z liczby, należy użyć funkcji Math.sqrt(), która zwraca liczbę, która podniesiona do kwadratu daje oryginalną liczbę. Zastosowanie Math.pow() do wyznaczenia pierwiastka kwadratowego, na przykład Math.pow(9, 0.5), daje prawidłowy wynik, ale jest mniej klarowne i mniej wydajne niż użycie dedykowanej funkcji. Ostatnia opcja, dotycząca wartości przybliżonej liczby, również jest błędna, ponieważ Math.pow() nie służy do przybliżania wartości, a jedynie do podnoszenia jej do odpowiedniej potęgi. Ważne jest, aby zrozumieć, jakie funkcje są dostępne w JavaScript i jak mają być stosowane w odpowiednich kontekstach, aby uniknąć nieporozumień oraz poprawić czytelność i efektywność kodu w projektach programistycznych.

Pytanie 4

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 5

Która z poniższych zasad NIE WPŁYNIE pozytywnie na poprawę czytelności kodu?

A. Każda linia kodu powinna zawierać tylko jedną komendę
B. Warto dodawać komentarze w bardziej skomplikowanych fragmentach kodu
C. Kod powinien być tworzony bez wcięć oraz zbędnych enterów
D. Nazwy zmiennych powinny odzwierciedlać ich funkcję
Wszystkie inne odpowiedzi wskazują na praktyki, które znacząco przyczyniają się do poprawy czytelności kodu. Nazwy zmiennych odzwierciedlające ich zadanie pozwalają innym programistom szybko zrozumieć, co dany fragment kodu robi, co jest nieocenione w procesie przeglądu kodu oraz jego późniejszej konserwacji. Komentarze umieszczane w trudniejszych częściach kodu mają na celu wyjaśnienie logiki oraz intencji programisty, co ułatwia późniejsze zrozumienie i modyfikowanie kodu. Kiedy programiści wracają do kodu po dłuższym czasie, dobrze opisane fragmenty mogą znacząco przyspieszyć proces przypomnienia sobie działania danego fragmentu. Wreszcie, zasada dotycząca umieszczania jednej instrukcji na linii promuje klarowność i porządek, co minimalizuje ryzyko błędów oraz ułatwia debugowanie. Ignorowanie tych zasad prowadzi do kodu, który jest nieczytelny, trudny do zrozumienia i modyfikacji, co jest sprzeczne z najlepszymi praktykami programowania, które kładą nacisk na przejrzystość i utrzymywalność kodu. Programiści powinni dążyć do stosowania tych zasad, aby ich kod był bardziej zrozumiały i łatwiejszy do utrzymania.

Pytanie 6

Jakie czynniki wpływają na wysokość dźwięku?

A. intensywność wzbudzenia drgań
B. metoda wzbudzania drgań
C. częstotliwość drgań fali akustycznej
D. czas oscylacji źródła dźwięku
To prawda, że czas drgania źródła dźwięku i sposoby, jakimi te drgania są wzbudzane, mają swoje znaczenie, ale nie wpływają one na wysokość dźwięku tak, jak to robi częstotliwość. Czas drgania to okres jednego cyklu drgania, a jego odwrotność to częstotliwość. Można by pomyśleć, że dłuższy czas drgania oznacza niższy dźwięk, ale to nie tak działa. W rzeczywistości to częstotliwość jest wyznacznikiem wysokości dźwięku. W muzyce, różne techniki, takie jak atak struny czy wibrato, mogą zmieniać brzmienie, ale nie mają wpływu na podstawową częstotliwość. Można też mówić o sile wzbudzenia drgań, co dotyczy amplitudy fali akustycznej, a to z kolei wpływa na głośność, a nie wysokość dźwięku. Często ludzie mylą głośność z wysokością, co może prowadzić do różnych nieporozumień. Na przykład, niektóre instrumenty mogą grać zarówno głośno, jak i cicho, ale na tej samej wysokości, co pokazuje, że te dwa aspekty dźwięku to zupełnie różne sprawy. Zrozumienie tych różnic to podstawa dla każdego, kto działa w akustyce czy inżynierii dźwięku.

Pytanie 7

Upload danych to termin, który oznacza

A. trasę transferu pliku.
B. opóźnienie w transmisji pliku.
C. przesyłanie plików na serwer.
D. pobieranie plików z serwera.
Termin „upload danych” bywa mylony z paroma innymi pojęciami sieciowymi, dlatego łatwo się tutaj pomylić, jeśli patrzy się tylko na kierunek ruchu danych albo ogólne skojarzenia z transferem plików. Upload nie opisuje ani trasy transferu, ani opóźnienia, ani pobierania plików, tylko konkretną operację wysyłania danych z urządzenia użytkownika do serwera lub innej usługi w sieci. W modelu klient–serwer to klient inicjuje upload, a serwer dane odbiera i ewentualnie zapisuje. Moim zdaniem częsty błąd polega na tym, że ktoś kojarzy upload z „ruchem w sieci” jako takim i stąd pojawia się pomysł, że chodzi o trasę transferu pliku. Trasa, czyli droga pakietów przez routery, protokoły routingu, adresację IP itp., jest domeną warstw sieciowych i opisują ją inne mechanizmy, nie sama operacja upload. Upload nie interesuje się, jak dokładnie pakiety idą przez Internet, tylko że są wysyłane z punktu A (klient) do punktu B (serwer). Drugie częste nieporozumienie to utożsamianie uploadu z pobieraniem plików z serwera. Tutaj przydaje się proste skojarzenie: download to „ściąganie”, upload to „wysyłanie”. W przeglądarce, gdy klikasz link i plik zapisuje się na dysku, masz download. Gdy wypełniasz formularz i dodajesz załącznik, który trafia na serwer, to jest upload. Te dwie operacje są przeciwne kierunkowo, więc nie da się ich traktować jako tego samego zjawiska. Pojawia się też czasem mylne powiązanie uploadu z opóźnieniem w transmisji, czyli z tzw. pingiem lub latencją. Opóźnienie to czas, jaki upływa od wysłania pakietu do otrzymania odpowiedzi. Jest to parametr jakości łącza, ale nie definiuje rodzaju operacji. Możesz mieć wysokie opóźnienie przy uploadzie, przy downloadzie, przy zwykłym przeglądaniu stron – to osobny aspekt. Upload opisuje kierunek i charakter transferu (wysyłanie danych na serwer), a nie jego parametry czasowe. Typowy błąd myślowy to wrzucanie wszystkich pojęć sieciowych do jednego worka i mieszanie tego, co jest „jak szybko” z tym, co jest „w którą stronę i co dokładnie robimy”. Z punktu widzenia dobrych praktyk w IT warto te pojęcia rozdzielać, bo wpływa to później na poprawną konfigurację serwerów, testowanie aplikacji webowych i diagnozowanie problemów z siecią.

Pytanie 8

W PHP zmienna $_SERVER zawiera między innymi dane o

A. nazwie ciasteczek zapisanych na serwerze oraz powiązanych z nimi danych
B. informacjach z formularza przetwarzanego na serwerze
C. adresie IP serwera oraz nazwie protokołu
D. informacjach związanych z sesjami
Zmienna superglobalna $_SERVER w PHP gromadzi różnorodne informacje dotyczące bieżącego żądania HTTP oraz środowiska serwera. W szczególności przechowuje dane takie jak adres IP klienta, nazwa protokołu (np. HTTP/1.1), a także inne istotne informacje, takie jak metoda żądania (GET, POST) oraz nagłówki HTTP. Znajomość tych danych jest kluczowa w kontekście programowania aplikacji webowych, ponieważ umożliwia dostosowanie odpowiedzi serwera do specyficznych potrzeb klienta. Przykładowo, można wykorzystać $_SERVER['REMOTE_ADDR'], aby uzyskać adres IP odwiedzającego, co może być istotne w kontekście logowania użytkowników lub analizy ruchu. Ponadto, $_SERVER['SERVER_PROTOCOL'] pozwala na identyfikację używanego protokołu, co jest pomocne przy wdrażaniu funkcji zgodnych z określonymi standardami bezpieczeństwa i wydajności. Praktycznym zastosowaniem tych danych jest implementacja systemów uwierzytelniania lub ograniczanie dostępu na podstawie adresów IP, co wpisuje się w dobre praktyki bezpieczeństwa aplikacji webowych.

Pytanie 9

Dana jest tabela uczniowie, do której wpisano rekordy jak na rysunku. Co będzie wynikiem działania przedstawionego zapytania SQL?

SELECT AVG(ocena) FROM uczniowie;

NazwiskoImieocena
KowalskiSebastian4
KaczmarekMarta3
BaryłaZenon4
GotaAnna3
A. Wartość 3.5
B. Suma ocen równa 14
C. Liczba wierszy równa 4
D. Dane 4, 3, 4, 3
Tak, poprawna odpowiedź to 'Wartość 3.5'. W zapytaniu SQL 'SELECT AVG(ocena) FROM uczniowie;' używamy funkcji AVG, żeby obliczyć średnią. W tym przypadku ona bierze oceny z tabeli 'uczniowie' i liczy, ile wynosi średnia. Jak to działa? Suma wszystkich ocen to 14 (3 + 4 + 3 + 4), a mamy cztery oceny, więc dzielimy 14 przez 4 i wychodzi nam 3.5. To jest super przykład, jak można wykorzystać funkcję AVG w SQL, co jest naprawdę przydatne, szczególnie, gdy mamy dużą ilość danych do przeanalizowania. Dobrze jest znać takie funkcje agregujące jak AVG, SUM, MAX czy MIN, bo ułatwiają one analizę danych.

Pytanie 10

Która operacja nie wpłynie na wielkość zajmowanej pamięci przez plik graficzny?

A. Modyfikacja rozdzielczości obrazu
B. Interpolacja
C. Zmiana rozmiaru obrazu z użyciem atrybutów HTML
D. Kompresja
Zmiana rozdzielczości obrazu, interpolacja oraz kompresja to operacje, które w istotny sposób wpływają na rozmiar pliku graficznego, co często jest mylone z ich funkcjami wizualnymi. Zmiana rozdzielczości obrazu to proces, w którym liczba pikseli w obrazie jest modyfikowana, co prowadzi do mniejszej lub większej ilości danych do zapisania w pliku. Na przykład, zmniejszenie rozdzielczości z 300 DPI do 72 DPI znacząco redukuje rozmiar pliku, ponieważ zmniejsza liczbę informacji, które muszą być zapisane. Interpolacja natomiast jest techniką, która służy do obliczania wartości pikseli w nowych rozmiarach obrazu. W tym procesie generowane są nowe piksele, co często skutkuje zwiększeniem rozmiaru pliku, jeśli obraz jest powiększany. Kompresja to kolejny kluczowy element wpływający na rozmiar pliku. Kompresja stratna i bezstratna zmieniają sposób, w jaki dane obrazów są przechowywane, co może znacznie obniżyć wagę pliku. Typowe błędy myślowe związane z tymi operacjami polegają na założeniu, że manipulacje na poziomie wyświetlania nie mają wpływu na rzeczywiste parametry pliku graficznego. Ważne jest, aby zrozumieć, że każda z tych operacji ma swoje zastosowanie i wpływ na jakość oraz rozmiar pliku, co powinno być starannie rozważane podczas pracy z grafiką.

Pytanie 11

Jakie polecenie pozwala na zwiększenie wartości o jeden w polu RokStudiów w tabeli Studenci dla tych studentów, którzy są na roku 1÷4?

A. UPDATE RokStudiow SET RokStudiow++ WHERE RokStudiow < 5
B. UPDATE Studenci SET RokStudiow WHERE RokStudiow < 5
C. UPDATE Studenci SET RokStudiow = RokStudiow+1 WHERE RokStudiow < 5
D. UPDATE Studenci, RokStudiow+1 WHERE RokStudiow < 5
Odpowiedzi, które nie są poprawne, zawierają fundamentalne błędy w składni SQL oraz logice operacji aktualizacji. Na przykład, zapis 'UPDATE Studenci, RokStudiow+1 WHERE RokStudiow < 5;' jest nieprawidłowy, ponieważ użycie przecinka w kontekście aktualizacji jest błędne; w SQL nie można zaktualizować kolumny przez dodawanie wartości bezpośrednio w samej instrukcji UPDATE. Z kolei 'UPDATE Studenci SET RokStudiow WHERE RokStudiow < 5;' pomija kluczowy element, jakim jest przypisanie nowej wartości do kolumny RokStudiow; instrukcja ta nie ma sensu, ponieważ nie określa, co ma być ustawione w RokStudiow. W odniesieniu do 'UPDATE RokStudiow SET RokStudiow++ WHERE RokStudiow < 5;' warto zauważyć, że nie można używać operatorów inkrementacji (takich jak '++') w SQL w taki sposób; SQL nie wspiera operatorów inkrementacji, które są typowe dla języków programowania, takich jak C++ czy Java. Kluczowym błędem myślowym jest także niemożność zrozumienia koncepcji aktualizacji danych w tabeli, co prowadzi do niepoprawnego formułowania zapytań. W efekcie, nieposługiwanie się poprawnymi standardami SQL może prowadzić do nieefektywności i problemów z integralnością danych w bazie.

Pytanie 12

W języku CSS określono formatowanie znacznika h1 według wzoru. Zakładając, że żadne inne formatowanie nie jest dodane do znacznika h1, wskaż sposób formatowania tego znacznika

Ilustracja do pytania
A. A
B. B
C. C
D. D
Formatowanie znacznika h1, określone w podanym kodzie CSS, wprowadza kilka charakterystycznych cech stylistycznych. Przede wszystkim, zastosowanie 'font-style: oblique;' zmienia wygląd tekstu, nadając mu ukośny styl. To oznacza, że tekst będzie wyświetlany w wyraźnie przechylonej formie, co jest często używane do podkreślenia ważnych elementów. Dodatkowo, 'font-variant: small-caps;' odpowiedzialne jest za przekształcenie małych liter w małe kapitałki, co nadaje tekstowi elegancki i formalny wygląd. Taki zabieg jest często wykorzystywany w tytułach lub nagłówkach, aby wyróżnić je wśród pozostałego tekstu. Ostatni element, 'text-align: right;', wyrównuje tekst do prawej krawędzi kontenera, co jest mniej powszechnie stosowane w porównaniu do wyrównania do lewej lub wyśrodkowanego, ale może być użyteczne w specyficznych układach strony. W przypadku, gdyby były dodatkowe style CSS przypisane do tego znacznika, mogłyby one wpłynąć na ostateczny wygląd, jednak w tym przypadku zakładamy, że są to jedyne zastosowane style. Standardy CSS jasno określają, jak różne właściwości mogą być używane do stylizacji elementów HTML, co czyni je niezwykle potężnym narzędziem w tworzeniu estetycznych i funkcjonalnych stron internetowych.

Pytanie 13

Na podstawie przydzielenia wartości do zmiennych w języku PHP można zauważyć, że

$zmienna1 = 15;
$zmienna2 = "15";
$zmienna3 = (string) $zmienna1;
A. wszystkie zmienne mają ten sam typ.
B. zmienna1 i zmienna2 mają ten sam typ.
C. zmienna1 i zmienna3 mają ten sam typ.
D. zmienna2 i zmienna3 mają ten sam typ.
Dobrze widzisz, że $zmienna2 i $zmienna3 mają ten sam typ. Obie przechowują wartości jako stringi, co jest spoko. $zmienna2 to łańcuch z "15", a $zmienna3 to wynik rzutowania $zmienna1 (która jest liczbą całkowitą) na string. W PHP takie rzutowanie to normalna sprawa i nie zmienia wartości, tylko jej format. W praktyce, jeżeli dobrze rozumiesz typy danych, to ułatwia Ci to życie w programowaniu. Różne typy mogą wpływać na to, jak działają operacje i jak dane są przechowywane. Warto więc pamiętać, żeby w kodzie jasno definiować typy zmiennych i używać rzutowania tam, gdzie trzeba, bo to pomaga unikać błędów. Jak się w to wczujesz, to łatwiej będzie Ci ogarniać pamięć i optymalizować kod, zwłaszcza w większych projektach.

Pytanie 14

Jak nazywa się komponent oznaczony znakiem zapytania w architekturze platformy .NET, który pozwala na tworzenie własnych aplikacji za pomocą frameworków oraz przekształcanie skompilowanego kodu pośredniego na kod maszynowy procesora zainstalowanego w systemie?

Ilustracja do pytania
A. Wspólne środowisko uruchomieniowe (CLR)
B. Biblioteka klas bazowych (BCL)
C. Wspólne środowisko programistyczne (CLP)
D. Infrastruktura językowa (CLI)
Często ludzie mylą CLI, czyli infrastrukturę językową, z CLR, ale to jednak różne rzeczy. CLI to specyfikacja, która mówi, jak języki mają współpracować w ramach .NET, a nie zajmuje się wykonywaniem kodu, co jest robotą CLR. A CLP, czyli wspólne środowisko programistyczne, w ogóle nie jest częścią oficjalnych terminów .NET, więc można się w tym pogubić. Jeśli chodzi o bibliotekę klas bazowych BCL, to jest to zestaw klas i interfejsów, które programiści wykorzystują, ale to też nie ma nic wspólnego z wykonywaniem kodu, to rolę CLR. BCL dostarcza różne przydatne narzędzia, na przykład do obsługi plików czy pracy z danymi. Błąd, który wiele osób popełnia, to mylenie BCL z CLR, mimo że mają różne funkcje i cele. Zrozumienie tych różnic jest naprawdę ważne, żeby dobrze korzystać z platformy .NET i uniknąć typowych nieporozumień dotyczących jej struktury.

Pytanie 15

Jakie wyrażenie należy umieścić w miejsce ??? w pętli napisanej w języku C++, aby na ekranie zostały wyświetlone wyłącznie elementy tablicy tab?

int tab[6];
for (int i = 0; ???; i++)
    cout << tab[i];
A. i >= 6
B. i <= 6
C. i < 6
D. i > 6
Niepoprawne wybory wyrażenia warunkowego w pętli for mogą prowadzić do różnych problemów, z których głównym jest przekroczenie zakresu tablicy, co jest powszechnym błędem w programowaniu w językach takich jak C++. Błędne zastosowanie warunku i >= 6 spowodowałoby, że pętla nie wykonałaby się ani razu, ponieważ początkowa wartość i wynosi 0, co nie spełnia tego warunku. Warunek i <= 6 może wydawać się poprawny, ponieważ uwzględnia indeks 6, jednak indeks ten wykracza poza zakres tablicy posiadającej 6 elementów (z indeksami od 0 do 5), co prowadziłoby do błędu out-of-bounds. Warunek i > 6 również jest błędny, ponieważ nigdy nie zostanie spełniony przy początkowej wartości i równej 0, a pętla tym samym się nie wykona. Typowe błędy myślowe prowadzące do takich wyborów wynikają z nieprawidłowego rozumienia indeksowania tablic oraz zakresu pętli. Ważne jest, aby dokładnie przeanalizować, jak indeksy są przypisywane w tablicach i dostosować warunki pętli, aby zawsze mieściły się w poprawnym zakresie. Aby uniknąć takich błędów, zaleca się stosowanie podejścia, które uwzględnia długość tablicy i iteruje do mniejszej wartości niż jej rozmiar. Tego typu prewencja nie tylko zwiększa stabilność programu, ale również jego bezpieczeństwo, eliminując ryzyko naruszenia pamięci programu i potencjalnych podatności bezpieczeństwa.

Pytanie 16

Który link jest poprawnie sformułowany?

A. <a href=http://strona.pl>strona</a>
B. <a href="http::/strona.pl>strona</a>
C. <a src="/www.strona.pl">strona</a>
D. <a href="http://strona.pl">strona</a>
Odpowiedź <a href="http://strona.pl">strona</a> jest poprawna, ponieważ używa atrybutu "href" do definiowania odnośnika. Atrybut ten jest standardem w języku HTML i służy do określenia docelowego adresu URL, do którego ma prowadzić link. W przypadku tej odpowiedzi, składnia jest prawidłowa: adres URL jest umieszczony w cudzysłowach, a prefiks HTTP jest poprawny. W praktyce, poprawne użycie atrybutu href jest kluczowe dla zapewnienia, że użytkownicy mogą bezproblemowo nawigować po stronie internetowej. Na przykład, w dokumentacji HTML5, wyraźnie zaznaczone jest, że atrybut href powinien być używany, aby wskazać lokalizację zasobu. W rezultacie, stosując tę poprawną składnię, można uniknąć potencjalnych błędów w działaniu strony oraz poprawić jej dostępność, co jest istotne z punktu widzenia najlepszych praktyk webowych oraz SEO.

Pytanie 17

Jaką formę ma instrukcja w języku PHP, która tworzy obiekt pkt w klasy Punkt zdefiniowanej w klasie?

Ilustracja do pytania
A. pkt= new Punkt();
B. pkt Punkt;
C. Punkt() pkt;
D. pkt Punkt();
W języku PHP każda z podanych niepoprawnych opcji wynika z niewłaściwego zrozumienia konstrukcji obiektowej. Pierwszy błąd polega na próbie inicjalizacji obiektu przy użyciu składni pkt Punkt;, która jest niepoprawna, gdyż nie wykorzystuje słowa kluczowego new obowiązkowego podczas tworzenia instancji klasy. Taka składnia przypomina deklarację zmiennych typów prostych, co nie znajduje zastosowania w kontekście obiektowym. Innym powszechnym nieporozumieniem jest myślenie, że pkt Punkt(); jest poprawne, co sugeruje funkcję, jednakże PHP wymaga jawnego użycia new. Kolejna błędna koncepcja to Punkt() pkt;, która zdaje się używać składni funkcji z przypisaniem, co również jest niezgodne z semantyką PHP dla obiektów. Tego typu błędy często wynikają z prób zastosowania logiki innych języków programowania lub z niewłaściwej interpretacji składni PHP. Zrozumienie różnicy między deklaracją zmiennej a tworzeniem obiektu jest kluczowe dla efektywnego programowania obiektowego. Aby uniknąć takich błędów, warto zwrócić uwagę na dokumentację i praktykować pisanie kodu zgodnie z konwencjami przyjętymi w PHP, co nie tylko zwiększa czytelność kodu, ale także ułatwia późniejsze jego modyfikacje oraz integrację z większymi systemami. Poprawne zrozumienie konstrukcji obiektowej jest fundamentalne dla każdego programisty PHP, szczególnie w kontekście tworzenia aplikacji skalowalnych i łatwych do zarządzania.

Pytanie 18

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

A. w każdej sytuacji
B. kiedy zostanie najechane kursorem myszy bez jego klikania
C. po naciśnięciu przycisku myszy w celu wprowadzenia tekstu
D. jeżeli jest to pierwsza obecność tego elementu w dokumencie
Odpowiedzi, które wskazują na inne stany pól edycyjnych, nie są zgodne z definicją pseudoklasy :focus w CSS. Stan :focus jest aktywowany wyłącznie w momencie, gdy użytkownik klika w pole edycyjne lub przemieszcza się do niego za pomocą klawiatury (np. poprzez naciśnięcie klawisza Tab). Odpowiedzi takie jak 'gdy zostanie wskazane kursorem myszy bez kliknięcia' pomijają kluczowy element aktywacji, którym jest kliknięcie lub nawigacja za pomocą klawiatury. Wskazanie kursorem nie generuje stanu :focus, chyba że użytkownik rzeczywiście kliknie w pole. Z kolei stwierdzenie, że :focus dotyczy 'pierwszego wystąpienia tego znacznika w dokumencie', jest mylne, ponieważ stan :focus jest niezależny od lokalizacji elementu w DOM (Document Object Model) i odnosi się do konkretnego elementu, który jest aktualnie aktywny, a nie jego położenia. Odpowiedź 'w każdym przypadku' jest również niepoprawna, gdyż stan :focus jest aktywowany tylko w konkretnych okolicznościach, a nie zawsze. Takie błędne zrozumienie może prowadzić do problemów z użytecznością interfejsów użytkownika, ponieważ użytkownicy mogą nie otrzymywać właściwych wskazówek dotyczących aktywnych pól, co w konsekwencji obniża komfort korzystania z aplikacji. Kluczowe jest zrozumienie, że :focus jest jednym z wielu stanów, które mogą być zastosowane w CSS, co podkreśla znaczenie precyzyjnego definiowania interakcji w projektowaniu stron internetowych.

Pytanie 19

Zachowanie integralności encji w bazie danych będzie miało miejsce, jeżeli między innymi

A. każdy klucz główny będzie miał odpowiadający mu klucz obcy w innej tabeli
B. dla każdej tabeli zostanie ustanowiony klucz główny
C. klucz główny zawsze będzie liczbą całkowitą
D. każdej kolumnie przypisany zostanie typ danych
Wszystkie zaproponowane odpowiedzi mogą wydawać się związane z tematyką integralności encji, jednak nie każda z nich rzeczywiście przyczynia się do jej zachowania w kontekście baz danych. Użycie klucza głównego jako liczby całkowitej nie jest kryterium zapewniającym integralność; klucz główny może być również tekstowy lub złożony, o ile spełnia warunki unikalności i braku wartości NULL. Przypisanie typu danych dla każdej kolumny jest ważne dla sprawności operacji na danych, ale samo w sobie nie zapewnia integralności encji, ponieważ nie kontroluje unikalności rekordów. Kolejnym błędnym podejściem jest twierdzenie, że każdy klucz główny musi mieć odpowiadający klucz obcy w innej tabeli. Klucz obcy jest używany do ustanowienia relacji między tabelami, ale nie jest wymagany do zapewnienia integralności encji w pojedynczej tabeli. Klucz główny w jednej tabeli działa niezależnie od kluczy obcych w innych tabelach; jego główną rolą jest zapewnienie, że każdy rekord w tabeli jest unikalny. W praktyce, brak zrozumienia tych koncepcji może prowadzić do projektowania baz danych, które są nieefektywne i trudne do zarządzania, co w dłuższej perspektywie wpływa na jakość danych i ich dostępność.

Pytanie 20

Jaki typ danych w MySQL należy zastosować, aby w jednym polu zapisać zarówno datę, jak i czas?

A. TIMESTAMP
B. YEAR
C. BOOLEAN
D. DATE
Typ danych TIMESTAMP w MySQL jest przeznaczony do przechowywania zarówno daty, jak i czasu w jednym polu. Jest szczególnie przydatny w sytuacjach, gdy potrzebne jest śledzenie zdarzeń w czasie, takich jak rejestracja daty i godziny utworzenia lub modyfikacji rekordów w bazie danych. TIMESTAMP przechowuje dane w formacie 'YYYY-MM-DD HH:MM:SS', co pozwala na precyzyjne określenie momentu w czasie. Wartością dodaną tego typu danych jest automatyczne aktualizowanie znacznika czasu przy każdej zmianie rekordu (jeśli ustawimy odpowiednie opcje), co jest zgodne z najlepszymi praktykami w zakresie audytu danych. Przykładem zastosowania może być rejestracja logów aktywności użytkowników w aplikacji internetowej lub monitorowanie transakcji w systemach finansowych, gdzie dokładny czas zdarzenia jest kluczowy. Dodatkowo, TIMESTAMP obsługuje różnice stref czasowych, co czyni go idealnym wyborem w aplikacjach działających w różnych lokalizacjach geograficznych.

Pytanie 21

W tabeli mieszkancy znajdują się różne dane. Aby przefiltrować jedynie mieszkańców, którzy mają przypisaną dzielnicę = 1, stworzono dla uproszczenia działania wirtualną tabelę (widok) poprzez zastosowanie kwerendy

A. CREATE VIEW mieszkancySrodmiescie AS SELECT * FROM mieszkancy
B. CREATE VIEW mieszkancySrodmiescie AS SELECT * FROM mieszkancy WHERE dzielnica = 1
C. CREATE VIEW mieszkancy FROM mieszkancy WHERE dzielnica = 1
D. CREATE VIEW mieszkancy WHERE dzielnica = 1
Odpowiedzi, które nie pasują do definicji widoków w SQL, mają kilka kluczowych błędów. W pierwszej z nich, 'CREATE VIEW mieszkancy WHERE dzielnica = 1;', brakuje ważnych elementów do zdefiniowania widoku. Przede wszystkim, nie ma słowa 'AS', które powinno być tam, żeby określić kwerendę, z której widok się tworzy. SQL wymaga, żeby definicja widoku miała zapytanie, czego tutaj brakuje. W drugiej odpowiedzi, 'CREATE VIEW mieszkancy FROM mieszkancy WHERE dzielnica = 1;', również jest niepoprawna, bo nie ma 'AS' i jest zła składnia, bo 'FROM' nie może być używane w tworzeniu widoku bez odpowiedniej struktury. Ostatnia odpowiedź, 'CREATE VIEW mieszkancySrodmiescie AS SELECT * FROM mieszkancy;', choć składnia jest okej, nie filtruje danych do mieszkańców z dzielnicy nr 1. To błędne myślenie, bo często zapominamy o używaniu filtrów, co prowadzi do tego, że mamy za dużo danych do analizy. Tworząc widoki, warto zawsze mieć na uwadze, po co je robimy i zadbać o to, żeby zawierały tylko te dane, które są nam naprawdę potrzebne.

Pytanie 22

W języku MySQL należy wykorzystać polecenie REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian wyłącznie w definicji struktury bazy danych. Polecenie, które służy do odebrania tych uprawnień, ma następującą formę

A. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
C. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
D. REVOKE ALL ON tabela1 FROM 'anna'@'localhost'
Wybór innego podejścia do odbierania uprawnień użytkownikowi 'anna' jest niewłaściwy z kilku powodów. Po pierwsze, REVOKE ALL ON tabela1 FROM 'anna'@'localhost' jest zbyt ogólnie sformułowane, jako że odbiera wszystkie przydzielone uprawnienia, w tym te, które mogą być konieczne do wykonywania podstawowych operacji na danych. Taki ruch mógłby całkowicie zablokować użytkownika w interakcji z tabelą, co nie odzwierciedla zamierzonego celu, jakim jest jedynie ograniczenie możliwości modyfikacji struktury. Drugą nieodpowiednią propozycją jest REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'. Ta komenda również jest błędna, ponieważ wprowadza uprawnienie UPDATE, które nie jest związane z zarządzaniem strukturą bazy danych. Odbieranie tego uprawnienia sprawiłoby, że użytkownik nie mógłby wprowadzać danych do tabeli, co jest sprzeczne z intencją ograniczenia jedynie modyfikacji struktury. Kolejną niewłaściwą odpowiedzią jest REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost', która również nie spełnia wymogów, ponieważ odbiera uprawnienia związane z wstawianiem i usuwaniem danych, co jest istotne dla pracy z danymi w tabeli. W kontekście zarządzania bazami danych, istotne jest, aby precyzyjnie określać, jakie uprawnienia są odbierane, a także dokładnie rozumieć ich zastosowanie oraz potencjalne konsekwencje ich odebrania.

Pytanie 23

W CSS, aby ustawić różne stylizacje dla pierwszej litery w akapicie, należy wykorzystać selektor

A. dziecka p + first-letter
B. atrybutu p [first-letter]
C. pseudoelementu p::first-letter
D. klasy p.first-letter
W języku CSS do formatowania pierwszej litery akapitu używamy pseudoelementu '::first-letter'. Jest to specjalny selektor, który pozwala na zastosowanie stylów tylko do pierwszego znaku w danym elemencie, na przykład w akapicie <p>. Pseudoelement ten może być używany do nadawania unikalnych właściwości typograficznych, takich jak rozmiar czcionki, kolor, font-weight czy marginesy, co może znacząco wzbogacić stylizację tekstu. Przykładowo, używając stylu 'p::first-letter { font-size: 2em; color: red; }', pierwsza litera każdego akapitu stanie się większa i czerwona. To podejście jest zgodne z dobrymi praktykami w CSS, ponieważ umożliwia selektywne stylizowanie elementów bez wpływu na resztę treści. Aby uzyskać większą kontrolę nad układem i estetyką stron internetowych, warto zaznajomić się z innymi pseudoelementami, takimi jak '::first-line', które działają analogicznie. Prawidłowe używanie pseudoelementów jest kluczowe dla tworzenia bardziej zaawansowanych i atrakcyjnych wizualnie projektów.

Pytanie 24

Które z pól edycyjnych zostało wystylizowane według poniższego wzoru, zakładając, że pozostałe atrybuty pola mają wartości domyślne, a użytkownik wpisał imię Krzysztof w przeglądarce?

input {
    padding: 10px;
    background-color: Teal;
    color: white;
    border: none;
    border-radius: 7px;
}
Ilustracja do pytania
A. Pole 3
B. Pole 1
C. Pole 2
D. Pole 4
Pole 1 mimo że prezentuje tekst w większym prostokątnym formacie nie ma charakterystycznego zaokrąglenia krawędzi które jest kluczowe dla podanego stylu CSS Zaokrąglenie krawędzi border-radius 7px to istotna część stylu która wpływa na wizualne odczucie przyjazności i nowoczesności interfejsu użytkownika dodatkowo kolor tekstu w Polu 1 wydaje się niezgodny z podanym stylem ponieważ biel tekstu jest priorytetyzowana dla kontrastu na ciemnym tle Pole 3 z kolei choć posiada pewien stopień zaokrąglenia nie spełnia wymagań pełnego zaokrąglenia 7px a także jego kolorystyka może różnić się od poprawnie zastosowanego tła Teal i białego tekstu co może prowadzić do problemów z czytelnością Pole 4 mimo że może wydawać się odpowiednie pod względem kształtu ma bardziej wyraziste obramowanie które jest sprzeczne z właściwością border none celem którego jest usunięcie widocznych linii obramowania Kluczowym elementem przy stylizacji jest spójna implementacja wszystkich właściwości CSS co oznacza że brak jednego z nich jak zaokrąglenie czy kolor tekstu może znacząco wpłynąć na końcowy odbiór i funkcjonalność elementu wizualnego Właściwe zrozumienie i stosowanie stylów CSS jest podstawą tworzenia atrakcyjnych i funkcjonalnych interfejsów które są jednocześnie estetyczne i ergonomiczne w użytkowaniu

Pytanie 25

Który z poniższych formatów NIE umożliwia zapis plików animowanych?

A. ACE
B. SVG
C. SWF
D. GIF
Wybór formatu SWF sugeruje, że użytkownik myli zastosowania różnych formatów plików. SWF, czyli Shockwave Flash, to format, który był powszechnie używany do tworzenia animacji i interaktywnych aplikacji internetowych. Jest on oparty na wektorowej grafice i obsługuje dźwięk oraz skrypty, co czyni go idealnym do tworzenia złożonych animacji. Z kolei SVG, czyli Scalable Vector Graphics, to format oparty na XML, który pozwala na tworzenie grafiki wektorowej i również obsługuje animacje przy użyciu CSS oraz JavaScript. Poprzez błędne przypisanie funkcji animacyjnych do ACE, użytkownik może nie dostrzegać, jak różne formaty są projektowane z myślą o określonych zastosowaniach. GIF to format, który od lat jest popularny w sieci do prezentacji prostych animacji, zwłaszcza w mediach społecznościowych. Użytkownicy często mylą różne zastosowania formatów i mogą nie być świadomi, że istnieją formaty, które są specjalnie zaprojektowane do obsługi animacji, podczas gdy inne służą zupełnie innym celom, jak kompresja danych. Właściwe zrozumienie tych różnic jest kluczowe dla efektywnego projektowania treści multimedialnych oraz optymalizacji ich działania w różnych środowiskach.

Pytanie 26

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

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

Pytanie 27

Interpreter PHP zgłosi błąd i nie zrealizuje kodu, jeśli programista:

A. nie umieści średnika po wyrażeniu w instrukcji if, gdy po nim występuje sekcja else
B. będzie pisać kod bez zastosowania wcięć
C. będzie definiował zmienne w obrębie warunku
D. pobierze dane z formularza, w którym pole input pozostało puste
W przypadku pierwszej odpowiedzi dotyczącej pobierania wartości z formularza, należy zrozumieć, że PHP nie generuje błędu, nawet jeśli pole input nie zostało wypełnione. Wartość z pustego pola formularza zostanie przekazana jako pusty string, co nie prowadzi do błędu, ale wymaga dodatkowej walidacji. Niezapełnione pola mogą być zatem obsługiwane bez problemów. Drugą odpowiedzią jest kwestia wcięć w kodzie. Chociaż wcięcia poprawiają czytelność kodu, PHP nie wymaga ich stosowania, a brak wcięć nie spowoduje błędu wykonania, co jest mylącą koncepcją. Warto jednak podkreślić, że stosowanie wcięć jest dobrą praktyką, gdyż pozwala na lepsze zrozumienie struktury programu. Ostatnia odpowiedź dotycząca deklaracji zmiennych wewnątrz warunku również nie prowadzi do błędu interpretera. PHP pozwala na tworzenie zmiennych w dowolnym zakresie, w tym w instrukcjach warunkowych, co jest istotne dla elastyczności języka. Aby uniknąć błędnych wniosków, warto pamiętać, że błędy w PHP wynikają najczęściej z niepoprawnej składni lub niezgodności w konwencji użycia, a nie ze sposobu organizacji kodu w kontekście wcięć czy deklaracji zmiennych.

Pytanie 28

Na ilustracji ukazano rezultat stylizacji za pomocą CSS oraz kod HTML generujący ten przykład. Zakładając, że marginesy wewnętrzne wynoszą 50 px, a zewnętrzne 20 px, jak wygląda styl CSS dla tego obrazu?

Ilustracja do pytania
A. B.
B. A.
C. C.
D. D.
Wybór niewłaściwej odpowiedzi może wynikać z niepełnego zrozumienia zastosowania poszczególnych właściwości CSS. Pierwsza możliwość sugeruje użycie dotted border zamiast solid co może być mylące w kontekście estetyki i czytelności projektu. Dotted border wprowadza przerywaną linię obramowania, co nie zawsze jest pożądane w profesjonalnym wyglądzie strony. Kolejna błędna konfiguracja zmienia marginesy i padanie co wpływa na ogólny układ i spójność wizualną. Błędne ustawienie marginesów zewnętrznych na 50px przy zmniejszeniu padania do 20px może zaburzyć proporcje i układ elementów wpływając na czytelność. Stylowanie z niewłaściwymi wartościami prowadzi do nieprzewidywalnych rezultatów zwłaszcza na urządzeniach o różnych rozdzielczościach. Ważne jest zrozumienie jak CSS wpływa na model boxu i jak poszczególne właściwości oddziałują na siebie co jest kluczowe w tworzeniu responsywnych i estetycznie spójnych interfejsów. Zrozumienie tych koncepcji jest kluczowe w unikaniu typowych pułapek projektowych i budowaniu stron zgodnych z nowoczesnymi standardami.

Pytanie 29

W hurtowni danych stworzono tabelę sprzedaz, która zawiera pola: id, kontrahent, grupa_cenowa, obrot. Jakie polecenie trzeba zastosować, aby znaleźć tylko kontrahentów z grupy cenowej numer dwa, których obrót przekracza 4000 zł?

A. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa = 2 AND obrot > 4000;
B. SELECT sprzedaz FROM kontrahent WHERE obrot > 4000;
C. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 OR obrot > 4000;
D. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000;
Dwie niepoprawne odpowiedzi pokazują, że są pewne nieporozumienia w kwestii SQL. W pierwszej z nich używasz operatora OR, co psuje całą logikę zapytania. To sprawia, że możesz dostać kontrahentów z drugiej grupy cenowej albo tych, co mają obrót powyżej 4000 zł, a nie tylko tych, którzy spełniają oba warunki jednocześnie. W analizie danych ważne jest, żeby warunki były precyzyjne, bo inaczej wyniki mogą być nieczytelne. W kolejnej odpowiedzi widzę, że próbujesz wydobywać dane z kolumny kontrahent, co jest niepoprawne, bo kolumna to nie tabela. Musisz mieć jasność co do struktury bazy danych, żeby pisać odpowiednie zapytania. A ostatnia odpowiedź nie zawiera warunku dla grupy cenowej, więc zwróci jakieś niepełne dane. Dobrym pomysłem jest też testować swoje zapytania na mniejszych zbiorach danych, niż wdrażać je od razu w produkcji, żeby uniknąć takich błędów.

Pytanie 30

Pierwszym etapem w konwersji sygnału analogowego na cyfrowy jest

A. próbkowanie
B. filtrowanie
C. kwantyzacja
D. kodowanie
Kwantyzacja, to dopiero drugi etap po próbkowaniu i chodzi o to, że każdej próbce przypisujemy wartość dyskretną, co po prostu oznacza zaokrąglenie wartości analogowej do najbliższego dostępnego poziomu. Mimo że kwantyzacja jest super istotna w konwersji sygnału analogowego na cyfrowy, nie może być pierwsza, bo wymaga danych, które już zostały zebrane podczas próbkowania. Filtrowanie to coś, co ma na celu usunięcie niechcianych częstotliwości z sygnału, co jest kluczowe przed próbkowaniem, żeby uniknąć aliasingu. Filtrowanie jest istotne dla utrzymania integralności sygnału, ale też nie może być pierwszym krokiem. A kodowanie to ostatnia część, gdzie kwantyzowane wartości zmieniają się w format cyfrowy, który można zapisywać i przetwarzać. Te procesy są ze sobą powiązane i są ważne, ale nie można ich mylić z próbkowaniem, które jest podstawą całego skomplikowanego procesu.

Pytanie 31

Zdefiniowano poniższą funkcję w PHP:

function policz($Z) {
    while($Z < 5) {
        $Z += 2 * $Z + 1;
    }
    return $Z;
}
Funkcję policz wywołano z wartością argumentu $Z = 1. Jaki rezultat zostanie zwrócony?
A. 7
B. 13
C. 4
D. 1
Niestety, tutaj coś nie zagrało. W pytaniu była funkcja 'policz' w PHP, która iteracyjnie zwiększa wartość zmiennej $Z, aż ta nie przekroczy 5. W każdej iteracji $Z rośnie o 2 * $Z + 1. Jak widać, przy odpowiednim argumencie początkowym wartość $Z rośnie bardzo szybko. W naszym przypadku zaczynamy z $Z równym 1. Po dwóch krokach mamy już 13, co kończy działanie pętli. Zamiast 1, 7 czy 4, funkcja 'policz' zwraca 13. Kluczowe jest zrozumienie, jak działają te iteracje i pętle w PHP.

Pytanie 32

Po uruchomieniu kodu PHP

echo date("Y-m");
na ekranie pojawi się bieżąca data w formacie:
A. tylko roku
B. roku oraz miesiąca
C. dnia, miesiąca, roku
D. dnia i roku
Odpowiedź 'rok i miesiąc' jest prawidłowa, ponieważ funkcja 'date' w PHP formatuje datę na podstawie podanego wzorca. W przypadku użycia wzorca 'Y-m', 'Y' oznacza pełny rok (np. 2023), a 'm' oznacza dwucyfrowy miesiąc (np. 03 dla marca). W wyniku działania 'echo date("Y-m");' na ekranie zostanie wyświetlona aktualna data w formacie YYYY-MM, co jest niezwykle przydatne w wielu aplikacjach, takich jak generowanie raportów miesięcznych, archiwizacja danych czy implementacja systemów zarządzania treścią. Użycie tego wzorca jest zgodne z najlepszymi praktykami programistycznymi, które zalecają właściwe formatowanie daty w celu jej późniejszej analizy lub prezentacji. Ponadto, umiejętność manipulacji datami w PHP jest kluczowa w kontekście tworzenia aplikacji webowych, które często wymagają interakcji z użytkownikami w czasie rzeczywistym, a także integracji z bazami danych, gdzie prawidłowe formatowanie daty ma kluczowe znaczenie dla integralności danych.

Pytanie 33

W skrypcie JavaScript operatory: ||, && są klasyfikowane jako operatorzy

A. logicznymi
B. przypisania
C. arytmetyczne
D. bitowe
Wybierając odpowiedzi z grupy operatorów arytmetycznych, bitowych czy przypisania, można wprowadzić się w błąd, co do funkcji operatorów || i && w JavaScript. Operatory arytmetyczne, takie jak +, -, *, /, służą do wykonywania obliczeń matematycznych na liczbach, a ich zastosowanie jest zupełnie inne niż w przypadku operatorów logicznych. Operator bitowy, jak np. &, działa na poziomie bitów w liczbach binarnych, co również różni się od operacji zwracających wartość logiczną. Z kolei operator przypisania = jest używany do przypisywania wartości zmiennym, co nie ma związku z oceną warunków. Typowe błędy myślowe, które prowadzą do nieprawidłowych odpowiedzi, wynikają z mylenia kontekstu użycia operatorów w programowaniu. Ważne jest, aby rozumieć, w jakim celu stosuje się poszczególne grupy operatorów i jak wpływają one na logikę programu. Przyjmowanie błędnych założeń dotyczących funkcji operatorów może prowadzić do poważnych błędów w kodzie, dlatego zaleca się przyswojenie podstawowych zasad dotyczących różnych operatorów i ich zastosowań w praktyce programistycznej. Znajomość tych różnic jest kluczowa dla realizacji skutecznych i poprawnych programów.

Pytanie 34

Aby poprawić wydajność strony z grafiką o wymiarach 2000 px na 760 px, konieczne jest zmniejszenie jej rozmiarów

A. za pomocą właściwości CSS, podając rozmiar w pikselach
B. w programie graficznym
C. za pomocą właściwości CSS, podając rozmiar w procentach
D. za pomocą atrybutów HTML
Zastosowanie atrybutów HTML do zmiany rozmiaru grafiki, takie jak width i height, nie wpływa na samą wielkość pliku, a jedynie na to, jak obrazek jest prezentowany na stronie. Przykładowo, jeśli zmniejszymy wymiary w HTML, przeglądarka nadal załadowuje pełną wersję grafiki, co może prowadzić do wolniejszego ładowania strony. To podejście jest niewłaściwe, ponieważ nie rozwiązuje problemu optymalizacji pliku, a jedynie maskuje go na poziomie wizualnym. Podobnie, stosowanie właściwości CSS, aby wskazać rozmiar w pikselach lub procentach, również nie zmienia rozmiaru samego pliku, co powoduje, że strona może ładować się dłużej. Użytkownicy mogą być zdezorientowani, myśląc, że zmiana stylów CSS wystarczy do poprawy wydajności strony, podczas gdy w rzeczywistości kluczowe jest skompresowanie i zmniejszenie samego pliku graficznego. Typowym błędem myślowym jest założenie, że zmiana rozmiaru wyświetlania na stronie jest równoważna z optymalizacją pliku. W praktyce zaleca się najpierw zmniejszyć rozmiar grafiki w programie graficznym, a następnie użyć odpowiednich tagów HTML lub CSS do wyświetlenia obrazu w pożądanym rozmiarze. Takie podejście zapewnia rzeczywiste korzyści w zakresie wydajności i szybkości ładowania strony.

Pytanie 35

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

A. Jej celem jest sprawdzenie zgodności z wymogami formalnymi
B. Może być realizowana na różnych etapach działania w celu przyspieszenia wykonania kodu przez procesor
C. Powinna skutkować modyfikacją kodu źródłowego, aby działał on szybciej
D. Jej celem jest zwiększenie efektywności działania programu
Wszystkie niepoprawne odpowiedzi odnoszą się do różnych aspektów, które nie są zgodne z rzeczywistym celem optymalizacji kodu wynikowego. Poprawa wydajności programu i zwiększenie szybkości wykonywania kodu przez procesor są kluczowymi elementami optymalizacji; niezbędne jest dążenie do maksymalizacji efektywności działania aplikacji. Proces optymalizacji nie może być związany jedynie z zgodnością z wymogami formalnymi, ponieważ to bardziej dotyczy analizy jakości kodu i jego zgodności z zasadami programowania, a nie jego wydajności. Dodatkowo, modyfikacje kodu źródłowego w kontekście optymalizacji powinny koncentrować się na przyspieszeniu działania, a nie tylko na poprawie formalnych aspektów, które mogą nie wpływać na wydajność. W praktyce, jeśli kod źródłowy nie jest zoptymalizowany pod kątem wydajności, może prowadzić do znacznych opóźnień, co jest niezgodne z celem optymalizacji. Dlatego istotne jest, aby w procesie tym skupić się na zwiększaniu szybkości i wydajności, a nie na spełnianiu jedynie formalnych wymogów, które mogą być mniej istotne w kontekście ogólnej funkcjonalności i szybkości działania programów.

Pytanie 36

W przypadku przedstawionego fragmentu kodu walidator HTML zgłosi błąd, ponieważ

<img src="kwiat.jpg alt="kwiat">
A. użyto niewłaściwego znacznika do wyświetlenia obrazu
B. nie odnaleziono pliku kwiat.jpg
C. nie zamknięto cudzysłowu
D. wprowadzono nieznany atrybut alt
Poprawna odpowiedź to nie domknięto cudzysłowu ponieważ w kodzie HTML atrybuty muszą być poprawnie zamknięte aby poprawnie interpretować ich wartości. W przedstawionym fragmencie kodu dla znacznika img brakuje końcowego cudzysłowu po wartości src co stanowi błąd składniowy. Tego typu błędy mogą prowadzić do nieprawidłowego działania strony ponieważ przeglądarka nie jest w stanie jednoznacznie określić końca wartości atrybutu co może skutkować nieprawidłowym renderowaniem danych. Zgodnie z najlepszymi praktykami każde otwarte cudzysłowie powinno być zamknięte aby zapewnić poprawną interpretację kodu. Ponadto stosowanie poprawnego zamykania cudzysłowów zwiększa czytelność kodu co jest istotne przy współpracy zespołowej i ułatwia jego utrzymanie. Warto także korzystać z walidatorów HTML które automatycznie wykrywają takie błędy pomagając w ich szybkim usunięciu. Tego rodzaju narzędzia są kluczowe w procesie tworzenia stron internetowych ponieważ umożliwiają weryfikację zgodności kodu z obowiązującymi standardami co ma bezpośredni wpływ na jego wydajność i kompatybilność z różnymi przeglądarkami.

Pytanie 37

Który z zaprezentowanych kodów HTML sformatuje tekst zgodnie z podanym wzorem?
Uwaga: słowo "stacji" jest napisane większą czcionką niż pozostałe wyrazy w tej linijce)

Lokomotywa

Stoi na stacji lokomotywa ...

A. <p><small>Lokomotywa</small></p> <p>Stoi na <big>stacji<big> lokomotywa ...</p>
B. <h1>Lokomotywa</h1> <p>Stoi na <big>stacji lokomotywa ...</p>
C. <h1>Lokomotywa</h1> <p>Stoi na <big>stacji</big> lokomotywa ...</p>
D. <h1>Lokomotywa</h1> <p>Stoi na <big>stacji</big> lokomotywa ...</p>
W zaprezentowanych błędnych rozwiązaniach widać kilka typowych problemów z HTML-em: niepełne zamykanie znaczników, obejmowanie tagiem zbyt dużego fragmentu tekstu oraz mylenie roli nagłówków z innymi elementami formatowania. Jeżeli znacznik <big> obejmuje więcej niż powinien, na przykład całe wyrażenie „stacji lokomotywa ...”, to efekt wizualny nie odpowiada wzorcowi – powiększony zostaje nie tylko jeden wyraz, ale cała reszta, co psuje zamierzony wygląd. To jest częsty błąd: zaznaczenie zbyt szerokiego fragmentu tekstu zamiast dokładnie tego słowa, które ma być wyróżnione. Drugi typ problemu to brak zamknięcia znacznika, jak w przypadku użycia <big> bez odpowiadającego mu </big>. Z punktu widzenia specyfikacji HTML takie konstrukcje są niepoprawne, a choć współczesne przeglądarki próbują „naprawiać” kod, skutki bywają nieprzewidywalne: część tekstu może być niechcący powiększona albo cała struktura akapitu zostanie zinterpretowana inaczej. Do tego dochodzi mylenie semantyki: nagłówek <h1> służy do oznaczania tytułu sekcji czy strony, a nie do przypadkowego pomniejszania czy powiększania tekstu. Używanie <small> w miejscu, gdzie w treści powinien wystąpić nagłówek, zaburza hierarchię dokumentu i szkodzi dostępności, bo czytniki ekranu i roboty wyszukiwarek mocno opierają się na strukturze nagłówków. Moim zdaniem warto wyrobić sobie nawyk: najpierw poprawna, logiczna struktura (h1, p, itd.), a dopiero potem delikatne wyróżnianie fragmentów, dokładnie obejmując tagami tylko te słowa, które mają być zmienione. W nowoczesnej praktyce webowej zamiast takich prezentacyjnych tagów jak <big> czy <small> lepiej stosować <span> z klasą i przerzucić całą logikę wyglądu do CSS, ale fundament jest ten sam – precyzyjne zakresy znaczników i poprawnie zamknięte tagi.

Pytanie 38

Atrybut colspan służy do poziomego łączenia komórek tabeli, natomiast rowspan pozwala na łączenie ich w pionie. Którą z poniższych tabel ukazuje fragment kodu napisany w języku HTML?
<table border="1" cellspaing="0" cellpadding="10" >
<tr> <td rowspan="2"> </td> <td> </td> </tr>
<tr> <td> </td> </tr>
</table>

Ilustracja do pytania
A. rys. C
B. rys. A
C. rys. B
D. rys. D
Zastosowanie atrybutu rowspan w HTML wymaga zrozumienia jak działa scalanie komórek w pionie co może prowadzić do pewnych nieporozumień w interpretacji wynikowego układu tabeli Błąd w rozumieniu funkcji rowspan może wynikać z mylnego przypisania skali poziomej do pionowej co wprowadza chaos w strukturze tabeli Jeśli zamiast rowspan użyto by colspan komórki byłyby łączone w poziomie co zmieniłoby całkowicie układ i wizualizację tabeli Niepoprawne rozumienie tego mechanizmu często skutkuje wyborem niewłaściwej odpowiedzi ponieważ kolumny z atrybutem rowspan są błędnie postrzegane jako poziome połączenia Dodatkowo brak świadomości że odstępy między komórkami oraz ich ramki mogą być konfigurowane wpływa na percepcję układu tabeli co może prowadzić do złego rozpoznania poprawnego rysunku W przypadku złego przypisania rowspan w tabeli możemy uzyskać niespójny układ co jest sprzeczne z dobrą praktyką projektowania interfejsów użytkownika gdzie spójność i czytelność są kluczowe Dlatego ważne jest aby dokładnie analizować kod i jego efekty na strukturę tabeli oraz stosować się do standardów HTML które zapewniają poprawność i czytelność danych w tabelach

Pytanie 39

Wskaż zapytanie, które z tabeli klienci wybierze wyłącznie nazwiska trzech najlepszych klientów, czyli takich, którzy posiadają najwięcej punktów na swoim koncie (pole całkowite punkty)?

A. SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3
B. SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3
C. SELECT nazwisko FROM klienci LIMIT 3
D. SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC
Analiza niepoprawnych odpowiedzi ujawnia szereg kluczowych błędów w interpretacji zapytania SQL. W pierwszym przypadku, 'SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC;' następuje nieprawidłowa składnia, ponieważ klauzula LIMIT powinna być umieszczona po klauzuli ORDER BY. Taki błąd sprawia, że zapytanie nie zostanie zrealizowane przez system baz danych. Kolejna odpowiedź, 'SELECT nazwisko FROM klienci LIMIT 3;', pomija istotny element sortowania, dlatego zwróci po prostu pierwsze trzy nazwiska z tabeli, bez względu na ilość punktów. Takie podejście jest mało efektywne, ponieważ nie identyfikuje najlepszych klientów na podstawie ich punktów, co jest kluczowe dla analizy jakości klientów. Ostatnia odpowiedź, 'SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3;', znów koncentruje się na sortowaniu alfabetycznym nazwisk zamiast na punktach, co nie spełnia kryteriów określonych w pytaniu. Takie błędy ukazują typowe nieporozumienia w zakresie funkcji SQL, gdzie kluczowe jest rozróżnienie pomiędzy różnymi metodami sortowania i ograniczania wyników. Istotne jest, aby w analizach danych zawsze zwracać uwagę na odpowiednie kryteria oraz zasady, które mają realny wpływ na proces podejmowania decyzji.

Pytanie 40

Jaką funkcję pełni program debugger?

A. interpretacji kodu w ramach wirtualnej maszyny Java
B. analizy działającego programu w celu wykrycia błędów
C. badania kodu źródłowego w celu wykrycia błędów składniowych
D. przekładania kodu napisanego w języku wyższego poziomu na język maszynowy
Debugger jest narzędziem, które pozwala na analizowanie i monitorowanie działania programów w trakcie ich wykonywania. Jego głównym celem jest lokalizacja błędów, co jest kluczowe w procesie programowania. Umożliwia on programiście śledzenie wartości zmiennych, monitorowanie stanu aplikacji oraz identyfikowanie momentów, w których występują błędy. Dobre praktyki wskazują, że regularne korzystanie z debuggersów w procesie developmentu przyczynia się do wczesnego wykrywania problemów, co z kolei redukuje koszty i czas potrzebny na naprawę. Na przykład, w przypadku aplikacji webowych, debugger może pomóc w analizie, dlaczego dany fragment kodu nie działa tak, jak oczekiwano, umożliwiając programiście zatrzymanie wykonania w konkretnym punkcie oraz sprawdzenie stanu aplikacji. Współczesne środowiska programistyczne, takie jak Visual Studio czy IntelliJ IDEA, oferują rozbudowane funkcje debugowania, które są nieocenione w codziennej pracy programisty.