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: 28 kwietnia 2026 16:52
  • Data zakończenia: 28 kwietnia 2026 17:02

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

W kodzie HTML znajdziemy formularz. Jaki rezultat zostanie pokazany przez przeglądarkę, jeśli użytkownik wprowadził do pierwszego pola wartość "Przykładowy text"?

Ilustracja do pytania
A. Efekt 4
B. Efekt 3
C. Efekt 1
D. Efekt 2
Efekt 2 jest prawidłowy, ponieważ odpowiada dokładnemu odwzorowaniu HTML. Kod zawiera element <textarea> oraz dwa pola typu checkbox. Przeglądarka wyświetla pole tekstowe o określonym rozmiarze, gdzie użytkownik może wpisać tekst. Checkboxy pozwalają na wybór opcji, niezależnych od siebie, co odróżnia je od radiobuttonów. Przykładowy text wpisany w pole <textarea> zostanie wyświetlony w miejscu tego pola, co jest dobrze widoczne na obrazie odpowiadającym efektowi 2. Warto pamiętać, że <textarea> stosuje się do dłuższych form tekstu, co jest standardem w projektowaniu formularzy. Użycie checkboxów jest zgodne z dobrymi praktykami, gdy użytkownik może zaznaczyć dowolną liczbę opcji. Jest to ważne, aby dostarczyć użytkownikowi intuicyjny interfejs do wprowadzania i wyboru danych. W HTML ważne jest, aby kod był semantyczny i zgodny z oczekiwaniami użytkowników, co ten przykład dobrze ilustruje. Formularze powinny być zawsze testowane pod kątem użyteczności i poprawności w różnych przeglądarkach.

Pytanie 2

Aby utworzyć tabelę w systemie baz danych, należy użyć polecenia SQL

A. PLUS TABLE
B. ADD TABLE
C. NEW TABLE
D. CREATE TABLE
Aby utworzyć tabelę w bazie danych, należy użyć polecenia SQL 'CREATE TABLE', które jest standardową komendą w SQL (Structured Query Language) służącą do definiowania struktury tabeli. Polecenie to pozwala na określenie nazw kolumn, ich typów danych oraz opcji, takich jak klucze główne czy unikalność wartości. Przykładowe użycie tego polecenia wygląda następująco: 'CREATE TABLE pracownicy (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50))'. Dzięki temu tworzymy tabelę o nazwie 'pracownicy' z trzema kolumnami: 'id', 'imie' i 'nazwisko'. Używanie polecenia 'CREATE TABLE' jest zgodne z normami SQL, co zapewnia jego przenośność między różnymi systemami zarządzania bazami danych. Dobrą praktyką jest także definiowanie ograniczeń, takich jak 'NOT NULL', aby zapewnić integralność danych. Również istotne jest zrozumienie, że polecenie to jest tylko jednym z wielu w SQL, które umożliwia manipulację danymi w relacyjnych bazach danych.

Pytanie 3

Określ rodzaj powiązania pomiędzy tabelami: Tabela1 oraz Tabela3

Ilustracja do pytania
A. Wiele do jednego
B. Jeden do jednego
C. Jeden do wielu
D. Wiele do wielu
Relacja wiele do wielu między tabelami Tabela1 i Tabela3 jest prawidłowym rozwiązaniem, ponieważ relacja ta umożliwia powiązanie wielu rekordów z jednej tabeli z wieloma rekordami z drugiej tabeli. W kontekście przedstawionego schematu baz danych, tabela Tabela1 przechowuje informacje o uczniach, podczas gdy Tabela3 zawiera dane o nauczycielach. Tabela2 pełni rolę tabeli pośredniej, zawierającej klucze obce, które łączą ID_Ucznia z ID_Nauczyciela za pomocą ID_Przedmiotu jako dodatkowego klucza. To podejście jest powszechnie stosowane w projektowaniu baz danych, aby zapewnić elastyczność i możliwość zaawansowanej analizy danych, np. którzy uczniowie mają zajęcia z jakimi nauczycielami. W praktyce takie rozwiązanie stosuje się w systemach edukacyjnych, gdzie każdy uczeń może uczęszczać na zajęcia prowadzone przez różnych nauczycieli, a każdy nauczyciel może prowadzić zajęcia dla wielu uczniów. Standardy projektowania relacyjnych baz danych, takie jak normalizacja, zalecają tego rodzaju architekturę, aby uniknąć redundancji danych i umożliwić efektywne zarządzanie złożonymi relacjami. Tabele pośrednie, takie jak Tabela2, są kluczowym elementem w tworzeniu relacji wiele do wielu, ponieważ umożliwiają mapowanie skomplikowanych powiązań w sposób technicznie poprawny i zrozumiały dla użytkowników systemu.

Pytanie 4

W formularzu dane z pola input o typie number zostały przypisane do zmiennej a, a następnie przetwarzane w skrypcie JavaScript w następujący sposób:

var x = parseFloat(a);
Jaki typ będzie miała zmienna x?
A. liczbowego, całkowitego
B. NaN
C. zmiennoprzecinkowego
D. napisowego
Zmienna x będzie typu zmiennoprzecinkowego, ponieważ funkcja parseFloat() konwertuje wartość przekazaną jej jako argument na liczbę zmiennoprzecinkową. W przypadku, gdy zmienna a zawiera poprawną reprezentację liczby, np. '10.5' lub '3.14', parseFloat() zwróci odpowiednią wartość zmiennoprzecinkową. Dobrą praktyką jest zapewnienie, że wartość w a jest odpowiednio walidowana przed konwersją, aby uniknąć błędów i niepożądanych wyników. Zmiennoprzecinkowe dane mogą być szczególnie użyteczne w aplikacjach finansowych, graficznych czy inżynieryjnych, gdzie precyzyjne obliczenia są kluczowe. Ponadto, JavaScript automatycznie przekształca liczby całkowite do postaci zmiennoprzecinkowej, więc nawet jeśli a zawiera liczbę całkowitą, wynik w zmiennej x również będzie typem zmiennoprzecinkowym. Znajomość tego zachowania jest istotna dla programistów, aby skutecznie obsługiwać różnorodne operacje numeryczne.

Pytanie 5

Atrybut value w formularzu XHTML

A. określa nazwę pola
B. ogranicza maksymalną długość pola
C. określa wartość domyślną
D. ustawia pole jako tylko do odczytu
Odpowiedzi, które wskazują na ograniczanie długości pola, nazwę pola oraz ustawienie pola tylko do odczytu, są niepoprawne, ponieważ każda z tych funkcji ma inne atrybuty lub mechanizmy. Atrybut, który ogranicza długość wprowadzanego tekstu, to 'maxlength', który definiuje maksymalną liczbę znaków, jakie użytkownik może wprowadzić w polu. Użycie 'maxlength' jest istotne, gdy chcemy zapewnić, że dane wprowadzone przez użytkownika nie przekraczają określonej długości, co jest szczególnie ważne w przypadku danych, które muszą spełniać określone wymagania. Kolejnym błędnym stwierdzeniem jest to, że 'value' wskazuje na nazwę pola. Nazwa pola jest określona przez atrybut 'name', a nie 'value'. Atrybut 'name' jest kluczowy dla identyfikacji danych podczas przesyłania formularza. Ostatnim nieporozumieniem jest twierdzenie, że 'value' ustawia pole tylko do odczytu, co również jest nieprawdziwe. Do ustawienia pola jako tylko do odczytu stosuje się atrybut 'readonly'. Atrybut 'value' jedynie ustawia domyślną wartość, ale nie wpływa na możliwość edycji tego pola. Zrozumienie funkcji poszczególnych atrybutów HTML jest kluczowe dla efektywnego projektowania formularzy i interfejsów użytkownika.

