Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 22 kwietnia 2026 14:48
  • Data zakończenia: 22 kwietnia 2026 15:00

Egzamin zdany!

Wynik: 28/40 punktów (70,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

Jakie typy danych w języku C++ służą do reprezentacji liczb zmiennoprzecinkowych?

A. double, short
B. float, double
C. float, long
D. double, bool
Odpowiedź 'float, double' jest poprawna, ponieważ w języku C++ to właśnie te dwa typy danych są używane do reprezentacji liczb rzeczywistych. Typ 'float' (zmienna pojedynczej precyzji) przechowuje liczby rzeczywiste w formacie zmiennoprzecinkowym, co oznacza, że może reprezentować liczby z częściami dziesiętnymi, ale z ograniczoną precyzją – zazwyczaj do 7 miejsc znaczących. Z kolei typ 'double' (zmienna podwójnej precyzji) oferuje znacznie większą precyzję, umożliwiając reprezentację do 15 miejsc znaczących. Stosowanie tych typów jest kluczowe w kontekście obliczeń naukowych, inżynieryjnych oraz wszędzie tam, gdzie precyzyjne operacje na liczbach rzeczywistych są niezbędne, na przykład w obliczeniach dotyczących grafiki komputerowej czy symulacji fizycznych. C++ przestrzega standardów IEEE 754 dla reprezentacji liczb zmiennoprzecinkowych, co sprawia, że te typy danych są zgodne z innymi językami programowania i technologiami. Dlatego wybór 'float' i 'double' jest zgodny z najlepszymi praktykami programistycznymi, które priorytetowo traktują zarówno wydajność, jak i dokładność obliczeń.

Pytanie 2

Jaką rolę pełni funkcja PHP o nazwie mysql_num_rows()?

A. zwraca ilość wierszy znajdujących się w rezultacie zapytania
B. zwraca następny rekord z wynikami zapytania
C. numeruje rekordy w bazie danych
D. zwraca rekord o numerze podanym w argumencie funkcji
Funkcja mysql_num_rows() jest fundamentalnym narzędziem w interakcji z bazami danych w PHP, służącym do zwrócenia liczby wierszy w zestawie wyników zapytania. W kontekście programowania, jej zastosowanie jest kluczowe, gdy chcemy ocenić, czy zapytanie zwróciło jakiekolwiek dane. Przykładowo, jeśli wykonujemy zapytanie do bazy danych w celu pobrania listy użytkowników i chcemy sprawdzić, czy tabela zawiera jakiekolwiek rekordy, użycie mysql_num_rows() pozwala na łatwą i efektywną weryfikację. W praktyce, często łączy się tę funkcję z innymi, takimi jak mysql_query() w celu uzyskania wyników zapytania, a następnie sprawdzenia ich liczby. W związku z tym, dobre praktyki sugerują, aby po każdym zapytaniu, które może zwrócić wiele wyników, stosować tę funkcję do walidacji wyniku. Należy pamiętać, że mysql_num_rows() działa tylko na wynikach zapytań SELECT i nie jest użyteczna w przypadku innych typów operacji na bazach danych.

Pytanie 3

W PHP do zapisywania informacji w pliku służy funkcja

A. freadfile()
B. fgets()
C. fputs()
D. fopen()
Analizując inne funkcje wymienione w pytaniu, można zauważyć, że każda z nich pełni inną rolę w kontekście operacji na plikach. fgets() służy do odczytywania linii tekstu z otwartego pliku, co sprawia, że jest całkowicie nieodpowiednia do zapisu danych. Użytkownicy mogą myśleć, że skoro fgets() dotyczy plików, to może również być używana do ich modyfikacji, co jest błędnym założeniem, gdyż funkcja ta nie ma możliwości zapisu. Z kolei fopen() jest używana do otwierania plików, a nie do zapisywania. Chociaż jest to pierwsza czynność przed zapisaniem danych, sama fopen() nie wykonuje operacji zapisu. Użytkownicy mogą mylić otwieranie pliku z jego zapisaniem, co prowadzi do nieporozumienia w zakresie operacji na plikach. freadfile() natomiast jest przeznaczona do odczytu zawartości pliku i jej wyświetlenia, co również czyni tę funkcję nieodpowiednią do zapisu. Wszelkie nieporozumienia związane z tymi funkcjami mogą wynikać z braku zrozumienia ich podstawowych zastosowań i funkcji w PHP. Aby uniknąć takich pomyłek, ważne jest, aby podczas nauki programowania w PHP szczegółowo zaznajomić się z dokumentacją oraz przykładami zastosowania każdej funkcji, co pomoże w lepszym zrozumieniu, jak prawidłowo manipulować plikami.

Pytanie 4

W każdej iteracji pętli wartość aktualnego elementu tablicy jest przypisywana do zmiennej, a wskaźnik tablicy jest przesuwany o jeden, aż do ostatniego elementu tablicy. Czy to zdanie odnosi się do instrukcji?

A. while
B. for
C. next
D. foreach
Odpowiedzi takie jak 'for', 'next' oraz 'while' mają swoje specyficzne zastosowania w kontekście iteracji, ale nie są w pełni dostosowane do opisanego zachowania w pytaniu. Instrukcja 'for' wymaga zdefiniowania zmiennych kontrolnych, co wiąże się z ręcznym zarządzaniem indeksami. Kiedy wykorzystujemy pętlę 'for', musimy samodzielnie określić warunki początkowe, warunki kontynuacji oraz sposób inkrementacji, co może prowadzić do błędów, zwłaszcza w kontekście tablic. Z kolei 'next' nie jest samodzielną konstrukcją w wielu językach programowania, a jego użycie jest często związane z iteracją po kolekcjach, ale nie definiuje pętli jako takiej. Instrukcja ta działa w kontekście iteratora, co czyni ją mniej elastyczną i bardziej złożoną w użyciu dla prostych iteracji po tablicach. Co więcej, 'while' również wymaga manualnego zarządzania warunkami zakończenia pętli, co oznacza, że programista musi samodzielnie kontrolować zmienną, która decyduje o zakończeniu iteracji. To znowu zwiększa ryzyko błędów związanych z granicami tablicy oraz niewłaściwym przypisaniem wartości. Każda z tych metod ma swoje miejsce w programowaniu, jednak nie są one tak optymalne i wygodne jak 'foreach', który automatycznie zarządza iteracją po elementach kolekcji, co czyni ten proces znacznie bardziej przejrzystym i mniej podatnym na błędy.

Pytanie 5

Aby strona WWW była responsywna, należy między innymi definiować

A. rozmiary obrazów w procentach.
B. jedynie czcionki bezszeryfowe.
C. rozmiary obrazów wyłącznie w pikselach.
D. układ strony wyłącznie za pomocą tabel.
Temat responsywności bardzo często jest mylony z pojedynczymi trikami typu „użyj takiej czcionki” albo „narysuj stronę w tabeli i będzie działać wszędzie”. Niestety to tak nie działa. Responsywność polega na tym, żeby układ i wszystkie elementy strony płynnie dopasowywały się do różnych szerokości i rozdzielczości ekranów: od smartfona, przez tablet, po duży monitor. Podstawą są elastyczne jednostki, media queries w CSS oraz przemyślana struktura HTML. Pomysł, że wystarczy stosować jedynie czcionki bezszeryfowe, nie ma związku z responsywnością jako taką. Wybór fontu to bardziej kwestia czytelności i estetyki interfejsu. Oczywiście fonty bezszeryfowe typu Roboto czy Open Sans często wyglądają lepiej na ekranach, ale sama zmiana kroju pisma nie spowoduje, że layout zacznie się dopasowywać do szerokości okna. To typowy błąd myślowy: mylenie „nowoczesnego wyglądu” z „responsywnym zachowaniem”. Strona może być wizualnie nowoczesna, a jednocześnie kompletnie nierespnsywna. Drugie nieporozumienie to projektowanie układu strony wyłącznie za pomocą tabel. Tabele nadają się do prezentowania danych tabelarycznych, ale od lat są uznawane za złą praktykę przy budowie layoutu. Trudno je elastycznie przełamywać na mniejszych ekranach, są mało semantyczne i nie współpracują dobrze z technologiami asystującymi. Standardy W3C i dobre praktyki front-endu mówią jasno: do układu używamy CSS (flexbox, grid), a nie tabel. Strona z layoutem na tabelach będzie raczej sztywna i problematyczna w utrzymaniu, niż responsywna. Kolejny częsty błąd to definiowanie rozmiarów obrazów wyłącznie w pikselach. Sztywne wartości typu width: 800px sprawiają, że obraz ma identyczną szerokość niezależnie od urządzenia. Na dużym ekranie może wyglądać okej, ale na telefonie taki obraz jest po prostu za szeroki, powoduje poziomy scroll albo wymusza skalowanie całej strony. Responsywność wymaga unikania takich sztywnych wartości i zastępowania ich jednostkami względnymi, jak procenty, vw czy elastyczne maksymalne szerokości. Gdy ktoś upiera się przy pikselach, zwykle wynika to z przyzwyczajenia z ery statycznych stron i braku zrozumienia, jak działa współczesny CSS. Kluczowe jest myślenie w kategoriach „jak element ma się zachowywać przy różnych szerokościach”, a nie „ile dokładnie pikseli ma mieć zawsze i wszędzie”.

Pytanie 6

Co można powiedzieć o stylu hiperłącza na podstawie opisu CSS, zakładając, że żadne inne style nie zostały zdefiniowane?

a:link {
  color: green;
  text-decoration: none;
}

a:hover {
  color: red;
  text-decoration: underline;
}
A. Tekst odwiedzonego hiperłącza jest koloru czerwonego.
B. Hiperłącze jest zawsze podkreślone.
C. Gdy hiperłącze jest nieodwiedzone, jego tekst jest koloru niebieskiego z podkreśleniem.
D. Gdy kursor znajdzie się na obszarze hiperłącza, pojawia się podkreślenie i tekst przyjmuje kolor czerwony.
Twoja odpowiedź jest poprawna. W przypadku hiperłącza, w momencie, gdy kursor znajduje się na obszarze hiperłącza, pojawia się podkreślenie i tekst przyjmuje kolor czerwony. Jest to efekt zastosowania stylu CSS w stanie 'hover'. Styl ten umożliwia dynamiczną zmianę wyglądu elementu, kiedy kursor myszy znajduje się nad nim. Jest to praktyka powszechnie stosowana w celu zwiększenia użyteczności i interaktywności stron internetowych. Dobrą praktyką jest również zapewnienie kontrastu między kolorem tła a tekstem dla lepszej czytelności. W tym przypadku, kolor tekstu zmienia się na czerwony, co zapewnia wyraźny kontrast i zwraca uwagę użytkownika. Równocześnie dodanie podkreślenia jest dodatkowym wizualnym wskaźnikiem, że dany element jest hiperłączem. Zastosowanie takiego stylu pozwala na intuicyjne i efektywne poruszanie się po stronie internetowej.

Pytanie 7

Wskaż zapis warunku w języku JavaScript, który ma na celu sprawdzenie, czy spełniony jest przynajmniej jeden z poniższych przypadków:
1) dowolna liczba naturalna a jest liczbą trzycyfrową
2) dowolna liczba całkowita b ma wartość ujemną

