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: 2 maja 2026 15:16
  • Data zakończenia: 2 maja 2026 15:41

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

Podaj nazwę Systemu Zarządzania Treścią, którego logo jest widoczne na zamieszczonym rysunku?

Ilustracja do pytania
A. Drupal
B. MediaWiki
C. WordPress
D. Joomla!
Joomla! to popularny system zarządzania treścią CMS który jest szeroko stosowany do tworzenia stron internetowych aplikacji online i portali. Dzięki swojej elastyczności Joomla! jest wybierany przez wiele firm i organizacji do zarządzania treścią online. System ten charakteryzuje się modułową architekturą która umożliwia łatwe rozszerzanie jego funkcjonalności za pomocą komponentów modułów i wtyczek. Jednym z głównych atutów Joomla! jest intuicyjny interfejs użytkownika który umożliwia zarządzanie treścią bez potrzeby głębokiej wiedzy technicznej. Dodatkowo Joomla! wspiera wiele języków co czyni go idealnym wyborem dla międzynarodowych organizacji. Warto również zaznaczyć że Joomla! jest open-source co oznacza że jest rozwijany przez społeczność programistów z całego świata którzy regularnie aktualizują i ulepszają oprogramowanie. Wybranie Joomla! jako CMS pozwala na korzystanie z dużej liczby szablonów i dodatków które umożliwiają personalizację witryny zgodnie z wymaganiami klienta. Dzięki solidnej bazie użytkowników i deweloperów Joomla! oferuje wsparcie techniczne i dokumentację która ułatwia rozwiązywanie problemów. W praktyce Joomla! jest wykorzystywany przez różnorodne witryny od małych blogów po rozbudowane platformy e-commerce co potwierdza jego wszechstronność i skuteczność.

Pytanie 2

W zamieszczonym kodzie PHP, który łączy się z serwerem bazy danych, jakie działania powinny być umieszczone w instrukcji warunkowej w miejscu trzech kropek?

$db = mysqli_connect("localhost","root","qwerty","baza1");
if ( !$db ) {
...
}
A. Zarządzanie błędem połączenia
B. Zamknięcie połączenia z bazą danych
C. Przetwarzanie danych otrzymanych z bazy
D. Informacja o udanym połączeniu z bazą
W przypadku nawiązywania połączenia z bazą danych kluczowym aspektem jest sprawdzenie czy połączenie zostało nawiązane pomyślnie. W PHP funkcja mysqli_connect() zwraca false w przypadku nieudanego połączenia dlatego pierwszym krokiem po jej użyciu powinno być sprawdzenie czy połączenie zostało zainicjowane poprawnie. W sytuacji gdy połączenie nie powiedzie się należy wykonać odpowiednie czynności obsługi błędu. Najczęściej stosowaną praktyką jest wyświetlenie użytkownikowi komunikatu o błędzie oraz zapisanie szczegółów błędu do logów systemowych co umożliwia późniejszą diagnostykę problemu. Można to zrealizować za pomocą funkcji mysqli_connect_error() która zwraca szczegóły błędu połączenia. Obsługa błędów na tym etapie jest zgodna z dobrymi praktykami programistycznymi i pomaga zapobiegać sytuacjom w których aplikacja działałaby w sposób nieprzewidywalny lub nieefektywny. Prawidłowe zarządzanie błędami połączenia jest niezbędne do tworzenia stabilnych i bezpiecznych aplikacji internetowych. Ponadto pozwala na wczesne wykrycie problemów konfiguracyjnych takich jak nieprawidłowe dane logowania czy brak dostępu do serwera bazy danych.

Pytanie 3

W bazie danych znajduje się tabela uczniowie z kolumnami: imie, nazwisko, klasa. Jakie polecenie SQL należy wykorzystać, aby znaleźć imiona oraz nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN 'M%';
B. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN 'M%';
C. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = 'M%';
D. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';
Wybrana odpowiedź jest poprawna, ponieważ używa operatora LIKE, który jest standardowym rozwiązaniem w SQL do wyszukiwania wzorców w danych. W tym przypadku 'M%' oznacza, że chcemy znaleźć wszystkie nazwiska, które zaczynają się na literę M. Operator LIKE jest szczególnie przydatny w sytuacjach, gdy potrzebujemy elastycznego wyszukiwania, umożliwiającego zastosowanie symboli wieloznacznych, takich jak '%' oznaczający dowolną liczbę znaków. Przykład zastosowania tego zapytania może obejmować generowanie listy uczniów dla nauczycieli, którzy chcą szybko zobaczyć wszystkich uczniów z nazwiskiem zaczynającym się na M, co może być przydatne przy organizowaniu wydarzeń czy klas. Dobrą praktyką jest także używanie odpowiednich indeksów w bazie danych, co może znacznie przyspieszyć wykonanie zapytań, zwłaszcza w dużych zbiorach danych. Znajomość operatorów SQL i ich zastosowań, jak również umiejętność formułowania zapytań, jest kluczowa w pracy z relacyjnymi bazami danych.

Pytanie 4

Z tabel Artykuly oraz Autorzy należy wyodrębnić tylko nazwiska autorów oraz tytuły ich artykułów, które uzyskały ocenę 5. Odpowiednia kwerenda do pozyskania tych informacji ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
C. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
D. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
Pozostałe odpowiedzi są niepoprawne z kilku powodów. W przypadku kwerendy SELECT nazwisko tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id; brakuje klauzuli WHERE co sprawia że zwraca ona wszystkie artykuły niezależnie od ich oceny. To nie spełnia warunku pytania który wymaga wyłącznie artykułów ocenionych na 5. Taka kwerenda może być niewydajna w kontekście dużych zbiorów danych i nie jest zgodna z założeniami zadania. W odpowiedzi SELECT nazwisko tytul FROM autorzy artykuly WHERE ocena == 5; nie użyto klauzuli JOIN co może prowadzić do niepoprawnych wyników i potencjalnego zwrotu kartazyjskiego iloczynu tabel powodując ogromny wzrost liczby rekordów. Zastosowanie podwójnego znaku równości jest błędne w SQL który używa pojedynczego znaku do przypisania wartości. W końcu odpowiedź SELECT nazwisko tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id; zawiera nieprawidłowy warunek łączenia. Klucz artykuly.id nie jest kluczem obcym co prowadzi do błędnych wyników. Poprawne zrozumienie relacji między tabelami oraz zastosowanie odpowiednich klauzul jest kluczowe dla efektywnego zapytania SQL i uniknięcia typowych błędów w zarządzaniu relacyjnymi bazami danych. Zrozumienie relacji pomiędzy tabelami oraz prawidłowe stosowanie klauzul pozwala na efektywne zarządzanie danymi co ma kluczowe znaczenie w programowaniu baz danych oraz ich optymalizacji.

Pytanie 5

Jakie wartości powinny mieć zmienne w funkcji z biblioteki mysqli, by ustanowić połączenie z serwerem i 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 - $b, hasło - $a
B. adres serwera - $c, nazwa bazy danych - $d, login - $a, hasło - $b
C. adres serwera - $a, nazwa bazy danych - $d, login - $b, hasło - $c
D. adres serwera - $a, nazwa bazy danych - $b, login - $c, hasło - $d
Funkcja mysqli_connect w PHP to coś, co trzeba znać, gdy pracuje się z bazami danych MySQL. Wiesz, że musisz podać parametry w odpowiedniej kolejności: najpierw adres serwera, potem nazwę użytkownika, hasło i na końcu nazwę bazy danych. W twoim zadaniu odpowiednie zmienne to: adres serwera jako $a, nazwa bazy jako $d, login jako $b, a hasło jako $c, co pasuje do czwartej opcji. Dobrze to rozumiesz, bo tę funkcję trzeba wywołać w dokładnie takiej kolejności, żeby połączenie z bazą działało. Przykład: gdy korzystasz z lokalnego serwera, to używasz localhost jako $a, użytkownik to root, a hasło powiedzmy, że password, a baza to test_db. W takim razie wyglądałoby to tak: mysqli_connect('localhost', 'root', 'password', 'test_db'). Dobrze przyporządkowane zmienne są kluczowe, bo jak coś pomylisz, połączenie się nie uda i mogą się pojawić błędy. Warto zrozumieć, jak to działa, żeby dobrze programować w PHP z MySQL.