Pytanie 6

Poniżej przedstawiono sposób obsługi:

<?php
if (!isset($_COOKIE[$nazwa]))
    echo "nie ustawiono!";
else
    echo "ustawiono, wartość: " . $_COOKIE[$nazwa];
?>
A. ciasteczek
B. sesji
C. zmiennych tekstowych
D. baz danych
Kod PHP przedstawiony w pytaniu ilustruje użycie mechanizmu ciasteczek w przeglądarce. Ciasteczka to małe pliki tekstowe, które serwer umieszcza na komputerze użytkownika, aby przechowywać informacje między sesjami HTTP. W tym przypadku kod sprawdza, czy zmienna o nazwie $nazwa jest ustawiona w tablicy superglobalnej $_COOKIE. Jeśli ciasteczko o danej nazwie nie zostało ustawione, skrypt zwraca komunikat 'nie ustawiono!'. Gdy ciasteczko istnieje, wyświetlana jest jego wartość. Ciasteczka są powszechnie stosowane do śledzenia sesji użytkowników, przechowywania preferencji czy zachowania stanu zalogowania. Ważnym aspektem jest zrozumienie, że ciasteczka działają po stronie klienta i mogą być modyfikowane przez użytkownika, dlatego powinny być używane z ostrożnością i w połączeniu z innymi mechanizmami zabezpieczeń. Warto pamiętać, że ciasteczka mają ograniczenia co do wielkości i liczby, które mogą być przechowywane przez przeglądarkę. Implementacja ciasteczek powinna być zgodna z regulacjami dotyczącymi prywatności, takimi jak RODO, które nakładają obowiązek informowania użytkowników o ich używaniu oraz uzyskiwania zgody.

Pytanie 7

Algorytm porządkowania tablicy, który polega na wielokrotnym porównywaniu ze sobą par sąsiednich elementów oraz ich zamianie, gdy warunek jest spełniony, nosi nazwę sortowania

A. bąbelkowym
B. przez wybór
C. przez scalanie
D. szybkim
Sortowanie bąbelkowe, znane również jako bubble sort, to jeden z najprostszych algorytmów sortowania. Działa on na zasadzie wielokrotnego porównywania dwóch sąsiadujących ze sobą elementów tablicy. Jeśli elementy są w niewłaściwej kolejności, zostają zamienione miejscami. Proces ten powtarza się, aż cała tablica będzie posortowana. Algorytm ten jest szczególnie łatwy do zrozumienia i wdrożenia, co czyni go popularnym wśród początkujących programistów. Chociaż sortowanie bąbelkowe jest stosunkowo mało efektywne w przypadku dużych zbiorów danych — jego złożoność czasowa wynosi O(n^2) w najgorszym przypadku — ma swoje zastosowanie w edukacji, jako wprowadzenie do koncepcji algorytmów sortujących. Przykład zastosowania sortowania bąbelkowego może wystąpić w sytuacjach, gdy liczba elementów do posortowania jest mała lub gdy zrozumienie podstawowych mechanizmów sortujących jest celem nauki. W praktyce, sortowanie bąbelkowe często służy do ilustracji problemów z optymalizacją i efektywnością algorytmów, co jest istotne dla rozwoju umiejętności programistycznych.

Pytanie 8

Na tabeli Pracownicy, której wiersze są przedstawione na załączonym obrazie, została zrealizowana podana kwerenda SELECT. Jakie dane zostaną zwrócone?

SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;
idimienazwiskostanowisko
1AnnaKowalska1
2MonikaNowak2
3EwelinaNowakowska2
4AnnaPrzybylska3
5MariaKowal3
6EwaNowacka4
A. Anna, Maria, Ewa
B. Wyłącznie Maria
C. Monika, Ewelina, Maria
D. Wyłącznie Anna
Ważne jest zrozumienie działania klauzuli WHERE w SQL, zwłaszcza gdy stosujemy w niej operator OR. Częstym błędem przy analizie takich zapytań jest traktowanie operatora OR jak operatora AND co prowadzi do błędnych wniosków. W zapytaniu SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2 celem jest wybór imion pracowników spełniających przynajmniej jedno z podanych kryteriów. Można błędnie założyć że wybierane są tylko osoby z nazwiskiem Kowal i stanowiskiem większym od 2 lub odwrotnie co prowadzi do niepoprawnej interpretacji danych. Imiona takie jak Monika czy Ewelina nie pojawiają się w wyniku ponieważ ich stanowiska wynoszą dokładnie 2 co nie spełnia wymagań stanowisko > 2. Natomiast imię Maria jest wynikowe ponieważ nazwisko Kowal spełnia pierwszy warunek a Anna i Ewa są wybierane przez drugi warunek dotyczący stanowiska. Zrozumienie różnicy między operatorami AND i OR jest kluczowe dla poprawnego tworzenia zapytań SQL oraz unikania błędów logicznych przy przetwarzaniu danych. Operator OR wymaga aby przynajmniej jeden z warunków był prawdziwy co zwiększa elastyczność filtrowania danych ale także wymaga ostrożności aby nie uzyskać wyników niezgodnych z intencjami analizy. Znajomość i umiejętność wykorzystania różnych operatorów logicznych pozwala na efektywne zarządzanie danymi i ich analizę co jest niezbędne w pracy z bazami danych.

Pytanie 9

Aby uniknąć występowania zduplikowanych wierszy w wyniku zapytania, należy zastosować klauzulę

A. UNIQUE
B. ORDER BY
C. LIMIT
D. DISTINCT
Klauzula DISTINCT w języku SQL służy do eliminacji zduplikowanych wierszy w wynikach zapytania. Umożliwia to uzyskanie unikalnych wartości z określonej kolumny lub zestawu kolumn, co jest niezwykle przydatne, gdy chcemy analizować dane, unikając powtórzeń, które mogą zniekształcić wyniki. Na przykład, jeżeli posiadamy tabelę 'Pracownicy' z kolumną 'Miasto', a chcemy otrzymać listę unikalnych miast, w których pracownicy są zatrudnieni, możemy użyć zapytania: SELECT DISTINCT Miasto FROM Pracownicy. Warto zaznaczyć, że stosowanie DISTINCT może wpływać na wydajność zapytania, szczególnie w przypadku dużych zbiorów danych, dlatego należy używać tej klauzuli z rozwagą. Dobrą praktyką jest również łączenie DISTINCT z innymi klauzulami, takimi jak WHERE, aby jeszcze bardziej precyzyjnie określić kryteria wyszukiwania. Używanie DISTINCT pomaga utrzymać integralność danych oraz poprawia jakość analiz, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi.

Pytanie 10

W zamieszczonym kodzie PHP, zamiast znaków zapytania powinien być wyświetlony komunikat:

$x = mysql_query('SELECT * FROM mieszkancy');
if (!$x)
    echo '??????????????????????';
A. Niepoprawne hasło do bazy danych
B. Niepoprawna nazwa bazy danych
C. Błąd w trakcie przetwarzania zapytania
D. Zapytanie zostało poprawnie przetworzone
W przedstawionym kodzie PHP, komunikat "??????????????????????" powinien wskazywać na błąd przetwarzania zapytania SQL. Kiedy wynik funkcji mysql_query() jest równy fałszowi (false), oznacza to, że zapytanie nie mogło zostać poprawnie wykonane. Może to być spowodowane różnymi czynnikami, takimi jak błędy w składni zapytania, problemy z połączeniem z bazą danych, lub nieprawidłowe tabele. W tym przypadku, dobrym podejściem jest użycie funkcji mysql_error() w celu uzyskania bardziej szczegółowych informacji na temat natury błędu. Przykład poprawnego kodu mógłby wyglądać tak: <p>$x = mysql_query('SELECT * FROM mieszkancy');<br>If (!$x) {<br>echo mysql_error();<br>}</p> Używanie tej metody pomaga w diagnostyce problemu i pozwala na szybsze jego rozwiązanie. Znalezienie i naprawienie błędów w zapytaniach SQL jest kluczowe w pracy z bazami danych, szczególnie w kontekście aplikacji internetowych, które muszą być niezawodne i efektywne.

