Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 28 kwietnia 2026 13:46
  • Data zakończenia: 28 kwietnia 2026 13:56

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

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

W programie do grafiki wektorowej stworzono zaprezentowany kształt, który został uzyskany z dwóch figur: trójkąta oraz koła. Aby utworzyć ten kształt, po narysowaniu figur i ich odpowiednim umiejscowieniu, należy zastosować funkcję

Ilustracja do pytania
A. różnicy
B. wykluczenia
C. sumy
D. rozdzielenia
Różnica w edytorach grafiki wektorowej odnosi się do operacji boolean, która usuwa część jednego kształtu na podstawie innego. Zastosowanie różnicy w tym kontekście nie byłoby poprawne, ponieważ nie dąży się do usunięcia części figury, lecz do ich połączenia. Rozdzielenie to proces odwrotny do łączenia, polegający na dzieleniu złożonych kształtów na mniejsze komponenty, co jest używane, gdy trzeba edytować poszczególne części odrębnie. Wykluczenie to funkcja często używana do tworzenia złożonych masek lub wzorów poprzez uzyskanie obszaru, który nie jest wspólny dla dwu kształtów, co również nie odpowiada naszemu celowi połączenia figur. Typowym błędem przy stosowaniu tych operacji jest brak zrozumienia, że każda z tych funkcji ma specyficzne zastosowania i efekty w grafice wektorowej. Zamiast połączenia w całość, uzyskalibyśmy skomplikowany zestaw kształtów, co mogłoby utrudnić dalszą edycję i optymalizację projektu. Dlatego ważne jest zrozumienie różnic między tymi operacjami, aby efektywnie i precyzyjnie pracować z grafiką wektorową, co jest kluczowe w profesjonalnym środowisku projektowym. Każda z tych funkcji ma swoje miejsce w procesie projektowania, a ich odpowiednie zastosowanie pozwala uzyskać zamierzony efekt w sposób efektywny i zgodny z dobrymi praktykami branżowymi. Zrozumienie tych zasad jest niezbędne dla tworzenia profesjonalnych i funkcjonalnych projektów graficznych.

Pytanie 2

Jakie imiona spełniają warunki klauzuli LIKE w podanym zapytaniu?

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Rafał, Rebeka, Renata, Roksana
B. Arleta, Krzysztof, Krystyna, Tristan
C. Krzysztof, Krystyna, Romuald
D. Gerald, Jarosław, Marek, Tamara
No, więc ta odpowiedź jest totalnie na miejscu, bo klauzula LIKE w SQL służy do szukania ciągów, które pasują do jakiegoś wzoru. W tym przypadku wzór '_r%' mówi nam, że przed literą 'r' musi być dokładnie jeden dowolny znak, a po 'r' może być cokolwiek. Jak spojrzymy na imiona, które wybrałeś, 'Arleta' i 'Krzysztof' mają 'r' na drugiej pozycji, a 'Krystyna' i 'Tristan' na trzeciej. Czyli wszystko się zgadza. W ogóle, klauzula LIKE jest super przydatna w wyszukiwaniu danych, na przykład w aplikacjach, gdy chcemy znaleźć kogoś po imieniu czy nazwisku. A ten symbol '%' to genialny sposób na dopasowywanie, bo pozwala na różne kombinacje. Fajna sprawa, nie?

Pytanie 3

Bitmapa stanowi obraz

A. analogowym
B. rastrowym
C. interakcyjnym
D. wektorowym
Bitmapa, znana również jako obraz rastrowy, jest zbiorem pikseli, gdzie każdy piksel ma przypisaną określoną wartość koloru. Tego rodzaju obrazy są powszechnie stosowane w grafice komputerowej i fotografii cyfrowej. Bitmapy wyróżniają się tym, że ich rozdzielczość jest stała, co oznacza, że powiększanie takiego obrazu skutkuje utratą jakości i pojawieniem się rozmycia. W przeciwieństwie do grafiki wektorowej, która opiera się na matematycznych równaniach i jest skalowalna bez utraty jakości, bitmapy są ograniczone do rozdzielczości, w jakiej zostały utworzone. Przykładem formatów obrazów rastrowych są JPEG, PNG, BMP oraz GIF. Praktyczne zastosowanie bitmap obejmuje edycję zdjęć przy użyciu oprogramowania, takiego jak Adobe Photoshop, gdzie możliwe jest manipulowanie każdym pikselem, co daje dużą swobodę w zakresie tworzenia obrazów. Standardy dotyczące obrazów rastrowych, takie jak sRGB czy Adobe RGB, definiują przestrzenie kolorów, co jest kluczowe dla zapewnienia spójności kolorystycznej w różnych urządzeniach wyświetlających.

Pytanie 4

Program napisany w PHP ma na celu obliczenie średniej pozytywnych ocen ucznia w zakresie od 2 do 6.
Warunek selekcji ocen w pętli liczącej średnią powinien zawierać wyrażenie logiczne

A. $ocena >= 2 and $ocena <= 6
B. $ocena > 2 or $ocena < 6
C. $ocena >= 2 or $ocena <= 6
D. $ocena > 2 and $ocena < 6
Analiza pozostałych odpowiedzi ujawnia szereg nieporozumień dotyczących wykorzystania operatorów logicznych. W przypadku wyrażenia $ocena > 2 or $ocena < 6, pojawia się problem z interpretacją, ponieważ ta konstrukcja pozwalałaby na zaakceptowanie ocen, które są znacznie poniżej 2 lub powyżej 6. Na przykład, ocena 1 spełniałaby ten warunek, co jest absolutnie niezgodne z założeniem dotyczącym obliczania średniej pozytywnych ocen. Podobnie, w odpowiedzi $ocena >= 2 or $ocena <= 6, znowu występuje niebezpieczeństwo, gdyż oceny mniejsze niż 2 lub większe niż 6 również by przeszły, co jest w sprzeczności z oczekiwanym zakresem ocen. Odpowiedź $ocena > 2 and $ocena < 6 nie uwzględnia ocen 2 oraz 6, co znacząco zawęża zakres, a tym samym ogranicza pełen przekrój danych, które powinny być brane pod uwagę przy obliczaniu średniej. Takie błędne podejścia są rezultatem nieprecyzyjnego rozumienia logiki i zakresu danych. Kluczowe jest, aby przy definiowaniu warunków logicznych rozumieć konsekwencje używanych operatorów, co stanowi fundamentalny element programowania. Wybór odpowiednich operatorów i ich logiczne połączenie są kluczowe dla zapewnienia, że w przetwarzanych danych zostaną uwzględnione tylko te wartości, które są zgodne z ustalonymi kryteriami.

Pytanie 5

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

A. font-style
B. font-decoration
C. text-decoration
D. text-align
W języku CSS właściwość text-decoration służy do definiowania stylów dekoracji tekstu. Wartości takie jak underline (podkreślenie), overline (nadkreślenie), line-through (przekreślenie) oraz blink (miganie) są częścią tej właściwości i umożliwiają programistom kontrolowanie, jak tekst jest prezentowany na stronie internetowej. Wartość underline, na przykład, jest powszechnie używana w linkach, aby wskazać, że są one klikalne. Przykład zastosowania: 'text-decoration: underline;' zastosowany w stylach CSS dla elementu <a> sprawia, że tekst linku jest podkreślony. Overline może być używane do dodawania linii nad tekstem, co może być przydatne w kontekście nagłówków lub wyróżnień. Wartość line-through jest często stosowana w przypadku prezentowania informacji o promocjach, gdzie oryginalna cena jest przekreślona. Wartość blink, choć nie jest już szeroko wspierana, mogła być używana w przeszłości do tworzenia efektu migania tekstu. Wszystkie te dekoracje są zdefiniowane w standardzie CSS, co czyni text-decoration kluczową właściwością w stylizacji tekstu w dokumentach HTML.

Pytanie 6

Wskaż sposób oznaczania komentarzy wielowierszowych w kodzie PHP.