A. ((a > 99) && (a < 1000)) || (b < 0)
B. ((a > 99) || (a < 1000)) || (b < 0)
C. ((a > 99) || (a < 1000)) && (b < 0)
D. ((a > 99) && (a < 1000)) && (b < 0)
Odpowiedź ((a > 99) && (a < 1000)) || (b < 0) jest poprawna, ponieważ spełnia wymagania dotyczące sprawdzenia dwóch warunków. Pierwsza część warunku, czyli (a > 99) && (a < 1000), precyzyjnie weryfikuje, czy liczba 'a' jest trzycyfrowa. Wartości, które spełniają ten warunek, to liczby od 100 do 999. Druga część warunku, czyli (b < 0), efektywnie sprawdza, czy liczba 'b' jest liczbą ujemną. Połączenie tych dwóch warunków za pomocą operatora logicznego OR (||) oznacza, że wystarczy, iż jeden z nich będzie prawdziwy, aby cały warunek został uznany za spełniony. To podejście jest zgodne z dobrymi praktykami programowania, gdzie klarowność i zwięzłość kodu są kluczowe, co ułatwia jego późniejsze utrzymanie. W zastosowaniach praktycznych, taki warunek mógłby być użyty w walidacji danych wejściowych, na przykład w formularzach, gdzie użytkownicy wprowadzają różne wartości, a program musi zapewnić, że przynajmniej jeden z warunków jest spełniony.

Pytanie 8

Wskaż metodę biblioteki Math języka JavaScript, która dla parametru x = 2.8 zwróci wartość 2.

A. floor(x)
B. ceil(x)
C. sqrt(x)
D. exp(x)
W tym zadaniu chodzi o dokładne zrozumienie, jak działają konkretne metody obiektu Math w JavaScript, a nie tylko o mechaniczne skojarzenie nazwy funkcji z efektem. Dla liczby x = 2.8 poprawnym wynikiem ma być 2, czyli liczba całkowita powstała przez zaokrąglenie w dół. Najczęstsze pomyłki biorą się z mylenia różnych typów zaokrągleń albo z kojarzenia nazw z innych języków czy z matematyki teoretycznej, bez sprawdzenia, co dokładnie robią w JS. Jeżeli ktoś wybiera exp(x), to zwykle wynika to z faktu, że nazwa brzmi „matematycznie” i kojarzy się z jakąś funkcją liczbową. Jednak Math.exp(x) zwraca e do potęgi x, czyli wartość funkcji wykładniczej. Dla 2.8 byłaby to liczba około 16.44, kompletnie niepowiązana z zaokrąglaniem. Ta metoda służy do obliczeń matematycznych wyższego poziomu, np. w algorytmach statystycznych czy finansowych, a nie do pracy na liczbach całkowitych. Z kolei wybór ceil(x) wynika często z mylenia pojęć „zaokrąglanie” i „obcinanie”. Math.ceil(2.8) zaokrągla zawsze w górę do najbliższej liczby całkowitej, więc wynik to 3. W praktyce ceil przydaje się np. przy obliczaniu liczby stron w paginacji, gdy chcemy mieć pewność, że ostatnia strona też się zmieści, nawet jeśli nie jest pełna. Tutaj jednak wymagane jest zejście w dół, więc ceil daje odwrotny efekt niż potrzebny. sqrt(x) to z kolei pierwiastek kwadratowy. Math.sqrt(2.8) zwróci wartość około 1.673, a więc nadal liczbę zmiennoprzecinkową. Czasem uczniowie mylą tę metodę, bo myślą, że „pierwiastek” w jakiś sposób „zmniejsza” liczbę, więc może zbliżyć ją do 2. W kontekście programowania webowego takie myślenie jest niebezpieczne – tu liczy się precyzyjna definicja tego, co robi funkcja, zgodnie ze specyfikacją ECMAScript, a nie intuicyjne skojarzenia z matematyki szkolnej. Kluczowe jest zapamiętanie różnicy: floor – zawsze w dół, ceil – zawsze w górę, round – do najbliższej liczby całkowitej, sqrt – pierwiastek, exp – funkcja wykładnicza. Dobra praktyka w JavaScripcie to zawsze sprawdzić dokumentację, gdy nie jesteśmy na 100% pewni, co robi dana metoda Math, bo drobna pomyłka przy zaokrąglaniu może później rozwalić logikę całej aplikacji, chociażby przy indeksowaniu tablic, generowaniu ID czy przy obliczeniach finansowych.

Pytanie 9

Znak <s> w HTML powoduje

