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: 27 kwietnia 2026 11:43
  • Data zakończenia: 27 kwietnia 2026 12:04

Egzamin zdany!

Wynik: 22/40 punktów (55,0%)

Wymagane minimum: 20 punktów (50%)

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

W HTML formularzu użyto elementu <input>. Pole, które się pojawi, ma pozwalać na wprowadzenie maksymalnie

<input type="password" size="30" maxlength="20">
A. 20 znaków, które nie będą widoczne w polu tekstowym
B. 30 znaków, które będą widoczne podczas wpisywania
C. 20 znaków, które będą widoczne w trakcie wprowadzania
D. 30 znaków, które nie będą widoczne w polu tekstowym
Jeśli mówimy o znaczniku <input> w HTML, to dobrze jest wiedzieć, jak działają atrybuty typu maxlength i type. Atrybut maxlength pozwala ustawić maksymalną liczbę znaków w polu tekstowym. W polu typu password użytkownik może wpisać max 20 znaków, ale to, co widzisz, może być inne. Często myli się atrybut size z ograniczeniem liczby wprowadzanych znaków, ale tak naprawdę chodzi tylko o to, jak szerokie jest pole, więc nie zmienia jego funkcjonalności. Pole typu password ma na celu ukrycie wpisywanych znaków, co zazwyczaj oznacza, że to, co wpisujesz, zastąpione jest gwiazdkami lub kropkami, by nie było widać tego, co piszesz. Te rzeczy są ważne dla bezpieczeństwa aplikacji webowych. Ostatnio zauważyłem, że niektórzy mają problemy z rozumieniem tych atrybutów, co może prowadzić do błędów w obsłudze danych użytkowników i problemów z bezpieczeństwem.

Pytanie 2

Jakiego wyniku można się spodziewać po wykonaniu zapytania na przedstawionej tabeli?

SELECTCOUNT(DISTINCT wykonawca)
FROM`muzyka`;
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzesław Niemen2005Przyjdź W Taka Noc itp.
2IkonaStan Borys2014
3AerolitCzesław Niemen2017Winylowa reedycja płyty "Aerolit"
4JourneyMikołaj Czechowski2013
A. 0
B. 4
C. 1
D. 3
Zapytanie SQL SELECT COUNT(DISTINCT wykonawca) FROM muzyka; służy do zliczenia unikalnych wartości w kolumnie wykonawca w tabeli muzyka. W kontekście dostarczonej tabeli istnieje trzech różnych wykonawców: Czesław Niemen Stan Borys i Mikołaj Czechowski. Funkcja COUNT w połączeniu z DISTINCT pozwala na zliczenie jedynie unikalnych wystąpień wartości co oznacza że pomimo dwukrotnego wystąpienia Czesława Niemena zostanie on policzony tylko raz. Takie podejście jest kluczowe w analizie danych gdzie istotne jest rozważenie jedynie niepowtarzających się wartości na przykład w analizach raportów dotyczących różnorodności portfolio wykonawców w wytwórni muzycznej. Dobre praktyki w SQL zalecają użycie DISTINCT w sytuacjach wymagających precyzyjnego określenia różnorodności danych w kolumnie co nie tylko wspiera dokładność analiz ale również optymalizuje wydajność zapytań poprzez redukcję ilości danych do przetworzenia. Zrozumienie tego mechanizmu jest istotne w zarządzaniu bazami danych oraz w analizach biznesowych.

Pytanie 3

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. sumy.
B. części wspólnej.
C. wykluczenia.
D. grupowania.
W tym zadaniu łatwo się pomylić, bo w grafice wektorowej mamy kilka różnych funkcji, które na pierwszy rzut oka wyglądają podobnie: łączą obiekty w coś, co zachowuje się jak jeden element. Jednak ich działanie „pod maską” jest zupełnie inne. Funkcje typu suma, wykluczenie czy część wspólna to klasyczne operacje boolowskie na kształtach. One zmieniają geometrię obiektów, czyli tworzą nową ścieżkę wynikową na podstawie przecięcia lub połączenia istniejących. W praktyce oznacza to, że jeśli zastosujesz sumę na tekście i wielokącie, program najczęściej zamieni tekst na krzywe i połączy wszystko w jedną ścieżkę. Efekt wizualny może być fajny, ale edytowalność tekstu przepada. Nie możesz już po prostu zmienić czcionki czy liter, bo to nie jest tekst, tylko zestaw węzłów. Podobnie z wykluczeniem: ta operacja tworzy „dziurę” jednego obiektu w drugim. Używa się jej np. do wycinania napisu z tła lub tworzenia maski. To jest typowy trik przy projektach logotypów albo efektach dekoracyjnych. Ale z punktu widzenia pytania – to działanie jest destrukcyjne dla tekstu, bo znowu zamienia go na kształt i łączy z wielokątem w sposób nieodwracalny (poza cofnięciem operacji). Część wspólna działa jeszcze ostrzej: zostawia tylko obszar, w którym obiekty się nakładają. Reszta jest tracona. To też jest operacja geometryczna, a nie organizacyjna. Typowy błąd myślowy polega na założeniu, że „skoro po operacji mam jeden obiekt, to znaczy, że to jest to samo co grupowanie”. Niestety nie. Grupowanie nie modyfikuje kształtów, tylko tworzy kontener logiczny – tak jakbyś w folderze trzymał kilka plików. Możesz je potem rozgrupować i wszystko wraca do stanu sprzed grupowania. Operacje suma, wykluczenie, część wspólna są destrukcyjne względem oryginalnych obiektów, bo generują nową ścieżkę zamiast starych. W kontekście dobrych praktyk w grafice komputerowej i multimediach przyjmuje się, że dopóki chcesz zachować pełną edytowalność (szczególnie tekstów), używasz grupowania, warstw i wyrównywania, a dopiero na późnym etapie projektu stosujesz operacje boolowskie, i to świadomie, wiedząc, że cofasz się już tylko historią edycji. Dlatego w pytaniu, gdzie mowa jest wprost o połączeniu tekstu i wielokąta w jeden obiekt w sposób odwracalny, jedyną sensowną odpowiedzią jest funkcja grupowania, a nie suma, wykluczenie czy część wspólna.

Pytanie 4

Jakie jest zadanie funkcji przedstawionej w języku JavaScript?

 function fun1(a, b) {
    if (a % 2 != 0) a++;
    for (n = a; n <= b; n+=2)
        document.write(n);
}
A. sprawdzenie, czy liczba a jest nieparzysta; w przypadku potwierdzenia, wypisanie jej
B. wypisanie wszystkich liczb z zakresu od a do b
C. zwrócenie wartości liczb parzystych od a do b
D. wypisanie liczb parzystych z zakresu od a do b
Odpowiedzi takie jak "wypisanie wszystkich liczb z przedziału od a do b" oraz "zwrócenie wartości parzystych liczb od a do b" ilustrują powszechne nieporozumienia dotyczące działania funkcji oraz jej logiki. Funkcja nie wypisuje wszystkich liczb z przedziału, ponieważ jej konstrukcja ogranicza wyniki do liczb parzystych. Odpowiedź ta nie uwzględnia kluczowego kroku w funkcji, polegającego na modyfikacji zmiennej a, co oznacza, że w przypadku nieparzystego a, pierwsza wypisana liczba będzie parzysta. Natomiast odpowiedź sugerująca, że funkcja zwraca wartości parzyste, jest również myląca, ponieważ funkcja nie zwraca wartości (nie używa return), a jedynie wypisuje je na stronie za pomocą document.write(). To może prowadzić do nieporozumień, zwłaszcza w kontekście oczekiwań dotyczących struktury danych. Typowym błędem myślowym jest zakładanie, że pętle for mogą generować wszystkie liczby w danym zakresie, gdy w rzeczywistości sposób ich inkrementacji (w tym przypadku o 2) determinuje, które wartości są ostatecznie wyświetlane. Przykładem na to jest sytuacja, gdy użytkownik nie dostrzega, że pętla zmienia krok zwiększenia i przez to nie uzyskuje pełnej sekwencji liczb. Warto zwrócić uwagę na konwencje programistyczne, takie jak zasady dotyczące wypisywania danych i używania zwrotów, co jest kluczowe dla tworzenia przejrzystego i efektywnego kodu.

