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: 8 czerwca 2026 14:29
  • Data zakończenia: 8 czerwca 2026 14:34

Egzamin niezdany

Wynik: 14/40 punktów (35,0%)

Wymagane minimum: 20 punktów (50%)

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

Jakiej kwerendy w bazie MariaDB należy użyć, aby wybrać artykuły, których ceny mieszczą się w przedziale domkniętym <10, 20>?

A. SELECT * FROM Artykuly WHERE Cena LIKE 1%, 2%
B. SELECT * FROM Artykuly WHERE Cena IN (10, 20)
C. SELECT * FROM Artykuly WHERE Cena BETWEEN 10 AND 20
D. SELECT * FROM Artykuly WHERE Cena > 10 AND Cena < 20
Odpowiedź 'SELECT * FROM Artykuly WHERE Cena BETWEEN 10 AND 20;' jest prawidłowa, ponieważ wykorzystuje operator BETWEEN, który jest idealny do określenia wartości zawartych w obustronnie domkniętym przedziale. W tym przypadku zapytanie zwróci wszystkie artykuły, których cena jest równa 10 lub 20 oraz wszystkie wartości znajdujące się pomiędzy tymi dwoma wartościami. Operator BETWEEN jest standardowym sposobem na łatwe zapisywanie takich warunków w SQL, co czyni kod bardziej czytelnym i zrozumiałym. Przykład zastosowania to sytuacja, gdy chcemy znaleźć produkty w określonym przedziale cenowym na stronie e-commerce. Tego typu kwerendy są bardzo powszechne w analizie danych i zarządzaniu bazami danych, a ich znajomość jest kluczowa dla efektywnego wykonywania zadań związanych z eksploracją danych. Zastosowanie BETWEEN w praktyce pozwala na automatyzację procesów wyszukiwania i filtrowania danych, co jest zgodne z najlepszymi praktykami w zakresie optymalizacji zapytań w bazach danych.

Pytanie 2

Jaką właściwość CSS należy zastosować, aby uzyskać linie przerywaną w obramowaniu?

Ilustracja do pytania
A. solid
B. double
C. dotted
D. dashed
Wybór właściwości takich jak solid double czy dotted dla stylu obramowania często wynika z niepełnego zrozumienia ich zastosowań Solid jest używane do tworzenia ciągłej linii co może być mylące gdy celem jest uzyskanie efektu linii przerywanej W kontekście projektowania stron internetowych solid jest bardziej dominujące i może przesuwać punkt ciężkości z treści na formatowanie co nie zawsze jest pożądane Double tworzy podwójną linię i choć może być stosowane w celu uzyskania bardziej wyrazistego efektu jego użycie w sytuacji gdy potrzebna jest subtelność jest nieodpowiednie Dotyczy to sytuacji gdzie wizualna przejrzystość i prostota są kluczowe Dotted tworzy linię z kropkami która różni się od dashed strukturą i wyglądem podczas gdy dashed używa kresek dotted sprawia wrażenie bardziej delikatnej i lekko chaotycznej linii co nie zawsze jest zgodne z zamierzonym stylem estetycznym Struktura dotted może być stosowana tam gdzie wymagana jest bardziej dekoracyjna linia Wybór właściwej właściwości jest kluczowy dla osiągnięcia zamierzonego efektu wizualnego i powinien być oparty na standardach projektowania stron internetowych które uwzględniają zarówno estetykę jak i funkcjonalność Zapewnienie spójności w użyciu stylów w całej witrynie jest również istotne dla zachowania profesjonalnego wyglądu i łatwości użytkowania takich jak rozpoznawalność interakcji i intuicyjność nawigacji poprzez odpowiednie oznaczenia CSS pozwala na szeroką personalizację co wymaga zrozumienia subtelnych różnic między różnymi wartościami stylów i ich odpowiednimi zastosowaniami w kontekście projektu

Pytanie 3

Jakie imiona spełniają warunek klauzuli LIKE w zapytaniu

SELECT imie FROM mieszkancy WHERE imie LIKE 'o_%_a';
?
A. Oksana, Ola, Olga
B. Oksana, Oktawia, Olga
C. Oktawia, Oktawian, Olga
D. Oda, Oksana, Oktawia
Odpowiedź Oksana, Oktawia, Olga jest poprawna, ponieważ wszystkie te imiona spełniają warunki klauzuli LIKE w zapytaniu SQL. Klauzula LIKE 'o_%_a' wskazuje na to, że imię musi zaczynać się na literę 'o', mieć co najmniej jeden dowolny znak po 'o' (reprezentowany przez znak podkreślenia '_'), a następnie musi kończyć się na literę 'a'. Przykłady imion: Oksana zaczyna się na 'O', ma 'ks' jako drugi znak i kończy się na 'a'; Oktawia również dostosowuje się do tego wzoru, zaś Olga zaczyna się na 'O', ma 'lg' jako drugi i trzeci znak oraz kończy na 'a'. W praktyce, umiejętność korzystania z klauzuli LIKE jest kluczowa w SQL przy wyszukiwaniu danych według wzorców, co pozwala na bardziej elastyczne i precyzyjne zapytania. Poprawne użycie LIKE zwiększa efektywność filtrowania danych, co jest istotnym aspektem w zarządzaniu bazami danych oraz analizie danych, zgodnie z najlepszymi praktykami w branży.

Pytanie 4

W skrypcie PHP funkcja mysqli_query() ma dodać do bazy danych nowe dane pobrane z formularza. Jakiego polecenia SQL należy w niej użyć?

A.
UPDATE
B.
INSERT INTO
C.
SELECT
D.
ALTER
Aby dodać do bazy nowy rekord, np. dane wpisane w formularzu, używa się polecenia INSERT INTO. Wskazuje się w nim tabelę oraz kolumny i wartości do wstawienia, na przykład INSERT INTO klienci (imie, email) VALUES ('Jan', '[email protected]'). W skrypcie PHP takie zapytanie przekazuje się do funkcji mysqli_query, która wykonuje je na bazie. Dlatego do zapisania nowych danych służy INSERT INTO.

Pytanie 5

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

A. ```<b>``` oraz ```<u>```
B. ```<u>``` oraz ```<sup>```
C. ```<b>``` oraz ```<i>```
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.

Pytanie 6

Jaką rozdzielczość ustawić, aby przygotować film w jakości HD Ready (720p)?

