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: 14 kwietnia 2026 00:49
  • Data zakończenia: 14 kwietnia 2026 00:55

Egzamin zdany!

Wynik: 23/40 punktów (57,5%)

Wymagane minimum: 20 punktów (50%)

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

Aby zaktualizować maksymalną długość kolumny imie w tabeli klienci do 30 znaków, należy zastosować w języku SQL poniższy kod

A. ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);
B. CHANGE TABLE klienci MODIFY imie CHAR(30);
C. ALTER TABLE klienci CHANGE imie TEXT;
D. CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);
Odpowiedzi, które nie zostały uznane za poprawne, zawierają istotne błędy w składni i logice użycia poleceń SQL. W pierwszym przypadku, użycie 'CHANGE TABLE' oraz 'TO COLUMN' jest niezgodne z syntaksą SQL. W SQL nie istnieje polecenie 'CHANGE TABLE', co czyni tę odpowiedź całkowicie błędną. Dodatkowo, 'SET CHAR(30)' nie jest akceptowaną konstrukcją w kontekście modyfikacji kolumn. W drugim przypadku, użycie 'CHAR(30)' zamiast 'VARCHAR(30)' ogranicza możliwość przechowywania danych do stałej długości 30 znaków, co nie jest optymalne dla pól tekstowych, w których długość danych może się różnić. To może prowadzić do marnotrawienia przestrzeni w bazie danych. Ostatnia odpowiedź, w której proponuje się użycie polecenia 'CHANGE' oraz 'TEXT', jest również błędna, ponieważ 'TEXT' nie jest odpowiednim typem danych w tym kontekście i nie odpowiada wymaganiom dotyczącym długości. Właściwe polecenia powinny być zgodne z zasadami SQL oraz specyfiką danych, które chcemy przechowywać, co w tym przypadku nie zostało spełnione.

Pytanie 2

Rodzaj programowania, w którym seria poleceń (sekwencja instrukcji) jest traktowana jako program, nazywa się programowaniem

A. stanowym
B. logicznym
C. funkcyjnym
D. imperatywnym
Programowanie funkcyjne, które można by błędnie uznać za odpowiedź, koncentruje się na obliczeniach jako na wywołaniach funkcji, co oznacza, że kluczowym aspektem tego podejścia jest niezmienność danych i unikanie efektów ubocznych. Funkcje w programowaniu funkcyjnym są traktowane jako pierwszorzędne obiekty, co różni je od programowania imperatywnego, gdzie głównym celem jest sekwencja instrukcji. Z tego powodu, w programowaniu funkcyjnym nie definiuje się programu jako ciągu poleceń, lecz jako zbiór transformacji danych. Programowanie logiczne z kolei skupia się na reprezentacji wiedzy w postaci faktów i reguł, umożliwiając systemom wnioskowanie, a nie na wykonywaniu instrukcji. Przykładem takiego podejścia jest Prolog, gdzie programy są formułowane w sposób deklaratywny. Programowanie stanowe, które również mogłoby być mylące, odnosi się do koncepcji, w której program operuje w różnych stanach, często z użyciem maszyn stanowych, co znowu nie odnosi się do ciągu instrukcji. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków często wynikają z nieporozumienia dotyczącego różnicy między różnymi paradygmatami programowania i ich zastosowaniami. Każde z tych podejść ma swoje unikalne cechy i zastosowania, ale kluczowa różnica, która definiuje programowanie imperatywne, to jego zależność od sekwencji instrukcji, co czyni je odmiennym od innych stylów programowania.

Pytanie 3

Istnieje tabela o nazwie przedmioty, która zawiera kolumny ocena i uczenID. Jakie zapytanie należy wykorzystać, aby obliczyć średnią ocen ucznia z ID równym 7?

A. COUNT SELECT ocena FROM przedmioty WHERE uczenID=7;
B. AVG SELECT ocena FROM przedmioty WHERE uczenID=7;
C. SELECT AVG(ocena) FROM przedmioty WHERE uczenID=7;
D. SELECT COUNT(ocena) FROM przedmioty WHERE uczenID=7;
Odpowiedź SELECT AVG(ocena) FROM przedmioty WHERE uczenID=7; jest prawidłowa, ponieważ wykorzystuje funkcję agregującą AVG, która oblicza średnią wartość dla podanego zestawu danych. W tym przypadku skupiamy się na ocenach ucznia o ID równym 7, co osiągamy poprzez zastosowanie klauzuli WHERE. Funkcje agregujące, takie jak AVG, są standardowym narzędziem w SQL do analizy danych, szczególnie przydatnym w kontekście raportowania i analityki. Dzięki takiemu zapytaniu możemy szybko uzyskać średnią ocen ucznia, co może być wykorzystane do oceny jego postępów w nauce lub do podejmowania decyzji z zakresu pedagogiki w oparciu o zebrane dane. W praktyce, takie podejście jest zgodne z najlepszymi praktykami w pracy z bazami danych, pozwalając na wydobycie istotnych informacji z dużych zbiorów danych bez konieczności przetwarzania ich ręcznie. Użycie AVG w połączeniu z klauzulą GROUP BY mogłoby również być zastosowane, gdybyśmy chcieli uzyskać średnie oceny dla wielu uczniów jednocześnie, co dodatkowo podkreśla elastyczność i moc SQL w analizie danych.

Pytanie 4

Integralność referencyjna w relacyjnych bazach danych wskazuje, że

A. wartość klucza obcego w konkretnej tabeli musi być równa wartości klucza głównego w powiązanej tabeli lub mieć wartość NULL
B. wartość klucza głównego oraz klucza obcego nie może być pusta
C. każdemu kluczowi głównemu przyporządkowany jest dokładnie jeden klucz obcy w danej tabeli lub powiązanych tabelach
D. klucz główny lub klucz obcy nie zawierają żadnych wartości NULL
Integralność referencyjna to kluczowy koncept w modelu relacyjnych baz danych, który zapewnia spójność oraz integralność danych pomiędzy różnymi tabelami. Oznacza to, że każda wartość klucza obcego w danej tabeli musi być zgodna z wartością klucza głównego w powiązanej tabeli, lub może być wartością NULL, co oznacza brak powiązania. Dzięki temu zyskujemy pewność, że wszelkie relacje między danymi są logiczne i zgodne z założeniami projektowymi bazy danych. Przykładem może być tabela 'Zamówienia', w której klucz obcy 'ID_Klienta' odnosi się do klucza głównego 'ID_Klienta' w tabeli 'Klienci'. Jeśli wartość 'ID_Klienta' w tabeli 'Zamówienia' nie pasuje do żadnej wartości 'ID_Klienta' w tabeli 'Klienci', narusza to integralność referencyjną. Standardy takie jak SQL (Structured Query Language) oraz zasady ACID (Atomicity, Consistency, Isolation, Durability) podkreślają znaczenie integralności danych, co jest kluczowe dla poprawnego funkcjonowania systemów bazodanowych i zapewnienia ich niezawodności oraz efektywności. Utrzymanie integralności referencyjnej jest istotne dla analizy danych, raportowania oraz utrzymywania relacji między różnymi obiektami w bazie.

Pytanie 5

Który z typów plików dźwiękowych oferuje największą kompresję rozmiaru?

A. WAV
B. CD-Audio
C. MP3
D. PCM
Format MP3 (MPEG Audio Layer III) jest standardem kompresji stratnej, który znacząco zmniejsza rozmiar pliku dźwiękowego, zachowując przy tym akceptowalną jakość dźwięku. Technologia ta wykorzystuje algorytmy psychoakustyczne, które eliminują dźwięki, które są mniej słyszalne dla ludzkiego ucha. Dzięki temu możliwe jest osiągnięcie redukcji rozmiaru pliku o 70-90% w porównaniu z jakością oryginalnego nagrania. Praktyczne zastosowanie formatu MP3 jest szerokie: od przesyłania muzyki przez internet po użycie w odtwarzaczach multimedialnych oraz smartfonach. Możliwość dostosowania bitrate'u (od 32 kbps do 320 kbps) pozwala użytkownikom na balansowanie pomiędzy jakością a rozmiarem pliku. MP3 stał się de facto standardem w dystrybucji muzyki cyfrowej, a jego wsparcie w praktycznie każdym odtwarzaczu audio czyni go niezwykle uniwersalnym. Warto również dodać, że MP3 jest zgodny z wieloma standardami, takimi jak ID3, które umożliwiają dołączanie metadanych do plików audio, co dodatkowo podnosi jego funkcjonalność.

