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: 21 lutego 2025 20:43
  • Data zakończenia: 21 lutego 2025 21:17

Egzamin niezdany

Wynik: 17/40 punktów (42,5%)

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Fragment kodu w języku HTML zawarty w ramce ilustruje zestawienie

Ilustracja do pytania
A. skrótów.
B. wypunktowaną.
C. numerowaną.
D. odnośników.
Znaczniki HTML

Pytanie 2

Aby przesłać informacje za pomocą funkcji mysqli_query) w skrypcie PHP, który dodaje do bazy danych dane uzyskane z formularza na stronie internetowej, jako jeden z argumentów trzeba użyć kwerendy

A. ALTER
B. UPDATE
C. INSERT INTO
D. SELECT
Odpowiedzi takie jak 'UPDATE', 'SELECT' oraz 'ALTER' nie są odpowiednie w kontekście wstawiania nowych danych do bazy. Kwerenda 'UPDATE' służy do modyfikacji istniejących rekordów, co oznacza, że używając jej, zmieniamy już zapisane dane, a nie dodajemy nowe. Na przykład, użycie 'UPDATE uzytkownicy SET email = '[email protected]' WHERE imie = 'Jan'' zmienia adres e-mail Jana, ale nie wstawia nowych informacji. 'SELECT' z kolei jest używana do pobierania danych z bazy, co oznacza, że nie ma zastosowania w procesie dodawania nowych rekordów. W przypadku 'SELECT' moglibyśmy chcieć wyświetlić wszystkie dane użytkowników, co również nie wpisuje się w kontekst wstawiania. Natomiast 'ALTER' służy do zmiany struktury tabeli, co oznacza, że przy jej użyciu możemy dodawać lub usuwać kolumny, ale nie jest to bezpośrednio związane z wprowadzaniem nowych danych. Często niepoprawne zrozumienie działania kwerend SQL prowadzi do zamieszania, zwłaszcza w kontekście operacji CRUD (Create, Read, Update, Delete), gdzie każdy z tych terminów ma swoje ściśle określone znaczenie. Warto zatem przyswoić sobie podstawowe różnice między tymi kwerendami, aby móc skutecznie zarządzać danymi w bazie danych.

Pytanie 3

Określ słowo kluczowe w języku C++, które umieszcza się przed wbudowanym typem danych, aby ograniczyć zakres do liczb wyłącznie nieujemnych.

A. const
B. short
C. long
D. unsigned
Słowo 'unsigned' w C++ to naprawdę ważna rzecz, bo mówi kompilatorowi, że dany typ może trzymać tylko liczby dodatnie. Kiedy dodasz 'unsigned' przed takim typem jak 'int', 'short' albo 'long', to zakres wartości się zmienia. Na przykład, 'unsigned int' może mieć wartości od 0 do 4 294 967 295, a 'int' to od -2 147 483 648 do 2 147 483 647. Dzięki temu programiści mogą korzystać z większej ilości wartości, co jest super przy takich rzeczach jak liczniki czy indeksy w tablicach. Kiedy używasz 'unsigned', to twój kod jest nie tylko bardziej efektywny, ale też bezpieczniejszy, bo unikasz pomyłek z liczbami, które nie powinny być ujemne. Z mojego doświadczenia, warto czasem sięgnąć po to słowo kluczowe w odpowiednich sytuacjach, bo naprawdę poprawia przejrzystość i jakość kodu.

Pytanie 4

W języku HTML kolor biały można przedstawić przy użyciu wartości

A. #255255
B. rgb(FFFF,FF)
C. #000000
D. rgb(255,255,255)
Biały kolor w HTML zapisujemy jako rgb(255,255,255). W systemie RGB kolory tworzą się z trzech podstawowych barw: czerwonej, zielonej i niebieskiej. Każda z nich ma wartość od 0 do 255, więc maksymalna intensywność danego koloru to 255, a najniższa to 0. W przypadku białego koloru wszystkie trzy barwy są na maksa, stąd właśnie rgb(255,255,255) oznacza pełną moc czerwonego, zielonego i niebieskiego, co razem daje kolor biały. Wartości RGB są super ważne w CSS i w różnych programach do grafiki. Moim zdaniem, warto je znać, bo to podstawy przy robieniu stron internetowych. Warto też zwrócić uwagę na standardy W3C dotyczące kolorów w HTML, bo pomagają zadbać o estetykę i dostępność stron.

Pytanie 5

Specjalna funkcja danej klasy stosowana w programowaniu obiektowym, która jest wywoływana automatycznie w momencie tworzenia obiektu, a jej głównym celem jest zazwyczaj inicjalizacja pól, to

A. destruktor
B. specyfikator dostępu
C. obiekt
D. konstruktor
Obiekt, destruktor oraz specyfikator dostępu to terminy związane z programowaniem obiektowym, jednak nie odnoszą się one do mechanizmu inicjowania obiektów w taki sposób, jak to robi konstruktor. Obiekt to instancja klasy, która powstaje jako rezultat działania konstruktora. Bezpośrednio nie pełni on żadnej roli w procesie tworzenia, a jedynie jest jego efektem. Destruktor, przeciwnie do konstruktora, jest wywoływany automatycznie, gdy obiekt przestaje być potrzebny, a jego zadaniem jest zwolnienie zasobów zajmowanych przez obiekt. Błędne jest przyjęcie, że destruktor mógłby inicjować pola obiektu, gdyż jego rola dotyczy sprzątania po obiekcie, a nie jego tworzenia. Specyfikator dostępu to termin odnoszący się do modyfikatorów, które kontrolują widoczność członków klasy, takich jak public, private, czy protected. To pojęcie nie ma związku z procesem tworzenia, a jedynie z kontrolowaniem dostępu do poszczególnych elementów klasy. Pojęcia te mogą być mylone przez osoby, które nie mają pełnej wiedzy na temat podstawowych zasad programowania obiektowego, co prowadzi do nieporozumień i błędnych wniosków o funkcjach i rolach poszczególnych elementów w tym paradygmacie. Kluczowe jest zrozumienie, że konstruktor jest jedynym mechanizmem bezpośrednio odpowiedzialnym za inicjowanie nowych obiektów.

Pytanie 6

Instrukcja ```REVOKE SELECT ON nazwa1 FROM nazwa2``` w SQL pozwala na

A. przyznawanie uprawnień zgodnie z określonym schematem
B. odbieranie przyznanych uprawnień użytkownikowi
C. przyznawanie dostępu do tabeli
D. usunięcie użytkownika z bazy danych
Odpowiedzi sugerujące nadawanie uprawnień są błędne, ponieważ REVOKE jest poleceniem służącym do odbierania, a nie przyznawania praw. Nadawanie uprawnień w SQL realizowane jest za pomocą komendy GRANT, która działa w odwrotny sposób, przyznając określone uprawnienia użytkownikom. W kontekście bezpieczeństwa danych, mylenie tych dwóch operacji może prowadzić do poważnych luk w zabezpieczeniach systemu baz danych. Użytkownicy mogą czasami myśleć, że REVOKE może być używane do usuwania praw, ale dotyczy to tylko odbierania wcześniejszych przyznanych uprawnień, a nie nadawania ich. Dodatkowo, są też odpowiedzi, które nawiązują do usuwania użytkownika z bazy danych; tego nie można osiągnąć za pomocą REVOKE, ponieważ to polecenie nie zajmuje się zarządzaniem samymi kontami użytkowników, a jedynie ich uprawnieniami. Ważne jest, aby znać różnice między tymi operacjami oraz ich zastosowanie w praktyce. Nieprawidłowe zrozumienie tych koncepcji może prowadzić do nieefektywnego zarządzania dostępem, co w konsekwencji naraża system na nieautoryzowany dostęp i potencjalne wycieki danych. Dlatego kluczowe jest, aby każdy administrator baz danych miał solidne podstawy dotyczące zarządzania uprawnieniami i stosował odpowiednie praktyki w codziennej pracy.