A. 720 × 480
B. 1920 × 1080
C. 480 × 360
D. 1280 × 720
Pozostałe rozdzielczości to inne standardy. 480 × 360 jest poniżej HD, 720 × 480 to jakość SD (np. DVD), a 1920 × 1080 to Full HD (1080p). HD Ready to 1280 × 720.

Pytanie 7

Aby ustawić marginesy wewnętrzne elementu: górny 50px, prawy 20px, dolny 40px, lewy 30px, należy użyć deklaracji CSS:

A.
padding: 50px 20px 40px 30px;
B.
padding: 30px 20px 40px 50px;
C.
padding: 20px 40px 30px 50px;
D.
padding: 50px 40px 20px 30px;
Pozostałe zapisy mają wartości w złej kolejności. Skrót padding czyta cztery liczby jako górę, prawo, dół i lewo - po kolei, zgodnie z ruchem wskazówek zegara. Wariant padding: 50px 40px 20px 30px; zamienia miejscami prawy (powinno 20) z dolnym (powinno 40). Pozostałe zaczynają od innej wartości niż wymagane 50px dla góry, więc również nie odwzorują zadanych marginesów. Poprawny zapis to padding: 50px 20px 40px 30px; (góra-prawo-dół-lewo), dlatego ta odpowiedź jest właściwa.

Pytanie 8

Poniżej zaprezentowano fragment kodu w języku HTML:
<ol>
<li>punkt 1</li>
<li>punkt 2</li>
<ul>
<li>podpunkt1</li>
<li>podpunkt2</li>
<li>podpunkt3</li>
</ul>
<li>punkt3</li>
</ol>

A. punkt 1 punkt 2 podpunkt1 podpunkt2 podpunkt3 punkt3
B. 1. punkt 1 2. punkt 2 podpunkt1 podpunkt2 podpunkt1 3. punkt3
C. 1. punkt 1 2. punkt 2 podpunkt1 podpunkt2 podpunkt3 punkt3
D. 1. punkt 1 2. punkt 2 3. punkt3 podpunkt1 podpunkt2 podpunkt1
Fajnie, że wybrałeś poprawną odpowiedź! To pokazuje, że rozumiesz, jak działa struktura list w HTML. W Twoim kodzie mamy uporządkowaną listę z trzema głównymi punktami, co jest świetne. Te pierwsze dwa są dobrze zdefiniowane jako elementy <li>, tak jak powinny być. A w punkcie 2 masz zagnieżdżoną listę nieuporządkowaną, co dodaje trochę ekstra informacji – super sprawa! Pamiętaj, że to zagnieżdżenie ma znaczenie, bo pomaga to w organizacji treści. Każdy podpunkt też jest elementem <li>, więc wszystko się zgadza. Tego typu struktury są mega przydatne, zwłaszcza w spisach treści czy menu nawigacyjnych. Pamiętaj, że dobrze zbudowany HTML jest ważny dla czytelności, a także dla osób, które korzystają z różnych technologii do przeglądania stron. Trzymaj tak dalej!

Pytanie 9

Jakie uprawnienia będzie miał użytkownik jan po wykonaniu poniższych poleceń na bazie danych?

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie mógł dodawać rekordy do tabeli klienci.
B. Będzie mógł przeszukiwać dane w tabeli klienci.
C. Będzie mógł zmieniać strukturę tabeli klienci.
D. Będzie mógł eliminować rekordy z tabeli klienci.
Odpowiedź "Będzie mógł zmienić strukturę tabeli klienci" jest prawidłowa, ponieważ użytkownik jan zyskał pełne uprawnienia do tabeli klienci za pomocą polecenia GRANT ALL PRIVILEGES. Oznacza to, że posiada on wszystkie dostępne uprawnienia w tym zakresie, w tym możliwość modyfikacji struktury tabeli, co obejmuje dodawanie lub usuwanie kolumn, zmienianie typów danych oraz wprowadzanie modyfikacji do indeksów. Jednakże, zastosowane polecenie REVOKE powoduje odebranie wybranych uprawnień, tj. SELECT, INSERT, UPDATE oraz DELETE. W związku z tym, mimo że jan może zmieniać strukturę tabeli, nie ma już możliwości wprowadzania, usuwania ani przeglądania danych. Praktycznie, na przykład, jeżeli jan chciałby dodać nową kolumnę do tabeli klienci, ma taką możliwość, jednak nie będzie mógł dodać nowych rekordów ani ich edytować. To podejście jest zgodne z najlepszymi praktykami zarządzania uprawnieniami w systemach baz danych, gdzie ważne jest precyzyjne określenie, jakie operacje mogą być realizowane przez różnych użytkowników.

Pytanie 10

Która metoda wyświetli w JavaScript komunikat w konsoli przeglądarki?

A.
console.write("test");
B.
console.echo("test");
C.
console.log("test");
D.
console.print("test");
Metoda console.log() wypisuje przekazany komunikat (tekst, liczbę, obiekt) w konsoli narzędzi deweloperskich przeglądarki. To podstawowe narzędzie do podglądu wartości i debugowania kodu JavaScript - pozwala sprawdzić, co dzieje się w trakcie działania skryptu. Obiekt console ma też metody takie jak console.error() czy console.warn() dla komunikatów o błędach i ostrzeżeń. Dlatego do wypisania komunikatu w konsoli służy console.log().

Pytanie 11

Aby walidować pole formularza na bieżąco, w trakcie wpisywania znaków przez użytkownika, można wykorzystać zdarzenie:

A.
onKeyDown
B.
onFocusOut
C.
onLoad
D.
onClick
Pozostałe zdarzenia zachodzą w innych momentach. onLoad uruchamia się raz, po wczytaniu strony lub elementu, więc nie nadąża za wpisywaniem. onClick reaguje na kliknięcie myszą, a nie na znaki wprowadzane z klawiatury. onFocusOut zachodzi dopiero, gdy użytkownik opuści pole - to walidacja po fakcie, a nie na bieżąco. Sprawdzanie danych podczas pisania umożliwia onKeyDown, dlatego to ono jest poprawne.

Pytanie 12

Co oceniają testy wydajnościowe oprogramowania?

A. działanie programu przy wadliwym systemie
B. działanie programu przy wadliwym sprzęcie
C. stopień spełnienia wymagań wydajnościowych przez system lub moduł
D. ciąg zdarzeń, gdzie prawdopodobieństwo zależy tylko od poprzedniego
Pozostałe opisy dotyczą czego innego. Działanie przy wadliwym sprzęcie lub systemie bada się testami odpornościowymi/niezawodności. „Ciąg zdarzeń, gdzie prawdopodobieństwo zależy od poprzedniego” to definicja procesu Markowa, niezwiązana z testowaniem. Wydajność systemu oceniają testy wydajnościowe.

