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: 10 stycznia 2025 09:43
  • Data zakończenia: 10 stycznia 2025 09:59

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

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

W języku C do przedstawiania liczb zmiennoprzecinkowych używa się typu

A. double
B. int
C. char
D. bool
Typ `char` jest przeznaczony do przechowywania pojedynczych znaków, takich jak litery i cyfry, a jego rozmiar to zazwyczaj 1 bajt. Użycie typu `char` do przechowywania liczb zmiennoprzecinkowych jest błędne, ponieważ typ ten nie ma mechanizmu do reprezentacji wartości dziesiętnych. Z kolei typ `int` jest wykorzystywany do reprezentacji liczb całkowitych, co oznacza, że nie może przechowywać wartości z częścią dziesiętną, co czyni go niewłaściwym w kontekście zmiennoprzecinkowym. Użycie `int` w obliczeniach wymagających precyzyjnych wartości dziesiętnych prowadziłoby do utraty informacji, co może być krytyczne w aplikacjach, takich jak systemy finansowe, które muszą działać z dużą dokładnością. Typ `bool` z kolei jest używany do reprezentacji wartości logicznych (prawda/fałsz) i nie ma możliwości przechowywania wartości numerycznych, co czyni go nieodpowiednim w kontekście liczb zmiennoprzecinkowych. W związku z tym, wybór odpowiedniego typu danych w programowaniu jest kluczowy dla zachowania dokładności i poprawności obliczeń. Niezrozumienie różnicy między tymi typami może prowadzić do poważnych błędów programistycznych oraz nieprecyzyjnych rezultatów w aplikacjach, co podkreśla znaczenie stosowania typów danych zgodnie z ich przeznaczeniem.

Pytanie 2

W MS SQL Server predefiniowana rola o nazwie dbcreator umożliwia użytkownikowi

A. tworzenie, aktualizowanie, usuwanie oraz przywracanie bazy danych
B. wykonywanie wszelkich operacji na serwerze oraz posiadanie praw do każdej bazy
C. zarządzanie plikami na nośniku
D. zarządzanie zabezpieczeniami systemu
Wszystkie pozostałe odpowiedzi są niepoprawne z punktu widzenia funkcji przypisanych do roli dbcreator w MS SQL Server. Stwierdzenie, że rola ta pozwala na wykonywanie każdej operacji na serwerze i posiadanie prawa własności każdej bazy, jest błędne, ponieważ taka funkcjonalność jest zarezerwowana dla roli sysadmin, która ma pełne uprawnienia serwera. Użytkownicy z rolą sysadmin mogą wykonywać jakiekolwiek operacje, co stawia ich w pozycji pełnej kontroli, w przeciwieństwie do roli dbcreator, która jest ograniczona do zarządzania bazami danych. Odnośnie zarządzania bezpieczeństwem systemu, to również nie jest odpowiednia funkcja dla dbcreator, ponieważ zarządzanie bezpieczeństwem wymaga bardziej zaawansowanych uprawnień, które są przydzielane innym rolom, takim jak securityadmin. W końcu, zarządzanie plikami na dysku nie wchodzi w zakres kompetencji dbcreator, ponieważ ta rola skupia się na operacjach związanych z bazami danych, a nie na zarządzaniu systemem plików czy innymi zasobami systemowymi. Te nieprawidłowe wnioski mogą wynikać z nieporozumienia dotyczącego funkcji ról w SQL Server, a także z braku znajomości hierarchii uprawnień oraz ich zastosowania w praktyce. Zrozumienie różnic między rolami jest kluczowe w kontekście efektywnego zarządzania bezpieczeństwem i dostępem w środowisku baz danych.

Pytanie 3

Które z wymienionych stwierdzeń na temat zasad programowania w PHP jest prawdziwe?

A. Nazwy zmiennych poprzedza znak !
B. Jest to język o słabej kontroli typów
C. Deklaracja zmiennych następuje po słowie var
D. W nazwach zmiennych nie rozróżnia się wielkości liter
Deklaracja zmiennych w PHP nie odbywa się za pomocą słowa kluczowego 'var', lecz po prostu przez przypisanie wartości do zmiennej, która musi być poprzedzona znakiem dolara ($). Ten błąd często wynika z przyzwyczajenia do innych języków programowania, takich jak Java czy C#, w których takie deklaracje są powszechne. W PHP, zamiast deklaracji, chodzi o dynamiczne przypisanie wartości, co sprawia, że kod jest bardziej elastyczny, ale i bardziej podatny na błędy typowe dla typów dynamicznych. W kontekście nazw zmiennych, PHP jest językiem rozróżniającym wielkość liter, co oznacza, że '$zmienna' i '$Zmienna' to dwie różne zmienne. Oznacza to, że programiści muszą być szczególnie uważni, aby unikać niezamierzonych błędów przez niewłaściwe użycie wielkości liter. Termin '!', jako znak poprzedzający zmienne, również jest błędny, ponieważ w PHP zmienne zawsze zaczynają się od '$'. Rozważając typy danych, PHP ma słabą kontrolę typów, co oznacza, że programista może zmieniać typy zmiennych w trakcie działania programu, ale nie znaczy to, że jest to język bez kontroli typów. Właściwe zarządzanie typami danych jest kluczowe dla pisania efektywnego i bezpiecznego kodu, a użytkownicy muszą rozumieć konsekwencje dynamicznej typizacji w kontekście debuggingu i przyszłej konserwacji aplikacji.

Pytanie 4

W PHP typ float oznacza

A. łańcuchowy
B. logiczny
C. zmiennoprzecinkowy
D. całkowity
Typ float w PHP to coś, co przydaje się do przechowywania liczb zmiennoprzecinkowych, a więc do liczb, które mają część dziesiętną. To naprawdę ważne, zwłaszcza jak robimy obliczenia związane z finansami czy nauką. Dzięki float możemy dokładnie przedstawić liczby rzeczywiste, co w programowaniu jest kluczowe. Te wartości są zgodne ze standardem IEEE 754, co oznacza, że można je przenosić między różnymi systemami i platformami bez problemów. Jeżeli chcesz np. obliczyć cenę z VAT-em albo policzyć coś w grze, to float jest najlepszym typem, bo pozwala na robienie precyzyjnych obliczeń z ułamkami. W PHP masz też funkcje jak round() czy number_format(), które pomagają w manipulacji tymi liczbami, co jest super przy prezentacji wyników, żeby ładnie wyglądały.

Pytanie 5

To pytanie jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się lub utwórz konto aby zobaczyć pełną treść pytania.

Odpowiedzi dostępne po zalogowaniu.

Wyjaśnienie dostępne po zalogowaniu.


Pytanie 6

Z tabeli mieszkancy trzeba wydobyć unikalne nazwy miast, w tym celu należy użyć wyrażenia SQL zawierającego klauzulę