A. // treść komentarza
B. <!-- treść komentarza -->
C. / treść komentarza/
D. /* treść komentarza*/
W PHP składnia komentarzy jest bardzo konkretna i dość ściśle określona, więc drobna pomyłka w znakach powoduje, że interpreter nie potraktuje fragmentu jako komentarza, tylko jako zwykły tekst kodu – co zwykle kończy się błędem składni. Wiele osób myli pojęcia z innych technologii, np. z HTML albo z ogólnego zapisu tekstowego, i stąd biorą się nietrafione odpowiedzi. Znak // w PHP oznacza komentarz, ale tylko jednowierszowy. Oznacza to, że wszystko od // do końca danej linii jest ignorowane, ale już kolejna linia jest znowu normalnym kodem. To jest bardzo wygodne do krótkich dopisków obok instrukcji, np. $x = 5; // liczba elementów. Nie można jednak w ten sposób w prosty sposób opisać większego bloku, który zajmuje kilka wierszy, bo każdy z nich musiałby zaczynać się od //. Technicznie da się, ale jest to nieczytelne i w większych projektach wygląda zwyczajnie słabo. Zapis / treść komentarza/ wygląda trochę jak intuicyjna próba „otoczenia” tekstu ukośnikami, ale w składni PHP nie ma takiej konstrukcji. Pierwszy ukośnik jest traktowany jako początek operatora dzielenia, a dalsza część jako coś zupełnie innego, więc interpreter zgłosi błąd. To typowy błąd: ktoś kojarzy, że są jakieś ukośniki przy komentarzach, ale nie pamięta dokładnej kolejności i ilości znaków. Z kolei <!-- treść komentarza --> to składnia komentarza z języka HTML, a nie z PHP. W plikach .php często mieszamy kod PHP z kodem HTML i wtedy łatwo się pomylić, ale warto to rozdzielać w głowie: gdy jesteśmy „w środku” PHP, czyli pomiędzy znacznikami <?php i ?>, obowiązują zasady komentarzy z PHP: //, # oraz /* */. Natomiast gdy piszemy czysty HTML (poza blokiem PHP), wtedy używamy komentarza <!-- -->. Przenoszenie składni HTML do PHP po prostu nie zadziała, bo interpreter PHP tego nie rozumie. Dobra praktyka jest taka, żeby świadomie wybierać rodzaj komentarza: // lub # do krótkich, jednowierszowych uwag oraz /* */ do dłuższych opisów, dokumentacji funkcji i klas. Mieszanie składni z różnych technologii albo wymyślanie własnych „ozdobnych” wariantów kończy się błędami i trudnym do utrzymania kodem. W programowaniu webowym, szczególnie w PHP, precyzyjna składnia komentarzy to drobiazg, ale bez niej szybko pojawiają się trudne do zlokalizowania problemy, więc warto mieć to dobrze poukładane.

Pytanie 7

Jaką wartość przyjmie zmienna $a po wykonaniu poniższej sekwencji poleceń w języku PHP?

$a = 1; $a++; $a += 10; --$a;
A. 12
B. 11
C. 1
D. 10
Niepoprawna odpowiedź, ale nie przejmuj się, pomyłki zdarzają się. W tym przypadku warto zrozumieć, jak działają operacje matematyczne w języku PHP. W kodzie PHP, kiedy mamy sekwencję operacji, są one wykonywane od lewej do prawej. Najpierw inicjalizujemy zmienną wartością 1, następnie zwiększamy tę wartość o 1 (co daje nam 2), dodajemy do niej 10 (co daje nam 12), a na końcu pomniejszamy tę wartość o 1 (co daje nam 11). Jeśli wybrałeś odpowiedź 12, to być może pominąłeś ostatnią operację, którą jest odjęcie 1. Jeśli wybrałeś odpowiedź 10, to prawdopodobnie zignorowałeś operację dodawania 10. A jeśli wybrałeś odpowiedź 1, to być może nie zrozumiałeś, że operacje są wykonane sekwencyjnie, a nie izolowane.

Pytanie 8

Pierwszym etapem w procesie konwersji sygnału analogowego na cyfrowy jest

A. kodowanie
B. filtracja
C. kwantyzacja
D. próbkowanie
Filtrowanie i próbkowanie to dwa różne procesy, chociaż czasem można się pogubić. Filtrowanie polega na tym, że usuwamy niechciane częstotliwości z sygnału analogowego przed jego próbkowaniem. Jak nie zrobimy tego dobrze, sygnał może mieć różne zakłócenia, które później popsują wyniki próbkowania. Kodowanie to już inna bajka, bo tu przekształcamy wartości, które próbkowaliśmy, na format binarny. Kwantyzacja z kolei to proces wygładzania tych wartości do najbliższych punktów. Niektórzy mylą te procesy i myślą, że są takie same, a to błąd! One wszystkie są ważne i muszą zachodzić w odpowiedniej kolejności, żeby sygnał cyfrowy wiernie odwzorował sygnał analogowy. Musimy też pamiętać o standardach, jak Nyquist-Shannon, żeby wszystko działało jak należy.

Pytanie 9

Aby dostosować dźwięk do określonego poziomu głośności, należy zastosować efekt

A. wyciszenia
B. podbicia basów
C. usuwania szumów
D. normalizacji
Normalizacja to proces, który polega na dostosowywaniu poziomu głośności nagrania audio, tak aby maksymalny sygnał osiągał określony poziom, najczęściej bliski maksymalnej wartości dostępnej dla formatu audio. Normalizacja dźwięku może być zastosowana zarówno do pojedynczych ścieżek, jak i do całych projektów, co pozwala na uzyskanie spójności głośności w różnych utworach. W praktyce oznacza to, że nagrania są przetwarzane tak, aby największy dźwięk nie przekraczał ustalonego progu, co zapobiega zniekształceniom i pogorszeniu jakości dźwięku. Standardowe poziomy normalizacji obejmują wartości takie jak -1 dBFS, które zapewniają odpowiednią przestrzeń dla dynamicznych szczytów dźwięku. Przykładem zastosowania normalizacji jest przygotowywanie playlisty do transmisji radiowej, gdzie wszystkie utwory muszą być na podobnym poziomie głośności, aby zapewnić komfort słuchania. W branży muzycznej normalizacja jest kluczowym procesem, który zapewnia nie tylko odpowiednią jakość dźwięku, ale i profesjonalny odbiór nagrań przez słuchaczy.

Pytanie 10

Tablica tab[] jest wypełniona dowolnymi liczbami całkowitymi. Jaka wartość znajdzie się w zmiennej zm2 po wykonaniu prezentowanego fragmentu kodu?

int tab[10];
int zm1 = 0;
double zm2 = 0;

for (int i=0; i < 10; i++)
{
  zm1 = zm1 + tab[i];
}
zm2 = zm1 / 10;
A. Średnia geometryczna liczb od 0 do 9.
B. Suma liczb od 1 do 10.
C. Średnia arytmetyczna elementów tablicy.
D. Suma elementów tablicy.
Wynik zmiennej zm2 w przedstawionym kodzie to średnia arytmetyczna wartości znajdujących się w tablicy tab. Proces obliczania średniej arytmetycznej polega na zsumowaniu wszystkich elementów tablicy i podzieleniu tej sumy przez liczbę elementów. W tym przypadku zmienna zm1 akumuluje sumę wszystkich wartości tablicy tab, a następnie zmienna zm2 jest obliczana jako zm1 podzielone przez 10, co odpowiada liczbie elementów w tablicy. To podejście jest zgodne z dobrą praktyką programistyczną, ponieważ umożliwia efektywne obliczenie średniej, co jest powszechnie stosowane w analizie danych. W praktycznych zastosowaniach, takich jak przetwarzanie danych finansowych czy naukowych, umiejętność obliczania średnich jest kluczowa, umożliwiając podejmowanie świadomych decyzji na podstawie statystyk. Dodatkowo, warto zauważyć, że dla tablicy różnych typów danych, takich jak float czy double, technika obliczania średniej pozostaje taka sama, aczkolwiek wymaga uwzględnienia precyzji obliczeń.

Pytanie 11

Wskaż przycisk sformatowany przedstawionym stylem CSS.

#przycisk {
    background-color: white;
    padding: 10px;
    border-width: 2px;
    border-bottom-style: dashed;
}



Przycisk 1

Przycisk 2

Przycisk 3

