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: 11 czerwca 2026 18:53
  • Data zakończenia: 11 czerwca 2026 19:12

Egzamin zdany!

Wynik: 33/40 punktów (82,5%)

Wymagane minimum: 20 punktów (50%)

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

W systemie PHP złożono zapytanie SELECT do bazy przy pomocy funkcji mysqli_query. Jaką funkcję powinien wykorzystać użytkownik, aby ustalić liczbę rekordów, które zwróciło to zapytanie?

A. mysqli_fetch_row
B. mysqli_num_rows
C. mysqli_query
D. mysqli_connect
Funkcja mysqli_num_rows jest kluczowa w kontekście pracy z wynikami zapytań SQL w PHP. Umożliwia ona określenie liczby wierszy zwróconych przez kwerendę SELECT, co jest istotne, gdy chcemy dynamicznie dostosować zachowanie aplikacji na podstawie zrealizowanych zapytań. Przykładowo, po wykonaniu zapytania, można użyć mysqli_query do zrealizowania kwerendy, a następnie mysqli_num_rows do sprawdzenia, ile rekordów zostało zwróconych. Dzięki temu, programista może zdecydować, czy kontynuować przetwarzanie danych, czy też wyświetlić użytkownikowi komunikat o braku wyników. Jest to zgodne z dobrymi praktykami, ponieważ pozwala na wydajniejsze zarządzanie danymi oraz poprawia użytkowanie aplikacji. Użycie tej funkcji jest szczególnie ważne w aplikacjach, gdzie interakcja z użytkownikami jest kluczowa, a ich odpowiednie informowanie o statusie operacji bazodanowych może znacząco poprawić doświadczenie użytkownika.

Pytanie 2

Jakie wyrażenie logiczne w języku PHP weryfikuje, czy zmienna1 znajduje się w jednostronnie domkniętym przedziale <-5, 10)?

A. $zmienna1 >= -5 && $zmienna1 < 10
B. $zmienna1 <= -5 && $zmienna1 < 10
C. $zmienna1 <= -5 || $zmienna1 < 10
D. $zmienna1 >= -5 || $zmienna1 < 10
Odpowiedź $zmienna1 >= -5 && $zmienna1 < 10 jest poprawna, ponieważ odpowiada definicji jednostronnie domkniętego przedziału, który obejmuje wartość -5 oraz wszystkie wartości większe, ale nie obejmuje wartości 10. Operator && (AND) jest używany do jednoczesnego sprawdzania dwóch warunków: pierwszy warunek ($zmienna1 >= -5) zapewnia, że zmienna jest większa lub równa -5, a drugi warunek ($zmienna1 < 10) sprawdza, czy zmienna jest mniejsza niż 10. W praktyce, taki zapis jest istotny w aplikacjach, gdzie ograniczamy zakres wartości dla zmiennych, na przykład w formularzach walidacji danych wejściowych. Dzięki temu możemy uniknąć błędów, które mogą wystąpić w przypadku niepoprawnych danych. Ponadto, stosowanie operatorów logicznych w PHP jest zgodne z najlepszymi praktykami programowania, jak na przykład dbałość o czytelność kodu oraz jego łatwość w utrzymaniu. Warto także pamiętać o testowaniu skrajnych wartości, aby upewnić się, że nasze warunki działają zgodnie z oczekiwaniami.

Pytanie 3

Które z poniższych poleceń JavaScript zmieni kolor tekstu na niebieski w paragrafie oznaczonym w HTML?

<p id="jeden">Kwalifikacja EE.01</p>
A. document.getElementById("jeden").background-color = "blue";
B. document.getElementById("jeden").color = "blue";
C. document.getElementById("jeden").style.color = "blue";
D. document.getElementById("jeden").style.background-color = "blue";
W języku JavaScript do zmiany stylu elementu HTML używamy obiektu style powiązanego z danym elementem. W przypadku zmiany koloru tekstu w akapicie używamy właściwości color. Poprawna składnia to document.getElementById("jeden").style.color = "blue";. Funkcja getElementById pobiera element o podanym identyfikatorze w tym przypadku jeden. Następnie poprzez przypisanie wartości blue do style.color zmieniamy kolor tekstu wewnątrz tego elementu na niebieski. Jest to zgodne z praktykami programowania w JavaScript ponieważ separacja stylów od treści jest istotna dla czytelności i utrzymania kodu a użycie style pozwala na bezpośrednią modyfikację właściwości CSS. Dobre praktyki sugerują aby stylowanie umieszczać w plikach CSS jednak JavaScript daje możliwość dynamicznej modyfikacji stylów co jest użyteczne w interaktywnych aplikacjach webowych. Przykładowo podczas tworzenia dynamicznych interfejsów użytkownika możemy reagować na różne zdarzenia zmieniając style elementów w odpowiedzi na działania użytkownika co zwiększa responsywność i atrakcyjność aplikacji.

Pytanie 4

W skrypcie JavaScript zmienne mogą być definiowane

A. jedynie wtedy, gdy podamy typ zmiennej oraz jej nazwę
B. wyłącznie na początku skryptu
C. zawsze poprzedzone znakiem $ przed nazwą
D. w chwili pierwszego użycia zmiennej
Wykorzystanie zmiennych w JavaScript jest bardziej elastyczne i złożone, niż sugerują tego niektóre odpowiedzi. Faktem jest, że w JavaScript nie ma wymogu deklarowania zmiennych na początku skryptu. Odpowiedź sugerująca, że zmienne mogą być deklarowane tylko na początku, jest nieprawidłowa, ponieważ JavaScript pozwala na deklarację w dowolnym miejscu kodu, a silnik interpretuje zmienne zgodnie z regułami hoistingu. Kolejna niepoprawna koncepcja związana jest z mylnym przekonaniem, że wcześniej należy określić typ zmiennej. JavaScript jest językiem dynamicznie typowanym, co oznacza, że nie jest konieczne podawanie typu przy deklaracji zmiennej. Dla przykładu, w wielu językach programowania, jak Java czy C#, typ musi być jawnie określony, lecz w JavaScript nie jest to wymagane, co czyni kod bardziej zwięzłym i elastycznym. Ponadto, stwierdzenie, że zmienne w JavaScript muszą być poprzedzone znakiem '$', również jest błędne. Chociaż '$' jest dozwolony w nazwach zmiennych, nie jest to wymóg. Dobre praktyki programistyczne sugerują, aby nazwy zmiennych były zrozumiałe i opisywały ich zawartość, co zwiększa czytelność kodu. W związku z tym, zrozumienie, jak i gdzie można deklarować zmienne w JavaScript, jest kluczowe dla efektywnego pisania kodu w tym języku.

Pytanie 5

Jaką funkcję pełni funkcja CONCAT() w SQL?