Pytanie 11

Język JavaScript wspiera

A. abstrakcyjne klasy
B. funkcje wirtualne
C. obiekty DOM
D. wysyłanie ciastek z identycznymi informacjami do wielu użytkowników strony
Obiekty DOM (Document Object Model) są fundamentalnym aspektem języka JavaScript, umożliwiającym interakcję z dokumentami HTML i XML. Dzięki DOM, programiści mogą dynamicznie manipulować strukturą dokumentu, co pozwala na tworzenie interaktywnych aplikacji webowych. Na przykład, za pomocą JavaScript można zmieniać tekst w elementach HTML, dodawać lub usuwać elementy, a także reagować na zdarzenia użytkownika, takie jak kliknięcia czy ruchy myszy. Przykładowy kod: document.getElementById('example').innerHTML = 'Nowa zawartość'; ilustruje, jak można zmienić zawartość elementu z identyfikatorem 'example'. Zrozumienie i umiejętność pracy z DOM jest kluczowe w nowoczesnym tworzeniu stron internetowych oraz aplikacji w JavaScript, co wpisuje się w najlepsze praktyki rozwoju oprogramowania, takie jak separacja logiki od prezentacji i programowanie obiektowe.

Pytanie 12

Rodzaj programowania, w którym zestaw poleceń (sekwencja instrukcji) przekazywanych komputerowi postrzega się jako program, określa się mianem programowania

A. funkcyjnego
B. imperatywnego
C. logicznego
D. stanowego
Programowanie imperatywne to paradygmat, w którym programista definiuje sekwencję instrukcji, które komputer ma wykonać, aby osiągnąć określony cel. Jest to najpopularniejszy i najczęściej stosowany sposób programowania, który koncentruje się na tym, jak osiągnąć pożądany rezultat, a nie tylko na tym, co ma być osiągnięte. W programowaniu imperatywnym zazwyczaj używa się zmiennych, struktur kontrolnych takich jak pętle i instrukcje warunkowe, co pozwala na kontrolę przepływu wykonania programu. Przykłady języków programowania, które implementują ten paradygmat, to C, C++, Java oraz Python. Zastosowanie programowania imperatywnego w praktyce jest szerokie: od tworzenia aplikacji desktopowych, przez gry, aż po systemy operacyjne. Standardy takie jak ISO C określają wytyczne dla programowania w języku C, co dodatkowo podkreśla znaczenie tego paradygmatu w branży programistycznej. Zrozumienie programowania imperatywnego stanowi fundament dla dalszej nauki bardziej zaawansowanych technik i paradygmatów programowania.

Pytanie 13

W systemie baz danych sklepu znajdują się dwie tabele powiązane ze sobą relacją: produkty oraz oceny. Tabela oceny zawiera dowolną liczbę ocen wystawionych przez klientów dla konkretnego produktu, które są zdefiniowane przez pola: id, ocena (pole numeryczne), produktID (klucz obcy). Aby uzyskać maksymalną ocenę dla produktu o ID równym 10, należy użyć zapytania

A. COUNT MAX SELECT ocena FROM oceny WHERE produktID = 10;
B. SELECT MAX COUNT(ocena) FROM oceny WHERE produktID = 10;
C. MAX SELECT ocena FROM oceny WHERE produktID = 10;
D. SELECT MAX(ocena) FROM oceny WHERE produktID = 10;
Odpowiedź "SELECT MAX(ocena) FROM oceny WHERE produktID = 10;" jest prawidłowa, ponieważ wykorzystuje odpowiednią składnię SQL do uzyskania maksymalnej wartości z kolumny "ocena" dla produktu o określonym ID. Funkcja agregująca MAX() umożliwia znalezienie najwyższej oceny w zbiorze danych spełniających określone kryteria. W tym przypadku, zapytanie przeszukuje tabelę "oceny" i filtruje wyniki na podstawie "produktID" równym 10. Takie podejście jest zgodne z najlepszymi praktykami w obszarze SQL, ponieważ zapewnia prostotę i efektywność. W praktycznym zastosowaniu, w momencie gdy mamy do czynienia z dużymi zbiorami danych, takie zapytanie pozwala na szybkie uzyskanie potrzebnych informacji, co jest kluczowe dla analizy wydajności produktów w sklepie. Używanie funkcji agregujących, takich jak MAX(), jest standardem w relacyjnych bazach danych, co czyni to podejście odpowiednim w kontekście zarządzania danymi.

Pytanie 14

Tabele Klienci oraz Zgłoszenia są ze sobą połączone relacją jeden do wielu. W celu uzyskania jedynie opisu zgłoszenia oraz odpowiadającego mu nazwiska klienta dla zgłoszenia o numerze 5, należy wykonać polecenie

Ilustracja do pytania
A. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id WHERE Zgłoszenia.id = 5
B. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci WHERE Klienci.id = 5
C. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id WHERE Klienci.id = 5
D. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.id WHERE Zgłoszenia.id = 5
Niepoprawne odpowiedzi wynikają z błędnego zrozumienia, jak działa relacja klucz główny-klucz obcy w bazach danych. W relacyjnych bazach danych tabele są często powiązane relacjami, gdzie jedna tabela posiada klucz obcy odnoszący się do klucza głównego innej tabeli. W kontekście zapytania SQL, aby poprawnie połączyć tabele i uzyskać odpowiednie dane, musimy użyć klauzuli JOIN z właściwym warunkiem ON. Błędne odpowiedzi pokazują typowe nieporozumienia: jedna z alternatywnych odpowiedzi próbuje połączyć tabele bez użycia klauzuli ON, co prowadzi do błędnych wyników, ponieważ nie określa w jaki sposób rekordy z tabeli Klienci są powiązane z rekordami z tabeli Zgłoszenia. Inna odpowiedź błędnie zakłada, że filtrujemy dane na podstawie id klienta zamiast id zgłoszenia, co prowadzi do nieprawidłowego zestawu wyników niezgodnego z założeniami zadania. Takie błędy mogą wynikać z niedostatecznego zrozumienia struktury bazy danych oraz mechanizmów filtracji i łączenia danych w SQL. Kluczem do poprawnego zapytania jest jasne zrozumienie, jak relacje w bazach danych pozwalają na efektywne łączenie danych i selekcję pożądanych rekordów, co jest podstawą analizy danych i ich raportowania w systemach informacyjnych. Unikanie takich błędów wymaga znajomości syntaktyki SQL i logicznego sposobu myślenia o danych i ich powiązaniach.

Pytanie 15

Jakie wartości zostaną wypisane przez funkcję wypisz(2) zaimplementowaną w JavaScript?