Pytanie 6

Co zazwyczaj wchodzi w skład Framework'a?

A. wbudowany serwer i obsługa formularzy
B. zarządzanie komunikacją z bazą danych, mechanizm uruchamiania i przetwarzania akcji
C. certyfikat http oraz mechanizm przetwarzania i uruchamiania akcji
D. obsługa błędów i domena
Frameworki to zestawy narzędzi i bibliotek, które ułatwiają rozwój aplikacji webowych, a ich najważniejsze elementy to zarządzanie komunikacją z bazą danych oraz mechanizm uruchamiania i przetwarzania akcji. Zarządzanie komunikacją z bazą danych odnosi się do sposobu, w jaki aplikacja łączy się z systemem zarządzania bazą danych (DBMS), wykonuje zapytania oraz przetwarza wyniki. Przykładem może być użycie ORM (Object-Relational Mapping), które upraszcza interakcję z bazą, eliminując potrzebę pisania skomplikowanych zapytań SQL. Mechanizm uruchamiania i przetwarzania akcji odnosi się do sposobu, w jaki framework zarządza cyklem życia żądania. Obejmuje to odbieranie żądania od użytkownika, przetwarzanie logiki biznesowej oraz generowanie odpowiedzi. Frameworki takie jak Ruby on Rails czy Django stosują wzorzec MVC (Model-View-Controller), co pozwala na rozdzielenie logiki aplikacji od warstwy prezentacji, co zwiększa czytelność i ułatwia zarządzanie kodem. Aby w pełni zrozumieć te mechanizmy, warto zaznajomić się z dokumentacją odpowiedniego frameworka, co dostarczy informacji na temat najlepszych praktyk i standardów.

Pytanie 7

Integralność referencyjna w relacyjnych bazach danych oznacza, że

A. wartość klucza głównego oraz klucza obcego nie może być pusta
B. każdemu kluczowi głównemu przyporządkowany jest dokładnie jeden klucz obcy w powiązanych tabelach
C. wartość klucza obcego w danej tabeli musi być albo równa wartości klucza głównego w związanej z nią tabeli albo równa wartości NULL
D. klucz główny lub klucz obcy nie mogą zawierać wartości NULL
Wybór odpowiedzi sugerujących, że każdemu kluczowi głównemu odpowiada dokładnie jeden klucz obcy w tabeli lub tabelach powiązanych, jest błędny. W rzeczywistości, jeden klucz główny może być powiązany z wieloma kluczami obcymi w różnych rekordach. Na przykład, w bazie danych dotyczącej zamówień, klucz główny tabeli 'Klienci' może być referencjonowany przez wiele rekordów w tabeli 'Zamówienia', co oznacza, że ten sam klient może mieć wiele zamówień. Odpowiedzi sugerujące, że klucz główny lub klucz obcy nie zawierają wartości NULL, są również mylące. W praktyce, klucze obce mogą zawierać wartość NULL, co oznacza, że dany rekord nie musi mieć przypisanego odniesienia do innej tabeli. Przykładem mogą być zamówienia, które nie są jeszcze przypisane do żadnego klienta – w takim wypadku wartość klucza obcego (KlientID) może być NULL. Te nieprawidłowe odpowiedzi prowadzą do błędnych wniosków, które mogą wpłynąć na projektowanie baz danych oraz ich funkcjonalność. Zrozumienie, że klucze obce mogą być NULL oraz że jeden klucz główny może być powiązany z wieloma kluczami obcymi, jest kluczowe dla prawidłowego modelowania danych i zapewnienia spójności w bazach danych.

Pytanie 8

Wskaż nieprawdziwe zdanie dotyczące normalizacji dźwięku.

A. Normalizacja polega na obniżeniu poziomu najgłośniejszej próbki w sygnale do określonej wartości, a następnie w odniesieniu do niej proporcjonalnym zwiększeniu głośności pozostałej części sygnału.
B. Funkcja normalizacja znajduje się w menu programu do edycji dźwięku.
C. Podczas normalizacji poziom głośności całego nagrania jest wyrównywany.
D. Gdy najgłośniejszy fragment dźwięku ma wartość pół na skali, to wszystkie dźwięki zostaną wzmocnione dwukrotnie - w ten sposób najgłośniejszy fragment osiągnie maksymalną wartość na skali.
W tej odpowiedzi jest pewne nieporozumienie związane z tym, co to znaczy normalizacja sygnału dźwiękowego. To nie jest po prostu podwojenie głośności najgłośniejszego kawałka, to by było za proste. Chodzi o to, żeby całe nagranie miało odpowiednią głośność bez wprowadzania zniekształceń. Jeśli najgłośniejszy fragment audio jest na poziomie 50%, normalizacja ma za zadanie podnieść poziom całego nagrania tak, żeby ten najgłośniejszy kawałek dotarł do maksymalnej wartości. To nie jest kwestia po prostu pomnożenia przez dwa, a raczej odpowiedniego dostosowania do skali decybelowej. To jest szczególnie ważne, bo w normalizacji musimy unikać clippingu, czyli zniekształceń dźwięku, które mogą się zdarzyć, gdy poziom wyjściowy jest za wysoki. Normalizacja dobrze działa w połączeniu z innymi technikami, takimi jak kompresja i limitacja, żeby uzyskać najlepsze efekty w produkcji audio. Dlatego warto to dobrze rozumieć, bo źle użyta normalizacja może prowadzić do kiepskiej jakości dźwięku oraz ogólnie nieprzyjemnych wrażeń podczas słuchania.

Pytanie 9

Elementarna animacja może być zapisana w formacie

A. GIF
B. BMP
C. PSD
D. TIFF
Wybór formatu TIFF (Tagged Image File Format) do zapisywania animacji jest niewłaściwy, ponieważ jest on głównie stosowany do przechowywania statycznych obrazów o wysokiej jakości, często wykorzystywanych w drukowaniu i skanowaniu. TIFF obsługuje bogate kolory i jest idealny do archiwizacji zdjęć oraz grafiki, jednak nie ma możliwości zapisu sekwencji obrazów jako animacji. Co więcej, pliki TIFF są zazwyczaj większe niż pliki GIF, co sprawia, że są mniej praktyczne w kontekście animacji internetowych, gdzie szybkość ładowania jest kluczowa. Format BMP (Bitmap) również nie jest odpowiedni do animacji. BMP to format plików bitmapowych, który przechowuje dane o każdym pikselu w obrazie, co prowadzi do dużych rozmiarów plików oraz braku kompresji. BMP nie oferuje żadnej funkcji animacji i jest używany głównie do przechowywania pojedynczych, statycznych obrazów, co czyni go nieefektywnym wyborem dla jakiejkolwiek formy ruchomej grafiki. Z kolei PSD (Photoshop Document) to format plików stworzony przez Adobe Photoshop, który służy do przechowywania wszystkich warstw projektu graficznego. Chociaż umożliwia tworzenie złożonych grafik i edycję w różnorodnych warstwach, PSD nie nadaje się do zapisania animacji w standardowym rozumieniu tego terminu. Tylko w Adobe Photoshop można tworzyć animacje w formacie PSD, ale i tak nie są one kompatybilne z większością platform internetowych, co ogranicza ich użyteczność do zastosowań profesjonalnych.

Pytanie 10