Pytanie 6

Można wydać instrukcję transakcyjną ROLLBACK, aby

A. cofnąć transakcję po zastosowaniu instrukcji COMMIT
B. cofnąć działanie transakcji
C. zatwierdzić jedynie wybrane modyfikacje transakcji
D. zatwierdzić transakcję
Odpowiedź 2 jest poprawna, ponieważ instrukcja ROLLBACK jest używana w systemach zarządzania bazami danych, aby cofnąć wszystkie zmiany wprowadzone w bieżącej transakcji. ROLLBACK przywraca stan bazy danych do momentu sprzed rozpoczęcia transakcji, co jest niezwykle istotne w kontekście zapewnienia integralności danych. W sytuacjach, gdy transakcja kończy się błędem lub występują nieprzewidziane okoliczności, ROLLBACK umożliwia usunięcie wszystkich niepoprawnych lub niekompletnych operacji. Na przykład, podczas aktualizacji danych w bazie, jeśli część operacji zakończy się niepowodzeniem, a część nie, zastosowanie ROLLBACK pozwala na ochronę danych przed niespójnym stanem. W praktyce, ROLLBACK powinien być stosowany w ramach transakcji, co jest zgodne z zasadami ACID (Atomicity, Consistency, Isolation, Durability), które są kluczowe dla bezpieczeństwa i spójności operacji w bazach danych. Dobrą praktyką jest również testowanie scenariuszy, w których mogą wystąpić błędy, aby upewnić się, że ROLLBACK działa poprawnie w sytuacjach awaryjnych, co może pomóc w ochronie przed utratą danych oraz w utrzymaniu zaufania użytkowników względem systemu.

Pytanie 7

Dzięki poleceniu ALTER TABLE można

A. zmieniać wartości rekordów
B. usunąć rekord
C. skasować tabelę
D. zmieniać strukturę tabeli
Polecenie ALTER TABLE jest kluczowym elementem w zarządzaniu bazami danych, umożliwiającym wprowadzanie zmian w strukturze istniejących tabel. Dzięki temu poleceniu możemy dodawać nowe kolumny, zmieniać typy danych istniejących kolumn, usuwać kolumny, a także zmieniać ograniczenia, takie jak klucze główne czy obce. Na przykład, w przypadku potrzeby dodania kolumny 'data_urodzenia' do tabeli 'użytkownicy', można użyć komendy: ALTER TABLE użytkownicy ADD data_urodzenia DATE;. Zmiany strukturalne są niezbędne, aby dostosować bazę danych do ewoluujących potrzeb aplikacji oraz do zapewnienia integralności danych. W praktyce, operacje te są często stosowane przy modernizacji aplikacji lub w odpowiedzi na zmieniające się wymagania biznesowe. Dobre praktyki wskazują, że przed wprowadzeniem zmian w strukturze tabeli warto wykonać kopię zapasową danych oraz przeanalizować wpływ tych zmian na istniejące zapytania i aplikacje, które korzystają z danej tabeli.

Pytanie 8

W HTML znacznik <i> powoduje uzyskanie takiego samego efektu wizualnego jak znacznik

A. <strong>
B. <u>
C. <em>
D. <pre>
Znacznik <em> w HTML służy do podkreślenia wyrazu w sposób, który jest semantyczny oraz wizualny. Oznacza on, że dany tekst ma szczególne znaczenie, co jest zgodne z dobrymi praktykami w tworzeniu dostępnych stron internetowych. Użycie <em> jest preferowane w sytuacjach, gdy chcemy wyróżnić określone słowa lub frazy, co jest istotne dla zrozumienia treści. Przykładem może być zdanie: "Wartość ta jest <em>szczególnie</em> istotna w kontekście analizy". W takim przypadku tekst "szczególnie" będzie wyróżniony nie tylko dla użytkownika, ale również dla wyszukiwarek oraz technologii asystujących, co przyczynia się do lepszej dostępności strony. W przeciwieństwie do znaczników, które mają głównie funkcję wizualną, takich jak <i>, <em> przynosi dodatkowe znaczenie semantyczne, co czyni go bardziej odpowiednim w kontekście tworzenia dokumentów HTML zgodnych z standardami W3C.

Pytanie 9

Jakie mechanizmy przyznawania zabezpieczeń, umożliwiające przeprowadzanie operacji na bazie danych, są powiązane z tematyką zarządzania kontami, użytkownikami oraz uprawnieniami?

A. Z przywilejami obiektowymi
B. Z atrybutami
C. Z przywilejami systemowymi
D. Z zasadami
Zagadnienia związane z zarządzaniem kontami, użytkownikami i uprawnieniami w kontekście baz danych są złożone i często mylone z innymi mechanizmami. Reguły, na przykład, są używane w kontekście polityk bezpieczeństwa, ale nie odnoszą się bezpośrednio do przydzielania uprawnień w systemie baz danych. W praktyce, reguły mogą służyć do definiowania warunków, pod którymi dane operacje są dozwolone, ale same w sobie nie kontrolują dostępu do zasobów. Przywileje obiektowe, z drugiej strony, dotyczą specyficznych obiektów w bazie danych, takich jak tabele czy procedury, i nie obejmują uprawnień na poziomie systemowym. W kontekście zarządzania użytkownikami są one używane do kontrolowania dostępu do konkretnych danych, a nie do wykonywania operacji administracyjnych na systemie. Z kolei atrybuty mogą odnosić się do właściwości obiektów w bazie danych, ale nie są to mechanizmy służące do zarządzania użytkownikami i ich uprawnieniami. Typowym błędem jest mylenie tych pojęć i uznawanie, że reguły czy przywileje obiektowe mają podobne zastosowanie do przywilejów systemowych. W realiach zarządzania bazą danych kluczowe jest zrozumienie, że każde z tych podejść ma swoje specyficzne zastosowanie i niezbędne jest stosowanie właściwych narzędzi oraz technik w celu zapewnienia odpowiedniego poziomu bezpieczeństwa i kontroli dostępu.

Pytanie 10

Aby zdefiniować styl akapitu <p>, który występuje bezpośrednio po znaczniku <img>, należy w arkuszu stylów CSS zastosować związek

A. img > p
B. img + p
C. img [p]
D. img p
W tym zadaniu chodzi o zrozumienie tzw. kombinatorów w CSS, czyli znaków łączących selektory i określających relacje między elementami w drzewie DOM. Bardzo często mylenie tych relacji prowadzi do dokładnie takich błędnych odpowiedzi jak w tym pytaniu. Zapis „img p” to selektor potomka (descendant selector). Oznacza on: wybierz każdy element <p>, który znajduje się gdziekolwiek wewnątrz elementu <img>. Problem w tym, że w poprawnym HTML znacznik <img> jest pustym elementem, nie może mieć dzieci. W praktyce więc taki selektor nigdy nie zadziała w opisanym scenariuszu. To typowe nieporozumienie: ktoś myśli „obok obrazka jest paragraf, więc napiszę img p”, ale CSS rozumie to jako relację rodzic–potomek, a nie rodzeństwo. Z kolei zapis „img [p]” wynika zwykle z pomieszania składni selektorów atrybutów z selektorami elementów. Nawiasy kwadratowe w CSS służą do wybierania elementów na podstawie atrybutów, np. a[href], input[type="text"]. Konstrukcja [p] sugerowałaby atrybut o nazwie „p”, co w ogóle nie ma sensu w tym kontekście. Taka składnia jest po prostu niepoprawna merytorycznie, bo nie opisuje żadnej realnej relacji między <img> a <p>. Natomiast „img > p” to selektor dziecka (child combinator). Mówi on: wybierz elementy <p>, które są bezpośrednimi dziećmi elementu <img>. To znowu kłóci się z modelem HTML – obrazek nie może zawierać w sobie paragrafu. Ten selektor ma sens np. przy div > p, ale zupełnie nie pasuje do relacji „element po elemencie”. W tym zadaniu potrzebna jest relacja rodzeństwa: akapit stoi obok obrazka, a nie w środku. Prawidłowe podejście opiera się na zrozumieniu, że chcemy „bezpośredniego sąsiada” na tym samym poziomie, a nie potomka czy dziecka. Właśnie to zapewnia selektor sąsiedniego rodzeństwa, czyli konstrukcja z plusem. Typowy błąd myślowy polega na tym, że patrzymy na wygląd strony (obrazek nad akapitem) i nie analizujemy prawdziwej struktury DOM. Dobra praktyka frontendowa to zawsze przełożyć układ na dokładne relacje: rodzic–dziecko, przodek–potomek, rodzeństwo. Dopiero potem dobrać odpowiedni kombinator w CSS. Jeśli chcemy stylować element „bezpośrednio po”, używamy właśnie selektora z +, a nie spacji czy znaku >.