Pytanie 7

Mamy tablicę o n elementach o nazwie t[n]. Zadaniem algorytmu, zapisanego w krokach, jest wyliczenie sumy

K1: i = 0; wynik = 0;
K2: Dopóki i < n wykonuj K3 .. K4
  K3: wynik ← wynik + t[i]
  K4: i ← i + 2
K5: wypisz wynik

A. n-elementów tej tablicy
B. co drugiego elementu tablicy
C. wszystkich elementów tablicy
D. sumy tych elementów tablicy, które mają wartości nieparzyste
Algorytm przedstawiony w pytaniu wykonuje sumowanie co drugiego elementu tablicy. Rozpoczyna od elementu o indeksie 0, czyli pierwszego elementu tablicy, a następnie przeskakuje o dwa indeksy za pomocą instrukcji i ← i + 2. Dzięki temu algorytm dodaje do zmiennej wynik wyłącznie wartości znajdujące się na pozycjach o parzystych indeksach w tablicy. Praktyczne zastosowanie tego rodzaju algorytmu można znaleźć w sytuacjach, gdy potrzebujemy operować tylko na wybranym podzbiorze danych, na przykład w analizie co drugiego punktu danych w dużych zbiorach, co może przyspieszyć proces analizy i zmniejszyć obciążenie obliczeniowe. Takie podejście jest zgodne z dobrymi praktykami w dziedzinie inżynierii oprogramowania, gdzie staramy się optymalizować algorytmy pod kątem wydajności i złożoności obliczeniowej. Warto zauważyć, że operowanie na co drugim elemencie może być także użyteczne w przypadku wzorców projektowych, takich jak iteratory, które pozwalają na elastyczną kontrolę nad sposobem przeglądania danych w strukturach danych.

Pytanie 8

Walidacja strony internetowej polega na

A. sprawdzeniu jej w celu usunięcia błędów
B. zestawie działań mających na celu zwiększenie liczby odwiedzin
C. umieszczaniu treści w sieci
D. reklamowaniu strony
Proces walidacji strony internetowej polega na systematycznym sprawdzeniu jej zawartości oraz struktury w celu identyfikacji i eliminacji błędów, które mogą wpływać na jej funkcjonalność oraz użyteczność. Walidacja to kluczowy etap w cyklu życia strony, ponieważ zapewnia, że strona działa zgodnie z wymaganiami technicznymi i standardami branżowymi, takimi jak W3C. Przykłady zastosowania walidacji obejmują sprawdzanie poprawności kodu HTML, CSS oraz dostępności, co jest istotne dla zapewnienia pozytywnego doświadczenia użytkowników. Strony internetowe, które są walidowane, mają większe szanse na lepsze pozycjonowanie w wyszukiwarkach, co przekłada się na wyższą oglądalność. Regularna walidacja jest również zgodna z najlepszymi praktykami w zakresie utrzymania jakości i bezpieczeństwa, co w dłuższej perspektywie wspiera reputację marki i zaufanie użytkowników.

Pytanie 9

Jakiego znacznika w języku HTML nie można użyć do wstawienia grafiki dynamicznej na stronę?

A.
B. style="margin-bottom: 0cm;">
C. style="margin-bottom: 0cm;">
D.
Wybór odpowiedzi 1, 3 lub 4 może wydawać się zrozumiały, jednak każdy z tych znaczników ma swoje specyficzne zastosowanie i może być użyty do integrowania grafik dynamicznych. Elementjest jednym z najbardziej powszechnie używanych znaczników do wyświetlania obrazów, zarówno statycznych, jak i dynamicznych, takich jak animacje w formacie GIF. Odpowiedź 3,, umożliwia osadzenie multimediów, takich jak wideo czy animacje Flash, a odpowiedź 4,, jest elastycznym elementem, który może wyświetlać różne typy mediów, w tym grafiki i aplikacje interaktywne. Wybierając te odpowiedzi, można dojść do błędnego wniosku, że są one nieodpowiednie, gdyż wszystkie one wspierają umieszczanie mediów na stronie. Typowym błędem myślowym jest mylenie stylizacji tekstu z funkcjonalnością mediów, co prowadzi do niewłaściwego korzystania z semantyki HTML. Zrozumienie różnic między tymi znacznikami i ich zastosowaniem jest kluczowe dla efektywnego tworzenia stron internetowych oraz ich dostępności dla użytkowników.
Pytanie 10

Rozmiar grafiki JPEG zamieszczonej na stronie www może wpływać na

A. błędy w składni HTML.
B. czas ładowania strony.
C. szybsze sprawdzanie linków.
D. zgodność z systemem Windows.
Wielkość grafiki JPEG umieszczonej na stronie internetowej ma istotny wpływ na długość czasu ładowania strony. Gdy obraz jest zbyt duży, wymaga większej ilości danych do pobrania, co wydłuża czas, który użytkownik musi czekać na wyświetlenie zawartości. Optymalizacja grafik jest więc kluczowym aspektem projektowania stron internetowych. W praktyce, kompresja zdjęć przed ich załadowaniem na stronę, na przykład przy użyciu narzędzi takich jak ImageOptim lub TinyPNG, może znacząco zmniejszyć rozmiar pliku bez widocznej utraty jakości. Zgodnie z wytycznymi Google PageSpeed Insights, obrazy powinny być odpowiednio dostosowane do wymagań dotyczących jakości i rozmiaru. Sprawne zarządzanie grafiką może poprawić współczynnik konwersji oraz zredukować współczynnik odrzuceń, co jest kluczowe dla sukcesu witryny. Prędkość ładowania strony ma również znaczenie dla SEO, ponieważ wyszukiwarki preferują strony, które ładują się szybko, co wpływa na pozycjonowanie. Dlatego odpowiednia optymalizacja obrazów JPEG jest niezbędna dla każdej witryny internetowej, aby zapewnić pozytywne doświadczenia użytkowników oraz dobre wyniki w rankingach wyszukiwarek.

Pytanie 11

Ograniczanie dostępu do niektórych pól lub metod obiektów danej klasy, tak aby mogły być one wykorzystywane wyłącznie przez wewnętrzne metody tej klasy lub funkcje zaprzyjaźnione, to

