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: 16 kwietnia 2026 19:46
  • Data zakończenia: 16 kwietnia 2026 20:00

Egzamin zdany!

Wynik: 26/40 punktów (65,0%)

Wymagane minimum: 20 punktów (50%)

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

W kodzie CSS stworzono cztery klasy stylizacji, które zostały wykorzystane do formatowania akapitów. Efekt widoczny na ilustracji uzyskano dzięki zastosowaniu klasy o nazwie

Ilustracja do pytania
A. format1
B. format4
C. format2
D. format3
Odpowiedź format2 jest poprawna, ponieważ stylizacja zastosowana do tekstu na obrazie to line-through, co oznacza przekreślenie. W CSS właściwość text-decoration pozwala na dodawanie różnych dekoracji do tekstu, takich jak underline (podkreślenie), overline (nadkreślenie) czy line-through (przekreślenie). Przekreślenie jest często używane do zaznaczania usuniętego tekstu lub do pokazywania zmian w dokumentach, co jest zgodne z dobrą praktyką w edytorach tekstu i aplikacjach do śledzenia zmian. W kodzie HTML klasy CSS są zazwyczaj stosowane poprzez dodanie atrybutu class do odpowiedniego elementu. Użycie klasy format2 w kodzie HTML wyglądałoby jak <p class='format2'>. Wielu projektantów korzysta z takich dekoracji, aby poprawić czytelność i funkcjonalność stron internetowych, zapewniając użytkownikom intuicyjne oznaczenia wizualne. Ważne jest także użycie semantycznego HTML, co w połączeniu z odpowiednimi stylami CSS pozwala tworzyć dostępne dla użytkowników strony internetowe zgodne ze standardami W3C.

Pytanie 2

Algorytm przedstawiony na rysunku można zapisać w języku JavaScript za pomocą instrukcji

A. for(i = 0; i > 10; i++)

B. var i = 0;
   while(i <= 10)
     i += 2;

C. var i = 0;
   do
     i++;
   while(i > 10);

D. var i = 0;
   do
     i = i + 2;
   while(i < 10);
Ilustracja do pytania
A. C.
B. B.
C. D.
D. A.
Dobrze! Wybrałeś prawidłową odpowiedź B. Biorąc pod uwagę wykres przepływu, zmienna 'i' jest inicjalizowana wartością 0 i następnie w pętli zwiększana o 2, dopóki jej wartość nie przekroczy 10. Wprowadzona instrukcja w JavaScript (var i = 0; while(i <= 10) { i += 2; }) idealnie odzwierciedla proces przedstawiony na diagramie. Inicjalizacja zmiennej jest ważnym krokiem w programowaniu, który pozwala na użycie zmiennej w kodzie, a pętla 'while' jest często stosowana do wykonywania części kodu wielokrotnie do momentu, aż warunek przestanie być spełniony. W tym przypadku, warunkiem jest 'i' mniejsze lub równe 10, a kod wewnątrz pętli zwiększa wartość 'i' o 2 za każdym razem, gdy jest wykonywany. Jest to typowy przykład użycia pętli i operatorów w języku JavaScript.

Pytanie 3

Polecenie DROP w języku SQL ma na celu

A. zaktualizować dane obiektu
B. usunąć istniejący obiekt
C. zmodyfikować parametry obiektu
D. wprowadzić nowy obiekt
Instrukcja DROP w języku SQL jest używana do usuwania istniejących obiektów z bazy danych, takich jak tabele, widoki, procedury składowane czy indeksy. Użycie tej komendy powoduje, że wszystkie dane przechowywane w danym obiekcie zostają trwale usunięte, co oznacza, że nie można ich odzyskać, chyba że wcześniej wykonano kopię zapasową. Przykładowa składnia polecenia DROP TABLE nazwa_tabeli usuwa całkowicie tabelę wraz z jej strukturą oraz danymi. W SQL standardowym oraz w jego implementacjach, takich jak MySQL, PostgreSQL czy SQL Server, instrukcja ta jest kluczowym narzędziem dla administratorów baz danych, pozwalającym na efektywne zarządzanie obiektami w bazach. Należy jednak stosować ją ostrożnie, ponieważ skutki wykonania tego polecenia są nieodwracalne. Rekomenduje się również, przed usunięciem obiektu, sprawdzenie, czy nie ma on powiązań z innymi obiektami, aby uniknąć błędów w aplikacjach korzystających z tych danych.

Pytanie 4

W JavaScript zdarzenie onKeydown zostanie wywołane, gdy klawisz

A. myszki będzie wciśnięty
B. myszki będzie zwolniony
C. klawiatury będzie zwolniony
D. klawiatury będzie wciśnięty
Wybór odpowiedzi związanej z myszą, jak naciśnięcie lub zwolnienie przycisku myszki, jest nieprawidłowy, ponieważ zdarzenie onKeydown nie ma związku z interakcjami myszy. Zdarzenia związane z myszą, takie jak onclick, onmousedown czy onmouseup, są odpowiedzialne za reakcje na działania użytkownika z użyciem myszy, a nie klawiatury. W kontekście zastosowań webowych, mylenie tych dwóch rodzajów interakcji może prowadzić do nieprawidłowego zrozumienia, jak działa system zdarzeń w JavaScript. Zdarzenie onKeydown jest specyficzne dla klawiatury i jest wywoływane tylko, gdy użytkownik naciśnie klawisz na klawiaturze, co jest istotne dla operacji wymagających danych tekstowych lub komend klawiszowych. Ignorowanie tej zasady prowadzi do typowych błędów w programowaniu, takich jak niewłaściwa obsługa zdarzeń, co z kolei może skutkować nieefektywnym działaniem aplikacji i frustracją użytkowników. Ważne jest, aby przy projektowaniu systemów interakcji, wyraźnie rozróżniać rodzaje zdarzeń oraz zrozumieć ich zastosowanie w praktyce, co jest fundamentem efektywnego programowania w JavaScript.

Pytanie 5

Odszumienie zapisu dźwiękowego można wykonać w programie

A. FileZilla
B. Audacity
C. Inkscape
D. Blender
W tym pytaniu łatwo się złapać na skojarzeniach z nazwami programów, ale kluczowe jest zrozumienie, do czego konkretnie służy każde z narzędzi. Odszumianie nagrań audio to operacja typowo z zakresu edycji dźwięku, czyli pracy na sygnale audio, filtrach, efektach i analizie widma częstotliwości. Do takich zadań potrzebny jest edytor audio lub środowisko DAW, a nie ogólny program graficzny, klient FTP czy narzędzie 3D. Blender to bardzo rozbudowany pakiet, ale jego główny obszar to grafika 3D: modelowanie, animacja, rendering, efekty specjalne. Ma co prawda prosty edytor wideo i ścieżek dźwiękowych, jednak nie jest to narzędzie wyspecjalizowane do zaawansowanej obróbki audio, szczególnie w kontekście precyzyjnego odszumiania. Używanie go do takich zadań byłoby niewygodne i niezgodne z typowymi workflow w branży. FileZilla z kolei to klient FTP/SFTP, służący do przesyłania plików między komputerem lokalnym a serwerem. To narzędzie sieciowe, nie ma żadnych funkcji edycji zawartości plików audio. Typowy błąd myślowy tutaj to mieszanie pojęcia „praca z plikami” z „edycją plików”. FileZilla umożliwia tylko kopiowanie, usuwanie i zmianę nazwy plików na serwerze, ale nie potrafi zmienić ich zawartości w sensie dźwięku, obrazu czy kodu. Inkscape natomiast to program do grafiki wektorowej. Służy do tworzenia ilustracji, ikon, logotypów, schematów, czyli pracy na krzywych i kształtach, a nie na falach dźwiękowych. Odszumianie w świecie grafiki oznaczałoby raczej redukcję szumu na zdjęciach czy obrazach rastrowych, ale Inkscape nawet tym się nie zajmuje, bo nie jest edytorem bitmap, tylko wektorów. W kontekście dźwięku jest całkowicie nieprzydatny. W praktyce, jeżeli mówimy o odszumianiu nagrań audio, zawsze szukamy narzędzi z kategorii edytorów dźwięku (Audacity, Adobe Audition, Reaper itd.), bo one mają wbudowane algorytmy redukcji szumu, filtry i wizualizacje widma. Mylące jest czasem to, że różne programy obsługują „media”, ale specjalizacja jest tu kluczowa: grafika 3D, grafika wektorowa, transfer plików i edycja audio to zupełnie różne światy, inne formaty danych i inne zestawy narzędzi. Dlatego wybór Audacity jako programu do odszumiania jest technicznie uzasadniony, a pozostałe opcje wynikają raczej z przypadkowych skojarzeń niż z faktycznych funkcji tych aplikacji.