A. usuwanie określonego tekstu
B. przycinanie tekstu wyświetlanego
C. łącznienie tekstu wyświetlanego
D. wyodrębnianie podłańcucha znaków z tekstu wejściowego
Funkcja CONCAT() w SQL to naprawdę super opcja, bo pozwala na łączenie różnych ciągów tekstowych. To jest mega przydatne, zwłaszcza przy pracy z bazami danych, kiedy potrzebujemy stworzyć np. pełne imię i nazwisko z osobnych pól. Jak mamy tabelę z imionami i nazwiskami, to możemy użyć CONCAT(), żeby to wszystko połączyć w jedną całość: CONCAT(imie, ' ', nazwisko). Takie operacje są dość popularne w raportach i przy tworzeniu dynamicznych zapytań, gdzie często łączymy różne dane. Fajnie też pamiętać, żeby uważać na wartości NULL, bo mogą nam namieszać w wynikach. Poza tym, w różnych systemach bazodanowych są też inne metody łączenia tekstów, jak operator || w PostgreSQL, co może być przydatne, jeśli przenosisz zapytania między systemami.

Pytanie 6

Język JavaScript wspiera

A. obiekty DOM
B. funkcje wirtualne
C. klasy abstrakcyjne
D. wysyłanie ciasteczek z identycznymi informacjami do wielu klientów witryny
JavaScript to język skryptowy, który ma wbudowaną obsługę obiektowego modelu dokumentu (DOM), co umożliwia dynamiczne manipulowanie strukturą HTML oraz CSS stron internetowych. Dzięki DOM programiści mogą dodawać, usuwać lub modyfikować elementy na stronie w czasie rzeczywistym, co czyni aplikacje bardziej interaktywnymi. Przykładem może być zmiana tekstu przycisku po jego kliknięciu, co można osiągnąć dzięki metodom takim jak `getElementById` oraz `innerHTML`. JavaScript jest nieodłącznym elementem nowoczesnego podejścia do tworzenia aplikacji webowych, a jego kompatybilność z DOM sprawia, że jest to kluczowa umiejętność dla programistów. Wiedza na temat manipulacji DOM jest fundamentem dla technologii takich jak React czy Angular, które opierają się na zasadach wydajnego zarządzania interfejsem użytkownika przez wirtualny DOM. Współczesne standardy, takie jak ECMAScript, rozwijają możliwości JavaScript, a znajomość DOM jest niezwykle cenna na rynku pracy.

Pytanie 7

Wskaż właściwą zasadę odnoszącą się do integralności danych w bazie danych?

A. pole klucza podstawowego musi mieć utworzony indeks
B. pole klucza podstawowego nie powinno być puste
C. pole klucza obcego nie powinno być puste
D. w relacji 1..n pole klucza obcego łączy się z polem klucza podstawowego innej tabeli
Pole klucza podstawowego w tabeli bazy danych jest fundamentalnym elementem struktury relacyjnej. Jego główną rolą jest zapewnienie unikalności każdego rekordu w tabeli oraz umożliwienie jednoznacznej identyfikacji. Zgodnie z zasadami spójności danych w bazach danych, pole klucza podstawowego nie może być puste (NULL), ponieważ brak wartości w tym polu uniemożliwi skuteczne i jednoznaczne zidentyfikowanie rekordu. Na przykład, w tabeli 'Klienci', gdzie 'ID_Klienta' jest kluczem podstawowym, każde 'ID_Klienta' musi być unikalne i nie może być puste, aby uniknąć niejednoznaczności podczas wyszukiwania lub modyfikacji danych. Praktyczne zastosowanie tej zasady w projektowaniu baz danych prowadzi do zwiększenia integralności i spójności danych, co jest zgodne z normami, takimi jak ACID (Atomicity, Consistency, Isolation, Durability). Dbałość o poprawność kluczy podstawowych to kluczowy element w tworzeniu wydajnych i niezawodnych systemów baz danych.

Pytanie 8

W języku JavaScript zapisano funkcję. Co ona ma za zadanie?

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
A. zwrócić wartość bezwzględną z f
B. wypisać wartość odwrotną do f
C. zwrócić wartość odwrotną do f
D. wypisać wartość bezwzględną z f
Twoja odpowiedź jest poprawna. Funkcja, o której mówi pytanie, zwraca wartość bezwzględną z argumentu f. W języku programowania JavaScript wartość bezwzględną możemy obliczyć w różny sposób. W tym przypadku, dla f mniejszego od zera funkcja mnoży f przez -1, co jest równoznaczne z obliczeniem wartości bezwzględnej dla liczby ujemnej. Dla liczby nieujemnej, funkcja zwraca jej wartość bez zmian. To jest zgodne z definicją wartości bezwzględnej, która mówi, że jest to odległość liczby od zera na osi liczb rzeczywistych, bez względu na kierunek. W praktyce, wartość bezwzględna często jest używana w algorytmach, w których interesuje nas tylko 'rozmiar' wartości, a nie jej kierunek, np. w algorytmach statystycznych, graficznych czy fizycznych.

Pytanie 9

Jaką instrukcję algorytmu ilustruje graficzna prezentacja bloku na zamieszczonym rysunku?

Ilustracja do pytania
A. n > 20
B. Wykonaj podprogram sortowania tablicy t
C. n ← n + 5
D. Wypisz n
Każda z niepoprawnych odpowiedzi wynika z błędnego rozpoznania typów bloków w diagramach przepływu. Instrukcje przypisania, takie jak n ← n + 5, są reprezentowane prostokątem i oznaczają operacje przetwarzania danych, gdzie zmienna jest modyfikowana zgodnie z określoną logiką. Ta operacja głównie pojawia się w kontekście pętli lub jako część większej sekwencji działań obliczeniowych, co jest użyteczne w algorytmach obliczeniowych i matematycznych, gdzie często modyfikujemy wartość zmiennych. Kolejny typ instrukcji, taki jak Wypisz n, jest reprezentowany przez blok wyjścia, który jest używany do komunikacji wyników algorytmu na zewnątrz. Jest to częste w raportowaniu lub debugowaniu programów, gdzie wynikiem działania algorytmu jest wyświetlenie informacji użytkownikowi. Podprogramy, takie jak sortowanie tablicy, oznaczają bloki procesów, które są reprezentowane prostokątem z podwójnymi liniami bocznymi i wskazują na wywołanie funkcji lub procedury. Takie konstrukcje są kluczowe w strukturalnym programowaniu, gdzie zadania są dekomponowane na mniejsze, zarządzalne jednostki, co prowadzi do lepszego zrozumienia i utrzymania kodu. Błędne rozpoznanie tych bloków prowadzi do nieprawidłowego zrozumienia struktury algorytmu, co może skutkować jego nieefektywnością lub błędami logicznymi w jego działaniu. Zrozumienie różnic między tymi blokami jest niezbędne do prawidłowego projektowania i implementacji algorytmów, co jest podstawą w wielu dziedzinach informatyki, takich jak inżynieria oprogramowania czy analiza danych. Dzięki temu można tworzyć efektywne i zrozumiałe rozwiązania, które spełniają wymagania użytkowników i normy branżowe.