A. migotanie tekstu
B. skreślenie tekstu
C. podkreślenie tekstu
D. pochylenie tekstu
Znacznik <s> w języku HTML jest używany do oznaczania tekstu, który jest przekreślony, co jest przydatne, gdy chcemy wskazać, że dana treść nie jest już aktualna lub jest nieprawidłowa. Na przykład, w dokumencie HTML możemy użyć znacznika <s> do przekreślenia starej ceny produktu, aby podkreślić, że cena została obniżona. Taki sposób prezentacji informacji jest zgodny z zasadami dostępności, ponieważ przekreślony tekst wciąż jest czytelny przez technologie asystujące, co pozwala użytkownikom na zrozumienie zmiany w kontekście treści. W praktyce zastosowanie tego znacznika może również wpłynąć na estetykę strony, eliminując potrzebę stosowania stylów CSS do osiągnięcia tego samego efektu.

Pytanie 10

W języku SQL, aby wybrać wszystkie rekordy z tabeli B, w tym część wspólną z tabelą A, należy zastosować typ związku

Ilustracja do pytania
A. A LEFT JOIN B
B. A FULL OUTER JOIN B
C. A RIGHT JOIN B
D. A INNER JOIN B
W tym pytaniu pułapka polega na tym, że łatwo pomylić pojęcie części wspólnej z całością jednego ze zbiorów. Diagram pokazuje całą tabelę B (włącznie z przecięciem z A), a nie tylko przecięcie. W SQL typ złączenia określa, z której tabeli bierzemy wszystkie rekordy, a z której tylko te pasujące. To, że widzimy też obszar wspólny, jest naturalnym efektem działania złączeń zewnętrznych, ale nie oznacza jeszcze, że chodzi o `INNER JOIN`. Jeśli ktoś wybiera `A LEFT JOIN B`, to zwykle wynika z myślenia „chcę część wspólną i coś jeszcze”, ale myli kierunek. `LEFT JOIN` gwarantuje wszystkie rekordy z **lewej** tabeli (A), a z prawej (B) tylko dopasowane. Diagram z pytania pokazuje dokładnie odwrotną sytuację: komplet danych z B, a z A tylko tam, gdzie istnieje relacja. `A LEFT JOIN B` odpowiadałoby sytuacji, gdzie podświetlony jest cały zbiór A i przecięcie, a nie B. Z kolei `A INNER JOIN B` zwróciłby wyłącznie część wspólną A∩B, czyli tylko te rekordy, które mają dopasowanie po obu stronach. Na diagramie byłby wtedy zaznaczony wyłącznie środek, a nie cały zielony obszar B. To typowy błąd: utożsamianie każdego JOIN z „częścią wspólną”. INNER JOIN jest dobry, gdy interesują nas tylko powiązane dane (np. zamówienia, które mają istniejącego klienta), ale w zadaniu wyraźnie mowa o „wszystkich rekordach z B”. `A FULL OUTER JOIN B` idzie w drugą stronę – zwraca wszystko z A **i** wszystko z B, niezależnie od tego, czy jest dopasowanie, czy nie. To byłby diagram z zaznaczonymi obiema kółkami, czyli suma zbiorów A∪B. W standardzie SQL taki typ złączenia jest opisany jako pełne złączenie zewnętrzne i stosuje się go rzadziej, np. do porównywania różnic między dwiema tabelami. Tutaj jest to za szeroki zakres danych w stosunku do pytania. Poprawne podejście wymaga więc skojarzenia, że skoro chcemy wszystkie rekordy z tabeli B, to w zapisie `A ... JOIN B` tabela B musi być po tej stronie, która jest „obowiązkowa”. Właśnie to zapewnia `RIGHT JOIN`: pełny zestaw wierszy z prawej tabeli, plus dopasowania z lewej tam, gdzie istnieją. Świadome operowanie tymi pojęciami bardzo ułatwia projektowanie zapytań raportowych i unikanie nieoczekiwanych braków lub duplikacji danych.

Pytanie 11

Znak pisarski @ jest czytany w języku angielskim jako

A. at.
B. on.
C. monkey.
D. ape.
Poprawna odpowiedź to „at”, bo właśnie tak w języku angielskim czyta się znak @. Ten znak nazywa się w terminologii technicznej „at sign” albo „commercial at”. W praktyce najczęściej spotykasz go w adresach e‑mail, np. w zapisie [email protected] czytamy to jako „user at example dot com”. W dokumentacji technicznej, w standardach internetowych (RFC dotyczących e‑maili, jak RFC 5322) i w różnych tutorialach programistycznych zawsze przyjmuje się właśnie taką wymowę i nazwę. W kontekście tworzenia stron WWW i programowania webowego dobrze jest kojarzyć zarówno nazwę znaku, jak i jego typowe zastosowanie. W HTML sam znak @ nie ma specjalnego znaczenia składniowego, ale pojawia się w treści, np. w linkach mailto: <a href="mailto:[email protected]">. W CSS czasem widzisz tzw. at‑rules, np. @media, @import, @font-face – tu też w dokumentacji wprost jest mowa o „at‑rule”. W różnych językach programowania webowego symbol @ ma różne role: w PHP oznacza operator wyciszający błędy (co zresztą jest uznawane za złą praktykę), w wielu frameworkach jest używany w szablonach (np. Blade w Laravelu: @if, @foreach), w adnotacjach czy dekoratorach w innych technologiach. Moim zdaniem warto po prostu przyzwyczaić się do angielskiej nazwy „at”, bo w pracy z dokumentacją, Stack Overflow, oficjalnymi specyfikacjami czy logami systemowymi praktycznie nikt nie używa żadnych lokalnych, zabawnych nazw. To drobny szczegół, ale w branży IT takie detale językowe bardzo ułatwiają komunikację w zespole i z klientem.

Pytanie 12

W jaki sposób zostanie uporządkowana lista, stworzona z wszystkich kolumn tabeli uczniowie, zawierająca uczniów z średnią powyżej 5, która zostanie zwrócona jako rezultat przedstawionego zapytania?

Ilustracja do pytania
A. Malejąco według parametru klasa
B. Rosnąco według parametru klasa
C. Malejąco według parametru srednia
D. Rosnąco według parametru srednia
Sortowanie listy wynikowej w SQL jest kluczową operacją, wpływającą na prezentację danych użytkownikowi końcowemu. W kontekście przedstawionego pytania, kluczowym elementem było zrozumienie różnicy między sortowaniem rosnącym a malejącym. Odpowiedzi sugerujące sortowanie według parametru średnia wskazują na brak uwzględnienia kluczowej części zapytania dotyczącej klauzuli ORDER BY, która wyraźnie określała sortowanie według klasy. Błędne zrozumienie kierunku sortowania, czyli rosnąco lub malejąco, wskazuje na pominięcie znaczenia DESC w zapytaniu. DESC to skrót od descending, co oznacza porządek malejący, z kolei jej brak domyślnie oznaczałby sortowanie rosnące (ASC). SQL jest językiem, w którym precyzja składni ma kluczowe znaczenie, a drobne różnice w poleceniach mogą prowadzić do odmiennych wyników. Wybierając parametry sortowania, dobrze jest zrozumieć, jak wpływają one na sposób prezentacji danych. Częstym błędem jest nieuwzględnienie priorytetu sortowania, który w praktyce projektowania baz danych może mieć wpływ na wydajność zapytań, zwłaszcza gdy bazy danych zawierają duże ilości danych. Dlatego też, aby uniknąć typowych błędów, warto dokładnie analizować każde polecenie i jego wpływ na wynikowy zestaw danych.

Pytanie 13

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

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

Pytanie 14

W CSS określono styl paragrafu, który nada mu następujące właściwości:

background-color: red;
color: blue;
margin: 40px;
A. tło czerwone, kolor tekstu niebieski, marginesy zewnętrzne na poziomie 40 px
B. tło niebieskie, kolor tekstu czerwony, marginesy zewnętrzne na poziomie 40 px
C. tło czerwone, kolor tekstu niebieski, marginesy wewnętrzne na poziomie 40 px
D. tło niebieskie, kolor tekstu czerwony, marginesy wewnętrzne na poziomie 40 px
Poprawna odpowiedź wskazuje na tło czerwone, kolor tekstu niebieski oraz marginesy zewnętrzne ustawione na 40 px. W deklaracji CSS, przypisanie 'background-color: red;' skutkuje czerwonym tłem dla elementu, co jest zgodne z zasadami oznaczania kolorów w CSS, które pozwalają na zastosowanie nazw kolorów, kodów hex czy rgb. 'color: blue;' ustawia kolor tekstu na niebieski, co pozwala na lepszą czytelność tekstu na czerwonym tle. Z kolei 'margin: 40px;' definiuje marginesy zewnętrzne, co oznacza, że odległość od innych elementów na stronie wynosi 40 px. Takie praktyki są zgodne z dobrymi standardami projektowania, które sugerują stosowanie kontrastujących kolorów dla poprawy dostępności oraz przestrzeni między elementami dla lepszej struktury layoutu. Warto pamiętać, że marginesy zewnętrzne różnią się od marginesów wewnętrznych (padding), co często jest źródłem nieporozumień.

Pytanie 15

SELECT miasto, AVG(pensja) FROM pracownicy GROUP BY miasto;
Podane zapytanie wybierze:
A. nazwy miast bez powtórzeń oraz średnią pensję dla każdego z nich.
B. nazwy miast z powtórzeniami oraz sumę pensji dla każdego z nich.
C. nazwy miast bez powtórzeń oraz sumę pensji dla każdego z nich.
D. nazwy miast z powtórzeniami oraz średnią pensję dla każdego z nich.
Zapytanie z klauzulą GROUP BY i funkcją AVG bywa mylone z sumowaniem danych lub zwykłym wybieraniem rekordów jeden po drugim. W tym konkretnym przypadku bardzo łatwo pomylić średnią z sumą albo nie zauważyć, że grupowanie usuwa powtórzenia wartości w kolumnie grupującej. Warto to uporządkować. Funkcja AVG(pensja) jest klasyczną funkcją agregującą, której zadaniem jest obliczenie średniej arytmetycznej z wartości w danej grupie rekordów. Nie dodaje ona wszystkich pensji „na kupę” tak jak SUM, tylko dzieli ich sumę przez liczbę rekordów w grupie. Jeżeli ktoś spodziewa się sumy, to patrzy bardziej w stronę SUM(pensja), a nie AVG(pensja). To jest typowy błąd: widzimy funkcję agregującą i automatycznie myślimy „to pewnie suma”, bez dokładnego przeczytania nazwy funkcji. Druga kwestia to powtórzenia miast. Klauzula GROUP BY miasto mówi silnikowi bazy danych: pogrupuj wszystkie wiersze według wartości w kolumnie miasto. W efekcie wszystkie rekordy z tym samym miastem są łączone w jedną grupę. Dla każdej takiej grupy zwracany jest dokładnie jeden wiersz wyniku. To oznacza, że w rezultacie zapytania nie ma powtórzonych nazw miast, nawet jeśli w tabeli jest tysiąc pracowników z Warszawy czy Krakowa. Częsty błąd myślowy polega na przenoszeniu intuicji z prostego SELECT bez GROUP BY, gdzie miasto faktycznie się powtarza, na zapytanie z agregacją, gdzie logika jest już inna. W odpowiedziach, które sugerują „z powtórzeniami”, ignorowane jest działanie GROUP BY. Z kolei odpowiedzi mówiące o „sumie pensji” mylą AVG z SUM, co w praktyce może prowadzić do bardzo poważnych błędów analitycznych – wyobraź sobie raport płacowy, w którym zamiast średniej ktoś pokaże sumę wynagrodzeń i na tej podstawie będzie porównywał miasta. Moim zdaniem dobrą praktyką jest zawsze czytanie zapytania fragment po fragmencie: najpierw jakie kolumny są wybierane, potem jakie funkcje agregujące są użyte, a na końcu po czym następuje grupowanie. Taka metoda pozwala uniknąć właśnie takich nieporozumień i lepiej rozumieć, co dokładnie zwróci baza danych, co jest kluczowe przy pracy z realnymi systemami produkcyjnymi.

Pytanie 16

Jaką relację w projekcie bazy danych powinno się ustalić pomiędzy tabelami przedstawionymi na rysunku, przy założeniu, że każdy klient sklepu internetowego złoży co najmniej dwa zamówienia?

Ilustracja do pytania
A. 1:n, gdzie 1 jest po stronie Klienta, a wiele po stronie Zamówienia
B. n:n
C. 1:n, gdzie 1 znajduje się po stronie Zamówienia, a wiele po stronie Klienta
D. 1:1
Relacja 1:n, gdzie 1 jest po stronie Klienta, a wiele po stronie Zamówienia, oznacza, że każdy klient może mieć wiele zamówień, ale każde zamówienie jest powiązane dokładnie z jednym klientem. To podejście odpowiada rzeczywistości większości sklepów internetowych, gdzie klienci wielokrotnie dokonują zamówień. Projektując bazę danych zgodnie z tą relacją, stosujemy klucz obcy w tabeli Zamówienia, który odwołuje się do klucza głównego w tabeli Klient. Jest to zgodne z dobrymi praktykami w projektowaniu baz danych, które zalecają minimalizowanie redundancji i zapewnienie integralności danych. Praktyczne zastosowanie tego modelu umożliwia łatwe śledzenie historii zamówień klientów, co jest kluczowe dla analizy sprzedaży i zarządzania relacjami z klientami. Relacja 1:n jest jedną z najczęściej stosowanych w modelowaniu danych, co potwierdza jej uniwersalność i skuteczność w różnych systemach informatycznych, od sklepów internetowych po systemy zarządzania zasobami ludzkimi.

Pytanie 17

Instrukcja REVOKE SELECT ON nazwa1 FROM nazwa2 w języku SQL pozwala na

A. przyznawanie praw do tabeli
B. odebranie uprawnień danemu użytkownikowi
C. przyznawanie uprawnień z użyciem ustalonego schematu
D. usunięcie użytkownika z bazy danych
Polecenie REVOKE SELECT ON w języku SQL jest używane do odbierania uprawnień do wykonywania operacji SELECT na określonej tabeli lub widoku dla konkretnego użytkownika lub grupy użytkowników. W przypadku użycia tej komendy, administrator bazy danych lub właściciel obiektu wskazuje, że dany użytkownik nie ma już prawa do odczytu danych z określonej tabeli, co skutkuje zablokowaniem dostępu do informacji w tej tabeli. Przykładowo, jeśli mamy tabelę 'Pracownicy' i użytkownika 'JanKowalski', polecenie REVOKE SELECT ON Pracownicy FROM JanKowalski skutkuje tym, że Jan Kowalski nie będzie mógł wykonywać zapytań typu SELECT na tej tabeli. Ważne jest, aby zrozumieć, że polecenie to nie usuwa użytkownika z bazy danych ani nie zmienia struktury bazy, a jedynie modyfikuje uprawnienia dostępu. W kontekście SQL, standardy takie jak ANSI SQL definiują sposób, w jaki uprawnienia mogą być przyznawane i odbierane, co sprawia, że umiejętność zarządzania uprawnieniami jest niezbędna dla każdego administrującego bazą danych.

Pytanie 18

Do czego służy funkcja PHP o nazwie mysql_num_rows?