Pytanie 6

W tabeli podzespoly należy zaktualizować wartość pola URL na "toshiba.pl" dla wszystkich wierszy, gdzie producent to TOSHIBA. W SQL zapis tej modyfikacji będzie wyglądać następująco:

A. UPDATE podzespoly SET URL = 'toshiba.pl'
B. UPDATE producent = 'TOSHIBA' SET URL = 'toshiba.pl';
C. UPDATE podzespoly SET URL = 'toshiba.pl' WHERE producent = 'TOSHIBA';
D. UPDATE podzespoly.producent = 'TOSHIBA' SET URL = 'toshiba.pl';
Odpowiedź jest poprawna, ponieważ zawiera właściwą składnię polecenia SQL do aktualizacji wartości w tabeli. W SQL, instrukcja UPDATE jest używana do modyfikacji danych w istniejących rekordach. W tym przypadku, polecenie 'UPDATE podzespoly SET URL = 'toshiba.pl' WHERE producent = 'TOSHIBA';' zmienia wartość pola URL na 'toshiba.pl' tylko dla tych rekordów, gdzie producent jest równy 'TOSHIBA'. To podejście jest zgodne z dobrymi praktykami w zarządzaniu bazami danych, ponieważ pozwala na precyzyjne określenie, które rekordy mają zostać zaktualizowane. W praktyce, przed wykonaniem takiej aktualizacji, zaleca się zawsze wykonać zapytanie SELECT, aby zweryfikować, które rekordy zostaną zmodyfikowane. Zapewnia to dodatkową warstwę kontroli i zabezpiecza przed niezamierzonymi zmianami. Prawidłowe użycie klauzuli WHERE jest kluczowe, aby nie zmienić wszystkich rekordów w tabeli, co mogłoby doprowadzić do utraty danych. Zrozumienie struktury SQL i zasad działania instrukcji jest fundamentem pracy z relacyjnymi bazami danych.

Pytanie 7

Funkcję session_start() w PHP należy zastosować przy realizacji

A. jakiejkolwiek strony internetowej, która obsługuje cookies
B. ładowania danych z zewnętrznych plików
C. wielostronicowej strony, która wymaga dostępu do danych podczas przechodzenia pomiędzy stronami
D. przetwarzania formularza
Funkcja session_start() w języku PHP jest kluczowym elementem przy tworzeniu wielostronicowej witryny, która wymaga przechowywania i dostępu do danych pomiędzy różnymi stronami. Ta funkcja inicjalizuje sesję, co pozwala na przechowywanie danych użytkownika w zmiennych sesyjnych, które są dostępne na wszystkich stronach witryny. Przykładem zastosowania może być koszyk zakupowy w sklepie internetowym – użytkownik dodaje przedmioty do koszyka na jednej stronie, a na innej stronie (np. stronie podsumowania zamówienia) może z łatwością zobaczyć swoje wybory. Z perspektywy dobrych praktyk, użycie sesji zwiększa bezpieczeństwo danych, ponieważ nie są one przechowywane w cookies ani jako parametry URL, co zmniejsza ryzyko ich ujawnienia. Ponadto, sesje ułatwiają zarządzanie autoryzacją, ponieważ można łatwo sprawdzić, czy użytkownik jest zalogowany na dowolnej stronie witryny, co jest niezbędne w przypadku aplikacji wymagających logowania. Dlatego właściwe zastosowanie session_start() jest kluczowe dla interaktywności i użytkowalności rozbudowanych aplikacji webowych.

Pytanie 8

W SQL polecenie INSERT INTO służy do

A. zmiany rekordów na wskazaną wartość
B. tworzenia nowej tabeli
C. dodawania danych do tabeli
D. wprowadzania nowych pól do tabeli
Polecenie INSERT INTO w języku SQL jest kluczowym narzędziem do wprowadzania danych do tabeli w bazie danych. Umożliwia dodawanie nowych rekordów, co jest niezwykle istotne w kontekście zarządzania danymi. Przykładowo, jeśli mamy tabelę 'Klienci' z kolumnami 'ID', 'Imię', 'Nazwisko', można użyć polecenia INSERT INTO, aby dodać nowego klienta: 'INSERT INTO Klienci (ID, Imię, Nazwisko) VALUES (1, 'Jan', 'Kowalski');'. Poprawne użycie tego polecenia zgodnie z najlepszymi praktykami SQL wymaga również przestrzegania reguł dotyczących typów danych oraz unikalności kluczy głównych, co pozwala na zachowanie integralności danych. Dzięki INSERT INTO można efektywnie zarządzać danymi w aplikacjach biznesowych, takich jak systemy CRM czy ERP, gdzie regularne dodawanie nowych informacji jest niezbędne do bieżącego funkcjonowania organizacji. Dodatkowo, polecenie to może być używane w połączeniu z innymi instrukcjami SQL, takimi jak SELECT, co pozwala na bardziej złożone operacje na danych.

Pytanie 9

W języku JavaScript, aby uzyskać podciąg tekstu pomiędzy wskazanymi indeksami, należy skorzystać z metody

A. concat()
B. trim()
C. replace()
D. slice()
Wybór innych metod do manipulacji napisami może wynikać z nieporozumienia dotyczącego ich funkcji. Metoda trim() służy do usuwania białych znaków z początku i końca napisu, co jest przydatne w kontekście walidacji danych wejściowych, ale nie pozwala na wydzielanie fragmentów napisu. Z kolei concat() jest zarezerwowana do łączenia dwóch lub więcej napisów w jeden, co również nie ma związku z wydzielaniem fragmentów. Użytkownicy często mylą concat() z slice(), błędnie sądząc, że obie metody operują na podobnych zasadach, gdyż obydwie dotyczą manipulacji napisami, jednak ich funkcjonalność jest całkowicie różna. Metoda replace() pozwala na zamianę określonych fragmentów tekstu na inne, co jest przydatne w kontekście przetwarzania danych, jednak również nie odpowiada na pytanie o wydzielanie segmentów. Typowe błędy w myśleniu na ten temat mogą wynikać z niepełnego zrozumienia celów tych metod oraz ich zastosowania w praktyce. Aby uniknąć takich nieporozumień, warto zwrócić uwagę na dokumentację JavaScript oraz praktykować ich zastosowanie w różnych scenariuszach, co z pewnością pomoże w zrozumieniu różnicy między tymi metodami.