Pytanie 10

W języku PHP, po wykonaniu poniższego fragmentu kodu, w zmiennej o nazwie Nowy_Napis uzyskamy

Ilustracja do pytania
A. zawsze sprawdz swoj kod
B. ZAWSZE SPRAWDZ SWOJ KOD
C. zAwSZe sPrAwDz SWOJ kOd
D. ZaWszE
Funkcja strtolower w PHP służy do konwersji ciągu znaków na małe litery. W podanym przykładzie zmienna Napis zawiera wartość ZaWsze SpRaWdZ swoj KoD, która jest mieszanką wielkich i małych liter. Po zastosowaniu funkcji strtolower do tej zmiennej, wynikowy ciąg zostaje przetworzony tak, że wszystkie litery są zamieniane na małe. Dlatego w zmiennej Nowy_Napis znajdzie się tekst zawsze sprawdz swoj kod. Użycie strtolower jest częste, gdy chcemy ujednolicić dane tekstowe, np. porównując adresy email czy nazwy użytkowników, aby uniknąć rozróżnienia wielkości liter. Jest to zgodne z dobrą praktyką programistyczną, która polega na zapewnieniu spójności danych poprzez ich normalizację. W kontekście aplikacji webowych często stosuje się tę funkcję do przetwarzania danych wejściowych od użytkowników, aby uzyskać jednolite formatowanie i uniknąć potencjalnych błędów przy wyszukiwaniu lub porównywaniu danych. Praktyczne zastosowanie tej funkcji ułatwia zarządzanie danymi i upraszcza logikę biznesową aplikacji.

Pytanie 11

Którą wartość zwróci funkcja zapisana w języku C++, jeżeli jej parametrem wejściowym jest tablica wypełniona w następujący sposób: tablica[6] = {3, 4, 2, 4, 10, 0};?

int fun1(int tab[]) {
    int wynik = 0;
    for (int i = 0; i < 6; i++)
        wynik += tab[i];
    return wynik;
}
A. 10
B. 0
C. 23
D. 960
Gratulacje, Twoja odpowiedź jest poprawna. W języku C++ funkcja zwraca sumę wszystkich elementów w tablicy. W podanym pytaniu mamy tablicę z sześcioma elementami, którymi są liczby: 3, 4, 2, 4, 10, 0. Dodając te liczby otrzymujemy 23, co jest poprawną odpowiedzią. To jest typowy scenariusz, kiedy potrzebujemy obliczyć sumę wszystkich elementów w tablicy. Na przykład, możemy mieć program, który oblicza średnią wartość z zestawu danych. W takim przypadku najpierw musimy zsumować wszystkie elementy, a następnie podzielić przez ich liczbę. Pamiętaj, że w języku C++ tablice indeksowane są od zera, co oznacza, że pierwszy element tablicy ma indeks 0, a ostatni element ma indeks o jeden mniejszy niż rozmiar tablicy. Jest to powszechny standard w programowaniu i jest istotny do zrozumienia, jak działają tablice.

Pytanie 12

Na ilustracji widoczne są dwie tabele. Aby stworzyć relację jeden do wielu, gdzie jeden jest po stronie Klienci, a wiele po stronie Zamowienia, należy

Ilustracja do pytania
A. Utworzyć trzecią tabelę z dwoma kluczami obcymi. Jeden klucz połączyć z ID tabeli Klienci, a drugi z ID tabeli Zamowienia
B. Wprowadzić pole klucza obcego do tabeli Klienci i połączyć je z ID tabeli Zamowienia
C. Wprowadzić pole klucza obcego do tabeli Zamowienia i połączyć je z ID tabeli Klienci
D. Połączyć relacją pola ID z obu tych tabel
Dodanie pola klucza obcego do tabeli Klienci i połączenie go z ID tabeli Zamowienia nie jest poprawne ponieważ relacja jeden do wielu wymaga aby klucz obcy znajdował się po stronie tabeli która reprezentuje wiele elementów czyli w tym przypadku Zamowienia Jeśli połączymy relacją pola ID z obu tabel nie uzyskamy semantyki relacji jeden do wielu a jedynie relację równoważności co nie odzwierciedla rzeczywistego scenariusza w którym jeden klient może posiadać wiele zamówień Zdefiniowanie trzeciej tabeli z dwoma kluczami obcymi przypomina projektowanie tabeli asocjacyjnej stosowanej raczej w relacjach wiele do wielu niż jeden do wielu Taka konstrukcja jest bardziej skomplikowana i niepotrzebna w tym konkretnym przypadku wprowadza nadmiarowość oraz dodatkowe obciążenie operacyjne Takie błędne podejścia mogą wynikać z niezrozumienia podstawowych zasad modelowania danych oraz zaniedbania w stosowaniu dobrych praktyk projektowych takich jak normalizacja baz danych i optymalizacja struktury relacyjnej Prowadzą one do nieefektywnego przetwarzania danych i trudności w ich późniejszym zarządzaniu

Pytanie 13

DOM oferuje metody i właściwości, które w języku JavaScript umożliwiają

A. pobieranie oraz modyfikowanie elementów strony widocznej w przeglądarce
B. manipulowanie łańcuchami zadeklarowanymi w kodzie
C. przeprowadzanie operacji na zmiennych przechowujących liczby
D. przesyłanie danych formularza bezpośrednio do bazy danych
Odpowiedź dotycząca pobierania i modyfikowania elementów strony wyświetlonej przez przeglądarkę jest poprawna, ponieważ DOM (Document Object Model) stanowi interfejs programistyczny, który umożliwia skryptom JavaScript dostęp do struktury dokumentu HTML lub XML. Dzięki DOM programiści mogą dynamicznie zmieniać zawartość, strukturę i styl dokumentu. Na przykład, za pomocą metody document.getElementById('elementId') można uzyskać dostęp do konkretnego elementu na stronie, a następnie modyfikować jego właściwości, jak tekst czy atrybuty, za pomocą elementów takich jak innerHTML lub setAttribute. Stosowanie DOM jest zgodne z najlepszymi praktykami, takimi jak minimalizowanie manipulacji na stronie, co prowadzi do lepszej wydajności aplikacji. Warto również zwrócić uwagę na standardy W3C, które promują poprawne użycie DOM w kontekście dostępu i użyteczności stron internetowych. Umiejętność efektywnej pracy z DOM jest kluczowa w nowoczesnym web developmencie, gdzie interaktywność i dynamika są niezbędne do tworzenia atrakcyjnych i responsywnych aplikacji internetowych.

Pytanie 14

Wskaż styl CSS za pomocą którego został uzyskany przedstawiony efekt.

  • psy
  • koty
  • chomiki
  • świnki morskie
  • rybki