Przycisk 4
A. Przycisk 1
B. Przycisk 3
C. Przycisk 2
D. Przycisk 4
Niestety, twoja odpowiedź nie była prawidłowa. Wybór innego przycisku niż Przycisk 2 sugeruje, że mogłeś nie do końca zrozumieć, jak działa selekcja i stylizacja elementów za pomocą CSS. Białe tło, odstęp wewnętrzny 10 pikseli, szerokość obramowania 2 piksele oraz przerywana dolna krawędź obramowania są elementami, które zostały ustawione w stylach CSS dla przycisku 2. Pozostałe przyciski miały inne cechy, które nie były zgodne z opisanym stylem CSS. Przy niewłaściwym wyborze przycisku lub innego elementu do stylizacji, strona może nie wyglądać zgodnie z zamierzeniem, co może negatywnie wpłynąć na doświadczenie użytkownika. Dlatego ważne jest, aby zrozumieć, jak działa selekcja i stylizacja CSS. Pamiętaj, że zrozumienie CSS to klucz do tworzenia atrakcyjnych i funkcjonalnych projektów webowych.

Pytanie 12

W CSS, żeby uzyskać efekt kursywy dla tekstu, należy zastosować właściwość

A. font-size
B. font-variant
C. font-family
D. font-style
W języku CSS, aby uzyskać efekt pochylenia tekstu, należy zastosować właściwość font-style, która umożliwia określenie stylu czcionki. Właściwość ta ma kilka wartości, z których najczęściej używaną jest 'italic', która pochyla tekst w sposób naturalny, przypominający ręczne pismo. Można także użyć wartości 'oblique', która również powoduje pochylenie, ale w nieco inny sposób, dając efekt bardziej syntetyczny. Przykładem może być następujący kod CSS: p { font-style: italic; }. Wartości te są zgodne z dokumentacją W3C, która definiuje standardy CSS. Użycie font-style jest kluczowe w projektowaniu responsywnych stron internetowych, gdzie estetyka i typografia odgrywają istotną rolę w odbiorze wizualnym. Pochylenie tekstu może być także użyte do wyróżniania cytatów lub nazw własnych, co zwiększa czytelność i przejrzystość dokumentu. Dobrą praktyką jest również testowanie stylów na różnych przeglądarkach, aby upewnić się, że efekt pochylenia jest zgodny z oczekiwaniami we wszystkich środowiskach.

Pytanie 13

Wynikiem realizacji kwerendy

SELECT sezon, SUM(liczba_dn) FROM rezerwacje GROUP BY sezon;
na podstawie poniższej tabeli rezerwacje jest:
A. lato 10, zima 4, lato 5, zima 6, lato 5, zima 9, zima 8
B. lato 20, zima 27
C. lato 10, 5, 5; zima 4, 6, 9, 8
D. lato 3, zima 4
Analiza błędnych odpowiedzi wskazuje na niezrozumienie zasad działania kwerend SQL, szczególnie w kontekście zagregowanych wyników. Odpowiedź sugerująca lato 3, zima 4, 6, 9, 8 jest niepoprawna, ponieważ nie sumuje dni, a jedynie przedstawia liczby, które są w rzeczywistości liczbą dni w sezonach. Może to wynikać z błędnej interpretacji funkcji GROUP BY, która ma na celu zebranie wyników w grupy przed zastosowaniem funkcji agregujących. Kolejna odpowiedź myli pojęcie grupowania i agregacji, podając szczegółowe wartości bez ich sumowania, co nie jest zgodne z logiką kwerendy. W SQL, funkcja SUM nie jest używana do wyodrębnienia poszczególnych wartości, ale do obliczenia ich łącznej wartości w ramach grupy. Ostatnia niepoprawna odpowiedź, która z kolei podaje poszczególne dni rezerwacji dla obu sezonów, również nie spełnia wymogu zsumowania danych. Podobnie jak w poprzednich przypadkach, brak zrozumienia, jak działają agregacje w SQL, prowadzi do wniosków, które są niezgodne z pojęciem zorganizowanej analizy danych. Dlatego niezwykle ważne jest, aby przy pracy z danymi zrozumieć, jak funkcje agregujące wpływają na zbieranie informacji oraz w jaki sposób odpowiednie grupowanie i przetwarzanie danych może dostarczyć użytecznych informacji dla różnych analiz biznesowych.

Pytanie 14

Po zrealizowaniu polecenia SQL użytkownik Ela zyska możliwość wykorzystania poniższych uprawnień:

GRANT SELECT, INSERT, UPDATE, DELETE ON baza1.tab1 TO 'Ela'@'localhost';
A. tylko dodawać oraz zmieniać dane
B. przeprowadzać wszystkie operacje na danych
C. tylko tworzyć i zmieniać strukturę tabeli
D. realizować wszystkie działania na strukturze danych
Poprawna odpowiedź to możliwość wykonywania wszystkich akcji na danych przyznanych przez polecenie GRANT. W kontekście SQL, uprawnienia SELECT, INSERT, UPDATE oraz DELETE dają użytkownikowi pełną kontrolę nad danymi w tabeli. Dzięki uprawnieniu SELECT użytkownik może przeglądać dane, a INSERT umożliwia dodawanie nowych rekordów. Z kolei UPDATE pozwala na modyfikację istniejących danych, natomiast DELETE umożliwia ich usunięcie. Przykładowo, jeśli użytkownik Ela chce prowadzić analizy danych, korzystając z SELECT, a następnie wprowadzać poprawki lub dodawać nowe dane, polecenie to daje jej odpowiednie narzędzia do ich realizacji. W praktyce, wydawanie uprawnień dla użytkowników w bazach danych powinno być zgodne z zasadą minimalnych uprawnień, co oznacza, że użytkownicy powinni otrzymywać tylko te uprawnienia, które są konieczne do wykonywania ich zadań. Dzięki temu zwiększa się bezpieczeństwo bazy danych i zmniejsza ryzyko nieautoryzowanego dostępu.

Pytanie 15

Jaką rozdzielczość określa jednostka ppi (ang. pixels per inch)?

A. Obrazów generowanych przez drukarki i plotery
B. Obrazów bitmapowych.
C. Cyfrowych przyrządów dokonujących pomiarów.
D. Skanujących urządzeń.
Skanery są urządzeniami, które przetwarzają obrazy z analogowych źródeł na format cyfrowy, ale nie są bezpośrednio związane z rozdzielczością wyrażaną w ppi. Często mylnie zakłada się, że skanery działają na podobnych zasadach jak drukarki, jednak ich rozdzielczość jest mierzone w dpi (dots per inch), co odnosi się do punktów na cal, a nie pikseli. Obrazy rastrowe, chociaż mają swoje zastosowanie w kontekście ppi, nie są jedynym kontekstem dla tej jednostki. Rozdzielczość obrazów rastrowych odnosi się do ich jakości i szczegółowości, jednak ppi jest najczęściej używane w kontekście druku, a nie w samym tworzeniu obrazów rastrowych. Cyfrowe urządzenia wykonujące pomiary mogą mieć różne zastosowania, ale również nie odnoszą się do ppi w kontekście ich działania czy wydajności. Rozumienie, jak różne urządzenia i techniki pomiarowe używają różnych jednostek miary do określania rozdzielczości, jest kluczowe dla prawidłowego zrozumienia tematu. W branży graficznej oraz drukarskiej ważne jest, aby właściwie interpretować te jednostki oraz ich zastosowania w praktyce.

Pytanie 16

var obj1 = {     czescUlamkowa: 10,     czescCalkowita: 20,     oblicz: function) {...} } Kod przedstawiony powyżej jest zapisany w języku JavaScript. W podanej definicji obiektu, metodą jest element o nazwie

A. oblicz
B. obj1
C. czescCalkowita
D. czescUlamkowa
Wiesz co? W definicji obiektu w JavaScript, metoda to po prostu funkcja, która jest przypisana do jakiegoś klucza w obiekcie. Mamy tutaj obiekt obj1, który ma dwie właściwości: czescUlamkowa i czescCalkowita, a do tego jedną metodę, czyli oblicz. Metody to taki ważny temat w programowaniu obiektowym, bo pozwalają manipulować danymi, które są w obiekcie. W naszym przypadku, ta metoda oblicz może robić różne obliczenia, na przykład sumować te nasze właściwości. Można ją zdefiniować tak: obj1.oblicz = function() { return this.czescUlamkowa + this.czescCalkowita; }. Kiedy potem wywołasz obj1.oblicz(), dostaniesz wynik 30. To jest właśnie to, jak metody działają na danych obiektów i czemu są niezastąpione, zwłaszcza w JavaScript czy ECMAScript.