Jakie parametry powinny być ustawione w funkcji biblioteki mysqli, aby umożliwić połączenie z serwerem oraz bazą danych?

mysqli_connect($a, $b, $c, $d) or die('Brak połączenia z serwerem MySQL.');
A. adres serwera - $c, nazwa bazy danych - $d, login - $a, hasło - $b
B. adres serwera - $a, nazwa bazy danych - $d, login - $b, hasło - $c
C. adres serwera - $a, nazwa bazy danych - $b, login - $c, hasło - $d
D. adres serwera - $c, nazwa bazy danych - $d, login - $b, hasło - $a
W przypadku niepoprawnych odpowiedzi można zauważyć typowe błędy związane z zrozumieniem argumentów funkcji mysqli_connect. Wiele osób myli kolejność zmiennych oraz ich znaczenie. Na przykład, podanie adresu serwera jako $c lub $d jest błędne, ponieważ pierwszy argument zawsze powinien wskazywać na adres serwera. Warto również zwrócić uwagę na znaczenie loginu i hasła – nie można ich zamieniać miejscami, ponieważ każdy z tych parametrów pełni inną funkcję w kontekście autoryzacji do bazy danych. W ramach dobrych praktyk programistycznych, istotne jest także stosowanie raz jeszcze uwierzytelnienia użytkownika, co pozwala uniknąć nieautoryzowanego dostępu do danych. Przykłady niepoprawnych odpowiedzi pokazują też, że błędne przypisanie nazw bazy danych do zmiennych może prowadzić do błędów w aplikacji, co w efekcie utrudnia jej działanie oraz zwiększa ryzyko wycieków danych. Kluczowe jest zrozumienie, że każdy parametr pełni specyficzną rolę w tworzeniu połączenia. Niezrozumienie tego kontekstu może prowadzić do trudności w dalszym programowaniu oraz w diagnostyce problemów z bazą danych.

Pytanie 11

W bibliotece mysqli w PHP, aby uzyskać najbardziej aktualny komunikat o błędzie, można użyć funkcji

A. mysqli_use_result()
B. mysqli_error_list()
C. mysqli_errno()
D. mysqli_error()
Funkcja mysqli_error() w bibliotece mysqli języka PHP jest sposobem na uzyskanie ostatniego komunikatu o błędzie związanym z połączeniem lub zapytaniem SQL. Zwraca ona łańcuch znaków, który opisuje ostatni błąd związany z danym połączeniem. Jest to niezwykle przydatne narzędzie w procesie debugowania, ponieważ pozwala programiście szybko zidentyfikować źródło problemu. Na przykład, jeśli napotkasz błąd podczas wykonywania zapytania, możesz użyć mysqli_error($connection) po funkcji wykonującej zapytanie, aby uzyskać szczegółowy opis błędu. W kontekście dobrych praktyk programistycznych, zawsze należy obsługiwać błędy i nie ignorować ich, aby uniknąć trudności w przyszłości. Warto również pamiętać, że funkcja ta działa tylko w kontekście aktualnego połączenia bazodanowego, co oznacza, że przed jej użyciem musisz mieć aktywne połączenie. Przykład użycia: $result = mysqli_query($connection, $query); if (!$result) { echo mysqli_error($connection); }

Pytanie 12

Funkcja agregująca MIN w języku SQL ma na celu określenie

A. wartości minimalnej z kolumny zwróconej przez kwerendę
B. liczby znaków w rekordach zwróconych przez kwerendę
C. liczby wierszy zwróconych przez kwerendę
D. średniej wartości kolumny obserwowanej w wyniku zapytania
Funkcja agregująca MIN w języku SQL służy do wyznaczania wartości minimalnej w zadanej kolumnie, co jest kluczowym aspektem analizy danych w bazach danych. Przykładowo, gdy korzystasz z zapytania SELECT MIN(wiek) FROM pracownicy, otrzymasz najniższy wiek pracownika w tabeli. To narzędzie jest niezwykle przydatne w raportowaniu oraz przy podejmowaniu decyzji opartych na danych, gdyż pozwala na szybkie określenie najniższych wartości w zestawieniach, takich jak najstarszy pracownik w firmie, najniższa cena produktu, czy najkrótszy czas realizacji zamówienia. W praktyce, używanie funkcji MIN pomaga organizacjom w identyfikacji problemów oraz w optymalizacji procesów. Stosowanie funkcji agregujących, takich jak MIN, jest zgodne z najlepszymi praktykami w zakresie analizy danych, ponieważ umożliwia efektywne przetwarzanie dużych zbiorów informacji i wyciąganie z nich wartościowych wniosków, co jest kluczowe w zarządzaniu danymi i tworzeniu raportów analitycznych.

Pytanie 13

Aby wprowadzić dane do bazy przy użyciu polecenia PHP, konieczne jest przekazanie do jego parametrów

A. id wiersza w $zm1 i zapytanie INSERT INTO w $zm2
B. identyfikator połączenia z bazą danych w $zm1 i zapytanie INSERT INTO w $zm2
C. NULL w $zm1, aby baza mogła zapisać kod błędu i zapytanie SELECT w $zm2
D. identyfikator połączenia z bazą danych w $zm1 i zapytanie SELECT w $zm2
Poprawna odpowiedź wskazuje, że w parametrze $zm1 należy przekazać identyfikator połączenia z bazą danych, a w $zm2 zapytanie INSERT INTO. To podejście jest zgodne z zasadami korzystania z funkcji mysqli_query w PHP, która jest używana do wykonywania zapytań SQL na bazie danych. Identyfikator połączenia jest niezbędny, ponieważ pozwala PHP zidentyfikować, z którą bazą danych będzie nawiązywało interakcję. Zapytanie INSERT INTO umożliwia dodawanie nowych rekordów do określonej tabeli. Na przykład, jeśli chcemy dodać nowego użytkownika do tabeli 'users', możemy użyć polecenia: mysqli_query($connection, "INSERT INTO users (name, email) VALUES ('Jan Kowalski', '[email protected]')"). Przestrzeganie tych zasad jest zgodne z praktykami bezpieczeństwa, takimi jak unikanie SQL Injection, które można osiągnąć poprzez odpowiednie przygotowywanie zapytań oraz walidację danych przed ich wstawieniem.

Pytanie 14

Kwerenda umożliwiająca modyfikację wielu rekordów lub przeniesienie ich przy pomocy jednego działania, określana jest jako kwerenda

A. krzyżowej
B. parametrycznej
C. funkcjonalnej
D. wybierająca
Kwerenda funkcjonalna to naprawdę przydatne narzędzie w bazach danych, które pozwala na wprowadzanie zmian w wielu rekordach na raz. To świetnie działa, jeśli masz dużo danych do przetworzenia, bo oszczędza czas i zasoby. Przykładem, który przychodzi mi do głowy, jest aktualizacja statusu zamówień w sklepie online. Można na przykład zmienić wszystkie zamówienia z "oczekujące" na "zrealizowane" jednym kliknięciem. To jest zgodne z dobrymi praktykami zarządzania danymi, bo utrzymuje porządek i spójność. A jeśli mówimy o standardach, kwerendy funkcjonalne są zgodne z SQL i jego różnymi rozszerzeniami, co ułatwia integrację z innymi systemami. Ważne jest tylko, żeby dobrze zabezpieczać dane, by przypadkiem nie usunąć lub nie zmienić czegoś ważnego. W branży często podkreśla się, że trzeba testować i walidować operacje na bazach, żeby wszystko działało jak należy.

Pytanie 15

Na obrazie przedstawiono projekt układu bloków witryny internetowej. Zakładając, że bloki są realizowane za pomocą znaczników sekcji, ich formatowanie w CSS, oprócz ustawionych szerokości, powinno zawierać właściwość