A. hermetyzacja
B. polimorfizm
C. konkatenacja
D. dziedziczenie
Hermetyzacja to kluczowa koncepcja programowania obiektowego, która polega na ograniczaniu dostępu do pewnych pól i metod danej klasy, aby chronić integralność danych i zapewnić ich poprawne użycie. Przykładem hermetyzacji jest użycie modyfikatorów dostępu, takich jak 'private' i 'protected', co pozwala na ukrycie implementacji od użytkowników klasy, a jednocześnie umożliwia dostęp do tych elementów wewnętrznym metodom klasy. Dzięki hermetyzacji programiści mogą wprowadzać zmiany w implementacji bez wpływu na kod zewnętrzny, co wspiera zasady SOLID i ułatwia zarządzanie dużymi systemami. Rekomendowane praktyki w programowaniu obiektowym zalecają, aby klasy były odpowiedzialne za zarządzanie swoimi danymi, a dostęp do tych danych powinien odbywać się wyłącznie poprzez zdefiniowane interfejsy, takie jak metody publiczne, co pozwala na kontrolowanie operacji i walidację danych. W ten sposób hermetyzacja przyczynia się do większej niezawodności, czytelności oraz łatwości w testowaniu aplikacji.

Pytanie 12

Jaką operację trzeba wykonać podczas edytowania zdjęcia w programie graficznym, aby zamienić białe tło na przezroczystość?

A. Maksymalnie zmniejszyć jasność
B. Zmienić saturację obrazu
C. Skadrować obraz
D. Dodać kanał alfa
Aby zamienić białe tło na przezroczystość w edytorze grafiki, kluczowym krokiem jest dodanie kanału alfa do obrazu. Kanał alfa jest używany do zarządzania przezroczystością pikseli w obrazie rastrowym, co pozwala na zachowanie tylko tych elementów, które mają być widoczne. Proces ten jest szczególnie istotny przy pracy z grafiką stosowaną w projektach multimedialnych, takich jak strony internetowe, animacje czy prezentacje. Po dodaniu kanału alfa, można użyć narzędzi selekcji, takich jak różdżka czy lasso, aby zaznaczyć obszar białego tła i usunąć go, co skutkuje uzyskaniem przezroczystości. Dobrą praktyką jest również zapisanie pliku w formacie obsługującym przezroczystość, jak PNG, co zapewnia, że efekt końcowy zostanie zachowany, a tło będzie rzeczywiście przezroczyste. Przykład zastosowania można znaleźć w tworzeniu grafik do mediów społecznościowych, gdzie przezroczystość tła pozwala na lepsze dopasowanie elementów do różnych szablonów.

Pytanie 13

Jaki będzie efekt wykonania poniższego kodu JavaScript?

var akapit = document.createElement("p");
document.body.appendChild(akapit);

A. Dodanie akapitu na końcu strony
B. Skasowanie akapitu ze strony
C. Pokazanie okna dialogowego z napisem akapit
D. Wstawienie akapitu na szczycie strony
Zrozumienie dlaczego niektóre odpowiedzi są błędne wymaga analizy działania metod JavaScriptowych w kontekście modelu DOM. Pierwsza odpowiedź wskazuje na usunięcie akapitu ze strony co nie jest zgodne z działaniem zaprezentowanego kodu ponieważ metoda document.createElement tworzy nowy element a nie usuwa istniejący. Usunięcie elementu zamiast tego można osiągnąć za pomocą metody removeChild która wymaga wskazania konkretnego elementu do usunięcia. Druga odpowiedź sugeruje dodanie akapitu na początku strony co również jest niepoprawne. Metoda appendChild zawsze dodaje element na koniec wskazanego rodzica czyli w tym przypadku dokumentu body. Aby dodać element na początku strony należałoby użyć metody insertBefore w połączeniu z odwołaniem do pierwszego dziecka body. Trzecia odpowiedź mówi o wyświetleniu okna dialogowego co jest błędem konceptualnym gdyż omawiany kod nie zawiera żadnej funkcji wyświetlającej alert czy prompt. Tworzenie i manipulowanie elementami DOM nie wpływa bezpośrednio na interakcje dialogowe z użytkownikiem. Aby wyświetlić okno dialogowe używa się zazwyczaj metod takich jak alert confirm czy prompt co nie ma miejsca w podanym fragmencie kodu. Analizując te odpowiedzi zauważamy że błędne rozumowanie może wynikać z mylenia funkcji manipulujących DOM z elementami interfejsu użytkownika co jest częstym błędem wśród początkujących programistów. Znajomość specyfiki oraz kontekstu użycia poszczególnych metod jest kluczowa dla poprawnego kodowania w JavaScript i efektywnego zarządzania treścią na stronie internetowej.

Pytanie 14

ALTER TABLE artykuły MODIFY cena float; Ta kwerenda ma na celu wprowadzenie zmian w tabeli artykuły.

A. zmiana typu na float dla kolumny cena
B. zmiana nazwy kolumny cena na float
C. dodanie kolumny cena o typie float, o ile nie istnieje
D. usunięcie kolumny cena o typie float
Odpowiedź była trafna, bo dotyczyła zmiany typu danych w kolumnie w tabeli. Kiedy piszesz 'ALTER TABLE artykuły MODIFY cena float;', to tak naprawdę modyfikujesz kolumnę 'cena', żeby mogła przyjmować liczby zmiennoprzecinkowe. Używanie typu float jest naprawdę przydatne, gdyż ceny często mają wartości z przecinkiem, więc nie ma sensu tego trzymać w innym formacie. Z mojego doświadczenia, takie zmiany są ważne, bo pomagają w dokładnym przechowywaniu danych, co jest kluczowe w przy aplikacjach związanych z finansami czy sprzedażą online. Ale pamiętaj, że warto zawsze mieć kopię zapasową, bo jeśli masz już jakieś dane, które się nie zmieszczą w nowym typie, to może być kłopot. Generalnie, używanie 'ALTER TABLE' to podstawowa rzecz w zarządzaniu bazami danych i dobrze wiedzieć, co się robi.

Pytanie 15

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

A. będzie definiował zmienne w obrębie warunku
B. pobierze wartość z formularza, w którym pole input nie zostało wypełnione
C. będzie pisał kod bez odpowiednich wcięć
D. nie umieści średnika po wyrażeniu w instrukcji if, jeśli po nim występuje sekcja else
Istnieje kilka mitów dotyczących składni PHP, które mogą prowadzić do błędnych wniosków. Wcięcia w kodzie PHP nie mają wpływu na wykonanie kodu, ponieważ PHP nie jest językiem, który wymaga stosowania wcięć w celu zdefiniowania bloków kodu. Wcięcia są stosowane dla czytelności kodu i organizacji, ale nie mają wpływu na jego działanie. Kolejnym powszechnym błędnym przekonaniem jest to, że brak średnika po instrukcji 'if' z sekcją 'else' jest jedynym problemem. Jednakże, PHP nie zgłasza błędu, jeśli programista deklaruje zmienne wewnątrz warunku; jest to dozwolone i często stosowane w praktyce. Przykład: 'if ($a > 10) { $b = $a; }' jest poprawny i będzie działał. Ostatni mit dotyczy błędów związanych z pobieraniem wartości z formularza. Jeśli pole input nie zostało wypełnione, PHP po prostu zwróci wartość null lub pusty ciąg, co jest zupełnie poprawne w kontekście działania skryptu. Nie prowadzi to do błędów wykonawczych, a programista powinien obsłużyć takie przypadki zgodnie z logiką aplikacji.

Pytanie 16

To pytanie jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się lub utwórz konto aby zobaczyć pełną treść pytania.

Odpowiedzi dostępne po zalogowaniu.

Wyjaśnienie dostępne po zalogowaniu.


Pytanie 17

Aby wykorzystać skrypt znajdujący się w pliku przyklad.js, konieczne jest połączenie go ze stroną przy użyciu kodu