Pytanie 10

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Barwienie.
B. Inwersja.
C. Krzywe.
D. Progowanie.
Prawidłowo wskazana funkcja to „Progowanie”, bo dokładnie ona zamienia obraz kolorowy lub w odcieniach szarości na obraz dwuwartościowy: piksel jest albo czarny, albo biały, w zależności od tego, czy jego jasność przekracza ustawiony próg. W GIMP-ie znajdziesz ją w menu Kolory → Progowanie. Suwakami ustalasz zakres poziomów jasności, które mają zostać potraktowane jako „białe”, a wszystko poza tym zakresem staje się „czarne”. Efekt, który się wtedy uzyskuje, jest bardzo charakterystyczny: mocno kontrastowy, bez półtonów, coś w stylu skanu czarno-białego lub grafiki do druku na ploterze tnącym. Z mojego doświadczenia progowanie świetnie nadaje się do przygotowania logotypów, szkiców technicznych, schematów, a także do wyciągania konturów z lekko rozmytych zdjęć. Często używa się go też przed wektoryzacją, żeby program śledzący krawędzie miał wyraźne granice między czernią a bielą. W pracy z grafiką na potrzeby stron WWW próg bywa stosowany np. przy tworzeniu prostych ikon, piktogramów albo masek (maski przezroczystości można przygotować właśnie na bazie obrazu progowanego). Dobrą praktyką jest najpierw sprowadzenie obrazu do odcieni szarości i dopiero potem użycie progowania, bo wtedy masz większą kontrolę nad tym, jak rozkłada się jasność i gdzie wypadnie granica progu. Warto też pamiętać, że progowanie jest operacją destrukcyjną – traci się informacje o półtonach – więc najlepiej pracować na kopii warstwy, żeby w razie czego móc wrócić do oryginału i poprawić ustawienia progu.

Pytanie 11

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

A. <css>
B. <style>
C. <meta>
D. <link>
Wybór niepoprawnych odpowiedzi wynika z nieporozumienia co do funkcji poszczególnych znaczników HTML. Znacznik <css> nie istnieje w standardzie HTML, co sprawia, że nie jest on w stanie zrealizować żadnej funkcji związanej z arkuszami stylów. To błędne podejście może prowadzić do niepoprawnego renderowania stron w przeglądarkach, które nie będą w stanie interpretować takiego znacznika. Z kolei znacznik <style> służy do wstawiania stylów CSS bezpośrednio w obrębie dokumentu HTML, w sekcji <head>. Choć pozwala na definiowanie stylów, nie jest on przeznaczony do ładowania zewnętrznych arkuszy stylów, co czyni go niewłaściwym wyborem w kontekście pytania. Ostatni z wymienionych znaczników, <meta>, jest używany do definiowania metadanych o dokumencie, takich jak opis, słowa kluczowe czy kodowanie znaków, ale nie ma związku z arkuszami stylów. Zrozumienie funkcji tych znaczników jest kluczowe dla prawidłowego tworzenia stron internetowych, ponieważ niepoprawne zastosowanie może prowadzić do problemów z wyświetlaniem oraz nawigacją na stronie.

Pytanie 12

Przy użyciu polecenia ALTER TABLE można

A. zmieniać wartości zapisane w rekordach tabeli
B. zmieniać strukturę tabeli
C. usuwać tabelę
D. tworzyć nową tabelę
Polecenie ALTER TABLE jest kluczowym narzędziem w zarządzaniu bazami danych, pozwalającym na modyfikację struktury istniejących tabel. Umożliwia m.in. dodawanie, usuwanie lub modyfikowanie kolumn, a także zmianę ich typów danych. Na przykład, aby dodać nową kolumnę do tabeli, można użyć polecenia: ALTER TABLE nazwa_tabeli ADD nowa_kolumna typ_danych. W praktyce, ALTER TABLE jest niezbędne w przypadku zmiany wymagań aplikacji, które mogą wymagać dostosowania struktury bazy danych. Zmiany strukturalne powinny być przeprowadzane zgodnie z zasadami normalizacji, co zapewnia optymalizację bazy danych oraz zapobiega redundancji danych. Kluczowe jest również testowanie wprowadzonych zmian w środowisku testowym przed ich wdrożeniem w produkcji, co jest zgodne z najlepszymi praktykami w inżynierii oprogramowania. Warto również pamiętać, że podczas modyfikacji struktury tabeli, odpowiednie zrozumienie relacji między tabelami jest istotne dla zachowania integralności danych.

Pytanie 13

W jaki sposób wykonanie podanej poniżej kwerendy SQL wpłynie na tabelę pracownicy?

ALTER TABLE pracownicy MODIFY plec char9);
A. Zmieni typ danych kolumny plec na znakowy o zmiennej długości 9.
B. Zmieni typ danych kolumny plec na znakowy o stałej długości 9.
C. Doda kolumnę plec ze znakowym typem danych o zmiennej długości 9.
D. Doda kolumnę plec ze znakowym typem danych o stałej długości 9.
Zmiana kolumny 'plec' poprzez dodanie nowej kolumny zamiast modyfikacji istniejącej jest błędna, ponieważ kwerenda SQL ALTER TABLE z modyfikacją nie dodaje nowej kolumny, lecz zmienia atrybuty już istniejącej. W przypadku dodania kolumny z typem znakowym o stałej długości, nie byłoby to możliwe bez użycia innego polecenia, takiego jak ADD COLUMN, co jest całkowicie inną operacją. Ponadto, zmiana na typ danych o zmiennej długości nie ma zastosowania w tej sytuacji, ponieważ char(9) zawsze rezerwuje 9 znaków, niezależnie od tego, ile znaków faktycznie jest zapisanych, co jest kluczową różnicą w porównaniu do varchar, który jest typem zmiennej długości. Ostatnia niepoprawna odpowiedź sugeruje, że kolumna mogłaby mieć typ znakowy o zmiennej długości, co nie jest zgodne z definicją char, gdyż ten typ danych zawsze zarezerwuje maksymalną długość zdefiniowaną przez użytkownika. W praktyce oznacza to, że przy użyciu char(9) każda wartość w kolumnie 'plec' będzie zawsze składać się z 9 znaków, a w przypadku krótszych wartości zostaną one wypełnione spacjami. Zrozumienie różnicy między typami danych oraz ich właściwą modyfikację jest kluczowe dla efektywnego zarządzania bazami danych.

Pytanie 14

Definicja stylu przedstawiona w języku CSS dotyczy odnośnika, który

Ilustracja do pytania
A. był już odwiedzany
B. posiada niepoprawny adres URL
C. ma wskaźnik myszy ustawiony nad nim
D. jeszcze nie był odwiedzany
Podczas analizy CSS ważne jest rozumienie, jak działają pseudo-klasy, które umożliwiają stylizację elementów w określonych stanach. Pseudo-klasa :hover odpowiada za stan, gdy kursor myszy znajduje się nad elementem, co pozwala na dynamiczne zmiany wyglądu, takie jak podświetlenie elementu. Jest to często używane do interaktywnych efektów w interfejsach użytkownika. Tymczasem :link dotyczy linków, które jeszcze nie zostały odwiedzone przez użytkownika. Wprawdzie pozwala to na odróżnienie ich od odwiedzonych linków, ale stylizacja :link nie może zmienić się po kliknięciu, co jest kluczowe dla zachowania dostępności. Błędny adres URL nie jest związany z żadną z tych pseudo-klas i nie można go zidentyfikować ani zmodyfikować za pomocą CSS, ponieważ zarządzanie adresami URL odbywa się na poziomie HTML i JavaScript. W kontekście tworzenia stron internetowych zrozumienie tych różnic jest kluczowe, ponieważ wpływa na sposób, w jaki użytkownicy wchodzą w interakcję z treścią. Błędy w rozumieniu tych mechanizmów prowadzą do niepoprawnej nawigacji i mogą negatywnie wpływać na doświadczenie użytkownika, co jest sprzeczne z dobrymi praktykami w projektowaniu interfejsów i UX. Ważne jest, aby projektować strony zgodnie ze standardami, które umożliwiają intuicyjne korzystanie i zapewniają, że użytkownicy łatwo mogą rozpoznać odwiedzone i nieodwiedzone linki, co jest kluczowe dla ich doświadczenia i nawigacji.

Pytanie 15

Na stronie www znajduje się formularz, do którego należy stworzyć następujące funkcje: walidacja: w czasie wypełniania formularza na bieżąco kontrolowana jest poprawność danych, przesyłanie danych: po zrealizowaniu formularza i jego zatwierdzeniu, dane są przekazywane do bazy danych na serwerze. Aby zrealizować tę funkcjonalność w jak najprostszy sposób, należy zapisać