Pytanie 11

Jaką funkcję pełni instrukcja DROP w języku SQL?

A. usunąć już istniejący obiekt
B. wprowadzić nowy obiekt
C. aktualizować dane obiektu
D. zmienić właściwości obiektu
Instrukcja DROP w języku SQL jest kluczowym narzędziem do zarządzania bazami danych, używaną do usuwania istniejących obiektów, takich jak tabele, widoki czy procedury składowane. Kiedy używamy polecenia DROP, nie tylko usuwamy obiekt z bazy danych, ale również wszystkie dane z nim związane, co sprawia, że operacja ta jest nieodwracalna. Przykładowo, jeśli chcemy usunąć tabelę o nazwie 'Użytkownicy', musimy użyć polecenia DROP TABLE Użytkownicy. Ważne jest, aby przed wykonaniem takiej operacji upewnić się, że dane są już zarchiwizowane lub nie są już potrzebne, ponieważ ta instrukcja nie da nam możliwości ich odzyskania po wykonaniu. W praktyce, DROP powinno być stosowane z rozwagą — zaleca się przed wykonaniem operacji wykorzystanie polecenia SELECT, aby sprawdzić, jakie dane są w danym obiekcie. Zgodnie z najlepszymi praktykami, organizacje powinny wprowadzać polityki dotyczące usuwania danych, aby zminimalizować ryzyko przypadkowej utraty ważnych informacji.

Pytanie 12

W HTML, aby dodać obrazek z tekstem przylegającym, umiejscowionym na środku obrazka, trzeba użyć znacznika

A. <img src="/obrazek.png" alt="obraz3" height="50%">tekst
B. <img src="/obrazek.png" alt="obraz1" hspace="30px">tekst
C. <img src="/obrazek.png" alt="obraz4">tekst
D. <img src="/obrazek.png" alt="obraz2" align="middle">tekst
Aby wstawić obrazek z tekstem przyległym w HTML, należy skorzystać ze znacznika <img> z atrybutem align ustawionym na 'middle'. Atrybut align jest przestarzały w HTML5, ale nadal może być używany w kontekście tekstów przylegających do obrazków. Ustawiając 'middle', obrazek będzie wyśrodkowany w pionie względem linii tekstu, co pozwala na estetyczne umiejscowienie obrazu w odniesieniu do towarzyszącego mu tekstu. Dobrym przykładem jest zastosowanie <img src='/obrazek.png' alt='obraz2' align='middle'>tekst, co sprawia, że obrazek staje się integralną częścią tekstu, a nie tylko jego dodatkiem. W kontekście standardów, warto zauważyć, że HTML5 zaleca stosowanie CSS do pozycjonowania, dlatego bardziej współczesnym podejściem byłoby użycie stylów CSS, np. 'vertical-align: middle'. Można to osiągnąć poprzez dodanie klasy do obrazka oraz odpowiedniego stylu CSS. Chociaż align jest przestarzały, jego rozumienie jest istotne dla osób przystosowujących starsze strony do nowych standardów.

Pytanie 13

Aby utworzyć tabelę w języku SQL, należy użyć polecenia

A. INSERT TABLE
B. ADD TABLE
C. ALTER TABLE
D. CREATE TABLE
Odpowiedź 'CREATE TABLE' jest poprawna, ponieważ w języku SQL to polecenie jest używane do tworzenia nowych tabel w bazie danych. Umożliwia definiowanie struktury tabeli, w tym nazw kolumn, typów danych oraz ograniczeń, takich jak klucze główne czy unikalność. Przykładowe użycie polecenia 'CREATE TABLE' może wyglądać następująco: 'CREATE TABLE pracownicy (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50));'. W tym przykładzie tworzymy tabelę 'pracownicy' z trzema kolumnami: 'id', 'imie' oraz 'nazwisko'. Warto zaznaczyć, że zgodnie z najlepszymi praktykami, przed wykonaniem polecenia warto sprawdzić, czy tabela o danej nazwie już istnieje, aby uniknąć błędów związanych z podwójnym tworzeniem. Zapewnienie odpowiedniej struktury bazy danych już na etapie jej tworzenia przekłada się na lepszą wydajność oraz łatwiejsze zarządzanie danymi w przyszłości.

Pytanie 14

SELECT AVGcena) FROM usługi; Celem użycia funkcji agregującej AVG w tym zapytaniu jest

A. określić najwyższą cenę usług
B. zliczyć ilość dostępnych usług w tabeli
C. zsumować wartości kosztów wszystkich usług
D. wyliczyć średnią arytmetyczną cen wszystkich usług
Odpowiedź "obliczyć średnią arytmetyczną cen wszystkich usług" jest poprawna, ponieważ funkcja AVG (average) w SQL jest zaprojektowana do obliczania średniej wartości z zestawu danych w danej kolumnie. W podanym zapytaniu, AVG(cena) ma na celu zsumowanie wartości w kolumnie 'cena' dla wszystkich wierszy w tabeli 'usługi' oraz podzielenie tej sumy przez liczbę wierszy, które zawierają dane. W praktyce, średnia arytmetyczna jest niezwykle użyteczna w analizie danych, ponieważ pozwala na uzyskanie jednego, reprezentatywnego wyniku, który może być pomocny w podejmowaniu decyzji biznesowych. Na przykład, firma usługowa może użyć tej informacji do oceny swojej polityki cenowej, porównując średnią cenę swoich usług do średnich cen konkurencji. Zgodnie z najlepszymi praktykami w branży, stosowanie funkcji agregujących takich jak AVG powinno być integralną częścią procesów analizy danych, szczególnie w kontekście raportowania i oceny efektywności operacyjnej.

Pytanie 15

Z tabeli mieszkańcy należy uzyskać unikalne nazwy miejscowości, do czego konieczne jest użycie wyrażenia SQL z klauzulą

A. HAVING
B. UNIQUE
C. DISTINCT
D. CHECK
Wybór odpowiedzi CHECK, HAVING lub UNIQUE wskazuje na pewne nieporozumienia dotyczące zastosowania i znaczenia tych klauzul w SQL. Klauzula CHECK jest używana w kontekście definicji tabeli, aby zapewnić, że dane w danym atrybucie spełniają określone warunki, na przykład 'CHECK (wiek >= 0)', co oznacza, że wiek nie może być ujemny. Nie ma jednak zastosowania w kontekście eliminacji duplikatów z wyników zapytania. Klauzula HAVING jest z kolei używana do filtrowania grup z wyniku agregacji, na przykład w zapytaniu z użyciem GROUP BY. Użycie HAVING do eliminacji duplikatów z wyników bez wcześniejszego grupowania danych nie ma sensu. Z kolei UNIQUE to ograniczenie, które można ustawić na kolumnę w tabeli, aby zapewnić, że nie będą w niej występowały powtarzające się wartości. Chociaż jest związane z unikalnością, nie jest klauzulą, którą można wykorzystać w zapytaniach do eliminacji duplikatów z zestawów wyników. Typowym błędem jest mylenie tych koncepcji, co prowadzi do wyboru nieodpowiednich narzędzi w SQL do rozwiązania konkretnego problemu. Warto zatem dobrze zrozumieć różnice między tymi klauzulami, aby umiejętnie stosować je w praktyce i skutecznie zarządzać danymi.

