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: 15 kwietnia 2026 12:01
  • Data zakończenia: 15 kwietnia 2026 12:12

Egzamin niezdany

Wynik: 12/40 punktów (30,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Jak prawidłowo skomentować linię kodu w języku Java Script? Komentarz powinien być umieszczony po znakach //

x = Math.max(a,b,c); //
A. wybór losowej wartości ze zmiennych a, b i c
B. w zmiennej x minimalna wartość ze zmiennych a, b, c
C. w zmiennej x maksymalna wartość ze zmiennych a, b, c
D. nieprawidłowe dane
Komentarze w kodzie JavaScript są spoko, bo pomagają opisać różne rzeczy, które robi nasz kod. Używając // można dodać komentarz w jednej linii, co jest dosyć popularne w językach takich jak C, C++ czy Java. Ale wracając do Math.max, to naprawdę ważne jest, żeby zrozumieć jak ta funkcja działa. Ona zwraca największą wartość spośród argumentów, więc wybieranie losowej wartości z zmiennych a, b i c nie będzie działać. Math.max działa zawsze tak samo dla tych samych argumentów, więc nie można się spodziewać, że dobierze coś losowo. Żeby uzyskać minimalną wartość, trzeba by użyć Math.min, nie Math.max. Takie myślenie o losowości w kontekście Math.max to niezbyt trafne zrozumienie. Warto to podkreślić, bo błędne przekonania mogą prowadzić do błędów w kodzie i problemów w działaniu aplikacji. Programiści powinni mieć na uwadze, jak chodzi o funkcje, żeby unikać takich sytuacji, bo mogą się one rozrastać w większych projektach. Dobry komentarz w kodzie jest ważny, bo to wpływa na jego jakość i czytelność w dłuższym czasie.

Pytanie 2

Funkcja
fun1(a,b) {
  if(a % 2 != 0) a++;
  for(let n = a; n <= b; n+=2) document.write(n);
}
ma na celu

A. wypisanie wszystkich liczb w przedziale od a do b
B. sprawdzenie, czy liczba a jest nieparzysta; w przypadku pozytywnej odpowiedzi, jej wypisanie
C. wypisanie liczb parzystych w zakresie od a do b
D. zwrócenie parzystych wartości liczb od a do b
Funkcja fun1 w JavaScript ma za zadanie wypisać liczby parzyste w przedziale od a do b. Na początku sprawdzamy, czy a jest liczbą nieparzystą, korzystając z operatora modulo. Jeśli a jest nieparzysta, to ją zwiększamy o 1, tym samym przekształcając ją w liczbę parzystą. Potem mamy pętlę for, która zaczyna od a i w każdym kroku zwiększa n o 2, co gwarantuje, że będziemy wypisywać tylko liczby parzyste. Pętla działa dopóki n jest mniejsze lub równe b. Wyniki są pokazywane na stronie dzięki document.write(). To się zgadza z tym, co ma robić ta funkcja, bo faktycznie wypisuje liczby parzyste. Na przykład, kiedy mamy a=3 i b=9, to wypisze 4, 6 i 8.

Pytanie 3

W kontekście PGP zmienna $_GET jest zmienną

A. predefiniowaną, służącą do zbierania wartości z formularzy po nagłówkach zapytań HTTP (dane z formularzy nie są widoczne w URL)
B. zwykłą, stworzoną przez autora strony
C. predefiniowaną, stosowaną do przesyłania informacji do skryptów PHP poprzez adres URL
D. zdefiniowaną przez autora strony, wykorzystywaną do przesyłania danych z formularzy przez adres URL
Odpowiedzi dotyczące zmiennej $_GET zawierają szereg nieścisłości, które mogą wprowadzać w błąd. Pierwsza z nich sugeruje, że $_GET jest używana do gromadzenia wartości formularza po nagłówkach zlecenia HTTP. W rzeczywistości, $_GET jest używana do przesyłania danych poprzez adres URL, a nie z nagłówków formularza; to zmienna $_POST odpowiada za przesyłanie danych z formularza, których nie widać w adresie. Druga niepoprawna odpowiedź twierdzi, że $_GET jest zdefiniowana przez twórcę strony. Należy podkreślić, że $_GET jest zmienną predefiniowaną, co oznacza, że jest wbudowana w PHP i nie można jej zmienić ani zdefiniować na nowo. Ostatnia odpowiedź sugeruje, że $_GET jest zwykłą zmienną, co jest nieprecyzyjne, ponieważ zmienne predefiniowane, takie jak $_GET, mają specjalne znaczenie i funkcjonalność w kontekście aplikacji webowych. W związku z tym każda z tych odpowiedzi zawiera błędne zrozumienie roli zmiennej $_GET, co może prowadzić do nieprawidłowego użycia tej zmiennej w praktyce.

Pytanie 4

Jaki rezultat uzyskamy po uruchomieniu załączonego skryptu?

<?php
class Owoc {
  function __construct() {     echo "test1";     }
  function __destruct() {     echo "test2";     }
}
$gruszka = new Owoc();
?>
A. Na ekranie pojawią się oba komunikaty: "test1" oraz "test2"
B. Pojawi się jedynie komunikat "test2"
C. Pojawi się tylko komunikat "test1"
D. Nie zostanie wyświetlony żaden komunikat
Skrypt w PHP definiuje klasę Owoc z dwoma metodami specjalnymi __construct() i __destruct(). Metoda __construct() jest automatycznie wywoływana podczas tworzenia instancji klasy. W tym wypadku, w momencie utworzenia obiektu $gruszka, zostanie wykonana metoda __construct(), która wyświetli napis test1. Następnie, gdy skrypt kończy działanie lub obiekt jest usuwany z pamięci, wywoływana jest metoda __destruct(). W tym przypadku, po zakończeniu skryptu, wywołana zostanie metoda __destruct(), która wyświetli napis test2. Metody konstruktorów i destruktorów są podstawą zarządzania cyklem życia obiektu w PHP, pozwalając na inicjalizację ustawień, jak również zwalnianie zasobów. Użycie ich jest kluczowe w projektowaniu obiektowo-zorientowanym, gdzie każda klasa może definiować własne sposoby obsługi zasobów. Praktyka ta wspiera modularność i utrzymanie kodu, co jest standardem w profesjonalnym programowaniu.

Pytanie 5

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

$db = mysqli_connect("localhost","root","qwerty","baza1");
if ( !$db ) {
...
}
A. Zarządzanie błędem połączenia
B. Przetwarzanie danych otrzymanych z bazy
C. Zamknięcie połączenia z bazą danych
D. Informacja o udanym połączeniu z bazą
Wykonywanie operacji na źle zestawionym połączeniu z bazą danych mogłoby prowadzić do nieprzewidywalnych zachowań aplikacji. Próba obsługi danych pobranych z bazy kiedy połączenie nie zostało nawiązane jest błędnym podejściem. Bez prawidłowego połączenia nie można pobrać danych dlatego nie ma sensu implementowanie takiej logiki w tym miejscu kodu. Podobnie komunikat o pomyślnym połączeniu nie znajduje uzasadnienia w konstrukcji warunku sprawdzającego nieudane połączenie. Jeśli warunek jest spełniony oznacza to że połączenie się nie powiodło i należy podjąć kroki w celu obsługi tego błędu a nie informować o sukcesie. Zamknięcie połączenia z bazą danych jest czynnością wykonywaną na końcu pracy z bazą a nie na początku co również czyni tę odpowiedź niepoprawną w kontekście błędnego nawiązywania połączenia. Dobre praktyki programistyczne wskazują na potrzebę właściwego zarządzania połączeniami do bazy danych co obejmuje ich otwieranie dopiero gdy są potrzebne i zamykanie gdy nie są już używane. Koncepcje błędnego umiejscowienia tych operacji w logice aplikacji mogą prowadzić do nieskuteczności i obniżenia wydajności aplikacji co podkreśla wagę poprawnego zrozumienia procesu nawiązywania połączeń z bazą danych.

Pytanie 6

Aby poprawnie udokumentować poniższą linię kodu, trzeba po znakach // dodać komentarz: ```document.getElementById("napis").innerHTML = Date(); //```

A. błędne informacje
B. zmiana stylizacji atrybutu innerHTML
C. wyświetlenie tekstu "Date()" w elemencie o id = napis
D. wyświetlenie daty i czasu w elemencie o id = napis
Odpowiedzi takie jak 'wyświetlenie tekstu "Date()" w znaczniku o id = napis' oraz 'zmiana stylu atrybutu innerHTML' zawierają pewne nieporozumienia dotyczące działania JavaScript. Pierwsza z tych odpowiedzi sugeruje, że kod wyświetli tekst 'Date()', co jest błędne, ponieważ funkcja 'Date()' jest wywoływana, a nie traktowana jako tekst. W rezultacie, zamiast tego, otrzymujemy obiekt daty, który jest przetwarzany i konwertowany na ciąg tekstowy przedstawiający aktualną datę i czas. Ponadto, odpowiedź mówiąca o 'zmianie stylu atrybutu innerHTML' wprowadza w błąd, ponieważ 'innerHTML' nie jest używane do zmiany stylów CSS, ale do manipulacji zawartością HTML. Atrybut 'innerHTML' odpowiada za zawartość wewnętrzną elementu, a nie za jego stylizację. Typowe błędy myślowe prowadzące do takich niepoprawnych konkluzji obejmują mylenie funkcji, które zwracają wartości, z tekstami literalnymi oraz niepełne zrozumienie różnicy między manipulacją treścią a stylami CSS. Aby uniknąć tych nieporozumień, ważne jest, aby zawsze dokładnie analizować, co dany fragment kodu robi i jakie są jego skutki w kontekście całej aplikacji.

Pytanie 7

Warunek zapisany w języku PHP wypisze liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. wynik dzielenia liczby przez 2 jest równy 0.
B. jest ona liczbą pierwszą.
C. jest ona parzysta.
D. jest ona dodatnia.
Niestety twoja odpowiedź nie jest prawidłowa. Wybranie opcji mówiącej, że warunek w PHP wypisze liczbę, gdy jest ona liczbą pierwszą, błędnie zakłada, że operator modulo (%) sprawdza pierwszość liczby. W rzeczywistości, operator ten zwraca resztę z dzielenia jednego liczby przez drugą. Nie jest więc w stanie bezpośrednio sprawdzić, czy liczba jest pierwsza. Podobnie, wybranie opcji mówiącej, że warunek wypisze liczbę, gdy jest ona dodatnia, błędnie sugeruje, że operator modulo (%) jest w stanie samego sprawdzić dodatność liczby. W rzeczywistości, operator ten jest często używany do sprawdzania parzystości liczby, nie jest jednak w stanie sprawdzić, czy liczba jest większa od zera. Ostatecznie, wybranie opcji mówiącej, że warunek wypisze liczbę, gdy wynik dzielenia liczby przez 2 jest równy 0, jest tautologią, ponieważ to właśnie definicja liczby parzystej. To jednak nie jest błąd w rozumieniu, a raczej w formułowaniu pytania.

Pytanie 8

W języku PHP zapis

// 
pozwala na:
A. dodanie komentarza jednoliniowego
B. dodanie komentarza wieloliniowego
C. użycie tablicy superglobalnej
D. użycie operatora dzielenia bez reszty
W języku PHP zapis <pre>//</pre> służy do wstawiania komentarzy jednoliniowych. Komentarze są istotnym elementem kodu, ponieważ pozwalają programistom na dokumentowanie i wyjaśnianie fragmentów kodu, co ułatwia jego zrozumienie i utrzymanie. W PHP, komentarze jednoliniowe zaczynają się od dwóch ukośników i rozciągają się do końca danej linii. Przykładowo, zapis <pre>// To jest komentarz jednoliniowy</pre> informuje innych programistów, że dany tekst jest komentarzem, który nie zostanie wykonany przez interpreter PHP. Stosowanie komentarzy jest zgodne z najlepszymi praktykami programowania, ponieważ poprawia czytelność kodu oraz pozwala na szybszą analizę struktury i logiki aplikacji. Dobrą praktyką jest dokumentowanie nie tylko skomplikowanych fragmentów, ale również takich, które mogą wydawać się oczywiste, aby zminimalizować ryzyko nieporozumień w przyszłości. Komentarze pomagają także w pracy zespołowej, gdzie wiele osób może pracować nad tym samym projektem.

Pytanie 9

Zapis w języku JavaScript:

x = przedmiot.nazwa();
wskazuje, że
A. Zmienna x będzie przechowywać rezultat wykonania metody nazwa.
B. nazwa jest polem w klasie przedmiot.
C. Zmienna x będzie przechowywać rezultat działania funkcji przedmiot.
D. nazwa stanowi właściwość obiektu przedmiot.
W kodzie JavaScript zapis x = przedmiot.nazwa(); oznacza, że zmienna x będzie przechowywać wynik działania metody nazwa, która jest zdefiniowana w obiekcie przedmiot. W JavaScript metody są funkcjami przypisanymi do obiektów, co oznacza, że mogą one operować na danych wewnątrz tych obiektów. Przykładem może być klasa 'Osoba', która ma metodę 'pobierzImie', zwracającą imię danej osoby. W wywołaniu 'let imie = osoba.pobierzImie();', zmienna imie przechowa wynik działania tej metody. Dobrą praktyką jest, aby metody były odpowiedzialne za operacje związane z danymi, które przechowują, co zwiększa modularność i czytelność kodu. W kontekście standardów programowania, zachowanie to wspiera zasady OOP (programowania obiektowego), umożliwiając enkapsulację oraz ponowne wykorzystanie kodu. Dobrze zdefiniowane metody zwiększają spójność i ułatwiają testowanie jednostkowe. W efekcie, zawsze warto dążyć do klarownego definiowania metod w obiektach, aby poprawić jakość i efektywność pisania kodu.

Pytanie 10

Które z wywołań funkcji PHP round() da wynik równy 1?

A. round(0.29)
B. round(0.60)
C. round(-1.40)
D. round(-4.60)
Wybór round(-4.60) prowadziłby do błędnego wyniku, ponieważ ta funkcja zaokrągliłaby wartość do -5, a nie do 1. Podobnie, w przypadku round(0.29), wynik to 0, ponieważ liczba ta jest bliżej 0 niż do 1. Z kolei round(-1.40 również nie spełnia wymogów, gdyż ta liczba zostanie zaokrąglona do -1, co znów nie jest zadowalające. Typowym błędem myślowym jest mylenie wartości ujemnych lub zbyt małych z ich zaokrąglonymi wartościami, co prowadzi do nieprawidłowych wniosków. Użytkownicy często nie zdają sobie sprawy, że wartości bliskie 0.5 mają tendencję do zaokrąglania w górę, natomiast wartości mniejsze od zera są zaokrąglane w dół. Właściwe zrozumienie mechanizmu działania funkcji round() w kontekście różnych zakresów liczb jest kluczowe dla precyzyjnych obliczeń. Dobrą praktyką jest również testowanie wyników zaokrągleń w różnych scenariuszach, co pozwala na lepsze zrozumienie działania funkcji oraz uniknięcie błędów w przyszłych projektach programistycznych.

Pytanie 11

Które z pojęć programowania obiektowego w języku JavaScript odnosi się do dostępu do pól i metod jedynie z poziomu klasy, w której zostały one zadeklarowane?

A. private
B. static
C. const
D. public
Użycie słowa kluczowego 'const' w języku JavaScript odnosi się do deklaracji stałych, a nie do poziomu dostępu do pól i metod w klasach. 'const' pozwala na tworzenie zmiennych, których wartości nie mogą być zmieniane, co może prowadzić do nieporozumień w kontekście obiektowości. W rzeczywistości stałe są dostępne w zasięgu bloku, w którym zostały zadeklarowane, co nie ma związku z dostępem do pól i metod klas. Z kolei 'public' to słowo kluczowe, które oznacza, że pola i metody są dostępne z zewnątrz klasy, co stoi w kontraście do prywatnych elementów. Często programiści mylą te dwa podejścia, co prowadzi do błędów w projektowaniu systemów, które wymagają ukrycia implementacji. Dodatkowo, 'static' odnosi się do pól i metod, które są powiązane z klasą, a nie z instancją obiektu. Oznacza to, że takie elementy można wywoływać bez tworzenia instancji klasy. Jest to przydatne w sytuacjach, gdy nie zachodzi potrzeba operowania na danych instancji. Przy wyborze odpowiednich słów kluczowych kluczowe jest zrozumienie ich roli w kontekście obiektowym oraz ich wpływu na architekturę systemu. Dlatego warto przywiązywać wagę do technicznych niuansów, aby unikać typowych pułapek związanych z dostępem do danych.

Pytanie 12

Podany fragment dokumentu HTML zawierający kod JavaScript sprawi, że po naciśnięciu przycisku

Ilustracja do pytania
A. obraz2.png zostanie wymieniony na obraz1.png
B. obraz1.png zostanie wymieniony na obraz2.png
C. obraz1.png zostanie zniknięty
D. obraz2.png zostanie zniknięty
W analizie odpowiedzi należy zwrócić uwagę na działanie technologii webowych w kontekście manipulacji elementami HTML. W pytaniu przedstawiono kod JavaScript używany w zdarzeniu onclick przycisku HTML co prowadzi do zmiany stylu elementu. Jeśli chodzi o odpowiedź sugerującą że obraz1.png zostanie ukryty jest to błędne ponieważ w kodzie nie ma odwołania do tego elementu poprzez identyfikator. Manipulacja stylami CSS dotyczy jedynie elementów które zostały jednoznacznie zidentyfikowane w skrypcie. Kolejna błędna odpowiedź mówi że obraz2.png zostanie zastąpiony przez obraz1.png. W rzeczywistości w kodzie nie ma żadnego mechanizmu ani funkcji które by zamieniały jeden obrazek na drugi. Skrypt jedynie ukrywa element zmieniając jego styl display więc nie dochodzi do żadnej zamiany. Odpowiedź sugerująca że obraz1.png zostanie zastąpiony przez obraz2.png również jest błędna z podobnych powodów. Manipulacja DOM w tym przypadku polega wyłącznie na zmianie stylu widoczności a nie na modyfikacji treści czy zamianie elementów. Typowym błędem jest założenie że skrypty JavaScript dokonują zamian elementów co wymaga bardziej zaawansowanych operacji niż zmiana stylu display. Kluczowe w programowaniu webowym jest zrozumienie jak selektywne odwoływanie się do elementów za pomocą funkcji takich jak getElementById pozwala na precyzyjne kontrolowanie ich właściwości i reakcji na interakcje użytkownika co jest fundamentem tworzenia dynamicznych i interaktywnych stron internetowych

Pytanie 13

Wskaż wszystkie symbole, które pozwalają na komentowanie kodu w języku PHP.

A. tylko /* */
B. /* */ oraz // oraz #
C. /* */ oraz <!-- -->
D. <?php ?> oraz //
Wybór odpowiedzi wskazującej jedynie na znaki /* */ jako mechanizmy komentowania jest niekompletny i wprowadza w błąd. Komentarze są istotnym elementem każdego skryptu, ponieważ pozwalają na dodawanie uwag, które nie wpływają na wykonanie programu, ale znacząco przyczyniają się do jego zrozumienia. Ograniczanie się jedynie do komentarzy wieloliniowych oznaczonych przez /* */ pomija inne, równie istotne metody komentowania, które są dostępne w PHP. Innym błędem jest sugerowanie, że <?php ?> oraz // są metodami komentowania. Znak <?php ?> służy do otwierania bloku kodu PHP, a nie do tworzenia komentarzy, co jest fundamentalnym nieporozumieniem. Wprowadzenie znaku <!-- --> jako sposobu na komentowanie w PHP jest również mylące, ponieważ ten zapis jest używany w HTML, a nie w PHP, co prowadzi do nieporozumień dotyczących kontekstu użycia. Użycie nieodpowiednich znaków do komentowania może prowadzić do problemów w interpretacji kodu przez interpreter PHP oraz utrudniać jego konserwację. Właściwe rozumienie mechanizmów komentowania jest kluczowe dla każdej osoby programującej w PHP, ponieważ pozwala na tworzenie bardziej czytelnych, zrozumiałych i utrzymywalnych skryptów.

Pytanie 14

Określ rezultat działania podanego kodu PHP, przy założeniu, że zmienna tab jest tablicą.

$tab = explode(",", "jelenie,sarny,dziki,lisy,borsuki"); 
echo $tab[1]." ".$tab[2];
A. dziki lisy
B. sarny dziki
C. lisy borsuki
D. jelenie sarny
Wybór odpowiedzi 'jelenie sarny' wskazuje na brak zrozumienia podstawowych zasad przydzielania indeksów w tablicach w PHP. Elementy tablicy są indeksowane od zera, co oznacza, że $tab[0] odpowiada pierwszemu elementowi, którym jest 'jelenie', a $tab[1] to 'sarny'. Stąd wynika, że kombinacja 'jelenie sarny' nie jest wynikiem wykonania podanego kodu. Podobnie, wybór 'lisy borsuki' także jest błędny, ponieważ $tab[3] to 'lisy', a $tab[4] to 'borsuki', co nie znajduje się w kontekście użycia echo. W przypadku 'dziki lisy', nie uwzględnia on odpowiednich indeksów, ponieważ $tab[2] to 'dziki', a $tab[3] to 'lisy', a więc również nie odpowiada wynikowi zwróconemu przez kod. Takie pomyłki mogą wynikać z nieuwagi lub braku zrozumienia struktury tablic oraz ich indeksowania. Kluczowe jest, aby programista zdawał sobie sprawę, jak funkcje PHP manipulują danymi oraz jak poprawnie odwoływać się do elementów tablicy, co jest fundamentalne dla efektywnego programowania i unikania błędów w aplikacjach.

Pytanie 15

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

A. Deklaracja zmiennych następuje po słowie var
B. W nazwach zmiennych nie rozróżnia się wielkości liter
C. Nazwy zmiennych poprzedza znak !
D. Jest to język o słabej kontroli typów
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 16

Jakiego języka można użyć do obsługi połączenia z bazą danych MySQL podczas rozwijania aplikacji webowej?

A. CSS
B. HTML
C. PHP
D. XHTML
PHP jest językiem skryptowym, który jest szeroko stosowany do tworzenia dynamicznych aplikacji internetowych, a jego zdolność do interakcji z bazami danych, takimi jak MySQL, czyni go idealnym narzędziem do obsługi połączeń z bazą danych. PHP umożliwia programistom wysyłanie zapytań SQL do bazy danych, wykonywanie operacji CRUD (tworzenie, odczyt, aktualizacja, usuwanie) oraz przetwarzanie wyników, co jest kluczowe w nowoczesnym tworzeniu aplikacji webowych. Przykładowy kod PHP do nawiązania połączenia z bazą danych MySQL może wyglądać następująco: $conn = new mysqli('localhost', 'username', 'password', 'database');. W przypadku niepowodzenia połączenia, można użyć if ($conn->connect_error) { die('Connection failed: ' . $conn->connect_error); }. PHP wspiera również różne techniki zabezpieczeń, takie jak przygotowywanie zapytań, co znacząco zwiększa bezpieczeństwo aplikacji przed atakami typu SQL Injection. Dokumentacja PHP oraz standardy, takie jak PSR (PHP Standards Recommendations), dostarczają programistom niezbędnych wytycznych, aby tworzyć wydajne i bezpieczne aplikacje. Dzięki swojej elastyczności i wszechstronności, PHP stał się językiem pierwszego wyboru dla programistów zajmujących się tworzeniem aplikacji internetowych z interfejsem do baz danych.

Pytanie 17

W skrypcie JavaScript, aby uzyskać dane od użytkownika, można wykorzystać okno wyświetlane przez funkcję

A. alert()
B. prompt()
C. documet.write()
D. confirm()
Funkcja prompt() w JavaScript jest specjalnie zaprojektowana do pobierania danych od użytkownika i wyświetlania okna dialogowego, które pozwala wprowadzić tekst. W przeciwieństwie do alert(), który jedynie wyświetla informacje, prompt() umożliwia użytkownikowi wprowadzenie danych, które mogą być później wykorzystane w kodzie. Na przykład, można zainicjować zmienną i przypisać do niej wartość wprowadzaną przez użytkownika: var imie = prompt('Podaj swoje imię:');. Tego rodzaju interakcje są niezwykle ważne w dynamicznych aplikacjach internetowych, gdzie potrzeba elastyczności i użytkownika jako aktywnego uczestnika w procesie. Dobrą praktyką jest zapewnienie, że zapytania są jasne i zrozumiałe, a także, że walidujemy dane wejściowe, aby uniknąć błędów. Warto również mieć na uwadze, że z uwagi na estetykę i funkcjonalność, w nowoczesnym podejściu do interakcji użytkownika, lepszym rozwiązaniem mogą być formularze HTML z JavaScript, które oferują większą kontrolę nad danymi i lepsze możliwości stylizacji."

Pytanie 18

Jakie zdarzenie należy wykorzystać, aby funkcja JavaScript była aktywowana za każdym razem, gdy użytkownik wprowadza jakikolwiek znak w polu tekstowym?

A. onmouseout
B. onkeydown
C. onclick
D. onload
Odpowiedzi onload, onclick oraz onmouseout nie są odpowiednie do zadania, ponieważ każde z tych zdarzeń ma inne zastosowanie i nie odpowiada wymaganiom związanym z rejestrowaniem wprowadzania tekstu przez użytkownika. Zdarzenie 'onload' jest wywoływane, gdy strona internetowa lub element zasobu (np. obraz) jest w pełni załadowany. Jest to idealne do inicjalizacji skryptów lub stylów, ale nie reaguje na interakcje użytkownika w czasie rzeczywistym. 'onclick' dotyczy sytuacji, gdy użytkownik klika element, co nie jest wystarczające do uchwycenia zmian dokonywanych w polu edycji podczas pisania. W związku z tym, nie będzie skuteczne w kontekście, gdy chcemy wykrywać każdy naciśnięty klawisz. Z kolei 'onmouseout' jest wywoływane, gdy kursor myszy opuszcza dany element na stronie. Użycie tego zdarzenia mogłoby prowadzić do nieprzewidywalnych efektów i nie miałoby żadnego znaczenia w kontekście wprowadzania tekstu przez użytkownika. Z tego powodu, aby prawidłowo zareagować na wprowadzanie danych, zastosowanie 'onkeydown' jest zdecydowanie najbardziej odpowiednie.

Pytanie 19

W formularzu wartości z pola input o typie number zostały przypisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w sposób następujący: ```var x = parseInt(a);``` Jakiego typu będzie zmienna x?

A. napisowego
B. liczbowego, całkowitego
C. Nan
D. zmiennoprzecinkowego
Wybór niepoprawnych odpowiedzi wynika z nieporozumienia dotyczącego działania funkcji parseInt oraz typów danych w JavaScript. W pierwszej z niepoprawnych odpowiedzi, Nan oznacza 'Not a Number', który jest zwracany, gdy operacja konwersji na liczbę nie może zostać przeprowadzona. W kontekście zmiennej a, jeśli ta wartość jest poprawnym wejściem z pola input typu number, parseInt nie zwróci NaN, a raczej prawidłową liczbę całkowitą. Kolejna opcja opisuje typ napisowy, co jest sprzeczne z tym, co zapewnia funkcja parseInt, ponieważ zwraca ona wartość liczbową, a nie tekst. Wartości typu string mogą być konwertowane na liczby, ale samo pole input o typie number nie wprowadza napisów, a zatem nie tworzy sytuacji, w której wynik byłby typu string. Ostatnia z błędnych odpowiedzi nawiązuje do zmiennoprzecinkowego typu danych. Chociaż JavaScript obsługuje liczby zmiennoprzecinkowe, funkcja parseInt celowo konwertuje na wartość całkowitą, co wyklucza możliwość uzyskania zmiennoprzecinkowego wyniku. Zrozumienie tych różnic jest istotne dla efektywnego programowania w JavaScript i unikania typowych pułapek związanych z konwersją typów.

Pytanie 20

W języku PHP zmienna $_GET jest zmienną

A. zwykłą, utworzoną przez autora witryny
B. predefiniowaną, używaną do przesyłania informacji do skryptów PHP za pośrednictwem adresu URL
C. predefiniowaną, wykorzystywaną do zbierania wartości formularza po nagłówkach żądania HTTP (dane z formularza nie są widoczne w adresie)
D. utworzoną przez autora strony, używaną do przesyłania danych z formularza przez adres URL
Niepoprawne odpowiedzi prowadzą do nieporozumień dotyczących funkcji i konstrukcji zmiennej $_GET. W przeciwieństwie do stwierdzenia, że zmienna ta jest zdefiniowana przez twórcę strony, $_GET jest predefiniowaną zmienną, co oznacza, że jest dostarczana przez PHP jako część jego standardowej biblioteki. Również błędne jest twierdzenie, że dane przekazywane przez $_GET nie są widoczne w adresie URL. W rzeczywistości, jednym z kluczowych elementów działania $_GET jest to, że dane są rzeczywiście dołączane do adresu URL, co czyni je publicznie dostępnymi. Takie podejście może być użyteczne w przypadku, gdy chcemy, aby dane były łatwe do udostępnienia lub w przypadku, gdy chcemy umożliwić użytkownikom zakładanie zakładek na konkretne wyniki wyszukiwania. Niedopuszczalne jest także określanie $_GET jako 'zwykłej' zmiennej, ponieważ jej funkcjonalność jest ściśle związana z interakcją z protokołem HTTP i sposobem, w jaki dane są przesyłane pomiędzy klientem a serwerem. W kontekście aplikacji webowych, kluczowe jest, aby deweloperzy rozumieli nie tylko techniczne aspekty używania $_GET, ale także konsekwencje związane z bezpieczeństwem, takie jak ryzyko ataków XSS (Cross-site scripting) i potrzeba sanitizacji danych, które mogą pochodzić od użytkowników.

Pytanie 21

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ć?

1  if(a < b)
2      document.write(a);
3      document.write("jest mniejsze");
4  else
5      document.write(b);
6      document.write("jest mniejsze");
A. umieścić zmienne a i b w cudzysłowie w liniach 2 i 5
B. dodać znak $ przed nazwami zmiennych
C. wprowadzić nawiasy klamrowe w sekcji if i else
D. zmienić znaki cudzysłowu na apostrof w liniach 3 i 6, np. 'jest mniejsze'
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.

Pytanie 22

Definicja formularza została użyta na stronie internetowej, która przesyła dane do pliku napisanego w języku PHP. W jakiej tablicy będą dostępne dane z tego formularza?

Ilustracja do pytania
A. $_GET
B. $_ACTION
C. $_POST
D. $_COOKIE
Tablica $_POST w PHP służy do przechwytywania danych przesyłanych za pomocą metody POST. Jest to standardowa praktyka w przypadku formularzy, które zawierają dane wrażliwe lub dużą ilość informacji. Metoda POST przesyła dane w treści żądania HTTP, co oznacza, że nie są one widoczne w adresie URL, co zwiększa bezpieczeństwo w porównaniu do metody GET. Przykładem zastosowania mogą być formularze logowania czy przesyłania plików. W PHP dostęp do danych z formularza można uzyskać poprzez prostą składnię, na przykład $_POST['nazwa_pola']. Ważne jest, aby zawsze walidować i filtrować dane wejściowe, aby zabezpieczyć aplikację przed atakami typu SQL Injection czy XSS. Zastosowanie metody POST jest zgodne z ogólnymi zasadami bezpieczeństwa i standardami projektowania aplikacji webowych, które zalecają ograniczanie widoczności danych przesyłanych przez użytkownika. Dobre praktyki obejmują również stosowanie HTTPS, aby dodatkowo zaszyfrować dane przesyłane pomiędzy klientem a serwerem.

Pytanie 23

Przedstawiony kod PHP nawiązuje połączenie z serwerem bazy danych. Jakiego typu operacje powinny się znaleźć w instrukcji warunkowej w miejscu trzech kropek?

$db = mysqli_connect("localhost", "root", "qwerty", "baza1");
if (!$db) {
...
}
A. Informacja o pomyślnym nawiązaniu połączenia z bazą
B. Zamknięcie połączenia z bazą danych
C. Przetwarzanie danych uzyskanych z bazy
D. Obsługa błędu przy nawiązywaniu połączenia
Zamknięcie bazy danych w kontekście nawiązywania połączenia z bazą danych nie ma sensu, ponieważ w momencie, gdy kod wykonuje sprawdzenie połączenia, to takie połączenie nie zostało jeszcze nawiązane. Próba zamknięcia niezainicjowanego połączenia nie tylko nie przyniesie żadnego efektu, ale także może prowadzić do mylnych wniosków dotyczących kodu. Ponadto, zachowanie takie może wprowadzać w błąd, sugerując, że operacje na bazie danych mogłyby być przeprowadzone w tym momencie, co jest nieprawdziwe. Obsługa danych pobranych z bazy również nie jest właściwym podejściem w momencie, gdy połączenie nie zostało jeszcze ustanowione - przed przetwarzaniem jakichkolwiek danych, najpierw musimy upewnić się, że połączenie jest aktywne. Natomiast komunikat o pomyślnym połączeniu z bazą nie powinien być używany w instrukcji warunkowej, gdyż działa on na zasadzie potwierdzenia, a nie na detekcji błędów. Ważne jest, aby zrozumieć, że każda z tych odpowiedzi nie odpowiada na istotę problemu - w przypadku problemów z połączeniem zwłaszcza w aplikacjach produkcyjnych, brak odpowiedniego komunikatu o błędzie może prowadzić do poważnych trudności w diagnozowaniu i naprawie problemów, co może wpływać na całkowitą funkcjonalność systemu oraz jego niezawodność.

Pytanie 24

Po wykonaniu fragmentu kodu HTML i JavaScript na stronie będzie wyświetlony obraz z pliku

<img id="obraz" src="kol1.jpg">
<button id="przycisk">Przycisk</button>

<script>
    document.getElementById("obraz").src = "kol2.jpg";
</script>
A. kol1.jpg, który może być zmieniony na kol2.jpg po wciśnięciu przycisku.
B. kol2.jpg
C. kol1.jpg
D. kol2.jpg, który może być zmieniony na kol1.jpg po wciśnięciu przycisku.
Dobra robota, zgadłeś! W tym skrypcie JavaScript używamy metody getElementById, żeby znaleźć obraz na stronie o identyfikatorze 'obraz'. Później zmieniamy jego atrybut 'src' na 'kol2.jpg'. To znaczy, że po uruchomieniu tego kodu wyświetli się właśnie ten obrazek. Fajnie jest to zrozumieć, bo pokazuje, jak można dynamicznie zmieniać rzeczy na stronie za pomocą JavaScript. Takie umiejętności są super ważne, gdy tworzymy interaktywne strony, które reagują na to, co robi użytkownik. Na przykład, można by zmienić obraz, gdy ktoś najedzie na niego myszką albo kliknie przycisk. Pamiętaj też, żeby zawsze pomyśleć o dostępności – jeśli obraz ma jakieś ważne informacje, warto dodać alternatywne opisy dla osób korzystających z czytników ekranu.

Pytanie 25

Jaki jest cel funkcji napisanej w PHP?

function fun1($liczba)
{
  if($liczba % 2 == 0)
    return 1;

  return 0;
}
A. Wypisanie liczby parzystej
B. Wypisanie liczby nieparzystej
C. Zwrócenie wartości 0, gdy liczba jest parzysta
D. Zwrócenie wartości 1, gdy liczba jest parzysta
Funkcja w języku PHP została zaprogramowana w taki sposób, aby najpierw sprawdzić, czy podana liczba jest parzysta, używając operatora modulo (%). Operacja $liczba % 2 == 0 sprawdza resztę z dzielenia przez 2, która dla liczb parzystych wynosi 0. Jeśli warunek jest spełniony, funkcja natychmiast zwraca wartość 1, co oznacza, że liczba jest parzysta. Taki sposób kodowania jest wydajny, ponieważ funkcja zakończy działanie natychmiast po spełnieniu warunku, bez dalszego przetwarzania. Jest to dobry przykład stosowania operacji warunkowych w funkcjach, co jest zgodne z dobrymi praktykami programistycznymi, zwłaszcza gdy zależność logiczna jest prosta i może być szybko zidentyfikowana. Takie funkcje często wykorzystywane są w systemach walidacji danych, gdzie szybkie potwierdzenie poprawności danych jest kluczowe dla wydajności całego systemu. Pozwala również na łatwe rozszerzenie logiki, jeśli w przyszłości zajdzie taka potrzeba.

Pytanie 26

W JavaScript, aby wyodrębnić fragment tekstu pomiędzy wskazanymi indeksami, powinno się zastosować metodę

A. trim()
B. concat()
C. slice()
D. replace()
Wybór innych metod do manipulacji ciągami tekstowymi sugeruje niezrozumienie ich właściwości. Metoda trim() służy do usuwania białych znaków z początku i końca napisu, co nie ma nic wspólnego z wydobywaniem fragmentów. Użytkownicy mogą mylnie sądzić, że trim() jest przydatna do ekstrakcji, jednak jej zastosowanie jest zupełnie inne i polega na oczyszczaniu danych. Metoda concat() łączy dwa lub więcej ciągów tekstowych, co również nie odpowiada na potrzebę wydobywania podciągu. Zrozumienie, że concat() nie jest odpowiedzią na pytanie o wydobycie fragmentu, jest kluczowe dla efektywnego korzystania z języka JavaScript. Z kolei replace() służy do zamiany określonego fragmentu tekstu na inny, co może wprowadzać w błąd, gdyż nie wydobywa fragmentów, lecz je modyfikuje. Użytkownicy mogą mylić te metody, nie dostrzegając różnic między modyfikacją a wydobywaniem, co jest istotne w kontekście manipulacji danymi. Ważne jest, aby rozumieć specyfikę każdej metody oraz jej zastosowanie w codziennym programowaniu, co pozwala na efektywniejsze i bardziej precyzyjne pisanie kodu w JavaScript.

Pytanie 27

Który z poniższych sposobów wyświetlania tekstu nie jest określony w języku JavaScript?

A. Funkcja window.alert()
B. Metoda document.write()
C. Funkcja MessageBox()
D. Właściwość innerHTML
Niestety, wszystkie trzy odpowiedzi, które zaznaczyłeś, są poprawne w JavaScript i mają swoje własne zastosowania. Własność innerHTML to jedna z najpopularniejszych metod do modyfikacji zawartości HTML. Umożliwia ona dodawanie nowych wartości do elementów, co pozwala na dynamiczne zmienianie treści strony bez przeładowania jej. Technicznie, innerHTML można używać w każdym elemencie HTML i akceptuje zarówno tekst, jak i poprawny kod HTML. Metoda window.alert() to prosta funkcja, dzięki której można pokazać komunikat w oknie przeglądarki, co bywa przydatne w różnych sytuacjach, na przykład do potwierdzania działań lub informowania o błędach. Te metody są dość podstawowe, ale ich wykorzystanie w aplikacjach webowych może być ograniczone przez kwestie estetyki oraz doświadczenia użytkownika. Natomiast document.write() to starsza technika, która pozwala na wypisywanie treści w trakcie ładowania strony. Choć dziś nie jest zbyt często używana w nowoczesnych praktykach, można ją jeszcze spotkać w prostych skryptach czy materiałach edukacyjnych. Warto jednak wiedzieć, że w dzisiejszym programowaniu lepiej korzystać z metod manipulacji DOM, jak document.createElement(), czy używać frameworków jak React czy Vue.js, które oferują bardziej rozbudowane podejście do zarządzania zawartością stron.

Pytanie 28

Fragment kodu powyżej został napisany w języku JavaScript. Co należy umieścić w miejsce kropek, aby program przypisywał wartość 1 co trzeciemu elementowi w tablicy?

for (i = 0; i < T.length; ...)
{
    T[i] = 1;
}
A. i += 3
B. i =+ 3
C. i = 3
D. i ++ 3
Inne odpowiedzi wynikają z nieprawidłowego zrozumienia mechaniki inkrementacji w pętli for w JavaScript. Wyrażenie i ++ 3 sugeruje błąd składniowy i logiczny. Operator ++ służy do zwiększenia wartości zmiennej o 1 i nie jest poprawnie użyty w połączeniu z innym operatorem lub liczbą. Takie połączenie może prowadzić do nieprzewidywalnych rezultatów i niespójności w kodzie. Natomiast i = 3 to przypisanie które ustawia wartość i na 3 na początku każdej iteracji resetując pętlę i uniemożliwiając jej poprawne działanie. Taka konstrukcja powodowałaby nieskończone zapętlenie ponieważ warunek końcowy pętli nigdy nie mógłby zostać spełniony. Z kolei i =+ 3 to błędna składnia ponieważ operator += jest połączony z plusem co prowadzi do błędów interpretacji przez kompilator. Zamiana kolejności lub dodanie niepotrzebnych znaków zmienia całkowicie logikę operacji prowadząc do nieoczekiwanych rezultatów. Zrozumienie poprawnego użycia operatorów inkrementacji i przypisania jest kluczowe w programowaniu w JavaScript ponieważ umożliwia to pisanie efektywnego i wydajnego kodu. Takie błędy są częste u początkujących którzy często mylą różne operatory przypisania i inkrementacji dlatego ważne jest ćwiczenie poprawnych konstrukcji składniowych podczas nauki programowania. Częste ćwiczenie i testowanie kodu w różnych scenariuszach pozwala na lepsze zrozumienie tych mechanizmów i uniknięcie typowych pułapek związanych z nieprawidłowym użyciem operatorów.

Pytanie 29

Jakie polecenie należy zastosować, aby wysłać dane przy pomocy funkcji mysqli_query() w skrypcie PHP, który dodaje informacje z formularza umieszczonego na stronie internetowej do bazy danych?

A. UPDATE
B. SELECT
C. INSERT INTO
D. ALTER
Wybór innych opcji związany jest z nieporozumieniami co do funkcji kwerend SQL. ALTER jest stosowany do modyfikacji struktury istniejącej tabeli, co nie ma zastosowania w kontekście wstawiania danych. Użycie tej komendy sugeruje chęć zmiany kolumn, ich typów czy nazw, a nie dodawania nowych rekordów. UPDATE służy do aktualizacji istniejących danych w tabelach, co również nie jest związane z dodawaniem nowych wartości. Użytkownicy często mylą operacje aktualizacji z wstawieniem nowych danych, co może prowadzić do błędnych implementacji. SELECT to zapytanie używane do pobierania danych z bazy, a nie do ich wstawiania. Stosowanie SELECT w kontekście wstawiania danych może prowadzić do nieporozumień, zwłaszcza gdy użytkownicy próbują zrozumieć, jak działa interakcja z bazą danych. Typowe błędy myślowe to mylenie operacji na danych z operacjami na strukturze bazy, co może być szczególnie problematyczne w przypadku pracy z większymi aplikacjami, w których zarządzanie danymi jest kluczowe dla ich funkcjonowania. Aby skutecznie zarządzać danymi w bazach, kluczowe jest zrozumienie różnic między tymi operacjami oraz ich właściwe zastosowanie.

Pytanie 30

Aby zmienić wartość atrybutu elementu opisanego w CSS 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).style.<nazwa właściwości> = <nowa wartość>
D. document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>
Odpowiedzi, które nie zawierają poprawnego odniesienia do właściwości style, wskazują na istotne nieporozumienia dotyczące manipulacji elementami DOM w JavaScript. Użycie document.getElementById(id).innerHTML = <nowa wartość>; nie jest odpowiednie do zmiany elementów stylu, ponieważ innerHTML służy do modyfikacji zawartości HTML wewnątrz elementu, a nie jego stylów. Zmiana zawartości może prowadzić do nadpisania istniejących elementów i wprowadzenia niezamierzonych skutków, takich jak utrata zdarzeń przypisanych do tych elementów. Kolejny błąd tkwi w użyciu document.getElementById(id).<nazwa właściwości> = <nowa wartość>; gdzie <nazwa właściwości> może odnosić się do atrybutów DOM, ale nie do właściwości stylu CSS. Na przykład, ustawienie document.getElementById(id).className = 'newClass'; zmieni klasę CSS elementu, ale nie bezpośrednio jego styl. Ostatnia propozycja, document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>; jest również myląca, ponieważ nie odnosi się do modyfikacji stylów, lecz do manipulacji atrybutami HTML, co może prowadzić do nieprawidłowego działania strony. Zrozumienie zasadniczej różnicy między manipulowaniem treścią a stylem, a także umiejętność właściwego korzystania z DOM, są kluczowe dla skutecznego programowania w JavaScript.

Pytanie 31

W języku PHP stwórz warunek, który będzie prawdziwy, gdy zmienna

$a 
będzie jakąkolwiek liczbą całkowitą mniejszą niż -10 lub gdy zmienna
$b 
będzie liczbą z zakresu (25, 75). Wyrażenie logiczne w tym warunku powinno mieć postać
A. ($a < -10) or (($b > 25) or ($b < 75))
B. ($a < -10) or (($b > 25) and ($b < 75))
C. ($a < -10) and (($b > 25) or ($b < 75))
D. ($a < -10) and (($b > 25) and ($b < 75))
W analizowanych odpowiedziach występują różne nieprawidłowe założenia dotyczące użycia operatorów logicznych. W przypadku wyrażenia ($a < -10) and (($b > 25) and ($b < 75)), warunek wymaga, aby oba kryteria były spełnione jednocześnie, co nie odpowiada treści pytania, w której wystarczy spełnienie jednego z nich. Z kolei odpowiedź ($a < -10) or (($b > 25) or ($b < 75)) wprowadza błąd przez użycie operatora 'or' w niewłaściwy sposób, ponieważ drugi człon pozwala na spełnienie jednego z warunków niezależnie od drugiego, co sprawia, że warunek dotyczący zmiennej $b staje się zbyt ogólny. Odpowiedź ($a < -10) and (($b > 25) or ($b < 75)) również jest błędna, ponieważ wymaga zarówno, aby zmienna $a była mniejsza od -10, jak i aby $b było większe niż 25 lub mniejsze niż 75, co wprowadza niepotrzebne ograniczenia. Te błędne odpowiedzi wskazują na typowe trudności w zrozumieniu logiki warunkowej w programowaniu, w szczególności przy użyciu operatorów 'and' i 'or'. Kluczowe jest, aby zawsze dokładnie analizować wymagania dotyczące warunków logicznych oraz zrozumieć ich konsekwencje w kontekście wykonania kodu.

Pytanie 32

W języku PHP przeprowadzono operację przedstawioną w ramce. Jak można postąpić, aby wyświetlić wszystkie wyniki tego zapytania?

$tab = mysqli_query($db, "SELECT imie FROM Osoby WHERE wiek < 18");
A. użyć polecenia mysql_fetch
B. pokazać zmienną $db
C. zaindeksować zmienną tab, tab[0] to pierwsze imię
D. zastosować pętlę z poleceniem mysqli_fetch_row
W przypadku wyświetlania wyników zapytania SQL w PHP, ważne jest zrozumienie mechanizmu działania funkcji dostępnych w bibliotece mysqli. Wśród niewłaściwych koncepcji można wymienić próbę wyświetlenia zmiennej $db, która jest zazwyczaj uchwytem połączenia do bazy danych a nie bezpośrednim wynikiem zapytania. To podejście często prowadzi do błędów logicznych, ponieważ $db reprezentuje połączenie a nie dane wynikowe. Polecenie mysql_fetch, choć kiedyś używane w starszej wersji PHP, obecnie nie jest zalecane z powodu przestarzałości i braku wsparcia dla rozszerzenia mysql, które zostało zastąpione przez mysqli i PDO. Próba zaindeksowania zmiennej tab jako tab[0] bez odpowiedniego pobrania danych wynikowych jest również błędna. Zmienna tab przechowuje rezultat zapytania w postaci obiektu typu mysqli_result, a bez użycia odpowiednich funkcji fetch nie można bezpośrednio uzyskać dostępu do danych. Takie podejście wynika z niezrozumienia struktury danych zwracanych przez zapytania. Iteracyjne pobieranie wyników za pomocą funkcji typu mysqli_fetch_row czy mysqli_fetch_assoc jest standardem w nowoczesnych aplikacjach PHP, ponieważ umożliwia elastyczne i efektywne zarządzanie danymi. Zastosowanie odpowiednich mechanizmów fetch pozwala na bezbłędne iterowanie przez wiersze wynikowe co jest kluczowe dla poprawnego przetwarzania danych z bazy.

Pytanie 33

Fragment formularza zaprezentowany powyżej został przetworzony w skrypcie PHP. Wskaż poprawny sposób pobierania wartości z pola edycyjnego.

Ilustracja do pytania
A. name = $_GET[imie]
B. name = GET['imie']
C. $name = $_POST['imie']
D. $name = $POST['Imię']
Prawidłowe pobranie wartości z formularza przesłanego metodą POST w języku PHP wymaga użycia globalnej tablicy asocjacyjnej $_POST. W kontekście tego pytania, zmienna $name zostaje przypisana wartości wprowadzonej do pola edycyjnego o nazwie imie. Kluczowym aspektem jest zrozumienie różnic między metodami GET i POST w HTTP. Metoda POST jest często preferowana do przesyłania danych formularzy, ponieważ umożliwia przesyłanie większych ilości danych i oferuje większe bezpieczeństwo, ponieważ dane nie są widoczne w adresie URL. Użycie $_POST['imie'] jest zgodne z dobrymi praktykami, a także zgodne z zasadami bezpieczeństwa takimi jak sanitizacja danych wejściowych i walidacja. Przykładowo można użyć filtrów: $name = filter_input(INPUT_POST 'imie' FILTER_SANITIZE_STRING); co zapobiega wstrzyknięciom kodu. Takie podejście jest zgodne z najlepszymi praktykami programowania w PHP i zapewnia bezpieczeństwo oraz niezawodność aplikacji. Zrozumienie tych mechanizmów jest kluczowe w tworzeniu bezpiecznych i efektywnych aplikacji webowych.

Pytanie 34

W języku JavaScript stworzono fragment kodu. Po uruchomieniu skryptu zmienna x

<script>
  var x = 10;
  x++;
  console.log(x);
</script>
A. Będzie równa 10 i zostanie wypisana w dokumencie HTML
B. Będzie równa 11 i zostanie wypisana w konsoli przeglądarki internetowej
C. Będzie równa 11 i zostanie wypisana w oknie popup
D. Będzie równa 10 i zostanie wypisana w głównym oknie przeglądarki internetowej
Rozważając fragment kodu należy zwrócić uwagę na zastosowanie operatora postinkrementacyjnego x++ który zwiększa wartość zmiennej x o 1. Z tego powodu wszelkie odpowiedzi sugerujące że x pozostanie równy 10 są błędne. Częstym błędem jest myślenie że operacja x++ nie wpływa natychmiastowo na wartość zmiennej jednak w rzeczywistości po jej wykonaniu x zostaje zwiększone do 11. Kolejnym aspektem do rozważenia jest sposób wyświetlania wartości zmiennej. Console.log jest powszechnie używanym narzędziem do wyświetlania informacji w konsoli przeglądarki co odróżnia go od metod takich jak alert które wyświetlają informacje w oknach popup. Dlatego odpowiedzi sugerujące użycie okna popup również są nieprawidłowe. Ważne jest zrozumienie że console.log nie wpływa na wizualną część dokumentu HTML i nie zmienia jego zawartości co błędnie sugerują odpowiedzi przewidujące wyświetlenie w dokumencie HTML. Zrozumienie różnic w działaniu różnych metod wyjścia w JavaScript jest kluczowe dla debugowania i tworzenia aplikacji webowych. Typowym błędem jest również przypuszczenie że console.log ma bezpośredni wpływ na użytkownika końcowego podczas gdy jego głównym celem jest wspieranie deweloperów w analizie i rozwoju aplikacji. Aby uniknąć tych nieporozumień warto zgłębić dokumentację funkcji oraz praktyki debugowania w JavaScript co pozwala na bardziej efektywne wykorzystanie dostępnych narzędzi w pracy z kodem.

Pytanie 35

Jakie słowo kluczowe wykorzystuje się do deklaracji zmiennej w języku JavaScript?

A. instanceof
B. new
C. variable
D. var
Twoje odpowiedzi pokazują, że możesz mieć pewne nieporozumienia związane ze składnią i semantyką w JavaScript. Na przykład, słowo 'new' używa się do tworzenia nowych obiektów, a nie do deklarowania zmiennych. Tak, jak w 'var obj = new Object();', tu tworzysz nowy obiekt, ale to nie jest sposób na zadeklarowanie zmiennej. 'Variable' to z kolei nie jest żadne słowo kluczowe w JavaScript, więc jego użycie może prowadzić do błędów, szczególnie u osób, które dopiero zaczynają. 'Instanceof' jest operatorem, który sprawdza, czy dany obiekt jest instancją określonej klasy, więc to też nie ma nic wspólnego z deklarowaniem zmiennych. Wydaje mi się, że wiele osób myli te pojęcia, myśląc, że są ze sobą związane. Kluczowe jest zrozumienie, że każde słowo kluczowe w JavaScript ma swoją rolę i jest ważne dla efektywnego programowania. Dobrze też zwracać uwagę na to, jak nazywamy zmienne i ich zakres, bo to mocno wpływa na jakość i czytelność kodu.

Pytanie 36

Liczba 0x142, przedstawiona w kodzie JavaScript, przyjmuje formę

A. ósemkową
B. dziesiętną
C. szesnastkową
D. dwójkową
Liczba 0x142 jest zapisana w systemie szesnastkowym, co oznacza, że jest reprezentowana w bazie 16. W systemie szesnastkowym posługujemy się cyframi od 0 do 9 oraz literami od A do F, gdzie A odpowiada 10, B to 11, C to 12, D to 13, E to 14, a F to 15 w systemie dziesiętnym. Przykład zastosowania tego systemu można zauważyć w programowaniu oraz w różnych standardach, takich jak HTML, gdzie kolory są często reprezentowane w formacie szesnastkowym, np. #FFFFFF dla bieli. Można także spotkać się z systemem szesnastkowym w adresacji pamięci oraz w reprezentacji liczb dużych, co jest szczególnie przydatne w kontekście programowania niskopoziomowego i systemów wbudowanych. Zrozumienie różnych systemów liczbowych, w tym szesnastkowego, jest niezbędne dla każdego programisty, szczególnie podczas pracy z danymi binarnymi, hex i podczas obliczeń niskopoziomowych.

Pytanie 37

Definicja obiektu została zapisana w języku JavaScript jako var osoba={imie:"Anna", nazwisko:"Kowalska", rok_urodzenia:1985}; Jak można odwołać się do właściwości nazwisko?

A. osoba::nazwisko
B. osoba.nazwisko
C. osoba[1]
D. osoba[2]
Wszystkie inne odpowiedzi są niepoprawne z różnych powodów technicznych. Pierwsza z nich, osoba[1], opiera się na indeksowaniu tablicy, co jest błędne w kontekście obiektów. W JavaScript obiekty nie mają indeksów; zamiast tego są zorganizowane w pary klucz-wartość, gdzie klucze są nazwami właściwości. Próba uzyskania dostępu do właściwości przez indeksowanie zwróci undefined, ponieważ obiekt nie ma takiego klucza. Kolejna niepoprawna odpowiedź, osoba[2], jest analogicznie błędna, ponieważ odnosi się do drugiego elementu, co również nie ma zastosowania w obiektach. Obiekty w JavaScript nie są tablicami i nie można do nich odwoływać się w sposób, który sugeruje, że mają one numerowane właściwości. Ostatnia odpowiedź, osoba::nazwisko, jest syntaktycznie niepoprawna w JavaScript. Notacja z podwójnymi dwukropkami nie jest stosowana w języku, a niepoprawne użycie operatorów prowadzi do błędów wykonania. W JavaScript poprawny jest tylko dostęp przez notację kropkową lub nawiasową, ponieważ język nie wspiera takiej składni. Te pomyłki mogą wynikać z nieporozumienia w zakresie struktur danych w JavaScript oraz ich właściwego dostępu.

Pytanie 38

Jaki jest wynik wykonania pętli for w poniższym kodzie PHP, jeśli chodzi o wypisanie liczb?

<?php
for($i=5; $i>1; $i-=2)
echo (
$i%2) . " " ;
?
>
A. 1 0 1 0
B. 1 0
C. 1 0 1
D. 1 1
Analizując inne odpowiedzi zwróćmy uwagę na błędy w logice pętli i operacji modulo które mogą prowadzić do błędnych wyników. Jedną z częstych pomyłek jest niedokładne zrozumienie działania operatora % który zwraca resztę z dzielenia. W kontekście pętli for ważne jest zrozumienie że zmienna kontrolująca i jest modyfikowana zgodnie z określonym krokiem tutaj i -= 2 co oznacza że i zmniejsza się o 2 w każdej iteracji pętli. Niepoprawne odpowiedzi mogą wynikać z założenia że pętla wykonuje się dla innych wartości i niż te faktycznie użyte. Na przykład wynik 1 0 1 0 sugeruje błędne założenie o nieparzystym kroku lub innej inicjalizacji zmiennej i. Możliwe że interpretacja warunku końcowego i > 1 nie została właściwie zrozumiana co prowadzi do założenia że pętla trwa dłużej niż powinna. Innym błędem może być zaniedbanie uwzględnienia kolejności wykonania instrukcji w ciele pętli. Zapominanie o dokładnym zrozumieniu jak działa i jest modyfikowane w każdej iteracji pętli może prowadzić do oczekiwania niepoprawnych wyników. Edukacyjnie ważne jest upewnienie się że każdy krok pętli jest dokładnie przeanalizowany a wynik działania operatora modulo jest zawsze przewidywalnie interpretowany w ramach iteracji pętli. Zrozumienie tych zasad jest kluczowe w pisaniu wydajnego i bezbłędnego kodu w PHP i innych językach programowania.

Pytanie 39

Które z poniższych twierdzeń o definicji funkcji pokazanej w ramce jest prawdziwe?

function czytajImie(){
  var imie=null;
  do {
    imie=prompt("podaj imie: ");
    if (imie.length<3)
    alert("wprowadzony tekst jest niepoprawny");
  } while(imie.length<3);
}
A. Pętla zostanie uruchomiona tylko raz
B. Tekst będzie wczytywany do czasu podania liczby większej niż 3
C. Funkcja zawiera pętlę, która powtarza się 3 razy
D. Wczytanie tekstu zakończy się, gdy tekst będzie miał co najmniej 3 znaki
Błędne rozumienie działania pętli do-while może prowadzić do przekonania że pętla wykona się określoną ilość razy lub że zakończy się w momencie spełnienia innych warunków co jest typowym błędem wśród osób początkujących Pętla do-while w języku JavaScript wykonuje blok kodu przynajmniej raz a następnie sprawdza warunek kontynuacji co oznacza że nie jest ograniczona do stałej ilości iteracji jak mogłoby sugerować stwierdzenie o trzykrotnym powtórzeniu Warunek długości tekstu mniejszej niż 3 jest kluczowy dla jej działania i wymusza iterację aż do momentu gdy zostanie wprowadzony prawidłowy ciąg znaków co wyklucza możliwość że pętla wykona się tylko raz chyba że już za pierwszym razem zostanie wprowadzony tekst spełniający warunki Kolejnym nieporozumieniem może być błędne postrzeganie warunku jako związanego z wprowadzeniem liczby podczas gdy w rzeczywistości funkcja operuje na długości tekstu co jest częstym zagadnieniem przy walidacji danych tekstowych przy użyciu funkcji prompt Ważnym aspektem jest zrozumienie że pętle tego typu są używane tam gdzie wymagana jest walidacja danych wprowadzanego tekstu co jest praktyką szeroko akceptowaną w branży programistycznej z uwagi na konieczność zapewniania poprawności danych przed ich dalszym przetwarzaniem

Pytanie 40

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

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