A. walidację w języku JavaScript, a przesyłanie danych w skrypcie PHP
B. walidację w skrypcie PHP, a przesyłanie danych w JavaScript
C. walidację oraz przesyłanie danych w języku PHP
D. walidację oraz przesyłanie danych w języku JavaScript
Wybór walidacji oraz przesyłania danych wyłącznie w PHP nie tylko nie jest optymalny, ale również niezgodny z dobrymi praktykami. Walidacja po stronie serwera, bez wcześniejszego sprawdzenia danych po stronie klienta, prowadzi do gorszego doświadczenia użytkownika, ponieważ każde błędne dane są wysyłane na serwer przed zwróceniem błędu do użytkownika. Taki proces zwiększa obciążenie serwera, ponieważ każde błędne żądanie wiąże się z niepotrzebnym przetwarzaniem, co jest szczególnie nieefektywne w przypadku formularzy często używanych przez użytkowników. W przypadku przesyłania danych w JavaScript, istnieje ryzyko, że dane mogą być manipulowane po drodze, co prowadzi do problemów z bezpieczeństwem, takich jak ataki typu Cross-Site Scripting (XSS). Oprócz tego, nie jest właściwe korzystanie z PHP do walidacji rzeczywistych danych wejściowych w interfejsie użytkownika, gdyż PHP jest językiem działającym po stronie serwera i nie ma dostępu do stanu interfejsu. Przykładem błędnego myślenia może być założenie, że serwer może efektywnie obsłużyć wszystkie błędy walidacji na etapie zapisu danych w bazie, co jest nieefektywne w praktyce. W związku z tym każda aplikacja internetowa powinna implementować walidację danych po stronie klienta i serwera, aby zminimalizować problemy z użytkownikami oraz zapewnić bezpieczeństwo aplikacji.

Pytanie 16

W JavaScript metoda Math.random() ma na celu

A. zwrócić liczbę po zaokrągleniu
B. zwrócić liczbę pseudolosową
C. porównać dwie sekwencje znaków
D. zaokrąglić liczbę do najbliższej większej liczby całkowitej
Metoda Math.random() w języku JavaScript jest kluczowym narzędziem do generowania liczb pseudolosowych w zakresie od 0 (włącznie) do 1 (wyłącznie). Oznacza to, że każdorazowe wywołanie tej metody zwraca nową, losową wartość zmiennoprzecinkową, co jest przydatne w wielu zastosowaniach, takich jak tworzenie gier, symulacje, a także w algorytmach generujących dane testowe. Ważne jest, aby pamiętać, że Math.random() nie generuje liczb losowych w sensie statystycznym, lecz wykorzystuje algorytmy deterministyczne do produkcji wartości, co oznacza, że są one przewidywalne, jeśli znany jest stan początkowy. W praktyce, aby uzyskać liczbę losową w określonym zakresie, można zastosować następujący wzór: Math.floor(Math.random() * (max - min + 1)) + min, gdzie 'min' i 'max' to odpowiednio dolna i górna granica zakresu. To podejście jest zgodne z dobrymi praktykami w programowaniu, gdyż pozwala na elastyczne wykorzystanie losowości w aplikacjach.

Pytanie 17

Jednostka ppi (pixels per inch) odnosi się do rozdzielczości?

A. określa rozdzielczość obrazów rastrowych
B. jest miarą rozdzielczości skanerów, definiującą częstotliwość próbkowania obrazu
C. jest wskaźnikiem definiującym rozdzielczość cyfrowych urządzeń dokonujących pomiarów
D. określa rozdzielczości obrazów wytwarzanych przez drukarki oraz plotery
Zrozumienie pojęcia PPI (pixels per inch) jest kluczowe dla efektywnego zarządzania grafiką cyfrową, a podawanie PPI jako parametru odniesienia do rozdzielczości innych urządzeń, takich jak skanery lub drukarki, jest mylne. PPI odnosi się ściśle do rozdzielczości obrazów rastrowych, które są tworzone z pikseli. Pojęcia, takie jak rozdzielczość skanerów, odnoszą się do innej jednostki miary, zazwyczaj określanej w DPI (dots per inch), która określa liczbę kropli tuszu lub punktów, jakie maszyna może nałożyć na cal. To prowadzi do nieporozumień w interpretacji, ponieważ DPI i PPI, mimo że są używane w kontekście jakości obrazu, służą różnym celom. W przypadku rozdzielczości generowanej przez drukarki i plotery, ich wydajność nie jest bezpośrednio związana z PPI, lecz raczej z DPI, co ma kluczowe znaczenie w kontekście technik druku oraz jakości uzyskiwanych wydruków. W praktyce, błędne zrozumienie tych jednostek może prowadzić do zaprojektowania grafiki, która nie spełnia oczekiwań jakościowych, co jest szczególnie istotne w sytuacjach, gdy precyzja i szczegółowość są kluczowe, takich jak w projektach reklamowych czy publikacjach. Dlatego istotne jest, aby zawsze odnosić się do właściwych jednostek miary w zależności od kontekstu zastosowania, co umożliwia optymalne wykorzystanie zasobów i osiągnięcie zamierzonych rezultatów w projektowaniu graficznym.

Pytanie 18

W systemie MySQL przyznanie roli o nazwie DBManager umożliwia użytkownikowi wykonywanie

A. nadzór nad serwerem
B. wszystkie operacje związane z bazami danych oraz użytkownikami serwera
C. wszystkie operacje na bazach danych serwera
D. zakładanie użytkowników serwera oraz definiowanie ich haseł
Odpowiedź wskazująca na to, że rola DBManager przyznaje użytkownikowi prawa do wszelkich operacji na bazach danych serwera jest poprawna, ponieważ rola ta umożliwia pełen zakres działań związanych z zarządzaniem bazami danych. Użytkownik z tą rolą ma możliwość tworzenia, modyfikowania i usuwania baz danych, a także wykonywania zapytań na tych bazach. W praktyce oznacza to, że osoba z rolą DBManager może na przykład zarządzać strukturą tabel, definiować relacje między danymi oraz optymalizować wydajność zapytań. Tego rodzaju uprawnienia są kluczowe dla administratorów baz danych, którzy muszą zapewnić, że dane są przechowywane, przetwarzane i zabezpieczone zgodnie z najlepszymi praktykami branżowymi. Ponadto, rola DBManager wspiera standardy bezpieczeństwa i integralności danych, pozwalając na stosowanie zasad dotyczących dostępu i uprawnień do danych w sposób zgodny z regulacjami prawnymi i wewnętrznymi politykami organizacji.

Pytanie 19

W systemie zarządzania bazami danych MySQL komenda CREATE USER pozwala na

A. stworznie nowego użytkownika oraz przydzielenie mu uprawnień do bazy
B. zmianę hasła dla już istniejącego użytkownika
C. pokazanie danych o istniejącym użytkowniku
D. utworzenie użytkownika
Polecenie CREATE USER w MySQL jest używane do tworzenia nowych użytkowników w systemie baz danych. W kontekście zarządzania bazami danych, kluczowym aspektem jest kontrola dostępu, a odpowiednie zdefiniowanie użytkowników jest niezbędne dla zapewnienia bezpieczeństwa danych. Używając CREATE USER, administrator bazy danych może zdefiniować nazwę użytkownika oraz powiązane z nią hasło, co stanowi pierwszy krok w procesie zarządzania uprawnieniami. Dobrą praktyką jest stosowanie silnych haseł oraz nadawanie użytkownikom tylko tych uprawnień, które są im rzeczywiście potrzebne do wykonania ich zadań. Na przykład, w przypadku aplikacji webowych często tworzy się specjalnych użytkowników z ograniczonymi prawami dostępu, co minimalizuje ryzyko nieautoryzowanego dostępu do wrażliwych danych. Warto pamiętać, że po utworzeniu użytkownika, można wykorzystać polecenia GRANT, aby przyznać mu odpowiednie uprawnienia do konkretnych baz danych lub tabel, co pozwala na precyzyjne zarządzanie dostępem. Ponadto, MySQL pozwala na tworzenie użytkowników z różnymi poziomami dostępu, co jest kluczowe dla organizacji z wieloma działami oraz różnorodnymi potrzebami w zakresie bezpieczeństwa danych.