A.
B.
C.
D.
No, odpowiedzi bez atrybutu 'src' są nie na miejscu, bo nie spełniają standardów HTML dołączania skryptów. W pierwszej odpowiedzi, w, użycie tego zapisu jest błędne, bo tag, to też nie jest zgodne z HTML, bo 'link' nie istnieje w kontekście skryptów; powinno być tylko 'src'. Odpowiedźjest całkiem myląca, bozazwyczaj służy do CSS, a nie do JavaScriptu. Nawet jeśli 'rel' można użyć, to nie ma sensu w kontekście skryptów JS. To może prowadzić do tego, że deweloperzy nie zrozumieją, jak poprawnie dodawać zasoby do HTML-a, a to może w przyszłości rodzić problemy z wydajnością i działaniem strony. Zrozumienie i stosowanie standardów HTML jest mega ważne przy projektach webowych, bo wpływa na jakość kodu i jego przyszłą obsługę.

Pytanie 18

W języku PHP instrukcja foreach jest rodzajem

A. pętli, niezależnie od rodzaju zmiennej
B. instrukcji wyboru, dla elementów tablicy
C. instrukcji warunkowej, niezależnie od typu zmiennej
D. pętli, przeznaczonej wyłącznie dla elementów tablicy
Instrukcja foreach w PHP to naprawdę super sprawa, jeśli chodzi o przechodzenie przez elementy tablicy. Dzięki niej można bardzo prosto iterować po wszystkich wartościach, co sprawia, że kod staje się bardziej przejrzysty i zwięzły. Nie trzeba wtedy się martwić o ręczne zarządzanie wskaźnikami tablicy. A dostęp do kluczy i wartości? Proszę bardzo! Na przykład, mając tablicę $fruits = ['jabłko', 'banan', 'czereśnia'], można użyć foreach tak: foreach ($fruits as $fruit) { echo $fruit; }. To wydrukuje nam wszystkie owoce na ekranie. No i warto mieć na uwadze, że foreach działa też z tablicami asocjacyjnymi, co pozwala na przechodzenie przez pary klucz-wartość. Korzystając z tej instrukcji, można pisać lepszy, bardziej zrozumiały kod, a to szczególnie ma znaczenie w większych projektach, gdzie czytelność jest kluczowa dla późniejszego rozwoju i utrzymania kodu.

Pytanie 19

Aby umieścić aplikację PHP w sieci, należy przesłać jej pliki źródłowe na serwer przy użyciu protokołu

A. HTTP
B. SMTP
C. FTP
D. NNTP
Inne odpowiedzi, które zaznaczyłeś, nie są do końca trafione. Protokół NNTP, czyli Network News Transfer Protocol, służy do przesyłania wiadomości w grupach dyskusyjnych, a to nie ma nic wspólnego z przenoszeniem plików. Z kolei SMTP, czyli Simple Mail Transfer Protocol, jest do wysyłania e-maili – znowu nie to, czego potrzebujemy przy aplikacjach. HTTP, chociaż jest super istotnym protokołem w sieci, to nie ma zaplecza do publikowania plików na serwerze. To raczej do przesyłania danych między przeglądarkami a serwerami. Wiesz, typowym błędem wielu osób jest mylenie tych protokołów i ich zastosowania. Dlatego ważne, żeby zrozumieć, jak to wszystko działa i do czego się nadaje. W praktyce zawsze najlepiej stawiać na FTP lub jego bezpieczniejsze wersje, żeby dobrze ogarnąć pliki aplikacji na serwerze.

Pytanie 20

W języku PHP zapisano fragment kodu. Plik cookie utworzony przy pomocy tego polecenia

setcookie("osoba", "Anna Kowalska", time()+(3600*24));

A. będzie przechowywany na serwerze przez 24 godziny
B. będzie przechowywany na serwerze przez jedną godzinę
C. zostanie usunięty po 24 godzinach od jego stworzenia
D. zostanie usunięty po jednej godzinie od momentu jego utworzenia
W kontekście używania plików cookie w PHP ważne jest zrozumienie różnicy pomiędzy przechowywaniem danych na serwerze a w przeglądarce użytkownika. Pliki cookie są przechowywane po stronie klienta a nie na serwerze co oznacza że odpowiedź o przechowywaniu cookie na serwerze jest błędna. Plik cookie wygasa po określonym czasie od jego ustawienia co jest ustalane poprzez czas wygaśnięcia podany jako trzeci parametr funkcji setcookie. W analizowanym fragmencie kodu czas wygaśnięcia jest ustawiony poprzez dodanie liczby sekund odpowiadającej jednemu dniu do bieżącego czasu co oznacza że plik cookie zostanie usunięty po upływie jednego dnia a nie jednej godziny. Jednym z typowych błędów jest mylenie jednostek czasu co prowadzi do niepoprawnego zrozumienia działania czasów wygaśnięcia. Ponadto błędne jest przekonanie że cookie może być przechowywane na serwerze co jest fundamentalnym nieporozumieniem dotyczącym natury plików cookie w HTTP. Pliki cookie są częścią mechanizmu zarządzania sesjami i stanem w aplikacjach webowych co ma kluczowe znaczenie dla personalizacji i utrzymania sesji użytkownika. Poprawne zrozumienie jak działa mechanizm cookie oraz gdzie są przechowywane pomaga w bezpiecznym i efektywnym projektowaniu aplikacji internetowych zgodnie z dobrymi praktykami w zakresie zarządzania sesjami i danymi użytkowników.

Pytanie 21

W tabeli samochody w bazie danych, pole kolor może przyjmować jedynie wartości zdefiniowane w słowniku lakier. Jaką kwerendę należy wykorzystać, aby ustanowić relację między tabelami samochody a lakier?

A. ALTER TABLE samochody ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);
B. ALTER TABLE samochody ADD FOREIGN KEY barwa REFERENCES samochody.lakier;
C. ALTER TABLE samochody ADD FOREIGN KEY kolor REFERENCES lakier;
D. ALTER TABLE samochody ADD FOREIGN KEY (barwa) REFERENCES samochody(kolor);
Pierwsza z niepoprawnych odpowiedzi próbuje dodać klucz obcy do kolumny 'kolor', ale brakuje w niej określenia, którego atrybutu z tabeli 'lakier' używamy. Wartości 'kolor' muszą odnosić się do konkretnego identyfikatora z tabeli 'lakier', a tym identyfikatorem jest 'lakierId'. Bez tego precyzyjnego odniesienia, kwerenda nie będzie mogła zostać wykonana. Druga odpowiedź, mimo że poprawnie odnosi się do właściwego pola, używa błędnej składni. W kontekście SQL klucz obcy musi być zdefiniowany poprzez wskazanie kolumny, do której odnosi się klucz główny w innej tabeli, co w przypadku tej odpowiedzi jest pominięte przy użyciu zewnętrznej referencji do kolumny 'lakierId'. Trzecia odpowiedź jest błędna, ponieważ odnosi się do kolumny 'barwa', która nie istnieje w tabeli 'samochody', co sprawia, że kwerenda jest niepoprawna. Ostatecznie, czwarta odpowiedź, która próbuje użyć kolumny 'barwa' i odnosić się do kolumny 'kolor', jest niepoprawna, ponieważ również nie wskazuje na prawidłową kolumnę w tabeli 'lakier'. W związku z tym, wszystkie te odpowiedzi nie spełniają wymagań do prawidłowego zdefiniowania klucza obcego w bazie danych.