A. CHECK
B. HAVING
C. UNIQUE
D. DISTINCT
Odpowiedzi takie jak 'UNIQUE', 'CHECK' i 'HAVING' są błędne, ponieważ nie pełnią one funkcji eliminacji duplikatów w kontekście wyboru unikalnych wartości. 'UNIQUE' jest klauzulą, która służy do definiowania ograniczeń w tabelach, gwarantując, że wartości w danej kolumnie są unikalne w kontekście wierszy w tabeli. Jest to przydatne przy projektowaniu schematów baz danych, ale nie jest stosowane w zapytaniach do selekcji danych. 'CHECK' służy do walidacji danych wprowadzanych do tabeli, zapewniając, że spełniają one określone warunki, co jest istotne przy definiowaniu reguł dotyczących wartości, jakie mogą być wprowadzane. Z kolei 'HAVING' jest używane w kontekście grupowania danych, w połączeniu z klauzulą 'GROUP BY', aby filtrować grupy w oparciu o warunki, co jest zupełnie inną operacją niż eliminacja duplikatów. Typowym błędem jest mylenie koncepcji związanych z grupowaniem i selekcją unikalnych wartości. W praktyce, korzystając z 'HAVING', nie uzyskamy unikalnych wartości z kolumny bez wcześniejszego użycia 'GROUP BY', co sprawia, że jest to narzędzie bardziej skomplikowane i mniej efektywne w kontekście prostego wyciągania unikalnych danych. Aby właściwie zrozumieć zasady dotyczące zapytań SQL, ważne jest, aby rozróżniać te różne klauzule oraz ich zastosowania, co pozwoli na bardziej świadome i efektywne korzystanie z języka SQL.

Pytanie 7

Określ rezultat działania podanego kodu PHP, jeśli zmienna tab jest tablicą. ```$tab = explode(",","jelenie,sarny,dziki,lisy,borsuki"); echo $tab[1]." ".$tab[2];```

A. sarny dziki
B. jelenie sarny
C. dziki lisy
D. lisy borsuki
Patrząc na błędne odpowiedzi, widzę, że były one wynikiem mylnego zrozumienia, jak działa funkcja explode w PHP oraz indeksowanie tablic. Na przykład, odpowiedź 'jelenie sarny' pomieszała pierwszy i drugi element tablicy, przez co wyszło coś nie tak. W PHP ważne jest, żeby pamiętać, że tablice zaczynają się od zera, czyli pierwszy element to tablica[0], a drugi to tablica[1]. Kolejna błędna odpowiedź, 'lisy borsuki', też nie brała pod uwagę tego faktu, odwołując się do elementów na końcu tablicy, co jest sprzeczne z kodem. A odpowiedź 'dziki lisy' to już całkowite zignorowanie porządku elementów w tablicy, co ma kluczowe znaczenie, gdy je wywołujemy. Żeby uniknąć takich pomyłek, programiści powinni zwracać uwagę na indeksy tablic i wiedzieć, jak działa funkcja explode. Zrozumienie tych podstawowych zasad w PHP jest istotne dla skutecznego przetwarzania danych i unikania typowych błędów w kodzie.

Pytanie 8

Kwalifikatory dostępu: private, protected oraz public określają mechanizm

A. hermetyzacji
B. rekurencji
C. przeładowania
D. polimorfizmu
Wybór innych odpowiedzi, takich jak przeładowanie, polimorfizm czy rekurencja, wskazuje na pewne nieporozumienia dotyczące podstawowych zasad programowania obiektowego. Przeładowanie to technika, która pozwala na definiowanie wielu metod o tej samej nazwie, ale różniących się typem lub liczbą parametrów. Nie ma to jednak związku z zarządzaniem dostępem do danych obiektowych. Polimorfizm odnosi się do zdolności obiektów do przyjmowania różnych form, co jest kluczowe w kontekście dziedziczenia, lecz również nie dotyczy mechanizmu ograniczania dostępu do składników klas. Z kolei rekurencja jest techniką programowania, w której funkcja wywołuje samą siebie, co wprowadza zupełnie inny kontekst i nie ma związku z kwalifikatorami dostępu. Wybór tych odpowiedzi może wynikać z niepełnego zrozumienia roli hermetyzacji w programowaniu obiektowym. Warto zwrócić uwagę, że hermetyzacja ma na celu zwiększenie bezpieczeństwa oraz kontroli dostępu do danych, co jest kluczowe w tworzeniu oprogramowania. Niezrozumienie tych koncepcji może prowadzić do tworzenia kodu, który jest trudny do utrzymania i narażony na błędy, co jest sprzeczne z najlepszymi praktykami w branży.

Pytanie 9

W jakiej technologii <u><strong>nie zachodzi</strong></u> możliwość przetwarzania danych wprowadzanych przez użytkowników na stronach internetowych?

A. PHP
B. CSS
C. JavaScript
D. AJAX
AJAX, PHP i JavaScript to języki oraz technologie, które umożliwiają przetwarzanie danych użytkownika wprowadzanych na stronach internetowych. AJAX (Asynchronous JavaScript and XML) pozwala na asynchroniczną komunikację z serwerem, co oznacza, że użytkownik może przesyłać dane, np. z formularza, bez konieczności przeładowania całej strony. Dzięki temu doświadczenie użytkownika jest bardziej płynne i interaktywne. PHP to język skryptowy po stronie serwera, który jest często używany do przetwarzania danych, takich jak zapisywanie informacji do bazy danych czy generowanie dynamicznych treści na stronie. Umożliwia on również walidację danych przed ich przesłaniem do serwera. JavaScript, z kolei, działa po stronie klienta i może reagować na interakcje użytkownika, takie jak kliknięcia, zmiany w polach formularzy czy nawigacja po stronie, pozwalając na manipulację danymi w czasie rzeczywistym. Typowym błędem myślowym jest myślenie, że CSS może pełnić funkcje, które są zarezerwowane dla języków programowania. Użytkownicy często mylą rolę CSS jako narzędzia do interakcji, podczas gdy w rzeczywistości jest on jedynie odpowiedzialny za prezentację. Uzupełniając CSS o JavaScript czy PHP, można zbudować kompletną, interaktywną aplikację webową, która efektywnie przetwarza dane użytkowników.

Pytanie 10

W HTML, aby utworzyć sekcję z cytatem, która może zawierać wiele akapitów i aby przeglądarka dodała wspólne wcięcie, trzeba użyć znacznika

A. <q>
B. <indent>
C. <blockq>
D. <blockquote>
Znacznik <blockquote> jest odpowiedni do definiowania sekcji cytatu w HTML, szczególnie gdy cytat obejmuje kilka paragrafów. Użycie tego znacznika nie tylko wizualnie oddziela cytat od reszty tekstu, ale także automatycznie dodaje standardowe wcięcie, co poprawia czytelność i estetykę strony. Warto zauważyć, że <blockquote> jest zgodny z wytycznymi W3C dotyczącymi semantyki kodu HTML, co oznacza, że jego użycie wpływa na poprawę SEO oraz dostępności witryny. Przykładowe zastosowanie znacznika może wyglądać następująco: <blockquote><p>Tekst pierwszego paragrafu cytatu.</p><p>Tekst drugiego paragrafu cytatu.</p></blockquote>. Taki układ sprawia, że przeglądarki i czytniki ekranu prawidłowo interpretują treść jako całość, co jest szczególnie ważne dla osób z niepełnosprawnościami. Dodatkowo, stosowanie <blockquote> w połączeniu z odpowiednimi stylami CSS może znacznie poprawić wizualny aspekt cytatów na stronie.

Pytanie 11

W PHP konstrukcja foreach stanowi rodzaj

A. pętli, wyłącznie dla elementów tablicy
B. warunkową, niezależnie od typu zmiennej
C. wyboru, dla elementów tablicy
D. pętli, niezależnie od typu zmiennej
Pierwsza niepoprawna odpowiedź myli foreach z instrukcją wyboru, co jest błędne. Foreach nie wybiera elementów, tylko je przetwarza. W PHP nie mamy jakiejś instrukcji wyboru jak if-else, które różnicują zadania w zależności od warunków. Pętla foreach działa na zasadzie przetwarzania wszystkich elementów, a nie ich selekcji. Następnie, ktoś napisał, że foreach jest niezależna od typu zmiennej, co również jest mylące. W prawdziwym życiu foreach wymaga, aby zmienna była tablicą. Jakbyś wrzucił coś innego, co nie jest tablicą, PHP wyrzuci błąd, więc to nie jest uniwersalne dla wszystkich typów. Ostatnia błędna odpowiedź próbuje przypisać foreach do instrukcji warunkowej. Instrukcje warunkowe, jak if czy switch, decydują na podstawie spełniania pewnych warunków, a foreach po prostu wykonuje operację na każdym elemencie tablicy. Ważne jest, żeby zrozumieć tę różnicę, bo każda z tych konstrukcji ma swoje zastosowania, które są istotne, gdy programujemy.