A. ul li:active { background-color: DodgerBlue; }
B. ul li:nth-child(odd) { background-color: DodgerBlue; }
C. ul li:nth-child(even) { background-color: DodgerBlue; }
D. ul li:hover { background-color: DodgerBlue; }
Dokładnie tak, poprawna odpowiedź to 'ul li:nth-child(even) { background-color: DodgerBlue; }'. Użycie selektora :nth-child(even) pozwala na zastosowanie stylu CSS do każdego parzystego elementu listy, co można zaobserwować na załączonym obrazku - każdy drugi (parzysty) element ma niebieskie tło. Jest to praktyczne rozwiązanie stosowane m.in. w celu poprawy czytelności długich list danych, gdzie koloryzmowanie na przemian pozwala na łatwiejsze zlokalizowanie poszczególnych elementów. Pamiętaj, że CSS oferuje wiele innych pseudoklas pozwalających na zastosowanie różnych efektów w zależności od stanu lub położenia elementu na stronie. Przy wykorzystaniu pseudoklas CSS warto odwoływać się do standardów i dobrych praktyk branżowych, takich jak unikanie nadmiernego zagnieżdżania selektorów, co może utrudniać czytelność i utrzymanie kodu.

Pytanie 15

W języku JavaScript, w celu przekształcenia specjalnie przygotowanego tekstu w tablicę, można wykorzystać metodę

A. slice()
B. trim()
C. split()
D. replace()
Użycie metod takich jak trim(), replace() czy slice() w kontekście zamiany tekstu na tablicę jest nieprawidłowe z kilku powodów. Metoda trim() służy do usuwania białych znaków (spacji, tabulatorów itp.) z początku i końca ciągu znaków. Choć jest to przydatne w wielu sytuacjach, nie ma ona żadnego wpływu na strukturę samego tekstu, a tym samym nie może być używana do przekształcania ciągu w tablicę. Z kolei replace() jest metodą, która zastępuje podciąg w łańcuchu, ale nie dzieli go na elementy. Na przykład, użycie replace() na ciągu "Jan,Kasia,Piotr" z celem uzyskania tablicy spowoduje, że nadal będziemy mieć jeden łańcuch, w którym nie będą mogły wystąpić oddzielne elementy. Natomiast metoda slice() służy do wycinania określonej części łańcucha, co również nie prowadzi do generowania tablicy. Powszechnym błędem myślowym jest założenie, że te metody mogą spełniać funkcję podziału tekstu, podczas gdy ich rzeczywiste zastosowanie jest zupełnie inne. W praktyce, stosując metody, które nie są przeznaczone do dzielenia tekstu, programiści mogą napotkać problemy z wydajnością i czytelnością kodu, co jest sprzeczne z zasadami dobrego programowania. Zrozumienie różnicy między tymi metodami oraz ich odpowiednim zastosowaniem jest kluczowe dla efektywnej pracy z danymi tekstowymi i zapewnia, że procesy przetwarzania informacji w aplikacjach są zarówno efektywne, jak i łatwe do utrzymania.

Pytanie 16

W SQL instrukcja INSERT INTO

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

Pytanie 17

bool gotowe=true;
cout<<gotowe;
Jakie będzie wyjście w wyniku wykonania podanych poleceń?

A. 1
B. 0
C. Tak
D. Nie
Po wykonaniu poleceń na ekranie zobaczysz '1'. Zmienna 'gotowe' jest ustawiona jako typ bool i ma wartość true. W C++ typ bool może mieć dwie wartości: true lub false. Kiedy zmienną bool wyświetlamy przy użyciu cout, to 'true' pokazuje się jako '1', a 'false' jako '0'. To jest zgodne z zasadami C++, które mówią, że wartości logiczne są traktowane jako liczby całkowite. Z mojego doświadczenia, zrozumienie tego, jak C++ interpretuje różne typy danych, jest naprawdę istotne w programowaniu, bo pomaga lepiej ogarnąć działanie kodu, a także poprawić algorytmy. Na przykład, jeśli programista ma świadomość, że true to 1, może wykorzystać tę wiedzę przy operacjach na liczbach lub podczas tworzenia warunków. To fajnie działa, zwłaszcza gdy zaczynamy tworzyć bardziej złożone struktury danych.

Pytanie 18

Jakie funkcje w języku PHP umożliwiają weryfikację wartości oraz typu zmiennej?

A. var_dump()
B. strlen()
C. implode()
D. readfile()
W języku PHP do sprawdzania wartości i typu zmiennej można wykorzystać funkcję var_dump(). Ta funkcja jest niezwykle przydatna w procesie debugowania, ponieważ wyświetla szczegółowe informacje na temat zmiennej, w tym jej typ, wartość oraz, w przypadku tablic i obiektów, również ich strukturę. Przykładowo, jeśli mamy zmienną $a przypisaną do wartości 10, wywołując var_dump($a), otrzymamy wynik: int(10). Oznacza to, że $a jest zmienną typu całkowitego (integer) o wartości 10. Funkcja ta jest szczególnie użyteczna w sytuacjach, gdy potrzebujemy dokładnych informacji o złożonych strukturach danych, takich jak tablice czy obiekty. Warto zauważyć, że var_dump() jest zgodna z typowymi standardami PHP i często stosowana w praktyce przez programistów do szybkiego diagnozowania problemów w kodzie. Dodatkowo, jej użycie jest zalecane podczas pisania testów jednostkowych, gdyż umożliwia weryfikację stanu zmiennych.

Pytanie 19

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

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

Pytanie 20

Jeśli zmienna $x przechowuje dowolną dodatnią liczbę naturalną, przedstawiony kod źródłowy PHP ma za zadanie wyświetlić:

$licznik = 0;
while ($licznik != $x)
{
    echo $licznik;
    $licznik++;
}
A. kolejne liczby od x do 0
B. kolejne liczby od 0 do x-1
C. losowe liczby z przedziału (0, x)
D. liczby wczytywane z klawiatury, tak długo aż zostanie wczytana wartość x
Właściwa odpowiedź sugeruje, że kod PHP wyświetla liczby naturalne od 0 do x-1. Przez inicjalizację zmiennej $licznik wartością 0 i stopniowe zwiększanie jej wartości o 1 w każdej iteracji pętli while, aż do osiągnięcia wartości $x, proces ten jest realizowany. Jest to typowy przykład użycia pętli while w programowaniu, gdzie chcemy wykonać dane działanie wielokrotnie, zazwyczaj do momentu, gdy spełniony jest określony warunek. Zastosowanie takiego podejścia jest powszechne nie tylko w PHP, ale w większości języków programowania. W tym konkretnym przypadku, zastosowanie pętli while pozwala na efektywne wygenerowanie liczby naturalnej w określonym zakresie, co jest często potrzebne w różnych algorytmach czy operacjach matematycznych.

Pytanie 21

Jakie wyrażenie logiczne powinno być użyte w języku JavaScript, aby zastosować operacje tylko dla wszystkich liczb ujemnych z przedziału jednostronnie domkniętego <-200,-100)?