BLOK 1BLOK 2
BLOK 3BLOK 4
BLOK 5
A. float: left dla wszystkich bloków.
B. clear: both dla bloku 5 oraz float: left jedynie dla 1 i 2 bloku.
C. clear: both dla bloku 5 oraz float: left dla pozostałych bloków.
D. clear: both dla wszystkich bloków.
Hmm, tutaj coś poszło nie tak. Wybrałeś opcję z `clear: both`, ale to nie do końca pasuje do tego zadania. `clear: both` w CSS służy głównie do resetowania pływania bloków, więc jak masz blok z tym ustawieniem, to następny nie będzie obok niego, tylko przesunie się na dół. A w tym przypadku nie musisz resetować pływania, bo to nie jest potrzebne. Wiem, że wybór `float: left` dla niektórych bloków może wydawać się dobrym pomysłem, ale żeby wszystko się poprawnie ułożyło, musisz zastosować `float: left` dla wszystkich bloków. I pamiętaj, żeby im ustawić szerokość, bo inaczej bloków może się nie udać ułożyć w poziomie.

Pytanie 16

Po zrealizowaniu polecenia użytkownik Jacek będzie miał możliwość

GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost';
A. usuwać rekordy z tabeli i przeglądać informacje
B. modyfikować strukturę tabeli oraz dodawać nowe dane
C. usuwać tabelę i zakładać nową
D. przeglądać dane w tabeli i wstawiać nowe dane
Polecenie GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost'; przyznaje użytkownikowi Jacek uprawnienia do przeglądania danych (SELECT) oraz wstawiania nowych danych (INSERT) do tabeli mojaTabela w bazie danych baza1. To oznacza, że Jacek nie ma możliwości usuwania tabeli ani zmiany jej struktury, co jest zarezerwowane dla uprawnień takich jak ALTER czy DROP. Zastosowanie tych uprawnień jest kluczowe w kontekście bezpieczeństwa i zarządzania danymi, ponieważ pozwala na kontrolowanie, kto może wykonywać określone operacje w bazie danych. Przykładem praktycznego zastosowania może być sytuacja, w której zespół programistów musi umożliwić pracownikom działu sprzedaży dostęp do danych klientów w tabeli, ale jednocześnie chce zapobiec przypadkowemu usunięciu lub modyfikacji struktury tabeli. W ten sposób, przyznając tylko uprawnienia SELECT i INSERT, administracja bazy danych może zapewnić odpowiedni poziom kontroli nad danymi, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi i zabezpieczeń.

Pytanie 17

W języku PHP, aby nawiązać połączenie z bazą danych MySQL za pomocą biblioteki mysqli, wykorzystując podany kod, w miejscu parametru 'c' powinno się wpisać

$a = new mysqli('b', 'c', 'd', 'e')
A. nazwę użytkownika
B. lokalizację serwera bazy danych
C. nazwę bazy danych
D. hasło użytkownika
Aby poprawnie korzystać z biblioteki mysqli w PHP konieczne jest zrozumienie kolejności i znaczenia parametrów używanych do nawiązywania połączenia z bazą danych MySQL. Pierwszym parametrem w funkcji mysqli_connect lub konstruktorze klasy mysqli jest lokalizacja serwera bazy danych. Zazwyczaj wartością domyślną jest 'localhost' co oznacza że serwer bazy danych działa na tej samej maszynie co serwer PHP. Błędne przypisywanie innej wartości w tym miejscu może prowadzić do problemów z połączeniem jeśli serwer bazy danych jest w rzeczywistości lokalny. Drugim parametrem jest nazwa użytkownika która jest niezbędna do autoryzacji dostępu do bazy danych. Często stosowanym błędem jest użycie niewłaściwego użytkownika co może skutkować odmową dostępu do bazy. Trzecim jest hasło które powinno być silne i dobrze zabezpieczone aby zapobiec nieautoryzowanemu dostępowi. Błędne przypisanie tego parametru może skutkować podatnością na ataki. Czwartym parametrem jest nazwa bazy danych do której zamierzamy się połączyć. Błędne podanie tej wartości może powodować że operacje bazy danych będą wykonywane na niewłaściwej bazie co może mieć katastrofalne skutki dla danych. Zrozumienie i poprawne przypisanie tych wartości jest kluczowe w kontekście bezpieczeństwa i stabilności aplikacji webowych i często jest elementem dobrych praktyk w programowaniu PHP. Również zrozumienie tego w kontekście skalowalności i zarządzania środowiskami produkcyjnymi jest istotne aby uniknąć problemów związanych z konfiguracją na różnych etapach rozwoju aplikacji. Właściwe zarządzanie tymi parametrami często wiąże się z używaniem plików konfiguracyjnych co pozwala na łatwiejsze zarządzanie i większą elastyczność w kontekście różnych środowisk programistycznych i produkcyjnych. Poprawne zrozumienie tego mechanizmu jest kluczowe dla tworzenia bezpiecznych i stabilnych aplikacji webowych.

Pytanie 18

W jaki sposób można ocenić normalizację przedstawionej tabeli?

FirmaAdres
Forbotul. Krótka 11, 22-222 Warszawa
Marbotul. Długa 5, 33-333 Warszawa
A. Tabela jest w trzeciej postaci normalnej
B. Tabela znajduje się w drugiej postaci normalnej
C. Tabela nie została znormalizowana
D. Tabela znajduje się w pierwszej postaci normalnej
Pierwsza postać normalna wymaga aby wszystkie wartości atrybutów w rekordzie były atomowe czyli nieredukowalne Tabela przedstawiona w zadaniu nie spełnia tego wymogu ponieważ adresy nie są rozbite na osobne elementy takie jak ulica miasto i kod pocztowy co uniemożliwia bardziej złożoną manipulację danymi oraz precyzyjne wyszukiwanie Druga postać normalna wymaga aby wszystkie atrybuty nie będące częścią klucza głównego były w pełni funkcjonalnie zależne od całego klucza Tabela z pytania nie spełnia tych kryteriów ponieważ istnieje redundancja i brak wyraźnej struktury Klucz główny w dobrze zaprojektowanej tabeli bazy danych powinien jednoznacznie identyfikować każdy wiersz co nie jest widoczne w tej strukturze Trzecia postać normalna idzie krok dalej eliminując zależności przechodnie między atrybutami co w przypadku tej tabeli również nie ma zastosowania Problemem tutaj jest brak rozdzielenia danych na mniejsze tabele co prowadzi do redundancji i potencjalnych błędów przy aktualizacji danych często określanych jako anomaly W dobrze znormalizowanej bazie danych oddzielenie informacji takich jak dane adresowe umożliwia lepszą organizację danych ich spójność oraz zwiększa efektywność operacji na bazie danych

Pytanie 19

Utworzono bazę danych z tabelą mieszkańcy, która zawiera pola: nazwisko, imię oraz miasto. Następnie przygotowano poniższe zapytanie do bazy:
SELECT nazwisko, imie FROM mieszkańcy WHERE miasto='Poznań' UNION ALL SELECT nazwisko, imie FROM mieszkańcy WHERE miasto='Kraków';
Wskaż zapytanie, które zwróci takie same dane.

A. SELECT nazwisko, imie FROM mieszkańcy WHERE miasto BETWEEN 'Poznań' OR 'Kraków';
B. SELECT nazwisko, imie FROM mieszkańcy AS 'Poznań' OR 'Kraków';
C. SELECT nazwisko, imie FROM mieszkańcy WHERE miasto='Poznań' OR miasto='Kraków';
D. SELECT nazwisko, imie FROM mieszkańcy WHERE miasto HAVING 'Poznań' OR 'Kraków';
Wybór błędnych odpowiedzi wynika z nieprawidłowego zrozumienia podstawowych zasad użycia operatorów w SQL oraz sposobu, w jaki warunki filtracji danych powinny być konstruowane. Zapytanie, które wykorzystuje BETWEEN, jest stosowane do porównywania wartości w określonym zakresie, ale w tym przypadku nie jest możliwe wskazanie dwóch różnych wartości, jak w przypadku miast. Operator OR w kontekście BETWEEN nie ma zastosowania, co sprawia, że ta koncepcja jest fundamentalnie błędna. Z drugiej strony, użycie HAVING jest niewłaściwe, ponieważ służy do filtrowania wyników po agregacji danych, a nie do bezpośredniej filtracji na podstawie wartości. Dodatkowo, konstrukcja SELECT z aliasem 'Poznań' OR 'Kraków' jest syntaktycznie niepoprawna, ponieważ operator OR nie może być użyty w tym kontekście. Typowym błędem w myśleniu jest mylenie operatorów logicznych i ich zastosowania w różnych kontekstach zapytań SQL. Zrozumienie, kiedy używać WHERE, HAVING oraz jak działa składnia zapytań, jest kluczowe dla poprawnego pisania i optymalizacji zapytań baz danych.