A. oddawać następny rekord z wyników zapytania
B. zwracać rekord, którego numer został przekazany jako parametr funkcji
C. przyporządkować numery rekordom w bazie danych
D. podawać liczbę wierszy, które są w wynikach zapytania
Funkcja mysql_num_rows w PHP jest kluczowym narzędziem do interakcji z bazami danych MySQL, umożliwiając programistom efektywne zarządzanie danymi. Jej głównym zadaniem jest zwrócenie liczby wierszy, które zostały zwrócone w wyniku zapytania SQL. Jest to niezwykle przydatne w sytuacjach, gdy chcemy ocenić, ile rekordów spełnia określone kryteria, co może być istotne na przykład w przypadku paginacji wyników lub dynamicznego dostosowywania interfejsu użytkownika w zależności od liczby dostępnych danych. Użycie tej funkcji polega na przesłaniu do niej wskaźnika na wynik zapytania, co pozwala na bezpośrednie uzyskanie liczby wierszy bez konieczności przeszukiwania danych. Przykładowo, po wykonaniu zapytania SELECT, aby uzyskać liczbę wierszy, wystarczy użyć: $result = mysql_query('SELECT * FROM tabela'); $liczba_wierszy = mysql_num_rows($result);. Funkcja ta jest zgodna z wytycznymi dotyczącymi standardów SQL i jest szeroko stosowana w aplikacjach webowych, które wymagają efektywnego przetwarzania danych. Należy jednak pamiętać, że mysql_num_rows jest częścią przestarzałego rozszerzenia MySQL, a programiści powinni rozważyć użycie mysqli lub PDO, które oferują lepszą obsługę i bezpieczeństwo.

Pytanie 19

Który efekt został zaprezentowany na filmie?

A. Zwiększenie ostrości zdjęcia.
B. Zmiana jasności zdjęć.
C. Przenikanie zdjęć.
D. Zmniejszenie kontrastu zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 20

W tabeli Recepta, kolumny Imie i Nazwisko odnoszą się do pacjenta, na którego wystawiona jest recepta. Jaką kwerendę należy wykorzystać, aby dla każdej recepty uzyskać datę jej wystawienia oraz imię i nazwisko lekarza, który ją wystawił?

Ilustracja do pytania
A. SELECT Imie, DataWystawienia FROM Recepta JOIN Lekarz ON Recepta.Lekarz_id = Lekarz.id
B. SELECT Lekarz.Imie, Lekarz.Nazwisko, DataWystawienia FROM Recepta
C. SELECT Imie, Nazwisko, DataWystawienia FROM Recepta
D. SELECT Lekarz.Imie, Lekarz.Nazwisko, DataWystawienia FROM Recepta JOIN Lekarz ON Recepta.Lekarz_id = Lekarz.id
Wybór odpowiedzi numer 4 jest prawidłowy, ponieważ kwerenda ta skutecznie łączy tabelę Recepta z tabelą Lekarz poprzez klucz obcy Lekarz_id. W ten sposób możliwe jest uzyskanie imienia i nazwiska lekarza wystawiającego receptę oraz daty jej wystawienia. W SQL, operacja JOIN umożliwia łączenie danych z dwóch tabel na podstawie kolumn powiązanych, co jest fundamentalną zasadą w relacyjnych bazach danych. W tym przypadku klucz obcy Lekarz_id w tabeli Recepta odnosi się do klucza głównego id w tabeli Lekarz. Dzięki temu możemy pobrać informacje o lekarzu wystawiającym receptę, co jest powszechną praktyką w aplikacjach medycznych i systemach zarządzania informacją. Stosowanie JOIN jest kluczowe w projektowaniu efektywnych i skalowalnych baz danych, co pozwala na utrzymanie danych w uporządkowanej i znormalizowanej formie zgodnie z zasadami normalizacji baz danych. Taka struktura bazy danych umożliwia łatwe zarządzanie i aktualizowanie informacji oraz minimalizuje redundancję danych, co jest istotne dla zapewnienia spójności i integralności danych w systemie.

Pytanie 21

Globalne zmienne do przechowywania informacji o ciasteczkach oraz sesjach: $_COOKIE oraz $_SESSION stanowią część języka

A. Perl
B. PHP
C. C#
D. JavaScript
Odpowiedź PHP jest prawidłowa, ponieważ $_COOKIE i $_SESSION to superglobalne tablice w tym języku, które są wykorzystywane do zarządzania danymi sesyjnymi oraz ciasteczkami. $_COOKIE umożliwia przechowywanie danych na komputerze użytkownika w formie ciasteczek, które mogą być odczytywane przez serwer przy każdym żądaniu. Ciasteczka mogą być używane do identyfikacji użytkownika, zapamiętywania preferencji lub sesji. Przykładowe zastosowanie to np. pamiętanie, czy użytkownik jest zalogowany oraz jakie preferencje dotyczące wyświetlania treści ustawił. Z kolei $_SESSION jest używane do przechowywania danych sesji na serwerze, co zapewnia większe bezpieczeństwo, ponieważ dane nie są również dostępne po stronie klienta. Przykładem zastosowania $_SESSION jest przechowywanie informacji o użytkowniku, takich jak jego identyfikator, które mogą być używane do autoryzacji w różnych częściach aplikacji. W obu przypadkach, przy użyciu tych mechanizmów, programiści muszą pamiętać o optymalizacji wydajności oraz przestrzeganiu zasad ochrony prywatności użytkowników, co jest kluczowe w kontekście aktualnych regulacji dotyczących danych osobowych.

Pytanie 22

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

A. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od zdarzeń, które nastąpią po jej zakończeniu
B. transakcja może, w określonych okolicznościach, zostać podzielona na dwa niezależne etapy
C. podczas realizacji transakcji dane mogą być zmieniane przez inne transakcje
D. w sytuacji naruszenia spójności bazy danych transakcja usuwa tabele z kluczami obcymi
Trwałość (ang. durability) to jedno z kluczowych wymagań modelu ACID, które zapewnia, że dane zatwierdzone przez transakcję pozostają dostępne i chronione przed utratą, nawet w przypadku wystąpienia awarii systemu. Oznacza to, że po pomyślnym zakończeniu transakcji, jej efekty są trwale zapisywane w bazie danych i nie mogą zostać utracone, niezależnie od warunków zewnętrznych, takich jak przerwy w zasilaniu czy błędy systemowe. W praktyce oznacza to, że każda transakcja, która uzyskała status 'zatwierdzonej' (ang. committed), powinna być zapisana w trwały sposób, zazwyczaj z wykorzystaniem mechanizmów takich jak logi transakcyjne. Na przykład, w systemach bazodanowych takich jak PostgreSQL czy Oracle, po zakończeniu transakcji, zmiany są rejestrowane w logach, co pozwala na ich odtworzenie w przypadku awarii. Z perspektywy standardów, wymaganie trwałości jest nieodłącznym elementem zapewnienia integralności danych, które jest kluczowe w systemach obsługujących transakcje finansowe, gdzie możliwość przywrócenia stanu po awarii jest niezbędna.

Pytanie 23

Jak wygląda prawidłowy zapis samozamykającego się znacznika w zgodzie ze standardem języka XHTML, który odpowiada za łamanie linii?

A. <br />
B. <br> </br>
C. </br/>
D. </ br>
Odpowiedź <br /> jest prawidłowym zapisem samozamykającego się znacznika w standardzie XHTML. XHTML, czyli eXtensible HyperText Markup Language, wymaga, aby znaczniki były poprawnie zamknięte. W przypadku znaczników, które nie mają zawartości, jak <br />, stosuje się specjalną składnię. Oznaczenie <br /> wskazuje na przełamanie linii w dokumencie HTML. Ważne jest, aby podać ukośnik przed zakończeniem znacznika, co jest zgodne z zasadami XHTML. Przykładowo, w dokumentach XHTML, prawidłowe użycie <br /> może wyglądać tak: <p>Tekst przed łamaniem linii.<br />Tekst po łamaniu linii.</p>. Przestrzeganie tych zasad zapewnia, że dokumenty będą poprawnie interpretowane przez przeglądarki oraz będą zgodne z standardami W3C, co jest kluczowe dla zachowania wysokiej jakości kodu oraz jego dostępności.

Pytanie 24

Elementem wykorzystywanym w bazie danych do podsumowywania, prezentowania oraz drukowania danych jest