Pytanie 5

Przy użyciu polecenia ALTER TABLE można

A. zmieniać strukturę tabeli
B. zmieniać wartości zapisane w rekordach tabeli
C. tworzyć nową tabelę
D. usuwać tabelę
W kontekście zarządzania bazami danych istnieje wiele podstawowych operacji, które można wykonywać, a polecenie ALTER TABLE jest jednoznacznie związane z modyfikowaniem struktury tabeli, co wyklucza możliwość jego użycia do usuwania lub tworzenia tabel. Odpowiedź sugerująca, że ALTER TABLE może usuwać tabelę, jest merytorycznie błędna. Tego rodzaju operacje realizowane są przez inne polecenia, takie jak DROP TABLE, które służy do usuwania tabeli i jej danych. Podobnie, tworzenie tabeli jest realizowane poleceniem CREATE TABLE. Mylne stwierdzenie, że ALTER TABLE może być używane do modyfikacji wartości w rekordach, również jest niepoprawne, ponieważ zmiana wartości zapisanych w tabeli jest realizowana za pomocą polecenia UPDATE. Niezrozumienie różnicy pomiędzy tymi poleceniami może prowadzić do błędnych operacji na bazie danych, narażających na utratę danych lub nieprawidłowe funkcjonowanie aplikacji. Dlatego tak ważne jest zrozumienie, jakie konkretne operacje można wykonać za pomocą poszczególnych poleceń SQL oraz ich właściwego zastosowania w praktyce, aby zapewnić integralność i bezpieczeństwo danych.

Pytanie 6

Jaką wartość wyświetli standardowe wyjście dla podanego w ramce fragmentu kodu w języku C++?

Ilustracja do pytania
A. 0
B. 32
C. 2
D. 3
W analizowanym fragmencie programu funkcja obliczenia modyfikuje swój argument x poprzez operację x %= 3 co oznacza że oblicza resztę z dzielenia x przez 3. W przypadku x równego 32 reszta z dzielenia przez 3 wynosi 2. Następnie instrukcja x++ zwiększa wartość x o 1 co daje wynik końcowy równy 3. Wiedza o operatorach arytmetycznych takich jak % oraz o inkrementacji ++ jest kluczowa przy programowaniu w C++. Operator % jest powszechnie używany do określania parzystości liczb lub cyklicznych wzorców w algorytmach. Zrozumienie jak te operacje wpływają na przepływ danych w programie pozwala unikać błędów logicznych i poprawiać wydajność kodu. Inkrementacja jest również istotna w wielu strukturach sterujących takich jak pętle co czyni ją niezbędnym elementem w rozwiązywaniu problemów algorytmicznych. Tego typu operacje są fundamentem w standardach programowania ponieważ pozwalają na precyzyjne kontrolowanie wartości zmiennych w trakcie wykonywania programów. Warto ćwiczyć te koncepcje aby w pełni wykorzystać potencjał języka C++ szczególnie w kontekście optymalizacji i wydajności aplikacji.

Pytanie 7

.format1 {
    …
}
W CSS określono wspólne style dla pewnej grupy elementów. Użycie takich stylów w kodzie HTML odbywa się za pomocą atrybutu:
A. id = "format1"
B. div = "format1"
C. class = "format1"
D. style = "format1"
Użycie atrybutu class w języku HTML do formatowania grupy znaczników jest zgodne z najlepszymi praktykami web developmentu. Atrybut class pozwala na zastosowanie tej samej definicji stylu CSS do wielu elementów, co jest efektywne i utrzymuje porządek w kodzie. Umożliwia to również łatwą zmianę wyglądu strony poprzez modyfikację tylko jednej definicji CSS zamiast ręcznego edytowania stylów każdego z elementów z osobna. Dzięki takiemu podejściu, programista może szybko aktualizować wygląd całej strony lub jej części bez ryzyka, że pominięte zostaną pojedyncze elementy. Ponadto użycie klas jest zgodne ze standardami W3C, co zapewnia kompatybilność i poprawne renderowanie w różnych przeglądarkach. Praktycznym przykładem zastosowania jest stronie, gdzie wszystkie elementy z klasą .format1 będą miały jednolity wygląd, na przykład wszystkie przyciski na stronie mogą mieć jednakowy kolor i styl. Pozwala to na tworzenie spójnych interakcji użytkownika i ułatwia przyszłą rozbudowę strony o dodatkowe funkcje.

Pytanie 8

Jakie skutki przynosi wielokrotne uruchomienie poniższego kodu PHP?