A. (liczba >=-200) && (liczba<-100)
B. (liczba <=-200) || (liczba>-100)
C. (liczba >=-200) || (liczba>-100)
D. (liczba <=-200) && (liczba<-100)
Jeśli chcesz wykonywać operacje tylko na liczbach ujemnych w przedziale od -200 do -100 w JavaScript, musisz użyć takiego wyrażenia: (liczba >= -200) && (liczba < -100). To wyrażenie łączy dwa warunki, co oznacza, że oba muszą być spełnione, żeby całość była prawdziwa. Pierwszy warunek mówi, że liczba musi być większa lub równa -200, a drugi, że musi być mniejsza niż -100. Tak definiujemy przedział, co jest zgodne z zasadami ECMAScript, na których oparty jest JavaScript. Dla przykładu, jeśli weźmiesz liczbę -150, to to wyrażenie zwróci prawdę, bo -150 jest w tym przedziale. Natomiast dla -250, wyrażenie zwróci fałsz, bo nie spełnia pierwszego warunku. Dzięki temu, programista ma pewność, że operacje wykonywane są jedynie na liczbach w danym przedziale. Takie zastosowanie można spotkać na przykład w walidacji danych w formularzach czy w filtracji danych w aplikacjach webowych.

Pytanie 22

Aby zmienić wartość atrybutu elementu przy użyciu skryptu JavaScript, należy zastosować następujący zapis

A. document.getElementById(id).innerHTML = <nowa wartość>
B. document.getElementById(id).<nazwa właściwości> = <nowa wartość>
C. document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>
D. document.getElementById(id).style.<nazwa właściwości> = <nowa wartość>
Sposoby zapisu w pozostałych odpowiedziach nie są odpowiednie dla zmiany cech elementów opisanych w CSS, co może prowadzić do nieporozumień w zakresie manipulacji stylem w JavaScript. Użycie document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>; może sugerować, że próbujemy ustawić atrybuty HTML, jednak nie odnosi się to do stylów CSS. Atrybuty HTML i style CSS to dwa różne obszary, a manipulowanie stylem wymaga bezpośredniego odniesienia do obiektu style. Podobnie, w przypadku document.getElementById(id).<nazwa właściwości> = <nowa wartość>; wygląd elementu nie jest zmieniany, ponieważ nie wskazujemy na obiekt style, lecz na właściwości samego elementu. Użycie document.getElementById(id).innerHTML = <nowa wartość>; również wprowadza w błąd, ponieważ ta metoda służy do zmiany zawartości HTML wewnątrz danego elementu, a nie stylów. Często pojawia się mylne przekonanie, że można manipulować stylem, używając ogólnych atrybutów lub zawartości, co prowadzi do nieefektywnego i błędnego kodu. Istotne jest zrozumienie, że stylizacja elementów wymaga poprawnej interakcji z obiektem style, co zapewnia jednocześnie zgodność z najlepszymi praktykami programowania i pozwala uniknąć błędów w logice aplikacji.

Pytanie 23

Wskaż element, który definiuje pole edycyjne formularza zgodne z ilustracją

Ilustracja do pytania
A. <input type="month" id="hh" name="mm">
B. <input type="number" id="mm" name="hh" min="0" max="24">
C. <input type="date" id=" minutes" name="hours">
D. <input type="time" id="minutes" name="hours">
Prawidłowy wybór to <input type="time" id="minutes" name="hours">, ponieważ dokładnie taki element HTML5 służy do wprowadzania godziny w formacie hh:mm, czyli tak jak na ilustracji. Atrybut type="time" mówi przeglądarce, że pole ma przyjmować tylko wartości czasu, bez daty, miesięcy czy liczb dowolnego typu. Zgodnie ze specyfikacją HTML Living Standard oraz HTML5, przeglądarka powinna wtedy wyświetlić natywne kontrolki do wyboru godziny (np. rozwijane listy, suwak, mały zegarek – zależy od systemu i przeglądarki). Dzięki temu użytkownik ma mniejsze ryzyko pomyłki, a walidacja odbywa się częściowo automatycznie. Z mojego doświadczenia warto korzystać z type="time" zawsze, gdy formularz dotyczy konkretnych godzin, np. godzina rozpoczęcia pracy, rezerwacja wizyty, planowanie spotkania online. Po stronie serwera (np. w PHP) to pole przychodzi jako tekst w formacie „HH:MM”, co jest łatwe do dalszego przetwarzania, parsowania do obiektu DateTime albo zapisu w bazie danych w typie TIME. Dobra praktyka jest też taka, żeby nazwy atrybutów id i name były semantyczne. W tym zadaniu nie ma to wpływu na poprawność odpowiedzi, ale w realnym projekcie lepiej byłoby użyć np. id="endTime" i name="end_time". Ułatwia to później pracę z JavaScriptem i po stronie backendu. Warto też pamiętać o dodaniu atrybutów min i max, jeśli chcemy ograniczyć zakres godzin (np. od 08:00 do 20:00), oraz pattern lub dodatkowej walidacji JS, jeśli mamy specyficzne wymagania. Mimo że ilustracja nie pokazuje tych szczegółów, sam mechanizm type="time" jest tu absolutnie kluczowy i zgodny z dobrymi praktykami front-endowymi.

Pytanie 24

<?php
function silnia($liczba)
{
    if($liczba < 2)
        return 1;
    else
        return $liczba * silnia($liczba - 1);
}
?>
Funkcja silnia jest funkcją
A. bezparametrową.
B. nie zwracającą wyniku.
C. abstrakcyjną.
D. rekurencyjną.
Funkcja „silnia” w tym przykładzie jest klasycznym przykładem funkcji rekurencyjnej w PHP. Rekurencja polega na tym, że funkcja w swoim wnętrzu wywołuje samą siebie z innym argumentem. Tutaj dokładnie to widzimy w instrukcji `return $liczba * silnia($liczba - 1);`. Każde kolejne wywołanie zmniejsza wartość parametru `$liczba` o 1, aż dojdziemy do warunku zakończenia, czyli tzw. warunku brzegowego: `if($liczba < 2) return 1;`. Ten warunek jest kluczowy, bo bez niego rekurencja nigdy by się nie zatrzymała i skończyłaby się błędem przepełnienia stosu (stack overflow). Z punktu widzenia algorytmiki, silnia jest jednym z pierwszych przykładów, na których uczy się rekurencji, bo definicja matematyczna jest też rekurencyjna: n! = n * (n-1)!, przy 0! = 1 oraz 1! = 1. W kodzie odwzorowujemy to praktycznie 1:1. W profesjonalnym programowaniu webowym rekurencję stosuje się nie tylko do silni, ale np. do przetwarzania drzew kategorii, menu wielopoziomowych, parsowania struktur XML/JSON, czy przechodzenia po drzewach uprawnień. Moim zdaniem ważne jest, żeby przy rekurencji zawsze pilnować dwóch rzeczy: dobrze zdefiniowanego warunku zakończenia i tego, żeby w każdym kroku argument „zbliżał się” do tego warunku. W PHP można też porównać to z wersją iteracyjną (z pętlą), ale w wielu przypadkach rekurencyjna wersja jest czytelniejsza, szczególnie przy strukturach drzewiastych. W praktyce produkcyjnej warto jednak pamiętać o ograniczeniach głębokości stosu i przy bardzo dużych danych czasem lepiej przepisać rekurencję na iterację, ale sam wzorzec, który tu widzisz, jest jak najbardziej zgodny z dobrymi praktykami i podręcznikową definicją funkcji rekurencyjnej.