A. raport
B. zestawienie
C. formularz
D. zapytanie
Zapytanie, formularz i zestawienie, choć mogą być używane w kontekście pracy z danymi, pełnią inne funkcje niż raport. Zapytanie to instrukcja w języku zapytań, najczęściej SQL, która pozwala na pobranie określonych danych z bazy danych. Zapytania są fundamentalne dla interakcji z bazami danych, ponieważ umożliwiają użytkownikom selekcjonowanie, filtrowanie i sortowanie informacji, ale same w sobie nie dostarczają gotowych podsumowań ani analiz. Formulario to interaktywny element, który umożliwia użytkownikom wprowadzanie danych; jego głównym celem jest zbieranie informacji, a nie ich prezentacja. Użytkownicy często mylą formularze z raportami, co prowadzi do nieporozumień w zakresie ich zastosowania. Zestawienie, z kolei, może odnosić się do porównania wartości lub grup danych, ale nie jest standardowym terminem w kontekście raportów, co może powodować niejasności. Warto zrozumieć, że raporty są narzędziem do podsumowywania wyników, podczas gdy zapytania, formularze i zestawienia mają różne cele i funkcje. Kluczowa jest umiejętność rozróżniania tych elementów, aby skutecznie zarządzać danymi i prezentować je w odpowiedni sposób.

Pytanie 25

Które z poniższych stwierdzeń dotyczących klucza głównego jest poprawne?

A. W tabeli z danymi osobowymi może to być pole z nazwiskiem
B. Może przyjmować tylko wartości numeryczne
C. Jest unikalny w obrębie tabeli
D. Składa się wyłącznie z jednego pola
Koncepcje związane z kluczem podstawowym obejmują kilka podstawowych zasad, które są niezbędne do zrozumienia jego roli w bazie danych. Klucz podstawowy nie ogranicza się tylko do unikalności, ale również musi zapewniać integralność danych i być stosowany w praktyce w sposób przemyślany. Wiele osób myli klucz podstawowy z pojęciem pola, co prowadzi do błędnych wniosków, że składa się on jedynie z jednego atrybutu. W rzeczywistości klucz podstawowy może być złożony z kilku atrybutów, co jest typowe w bardziej złożonych systemach, gdzie żaden pojedynczy atrybut nie jest w stanie zapewnić unikalności. Ponadto, ograniczenie klucza podstawowego do wartości liczbowych jest mylące. Klucze podstawowe mogą mieć różne typy danych, w tym tekstowe czy alfanumeryczne, w zależności od kontekstu i wymagań aplikacji. Przykład błędnego podejścia to uznanie nazwiska za klucz podstawowy w tabeli z danymi osobowymi. Takie podejście jest problematyczne, ponieważ nazwiska mogą być powtarzalne w populacji, co skutkuje utratą unikalności – klucz podstawowy musi być jednoznaczny w obrębie danej tabeli. Przy projektowaniu baz danych stosuje się zasady normalizacji, które podkreślają znaczenie kluczy podstawowych w kontekście integralności danych oraz efektywności operacji na tych danych.

Pytanie 26

W SQL instrukcja INSERT INTO

A. modyfikuje rekordy przypisaną wartością.
B. wprowadza dane do tabeli.
C. wprowadza nową tabelę.
D. dodaje kolumny do istniejącej tabeli.
Odpowiedź 'wprowadza dane do tabeli' jest poprawna, ponieważ polecenie INSERT INTO w języku SQL służy dokładnie do tego celu - do dodawania nowych rekordów (wierszy) do istniejącej tabeli w bazie danych. W praktyce, polecenie to pozwala na wprowadzenie danych zgodnych z określoną strukturą tabeli, co oznacza, że musimy dostarczyć wartości dla odpowiednich pól. Przykład użycia polecenia INSERT INTO: 'INSERT INTO pracownicy (imie, nazwisko, wiek) VALUES ('Jan', 'Kowalski', 30);' W tym przypadku, dodawany jest nowy rekord do tabeli 'pracownicy', wskazując konkretne wartości dla kolumn 'imie', 'nazwisko' oraz 'wiek'. Zgodnie z dobrą praktyką, przed wprowadzeniem danych do tabeli warto upewnić się, że są one zgodne z definicją kolumn, aby uniknąć błędów w czasie wykonywania polecenia. Ponadto, często zaleca się stosowanie transakcji, aby mieć możliwość wycofania wprowadzonych zmian w przypadku wystąpienia błędów. INSERT INTO jest fundamentalną częścią operacji CRUD (Create, Read, Update, Delete), które są podstawą zarządzania danymi w bazach danych, a jego właściwe zrozumienie jest kluczowe dla każdego, kto pracuje z SQL.

Pytanie 27

Baza danych księgarni zawiera tabelę o nazwie książki, w której znajdują się: id, idAutor, tytul, ileSprzedanych oraz tabelę autorzy z polami: id, imie, nazwisko. Aby wygenerować raport dotyczący sprzedanych książek z tytułami i nazwiskami autorów, co należy zrobić?

A. stworzyć kwerendę wyszukującą tytuły książek
B. zdefiniować relację 1..1 pomiędzy tabelami książki i autorzy, a następnie przygotować kwerendę łączącą obie tabele
C. przygotować dwie oddzielne kwerendy: pierwszą wyszukującą tytuły książek, drugą wyszukującą nazwiska autorów
D. zdefiniować relację 1..n pomiędzy tabelami książki i autorzy, a następnie przygotować kwerendę łączącą obie tabele
Wybranie odpowiedzi, która mówi tylko o tym, żeby stworzyć kwerendę do wyszukiwania tytułów książek, to nie jest dobry pomysł, bo nie bierze pod uwagę związku między książkami a autorami. Bez połączenia tych dwóch rzeczy raport byłby niespójny i brakowałoby ważnych informacji o autorach. Co do odpowiedzi, która mówi o relacji 1..1 - to też nie jest to prawda, bo tak naprawdę w naszym przypadku autorzy mogą mieć kilka książek, więc relacja powinna być 1..n. W innym wypadku, mogłoby to wprowadzić w błąd. Dodatkowo, robienie dwóch oddzielnych kwerend to nie jest efektywne podejście, bo nie integruje danych, a to jest kluczowe, gdy chcemy mieć pełny obraz sytuacji. Łączenie danych w jednej kwerendzie za pomocą JOIN to standard w analizie baz danych i daje lepszą organizację oraz czytelność wyników.

Pytanie 28

Jakiego protokołu trzeba użyć do przesyłania plików witryny internetowej na serwer hostingowy?

A. SMTP
B. FTP
C. IRC
D. HTTP
Protokół FTP (File Transfer Protocol) jest standardowym sposobem przesyłania plików pomiędzy komputerami w sieci, co czyni go idealnym rozwiązaniem do przesyłania plików strony internetowej na serwer hostingowy. FTP pozwala na łatwe przesyłanie dużych plików, takich jak obrazy, skrypty i style, które są niezbędne do prawidłowego działania witryny. Użytkownicy mogą korzystać z różnych programów klienckich FTP, takich jak FileZilla lub WinSCP, które oferują intuicyjny interfejs graficzny umożliwiający przeciąganie i upuszczanie plików, co znacząco upraszcza cały proces. Z perspektywy bezpieczeństwa, zaleca się korzystanie z FTPS lub SFTP, które dodają warstwę szyfrowania, chroniąc przesyłane dane przed nieautoryzowanym dostępem. Przesyłanie plików za pomocą FTP jest również zgodne z najlepszymi praktykami branżowymi, które zalecają stosowanie dedykowanych protokołów do zarządzania plikami, aby zapewnić efektywność i bezpieczeństwo transferów.

Pytanie 29

Aby cofnąć uprawnienia dostępu do serwera MySQL, należy wykorzystać polecenie