Pytanie 13

Dostępna jest tabela pracownicy zawierająca pola id, nazwisko, imię oraz wynagrodzenie. Kolumnę wynagrodzenie można usunąć przy użyciu następującej instrukcji

A. ALTER TABLE pracownicy DELETE COLUMN wynagrodzenie
B. DROP TABLE pracownicy DELETE COLUMN wynagrodzenie
C. ALTER TABLE pracownicy DROP COLUMN wynagrodzenie
D. ALTER TABLE pracownicy DELETE wynagrodzenie
W niepoprawnych odpowiedziach pojawiają się błędy związane z użyciem SQL i polecenia ALTER TABLE. Na przykład w pierwszej odpowiedzi ktoś użył kombinacji DROP TABLE i DELETE COLUMN, co jest totalnie pomyłką, bo DROP TABLE usuwa całą tabelę, a nie tylko kolumnę. Może to wynikać z pomylenia usuwania tabeli z usuwaniem kolumny. W następnej odpowiedzi, ALTER TABLE pracownicy DELETE COLUMN, mamy do czynienia z błędem, bo w SQL nie ma czegoś takiego jak DELETE COLUMN. Ludzie mogą to mylić z instrukcją DELETE, która dotyczy usuwania wierszy, a nie kolumn. Ostatnia odpowiedź, czyli ALTER TABLE pracownicy DELETE wynagrodzenie, też jest błędna, bo nie zaznacza, że chodzi o kolumnę, a użycie słowa DELETE w tym kontekście jest mylące. Takie błędy mogą wynikać z niepełnego zrozumienia podstawowych konceptów związanych z bazami danych i SQL. Żeby tego uniknąć, dobrze jest regularnie przeglądać dokumentację oraz ćwiczyć pisanie zapytań, bo to naprawdę pomaga w lepszym rozumieniu tego, co się robi.

Pytanie 14

Na zakończenie dnia w systemie zarządzania magazynem sklepu spożywczego generowany jest raport, który przedstawia produkty oraz ich dostawców, dla których ilość na stanie jest mniejsza niż 10 sztuk. Do stworzenia tego raportu zastosowano kwerendę

A. SELECT
B. UPDATE
C. CHECK TABLE
D. INSERT INTO
Odpowiedzi takie jak CHECK TABLE, UPDATE i INSERT INTO są niewłaściwe w kontekście opisywanego raportu. CHECK TABLE jest komendą używaną do sprawdzania integralności tabel w bazie danych, ale nie ma zastosowania w kontekście generowania raportów. Nie umożliwia ona pobierania danych ani ich analizowania, co jest kluczowe w przypadku raportowania stanów magazynowych. Z kolei UPDATE to polecenie, które służy do modyfikowania istniejących rekordów w bazie danych. Chociaż może być użyteczne w sytuacjach, gdy chcemy zaktualizować ilość produktów w magazynie, nie ma zastosowania w kontekście generowania raportu, ponieważ nie jest to operacja mająca na celu odczyt danych. Tak samo INSERT INTO jest używane do dodawania nowych rekordów do tabeli. W przypadku raportu, którego celem jest analizy danych, to podejście nie jest ani odpowiednie, ani praktyczne. Typowym błędem w myśleniu jest mylenie operacji manipulacji danymi z operacjami odczytu. W kontekście efektywnego zarządzania bazami danych, kluczowe jest zrozumienie, że każda z tych kwerend ma swoje specyficzne zastosowania, a w przypadku raportowania stanów magazynowych jedynie kwerenda SELECT jest odpowiednia, ponieważ umożliwia wydobycie i analizę danych zgodnie z zdefiniowanymi kryteriami.

Pytanie 15

W aplikacji webowej komunikat powinien być wyświetlany jedynie wtedy, gdy użytkownik odwiedza stronę po raz pierwszy. Jakiej funkcji PHP należy użyć w tym przypadku?

A. mysqli_change_user
B. setcookie
C. define
D. session_destroy
Funkcja setcookie w PHP jest wykorzystywana do ustawiania ciasteczek w przeglądarkach użytkowników. Ciasteczka te mogą przechowywać różne informacje, co umożliwia personalizację doświadczeń użytkownika na stronie internetowej. W kontekście opisanego zagadnienia, można zastosować setcookie do zdefiniowania ciasteczka, które będzie informować, że dany użytkownik odwiedza stronę po raz pierwszy. Przykładowe zastosowanie może wyglądać tak: jeśli na stronie nie ma określonego ciasteczka (np. 'first_visit'), można wyświetlić komunikat powitalny i wówczas ustawić ciasteczko z odpowiednim czasem ważności, co pozwala na ukrycie tego komunikatu przy kolejnych wizytach. Użycie tej funkcji jest zgodne z najlepszymi praktykami w zakresie zarządzania sesjami użytkowników, ponieważ pozwala na zachowanie stanu użytkownika w sposób prosty i efektywny. Dodatkowo, dzięki ciasteczkom, można analizować zachowanie użytkowników, co pozwala na dalsze optymalizowanie doświadczeń na stronie.

Pytanie 16

Zgodnie z zasadami ACID dotyczącymi transakcji, wymóg izolacji (ang. isolation) wskazuje, że

A. jeśli dwie transakcje są wykonywane równolegle, to zazwyczaj nie zauważają wprowadzanych przez siebie zmian
B. po zrealizowaniu transakcji system baz danych będzie w stanie spójności
C. pod określonymi warunkami dane modyfikowane przez transakcję mogą zostać anulowane
D. gdy wystąpi konflikt z inną transakcją, obie mogą modyfikować te same dane równocześnie
Po pierwsze, odpowiedź, która sugeruje, że po wykonaniu transakcji system bazy danych będzie spójny, nie odnosi się bezpośrednio do aspektu izolacji. Spójność to w rzeczywistości inne z wymaganych stanów ACID, które koncentruje się na tym, że wszystkie transakcje muszą zapewnić, że system przechodzi z jednego stanu spójnego do innego. Izolacja działa w zupełnie innym kontekście. Kolejna odpowiedź wskazująca na konflikt modyfikacji danych przez różne transakcje sugeruje sytuację, która w rzeczywistości powinna być unika, a nie opisana jako cecha izolacji. Izolacja ma na celu zapobieganie takim konfliktom, a nie ich akceptację. Dodatkowo, odpowiedź mówiąca o wycofywaniu danych pod pewnymi warunkami odnosi się do działania mechanizmu rollback, który jest związany z innym aspektem transakcji – atomowością. Atomowość dotyczy tego, czy cała transakcja zostanie pomyślnie zakończona, czy też w razie problemów zostanie wycofana, ale nie bezpośrednio do izolacji. Powszechny błąd myślowy polega na myleniu tych pojęć i ich wzajemnych interakcji. Właściwe zrozumienie izolacji jako ochrony przed widocznością zmian między transakcjami współbieżnymi jest kluczowe dla projektowania poprawnych i odpornych na błędy systemów baz danych.