Pytanie 20

W instrukcjach mających na celu odtwarzanie dźwięku na witrynie internetowej jako podkładu muzycznego nie stosuje się atrybutu

A. volume="-100"
B. href="C:/100.wav">
C. loop="10"
D. balance="-10"
Odpowiedź 'href="C:/100.wav"' jest prawidłowa, ponieważ atrybut 'href' nie jest używany w kontekście odtwarzania dźwięku na stronie internetowej. Atrybut ten jest przeznaczony do definiowania hiperłączy w elementach, takich jak <a> (linki). W przypadku odtwarzania dźwięków na stronach internetowych, stosuje się atrybuty, takie jak 'src' w elemencie <audio> lub <embed>, które wskazują lokalizację pliku audio, który ma być odtwarzany. Dobre praktyki webowe zalecają korzystanie z elementu <audio>, który pozwala na kontrolowanie odtwarzania dźwięku przy pomocy takich atrybutów jak 'controls', 'autoplay', 'loop' itp. Na przykład, aby odtworzyć plik audio, można użyć znacznika <audio src="C:/100.wav" controls></audio>, co pozwala na interaktywne sterowanie odtwarzaniem. Zrozumienie różnicy między atrybutami i ich zastosowaniem w kontekście HTML jest kluczowe dla projektowania funkcjonalnych i dostępnych stron internetowych.

Pytanie 21

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

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

Pytanie 22

Jakie jest zadanie funkcji PHP o nazwie mysql_num_rows()?

A. ponumerować rekordy w bazie danych
B. zwrócić rekord o numerze podanym jako parametr funkcji
C. zwrócić liczbę wierszy znajdujących się w wyniku zapytania
D. zwrócić następny rekord z wynikami zapytania
Funkcja mysql_num_rows() w PHP jest używana do zwracania liczby wierszy w wyniku zapytania SQL, co jest kluczowe w pracy z danymi w bazach danych. Gdy wykonujemy zapytanie, na przykład za pomocą mysql_query(), otrzymujemy wynik w formie zasobu. Funkcja mysql_num_rows() pozwala na określenie, ile wierszy zostało zwróconych przez to zapytanie. To jest szczególnie przydatne w sytuacjach, gdy chcemy wiedzieć, czy dane istnieją, na przykład w aplikacjach webowych, gdzie użytkownik szuka określonych informacji. Oznacza to, że możemy dostosować logikę naszej aplikacji na podstawie liczby wyników. Ponadto, korzystając z tej funkcji, możemy monitorować i optymalizować zapytania, co jest zgodne z najlepszymi praktykami w zakresie wydajności i zarządzania bazami danych. Warto również zauważyć, że mysql_num_rows() działa w kontekście wywołania do bazy danych, co oznacza, że musi być używana w kontekście zasobu wynikowego, aby działać poprawnie.

Pytanie 23

Aby odzyskać bazę danych z kopii zapasowej na serwerze MSSQL, należy użyć polecenia

A. BACKUP DATABASE
B. UNBACKUP DATABASE
C. EXPORT DATABASE
D. RESTORE DATABASE
Jakbyśmy spojrzeli na inne odpowiedzi, to każda z nich ma jakieś wady, przez które nie nadają się do przywracania bazy danych w MSSQL. Na przykład polecenie EXPORT DATABASE jest błędne, bo w MSSQL nie ma takiej komendy do eksportu całej bazy. Można to robić innymi narzędziami, jak SQL Server Integration Services (SSIS), ale to nie jest metoda przywracania. Z kolei BACKUP DATABASE, mimo że służy do robienia kopii zapasowych, nie nadaje się do przywracania. Ten komendę robimy wręcz odwrotnie — zapisuje obecny stan na dysku, a nie przywraca go. No i ostatnia opcja, UNBACKUP DATABASE, w ogóle nie istnieje w MSSQL. To brzmi jak coś, co mogłoby odwracać kopię zapasową, ale to wcale nie jest dostępne w tym systemie. Więc wybór złych komend może prowadzić do nieefektywnego zarządzania danymi i strat, jakby coś się stało.

Pytanie 24

W języku JavaScript trzeba zapisać warunek, który będzie prawdziwy, gdy zmienna a będzie jakąkolwiek liczbą naturalną dodatnią (bez 0) lub zmienna b przyjmie wartość z zamkniętego przedziału od 10 do 100. Wyrażenie logiczne w tym warunku ma formę

A. (a>0) || ((b>=10) || (b<=100))
B. (a>0) && ((b>=10) || (b<=100))
C. (a>0) && ((b>=10) && (b<=100))
D. (a>0) || ((b>=10) && (b<=100))
Warunek zapisany w języku JavaScript jako (a>0) || ((b>=10) && (b<=100)) jest poprawny, ponieważ spełnia wymagania dotyczące sprawdzenia, czy zmienna a jest liczbą naturalną dodatnią oraz czy zmienna b mieści się w przedziale od 10 do 100. Wyrażenie logiczne wykorzystuje operator || (alternatywa), który zwraca true, jeśli przynajmniej jeden z warunków jest spełniony. Warunek a>0 zapewnia, że zmienna a jest większa od zera, co jest zgodne z definicją liczb naturalnych dodatnich. Z kolei wyrażenie (b>=10) && (b<=100) sprawdza, czy zmienna b jest w zadanym przedziale, co jest zgodne z wymaganiami. Wartości graniczne 10 i 100 są uwzględnione dzięki operatorowi && (konjunkcja), który wymaga, aby oba warunki były prawdziwe, aby całe wyrażenie zwróciło true. W praktyce, takie podejście można wykorzystać w różnych kontekstach, np. walidacji danych wejściowych w formularzach internetowych, gdzie kluczowe jest zapewnienie, że użytkownik wprowadza poprawne wartości. Tego rodzaju wyrażenia logiczne są fundamentem programowania w JavaScript, umożliwiając tworzenie bardziej złożonych logik aplikacji. Zgodnie z dokumentacją ECMAScript, użycie operatorów logicznych jest standardowym sposobem na przetwarzanie warunków w programowaniu.

Pytanie 25

Do jakiego celu służy certyfikat SSL?

A. blokowania złośliwego oprogramowania na stronie
B. zapisywania informacji o sesjach generowanych w witrynie
C. zidentyfikowania posiadacza witryny
D. deszyfracji danych przesyłanych w sieci
Certyfikat SSL (Secure Sockets Layer) jest istotnym elementem zabezpieczeń internetowych, który służy do szyfrowania komunikacji pomiędzy przeglądarką a serwerem. Głównym celem certyfikatu SSL jest zapewnienie poufności danych przesyłanych w Internecie oraz potwierdzenie tożsamości właściciela witryny. Dzięki zastosowaniu certyfikatu SSL, użytkownicy mogą mieć pewność, że ich dane osobowe, takie jak hasła czy numery kart kredytowych, są chronione przed przechwyceniem przez osoby trzecie. Certyfikaty są wydawane przez zaufane organizacje certyfikujące, które weryfikują tożsamość właściciela witryny. W przypadku HTTPS, protokołu korzystającego z SSL, przeglądarka wyświetla ikonę kłódki, co sygnalizuje, że połączenie jest bezpieczne. Implementacja certyfikatu SSL jest nie tylko techniczną koniecznością, ale także pozytywnie wpływa na SEO, ponieważ wyszukiwarki, takie jak Google, preferują witryny zabezpieczone SSL, co może prowadzić do lepszej pozycji w wynikach wyszukiwania.

Pytanie 26

Efekt AutoDuck w obróbce dźwięku jest stosowany do