Pytanie 17

W celu przeniesienia strony internetowej na serwer, można wykorzystać program

A. FileZilla
B. CloneZilla
C. Go!Zilla
D. Bugzilla
FileZilla to oprogramowanie typu FTP (File Transfer Protocol), które jest powszechnie używane do przesyłania plików pomiędzy lokalnym komputerem a serwerem. Jest to narzędzie open-source, które obsługuje zarówno FTP, jak i SFTP (SSH File Transfer Protocol), co czyni je wszechstronnym rozwiązaniem dla transferu plików w bezpieczny sposób. Dzięki intuicyjnemu interfejsowi użytkownika, który przypomina popularne menedżery plików, użytkownicy mogą łatwo przeglądać lokalne i zdalne systemy plików, co znacznie ułatwia transfer danych. Przykładem zastosowania może być sytuacja, w której deweloper webowy musi przesłać pliki witryny internetowej do nowego serwera. W takim przypadku FileZilla pozwala na szybki i efektywny transfer z minimalnym ryzykiem błędów. Ponadto, FileZilla wspiera różne protokoły uwierzytelniania, co zwiększa bezpieczeństwo przesyłanych plików. Używanie FileZilla jest zgodne z najlepszymi praktykami branżowymi, ponieważ narzędzie to jest regularnie aktualizowane i wspiera standardy bezpieczeństwa, co czyni je niezawodnym wyborem dla profesjonalnych administratorów systemów.

Pytanie 18

Które dane zostaną wybrane w wyniku działania kwerendy na przedstawionych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";
idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Identyfikatory równe 7 oraz 8.
B. Brak danych.
C. Tylko identyfikator równy 8.
D. Wszystkie identyfikatory.
Prawidłowa odpowiedź wskazuje, że w wyniku działania kwerendy zostaną wybrane rekordy z id równymi 7 oraz 8, ponieważ oba te roczniki zaczynają się cyfrą 2 i kończą na 4, co spełnia warunek LIKE '2%4'. W SQL operator LIKE umożliwia wyszukiwanie wzorców w danych tekstowych i jest bardzo użyteczny w sytuacjach, gdy nieznana jest pełna wartość, a tylko jej część. W praktycznych aplikacjach, takich jak systemy zarządzania bazami danych, często stosuje się ten operator do filtrowania wyników na podstawie niepełnych informacji. Na przykład, jeżeli chciałbyś zidentyfikować wszystkie pojazdy z określonym rocznikiem, użycie LIKE może szybko zawęzić wyniki. Używanie tego operatora w połączeniu z innymi funkcjami SQL, jak GROUP BY czy JOIN, pozwala na kompozycję bardziej złożonych zapytań, co jest standardem w analityce danych.

Pytanie 19

GRANT CREATE, ALTER ON sklep.* TO adam; Zakładając, że użytkownik adam nie dysponował wcześniej żadnymi uprawnieniami, to polecenie SQL przyzna mu prawa jedynie do

A. tworzenia oraz modyfikacji struktury w tabeli sklep
B. tworzenia oraz modyfikacji struktury wszystkich tabel w bazie sklep
C. wstawiania oraz modyfikacji danych w tabeli sklep
D. wstawiania oraz modyfikacji danych we wszystkich tabelach bazy sklep
Polecenie SQL 'GRANT CREATE, ALTER ON sklep.* TO adam;' przyznaje użytkownikowi adam prawa do tworzenia i modyfikowania struktury wszystkich tabel w bazie danych o nazwie 'sklep'. W kontekście zarządzania bazami danych, przyznawanie takich uprawnień jest kluczowe dla realizacji zadań związanych z projektowaniem i rozbudową bazy. Przykładowo, gdyby adam potrzebował dodać nową kolumnę do istniejącej tabeli lub utworzyć nową tabelę, mógłby to zrobić dzięki tym prawom. Z perspektywy bezpieczeństwa, nadawanie takich uprawnień powinna być starannie przemyślane, aby uniknąć nieautoryzowanych zmian w strukturze bazy. W praktyce, w sytuacjach, gdy wiele osób współpracuje nad projektem, zaleca się przyznawanie minimalnych uprawnień, które są niezbędne do wykonania określonych zadań. W związku z tym, wykorzystanie polecenia GRANT w sposób odpowiadający wymaganiom projektu jest najlepszą praktyką w zakresie administracji bazami danych.

Pytanie 20

Strona internetowa została stworzona w języku XHTML. Który z poniższych kodów reprezentuje realizację zaprezentowanego fragmentu strony, jeśli nie zdefiniowano żadnych stylów CSS?

Ilustracja do pytania
A. C
B. A
C. B
D. D
Odpowiedź B jest prawidłowa, ponieważ wykorzystuje znaczniki zgodne ze standardem XHTML do prawidłowego formatowania tekstu. W XHTML zaleca się używanie semantycznych znaczników takich jak <h1> dla nagłówków, co poprawia strukturę dokumentu i ułatwia jego interpretację przez przeglądarki oraz inne urządzenia czytające. Dodatkowo użycie znacznika <p> do oddzielenia akapitów jest zgodne z zaleceniami dotyczącymi dostępności i poprawności kodu. To również sprzyja lepszemu SEO, ponieważ wyszukiwarki lepiej rozumieją znaczenie semantycznych znaczników. Warto również wspomnieć o dobrych praktykach, takich jak zamykanie znaczników oraz stosowanie małych liter w nazwach znaczników, co zwiększa kompatybilność z przeglądarkami oraz zgodność ze standardami W3C. XHTML, jako język oparty na XML, wymaga bardziej restrykcyjnej składni, co jest spełnione w kodzie przedstawionym w odpowiedzi B. Dzięki temu zapewnia się lepszą walidację i niezawodność działania strony internetowej.

Pytanie 21

Który efekt został zaprezentowany na filmie?

A. Zmniejszenie kontrastu zdjęcia.
B. Zwiększenie ostrości zdjęcia.
C. Zmiana jasności zdjęć.
D. Przenikanie zdjęć.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 22

Została stworzona baza danych z tabelą podzespoły, która zawiera pola: model, producent, typ, cena. W celu wyświetlenia wszystkich modeli pamięci RAM od firmy Kingston w porządku rosnącym według ceny, należy skorzystać z następującej kwerendy:

A. SELECT model FROM podzespoly WHERE typ='RAM' OR producent='Kingston' ORDER BY cena DESC
B. SELECT model FROM podzespoly WHERE typ='RAM' AND producent='Kingston' ORDER BY cena ASC
C. SELECT model FROM podzespoly WHERE typ='RAM' AND producent='Kingston' ORDER BY cena DESC
D. SELECT model FROM producent WHERE typ='RAM' OR producent='Kingston' ORDER BY podzespoly ASC
Aby skutecznie wyświetlić wszystkie modele pamięci RAM firmy Kingston w kolejności od najtańszej do najdroższej, konieczne jest zrozumienie składni zapytań SQL oraz zasad filtrowania danych w bazie danych. Kwerenda SELECT model FROM podzespoly WHERE typ='RAM' AND producent='Kingston' ORDER BY cena ASC; jest poprawna, ponieważ precyzyjnie określa, że chcemy wybrać pole 'model' z tabeli 'podzespoly', gdzie warunki są spełnione dla typu 'RAM' oraz producenta 'Kingston'. Kluczowym aspektem jest użycie operatora AND, który zapewnia, że oba warunki muszą być spełnione, co pozwala na uzyskanie dokładnych wyników. Następnie, zastosowanie klauzuli ORDER BY cena ASC pozwala na posortowanie wyników w kolejności rosnącej według ceny, co jest istotne dla użytkowników poszukujących najtańszych opcji. Przykładem zastosowania tej kwerendy w praktyce może być analiza konkurencyjności cenowej produktów na rynku pamięci RAM, co jest istotne dla sprzedawców i konsumentów. W kontekście standardów SQL, konstrukcja ta przestrzega zasad definiowanych przez ANSI SQL, co czyni ją zgodną z większością systemów zarządzania bazami danych.