Pytanie 17

Jaki będzie rezultat po uruchomieniu podanego skryptu?

class Owoc {
    function __construct() {
        echo "test1";
    }
    function __destruct() {
        echo "test2";
    }
}
$gruszka = new Owoc();
A. Pojawią się oba teksty: „test1” i „test2”
B. Pojawi się wyłącznie tekst „test2”
C. Nie pojawi się żaden tekst
D. Pojawi się jedynie tekst „test1”
Wybór błędnych odpowiedzi może wynikać z tego, że nie do końca rozumiesz, jak działają konstruktory i destruktory w programowaniu obiektowym. Nie jest tak, że nie ma żadnego napisu, bo nawet jeżeli nie stworzysz obiektu, to przy końcu skryptu destruktor powinien się uruchomić i wtedy wyświetli się 'test2'. Tak że, gdy mówisz, że tylko 'test1' się pokaże, to nie bierzesz pod uwagę, co się dzieje po zakończeniu skryptu. I to, co napisałeś, że tylko 'test2' się wyświetli, też nie jest prawdą, bo konstruktor musi być wywołany, kiedy robi się obiekt. Zrozumienie tych wszystkich spraw jest naprawdę ważne, by dobrze zarządzać danymi w aplikacjach, zwłaszcza w większych projektach, gdzie jest masa obiektów i różne interakcje między nimi.

Pytanie 18

W tabeli artykuly w bazie danych sklepu znajduje się pole o nazwie nowy. Jak należy wykonać kwerendę, aby wypełnić to pole wartościami TRUE dla wszystkich rekordów?

A. UPDATE artykuly SET nowy=TRUE;
B. INSERT INTO nowy FROM artykuly SET TRUE;
C. UPDATE nowy FROM artykuly VALUE TRUE;
D. INSERT INTO artykuly VALUE nowy=TRUE;
Żeby zaktualizować wartości w kolumnie 'nowy' w tabeli 'artykuły' na TRUE, musisz użyć komendy SQL UPDATE. To jest standardowy sposób, żeby zmieniać już istniejące rekordy w tabelach. W tym przypadku komenda 'UPDATE artykuly SET nowy=TRUE;' oznacza, że wszystkie rekordy w tabeli 'artykuły' będą miały pole 'nowy' ustawione na TRUE. To dość prosta i skuteczna operacja, która pozwala na jednolitą zmianę w całej tabeli. Na przykład, jeśli w tabeli 'artykuły' jest 1000 rekordów, to wszystkie z nich dostaną wartość TRUE w polu 'nowy', co może być pomocne, jeśli chcemy oznaczyć nowe produkty. Pamiętaj, żeby robić kopie zapasowe bazy danych przed takimi masowymi zmianami. To może uratować Cię od utraty ważnych danych, gdyby coś poszło nie tak. Użycie tej komendy jest zgodne z ogólnymi zasadami SQL, więc jest to bezpieczny sposób działania dla każdego, kto zarządza bazą danych.

Pytanie 19

Aby obraz w filmie zmieniał się płynnie, liczba klatek na sekundę powinna wynosić co najmniej:

A. 31 - 36 fps
B. 20 - 23 fps
C. 24 - 30 fps
D. 16 - 19 fps
Płynność ruchu na ekranie zależy od liczby wyświetlanych klatek na sekundę (fps). Ludzkie oko odbiera ruch jako ciągły mniej więcej od 24 klatek na sekundę - to klasyczny standard filmowy (telewizja używa 25 lub 30). Poniżej tej wartości ruch wydaje się szarpany. Dlatego minimalny zakres dający płynny obraz to 24 - 30 fps.

Pytanie 20

Instrukcja REVOKE SELECT ON nazwa1 FROM nazwa2 w SQL pozwala na

A. przyznawanie praw dostępu do tabeli
B. pozbawianie użytkownika uprawnień
C. usuwanie konta użytkownika z bazy danych
D. przyznawanie uprawnień za pomocą ustalonego schematu
Pierwsza z błędnych odpowiedzi dotyczy nadawania uprawnień przy użyciu schematu, co jest trochę mylące. REVOKE nie nadaje, a odbiera uprawnienia. Wiele osób to myli, co prowadzi do zamieszania w zarządzaniu uprawnieniami. Kolejna nieprawidłowa odpowiedź mówi o usuwaniu użytkownika z bazy, co też jest błędne, bo REVOKE nie usuwa kont, a tylko zmienia uprawnienia. Kluczowe jest, żeby rozumieć różnicę między zarządzaniem uprawnieniami a użytkownikami. Ostatnia z błędnych odpowiedzi sugeruje, że to polecenie nadaje prawa do tabeli, a to totalnie mija się z prawdą, bo jego zadaniem jest właśnie odbieranie takich uprawnień. Z mojego doświadczenia, przydatne jest stosowanie GRANT do nadawania uprawnień, żeby uniknąć zamieszania. W zarządzaniu bazami danych ważne jest, żeby wiedzieć, jakie operacje dotyczą bezpieczeństwa danych i jak je właściwie stosować, żeby wszystko działało jak należy.

Pytanie 21

W HTML5 semantycznym znacznikiem, który służy do określenia dwóch sekcji widocznych po prawej stronie na rysunku, zawierających wiadomości oraz aktualności, jest