function wypisz(a)
{
    for (var i=1; i<6; i++)
    {
        a++;
        if ((a%2==0)|| (a%3==0))
        document.write(a+" " );
    }
}
A. 2 3 4 6
B. 3 4 6
C. 6
D. 3 4 6 8
Jak analizujemy tę funkcję wypisz, to ważne jest, aby zrozumieć, jak pętla for działa oraz jakie liczby spełniają warunki w if. W przypadku, gdy ktoś myśli, że funkcja wypisze tylko 6, to musi wiedzieć, że poprawna odpowiedź 3 to tak naprawdę cały zestaw liczb 3, 4 i 6. Wypisanie tylko 6 to błąd, bo musimy uwzględnić inne wartości, które też spełniają warunek. Opcja, że ma być wypisane 3, 4, 6 i 8, wydaje się mylna, bo 8 wcale się nie pojawia w pętli, więc ten warunek a%2==0 || a%3==0 nie ma tu zastosowania. Podobnie, myślenie, że 2, 3, 4, 6 będą wypisane, to fałsz, bo 2 nigdy nie jest sprawdzane. Na początku a jest równe 2, a po pierwszym obiegu pętli, a++ daje 3, która spełnia warunek, ale 2 zostaje zignorowane w tej kolejności. To jest prosty błąd wynikający z nieuważności, bo trzeba zwrócić uwagę, że inkrementacja dzieje się przed sprawdzeniem условия w if. Warto to zrozumieć, bo to daje solidne podstawy do lepszego programowania i umiejętności pisania bardziej skomplikowanego kodu JavaScript.

Pytanie 16

Która z definicji tablicy asocjacyjnej w PHP jest składniowo poprawna?

A. $wiek = array("Anna"=35, "Ewa"=37, "Oliwia"=43);
B. $wiek = array({"Anna", "35"}, {"Ewa", "37"}, {"Oliwia", "43"});
C. $wiek = array([Anna, 35], [Ewa, 37], [Oliwia, 43]);
D. $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");
Definicja tablicy asocjacyjnej w języku PHP, przedstawiona jako $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");, jest poprawna składniowo. Tablice asocjacyjne to struktury danych, które pozwalają na przechowywanie wartości w parach klucz-wartość. Kluczami mogą być stringi lub liczby, a wartości mogą być różnego typu. Użycie operatora => jest kluczowe, ponieważ wskazuje, że dla danego klucza (np. "Anna") przypisana jest konkretna wartość (np. "35"). W praktyce tablice asocjacyjne są niezwykle użyteczne w wielu sytuacjach, takich jak przetwarzanie danych z formularzy, gdzie klucze odpowiadają nazwom pól, a wartości to wprowadzone przez użytkownika dane. Dzięki tablicom asocjacyjnym można z łatwością uzyskiwać dostęp do wartości, analizować je i manipulować, co czyni je standardowym narzędziem w programowaniu w PHP i praktycznym podejściem w tworzeniu aplikacji webowych.

Pytanie 17

Działaniem przedstawionego kodu PHP będzie wypełnienie tablicy. Działaniem przedstawionego kodu PHP będzie wypełnienie tablicy.

$tab = array();
for($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}
foreach ($tab as $x){
    if ($x < 0) echo "$x ";
}
A. kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych.
B. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych.
C. kolejnymi liczbami od 0 do 9 i wypisanie ich.
D. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich.
Prawidłowo zidentyfikowałeś, że kod PHP wypełni tablicę 10 losowymi wartościami, a następnie wypisze tylko te, które są wartościami ujemnymi. Jest to fundament, na którym opiera się działanie tego konkretnego fragmentu kodu. Tworzenie losowych wartości jest powszechną praktyką w programowaniu i jest wykorzystywane do testowania funkcji, symulowania danych wejściowych czy generowania unikalnych identyfikatorów. Tutaj, użycie losowości służy do stworzenia przypadkowego zestawu liczb, które następnie są filtrowane i wypisywane tylko te o wartości ujemnej. Ta technika jest przydatna, gdy chcemy przefiltrować dane według określonych kryteriów, w tym przypadku liczby ujemne. Jest to ważne nie tylko dla zrozumienia tego konkretnego pytania, ale także dla zrozumienia, jak działa programowanie i jakie są jego praktyczne zastosowania. Pamiętaj, że zrozumienie tego, co robi konkretny fragment kodu, jest kluczowe dla skutecznego programowania i debugowania.

Pytanie 18

Co wykonuje poniższy fragment kodu w JavaScript?

n = "Napis1";
s = n.length;
A. Przypisze zmienną n do zmiennej s
B. Przypisze zmiennej s fragment tekstu ze zmiennej n, o długości określonej przez zmienną length
C. Przypisze zmiennej s wartość, która odpowiada długości tekstu ze zmiennej n
D. Wyświetli długość tekstu ze zmiennej n
W języku JavaScript właściwość length dla obiektów typu String zwraca liczbę znaków w danym napisie. W przedstawionym fragmencie skryptu zmiennej n przypisano wartość stringa 'Napis1'. Kiedy używamy n.length uzyskujemy długość tego stringa czyli liczbę 6 ponieważ są w nim dokładnie sześć znaków. Następnie tę wartość przypisujemy zmiennej s co oznacza że s przechowuje liczbę 6. Jest to użyteczne w wielu sytuacjach takich jak walidacja danych wejściowych w formularzach sprawdzanie czy dany tekst mieści się w określonych limitach lub po prostu kontrola poprawności danych w procesach biznesowych. Wartość length jest często stosowana w pętlach do iteracji przez każdy znak w stringu lub w operacjach takich jak odcinanie fragmentów tekstu. Praktyka korzystania z length jest standardem w programowaniu webowym i zaliczana jest do dobrych praktyk ponieważ umożliwia łatwą manipulację tekstowymi danymi i kontrolę ich wymiaru co bywa krytyczne zwłaszcza w aplikacjach o dużej skali gdzie efektywność i klarowność kodu mają znaczenie kluczowe.

Pytanie 19

Jakie dane zostaną wybrane po wykonaniu poniższej kwerendy na pokazanych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";

idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Pole id równe 7 oraz 8
B. Brak danych
C. Tylko id równe 8
D. Wszystkie id
Podczas analizy zapytania SQL należy zwrócić uwagę na sposób, w jaki operator LIKE działa na ciągach znaków w kolumnach baz danych. Zapytanie w tym przypadku używa składni LIKE w połączeniu z symbolem podkreślenia (_) jako znakiem zastępczym, który reprezentuje dowolny pojedynczy znak. Często błędnie zakłada się, że zapytanie wybiera wszystkie rekordy zawierające wartość '4' na końcu rocznika, co jest niepoprawne. Operator LIKE jest bardziej złożony i używa symbolu podkreślenia do reprezentowania dokładnie jednego znaku. Dlatego wzorzec '2_4' oznacza, że rok musi mieć na drugiej pozycji cyfrę '2' a na ostatniej '4'. To oznacza, że jedynie roczniki 2014 i 2004 spełniają ten wzorzec, dlatego odpowiadające im identyfikatory to 7 i 8. Częstym błędem jest nieprawidłowe zrozumienie funkcji LIKE i traktowanie jej podobnie jak operatora równości, co może prowadzić do niepoprawnych wniosków dotyczących zakresu danych, które zostaną wybrane. Dlatego zrozumienie działania różnych operatorów SQL oraz uważność w analizie wzorców jest kluczowe w pracy z bazami danych.

Pytanie 20

Która z funkcji SQL nie wymaga podania argumentów?