Pytanie 22

Parametr face znacznikajest używany do wskazania

A. koloru czcionki
B. nazwa czcionki
C. rozmiaru czcionki
D. efektów czcionki
Pierwsza z niepoprawnych odpowiedzi sugeruje, że parametr face służy do określenia barwy czcionki. Jest to błędne, ponieważ kolor tekstu w HTML ustala się za pomocą innego parametru – 'color'. Możemy na przykład użyć znacznikatekst, aby ustawić kolor tekstu na czerwony. Parametr face nie ma związku z kolorystyką, a jego jedynym celem jest określenie konkretnej czcionki, co jest kluczowe dla typografii na stronach internetowych. Kolejna niepoprawna odpowiedź wskazuje na efekty czcionki, co również jest mylące. Efekty takie jak pogrubienie, kursywa czy podkreślenie są osiągane dzięki zastosowaniu odpowiednich stylów CSS lub atrybutów w tagach HTML, takich jak , , czy . Parametr face nie wprowadza żadnych efektów, a jedynie wskazuje, jaką czcionkę należy zastosować. Ostatnia niepoprawna odpowiedź odnosi się do wielkości czcionki, co również jest nieprawidłowe. W HTML rozmiar czcionki ustala się za pomocą atrybutu 'size' w tagu, co jest znacznie bardziej ograniczone i mniej elastyczne niż nowoczesne podejścia z CSS. W CSS możemy zdefiniować rozmiar czcionki za pomocą właściwości 'font-size', co umożliwia precyzyjne dostosowanie wielkości tekstu, a także łatwą zmianę przez wykorzystanie jednostek względnych. Podsumowując, niepoprawne odpowiedzi mylą się co do funkcji parametru face, który nie ma związku z kolorem, efektami czy wielkością czcionki.

Pytanie 23

Aby zobaczyć rezultaty działania skryptu napisanego w PHP, który jest częścią strony internetowej, musi on być

A. skomputeryzowany po stronie użytkownika
B. zinterpretowany po stronie serwera
C. skomputeryzowany po stronie serwera
D. interpretowany po stronie użytkownika
Wybrane odpowiedzi sugerujące, że skrypt PHP musi być "skompilowany po stronie serwera" lub "skompilowany po stronie klienta" są mylące. PHP nie jest językiem kompilowanym w tradycyjnym sensie, jak np. Java czy C++. W PHP kod jest interpretowany, co oznacza, że serwer odczytuje i wykonuje go w czasie rzeczywistym, generując odpowiedni wynik. W przypadku skompilowanych języków, proces kompilacji przekształca kod źródłowy do postaci binarnej, co przynosi różne korzyści, takie jak szybkość działania, ale także wprowadza dodatkowe kroki w cyklu życia aplikacji. Kolejną nieścisłością jest pomysł, że PHP powinno być zinterpretowane po stronie klienta. Przeglądarki internetowe nie mają możliwości wykonania kodu PHP bezpośrednio, ponieważ rozumieją jedynie HTML, CSS oraz JavaScript. Klient ściąga już przetworzony HTML wygenerowany przez PHP, co jest kluczowe dla zrozumienia architektury aplikacji webowych. Szeroko stosowane podejścia do rozwijania aplikacji internetowych powinny uwzględniać te różnice, aby uniknąć typowych błędów myślowych, które mogą prowadzić do nieefektywnego projektowania aplikacji i nieprawidłowego użycia technologii.

Pytanie 24

Które z tabel będą poddane weryfikacji zgodnie z przedstawionym poleceniem? ```CHECK TABLE pracownicy CHANGED;```

A. Tabele, które zmieniły się w obecnej sesji
B. Tylko te tabele, które nie mogły być poprawnie zakończone
C. Wyłącznie tabele odnoszące się do innych
D. Tabele, które uległy zmianie od ostatniej kontroli lub nie zostały poprawnie zamknięte
Wybór odpowiedzi dotyczącej jedynie tabel, które nie zostały poprawnie zamknięte, nie uwzględnia pełnego zakresu zastosowania polecenia CHECK TABLE. To podejście ignoruje ważny aspekt, jakim jest monitorowanie wszelkich zmian, które miały miejsce od ostatniej inspekcji. Tabele mogą być zmieniane przez różne operacje, zarówno podczas aktualizacji, jak i w wyniku nieprawidłowego zakończenia sesji, co czyni istotnym ich kontrolowanie w szerszym ujęciu. Z kolei odpowiedź sugerująca, że tylko tabele referujące do innych powinny być sprawdzane, jest myląca, ponieważ takie ograniczenie do współzależności między tabelami nie odzwierciedla rzeczywistej natury problemów z integralnością danych. W praktyce, wszystkie tabele w bazie danych mogą wpływać na siebie nawzajem, a problemy w jednej tabeli mogą prowadzić do błędów w innych. Takie myślenie może prowadzić do zaniedbania, które naraża system na uszkodzenia, a nawet utratę danych. Właściwe podejście do zarządzania bazami danych powinno opierać się na całościowym przeglądzie stanu tabel, a nie na selektywnym podejściu, co może przyczynić się do nieefektywności i ryzyka utraty danych. Dlatego też skupienie się tylko na jednym aspekcie, takim jak niewłaściwe zamknięcie, jest niewystarczające dla zapewnienia integralności systemu.

Pytanie 25

Jakim znacznikiem można wprowadzić listę numerowaną (uporządkowaną) w dokumencie HTML?