Pytanie 12

Jaki jest poprawny zapis znacznika <img>, który pozwala na umieszczenie na stronie internetowej obrazu rys.jpg przeskalowanego do szerokości 120 px oraz wysokości 80 px z tekstem alternatywnym "krajobraz"?

A. <img image="rys.jpg" width="120px" height="80px" alt="krajobraz"/>
B. <img src="rys.jpg" width="120px" height="80px" alt="krajobraz"/>
C. <img src="rys.jpg" height="120px" width="80px" info="krajobraz"/>
D. <img href="rys.jpg" height="120px" width="80px" info="krajobraz"/>
Odpowiedź <img src="rys.jpg" width="120px" height="80px" alt="krajobraz"/> jest na pewno dobra! Używasz fajnego atrybutu 'src' do wskazania, skąd bierzesz obrazek, co jest super ważne. Atrybuty 'width' i 'height' też są dobrze ustawione, bo określają, jak duży ma być obrazek na stronie. To naprawdę przydaje się, zwłaszcza jak robimy responsywne strony. A ten 'alt', to świetny pomysł – daje tekst alternatywny, co bardzo pomaga osobom, które korzystają z czytników ekranu. Bez tego mogą nie wiedzieć, co jest na obrazku, a to jest spoko, bo dba o dostępność. Co do pikseli, używasz ich standardowo, ale pomyśl, że w CSS można też iść w procenty czy jednostki względne, żeby było jeszcze elastyczniej. W sumie, gdybyś chciał, mógłbyś bawić się CSS-em do stylizacji obrazów tła, co też sprawia, że wszystko lepiej się dopasowuje do różnych ekranów.

Pytanie 13

Wskaż zdanie, które jest nieprawdziwe w odniesieniu do poniższej definicji funkcji w języku C++? void zamien(float &x, float &y){ float tmp; tmp=x; x=y; y=tmp; }

A. Funkcja ma dwa argumenty
B. Funkcja nie zwraca żadnej wartości
C. Funkcja korzysta z parametrów przez referencję
D. Funkcja zwraca jakąś wartość
Funkcja zamien jest przykładem funkcji w języku C++, która nie zwraca wartości. Zdefiniowana jako 'void', co oznacza, że nie ma zwracanej wartości. W C++ typ zwracany przez funkcję jest kluczowym elementem definicji funkcji. W przypadku, gdy funkcja jest określona jako 'void', użytkownik nie powinien oczekiwać, że funkcja przekaże jakąkolwiek wartość po jej zakończeniu. Funkcja ta przyjmuje dwa argumenty typu 'float' przekazywane przez referencję, co pozwala na modyfikację ich wartości bezpośrednio w miejscu ich wywołania. Przykładowo, jeżeli zmienne 'x' i 'y' mają przypisane wartości 5.0 i 10.0 przed wywołaniem funkcji, po jej wykonaniu ich wartości zmienią się na odpowiednio 10.0 i 5.0. Oznacza to, że modyfikacja wartości zmiennych zewnętrznych jest możliwa dzięki użyciu referencji. W praktyce oznacza to także, że nie ma potrzeby korzystania z dodatkowych zmiennych do przechowywania wyników, co może być wydajniejsze. Funkcje 'void' są często stosowane w przypadkach, gdy operacje nie wymagają zwracania wyników, a jedynie modyfikacji przekazanych argumentów.

Pytanie 14

W przypadku zaprezentowanego fragmentu kodu HTML, zdefiniowano zasady CSS dla selektora klasy "menu", aby tło bloku miało kolor zielony. Która z poniższych definicji stylu CSS jest zgodna z tym formatowaniem?

A. menu { background-color: rgb(0,255,0); }
B. #menu { background-color: rgb(0,255,0); }
C. div:menu { color: green; }
D. div.menu { background-color: green; }
Wybrana odpowiedź to poprawna definicja stylu CSS dla klasy "menu". W stylach CSS, selektor klasy definiuje się za pomocą kropki przed nazwą klasy, co w przypadku tego fragmentu oznacza, że styl zostanie zastosowany do każdego elementu HTML z klasą 'menu'. Oznaczenie 'div.menu' wskazuje, że formatowanie dotyczy tylko elementów <div> o klasie 'menu', co jest ważne, aby ograniczyć wpływ stylów tylko do wybranych elementów. Kolor tła jest ustawiony na zielony za pomocą właściwości 'background-color: green;', co jest zgodne z wymogami zadania. Używanie kolorów w formacie nazwanym, takim jak 'green', jest zgodne z powszechnie przyjętymi standardami w CSS, co ułatwia czytelność kodu. Przykładem praktycznym może być zastosowanie tego stylu w serwisie internetowym, gdzie różne sekcje menu są kolorystycznie wydzielone dla lepszej nawigacji. Dobrych praktyk w CSS należy przestrzegać, aby utrzymać spójność i łatwość w utrzymaniu kodu.

Pytanie 15

Jaką złożoność obliczeniową mają problemy związane z przeprowadzaniem operacji na łańcuchach lub tablicach w przypadku dwóch zagnieżdżonych pętli przetwarzających wszystkie elementy?

A. O(n!)
B. O(log n)
C. O(n2)
D. O(n)
Odpowiedź O(n²) jest jak najbardziej trafna. Wiesz, jak to działa? Gdy masz dwie zagnieżdżone pętle, które przetwarzają elementy w kolekcji, to liczba operacji rośnie kwadratowo w zależności od tego, ile tych elementów masz. Dla n elementów w tablicy, każda z tych n elementów wymaga n operacji w drugiej pętli, co daje razem n*n, czyli n². Przykłady? Algorytmy sortowania bąbelkowego czy przez wstawianie świetnie to ilustrują – obydwa działają w czasie O(n²). Pamiętaj, że jako programiści musimy zwracać uwagę na złożoność algorytmów, bo to wpływa na wydajność naszych aplikacji, szczególnie gdy mamy do czynienia z dużymi zbiorami danych. Dobrze jest próbować optymalizować złożoność, żeby nie wpaść w pułapki wydajnościowe. No i fakt, przy problemach, gdzie musimy porównywać wszystkie elementy, O(n²) to często jedyna opcja, która się sprawdza.

Pytanie 16

Co uzyskujemy po wykonaniu zapytania SQL?

Ilustracja do pytania
A. suma ocen uczniów, których średnia ocen wynosi 5
B. całkowitą liczbę uczniów
C. średnią wszystkich ocen uczniów
D. liczbę uczniów, których średnia ocen wynosi 5
Zapytanie SQL SELECT count(*) FROM Uczniowie WHERE srednia = 5; wykorzystuje funkcję agregującą count(*), która służy do zliczania liczby wierszy spełniających określone warunki. W tym przypadku warunkiem jest srednia = 5 co oznacza że zapytanie zlicza wszystkich uczniów których średnia ocen wynosi dokładnie 5. Jest to powszechna praktyka w analizie danych gdzie często potrzebujemy określić liczebność pewnych grup danych na przykład aby przeanalizować ich rozkład lub porównać je z innymi grupami. W profesjonalnej bazie danych zliczanie wierszy na podstawie kryteriów jest standardem co umożliwia generowanie raportów i podejmowanie decyzji na podstawie danych. Użycie count(*) bez dodatkowych parametrów jest zgodne z dobrymi praktykami ponieważ jest wydajne i łatwe w interpretacji. W praktyce stosowanie tego typu zapytań jest nieodzowne w działach analizy danych zarządzania relacjami z klientami czy w edukacji gdzie analizujemy wyniki uczniów.