Pytanie 23

W języku PHP w konstrukcji switch powinno się znajdować

A. instrukcja break po każdej instrukcji case
B. instrukcja default
C. przynajmniej dwie instrukcje case
D. konstrukcja switch(wyrażenie)
Wybór odpowiedzi, która sugeruje, że instrukcja default jest wymagana w konstrukcji switch, jest błędny z kilku powodów. Po pierwsze, instrukcja default jest opcjonalna, a jej obecność jest uzasadniona tylko w przypadku, gdy chcemy zdefiniować domyślne działanie, gdy żaden z przypadków nie pasuje do wartości wyrażenia. Brak default nie wpływa na poprawność działania switch. Co więcej, wiele programistów decyduje się na pominięcie tej instrukcji, gdyż nie ma takiej potrzeby. Kolejną niepoprawną odpowiedzią jest twierdzenie, że w switch musi występować przynajmniej dwie instrukcje case. W rzeczywistości konstrukcja switch może składać się z jednego przypadku, co oznacza, że programista ma pełną swobodę w definiowaniu liczby użytych case'ów, w zależności od potrzeb aplikacji. Ostatni błędny wybór odnosi się do konieczności użycia instrukcji break po każdej instrukcji case. Choć stosowanie break jest dobrą praktyką, ponieważ zapobiega 'spadaniu' do kolejnych case'ów, jego brak nie czyni całej konstrukcji switch nieważną. Gdy break nie jest użyty, kod przechodzi do kolejnych instrukcji case, co może prowadzić do niezamierzonych wyników, ale nie wpływa na samą poprawność konstrukcji switch. Dlatego wszystkie te odpowiedzi są niepoprawne w kontekście wymagań dotyczących stosowania instrukcji switch w PHP.

Pytanie 24

Jaką złożoność obliczeniową posiada algorytm znajdowania elementu w nieposortowanej jednowymiarowej tablicy?

A. stałą, O(1)
B. kwadratową, O(n2)
C. liniową, O(n)
D. silnia, O(n!)
Wybierając odpowiedzi niepoprawne, można natknąć się na różne złożoności obliczeniowe, które nie odnoszą się do algorytmu wyszukiwania elementu w nieposortowanej tablicy. Złożoność kwadratowa, O(n2), dotyczy algorytmów, które muszą porównywać każdy element z każdym innym, co najczęściej występuje w algorytmach sortujących, takich jak sortowanie bąbelkowe, gdzie liczba porównań rośnie wraz z kwadratem liczby elementów. Z kolei złożoność silni, O(n!), występuje w kontekście problemów kombinatorycznych, takich jak generowanie permutacji, co oznacza, że liczba operacji wzrasta niezwykle szybko w miarę zwiększania się liczby elementów, ale nie jest odpowiednia dla prostych algorytmów wyszukiwania. Złożoność stała, O(1), sugeruje, że operacja zajmuje tę samą ilość czasu niezależnie od rozmiaru danych, co w przypadku wyszukiwania w nieposortowanej tablicy nie jest możliwe, ponieważ musimy przejrzeć co najmniej jeden element. Te błędne odpowiedzi wynikają z nieporozumień na temat działania algorytmów w kontekście różnych struktur danych oraz z mylnego utożsamiania złożoności z ich zastosowaniem. Zrozumienie różnicy między tymi złożonościami jest kluczowe dla efektywnego projektowania algorytmów oraz oceny ich wydajności w różnych scenariuszach.

Pytanie 25

Zapytanie SQL o treści: UPDATE artykuly SET cena = cena * 0.7 WHERE kod = 2; wskazuje na

A. dodanie w tabeli artykuly nowych pól cena oraz kod
B. w tabeli artykuly zmniejsza wartość każdego pola cena, dla którego pole kod ma wartość 2
C. w tabeli artykuly obniża wartość każdego pola cena o 30% dla wszystkich rekordów artykułów
D. dodanie w tabeli artykuly pola o nazwie cena z atrybutem kod
Ten kod SQL, czyli 'UPDATE artykuly SET cena = cena * 0.7 WHERE kod = 2;', służy do zaktualizowania ceny w tabeli 'artykuly' dla rekordów, gdzie 'kod' ma wartość 2. Fajnie, że rozumiesz, że z użyciem komendy 'UPDATE' nie dodajemy nowych pól, tylko zmieniamy te już istniejące. Mnożenie ceny przez 0.7 oznacza, że obniżamy ją o 30%, co jest dość powszechnie stosowane w przypadku promocji. Dzięki temu możemy lepiej zarządzać cenami w bazie danych. Warto też pamiętać, że klauzula 'WHERE' jest super ważna, bo pozwala nam ograniczyć działanie tego polecenia tylko do wybranych rekordów. W przeciwnym razie mogłoby się zdarzyć, że obniżylibyśmy ceny wszystkich produktów, co mogłoby być niebezpieczne. Dobrze wiedzieć, w jaki sposób korzystać z tych komend, bo to zdecydowanie ułatwia pracę z danymi.

Pytanie 26

W relacyjnych bazach danych encja jest przedstawiana przez

A. rekord.
B. kwerendę.
C. relację.
D. tabelę.
W relacyjnych bazach danych encja jest reprezentowana przez tabelę, co jest zgodne z fundamentalnymi zasadami modelu relacyjnego, zaproponowanego przez Edgara F. Codda. Tabela składa się z wierszy (rekordów) oraz kolumn (atrybutów), gdzie każdy wiersz odpowiada jednej instancji encji, a kolumny definiują jej cechy. Na przykład, tabela "Klienci" może zawierać kolumny takie jak "ID", "Imię", "Nazwisko" i "Email", gdzie każdy wiersz reprezentuje konkretnego klienta. Zastosowanie tabel jako reprezentacji encji pozwala na łatwe tworzenie relacji między danymi, co jest kluczowe w relacyjnych bazach danych. Przykłady takie jak użycie kluczy obcych do łączenia tabel świadczą o praktycznej aplikacji tej zasady w projektowaniu baz danych, co sprzyja spójności i integralności danych. Dobre praktyki baz danych zalecają także normalizację tabel, co pomaga w eliminacji redundancji i poprawie efektywności danych, co czyni tę koncepcję nie tylko teoretyczną, ale również praktyczną w codziennej pracy z bazami danych.

Pytanie 27

W aplikacji webowej komunikat powinien być wyświetlany jedynie w przypadku, gdy dany użytkownik odwiedza stronę po raz pierwszy. Którą funkcję PHP należy wykorzystać w tym celu?

A. mysqli_change_user
B. session_destroy
C. define
D. setcookie
Odpowiedzi, które nie odnoszą się do funkcji setcookie, mylą zastosowanie różnych mechanizmów PHP i ich funkcji. Użycie funkcji define służy do definiowania stałych, co nie ma związku z zarządzaniem stanem sesji lub ciasteczkami. Stałe są używane do przechowywania wartości, które nie zmieniają się podczas działania skryptu i nie mogą być użyte do przechowywania informacji o stanie użytkownika. Również session_destroy jest funkcją, która kończy aktualną sesję użytkownika, co oznacza, że wszelkie dane sesyjne zostaną usunięte. Nie jest to jednak odpowiednie w tym kontekście, ponieważ celem jest kontrolowanie wyświetlania komunikatu, a nie usuwanie sesji. Ponadto, mysqli_change_user służy do zmiany aktualnego użytkownika bazy danych, co w ogóle nie ma związku z wyświetlaniem komunikatów w aplikacji webowej. Typowym błędem jest mylenie różnych mechanizmów przechowywania danych, takich jak sesje, ciasteczka i stałe, co prowadzi do nieefektywnego zarządzania stanem aplikacji. Ważne jest, aby zrozumieć, że ciasteczka są bardziej odpowiednie w tym przypadku, gdyż pozwalają na śledzenie stanu użytkownika pomiędzy sesjami. Niezrozumienie różnicy pomiędzy tymi mechanizmami może doprowadzić do nieefektywnego projektowania aplikacji, w której użytkownik doświadcza złej interakcji, a deweloperzy tracą czas na debugowanie problemów związanych z sesjami i ich danymi.