Pytanie 25

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

A. rekurencji
B. przeładowania
C. hermetyzacji
D. polimorfizmu
Kwalifikatory dostępu, takie jak private, protected i public, są naprawdę ważne w programowaniu obiektowym. Hermetyzacja, czyli ukrywanie szczegółów implementacji, pozwala na lepszą ochronę danych. Dzięki kwalifikatorom dostępu, programista może decydować, co jest dostępne dla innych klas. Na przykład, w klasie `Samochod`, możemy ustawić pole `prędkość` jako `private`. To znaczy, że inne klasy nie mogą go zmieniać bezpośrednio. Zamiast tego, tworzysz metody publiczne, jak `dodajPrędkość()` i `pobierzPrędkość()`, które pozwalają na kontrolowanie dostępu. To jest dobre, bo można dodać jakieś sprawdzenie, zanim zmienisz `prędkość`. Hermetyzacja jest kluczowa, gdy budujesz większe systemy, bo pozwala utrzymać porządek w kodzie i ułatwia pracę zespołową, gdzie różni programiści mogą pracować nad swoimi zadaniami bez obaw o to, że zepsują coś w kodzie innych.

Pytanie 26

W języku JavaScript, w programowaniu obiektowym, zapis this.zawod w przedstawionym kodzie oznacza

function Uczen(){
  this.imie = "";
  this.nazwisko = "";
  this.technik = 'informatyk';
  this.zawod = function(){
    return this.technik;
  };
}
A. właściwość
B. metodę
C. klasę
D. konstruktor
W JavaScript programowanie obiektowe działa trochę inaczej niż w innych językach. W tym kodzie, zapis this.zawod wskazuje, że mamy do czynienia z metodą obiektu. Po prostu, metoda to funkcja przypisana do właściwości obiektu, która może korzystać z danych w obiekcie. Używając this, mamy dostęp do innych właściwości. W tym przypadku, funkcja pod this.zawod zwraca wartość this.technik, co ładnie pokazuje, jak metody mogą zmieniać dane obiektu. To jest właśnie cała filozofia programowania obiektowego, gdzie logika jest umieszczona w funkcjach związanych z danymi. To sprawia, że kod jest bardziej modułowy i łatwiejszy do ogarnięcia. W pracy w zespole dobrze jest, jak nazwy metod mówią, co robią, bo to bardzo pomaga innym zrozumieć, co się dzieje w kodzie.

Pytanie 27

Które zdarzenie umożliwia wykonanie skryptu w języku JavaScript podczas przesyłania formularza HTML oraz kontrolowanie jego wysłania?

A. onEnter
B. onSubmit
C. onChange
D. onClick
Odpowiedź 'onSubmit' jest poprawna, ponieważ to zdarzenie w języku JavaScript jest bezpośrednio związane z wysyłaniem formularzy HTML. Gdy użytkownik klika przycisk wysyłania formularza lub gdy formularz jest wysyłany za pomocą klawisza Enter, zdarzenie 'onSubmit' zostaje wywołane. Dzięki temu można zaimplementować walidację danych wprowadzonych przez użytkownika przed ich przesłaniem do serwera. Na przykład, można sprawdzić, czy wszystkie wymagane pola są wypełnione oraz czy dane są zgodne z określonym formatem, zanim formularz zostanie przesłany. Aby to zrobić, można dodać funkcję JavaScript do atrybutu onsubmit w tagu <form>, co pozwoli na zatrzymanie wysyłania formularza, jeśli warunki walidacji nie są spełnione. Jest to zgodne z dobrymi praktykami w zakresie tworzenia formularzy, które powinny być zarówno funkcjonalne, jak i przyjazne dla użytkownika. Dodatkowo, przy użyciu metody preventDefault() w obiekcie zdarzenia można zablokować domyślną akcję formularza, co daje pełną kontrolę nad procesem wysyłania.

Pytanie 28

Które wyrażenie logiczne należy zastosować w języku JavaScript, aby wykonać operacje tylko dla dowolnych liczb ujemnych z przedziału jednostronnie domkniętego <-200, -100)?

