Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 11 czerwca 2026 19:33
  • Data zakończenia: 11 czerwca 2026 19:55

Egzamin zdany!

Wynik: 38/40 punktów (95,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

Jaką relację w projekcie bazy danych powinno się ustalić pomiędzy tabelami przedstawionymi na rysunku, przy założeniu, że każdy klient sklepu internetowego złoży co najmniej dwa zamówienia?

Ilustracja do pytania
A. n:n
B. 1:n, gdzie 1 znajduje się po stronie Zamówienia, a wiele po stronie Klienta
C. 1:n, gdzie 1 jest po stronie Klienta, a wiele po stronie Zamówienia
D. 1:1
Relacja 1:n, gdzie 1 jest po stronie Klienta, a wiele po stronie Zamówienia, oznacza, że każdy klient może mieć wiele zamówień, ale każde zamówienie jest powiązane dokładnie z jednym klientem. To podejście odpowiada rzeczywistości większości sklepów internetowych, gdzie klienci wielokrotnie dokonują zamówień. Projektując bazę danych zgodnie z tą relacją, stosujemy klucz obcy w tabeli Zamówienia, który odwołuje się do klucza głównego w tabeli Klient. Jest to zgodne z dobrymi praktykami w projektowaniu baz danych, które zalecają minimalizowanie redundancji i zapewnienie integralności danych. Praktyczne zastosowanie tego modelu umożliwia łatwe śledzenie historii zamówień klientów, co jest kluczowe dla analizy sprzedaży i zarządzania relacjami z klientami. Relacja 1:n jest jedną z najczęściej stosowanych w modelowaniu danych, co potwierdza jej uniwersalność i skuteczność w różnych systemach informatycznych, od sklepów internetowych po systemy zarządzania zasobami ludzkimi.

Pytanie 2

Funkcja przedstawiona w kodzie JavaScript ma na celu

Ilustracja do pytania
A. pokazać wynik mnożenia a przez n
B. zwrócić wynik potęgowania an
C. zwrócić iloczyn kolejnych liczb od 1 do a
D. wyświetlić kolejne liczby od a do n
Funkcja w języku JavaScript przedstawiona w pytaniu wykonuje operację potęgowania poprzez iteracyjne mnożenie liczby a przez siebie n razy. Jest to klasyczny sposób realizacji potęgowania, polegający na zastosowaniu pętli for. W momencie inicjalizacji zmiennej wynik przypisujemy jej wartość 1, co jest typowym sposobem rozpoczęcia mnożenia w algorytmach iteracyjnych. Następnie pętla for iteruje n razy, za każdym razem mnożąc wynik przez a, co odpowiada matematycznemu działaniu a razy a razy a, aż do n razy. Po zakończeniu pętli funkcja zwraca wynik, który jest wartością an. Takie podejście jest stosowane w przypadkach, gdy nie mamy bezpośredniego dostępu do wbudowanych funkcji potęgowania, jak Math.pow, jednak w praktyce, dla lepszej wydajności i czytelności kodu, zaleca się korzystanie z wbudowanych metod. Potęgowanie jest powszechnie stosowane w obliczeniach matematycznych, fizyce oraz w algorytmach wymagających szybkiego przetwarzania dużych ilości danych. Zrozumienie mechaniki działania pętli for i operacji iteracyjnych jest kluczowe w programowaniu, co czyni to pytanie istotnym elementem egzaminu certyfikacyjnego.

Pytanie 3

Które zdarzenie zachodzi, gdy ZMIENI się wartość pola (np. po wybraniu opcji z listy)?

A.
onChange
B.
onSubmit
C.
onEnter
D.
onClick
Zdarzenie onchange uruchamia kod, gdy wartość kontrolki ZMIENI się i pole straci fokus - klasycznie po wybraniu innej opcji z listy <select> albo po edycji i opuszczeniu pola tekstowego. Używa się go np. do przeliczenia formularza po zmianie wyboru: <select onchange="przelicz()">. Zapamiętaj: „change” = reakcja na zmianę wartości pola, a nie na samo kliknięcie czy pisanie.

Pytanie 4

W JavaScript funkcja document.getElementById(id) ma na celu

A. zwrócić referencję do pierwszego elementu HTML o wskazanym id
B. umieścić tekst o treści ’id’ na stronie internetowej
C. pobrać wartości z formularza i przypisać je do zmiennej id
D. zweryfikować poprawność formularza o identyfikatorze id
Fajnie, że zwróciłeś uwagę na metodę document.getElementById(id). To naprawdę ważne narzędzie w JavaScript, jeśli chodzi o pracę z DOM. Dzięki niej możesz łatwo znaleźć element HTML, który ma konkretny identyfikator, co jest super przydatne, gdy chcesz coś zmienić na stronie. Na przykład, żeby zmienić tekst nagłówka, używasz: document.getElementById('header').innerText = 'Nowy tekst nagłówka'. Warto pamiętać, żeby identyfikatory były unikalne, bo to potem ułatwia odnajdywanie i manipulację tymi elementami. Unikaj też zbyt ogólnych nazw, bo to może prowadzić do zamieszania. Metoda ta jest naprawdę szeroko stosowana w nowoczesnym programowaniu stron internetowych, co czyni strony bardziej interaktywnymi i dynamicznymi.

Pytanie 5

Instrukcja przypisania elementu do tablicy w języku JavaScript dotyczy tablicy:

Tablica['technik'] = 'informatyk';
A. statycznej.
B. asocjacyjnej.
C. wielowymiarowej.
D. numerycznej.
Najpierw omówmy odpowiedź 'statyczna'. 'Statyczna' tablica to termin, który odnosi się do tablic o stałej wielkości, które nie mogą być dynamicznie zmieniane. W języku JavaScript jednak, tablice są dynamiczne i ich wielkość może być zmieniana w dowolnym momencie. Wybór odpowiedzi 'numeryczna' sugeruje niezrozumienie podstawowych właściwości tablic w JavaScript. Tablice numeryczne są strukturami danych, które używają numerów jako indeksów, ale to nie jest to, co pokazano na zdjęciu - tutaj kluczem jest ciąg znaków. Wybór odpowiedzi 'wielowymiarowa' wskazuje na błędną interpretację przedstawionego obrazu. Tablica wielowymiarowa to tablica tablic, a na zdjęciu pokazano jednowymiarową tablicę asocjacyjną. Pamiętaj, że rozumienie różnych rodzajów tablic i ich zastosowań jest kluczowe dla skutecznego programowania w JavaScript.

Pytanie 6

Którego języka skryptowego użyć do aplikacji WWW zagnieżdżonych w HTML i uruchamianych po stronie SERWERA?

A. JavaScript
B. C#
C. PHP
D. Perl
PHP to skryptowy język serwerowy, który OSADZA SIĘ wprost w HTML (między <?php ... ?>) i wykonuje na SERWERZE - do przeglądarki trafia już gotowy HTML będący wynikiem działania kodu. Tak powstają strony dynamiczne: logowanie, sklepy, fora. Zapamiętaj: PHP liczy się na serwerze, a klient widzi tylko efekt.

Pytanie 7

W języku JavaScript właściwie zdefiniowana zmienna to

A. imie2
B. #imie
C. imię2
D. imię%
W języku JavaScript, poprawne nadawanie zmiennych jest kluczowym elementem programowania, który opiera się na zdefiniowanych zasadach dotyczących identyfikatorów. Zmienna musi zaczynać się od litery, znaku podkreślenia (_) lub znaku dolara ($), a następnie może zawierać litery, cyfry, znaki podkreślenia oraz znaki dolara. W przypadku odpowiedzi 'imie2', zaczyna się ona od litery i zawiera literę oraz cyfrę, co czyni ją poprawnym identyfikatorem. Zgodnie ze standardem ECMAScript, identyfikatory są rozróżniane na wielkie i małe litery, co oznacza, że 'Imie2' i 'imie2' będą traktowane jako różne zmienne. Praktycznym przykładem poprawnego użycia takiej zmiennej może być zapis: let imie2 = 'Jan'; console.log(imie2);. W wyniku tego, konsola wyświetli 'Jan'. Można również zauważyć, że zgodnie z zasadami, zmienne mogą być oznaczone jako let, const lub var, co dodaje elastyczności podczas deklaracji zmiennych w kodzie JavaScript.

Pytanie 8

Rezultatem działania zamieszczonej pętli napisanej w języku PHP jest wypisanie następujących liczb

Ilustracja do pytania
A. od 10 do 1
B. od 10 do 2
C. od 2 do 10
D. od 1 do 10
Pętla for w języku PHP przedstawiona w pytaniu zaczyna od wartości początkowej 10 dla zmiennej iteracyjnej $i. Warunek zakończenia pętli to $i >= 1, co oznacza że pętla będzie działać dopóki wartość $i jest większa lub równa 1. W każdym kroku iteracji następuje dekrementacja zmiennej $i o 1 dzięki operatorowi $i--. W praktyce oznacza to że pętla wypisuje wartości od 10 do 1 w kolejnych liniach. Dekrementacja w pętlach jest często stosowana, kiedy chcemy przechodzić przez elementy w odwrotnej kolejności, co jest przydatne w algorytmach sortowania bądź odwracania danych. Dzięki jasnemu określeniu warunków początkowych, końcowych oraz kroku iteracji pętla for jest jednym z bardziej przejrzystych i zrozumiałych narzędzi w programowaniu. Warto pamiętać o optymalizacji kodu i unikanie nadmiernych iteracji, co jest dobrym standardem w praktykach programistycznych, zwłaszcza w projektach o dużej skali. Pisząc bardziej złożone skrypty, należy pamiętać także o możliwości wystąpienia błędów związanych z nieskończonymi pętlami jeśli warunek zakończenia nie jest poprawnie zdefiniowany.

Pytanie 9

Jakie będzie działanie podanych instrukcji JavaScript?

var elementy = document.getElementsByClassName("styl1");
  for(var i = 0; i < elementy.length; i++)
    elementy[i].style.fontWeight = "bolder";
A. Dla wszystkich elementów przypisanych do klasy styl1 zostanie nadany styl pogrubienia tekstu bolder
B. Jedynie dla elementu o id równym styl1 będzie przypisany styl pogrubienia tekstu na bolder
C. Wyłącznie dla pierwszego elementu przypisanego do klasy styl1 zostanie nadany styl pogrubienia tekstu bolder
D. Dla wszystkich elementów na stronie zostanie zastosowany styl pogrubienia tekstu na bolder
Instrukcje JavaScript w pytaniu wykorzystują metodę getElementsByClassName aby pobrać kolekcję wszystkich elementów na stronie które posiadają przypisaną klasę styl1. Metoda ta zwraca obiekt typu HTMLCollection który przypomina tablicę i zawiera odniesienia do elementów DOM posiadających określoną klasę. Następnie za pomocą pętli for przechodzimy przez każdy z tych elementów i zmieniamy ich styl na bolder przypisując nową wartość do właściwości style.fontWeight. Dzięki temu każdy element w kolekcji zostaje zmodyfikowany i wyświetlany z pogrubioną czcionką. Takie podejście jest zgodne z dobrymi praktykami w zakresie manipulacji DOM w JavaScript gdyż jest to sposób efektywny i bezpośredni. Użycie klas do grupowania elementów HTML pozwala na jednoczesne stosowanie stylów i operacji na grupach elementów co jest kluczowe w dynamicznym modelu tworzenia stron internetowych. Warto zwrócić uwagę na fakt że nazwy klas są czułe na wielkość liter co oznacza że styl1 i Styl1 byłyby traktowane jako różne klasy.

Pytanie 10

Przedstawiony kod języka PHP

$dane = array ('imie' => 'Anna', 'nazwisko' => 'Nowak', 'wiek' => 21);
A. definiuje tablicę z sześcioma wartościami.
B. definiuje tablicę z trzema wartościami.
C. jest błędny, nieznany operator =>
D. jest błędny, indeksami tablicy mogą być tylko liczby całkowite.
Dobra robota, wybrałeś właściwą odpowiedź! Ten kod PHP, który analizujesz, rzeczywiście ustawia tablicę asocjacyjną z trzema parami klucz-wartość. Tak naprawdę tablica asocjacyjna to coś w stylu tablicy, gdzie każdemu elementowi przypisujesz unikalny klucz zamiast numeru indeksu. No i ten operator '=>' to typowy element PHP, służy do przypisywania wartości kluczom w tablicach. W twoim przykładzie widzisz, że kluczami mogą być nie tylko liczby, ale też łańcuchy tekstowe. To naprawdę przydatne, szczególnie przy przechowywaniu informacji, które łatwo zidentyfikować – na przykład numery telefonów czy adresy e-mail. Pamiętaj, że w PHP tablica to jedna z podstawowych struktur danych. Może trzymać różne typy danych, takie jak liczby, teksty, obiekty czy inne tablice, a jej rozmiar może się zmieniać w trakcie działania programu.

Pytanie 11

Jak ustawić tło body obrazem rys.png, powtarzanym TYLKO w poziomie?

A.
background-image: url("rys.png"); background-repeat: repeat;
B.
background-image: url("rys.png"); background-repeat: repeat-y;
C.
background-image: url("rys.png"); background-repeat: round;
D.
background-image: url("rys.png"); background-repeat: repeat-x;
Powtarzanie obrazu tła reguluje background-repeat. Wartość repeat-x powiela obraz TYLKO w poziomie (wzdłuż osi X), tworząc poziomy pas. Dlatego tło powtarzane jedynie w poziomie daje background-repeat: repeat-x.

Pytanie 12

Jaką funkcję pełni atrybut value w polu formularza, np. <input type="text" name="name" value="value">?

A. ogranicza maksymalną długość pola
B. określa nazwę pola
C. ustawia pole jako tylko do odczytu
D. określa domyślną wartość pola
Atrybut value w polu formularza ustala jego wartość początkową - tekst, który pojawia się w polu zaraz po załadowaniu strony i zostanie wysłany, jeśli użytkownik go nie zmieni. W przykładzie value="value" pole tekstowe od razu zawiera słowo „value”. Dlatego value określa domyślną wartość pola.

Pytanie 13

W przedstawionym kodzie PHP przeprowadzono operację na bazie danych. Jaką funkcję należy wywołać, aby uzyskać liczbę wierszy, które zostały zmienione w tabeli?

$zapytanie="UPDATE kadra SET stanowisko='Programista' WHERE id < 10"; mysqli_query($db, $zapytanie);
A. mysqli_use_result()
B. mysqli_field_count()
C. mysqli_num_rows()
D. mysqli_affected_rows()
Funkcja mysqli_affected_rows() jest używana w kontekście zapytań modyfikujących dane w bazie danych, takich jak INSERT, UPDATE, DELETE. Po wykonaniu zapytania, które zmienia dane, funkcja ta zwraca liczbę wierszy, które zostały zmodyfikowane w wyniku wykonania tego zapytania. W przypadku podanego zapytania, zmieniającego stanowisko w tabeli 'kadra' dla rekordów z identyfikatorem mniejszym niż 10, użycie mysqli_affected_rows() pozwoli na uzyskanie informacji o tym, ile wierszy zostało zaktualizowanych. Jest to niezwykle przydatne w sytuacjach, gdy programista chce mieć kontrolę nad tym, które operacje modyfikujące dane przyniosły zamierzony efekt. Przykładowo, jeśli po wykonaniu zapytania chcemy zaktualizować interfejs użytkownika lub wykonać dodatkowe operacje tylko wtedy, gdy zmiany zostały wprowadzone, użycie tej funkcji jest kluczowe. Dobrą praktyką jest również uwzględnienie obsługi błędów, aby upewnić się, że operacje na bazie danych są poprawnie wykonane, co można osiągnąć za pomocą funkcji mysqli_error() w przypadku błędów zapytań.

Pytanie 14

Ograniczanie dostępu do niektórych pól lub metod obiektów danej klasy, tak aby mogły być one wykorzystywane wyłącznie przez wewnętrzne metody tej klasy lub funkcje zaprzyjaźnione, to

A. dziedziczenie
B. polimorfizm
C. hermetyzacja
D. konkatenacja
Hermetyzacja to kluczowa koncepcja programowania obiektowego, która polega na ograniczaniu dostępu do pewnych pól i metod danej klasy, aby chronić integralność danych i zapewnić ich poprawne użycie. Przykładem hermetyzacji jest użycie modyfikatorów dostępu, takich jak 'private' i 'protected', co pozwala na ukrycie implementacji od użytkowników klasy, a jednocześnie umożliwia dostęp do tych elementów wewnętrznym metodom klasy. Dzięki hermetyzacji programiści mogą wprowadzać zmiany w implementacji bez wpływu na kod zewnętrzny, co wspiera zasady SOLID i ułatwia zarządzanie dużymi systemami. Rekomendowane praktyki w programowaniu obiektowym zalecają, aby klasy były odpowiedzialne za zarządzanie swoimi danymi, a dostęp do tych danych powinien odbywać się wyłącznie poprzez zdefiniowane interfejsy, takie jak metody publiczne, co pozwala na kontrolowanie operacji i walidację danych. W ten sposób hermetyzacja przyczynia się do większej niezawodności, czytelności oraz łatwości w testowaniu aplikacji.

Pytanie 15

Skrypt na stronę WWW stworzony w języku PHP

A. może działać bez wsparcia serwera WWW
B. jest wykonywany po stronie serwera
C. jest przetwarzany w taki sam sposób jak JavaScript
D. jest realizowany po stronie klienta
Kod PHP jest przetwarzany po stronie serwera, co oznacza, że wszystkie instrukcje napisane w tym języku są wykonywane na serwerze, a nie na komputerze klienta. Kiedy użytkownik żąda strony internetowej, serwer WWW interpretuje kod PHP, generuje odpowiedni HTML i wysyła go do przeglądarki. Dzięki temu możliwe jest dynamiczne tworzenie treści, uzależnionej od danych wejściowych użytkownika czy zawartości bazy danych. Przykładowo, w aplikacjach internetowych takich jak systemy zarządzania treścią (CMS) czy platformy e-commerce, PHP pozwala na generowanie różnorodnych widoków i interakcji w oparciu o aktualne informacje. Kluczowym aspektem dobrej praktyki w programowaniu w PHP jest separacja logiki aplikacji od warstwy prezentacji, co wspiera łatwiejsze zarządzanie kodem i jego utrzymanie. Warto również zaznaczyć, że PHP współpracuje z różnymi systemami baz danych, co umożliwia przechowywanie i przetwarzanie dużych ilości danych. Na przykład, w typowej aplikacji webowej można wykorzystać PHP do komunikacji z bazą MySQL, co pozwala na dynamiczne ładowanie treści w odpowiedzi na interakcje użytkownika.

Pytanie 16

Warunek zapisany w JavaScript jest prawdziwy, gdy zmienna x przechowuje:

if ((!isNaN(x)) && (x > 0))
A. napis.
B. dowolną całkowitą wartość liczbową.
C. pusty napis.
D. dowolną dodatnią wartość liczbową.
Poprawnie wyłapałeś, że ten warunek jest prawdziwy tylko wtedy, gdy x przechowuje dodatnią wartość liczbową. Rozbijmy to na części. Funkcja isNaN(x) w JavaScript sprawdza, czy przekazany argument „nie jest liczbą” (NaN = Not a Number). Zapis z wykrzyknikiem: !isNaN(x) oznacza więc „x jest liczbą lub da się go zinterpretować jako liczbę”. Druga część warunku: (x > 0) wymusza, żeby ta wartość była większa od zera, czyli dodatnia. Operator && (AND logiczne) powoduje, że oba warunki muszą być spełnione jednocześnie. W efekcie if wykona się tylko wtedy, gdy x reprezentuje dodatnią liczbę (np. 1, 3.14, 100, 0.0001). Co ważne, w JavaScript !isNaN("5") też będzie prawdą, bo łańcuch "5" zostanie zrzutowany do liczby, więc w praktyce ten warunek przepuści zarówno typ number, jak i tekst, który da się przekonwertować na liczbę dodatnią. W realnych projektach taką konstrukcję stosuje się np. przy walidacji pól formularza: sprawdzamy, czy użytkownik podał sensowną wartość liczbową (np. cena, ilość sztuk, wiek) i czy nie jest ona ujemna albo zerowa. Z mojego doświadczenia lepiej jednak korzystać z Number.isNaN() i jawnie rzutować dane (np. const value = Number(x)), bo klasyczne isNaN ma parę „dziwnych” zachowań wynikających z automatycznych konwersji typów w JS. Mimo to logika w tym zadaniu jest typowa i zgodna z dobrymi praktykami: najpierw walidacja typu/wartości, potem dopiero dalsza logika biznesowa.

Pytanie 17

Po wykonaniu fragmentu kodu HTML i JavaScript na stronie zostanie 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 zostać zmieniony na kol2.jpg po wciśnięciu przycisku.
B. kol2.jpg
C. kol2.jpg, który może zostać zmieniony na kol1.jpg po wciśnięciu przycisku.
D. kol1.jpg
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 18

W którym z bloków powinien znaleźć się warunek pętli?

Ilustracja do pytania
A. B.
B. C.
C. D.
D. A.
Wybór innego bloku niż C jako miejsca na umieszczenie warunku pętli wprowadza błędne zrozumienie struktury diagramów przepływu. Blok A, reprezentujący proces lub działanie, jest używany do przedstawienia operacji lub kroków bez podejmowania decyzji. Umieszczenie w nim warunku pętli byłoby mylące, ponieważ nie oddaje istoty kontrolowania przepływu w programie. Blok B, w kształcie elipsy, jest powszechnie używany jako punkt startowy lub końcowy procesu, a nie do określania logiki decyzji. Użycie go do pętli nie jest zgodne z konwencjami diagramów przepływu i może prowadzić do błędnej interpretacji algorytmu. Blok D, reprezentujący magazyn danych, skupia się na przechowywaniu i zarządzaniu informacjami, a nie na logice sterowania przepływem. Typowe błędy, które mogą prowadzić do wyboru niewłaściwego bloku, to mylenie funkcji symboli w diagramach przepływu oraz niezrozumienie zasad ich użycia zgodnie z praktykami przemysłowymi. Zrozumienie, dlaczego każdy blok ma swoją specyficzną rolę, jest kluczowe dla tworzenia efektywnych i dokładnych modeli programistycznych, co z kolei ułatwia komunikację między programistami oraz innymi interesariuszami w projekcie.

Pytanie 19

W językach programowania o układzie strukturalnym, aby przechować dane o 50 uczniach (ich imionach, nazwiskach oraz średniej ocen), konieczne jest zastosowanie

A. klasy z 50 elementami typu tablicowego
B. tablicy z 50 elementami o składowych strukturalnych
C. tablicy z 50 elementami o składowych typu łańcuchowego
D. struktury z 50 elementami o składowych typu tablicowego
Wybór tablicy 50 elementów o składowych strukturalnych jest prawidłowy ze względu na potrzebę przechowywania złożonych danych o uczniach. W tym przypadku, każdy element tablicy powinien reprezentować jednego ucznia i zawierać jego imię, nazwisko oraz średnią ocen. Struktura danych, taka jak struktura, pozwala na grupowanie różnych typów danych w jeden obiekt, co jest zgodne z dobrymi praktykami programowania w językach strukturalnych. Przykładowo, w języku C można zadeklarować strukturę dla ucznia w następujący sposób: `struct Uczen { char imie[50]; char nazwisko[50]; float srednia; };`. Następnie można utworzyć tablicę 50 elementów tej struktury: `struct Uczen uczniowie[50];`. Stosowanie struktur w tym kontekście ułatwia zarządzanie danymi i zwiększa czytelność kodu, co jest szczególnie ważne w przypadku projektów wymagających łatwego dostępu do różnych atrybutów obiektów. Używanie dobrze zdefiniowanych struktur danych jest zgodne z zasadami programowania obiektowego, nawet w językach proceduralnych, i przyczynia się do lepszej organizacji kodu oraz jego skalowalności.

Pytanie 20

Liczba 0x142 zapisana w skrypcie JavaScript jest w postaci:

A. dwójkowej
B. ósemkowej
C. szesnastkowej
D. dziesiętnej
W JavaScript (i wielu innych językach) przedrostek 0x oznacza, że liczba jest zapisana w systemie szesnastkowym (heksadecymalnym, podstawa 16, cyfry 0-9 i A-F). Zapis 0x142 odpowiada więc wartości dziesiętnej 322 (1·256 + 4·16 + 2). Inne przedrostki to 0b dla zapisu dwójkowego i 0o dla ósemkowego, a brak przedrostka oznacza liczbę dziesiętną. Dlatego 0x142 jest liczbą szesnastkową.

Pytanie 21

 SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel"; 

Tabela samochody zawiera rekordy przedstawione na obrazie. Wydając przedstawione zapytanie SQL zostaną zwrócone dane:
idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017
A. zafira
B. opel zafira; opel insignia
C. zafira; insignia
D. opel zafira
Gratulacje, twoja odpowiedź jest poprawna. Zapytanie SQL 'SELECT model FROM samochody WHERE rocznik > 2017 AND marka = 'opel';' ma na celu wyświetlenie modelu samochodu marki 'opel' z roku produkcji późniejszego niż 2017. Analizując dostępną tabelę, możemy zauważyć, że tylko model 'zafira' spełnia oba kryteria. W tym przypadku wykorzystaliśmy dwa kluczowe elementy języka SQL, tj. instrukcję SELECT i klauzulę WHERE. Instrukcja SELECT służy do zapytań o konkretne dane z bazy, a klauzula WHERE to powszechnie stosowane narzędzie do filtrowania wyników zapytania według określonych kryteriów. Jest to bardzo praktyczny aspekt SQL, który pozwala na wydobywanie tylko tych danych, które są potrzebne, co jest niezwykle przydatne przy dużych bazach danych.

Pytanie 22

Do następnego poziomu można przejść, gdy: punkty = 20, paczki co najmniej 3, dystans = 200 m. Który warunek (JS) to sprawdza?

A.
punkty == 20 && paczki == 3 && dystans == 200
B.
punkty == 20 && paczki >= 3 && dystans == 200
C.
punkty == 20 || paczki == 3 || dystans == 200
D.
punkty == 20 || paczki >= 3 || dystans == 200
Awans wymaga spełnienia WSZYSTKICH warunków naraz, więc łączymy je &&: punkty równe 20, paczki co najmniej 3 (paczki >= 3) i dystans 200 - czyli punkty == 20 && paczki >= 3 && dystans == 200. Dlatego ten warunek jest poprawny.

Pytanie 23

Jaki mechanizm kontroli bezpieczeństwa uruchamiania aplikacji zawiera środowisko .NET Framework?

A. realizowany przez funkcje Windows API
B. oparty na uprawnieniach kodu (CAS - Code Access Security) i na rolach (RBS - Role-Based Security)
C. przeznaczony wyłącznie dla bibliotek klas
D. realizowany przez frameworki aplikacji webowych (ASP.NET)
.NET Framework ma wbudowany model kontroli bezpieczeństwa uruchamianego kodu oparty na dwóch filarach: CAS (Code Access Security) przyznaje uprawnienia w zależności od POCHODZENIA i zaufania kodu (np. kod z sieci ma mniej praw niż lokalny), a RBS (Role-Based Security) decyduje o dostępie na podstawie ROLI i tożsamości użytkownika. Razem ograniczają, co dany kod i użytkownik mogą zrobić. Zapamiętaj: CAS = prawa kodu, RBS = prawa wg roli użytkownika.

Pytanie 24

Aby policzyć wszystkie wiersze w tabeli Koty, należy użyć zapytania:

A.
SELECT COUNT(*) FROM Koty
B.
SELECT COUNT(ROWNUM) FROM Koty
C.
SELECT ROWNUM() FROM Koty
D.
SELECT COUNT(Koty) AS ROWNUM
Liczbę wszystkich wierszy tabeli zwraca funkcja agregująca COUNT(*), użyta w zapytaniu SELECT COUNT(*) FROM Koty. Gwiazdka oznacza „policz wszystkie wiersze”, niezależnie od wartości w kolumnach (także te z NULL). Dlatego poprawne jest SELECT COUNT(*) FROM Koty.

Pytanie 25

W HTML-u utworzono formularz. Jaki efekt działania poniższego kodu zostanie pokazany przez przeglądarkę, jeśli w drugie pole użytkownik wprowadził tekst "ala ma kota"?

<form>
    <select>
        <option value="v1">Kraków</option>
        <option value="v2">Poznań</option>
        <option value="v3">Szczecin</option>
    </select><br>
    <input type="password" />
</form>
Ilustracja do pytania
A. A
B. C
C. B
D. D
Odpowiedź B jest prawidłowa, ponieważ pokazuje typowy sposób renderowania formularza HTML z elementem wyboru i polem hasła w przeglądarce. W kodzie HTML widzimy element select z trzema opcjami wyboru. Po zaznaczeniu jednej z opcji, jak Kraków, tworzy się rozwijane menu, które jest widoczne na obrazie jako pole z wybraną wartością. Drugim elementem formularza jest pole input typu password. Ten typ pola zamienia wpisany tekst na znaki maskujące, takie jak kropki lub gwiazdki, co widzimy na obrazie w odpowiedzi B. To jest standardowe zachowanie przeglądarek w przypadku pól hasła, mające na celu ochronę prywatności. W kodzie HTML nie ma elementów typu checkbox ani radio, co eliminowałoby inne prezentacje danych, takie jak checkboxy czy przyciski radiowe. Dobrą praktyką jest używanie pól hasła w formularzach tam, gdzie wymagane jest wprowadzenie danych, które powinny być chronione. Odpowiednie użycie elementów HTML zwiększa użyteczność i bezpieczeństwo aplikacji internetowej i jest zgodne z konwencjami projektowania UI.

Pytanie 26

Aby dodać wpis do tabeli Pracownicy, konieczne jest użycie polecenia SQL

A. INSERT (Jan), (Kowalski) INTO TABLE Pracownicy;
B. INSERT VALUES Pracownicy INTO (Jan, Kowalski);
C. INSERT VALUES (Jan; Kowalski) INTO Pracownicy;
D. INSERT INTO Pracownicy VALUES ("Jan", "Kowalski");
Odpowiedź "INSERT INTO Pracownicy VALUES ("Jan", "Kowalski");" jest poprawna, ponieważ jest zgodna z podstawową składnią języka SQL służącego do dodawania nowych rekordów do tabeli. Polecenie INSERT INTO jest używane w celu wstawienia nowych danych do określonej tabeli w bazie danych, a wartości, które mają zostać dodane, umieszczane są w nawiasach, oddzielone przecinkami. W tym przypadku dodajemy dwa pola: imię oraz nazwisko pracownika. Wartości są otoczone cudzysłowami, co jest wymagane dla typów danych tekstowych. Taki zapis jest zgodny z normami SQL i jest najlepszą praktyką, gdyż zapewnia jasność i jednoznaczność operacji. Przykładowo, w rzeczywistych aplikacjach zarządzania danymi w firmach, często spotykamy się z sytuacjami, gdzie dodawanie nowych pracowników do bazy danych jest rutynowym zadaniem, a zrozumienie poprawnej składni SQL jest kluczowe dla efektywnej pracy. Warto również pamiętać, że korzystanie z parametrów w zapytaniach SQL w aplikacjach produkcyjnych zwiększa bezpieczeństwo danych i minimalizuje ryzyko ataków typu SQL Injection.

Pytanie 27

Rezultatem wykonania podanego zapytania SQL jest

SELECT count(*) FROM Uczniowie WHERE srednia = 5;
A. Średnia ocen wszystkich uczniów.
B. Suma ocen uczniów, których średnia ocen wynosi 5.
C. Liczba uczniów, którzy mają średnią ocen równą 5.
D. Całkowita liczba uczniów.
Zapytanie SQL, które zostało przedstawione, używa funkcji `COUNT(*)` w celu zliczenia wszystkich wierszy w tabeli `Uczniowie`, które spełniają określone kryterium w klauzuli `WHERE`. W tym przypadku kryterium to jest `srednia = 5`. Oznacza to, że zapytanie zlicza wszystkich uczniów, których średnia ocen wynosi dokładnie 5. Takie użycie `COUNT(*)` jest zgodne ze standardami SQL, gdzie funkcja ta służy do zliczania wszystkich wierszy w zbiorze wyników, które spełniają dane warunki. W praktyce, uzyskanie liczby uczniów z określoną średnią może być przydatne w analizie statystycznej lub raportowaniu wyników akademickich. Zrozumienie, jak korzystać z `COUNT(*)` w połączeniu z różnymi warunkami `WHERE`, jest kluczowe dla efektywnego zarządzania i analizowania danych w bazach danych SQL. Dzięki temu można wydobywać konkretne informacje, które wspierają podejmowanie decyzji w edukacji i zarządzaniu danymi.

Pytanie 28

Kod przedstawiony poniżej został napisany w języku JavaScript. W zdefiniowanym obiekcie metoda to element o nazwie

 var obj1 = {
    czescUlamkowa: 10,
    czescCalkowita: 20,
    oblicz: function () { ... }
}
A. czescUlamkowa
B. oblicz
C. czescCalkowita
D. obj1
Odpowiedź 'oblicz' jest poprawna, ponieważ w przedstawionym kodzie JavaScript to właśnie ta właściwość jest metodą obiektu 'obj1'. Metoda to funkcja zdefiniowana w kontekście obiektu, która może operować na danych przechowywanych w tym obiekcie. W tym przypadku, 'oblicz' definiuje funkcję, której szczegóły nie zostały pokazane (zaznaczone jako '…'), ale można domyślić się, że jej zadaniem jest wykonanie pewnych operacji na wartościach 'czescUlamkowa' i 'czescCalkowita'. Praktyczne zastosowanie metod obiektowych polega na umożliwieniu organizacji kodu w sposób, który łączy dane i operacje na tych danych, co jest zgodne z zasadami programowania obiektowego. Dzięki temu kod staje się bardziej czytelny, łatwiejszy w utrzymaniu i rozwoju. Dobre praktyki w JavaScript podkreślają znaczenie metod w obiektach, co pozwala na lepsze modelowanie rzeczywistych problemów, jak na przykład obliczanie wartości matematycznych w aplikacjach webowych, gdzie metody obiektowe zapewniają modularność i reusability kodu.

Pytanie 29

Jak należy prawidłowo udokumentować wzorcowanie pola nazwa we fragmencie kodu JavaScript?

function validateForm(Form)
{
reg=/^\[1-9\]*[A-ZŻŹĘĄĆŚÓŁŃ]{1}[a-zżźćńółęąś]{2,}$/;
wyn = Form.nazwa.value.match(reg);
if (wyn == null) {
    alert("Proszę podać poprawną nazwę");
    return false;
}
return true;
}
A. /* Pole nazwa musi składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i dwóch małych liter. */
B. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
C. /* Pole nazwa powinno składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
D. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
Odpowiedź druga jest poprawna, ponieważ dokładnie opisuje wzorzec walidacji użyty w kodzie JavaScript. Wyrażenie regularne określa, że pole nazwa może zaczynać się od dowolnej liczby cyfr od 1 do 9, co oznacza, że cyfra 0 jest wykluczona, co jest zgodne z opisem. Następnie musi wystąpić jedna duża litera, co jest również zgodne z wymogiem wzorca. Kolejnym wymogiem jest wystąpienie co najmniej dwóch małych liter, co także jest zgodne z przedstawionym wzorcem. Poprawna i precyzyjna dokumentacja kodu ma kluczowe znaczenie dla utrzymania oraz dalszego rozwoju oprogramowania. Dobrze udokumentowane wyrażenia regularne pozwalają na lepsze zrozumienie logiki walidacji i ułatwiają pracę zespołom deweloperskim. Warto również zauważyć, że stosowanie wyrażeń regularnych w walidacji danych wejściowych jest standardową praktyką w branży IT, szczególnie w aplikacjach webowych, gdzie dane użytkowników wymagają szczegółowego sprawdzania pod kątem poprawności i bezpieczeństwa. Dzięki temu można uniknąć potencjalnych błędów i ataków wynikających z niewłaściwie przetworzonych danych.

Pytanie 30

Została zaprezentowana tabela o nazwie konta. Aby obliczyć liczbę rejestracji w poszczególnych latach oraz wyświetlić te wartości razem z rokiem rejestracji, należy wykonać zapytanie

A. ```SELECT COUNT(rejestracja) FROM konta JOIN rejestracja ON id;```
B. ```SELECT COUNT(rejestracja) FROM konta GROUP BY rejestracja;```
C. ```SELECT rejestracja, COUNT(rejestracja) FROM konta;```
D. ```SELECT rejestracja, COUNT(rejestracja) FROM konta GROUP BY rejestracja;```
Aby policzyć, ile rejestracji dokonano w poszczególnych latach, musimy użyć funkcji agregującej SQL, która umożliwia grupowanie wyników według określonych kryteriów. Odpowiedź 4: 'SELECT rejestracja, COUNT(rejestracja) FROM konta GROUP BY rejestracja;' wykorzystuje funkcję COUNT(), która zlicza liczbę wystąpień każdej wartości w kolumnie 'rejestracja'. Klauzula GROUP BY jest niezbędna, aby wynikiem zapytania było grupowanie danych według lat rejestracji. Jest to zgodne z dobrymi praktykami, które zalecają użycie GROUP BY z funkcjami agregującymi do zliczania i analizy danych w bazach danych. Praktyka ta pozwala na efektywną agregację i prezentację danych, co jest przydatne w raportowaniu i analizie. Użycie GROUP BY zapewnia również zoptymalizowane operacje na dużych zbiorach danych, co jest kluczowe w systemach zarządzania bazami danych. Poprzez takie podejście, można generować raporty i wglądy, które wspierają decyzje biznesowe.

Pytanie 31

Na podstawie przedstawionego kodu w języku JavaScript można powiedzieć, że alert nie zostanie wyświetlony, ponieważ

var x = 10;
switch(x) {
    case "10": alert("Test instrukcji switch");
}
A. W instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x.
B. Nie zastosowano instrukcji break.
C. Nie zastosowano wyrażenia default.
D. Wartość zmiennej x nie została zdefiniowana przed instrukcją switch.
Super, twoja odpowiedź jest prawidłowa! Wybierając odpowiedź 'w instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x', zrozumiałeś istotny punkt w porównywaniu wartości w JavaScript. W przeciwieństwie do wielu innych języków, porównania w JavaScript są typowo 'strict comparison'. Oznacza to, że pod uwagę brane są zarówno wartość, jak i typ danych. W naszym przypadku, zmienna x jest liczbą 10, podczas gdy w instrukcji case porównywana jest z ciągiem znaków '10'. Mimo, że obie reprezentują tę samą wartość, są różnymi typami danych. Dlatego też warunek nie jest spełniony i alert nie zostanie wyświetlony. To jest bardzo ważne do zapamiętania podczas pracy z JavaScript, ponieważ może prowadzić do nieoczekiwanych wyników. Pamiętaj zawsze o typach danych podczas korzystania z instrukcji switch i case w JavaScript.

Pytanie 32

Programista stworzył pętlę w języku C++, która miała za zadanie obliczyć wynik 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny, gdyż

int a = 1;
for (int i=1; i < 5; i++)
{
    a = a * i;
}
cout << a;
Ilustracja do pytania
A. zmienna i w pętli powinna być rozpoczynana od 0, a nie od 1
B. zmienna a powinna być początkowo ustawiona na 0 zamiast 1
C. w drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5
D. zmienna i pętli powinna być zmniejszana, a nie zwiększana
Odpowiedź jest prawidłowa, ponieważ pętla powinna przebiegać przez wszystkie liczby od 1 do 5, aby obliczyć wartość 5! czyli 120. W kodzie pętla for zaczyna się od wartości i=1 i kontynuuje, dopóki i jest mniejsze niż 5, co oznacza, że nie uwzględnia liczby 5. Zmiana warunku na i<6 powoduje, że pętla wykona się pięć razy dla wartości i=1, 2, 3, 4, 5. To zgodne z matematyczną definicją silni, gdzie należy przemnożyć wszystkie liczby całkowite od 1 do n. Wpisując warunek i<6, kod stanie się bardziej zgodny z dobrymi praktykami programowania, które zalecają jasne i jednoznaczne warunki zakończenia pętli. Prawidłowe obliczenie silni jest częstym zadaniem w programowaniu i stanowi fundament dla bardziej zaawansowanych algorytmów liczbowych takich jak algorytmy rekurencyjne. Zrozumienie iteracyjnego i rekurencyjnego podejścia do tego problemu rozwija umiejętności logicznego myślenia i projektowania algorytmów. Takie zrozumienie jest kluczowe zwłaszcza w dziedzinie analizy algorytmów i optymalizacji kodu.

Pytanie 33

Do czego służy debugger?

A. do sprawdzania wydajności programu
B. do wyszukiwania błędów w kodzie programu
C. do optymalizacji zużycia pamięci
D. do analizy właściwości oprogramowania
Debugger to narzędzie do WYSZUKIWANIA BŁĘDÓW w kodzie - pozwala wykonywać program krok po kroku, wstawiać pułapki (breakpointy) i podglądać wartości zmiennych w trakcie działania. Dlatego debugger służy do wyszukiwania błędów w kodzie programu.

Pytanie 34

Co robi w SQL polecenie INSERT INTO?

A. wprowadza dane (nowy wiersz) do tabeli
B. dodaje kolumny do tabeli
C. modyfikuje istniejące rekordy
D. tworzy tabelę
Polecenie INSERT INTO wprowadza do tabeli nowy wiersz z danymi, np. INSERT INTO osoby (imie) VALUES ("Ala"). Dlatego INSERT INTO wprowadza nowy wiersz do tabeli.

Pytanie 35

Ile razy należy wprowadzić instrukcję warunkową, aby zrealizować przedstawiony algorytm w danym języku programowania?

Ilustracja do pytania
A. Cztery razy.
B. Raz.
C. Dwa razy.
D. Trzy razy.
Instrukcja warunkowa jest kluczowym elementem w programowaniu, pozwalającym na podejmowanie decyzji w trakcie wykonywania programu. W algorytmie przedstawionym na diagramie, widzimy dwie sytuacje, w których możliwe są różne ścieżki działania w zależności od spełnienia określonych warunków. Każda z tych sytuacji wymaga użycia instrukcji warunkowej w kodzie. W praktyce, oznacza to konieczność zapisania instrukcji takich jak if-else dwa razy, aby poprawnie odwzorować logikę algorytmu. Jest to zgodne ze standardami programowania, które promują klarowność i czytelność kodu. Stosowanie instrukcji warunkowych umożliwia optymalizację przepływu sterowania, co jest istotne dla efektywności i wydajności programów. Przykład z życia codziennego to system zarządzania ruchem sygnalizacji świetlnej, który używa wielu instrukcji warunkowych do reagowania na zmienne warunki ruchu. Zrozumienie, gdzie i jak zastosować instrukcje warunkowe, jest kluczowe dla tworzenia elastycznych i skalowalnych rozwiązań programistycznych. Ważne jest także stosowanie dobrych praktyk, takich jak unikanie nadmiernego zagnieżdżania instrukcji, co wpływa na czytelność i utrzymywalność kodu.

Pytanie 36

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. zastosować pętlę z poleceniem mysqli_fetch_row
B. zaindeksować zmienną tab, tab[0] to pierwsze imię
C. użyć polecenia mysql_fetch
D. pokazać zmienną $db
Prawidłowa odpowiedź dotyczy zastosowania pętli z poleceniem mysqli_fetch_row. W języku PHP przy pracy z bazą danych MySQL wykorzystujemy bibliotekę mysqli, która oferuje funkcje pozwalające na manipulację danymi. Funkcja mysqli_query wykonuje zapytanie SQL na połączeniu z bazą danych, zwracając wynik w postaci obiektu typu mysqli_result. Aby pobrać wszystkie wiersze wyników, konieczne jest zastosowanie pętli, która iteruje przez każdy wiersz zwracany przez zapytanie. Funkcja mysqli_fetch_row jest używana do pobrania kolejnego wiersza z wyniku jako tablicy numerycznej. Przykładowy kod mógłby wyglądać następująco while ($row = mysqli_fetch_row($tab)) { echo $row[0]; } co pozwala na wyświetlenie imion wszystkich osób poniżej 18 roku życia. Praktyczne podejście polega na iteracyjnej obsłudze wyników zapytań, co jest zgodne z branżowymi standardami. Takie rozwiązanie umożliwia dynamiczne przetwarzanie danych w czasie rzeczywistym zwiększając elastyczność aplikacji. Dodatkowo warto pamiętać o odpowiednim zarządzaniu zasobami, takim jak zamknięcie połączenia z bazą danych po zakończeniu operacji. To podejście podkreśla znaczenie efektywnego zarządzania danymi w aplikacjach webowych.

Pytanie 37

<?php  
$pi = 3.14;
var_dump($pi);
?>
Jakie będzie wyjście po wykonaniu przedstawionego kodu PHP?
A. int(314)
B. string(3)
C. float(3.14)
D. object(3.14)
Odpowiedź 'float(3.14)' jest poprawna, ponieważ w kodzie PHP zmienna \$pi została zainicjalizowana jako liczba zmiennoprzecinkowa z wartością 3.14. Funkcja var_dump() służy do wyświetlania typu oraz wartości zmiennej, a w przypadku liczby zmiennoprzecinkowej wynik będzie wskazywał na typ float. Warto zauważyć, że PHP automatycznie rozpoznaje typy zmiennych, a liczby zmiennoprzecinkowe są powszechnie używane w obliczeniach wymagających precyzji, takich jak matematyka finansowa czy fizyka. W kontekście programowania w PHP, dobrym zwyczajem jest korzystanie z funkcji var_dump() podczas debugowania kodu, aby mieć jasny obraz typów danych i ich wartości w danym momencie. W praktyce, dobrze jest również implementować typowanie w PHP 7 i nowszych, co umożliwia lepszą kontrolę nad typami zmiennych, co z kolei prowadzi do bardziej stabilnego i czytelnego kodu. Warto także zwrócić uwagę na zasadę, że odpowiednie typy danych są kluczowe dla wydajności i niezawodności aplikacji, co czyni tę wiedzę szczególnie istotną dla każdego programisty."

Pytanie 38

Wskaż, na czym polega błąd w kodzie napisanym w języku C++.

char str1[30] = 'Ala ma kota'; printf("%s", str1);
A. Napis powinien mieć dokładnie 30 znaków.
B. W funkcji printf nie można używać formatowania %s.
C. Do funkcji printf przekazano zbyt mało argumentów.
D. Napis powinien być umieszczony w cudzysłowach.
Wskaźnik 'str1' jest zdefiniowany jako tablica znaków, która ma przechowywać łańcuch znaków. W C++ łańcuchy znaków muszą być umieszczone w cudzysłowach, aby kompilator mógł je poprawnie zinterpretować jako dane typu string. W przypadku przypisania wartości 'Ala ma kota' bez cudzysłowów, kompilator traktuje to jako pojedynczy znak, co prowadzi do błędu. Aby poprawnie zainicjować tablicę 'str1', należy użyć: char str1[30] = "Ala ma kota";. Taki zapis jest zgodny z regułami C++ i zapewnia, że napis zostanie potraktowany jako łańcuch znaków. Ponadto, dobrym zwyczajem jest zapewnienie, że tablica ma wystarczającą ilość miejsca na znak null ('\0'), który oznacza koniec łańcucha, co w tym przypadku jest zapewnione przez zdefiniowanie tablicy o rozmiarze 30. Warto również pamiętać, że stosowanie cudzysłowów zamiast apostrofów dla łańcuchów znaków jest podstawową zasadą programowania w C++.

Pytanie 39

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

A. sprawdzenie, czy liczba a jest nieparzysta; w przypadku pozytywnej odpowiedzi, jej wypisanie
B. wypisanie wszystkich liczb w przedziale od a do b
C. zwrócenie parzystych wartości liczb od a do b
D. wypisanie liczb parzystych w zakresie 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 40

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

<form>
  <select>
    <option value="v1">Kraków</option>
    <option value="v2">Poznań</option>
    <option value="v3">Szczecin</option>
  </select> <br>
  <input type="password" />
</form>


Kraków
Poznań
Szczecin
Efekt 1

Efekt 2

Efekt 3
Kraków
Poznań
Szczecin
Efekt 4
A. Efekt 3.
B. Efekt 2.
C. Efekt 4.
D. Efekt 1.
Odpowiedź 'Efekt 2' jest poprawna, ponieważ odpowiada ona opisowi działania kodu HTML formularza. W kodzie HTML formularza, mamy pole wyboru miasta z opcjami 'Kraków', 'Poznań', 'Szczecin', a także pole hasła. W momencie, kiedy użytkownik wpisuje do pola hasła wartość 'ala ma kota', przeglądarka reprezentuje te dane jako ciąg znaków zastępczych, czyli kropeczki. Efekt 2 pokazuje rozwinięte menu wyboru z zaznaczonym 'Kraków' oraz pole hasła z kropeczkami, co jest zgodne z opisanym działaniem formularza przy wpisaniu 'ala ma kota' do pola hasła. Jest to zgodne ze standardami tworzenia formularzy w HTML, gdzie pola hasła są zazwyczaj reprezentowane jako kropeczki dla poprawienia bezpieczeństwa danych użytkownika. Dodatkowo, HTML pozwala na tworzenie różnego rodzaju pól formularzu, które mogą przyjmować różne wartości, co daje duże możliwości personalizacji formularza.