Pytanie 17

Kod w języku PHP przedstawia się następująco (patrz ramka): Zakładając, że zmienne: a, b, c mają wartości numeryczne, wynik warunku będzie skutkował wypisaniem liczby

Ilustracja do pytania
A. parzystej.
B. najmniejszej.
C. nieparzystej.
D. największej.
Kod PHP używa instrukcji warunkowych if aby porównać wartości trzech zmiennych a b i c. Pierwsza instrukcja if sprawdza czy a jest większe od b i c. Jeśli tak to echo a wyświetla wartość a jako największą. Jeśli ten warunek nie jest spełniony sprawdzamy czy b jest większe od c za pomocą else if. Jeśli b jest rzeczywiście większe to echo b wyświetla wartość b. W przeciwnym razie instrukcja else zakłada że c jest największe i wyświetla echo c. To podejście jest powszechnie stosowane w programowaniu i opiera się na dobrej praktyce stopniowego eliminowania przypadków poprzez logiczne porównania. Znajomość takich konstrukcji jest kluczowa w codziennej pracy programisty umożliwiając tworzenie efektywnego i czytelnego kodu. Tego rodzaju struktura logiczna należy do podstawowych elementów algorytmiki w programowaniu proceduralnym i obiektowym. Rozumienie jak struktury kontrolne wpływają na przepływ programu jest podstawą efektywnego kodowania oraz rozwiązywania problemów poprzez algorytmy.

Pytanie 18

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

A. WHERE punkty > 3000 AND liczbaZakupow > 100 AND ostatnieZakupy >= '2022-01-01'
B. WHERE punkty > 3000 AND liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
C. WHERE (punkty > 3000 OR liczbaZakupow > 100) AND ostatnieZakupy >= '2022-01'
D. WHERE punkty > 3000 OR liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
W przypadku pozostałych odpowiedzi pojawiają się istotne błędy związane z logiką stosowania operatorów w klauzuli WHERE. W pierwszej z niepoprawnych opcji zastosowano operator OR w połączeniu z operatorami AND, co prowadzi do niejednoznaczności w logice kwerendy. Taki zapis sugeruje, że każdy klient, który spełnia tylko jeden z podanych warunków, zostanie wybrany, co nie jest zgodne z wymaganiami zadania. W drugim przypadku, zastosowanie operatora AND dla wszystkich warunków implikuje, że klient musi jednocześnie spełniać wszystkie trzy warunki, co znacząco zawęża grupę wyników i może prowadzić do pominięcia klientów, którzy są wartościowi z punktu widzenia transakcji, ale nie spełniają wszystkich kryteriów jednocześnie. W ostatniej opcji również zastosowano operator AND we wszystkich warunkach, co jest niezgodne z zamysłem zapytania. Ważne jest, aby w takich sytuacjach dobrze rozumieć logikę operacji logicznych oraz ich konsekwencje w praktyce. Kluczowym błędem jest nieodpowiednie zrozumienie relacji między warunkami oraz ich wzajemnego wpływu na ostateczny wynik zapytania. W SQL istotne jest precyzyjne formułowanie zapytań, aby uniknąć niezamierzonych wyników, dlatego warto na etapie pisania schematów myśleć o logice, która będzie spełniać założone cele analizy danych.

Pytanie 19

Aby wykonać usunięcie wszystkich wpisów z tabeli, należy użyć kwerendy

A. CREATE COLUMN
B. INSERT INTO
C. ALTER COLUMN
D. TRUNCATE TABLE
Odpowiedź 'TRUNCATE TABLE' jest prawidłowa, ponieważ jest to polecenie w języku SQL służące do usuwania wszystkich rekordów z tabeli w sposób efektywny i bezpieczny. W przeciwieństwie do polecenia 'DELETE', które również usuwa rekordy, 'TRUNCATE TABLE' działa znacznie szybciej, ponieważ nie rejestruje każdego usunięcia w dzienniku transakcji, co zmniejsza obciążenie systemu. Przykład zastosowania: jeśli mamy tabelę 'Pracownicy' i chcemy usunąć wszystkie dane przed jej ponownym załadowaniem, możemy użyć kwerendy 'TRUNCATE TABLE Pracownicy;'. Warto zauważyć, że 'TRUNCATE TABLE' nie tylko usuwa dane, ale również resetuje wszelkie automatyczne inkrementacje kluczy podstawowych w tabeli. Stosując to polecenie, zachowujemy integralność danych oraz optymalizujemy czas operacji, co jest zgodne z najlepszymi praktykami w zarządzaniu bazami danych.

Pytanie 20

W języku PHP wykorzystano funkcję ```is_float()```. Które z poniższych wywołań tej funkcji zwróci rezultat true?

A. is_float('3,34')
B. is_float(3.34)
C. is_float(NULL)
D. is_float(334)
Zrozumienie, co dokładnie zwraca funkcja is_float(), jest bardzo ważne, jeśli chce się dobrze pracować z typami danych w PHP. Na przykład, jak wpiszesz is_float(334), to dostaniesz false, bo 334 to liczba całkowita, a nie zmiennoprzecinkowa. To może być mylące, bo nie każdy wie, że float to coś konkretnego. Podobnie jest z is_float(NULL) - zwraca false, bo NULL to jakby brak wartości, a nie liczba. Jeszcze jedno – jakbyś wywołał is_float('3,34'), to też dostaniesz false, bo PHP nie rozpozna tego jako float; to traktuje jako tekst. PHP nie konwertuje automatycznie tekstu na float, zwłaszcza jak używasz przecinka, zamiast kropki. Te błędy często biorą się stąd, że ludzie myślą, że PHP sam zrozumie, co mają na myśli. Dlatego warto ogarnąć, jak działa typowanie w PHP i jak używać funkcji tych sprawdzających typy, jak is_float(). Dzięki temu twój kod będzie bardziej stabilny i unikniesz błędów przy jego działaniu.

Pytanie 21

Funkcja zapisana w języku PHP wygląda tak patrz ramka): Jej celem jest

Ilustracja do pytania
A. zwrócenie wartości 0, gdy liczba jest parzysta
B. zwrócenie wartości 1, gdy liczba jest parzysta
C. wypisanie liczby nieparzystej
D. wypisanie liczby parzystej
Funkcja w języku PHP jest zapisana w taki sposób że przyjmuje jeden argument liczba i sprawdza czy jest on parzysty. Używa operatora modulo % który zwraca resztę z dzielenia. Jeśli liczba podzielona przez 2 daje resztę równą 0 oznacza to że jest parzysta. W takim przypadku funkcja zwraca wartość 1. W przeciwnym razie czyli gdy liczba jest nieparzysta funkcja zwraca 0. Takie podejście jest częstym wzorcem w programowaniu gdyż pozwala na szybkie i efektywne sprawdzenie parzystości liczby. Stosowanie operatora modulo jest standardem w wielu językach programowania dzięki czemu kod jest zrozumiały i łatwo go przenieść między różnymi platformami. W praktyce takie funkcje mogą być używane w algorytmach gdzie konieczne jest filtrowanie danych na podstawie parzystości lub innych podobnych kryteriów. Dobre praktyki w kodowaniu w PHP obejmują również jasne nazywanie funkcji i zmiennych co poprawia czytelność i utrzymanie kodu. Można także zastanowić się nad rozszerzeniem funkcji o dodatkowe sprawdzania lub logikę w zależności od potrzeb projektu.

