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: 13 maja 2025 08:56
  • Data zakończenia: 13 maja 2025 09:24

Egzamin zdany!

Wynik: 28/40 punktów (70,0%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Tablica tab[] zawiera różne liczby całkowite. Jaką wartość przyjmie zmienna zm2 po wykonaniu podanego fragmentu kodu?

Ilustracja do pytania
A. Średnia geometryczna liczb od 0 do 9
B. Suma liczb z tablicy
C. Suma liczb od 1 do 10
D. Średnia arytmetyczna liczb z tablicy
Odpowiedź numer 3 jest prawidłowa, ponieważ kod oblicza średnią arytmetyczną elementów tablicy tab[]. Wartość zmiennej zm1 po zakończeniu pętli for będzie sumą wszystkich elementów tablicy, ponieważ w każdej iteracji do zm1 dodawana jest wartość kolejnego elementu tablicy. Następnie zmienna zm2 jest ustawiana na wartość zm1 podzieloną przez 10, co odpowiada obliczeniu średniej arytmetycznej, biorąc pod uwagę, że tablica ma 10 elementów. Obliczenie średniej arytmetycznej jest często wykorzystywane w różnych dziedzinach, takich jak analiza danych, statystyka czy nauki przyrodnicze, ponieważ pozwala na uzyskanie ogólnego obrazu rozkładu wartości. W programowaniu istotne jest, aby pamiętać o właściwym podziale przez liczbę elementów, co w tym przypadku zostało prawidłowo zastosowane. Praktykowanie takich operacji uczy pisania efektywnego kodu i zrozumienia podstaw matematycznych w informatyce. Zgodnie z dobrymi praktykami, użycie typu double dla zm2 zapewnia dokładność w przypadku niecałkowitych wyników dzielenia.

Pytanie 2

Które z poleceń przyznaje użytkownikowi uczen najniższe uprawnienia w kontekście modyfikacji danych oraz struktury tabeli?

A. GRANT DROP ON szkola.przedmioty TO uczen;
B. GRANT ALTER, SELECT ON szkola.przedmioty TO uczen;
C. GRANT INSERT, DROP ON szkola.przedmioty TO uczen;
D. GRANT SELECT ON szkola.przedmioty TO uczen;
Odpowiedź GRANT SELECT ON szkola.przedmioty TO uczen jest całkiem niezła. Daje użytkownikowi 'uczen' tylko możliwość przeglądania danych z tabeli 'przedmioty' w bazie danych 'szkola'. To znaczy, że nie może on nic zmieniać ani modyfikować struktury tabeli, co jest spoko, bo zapewnia to większe bezpieczeństwo. Z własnego doświadczenia mogę powiedzieć, że dobrze jest przydzielać uprawnienia w taki sposób, żeby użytkownicy mieli tylko to, co im naprawdę potrzebne do pracy. W przypadku ucznia, który tylko chce się uczyć i patrzeć na przedmioty, dostęp do operacji takich jak INSERT, UPDATE czy DROP nie ma sensu, bo tylko stwarza ryzyko niekontrolowanych zmian w danych. W edukacji warto ograniczyć dostęp, żeby zachować porządek i uniknąć błędów oraz nadużyć. Więc dobrze, że wybrałeś tę odpowiedź.

Pytanie 3

W języku HTML zdefiniowano znacznik ```link``` Wartość nofollow atrybutu rel

A. oznacza, że kliknięcie na link otworzy go w osobnej karcie przeglądarki.
B. oznacza, że kliknięcie na link nie przeniesie do strony website.com.
C. jest informacją dla przeglądarki internetowej, aby nie formatowała słowa "link" jako odnośnika.
D. jest informacją dla robota wyszukiwarki Google, aby nie podążał za tym linkiem.

Pytanie 4

Jakie kodowanie w języku HTML pozwala na sformatowanie paragrafu dla tekstu

 Tekst może być zaznaczony albo istotny dla autora

należy użyć polecenia?

A.

Tekst może być zaznaczony albo istotny dla autora

B.

Tekst może być zaznaczony albo istotny dla autora

C.

Tekst może być zaznaczony albo istotny dla autora

D.

Tekst może być zaznaczony albo istotny dla autora

Wybrana odpowiedź jest poprawna, ponieważ stosuje prawidłowe znaczniki HTML do formatowania tekstu. Użycie dla słowa 'zaznaczony' wskazuje, że jest to istotna informacja, podczas gdy dla słowa 'istotny' podkreśla jego znaczenie w kontekście treści. Zgodnie z W3C i HTML5, jest używany do oznaczania części tekstu, która jest wyróżniona w kontekście przeszukiwanym lub istotnym. Oznaczenie tekstu jako nie tylko wskazuje na akcent, ale również ma znaczenie semantyczne, ponieważ może wpłynąć na sposób, w jaki czytniki ekranu interpretują treść, co jest kluczowe dla dostępności. Przykładem zastosowania może być strona internetowa, na której chcemy wyróżnić ważne informacje lub kluczowe definicje, co zwiększa czytelność i funkcjonalność przekazu. Poprawne użycie znaczników HTML jest zgodne z dobrymi praktykami tworzenia stron internetowych, co sprzyja lepszej nawigacji i zrozumieniu tekstu przez użytkowników.

Pytanie 5

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

A. klasy/obiekty mogą dzielić się funkcjonalnością
B. pola i metody dostępne tylko dla konkretnej klasy/obiektu mają zasięg ograniczony do private lub protected
C. typy pól w klasach/obiektach mogą być zmieniane w sposób dynamiczny w zależności od przypisywanych danych
D. klasy/obiekty mogą definiować metody wirtualne, które są realizowane w klasach/obiektach pochodnych
Odpowiedzi sugerujące różne interpretacje hermetyzacji w programowaniu obiektowym zakładają błędne zrozumienie tej zasady. Wskazanie, że klasy mogą mieć metody wirtualne, które są implementowane w pochodnych klasach, odnosi się do polimorfizmu, a nie hermetyzacji. Polimorfizm pozwala na zdefiniowanie metod w klasie bazowej, które mogą być nadpisywane w klasach pochodnych, ale nie ma związku z ograniczeniem dostępu do danych. Z kolei twierdzenie, że typy pól w klasach mogą być dynamicznie zmieniane, wskazuje na nieporozumienie dotyczące typów statycznych i dynamicznych w kontekście języków programowania, gdzie typy pól są zazwyczaj ustalane w momencie kompilacji. Ponadto, stwierdzenie, że klasy mogą współdzielić ze sobą funkcjonalność, odnosi się do dziedziczenia oraz kompozycji, które są osobnymi konceptami w programowaniu obiektowym. W rzeczywistości, hermetyzacja jest bardziej związana z ochroną danych i zapewnieniem, że wewnętrzna logika klasy pozostaje nietknięta przez nieautoryzowane modyfikacje. Te nieporozumienia mogą prowadzić do istotnych problemów w architekturze aplikacji, gdzie niezrozumienie hermetyzacji skutkuje nadmiernym uzależnieniem od zewnętrznych interakcji oraz zwiększoną złożonością kodu. Zrozumienie hermetyzacji jest kluczowe, aby tworzyć kod, który jest nie tylko bardziej odporny na błędy, ale również łatwiejszy do utrzymania i rozwijania.

Pytanie 6

Aby utworzyć relację wiele do wielu między tabelami A i B, wystarczy, że

A. połączenie tabeli A z tabelą B nastąpi poprzez określenie kluczy obcych
B. wiele wpisów z tabeli A powtórzy się w tabeli B
C. zostanie zdefiniowana trzecia tabela z kluczami obcymi do tabel A i B
D. tabela A będzie miała identyczne pola jak tabela B
Odpowiedź, że należy zdefiniować trzecią tabelę z kluczami obcymi do tabel A i B, jest poprawna, ponieważ relacja wiele do wielu wymaga pośrednictwa trzeciej tabeli, często nazywanej tabelą asocjacyjną lub łączącą. W praktyce oznacza to, że każdy rekord w tabeli A może być powiązany z wieloma rekordami w tabeli B i vice versa. Tabela asocjacyjna zawiera co najmniej dwa pola kluczy obcych: jedno wskazujące na odpowiedni rekord w tabeli A i drugie na odpowiadający mu rekord w tabeli B. Na przykład, w systemie zarządzania kursami, tabela 'Studenci' i tabela 'Kursy' mogą być połączone poprzez tabelę 'Rejestracje', która przechowuje identyfikatory studentów i kursów, umożliwiając przypisanie wielu studentów do wielu kursów. To podejście jest zgodne z zasadami normalizacji baz danych, które mają na celu minimalizację redundancji i zapewnienie spójności danych. Dobrą praktyką jest również zapewnienie, że klucze obce w tabeli asocjacyjnej są odpowiednio indeksowane, co poprawia wydajność zapytań oraz umożliwia łatwe zarządzanie relacjami.

Pytanie 7

Elementem odpowiadającym imieniu Agata w zaprezentowanej tablicy JavaScript jest:

var Imiona = new Array('Anna','Joanna','Monika','Agata');

A. Imiona[Agata];
B. Imiona[3];
C. Imiona[4];
D. Imiona['Agata'];
Wybór Imiona[4] jest błędny, ponieważ jak wcześniej wspomniano, tablice w JavaScript są indeksowane od zera i tablica Imiona ma cztery elementy, co oznacza, że najwyższy indeks dostępny w tym przypadku to 3. Próba uzyskania dostępu do elementu o indeksie 4 zwróci undefined, co jest powszechnym źródłem błędów podczas programowania. Kolejna nieprawidłowa odpowiedź, Imiona[Agata], również nie jest poprawna, gdyż nie możemy używać wartości zmiennych (takich jak 'Agata') jako indeksów w tablicach bez wcześniejszej deklaracji. W JavaScript zmienne muszą być zdefiniowane, aby można było ich użyć. Imiona['Agata'] to kolejny przykład błędnego podejścia. Chociaż JavaScript pozwala na uzyskiwanie dostępu do właściwości obiektów za pomocą notacji z kropką lub bracket notation, w przypadku tablic nie można używać nazw elementów, które nie są ich indeksami. Tego rodzaju błędy są często wynikiem niepełnego zrozumienia różnicy między tablicami a obiektami w JavaScript. Zrozumienie tych różnic oraz praktykowanie poprawnego indeksowania tablic jest kluczowe dla każdego programisty, aby uniknąć trudności w kodowaniu oraz zapewnić, że aplikacje działają zgodnie z zamierzeniem.

Pytanie 8

Wynikiem realizacji kwerendy ```SELECT sezon, SUM(liczba_dn) FROM rezerwacje GROUP BY sezon;``` na podstawie poniższej tabeli rezerwacje jest:

A. lato 20, zima 27
B. lato 10, zima 4, lato 5, zima 6, lato 5, zima 9, zima 8
C. lato 10, 5, 5; zima 4, 6, 9, 8
D. lato 3, zima 4
Analiza błędnych odpowiedzi wskazuje na niezrozumienie zasad działania kwerend SQL, szczególnie w kontekście zagregowanych wyników. Odpowiedź sugerująca lato 3, zima 4, 6, 9, 8 jest niepoprawna, ponieważ nie sumuje dni, a jedynie przedstawia liczby, które są w rzeczywistości liczbą dni w sezonach. Może to wynikać z błędnej interpretacji funkcji GROUP BY, która ma na celu zebranie wyników w grupy przed zastosowaniem funkcji agregujących. Kolejna odpowiedź myli pojęcie grupowania i agregacji, podając szczegółowe wartości bez ich sumowania, co nie jest zgodne z logiką kwerendy. W SQL, funkcja SUM nie jest używana do wyodrębnienia poszczególnych wartości, ale do obliczenia ich łącznej wartości w ramach grupy. Ostatnia niepoprawna odpowiedź, która z kolei podaje poszczególne dni rezerwacji dla obu sezonów, również nie spełnia wymogu zsumowania danych. Podobnie jak w poprzednich przypadkach, brak zrozumienia, jak działają agregacje w SQL, prowadzi do wniosków, które są niezgodne z pojęciem zorganizowanej analizy danych. Dlatego niezwykle ważne jest, aby przy pracy z danymi zrozumieć, jak funkcje agregujące wpływają na zbieranie informacji oraz w jaki sposób odpowiednie grupowanie i przetwarzanie danych może dostarczyć użytecznych informacji dla różnych analiz biznesowych.

Pytanie 9

Instrukcję for można zastąpić inną instrukcją

A. continue
B. case
C. while
D. switch
Odpowiedź 'while' jest poprawna, ponieważ obie instrukcje, 'for' oraz 'while', służą do iteracji, czyli powtarzania pewnego bloku kodu w określonych warunkach. Instrukcja 'for' jest najczęściej używana, gdy znamy liczbę iteracji z góry, podczas gdy 'while' pozwala na bardziej elastyczne podejście, w którym kontynuujemy wykonanie pętli, aż do spełnienia określonego warunku. Przykład zastosowania instrukcji 'while' może wyglądać następująco: int i = 0; while (i < 10) { System.out.println(i); i++; }. W tym przypadku pętla 'while' będzie kontynuować swoje działanie tak długo, jak długo i jest mniejsze od 10. W praktyce, wybór między 'for' a 'while' powinien być podejmowany na podstawie kontekstu oraz przejrzystości kodu, co jest zgodne z najlepszymi praktykami programistycznymi. Warto również zauważyć, że w pewnych sytuacjach, takich jak przetwarzanie strumieni danych, stosowanie pętli 'while' może być bardziej intuicyjne i czytelne. Dzięki temu, programista może zachować większą kontrolę nad logiką iteracyjną, co sprzyja utrzymaniu i rozwijaniu kodu w przyszłości.

Pytanie 10

Funkcja pg_connect w języku PHP służy do nawiązania połączenia z bazą danych

A. MS ACCESS
B. mySQL
C. MS SQL
D. PostgreSQL
Polecenie pg_connect w języku PHP jest dedykowane do nawiązywania połączeń z bazami danych PostgreSQL, które są relacyjnymi bazami danych znanymi z dużej wydajności, elastyczności oraz wsparcia dla zaawansowanych funkcji, takich jak transakcje, procedury składowane czy różnorodne typy danych. Użycie pg_connect pozwala programistom na łatwe integrowanie aplikacji PHP z PostgreSQL, co jest kluczowe w przypadku aplikacji wymagających solidnego zarządzania danymi. Przykładowo, aby nawiązać połączenie z bazą danych, można użyć kodu: $conn = pg_connect("host=localhost dbname=mydb user=myuser password=mypassword");. Taki sposób połączenia umożliwia nie tylko dostęp do danych, ale też wykonanie zapytań SQL i zarządzanie wynikami. Dobrą praktyką jest zawsze zamykanie połączeń oraz obsługa potencjalnych błędów, co przyczynia się do stabilności aplikacji. Zgodnie z wytycznymi dotyczącymi bezpieczeństwa, szczególnie w kontekście aplikacji webowych, ważne jest również stosowanie technik zabezpieczeń, takich jak przygotowane zapytania, aby zapobiec atakom typu SQL injection.

Pytanie 11

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

A. wprowadzić kolumnę cena o typie float, o ile jeszcze nie istnieje
B. zmienić nazwę kolumny cena na float
C. usunąć kolumnę cena, która jest typu float
D. zmienić typ na float dla kolumny cena
Wybór odpowiedzi, która sugeruje dodanie kolumny 'cena' o typie float, jest niepoprawny, ponieważ kwerenda ALTER TABLE MODIFY nie tworzy nowych kolumn, lecz modyfikuje istniejące. W kontekście baz danych dodawanie kolumny i modyfikacja jej typu to dwie różne operacje, które mają różne zastosowania. Z kolei kolejna odpowiedź dotycząca usunięcia kolumny 'cena' jest całkowicie błędna, ponieważ kwerenda nie zawiera żadnych instrukcji, które mogłyby prowadzić do usunięcia kolumny. Usunięcie kolumny odbywa się za pomocą polecenia DROP, co jest zupełnie inną operacją. Zmiana nazwy kolumny z 'cena' na 'float' również nie ma sensu w kontekście tej kwerendy, ponieważ instrukcja MODIFY służy do zmiany typu danych, a nie do zmiany nazw kolumn. Typowe błędy myślowe, które mogą prowadzić do takich wniosków, wynikają z pomylenia operacji modyfikacji z operacjami dodawania lub usuwania kolumn. Ważne jest zrozumienie, że każda z tych operacji wymaga zastosowania różnych poleceń SQL i znajomości ich specyfiki, co jest kluczowe dla prawidłowego zarządzania bazą danych. Opanowanie tych podstawowych zasad SQL jest niezbędne dla efektywnego i skutecznego zarządzania danymi.

Pytanie 12

Jakie zapytanie należy użyć, aby wyświetlić tylko imię, nazwisko oraz ulicę wszystkich mieszkańców?

Ilustracja do pytania
A. SELECT imie, nazwisko, ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id
B. SELECT imie, nazwisko, ulica FROM Mieszkancy, Adresy ON Mieszkancy.Adresy_id = Adresy.id
C. SELECT * FROM Mieszkancy, Adresy ON Mieszkancy.id = Adresy.id
D. SELECT * FROM Mieszkancy JOIN Adresy ON Adresy.id = Mieszkancy.Adresy.id
Odpowiedź SELECT imie nazwisko ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id jest trafna, bo korzysta z dobrej składni dołączenia tabel w SQL. Dzięki temu wyciągasz tylko te kolumny, które są Ci potrzebne. W tym przypadku, używając JOIN, łączysz tabele Mieszkancy i Adresy na podstawie odpowiednich kluczy, co dobrze odpowiada zasadom baz danych. Klucz obcy Adresy_id w tabeli Mieszkancy wskazuje na id w tabeli Adresy, co jest super ważne, bo zapewnia, że dane są spójne. To zapytanie pokazuje, jak optymalizować SQL, bo ogranicza wybór do niezbędnych kolumn (imie, nazwisko, ulica), co zmniejsza obciążenie bazy i przyspiesza wyrzucanie wyników. W praktyce takie podejście jest fajne do efektywnego zarządzania danymi w relacyjnych bazach. Dobrze jest mieć w głowie, jak używać JOIN oraz wybierać konkretne kolumny, bo to naprawdę pomaga w pisaniu bardziej zrozumiałych i wydajnych zapytań, co jest przydatne w pracy zawodowej.

Pytanie 13

W JavaScript stworzono funkcję o nazwie licz_pitagoras, która oblicza długość przeciwprostokątnej w trójkącie prostokątnym, zgodnie z twierdzeniem Pitagorasa. Funkcja przyjmuje dwa parametry wejściowe i zwraca wynik. Poprawne wywołanie tej funkcji, wraz z uzyskaniem zwróconej wartości, będzie miało formę

A. licz_pitagoras(a, b);
B. c = licz_pitagoras(a, b);
C. licz_pitagoras(a, b, c);
D. licz_pitagoras(a, b) = c;
Odpowiedź 'c = licz_pitagoras(a, b);' jest poprawna, ponieważ przedstawia sposób wywołania funkcji oraz przypisania jej wyniku do zmiennej. W języku JavaScript, aby skorzystać z funkcji, należy najpierw ją wywołać, a następnie, w przypadku gdy funkcja zwraca wartość, możemy tę wartość przypisać do zmiennej. W tym przypadku, funkcja 'licz_pitagoras' przyjmuje dwa argumenty, które odpowiadają długościom dwóch przyprostokątnych w trójkącie prostokątnym i zwraca długość przeciwprostokątnej, obliczoną na podstawie wzoru a^2 + b^2 = c^2. Przykład praktyczny to wykorzystanie tej funkcji w aplikacji, która oblicza długości boków trójkątów, co jest przydatne w różnych dziedzinach, takich jak inżynieria czy architektura. Warto pamiętać o dobrej praktyce, aby nazwy funkcji były opisowe, co ułatwia zrozumienie ich funkcji bez potrzeby zagłębiania się w implementację.

Pytanie 14

W CSS, co spowoduje poniższy kod z plikiem rysunek.png?

p {background-image: url("rysunek.png");}

A. tłem dla każdego akapitu
B. tłem całej witryny
C. pokazany obok każdego akapitu
D. widoczny, jeśli zastosowany zostanie znacznik img w kodzie
Wybrana odpowiedź jest poprawna ponieważ w arkuszach stylów CSS zastosowanie selektora elementu p z właściwością background-image powoduje że obraz rysunek.png zostanie ustawiony jako tło dla każdego elementu paragrafu na stronie. Jest to przydatna technika gdy chcemy nadać spójny wygląd wszystkim paragrafom w dokumencie. Tło to może być używane do celów estetycznych lub jako część identyfikacji wizualnej strony. Warto pamiętać że w CSS można dodatkowo kontrolować sposób wyświetlania obrazka tła za pomocą właściwości takich jak background-repeat background-size i background-position co pozwala na precyzyjne dostosowanie wyświetlania. Dobre praktyki zalecają aby obrazy tła były odpowiednio zoptymalizowane pod kątem rozmiaru aby nie wpływały negatywnie na szybkość ładowania strony. W praktyce stosowanie obrazów jako tła w paragrafach może wspierać wizualne narracje oraz zwiększać zaangażowanie użytkowników szczególnie gdy są stosowane w przemyślany sposób w kontekście projektowania doświadczeń użytkownika UX.

Pytanie 15

W instrukcjach mających na celu odtwarzanie dźwięku jako muzyki tła na stronie internetowej NIE stosuje się atrybutu

A. balance="-10"
B. loop="10"
C. volume="-100"
D. href="C:/100.wav"
Atrybuty volume, loop i balance są używane w kontekście odtwarzania dźwięku, co może prowadzić do nieporozumień dotyczących ich zastosowania. Atrybut volume, choć nie jest standardowo stosowany w HTML5, odnosi się do głośności dźwięku i powinien być regulowany w sposób programowy za pomocą JavaScript, a nie jako część atrybutów tagu audio. Implementacja głośności powinna być realizowana poprzez metody JavaScript, takie jak audioElement.volume, co daje większą kontrolę nad odtwarzanym dźwiękiem. Z kolei atrybut loop jest używany do wskazania, że dźwięk powinien być odtwarzany w pętli, co jest zgodne z oczekiwaniami użytkowników, którzy chcą, aby muzyka grała w tle bez przerwy. Balance, podobnie jak volume, nie jest standardowym atrybutem HTML i w praktyce nie jest obsługiwany przez przeglądarki. Użytkownicy mogą mylnie zakładać, że te atrybuty są bezpośrednio dostępne w HTML, podczas gdy w rzeczywistości wymagają one wsparcia z poziomu skryptów. Dlatego kluczowe jest zrozumienie, że konstruując interaktywne aplikacje webowe, należy opierać się na aktualnych specyfikacjach, aby uniknąć typowych pułapek związanych z niepoprawnym użyciem atrybutów.

Pytanie 16

Jaką instrukcję pętli stosuje się do przeprowadzenia określonej liczby operacji na obiekcie lub zmiennej, która nie jest tablicą?

A. if
B. switch
C. for
D. foreach
Instrukcja pętli 'for' jest jednym z najczęściej używanych narzędzi programistycznych, które pozwala na wykonywanie określonej liczby operacji na zmiennej. Kluczową cechą pętli 'for' jest jej zdolność do precyzyjnego zdefiniowania liczby iteracji, co czyni ją idealną do zadań, w których liczba powtórzeń jest znana z góry. Na przykład, jeśli chcemy iterować po liczbach od 1 do 10 i wyświetlić każdą z nich, możemy użyć pętli 'for' w następujący sposób: 'for (int i = 1; i <= 10; i++) { System.out.println(i); }'. Takie podejście pozwala na łatwe zarządzanie zmiennymi oraz kontrolowanie mocy obliczeniowej programu. Pętla 'for' jest również bardzo elastyczna i może być stosowana w różnych kontekstach, takich jak przetwarzanie danych w tablicach czy lista elementów. W kontekście najlepszych praktyk, ważne jest, aby używać pętli 'for' tam, gdzie jest to najbardziej odpowiednie, unikając jej stosowania w sytuacjach, gdy mamy do czynienia z kolekcjami obiektów, które mogą wymagać bardziej zaawansowanych technik iteracyjnych. Zrozumienie zastosowania pętli 'for' jest kluczowe dla każdego programisty, który chce efektywnie zarządzać iteracjami w swoich aplikacjach.

Pytanie 17

Jaką wartość zwróci funkcja empty($a); w języku PHP, gdy zmienna $a będzie miała wartość 0?

A. NULL
B. 0
C. FALSE
D. TRUE
Funkcja empty($a) w języku PHP zwraca TRUE, gdy zmienna $a jest uznawana za pustą. Zgodnie z definicją, pustą wartość w PHP mają zmienne, które są równoważne FALSE, co obejmuje m.in. wartość 0, pusty string, NULL oraz pustą tablicę. W przypadku, gdy zmienna $a przyjmuje wartość liczbową równą 0, funkcja empty() zwróci TRUE, ponieważ 0 jest interpretowane jako wartość uznawana za pustą. To zachowanie jest zgodne z zasadami silnej typizacji w PHP, które pozwalają na dynamiczne sprawdzanie typów zmiennych. W praktyce, funkcję empty() można wykorzystać do walidacji danych wejściowych, na przykład w formularzach, gdzie istotne jest, aby użytkownik wprowadził wartość. Zamiast porównywać zmienną z różnymi pustymi wartościami, wywołanie empty() pozwala na bardziej zwięzły i czytelny kod. Warto również pamiętać, że empty() nie generuje ostrzeżeń w przypadku nieistniejącej zmiennej, co czyni ją bezpieczniejszym wyborem niż inne metody sprawdzania wartości.

Pytanie 18

Wskaż poprawny warunek w języku PHP, który sprawdza brak połączenia z bazą MySQL.

A. if (mysql_connect_errno()}{
B. if (mysql_connect_error())()
C. if (mysql_connect_error()}{
D. if (mysql_connect_errno()){}
Poprawna odpowiedź, czyli 'if (mysql_connect_errno()){}', jest zgodna z obowiązującymi standardami PHP i umożliwia prawidłowe sprawdzenie błędów połączenia z bazą danych MySQL. Funkcja 'mysql_connect_errno()' zwraca kod błędu, jeżeli wystąpił problem podczas nawiązywania połączenia z bazą danych. Jej użycie w warunku 'if' pozwala na przeprowadzenie odpowiednich operacji, gdy połączenie nie jest możliwe, co jest dobrą praktyką w programowaniu. Warto także zauważyć, że w przypadku, gdy wystąpi błąd, można wykorzystać funkcję 'mysql_connect_error()', aby uzyskać bardziej szczegółowe informacje na temat problemu. Przykład praktyczny zastosowania: 'if (mysql_connect_errno()) { echo "Błąd połączenia: " . mysql_connect_error(); }' pozwala na wyświetlenie komunikatu o błędzie. Takie podejście nie tylko wprowadza porządek w kodzie, ale także zapewnia lepszą kontrolę nad błędami, co jest kluczowe w tworzeniu stabilnych aplikacji webowych.

Pytanie 19

W poniższym zapytaniu SQL, znak „*” wskazuje, że w wyniku tego zapytania zostaną zwrócone

SELECT * FROM mieszkancy WHERE imie = 'Anna';

A. warunek dotyczący imienia zostanie pominięty
B. wszystkie rekordy z tabeli mieszkańcy będą widoczne
C. zostaną wyświetlone wszystkie kolumny tabeli mieszkańcy
D. zostanie pokazane pole zatytułowane „*” (gwiazdka)
W analizowanym zapytaniu SQL istotne jest zrozumienie roli symbolu '*' w kontekście wywołania zapytania. Zbytnie uproszczenie może prowadzić do nieporozumień, przy założeniu, że znaczenie gwiazdki jest bardziej skomplikowane niż tylko proste pobieranie danych. Odpowiedź sugerująca, że warunek 'imie = 'Anna'' zostanie zignorowany, jest nieprawidłowa, ponieważ w rzeczywistości to zapytanie filtruje dane, a symbol '*' jedynie wskazuje, że wszystkie kolumny powinny być zwrócone dla tych rekordów, które spełniają warunek. Z kolei stwierdzenie, że zostanie wyświetlone pole o nazwie '*', również jest mylące, ponieważ '*' nie jest nazwą kolumny, lecz specjalnym symbolem w SQL. Warto zauważyć, że z perspektywy wydajności, stosowanie '*' w dużych bazach danych może być nieefektywne. W praktyce lepiej jest określić konkretne kolumny, które są potrzebne, co może znacznie zwiększyć szybkość zapytań oraz zmniejszyć obciążenie serwera. Poprawne zrozumienie struktury danych oraz efektywne formułowanie zapytań SQL to kluczowe umiejętności w pracy z bazami danych, które pozwalają nie tylko na efektywne zarządzanie danymi, ale również na lepszą optymalizację procesów. Właściwe podejście do tworzenia zapytań SQL może znacznie podnieść jakość aplikacji bazodanowych.

Pytanie 20

Jakie identyfikatory zostaną zwrócone po wykonaniu kwerendy na prezentowanych rekordach? ```SELECT id FROM samochody WHERE rocznik LIKE "2%4";```

A. Wszystkie identyfikatory.
B. Tylko identyfikator równy 8.
C. Brak danych.
D. Identyfikatory równe 7 oraz 8.
Prawidłowa odpowiedź wskazuje, że w wyniku działania kwerendy zostaną wybrane rekordy z id równymi 7 oraz 8, ponieważ oba te roczniki zaczynają się cyfrą 2 i kończą na 4, co spełnia warunek LIKE '2%4'. W SQL operator LIKE umożliwia wyszukiwanie wzorców w danych tekstowych i jest bardzo użyteczny w sytuacjach, gdy nieznana jest pełna wartość, a tylko jej część. W praktycznych aplikacjach, takich jak systemy zarządzania bazami danych, często stosuje się ten operator do filtrowania wyników na podstawie niepełnych informacji. Na przykład, jeżeli chciałbyś zidentyfikować wszystkie pojazdy z określonym rocznikiem, użycie LIKE może szybko zawęzić wyniki. Używanie tego operatora w połączeniu z innymi funkcjami SQL, jak GROUP BY czy JOIN, pozwala na kompozycję bardziej złożonych zapytań, co jest standardem w analityce danych.

Pytanie 21

W zaprezentowanym schemacie bazy danych o nazwie biblioteka, składniki: czytelnik, wypożyczenie oraz książka są

Ilustracja do pytania
A. encjami
B. polami
C. krotkami
D. atrybutami
W kontekście modelowania danych w relacyjnych bazach danych istotne jest rozróżnienie między encjami a innymi pojęciami. Pola w bazach danych zazwyczaj odnoszą się do pojedynczych jednostek danych w obrębie kolumn tabeli reprezentujących atrybuty encji. Atrybuty to cechy opisujące encje takie jak imię czy nazwisko w przypadku encji czytelnik. Natomiast krotki często określają pojedynczy rekord czyli wiersz w tabeli który jest instancją encji. Błędne jest przypisywanie czytelnik wypozyczenie i ksiazka do kategorii pól ponieważ w modelowaniu danych pola są najmniejszymi jednostkami danych które nie reprezentują obiektów realnego świata lecz ich właściwości. Podobnie błędem jest klasyfikowanie ich jako atrybuty ponieważ atrybuty opisują encje a nie są nimi. Traktowanie tych elementów jako krotek również jest nieprawidłowe gdyż krotki to konkretne instancje danych a nie typy obiektów które chcemy modelować. Typowy błąd myślowy polega na myleniu poziomu abstrakcji czyli traktowaniu encji które są wysokopoziomowymi konceptami jak atrybuty czy krotki które są bardziej szczegółowymi jednostkami w strukturze danych. Zrozumienie tych różnic jest kluczowe dla efektywnego projektowania i implementacji baz danych oraz uniknięcia problemów związanych z redundancją czy nieefektywnością w przetwarzaniu informacji

Pytanie 22

Wskaź, która instrukcja jest równoważna z instrukcją switch w języku PHP?

Ilustracja do pytania
A. Instrukcja 4
B. Instrukcja 1
C. Instrukcja 3
D. Instrukcja 2
Instrukcja switch w PHP służy do wykonywania różnych bloków kodu w zależności od wartości wyrażenia. W podanym przykładzie, jeśli zmienna $liczba wynosi 10 lub 20, zostanie zwiększona o 1. W przeciwnym razie $liczba zostanie ustawiona na 0. Instrukcja 2 używa warunku if z operatorem or, który sprawdza, czy $liczba jest równa 10 lub 20, co odpowiada logice w switch. Dzięki temu, mimo że struktura instrukcji if różni się od switch, logika działania jest identyczna. Praktycznie, użycie instrukcji if z operatorem or w takich sytuacjach jest czytelne i wydajne zwłaszcza jeśli mamy do czynienia z ograniczoną liczbą warunków. Warto zauważyć, że switch jest bardziej efektywny, gdy mamy wiele przypadków do sprawdzenia, ale if z operatorami logicznymi jest bardziej elastyczny, co czyni go przydatnym w różnorodnych scenariuszach programistycznych. Dobre praktyki wskazują na wybór struktury kontrolnej w zależności od złożoności i specyfiki problemu, co pozwala na optymalizację czytelności i utrzymania kodu.

Pytanie 23

W JavaScript, wynik operacji przyjmuje wartość NaN, gdy skrypt usiłuje przeprowadzić

A. funkcję parseInt zamiast parseFloat na zmiennej numerycznej
B. funkcję, która sprawdza długość stringa, a zawartość zmiennej była liczba
C. operację arytmetyczną na dwóch dodatnich zmiennych liczbowych
D. operację arytmetyczną, a zawartość zmiennej była tekstem
W JavaScript, wartość NaN (Not-a-Number) jest wynikiem nieudanej operacji arytmetycznej, szczególnie gdy jedna z operandów jest napisem, a nie liczbą. Przykładem może być sytuacja, gdy próbujemy dodać liczbę do napisu: let result = 5 + 'abc';. W tym przypadku, JavaScript nie może przeprowadzić operacji arytmetycznej na liczbie i napisie, co skutkuje wartością NaN. Konwersja napisu na liczbę w kontekście arytmetyki jest kluczowa; funkcje takie jak parseFloat lub parseInt mogą być użyte do uzyskania liczby z napisu. Dobre praktyki sugerują, aby zawsze sprawdzać typ danych przed wykonaniem operacji arytmetycznych, co można osiągnąć za pomocą operatora typeof lub funkcji Number.isNaN(). W ten sposób unika się nieprzewidzianych rezultatów i poprawia się stabilność kodu. Zrozumienie, jak JavaScript radzi sobie z różnymi typami danych, jest fundamentalne dla każdego programisty, ponieważ błędy związane z typami danych mogą prowadzić do poważnych problemów w aplikacjach.

Pytanie 24

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

<?php
echo date('l, dS F Y');
?>

A. Monday, 10 July 2017
B. 10, Monday July 2017
C. Monday, 10th July 2017
D. Monday, 10th July 17
Błędne odpowiedzi wynikają z niepoprawnego zrozumienia specyfikacji formatów używanych w funkcji date() w PHP. Formatowanie daty w PHP wymaga precyzyjnego zastosowania odpowiednich znaków formatujących, które określają sposób wyświetlania poszczególnych elementów daty. Wykorzystanie 'l' daje pełną nazwę dnia tygodnia, co eliminuje wszelkie opcje, które tego nie uwzględniają. 'd' zwraca dwucyfrowy dzień miesiąca, a 'S' dodaje sufiks porządkowy, co jest charakterystyczne dla języka angielskiego. Dlatego też formaty, które nie zawierają sufiksu porządkowego, są niepoprawne. 'F' oznacza pełną nazwę miesiąca, więc każdy format, który nie przedstawia miesiąca w pełni, jest błędny. 'Y' z kolei formatuje rok w pełnej czterocyfrowej formie, co jest standardem dla aplikacji wymagających precyzji i unikania nieporozumień związanych z rokiem dwucyfrowym. Pomyłki często wynikają z mylnego przyjęcia założenia, że PHP automatycznie dostosuje format do oczekiwanego rezultatu, co nie jest prawdą i wymaga świadomego użycia odpowiednich specyfikatorów formatujących.

Pytanie 25

Jaki będzie efekt wykonania poniższego kodu JavaScript?

var akapit = document.createElement("p");
document.body.appendChild(akapit);

A. Skasowanie akapitu ze strony
B. Dodanie akapitu na końcu strony
C. Wstawienie akapitu na szczycie strony
D. Pokazanie okna dialogowego z napisem akapit
Zrozumienie dlaczego niektóre odpowiedzi są błędne wymaga analizy działania metod JavaScriptowych w kontekście modelu DOM. Pierwsza odpowiedź wskazuje na usunięcie akapitu ze strony co nie jest zgodne z działaniem zaprezentowanego kodu ponieważ metoda document.createElement tworzy nowy element a nie usuwa istniejący. Usunięcie elementu zamiast tego można osiągnąć za pomocą metody removeChild która wymaga wskazania konkretnego elementu do usunięcia. Druga odpowiedź sugeruje dodanie akapitu na początku strony co również jest niepoprawne. Metoda appendChild zawsze dodaje element na koniec wskazanego rodzica czyli w tym przypadku dokumentu body. Aby dodać element na początku strony należałoby użyć metody insertBefore w połączeniu z odwołaniem do pierwszego dziecka body. Trzecia odpowiedź mówi o wyświetleniu okna dialogowego co jest błędem konceptualnym gdyż omawiany kod nie zawiera żadnej funkcji wyświetlającej alert czy prompt. Tworzenie i manipulowanie elementami DOM nie wpływa bezpośrednio na interakcje dialogowe z użytkownikiem. Aby wyświetlić okno dialogowe używa się zazwyczaj metod takich jak alert confirm czy prompt co nie ma miejsca w podanym fragmencie kodu. Analizując te odpowiedzi zauważamy że błędne rozumowanie może wynikać z mylenia funkcji manipulujących DOM z elementami interfejsu użytkownika co jest częstym błędem wśród początkujących programistów. Znajomość specyfiki oraz kontekstu użycia poszczególnych metod jest kluczowa dla poprawnego kodowania w JavaScript i efektywnego zarządzania treścią na stronie internetowej.

Pytanie 26

Jaką wartość przyjmie zmienna po wykonaniu poniższego fragmentu kodu w JavaScript?

var w=0;
var i=1;
for (i = 1; i < 50; i++)
{
    if (i%2 == 0)
        w += i;
}

A. suma naturalnych liczb parzystych, które są mniejsze od 50
B. liczbom naturalnym, które są nieparzyste i mniejsze od 50
C. liczbie naturalnych liczb parzystych większych od 50
D. suma wszystkich naturalnych liczb nieparzystych, które są większe od 50
Kod przedstawiony w pytaniu jest fragmentem programu JavaScript, który ma za zadanie zsumować wszystkie liczby parzyste mniejsze od 50. Początkowo zmienna w jest ustawiona na 0 i reprezentuje sumę, którą będziemy obliczać. Pętla for zaczyna się od i=1 i iteruje do i<50 zwiększając wartość i o 1 w każdej iteracji. Wewnątrz pętli znajduje się instrukcja warunkowa if, która sprawdza, czy liczba i jest parzysta, co oznacza, że jej reszta z dzielenia przez 2 wynosi 0. Jeśli warunek jest spełniony, liczba i jest dodawana do zmiennej w. W efekcie po zakończeniu pętli zmienna w zawiera sumę wszystkich parzystych liczb mniejszych niż 50. Przykładem praktycznego zastosowania takiego algorytmu może być sytuacja, w której musimy szybko obliczyć sumę określonego zbioru liczb spełniających dane kryterium, co jest częste w analizie danych lub generowaniu raportów. Konstrukcje takie jak pętla for i operator modulo są podstawowymi narzędziami w programowaniu, pozwalającymi na efektywne przetwarzanie danych i automatyzację złożonych operacji obliczeniowych, co jest zgodne z dobrymi praktykami w branży IT.

Pytanie 27

Jaki typ mechanizmu zapewnienia bezpieczeństwa podczas uruchamiania aplikacji jest zawarty w środowisku .NET Framework?

A. Mechanizm wykonywania aplikacji dla bibliotek klas
B. Mechanizm wykonywania aplikacji oparty na uprawnieniach kodu (CAS - Code Access Security) oraz na rolach (RBS - Role-Based Security)
C. Mechanizm wykonywania aplikacji realizowany przez funkcję Windows API (Application Programming Interface)
D. Mechanizm wykonywania aplikacji realizowany przez frameworki aplikacji webowych (ASP.NET)
Mechanizmy bezpieczeństwa w .NET Framework obejmują różne podejścia, ale odpowiedzi odnoszące się do frameworków aplikacji internetowych, bibliotek klas czy funkcji Windows API nie są stosowane jako główne metody kontroli bezpieczeństwa aplikacji. Frameworki aplikacji internetowych, takie jak ASP.NET, zapewniają pewne funkcjonalności bezpieczeństwa, ale nie są one mechanizmami kontroli dostępu samodzielnie. Kluczowym błędem jest mylenie frameworków z mechanizmami bezpieczeństwa; same frameworki to zestawy narzędzi do budowy aplikacji, które mogą implementować różne mechanizmy, ale bezpieczeństwo nie jest ich jedyną funkcją. Z kolei mechanizmy dla bibliotek klas wiążą się głównie z udostępnianiem kodu i zarządzaniem jego użyciem, a nie z jego bezpieczeństwem. Co więcej, odwoływanie się do funkcji Windows API jako mechanizmu wykonywania aplikacji jest mylące, ponieważ API to zestaw funkcji umożliwiających interakcję z systemem operacyjnym, a nie środowisko uruchomieniowe. Rozumienie różnicy między tymi pojęciami jest istotne, aby nie wprowadzać się w błąd co do zabezpieczeń aplikacji i ich implementacji. Prawidłowe podejście do bezpieczeństwa wymaga znajomości zarówno standardów, jak i najlepszych praktyk związanych z zarządzaniem uprawnieniami oraz monitorowaniem dostępu, co jest kluczowe w kontekście tworzenia trudnych do przełamania aplikacji.

Pytanie 28

Funkcją w PHP, która służy do tworzenia ciasteczek, jest

A. addcokie()
B. echocokie()
C. createcookie()
D. setcookie()
Funkcja setcookie() w języku PHP jest kluczowym narzędziem do zarządzania ciasteczkami (cookies) na poziomie serwera. Umożliwia ona tworzenie i konfigurowanie ciasteczek, które następnie są przesyłane do przeglądarki użytkownika. Ciasteczka są używane do przechowywania informacji o sesji, preferencjach użytkownika oraz danych śledzących. Funkcja setcookie() przyjmuje kilka argumentów, w tym nazwę ciasteczka, jego wartość, czas wygaśnięcia (w postaci znacznika czasowego), ścieżkę, domenę oraz flagi bezpieczeństwa. Przykładowe użycie funkcji może wyglądać następująco: setcookie('user', 'John Doe', time() + 86400, '/'); co tworzy ciasteczko o nazwie 'user', z wartością 'John Doe', które wygasa po jednym dniu. Ważne jest, aby zwrócić uwagę, że funkcja ta musi być wywoływana przed jakimkolwiek wysyłaniem nagłówków HTTP, co oznacza, że należy ją umieścić na początku skryptu PHP. Również, aby znacząco poprawić bezpieczeństwo, warto korzystać z flagi HttpOnly, aby zminimalizować ryzyko ataków XSS. Zastosowanie setcookie() w odpowiedni sposób przyczynia się do poprawy doświadczeń użytkowników oraz zwiększa funkcjonalność aplikacji internetowych.

Pytanie 29

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

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

Pytanie 30

Wskaż pętlę w języku JavaScript, która wypisze sześć kolejnych liczb parzystych.

A. for(i=2;i<12;i+=2) {document.write(i);}
B. for(i=2;i<=12;i+=2) {document.write(i);}
C. for(i=2;i<12;i++) {i++; document.write(i);}
D. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
Prawidłowa odpowiedź to pętla for(i=2;i<=12;i+=2) {document.write(i);}, ponieważ jest ona skonstruowana w sposób, który pozwala na wyświetlenie sześciu kolejnych liczb parzystych, zaczynając od 2 do 12 włącznie. Pętla for składa się z trzech głównych części: inicjalizacji (i=2), warunku (i<=12) oraz inkrementacji (i+=2). Inicjalizacja ustawia zmienną i na 2, co jest pierwszą liczbą parzystą. Warunek i<=12 zapewnia, że pętla będzie kontynuowana do momentu, gdy i osiągnie wartość większą niż 12, co oznacza, że ostatnią liczbą, która zostanie wyświetlona, będzie 12. Inkrementacja i+=2 powoduje, że przy każdej iteracji wartość i zwiększa się o 2, co pozwala na przechodzenie pomiędzy kolejnymi liczbami parzystymi (2, 4, 6, 8, 10, 12). Taki sposób konstrukcji pętli jest zgodny z zasadami programowania w JavaScript oraz pozwala na efektywne i kontrolowane wyświetlanie danych na stronie. Istotne jest również, że wykorzystanie metody document.write() jest jedną z prostszych form wyświetlania danych w JavaScript, aczkolwiek w praktyce jest zalecane korzystanie z bardziej nowoczesnych metod, takich jak manipulacja DOM, aby uniknąć nadpisywania całej zawartości strony.

Pytanie 31

W bazie danych znajduje się tabela ksiazki, która zawiera pola: tytul, id_autora, data_wypoz oraz id_czytelnika. Co dzień generowany jest raport dotyczący książek wypożyczonych w danym dniu, który prezentuje tylko tytuły książek. Która z poniższych kwerend SQL będzie odpowiednia do utworzenia tego raportu?

A. SELECT tytul FROM ksiazki
B. SELECT tytul, data_wypoz FROM ksiazki WHERE data_wypoz = CURRDATE_NT_E()
C. SELECT tytul FROM ksiazki WHERE data_wypoz = CURRENT_DATE()
D. SELECT * FROM ksiazki
Wybrana kwerenda SQL, czyli 'SELECT tytul FROM ksiazki WHERE data_wypoz = CURRENT_DATE();', jest poprawna, ponieważ precyzyjnie spełnia wymagania zadania. Kwerenda ta wybiera jedynie tytuły książek z tabeli 'ksiazki', które zostały wypożyczone w dniu, który odpowiada bieżącej dacie. Funkcja 'CURRENT_DATE()' zwraca datę systemową w formacie YYYY-MM-DD, co pozwala na prawidłowe porównanie z polem 'data_wypoz'. Takie podejście jest zgodne z dobrymi praktykami w zakresie analizy baz danych, gdzie minimalizowanie liczby zwracanych danych do niezbędnego minimum znacząco poprawia wydajność zapytań. W praktyce, taka kwerenda może być przydatna w systemach bibliotek, które generują codzienne raporty wypożyczeń, umożliwiając bibliotekarzom szybki dostęp do informacji o książkach, które były popularne danego dnia. Warto także pamiętać o możliwości używania dodatkowych filtrów, na przykład według konkretnego czytelnika, co zwiększa funkcjonalność raportu.

Pytanie 32

W SQL, używanym w bazie danych MySQL, aby przypisać wartość 0 do kolumny przebieg w tabeli samochody, jaką kwerendę należy zastosować?

A. UPDATE przebieg SET 0 TABLE samochody
B. UPDATE samochody SET przebieg = 0
C. UPDATE samochody SET przebieg VALUE 0
D. UPDATE przebieg SET 0 FROM samochody
Odpowiedź 'UPDATE samochody SET przebieg = 0;' jest jak najbardziej trafna! W SQL używamy klauzuli UPDATE, gdy chcemy coś zmienić w naszej tabeli. W tym konkretnym przypadku ustawiamy wartość kolumny 'przebieg' na 0 dla wszystkich samochodów. Fajne jest to, że operator '=' oznacza, iż zmieniamy wartość w wybranej kolumnie. To podstawa, żeby dobrze zarządzać danymi w bazach. Warto też pomyśleć, czy naprawdę chcemy zmieniać wszystkie rekordy, czy tylko część. Można to zrobić z klauzulą WHERE. Na przykład, jeśli chcemy ustawić przebieg na 0 tylko dla aut konkretnego producenta, to użyjemy: 'UPDATE samochody SET przebieg = 0 WHERE producent = 'NazwaProducenta'. Takie działania powinny być w kontekście transakcji, żeby móc cofnąć zmiany, jeśli coś pójdzie nie tak. Rozumienie tej kwerendy to klucz do zarządzania danymi w MySQL i innych systemach.

Pytanie 33

Aby w tabeli praca, tworzonej w SQL, dodać warunek w kolumnie stawka, który nakazuje przyjmowanie dodatnich wartości rzeczywistych mniejszych niż 50, należy zastosować zapis

A. ... stawka float CHECK(stawka BETWEEN 0 AND 50.00)
B. ... stawka float CHECK(stawka IN (0, 50.00))
C. ... stawka float CHECK(stawka>0 AND stawka<50.00)
D. ... stawka float CHECK(stawka>0 OR stawka<50.00)
Pierwsza z niepoprawnych odpowiedzi wykorzystuje operator IN, który nie jest odpowiedni dla tego przypadku. Operator IN służy do sprawdzania, czy wartość znajduje się w zbiorze dozwolonych wartości. W kontekście stawki, nie ma sensu ograniczać się tylko do wartości 0 i 50.00, ponieważ chcemy, by 'stawka' mogła przyjmować wiele wartości w przedziale od 0 do 50, a nie tylko te dwa. Kolejna odpowiedź stosuje operator OR, co prowadzi do błędnej interpretacji wymagań. Użycie OR oznacza, że 'stawka' mogłaby być większa od 0 lub mniejsza od 50, co w efekcie pozwalałoby na wprowadzenie wartości, które nie spełniają założonego kryterium, takich jak liczby ujemne. Ostatnia z odpowiedzi używa operatora BETWEEN, który również nie jest odpowiedni, ponieważ tworzy zakres od 0 do 50, co nie spełnia warunku, że stawka musi być większa od 0. Zatem, wszystkie trzy odpowiedzi nie zapewniają poprawnej weryfikacji danych w kolumnie 'stawka' w tabeli SQL, co jest kluczowe dla utrzymania jakości i integralności danych.

Pytanie 34

Integralność encji w systemie baz danych będzie zapewniona, jeśli między innymi

A. dla każdej tabeli zostanie ustanowiony klucz główny
B. klucz główny zawsze będzie liczbą całkowitą
C. każdy klucz główny będzie miał odpowiadający mu klucz obcy w innej tabeli
D. każda kolumna otrzyma zdefiniowany typ danych
Odpowiedź, że dla każdej tabeli zostanie utworzony klucz główny, jest prawidłowa, ponieważ klucz główny odgrywa kluczową rolę w zapewnieniu integralności encji w bazach danych. Klucz główny to unikalny identyfikator dla każdego rekordu w tabeli, co oznacza, że nie może zawierać wartości NULL i musi być unikalny w obrębie danej tabeli. Przykładowo, w tabeli 'Klienci', kolumna 'ID_klienta' może być kluczem głównym, który jednoznacznie identyfikuje każdego klienta. Umożliwia to nie tylko prawidłową organizację danych, ale także przyspiesza operacje wyszukiwania i modyfikacji. Dodatkowo, zgodnie z normami ACID, klucz główny jest niezbędny do zapewnienia spójności i integralności danych. Dobrze zdefiniowane klucze główne są również podstawą do tworzenia kluczy obcych, co pozwala na tworzenie relacji między tabelami i wspiera strukturyzację danych w relacyjnych bazach danych.

Pytanie 35

Aby wykonać usunięcie wszystkich zapisów z tabeli, konieczne jest użycie kwerendy

A. TRUNCATE TABLE
B. INSERT INTO
C. ALTER COLUMN
D. CREATE COLUMN
Odpowiedź 'TRUNCATE TABLE' jest poprawna, ponieważ ta kwerenda służy do usuwania wszystkich rekordów z tabeli w bazach danych SQL. W przeciwieństwie do kwerendy 'DELETE', która usuwa rekordy jeden po drugim i może być stosowana z warunkiem, 'TRUNCATE TABLE' działa na poziomie strony i usuwa wszystkie wiersze za jednym razem, co czyni ją znacznie bardziej wydajną, szczególnie w przypadku dużych zbiorów danych. Gdy wykonujemy 'TRUNCATE TABLE', wszystkie dane są usuwane, a struktura tabeli pozostaje nienaruszona, co oznacza, że możemy natychmiast dodawać nowe dane do tej samej tabeli. Ponadto, użycie 'TRUNCATE TABLE' resetuje wszelkie generatory tożsamości (IDENTITY) w tabeli. W praktyce ta metoda jest często wykorzystywana w scenariuszach, gdzie potrzebne jest szybkie zresetowanie danych w tabeli, na przykład w aplikacjach testowych lub podczas czyszczenia danych w hurtowniach danych. Warto pamiętać, że 'TRUNCATE' nie można zastosować, jeśli tabela jest powiązana z innymi tabelami przez klucze obce, co jest zgodne z zasadami integralności referencyjnej w bazach danych.

Pytanie 36

Który z poniższych fragmentów kodu XHTML odpowiednio sformatuje tekst według przedstawionego wzoru?

A.

Ala ma kota
a kot ma Alę

B.

Ala ma kota
a kot ma Alę

C.

Ala ma kota
a kot ma Alę

D.

Ala ma kota
a kot ma Alę

Poprawna odpowiedź to

Ala ma kota
a kot ma Alę

. W tym kodzie XHTML tekst 'Ala ma kota' jest odpowiednio sformatowany dzięki zastosowaniu znaku , który definiuje tekst pogrubiony, oraz , który oznacza tekst kursywą. Ponadto
jest używane do wstawienia przerwy w linii, co jest zgodne z praktykami formatowania tekstu w HTML/XHTML. Zgodnie ze standardami W3C, XHTML jest stricte oparty na XML, co oznacza, że wszystkie elementy muszą być poprawnie zagnieżdżone i zamknięte. Użycie w drugiej części tekstu jest poprawne, ponieważ wskazuje na pewną formę wyróżnienia, a jednocześnie zachowuje semantykę. Przy tworzeniu stron internetowych ważne jest, aby formatowanie tekstu było zarówno estetyczne, jak i zgodne z regułami semantycznymi, co ta odpowiedź spełnia. Przykładowo, tekst ten można umieścić w dowolnym dokumencie HTML, aby zachować poprawne formatowanie, co wpływa na czytelność.

Pytanie 37

Element <meta charset="utf-8"> definiuje metadane dotyczące strony internetowej, odnosząc się do

A. słów kluczowych
B. opisu witryny
C. języka witryny
D. kodowania znaków
Ten elementjest naprawdę ważny w nagłówku stron HTML, bo to on mówi przeglądarkom, jak odczytywać znaki w Twoim dokumencie. Dzięki temu tekst wyświetla się poprawnie na różnych urządzeniach. UTF-8 jest najbardziej popularnym kodowaniem, bo obsługuje niemal wszystkie znaki z różnych języków, co sprawia, że Twoja strona może być bardziej uniwersalna. Na przykład, jeśli masz tekst po polsku, to użycie UTF-8 upewnia się, że takie znaki jak ą czy ć będą prawidłowo pokazane. Właśnie dlatego warto stosować UTF-8, bo to, co zaleca W3C, jest bardzo sensowne - chodzi przecież o to, żeby strona była dostępna dla każdego, niezależnie od tego, z jakiego języka korzysta.

Pytanie 38

Które z pól edycyjnych zostało stylizowane według podanego wzoru, zakładając, że pozostałe atrybuty pola mają wartości domyślne, a użytkownik wpisał imię Krzysztof w przeglądarce?

Ilustracja do pytania
A. Pole 1
B. Pole 4
C. Pole 2
D. Pole 3
Pole 2 zostało sformatowane zgodnie z podanym stylem CSS Ponieważ właściwość padding została ustawiona na 10px pole tekstowe ma wewnętrzny odstęp wokół zawartości co sprawia że tekst nie dotyka bezpośrednio krawędzi pola Kolor tła ustawiony na Teal odróżnia to pole od innych które mogą mieć domyślne kolory tła Biały kolor tekstu zapewniony przez właściwość color sprawia że tekst jest czytelny na ciemnym tle Brak obramowania dzięki border none powoduje że pole nie ma widocznej linii wokół siebie co nadaje mu czysty wygląd Zaokrąglenie krawędzi ustawione na 7px border-radius daje bardziej nowoczesny wygląd a także ułatwia integrację z różnymi projektami interfejsu użytkownika Takie podejście do stylizacji elementów formularzy jest zgodne z nowoczesnymi trendami projektowania stron internetowych gdzie używane są łagodne zaokrąglenia oraz odpowiednio dobrane kontrasty kolorystyczne W praktyce takie style są nie tylko estetyczne ale także poprawiają użyteczność interfejsu poprzez zwiększenie czytelności i intuicyjności obsługi formularzy Warto również zauważyć że zastosowanie CSS do formatowania elementów pozwala na zachowanie spójności wyglądu na różnych stronach oraz łatwą modyfikację w przyszłości

Pytanie 39

Jakie imiona spełniają warunek klauzuli LIKE w poniższym zapytaniu: SELECT imię FROM mieszkańcy WHERE imię LIKE '_r%';?

A. Gerald, Jarosław, Marek, Tamara
B. Rafał, Rebeka, Renata, Roksana
C. Krzysztof, Krystyna, Romuald
D. Arieta, Krzysztof, Krystyna, Tristan
Odpowiedź "Arieta, Krzysztof, Krystyna, Tristan" jest prawidłowa, ponieważ wszystkie te imiona spełniają warunki klauzuli LIKE w zapytaniu SQL. Klauzula LIKE z wzorcem '_r%' oznacza, że imię musi mieć na drugiej pozycji literę 'r' oraz może zawierać dowolne znaki po tej literze. Przykładowo, imię 'Krzysztof' ma 'r' na drugiej pozycji, tak samo jak 'Krystyna', a 'Tristan' również spełnia ten warunek. Imię 'Arieta' również odpowiada, ponieważ 'r' występuje na drugiej pozycji. W praktyce, zastosowanie klauzuli LIKE jest typowe przy wyszukiwaniu wzorców w bazach danych, co jest nieocenione przy tworzeniu systemów informacyjnych, w których istotna jest elastyczność w wyszukiwaniu. Dobra praktyka sugeruje również stosowanie operatora LIKE w połączeniu z innymi warunkami, aby zwiększyć precyzję zapytań, co z kolei przyczynia się do efektywności systemów bazodanowych.

Pytanie 40

Jakie jest zadanie poniższej pętli? ```int x = 0; while (x < 10) { mojeKsiazki[x] = new Ksiazka(); x++; }```

A. stworzenie dziesięciu instancji obiektów typu Ksiazka.
B. wyświetlenie danych z tabeli Ksiazka na ekranie.
C. uzupełnienie tablicy Ksiazka danymi.
D. stwórzenie jednego obiektu typu mojeKsiazki
W przedstawionej pętli while zmienna x jest inicjowana wartością 0, a następnie w każdej iteracji pętli tworzy nowy obiekt typu Ksiazka, który jest przypisywany do elementu tablicy mojeKsiazki w indeksie x. Pętla kontynuuje działanie, aż x osiągnie wartość 10, co oznacza, że zostaną utworzone obiekty dla indeksów od 0 do 9, co łącznie daje 10 obiektów. Jest to standardowy sposób inicjalizacji tablicy obiektów w języku C#, który pokazuje, jak można dynamicznie tworzyć i przechowywać instancje klas. W praktycznych zastosowaniach, takie podejście jest bardzo użyteczne, gdy potrzebujemy przechować wiele podobnych obiektów, na przykład w aplikacjach do zarządzania danymi, gdzie każde wpisane dane może być reprezentowane przez obiekt. Poprawna alokacja pamięci oraz zarządzanie obiektami są kluczowe w programowaniu obiektowym, a umiejętność skutecznego wykorzystywania pętli do inicjalizacji tablic jest niezbędna dla każdego programisty.