if (!isset($_COOKIE["ciastko"]) 
 $zm = 1; 
 else 
 $zm = intval($_COOKIE["ciastko"]) + 1; 
setcookie("ciastko", $zm);
A. Zapisywanie wartości 1 w ciasteczku przy każdym odświeżeniu strony.
B. Przechowywanie informacji w ciasteczku tylko przy pierwszym otwarciu strony.
C. Pokazanie ciasteczka z wartością zmiennej.
D. Liczenie liczby wejść na stronę.
Błędne odpowiedzi wskazują na zrozumienie podstawowych operacji związanych z ciasteczkami, ale nie uchwycają ich rzeczywistego zastosowania w kontekście analizy odwiedzin. Pierwsza z niepoprawnych opcji, dotycząca wyświetlenia ciasteczka z zapisaną zmienną, myli pojęcie z jego funkcją. Kod nie posiada żadnych instrukcji wyświetlania, a jedynie operuje na danych, które są zapisywane w ciasteczkach. Takie nieporozumienie jest powszechne wśród początkujących programistów, którzy mogą sądzić, że operacje na ciasteczkach automatycznie wiążą się z ich prezentacją użytkownikowi. Druga z opcji sugeruje, że ciasteczko jest ustawiane na wartość 1 przy każdym odświeżeniu strony, co jest nieprawidłowe. W rzeczywistości, wartość ciasteczka jest zwiększana z każdym odwiedzeniem, co oznacza, że wartość 1 jest przypisywana tylko przy pierwszym wejściu. To błędne zrozumienie działania ciasteczek prowadzi do mylnych konkluzji na temat ich zastosowania. Ostatnia propozycja sugeruje, że dane są zapisywane jedynie przy pierwszym uruchomieniu strony, co jest fałszywe, ponieważ aktualizacja ciasteczka zachodzi przy każdym nowym odczycie, a nie tylko przy pierwszym dostępie. Zrozumienie, jak działa mechanizm ciasteczek, jest kluczowe dla prawidłowego ich wykorzystania i analizy interakcji użytkownika z witryną.

Pytanie 9

Aby włączyć kaskadowy arkusz stylów zapisany w zewnętrznym pliku, należy zastosować poniższy fragment kodu HTML?

A. <optionvalue="styl.css" type="text/css" />
B. <link rel="stylesheet" type="text/css" href="styl.css" />
C. <div id="styl.css" relation="css" />
D. <meta charset="styl.css" />
Odpowiedź <link rel="stylesheet" type="text/css" href="styl.css" /> jest poprawna, ponieważ jest to standardowy sposób dołączania zewnętrznych arkuszy stylów w HTML. Element <link> jest używany do powiązania dokumentu HTML z zewnętrznym źródłem CSS. Atrybut 'rel' informuje przeglądarkę, że jest to arkusz stylów, natomiast atrybut 'href' wskazuje ścieżkę do pliku CSS. Dzięki temu przeglądarka może załadować stylizacje z pliku, co pozwala na oddzielenie treści od stylu, co jest zgodne z zasadą separacji, kluczową w projektowaniu stron internetowych. Na przykład, dodając ten fragment kodu w sekcji <head> dokumentu HTML, możemy łatwo zarządzać wyglądem wielu stron, zmieniając tylko jeden plik CSS. To podejście zwiększa wydajność i ułatwia konserwację strony, co jest szczególnie ważne w większych projektach. W praktyce, aby załadować różne style dla różnych urządzeń, możemy użyć atrybutu 'media', co pozwoli na bardziej elastyczne podejście do zarządzania stylami.

Pytanie 10

Które z poniższych stwierdzeń dotyczy skalowania obrazu?

A. Skutkuje wycięciem z oryginalnego obrazu konkretnego fragmentu, aby uzyskać lepszy widok
B. Opiera się na modyfikacji formatu zapisu obrazu w celu zmiany metody kompresji
C. Prowadzi do zmiany wielkości obrazu bez zmiany istotnej zawartości wizualnej
D. Łączy bądź pozbywa się kształtów
Skalowanie obrazu to proces, który polega na zmianie rozmiaru obrazu przy zachowaniu jego kluczowych elementów wizualnych. W praktyce oznacza to, że przy skalowaniu nie zmienia się proporcji ani istotne detale, co jest niezbędne w wielu zastosowaniach profesjonalnych, takich jak grafika komputerowa, projektowanie stron internetowych czy edycja zdjęć. Dobrze wykonane skalowanie gwarantuje, że obraz będzie czytelny i estetyczny, niezależnie od zmienionych wymiarów. Na przykład, w przypadku przygotowywania obrazów do publikacji online, właściwe skalowanie pozwala na optymalne ładowanie strony oraz utrzymanie jakości wizualnej. W branży graficznej korzysta się z różnych algorytmów skalowania, takich jak najbliższego sąsiada, bilinearny czy bicubic, w zależności od wymaganych efektów końcowych. Przestrzeganie standardów dotyczących rozmiarów obrazów, takich jak te określone przez W3C, pomoże uniknąć problemów z wydajnością i estetyką w projektach multimedialnych.

Pytanie 11

W języku PHP, po wykonaniu poniższego fragmentu kodu, w zmiennej o nazwie Nowy_Napis uzyskamy

Ilustracja do pytania
A. ZAWSZE SPRAWDZ SWOJ KOD
B. zAwSZe sPrAwDz SWOJ kOd
C. ZaWszE
D. zawsze sprawdz swoj kod
Funkcja strtolower w PHP służy do konwersji ciągu znaków na małe litery. W podanym przykładzie zmienna Napis zawiera wartość ZaWsze SpRaWdZ swoj KoD, która jest mieszanką wielkich i małych liter. Po zastosowaniu funkcji strtolower do tej zmiennej, wynikowy ciąg zostaje przetworzony tak, że wszystkie litery są zamieniane na małe. Dlatego w zmiennej Nowy_Napis znajdzie się tekst zawsze sprawdz swoj kod. Użycie strtolower jest częste, gdy chcemy ujednolicić dane tekstowe, np. porównując adresy email czy nazwy użytkowników, aby uniknąć rozróżnienia wielkości liter. Jest to zgodne z dobrą praktyką programistyczną, która polega na zapewnieniu spójności danych poprzez ich normalizację. W kontekście aplikacji webowych często stosuje się tę funkcję do przetwarzania danych wejściowych od użytkowników, aby uzyskać jednolite formatowanie i uniknąć potencjalnych błędów przy wyszukiwaniu lub porównywaniu danych. Praktyczne zastosowanie tej funkcji ułatwia zarządzanie danymi i upraszcza logikę biznesową aplikacji.

Pytanie 12

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

A. <style>
B. <meta>
C. <link>
D. <css>
Dołączenie zewnętrznego arkusza stylów do kodu HTML realizowane jest przy użyciu znacznika <link>, który znajduje się w sekcji <head> dokumentu HTML. Ten znacznik umożliwia przeglądarkom internetowym odnalezienie i załadowanie zewnętrznego pliku CSS, co pozwala na zastosowanie stylów do elementów HTML. Przy użyciu atrybutu 'href' wskazujemy lokalizację arkusza stylów, natomiast atrybut 'rel' definiuje relację między dokumentem HTML a plikiem stylów, zazwyczaj ustawiając go na 'stylesheet'. Przykładowa struktura to: <link rel='stylesheet' href='styles.css'>. Taki sposób organizacji stylów pozwala na lepsze zarządzanie kodem, umożliwia wielokrotne wykorzystanie tych samych stylów w różnych dokumentach oraz przyspiesza ładowanie strony poprzez caching. Użycie zewnętrznych arkuszy stylów jest zgodne z najlepszymi praktykami programowania front-endowego, co wpływa pozytywnie na wydajność oraz SEO, umożliwiając lepszą indeksację przez wyszukiwarki. Dodatkowo, umożliwia to łatwiejsze wprowadzanie zmian w stylach bez potrzeby edytowania każdego pliku HTML z osobna.

Pytanie 13

Semantyczny znacznik sekcji języka HTML 5 przeznaczony do umieszczenia stopki strony WWW to

A. <aside> 
B. <header>
C. <figcaption>
D. <footer>
Poprawna odpowiedź to <footer>, bo właśnie ten znacznik w HTML5 jest semantycznie przeznaczony na stopkę strony lub stopkę sekcji. W specyfikacji HTML5 wyraźnie podkreślono, że <footer> służy do umieszczania informacji końcowych: praw autorskich (copyright), linków do polityki prywatności, kontaktu, autorów, krótkich podsumowań czy nawigacji pomocniczej. Moim zdaniem warto traktować <footer> jak miejsce na „meta‑informacje” o stronie albo o danej części dokumentu. Co ważne, <footer> nie musi występować tylko raz – możesz mieć stopkę całej strony w obrębie <body>, ale też osobne stopki np. dla artykułu (<article>) czy sekcji (<section>). To jest dobra praktyka, bo poprawia strukturę dokumentu i czytelność kodu. W praktyce wygląda to np. tak: <footer><p>© 2026 Firma XYZ</p><nav><a href="/regulamin">Regulamin</a> | <a href="/kontakt">Kontakt</a></nav></footer>. Czytniki ekranowe i roboty wyszukiwarek lepiej rozumieją wtedy, że ta część strony to zakończenie i informacje dodatkowe. To się przekłada na lepszą dostępność (WCAG) i trochę sensowniejsze SEO. Z mojego doświadczenia warto pilnować, żeby nie wrzucać do <footer> całej reszty layoutu, tylko właśnie elementy typowo „stopkowe”. Dobrą praktyką jest też trzymanie się spójnej struktury na wszystkich podstronach, żeby użytkownik intuicyjnie wiedział, że w stopce znajdzie np. link do pliku RODO albo dane firmy. HTML5 mocno stawia na semantykę, więc używanie <footer> zamiast jakiegoś bezsensownego <div id="stopka"> to po prostu nowocześniejsze i zgodne ze standardami podejście.

Pytanie 14

W tabeli o nazwie pracownicy zdefiniowano klucz główny w typie INTEGER z atrybutami NOT NULL oraz AUTO_INCREMENT. Dodatkowo zdefiniowane zostały pola imie oraz nazwisko. W przypadku wykonania podanej kwerendy SQL, która dodaje dane i pomija pole klucza, w bazie danych MySQL nastąpi

INSERT INTO pracownicy (imie, nazwisko)
VALUES ('Anna', 'Nowak');
A. zignorowanie polecenia, tabela nie ulegnie zmianie
B. błąd związany z niewłaściwą liczbą pól
C. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
D. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
W przypadku tabeli z kluczem głównym typu INTEGER z atrybutem AUTO_INCREMENT, kiedy wprowadzamy nowy rekord i pomijamy pole klucza głównego, baza danych MySQL sama automatycznie przydziela kolejną wartość liczbową dla tego pola. AUTO_INCREMENT to mechanizm, który zapewnia, że każdemu nowemu rekordowi przypisana jest unikalna wartość klucza głównego, zaczynając od wartości początkowej, zwykle 1, i zwiększając ją o 1 z każdym nowym rekordem. Jest to niezwykle użyteczne w sytuacjach, gdy zależy nam na unikalności wartości kluczy głównych, co zapewnia integralność danych i unika konieczności ręcznego określania wartości klucza przy każdym nowym wpisie. Takie podejście jest zgodne ze standardami dobrych praktyk, ponieważ minimalizuje ryzyko błędów związanych z duplikacją danych. Przykładowo, jeśli do tabeli pracownicy dodajemy rekord z danymi pracownika, nie musimy się martwić o wartość identyfikatora, co znacznie upraszcza proces zarządzania danymi. Mechanizm AUTO_INCREMENT jest zatem kluczowy w kontekście zarządzania bazami danych, zapewniając automatyzację i integralność danych.

Pytanie 15

W relacyjnym modelu danych, krotki definiuje się jako

A. wszystkie wiersze w tabeli łącznie z wierszem nagłówkowym
B. wszystkie kolumny tabeli, które reprezentują atrybuty obiektu
C. wiersze tabeli wyłączając wiersz nagłówkowy, w którym znajdują się nazwy kolumn
D. liczbę rekordów w tabeli
W relacyjnych bazach danych ważne jest, żeby wiedzieć, czym różnią się wiersze od kolumn. Jak ktoś twierdzi, że krotkami są wszystkie wiersze tabeli razem z nagłówkiem, to nie do końca tak jest. Wiersz nagłówkowy ma znaczenie, bo pokazuje strukturę danych, ale nie wchodzi w skład krotek. Z kolei określanie krotek jako liczby rekordów w tabeli jest mało precyzyjne, bo to nie oddaje tego, co naprawdę oznaczają krotki. Kolejna błędna odpowiedź, która mówi, że krotkami są wszystkie kolumny, może wprowadzać w błąd, bo kolumny definiują atrybuty, ale same w sobie nie przechowują danych. W kontekście baz danych, krotki są kluczowe dla zrozumienia, jak te dane są poukładane, a ich dobre zdefiniowanie sprawia, że zarządzanie informacjami staje się łatwiejsze. Żeby unikać błędów przy projektowaniu baz danych, trzeba pamiętać, że krotki to zestawy wartości atrybutów, które można porównywać i obrabiać w SQL. Takie podejście jest ważne, żeby poprawnie tworzyć zapytania i zarządzać danymi w różnych systemach baz danych.

Pytanie 16

Jaką wartość zwróci funkcja w języku C++, jeśli parametry wynoszą a = 4 oraz b = 3?

long int fun1(int a, int b)
{
long int wynik = 1;
for (int i = 0; i < b; i++)
wynik *= a;
return wynik;
}
A. 16
B. 64
C. 1
D. 12
Rozpatrując niepoprawne odpowiedzi należy zauważyć że błędne zrozumienie działania pętli for oraz operacji w niej zawartych może prowadzić do niepoprawnych wyników. Niektórzy mogą błędnie zakładać że funkcja wykonuje dodawanie a nie mnożenie co prowadzi do odpowiedzi takich jak 12 lub 16. W rzeczywistości pętla for w tej funkcji przemnaża wartość zmiennej wynik przez a dla każdej iteracji co oznacza że wynik końcowy jest a podniesione do potęgi b. Błąd polegający na uznaniu że wynik to 12 może wynikać z pomyłki i traktowania operacji jak klasycznego dodawania zamiast przemnożenia a z kolei wynik 16 mógłby wynikać z błędnego wnioskowania że pętla wykonuje inną liczbę iteracji niż w rzeczywistości. Kolejnym częstym błędem jest nieprawidłowe przypisanie wartości początkowej do wyniku albo niezrozumienie że pętla zaczyna od 0 i iteruje do b-1. Takie błędne założenia mogą wynikać z niezrozumienia podstawowej składni i logicznych kroków algorytmu. Zrozumienie tego jak działa pętla for oraz jak operacje na zmiennych zmieniają ich wartości w trakcie iteracji jest kluczowe aby poprawnie przewidzieć wynik działania funkcji. Kluczem do poprawnego rozwiązania jest metodyczne sprawdzenie każdego kroku algorytmu co pozwoli uniknąć podobnych błędów w przyszłości. Zasady te są fundamentalne dla każdego programisty a ich zrozumienie ma zastosowanie w szerokim zakresie zagadnień programistycznych i algorytmicznych zapewniając nie tylko poprawność ale również efektywność pisanych programów. Poprawne zrozumienie tych podstaw umożliwia tworzenie bardziej złożonych i wydajnych algorytmów co jest kluczowe w środowisku zawodowym.

Pytanie 17

Który z przedstawionych rysunków ilustruje efekt działania zamieszczonego fragmentu kodu HTML?

Ilustracja do pytania
A. rys. A
B. rys. D
C. rys. B
D. rys. C
Odpowiedzi inne niż rys. C nie są poprawne z powodu błędnego zrozumienia jak działa atrybut rowspan w języku HTML. Gdy komórka tabeli posiada atrybut rowspan oznacza to że komórka ta rozciąga się pionowo na określoną liczbę wierszy. W przypadku braku zrozumienia tego mechanizmu można błędnie przypuszczać że każda komórka zaczyna się i kończy w obrębie jednego wiersza. Taki tok myślenia prowadzi do niepoprawnego rozmieszczenia elementów tabeli jak w rys. A lub D gdzie nie wzięto pod uwagę łączenia komórek w pionie. W odpowiedzi A pierwsza komórka nie obejmuje dwóch wierszy co jest sprzeczne z kodem. W odpowiedzi B z kolei drugi wiersz zawiera dwie komórki co również jest sprzeczne z kodem który definiuje tylko jedną. Takie błędy często wynikają z braku doświadczenia w używaniu zaawansowanych funkcji HTML co może prowadzić do mylnych wyobrażeń o tym jak kod przekłada się na widok strony. Atrybuty rowspan i colspan są kluczowe w kontekście strukturalnego podejścia do budowy stron internetowych i ich poprawne użycie ma istotne znaczenie dla dostępności oraz zrozumienia danych przez użytkowników i technologie wspomagające. Ważne jest także zrozumienie różnic między tworzeniem struktury a prezentacją co jest możliwe dzięki CSS zamiast nadużywania tabel do layoutów.

Pytanie 18

W języku JavaScript, aby zweryfikować, czy liczba leży w zakresie (100, 200>, należy użyć następującego zapisu:

A. If (liczba < 100 || liczba >=200)
B. If (liczba > 100 && liczba <=200)
C. If (liczba > 100 || liczba <=200)
D. If (liczba < 100 && liczba <=200)
Wyrażenie warunkowe 'if (liczba > 100 && liczba <= 200)' jest całkiem dobrze skonstruowane. Precyzyjnie wskazuje, że interesują nas liczby od 101 do 200, z tym że 200 jest uwzględniona, a 100 już nie. Operator '&&' (AND) działa tutaj, bo musi być spełniony zarówno pierwszy, jak i drugi warunek, co jest bardzo istotne w tym przypadku. W praktyce takie warunki można często spotkać w aplikacjach webowych, szczególnie przy walidacji danych. Na przykład w formularzach, gdzie użytkownicy muszą podać wartości mieszczące się w danym zakresie. Umiejętne korzystanie z operatorów logicznych to dobra praktyka w programowaniu. Dzięki temu kod jest bardziej czytelny oraz łatwiejszy do utrzymania. Warto też pamiętać, że różne biblioteki i frameworki mają własne metody walidacji, ale znajomość podstawowych zasad programowania w JavaScript jest kluczowa, żeby móc je dobrze wykorzystywać.

Pytanie 19

Została zaprezentowana tabela o nazwie konta. Aby obliczyć liczbę rejestracji w poszczególnych latach oraz wyświetlić te wartości razem z rokiem rejestracji, należy wykonać zapytanie

A. ```SELECT rejestracja, COUNT(rejestracja) FROM konta GROUP BY rejestracja;```
B. ```SELECT COUNT(rejestracja) FROM konta GROUP BY rejestracja;```
C. ```SELECT COUNT(rejestracja) FROM konta JOIN rejestracja ON id;```
D. ```SELECT rejestracja, COUNT(rejestracja) FROM konta;```
Aby policzyć, ile rejestracji dokonano w poszczególnych latach, musimy użyć funkcji agregującej SQL, która umożliwia grupowanie wyników według określonych kryteriów. Odpowiedź 4: 'SELECT rejestracja, COUNT(rejestracja) FROM konta GROUP BY rejestracja;' wykorzystuje funkcję COUNT(), która zlicza liczbę wystąpień każdej wartości w kolumnie 'rejestracja'. Klauzula GROUP BY jest niezbędna, aby wynikiem zapytania było grupowanie danych według lat rejestracji. Jest to zgodne z dobrymi praktykami, które zalecają użycie GROUP BY z funkcjami agregującymi do zliczania i analizy danych w bazach danych. Praktyka ta pozwala na efektywną agregację i prezentację danych, co jest przydatne w raportowaniu i analizie. Użycie GROUP BY zapewnia również zoptymalizowane operacje na dużych zbiorach danych, co jest kluczowe w systemach zarządzania bazami danych. Poprzez takie podejście, można generować raporty i wglądy, które wspierają decyzje biznesowe.

Pytanie 20

Termin "front-end" w kontekście projektowania stron WWW odnosi się do

A. działania skryptów oraz aplikacji realizowanych po stronie serwera WWW
B. bazy danych z danymi publikowanymi na stronie
C. interfejsu witryny internetowej powiązanego z technologiami operującymi w przeglądarce internetowej
D. organizacji informacji na serwerze WWW
Front-end to wszystko to, co widzisz w przeglądarce, czyli ogólnie mówiąc, wygląd strony i to, jak się z nią bawisz. Mówię tu o kolorach, czcionkach, układzie czy różnych akcjach, które możesz wykonać. Technologie jak HTML, CSS i JavaScript są tu na czołowej pozycji, bo to dzięki nim strona jest taka interaktywna i przyjemna dla oka. Przykłady? Budowa responsywnych interfejsów, które zmieniają rozmiar na różnych ekranach, albo skrypty, które potrafią zmieniać treści na stronie bez przeładowania jej. Dobrze jest też pomyśleć o tym, żeby strona ładowała się jak najszybciej, bo to wpływa na to, jak użytkownicy będą ją odbierać. A jeśli znasz nowe frameworki, jak React czy Angular, to naprawdę ułatwia stworzenie bardziej złożonych aplikacji webowych, co w dzisiejszych czasach jest mega ważne.

Pytanie 21

W CSS wartości takie jak: underline, overline, line-through oraz blink odnoszą się do właściwości

A. text-align
B. text-decoration
C. font-style
D. font-decoration
Właściwość 'text-align' dotyczy ustawienia wyrównania tekstu w obrębie kontenera. Jej zastosowanie koncentruje się na takich wartościach jak 'left', 'right', 'center' czy 'justify', które wpływają na układ tekstu na stronie, ale nie mają związku z jego dekoracją. Z kolei 'font-style' odnosi się do stylu czcionki, umożliwiając taką manipulację jak kursywa lub normalny styl, jednak nie kontroluje dekoracji tekstu. Z kolei 'font-decoration' nie jest standardową właściwością CSS; błędne jej wykorzystanie może wynikać z nieznajomości konwencji CSS. Właściwości takie jak 'text-decoration' są zdecydowanie bardziej odpowiednie do osiągania zamierzonych efektów wizualnych na tekście. Często początkujący programiści mylą te różne właściwości, co prowadzi do niepoprawnego stylizowania elementów tekstowych. Warto zwrócić uwagę, że każda z wymienionych właściwości ma swoje unikalne zastosowanie i wymagania, dlatego kluczowe jest zrozumienie ich specyfiki oraz kontekstu użycia w projekcie stron internetowych. Prawidłowe stosowanie właściwości CSS jest niezbędne dla zapewnienia estetyki oraz funkcjonalności strony, co jest fundamentalne w nowoczesnym web designie.

Pytanie 22

Zapis CSS w postaci: ```ul{ list-style-image:url('rys.gif');}``` spowoduje, że na stronie internetowej

A. rysunek rys.gif zostanie wyświetlony jako punkt listy nienumerowanej
B. rys.gif będzie służyć jako tło dla nienumerowanej listy
C. każdy element listy zyska indywidualne tło pochodzące z grafiki rys.gif
D. punktorem nienumerowanej listy stanie się rys.gif
W CSS właściwość 'list-style-image' służy do określenia obrazu, który ma być użyty jako znacznik punktu dla list nienumerowanych. W podanym przykładzie zapis 'ul{ list-style-image:url('rys.gif'); }' informuje przeglądarkę, aby zamiast domyślnego punktu, wykorzystała obrazek 'rys.gif'. Oznacza to, że każdy element listy (li) w tej nienumerowanej liście będzie miał przypisany obraz jako punkt. To podejście jest zgodne ze standardami CSS i jest szeroko stosowane w celu dodania indywidualnego stylu do elementów listy. Przykładowo, zamiast tradycyjnego kropkowania, możemy użyć ikon lub obrazów, które lepiej oddają tematykę strony. Ważne jest, aby plik graficzny był dostępny i poprawnie załadowany, co zapewni, że znacznik wyświetli się na stronie. Istotne jest również, aby pamiętać o optymalizacji obrazków dla sieci, co może poprawić szybkość ładowania strony.

Pytanie 23

Poniższy fragment kodu PHP funkcjonuje poprawnie i ma na celu wyświetlenie na stronie internetowej informacji pobranych kwerendą z bazy danych. Ile pól zostanie wyświetlonych na stronie?

$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++) 
{
    $wiersz = mysqli_fetch_row($zapytanie); 
    echo "<p>Klient: $wiersz[0] $wiersz[1], adres: $wiersz[2] </p>";
}
A. Z trzech pól
B. Z czterech pól
C. Z jednego pola
D. Z dwóch pól
Kod PHP wyświetla dane z bazy danych przy użyciu funkcji mysqli_fetch_row, która zwraca wiersz danych jako tablicę. W tym przypadku, wiersz zawiera trzy elementy: '$wiersz[0]', '$wiersz[1]' oraz '$wiersz[2]'. Pierwszy element '$wiersz[0]' odpowiada nazwisku klienta, drugi '$wiersz[1]' to imię klienta, a trzeci '$wiersz[2]' to adres. Wyświetlanie danych w formacie HTML (znacznik <p>) wskazuje, że wszystkie trzy elementy są używane do stworzenia czytelnej prezentacji. W praktyce, korzystanie z mysqli_num_rows do określenia liczby zwróconych wierszy pozwala na dynamiczne przetwarzanie danych z bazy danych, co jest zgodne z najlepszymi praktykami programowania PHP. Zastosowanie pętli for umożliwia iterację przez wszystkie wiersze wynikowe i wyświetlenie ich w odpowiedniej formie. Takie podejście jest powszechnie stosowane przy budowaniu aplikacji webowych, gdzie wyświetlanie danych z bazy jest kluczowym elementem interakcji z użytkownikiem.

Pytanie 24

Aby skutecznie zrealizować algorytm wyznaczający największą z trzech podanych liczb a, b oraz c, wystarczy użyć

A. dwóch warunków
B. dwóch tablic
C. pięciu zmiennych
D. jednej pętli
Wybór innej odpowiedzi na to pytanie może wynikać z nieporozumienia dotyczącego efektywności algorytmów i ich implementacji. Odpowiedź sugerująca jedną pętlę wydaje się atrakcyjna, ale w rzeczywistości, aby znaleźć największą liczbę spośród trzech, nie potrzebujemy iteracji, gdyż liczby można porównać bez konieczności przeszukiwania. Dwie tablice są również zbędne, ponieważ do przechowywania liczb nie potrzebujemy dodatkowych struktur, skoro możemy operować na trzech zmiennych. Sugerowanie pięciu zmiennych jest jeszcze bardziej nieefektywne, ponieważ nie wymaga to dodatkowych miejsc w pamięci, a wręcz komplikowałoby algorytm bez potrzeby. Kluczowym błędem jest założenie, że skomplikowanie algorytmu wiąże się z jego efektywnością. W praktyce, prostota algorytmów często przekłada się na ich wydajność w rzeczywistych zastosowaniach. Użycie zbyt wielu zmiennych lub pętli może prowadzić do zwiększenia złożoności kodu, co obniża jego czytelność i utrudnia przyszłe utrzymanie. W kontekście dobrych praktyk programistycznych, należy zawsze dążyć do jak najprostszych rozwiązań, które wykonują zdefiniowane zadanie efektywnie, co w tym przypadku osiągamy za pomocą dwóch warunków.

Pytanie 25

W systemie MySQL trzeba użyć polecenia REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian jedynie w definicji struktury bazy danych. Odpowiednia komenda do odebrania tych uprawnień ma postać

A. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
C. REVOKE ALL ON tabela1 FROM 'anna'@'locaihost'
D. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
W analizie odpowiedzi, które są niepoprawne, kluczowe jest zrozumienie, jakie uprawnienia są odbierane i dlaczego to ma znaczenie. Odpowiedzi takie jak 'REVOKE ALL ON tabela1 FROM 'anna'@'localhost'' są niewłaściwe, ponieważ polecenie REVOKE ALL odbiera wszystkie prawa użytkownikowi, co może być zbyt drastycznym krokiem. W kontekście zarządzania uprawnieniami, ważne jest, aby podejść do tego z miarą i precyzją, a nie stosować ogólne odbieranie wszystkich praw. Ponadto, odpowiedzi, które obejmują niewłaściwe kombinacje uprawnień, takie jak 'REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'', są również błędne. Odbieranie prawa UPDATE nie jest zgodne z celem pytania, które dotyczy jedynie strukturalnych zmian, a nie wprowadzania danych. Właściwe podejście do konfiguracji uprawnień powinno koncentrować się na ograniczaniu dostępu użytkowników tylko tam, gdzie jest to absolutnie konieczne, a nie na eliminacji ich zdolności do pracy z danymi w ogóle. Użytkownicy często popełniają błąd myślowy, myśląc, że odebranie zbyt wielu uprawnień jest rozwiązaniem problemu bezpieczeństwa, podczas gdy w rzeczywistości może to prowadzić do zablokowania niezbędnych operacji, co zagraża efektywności pracy organizacji.

Pytanie 26

W HTML atrybut alt elementu img służy do określenia

A. parametrów grafiki, takich jak wymiary, ramka, wyrównanie
B. opisu, który pojawi się pod grafiką
C. lokalizacji i nazwy pliku źródłowego grafiki
D. treści, która zostanie pokazana, gdy grafika nie może być załadowana
Atrybut <b>alt</b> znacznika <b>img</b> w języku HTML jest niezwykle istotnym elementem, który ma na celu zapewnienie dostępności treści wizualnych dla użytkowników. Gdy obrazek nie może zostać załadowany (np. z powodu problemów z siecią lub błędnej ścieżki do pliku), tekst zawarty w atrybucie <b>alt</b> zostaje wyświetlony zamiast obrazu. W praktyce oznacza to, że osoba korzystająca z technologii asystujących, takich jak czytniki ekranu, będzie miała możliwość zrozumienia, co miało się pojawić w danym miejscu na stronie. Zgodnie z wytycznymi WCAG (Web Content Accessibility Guidelines), stosowanie atrybutu <b>alt</b> jest kluczowe dla zapewnienia dostępności stron internetowych. Przykładem może być sytuacja, w której na stronie internetowej znajduje się obrazek przedstawiający produkt. Atrybut <b>alt</b> powinien zawierać opis tego produktu, co pozwoli użytkownikom, którzy nie widzą obrazu, zrozumieć jego znaczenie. Prawidłowe użycie atrybutu <b>alt</b> nie tylko poprawia dostępność, ale także może wpłynąć na SEO strony, ponieważ wyszukiwarki traktują ten atrybut jako dodatkowy kontekst dla treści wizualnych.

Pytanie 27

Które z poniższego oprogramowania nie jest zaliczane do systemów zarządzania treścią (CMS)?

A. Joomla
B. WordPress
C. Apache
D. Mambo
Joomla, Mambo i WordPress to przykłady systemów zarządzania treścią, które umożliwiają użytkownikom łatwe tworzenie i zarządzanie treściami na stronach internetowych. Joomla to rozbudowany CMS, który oferuje zaawansowane funkcje zarządzania treścią oraz rozbudowany system rozbudowy za pomocą komponentów i modułów, co czyni go idealnym narzędziem dla średnich i dużych serwisów internetowych. Mambo, będący jednym z pierwszych systemów tego typu, również dostarcza szereg funkcji umożliwiających tworzenie i zarządzanie treściami, jednak został w dużej mierze wycofany na rzecz bardziej nowoczesnych platform, jak Joomla. WordPress, z kolei, jest najpopularniejszym systemem zarządzania treścią na świecie, znanym z prostoty obsługi oraz ogromnej społeczności deweloperów, co pozwala na łatwe dostosowywanie i rozszerzanie funkcji poprzez wtyczki. Każdy z tych systemów jest zaprojektowany z myślą o użytkownikach, którzy chcą efektywnie zarządzać treściami bez konieczności programowania, oferując przy tym różne możliwości personalizacji i wsparcie dla różnych rodzajów treści, co czyni je idealnymi narzędziami w tworzeniu nowoczesnych stron internetowych.

Pytanie 28

W bazie danych znajduje się tabela uczniowie z kolumnami: imie, nazwisko, klasa. Jakie polecenie SQL należy wykorzystać, aby znaleźć imiona oraz nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN 'M%';
B. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = 'M%';
C. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';
D. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN 'M%';
Wybrana odpowiedź jest poprawna, ponieważ używa operatora LIKE, który jest standardowym rozwiązaniem w SQL do wyszukiwania wzorców w danych. W tym przypadku 'M%' oznacza, że chcemy znaleźć wszystkie nazwiska, które zaczynają się na literę M. Operator LIKE jest szczególnie przydatny w sytuacjach, gdy potrzebujemy elastycznego wyszukiwania, umożliwiającego zastosowanie symboli wieloznacznych, takich jak '%' oznaczający dowolną liczbę znaków. Przykład zastosowania tego zapytania może obejmować generowanie listy uczniów dla nauczycieli, którzy chcą szybko zobaczyć wszystkich uczniów z nazwiskiem zaczynającym się na M, co może być przydatne przy organizowaniu wydarzeń czy klas. Dobrą praktyką jest także używanie odpowiednich indeksów w bazie danych, co może znacznie przyspieszyć wykonanie zapytań, zwłaszcza w dużych zbiorach danych. Znajomość operatorów SQL i ich zastosowań, jak również umiejętność formułowania zapytań, jest kluczowa w pracy z relacyjnymi bazami danych.

Pytanie 29

Jaką rolę pełni funkcja PHP o nazwie mysql_select_db()?

A. określić bazę, z której będą pobierane dane
B. pobrać dane z bazy danych na podstawie zapytania
C. określić tabelę, z której będą pobierane informacje
D. nawiązać połączenie bazy danych z serwerem SQL
Funkcja mysql_select_db() służy do określenia, która baza danych będzie używana w kontekście bieżącego połączenia z serwerem MySQL. W momencie, gdy nawiązuje się połączenie z serwerem za pomocą funkcji mysql_connect(), należy jasno zdefiniować, w której bazie danych będą wykonywane zapytania. Właściwe ustawienie aktualnej bazy danych jest kluczowe, ponieważ wszelkie operacje związane z pobieraniem lub modyfikowaniem danych będą odnosiły się tylko do tej wskazanej bazy. Przykładowo, jeżeli mamy bazę danych 'sklep' i chcemy pobrać dane o produktach, najpierw musimy wywołać mysql_select_db('sklep'). Dobrą praktyką jest również sprawdzenie, czy operacja wyboru bazy danych zakończyła się sukcesem, co można zrobić, sprawdzając zwracany wynik. Należy pamiętać, że funkcja mysql_select_db() jest częścią starzejącego się interfejsu MySQL, a w nowoczesnych aplikacjach rekomendowane są bardziej aktualne rozszerzenia, takie jak MySQLi lub PDO, które oferują lepsze możliwości obsługi błędów oraz bezpieczeństwo.

Pytanie 30

Wyrażenie JavaScript:

document.write(5==='5');
Co zostanie wyświetlone?
A. 0
B. true
C. false
D. 1
Odpowiedź 'false' jest jak najbardziej na miejscu, bo operator '===' w JavaScript sprawdza nie tylko wartość, ale i typ danych. Przykład 'document.write(5 === '5');' pokazuje, że porównujemy liczbę (5) z ciągiem znaków ('5'). To są różne typy, więc nie mogą być równe! Generalnie, lepiej używać '===' w programowaniu, bo to eliminuje niejasności, które mogą się pojawić przy '=='. Ten drugi lubi zamieniać typy, co czasami prowadzi do chaosu. Dobrze jest mieć na uwadze, że w obiektowym programowaniu ważne jest, by typy danych się zgadzały. Używając '===', mamy pewność, że unikniemy niechcianych błędów związanych z typami.

Pytanie 31

W PHP zmienna typu float może przyjmować wartości

A. jedynie całkowite.
B. logiczne.
C. zmiennoprzecinkowe.
D. nieliczbowe.
Wybór odpowiedzi związanych z typami danymi innymi niż zmiennoprzecinkowe wskazuje na zrozumienie, że zmienne w PHP mogą przyjmować różne formy, jednakże zatrzymuje się na nieprawidłowych założeniach. Zmienna logiczna, choć istotna, przyjmuje jedynie wartości prawda/fałsz, co nie ma związku z typem float. Z kolei nieliczbowe zmienne, takie jak stringi, również nie są odpowiednie, gdyż nie przechowują wartości liczbowych w formacie zmiennoprzecinkowym. Odpowiedź dotycząca tylko liczb całkowitych także jest nieprawidłowa, gdyż pomija kluczowy aspekt float, którym jest możliwość reprezentacji wartości dziesiętnych. Typowe błędy myślowe prowadzące do takich wniosków często wynikają z niepełnego zrozumienia specyfiki typów danych w PHP oraz ich zastosowań. Zrozumienie, że float to kategoria liczb obejmująca zarówno całkowite jak i dziesiętne, jest fundamentalne dla skutecznego programowania. Właściwe użycie typów danych, w tym float, jest kluczowe dla zapewnienia dokładności i efektywności w obliczeniach, zwłaszcza w kontekście aplikacji wymagających precyzyjnych wartości, takich jak rachunkowość czy nauka.

Pytanie 32

Co uzyskujemy po wykonaniu zapytania SQL?

Ilustracja do pytania
A. całkowitą liczbę uczniów
B. suma ocen uczniów, których średnia ocen wynosi 5
C. średnią wszystkich ocen uczniów
D. liczbę uczniów, których średnia ocen wynosi 5
Zapytanie SQL SELECT count(*) FROM Uczniowie WHERE srednia = 5; wykorzystuje funkcję agregującą count(*), która służy do zliczania liczby wierszy spełniających określone warunki. W tym przypadku warunkiem jest srednia = 5 co oznacza że zapytanie zlicza wszystkich uczniów których średnia ocen wynosi dokładnie 5. Jest to powszechna praktyka w analizie danych gdzie często potrzebujemy określić liczebność pewnych grup danych na przykład aby przeanalizować ich rozkład lub porównać je z innymi grupami. W profesjonalnej bazie danych zliczanie wierszy na podstawie kryteriów jest standardem co umożliwia generowanie raportów i podejmowanie decyzji na podstawie danych. Użycie count(*) bez dodatkowych parametrów jest zgodne z dobrymi praktykami ponieważ jest wydajne i łatwe w interpretacji. W praktyce stosowanie tego typu zapytań jest nieodzowne w działach analizy danych zarządzania relacjami z klientami czy w edukacji gdzie analizujemy wyniki uczniów.

Pytanie 33

Polecenie colspan służy do łączenia komórek tabeli w poziomie, natomiast rowspan w pionie. Którą z tabel wyświetli poniższy fragment kodu napisany w języku HTML?

<table border="1" cellspacing="0" cellpadding="10">
    <tr>
        <td rowspan="2">&nbsp;</td>
        <td>&nbsp;</td>
    </tr>
    <tr>
        <td>&nbsp;</td>
    </tr>
</table>
Ilustracja do pytania
A. B.
B. A.
C. D.
D. C.
Wybrana odpowiedź jest niepoprawna. W pytaniu chodziło o wykorzystanie atrybutów rowspan i colspan w tworzeniu tabel HTML. Atrybuty te służą do łączenia komórek tabeli w pionie i poziomie. W podanym fragmencie kodu HTML widzimy, że pierwsza komórka w pierwszym wierszu ma atrybut rowspan='2', co oznacza, że będzie się rozciągać na dwa wiersze w pionie. Druga komórka w pierwszym wierszu nie ma żadnych specjalnych atrybutów, zatem jest standardową komórką. W drugim wierszu jest tylko jedna komórka, gdyż druga komórka jest połączona z pierwszą komórką pierwszego wiersza przez atrybut rowspan. Opis odpowiada tabeli B, która ma jedną długą komórkę po lewej stronie rozciągającą się na dwa wiersze oraz dwie krótsze komórki po prawej stronie, po jednej w każdym wierszu. Pamiętaj, iż nieprawidłowe użycie atrybutów rowspan i colspan może prowadzić do niezamierzonych rezultatów, takich jak krzywe linie tabeli czy brakujące komórki.

Pytanie 34

Co oznacza w języku C++ przedstawiony fragment kodu?

struct CONTACT
{
std::string nazwisko;
std::string telefon;
int numer;
};
A. Trzy niezależne zmienne
B. Interakcję między zmiennymi lokalnymi a globalnymi
C. Typ strukturalny składający się z trzech pól
D. Organizację zmiennych
Fragment kodu, który przedstawiłeś, dotyczy struktury CONTACT w C++. W sumie fajnie, że w jednym miejscu udało się zebrać różne dane, bo struktury właśnie do tego służą. Mają one trzy pola: dwa typu std::string, czyli nazwisko i telefon, oraz jedno pole typu int, które nazywa się numer. To pole int służy do przechowywania liczb, na przykład identyfikatorów kontaktów. Struktury są super przydatne, bo pozwalają w łatwy sposób zarządzać danymi, które są ze sobą powiązane. W programowaniu obiektowym, jak w C++, to bardzo ważne, by mieć ładnie zorganizowane dane, bo to znacznie ułatwia życie przy większych projektach. Używanie struktur nie tylko poprawia czytelność kodu, ale też pozwala na łatwiejsze przekazywanie danych do funkcji. Różne konwencje, jak ta, że struktury reprezentują obiekty rzeczywiste, naprawdę mogą zwiększać modularność i elastyczność naszego kodu.

Pytanie 35

Podczas edytowania grafiki w programie do obróbki rastrowej należy usunąć kolory z obrazu, aby uzyskać wizualizację w odcieniach szarości. W tym celu można zastosować funkcję

A. filtru rozmycia
B. desaturacji
C. kadrowania
D. szumu RGB
Desaturacja to proces, który polega na usunięciu kolorów z obrazu, co skutkuje uzyskaniem jego wersji w odcieniach szarości. W kontekście edytorów grafiki rastrowej, takich jak Adobe Photoshop lub GIMP, desaturacja jest kluczową funkcją, umożliwiającą szybkie przekształcenie zdjęcia kolorowego w monochromatyczne. Tego typu operacje są szczególnie przydatne w fotografii czarno-białej, w grafice artystycznej oraz w projektowaniu, gdzie kolor może odwracać uwagę od kompozycji lub detali. Aby wykonać desaturację, wystarczy zastosować odpowiednią funkcję menu, co pozwala na łatwe i efektywne pozbycie się kolorów. Dobrą praktyką jest również eksploracja różnych metod desaturacji, takich jak konwersja do skali szarości lub użycie filtrów, które mogą dać różne efekty wizualne. Warto również zaznaczyć, że desaturacja nie jest tym samym co konwersja do odcieni szarości, gdyż może zachować pewne informacje o luminancji, które są istotne w kontekście dalszej obróbki obrazu.

Pytanie 36

W celu wykonania kopii bazy danych biblioteka w systemie MySQL należy w konsoli użyć polecenia

A. mysqldump -u root biblioteka > kopia.sql
B. backupmysql -u root biblioteka kopia.sql
C. mysqlduplicate –u root biblioteka > kopia.sql
D. copymysql –u root biblioteka kopia.sql
W poleceniu do wykonywania kopii bazy danych MySQL kluczowe jest użycie właściwego narzędzia oraz poprawnej składni. W systemach z MySQL standardowym, oficjalnym narzędziem do tworzenia logicznych kopii zapasowych jest program mysqldump. Nazwy takie jak „copymysql”, „backupmysql” czy „mysqlduplicate” po prostu nie istnieją w standardowej dystrybucji MySQL i wynikają raczej z intuicyjnego myślenia typu: skoro chcę skopiować bazę, to pewnie będzie jakaś komenda „copy” albo „backup”. To naturalne skojarzenie, ale niestety oderwane od rzeczywistych narzędzi dostępnych w praktyce administracji bazami danych. MySQL dostarcza konkretny zestaw binariów: mysql (klient), mysqld (serwer), mysqldump (backup), mysqladmin, mysqlimport itd. Nazwa mysqldump jest trochę mało oczywista, ale to właśnie ona jest właściwa do wykonywania zrzutów baz danych. Błędne odpowiedzi sugerują istnienie narzędzi, które brzmieniem przypominają operacje typu „backup” czy „duplicate”, jednak w profesjonalnym środowisku trzymamy się dokładnych nazw binariów i składni opisanej w dokumentacji. W praktyce administracyjnej takie pomyłki kończą się po prostu komunikatem „command not found” w konsoli. Drugi aspekt to samo przekierowanie do pliku. W poprawnym poleceniu używa się znaku „>”, który jest elementem powłoki systemowej, a nie MySQL. To przekierowanie bierze standardowe wyjście programu mysqldump i zapisuje je do wskazanego pliku tekstowego, np. kopia.sql. Jeżeli ktoś pominie to przekierowanie, zobaczy cały zrzut bazy na ekranie, co jest kompletnie niepraktyczne. Jeżeli natomiast spróbuje używać nieistniejących poleceń typu „copymysql … kopia.sql” bez znaku „>”, to ani nie wywoła prawidłowego narzędzia, ani nie zapisze danych we właściwy sposób. Z mojego doświadczenia typowy błąd myślowy polega na traktowaniu MySQL jakby miał wbudowane jakieś „magiczne” polecenie backupu, na wzór prostych programów typu „kopiuj plik”. Baza danych to jednak usługa sieciowa działająca w tle, a kopie wykonuje się przez specjalistyczne narzędzia, które rozumieją jej strukturę, zależności, typy danych i potrafią wygenerować poprawne instrukcje SQL do późniejszego odtworzenia. Dlatego tak ważne jest, żeby zapamiętać nie tylko poprawną odpowiedź, ale i samą ideę: do backupu MySQL używamy mysqldump, z odpowiednimi opcjami, a wynik zapisujemy do pliku przez przekierowanie. To jest zgodne z dokumentacją MySQL i ogólnie przyjętymi dobrymi praktykami w administracji serwerami i bezpieczeństwie danych.

Pytanie 37

Która metoda obiektu location w języku JavaScript pozwala na zamianę aktualnego dokumentu na dokument z adresu podanego w parametrze metody?

A. replace();
B. open();
C. reaload();
D. close();
Wybór metod takich jak open(), close() oraz reload() świadczy o niepełnym zrozumieniu funkcji obiektu location w JavaScript oraz ich zastosowania w kontekście manipulacji dokumentami webowymi. Metoda open() jest używana do otwierania nowych okien przeglądarki lub kart, co nie ma związku z zastępowaniem bieżącego dokumentu. Użytkownicy często mylą tę metodę z funkcjonalnością nawigacyjną, jednak efektem otwarcia nowego okna jest jedynie dodanie nowej instancji, a nie modyfikacja bieżącej. Z kolei close() ma na celu zamknięcie obecnego okna, co również nie odpowiada na potrzebę zmiany dokumentu. Użycie reload() może prowadzić do nieporozumień, gdyż ta metoda odnawia bieżący dokument, ale nie zastępuje go nowym - przeglądarka ponownie ładuje tę samą stronę, co nie spełnia założenia pytania. W praktyce, użytkownik, uznając reload() za właściwe podejście, może napotkać na problemy z wydajnością i użytecznością, gdyż wielokrotne odświeżanie tej samej strony może prowadzić do niepożądanych efektów, takich jak utrata danych w formularzach. Kluczowe jest zrozumienie różnic pomiędzy tymi metodami oraz ich odpowiednim zastosowaniem w kontekście nawigacji i zarządzania historią przeglądarki, co jest istotne dla osiągnięcia optymalnego doświadczenia użytkownika.

Pytanie 38

Prezentowany fragment dokumentu HTML z użyciem JavaScript spowoduje, że po naciśnięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz2.png zostanie zniknięty
B. obraz1.png zostanie wymieniony przez obraz2.png
C. obraz1.png zostanie zniknięty
D. obraz2.png zostanie wymieniony przez obraz1.png
Błędne odpowiedzi opierają się na nieporozumieniach dotyczących działania JavaScript i manipulacji DOM. Wskazanie, że 'obraz1.png' zostanie ukryty, jest niepoprawne, ponieważ w kodzie nie ma żadnej instrukcji odnoszącej się do tego elementu; zmiany dotyczą tylko 'obraz2.png'. Innym błędnym wnioskiem jest twierdzenie, że 'obraz2.png' zostanie zastąpiony przez 'obraz1.png'. Taki scenariusz wymagałby zmiany źródła obrazu, a nie ukrycia elementu. Ponadto, stwierdzenie, że 'obraz1.png' zostanie zastąpiony przez 'obraz2.png', również ignoruje fakt, że w kodzie nie ma operacji przypisania ani zmiany źródła. Zrozumienie, jak JavaScript interaguje z HTML, jest kluczowe dla efektywnego tworzenia stron internetowych. Programiści muszą być świadomi, że ukrywanie elementów nie wpływa na inne elementy w dokumencie, a jedynie zmienia ich styl wyświetlania. Dlatego ważne jest, aby dobrze zrozumieć koncepcje manipulacji DOM oraz różnice między ukrywaniem elementów a ich usuwaniem, co pozwala na bardziej złożone i interaktywne doświadczenia na stronach internetowych.

Pytanie 39

W PHP, aby przekierować użytkownika na inną stronę internetową, można użyć funkcji

A. include();
B. header();
C. require();
D. upload();
Wybór odpowiedzi wykorzystujących funkcje require(), upload() i include() jest nieprawidłowy z kilku powodów. Funkcja require() służy do dołączania plików do skryptu PHP i jest wykorzystywana głównie do wczytywania zewnętrznych skryptów lub bibliotek, co nie ma nic wspólnego z przekierowaniem użytkownika. W przypadku, gdy plik nie zostanie znaleziony, funkcja ta spowoduje błąd krytyczny, a skrypt zatrzyma działanie, co jest niepożądane w kontekście przekierowań. Podobnie, include() działa na zasadzie dołączania plików, ale w przeciwieństwie do require() nie powoduje krytycznego błędu w przypadku braku pliku; zamiast tego wyświetla ostrzeżenie, co również nie jest odpowiednie w kontekście zarządzania nawigacją użytkownika. Co więcej, funkcja upload() nie istnieje w standardowej bibliotece PHP, co czyni tę odpowiedź całkowicie nieprawidłową. Typowe błędy myślowe prowadzące do takich wniosków mogą obejmować mylenie funkcji związanych z dołączaniem plików z funkcjami zarządzającymi nagłówkami i odpowiedziami HTTP. Ważne jest, aby zrozumieć kontekst użycia każdej funkcji oraz jej przeznaczenie, co wpływa na poprawność techniczną skryptów i działanie aplikacji webowych.

Pytanie 40

W HTML zdefiniowano hiperłącze zawierające znak #. Co się wydarzy po kliknięciu na ten odsyłacz?

<a href="#dane"></a>
A. Otworzy się nowa karta przeglądarki o nazwie dane
B. Strona przewinie się do elementu o id równym dane
C. Uruchomi się skrypt o nazwie dane
D. Zostanie wskazany względny adres URL o nazwie dane
W HTML znacznik <a> to taki element, który tworzy hiperłącza. Dzięki nim możesz przeskakiwać po stronie lub między różnymi stronami. Atrybut href wskazuje, dokąd prowadzi to łącze. Jak widzisz, gdy href zaczyna się od #, to znaczy, że przeniesie Cię do konkretnego miejsca na tej samej stronie, które jest oznaczone atrybutem id. Czyli, jeśli masz href="#dane", to strona przewinie się do elementu z id="dane". To bardzo przydatna rzecz, szczególnie na długich stronach, bo zamiast przewijać wszystko, możesz od razu trafić do odpowiedniej sekcji. To zgodne z tymi sztywnymi zasadami W3C, które mówią o tym, że strony powinny być łatwe w obsłudze. Powinieneś też pamiętać, żeby zawsze sprawdzać, czy id, do którego się odnosisz, istnieje. Dzięki temu unikniesz problemów z nawigacją.