Ilustracja do pytania
A. &lt;nav&gt;
B. &lt;article&gt;
C. &lt;main&gt;
D. &lt;footer&gt;
Bardzo często osoby uczące się HTML5 mylą znaczniki semantyczne, szczególnie gdy chodzi o takie elementy jak <nav>, <main>, <footer> czy <article>. To w sumie zrozumiałe, bo na pierwszy rzut oka mogą się wydawać podobne, ale każdy z nich ma swoje konkretne zadanie. <nav> to sekcja nawigacyjna – zawiera odnośniki do innych części serwisu, więc zwykle stosuje się go do menu, bocznych pasków z linkami czy paneli nawigacyjnych. Umieszczenie w <nav> sekcji z wiadomościami czy aktualnościami to klasyczny przykład złego zrozumienia przeznaczenia tego elementu – w praktyce taka struktura zaburza logikę nawigacji i dostępność strony. <main> z kolei oznacza główną i unikalną treść dokumentu, tej, która jest najważniejsza dla danej podstrony. Jednak <main> używamy tylko raz na stronie – nie powinno się go powielać ani używać do oznaczania pojedynczych sekcji, takich jak wiadomości, bo to prowadzi do błędnej interpretacji przez wyszukiwarki i czytniki ekranowe. <footer> odpowiada za stopkę strony lub sekcji, czyli miejsce na informacje jak prawa autorskie, dane kontaktowe, linki do polityk czy podsumowania – wrzucenie tam wiadomości czy aktualności byłoby mocno nielogiczne. Wybierając niewłaściwy znacznik, można popełnić błąd, który potem utrudnia rozwój strony, jej pozycjonowanie czy poprawność dostępności. Najczęstszy błąd to kierowanie się wyglądem, a nie semantyką – a w HTML5 to właśnie semantyka daje najwięcej korzyści na dłuższą metę.

Pytanie 22

Które słowne wartości może przyjmować właściwość font-size?

A. xx-small, x-small, small, medium, large, x-large, xx-large
B. tylko small, smaller, large, larger
C. tylko big i small
D. wyłącznie small, medium, large
Pozostałe zbiory są niepełne lub błędne. big nie jest poprawną wartością font-size. Zestaw „small, medium, large” jest zbyt wąski - pomija wartości skrajne (xx-small, xx-large itd.). Lista „small, smaller, large, larger” miesza wartości bezwzględne ze względnymi i jest niekompletna. Pełny zbiór rozmiarów bezwzględnych zawiera czwarta odpowiedź, dlatego jest poprawna.

Pytanie 23

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

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

Pytanie 24

Wskaź komentarz, który zajmuje wiele linii, w języku PHP?

A. #
B. / /
C. <!-- -->
D. /* */
Odpowiedzi, które nie są poprawne, wynikają z nieprawidłowego zastosowania składni komentarzy w języku PHP. Pierwsza z odpowiedzi używa znaku '#', który w rzeczywistości jest stosowany jako jedno-liniowy komentarz, co oznacza, że nie jest odpowiedni do tworzenia wieloliniowych komentarzy. Druga odpowiedź sugeruje użycie znaku '//', który również jest przeznaczony do komentarzy jedno-liniowych. Oba te formaty ograniczają komentarz do jednej linii, co nie pozwala na swobodne opisywanie bardziej skomplikowanych bloków kodu. Czwarta odpowiedź odnosi się do składni HTML, czyli użycia '<!-- -->', co jest niepoprawne w kontekście PHP, ponieważ HTML nie jest interpretowane przez silnik PHP i takie komentarze nie będą skutecznie blokować kodu PHP. Składnia HTML może prowadzić do nieporozumień i problemów z wyświetlaniem strony, ponieważ przeglądarki mogą zignorować lub źle zinterpretować te fragmenty. W związku z tym, kluczowe jest stosowanie właściwej składni w kontekście języka PHP, aby zapewnić poprawne funkcjonowanie kodu oraz jego zrozumiałość dla innych programistów.

Pytanie 25

Jakie znaczenie ma przedstawiony fragment kodu w języku C++?

Ilustracja do pytania
A. Typ strukturalny składający się z trzech pól.
B. Trzy niezwiązane ze sobą zmienne.
C. Interakcja między zmiennymi globalnymi a lokalnymi.
D. Zbiór zmiennych w hierarchii.
W niektórych odpowiedziach widać, że mogłeś źle zrozumieć, jak działa struktura w C++. Ludzie myślą, że hierarchia zmiennych pokazuje zależności, ale w rzeczywistości struktura po prostu grupuje różne dane razem, a nie tworzy hierarchię. Pomyśl też o tym, że te trzy pola to nie są osobne zmienne – one są ze sobą połączone w jeden obiekt. Często myślenie o zmiennych globalnych i lokalnych w kontekście struktury jest mylące, bo struktury same w sobie nie definiują takich relacji. Te pojęcia dotyczą raczej zasięgu zmiennych. Zrozumienie struktury jako jednego typu danych naprawdę pomaga w lepszym zarządzaniu informacjami w kodzie, co jest istotne w programowaniu dzisiaj.

Pytanie 26

W języku JavaScript zmienna i, która ma przechowywać wynik dzielenia równy 1, powinna być zadeklarowana jako

A. var i = parseInt(3/2)
B. var i = Number(3/2)
C. var i = parseFloat(3/2)
D. var i = 3/2
Wybór odpowiedzi, które nie wykorzystują parseInt, prowadzi do błędnych rezultatów lub nieodpowiedniego typu danych. Odpowiedź "var i = Number(3/2);" zwraca wartość 1.5, ponieważ funkcja Number konwertuje wyrażenie 3/2 do postaci liczby zmiennoprzecinkowej. Takie podejście jest niewłaściwe, gdyż nie spełnia wymogu uzyskania liczby całkowitej. Z kolei "var i = parseFloat(3/2);" nawiązuje do konwersji na liczbę zmiennoprzecinkową, co również nie jest zgodne z oczekiwaną odpowiedzią. Obie te funkcje są użyteczne, ale w kontekście tego pytania nie prowadzą do uzyskania wyników zgodnych z założeniem. Dodatkowo, wybór "var i = 3/2;" bezpośrednio przypisuje wynik dzielenia do zmiennej, co skutkuje wartością 1.5, a nie 1. Przykładem typowego błędu w myśleniu może być założenie, że każda konwersja liczb w JavaScript prowadzi do uzyskania liczby całkowitej, co jest mylnym wnioskiem. Warto pamiętać, że w JavaScript typy danych są elastyczne, co może prowadzić do nieoczekiwanych wyników, jeśli nie stosuje się odpowiednich funkcji do konwersji typów. Dlatego kluczowe jest zrozumienie kontekstu operacji, aby wybrać odpowiednią metodę konwersji, co jest fundamentalne w bezbłędnym programowaniu.

Pytanie 27

Podaj zapytanie SQL, które tworzy użytkownika sekretarka na localhost z hasłem zaq123?