A. now
B. len
C. year
D. upper
Funkcja SQL now() jest funkcją, która nie wymaga żadnych argumentów, a jej głównym celem jest zwrócenie bieżącej daty i godziny w formacie odpowiednim dla systemu zarządzania bazą danych. Funkcja ta jest często używana w aplikacjach, które wymagają dynamicznego śledzenia czasu, takich jak rejestrowanie daty i godziny wstawiania danych do tabel. W standardzie SQL, funkcje tego rodzaju są kluczowe dla operacji związanych z czasem. Na przykład, używając zapytania SELECT now(); zwracana jest bieżąca data i godzina. Funkcja ta jest szczególnie przydatna w kontekście transakcji oraz w kontrolowaniu stanu danych w bazie. W wielu popularnych systemach zarządzania bazą danych, takich jak MySQL czy PostgreSQL, now() jest szeroko wykorzystywana do synchronizacji operacji bazodanowych z aktualnym czasem. Warto zaznaczyć, że funkcja ta nie przyjmuje żadnych parametrów, co odróżnia ją od innych funkcji, które wymagają przynajmniej jednego argumentu. Dlatego now() jest idealnym przykładem funkcji, która działa autonomicznie i zwraca wartość bez potrzeby podawania dodatkowych informacji.

Pytanie 21

Które z poniższych stwierdzeń o językach programowania jest fałszywe?

A. PHP służy do tworzenia stron w czasie rzeczywistym
B. JavaScript to język skryptowy
C. SQL jest językiem programowania strukturalnego
D. C++ jest językiem obiektowym
SQL, czyli Structured Query Language, to język zapytań, który jest używany do zarządzania danymi w relacyjnych bazach danych. Jest to język deklaratywny, a nie strukturalny, co oznacza, że użytkownik nie definiuje w nim kroków przetwarzania danych, lecz opisuje, jakie dane chce uzyskać. SQL pozwala na wykonywanie operacji takich jak wybieranie danych, wstawianie, aktualizowanie i usuwanie rekordów w bazie danych. Przykładowe zapytanie w SQL może wyglądać następująco: SELECT * FROM users WHERE age > 18; co zwróci wszystkie rekordy użytkowników powyżej osiemnastego roku życia. Warto również zauważyć, że SQL jest standardem ISO, co oznacza, że jego składnia i funkcjonalności są szeroko uznawane i stosowane w różnych systemach zarządzania bazami danych, takich jak MySQL, PostgreSQL czy Oracle. To czyni SQL niezwykle ważnym narzędziem dla każdego programisty, analityka danych czy specjalisty ds. baz danych.

Pytanie 22

Testy aplikacji webowej, których celem jest ocena wydajności aplikacji oraz bazy danych, a także architektury serwera i konfiguracji, określane są mianem testów

A. funkcjonalności
B. bezpieczeństwa
C. użyteczności
D. kompatybilności
Testy kompatybilności są kluczowym elementem w procesie zapewniania jakości aplikacji internetowych. Ich głównym celem jest weryfikacja, czy aplikacja działa poprawnie w różnych środowiskach, systemach operacyjnych oraz przeglądarkach internetowych. Testy te obejmują również analizę skalowalności, która ma na celu ocenić, jak aplikacja radzi sobie z rosnącą liczbą użytkowników oraz jak skutecznie współpracuje z bazami danych i serwerami. W praktyce oznacza to, że po przeprowadzeniu testów kompatybilności, można zidentyfikować potencjalne problemy z wydajnością, które mogą wystąpić w momencie, gdy liczba równoległych użytkowników wzrasta. Przykładem mogą być testy obciążeniowe, które symulują dużą liczbę użytkowników, by sprawdzić, w jaki sposób system reaguje na taką sytuację. W kontekście standardów, ważne jest odniesienie do norm ISO/IEC 25010, które definiują jakość oprogramowania i wskazują na znaczenie kompatybilności jako jednego z kluczowych atrybutów. Dbałość o kompatybilność aplikacji wpływa nie tylko na jej funkcjonalność, ale również na doświadczenia użytkowników, co jest niezbędne w dzisiejszym zglobalizowanym rynku.

Pytanie 23