Pytanie 22

Zastosowanie atrybutu NOT NULL dla kolumny jest konieczne w sytuacji, gdy

A. tworzymy definicję wszystkich pól tabeli
B. mamy do czynienia z kluczem podstawowym
C. definiujemy wszystkie pola o typie numerycznym
D. korzystamy z atrybutu DEFAULT
Atrybut NOT NULL jest kluczowym elementem definiującym kolumny w bazach danych, szczególnie w kontekście kluczy podstawowych. Klucz podstawowy, będący unikalnym identyfikatorem wierszy w tabeli, nie może zawierać wartości NULL, ponieważ jego główną funkcją jest zapewnienie jednoznacznej identyfikacji każdej instancji danych. W praktyce, definiując klucz podstawowy, programiści są zobowiązani do użycia atrybutu NOT NULL dla wszystkich kolumn, które ten klucz obejmuje. Przykładowo, w tabeli 'Użytkownicy', pole 'ID_Użytkownika' może być kluczem podstawowym z definicją 'ID_Użytkownika INT NOT NULL PRIMARY KEY'. Dzięki temu, każda wartość w tej kolumnie jest unikalna i nie może być pusta. Zastosowanie NOT NULL w kontekście kluczy podstawowych jest zgodne z zasadami normalizacji bazy danych, co zwiększa integralność danych oraz ułatwia zarządzanie informacjami.

Pytanie 23

DOM oferuje funkcje i atrybuty, które w JavaScript umożliwiają

A. pobieranie i modyfikowanie elementów strony załadowanej w przeglądarce
B. manipulowanie łańcuchami zadeklarowanymi w kodzie
C. wykonywanie operacji na zmiennych przechowujących wartości liczbowe
D. przesyłanie danych formularza bezpośrednio do bazy danych
DOM (Document Object Model) to interfejs programistyczny, który umożliwia manipulację strukturą dokumentu HTML lub XML za pomocą języka JavaScript. Odpowiedź dotycząca pobierania i modyfikowania elementów strony jest poprawna, ponieważ DOM dostarcza zestaw metod, takich jak getElementById, getElementsByClassName, czy querySelector, które pozwalają programistom na selekcję, edytowanie, dodawanie lub usuwanie elementów w drzewie DOM. Na przykład, używając metody document.getElementById('example'), możemy uzyskać dostęp do konkretnego elementu na stronie oraz zmienić jego zawartość, styl czy atrybuty. Takie manipulacje są kluczowe w tworzeniu interaktywnych aplikacji webowych, które reagują na działania użytkownika, co jest zgodne z najlepszymi praktykami w zakresie programowania front-end. Zmiany w DOM mogą także wpływać na wydajność strony, dlatego stosowanie odpowiednich metod i technik, takich jak unikanie zbyt częstych reflowów czy repaints, jest niezbędne dla optymalizacji. Warto również zaznaczyć, że stosowanie bibliotek, takich jak jQuery, może uprościć proces manipulacji DOM.

Pytanie 24

W języku HTML, aby połączyć w pionie dwie sąsiadujące komórki w kolumnie tabeli, należy użyć atrybutu

A. rowspan
B. cellspacing
C. cellpadding
D. colspan
Atrybut rowspan w języku HTML jest kluczowy do scalania komórek tabeli w pionie, co oznacza, że pozwala na połączenie dwóch lub więcej komórek w jednej kolumnie w jedną, większą komórkę. Dzięki temu, można uzyskać bardziej przejrzysty i zorganizowany układ informacji w tabelach, zwłaszcza w przypadku danych, które są ze sobą powiązane. Na przykład, jeśli mamy tabelę, w której jeden z wierszy odnosi się do tytułu kategorii, a poniżej znajdują się różne elementy tej kategorii, użycie atrybutu rowspan w pierwszej komórce umożliwi jej rozszerzenie na kilka wierszy, co wizualnie połączy te dane. Standard HTML5 definiuje atrybut rowspan jako atrybut, który przyjmuje wartość liczbową, określającą liczbę wierszy, które mają zostać scalone. Przykładowy kod HTML mógłby wyglądać następująco: <table><tr><td rowspan='3'>Kategoria</td><td>Element 1</td></tr><tr><td>Element 2</td></tr><tr><td>Element 3</td></tr></table>, co w efekcie tworzy jedną komórkę o wysokości trzech wierszy oraz trzy osobne komórki w drugiej kolumnie. Użycie rowspan w praktyce jest nie tylko estetyczne, ale również poprawia czytelność danych, co jest niezmiernie ważne w interfejsach użytkownika.

Pytanie 25

Określ słowo kluczowe w języku C++, które umieszcza się przed wbudowanym typem danych, aby ograniczyć zakres do liczb wyłącznie nieujemnych.

A. short
B. const
C. long
D. unsigned
Wybranie innego słowa kluczowego zamiast 'unsigned' może świadczyć o tym, że nie do końca rozumiesz typy danych w C++. Na przykład 'long', 'const' czy 'short' nie mają nic wspólnego z tym, żeby ograniczać wartości do nieujemnych. 'Long' po prostu daje ci większy zakres liczb niż 'int', ale nie zmienia tego, że mogą być one ujemne. 'Short' z kolei zmniejsza zakres, co też nie ma związku z tym, czy liczby mogą być ujemne. A 'const' to zupełnie co innego, bo oznacza, że wartość zmiennej nie może się zmieniać po jej ustawieniu. Niektórzy programiści mylą te modyfikatory i przez to mogą się się pomylić w kodzie. Ważne jest, żeby dobrze ogarnąć, co te modyfikatory robią, żeby móc je skutecznie stosować. Używanie 'unsigned' tam, gdzie trzeba, zdecydowanie poprawia jakość kodu, co jest kluczowe w dzisiejszym programowaniu.

Pytanie 26

Aby grupować sekcje na poziomie bloków, które będą stilizowane za pomocą znaczników, jakiego należy użyć?

A. <span>
B. <p>
C. <div>
D. <param>
Znak <div> jest jednym z podstawowych elementów HTML, który służy do grupowania i organizowania zawartości w dokumentach HTML. Umożliwia on stosowanie stylów CSS oraz skryptów JavaScript na grupach elementów, co czyni go niezwykle użytecznym w budowie responsywnych i złożonych układów stron. W przeciwieństwie do znaku <p>, który zarezerwowany jest dla akapitów tekstu, lub <span>, który jest używany do izolowania niewielkich fragmentów tekstu w ramach większego kontekstu, <div> działa jako kontener wypełniający swoje otoczenie. Ponadto, <div> jest znacznikiem blokowym, co oznacza, że zajmuje całą szerokość dostępnego miejsca w swoim rodzicu, co jest kluczowe w projektowaniu układów. W praktyce może być używany do tworzenia sekcji strony, nagłówków, stopki czy artykułów, co pozwala na lepszą organizację kodu i stylów. W kontekście standardów, <div> jest częścią W3C HTML5, co zapewnia jego szeroką akceptację i zgodność z przeglądarkami. Użycie <div> do grupowania obszarów na poziomie bloków jest zatem najlepszą praktyką w nowoczesnym web designie.

Pytanie 27

Wskaż właściwą sekwencję kroków w procesie projektowania relacyjnej bazy danych?