A. CREATE USER `sekretarka`@`localhost` IDENTIFY BY `zaq123`;
B. CREATE USER 'sekretarka'@'localhost' IDENTIFIED `zaq123`;
C. CREATE USER `sekretarka`@`localhost` IDENTIFY "zaq123";
D. CREATE USER `sekretarka`@`localhost` IDENTIFIED BY 'zaq123';
Odpowiedź "CREATE USER `sekretarka`@`localhost` IDENTIFIED BY 'zaq123';" jest prawidłowa, ponieważ wykorzystuje poprawną składnię do tworzenia nowego użytkownika w systemie zarządzania bazą danych MySQL. Kluczowe jest użycie słowa kluczowego 'IDENTIFIED BY', które wskazuje, że podane hasło ('zaq123') ma być powiązane z nowym użytkownikiem. Wartości w apostrofach są odpowiednie dla łańcuchów tekstowych w SQL, co jest zgodne z dobrymi praktykami programowania w MySQL. W praktyce, tworzenie użytkowników z odpowiednimi uprawnieniami jest niezbędne do zarządzania dostępem do bazy danych oraz zapewnienia bezpieczeństwa. Dobrą praktyką jest stosowanie silnych haseł oraz regularne audyty kont użytkowników. Warto również zwrócić uwagę na konwencje nazewnictwa oraz ograniczenia w zakresie adresów IP, co ma znaczenie w kontekście bezpieczeństwa i zarządzania użytkownikami w systemie zarządzania bazą danych.

Pytanie 28

W językach programowania strukturalnego do przechowywania danych o 50 uczniach (ich imionach, nazwiskach, średniej ocen) należy zastosować

A. strukturę 50 elementów o składowych tablicowych.
B. tablicę 50 elementów o składowych typu łańcuchowego.
C. tablicę 50 elementów o składowych strukturalnych.
D. klasę 50 elementów typu tablicowego.
Wybór nieodpowiedniej struktury danych w programowaniu może prowadzić do nieefektywnego zarządzania danymi i trudności w ich przetwarzaniu. Propozycja użycia struktury 50 elementów o składowych typu tablicowego z reguły nie jest optymalnym podejściem. Tablice w programowaniu są jednorodne, co oznacza, że przechowują tylko jeden typ danych. W przypadku przechowywania informacji o uczniach, takich jak imiona, nazwiska i średnie ocen, każdy z tych atrybutów powinien być reprezentowany przez różne typy danych (np. łańcuchy dla imion i nazwisk oraz liczby zmiennoprzecinkowe dla ocen). Oparcie się na tablicy elementów o składowych tablicowych prowadziłoby do sytuacji, w której trudno byłoby obsługiwać różne typy danych, co jest niepraktyczne i może prowadzić do wielu błędów. Wybór tablicy 50 elementów o składowych łańcuchowych jest także niewłaściwy, ponieważ ponownie nie umożliwia zarządzania różnorodnymi danymi, a jedynie danymi tekstowymi. Przy tego rodzaju podejściu nie można efektywnie przechowywać i operować na różnych typach danych. Kolejny błąd to korzystanie z klasy 50 elementów typu tablicowego, co nie jest zgodne z założeniami programowania obiektowego, które zaleca modelowanie obiektów jako jednostek zawierających różne atrybuty. Wybierając odpowiednią strukturę danych, programiści powinni zwracać uwagę na złożoność danych oraz na to, jak będą one używane w kodzie, co z kolei wpływa na wydajność oraz czytelność aplikacji.

Pytanie 29

Wskaż stwierdzenie, które jest prawdziwe dla następującej definicji stylu:

<style type="text/css">
<!--
  p {color: blue; font-size: 14pt; font-style: italic}
  a { font-size: 16pt; text-transform: lowercase; }
  td.niebieski { color: blue }
  td.czerwony { color: red }
-->
</style>
A. Akapit będzie transponowany na małe litery.
B. Zdefiniowano dwie klasy.
C. Odnośnik będzie pisany czcionką 14 punktów.
D. Jest to styl lokalny.
Niestety, twoja odpowiedź nie była prawidłowa. Pierwsze stwierdzenie, że jest to styl lokalny, jest nieprawidłowe, ponieważ kod CSS jest zdefiniowany w osobnym pliku, a nie bezpośrednio w tagu style wewnątrz pliku HTML, co oznacza, że jest to styl zewnętrzny, a nie lokalny. Trzecie stwierdzenie, że akapit będzie transponowany na małe litery, jest błędne, ponieważ w kodzie nie ma takiej instrukcji. Ostatnie stwierdzenie, że odnośnik będzie pisany czcionką 14 punktów, jest nieprawidłowe, ponieważ w kodzie nie ma instrukcji dotyczących rozmiaru czcionki dla odnośników. Wszystkie te odpowiedzi wynikają z niezrozumienia kodu CSS. CSS jest potężnym narzędziem do kontrolowania wyglądu strony internetowej i wymaga zrozumienia różnych selektorów, właściwości i wartości. Ważne jest, aby pamiętać, że nie wszystkie elementy HTML są stylizowane w ten sam sposób, a różne selektory CSS mają różne priorytety. To pomoże uniknąć błędów w przyszłości.

Pytanie 30

Funkcja agregująca AVG wykorzystana w zapytaniu

SELECT AVG(cena) FROM uslugi;
ma na celu
A. wyliczenie średniej arytmetycznej cen wszystkich usług
B. obliczenie liczby dostępnych usług w tabeli
C. zsumowanie wszystkich kosztów usług
D. znalezienie najwyższej ceny za usługi
Funkcja agregująca AVG w języku SQL oblicza średnią arytmetyczną wartości w określonej kolumnie, w tym przypadku w kolumnie 'cena' tabeli 'uslugi'. W kontekście baz danych, obliczanie średniej jest kluczowym narzędziem analitycznym, które pozwala na uzyskanie ogólnego obrazu wartości danej kolumny. W praktyce, analiza średnich cen usług może być użyteczna dla menedżerów chcących dostosować strategię cenową lub dla działów finansowych oceniających wydajność sprzedaży. Przykładowo, jeżeli średnia cena usług wynosi 100 zł, a kolejny miesiąc przynosi spadek do 80 zł, jest to sygnał do analizy powodów obniżenia przychodów. Stosowanie funkcji AVG jest zgodne z najlepszymi praktykami w zakresie analizy danych, gdyż pozwala na podejmowanie decyzji opartych na faktach i liczbach. Warto również zauważyć, że do obliczeń średnich często używa się danych z różnych grup, co może pomóc w zrozumieniu trendów oraz wzorców w zachowaniach klientów na rynku.