Pytanie 28

Podane w ramce polecenie SQL ma za zadanie

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. zwiększyć o jeden wartość pola id_klasy w jednym rekordzie tabeli Uczen
B. zwiększyć o jeden wartość w kolumnie id_klasy dla wszystkich rekordów tabeli Uczen
C. ustawić wartość pola id_klasy na 1 dla wszystkich rekordów tabeli Uczen
D. ustawić wartość w kolumnie id_klasy na 1 dla wszystkich rekordów tabeli Uczen
Analizując to polecenie SQL, warto na spokojnie rozłożyć je na części, bo większość nieporozumień bierze się z mylenia stałej wartości z wyrażeniem oraz z niezauważenia braku klauzuli WHERE. W zapisie UPDATE Uczen SET id_klasy = id_klasy + 1; po lewej stronie znaku równości mamy kolumnę, którą aktualizujemy, a po prawej – wyrażenie, które określa nową wartość. To wyrażenie nie jest stałą liczbą 1, tylko operacją: bieżąca wartość id_klasy plus 1. Dlatego nie można tego interpretować jako „ustaw wartość na 1”. Gdyby celem było ustawienie identycznej wartości dla wszystkich uczniów, składnia wyglądałaby np. tak: UPDATE Uczen SET id_klasy = 1; i wtedy rzeczywiście każdemu rekordowi przypisano by dokładnie 1, bez użycia dotychczasowej wartości. Druga częsta pomyłka dotyczy zakresu działania UPDATE. W SQL to klauzula WHERE zawęża liczbę modyfikowanych rekordów. Jeśli WHERE nie ma, silnik bazy danych zgodnie ze standardem SQL przyjmuje, że operacja dotyczy wszystkich wierszy tabeli. Nie istnieje domyślne założenie „tylko jeden rekord”, chyba że jawnie wskażemy warunek, który zwróci pojedynczy wiersz, np. WHERE id_ucznia = 5. Dlatego interpretacja, że polecenie zmienia tylko jeden rekord, jest po prostu sprzeczna z tym, jak działa mechanizm UPDATE. Z mojego doświadczenia typowy błąd myślowy polega na tym, że ktoś patrzy na przykład z dokumentacji, gdzie często pojawia się WHERE, i podświadomie zakłada, że on tam „zawsze jest”. A tu go po prostu nie ma, więc działanie jest globalne. Drugi błąd to utożsamianie zapisu „+ 1” z „ustaw na 1”, co jest bardzo niebezpieczne w prawdziwych systemach, bo łatwo wtedy masowo popsuć dane. Dobre praktyki w pracy z SQL mówią jasno: zawsze dokładnie analizuj część SET oraz obecność lub brak WHERE, a przed wykonaniem złożonego UPDATE warto najpierw uruchomić SELECT z tym samym warunkiem, żeby zobaczyć, które rekordy zostaną zmienione. Taka systematyka pozwala uniknąć właśnie takich nieporozumień, jakie widać w błędnych odpowiedziach.

Pytanie 29

W zakresie ochrony serwera bazy danych przed atakami hakerównie wlicza się

A. aktywacja zapory
B. używanie skomplikowanych haseł do bazy
C. blokada portów powiązanych z bazą danych
D. defragmentacja dysków
Wybór odpowiedzi związanej z blokowaniem portów, włączeniem zapory oraz stosowaniem złożonych haseł jest zgodny z najlepszymi praktykami w zakresie zabezpieczeń serwera bazy danych. Blokowanie portów to kluczowy krok, który ogranicza dostęp do usług bazodanowych tylko dla autoryzowanych użytkowników. Wiele ataków z zewnątrz wykorzystuje otwarte porty, dlatego ich zablokowanie jest podstawowym zabezpieczeniem. Zapory sieciowe, zarówno sprzętowe, jak i programowe, są niezbędne do filtrowania ruchu i ochrony przed nieautoryzowanym dostępem. Z kolei stosowanie złożonych haseł jest fundamentalnym elementem ochrony danych - hasła powinny być długie, zawierać znaki specjalne, cyfry oraz różne przypadki liter, aby znacznie utrudnić ich złamanie. Praktyczne przykłady pokazują, że organizacje, które nie implementują tych zabezpieczeń, stają się łatwym celem dla cyberprzestępców. Warto również wspomnieć o dodatkowych środkach, takich jak szyfrowanie danych w bazach, co dodatkowo podnosi poziom ochrony informacji. Brak znajomości tych zasad może prowadzić do niedostatecznej ochrony przed zagrożeniami, co w dzisiejszym, złożonym środowisku IT, jest nieakceptowalne.

Pytanie 30

Aby stworzyć stronę internetową, która będzie odpowiadać załączonej ilustracji, konieczne jest użycie semantycznych znaczników sekcji w języku HTML5. Jakim znacznikiem należy określić sekcję menu?

A. nav
B. aside
C. header
D. div
Znacznik <nav> w HTML5 jest przeznaczony do definiowania sekcji nawigacyjnych na stronie internetowej, takich jak menu. Użycie semantycznego znacznika <nav> jest zgodne z dobrą praktyką projektowania stron, ponieważ pomaga przeglądarkom i technologiom wspomagającym, takim jak czytniki ekranowe, lepiej zrozumieć strukturę dokumentu. Dzięki zastosowaniu <nav>, silniki wyszukiwarek mogą również bardziej efektywnie indeksować zawartość strony. Przykład użycia <nav> w praktyce: html <nav> <ul> <li><a href='#'>Strona główna</a></li> <li><a href='#'>O nas</a></li> <li><a href='#'>Kontakt</a></li> </ul> </nav>. Ten znacznik powinien być używany wszędzie tam, gdzie mamy do czynienia z głównymi elementami nawigacyjnymi strony. Semantyczne tagi w HTML5, takie jak <nav>, ułatwiają utrzymanie i obsługę kodu oraz wspierają dostępność stron internetowych zgodnie ze standardami WCAG.

Pytanie 31

Programista stworzył pętlę w języku C++, która miała za zadanie obliczyć wynik 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny, gdyż ```int a = 1; for (int i=1; i < 5; i++) { a = a * i; } cout << a;```

Ilustracja do pytania
A. zmienna i w pętli powinna być rozpoczynana od 0, a nie od 1
B. zmienna a powinna być początkowo ustawiona na 0 zamiast 1
C. w drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5
D. zmienna i pętli powinna być zmniejszana, a nie zwiększana
Zmienna a, odpowiedzialna za przechowywanie wyniku, nie powinna być inicjowana wartością 0, gdyż każdy wynik mnożenia przez 0 również daje 0, co zniweczyłoby cały proces obliczeniowy. Inicjalizacja zmiennej wartością 1 jest odpowiednia, ponieważ jest to element neutralny dla mnożenia. Pomysł inicjowania parametru i pętli wartością 0 zamiast 1 jest błędny, ponieważ obliczanie silni wymaga rozpoczęcia od wartości 1, nie 0. Rozpoczęcie od 0 jest odpowiednie dla iteracji związanych z indeksami tablic w wielu językach programowania, ale nie w przypadku obliczeń liczbowych, takich jak silnia. Dekrementacja parametru i zamiast inkrementacji w kontekście silni jest nieodpowiednia, ponieważ wymagałaby przebiegania pętli wstecz od większej wartości do 1, co komplikuje logikę i zwiększa ryzyko błędów logicznych. Takie podejście nie tylko odbiega od standardowych praktyk, ale również jest mniej czytelne i trudniejsze do zrozumienia oraz utrzymania. Dobre praktyki kodowania zalecają, aby pętla for była używana w sposób, który jest intuicyjnie zrozumiały i logiczny, co oznacza inkrementację w przypadku iteracji przez rosnące wartości. Ustalenie poprawnego warunku zakończenia pętli jest kluczowe dla otrzymania właściwego wyniku, a w przypadku obliczania silni, musi obejmować wszystkie liczby w zakresie od 1 do n. Zrozumienie tych podstawowych zasad jest niezbędne dla każdego programisty, aby unikać powszechnych błędów logicznych w algorytmach.