A. Selekcja, Określenie relacji, Określenie kluczy głównych tabel, Określenie zbioru danych
B. Określenie relacji, Określenie kluczy głównych tabel, Selekcja, Określenie zbioru danych
C. Określenie zbioru danych, Selekcja, Określenie kluczy głównych tabel, Określenie relacji
D. Określenie kluczy głównych tabel, Określenie zbioru danych, Selekcja, Określenie relacji
Wybranie błędnej odpowiedzi sugeruje, że nie do końca rozumiesz, jak działa proces projektowania relacyjnej bazy danych. Kiedy kolejność kroków jest pomijana, mogą się pojawić problemy. Czasem widziałem, że klucze podstawowe są określane jeszcze przed zdefiniowaniem zbioru danych. To może prowadzić do błędnego przypisania kluczy do tabel. Klucz podstawowy powinien być oparty na wcześniej zdefiniowanych danych, żeby wszystko było unikalne i wartościowe. Jak się nie rozumie, jakie dane mają być w bazie, to ustalanie relacji na wyrost nie ma sensu. W praktyce, jeśli źle podchodzimy do projektowania bazy danych, to później mogą być kłopoty z zarządzaniem danymi, co wpłynie na efektywność naszej aplikacji. Dlatego warto skupić się na dobrze przemyślanym zbiorze danych zanim zaczniemy myśleć o kluczach i relacjach.

Pytanie 28

Baza danych MySQL została uszkodzona. Które z poniższych działań nie przyczyni się do jej naprawy?

A. Wykonanie replikacji bazy danych
B. Próba naprawy za pomocą polecenia REPAIR
C. Utworzenie nowej bazy i przeniesienie do niej tabel
D. Odtworzenie bazy z kopii zapasowej
Próba naprawy bazy danych za pomocą polecenia REPAIR może wydawać się sensownym rozwiązaniem, jednak nie zawsze jest skuteczna. REPAIR działa jedynie na tabelach, które są w formacie MyISAM, a w przypadku tabel InnoDB, które są bardziej powszechne w nowoczesnych aplikacjach, to polecenie jest bezsilne. Działania związane z naprawą w przypadku uszkodzeń bazy powinny skupiać się na odpowiednich narzędziach i procedurach specyficznych dla silnika bazy danych. Odtworzenie bazy z kopii bezpieczeństwa to proces, który jest kluczowy w zarządzaniu danymi. Jeśli mamy aktualną kopię zapasową, możemy szybko wrócić do stanu sprzed uszkodzenia, co jest najskuteczniejszym sposobem na wyeliminowanie problemów z danymi. Stworzenie nowej bazy i przeniesienie do niej tabel również nie rozwiązuje problemu, jeżeli tabele te zawierają uszkodzone dane. Tylko przeniesienie struktury tabeli nie naprawi błędów, które już występują w danych. W każdym przypadku, kluczowym krokiem przed podjęciem jakiejkolwiek akcji powinna być analiza przyczyn uszkodzenia oraz zabezpieczenie istniejących danych, zanim podejmie się dalsze kroki.

Pytanie 29

Podaj właściwą sekwencję przy tworzeniu bazy danych?

A. Zdefiniowanie celu, normalizacja, utworzenie relacji, stworzenie tabel
B. Zdefiniowanie celu, utworzenie relacji, stworzenie tabel, normalizacja
C. Zdefiniowanie celu, normalizacja, utworzenie tabel, stworzenie relacji
D. Zdefiniowanie celu, stworzenie tabel, utworzenie relacji, normalizacja
Niepoprawne odpowiedzi często pomijają kluczowe kroki lub nieprawidłowo je kolejkują. Ważne jest, aby zrozumieć, że określenie celu przed rozpoczęciem jakiejkolwiek pracy nad bazą danych jest fundamentem, na którym opiera się cały proces projektowania. Pominienie tego kroku, jak w przypadku odpowiedzi, która sugeruje rozpoczęcie od stworzenia tabel, prowadzi do stworzenia struktury, która może nie odpowiadać rzeczywistym potrzebom użytkowników. Z kolei utworzenie relacji przed normalizacją może skutkować nieefektywnymi powiązaniami między danymi, co w dłuższej perspektywie prowadzi do problemów z integralnością danych. W praktyce, normalizacja powinna być przeprowadzana po utworzeniu relacji, aby można było odpowiednio zoptymalizować strukturę bazy. Często spotykanym błędem jest także mylenie etapy projektowania bazy danych z jej implementacją, co skutkuje brakiem klarowności w dalszych pracach. Kluczowe jest, aby każdy etap był przemyślany i oparty na solidnych podstawach analitycznych, co pozwala na uniknięcie problemów w przyszłości związanych z wydajnością i skalowalnością bazy danych.

Pytanie 30

W formularzu HTML użyto znacznika &lt;input&gt;. Pole to będzie służyło do wprowadzania maksymalnie<table border="1"> <tr> <td> <pre><code>&lt;input type="password" size="30" maxlength="20"&gt;</code></pre> </td> </tr> </table>

A. 20 znaków, które nie są widoczne w polu tekstowym
B. 30 znaków, które są widoczne w trakcie wprowadzania
C. 20 znaków, które są widoczne w trakcie wprowadzania
D. 30 znaków, które nie są widoczne w polu tekstowym
Poprawna odpowiedź to 20 znaków, które nie są widoczne w polu tekstowym. Znacznik <input type="password"> w HTML jest używany do tworzenia pól wprowadzania, w których hasła lub inne wrażliwe dane są maskowane, co oznacza, że wpisywane znaki są pokazywane jako symbole, zwykle kropki. W atrybucie 'maxlength' określa się maksymalną liczbę znaków, które użytkownik może wprowadzić. W tym przypadku, atrybut 'maxlength="20"' oznacza, że użytkownik może wprowadzić maksymalnie 20 znaków, ale nie będą one widoczne w polu tekstowym, co zwiększa bezpieczeństwo. Dobrym przykładem zastosowania tego typu pola jest logowanie do systemów, gdzie ochrona danych użytkownika jest kluczowa. Stosowanie pól typu 'password' jest zgodne z zasadami ochrony prywatności i dobrymi praktykami w zakresie projektowania interfejsów użytkownika, które wymagają maskowania danych w celu minimalizacji ryzyka ich ujawnienia.

Pytanie 31

Skrypt strony internetowej stworzony w PHP

A. jest realizowany po stronie klienta
B. jest przetwarzany na tych samych zasadach co JavaScript
C. może być uruchomiony bez wsparcia serwera WWW
D. jest realizowany po stronie serwera
Kod strony WWW napisanej w języku PHP jest wykonywany po stronie serwera, co oznacza, że cały proces przetwarzania kodu zachodzi na serwerze, zanim strona zostanie wysłana do przeglądarki użytkownika. PHP jest językiem skryptowym, który generuje dynamiczne treści oraz może wchodzić w interakcje z bazami danych, co czyni go niezwykle efektywnym narzędziem do tworzenia aplikacji webowych. Przykładowo, gdy użytkownik wysyła formularz, skrypt PHP na serwerze może przetworzyć dane, a następnie wygenerować odpowiednią stronę HTML, która jest następnie przesyłana do klienta. Dodatkowo, PHP wspiera różne standardy, takie jak RESTful API, co pozwala na łatwe integrowanie z innymi systemami oraz aplikacjami. Warto także zauważyć, że PHP ma szeroką gamę frameworków, takich jak Laravel czy Symfony, które jeszcze bardziej ułatwiają rozwój aplikacji webowych poprzez dostarczanie gotowych rozwiązań oraz najlepszych praktyk. Z tego względu, znajomość PHP oraz jego działania po stronie serwera jest kluczowa dla każdego dewelopera webowego, który pragnie tworzyć nowoczesne i efektywne aplikacje.