Pytanie 31

Kto odpowiada za ciągłe utrzymanie bazy w produkcji, zarządzanie kontami i instalację nowych wersji systemu bazodanowego?

A. administratorzy serwerów i sieci
B. administratorzy systemu bazy danych
C. projektanci i programiści SZBD
D. twórcy narzędzi programistycznych
Pozostałe role mają inny zakres. Twórcy narzędzi programistycznych budują oprogramowanie, ale nie administrują czyjąś bazą. Administratorzy serwerów i sieci dbają o sprzęt, system operacyjny i łączność, a nie o sam silnik bazy i jego użytkowników. Projektanci i programiści SZBD tworzą system zarządzania bazą, a nie utrzymują wdrożenie. Tym zajmuje się DBA.

Pytanie 32

Który z formatów plików dźwiękowych zapewnia największą redukcję rozmiaru pliku?

A. PCM
B. MP3
C. CD-Audio
D. WAV
MP3 to format z kompresją stratną - odrzuca dźwięki słabo słyszalne dla ucha, dzięki czemu plik jest wielokrotnie mniejszy od zapisu nieskompresowanego, przy akceptowalnej jakości. To dlatego zdominował przechowywanie i przesyłanie muzyki. Pozostałe wymienione formaty są zasadniczo nieskompresowane, więc zajmują dużo miejsca. Stopień kompresji MP3 reguluje przepływność (bitrate). Dlatego największą redukcję rozmiaru daje MP3.

Pytanie 33

W tabeli personel znajdują się pola: imię, nazwisko, pensja, staż. Aby obliczyć średnią pensję osób zatrudnionych z doświadczeniem od 10 do 20 lat włącznie, należy przeprowadzić kwerendę:

A. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
Analizując błędne odpowiedzi, można zauważyć, że pierwsza z nich wykorzystuje funkcję COUNT, która zlicza liczbę rekordów spełniających określone warunki, a nie oblicza średniej wartości. W tym przypadku, nawet jeśli kwerenda zwróciłaby liczby pracowników z odpowiednim stażem, nie dostarczyłaby informacji o średniej pensji, co jest kluczowe w postawionym pytaniu. Kolejna błędna odpowiedź również odnosi się do funkcji COUNT, co jeszcze raz pokazuje brak zrozumienia celu analizy. Trzecia odpowiedź, z wykorzystaniem COUNT(*), podobnie jak poprzednie, skupia się na liczbie rekordów, a nie na wartościach numerycznych. W kontekście analizy danych, takie podejście prowadzi do niepełnych wniosków i może zniekształcać rzeczywistość finansową firmy. Wreszcie, ostatnia odpowiedź, wykorzystująca AVG(*) jest niepoprawna z technicznego punktu widzenia, ponieważ funkcja AVG wymaga podania konkretnego pola numerycznego, a nie symbolu ogólnego. W praktyce oznacza to, że użytkownik, który wybiera tę opcję, nie wykorzystuje pełni możliwości, jakie daje SQL, a także nie ma świadomości, jak ważne jest precyzyjne formułowanie zapytań. Podsumowując, błędne odpowiedzi wynikają z nieporozumienia dotyczącego zastosowania funkcji agregujących oraz ich roli w analizie danych.

Pytanie 34

Jakie tabele będą weryfikowane przez podane polecenie?

CHECK TABLE pracownicy CHANGED;
A. Tylko tabele, które nie zostały prawidłowo zamknięte.
B. Tabele, które uległy zmianie od ostatniego sprawdzenia lub nie zostały prawidłowo zamknięte.
C. Tabele, które zmieniły się w bieżącej sesji.
D. Jedynie tabele referencyjne.
Odpowiedzi sugerujące, że polecenie CHECK TABLE sprawdzi jedynie tabele, które nie zostały poprawnie zamknięte, lub tylko te, które zmieniły się w aktualnej sesji, nieprawidłowo interpretują sposób działania polecenia. Sprawdzanie tabel przy użyciu CHECK TABLE ma na celu weryfikację integralności danych, a nie tylko reagowanie na konkretne sytuacje, jak błędy zamknięcia. W rzeczywistości, to polecenie jest zaprojektowane do analizy ogólnego stanu tabeli, co obejmuje także zmiany, które mogły wystąpić od ostatniego sprawdzenia. Sugerowanie, że tabele referujące do innych byłyby jedynymi na celowniku tego polecenia, jest również mylące, ponieważ CHECK TABLE nie ogranicza się do relacji referencyjnych, lecz obejmuje każdą tabelę wskazaną w poleceniu. Typowe błędy myślowe w tym zakresie często dotyczą uproszczeń, które pomijają złożoność zarządzania danymi i integralności. Poprawne podejście do użycia CHECK TABLE polega na zrozumieniu, że jest to narzędzie diagnostyczne, które powinno być stosowane w kontekście pełnej analizy bazy danych, a nie w reakcji na specyficzne przypadki awarii. W efekcie, ignorowanie pełnych możliwości tego polecenia może prowadzić do niedostatecznej ochrony danych oraz zwiększonego ryzyka utraty informacji.

Pytanie 35

Jak w PHP otworzyć plik dane.txt TYLKO do odczytu i wczytać jego zawartość?

A.
fopen("dane.txt", "r")  oraz  fgets()
B.
fopen("dane.txt", "w")  oraz  fputs()
C.
fopen("dane.txt", "w")  oraz  fgets()
D.
fopen("dane.txt", "r")  oraz  fputs()
Tryb "w" otwiera plik do ZAPISU (i kasuje jego zawartość), więc nie nadaje się do odczytu. fputs() ZAPISUJE dane, a nie czyta. Do odczytu pasują fopen("dane.txt", "r") i fgets().

Pytanie 36

W języku PHP do zmiennej a wprowadzono tekst, w którym wielokrotnie występuje fraza Kowalski. Jakim poleceniem można jednocześnie zamienić wszystkie pojawienia się słowa Kowalski na słowo Nowak w zmiennej a?