Pytanie 16

Za pomocą stylu CSS zdefiniowano obramowanie pojedyncze o następujących kolorach krawędzi:

border: solid 1px;
border-color: red blue green yellow;
Jakie kolory będą miały poszczególne krawędzie?
A. prawa – czerwona, dolna – niebieska, lewa – zielona, górna – żółta.
B. lewa – czerwona, dolna – niebieska, prawa – zielona, górna – żółta.
C. górna – czerwona, prawa – niebieska, dolna – zielona, lewa – żółta.
D. górna – czerwona, lewa – niebieska, dolna – zielona, prawa – żółta.
Problem z tym pytaniem najczęściej wynika z pomylenia kolejności przypisywania kolorów do krawędzi albo z założenia, że CSS „idzie” po krawędziach w innej logice niż w rzeczywistości. Własność `border-color` w wersji skróconej przy czterech wartościach ma sztywną, zdefiniowaną w specyfikacji CSS kolejność: najpierw krawędź górna, potem prawa, następnie dolna i na końcu lewa. To jest dokładnie ten sam schemat, który stosuje się w `margin`, `padding`, `border-width` i kilku innych właściwościach związanych z box modelem. Można to sobie zapamiętać jako ruch po obwodzie prostokąta zgodnie z ruchem wskazówek zegara: top → right → bottom → left. Błędne odpowiedzi sugerują inne mapowania, np. że pierwsza wartość to prawa krawędź albo lewa, albo że kolory „obracają się” w innym kierunku. To jest dość typowe nieporozumienie, bo ktoś intuicyjnie myśli: „może zaczyna się od lewej strony” albo „może idzie poziomo, a nie pionowo”. Niestety takie skojarzenia nie mają pokrycia w standardzie. Specyfikacja CSS jest tutaj jednoznaczna, a przeglądarki implementują ją konsekwentnie od lat. Jeśli więc przypiszemy `border-color: red blue green yellow;`, to jakiekolwiek inne skojarzenie niż góra–prawa–dół–lewa spowoduje błędny wynik. W praktyce prowadzi to do sytuacji, że obramowanie wygląda „dziwnie”, kolory nie są tam, gdzie projektant oczekiwał, a późniejsze debugowanie zajmuje niepotrzebnie czas. Dobrym nawykiem jest porównywanie tej składni z `margin` i `padding`, bo one działają identycznie przy czterech wartościach. Jeżeli ktoś myśli, że kolejność może być np. prawa–dół–lewa–góra, to jest to już sprzeczne z dokumentacją i nie będzie działało poprawnie w żadnej nowoczesnej przeglądarce. Lepiej trzymać się zapisanej w standardzie konwencji, bo to gwarantuje przewidywalny wygląd elementów na stronie i ułatwia współpracę w zespole front‑endowym.

Pytanie 17

W firmie zajmującej się technologiami informacyjnymi otwarta jest rekrutacja na stanowisko administratora e-sklepu. Do jego zadań należy instalacja i konfiguracja systemu zarządzania treścią, który jest przeznaczony jedynie dla sklepu internetowego, zmiana szablonów wizualnych oraz dostosowanie grafiki. Jakie umiejętności powinien posiadać nowy pracownik?

A. CMS WordPress, HTML, Gimp
B. Photoshop, Gimp, JavaScript
C. CMS PrestaShop, CSS, Gimp
D. HTML, CSS, Photoshop
Podczas analizy innych odpowiedzi można zauważyć, że każda z nich zawiera nieodpowiednie elementy, które nie odpowiadają wymaganiom pracy administratora sklepu internetowego. W przypadku odpowiedzi zawierających Photoshop, Gimp oraz JavaScript, chociaż umiejętności graficzne są ważne, JavaScript nie jest priorytetowy w kontekście zarządzania treścią w systemach e-commerce, takich jak PrestaShop. JavaScript głównie służy do tworzenia dynamicznych interfejsów użytkownika, co może być mniej istotne, gdyż wiele funkcjonalności jest już zintegrowanych w CMS. Z kolei Photoshop i Gimp, choć przydatne, nie są kluczowe w administracji samego systemu. Ponadto, odpowiedzi związane z CMS WordPress, HTML i Gimp również mijają się z celem, ponieważ WordPress nie jest dedykowany wyłącznie do e-commerce, podczas gdy PrestaShop został stworzony specjalnie dla sklepów internetowych. HTML jest użyteczny, ale nie jest wystarczający dla administratora, który musi również znać specyfikę CMS-a. W rezultacie, brak pełnego zrozumienia różnic między platformami oraz ich zastosowaniami prowadzi do błędnych wniosków o wymaganych umiejętnościach, co podkreśla znaczenie dokładnej analizy potrzeb w kontekście danej roli zawodowej.

Pytanie 18

Zawartość kodu w języku HTML umieszczona w ramce ilustruje zestaw

<ol>
<li>Pierwszy</li>
<li>Drugi</li>
<li>Trzeci</li>
</ol>
A. linków
B. numerowanej
C. wypunktowanej
D. skróconych
W przypadku odpowiedzi sugerujących że kod przedstawia listę odnośników wypunktowaną lub skrótów dochodzi do błędnego zrozumienia funkcji tagów HTML. Tag <ol> oznacza ordered list co wskazuje na listę numerowaną. Dla listy odnośników w HTML używa się zazwyczaj połączenia tagów <ul> dla listy wypunktowanej oraz <a> dla samych odnośników. Lista wypunktowana która jest tworzona przy pomocy tagu <ul> różni się od listy numerowanej tym że przed każdym elementem wyświetlany jest punkt bądź inny symbol zamiast numeru. Natomiast lista skrótów oznaczana jest za pomocą tagu <dl> dla całej listy oraz <dt> i <dd> dla poszczególnych elementów co pozwala na prezentację par termin-definicja. Mylenie tych struktur wynika z nieuwzględnienia roli i znaczenia poszczególnych tagów co może prowadzić do błędnej interpretacji kodu i jego funkcji w przeglądarce. Właściwe zrozumienie różnic między tymi elementami jest kluczowe w projektowaniu intuicyjnych i zgodnych ze standardami interfejsów użytkownika w sieci co wpływa na użyteczność i dostępność stron internetowych.

Pytanie 19

Kwerenda ALTER TABLE artykuly MODIFY cena float ma na celu wykonanie modyfikacji w tabeli artykuly?

A. usunąć kolumnę cena, która jest typu float
B. zmienić nazwę kolumny cena na float
C. wprowadzić kolumnę cena o typie float, o ile jeszcze nie istnieje
D. zmienić typ na float dla kolumny cena
Kwerenda ALTER TABLE artykuly MODIFY cena float ma na celu zmianę typu kolumny 'cena' w tabeli 'artykuly' na typ float. Typ float jest używany do przechowywania liczb zmiennoprzecinkowych, co jest szczególnie przydatne w przypadku cen, które mogą mieć ułamkowe wartości. Przykładem zastosowania tej kwerendy może być sytuacja, w której początkowo kolumna 'cena' była zdefiniowana jako typ integer, co ograniczałoby możliwość przechowywania wartości takich jak 19.99. Zmiana typu na float pozwala na większą precyzję, co jest zgodne z najlepszymi praktykami w zarządzaniu danymi finansowymi. Ważne jest, aby przed zmianą typu kolumny upewnić się, że wszystkie istniejące dane są zgodne z nowym typem, aby uniknąć błędów konwersji. Ostatecznie, korzystając z tego polecenia, dbamy o integralność danych oraz ich prawidłowe reprezentowanie, co jest kluczowe w każdej aplikacji związanej z zarządzaniem danymi.

Pytanie 20

Podczas transmisji cyfrowego materiału wideo parametrem, który wpływa na jakość obrazu i dźwięku, jest bitrate. Ta wielkość określa liczbę