Pytanie 32

Jaką wartość przyjmie zmienna a po wykonaniu poniższej sekwencji komend w PHP?

$a = 1;
$a++;
$a += 10;
--$a;
A. 12
B. 10
C. 11
D. 1
Początkowa wartość zmiennej a wynosi 1. Częstym błędem jest niewłaściwe zrozumienie działania operatorów inkrementacji i dekrementacji. W przypadku operatora postinkrementacji $a++ najpierw używana jest aktualna wartość zmiennej a a dopiero po tym następuje jej zwiększenie co daje 2. To zamieszanie może prowadzić do błędnego przekonania że wartość zmiennej wzrasta natychmiast co jest nieprawidłowe. Następnie instrukcja $a += 10 zwiększa wartość zmiennej o 10 co w rzeczywistości daje 12. Powszechnym błędem jest niedostateczne zrozumienie jak działają przypisania z dodawaniem co może skutkować nieoczekiwanymi wynikami. Ostatnia instrukcja --$a jest predekrementacją co oznacza że wartość zmiennej zmniejsza się przed jej użyciem co ostatecznie prowadzi do wartości 11. Często myli się to z postdekrementacją gdzie wartości byłyby używane przed zmniejszeniem co wpływa na kolejność operacji. Zrozumienie różnicy między pre- i post-operatorami jest niezbędne dla precyzyjnego przewidywania wyników kodu. Uwaga na te subtelności jest kluczowa dla unikania błędów logicznych w programowaniu i zapewnienia poprawnego działania aplikacji

Pytanie 33

Jaką wartość w systemie RGB uzyskamy dla koloru zapisanego w kodzie heksadecymalnym: #1510FE?

A. rgb(15,10,FE)
B. rgb(21,16,FE)
C. rgb(21,16,254)
D. rgb(21,16,255)
Odpowiedzi rgb(15,10,FE), rgb(21,16,FE) oraz rgb(21,16,255) są błędne z różnych powodów, które wynikają z niepoprawnych konwersji wartości heksadecymalnych do systemu RGB. W pierwszym przypadku, rgb(15,10,FE), wartości czerwonej i zielonej zostały błędnie zinterpretowane. Wartości heksadecymalne 15 (0F) i 10 (0A) nie odpowiadają poprawnym konwersjom z systemu szesnastkowego. Wartość niebieska 'FE' w formacie RGB powinna być również przelicza na wartość dziesiętną, a nie pozostawiana w formie heksadecymalnej, co jest kolejnym źródłem błędu w tej odpowiedzi. Z kolei rgb(21,16,FE) zawiera poprawne wartości czerwonej i zielonej, ale niebieska komponenta jest znów nieprzekształcona i pozostaje w formacie szesnastkowym. Ostatnia odpowiedź, rgb(21,16,255), choć zawiera prawidłowe wartości czerwonej i zielonej, wskazuje na niepoprawną wartość niebieską, ponieważ 255 w systemie dziesiętnym nie odpowiada heksadecymalnemu 'FE', które wynosi 254. Typowe błędy myślowe związane z tymi odpowiedziami obejmują niewłaściwe przeliczanie wartości heksadecymalnych oraz brak zrozumienia, jak funkcjonuje konwersja systemów liczbowych. W praktyce, poprawna przekształcenie wartości kolorów jest kluczowe dla spójności wizualnej w projektach graficznych i cyfrowych, co pokazuje znaczenie znajomości sposobu konwersji kolorów we współczesnym designie.

Pytanie 34

Jakiego protokołu należy użyć do przesyłania plików witryny internetowej na serwer hostingowy?

A. SMTP
B. HTTP
C. FTP
D. IRC
Protokół FTP (File Transfer Protocol) jest standardowym rozwiązaniem służącym do transferu plików pomiędzy komputerami w sieci. Dzięki FTP użytkownicy mogą przesyłać pliki na serwer hostingowy, co jest kluczowym krokiem w procesie publikacji stron internetowych. Protokoły FTP działają w oparciu o model klient-serwer, gdzie klient łączy się z serwerem, aby przesłać lub pobrać dane. Przykładem praktycznego wykorzystania FTP jest wgrywanie plików HTML, CSS, obrazków oraz innych zasobów potrzebnych do działania strony. Warto również zwrócić uwagę na to, że FTP może działać w trybie pasywnym lub aktywnym, co jest istotne w kontekście zapory sieciowej i konfiguracji sieci. Istnieją również inne protokoły, takie jak SFTP (Secure File Transfer Protocol), które oferują dodatkowe zabezpieczenia, co czyni je preferowanym wyborem w sytuacjach, gdy bezpieczeństwo danych jest priorytetem. W praktyce, FTP jest szeroko stosowany w branży web developmentu, a znajomość tego protokołu jest niezbędna dla każdego, kto zajmuje się tworzeniem i zarządzaniem stronami internetowymi.

Pytanie 35

Na przedstawionym diagramie ER zapis FK1 oznacza

Ilustracja do pytania
A. relację 1:1.
B. relację 1:N.
C. klucz podstawowy.
D. klucz obcy.
Na diagramach ER oznaczenia typu FK1 zwykle odnoszą się do kluczy obcych, a nie do samej relacji ani do kluczy podstawowych. Łatwo się tu pomylić, bo obok tego symbolu widać też graficzne oznaczenie relacji 1:N między tabelami Klienci i Zamówienia, więc część osób automatycznie kojarzy podpis z typem połączenia. Tymczasem relacja 1:1 czy 1:N jest przedstawiana linią i odpowiednimi znacznikami przy końcach (kreska, „gałązki”, kółko), natomiast skróty PK i FK pojawiają się wewnątrz tabel i opisują role konkretnych kolumn. PK to primary key, czyli klucz podstawowy – unikalny identyfikator w danej tabeli. Na diagramie widać go przy NR_klienta w tabeli Klienci oraz przy ID_Zamówienia w tabeli Zamówienia. Oznaczenie FK1 przy NR_klienta w tabeli Zamówienia nie może więc oznaczać kolejnego klucza podstawowego ani samej relacji, tylko właśnie klucz obcy, który wskazuje na PK w innej tabeli. Częsty błąd polega na mieszaniu pojęć „relacja 1:N” z „kluczem obcym”. Relacja 1:N jest pojęciem konceptualnym: mówi, że jeden klient może mieć wiele zamówień. Klucz obcy to implementacja tej relacji w fizycznym modelu bazy: konkretna kolumna, która przechowuje wartość klucza podstawowego z drugiej tabeli. Innymi słowy, FK jest narzędziem, a 1:N opisem zależności. Kiedy ktoś interpretuje FK1 jako relację 1:1 albo 1:N, miesza warstwę symboliki linii z opisem kolumn. Dobra praktyka w projektowaniu baz danych i w narzędziach CASE jest taka, że PK i FK stoją zawsze przy nazwach atrybutów, a typ relacji rozczytujemy z grafiki między encjami, nie z tych skrótów. Zrozumienie tej różnicy jest kluczowe, bo potem w SQL dokładnie tak samo rozdzielamy definicję struktury tabel (PRIMARY KEY, FOREIGN KEY) od logicznej interpretacji, ile rekordów może być po każdej stronie relacji.

Pytanie 36

Technologia, w której komunikacja użytkownika z serwerem odbywa się bez konieczności przeładowywania całego dokumentu HTML, to