Pytanie 20

Aby poprawić prędkość ładowania strony z grafiką o wymiarach 2000 px na 760 px, konieczne jest zmniejszenie rozmiarów grafiki?

A. za pomocą właściwości CSS, podając rozmiar w procentach
B. za pomocą atrybutów HTML
C. w programie graficznym
D. za pomocą właściwości CSS, podając rozmiar w pikselach
Zwiększenie szybkości działania strony internetowej z grafiką o wymiarach 2000 px na 760 px jest kluczowym zadaniem dla zapewnienia lepszej wydajności i doświadczeń użytkowników. Zmniejszenie rozmiarów grafiki w programie graficznym przed jej umieszczeniem na stronie jest najlepszą praktyką. Poprzez optymalizację obrazu możemy znacznie zmniejszyć jego wagę, co przyspiesza ładowanie strony. Programy graficzne, takie jak Adobe Photoshop czy GIMP, oferują różne narzędzia do kompresji obrazów bez zauważalnej utraty jakości. Dodatkowo, stosowanie formatów plików odpowiednich do rodzaju grafiki, jak JPEG dla zdjęć lub PNG dla grafik z przezroczystością, może przyczynić się do dalszej optymalizacji. Warto również pamiętać o technikach, takich jak lazy loading, które pozwalają na ładowanie obrazów w miarę przewijania strony, co również wpływa na szybkość ładowania. Te czynności są zgodne z zasadami SEO i wynikami stron w wyszukiwarkach, co czyni je kluczowymi dla każdego twórcy internetowego.

Pytanie 21

Dana jest tablica n-elementowa o nazwie t[n] Zadaniem algorytmu zapisanego w postaci kroków jest wypisanie 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. co drugiego elementu tablicy.
B. sumy wszystkich elementów tablicy.
C. n-elementów tablicy.
D. sumy tych elementów tablicy, których wartości są nieparzyste.
Super rozebrałeś na czynniki pierwsze ten algorytm! Twoja odpowiedź 'co drugiego elementu tablicy' jest jak najbardziej trafna. W pytaniu chodzi o to, że algorytm sumuje co drugi element tablicy, zaczynając od pierwszego, a ten indeks to 0. Zmienna 'i' służy do poruszania się po tablicy i w każdej iteracji zwiększa się o 2. Dzięki temu pętla przeskakuje co drugi element, a te nieparzyste ignoruje. To naprawdę przydatna technika w programowaniu, bo pozwala na określony dostęp do danych. Takie algorytmy wykorzystuje się np. przy analizie danych z czujników, gdzie ważne są tylko wartości zapisane w regularnych odstępach.

Pytanie 22

W SQL wykorzystywanym przez system baz danych MySQL atrybut UNIQUE w poleceniu CREATE TABLE

A. Jest używany, gdy wartości w kolumnie nie mogą się powtarzać
B. Wymusza unikalne nazwy kolumn w tabeli
C. Jest stosowany wyłącznie w przypadku kolumn liczbowych
D. Zabrania wprowadzenia wartości NULL
Atrybut UNIQUE w MySQL jest kluczowym elementem definicji tabeli, który zapewnia, że wartości w danej kolumnie są unikalne w obrębie całej tabeli. Oznacza to, że nie może być dwóch wierszy, które mają tę samą wartość w kolumnie oznaczonej jako UNIQUE. Jest to szczególnie istotne w kontekście zarządzania danymi, gdyż pozwala na eliminację duplikatów, co jest zgodne z najlepszymi praktykami projektowania baz danych. Przykładem zastosowania atrybutu UNIQUE może być tabela przechowująca dane użytkowników, gdzie adres e-mail powinien być unikalny dla każdego użytkownika. Dzięki temu, system może zapewnić, że nie dojdzie do przypadkowego utworzenia dwóch kont z tym samym adresem e-mail. Warto dodać, że atrybut UNIQUE może współistnieć z wartościami NULL – w MySQL, wiele wartości NULL jest dozwolonych w kolumnie, która ma zastosowany atrybut UNIQUE. Zrozumienie i prawidłowe wykorzystanie tego atrybutu jest kluczowe dla zachowania integralności danych i efektywności operacji na bazie danych.

Pytanie 23

W języku SQL, aby usunąć wszystkie rekordy z tabeli, nie eliminując jej samej, można skorzystać z polecenia

A. DROP
B. UPDATE
C. ALTER
D. TRUNCATE
Wybór polecenia DROP do usunięcia danych z tabeli prowadzi do całkowitego usunięcia zarówno tabeli, jak i jej definicji ze struktury bazy danych. DROP jest stosowane, gdy chcemy usunąć obiekt w całości, co może być nie tylko nieodwracalne, ale także niepożądane w sytuacjach, gdy potrzebujemy zachować strukturę tabeli dla przyszłych operacji. Użycie ALTER w kontekście usuwania danych jest również błędne, ponieważ to polecenie służy do modyfikacji struktury tabeli, takiej jak dodawanie lub usuwanie kolumn, a nie do zarządzania danymi w tabeli. Kolejnym błędem myślowym jest zastosowanie polecenia UPDATE, które jest używane do modyfikacji istniejących danych w tabeli, a nie do ich usuwania. Często mylnie przyjmuje się, że UPDATE można wykorzystać do 'czyszczenia' tabeli, co jednak nie jest zgodne z rzeczywistym działaniem tego polecenia. Poprawne podejście polega na zrozumieniu, że usuwanie danych w SQL wymaga zastosowania odpowiednich poleceń w zależności od celu – czy chcemy usunąć dane, czy całą tabelę. Dlatego kluczowe jest odpowiednie zrozumienie różnicy między tymi poleceniami oraz ich zastosowaniem w praktycznych sytuacjach, aby uniknąć nieodwracalnych błędów w zarządzaniu danymi.

Pytanie 24

Źródłem danych dla raportu może być

A. makropolecenie
B. zapytanie INSERT INTO
C. inny raport
D. tabela
Tabela jest podstawowym elementem struktury bazy danych, który służy jako źródło danych dla raportów. Tabele przechowują zorganizowane informacje w formie wierszy i kolumn, co umożliwia łatwy dostęp i analizę danych. Każda kolumna w tabeli reprezentuje atrybut, a każdy wiersz to pojedynczy rekord z danymi. Przykładowo, w tabeli zawierającej informacje o klientach, kolumny mogą obejmować imię, nazwisko, adres e-mail i numer telefonu. Dzięki standardom takim jak SQL (Structured Query Language), można łatwo wykonywać operacje na tych tabelach, takie jak selekcja, aktualizacja czy usuwanie danych. Tabele są fundamentalne w systemach zarządzania bazami danych (DBMS) i stanowią podstawowe źródło dla generowania raportów, które mogą być wykorzystywane w różnych kontekstach biznesowych. W raportach można agregować dane, obliczać różne wskaźniki oraz wizualizować wyniki, co czyni tabele nieocenionym elementem w analizie danych.

Pytanie 25

W języku PHP funkcja trim ma za zadanie