Pytanie 32

Która z metod komentowania kodu nie jest używana w PHP?

A. /* komentarz */
B. <!-- komentarz -->
C. // komentarz
D. # komentarz
Pierwsze trzy odpowiedzi sugerują metody komentowania, które są rzeczywiście stosowane w PHP, co może prowadzić do zamieszania. Komentarz zaczynający się od znaku '#' jest często używany w innych językach programowania, takich jak Bash czy Python, ale nie jest dozwolony w PHP. Użycie '#' w PHP spowoduje błąd podczas wykonania skryptu, ponieważ interpreter PHP nie rozpoznaje tego znaku jako oznaczenia początku komentarza. Podobnie, komentarz oznaczony jako '//' dla jednoliniowych komentarzy oraz '/* ... */' dla wieloliniowych komentarzy są standardowo stosowane w PHP i pozwalają na tworzenie jasnych oraz zrozumiałych sekcji kodu. Dzięki nim programiści mogą łatwo wprowadzać objaśnienia lub wykluczać fragmenty kodu bez ich usuwania. Użycie dobrze ustrukturyzowanych komentarzy jest kluczowe dla wsparcia przyszłych zespołów developerskich w rozwoju projektów. Ponadto, niepoprawne podejście do komentowania kodu może prowadzić do błędów i nieporozumień w zespole. Komentarze pełnią funkcję dokumentacyjną i powinny jasno opisywać logikę kodu, co jest istotne w kontekście rozwoju oprogramowania, w szczególności w dużych projektach, gdzie wiele osób pracuje nad tym samym kodem. Dlatego ważne jest, aby stosować właściwe metody i unikać potencjalnych pułapek związanych z używaniem niepoprawnych składni komentarzy.

Pytanie 33

Który składnik języka HTML jest niezbędny, aby uniknąć błędu w walidacji HTML5?

A. przynajmniej jednego <h1>
B. <meta name="author" content="....">
C. prologu <!DOCTYPE html>
D. <body>
Brak prologu <!DOCTYPE html> w dokumencie HTML5 prowadzi do nieprawidłowego działania strony, ale inne elementy również odgrywają istotne role. <meta name="author" content="...."> jest używany do wskazania autora dokumentu, jednak jego brak nie spowoduje błędu walidatora HTML5. Ta informacja jest pomocna w kontekście SEO i nie wpływa na sposób, w jaki strona jest renderowana przez przeglądarki. Podobnie, przynajmniej jedno wystąpienie nagłówka <h1> jest zalecane dla SEO i struktury dokumentu, ale nie jest to element wymagany do uznania dokumentu za poprawny. Brak <h1> może prowadzić do problemów z dostępnością i indeksowaniem, lecz nie spowoduje błędu walidacji. Element <body> jest z kolei kluczowy dla struktury dokumentu, ponieważ zawiera widoczną zawartość strony. Jego brak spowoduje problemy z renderowaniem, ale nie wpłynie na walidację do poziomu HTML5. Warto zauważyć, że typowe błędy myślowe mogą prowadzić do przekonania, że każdy element jest równie ważny dla walidacji dokumentu, tymczasem to <!DOCTYPE html> pełni unikalną rolę w definiowaniu, że przeglądarka powinna interpretować stronę jako HTML5. Znajomość tych różnic jest kluczowa dla skutecznego tworzenia stron internetowych zgodnych ze standardami.

Pytanie 34

Jakie polecenie pozwala na zwiększenie wartości o jeden w kolumnie RokStudiów w tabeli Studenci dla uczniów, którzy są na roku 1÷4?

A. UPDATE RokStudiow SET RokStudiow++ WHERE RokStudiow < 5
B. UPDATE Studenci, RokStudiow+1 WHERE RokStudiow < 5
C. UPDATE Studenci SET RokStudiow = RokStudiow+1 WHERE RokStudiow < 5
D. UPDATE Studenci SET RokStudiow WHERE RokStudiow < 5
Odpowiedzi, które nie są zgodne z właściwą składnią i logiką SQL, prowadzą do nieprawidłowych aktualizacji w bazie danych. Pierwsze podejście, 'UPDATE Studenci, RokStudiow+1 WHERE RokStudiow < 5;', jest błędne, ponieważ nie wykorzystuje poprawnej struktury polecenia UPDATE. W SQL należy określić kolumnę, która ma być zaktualizowana, a nie używać dodatkowego wyrażenia w sekcji FROM. Drugie podejście, 'UPDATE Studenci SET RokStudiow WHERE RokStudiow < 5;', jest również niekompletne, ponieważ brakuje w nim informacji o nowej wartości, którą należy przypisać. W tym przypadku, SET wymaga zarówno kolumny, jak i nowej wartości. Z kolei trzecia odpowiedź, 'UPDATE RokStudiow SET RokStudiow++ WHERE RokStudiow < 5;', nie jest zgodna z składnią SQL, jako że operator '++' nie jest uznawany w standardzie SQL. Błędy te często wynikają z niewłaściwego zrozumienia, jak działa aktualizacja danych w SQL, co może prowadzić do niepoprawnych lub nieefektywnych zapytań. Kluczowym elementem jest znajomość standardów SQL i praktyczne umiejętności ich stosowania w codziennych operacjach zarządzania danymi.

Pytanie 35

W aplikacji PHP do bazy danych została wysłana kwerenda SELECT przy pomocy funkcji mysqli_query. Jaką funkcję powinien wykorzystać użytkownik, aby ustalić, ile rekordów zostało zwróconych przez zapytanie?

A. mysqli_query
B. mysqli_num_rows
C. mysqli_fetch_row
D. mysqli_connect
Funkcja mysqli_num_rows jest kluczowym narzędziem w interakcji z bazą danych w PHP, umożliwiającym sprawdzenie liczby rekordów zwróconych przez zapytanie SELECT. Po wywołaniu mysqli_query, które wykonuje zapytanie SQL, można uzyskać wynik, który jest obiektem typu mysqli_result. Używając mysqli_num_rows, możemy szybko i efektywnie dowiedzieć się, ile rekordów zostało zwróconych przez to zapytanie. Przykładowo, po wykonaniu zapytania do bazy danych można użyć poniższego kodu: $result = mysqli_query($conn, 'SELECT * FROM users'); $count = mysqli_num_rows($result); echo 'Liczba rekordów: ' . $count;. Dzięki temu użytkownik ma pełną kontrolę nad danymi, co jest zgodne z najlepszymi praktykami w programowaniu, gdzie liczenie rekordów może być niezbędne do dalszej logiki aplikacji, jak stronicowanie wyników czy walidacja danych. Warto również wiedzieć, że mysqli_num_rows nie tylko zwraca liczbę rekordów, ale także działa wydajnie, co ma znaczenie przy dużych zbiorach danych, gdzie minimalizowanie obciążenia serwera i bazy jest kluczowe.

Pytanie 36

Tabele: Firmy oraz Zamówienia są ze sobą powiązane relacją jeden do wielu. Aby uzyskać tylko identyfikatory zamówień wraz z odpowiadającymi im nazwami firm dla przedsiębiorstw, których poziom wynosi 4, należy użyć polecenia