A. Django
B. Ruby
C. AJAX
D. PHP
W tym pytaniu łatwo się pomylić, bo wszystkie podane technologie w jakiś sposób kojarzą się z tworzeniem aplikacji webowych, ale tylko jedna opisuje mechanizm komunikacji bez przeładowania całej strony. Kluczowe jest zrozumienie różnicy między językiem programowania, frameworkiem backendowym a techniką asynchronicznej komunikacji po stronie przeglądarki. Django to framework działający po stronie serwera, napisany w Pythonie. Służy do obsługi logiki biznesowej, generowania szablonów HTML, pracy z bazą danych, routingu adresów URL itd. Samo użycie Django nie powoduje automatycznie, że strona staje się „dynamiczna bez przeładowania”. To, czy strona przeładowuje się w całości, zależy od tego, jak zachowuje się kod w przeglądarce, a nie od tego, jaki framework stoi po stronie serwera. Podobnie PHP to język skryptowy po stronie serwera. Generuje HTML, JSON lub inne odpowiedzi HTTP, ale komunikacja odbywa się standardowo: przeglądarka wysyła żądanie, serwer z PHP odsyła odpowiedź. Bez zastosowania JavaScript i mechanizmów asynchronicznych każda interakcja użytkownika, która wymaga kontaktu z serwerem, kończy się pełnym przeładowaniem dokumentu. Częsty błąd myślowy polega na tym, że skoro PHP „tworzy dynamiczne strony”, to odpowiada też za ich dynamiczne odświeżanie w przeglądarce. W rzeczywistości dynamika po stronie serwera i dynamika interfejsu w przeglądarce to dwie różne warstwy. Ruby również jest tylko językiem programowania, a w świecie webowym najczęściej używany jest z frameworkiem Ruby on Rails. Znowu – świetnie nadaje się do tworzenia API, generowania widoków, obsługi baz danych, ale sam z siebie nie rozwiązuje problemu komunikacji asynchronicznej w przeglądarce. Bez JavaScriptu i odpowiednich wywołań HTTP od strony klienta, strona w Ruby zachowuje się tak samo jak w przypadku PHP czy Django: każda odpowiedź to nowy dokument HTML. Sedno jest takie, że AJAX opisuje konkretną technikę po stronie klienta: asynchroniczne wysyłanie żądań HTTP z przeglądarki i aktualizowanie tylko fragmentów strony. Django, PHP i Ruby mogą być serwerowym „końcem” tych zapytań AJAX, ale nie są samą technologią odpowiedzialną za brak przeładowania strony. Rozdzielenie w głowie: frontendowa komunikacja asynchroniczna vs backendowa logika serwera, to bardzo ważna dobra praktyka w programowaniu webowym.

Pytanie 37

Po wykonaniu poniższego fragmentu kodu w języku C/C++, zmiennej o nazwie zmienna2 przypisany zostanie

int zmienna1 = 158;
int *zmienna2 = &zmienna1;
A. liczba w kodzie binarnym, która odpowiada wartości przechowywanej w zmienna1, zostanie przypisana
B. ta sama wartość, którą zawiera zmienna1, zostanie przypisana
C. wartość przechowywana w zmienna1 zostanie przypisana jako zamieniona na łańcuch
D. adres zmiennej o nazwie zmienna1 zostanie przypisany
Odpowiedzi sugerujące przypisanie wartości lub konwersję na łańcuch są błędne, ponieważ mylą podstawowe pojęcia dotyczące wskaźników i zmiennych w C/C++. Przypisanie wartości do zmiennej wskaźnikowej nie odbywa się poprzez kopiowanie samej wartości przechowywanej w zmiennej, lecz przez odniesienie do jej adresu. Odpowiedź wskazująca na przypisanie tej samej wartości, co w zmienna1, nie uwzględnia faktu, że zmienna2 jest wskaźnikiem, a nie zmienną o tej samej wartości. W przypadku konwersji na łańcuch, proces ten również jest nieprawidłowy, ponieważ wskaźniki nie są interpretowane jako łańcuchy znaków, a ich użycie wymaga znajomości typów danych i konwersji w kontekście wskaźników. Ostatnia odpowiedź, mówiąca o przypisaniu liczby w kodzie binarnym, jest myląca, gdyż wskaźniki operują na adresach w pamięci, które nie są reprezentowane w sposób binarny w kontekście zmiennych. Wartości mogą być reprezentowane binarnie w pamięci, ale wskaźniki przechowują adresy, które z perspektywy programisty nie są bezpośrednio związane z wartościami binarnymi zmiennych. Prawidłowe zrozumienie wskaźników jest kluczowe dla unikania błędów w zarządzaniu pamięcią oraz w poprawnym stosowaniu struktur danych w języku C/C++.

Pytanie 38

Aby uruchomić kod JavaScript w przeglądarce, potrzebne jest

A. debugowanie
B. kompilowanie
C. interpretowanie
D. przetwarzanie na kod maszynowy
Wykonanie kodu JavaScript w przeglądarce wymaga jego interpretowania, co oznacza, że kod jest analizowany i wykonywany linia po linii bezpośrednio przez silnik JavaScript wbudowany w przeglądarkę, taki jak V8 w Google Chrome czy SpiderMonkey w Firefoxie. W odróżnieniu od kompilacji, gdzie cały kod źródłowy jest przekształcany w kod maszynowy przed jego uruchomieniem, interpretacja pozwala na bardziej elastyczne i interaktywne programowanie. Dzięki temu programiści mogą dynamicznie modyfikować i testować skrypty bez potrzeby każdorazowego kompilowania. Przykładem zastosowania jest wbudowana konsola w przeglądarkach, gdzie można na bieżąco wprowadzać i testować fragmenty kodu JavaScript. Interpretacja jest zgodna z zasadami dobrych praktyk programowania webowego, takim jak szybka iteracja i prototypowanie, co czyni ją kluczowym elementem w tworzeniu aplikacji internetowych. Dodatkowo, dzięki interpretacji, JavaScript może być łatwo integrowany z HTML i CSS, co przyczynia się do rozwoju bogatych interfejsów użytkownika w aplikacjach webowych.

Pytanie 39

Jaką szerokość przeznaczono dla treści strony według podanej definicji CSS?

body {
   border: 2px;
   height: 600px;
   width: 560px;
}
A. 640 px
B. 2 px
C. 600 px
D. 560 px
Twoja odpowiedź jest poprawna. Szerokość strony została zdefiniowana na 560 pikseli w kodzie CSS. W kontekście strony internetowej, to oznacza, że cała zawartość strony będzie wyświetlana w obszarze o szerokości nie większej niż 560 pikseli. To jest bardzo ważne podczas projektowania stron internetowych. Szerokość strony często jest ustalana na stałą wartość, aby zapewnić spójność wyglądu strony na różnych urządzeniach. W praktyce, jeśli chcesz, aby strona była 'responsywna', szerokość powinna być ustawiona na wartość procentową, co pozwoli na dynamiczne dostosowanie się strony do rozmiaru okna przeglądarki. Jednak w niektórych sytuacjach, jak na przykład w przypadku określonego układu strony, możliwe jest użycie stałej wartości szerokości. W każdym razie, zapamiętaj, że szerokość strony jest jednym z najważniejszych aspektów przy projektowaniu stron internetowych, który ma bezpośredni wpływ na doświadczenia użytkownika.

Pytanie 40

Znaczniki HTML <strong> oraz <em> używane do wyróżniania istotności tekstu, pod względem formatowania odpowiadają znacznikom

A. ```<b>``` oraz ```<u>```
B. ```<b>``` oraz ```<i>```
C. ```<u>``` oraz ```<sup>```
D. ```<i>``` oraz ```<mark>```
Znaczniki HTML <strong> oraz <em> są używane do podkreślenia ważności tekstu, przy czym <strong> wskazuje na silniejsze akcentowanie, a <em> na akcentowanie mniej intensywne, pełniące rolę stylizacji typograficznej. W kontekście formatowania, ich odpowiednikami są znaczniki <b> oraz <i>. Oznacznik <b> wprowadza tekst w pogrubieniu, co sygnalizuje jego ważność, ale nie ma semantycznego znaczenia, podczas gdy <i> oznacza kursywę, która jest często używana do podkreślenia tytułów, obcojęzycznych wyrazów czy terminów technicznych. W praktyce, użycie <strong> i <em> jest zgodne z zasadami semantycznego HTML, które mają na celu zrozumienie treści przez maszyny oraz poprawę dostępności, co ma fundamentalne znaczenie w projektowaniu stron internetowych. Warto także pamiętać, że stosowanie semantycznych znaczników wpływa na SEO, umożliwiając lepsze indeksowanie treści przez wyszukiwarki, a także poprawia doświadczenia osób korzystających z technologii asystujących. Przykładowo, użycie <strong> w nagłówkach lub kluczowych informacjach na stronie pozwala na lepsze zrozumienie struktury treści przez użytkowników oraz boty wyszukiwarek.