A. wyznaczyć długość napisu.
B. zmniejszać napis o wskazaną w parametrze liczbę znaków.
C. porównywać dwa napisy i wypisywać część wspólną.
D. z obu końców napisu usuwać białe znaki lub inne znaki podane w parametrze.
Poprawnie – funkcja trim() w PHP służy do usuwania z obu końców napisu tzw. znaków niechcianych, domyślnie białych znaków, czyli spacji, tabulatorów, znaków nowej linii, powrotu karetki itp. Kluczowe jest tu słowo „z końców” – trim nie rusza środka łańcucha, modyfikuje tylko początek i koniec. Składnia jest prosta: trim(string $string, string $characters = " \n\r\t\0\x0B"). Drugi parametr jest opcjonalny i pozwala samodzielnie określić zestaw znaków, które mają być usunięte. Przykład z praktyki: bardzo często po odebraniu danych z formularza stosuje się $name = trim($_POST['name']); żeby usunąć przypadkowe spacje przed i po imieniu użytkownika. Dzięki temu porównywanie napisów, walidacja czy zapisywanie do bazy danych jest bardziej przewidywalne i zgodne z dobrymi praktykami. Moim zdaniem trim to jedna z takich małych funkcji, które powinny wejść w nawyk – szczególnie przy obsłudze inputów użytkownika, importu danych z plików CSV, parsowaniu logów czy przygotowywaniu danych do serializacji. Warto też znać powiązane funkcje: ltrim() usuwa znaki tylko z lewej strony, a rtrim() (alias chop()) tylko z prawej. Dobrą praktyką jest stosowanie trim bezpośrednio po pobraniu danych z zewnętrznych źródeł, zanim zaczniemy robić jakiekolwiek porównania, zapisy do bazy czy generowanie kluczy. Pozwala to uniknąć bardzo irytujących błędów typu „ten sam użytkownik, ale inne spacje”, które potem trudno debugować. W profesjonalnych aplikacjach webowych obróbka łańcuchów, w tym właśnie trim, jest standardowym elementem warstwy walidacji i normalizacji danych wejściowych.

Pytanie 26

Jaką formę przybierze data po wykonaniu poniższego kodu PHP?

<?php
echo date('l, dS F Y');
?>
A. Monday, 10th July 17
B. Monday, 10 July 2017
C. Monday, 10th July 2017
D. 10, Monday July 2017
W tym przykładzie funkcja date() w PHP przyjmuje ciąg znaków 'l dS F Y' jako parametr formatowania, co determinuje sposób wyświetlenia daty. Znak 'l' reprezentuje pełną nazwę dnia tygodnia, co w przypadku poniedziałku da 'Monday'. 'd' to dwucyfrowa reprezentacja dnia miesiąca, dodając 'S' uzyskujemy jego wersję z angielskim sufiksem porządkowym, np. '10th', co jest zgodne z odpowiedzią. 'F' reprezentuje pełną nazwę miesiąca, czyli 'July', a 'Y' to pełny rok, czyli '2017'. Kombinacja tych formatów pozwala na uzyskanie czytelnej i zgodnej ze standardami reprezentacji daty w języku angielskim, co jest często wykorzystywane w międzynarodowych projektach webowych. Takie formatowanie jest nie tylko intuicyjne dla użytkowników, ale także zgodne z dobrymi praktykami w zakresie czytelności i użyteczności w aplikacjach internetowych. PHP umożliwia elastyczne formatowanie dat, co jest bardzo przydatne w kontekście globalnych aplikacji wymagających różnych lokalizacji.

Pytanie 27

W PHP typ float oznacza

A. łańcuchowy
B. zmiennoprzecinkowy
C. całkowity
D. logiczny
Wybór typów logicznego, całkowitego lub łańcuchowego jako odpowiedzi na pytanie o float w PHP sugeruje, że mogą być pewne nieporozumienia. Typ logiczny to prawda/fałsz i jest przydatny przy warunkach, ale do liczb się nie nadaje. Typ całkowity, czyli integer, przechowuje tylko liczby całkowite, a float potrzebuje liczb dziesiętnych, które są istotne w obliczeniach zmiennoprzecinkowych. Zrozumienie, co to za typy danych, jest naprawdę istotne w programowaniu, bo niewłaściwe użycie ich może dać nieoczekiwane rezultaty czy błędy w kodzie. Ponadto, łańcuch (string) to sekwencja znaków, i nie powinien być używany do obliczeń. Dlatego ważne, żeby znać różne typy danych i ich zastosowanie, żeby uniknąć problemów i zapewnić, że program będzie działał sprawnie.

Pytanie 28

Dana jest tabela ksiazki z polami: tytul, autor, cena (typu liczbowego). Aby kwerenda SELECT wybrała tylko tytuły, dla których cena jest mniejsza od 50 zł, należy zapisać

A. SELECT ksiazki FROM tytul WHERE cena < '50 zł';
B. SELECT tytul FROM ksiazki WHERE cena > '50 zł';
C. SELECT tytul FROM ksiazki WHERE cena < 50;
D. SELECT * FROM ksiazki WHERE cena < 50;
Prawidłowa odpowiedź wybiera dokładnie to, o co chodzi w treści zadania: tylko kolumnę tytul z tabeli ksiazki, ale tylko dla tych rekordów, gdzie cena jest mniejsza niż 50. Składnia SELECT tytul FROM ksiazki WHERE cena < 50; jest zgodna ze standardowym SQL i pokazuje dobrą praktykę – pobieramy tylko te dane, które są nam potrzebne, zamiast używać SELECT *. Dzięki temu zapytanie jest lżejsze, szybsze i czytelniejsze, co w większych projektach ma naprawdę duże znaczenie. Moim zdaniem warto zwrócić uwagę na kilka elementów. Po pierwsze, w klauzuli SELECT podajemy konkretne nazwy kolumn (tu: tytul), nie nazwę tabeli. Po drugie, w FROM podajemy dokładnie nazwę tabeli, z której korzystamy (ksiazki). Po trzecie, warunek WHERE cena < 50 poprawnie porównuje wartość liczbową, bo kolumna cena ma typ liczbowy, więc nie używamy tu cudzysłowów ani żadnych „zł” w środku. W praktyce podobny wzorzec stosuje się cały czas, np.: SELECT tytul, autor FROM ksiazki WHERE cena <= 30; żeby dostać tańsze książki, albo SELECT tytul FROM ksiazki WHERE cena BETWEEN 20 AND 40; gdy interesuje nas konkretny przedział. W profesjonalnych aplikacjach webowych taka precyzja w definiowaniu zapytań SQL jest podstawą: ułatwia optymalizację, indeksowanie kolumn (np. indeks na kolumnie cena przyspiesza filtrowanie w WHERE) i minimalizuje przesyłanie niepotrzebnych danych między bazą a aplikacją. Dobra praktyka jest też taka, żeby dostosowywać typy danych: skoro cena jest liczbą, to porównujemy ją z liczbą, bez jednostek, a formatowanie typu „50 zł” robimy później w warstwie prezentacji, np. w PHP, JavaScript albo w szablonach widoków.

Pytanie 29

W języku JavaScript rezultat działania instrukcji zmienna1 –= 1; będzie identyczny jak wynik instrukcji

A. zmienna1++;
B. zmienna1 === zmienna1 - 1;
C. zmienia1 = zmienna1 - 0;
D. zmienna1––;
Instrukcja 'zmienna1 -= 1;' w języku JavaScript jest skróconą formą zapisu, która oblicza nową wartość zmiennej 'zmienna1', odejmując od niej 1. Działa to na zasadzie równania, gdzie zmienna zostaje zaktualizowana do nowej wartości. Z kolei zapis 'zmienna1--;' również dokonuje dekrementacji zmiennej 'zmienna1' o 1, ale w formie operatora post-dekrementacji. W praktyce oznacza to, że obie instrukcje mają ten sam efekt końcowy, czyli zmiana wartości 'zmienna1' o 1 w dół. Przykładowo, jeżeli 'zmienna1' wynosi 5 przed wykonaniem powyższych operacji, to po ich wykonaniu jej wartość wyniesie 4. Takie skrócone formy zapisu są powszechną praktyką w programowaniu, ponieważ umożliwiają bardziej zwięzłe i czytelne przedstawienie operacji na zmiennych, co jest zgodne z zasadami czystego kodu. Używanie operatorów skróconych, takich jak '+=' i '-=', jest zalecane, ponieważ poprawia czytelność i zrozumiałość kodu.