A. ocieplenia głosu i dźwięków pochodzących z tła.
B. eliminacji szumów pochodzących z dźwięków w tle.
C. ściszenia dźwięku w tle, gdy pojawia się dźwięk pierwszoplanowy.
D. wyrównania głośności całej ścieżki dźwiękowej.
Efekt AutoDuck dokładnie robi to, co opisuje poprawna odpowiedź: automatycznie ścisza dźwięk w tle (np. muzykę), gdy pojawia się dźwięk pierwszoplanowy, zwykle głos lektora lub prowadzącego. W praktyce wygląda to tak, że masz dwie ścieżki: na jednej mówiony komentarz, na drugiej muzykę w tle. AutoDuck „podgląda” poziom głośności ścieżki z głosem i gdy wykryje, że ktoś zaczyna mówić, automatycznie obniża poziom głośności ścieżki z muzyką o zadaną liczbę decybeli. Kiedy mówienie się kończy, muzyka wraca płynnie do poprzedniego poziomu. To jest klasyczny przykład tzw. duckingu, bardzo często stosowany w radiu, podcastach, vlogach, prezentacjach wideo, a nawet w prostych materiałach szkoleniowych. Z mojego doświadczenia to jedna z tych funkcji, które naprawdę oszczędzają czas – zamiast ręcznie rysować obwiednię głośności, ustawiasz próg zadziałania, czas narastania i opadania (attack/release) oraz głębokość tłumienia. Dobre praktyki mówią, żeby nie przesadzać z tłumieniem tła – zwykle wystarcza w okolicach 10–18 dB, tak żeby głos był czytelny, ale muzyka nadal była słyszalna. Ważne jest też ustawienie odpowiednio długiego „release”, żeby muzyka nie „podskakiwała” nerwowo pomiędzy pauzami w mowie. W narzędziach typu Audacity, Adobe Audition czy Reaper AutoDuck (lub sidechain ducking) jest standardowym narzędziem w pracy z multimediami na potrzeby internetu: spoty reklamowe, intro do kanałów YouTube, kursy e-learningowe – wszędzie tam, gdzie chcesz, żeby głos był zawsze na pierwszym planie, a tło samo się grzecznie cofa, gdy ktoś coś mówi.

Pytanie 27

Ile razy zostanie wykonany blok pętli napisanej w PHP, przy założeniu, że zmienna sterująca nie jest modyfikowana podczas działania pętli?

for($i=0; $i <=10; $i+=2) {
       . . . . . .
}
A. 6
B. 10
C. 5
D. 0
Poprawna odpowiedź to 6 ponieważ pętla for w PHP rozpoczyna się od wartości początkowej zmiennej sterującej i inkrementuje ją zgodnie z określonym krokiem aż do momentu spełnienia warunku końcowego Przy początkowej wartości zmiennej i równej 0 i warunku i<=10 oraz kroku i+=2 pętla wykonuje się dla wartości i równych 0 2 4 6 8 i 10 co daje 6 iteracji W takich przypadkach ważne jest aby zrozumieć jak działają podstawowe elementy składni pętli for oraz jakie jest znaczenie warunku końcowego i kroku iteracji W praktyce taki sposób iteracji jest użyteczny w sytuacjach gdzie przetwarzamy dane w określonych odstępach Warto również zwrócić uwagę że dobra praktyka programistyczna zakłada czytelność kodu i stosowanie jasnych komentarzy zwłaszcza gdy pętla ma bardziej złożoną logikę Dzięki temu kod jest łatwiejszy do zrozumienia i utrzymania przez innych programistów co jest kluczowe w pracy zespołowej oraz długoterminowym rozwijaniu projektu

Pytanie 28

Poniższy fragment kodu w PHP wyświetli

$n = '[email protected]';
$dl = strlen($n);
$i = 0;
while($i < $dl && $n[$i] != '@')
{
    echo $n[$i];
    $i++;
}
A. samą nazwę domeny, czyli "host.pl"
B. tylko nazwę konta, czyli "adres"
C. nazwa konta z symbolem @, czyli "adres@"
D. cały adres e-mail, czyli "[email protected]"
Analizując poszczególne odpowiedzi, można zrozumieć, gdzie mogą tkwić typowe błędy myślowe. Pierwsza odpowiedź zakłada, że kod wypisze nazwę konta ze znakiem '@'. Jednak kod zatrzymuje się przed '@', więc ten znak nie jest wypisywany. Jest to typowy błąd wynikający z niezrozumienia warunku pętli, która przerywa iterację, gdy napotka '@'. Druga odpowiedź poprawnie wskazuje, co kod faktycznie robi, czyli wypisuje nazwę konta. Trzecia odpowiedź myli się, oczekując, że cały adres e-mail zostanie wypisany. W rzeczywistości kod nigdy nie przejdzie przez '@', więc ani domena, ani '@' nie zostaną uwzględnione w wyniku. Jest to błąd wynikający z założenia, że pętla obsłuży cały ciąg bez przerwania. Brak zrozumienia logiki warunku pętli while może prowadzić do takiego błędnego wniosku. Czwarta odpowiedź sugeruje, że kod wypisze nazwę domeny, co jest błędne, ponieważ iteracja kończy się przed '@', nie osiągając części domenowej. Takie błędy mogą wynikać z mylnego zrozumienia przepływu sterowania w kodzie lub założenia, że kod wykonuje parsowanie zupełne, co w tym przypadku jest nieprawidłowe. W praktykach programistycznych ważne jest zrozumienie iteracji i warunków, co pozwala uniknąć takich nieporozumień w analizie kodu. Podstawowe zrozumienie logicznych warunków i iteracji w językach programowania jest kluczowe do prawidłowej analizy kodu i jego przewidywanego działania.

Pytanie 29

Hermetyzacja to zasada programowania obiektowego, która mówi, że

A. klasy/obiekty mogą dzielić się funkcjonalnością
B. typy pól w klasach/obiektach mogą być zmieniane w sposób dynamiczny w zależności od przypisywanych danych
C. klasy/obiekty mogą definiować metody wirtualne, które są realizowane w klasach/obiektach pochodnych
D. pola i metody dostępne tylko dla konkretnej klasy/obiektu mają zasięg ograniczony do private lub protected
Hermetyzacja, jako kluczowa zasada programowania obiektowego, odnosi się do kontrolowania dostępu do pól i metod w klasach. Oznacza to, że elementy, które nie powinny być dostępne z zewnątrz, są oznaczane jako private lub protected. Dzięki temu, tylko metody danej klasy mają dostęp do tych elementów, co minimalizuje ryzyko niepożądanej modyfikacji danych oraz promuje enkapsulację. Na przykład, tworząc klasę `BankAccount`, możemy mieć pole `balance` oznaczone jako private. W ten sposób, dostęp do tego pola jest możliwy jedynie poprzez publiczne metody, takie jak `deposit` czy `withdraw`, co pozwala na kontrolowanie logiki biznesowej. Takie podejście jest zgodne z zasadami SOLID, a szczególnie z zasadą odpowiedzialności pojedynczej, ponieważ klasa ma pełną kontrolę nad swoją logiką. Dodatkowo, hermetyzacja ułatwia późniejsze zmiany w implementacji, nie wpływając na inne części aplikacji, które korzystają z tych klas.

Pytanie 30

W jaki sposób, stosując język PHP można usunąć ciasteczko o nazwie ciastko?