A.
    B.
    C.
      D.
    1. Zastosowanie znaczników
        ,
        oraz
      • w kontekście tworzenia listy numerowanej w HTML prowadzi do nieporozumień, które mogą zniekształcić strukturę i semantykę dokumentu. Znacznik
          jest używany do tworzenia list nieuporządkowanych, co oznacza, że elementy listy nie są numerowane, lecz oznaczone punktami. To podejście jest właściwe tylko w sytuacjach, gdy porządek elementów nie jest istotny, na przykład w przypadku list zakupów. Z kolei znacznik
          służy do definiowania list tekstowych, w których elementy są zestawiane w pary definicji, co ma swoje zastosowanie w glosariuszach lub słownikach, ale nie jest odpowiednie do zwykłych list numerowanych. Natomiast
        • to znacznik, który jest używany w kontekście list zarówno uporządkowanych, jak i nieuporządkowanych, ale sam w sobie nie tworzy listy. Elementy
        • muszą być zagnieżdżone w odpowiednich znacznikach
            lub
              , by miały sens w ramach struktury HTML. Powszechny błąd polega na myleniu typów listy oraz ich semantycznego przeznaczenia, co może prowadzić do problemów z dostępnością oraz indeksowaniem przez wyszukiwarki. Konsekwencją niewłaściwego użycia znaczników może być również obniżona jakość nawigacji i user experience na stronie internetowej.

      Pytanie 26

      Baza danych MySQL została uszkodzona. Które z poniższych działańnie przyczyni się do jej naprawy?

      A. Wykonanie replikacji bazy danych
      B. Odtworzenie bazy z kopii zapasowej
      C. Próba naprawy za pomocą polecenia REPAIR
      D. Utworzenie nowej bazy i przeniesienie do niej tabel
      Próba naprawy bazy danych za pomocą polecenia REPAIR, odtwarzanie bazy z kopii bezpieczeństwa czy stworzenie nowej bazy z przeniesieniem tabel mogą być mylnie uznawane za skuteczne rozwiązania w przypadku uszkodzenia bazy danych. Polecenie REPAIR TABLE ma zastosowanie tylko w przypadku tabel, które zostały uszkodzone, a nie w przypadku całej bazy danych. W praktyce, jeśli baza danych jest uszkodzona w sposób, który uniemożliwia jej działanie, to polecenie naprawy nie będzie wystarczające. Odzyskiwanie z kopii zapasowej to bardzo efektywna metoda, jednak wymaga wcześniejszego posiadania aktualnej kopii, a czasami dane mogą być utracone. Stworzenie nowej bazy danych i przeniesienie tabel jest procesem czasochłonnym i może nie zapewnić pełnej integralności danych, szczególnie w przypadku złożonych relacji między tabelami. Często mylone są pojęcia naprawy i odzyskiwania danych, co może prowadzić do błędnych decyzji w sytuacjach kryzysowych. Ważne jest, aby w momencie wystąpienia uszkodzenia bazy danych podejść do tematu z pełną wiedzą na temat dostępnych narzędzi i metod, aby uniknąć dalszych problemów związanych z bezpieczeństwem danych.

      Pytanie 27

      Tabela filmy dysponuje kluczem głównym id oraz kluczem obcym rezyserlD. Tabela rezyserzy posiada klucz główny id. Obie tabele są połączone relacją jeden do wielu, gdzie rezyserzy są po stronie jeden, a filmy po stronie wiele. Jak należy zapisać kwerendę SELECT, aby połączyć tabele filmy i rezyserzy?

      A. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmylD ...
      B. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...
      C. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.filmylD ...
      D. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...
      Poprawna odpowiedź: '... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...' jest zgodna z zasadami łączenia tabel w relacyjnych bazach danych. W tym przypadku 'rezyserlD' jest kluczem obcym w tabeli 'filmy', który odnosi się do 'id' w tabeli 'rezyserzy', co oznacza, że jeden reżyser może być przypisany do wielu filmów. Dzięki temu połączeniu możemy uzyskać informacje o filmach razem z danymi reżyserów. W praktyce, aby uzyskać szczegółowe informacje o filmach oraz ich reżyserach, takie zapytanie umożliwia efektywne łączenie danych, co jest kluczowe w aplikacjach bazodanowych, które wymagają integracji danych z różnych źródeł. Zastosowanie kluczy obcych w relacyjnych bazach danych jest standardem i pozwala na zapewnienie integralności danych, a także optymalizację zapytań. Dobrą praktyką jest również dbałość o odpowiednie nazewnictwo kolumn, aby jasno wskazywały one na ich przeznaczenie oraz relacje między tabelami, co znacząco ułatwia późniejszą pracę z bazą.

      Pytanie 28

      Jaką cechę pola w tabeli należy ustalić, aby pole mogło przyjmować wyłącznie dane składające się z cyfr?

      Ogólne
      Rozmiar pola255
      Format
      Maska wprowadzania
      Tytuł
      Wartość domyślna
      Reguła spr. poprawności
      Tekst reguły spr. poprawności
      WymaganeNie
      Zerowa dł. dozwolonaTak
      IndeksowaneNie
      Kompresja UnicodeTak
      Tryb IMEBez formantu
      Tryb zdania edytora IMEBrak
      Tagi inteligentne

      A. Wartość domyślną
      B. Maskę wprowadzania
      C. Regułę sprawdzania poprawności
      D. Tagi inteligentne
      Tagi inteligentne to narzędzie, które można znaleźć w dokumentach czy w systemach do zarządzania danymi. Służą do automatycznego rozpoznawania danych, na przykład dat czy adresów, ale nie mają możliwości ograniczania wprowadzanych danych pod kątem ich formatu, jak na przykład cyfry. Reguły sprawdzania poprawności dane na poziomie tabeli, co oznacza, że można sprawdzać, czy spełniają pewne kryteria przy zapisywaniu. To działa, ale jest bardziej ogólne i nie zastąpi maski wprowadzania, bo te działają w czasie rzeczywistym. Z kolei wartość domyślna to coś, co automatycznie wprowadza dane w polu, jeśli użytkownik nic nie poda. To może być przydatne, gdy jakieś pole zawsze powinno mieć określoną wartość, chyba że użytkownik zadecyduje inaczej. Tylko że wartość domyślna nie reguluje, jakie dane mogą być wpisywane, co jest właśnie wymagane w pytaniu o ograniczenie danych do cyfr. Często myślimy, że wartość domyślna lub reguły mogą kontrolować format danych na bieżąco, ale to jest rola maski wprowadzania, która działa w momencie, gdy piszemy, więc chroni integralność już na etapie wprowadzania danych.

      Pytanie 29

      Jaki rezultat uzyskamy po uruchomieniu załączonego skryptu?

      <?php
      class Owoc {
        function __construct() {     echo "test1";     }
        function __destruct() {     echo "test2";     }
      }
      $gruszka = new Owoc();
      ?>

      A. Pojawi się tylko komunikat "test1"
      B. Na ekranie pojawią się oba komunikaty: "test1" oraz "test2"
      C. Pojawi się jedynie komunikat "test2"
      D. Nie zostanie wyświetlony żaden komunikat
      W analizie skryptu PHP ważne jest zrozumienie roli metod specjalnych jak __construct() i __destruct(). __construct() uruchamia się podczas tworzenia obiektu, a __destruct() w momencie niszczenia obiektu. Odpowiedź wskazująca, że żaden napis się nie wyświetli, ignoruje fakt, że zarówno konstruktor jak i destruktor wywołują funkcję echo. Przy odpowiedzi, że wyświetli się tylko napis test1, pominięto działanie metody __destruct(), która następuje po zakończeniu skryptu. Natomiast stwierdzenie, że wyświetli się tylko napis test2 ignoruje działanie konstruktora, który zostaje niezwłocznie aktywowany po stworzeniu obiektu $gruszka. Częstym błędem jest nieujmowanie pełnego cyklu życia obiektu, co prowadzi do nieprawidłowego zrozumienia działania destruktorów, zwłaszcza że uruchamiane są one automatycznie, wpływając na zarządzanie zasobami i pamięcią. Zrozumienie tych mechanizmów jest kluczowe w efektywnym zarządzaniu kodem w PHP, szczególnie w zaawansowanych projektach obiektowych.

      Pytanie 30

      Jakie polecenie HTML powinno być zastosowane, aby sformatować akapit tekstu?

      Tekst może być zaznaczony albo istotny dla autora

      A.

      Tekst może być zaznaczony albo istotny dla autora

      B.

      Tekst może być zaznaczony albo istotny dla autora

      C.

      Tekst może być zaznaczony albo istotny dla autora

      D.

      Tekst może być zaznaczony albo istotny dla autora

      Błędne odpowiedzi wynikają z niepoprawnego zamknięcia lub zagnieżdżenia tagów HTML, co jest sprzeczne z zasadami poprawnej składni języka HTML. W pierwszym przypadku, brak zamknięcia znacznika powoduje, że przeglądarka nie rozpoznaje, gdzie kończy się wyróżniony tekst. To zaburza semantykę dokumentu i może prowadzić do nieprzewidywalnego renderowania treści. W trzeciej i czwartej odpowiedzi występuje błąd polegający na niewłaściwym zagnieżdżeniu znaczników, gdzie zostaje zamknięty po lub , co jest błędnym podejściem, ponieważ znacznik powinien obejmować tylko ten fragment tekstu, który ma być podkreślony. Takie nieprawidłowe struktury mogą prowadzić do błędów w interpretacji dokumentu przez przeglądarki oraz utrudniać dostępność dla czytników ekranowych, co jest sprzeczne z dobrymi praktykami web developmentu, które promują poprawne i semantyczne użycie znaczników HTML. Dodatkowo, błędy te mogą negatywnie wpłynąć na optymalizację SEO, ponieważ wyszukiwarki preferują dobrze ustrukturyzowane dokumenty. Ważne jest, aby przestrzegać standardów W3C oraz stosować się do zasad semantyki HTML, aby zapewnić poprawne działanie i interpretację stron internetowych przez szeroką gamę urządzeń i oprogramowania.

      Pytanie 31

      Na stronie internetowej dodano grafikę w kodzie HTML. Co się stanie, jeśli plik rysunek.png nie zostanie odnaleziony przez przeglądarkę?

      <img src="rysunek.png" alt="pejzaż">

      A. zademonstruje błąd wyświetlania strony w miejscu grafiki
      B. wyświetli tekst "pejzaż" w miejscu grafiki
      C. wstawi tekst "rysunek.png" zamiast grafiki
      D. nie pokaże strony internetowej
      W HTML znacznikjest używany do wstawiania obrazów na stronach. Ważne, żeby pamiętać o atrybucie src, który mówi przeglądarce, skąd ma wziąć obraz. A alt to taki tekst zapasowy, który wyświetli się, jeśli obrazek nie załaduje się z jakiegoś powodu. To istotne, bo ułatwia dostępność dla osób, które mogą mieć trudności z widzeniem. Na przykład, gdy plik rysunek.png się nie załaduje, to wyświetli się tekst z atrybutu alt - w tym przypadku słowo pejzaż. To jest zgodne z dobrymi praktykami, bo każdy powinien wiedzieć, co miało być na obrazku, nawet jeśli go nie widzi. To także pomaga wyszukiwarkom w indeksowaniu treści. A używanie atrybutu alt to rzecz, którą warto stosować, jeśli chcemy, żeby nasza strona była dostępna i przyjazna dla użytkowników. Przy tym, przypomina mi się, że to też jest zgodne z zasadami dostępności WCAG.

      Pytanie 32

      Wskaź złożony typ danych.

      A. bool
      B. char
      C. float
      D. class
      Złożone typy w programowaniu to takie struktury, które mogą mieć wiele wartości albo różne rodzaje danych. W językach takich jak C++ czy Java, typ 'class' jest super ważny, bo dzięki niemu możemy tworzyć obiekty. Klasa działa jak szablon do tworzenia obiektów, gdzie możesz mieć różne dane (pola) i funkcje (metody), które z tymi danymi coś robią. Na przykład klasa 'Samochód' mogłaby mieć pola, takie jak 'marka' i 'model', a także metody jak 'przyspiesz()' lub 'hamuj()'. W programowaniu obiektowym mamy różne zasady, jak enkapsulacja czy dziedziczenie. Definiowanie klas pozwala na lepszą organizację kodu, co ułatwia pracę, zwłaszcza przy większych projektach. Klasy są teraz podstawowym elementem wielu nowoczesnych języków, więc warto się ich dobrze nauczyć, bo naprawdę pomagają w tworzeniu aplikacji.

      Pytanie 33

      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. wartość przechowywana w zmienna1 zostanie przypisana jako zamieniona na łańcuch
      C. adres zmiennej o nazwie zmienna1 zostanie przypisany
      D. ta sama wartość, którą zawiera zmienna1, zostanie przypisana
      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 34

      Wskaż zdanie, które jest nieprawdziwe w odniesieniu do poniższej definicji funkcji w języku C++? void zamien(float &x, float &y){ float tmp; tmp=x; x=y; y=tmp; }

      A. Funkcja ma dwa argumenty
      B. Funkcja nie zwraca żadnej wartości
      C. Funkcja korzysta z parametrów przez referencję
      D. Funkcja zwraca jakąś wartość
      Wszystkie niepoprawne odpowiedzi zawierają błędne założenia dotyczące definicji i działania funkcji zamien. Po pierwsze, twierdzenie, że funkcja zwraca wartość, jest nieprawdziwe, ponieważ w definicji funkcji użyto słowa kluczowego 'void', co jednoznacznie wskazuje, że nie ma zwracanej wartości. W C++ funkcje, które zwracają wartości, muszą mieć określony typ, a brak takiego typu sugeruje, że funkcja nie zwraca żadnych danych. Drugie stwierdzenie, że funkcja nie zwraca wartości, jest rzeczywiście poprawne. Warto zauważyć, że w przypadku funkcji, która dokonuje jedynie zamiany wartości argumentów przez referencję, nie ma potrzeby zwracania wyniku, gdyż zmiany te są widoczne w zmiennych przekazanych do funkcji. Trzecia odpowiedź, która wskazuje, że funkcja posiada dwa parametry, jest również prawdziwa, ponieważ funkcja 'zamien' przyjmuje dwa argumenty typu 'float', które są przekazywane przez referencję. Odnosi się to do aspektu przekazywania argumentów, gdzie użycie referencji pozwala na modyfikację przekazywanych danych. Na koniec, czwarta odpowiedź, mówiąca, że funkcja odwołuje się do parametrów przez referencję, również jest poprawna. Przekazywanie przez referencję jest techniką, która umożliwia bezpośrednią manipulację zmiennymi zewnętrznymi, co zwiększa elastyczność i efektywność funkcji, zwłaszcza w kontekście operacji na dużych zbiorach danych. W związku z tym, analiza wszystkich odpowiedzi prowadzi do wniosku, że tylko pierwsze stwierdzenie jest błędne, ponieważ jasno pokazuje, że funkcja zamien nie zwraca żadnej wartości.

      Pytanie 35

      Aby w JavaScript wykonać wymienione kroki, należy w znaczniku <script> umieścić kod

      1. Wyświetlić okno do wpisania wartości z poleceniem "Podaj kwalifikację: ",
          następnie po zatwierdzeniu

      2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się
          wartość pobrana z okna "Kwalifikacja: ..."

      A. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: ".A);
      B. A = alert("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A);
      C. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A);
      D. A << prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A);
      Wybrana odpowiedź nie jest prawidłowa. W JavaScript, funkcja 'alert()' jest używana do wyświetlania okienka z komunikatem, ale nie pozwala na wprowadzenie przez użytkownika żadnej wartości, w przeciwieństwie do funkcji 'prompt()'. Operator '<<' nie jest odpowiedni w tym kontekście, ponieważ jest to operator przesunięcia bitowego, a nie służy do przypisywania wartości do zmiennej. W niektórych niepoprawnych odpowiedziach, próbowano połączyć łańcuchy znaków (stringi) za pomocą kropki ('.'), co jest niepoprawne w JavaScript. Operator do łączenia łańcuchów znaków w tym języku to '+'. Kropka jest używana do dostępu do właściwości obiektów. Pamiętaj, że zrozumienie różnicy między różnymi funkcjami interaktywnymi, takimi jak 'alert()', 'prompt()' i 'confirm()', oraz kiedy ich używać, jest kluczowe do efektywnego tworzenia interaktywnych stron internetowych.

      Pytanie 36

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

      A. wielu wartości wyłącznie tekstowych.
      B. wielu wartości lub funkcji.
      C. wielu wartości dowolnego typu.
      D. wielu wartości wyłącznie liczbowych.
      Obiekt typu array w języku JavaScript jest strukturą danych, która służy do przechowywania wielu wartości dowolnego typu. Można w nim przechowywać liczby, napisy, obiekty, a nawet inne tablice. Dzięki temu arrays są niezwykle elastyczne i użyteczne w tworzeniu aplikacji. W JavaScript tablice są dynamiczne, co oznacza, że można do nich dodawać nowe elementy w trakcie działania programu za pomocą metod takich jak push() i unshift(). Przykład użycia tablicy: let fruits = ['jabłko', 'banan', 42, {color: 'zielony'}, [1, 2, 3]]; w tym przykładzie tablica fruits przechowuje różne typy danych, w tym napisy, liczbę, obiekt oraz inną tablicę. Warto również zauważyć, że tablice w JavaScript są obiektami, co pozwala na wykorzystanie różnych metod i właściwości typowych dla obiektów. Dokumentacja ECMAScript jasno określa zasady działania tablic, co potwierdza ich funkcjonalność jako kolekcji wartości. Warto zrozumieć, że tablice nie są ograniczone do przechowywania jednego typu danych, co czyni je idealnym narzędziem do zarządzania złożonymi zbiorami informacji.

      Pytanie 37

      Definicja stylu zaprezentowana w CSS odnosi się do odsyłacza, który

      a:visited {color: orange;}

      A. wskaźnik myszy znajduje się nad nim
      B. posiada błędny adres URL
      C. jeszcze nie był odwiedzony
      D. został wcześniej odwiedzony
      Odpowiedź "został wcześniej odwiedzony" jest prawidłowa, ponieważ definicja stylu CSS `a:visited {color: orange;}` dotyczy odsyłaczy, które zostały już odwiedzone przez użytkownika. W CSS pseudo-klasa `:visited` jest stosowana do stylizacji odsyłaczy, które prowadzą do stron, które użytkownik już otworzył. Dzięki tej możliwości, twórcy stron internetowych mogą wprowadzać różne kolory dla odwiedzonych i nieodwiedzonych linków, co pozwala na szybszą orientację użytkowników w treści strony. Na przykład, jeżeli na stronie znajduje się wiele linków, użytkownik może łatwiej zrozumieć, które z nich już kliknął, a które są nowe. Dobrą praktyką jest stosowanie kontrastowych kolorów dla odsyłaczy, aby zwiększyć ich dostępność i użyteczność. Warto również zauważyć, że przeglądarki mogą mieć różne ograniczenia dotyczące stylizacji odwiedzonych linków, co jest podyktowane względami prywatności użytkowników. Z tego powodu zaleca się, aby nie opierać funkcjonalności strony jedynie na wyglądzie odwiedzonych linków.

      Pytanie 38

      Model, w którym wszystkie dane są zapisane w jednej tabeli, określa się mianem

      A. relacyjnym
      B. sieciowym
      C. hierarchicznym
      D. jednorodnym
      Model jednorodny to taka podstawowa struktura w bazach danych, gdzie wszystko trzymamy w jednej tabeli. To się fajnie sprawdza w prostych aplikacjach, bo wtedy relacje między danymi są dość oczywiste. Klasycznym przykładem może być baza kontaktów, gdzie każdy ma swoje info w jednym miejscu. Dzięki temu mamy łatwy dostęp do danych i prosto nimi zarządzać. Z mojego doświadczenia, to rozwiązanie jest super efektywne, ale jak system staje się większy i złożony, to zaczynają się schody. Wtedy inne modele, jak relacyjne, mogą mieć więcej sensu. W branży często korzysta się z modelu jednorodnego, zwłaszcza tam, gdzie szybki dostęp do danych jest kluczowy, a sztywne struktury tylko przeszkadzają. Na codzień to naprawdę przydatna rzecz, jak ktoś nie chce się męczyć z komplikacjami.

      Pytanie 39

      W systemie baz danych wykonano następujące operacje dotyczące uprawnień użytkownika adam: GRANT ALL PRIVILEGES ON klienci To adam REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam. Jakie prawa będzie miał użytkownik adam po zrealizowaniu tych operacji?

      A. usunięcia tabeli lub jej danych
      B. tworzenia tabeli klienci oraz wprowadzania do niej danych
      C. aktualizowania danych oraz przeglądania tabeli klienci
      D. przeglądania tabeli klienci i dodawania do niej rekordów
      Użytkownik adam po wykonaniu poleceń GRANT i REVOKE nie będzie miał wszystkich przywilejów na tabeli klienci, co wymaga szczegółowej analizy. Gdy polecenie GRANT ALL PRIVILEGES ON klienci TO adam zostało wykonane, użytkownik zyskał pełne prawa do tabeli klienci, w tym usuwania, aktualizowania, wstawiania, a także przeglądania danych. Następnie, polecenie REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam odebrało mu możliwość przeglądania (SELECT), wstawiania (INSERT) oraz aktualizowania (UPDATE) danych w tej tabeli. Jednakże, usunięcie (DELETE) nie zostało wymienione w poleceniu REVOKE, co oznacza, że użytkownik adam wciąż ma prawo do usunięcia rekordów w tabeli klienci. To zjawisko jest zgodne z zasadami zarządzania uprawnieniami w systemach baz danych SQL, gdzie uprawnienia mogą być przyznawane i odbierane niezależnie, co pozwala na precyzyjne zarządzanie dostępem do danych. W praktyce, sytuacja ta może prowadzić do niebezpieczeństw związanych z bezpieczeństwem danych, dlatego ważne jest, aby administratorzy baz danych dokładnie analizowali przyznawane i odbierane uprawnienia.

      Pytanie 40

      W bazie danych znajduje się tabela pracownicy z kolumnami: id, imie, nazwisko, pensja. W nadchodzącym roku postanowiono zwiększyć wynagrodzenie wszystkim pracownikom o 100 zł. Zmiana ta w bazie danych będzie miała formę

      A. UPDATE pensja SET +100;
      B. UPDATE pracownicy SET pensja = pensja +100;
      C. UPDATE pensja SET 100;
      D. UPDATE pracownicy SET pensja = 100;
      W celu podniesienia pensji wszystkim pracownikom o 100 zł, zastosowanie ma polecenie SQL UPDATE. Poprawna instrukcja 'UPDATE pracownicy SET pensja = pensja + 100;' działa na zasadzie modyfikacji istniejących wartości w kolumnie 'pensja' w tabeli 'pracownicy'. Ta konstrukcja przyjmuje bieżącą wartość pensji każdego pracownika i dodaje do niej 100 zł. Jest to standardowa praktyka w SQL, gdzie używamy operatora '+', aby zmodyfikować dane. Warto pamiętać, że takie operacje są powszechnie wykorzystywane w systemach baz danych do aktualizacji informacji, co pozwala na efektywne zarządzanie danymi. Dla porównania, instrukcje SELECT, które służą do pobierania danych, nie są odpowiednie w tym kontekście. W rezultacie każdy pracownik w tabeli otrzyma nową, zwiększoną pensję, co odzwierciedli aktualizację w bazie danych.