A. próbek dźwięku w określonym czasie
B. pikseli wyświetlanego obrazu wyrażoną jako stosunek jego długości do wysokości
C. pikseli obrazu wyświetlanych na monitorze
D. bitów przesyłanych w określonym czasie
Przepływność, czyli bitrate, to mega ważny temat, jeśli chodzi o jakość przesyłania wideo i dźwięku. Mówiąc prosto, chodzi o to, ile bitów przesyłamy w czasie. I to ma bezpośredni wpływ na to, jak wygląda obraz i jak brzmi dźwięk. Im wyższa przepływność, tym lepsza jakość, bo więcej informacji leci w jednym czasie. Na przykład, jak mamy wideo w 1080p, to przepływność na poziomie 5-10 Mbps daje całkiem dobrą jakość. A w 4K to już może być nawet 25 Mbps lub więcej. No i różne standardy, jak H.264 czy HEVC (H.265), są po to, żeby lepiej kompresować wideo – to znaczy uzyskiwać dobrą jakość przy niższej przepływności. To naprawdę ważne dla twórców i widzów, żeby mogli się cieszyć dobrym oglądaniem i słuchaniem. Przepływność mierzymy w kbps lub Mbps, co daje nam proste porównania między formatami i standardami wideo.

Pytanie 21

W sklepie z farbami obowiązuje określony sposób obliczania kosztu farby: dla koloru niebieskiego i zielonego przy pojemności 2 litry cena farby wynosi cena bazowa + 20%. Wyrażenie logiczne w języku JavaScript, które weryfikuje tę zasadę, ma formę

A. (kolor == 'niebieski' || kolor == 'zielony') && pojemnosc == 2
B. kolor = 'niebieski' || kolor = 'zielony' && pojemnosc = 2
C. (kolor = 'niebieski' || kolor = 'zielony') || pojemnosc = 2
D. kolor == 'niebieski' && kolor == 'zielony' && pojemnosc == 2
Odpowiedź jest poprawna, ponieważ stosuje właściwą składnię języka JavaScript i prawidłowo określa warunki, które muszą być spełnione, aby cena farby zwiększyła się o 20%. Wyrażenie '(kolor == 'niebieski' || kolor == 'zielony') && pojemnosc == 2' skutecznie sprawdza, czy zmienna 'kolor' przyjmuje wartość 'niebieski' lub 'zielony', a jednocześnie czy 'pojemnosc' wynosi 2. Użycie operatora logicznego '||' (lub) oraz '&&' (i) jest kluczowe w definiowaniu logiki warunkowej, co jest podstawą w programowaniu. Dzięki tej metodzie można z łatwością rozszerzyć logikę o inne kolory czy pojemności w przyszłości. Przykładem zastosowania tej logiki w praktyce może być tworzenie dynamicznego kalkulatora cen w aplikacji internetowej, gdzie użytkownicy wybierają różne kolory i pojemności, a program automatycznie oblicza cenę na podstawie zadanych reguł. Ważne jest przestrzeganie dobrych praktyk programistycznych, takich jak jasne nazewnictwo zmiennych i unikanie złożonych wyrażeń, co zwiększa czytelność kodu. Warto również pamiętać, że stosując operator '==' zamiast '=' unikamy przypisania wartości, co jest kluczowe w kontekście debugowania i poprawności działania skryptu.

Pytanie 22

Jakie zadania programistyczne mogą być realizowane wyłącznie po stronie klienta w przeglądarce?

A. Weryfikacja hasła użytkownika w bazie danych powiązanej z aplikacją internetową
B. Weryfikacja danych wprowadzanych do pola tekstowego w czasie rzeczywistym
C. Bezpieczne wyświetlenie spersonalizowanej treści strony na podstawie uprawnień użytkownika aplikacji
D. Zapis danych z formularza w bazie danych związanej z aplikacją internetową
Wszystkie pozostałe zadania wymagają interakcji z serwerem, co czyni je niewykonalnymi po stronie klienta. Bezpieczne wyświetlenie personalizowanej zawartości strony zgodnie z prawami użytkownika aplikacji wiąże się z koniecznością weryfikacji danych na serwerze. Ta operacja wymaga zrozumienia roli serwera w kontekście bezpieczeństwa i autoryzacji, ponieważ każdy użytkownik może mieć różne uprawnienia do przeglądania zawartości. Zapisanie danych pobranych z formularza w bazie danych również odbywa się po stronie serwera, gdzie następuje walidacja i przetwarzanie danych. Bazy danych są złożonymi systemami, które zapewniają integralność i bezpieczeństwo, a ich użycie wymaga odpowiednich zapytań SQL, które są wykonywane na serwerze. Podobnie, sprawdzenie hasła użytkownika w bazie danych wymaga komunikacji z serwerem, gdzie hasło jest porównywane z zapisanym hasłem w sposób bezpieczny, zazwyczaj poprzez haszowanie. To podejście jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa aplikacji webowych, a wszelkie operacje dotyczące integralności danych powinny być wykonywane w środowisku serwerowym, aby zapobiec potencjalnym atakom, takim jak SQL Injection. Właściwe zrozumienie rozróżnienia między operacjami po stronie klienta i serwera jest kluczowe dla tworzenia wydajnych, bezpiecznych aplikacji internetowych.

Pytanie 23

W CSS, aby stylizować tekst przez dodanie podkreślenia dolnego lub górnego, należy użyć atrybutu

A. text-indent
B. text-decoration
C. text-transform
D. text-align
Atrybut text-decoration w CSS jest używany do stylizacji tekstu poprzez dodanie efektów, takich jak podkreślenie, przekreślenie czy nadkreślenie. Jest to istotny element stylizacji, który pozwala na wyróżnienie fragmentów tekstu oraz dostosowanie ich wyglądu zgodnie z wymaganiami projektowymi. W przypadku podkreślenia dolnego tekstu, można zastosować zapis 'text-decoration: underline;', co spowoduje, że tekst będzie wyraźnie podkreślony. Warto zaznaczyć, że atrybut ten jest zgodny z standardami CSS, w tym CSS2 oraz CSS3, co zapewnia jego szeroką kompatybilność z różnymi przeglądarkami. Przykładowo, jeśli mamy element <p>, możemy dodać stylizację w sekcji CSS jak poniżej: p { text-decoration: underline; }. Dodatkowo, text-decoration przyjmuje różne wartości, takie jak 'none' (brak dekoracji), 'underline' (podkreślenie), 'overline' (nadkreślenie) oraz 'line-through' (przekreślenie), co daje programistom dużą elastyczność w projektowaniu interfejsu użytkownika. Użycie text-decoration jest nie tylko zgodne z najlepszymi praktykami w tworzeniu stron internetowych, ale również ułatwia dostępność treści dla użytkowników z ograniczeniami wzrokowymi, ponieważ wyróżnianie ważnych informacji może pomóc w ich lepszym zrozumieniu i odnalezieniu w treści.

Pytanie 24

Wykres słupkowy należy zapisać w formacie rastrowym tak, aby jakość jego krawędzi była jak najlepsza, również dla dużego powiększenia, unikając efektu aliasingu. Do tego celu można zastosować format