A. DELETE
B. USAGE
C. REVOKE
D. GRANT
Aby odebrać prawa dostępu do serwera MySQL, używa się polecenia REVOKE. To polecenie jest kluczowe w zarządzaniu uprawnieniami użytkowników w systemie zarządzania bazą danych MySQL. REVOKE pozwala na usunięcie wcześniej przydzielonych praw dostępu do określonych zasobów, takich jak tabele, bazy danych lub inne obiekty. Przykładowo, aby odebrać prawo SELECT dla użytkownika 'janek' na tabeli 'produkty', należy użyć komendy: REVOKE SELECT ON produkty FROM 'janek'@'localhost';. Dzięki temu użytkownik 'janek' nie będzie miał możliwości wykonywania zapytań SELECT na tej tabeli. Warto zaznaczyć, że REVOKE działa w oparciu o hierarchię uprawnień, co oznacza, że można je łączyć z innymi poleceniami, aby skutecznie zarządzać dostępem. Zgodnie z dokumentacją MySQL, REVOKE jest integralną częścią systemu autoryzacji, co czyni je niezbędnym dla zapewnienia bezpieczeństwa danych w bazach danych. Użycie REVOKE jest również istotne w kontekście audytów bezpieczeństwa, gdzie konieczne jest zarządzanie dostępem do danych.

Pytanie 30

W tabeli mieszkancy, która zawiera pola id, imie, nazwisko, ulica, numer oraz czynsz (kwota całkowita), należy uzyskać informacje o osobach zamieszkujących ulicę Mickiewicza pod numerami 71, 72, 80, których czynsz nie przekracza 1000 zł. Klauzula WHERE w zapytaniu powinna wyglądać następująco

A. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000
B. WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000
C. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czynsz < 1000
D. WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR czynsz < 1000
Kiedy piszemy zapytanie SQL, klauzula WHERE powinna wyglądać tak: 'WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000'. Dlaczego to działa? Bo ta klauzula jasno określa, że interesują nas tylko mieszkańcy z ulicy Mickiewicza, mający numery 71, 72 lub 80, i którzy płacą czynsz mniejszy niż 1000 zł. Użycie AND sprawia, że wszystkie te warunki muszą być spełnione naraz, co jest naprawdę ważne. Możemy to sobie wyobrazić w kontekście zarządzania nieruchomościami, gdzie chcemy pokazać tylko wybraną grupę mieszkańców, na przykład do analizy ich sytuacji finansowej. I tak na marginesie – w SQL lepiej unikać OR, gdy chcemy dostąpić do jasno określonych danych, ponieważ może to dać nam za dużo wyników lub takie, których nie chcemy.

Pytanie 31

Efekt przedstawiony na obrazie, wykonany za pomocą edytora grafiki rastrowej, to

Ilustracja do pytania
A. grawerowanie.
B. rozmycie Gaussa.
C. pikselizacja.
D. szum RGB.
Twoja odpowiedź jest prawidłowa! Wybrany efekt to pikselizacja. Pikselizacja polega na zmniejszeniu rozdzielczości obrazu do poziomu, gdy każdy piksel staje się widoczny dla oka. Efekt ten charakteryzuje się wyraźnymi, dużymi blokami pikseli tworzącymi obraz. Jest to efekt często stosowany w grafice komputerowej, szczególnie w celu nadania grafice stylu retro. Pikselizacja była też kluczowym elementem estetyki gier wideo z lat 80. i 90., kiedy to technologiczne ograniczenia sprzętowe wymuszały korzystanie z niskiej rozdzielczości obrazu. W dzisiejszych czasach efekt pikselizacji jest często stosowany celowo, dla uzyskania określonego efektu artystycznego lub dla celów nostalgicznych. Warto jednak pamiętać, że nadmierne pikselizowanie obrazu może prowadzić do utraty szczegółów, dlatego zawsze warto dobrze przemyśleć zastosowanie tego efektu.

Pytanie 32

Która z poniższych funkcji zdefiniowanych w języku PHP oblicza sumę połowy wartości a i połowy wartości b?

A. function licz($a, $b) {return ($a/2 + $b)/2;}
B. function licz($a, $b) {return $a/2 + $b/2;}
C. function licz($a, $b) {return 2/$a + 2/$b;}
D. function licz($a, $b) {return $a/2 + $b;}
Odpowiedź jest poprawna, ponieważ funkcja 'licz' w tej formie prawidłowo oblicza sumę połowy wartości a oraz połowy wartości b. W języku PHP, operator '/' dzieli wartość po lewej stronie przez wartość po prawej, więc w tym przypadku a/2 i b/2 zwracają odpowiednio połowę a oraz połowę b. Następnie te dwie wartości są sumowane, co jest zgodne z wymaganym wynikiem. Przykład zastosowania tej funkcji może być użyty w sytuacji, gdy chcemy obliczyć średnią wartość dwóch parametrów, co jest często spotykane w obliczeniach statystycznych i analitycznych. Dobrą praktyką jest również zapewnienie, że wartości a i b są liczbami, co można osiągnąć za pomocą walidacji danych wejściowych. Zastosowanie tej funkcji w większym kontekście, na przykład w aplikacjach webowych czy systemach obliczeniowych, pokazuje jej uniwersalność i efektywność w pracy z danymi.

Pytanie 33

Jakie polecenie przywróci do działania uszkodzoną tabelę w SQL?

A. REGENERATE TABLE tbl_name
B. ANALYZE TABLE tbl_name
C. OPTIMIZE TABLE tbl_name
D. REPAIR TABLE tblname
REPAIR TABLE tblname jest komendą w SQL, która jest używana do naprawy uszkodzonych tabel w bazach danych, szczególnie w systemach zarządzania bazami danych, takich jak MySQL. Gdy tabela ulegnie uszkodzeniu z powodu awarii systemu, błędów oprogramowania lub innych problemów, użycie tej komendy pozwala na przywrócenie jej do stanu używalności. Przykładem może być sytuacja, gdy po awarii serwera tabela przestaje być dostępna. Wówczas wystarczy uruchomić polecenie REPAIR TABLE, aby zdiagnozować i naprawić problemy. Warto pamiętać, że ta komenda nie tylko przywraca integralność danych, ale także może poprawić wydajność tabeli, usuwając fragmentację. Praktyka wskazuje, że regularne sprawdzanie i naprawa tabel, zwłaszcza po dużych operacjach zapisu, jest dobrym nawykiem w zarządzaniu bazami danych. Dobrą praktyką jest również tworzenie kopii zapasowych tabel przed ich naprawą, co zabezpiecza dane przed potencjalną utratą w wyniku błędów przy naprawie.

Pytanie 34

Na przedstawionej grafice widać fragment bazy danych. Jakie kwerendę należy zastosować, aby uzyskać nazwy produktów zakupionych przez klienta o id = 1?

Ilustracja do pytania
A. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) JOIN transakcje USING(nr_transakcji) WHERE nr_klienta = 1
B. SELECT nazwa FROM produkty JOIN transakcje_produkty JOIN transakcje WHERE nr_klienta = 1
C. SELECT nazwa FROM produkty JOIN transakcje ON nr_produktu = nr_klienta WHERE nr_klienta = 1
D. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) WHERE nr_klienta = 1
Prawidłowa odpowiedź używa właściwego połączenia tabel baz danych aby otrzymać nazwy produktów zakupionych przez klienta o konkretnym identyfikatorze. W SQL kwerenda z JOIN umożliwia łączenie danych z więcej niż jednej tabeli na podstawie wspólnego pola. W tym przypadku tabela produkty jest połączona z transakcje_produkty przez pole nr_produktu oraz tabela transakcje jest połączona z transakcje_produkty przez pole nr_transakcji. Dzięki temu możliwe jest uzyskanie pełnego obrazu transakcji dla klienta o id = 1. Zastosowanie USING(nr_produktu) i USING(nr_transakcji) upraszcza kwerendę eliminując konieczność jawnego określania kolumn po obu stronach klauzuli ON. Praktyczne zastosowanie takich kwerend jest podstawą w analizie danych sprzedażowych gdzie analiza historii zakupów klientów może dostarczyć cennych informacji dla działów marketingu oraz logistyki. Dobre praktyki obejmują również optymalizację zapytań SQL aby były jak najbardziej efektywne co jest kluczowe przy pracy z dużymi zbiorami danych.