Które z poniższych wyrażeń logicznych w języku C weryfikuje, czy zmienna o nazwie zm1 znajduje się w przedziale (6, 203>?

A. (zm1 > 6) || (zm1 <= 203)
B. (zm1 > 6) && (zm1 <= 203)
C. (zm1 > 6) || (zm1 != 203)
D. (zm1 > 6) && (zm1 != 203)
Odpowiedź (zm1 > 6) && (zm1 <= 203) jest poprawna, ponieważ w pełni odzwierciedla definicję przedziału otwartego dla dolnej granicy (6) i domkniętej dla górnej granicy (203). Operator && (AND) zapewnia, że oba warunki muszą być spełnione jednocześnie: zmienna zm1 musi być większa niż 6 oraz jednocześnie musi być mniejsza lub równa 203. Taki zapis jest zgodny z powszechnie przyjętymi praktykami programowania, gdzie jasne określenie warunków dla zakresu wartości jest kluczowe do unikania błędów logicznych. Przykładem zastosowania tej logiki może być weryfikacja danych wejściowych w formularzu, gdzie akceptowane są jedynie wartości mieszczące się w określonym przedziale. Użycie odpowiednich operatorów logicznych, takich jak && i ||, jest niezbędne do precyzyjnego definiowania warunków w aplikacjach, co prowadzi do bardziej niezawodnych i czytelnych kodów. Zrozumienie tych koncepcji jest fundamentalne dla każdego programisty, który dąży do tworzenia efektywnych i bezbłędnych aplikacji.

Pytanie 24

Wskaż równoważną metodę dla instrukcji switch zapisaną w języku PHP?

Ilustracja do pytania
A. D
B. C
C. B
D. A
Switch w PHP to narzędzie, które pomaga kierować działaniem programu w zależności od wartości, i często zamienia się to na wiele if-else, żeby kod był bardziej przejrzysty. Czasami jednak pojawiają się błędne interpretacje logiki warunkowej. W odpowiedzi D, użycie operatora and oznacza, że oba warunki muszą być spełnione naraz, co jest trochę mylące, bo dla zmiennej $liczba przy wartościach 10 i 20 to nie jest za bardzo możliwe. W odpowiedzi A jest po prostu porównanie do 10, co nie pokazuje całego potencjału switch, który może radzić sobie z wieloma przypadkami. Odpowiedź C też ma problem, bo chociaż używa or poprawnie, brakuje jej else, który jest ważny w switch, bo pozwala na zrobienie czegoś, gdy żaden z warunków nie pasuje. Często zapomina się o znaczeniu default w switch, a w if-else to w sumie jest to else. Zrozumienie tych rzeczy jest ważne, żeby pisać czytelny i efektywny kod PHP, szczególnie gdy tworzymy większe aplikacje, bo bez jasnej struktury może to być naprawdę wyzwanie.

Pytanie 25

Jaką funkcję w języku PHP można wykorzystać do weryfikacji typu zmiennej?

A. foreach()
B. var_dump()
C. strrev()
D. switch()
Funkcja var_dump() w języku PHP jest niezwykle przydatna do sprawdzania typu zmiennej, ponieważ wyświetla zarówno wartość zmiennej, jak i jej typ. Dzięki temu programista może szybko zrozumieć, co dokładnie znajduje się w danej zmiennej. Na przykład, jeśli mamy zmienną $a przypisaną do wartości 5, używając var_dump($a), uzyskamy wynik 'int(5)', co wskazuje, że zmienna jest typu całkowitego. Z kolei dla zmiennej $b, która jest tablicą, var_dump($b) pokaże strukturę tablicy oraz jej zawartość. Użycie var_dump() jest zgodne z dobrymi praktykami debugowania w PHP, ponieważ umożliwia identyfikację problemów z typami danych, co jest kluczowe w kontekście typowania dynamicznego, jakie ma miejsce w PHP. Dodatkowo, var_dump() jest często stosowane w sytuacjach, gdy programista chce szybko zweryfikować, co znajduje się w zmiennych podczas rozwoju aplikacji, co przyspiesza proces debugowania i pozwala na łatwiejsze znalezienie błędów w logice aplikacji.

Pytanie 26

Kolumna, która pełni funkcję klucza głównego w tabeli, powinna

A. zawierać unikalne wartości
B. posiadać ciągłą numerację
C. być innego rodzaju niż inne kolumny
D. zawierać wartości liczbowe
Klucz główny w tabeli bazy danych to naprawdę ważny element. To taki unikalny identyfikator, który pozwala na jednoznaczne rozróżnianie rekordów. Dzięki temu unikamy dublowania danych, co jest istotne, żeby wszystko było jasne i klarowne, bo jak byśmy mieli dwa takie same rekordy, to mogłoby być sporo zamieszania. Na przykład w tabeli 'Klienci' klucz główny to np. numery PESEL czy jakieś unikalne identyfikatory klientów. W praktyce stosuje się też różne standardy, jak SQL, które pomagają ustawić te klucze jako ograniczenia. To sprawia, że nasze dane są bezpieczniejsze i bardziej poprawne. No i tak z doświadczenia, najlepiej jest, jak klucz główny jest prosty, może jako liczba całkowita, bo wtedy wszystko działa szybciej. Podsumowując, unikalność klucza głównego to podstawa, żeby mieć pewność, że nasze dane są spójne i wiarygodne. To kluczowe w każdym systemie bazodanowym.

Pytanie 27

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 1
C. 1 0
D. 1 0 1
Pętla for w kodzie PHP inicjuje zmienną i wartością 5 i iteruje dopóki i jest większe niż 1 zmniejszając wartość i o 2 w każdej iteracji. Wewnętrznie pętla wyświetla wartość wyrażenia i % 2 czyli resztę z dzielenia i przez 2. W przypadku początkowej wartości i równej 5 reszta z dzielenia 5 przez 2 wynosi 1. Następnie wartość i jest zmniejszana o 2 dając 3 dla której reszta dzielenia przez 2 również wynosi 1. W ostatniej iteracji i przyjmuje wartość 1 i pętla się kończy ponieważ warunek i > 1 nie jest już spełniony. Dlatego wynikiem działania tej pętli jest 1 1. Warto zauważyć że użycie operatora modulo jest powszechną praktyką w programowaniu do określania parzystości liczby. Często wykorzystuje się go w algorytmach które wymagają naprzemiennego wykonania operacji lub filtrowania danych. Kod demonstruje także jak efektywnie kontrolować przepływ pętli za pomocą warunku zakończenia i modyfikacji zmiennej sterującej co jest kluczowe w optymalizacji algorytmów.

Pytanie 28

W podanym przykładzie pseudoklasa hover spowoduje, że styl pogrubiony zostanie zastosowany

Ilustracja do pytania
A. dla wszystkich odwiedzonych odnośników
B. dla każdego odnośnika bez względu na jego aktualny stan
C. dla wszystkich nieodwiedzonych odnośników
D. odnośnikowi, gdy kursor myszy na nim spocznie
Pseudoklasa hover w CSS jest stosowana do definiowania stylu elementu, gdy użytkownik umieszcza nad nim kursor myszy. W kontekście odnośników, stosowanie pseudoklasy hover pozwala na dynamiczne dostosowywanie ich wyglądu, co jest kluczowe dla poprawy interaktywności i użyteczności stron internetowych. W przykładzie a:hover { font-weight: bold; } styl pogrubiony zostanie zastosowany do odnośnika, gdy użytkownik najedzie na niego kursorem myszy. Jest to częsta praktyka w projektowaniu stron, która pomaga użytkownikom łatwiej identyfikować aktywne elementy nawigacyjne. Standardy sieciowe, takie jak W3C, rekomendują stosowanie takich interakcji w celu poprawy doświadczenia użytkownika. Praktyczne zastosowanie pseudoklasy hover jest szerokie, od prostych efektów wizualnych, po skomplikowane animacje i przejścia. Ważne jest jednak, aby pamiętać o zapewnieniu alternatywnych metod interakcji dla użytkowników korzystających z urządzeń dotykowych, gdzie hover nie jest obsługiwany. Zrozumienie i właściwe stosowanie pseudoklas w CSS jest podstawą tworzenia nowoczesnych i dostępnych interfejsów użytkownika.

Pytanie 29

Jak można opisać przedstawiony obiekt w JavaScript?

var obiekt1 = {
  x: 0,
  y: 0,
  wsp: function() { ... }
}
A. dwiema metodami i jedną właściwością
B. trzema metodami
C. dwiema właściwościami i jedną metodą
D. trzema właściwościami
W języku JavaScript obiekty są fundamentalną częścią języka, umożliwiającą przechowywanie i manipulowanie danymi w sposób bardziej uporządkowany. W podanym przykładzie obiekt zawiera dwie właściwości z wartościami liczbowymi oraz jedną metodę. Częstym błędem jest mylenie właściwości z metodami. Właściwość to statyczna wartość przypisana do klucza, natomiast metoda to funkcja przypisana do klucza, którą można wywołać. Niewłaściwe zrozumienie tej różnicy może prowadzić do błędnego interpretowania struktury obiektu. Zrozumienie poprawnego rozróżniania między właściwościami a metodami jest kluczowe w programowaniu obiektowym, które kładzie nacisk na modularność i wielokrotne używanie kodu. Programiści muszą również pamiętać, że struktura obiektu w JavaScript pozwala na dynamiczne dodawanie nowych właściwości i metod, co czyni ten język elastycznym i potężnym narzędziem w tworzeniu dynamicznych aplikacji internetowych. Błędem jest przypuszczanie, że każda deklaracja w obiekcie jest metodą, co może wynikać z niezrozumienia, że metody muszą zawierać fragment funkcji. Właściwe rozpoznanie tych elementów jest niezbędne do efektywnego wykorzystania zasad programowania obiektowego oraz tworzenia bardziej złożonych i skalowalnych aplikacji.

Pytanie 30

Filtracja sygnału wejściowego w czasie, która uwzględnia zasadę superpozycji, dotyczy filtru

A. liniowego
B. o skończonej odpowiedzi impulsowej
C. przyczynowym
D. niezmiennym w czasie
Odpowiedź 'liniowym' jest poprawna, ponieważ proces filtracji sygnału w dziedzinie czasu, który opiera się na zasadzie superpozycji, jest charakterystyczny dla filtrów liniowych. Filtry liniowe działają na zasadzie kombinacji sygnałów wejściowych, co oznacza, że sygnał wyjściowy jest liniową kombinacją sygnałów wejściowych. Przykładem zastosowania filtracji liniowej jest użycie filtrów w systemach audio, gdzie ma na celu poprawę jakości dźwięku poprzez eliminację niepożądanych częstotliwości. W inżynierii sygnałów, filtry liniowe są powszechnie stosowane w systemach komunikacyjnych czy w przetwarzaniu obrazów. Dobre praktyki w tej dziedzinie obejmują projektowanie filtrów w oparciu o różne metody, takie jak metoda okna czy projektowanie filtrów cyfrowych przy użyciu transformacji Z. Filtry liniowe są niezwykle ważne w kontekście analizy sygnałów, ponieważ ich właściwości pozwalają na przewidywalność i kontrolę nad przetwarzanym sygnałem, co jest kluczowe w wielu zastosowaniach inżynieryjnych.

Pytanie 31

Wskaż prawdziwe stwierdzenie dotyczące polecenia:

CREATE TABLE IF NOT EXISTS adres (ulica VARCHAR(70) CHARACTER SET utf8);
A. Rekordem tabeli nie może być '3 MAJA'.
B. Do tabeli nie można wprowadzać nazw ulic zawierających polskie znaki.
C. Klauzula CHARACTER SET utf8 jest obowiązkowa.
D. IF NOT EXISTS stosuje się opcjonalnie, aby upewnić się, że w bazie danych nie istnieje już taka tabela.
Niepoprawne odpowiedzi pokazują kilka powszechnych błędów myślowych. Na przykład, stwierdzenie, że do tabeli nie można wprowadzać ulic zawierających polskie znaki, jest nieprawdziwe. W rzeczywistości, zastosowanie odpowiedniego kodowania, takiego jak utf8, umożliwia przechowywanie dowolnych znaków specjalnych w tabelach SQL, w tym polskich. To jest bardzo ważne, gdy pracujemy z danymi, które mogą zawierać różne zestawy znaków. Druga nieprawidłowa odpowiedź sugeruje, że klauzula CHARACTER SET utf8 jest obowiązkowa. Jest to również mylące, ponieważ chociaż jest to dobra praktyka, aby umożliwić przechowywanie znaków specjalnych, nie jest to wymagane przez standard SQL. Ostatnia nieprawidłowa odpowiedź sugeruje, że rekordem tabeli nie może być '3 MAJA'. To jest błędne, ponieważ typ danych VARCHAR(70) w SQL pozwala na przechowywanie dowolnych ciągów znaków, w tym dat i nazw. W przypadku wszystkich tych nieprawidłowych odpowiedzi, ważne jest, aby rozumieć podstawy zarządzania danymi i struktur tabeli w SQL.

Pytanie 32

Co należy zrobić przed rozpoczęciem pętli, by zapewnić poprawne działanie przedstawionego kodu JavaScript?

var text;
for( var i = 0; i < tab.length; i++){
    text += tab[i] + "<br>";
}
A. Zweryfikować, czy text ma typ string
B. Sprawdzić rozmiar tabeli tab
C. Zadeklarować zmienną i
D. Zainicjować zmienną text
Zainicjowanie zmiennej text przed użyciem jej w kodzie JavaScript jest kluczowe dla uniknięcia błędów runtime. W analizowanym kodzie zmienna text jest używana do przechowywania i modyfikacji danych stringowych w pętli. Bez wcześniejszej inicjalizacji, np. text = '', próba konkatenacji wartości do zmiennej text prowadziłaby do błędu, gdyż zmienna ta nie miałaby początkowej wartości. Zainicjowanie zmiennej jako pustego stringa jest dobrym przykładem praktyki programistycznej, która zapobiega nieoczekiwanym błędom i zapewnia, że zmienna ma przewidywalny stan początkowy przed rozpoczęciem operacji na niej. Taka inicjalizacja jest również zgodna z zasadą defensywnego programowania gdzie staramy się zminimalizować ryzyko wystąpienia błędów poprzez odpowiednie przygotowanie danych przed ich użyciem. W praktyce, inicjalizacja zmiennych jest częścią dobrych standardów programistycznych i pomaga w utrzymywaniu czytelności i niezawodności kodu, co jest szczególnie istotne w projektach zespołowych oraz dużych aplikacjach.

Pytanie 33

Debugger to narzędzie wykorzystywane do

A. oceny szybkości działania programu
B. optymalizacji pamięci zajmowanej przez aplikację
C. identyfikacji błędów w kodzie programu
D. analizy właściwości programu
Debugger to narzędzie, które odgrywa kluczową rolę w procesie tworzenia oprogramowania, umożliwiając programistom identyfikację i naprawę błędów w kodzie. Główną funkcją debuggera jest pozwolenie na analizę działania programu na poziomie linii kodu, co umożliwia użytkownikowi śledzenie wykonania programu, monitorowanie wartości zmiennych oraz sprawdzanie logiki warunkowej. Użycie debuggera pozwala na wykrywanie błędów w czasie rzeczywistym, co jest niezwykle istotne, zwłaszcza w przypadku aplikacji, które muszą działać na różnych platformach i z różnymi danymi wejściowymi. Przykładem może być programowanie w języku Python, gdzie debugger umożliwia krokowe przechodzenie przez kod, co pomaga zrozumieć proces wykonania i zidentyfikować miejsca, gdzie występują nieprawidłowości. Dobrym zwyczajem jest korzystanie z debuggera na wczesnych etapach tworzenia oprogramowania, aby zminimalizować późniejsze problemy w fazie testowania i wdrażania.

Pytanie 34

Jakie są etapy w odpowiedniej kolejności przy tworzeniu aplikacji?

A. Analiza oczekiwań klienta, określenie wymagań, programowanie, wdrożenie, testowanie
B. Określenie wymagań, analiza oczekiwań klienta, programowanie, wdrożenie, testowanie
C. Programowanie, analiza oczekiwań klienta, określenie wymagań, wdrożenie, testowanie
D. Analiza oczekiwań klienta, określenie wymagań, programowanie, testowanie, wdrożenie
Odpowiedź wskazująca na kolejność: analiza wymagań klienta, specyfikacja wymagań, tworzenie, testy, wdrażanie jest poprawna i odzwierciedla standardowy model cyklu życia oprogramowania (SDLC). Zaczynamy od analizy wymagań, co oznacza zrozumienie potrzeb klienta i zebranie informacji, które będą fundamentem dalszych prac. Następnie przechodzimy do specyfikacji wymagań, gdzie dokumentujemy te potrzeby w formie, która będzie zrozumiała dla zespołu developerskiego. Tworzenie aplikacji następuje po szczegółowym omówieniu i zaakceptowaniu wymagań, co minimalizuje ryzyko błędów. Testy są kluczowym etapem, który pozwala na weryfikację, czy stworzone rozwiązanie spełnia wymagania oraz działa zgodnie z założeniami. Ostateczne wdrożenie aplikacji do użytkowania powinno nastąpić po przeprowadzeniu wszystkich testów i uzyskaniu pozytywnych wyników. Przykład zastosowania tej metodologii można zaobserwować w projektach realizowanych w metodologii Agile, gdzie iteracje pozwalają na ciągłe dostosowywanie aplikacji do zmieniających się potrzeb klienta. Takie podejście zwiększa satysfakcję użytkowników i minimalizuje koszty związane z poprawkami.

Pytanie 35

$z = mysqli_query($db, "SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a = mysqli_fetch_row($z);
echo "$a[1], $a[2]";
W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
A. miasta i kodu pocztowego ze wszystkich zwróconych rekordów
B. ulicy i miasta z pierwszego zwróconego rekordu
C. ulicy i miasta ze wszystkich zwróconych rekordów
D. miasta i kodu pocztowego z pierwszego zwróconego rekordu
Kod PHP wykonuje zapytanie do bazy danych przy użyciu funkcji mysqli_query co powoduje pobranie wszystkich rekordów z kolumn ulica miasto i kod_pocztowy z tabeli adresy jednak funkcja mysqli_fetch_row pobiera tylko pierwszy rekord z wynikowego zbioru danych. Jest to kluczowy aspekt ponieważ mysqli_fetch_row nie iteruje automatycznie przez wszystkie rekordy co jest częstym błędem w interpretacji działania tej funkcji. Często mylnie zakłada się że funkcja echo w połączeniu z pętlą może obsłużyć cały zestaw danych co w kontekście tego kodu nie ma miejsca ponieważ pętla nie została użyta. Zrozumienie działania funkcji takich jak mysqli_fetch_row jest kluczowe dla poprawnego przetwarzania danych z bazy. Indeksowanie w tablicach wynikowych zaczyna się od zera dlatego też $a[1] i $a[2] odnoszą się do drugiego i trzeciego elementu tablicy a nie pierwszego i drugiego co również jest częstym źródłem błędów wśród początkujących programistów. Ponadto brak zrozumienia że echo wypisuje wartości z jednego rekordu a nie wszystkich może prowadzić do błędnych założeń w projektowaniu logiki aplikacji. Aby uzyskać dane ze wszystkich rekordów konieczne byłoby zastosowanie pętli takiej jak while która iterowałaby przez cały zbiór wyników co pokazuje różnicę w podejściu między pobieraniem pojedynczego rekordu a całego zestawu danych. Zrozumienie tych koncepcji jest istotne dla efektywnego i bezpiecznego korzystania z bazy danych w aplikacjach PHP i pozwala na unikanie typowych błędów związanych z przetwarzaniem rekordów z bazy danych. Dokładne zrozumienie struktury tablic wynikowych i sposobu ich przetwarzania jest niezbędne do rozwijania wydajnych i bezpiecznych aplikacji webowych. Warto również pamiętać o zabezpieczeniach takich jak użycie przygotowanych zapytań SQL by uniknąć ataków typu SQL Injection co jest istotnym aspektem tworzenia aplikacji bezpiecznych i odpornych na próby nieautoryzowanego dostępu.

Pytanie 36

Tablica tab[] jest wypełniona losowymi liczbami całkowitymi. Jaka będzie wartość zmiennej zm2 po wykonaniu poniższego fragmentu kodu?

int tab[10];
int zm1 = 0;
double zm2 = 0;

for (int i=0; i < 10; i++)
{
    zm1 = zm1 + tab[i];
}
zm2 = zm1 / 10;
A. Suma elementów z tablicy
B. Średnia arytmetyczna liczb z tablicy
C. Suma liczb od 1 do 10
D. Średnia geometryczna liczb od 0 do 9
W tym kodzie fajnie widać, jak oblicza się średnią arytmetyczną z liczb w tablicy tab[]. Na początku ustawiamy zmienne zm1 i zm2 na 0, co jest spoko, bo potem w pętli for dodajemy wszystkie liczby z tablicy do zm1. Gdy pętla się kończy, zm1 zbiera całą sumę liczb, a żeby dostać średnią, dzielimy ją przez 10, bo tyle mamy elementów. Wynik przypisujemy do zm2. To bardzo przydatny proces w programowaniu – średnie są często używane w analizie danych czy obliczeniach wyników. Pamiętaj jednak, żeby nie zapomnieć o możliwych błędach dzielenia przez zero. Dobrze jest sprawdzić, czy tablica nie jest pusta, aby uniknąć kłopotów. I jeszcze jedna rzecz – używanie typu double dla zmiennej zm2 to dobry pomysł, żeby średnia była dokładna, zwłaszcza gdy mowa o liczbach, które nie są całkowite. To wszystko jest zgodne z dobrymi praktykami w IT.

Pytanie 37

Aby poprawnie skomentować linię kodu w języku JavaScript, należy po znakach // wprowadzić komentarz x = Math.max(a,b,c); //

A. w zmiennej x maksymalna wartość ze zmiennych a, b, c
B. nieprawidłowe dane
C. wybór wartości maksymalnej spośród zmiennych a, b oraz c
D. w zmiennej x minimalna wartość ze zmiennych a, b, c
W analizowanych odpowiedziach znajdują się stwierdzenia, które nie oddają rzeczywistego działania funkcji wykorzystywanej w tej linii kodu. Stwierdzenie dotyczące wyboru losowej wartości ze zmiennych a, b i c jest błędne, ponieważ funkcja Math.max nie dokonuje wyboru losowego, ale precyzyjnie analizuje wartości i zwraca największą z nich. Takie myślenie może prowadzić do poważnych nieporozumień w kontekście programowania, gdzie deterministyczne wyniki są kluczowe. Inne z kolei stwierdzenie, że w zmiennej x znajduje się minimalna wartość ze zmiennych a, b, c, jest całkowicie sprzeczne z logiką funkcji Math.max, która z definicji nakazuje jej zwracać maksymalną, a nie minimalną wartość. Użytkownik, bazując na tym błędnym rozumowaniu, mógłby wprowadzić niepoprawne dane do dalszego przetwarzania. Natomiast ostatnia błędna odpowiedź sugerująca, że zmienna x zawiera maksymalną wartość bez uwzględnienia kontekstu, jest niepoprawna w tym sensie, że nie precyzuje, iż funkcja Math.max porównuje konkretnie wartości a, b i c. Aby uniknąć takich nieporozumień, ważne jest zrozumienie mechanizmu działania wbudowanych funkcji w JavaScript oraz ich zastosowania w praktyce.

Pytanie 38

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

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

Pytanie 39

Do czego wykorzystywany jest program debugger?

A. do badania kodu źródłowego w celu wykrycia błędów składniowych
B. do przetwarzania kodu napisanego w języku wyższego poziomu na język maszynowy
C. do analizy działającego programu w celu odnalezienia błędów
D. do interpretacji kodu w wirtualnej maszynie Java
Debugger to narzędzie służące do analizy wykonywanego programu, które pozwala programistom identyfikować i lokalizować błędy w kodzie. Jego główną funkcją jest umożliwienie krokowego śledzenia działania programu, co pozwala na obserwację wartości zmiennych, a także na analizę przepływu kontrolnego. Przykładowo, programista może ustawić punkty przerwania (breakpoints), które zatrzymują wykonanie programu w określonym miejscu, co daje możliwość dokładnego zbadania stanu aplikacji. Debugger wspiera proces testowania i zapewnia, że program działa zgodnie z założeniami. W branży programistycznej standardem jest korzystanie z debuggingu w ramach cyklu życia oprogramowania, co pozwala na szybką identyfikację usterek oraz poprawę jakości kodu. Ponadto, popularne środowiska programistyczne, jak Visual Studio, Eclipse czy IntelliJ IDEA, oferują zaawansowane funkcje debugowania, które wspierają programistów w ich codziennej pracy.

Pytanie 40

W SQL klauzula DISTINCT w poleceniu SELECT zapewnia, że zwrócone wyniki

A. będą zgrupowane według wskazanego pola.
B. nie zawiera będą duplikatów.
C. będą spełniały dany warunek.
D. będą uporządkowane.
Klauzula DISTINCT w języku SQL jest używana w instrukcji SELECT do eliminacji duplikatów w zwracanych wynikach zapytania. Gdy zapytanie wykorzystuje DISTINCT, zwracane są tylko unikalne rekordy, co oznacza, że identyczne wiersze występujące w zestawie wyników są redukowane do jednego wystąpienia. Działa to poprzez porównywanie wszystkich kolumn wymienionych w SELECT, co oznacza, że różnice w jakiejkolwiek kolumnie będą skutkować zwróceniem oddzielnych wierszy. Przykładowe zapytanie: SELECT DISTINCT nazwisko FROM pracownicy; zwróci listę unikalnych nazwisk pracowników, eliminując wszelkie powtórzenia. Klauzula DISTINCT jest szczególnie przydatna w raportach i analizach danych, gdyż pozwala na zrozumienie częstotliwości występowania różnych wartości. Zgodnie z SQL ANSI, użycie DISTINCT jest standardem, co oznacza, że jest obsługiwane przez wszystkie główne systemy zarządzania bazami danych, takie jak MySQL, PostgreSQL czy Oracle. Warto jednak pamiętać, że dodanie DISTINCT do zapytania może wpływać na wydajność, zwłaszcza w przypadku dużych zbiorów danych, ponieważ wymaga dodatkowych operacji przetwarzania, aby zidentyfikować i usunąć duplikaty.