A. PNG
B. SVG
C. JPEG
D. CDR
Analizując dostępne możliwości, łatwo się pogubić między formatami rastrowymi a wektorowymi, bo w praktyce często mieszają się te pojęcia. Format JPEG mimo swojej popularności w fotografii zupełnie nie nadaje się do wykresów słupkowych – kompresja stratna silnie degraduje jakość ostrych krawędzi i tekstów, przez co nawet lekko powiększony wykres wygląda nieestetycznie, pojawiają się brzydkie artefakty, rozmycia czy wręcz fragmentacja kolorów. To powszechny błąd, że JPEG jest uniwersalny – tak naprawdę sprawdza się tylko przy zdjęciach i obrazach z płynnymi przejściami kolorów. Z kolei SVG to już zupełnie inna liga, bo to format wektorowy. W nim krawędzie są zawsze idealnie ostre nawet przy dowolnym powiększeniu, bo są opisane matematycznie, a nie jako siatka pikseli. Problem w tym, że pytanie dotyczyło formatu rastrowego, więc SVG – choć fantastyczny do wykresów – nie spełnia tego warunku. CDR, czyli CorelDRAW, to natomiast format projektu wektorowego, popularny raczej w poligrafii i druku, a nie w codziennym zapisie wykresów do prezentacji czy publikacji elektronicznych. Pliki CDR są niekompatybilne z większością standardowych przeglądarek czy edytorów graficznych i wymagają specjalistycznego oprogramowania, więc to raczej ślepy zaułek. Wiele osób nie odróżnia również pojęcia aliasingu – czyli poszarpanych krawędzi w grafice rastrowej – od rozmycia czy utraty jakości wynikającej ze złego formatu. PNG jako jedyny z wymienionych formatów rastrowych umożliwia uzyskanie bardzo ostrych krawędzi, a przy zachowaniu wysokiej rozdzielczości pozwala niemal całkowicie uniknąć efektu aliasingu. Moim zdaniem to jeden z tych tematów, gdzie praktyka bardzo szybko weryfikuje teorię i wybierając PNG, po prostu nie ma się później problemów z jakością czy kompatybilnością. Trzeba pamiętać, że dobór formatu ma ogromny wpływ na ostateczną prezentację danych, dlatego nie warto iść na skróty, tylko dobrać narzędzie do konkretnego celu.

Pytanie 25

Pole insert_id zdefiniowane w bibliotece MySQLi języka PHP może być wykorzystane do

A. uzyskania pierwszego dostępnego indeksu bazy, tak, aby można było pod nim wstawić nowe dane
B. otrzymania kodu błędu, gdy wstawienie wiersza się nie powiodło
C. uzyskania id ostatnio dodanego wiersza
D. pobrania najwyższego indeksu bazy, aby po jego zwiększeniu wstawić pod niego dane
Każda z niepoprawnych odpowiedzi zawiera błędne założenia dotyczące funkcji insert_id w kontekście MySQLi. Odpowiedź, która sugeruje, że pole to może być użyte do otrzymania kodu błędu w przypadku niepowodzenia procesu wstawiania wiersza, jest myląca, ponieważ kod błędu jest uzyskiwany za pomocą innych mechanizmów, takich jak mysqli_errno() oraz mysqli_error(). Takie podejście może prowadzić do nieporozumień w zarządzaniu błędami w bazach danych, co jest istotnym aspektem programowania. Ponadto, pomysł, że insert_id może być używany do pobrania najwyższego indeksu bazy, aby po jego inkrementacji wstawić nowe dane jest nieprawidłowy, ponieważ insert_id nie działa w ten sposób; identyfikator jest automatycznie generowany przez bazę danych w momencie dodawania rekordu. Takie podejście może prowadzić do trudności w synchronizacji danych i jest niezgodne z zasadami dobrego projektowania baz danych. Również koncepcja pozyskiwania pierwszego wolnego indeksu jest błędna; w praktyce nie jest zalecane ręczne zarządzanie indeksami, ponieważ może to prowadzić do konfliktów i naruszenia integralności danych. MySQL automatycznie zarządza numerami ID, co jest bardziej efektywne i zmniejsza ryzyko błędów. Wreszcie, stosując te nieprawidłowe koncepcje, programiści mogą napotkać trudności w utrzymaniu kodu i jego rozwoju, co może zwiększyć złożoność aplikacji.

Pytanie 26

Wskaź poprawną definicję funkcji w języku JavaScript.

A. function nazwa_funkcji(argumenty) {instrukcje;}
B. nazwa_funkcji(argumenty) {instrukcje;}
C. new nazwa_funkcji(argumenty) {instrukcje;}
D. typ_funkcji nazwa_funkcji(argumenty) {instrukcje;}
Poprawna definicja funkcji w języku JavaScript to 'function nazwa_funkcji(argumenty) {instrukcje;}'. Kluczowe słowo 'function' wskazuje, że definiujemy nową funkcję, co jest standardową praktyką w programowaniu w JavaScript. Funkcja może przyjmować argumenty, które są zmiennymi przekazywanymi do niej podczas wywołania. Możemy zdefiniować dowolną liczbę argumentów, a ich typy nie są ściśle określone, co zapewnia dużą elastyczność. Wewnątrz nawiasów klamrowych {} umieszczamy instrukcje, które będą wykonane, gdy funkcja zostanie wywołana. Przykładem może być funkcja, która dodaje dwie liczby: 'function dodaj(a, b) { return a + b; }'. Możliwość definiowania funkcji pozwala na organizację kodu, ponowne wykorzystanie oraz modularność, a to wszystko jest zgodne z zasadami programowania obiektowego i funkcjonalnego, które są fundamentem JavaScript. Warto również zauważyć, że zgodnie z ECMAScript, standardem definiującym JavaScript, ta składnia jest właściwa i szeroko stosowana w praktyce programistycznej.

Pytanie 27

Element zadeklarowany w języku C++ double x*; oznacza

A. wskaźnik
B. parametr formalny o typie zmiennoprzecinkowym
C. typ zmiennoprzecinkowy
D. typ całkowity
Odpowiedzi, które wskazują, że <b>double x*;</b> to zmienna całkowita, zmienna rzeczywista lub parametr formalny typu rzeczywistego, opierają się na nieporozumieniach dotyczących definicji typów danych w języku C++. Po pierwsze, zmienna całkowita to typ, który przechowuje liczby całkowite, a składnia <b>double x*;</b> wyraźnie mówi, że jest to wskaźnik do zmiennej typu <b>double</b>, która jest używana do reprezentacji liczb rzeczywistych, w tym zmiennoprzecinkowych. Stąd, mylenie wskaźnika z typem zmiennoprzecinkowym może prowadzić do błędnych wniosków. Ponadto, parametr formalny typu rzeczywistego odnosi się do deklaracji funkcji, a nie do zmiennej. W C++ funkcje mogą przyjmować wskaźniki jako argumenty, co pozwala na efektywne przekazywanie dużych obiektów bez ich kopiowania, lecz sam wskaźnik nie jest parametrem formalnym, lecz zmienną przechowującą adres innej zmiennej. Często spotykaną pułapką w rozumieniu wskaźników jest ich pomylenie z odniesieniami (<b>double& x</b>), które w C++ działają nieco inaczej. Warto zatem poszerzyć wiedzę o wskaźnikach, aby lepiej zrozumieć ich rolę w zarządzaniu pamięcią i przekazywaniu argumentów w funkcjach.

Pytanie 28

Wykonano następującą kwerendę SQL na tabeli dania, której wiersze zostały pokazane na obrazie:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze ta kwerenda?

idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
62wieprzowy przysmak35
72Mintaj w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 5
B. 2
C. 8
D. 13
Gratulacje, dobrze sobie poradziłeś z tym pytaniem! Wykonanie kwerendy SELECT na tabeli danych, oznacza wybieranie konkretnych wierszy z tej tabeli, które spełniają określone kryteria. Kwerendy SQL są podstawowym narzędziem w zarządzaniu bazami danych, a ich zrozumienie jest kluczowe dla efektywnej pracy z danymi. W tym przypadku, kwerenda SELECT wybrała 2 wiersze - jest to prawidłowa odpowiedź. W praktyce, mogłoby to oznaczać na przykład wybranie z bazy danych informacji o dwóch klientach, którzy spełnili określone kryteria. Ważne jest, aby pamiętać, że liczba wybranych wierszy zależy od kryteriów, które określamy w kwerendzie. W SQL mamy wiele możliwości filtrowania i sortowania danych, co pozwala na efektywne zarządzanie informacjami. Dobra praktyka to dokładne zrozumienie działania kwerendy, zanim zostanie ona wykonana na dużej ilości danych.

Pytanie 29

W języku JavaScript zapisano fragment kodu. Po wykonaniu skryptu zmienna x