A. (liczba >= -200) || (liczba > -100)
B. (liczba >= -200) && (liczba < -100)
C. (liczba <= -200) && (liczba < -100)
D. (liczba -100)
Poprawne wyrażenie to (liczba >= -200) && (liczba < -100), bo dokładnie odwzorowuje zapis matematyczny przedziału jednostronnie domkniętego <-200, -100). W matematyce nawias kwadratowy oznacza, że granica jest włączona do przedziału, a nawias okrągły – że granica jest wyłączona. Czyli chcemy wszystkie liczby większe lub równe -200, ale jednocześnie mniejsze niż -100. W JavaScript przekłada się to właśnie na dwa porównania połączone operatorem logicznym AND, czyli &&. Warunek liczba >= -200 pilnuje dolnej granicy, a liczba < -100 pilnuje górnej, która jest otwarta. Jeśli którakolwiek z tych części będzie fałszywa, całe wyrażenie zwróci false, co jest dokładnie tym, czego oczekujemy przy opisie takiego przedziału. W praktyce taki zapis pojawia się bardzo często, np. przy walidacji danych wejściowych, filtrowaniu wyników, ustawianiu zakresów sliderów w interfejsie użytkownika albo przy sprawdzaniu warunków w grach (np. pozycja x obiektu ma być w jakimś zakresie). Przykład w JS: if (liczba >= -200 && liczba < -100) { // wykonaj kod tylko dla liczb z tego zakresu } Moim zdaniem warto od razu wyrobić sobie nawyk zapisywania zakresów w postaci dwóch prostych porównań połączonych &&, bo to jest czytelne dla innych programistów i zgodne z powszechną praktyką w branży. W wielu językach (nie tylko JavaScript, ale też C, Java, PHP) taki schemat warunków jest standardem. Trzeba też pamiętać, że w JS nie ma osobnego operatora „przedziału”, więc zawsze rozbijamy to właśnie na takie składowe porównania logiczne.

Pytanie 29

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. const
B. short
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 30

Zastosowanie poniższej kwerendy SQL spowoduje usunięcie

DELETE FROM mieszkania WHERE status=1;
A. tabel, w których pole status ma wartość 1, z bazy danych mieszkania
B. rekordów, dla których pole status ma wartość 1, z tabeli mieszkania
C. tabeli mieszkania z systemu baz danych
D. pola o nazwie status w tabeli mieszkania
Odpowiedź, którą zaznaczyłeś, jest jak najbardziej trafna i dotyczy działania kwerendy SQL, szczególnie polecenia DELETE. W tym przypadku, to DELETE FROM mieszkania WHERE status=1 oznacza, że zamierzamy usunąć wszystkie rekordy z tabeli mieszkania, gdzie status jest równy 1. To jest ważne, bo w zarządzaniu bazami danych kluczowe jest precyzyjne ustalenie, które dane chcemy usunąć. Z mojej perspektywy, przed wykonaniem takiej operacji warto najpierw wykonać zapytanie SELECT z tymi samymi warunkami, żeby zobaczyć, co dokładnie usuniemy. Przykład? Możesz chcieć usunąć mieszkania, które są zarezerwowane lub niedostępne, co może być oznaczone statusem 1. To naprawdę dobra praktyka, bo pozwala na lepsze zarządzanie danymi i na utrzymanie porządku w bazie. A wiesz, co jeszcze? Zawsze warto zrobić kopię zapasową danych przed masowym usuwaniem, żeby nie stracić czegoś ważnego.

Pytanie 31

Jaką integralność określa przytoczona definicja?

Ilustracja do pytania
A. Semantyczną
B. Statyczną
C. Referencyjną
D. Encji
Integralność referencyjna jest fundamentalną zasadą w bazach danych, która zapewnia, że relacje między tabelami są prawidłowo zachowane. Oznacza to, że klucz obcy w jednej tabeli powinien zawsze odnosić się do istniejącego klucza głównego w innej tabeli. To podejście jest kluczowe w relacyjnych bazach danych, ponieważ zapobiega powstawaniu odniesień do nieistniejących danych co mogłoby prowadzić do niespójności w bazie danych. W praktyce integralność referencyjna jest implementowana poprzez restrykcje i ograniczenia narzucane na operacje takie jak wstawianie aktualizacja i usuwanie danych. Na przykład próba usunięcia rekordu z tabeli, do której odwołują się inne rekordy wprowadziłaby niespójność jeśli integralność referencyjna nie jest przestrzegana. Aby temu zapobiec systemy baz danych mogą blokować takie operacje lub automatycznie aktualizować albo usuwać powiązane dane. Przestrzeganie zasad integralności referencyjnej jest zgodne z dobrymi praktykami projektowania baz danych i zgodne ze standardem SQL co zapewnia spójność i integralność danych w systemach informatycznych.

Pytanie 32

Z przedstawionych tabel Artykuly i Autorzy należy wybrać jedynie nazwiska autorów i tytuły ich artykułów, które zostały ocenione na 5. Kwerenda wybierająca te dane ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
C. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
D. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
Gratulacje! Wybrałeś poprawne zapytanie SQL, które dokładnie odpowiada na postawione pytanie. Zapytanie 'SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;' jest prawidłowe, bo łączy dwie tabele 'autorzy' i 'artykuly' za pomocą klucza obcego 'autorzy_id' w tabeli 'artykuly'. Dzięki temu uzyskujemy dostęp do nazwisk autorów i tytułów artykułów. Dodatkowo, część 'WHERE ocena = 5' filtruje wyniki tak, aby wyświetlane były tylko te rekordy, gdzie ocena wynosi 5. To jest kluczowy element, który pozwala nam skupić się tylko na tych danych, które są istotne dla pytania. W praktyce, tego typu zapytania pomagają nam w analizie wydajności autorów i jakości artykułów, co jest niezwykle ważne w branży wydawniczej.

Pytanie 33

W bazie danych znajduje się tabela pracownicy z kolumnami: id, imie, nazwisko, pensja. W nowym roku postanowiono zwiększyć wynagrodzenie wszystkim pracownikom o 100 zł. Jak powinno wyglądać to w aktualizacji bazy danych?

A. UPDATE pracownicy SET pensja = 100;
B. UPDATE pensja SET +100;
C. UPDATE pracownicy SET pensja = pensja + 100;
D. UPDATE pensja SET 100;
Odpowiedź 'UPDATE pracownicy SET pensja = pensja + 100;' jest prawidłowa, ponieważ wprowadza właściwą składnię SQL, która aktualizuje pole 'pensja' w tabeli 'pracownicy'. To polecenie wykorzystuje operator przypisania '=', aby zaktualizować wartość 'pensja', dodając do niej 100 zł. W praktyce jest to typowy sposób na modyfikację danych w bazach danych relacyjnych, przy użyciu SQL. Kluczowym aspektem jest zrozumienie, że 'pensja' w tym kontekście odnosi się do istniejącej wartości w danym rekordzie, a nie do jakiejś stałej. Operator '+' w tym przypadku informuje system, że chcemy zwiększyć aktualną wartość o 100. Użycie tego typu składni jest zgodne z najlepszymi praktykami w programowaniu baz danych, co sprzyja przejrzystości i zrozumiałości kodu. Tego rodzaju aktualizacje są kluczowe w zarządzaniu danymi pracowników, zwłaszcza w kontekście systemów wynagrodzeń, gdzie regularne zmiany pensji są normą.

Pytanie 34

W języku HTML zapisano formularz. Który z efektów działania kodu będzie wyświetlony przez przeglądarkę zakładając, że w pierwsze pole użytkownik przeglądarki wpisał wartość "Przykładowy text"?

Ilustracja do pytania
A. Efekt 4.
B. Efekt 2.
C. Efekt 3.
D. Efekt 1.
Dobra robota! Odpowiedź, którą wybrałeś, to Efekt 2. W formularzu HTML masz różne elementy, które służą do zbierania danych od użytkownika. Tutaj mamy pole tekstowe i dwa checkboxy. Jak wpiszesz 'Przykładowy text' w pole tekstowe i wyślesz formularz, to właśnie to się wyświetli w przeglądarce. Efekt 2 pokazuje, że pole tekstowe ma wpisany tekst i dwa niezaznaczone checkboxy. Dlatego to jest zgodne z tym, co zobaczysz w przeglądarce. A to oznacza, że Efekt 2 jest poprawną odpowiedzią. Właściwie to wszystko jest zgodne z tym, jak HTML działa, czyli jak powinny wyglądać i działać różne elementy formularza.

Pytanie 35

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 36

Podana linia kodu została napisana w języku?

document.getElementById("paragraf1").innerHTML = wynik;
A. C#
B. Python
C. JavaScript
D. PHP
Odpowiedź JavaScript jest prawidłowa, ponieważ linia kodu, którą przedstawiono, wykorzystuje standardową metodę DOM (Document Object Model) do dynamicznej manipulacji zawartością HTML. W kodzie 'document.getElementById("paragraf1").innerHTML = wynik;' funkcja 'getElementById' służy do odnajdywania elementu HTML o identyfikatorze 'paragraf1'. Następnie, przypisanie wartości zmiennej 'wynik' do 'innerHTML' tego elementu zmienia jego zawartość tekstową. JavaScript jest głównym językiem do tworzenia interaktywnych stron internetowych i umożliwia programistom tworzenie dynamicznych funkcjonalności. Przykład praktycznego użycia to sytuacja, gdy na stronie internetowej chcemy wyświetlić obliczone wyniki w czasie rzeczywistym, np. w aplikacjach kalkulatorów online. W kontekście standardów branżowych, używanie DOM do manipulacji elementami HTML w JavaScript jest uważane za dobrą praktykę, a jego znajomość jest niezbędna dla każdego web developera.

Pytanie 37

Przemiana kodu źródłowego wykonanego przez programistę w zrozumiały dla maszyny kod maszynowy to

A. analizowanie błędów
B. wdrażanie
C. kompilowanie
D. wykonywanie
Kompilowanie to kluczowy proces w inżynierii oprogramowania, który polega na przekształceniu kodu źródłowego napisanego w języku wysokiego poziomu (takim jak C++, Java czy Python) na kod maszynowy zrozumiały dla komputera. Proces ten jest krytyczny, ponieważ komputery nie są w stanie interpretować kodu źródłowego bezpośrednio. Kompilator przeprowadza analizę syntaktyczną i semantyczną kodu, optymalizuje go, a następnie generuje kod maszynowy. W praktyce, kompilacja pozwala na wykrycie błędów w kodzie przed jego uruchomieniem, co jest zgodne z najlepszymi praktykami programistycznymi. Kompilatory często oferują dodatkowe narzędzia, takie jak debugery, które umożliwiają programistom śledzenie błędów w kodzie. W kontekście dużych projektów, dobrym podejściem jest również wykorzystanie systemów CI/CD, które automatyzują proces kompilacji i testowania, co znacząco przyspiesza cykl rozwoju oprogramowania oraz zwiększa jego jakość.

Pytanie 38

W języku JavaScript, deklaracja: ```var x=true;``` sprawia, że zmienna x ma typ

A. enumeracyjny
B. łańcuch znaków
C. logiczy
D. numeryczny
Zmienna x w JavaScript, która została zadeklarowana jako 'var x=true;', to typ logiczny, czyli boolean. W tym języku mamy dwie możliwe wartości: true (prawda) i false (fałsz). Ten typ jest naprawdę ważny, zwłaszcza gdy mówimy o warunkach w programach, bo to właśnie one są bazą dla programowania strukturalnego i obiektowego. Kiedy piszesz instrukcje if albo pętle, typ logiczny odgrywa kluczową rolę w tym, co się dzieje w programie. Fajnie jest korzystać z zmiennych logicznych, by kontrolować, co się dzieje w kodzie, a także sprawiać, że warunki są czytelniejsze. Ciekawe jest też to, że w JavaScript inne typy, jak liczby czy ciągi znaków, mogą być używane w kontekście wartości prawdziwych i fałszywych. To czyni typ logiczny bardzo elastycznym i wszechstronnym. Im lepiej rozumiesz ten typ, tym lepiej potrafisz tworzyć dynamiczne aplikacje, które dobrze reagują na różne sytuacje.

Pytanie 39

W formularzu wartość z pola input o typie number została przypisana do zmiennej a, a następnie przetworzona w skrypcie JavaScript w sposób poniższy

var x = parseInt(a);

Jakiego typu jest zmienna x?

A. NaN
B. zmiennoprzecinkowego.
C. liczbowe, całkowite.
D. napisowego.
Odpowiedź "liczbowego, całkowitego" jest poprawna, ponieważ funkcja <span>parseInt()</span> w JavaScript konwertuje argument na liczbę całkowitą. Kiedy zmienna <span>a</span> zawiera wartość z pola <span>input</span> o typie <span>number</span>, to ta wartość jest już reprezentacją liczby, co oznacza, że <span>parseInt()</span> przyjmuje ją jako argument i zwraca wartość liczbową całkowitą. Przykładowo, jeżeli użytkownik wprowadzi 42, to <span>parseInt(42)</span> zwróci 42 jako liczbę całkowitą. Dobrą praktyką jest używanie <span>parseInt()</span> z drugim argumentem, który określa system liczbowy (np. <span>parseInt(a, 10)</span>), co zapobiega niejednoznaczności w interpretacji liczby. Warto również pamiętać, że w przypadku, gdy wartość wprowadzona do <span>a</span> nie jest liczbą całkowitą, <span>parseInt()</span> nadal zwróci liczbę całkowitą, obcinając część dziesiętną (np. <span>parseInt(4.9)</span> zwróci 4). Dlatego w kontekście powyższego pytania, zmienna <span>x</span> przyjmuje typ liczbowy, całkowity.

Pytanie 40

Aby dołączyć kod zawarty w pliku zewnętrznym do skryptu PHP, należy użyć funkcji

A. include()
B. isset()
C. str_replace()
D. strlen()
Prawidłowa funkcja to include(), bo właśnie ona służy w PHP do dołączania kodu z zewnętrznego pliku do aktualnie wykonywanego skryptu. Mechanizm jest prosty: interpreter PHP w miejscu wywołania include() wstawia zawartość wskazanego pliku tak, jakby ten kod fizycznie znajdował się w tym miejscu. Dzięki temu można dzielić aplikację na mniejsze moduły, np. osobny plik z nagłówkiem strony (header.php), stopką (footer.php), plikiem z funkcjami (functions.php) czy konfiguracją (config.php). W praktyce bardzo często spotyka się konstrukcje typu: include 'config.php'; albo include 'partials/header.php';. Moim zdaniem to jedna z podstawowych rzeczy, które trzeba opanować przy pracy z PHP, bo bez tego szybko robi się bałagan w kodzie. Warto wiedzieć, że istnieje też require(), które działa podobnie, ale przy błędzie (np. brak pliku) zatrzymuje skrypt, podczas gdy include() tylko zgłasza ostrzeżenie i próbuje lecieć dalej. Z punktu widzenia dobrych praktyk przy ważnych plikach (np. konfiguracja bazy danych) używa się częściej require_once, żeby mieć pewność, że plik został załadowany dokładnie raz i że bez niego aplikacja nie ruszy. Include() przydaje się tam, gdzie dołączany plik nie jest aż tak krytyczny, albo gdy zależnie od logiki ładujemy różne fragmenty layoutu. W nowocześniejszych projektach często stosuje się autoloading klas (np. przez Composer), ale mechanizm include/require nadal jest fundamentem i działa pod spodem. Warto też pilnować ścieżek względnych i bezwzględnych – dobrą praktyką jest bazowanie na __DIR__ lub ścieżkach konfigurowalnych, żeby uniknąć problemów po przeniesieniu projektu na inny serwer.