A. unsetcookie(""$ciastko"");
B. deletecookie(""ciastko"");
C. setcookie(""ciastko"", """", time()-3600);
D. setcookie(""$ciastko"", """", 0);
Odpowiedź setcookie("ciastko", "", time()-3600) jest poprawna, ponieważ to standardowy sposób usuwania ciasteczek w PHP. Funkcja setcookie odsyła nagłówek HTTP do przeglądarki, informując ją, że ciasteczko o podanej nazwie ('ciastko') powinno być usunięte. Aby to osiągnąć, musisz ustawić wartość ciasteczka na pusty ciąg oraz określić czas wygaśnięcia na przeszły, co w tym przypadku realizuje polecenie time()-3600. Dobre praktyki sugerują, że zawsze należy wyznaczyć ten czas, aby mieć pewność, że ciasteczko zostanie usunięte niezależnie od ustawień przeglądarki użytkownika. Warto również pamiętać, że aby usunięcie ciasteczka było skuteczne, należy użyć takiej samej ścieżki oraz domeny, które zostały użyte przy ustawieniu ciasteczka. Przykładowe zastosowanie to logowanie wyjścia użytkownika, gdzie usunięcie ciasteczek jest kluczowe dla zapewnienia bezpieczeństwa aplikacji. Dodatkowo, jako dobry zwyczaj, przed usunięciem ciasteczek można sprawdzić, czy istnieją, aby uniknąć niepotrzebnych operacji.

Pytanie 31

Jakie polecenie wykonane w systemowej konsoli umożliwi przywrócenie bazy danych?

A. mysqldump -u root -p baza < kopia.sql
B. mysqldump -u root -p baza > kopia.sql
C. mysql -u root -p baza < kopia.sql
D. mysql -u root -p baza > kopia.sql
Wszystkie inne odpowiedzi są niepoprawne, ponieważ z użyciem niewłaściwych poleceń z systemu MySQL. Pierwsze z tych poleceń, zamiast przywracać bazę danych, tworzy jej kopię zapasową, co nie odpowiada na zadane pytanie. Użycie 'mysqldump' z parametrami '-u root -p baza > kopia.sql' jest sposobem na eksport danych z bazy do pliku SQL, a nie na ich import. Kolejne polecenie sugeruje zastosowanie 'mysqldump' w kontekście przywracania, co jest również błędne, ponieważ 'mysqldump' jest narzędziem służącym do zrzutów, a nie importu. Z kolei ostatnie polecenie 'mysql -u root -p baza > kopia.sql' ponownie nie wykonuje przywracania, lecz zapisuje dane z bazy danych do pliku, co jest odwrotnością oczekiwanej operacji. W praktyce, błędne zastosowanie tych poleceń może prowadzić do poważnych konsekwencji, takich jak utrata danych czy niewłaściwe zarządzanie bazą danych. Dlatego kluczowe jest zrozumienie roli każdego z narzędzi dostępnych w MySQL oraz ich poprawne zastosowanie w różnych scenariuszach administracyjnych.

Pytanie 32

Aby uzyskać przezroczyste tło w obrazie formatu JPG, należy wykonać

A. korekcję nasycenia kolorów
B. użycie filtru Gaussa
C. właściwe przycięcie
D. dodanie kanału alfa
Dodanie kanału alfa do obrazu JPG jest kluczowym krokiem, aby uzyskać przezroczystość tła. Format JPG, z definicji, nie obsługuje przezroczystości, dlatego konieczne jest przekształcenie obrazu do formatu, który to umożliwia, takiego jak PNG. Kanał alfa to dodatkowa warstwa, która przechowuje informacje o przezroczystości dla każdego piksela obrazu, pozwalając na uzyskanie efektu przezroczystości. Aby dodać kanał alfa, można skorzystać z programów graficznych takich jak Adobe Photoshop, GIMP czy Affinity Photo. Przykładowo, w Photoshopie można użyć funkcji 'Zaznaczenie i maska', aby wyodrębnić obiekt z tła, a następnie zapisać go z kanałem alfa jako PNG. Użycie kanału alfa jest standardową praktyką w edytowaniu grafiki, szczególnie w kontekście tworzenia logo, grafik do stron internetowych i zasobów do gier wideo, gdzie przezroczystość odgrywa kluczową rolę w integracji elementów wizualnych.

Pytanie 33

W danym środowisku programistycznym, aby uzyskać dostęp do listy błędów składniowych po nieudanej kompilacji, należy użyć kombinacji klawiszy

Ilustracja do pytania
A. Ctrl+W, T
B. Ctrl+W, N
C. Ctrl+W, E
D. Ctrl+W, O
W środowisku Visual Studio, które jest jednym z najpopularniejszych zintegrowanych środowisk programistycznych (IDE) dla języków takich jak C# czy C++, kombinacja klawiszy Ctrl+W, E pozwala na szybkie wyświetlenie listy błędów składniowych i innych problemów związanych z kodem. Lista błędów Error List jest kluczowym narzędziem w codziennej pracy programisty, ponieważ pozwala na szybkie zidentyfikowanie i naprawienie błędów bez konieczności przeszukiwania całego kodu. Dzięki temu programista może skupić się na poprawianiu najważniejszych błędów i optymalizacji kodu. Standardy i dobre praktyki w programowaniu zalecają regularne monitorowanie listy błędów w celu utrzymania wysokiej jakości kodu i minimalizacji ryzyka wystąpienia błędów w działającej aplikacji. To narzędzie jest nieocenione podczas procesu debugowania, gdyż pozwala na szybkie zlokalizowanie i zrozumienie problemów składniowych oraz logicznych wpływających na działanie aplikacji. Używanie skrótów klawiszowych do nawigacji w IDE jest również zalecane jako dobra praktyka, która zwiększa efektywność pracy.

Pytanie 34

W zaprezentowanym fragmencie algorytmu wykorzystano

Ilustracja do pytania
A. trzy bloki operacyjne (procesy)
B. dwie pętle
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 35

W bazie danych sklepu internetowego, w tabeli klienci znajdują się m.in. pola całkowite: punkty, liczbaZakupow oraz pole ostatnieZakupy o typie DATE. Klauzula WHERE dla zapytania wybierającego klientów, którzy mają ponad 3000 punktów lub dokonali zakupów więcej niż 100 razy, a ich ostatnie zakupy miały miejsce co najmniej w roku 2022, przyjmuje postać

A. WHERE punkty > 3000 AND liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
B. WHERE punkty > 3000 OR liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
C. WHERE punkty > 3000 AND liczbaZakupow > 100 AND ostatnieZakupy >= '2022-01-01'
D. WHERE (punkty > 3000 OR liczbaZakupow > 100) AND ostatnieZakupy >= '2022-01'
Odpowiedź ta jest poprawna, ponieważ zastosowano w niej właściwą logikę warunków w klauzuli WHERE. Aby wybrać klientów, którzy spełniają co najmniej jeden z dwóch pierwszych warunków (posiadają więcej niż 3000 punktów lub wykonali więcej niż 100 zakupów), używamy operatora OR. Z kolei ostatni warunek, dotyczący daty ostatnich zakupów, musi łączyć się z poprzednimi za pomocą operatora AND. Oznacza to, że aby klient został uwzględniony w wynikach, musi spełniać przynajmniej jeden z warunków dotyczących punktów lub liczby zakupów, a równocześnie musi mieć ostatnie zakupy dokonane w roku 2022 lub później. Takie podejście jest zgodne z dobrymi praktykami w SQL, w których operator OR jest wykorzystywany do łączenia warunków alternatywnych, a AND do warunków koniecznych. Na przykład, jeśli chcemy analizować dane klientów w kontekście programów lojalnościowych, takie zapytanie pozwoliłoby nam na wyodrębnienie najbardziej aktywnych klientów, co może być przydatne przy planowaniu kampanii marketingowych.

Pytanie 36

Aby dodać nowy rekord do tabeli Pracownicy, konieczne jest zastosowanie polecenia SQL

A. INSERT (Jan, Kowalski) INTO Pracownicy
B. INSERT VALUES (Jan, Kowalski) INTO Pracownicy
C. INSERT VALUES Pracownicy INTO (Jan, Kowalski)
D. INSERT INTO Pracownicy VALUES ('Jan',' Kowalski')
Aby dodać nowy rekord do tabeli Pracownicy w bazie danych, należy skorzystać z polecenia SQL INSERT INTO, które jest standardowym sposobem na wprowadzenie nowych danych do tabeli. Poprawna składnia polecenia to 'INSERT INTO <nazwa_tabeli> VALUES (<wartości>)'. W przypadku podanego przykładu, używamy 'INSERT INTO Pracownicy VALUES ('Jan', 'Kowalski');', co jest zgodne z wymaganiami SQL. Polecenie to wprowadza dwa nowe atrybuty: imię 'Jan' oraz nazwisko 'Kowalski' do tabeli Pracownicy. Ważne jest, aby wartości były poprawnie otoczone apostrofami w przypadku typów danych tekstowych. Zgodnie z normami SQL, zapis ten pozwala na dodanie rekordu, pod warunkiem, że kolumny tabeli są zgodne z wprowadzanymi danymi, a tabela Pracownicy została wcześniej zdefiniowana w bazie danych. Przykładem może być sytuacja, w której tabela Pracownicy ma kolumny 'Imie' i 'Nazwisko', a wprowadzenie wartości bezpośrednio do tych kolumn jest zgodne z ich definicją.

Pytanie 37

Zestaw narzędzi oraz funkcji umożliwiający tworzenie aplikacji, który dodatkowo narzuca ramy wizualne aplikacji, jej strukturę oraz czasami wzór, według którego ma być stworzona aplikacja, to

A. komponent
B. biblioteka
C. middleware
D. framework
Framework to zestaw skomponowanych narzędzi oraz komponentów, które wspierają programistów w procesie tworzenia aplikacji poprzez dostarczenie struktury i organizacji kodu. Charakteryzuje się on tym, że określa pewne zasady, standardy oraz architekturę, co pozwala na łatwiejsze zarządzanie projektem i jego przyszłym rozwojem. Przykłady popularnych frameworków to Angular, React dla aplikacji webowych oraz Django, Ruby on Rails w przypadku aplikacji serwerowych. Frameworki często implementują wzorce projektowe, takie jak Model-View-Controller (MVC), które segregują logikę aplikacji na różne warstwy, co pozwala na lepszą organizację kodu. Dzięki zastosowaniu frameworków, programiści mogą skupić się na pisaniu logiki biznesowej, zamiast tracić czas na implementację podstawowych funkcji, ponieważ wiele z nich jest już dostarczanych przez framework. Umożliwia to również łatwiejsze wprowadzanie zmian oraz współpracę w zespołach programistycznych. Frameworki są zgodne z różnymi standardami, co zapewnia ich wszechstronność i szeroką akceptację w branży.

Pytanie 38

W CSS zapis selektora p > i { color: red;} wskazuje, że kolorem czerwonym zostanie zdefiniowany

A. tylko ten tekst w znaczniku <p>, który posiada klasę o nazwie i
B. tylko ten tekst w znaczniku <i>, który znajduje się bezpośrednio wewnątrz znacznika <p>
C. wszelki tekst w znaczniku <p>, z wyjątkiem tych w znaczniku <i>
D. wszelki tekst w znaczniku <p> lub wszelki tekst w znaczniku <i>
Zapis selektora p > i w CSS oznacza, że styl zostanie zastosowany jedynie do znaczników <i>, które są bezpośrednimi dziećmi znacznika <p>. W praktyce oznacza to, że jeśli w dokumencie HTML mamy strukturę, gdzie znacznik <i> znajduje się bezpośrednio wewnątrz <p>, tekst w tym <i> zostanie sformatowany na czerwono. Takie podejście do stylizacji jest zgodne z zasadami kaskadowego arkusza stylów, gdzie selektory mogą precyzyjnie określać, które elementy mają być stylizowane. Użycie operatora > jest dobrym przykładem zastosowania selektorów potomków w CSS, co pozwala na bardziej precyzyjne i efektywne zarządzanie stylami. Dobrą praktyką jest unikanie nadmiernej hierarchii w selektorach, co może prowadzić do złożonych i trudnych do utrzymania arkuszy stylów. W związku z tym, zrozumienie działania selektorów jest kluczowe dla efektywnego korzystania z CSS.

Pytanie 39

Który składnik nie jest wymagany do instalacji i uruchomienia systemu CMS Joomla!?

A. baza danych
B. parser PHP
C. serwer WWW
D. platforma .NET
W pytaniu o wymagania systemowe dla Joomla! bardzo łatwo pomylić ogólne pojęcie „serwer” czy „platforma” z konkretnymi technologiami, które faktycznie są potrzebne. Joomla! to klasyczny CMS napisany w PHP, który działa w architekturze klient–serwer zgodnej z typowym modelem aplikacji webowych. Do poprawnego działania potrzebuje trzech filarów: serwera WWW, interpretera PHP oraz relacyjnej bazy danych. Serwer WWW, taki jak Apache czy Nginx, przyjmuje żądania HTTP z przeglądarki, obsługuje pliki statyczne i przekazuje żądania do skryptów PHP. Bez tego elementu użytkownik w ogóle nie byłby w stanie połączyć się z witryną. Parser (interpretator) PHP jest absolutnie kluczowy, bo cały kod Joomla! – logika logowania, panele administracyjne, generowanie treści, system szablonów – jest napisany właśnie w tym języku. To nie jest zwykły „dodatek”, tylko środowisko uruchomieniowe aplikacji. Baza danych z kolei przechowuje wszystkie dynamiczne dane: artykuły, użytkowników, uprawnienia, moduły, konfigurację. Bez bazy CMS przestałby być „systemem zarządzania treścią”, bo nie miałby gdzie tej treści trwale zapisywać. Częsty błąd myślowy polega na wrzucaniu do jednego worka wszystkich technologii serwerowych: skoro coś działa „na serwerze”, to może wymaga .NET, Javy, PHP – wszystko jedno. Tymczasem każdy CMS jest pisany w konkretnej technologii i wymaga zgodnego z nią środowiska. Joomla! nie wykorzystuje ASP.NET ani bibliotek .NET, więc platforma .NET nie jest jej potrzebna do niczego. Można mieć serwer z zainstalowanym .NET, ale jeśli nie ma tam PHP i odpowiedniej bazy danych, Joomla! i tak nie ruszy. Z mojego doświadczenia warto zawsze zaczynać od sprawdzenia, w jakim języku napisane jest dane oprogramowanie webowe i pod to dobierać stos serwerowy, zamiast zakładać, że każda aplikacja webowa wymaga .NET tylko dlatego, że kojarzy się on z „nowoczesnym” serwerem.

Pytanie 40

Aby stworzyć relację jeden do wielu, w tabeli po stronie wiele, co należy zdefiniować?

A. klucz obcy wskazujący na klucz obcy tabeli po stronie jeden
B. klucz obcy wskazujący na klucz podstawowy tabeli po stronie jeden
C. klucz podstawowy wskazujący na klucz podstawowy tabeli po stronie jeden
D. klucz sztuczny odnoszący się do kluczy podstawowych obu tabel
W kontekście relacji jeden do wielu w bazach danych, każda z podanych niepoprawnych opcji wprowadza w błąd odnośnie do zasady funkcjonowania kluczy obcych i ich roli w modelowaniu danych. Klucz obcy wskazujący na klucz obcy tabeli po stronie jeden jest konceptualnie błędny, ponieważ klucz obcy zawsze odnosi się do klucza podstawowego innej tabeli, a nie do innego klucza obcego. Taki układ narusza zasady referencyjności i integralności danych, co może prowadzić do trudności w utrzymaniu spójności w bazie. Kolejną niepoprawną opcją jest klucz sztuczny odnoszący się do kluczy podstawowych obu tabel. Klucze sztuczne, choć mogą być użyteczne w pewnych kontekstach, nie powinny być używane jako sposób tworzenia relacji, ponieważ nie odzwierciedlają naturalnych powiązań między danymi. Klucz podstawowy wskazujący na klucz podstawowy tabeli po stronie jeden również jest mylny, ponieważ w relacji jeden do wielu klucz podstawowy tabeli 'jeden' musi być referencjonowany przez klucz obcy w tabeli 'wiele', a nie odwrotnie. Te nieporozumienia mogą prowadzić do błędów projektowych w bazach danych, co w efekcie utrudnia ich rozwój i zarządzanie, szczególnie w dużych systemach, gdzie spójność danych jest kluczowa dla funkcjonowania aplikacji.