<script>
var x = 10;
x++;
console.log(x);
</script>
A. będzie równa 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
B. będzie równa 11 i zostanie wypisana w oknie popup.
C. będzie równa 11 i zostanie wypisana w konsoli przeglądarki internetowej.
D. będzie równa 10 i zostanie wypisana w dokumencie HTML.
Gratulacje, twoja odpowiedź jest poprawna! Odpowiedź 'będzie równa 11 i zostanie wypisana w konsoli przeglądarki internetowej' jest prawidłowa, ponieważ po zainicjalizowaniu zmiennej x wartością 10 następuje inkrementacja, która zwiększa wartość zmiennej o 1, dając w wyniku 11. Następnie wartość zmiennej x jest wypisywana w konsoli przeglądarki internetowej za pomocą metody console.log(). Jest to standardowa metoda w języku JavaScript do debugowania i śledzenia wartości zmiennych podczas wykonywania kodu. W praktyce, zrozumienie pracy z konsolą przeglądarki jest kluczowe dla efektywnego programowania JavaScript. To umiejętność, która pozwala na szybkie zlokalizowanie i rozwiązanie problemów z kodem. Dobrą praktyką jest również umiejętne korzystanie z operacji inkrementacji, które są podstawą sterowania przepływem i manipulowania danymi w JavaScript.

Pytanie 30

Aby utworzyć relację wiele do wielu pomiędzy tabelami A i B, należy

A. tabela A będzie miała identyczne pola jak tabela B
B. wprowadzić trzecią tabelę zawierającą klucze obce do tabel A i B
C. tabelę A połączyć z tabelą B przez utworzenie kluczy obcych
D. wiele wpisów z tabeli A zduplikuje się w tabeli B
Twierdzenie, że wystarczy połączyć tabelę A z tabelą B za pomocą zdefiniowania kluczy obcych, jest błędne, ponieważ taka operacja tworzy jedynie relację jeden do wielu, a nie wiele do wielu. W przypadku relacji jeden do wielu jedna tabela (np. tabela A) może być połączona z wieloma rekordami w drugiej tabeli (np. tabela B), ale nie odwrotnie. Co więcej, zduplikowanie wielu rekordów z tabeli A w tabeli B prowadziłoby do powstania redundancji i nieefektywnego zarządzania danymi, co jest sprzeczne z zasadami normalizacji baz danych. Wreszcie, posiadanie tabeli A z takimi samymi polami co tabela B jest nieadekwatne i niezgodne z ideą relacji wiele do wielu. Tego typu rozwiązanie prowadziłoby do chaosu w strukturze bazy danych oraz utrudniałoby jakiekolwiek operacje na zbiorach danych. Aby zrealizować relację wiele do wielu, należy zawsze wprowadzić osobną tabelę, która będzie w stanie efektywnie łączyć obie oryginalne tabele, umożliwiając ich prawidłowe powiązanie i zarządzanie danymi.

Pytanie 31

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

A. Barwienie.
B. Progowanie.
C. Inwersja.
D. Krzywe.
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 32

Która z poniższych funkcji w języku PHP zmieni słowo „kota” na „mysz” w zdaniu „ala ma kota”?

A. replace("kota", "mysz", "ala ma kota");
B. str_replace("ala ma kota", "kota", "mysz");
C. replace("ala ma kota", "kota", "mysz");
D. str_replace( "kota", "mysz", "ala ma kota");
Wszystkie inne odpowiedzi wykazują nieporozumienia w zakresie używania funkcji zamiany tekstu w PHP. Na przykład, pierwszy wariant używa funkcji replace, która nie istnieje w standardowej bibliotece PHP. W PHP funkcja do zamiany ciągów znaków to str_replace, co oznacza, że taka odpowiedź nie może być prawidłowa. Z kolei drugi wariant również błędnie stosuje funkcję replace, ale dodatkowo zamienia argumenty – pierwszy argument powinien być tym, co zamieniamy, a nie tym, co jest zmieniane. Użycie str_replace z nieodpowiednią kolejnością argumentów prowadziłoby do niespodziewanych rezultatów. Natomiast trzecia odpowiedź podaje argumenty w prawidłowej kolejności, jednak również używa nieistniejącej funkcji replace, co czyni ją błędną. Typowe błędy myślowe, które mogą prowadzić do takich niepoprawnych wniosków, to nieprawidłowe rozumienie syntaktyki funkcji oraz mylenie istniejących funkcji z nieistniejącymi. Ważne jest zrozumienie, że w PHP musimy korzystać z dokumentacji, aby upewnić się, że używamy odpowiednich funkcji i argumentów, co jest kluczowe dla prawidłowego działania aplikacji. Niezrozumienie tych podstaw może prowadzić do frustracji i trudności w programowaniu.

Pytanie 33

Jakie polecenie pozwala na dodanie kolumny zadaniekompletne do tabeli zadania?

A. INSERT INTO zadania VALUES zadaniakompletne
B. CREATEINDEX zadania ADD COLUMN zadaniekompletne int
C. ADD COLUMN zadaniekompletne WITH zadania
D. ALTER TABLE zadania ADD COLUMN zadaniekompletne int
Odpowiedź 'ALTER TABLE zadania ADD COLUMN zadaniekompletne int' jest rzeczywiście na miejscu. To polecenie ALTER TABLE to standardowy sposób na zmiany w tabelach w SQL. Dzięki niemu możemy dodawać, usuwać czy zmieniać kolumny, a także wprowadzać różne ograniczenia. W tym przypadku dodajemy nową kolumnę 'zadaniekompletne', która będzie przyjmować wartości całkowite (int). Fajnym przykładem zastosowania tego polecenia może być śledzenie postępu zadań w projekcie. Kolumna 'zadaniekompletne' mogłaby oznaczać, czy zadanie jest skończone (np. 0 dla nieukończonego, 1 dla ukończonego). Zawsze warto pomyśleć o tym, jak takie zmiany mogą wpłynąć na istniejące dane oraz aplikacje korzystające z tej tabeli, żeby nie narazić się na różne problemy z danymi.

Pytanie 34

Jakie polecenie w CSS wykorzystuje się do dołączenia zewnętrznego arkusza stylów?

A. import
B. open
C. include
D. require
Wszystkie pozostałe opcje nie są poprawnymi poleceniami CSS do załączania zewnętrznych arkuszy stylów. 'Open' nie jest uznawanym poleceniem w kontekście CSS; nie ma takiej funkcjonalności, co czyni tę odpowiedź niewłaściwą. 'Require' to termin często używany w kontekście programowania, szczególnie w językach takich jak Ruby, ale nie ma zastosowania w CSS i nie służy do włączania stylów. Wreszcie, 'include' również nie jest zastosowaniem w CSS. Choć może być używane w innych językach programowania i systemach szablonów do włączania plików, w kontekście CSS nie odnosi się do żadnej znanej funkcji. Zrozumienie tych terminów jest kluczowe, ponieważ pomaga odróżnić znaczenie i zastosowanie terminologii w różnych językach oraz środowiskach programistycznych. Niezrozumienie różnicy między tymi terminami może prowadzić do błędów w kodowaniu i problemów z organizacją stylów, co z kolei może wpływać na wydajność oraz zarządzanie projektami webowymi.

Pytanie 35

W języku PHP operator do wyznaczania reszty z dzielenia to:

A. %
B. &
C. #
D. @
Operatorem reszty z dzielenia w języku PHP jest znak procenta (%). Umożliwia on obliczenie reszty z dzielenia dwóch liczb całkowitych. Na przykład, jeśli zastosujemy wyrażenie "5 % 2", wynikiem będzie "1", ponieważ 5 dzieli się przez 2 z resztą 1. Operator ten jest niezwykle przydatny w wielu kontekstach programistycznych, takich jak algorytmy, które wymagają określenia, czy liczba jest parzysta czy nie. W takim przypadku, używając wyrażenia "if ($number % 2 == 0)", możemy łatwo sprawdzić, czy liczba jest parzysta. Ponadto, operator % jest często używany w pętlach do określenia, co pewne działania powinny być wykonywane co n-ty cykl, co jest szczególnie przydatne w grach i aplikacjach interaktywnych. Stosowanie operatora reszty z dzielenia jest zgodne z najlepszymi praktykami programistycznymi, ponieważ umożliwia efektywne i czytelne rozwiązania w kodzie.

Pytanie 36

Jaką wartość w formacie RGB będzie miała barwa oznaczona kodem heksadecymalnym: #1510FE?