Pytanie 30

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

A. wykluczenia.
B. grupowania.
C. części wspólnej.
D. sumy.
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 31

Jakiego zdarzenia należy użyć, aby funkcja JavaScript była uruchamiana za każdym razem, gdy użytkownik wprowadzi jakikolwiek znak w polu edycji?

A. onclick
B. onkeydown
C. onload
D. onmouseout
Odpowiedź 'onkeydown' jest poprawna, ponieważ to zdarzenie jest wywoływane za każdym razem, gdy użytkownik naciśnie klawisz na klawiaturze, a zatem idealnie nadaje się do sytuacji, gdy chcemy reagować na wprowadzanie tekstu w polu edycji. W praktyce oznacza to, że nasza funkcja może być użyta do natychmiastowego przetwarzania danych wprowadzanych przez użytkownika, co jest szczególnie istotne w przypadku dynamicznych interfejsów użytkownika. Na przykład, możemy wykorzystać 'onkeydown' do implementacji funkcji autouzupełniania, gdzie na bieżąco prezentujemy możliwe opcje na podstawie wprowadzanego tekstu. Dobrą praktyką jest również umieszczanie dodatkowych warunków, aby nasza funkcja nie była wywoływana dla klawiszy, które nie mają znaczenia dla wprowadzania tekstu, takich jak klawisze funkcyjne czy kombinacje klawiszy. Warto również zrozumieć, że istnieją inne zdarzenia, takie jak 'input', które mogą być użyte w podobnym kontekście, ale 'onkeydown' daje bardziej bezpośrednią kontrolę nad interakcją użytkownika.

Pytanie 32

Tabela programy zawiera kolumny: nazwa_programu, nazwa_producenta, rok_wydania. Jak należy zapisać kwerendę SELECT, aby uzyskać wszystkie unikalne nazwy producentów?

A. SELECT DISTINCT nazwa_producenta FROM programy
B. SELECT nazwa_producenta FROM programy WHERE nazwa_producenta NOT DUPLICATE
C. SELECT UNIQUE nazwa_producenta FROM programy
D. SELECT nazwa_producenta FROM programy WHERE UNIQUE
Odpowiedzi, które wykorzystują terminologię niezgodną ze standardami SQL, prowadzą do błędnych wniosków. W przypadku użycia słowa kluczowego UNIQUE, które nie jest używane w kontekście kwerendy SELECT, użytkownicy mogą błędnie sądzić, że powiązanie z tym terminem umożliwia pozyskanie unikalnych wartości. W rzeczywistości UNIQUE jest używane w kontekście ograniczeń (constraints) w definiowaniu tabeli, a nie w zapytaniach. To podejście może prowadzić do zrozumienia, że istnieje sposób na wykorzystanie tego słowa kluczowego w zapytaniach, co jest mylące. Z kolei propozycje, które odwołują się do frazy WHERE z dodatkowymi warunkami, jak UNIQUE czy NOT DUPLICATE, są również niepoprawne, ponieważ nie są to poprawne składniowo konstrukcje w SQL. Klauzula WHERE służy do filtrowania wyników na podstawie określonych warunków, ale nie ma możliwości zastosowania przy niej unikalnych filtrów w taki sposób. Tego rodzaju nieporozumienia mogą prowadzić do niepoprawnych wyników i frustracji w pracy z bazami danych, dlatego niezwykle ważne jest, aby dokładnie zapoznawać się z dokumentacją i standardami języka SQL, aby unikać takich pułapek. Właściwe zrozumienie terminologii i składni jest kluczowe w efektywnym zarządzaniu danymi.

Pytanie 33

Tworzenie struktury logicznej strony internetowej polega na

A. określeniu zawartości witryny
B. określeniu adresów URL dla podstron serwisu
C. stworzonym zestawie grafik dla strony
D. umiejscowieniu elementów w wyznaczonych lokalizacjach witryny
Wiesz, wiele osób myli projektowanie witryny z robieniem grafik czy pisaniem treści. Całkiem to zrozumiałe, bo jest sporo różnych rzeczy związanych z tworzeniem stron. Jasne, grafiki są istotne, ale to nie wszystko, na czym się skupiamy, bo sama estetyka nie wystarczy, żeby strona była funkcjonalna. No i ustalanie adresów URL dla podstron też jest ważne, ale bardziej dotyczy struktury strony niż samego układu. Definiowanie treści to jedno, ale najważniejsze jest to, jak je prezentujemy. Często ludzie myślą, że układ i treść to to samo, a w rzeczywistości układ to to, jak treści są ułożone i jakie działania ułatwiają. Żeby dobrze zaprojektować stronę, trzeba spojrzeć na całość i zrozumieć, jakie funkcje ma spełniać, nie tylko skupiać się na pojedynczych grafikach czy tekstach. W moim odczuciu kluczowe jest, żeby myśleć o interakcji użytkownika z witryną - to wymaga umiejętności projektowania i analizy, by stworzyć efektywny interfejs.

Pytanie 34

<?php  
$pi = 3.14;
var_dump($pi);
?>
Jakie będzie wyjście po wykonaniu przedstawionego kodu PHP?
A. object(3.14)
B. int(314)
C. float(3.14)
D. string(3)
Odpowiedź 'float(3.14)' jest poprawna, ponieważ w kodzie PHP zmienna \$pi została zainicjalizowana jako liczba zmiennoprzecinkowa z wartością 3.14. Funkcja var_dump() służy do wyświetlania typu oraz wartości zmiennej, a w przypadku liczby zmiennoprzecinkowej wynik będzie wskazywał na typ float. Warto zauważyć, że PHP automatycznie rozpoznaje typy zmiennych, a liczby zmiennoprzecinkowe są powszechnie używane w obliczeniach wymagających precyzji, takich jak matematyka finansowa czy fizyka. W kontekście programowania w PHP, dobrym zwyczajem jest korzystanie z funkcji var_dump() podczas debugowania kodu, aby mieć jasny obraz typów danych i ich wartości w danym momencie. W praktyce, dobrze jest również implementować typowanie w PHP 7 i nowszych, co umożliwia lepszą kontrolę nad typami zmiennych, co z kolei prowadzi do bardziej stabilnego i czytelnego kodu. Warto także zwrócić uwagę na zasadę, że odpowiednie typy danych są kluczowe dla wydajności i niezawodności aplikacji, co czyni tę wiedzę szczególnie istotną dla każdego programisty."

Pytanie 35

Jakie uprawnienia są wymagane do tworzenia i przywracania kopii zapasowej bazy danych Microsoft SQL Server 2005 Express?

A. Użytkownicy zabezpieczeń.
B. Użytkownicy.
C. Administrator systemu.
D. Użytkownik lokalny.
Aby wykonać i odtworzyć kopię zapasową bazy danych w Microsoft SQL Server 2005 Express, użytkownik musi posiadać uprawnienia administratora systemu. To oznacza, że ma on pełne prawo do zarządzania bazami danych, w tym do wykonywania operacji takich jak tworzenie kopii zapasowych oraz ich przywracanie. Administrator systemu może także konfigurować ustawienia serwera, zarządzać dostępem innych użytkowników oraz monitorować wydajność bazy danych. Przykładem praktycznym może być sytuacja, w której administrator wykonuje regularne kopie zapasowe, aby zabezpieczyć dane przed ich utratą spowodowaną awarią sprzętu lub błędami użytkowników. Warto również zauważyć, że zgodnie z najlepszymi praktykami IT, regularne tworzenie kopii zapasowych jest kluczowe dla zapewnienia bezpieczeństwa danych, a także zgodności z regulacjami prawnymi dotyczącymi ochrony danych. Uprawnienia te są zgodne z ogólnymi standardami zarządzania bazami danych, które podkreślają znaczenie odpowiednich ról użytkowników w kontekście bezpieczeństwa i integralności danych.