Pytanie 35

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

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

Pytanie 36

Pętla napisana w języku PHP wprowadzi do tablicy liczby
$x=0
for($i=0;$i<10;$i++)
{
   $tab[$i]=$x;
   $x=$x+10;
}

A. 0,1,2,3,4,5,6,7,8,9,10
B. 10,20,30,40,50,60,70,80,90,100
C. 0,1,2,3,4,5,6,7,8,9
D. 0,10,20,30,40,50,60,70,80,90
Pętla w języku PHP, zapisana w podanym kodzie, skutkuje wstawieniem do tablicy wartości będących kolejnymi wielokrotnościami liczby 10, począwszy od zera. Na początku zmienna $x jest inicjalizowana na wartość 0. Wewnątrz pętli for, która iteruje od 0 do 9, każda iteracja przypisuje do elementu tablicy $tab index $i wartość zmiennej $x, a następnie zwiększa $x o 10. Dzięki temu, w tablicy zostaną zapisane wartości: 0 ( dla i=0), 10 ( dla i=1), 20 ( dla i=2) i tak dalej, aż do 90 ( dla i=9). Po zakończeniu pętli tablica $tab będzie wyglądać następująco: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]. Jest to przykład prostego użycia pętli for oraz indeksowania tablicy w PHP, co jest podstawową umiejętnością programistyczną w tym języku. Użytkownicy mogą zauważyć, że zmiana wartości $x lub liczby iteracji w pętli zmieniłaby uzyskany wynik. Ten kod ilustruje sposób pracy z pętlami oraz tablicami w PHP, które są kluczowymi elementami programowania.

Pytanie 37

Znacznik <i> w języku HTML ma na celu

A. ustalenie nagłówka w treści
B. określenie formularza
C. dodanie grafiki
D. zmianę czcionki na kursywę
Znacznik <i> w języku HTML jest używany do formatowania tekstu, aby uzyskać efekt pochylonego kroju pisma. Jest to element semantyczny, który wprowadza do dokumentu wizualną różnicę, ale także ma swoje miejsce w kontekście znaczeniowym. Użycie <i> może wskazywać na zmianę intonacji w tekście, taką jak nazwy książek, filmów, czy obcych wyrazów. W standardach HTML5, <i> jest zalecany do użytku, aby wyróżnić elementy tekstowe w sposób, który jest zgodny z zasadami dostępności i semantyki. Przykład zastosowania: <p>W książce <i>W pustyni i w puszczy</i> autorstwa Henryka Sienkiewicza...</p>. Oznaczanie tekstu w ten sposób wspiera nie tylko estetykę strony, ale również poprawia doświadczenie użytkowników korzystających z technologii asystujących, które mogą interpretować znaczenie tak oznaczonego tekstu. Warto również pamiętać o odpowiednich stylach CSS, które można zastosować do tego znacznika, aby dostosować jego wygląd do reszty witryny.

Pytanie 38

Jak określa się metodę umożliwiającą nawiązanie asynchronicznego połączenia klienta z serwerem i prowadzenie komunikacji bez konieczności przeładowania całej strony WWW?

A. VBScript
B. PHP
C. AJAX
D. XML
PHP, VBScript i XML to technologie, które w kontekście pytania nie pełnią roli techniki asynchronicznej komunikacji między klientem a serwerem. PHP to język skryptowy wykorzystywany głównie po stronie serwera do generowania dynamicznych treści HTML. Jego działanie polega na przetwarzaniu kodu na serwerze przed wysłaniem strony do klienta, co nie pozwala na asynchroniczną komunikację. VBScript, z kolei, to język skryptowy stworzone przez Microsoft, który jest używany głównie w kontekście aplikacji Windows i nie jest standardem w programowaniu po stronie klienta. Nie jest on także szeroko wspierany w nowoczesnych przeglądarkach internetowych. XML (Extensible Markup Language) to format wymiany danych, który może być używany z AJAX-em, ale sam w sobie nie jest techniką komunikacyjną. Często błędne podejście do tematu polega na myleniu formatu wymiany danych z metodą komunikacji. Użytkownicy mogą sądzić, że XML może zastąpić AJAX, co jest nieprawidłowe, ponieważ XML służy jako format danych, a nie jako mechanizm do asynchronicznej wymiany. Warto zrozumieć, że skuteczne projekty webowe opierają się na zintegrowanym stosie technologii, a nie tylko na pojedynczych elementach. Praktyki takie jak RESTful API czy SOAP są bardziej związane z AJAX-em, podczas gdy PHP i inne technologie serwerowe pełnią inną rolę w architekturze aplikacji.

Pytanie 39

W skrypcie PHP należy stworzyć cookie o nazwie "owoce", które przyjmie wartość "jabłko". Cookie powinno być dostępne przez jedną godzinę od momentu jego utworzenia. W tym celu w skrypcie PHP trzeba zastosować funkcję:

A. setcookie("owoce", "jabłko", time()+3600);
B. cookie("jabłko", "owoce", 3600);
C. setcookie("jabłko", "owoce", time()+3600);
D. cookie("owoce", "jabłko", 3600);
Funkcja setcookie() jest standardowym narzędziem w PHP, używanym do tworzenia cookies. W przypadku tej odpowiedzi, używamy jej w poprawny sposób, definiując nazwę cookies jako 'owoce', wartość jako 'jabłko' oraz czas wygaśnięcia. Wywołanie time()+3600 oznacza, że cookie będzie ważne przez jedną godzinę od momentu jego utworzenia. Ważne jest, aby pamiętać, że setcookie() musi być wywołane przed jakimkolwiek kodem HTML, który jest wysyłany do przeglądarki. W praktyce, cookies mogą być używane do przechowywania informacji o użytkownikach, takich jak preferencje lub dane sesji. Na przykład, w przypadku aplikacji e-commerce, cookies mogą pomóc w śledzeniu produktów dodanych do koszyka przez użytkownika, co jest istotne dla poprawy doświadczeń zakupowych. Standardy dotyczące cookies wskazują również na konieczność zachowania ostrożności w zakresie prywatności i bezpieczeństwa, dlatego warto stosować flagi zabezpieczeń, takich jak HttpOnly i Secure, w zależności od kontekstu użycia.

Pytanie 40

Która z poniższych zasad nie przyczyni się pozytywnie do poprawy czytelności kodu?

A. Kod powinien być napisany bez wcięć i zbędnych przejść do nowej linii
B. Każda linia kodu powinna zawierać jedynie jedną instrukcję
C. Należy dodawać komentarze w bardziej skomplikowanych fragmentach kodu
D. Nazwy zmiennych muszą odzwierciedlać ich funkcję
Odpowiedź, że kod powinien być napisany bez wcięć i zbędnych enterów jest prawidłowa, ponieważ brak odpowiedniego formatowania negatywnie wpływa na czytelność kodu. Wcięcia są kluczowe w wielu językach programowania, takich jak Python, gdzie struktura kodu jest oparta na przestrzeniach, a nie na nawiasach. Wcięcia pomagają zaznaczyć hierarchię oraz zagnieżdżenie bloków kodu, co jest niezbędne do zrozumienia logiki działania programu. W praktyce, dobrze sformatowany kod, z użyciem wcięć i odpowiednich przerw, pozwala programistom szybko zrozumieć jego strukturę i funkcjonalność. Przykładem mogą być fragmenty kodu, gdzie funkcje są wyraźnie oddzielone od siebie, a pętle i warunki są poprawnie wcięte, co ułatwia ich analizę i modyfikację. Zgodnie z konwencjami PEP 8 dla Pythona oraz zasadami wielu innych języków, stosowanie wcięć oraz przestrzeni między blokami kodu to standardy, które znacznie poprawiają jakość kodu oraz jego czytelność.