A. rgb(21, 16, 254)
B. rgb(15, 10, FE)
C. rgb(21, 16, 255)
D. rgb(21, 16, FE)
Wartości RGB w heksadecymalnym nie zawsze są oczywiste i często trzeba je przeliczać. Odpowiedzi rgb(15, 10, FE) i rgb(21, 16, 255) nie są do końca poprawne, bo źle zinterpretowano wartości z formatu hex. W pierwszym przypadku użyto dobrego formatu, ale liczby 15 i 10 zostały źle przeliczone na dziesiętny. '15' z hex to 21, '10' to 16, więc to jest ok, ale 'FE' powinno dać 254, a nie zostać jako 'FE' lub przeliczone na 255. W drugiej błędnej odpowiedzi, pamiętaj, że wartości RGB muszą się mieścić w przedziale 0-255, a przeliczenie 'FE' na 255 to duża pomyłka. Często się zdarza, że ludzie pomijają te obliczenia i przyjmują wartości hex bez konwersji, co powoduje zamieszanie w kolorach w projektach graficznych i aplikacjach. Zrozumienie przeliczenia heksadecymalnych wartości na RGB to klucz do tworzenia fajnych wizualizacji.

Pytanie 37

Zgodnie z zasadami ACID, odnoszącymi się do realizacji transakcji, wymóg trwałości (ang. durability) oznacza, iż

A. w sytuacji naruszenia spójności bazy danych transakcja usuwa tabele z kluczami obcymi
B. transakcja może, w określonych okolicznościach, zostać podzielona na dwa niezależne etapy
C. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od zdarzeń, które nastąpią po jej zakończeniu
D. podczas realizacji transakcji dane mogą być zmieniane przez inne transakcje
Pierwsza odpowiedź sugeruje, że transakcje mogą być dzielone na niezależne etapy, co odnosi się do fragmentacji transakcji lub transakcji rozproszonych. Jednakże, w kontekście ACID, trwałość nie odnosi się do sposobu wykonania transakcji, ale do zapewnienia, że zatwierdzone zmiany są trwałe. Druga odpowiedź wskazuje na możliwość modyfikacji danych przez inne transakcje podczas wykonywania jednej z nich. To również jest sprzeczne z zasadą izolacji (ang. isolation) w ramach ACID, która zapewnia, że transakcje są przeprowadzane w sposób, który uniemożliwia ich wzajemne zakłócanie. Tylko po zakończeniu transakcji, zmiany są widoczne dla innych transakcji. Ostatnia odpowiedź sugeruje, że w przypadku naruszenia spójności bazy danych, transakcja może usunąć tabele z kluczami obcymi. Taki mechanizm nie jest zgodny z wymaganiami ACID, ponieważ spójność jest jednym z fundamentalnych zasad, które powinny być zachowane, a usunięcie tabel naruszyłoby integralność danych. Dlatego odpowiedzi te nie spełniają definicji trwałości w kontekście ACID.

Pytanie 38

Na podstawie przypisania wartości do zmiennych zapisanych w języku PHP można stwierdzić, że

$zmienna1 = 15;
$zmienna2 = "15";
$zmienna3 = (string) $zmienna1;
A. zmienna1 i zmienna2 są tego samego typu.
B. zmienna2 i zmienna3 są tego samego typu.
C. Wszystkie zmienne są tego samego typu.
D. zmienna1 i zmienna3 są tego samego typu.
Gratulacje! Wybrałeś poprawną odpowiedź, czyli zmienna2 i zmienna3 są tych samych typów. W kodzie PHP wartość zmiennej1 była liczbą całkowitą (int), natomiast wartość zmiennej2 była ciągiem znaków (string). Zmienna3 natomiast była wynikiem rzutowania zmiennej1 na typ string. Stąd wynika, że zmienna2 i zmienna3 są obie typu string. Rzutowanie to operacja konwersji jednego typu danych na inny, co jest powszechną praktyką w programowaniu. Używane jest, na przykład, kiedy chcemy porównać dwa różne typy danych lub chcemy je połączyć. Pamiętaj jednak, że PHP jest językiem o dynamicznych typach, co oznacza, że typ zmiennej może ulec zmianie w trakcie wykonania skryptu. Dlatego zawsze warto mieć na uwadze typy zmiennych, z którymi pracujesz.

Pytanie 39

W przedstawionej na rysunku relacji pole AutorID znajdujące się w tabeli ksiazki jest kluczem

Ilustracja do pytania
A. obcym.
B. kandydującym.
C. sztucznym.
D. podstawowym.
Na tym przykładzie bardzo dobrze widać, jak łatwo pomylić różne rodzaje kluczy w relacyjnej bazie danych. W tabeli ksiazki pole AutorID wygląda jak zwykła kolumna z liczbą, ale jego sens wynika dopiero z relacji z tabelą autorzy. To pole nie identyfikuje jednoznacznie rekordu książki, więc nie może być kluczem podstawowym. Kluczem podstawowym jest tu IDKsiazki, bo to ono służy do unikalnego oznaczania każdego wiersza z książką. Typowy błąd myślowy polega na tym, że skoro AutorID też jest liczbą i też wygląda jak identyfikator, to ktoś uznaje go za klucz podstawowy lub kandydujący. Tymczasem klucz kandydujący to taki, który mógłby być kluczem podstawowym, czyli musi gwarantować unikalność. AutorID tej cechy nie ma – jeden autor może mieć wiele książek, więc ta wartość powtarza się w wielu wierszach. Dlatego nie spełnia warunku unikalności i odpada jako kandydat. Czasem pojawia się też skojarzenie z kluczem sztucznym, bo pola typu ID są często tworzone sztucznie, np. jako auto_increment. Klucz sztuczny to jednak pojęcie opisujące sposób tworzenia identyfikatora w tabeli, a nie jego rolę w relacji między tabelami. Sztuczny (surrogate) może być np. IDKsiazki czy IDAutor – liczba bez znaczenia biznesowego, używana tylko jako identyfikator. AutorID w tabeli ksiazki nie jest nowym sztucznym kluczem, tylko przechowywaniem wartości z innej tabeli. Jego podstawowa funkcja to łączenie tabel, czyli właśnie rola klucza obcego. Z mojego doświadczenia warto zawsze zadać sobie pytanie: „czy to pole jednoznacznie identyfikuje wiersz w tej tabeli, czy tylko wskazuje na wiersz w innej tabeli?”. Jeśli to drugie, to mówimy o kluczu obcym, a nie o kluczu podstawowym, kandydującym czy sztucznym. Taka prosta mentalna checklista bardzo pomaga przy projektowaniu schematów i unikaniu nieporozumień w nazewnictwie i projektowaniu relacji.

Pytanie 40

Jakim słowem kluczowym można zainicjować zmienną w JavaScript?

A. instanceof
B. variable
C. var
D. new
W języku JavaScript, deklaracja zmiennej przy użyciu słowa kluczowego 'var' jest jednym z podstawowych i fundamentalnych aspektów programowania. Słowo kluczowe 'var' umożliwia tworzenie zmiennych, które mogą przechowywać wartości zarówno typu prymitywnego, jak i obiektowego. Wartością dodaną użycia 'var' jest to, że zmienne zadeklarowane w ten sposób mają zasięg funkcji, co oznacza, że są dostępne w obrębie funkcji, w której zostały zadeklarowane, jak również w zasięgu globalnym, jeśli zostały zdefiniowane poza funkcją. Przykład użycia 'var': var liczba = 10; zmienna 'liczba' jest teraz dostępna w obrębie całej funkcji. Warto również zauważyć, że w nowszych standardach JavaScript, takich jak ECMAScript 6, wprowadzono dodatkowe słowa kluczowe takie jak 'let' i 'const', które oferują bardziej precyzyjny zasięg blokowy i zwiększają bezpieczeństwo kodu. 'Var' pozostaje jednak ważnym elementem do zrozumienia dla każdego programisty JavaScript, ponieważ jest fundamentem, na którym opiera się wiele starszych i nadal używanych skryptów.