Ilustracja do pytania
A. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.Firmy_id = Firmy.id WHERE poziom = 4
B. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.id = Firmy.id WHERE poziom = 4
C. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy WHERE poziom = 4
D. SELECT id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.Firmy_id = Firmy.id WHERE poziom = 4
Odpowiedź numer 2 jest prawidłowa, ponieważ wykorzystuje poprawne połączenie między tabelami Zamowienia i Firmy przy użyciu klucza obcego Firmy_id, co jest zgodne z praktykami projektowania relacyjnych baz danych. Klucz obcy w tabeli Zamowienia wskazuje na klucz główny w tabeli Firmy, co odzwierciedla relację jeden do wielu, gdzie jedna firma może mieć wiele zamówień. Właściwe stosowanie kluczy obcych nie tylko poprawia integralność danych, ale także ułatwia zrozumienie struktury danych. Właściwe użycie klauzuli JOIN z warunkiem ON pozwala na efektywne powiązanie rekordów z obu tabel. Warunek WHERE poziom = 4 pozwala na filtrowanie wyników, co jest kluczowe w analizie danych, umożliwiając wyodrębnienie tylko tych rekordów, które spełniają określone kryteria. Dzięki temu możemy uzyskać zestaw danych zawierający tylko te zamówienia, które pochodzą od firm o określonym poziomie, co jest częstym wymogiem w raportach biznesowych. Praktyczne użycie tego typu zapytań jest niezastąpione w aplikacjach analitycznych i systemach raportowania, gdzie precyzyjne filtrowanie i łączenie danych ma kluczowe znaczenie dla podejmowania decyzji biznesowych. Dbając o zgodność z najlepszymi praktykami, takie zapytania powinny być dobrze testowane i optymalizowane, aby zapewnić ich efektywność w dużych zbiorach danych.

Pytanie 37

Z tabel Klienci oraz Uslugi należy wyodrębnić tylko imiona klientów oraz odpowiadające im nazwy usług, które kosztują więcej niż 10 zł. Kwerenda uzyskująca te informacje ma formę

Ilustracja do pytania
A. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena > 10
B. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id
C. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = klienci.id
D. SELECT imie, nazwa FROM klienci, uslugi WHERE cena < 10
Odpowiedź 4 jest prawidłowa, ponieważ prawidłowo wykorzystuje składnię SQL do połączenia dwóch tabel oraz filtrowania danych na podstawie podanego warunku. Kwerenda używa JOIN, aby połączyć tabele Klienci i Uslugi na podstawie wspólnej kolumny uslugi_id, co jest zgodne z zasadami relacyjnej bazy danych, gdzie klucz obcy w jednej tabeli odnosi się do klucza głównego w innej tabeli. Następnie, kwerenda stosuje filtrację WHERE cena > 10, co pozwala na wybór tylko tych rekordów, gdzie cena usługi przekracza 10 zł. Jest to zgodne z praktyką selektywnego pobierania danych, co jest kluczowe w optymalizacji zapytań i skutecznym zarządzaniu zasobami bazy danych. Zastosowanie takich technik jest standardem w branży, umożliwiając efektywne zarządzanie dużymi zbiorami danych oraz zwiększenie wydajności aplikacji poprzez ograniczenie liczby zwracanych wierszy do tych, które spełniają określone kryteria. Zrozumienie i umiejętność implementacji takich zapytań SQL to podstawowa umiejętność dla specjalistów IT pracujących z bazami danych.

Pytanie 38

Aby uruchomić kod JavaScript w przeglądarce, konieczne jest

A. zamiana na kod maszynowy
B. kompilowanie
C. debugowanie
D. interpretowanie
Wykonanie kodu JavaScript w przeglądarce opiera się na procesie interpretacji, co oznacza, że kod jest analizowany i wykonywany w czasie rzeczywistym przez silnik JavaScript zainstalowany w przeglądarce. W przeciwieństwie do języków programowania kompilowanych, takich jak C++ czy Java, które wymagają wcześniejszego przetworzenia całego kodu na kod maszynowy, JavaScript jest językiem interpretowanym, co pozwala na bezpośrednią interakcję z użytkownikiem i dynamiczną aktualizację treści na stronie. Silnik JavaScript, jak V8 w Google Chrome, przetwarza kod źródłowy linia po linii, co umożliwia natychmiastowe wykonanie skryptów. Dzięki temu, zmiany w kodzie JavaScript można natychmiast zobaczyć na stronie bez potrzeby ponownego kompilowania całego projektu. Istotne jest także, że interpretacja pozwala na elastyczność w pisaniu kodu, co jest kluczowe w kontekście rozwoju aplikacji webowych. Zrozumienie procesu interpretacji jest fundamentalne dla programistów pracujących z JavaScript, ponieważ wpływa na wydajność i sposób, w jaki aplikacje są rozwijane oraz debugowane. Warto również zaznaczyć, że standard ECMAScript określa zasady dotyczące implementacji języka, co czyni interpretację kluczowym elementem w kontekście zgodności i wydajności skryptów.

Pytanie 39

Jak powinna wyglądać prawidłowa, zgodna ze standardami języka HTML, forma samozamykającego się znacznika, który odpowiada za łamanie linii?

A. <br> </br>
B. <br/>
C. </ br>
D. </br>
Pierwsza z podanych odpowiedzi, </br>, jest błędna, ponieważ znacznik kończący nie powinien występować w kontekście samo-zamykających się znaczników. W HTML nie ma potrzeby używania tagu kończącego dla znacznika <br/>. Druga odpowiedź, <br> </br>, również jest niepoprawna, ponieważ pomimo że <br> jest poprawnym znacznikiem, jego użycie w połączeniu z dodatkowym znacznikiem końcowym nie ma sensu, jako że <br> nie wymaga zamknięcia. Tego rodzaju zapis prowadzi do niejasności w interpretacji dokumentu przez przeglądarki, a także może wpływać na wydajność renderowania strony. Ostatnia z odpowiedzi, </ br/>, jest błędna z dwóch powodów: po pierwsze, jest to niepoprawna składnia, a po drugie, ilustruje nieporozumienie dotyczące funkcji samo-zamykających się znaczników w HTML. W standardzie HTML nie stosuje się znaczników kończących dla elementów, które są zaprojektowane do samodzielnego zamykania. Rozumienie różnicy między tymi zapisami jest kluczowe dla programistów i projektantów stron, którzy dążą do tworzenia stron zgodnych z najlepszymi praktykami oraz standardami webowymi.

Pytanie 40

W przedstawionym kodzie JavaScript, który został ponumerowany dla przejrzystości, występuje błąd uniemożliwiający wyświetlenie jakiegokolwiek komunikatu po uruchomieniu. Jak można go naprawić?

A. zmienić znaki cudzysłowu na apostrof w liniach 3 i 6, np. 'jest mniejsze
B. umieścić zmienne a i b w cudzysłowie w liniach 2 i 5
C. wprowadzić nawiasy klamrowe w sekcji if i else
D. dodać znak $ przed nazwami zmiennych
Odpowiedź o wstawieniu nawiasów klamrowych do sekcji if oraz else jest prawidłowa, ponieważ w JavaScript, gdy warunek if lub else obejmuje więcej niż jedną instrukcję, należy użyć nawiasów klamrowych, aby zgrupować te instrukcje. W przeciwnym razie, język traktuje jako część bloku kodu tylko pierwszą instrukcję. W omawianym kodzie, bez nawiasów klamrowych, tylko pierwsze wywołanie document.write w każdej z sekcji jest wykonywane, co skutkuje brakiem komunikatu w przypadku, gdy warunek jest spełniony. Przykładowo, poprawny kod powinien wyglądać tak: if (a < b) { document.write(a); document.write('jest mniejsze'); } else { document.write(b); document.write('jest mniejsze'); }. Nawiasy klamrowe są standardową praktyką, która poprawia czytelność kodu oraz ułatwia jego modyfikację w przyszłości, co jest zgodne z zasadami dobrego programowania.