A. $a = str_rep('Kowalski', 'Nowak', $a);
B. $a = str_replace('Kowalski', 'Nowak', $a);
C. $a = str_replace('Nowak', 'Kowalski');
D. $a = str_replace('Nowak', 'Kowalski', $a);
Odpowiedź $a = str_replace('Kowalski', 'Nowak', $a); jest poprawna, ponieważ wykorzystuje funkcję str_replace, która jest standardowym narzędziem w PHP do zamiany wszystkich wystąpień określonego ciągu znaków na inny w danym tekście. W tym przypadku zamieniamy słowo 'Kowalski' na 'Nowak' wewnątrz zmiennej $a. Funkcja str_replace działa w sposób, który jest zgodny z dobrymi praktykami programistycznymi, pozwalając na prostą i efektywną manipulację łańcuchami tekstowymi. Przykład zastosowania: jeśli $a = 'Jan Kowalski jest programistą. Kowalski ma doświadczenie.', to po wykonaniu powyższego polecenia zmienna $a stanie się 'Jan Nowak jest programistą. Nowak ma doświadczenie.'. Warto pamiętać, że str_replace jest wrażliwa na wielkość liter, co oznacza, że najlepiej stosować ją w kontekście, gdzie zapisy są jednolite. Dodatkowo, funkcja ta zwraca nowy łańcuch znaków, co oznacza, że oryginalna zmienna $a pozostaje niezmieniona, co jest zgodne z zasadami programowania funkcyjnego.

Pytanie 37

$z = mysqli_query($db, "SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a = mysqli_fetch_row($z);
echo "$a[1], $a[2]";
W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
A. ulicy i miasta ze wszystkich zwróconych rekordów
B. miasta i kodu pocztowego z pierwszego zwróconego rekordu
C. miasta i kodu pocztowego ze wszystkich zwróconych rekordów
D. ulicy i miasta z pierwszego zwróconego rekordu
Kod PHP wykonuje zapytanie do bazy danych przy użyciu funkcji mysqli_query co powoduje pobranie wszystkich rekordów z kolumn ulica miasto i kod_pocztowy z tabeli adresy jednak funkcja mysqli_fetch_row pobiera tylko pierwszy rekord z wynikowego zbioru danych. Jest to kluczowy aspekt ponieważ mysqli_fetch_row nie iteruje automatycznie przez wszystkie rekordy co jest częstym błędem w interpretacji działania tej funkcji. Często mylnie zakłada się że funkcja echo w połączeniu z pętlą może obsłużyć cały zestaw danych co w kontekście tego kodu nie ma miejsca ponieważ pętla nie została użyta. Zrozumienie działania funkcji takich jak mysqli_fetch_row jest kluczowe dla poprawnego przetwarzania danych z bazy. Indeksowanie w tablicach wynikowych zaczyna się od zera dlatego też $a[1] i $a[2] odnoszą się do drugiego i trzeciego elementu tablicy a nie pierwszego i drugiego co również jest częstym źródłem błędów wśród początkujących programistów. Ponadto brak zrozumienia że echo wypisuje wartości z jednego rekordu a nie wszystkich może prowadzić do błędnych założeń w projektowaniu logiki aplikacji. Aby uzyskać dane ze wszystkich rekordów konieczne byłoby zastosowanie pętli takiej jak while która iterowałaby przez cały zbiór wyników co pokazuje różnicę w podejściu między pobieraniem pojedynczego rekordu a całego zestawu danych. Zrozumienie tych koncepcji jest istotne dla efektywnego i bezpiecznego korzystania z bazy danych w aplikacjach PHP i pozwala na unikanie typowych błędów związanych z przetwarzaniem rekordów z bazy danych. Dokładne zrozumienie struktury tablic wynikowych i sposobu ich przetwarzania jest niezbędne do rozwijania wydajnych i bezpiecznych aplikacji webowych. Warto również pamiętać o zabezpieczeniach takich jak użycie przygotowanych zapytań SQL by uniknąć ataków typu SQL Injection co jest istotnym aspektem tworzenia aplikacji bezpiecznych i odpornych na próby nieautoryzowanego dostępu.

Pytanie 38

Co robi w JavaScript zapis var napis1 = new napisy();?

A. wywołuje metodę obiektu napisy
B. tworzy nową KLASĘ napis1
C. deklaruje zmienną i wywołuje funkcję z argumentem napis1
D. tworzy obiekt napis1 klasy napisy
Pozostałe interpretacje mylą rolę new. Operator nie tworzy KLASY - klasę definiuje się osobno (konstruktorem lub słowem class), a new tylko robi z niej obiekt. Nie jest też zwykłym wywołaniem metody istniejącego obiektu - przeciwnie, dopiero POWOŁUJE obiekt do życia. Tu napis1 to nowy obiekt klasy napisy.

Pytanie 39

Jakie skutki przynosi wielokrotne uruchomienie poniższego kodu PHP?

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

Pytanie 40

Jak przy użyciu języka PHP można zapisać w ciasteczku wartość z zmiennej dane na okres jednego dnia?

A. setcookie("dane",$dane,time())
B. setcookie("dane","dane",0)
C. setcookie("dane",$dane,time()+(3600*24))
D. setcookie("dane",$dane,0)
W przypadku odpowiedzi, które nie spełniają wymagań dotyczących prawidłowego ustawienia ciasteczka, można zauważyć kilka typowych błędów myślowych. Na przykład odpowiedź setcookie("dane", $dane, 0); ustawia czas wygaśnięcia ciasteczka na 0, co oznacza, że ciasteczko będzie dostępne tylko przez bieżącą sesję, a po zamknięciu przeglądarki zostanie usunięte. To podejście nie spełnia założenia przechowywania danych na jeden dzień. Z kolei odpowiedź setcookie("dane", "dane", 0); również ustawia ciasteczko na czas trwania sesji, a dodatkowo przechowuje w nim literalny tekst "dane" zamiast wartości zmiennej, co może prowadzić do dezorientacji i błędów, jeśli zmienna $dane miała zawierać dynamiczne dane użytkownika. W odpowiedzi setcookie("dane", $dane, time()); brakuje określenia czasu wygaśnięcia, co skutkuje tym, że ciasteczko również wygasa po zamknięciu przeglądarki. Kluczowym błędem jest więc nieustawienie prawidłowego czasu, co jest fundamentalne w kontekście sesji użytkowników w aplikacjach webowych. Ciasteczka są często wykorzystywane do personalizacji doświadczeń użytkownika, a ich prawidłowe ustawienie jest kluczowe dla zachowania danych przez adekwatny czas. Dlatego ważne jest zrozumienie, że odpowiednie zarządzanie ciasteczkami wymaga świadomości dotyczącej czasu wygaśnięcia oraz poprawnego przypisywania wartości.