Pytanie 36

Którą rozdzielczość należy ustawić w opcjach kodera, aby przygotować do publikacji film w rozdzielczości HD Ready?

A. 1280x720
B. 720x480
C. 1920x1080
D. 480x360
Prawidłowo – rozdzielczość 1280x720 to standard HD Ready, czyli tzw. 720p. W praktyce oznacza to obraz o proporcjach 16:9 i wysokości 720 linii, co jest przyjętym minimum dla materiału w jakości HD w wielu systemach publikacji wideo. W ustawieniach kodera (np. Adobe Media Encoder, HandBrake, FFmpeg, czy w panelach kodowania na platformach VOD) wybór 1280x720 zapewnia zgodność z typowymi profilami „HD Ready” albo po prostu „720p”. To jest ważne, bo wiele serwisów, od playerów osadzanych na stronach WWW, po YouTube czy Vimeo, rozpoznaje takie predefiniowane rozdzielczości i ustawia je jako osobne profile jakości. 1280x720 daje rozsądny kompromis między jakością a wagą pliku. Przy poprawnym bitrate (np. 3–5 Mbps dla H.264 przy typowym materiale) uzyskuje się obraz wystarczająco ostry do oglądania na monitorach, laptopach i telewizorach HD Ready, a jednocześnie nie „zabija” łącza przy streamingu. Z mojego doświadczenia, przy przygotowaniu wideo do osadzenia na stronach WWW, 720p jest bardzo bezpiecznym wyborem, szczególnie jeśli użytkownicy korzystają ze słabszego internetu lub urządzeń mobilnych. Warto też pamiętać, że HD Ready (1280x720) to inny standard niż Full HD (1920x1080). Częsty błąd to wrzucanie wszystkiego w jedno „HD”, ale w praktyce ma to znaczenie dla obciążenia serwera, zużycia transferu i wygody użytkownika. Dlatego jeśli w wymaganiach projektu albo klient mówi konkretnie o HD Ready, w opcjach kodera ustawiamy dokładnie 1280x720, pilnujemy proporcji 16:9 i dobieramy sensowny bitrate oraz kodek (obecnie najczęściej H.264 lub H.265 w kontenerze MP4).

Pytanie 37

Najprostszy sposób zamiany obiektu oznaczonego cyfrą 1 na obiekt oznaczony cyfrą 2 polega na

Ilustracja do pytania
A. animowaniu obiektu.
B. narysowaniu docelowego obiektu.
C. zmianie warstwy obiektu.
D. geometrycznym transformowaniu obiektu.
Wybrałeś poprawną odpowiedź, która jest 'geometrycznym transformowaniem obiektu'. Kiedy mówimy o transformacji geometrycznej, mamy na myśli różne operacje, które można wykonać na obiektach, takie jak skalowanie, obracanie i przesuwanie. W przypadku obiektu oznaczonego numerem 1 i numerem 2 na obrazku, najprostszym sposobem na przekształcenie jednego w drugi jest używanie transformacji geometrycznej. Obiekt numer 2 jest większy i obrócony w stosunku do obiektu numer 1. Dzięki transformacjom geometrycznym mogliśmy osiągnąć ten efekt, skalując i obracając obiekt numer 1. Transformacje geometryczne są podstawą wielu operacji w dziedzinach takich jak grafika komputerowa, projektowanie CAD, animacja, a także w wielu innych dziedzinach technologii i nauki.

Pytanie 38

W zaprezentowanym fragmencie algorytmu wykorzystano

Ilustracja do pytania
A. dwie pętle
B. trzy bloki operacyjne (procesy)
C. jedną pętlę
D. jeden blok decyzyjny
Błędy w odpowiedziach mogą wynikać z mylnego odbioru diagramu. Posiadanie bloku decyzyjnego nie zawsze znaczy, że mamy pętlę, bo pętle potrzebują zarówno warunków, jak i mechanizmu powtarzania. Wydaje się, że są różne bloki, ale w rzeczywistości mamy tu dwa bloki decyzyjne i jeden operacyjny, co nie zgadza się z odpowiedzią. Na diagramie nie da się znaleźć dwóch pętli, co może sugerować, że nie do końca rozumiesz strukturę algorytmu. Często w takich analizach ludzie mylą bloki decyzyjne z pętlami, co jest błędne, bo pętle są bardziej złożonymi strukturami. Jak się programuje, ważne jest, żeby dobrze rozróżniać te elementy, bo to wpływa na jakość algorytmu. Mnie osobiście pomogło to w pisaniu lepszego kodu, dlatego warto poświęcić chwilę na zrozumienie różnic między tymi pojęciami.

Pytanie 39

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

<input type="password" size="30" maxlength="20">
A. 20 znaków, które będą widoczne w trakcie wprowadzania
B. 20 znaków, które nie będą widoczne w polu tekstowym
C. 30 znaków, które nie będą widoczne w polu tekstowym
D. 30 znaków, które będą widoczne podczas wpisywania
Znacznik <input type="password"> w HTML jest rzeczywiście super ważny. Umożliwia on użytkownikom wpisywanie haseł, a to, co najfajniejsze, to że znaki są ukryte, więc nikt nie zobaczy, co piszesz. Atrybut maxlength="20" jest tutaj pomocny, bo ogranicza liczbę znaków do 20, co jest praktyczne - zbyt długie hasła ciężko zapamiętać, a krótkie mogą być niebezpieczne. Natomiast size="30" to tylko kwestia szerokości pola, więc nie wpływa na ilość znaków, które można wpisać. Generalnie, dobrze jest trzymać się tych ograniczeń, bo to pomaga w projektowaniu formularzy i utrzymywaniu porządku w interfejsie. Z mojej perspektywy, znajomość tych atrybutów jest naprawdę przydatna przy tworzeniu stron, bo można lepiej zrozumieć, jak to wszystko działa.

Pytanie 40

W języku PHP, podczas pracy z bazą danych MySQL, aby zakończyć sesję z bazą, powinno się użyć

A. mysqli_exit( )
B. mysqli_close()
C. mysqli_commit()
D. mysqli_rollback()
Wybór odpowiedzi 'mysqli_exit()' pojawia się często wśród programistów, którzy mylą koncepcje związane z obsługą połączeń w PHP. Należy zaznaczyć, że taka funkcja nie istnieje w kontekście baz danych MySQL, co może prowadzić do frustracji i nieporozumień. Niektórzy mogą sądzić, że 'mysqli_exit()' jest funkcją kończącą pracę z bazą, jednak w rzeczywistości nie ma żadnej dokumentacji ani zastosowania dla tej funkcji w standardowej bibliotece PHP. W programowaniu ważne jest, aby stosować się do oficjalnych dokumentacji oraz standardów, co zapewnia nie tylko poprawność kodu, ale także jego bezpieczeństwo i stabilność. Kolejne propozycje, takie jak 'mysqli_rollback()' i 'mysqli_commit()', dotyczą transakcji w bazie danych, a nie zakończenia połączenia. 'mysqli_rollback()' cofa zmiany wprowadzone w bieżącej transakcji, a 'mysqli_commit()' zatwierdza te zmiany. Oznacza to, że obie funkcje mają na celu zarządzanie transakcjami, a nie zamykanie połączeń. Wybierając niewłaściwą funkcję, programista może napotkać problemy z zarządzaniem stanem aplikacji i bazy danych, co jest szczególnie istotne w kontekście aplikacji wielowątkowych lub o dużym natężeniu ruchu. Aby uniknąć takich błędów, warto regularnie przeglądać i aktualizować swoją wiedzę oraz korzystać z zaufanych źródeł informacji.