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: 12 czerwca 2026 14:29
  • Data zakończenia: 12 czerwca 2026 14:49

Egzamin niezdany

Wynik: 19/40 punktów (47,5%)

Wymagane minimum: 20 punktów (50%)

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

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

A. pobieranie i zmianę elementów strony, która jest wyświetlana przez przeglądarkę
B. przeprowadzanie operacji na zmiennych zawierających liczby
C. manipulację łańcuchami zdefiniowanymi w kodzie
D. przesyłanie danych formularzy bezpośrednio do bazy danych
Dobra robota! Odpowiedź jest poprawna, bo to właśnie DOM, czyli Document Object Model, pozwala programistom na zmianę struktury i stylu dokumentów HTML i XML. Dzięki DOM w JavaScript można na bieżąco zmieniać treść i układ strony bez konieczności jej przeładowania. Weźmy na przykład taki przypadek: chcemy zmienić tekst w elemencie <h1>. Robimy to, wybierając ten element metodą `document.getElementById()` i przypisując nową wartość do `innerHTML`. Standardy W3C mówią, jak to wszystko ma działać, dzięki czemu DOM jest uznawany w branży. Umiejętność manipulacji DOM jest mega ważna przy tworzeniu interaktywnych aplikacji webowych, jak różne formularze, które pozwalają użytkownikom dodawać i edytować dane. Dobrze wykorzystany DOM sprawia, że aplikacje są szybsze i bardziej responsywne, co jest kluczowe w nowoczesnym programowaniu front-end.

Pytanie 2

W języku PHP do zmiennej a wprowadzono tekst, w którym wielokrotnie występuje fraza Kowalski. Jakim poleceniem można jednocześnie zamienić wszystkie pojawienia się słowa Kowalski na słowo Nowak w zmiennej a?

A. $a = str_replace('Kowalski', 'Nowak', $a);
B. $a = str_replace('Nowak', 'Kowalski', $a);
C. $a = str_rep('Kowalski', 'Nowak', $a);
D. $a = str_replace('Nowak', 'Kowalski');
Odpowiedź $a = str_replace('Kowalski', 'Nowak', $a); jest poprawna, ponieważ wykorzystuje funkcję str_replace, która jest standardowym narzędziem w PHP do zamiany wszystkich wystąpień określonego ciągu znaków na inny w danym tekście. W tym przypadku zamieniamy słowo 'Kowalski' na 'Nowak' wewnątrz zmiennej $a. Funkcja str_replace działa w sposób, który jest zgodny z dobrymi praktykami programistycznymi, pozwalając na prostą i efektywną manipulację łańcuchami tekstowymi. Przykład zastosowania: jeśli $a = 'Jan Kowalski jest programistą. Kowalski ma doświadczenie.', to po wykonaniu powyższego polecenia zmienna $a stanie się 'Jan Nowak jest programistą. Nowak ma doświadczenie.'. Warto pamiętać, że str_replace jest wrażliwa na wielkość liter, co oznacza, że najlepiej stosować ją w kontekście, gdzie zapisy są jednolite. Dodatkowo, funkcja ta zwraca nowy łańcuch znaków, co oznacza, że oryginalna zmienna $a pozostaje niezmieniona, co jest zgodne z zasadami programowania funkcyjnego.

Pytanie 3

Etap, w którym identyfikuje się oraz eliminuje błędy w kodzie źródłowym programów, to

A. kompilowanie
B. normalizacja
C. debugowanie
D. standaryzacja
Debugowanie to proces identyfikacji, analizy i eliminacji błędów w kodzie źródłowym programów komputerowych. Jest to kluczowy etap w cyklu życia oprogramowania, który zapewnia, że aplikacje działają zgodnie z założeniami projektowymi. W praktyce debugowanie może obejmować różne techniki, takie jak stosowanie punktów przerwania, śledzenie wartości zmiennych czy analiza stosu wywołań. Przykładowo, programista może użyć narzędzi debugujących, takich jak GDB dla programów w C/C++ lub wbudowane debugery w IDE, takie jak Visual Studio czy Eclipse. Debugowanie jest również związane z dobrymi praktykami, jak testowanie jednostkowe i integracyjne, które pozwalają na wczesne wykrycie błędów. Zrozumienie i umiejętność efektywnego debugowania jest niezbędna dla każdego programisty, aby tworzyć wysokiej jakości, niezawodne i wydajne oprogramowanie. Warto również podkreślić znaczenie dokumentacji oraz korzystania z systemów kontroli wersji, takich jak Git, które pozwalają śledzić zmiany w kodzie i ułatwiają proces debugowania.

Pytanie 4

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. B
B. A
C. D
D. C
Pozostałe odpowiedzi są niepoprawne z kilku powodów związanych z różnym renderowaniem elementów formularza HTML. Odpowiedź A pokazuje zastosowanie checkboxów, które są używane do wyboru wielu opcji z zestawu, ale nie są obecne w podanym kodzie HTML. Kod formularza zawiera element select, co sugeruje użycie rozwijanego menu, a nie checkboxów. Tym samym, A jest niepoprawna, ponieważ nie odzwierciedla struktury kodu. W odpowiedzi C widoczny jest poprawny element select, jednak pole hasła nie jest zamaskowane co nie jest zgodne z typowym zachowaniem pola input typu password w przeglądarkach. Hasła wprowadzane do formularzy są z reguły maskowane w celu ochrony danych użytkownika. Odpowiedź D przedstawia przyciski radiowe, które są stosowane, gdy użytkownik może wybrać tylko jedną opcję z grupy, co również nie odpowiada strukturze kodu HTML gdzie użyto rozwijanego menu poprzez element select. W HTMLu nie ma przycisków radiowych, co czyni tę odpowiedź niepoprawną. Typowe błędy myślowe prowadzące do wyboru nieprawidłowych odpowiedzi obejmują nieznajomość standardowego odwzorowania elementów HTML w przeglądarkach oraz brak zrozumienia różnicy między rodzajami pól wyboru i ich zastosowaniami. Znajomość tych podstawowych zasad pozwala na prawidłowe zrozumienie działania kodu HTML i jego reprezentacji w interfejsie użytkownika.

Pytanie 5

Dostępna jest tabela programisci, która zawiera pola: id, nick, ilosc_kodu, ocena. Pole ilosc_kodu wskazuje liczbę linii kodu stworzonych przez programistę w danym miesiącu. W celu obliczenia łącznej liczby linii kodu napisanych przez wszystkich programistów, należy zastosować poniższe polecenie

A. SELECT COUNT(programisci) FROM ilosc_kodu;
B. SELECT MAX(ilosc_kodu) FROM programisci;
C. SELECT SUM(ilosc_kodu) FROM programisci;
D. SELECT SUM(ocena) FROM ilosc_kodu;
Aby obliczyć sumę linii kodu napisanych przez wszystkich programistów w tabeli 'programisci', poprawne jest użycie zapytania SQL: SELECT SUM(ilosc_kodu) FROM programisci. Zapytanie to wykorzystuje funkcję agregującą SUM(), która sumuje wartości w określonej kolumnie, w tym przypadku 'ilosc_kodu'. Kolumna ta zawiera liczbę linii kodu napisanych przez każdego programistę w danym miesiącu. Przykładem zastosowania tego zapytania może być sytuacja, w której chcemy określić całkowitą produktywność zespołu programistycznego w danym okresie czasu. Możemy rozszerzyć to zapytanie, dodając klauzulę WHERE, aby zsumować tylko linie kodu z określonego miesiąca lub roku. Warto również pamiętać o standardach SQL oraz zasadach normalizacji baz danych, które zalecają unikanie redundancji danych i umożliwiają efektywne przetwarzanie zapytań. Dzięki poprawnym praktykom można zapewnić optymalizację wydajności bazy danych oraz ułatwić późniejsze analizy danych.

Pytanie 6

Jakie polecenie umożliwia pokazanie konfiguracji serwera PHP, w tym między innymi informacji o: wersji PHP, systemie operacyjnym serwera oraz wartościach przedefiniowanych zmiennych?

A. phpcredits();
B. phpinfo();
C. echo phpversion();
D. print_r(ini_get_all());
Funkcja phpinfo() jest najczęściej używanym narzędziem w ekosystemie PHP do wyświetlania szczegółowych informacji dotyczących konfiguracji serwera PHP. Umożliwia uzyskanie dostępu do kluczowych danych, takich jak wersja PHP, informacje o systemie operacyjnym, wartości przedefiniowanych zmiennych, a także wiele innych ustawień konfiguracyjnych. Dzięki temu narzędziu deweloperzy mogą szybko zdiagnozować problemy związane z konfiguracją, a także zrozumieć, jakie moduły PHP są zainstalowane i aktywne. Przykładowo, uruchamiając skrypt z tą funkcją na stronie internetowej, automatycznie generowany jest szczegółowy raport w formie HTML, co ułatwia odczyt i zrozumienie. Standardy branżowe wskazują, że korzystanie z phpinfo() powinno być ograniczone do środowisk rozwijających, ponieważ ujawnia to wiele informacji o serwerze, co w kontekście bezpieczeństwa może stanowić ryzyko. W praktyce, dobrze jest również stosować funkcję w lokalnych środowiskach deweloperskich, by monitorować i weryfikować zmiany w konfiguracji serwera podczas pracy nad projektem.

Pytanie 7

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

Ilustracja do pytania
A. n > 20
B. Wypisz n
C. n ← n + 5
D. Wykonaj podprogram sortowania tablicy t
Blok decyzyjny w diagramach przepływu jest kluczowym elementem algorytmów, ponieważ umożliwia podejmowanie decyzji na podstawie warunków logicznych. Reprezentowany jest przez romb i oznacza miejsce w algorytmie, gdzie następuje sprawdzenie warunku. W tym przypadku warunek to n > 20. Jeśli warunek zostanie spełniony, algorytm podąża jedną ścieżką, w przeciwnym razie inną. Jest to zgodne z praktykami programistycznymi, gdzie instrukcje warunkowe, takie jak if lub switch, kontrolują przepływ programu. Przykładowo, w systemach kontroli dostępu możemy użyć warunku n > 20 do sprawdzenia, czy użytkownik ma wystarczające uprawnienia, co jest zgodne z zasadami bezpieczeństwa IT. W systemach czasu rzeczywistego, takich jak kontrola jakości w produkcji, warunki te zapewniają, że błędy są wykrywane i obsługiwane odpowiednio, co jest kluczowe dla utrzymania standardów jakości. Wiedza o blokach decyzyjnych jest podstawą dla efektywnego projektowania algorytmów, co ma zastosowanie w szerokim zakresie technologii informatycznych, od baz danych po aplikacje mobilne.

Pytanie 8

Jak w JavaScript zmienić wartość WŁAŚCIWOŚCI CSS elementu (opisanego stylem)?

A.
document.getElementById(id).<atrybut> = <wartość>
B.
document.getElementById(id).style.<właściwość> = <wartość>
C.
document.getElementById(id).<właściwość> = <wartość>
D.
document.getElementById(id).innerHTML = <wartość>
Pozostałe zapisy nie ustawią stylu. Pominięcie style (odwołanie wprost do .color czy .<atrybut>) nie trafia we właściwości CSS. innerHTML podmienia ZAWARTOŚĆ elementu (HTML wewnątrz), a nie jego wygląd. Styl zmienia się przez element.style.<właściwość>.

Pytanie 9

W skrypcie JavaScript użyto metody DOM getElementsByClassName('akapit'). Ta metoda odniesie się do akapitu

A. <p id="akapit">akapit2</p>
B. <p href="/akapit">akapit3</p>
C. <p class="akapit">akapit4</p>
D. <p>akapit</p>
Selekcja elementów DOM na podstawie ich klas jest kluczowym aspektem w pracy z JavaScript, jednak nie wszystkie odpowiedzi w tym teście są poprawnie skonstruowane. Odpowiedzi takie jak <p>akapit</p>, <p id="akapit">akapit2</p> oraz <p href="/akapit">akapit3</p> mają istotne braki w kontekście wykorzystania metody getElementsByClassName. Element <p>akapit</p> nie ma przypisanej klasy, co uniemożliwia jego selekcję przez tę metodę. Ważne jest, aby pamiętać, że getElementsByClassName wymaga, aby elementy miały przypisaną klasę, a nie aby były zdefiniowane przez inne atrybuty. Z kolei <p id="akapit">akapit2</p> posiada identyfikator, a nie klasę, co również nie umożliwia jego odnalezienia przez tę metodę. Identyfikatory są unikalne w kontekście dokumentu HTML i są bardziej odpowiednie do selekcji z wykorzystaniem metody getElementById. Ostatnia odpowiedź <p href="/akapit">akapit3</p> jest niewłaściwa, ponieważ atrybut href nie jest przypisany do elementów typu p, co jest technicznie błędne. Tego rodzaju błędy mogą wynikać z nieporozumień dotyczących struktury DOM i atrybutów HTML, co jest kluczowe do efektywnego programowania w JavaScript. Właściwe rozumienie różnic między klasami, identyfikatorami i innymi atrybutami jest fundamentalne dla skutecznego zarządzania elementami w kodzie skryptowym.

Pytanie 10

Dla dowolnego a z zakresu (0,99) celem funkcji napisanej w języku JavaScript jest
function fun(a)
 {
    for(n=a; n <=100; n++)
    document.write(n);
    return(n);
 }

A. wypisanie liczb z zakresu a .. 100 oraz zwrócenie wartości zmiennej n
B. zwrócenie liczb z zakresu a .. 99
C. wypisanie liczb z zakresu a .. 99 oraz zwrócenie wartości 100
D. wypisanie wartości zmiennej a i zwrócenie wartości zmiennej n
Funkcja napisana w JavaScript przewiduje iterację w celu wypisania liczb z przedziału ustalonego przez zmienną 'a' do 100. W kodzie zastosowano pętlę for, która zaczyna się od wartości a, a kończy na 100. Wartość zmiennej 'n' jest używana jako iterator, zaczynając od 'a' i zwiększając się o 1 w każdym obiegu pętli, aż osiągnie 100. Warto zauważyć, że funkcja wykorzystuje metodę 'document.write()', która służy do zapisywania danych na stronie internetowej. Po zakończeniu iteracji funkcja zwraca wartość zmiennej 'n', co w kontekście tego zadania oznacza, że zwróci ona wartość 101, ponieważ po ostatniej iteracji n przekroczy wartość 100. Przykład użycia tej funkcji w praktyce może obejmować generowanie dynamicznych treści na stronach internetowych, które wymagają wyświetlenia zakresu wartości liczbowych. Warto również dodać, że zgodnie z aktualnymi standardami JavaScript, kod mógłby być bardziej elegancko zapisany, wykorzystując np. funkcję 'console.log()' zamiast 'document.write()', co jest bardziej zalecane w nowoczesnym podejściu do programowania w JavaScript.

Pytanie 11

Aby usunąć z bazy danych całą tabelę (wraz ze strukturą), należy użyć polecenia:

A.
TRUNCATE TABLE
B.
DROP TABLE
C.
UNIQUE
D.
DELETE
Do całkowitego usunięcia tabeli służy DROP TABLE. Polecenie kasuje zarówno dane, jak i definicję tabeli - po jego wykonaniu obiekt znika z bazy wraz z kolumnami, indeksami i powiązanymi ograniczeniami. Należy do języka DDL (definicji danych) i jest nieodwracalne, dlatego stosuje się je rozważnie, często po wykonaniu kopii zapasowej. Gdy chcemy usunąć tylko zawartość, a zachować strukturę, używamy innych poleceń - ale do skasowania całej tabeli właściwe jest DROP TABLE.

Pytanie 12

Tabele: Studenci, Zapisy, Zajecia są powiązane relacją. Aby wybrać jedynie nazwiska studentów oraz odpowiadające im idZajecia dla studentów z grupy 15, należy wydać kwerendę

Ilustracja do pytania
A. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
B. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;
C. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
D. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;
Pierwszym istotnym problemem w niepoprawnych zapytaniach jest brak prawidłowego połączenia tabel na właściwych kluczach. W relacyjnych bazach danych, aby sensownie połączyć dane z różnych tabel, należy wykorzystać klucze główne i obce, które jasno definiują powiązania między obiektami. Jeśli zapomni się o warunku JOIN albo połączy się tabele po błędnych kolumnach (na przykład próbując połączyć idStudenta z idZajecia lub pomijając warunek ON), baza zwróci błędne wyniki lub wręcz nie pozwoli wykonać zapytania. To typowy błąd początkujących, którzy nie zawsze rozumieją, jak bardzo ważne jest precyzyjne określenie relacji – w rzeczywistych bazach danych relacji jest wiele, a niewłaściwe powiązanie może prowadzić do powstawania kartuzjańskiego iloczynu, czyli powielania danych bez rzeczywistego sensu. Brak filtru WHERE grupa = 15 skutkuje wyciągnięciem danych dla wszystkich studentów, co może być ogromnym problemem przy dużych bazach i całkowicie rozmija się z celem kwerendy. Moim zdaniem, wiele osób zapomina, że filtrowanie to podstawa – bez tego, szczególnie przy produkcyjnych bazach, można zarówno błędnie interpretować wyniki, jak i mocno przeciążyć system niepotrzebnym ruchem. Takie błędy wynikają często z braku systematycznego podejścia do projektowania zapytań i nieuważnego czytania struktury tabel. Warto od razu przyzwyczajać się do pracy zgodnie z konwencjami, bo to przekłada się na bezpieczeństwo, wydajność i poprawność działania całego systemu. W praktyce – nawet drobny błąd w składni JOIN lub brak filtrowania na kluczowej kolumnie może wywołać lawinę problemów, zwłaszcza gdy kwerenda staje się częścią większej aplikacji biznesowej lub raportu dla zarządu.

Pytanie 13

Która deklaracja w C++ przyjmuje argument typu RZECZYWISTEGO i zwraca wynik typu CAŁKOWITEGO?

A.
int fun1(float a);
B.
float fun1(void a);
C.
void fun1(int a);
D.
float fun1(int a);
Typ przed nazwą to typ ZWRACANY, a w nawiasie jest typ ARGUMENTU. void fun1(int a) nic nie zwraca i bierze całkowity. float fun1(int a) ma odwrotnie - zwraca rzeczywisty, bierze całkowity. float fun1(void a) jest błędna. Zwraca całkowity, bierze rzeczywisty: int fun1(float a);.

Pytanie 14

Które dane zostaną wybrane w wyniku działania kwerendy na przedstawionych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";
idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Tylko identyfikator równy 8.
B. Wszystkie identyfikatory.
C. Brak danych.
D. Identyfikatory równe 7 oraz 8.
W analizowanej kwerendzie zastosowanie operatora LIKE z wzorcem '2%4' skutkuje koniecznością zrozumienia, jak działają operatory porównania w SQL. Odpowiedzi sugerujące puste dane lub zwracające wszystkie id są błędne, ponieważ nie uwzględniają specyfiki zastosowanego wzorca. Mówiąc o pustych danych, zakłada się, że żaden z rekordów nie spełniałby kryteriów, co jest fałszywe, gdyż odpowiednie rekordy istnieją. Z kolei odpowiedź dotycząca wszystkich id ignoruje kluczową funkcję operatora LIKE, który pozwala na filtrowanie danych na podstawie rozpoznawania wzorców, a nie zwracanie całości. Odpowiedzi wskazujące na konkretne id, takie jak 8 lub kombinacje 7 i 8, nie uwzględniają logicznego rozumienia, że kwerenda zwraca wyniki spełniające określone kryteria. Ważne jest, aby pamiętać, że w analizach SQL kluczowe jest zrozumienie, jak operatory wpływają na wyniki, co może być łatwo pominięte w przypadku niewłaściwej interpretacji syntaktycznej zapytania.

Pytanie 15

W JavaScript zapis a++; można przedstawić w inny sposób jako

A. a = a & 1
B. a << 1
C. a = a + 1
D. 1 += a
Wszystkie pozostałe opcje są nieprawidłowe z kilku powodów. Odpowiedź 'a = a & 1;' wykorzystuje operator bitowy AND, który jest stosowany do porównywania bitów dwóch liczb. Ten zapis jest niepoprawny, ponieważ nie realizuje powiększenia wartości zmiennej, a raczej przekształca jej wartość na podstawie bitowego porównania z 1, co nie ma sensu w kontekście inkrementacji. Odpowiedź '1 += a;' jest również błędna, ponieważ nie można używać stałej liczby po lewej stronie operatora przypisania. Dodatkowo, powinna być to operacja, która przypisuje wartość do zmiennej, a nie odwrotnie. W JavaScript nie można modyfikować stałych w ten sposób. Odpowiedź 'a << 1;' stosuje operator bitowego przesunięcia w lewo, co także nie ma związku z inkrementacją. Operator ten przesuwa bity liczby 'a' w lewo o jeden, co jest równoważne mnożeniu przez 2, a nie dodawaniu 1. Użycie tych operatorów pokazuje typowe nieporozumienie dotyczące operatorów w JavaScript oraz ich zastosowań. W kontekście programowania kluczowe jest zrozumienie, które operatory spełniają określone funkcje, aby unikać nieporozumień i błędów w kodzie.

Pytanie 16

Aby wypisać tekst na stronie w języku PHP, należy użyć instrukcji:

A.
console.log()
B.
print_r()
C.
write()
D.
echo
Do wypisywania tekstu w PHP służy echo, na przykład echo "Witaj";. Wstawia ona podany tekst lub wartość zmiennej do generowanej strony. Podobnie działa print. Dlatego do wyświetlenia tekstu w PHP używa się echo.

Pytanie 17

Dzięki poleceniu ALTER TABLE można

A. skasować tabelę
B. zmieniać strukturę tabeli
C. usunąć rekord
D. zmieniać wartości rekordów
Niektóre odpowiedzi mogą wydawać się na pierwszy rzut oka sensowne, jednak po głębszej analizie widać, że są one błędne. Zmiana wartości rekordów nie jest możliwa przy użyciu polecenia ALTER TABLE. To zadanie realizuje się za pomocą polecenia UPDATE, które umożliwia modyfikację danych istniejących w tabeli. Tabela jest strukturą danych, która przechowuje rekordy, więc usunięcie tabeli odbywa się przy użyciu polecenia DROP TABLE, a nie ALTER TABLE. Podobnie, usunięcie pojedynczego rekordu w tabeli to operacja, którą wykonujemy przy pomocy polecenia DELETE. Zrozumienie różnic między tymi poleceniami jest kluczowe dla efektywnego zarządzania bazami danych. Często popełnianym błędem jest mylenie poleceń, co może prowadzić do niezamierzonych skutków, takich jak utrata danych czy naruszenie integralności bazy. Na przykład, użycie ALTER TABLE w kontekście dodawania kolumny, a następnie nieprzemyślane usunięcie kolumny za pomocą DELETE spowoduje, że nie tylko stracimy całą kolumnę, ale również naruszymy relacje w bazie danych. Dlatego ważne jest, aby znać właściwe komendy oraz ich zastosowania, aby unikać nieporozumień i błędów w przyszłości.

Pytanie 18

Liczba 0x142 zapisana w skrypcie JavaScript jest w postaci:

A. dwójkowej
B. szesnastkowej
C. ósemkowej
D. dziesiętnej
Pozostałe systemy mają inne oznaczenia. Liczby dziesiętne pisze się bez żadnego przedrostka, po prostu cyframi (np. 322). Liczby dwójkowe poprzedza 0b (np. 0b101), a ósemkowe - 0o. Przedrostek 0x jest zarezerwowany dla zapisu szesnastkowego, więc 0x142 to liczba w systemie szesnastkowym, dlatego ta odpowiedź jest poprawna.

Pytanie 19

Dla dowolnego a z przedziału (0, 99) zadaniem funkcji zapisanej w języku JavaScript jest

function fun1(a)
{
    for (n = a; n <= 100; n++)
        document.write(n);
    return n;
}
A. wypisanie liczb z przedziału a .. 100 i zwrócenie wartości zmiennej n
B. wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n
C. zwrócenie liczb z przedziału a .. 99
D. wypisanie liczb z przedziału a .. 99 i zwrócenie wartości 100
Wybrane przez Ciebie odpowiedzi są niepoprawne, gdyż nie odzwierciedlają w pełni działania pętli for w JavaScript. Pętla for jest używana do iterowania tyle razy, ile wynosi różnica między 100 a wartością argumentu a, wypisując każdą iterację. Następnie funkcja zwraca wartość o 1 większą niż warunek kończący pętlę (100), co wynosi 101. Błędem było zakładanie, że funkcja zwraca wartości w inny sposób. Przykładowo, jedna z nieprawidłowych odpowiedzi sugerowała, że funkcja zwraca liczby z przedziału a do 99 - jednakże zwracana jest liczba 101. Inna błędna odpowiedź sugerowała, że funkcja wypisuje wartość zmiennej a i zwraca wartość zmiennej n - jednakże wypisywane są liczby od a do 100, a zwracana jest wartość 101. Kolejnym błędem było zakładanie, że funkcja zwraca wartość 100 - co jest nieprawdą, gdyż funkcja zwraca wartość 101. Zrozumienie działania pętli for i funkcji zwracających wartości jest kluczowe dla programowania w JavaScript, dlatego warto poświęcić więcej czasu na praktykę i naukę tych konceptów.

Pytanie 20

Funkcją języka PHP tworzącą ciasteczko (cookie) jest:

A.
createcookie()
B.
echocookie()
C.
addcookie()
D.
setcookie()
Ciasteczko tworzy w PHP funkcja setcookie(), np. setcookie("jezyk", "pl", time()+3600) ustawia cookie o nazwie „jezyk”, wartości „pl” i ważności godzinę. Wysyła ją serwer w nagłówku odpowiedzi, dlatego setcookie() musi zostać wywołana PRZED jakimkolwiek wypisaniem treści strony. Przy kolejnych żądaniach przeglądarka odsyła ciasteczko, a odczytuje się je z tablicy $_COOKIE. Dlatego do utworzenia ciasteczka służy setcookie().

Pytanie 21

SELECT ocena FROM oceny WHERE ocena > 2 ORDER BY ocena;
Załóżmy, że istnieje tabela oceny zawierająca kolumny id, nazwisko, imię oraz ocena. Przykładowe zapytanie ilustruje:
A. selekcję.
B. rekurencję.
C. sumę.
D. łączenie.
Zapytanie przedstawione w pytaniu nie jest przykładem łączenia ponieważ nie występuje w nim klauzula JOIN która jest podstawowym narzędziem do łączenia tabel w bazach danych. Łączenie danych jest używane gdy potrzebujemy zintegrować informacje z różnych źródeł i polega na zestawieniu wierszy z dwóch lub więcej tabel na podstawie wspólnego klucza. Zamiast tego zapytanie używa klauzuli WHERE która służy do selekcji danych. Nie jest też przykładem rekurencji. Rekurencja w kontekście baz danych dotyczy wykonywania operacji powtarzających się w określonej sekwencji lub hierarchii co jest typowe dla struktur takich jak drzewa. Wiąże się to zwykle z użyciem zapytań zawierających takie konstrukcje jak WITH RECURSIVE w SQL co nie jest obecne w tym zapytaniu. Ponadto zapytanie nie jest przykładem sumy ponieważ nie zawiera funkcji agregujących takich jak SUM które służą do zliczania wartości w kolumnie. Suma jest używana do obliczeń statystycznych a nie do filtrowania danych na podstawie kryteriów logicznych jak to ma miejsce w przedstawionym przykładzie. Zrozumienie tych różnic jest kluczowe dla poprawnego formułowania zapytań i efektywnego wykorzystania systemów bazodanowych. Poprawne identyfikowanie mechanizmów w SQL pozwala efektywnie wykorzystać możliwości języka w analizie danych i zarządzaniu bazami co jest szczególnie istotne w profesjonalnych projektach IT. Zrozumienie logicznej struktury SQL i różnic między tymi koncepcjami jest kluczowe dla skutecznego i wydajnego wykorzystania baz danych w praktyce zawodowej i biznesowej.

Pytanie 22

Który zapis służy do zdefiniowania klucza obcego w MySQL?

A.
FOREIGN KEY(ID)
B.
PRIMARY KEY(ID)
C.
AUTO_INCREMENT(ID)
D.
UNIQUE KEY(ID)
AUTO_INCREMENT automatycznie numeruje pole, UNIQUE KEY wymusza unikalność, a PRIMARY KEY ustanawia klucz GŁÓWNY. Klucz OBCY definiuje FOREIGN KEY(ID).

Pytanie 23

W tabeli mieszkańcy zawierającej pola id, imie, nazwisko, ulica, numer, czynsz (wartość całkowita) należy zidentyfikować osoby zamieszkujące ulicę Mickiewicza pod numerami 71, 72, 80, których czynsz jest niższy niż
1000 zł. Jak będzie wyglądać klauzula WHERE w zapytaniu?

A. WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR czynsz < 1000
B. WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000
C. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czynsz < 1000
D. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000
Pojawiające się w odpowiedziach błędne koncepcje mogą prowadzić do niepoprawnych wyników w zapytaniach SQL, co jest istotne z punktu widzenia analizy danych. W przypadku użycia operatora OR, jak w niektórych z przedstawionych odpowiedzi, skutkuje to potencjalnym zwróceniem danych, które nie spełniają wszystkich wymaganych kryteriów. Na przykład, jeżeli zastosujemy klauzulę WHERE z OR, system zwróci wszystkie rekordy, które są na ulicy 'Mickiewicza' lub mają numer 71, 72 lub 80, niezależnie od wartości czynszu. To może prowadzić do błędnych interpretacji i niepoprawnych raportów. Podobnie, użycie warunków numerycznych, jak 'numer > 70 AND numer < 81', w połączeniu z OR dla czynszu, również nie dostarcza precyzyjnych wyników, ponieważ czyni je zbyt ogólnymi. Takie podejście może prowadzić do zwrócenia danych, które nie są zgodne z zamierzonymi kryteriami, co jest sprzeczne z zasadą maksymalnej precyzji w zapytaniach SQL. Dobre praktyki w programowaniu SQL wymagają, by warunki były ściśle określone i logicznie powiązane, aby zapewnić klarowność oraz wydajność zapytań. Błędy takie mogą prowadzić do nieefektywności w przetwarzaniu danych oraz do podejmowania niewłaściwych decyzji na podstawie niepoprawnych informacji.

Pytanie 24

Kod

SELECT imie, pesel, wiek FROM dane WHERE wiek IN (18,30)
wybiera
A. imiona, nazwiska oraz numery PESEL osób, które mają mniej niż 18 lat
B. imiona, numery PESEL oraz wiek osób w wieku dokładnie 18 lub 30 lat
C. imiona, numery PESEL oraz wiek osób mieszczących się w przedziale od 18 do 30 lat
D. imiona, numery PESEL oraz wiek osób, które mają więcej niż 30 lat
Odpowiedź jest prawidłowa, ponieważ zapytanie SQL `SELECT imie, pesel, wiek FROM dane WHERE wiek IN (18,30)` w sposób precyzyjny selekcjonuje dane tylko dla osób, których wiek wynosi dokładnie 18 lub 30 lat. Użycie operatora `IN` pozwala na wskazanie konkretnych wartości, które nas interesują, w tym przypadku są to dwa liczby: 18 i 30. Takie podejście jest zgodne z najlepszymi praktykami w tworzeniu zapytań SQL, gdyż umożliwia efektywne filtrowanie danych i minimalizowanie obciążenia bazy danych poprzez ograniczenie ilości przetwarzanych rekordów. W kontekście aplikacji, które wymagają analizy danych demograficznych, na przykład w systemach monitorujących wiek klientów, tego typu zapytania są niezwykle przydatne. Pozwalają na szybkie wyciąganie informacji potrzebnych do podejmowania decyzji, jak na przykład dostosowywanie ofert marketingowych do określonych grup wiekowych. Przykładowo, w instytucji finansowej analiza wieku klientów może być kluczowa w tworzeniu ofert produktów kredytowych skierowanych do osób młodych oraz do tych w średnim wieku, co pozwala na lepsze zrozumienie i zaspokojenie ich potrzeb.

Pytanie 25

Określ rezultat wykonania skryptu stworzonego w języku PHP

Ilustracja do pytania
A. B
B. A
C. D
D. C
Odpowiedzi B, C i D są niepoprawne z kilku powodów związanych z błędnym zrozumieniem działania funkcji asort() w PHP. Po pierwsze, funkcja ta sortuje tablicę według wartości w porządku rosnącym, ale co ważne, zachowuje oryginalne klucze. Odpowiedź B ukazuje tablicę z kluczami zresetowanymi do wartości całkowitych, co wskazuje na zastosowanie innej funkcji sortującej jak sort() zamiast asort(). Taki wynik wskazuje brak zrozumienia kluczowej cechy asort(), która jest istotna w pracy z tablicami asocjacyjnymi, gdzie zachowanie kluczy jest konieczne do prawidłowego odwzorowania danych. W odpowiedzi C klucze są także zresetowane, a wartości są w niewłaściwej kolejności, co mogłoby sugerować użycie sort() na tablicy o zmienionym indeksowaniu. Odpowiedź D pokazuje tablicę posortowaną poprawnie, ale w niewłaściwej kolejności, co sugeruje błędne użycie funkcji sortującej, być może zakładające odwrotną kolejność lub błędne przypisanie wartości. Kluczowe jest zrozumienie, jak różne funkcje sortujące w PHP wpływają na klucze i wartości tablic, aby unikać takich błędów i poprawnie wykorzystywać funkcje jak asort() do manipulacji danymi w kontekście ich praktycznego zastosowania, jak konfigurowanie ustawień czy analiza danych, gdzie zachowanie oryginalnych kluczy jest kluczowe. Niewłaściwe zastosowanie może prowadzić do błędnych interpretacji danych i problemów z zachowaniem integralności aplikacji.

Pytanie 26

Które wyrażenie w C++ sprawdza, czy liczba jest TRZYCYFROWĄ wartością PARZYSTĄ?

A.
liczba % 2 == 0 || (liczba > 99 && liczba < 999)
B.
liczba % 2 == 0 && liczba > 99 && liczba < 999
C.
liczba % 2 == 0 && (liczba > 99 || liczba < 999)
D.
liczba % 2 == 0 || liczba > 99 || liczba < 999
Liczba trzycyfrowa to wartość z przedziału od 100 do 999, czyli liczba > 99 && liczba < 999 (lub równoważnie >= 100 && <= 999), a parzysta to liczba % 2 == 0. Wszystkie warunki muszą zachodzić naraz, więc łączy je &&. Dlatego poprawne jest liczba % 2 == 0 && liczba > 99 && liczba < 999.

Pytanie 27

W języku PHP przypisano zmiennej $a wartość 1. Porównanie $a === $b zwraca true, gdy zmienna $b ma przypisaną wartość

A. *1
B. '1'
C. 1 lub '1'
D. '1' lub "1"
Zmienna $a, zainicjowana wartością 1, jest typu integer i porównując ją z inną zmienną $b za pomocą operatora identyczności (===), należy zwrócić szczególną uwagę na typ i wartość obu zmiennych. Wiele osób myli operator porównania identyczności z operatorem równości (==), który nie wymaga, aby typy były zgodne. Z tego powodu odpowiedzi takie jak 1 lub '1' mogą wydawać się poprawne, jednak w przypadku porównania identyczności, istotne jest, aby zmienne były tego samego typu. Odpowiedź, która sugeruje wartość 1, jest błędna, ponieważ porównuje wartość integer z potencjalnie innym typem bez uwzględnienia konwersji typów, co prowadzi do niejednoznaczności. Z kolei odpowiedź sugerująca wartość '1' nie do końca zdaje sobie sprawę, że chociaż string '1' jest zgodny w kontekście równości, nie spełnia warunków identyczności w dosłownym sensie, gdyż typy są różne. Typowe błędy myślowe prowadzące do takich nieprawidłowych wniosków często wynikają z założenia, że PHP automatycznie wykonuje konwersje typów, co nie zawsze jest pożądane. Dla programistów istotne jest zrozumienie różnic między typami oraz kiedy stosować odpowiednie operatory, aby zapewnić poprawność logiki aplikacji i uniknąć potencjalnych błędów, które mogą prowadzić do trudnych do zdiagnozowania problemów w przyszłości.

Pytanie 28

Skrypt PHP wyświetla aktualny czas w formacie godzina:minuta:sekunda, na przykład 15:38:20. Czas w tym formacie zostanie uzyskany dzięki funkcji

A. time("H:i:s");
B. date("H:i:s");
C. date("G:m:s");
D. time("G:m:s");
Funkcja date() w PHP jest używana do formatowania daty i czasu w różnych formatach. W przypadku wywołania date("H:i:s"), składa się ona z trzech elementów: 'H' reprezentuje godziny w 24-godzinnym formacie, 'i' to minuty, a 's' to sekundy. Dzięki takiemu formatowaniu, wynik będzie przedstawiał aktualny czas w formacie godzina:minuta:sekunda, co jest powszechnie używane w aplikacjach webowych do wyświetlania czasu. Na przykład, wywołując echo date("H:i:s"); w skrypcie PHP, użytkownik zobaczy aktualny czas na stronie internetowej. Warto również zauważyć, że korzystanie z funkcji date() jest zgodne z najlepszymi praktykami w programowaniu PHP, ponieważ pozwala na łatwe dostosowanie formatu czasu do potrzeb aplikacji i użytkowników. Dodatkowo, przy wdrażaniu systemów, które wymagają precyzyjnego czasu, warto również rozważyć strefy czasowe, co można osiągnąć za pomocą funkcji date_default_timezone_set().

Pytanie 29

W tabeli zwierzeta znajdują się pola: nazwa, gatunek, gromada, cechy oraz dlugosc_zycia. Aby uzyskać listę nazw zwierząt, które dożywają przynajmniej 20 lat i są ssakami, należy wykonać zapytanie:

A. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20;
B. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20 OR gromada = 'ssak';
C. SELECT nazwa FROM zwierzeta WHERE gromada = 'ssak';
D. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20 AND gromada = 'ssak';
W przypadku pierwszej odpowiedzi, zapytanie nie sprawdza, czy zwierzęta są ssakami, co jest bardzo ważne. W efekcie zwraca wszystkie zwierzęta, które żyją co najmniej 20 lat, a nie tylko ssaki. Takie coś może doprowadzić do błędnych wniosków, bo wyniki będą obejmować też inne grupy zwierząt, co nie odpowiada wymaganiom pytania. W drugiej odpowiedzi brakuje kluczowego warunku dotyczącego długości życia, bo ta odpowiedź zwraca tylko ssaki. To uniemożliwia spełnienie obu wymagań jednocześnie. Trzecia odpowiedź nie bierze pod uwagę długości życia i skupia się tylko na ssakach, co znowu nie jest zgodne z pytaniem. Ostatnia odpowiedź źle używa operatora OR, przez co zwróci wszystkie zwierzęta, które spełniają przynajmniej jeden warunek, a nie oba. Taki logiczny błąd może sprawić, że wyniki będą zawierały zwierzęta, które w ogóle nie spełniają żadnego z warunków, co czyni zapytanie nieskutecznym. Często takie pomyłki wynikają z braku zrozumienia, jak działają operatorzy logiczni i pomijania kontekstu pytania.

Pytanie 30

Który zestaw zawiera wyłącznie języki programowania działające po stronie serwera?

A. C#, Python, Ruby, PHP, JavaScript
B. Java, C#, Python, Ruby, PHP
C. Java, C#, Python, ActionScript, PHP
D. Java, C#, AJAX, Ruby, PHP
Po stronie serwera działają języki, których kod wykonuje się na serwerze i generuje treść wysyłaną do przeglądarki - zestaw Java, C#, Python, Ruby, PHP zawiera wyłącznie takie języki. Dlatego poprawny jest ten zestaw.

Pytanie 31

Aby uzyskać dane z tabeli pracownicy dotyczące jedynie osób, które ukończyły 26 lat, należy zastosować zapytanie

A. SELECT * FROM pracownicy AND wiek > 25
B. SELECT * FROM pracownicy WHERE wiek > 25
C. SELECT * FROM pracownicy OR wiek > 25
D. SELECT * FROM wiek WHERE pracownicy > 25
Aby wyświetlić rekordy z tabeli pracownicy, które dotyczą pracowników powyżej 26 roku życia, należy zastosować odpowiednie zapytanie SQL. Poprawne zapytanie to 'SELECT * FROM pracownicy WHERE wiek > 25;'. W tym przypadku, klauzula WHERE filtruje wyniki, zapewniając, że tylko ci pracownicy, którzy mają więcej niż 25 lat, zostaną zwróceni. Warto zauważyć, że w SQL operator '>' oznacza, że zwracane będą tylko rekordy, dla których warunek jest spełniony. Ponadto, wybranie wszystkich kolumn poprzez SELECT * jest powszechną praktyką, gdyż pozwala na uzyskanie pełnych informacji o pracownikach, bez konieczności wskazywania poszczególnych kolumn. Jest to zgodne z zasadami użycia SQL, gdzie operacje na danych są wykonywane poprzez polecenia definiujące wybrane tabele i warunki. Przykład zastosowania tego zapytania może być użyty w aplikacjach biznesowych, gdzie analiza wieku pracowników jest niezbędna do podejmowania decyzji kadrowych, a także w raportach dotyczących zatrudnienia. Takie zapytanie jest fundamentalne dla zarządzania danymi w relacyjnych bazach danych.

Pytanie 32

Po wykonaniu przedstawionego kodu PHP, w zmiennej $napis zostaje zapisany ciąg znaków.

$napis = "Programowanie w PHP";
$napis = substr($napis, 3, 5);
A. og
B. gr
C. ogram
D. gramo
W podanym kodzie PHP używana jest funkcja substr() która służy do wycinania fragmentu ciągu znaków. W tym przypadku mamy ciąg znaków 'Programowanie w PHP'. Funkcja substr() przyjmuje trzy argumenty: pierwszy to ciąg znaków drugi to pozycja startowa trzecia to długość wycinka. Pozycje w ciągu znaków w PHP zaczynają się od zera dlatego pozycja startowa 3 oznacza czwarty znak w ciągu co w przypadku 'Programowanie w PHP' odpowiada literze 'g'. Trzeci argument 5 oznacza że wycinamy pięć znaków zaczynając od pozycji 3. Stąd funkcja zwróci napis 'gramo'. Znajomość funkcji substr() jest przydatna w różnych sytuacjach na przykład podczas formatowania danych wejściowych lub wyodrębniania części łańcucha takich jak numery telefonów czy kody pocztowe. Ważne jest aby pamiętać że indeksowanie zaczyna się od zera co jest kluczowe przy używaniu tej funkcji. Dobre praktyki w programowaniu zalecają również traktowanie długości wycinka jako parametru opcjonalnego co umożliwia wycięcie do końca łańcucha.

Pytanie 33

Jakie są określenia typowych komend języka SQL, które dotyczą przeprowadzania operacji na danych SQL DML (np.: dodawanie danych do bazy, usuwanie, modyfikowanie danych)?

A. SELECT, SELECT INTO
B. ALTER, CREATE, DROP
C. DENY, GRANT, REVOKE
D. DELETE, INSERT, UPDATE
Pierwsza odpowiedź DENY, GRANT, REVOKE odnosi się do zarządzania uprawnieniami w bazach danych, a nie do operacji na danych. Te polecenia są używane do kontrolowania dostępu do danych, co jest istotne dla bezpieczeństwa, ale nie mają one wpływu na manipulację danymi. W kontekście SQL DML, są one nieodpowiednie, ponieważ nie dotyczą wstawiania, aktualizowania ani usuwania danych. Odpowiedź SELECT, SELECT INTO odnosi się do operacji wyciągania danych z bazy. SELECT służy do pobierania danych, co jest fundamentalne dla analizy i raportowania, ale nie obejmuje modyfikacji danych. SELECT INTO jest używane do kopiowania danych do nowej tabeli, co również nie spełnia wymogu manipulacji danymi w kontekście DML. Odpowiedź ALTER, CREATE, DROP dotyczy struktury bazy danych i definiowania nowych obiektów, takich jak tabele i indeksy. Te polecenia są częścią języka SQL DDL (Data Definition Language) i nie mają zastosowania w kontekście operacji na danych, które są kluczowe dla DML. Zrozumienie różnicy między DML a DDL jest niezbędne, aby skutecznie zarządzać bazą danych i realizować odpowiednie operacje na danych.

Pytanie 34

Której funkcji PHP użyć, aby WYSŁAĆ zapytanie SELECT do bazy MySQL?

A.
mysqli_num_rows
B.
mysqli_query
C.
mysqli_fetch_row
D.
mysqli_connect
Samo połączenie z bazą nic jeszcze nie pobiera - treść zapytania trzeba do niej WYSŁAĆ, a robi to mysqli_query($polaczenie, $sql). Dla SELECT zwraca obiekt wyniku, po którym potem iterujesz, np. $w = mysqli_query($db, "SELECT * FROM uczniowie");. Ta sama funkcja wysyła też INSERT, UPDATE czy DELETE. Zapamiętaj: „query” = zapytanie - to funkcja, która faktycznie przekazuje SQL do serwera.

Pytanie 35

Instrukcja zapisana w SQL, przedstawiona poniżej, ilustruje kwerendę:

UPDATE katalog SET katalog.cena = [cena]*1.1;
A. aktualizującej
B. krzyżowej
C. usuwającej
D. dołączającej
Odpowiedzi, które sugerują inne typy kwerend, są niepoprawne w kontekście przedstawionej instrukcji SQL. Kwerenda krzyżowa, znana również jako kwerenda CROSS JOIN, służy do łączenia wszystkich rekordów z dwóch lub więcej tabel, co nie ma związku z aktualizowaniem wartości w tabeli. Działania te są bardziej skomplikowane i nie mają zastosowania w kontekście zmiany wartości kolumn. Z kolei kwerenda usuwająca, czyli DELETE, służy do eliminacji rekordów z tabeli, co również nie odnosi się do sytuacji, w której zmieniamy wartości. Dodatkowo, kwerenda dołączająca, czyli INSERT, jest używana do dodawania nowych danych do tabeli, a nie do ich modyfikacji. Typowym błędem myślowym, który prowadzi do tych niepoprawnych wniosków, jest zrozumienie, że wszystkie operacje na danych w SQL są podobne. W rzeczywistości różne polecenia mają swoje specyficzne zastosowania i należy je stosować w odpowiednich kontekstach. Dlatego ważne jest, aby dokładnie rozumieć rodzaje kwerend SQL oraz ich przeznaczenie, co pozwala na efektywne zarządzanie danymi i uniknięcie nieporozumień w przyszłości.

Pytanie 36

Wynikiem realizacji zamieszczonego kodu PHP jest pokazanie komunikatu

Ilustracja do pytania
A. warunek4
B. warunek2
C. warunek1
D. warunek3
Analizując kod PHP, można zauważyć, że użycie operatorów logicznych jest kluczowe do zrozumienia jego działania. Operator „AND” (&&) zwraca true tylko wtedy, gdy oba operandy są prawdziwe, natomiast „OR” (||) zwraca true, jeśli przynajmniej jeden z operandów jest prawdziwy. Pierwszy warunek sprawdza połączenie ($a && $b) oraz ($c && $d). Ponieważ $a i $c są true, a $b i $d są false, oba wyrażenia zwracają false, co powoduje, że całość jest false. Drugi warunek sprawdza ($a && $b) lub ($c || $d). Tutaj ($c || $d) zwraca true, ponieważ $c jest true. Trzeci warunek to „elseif” z ($c && $d) lub (! $a), gdzie ($c && $d) jest false, ale (! $a) również jest false, bo $a jest true. Kod kończy się „else” jako ostatnią opcją, która nie zostanie wykonana, ponieważ drugi warunek jest prawdziwy. Typowy błąd polega na niewłaściwej interpretacji kolejności wykonywania operatorów i braku zrozumienia, kiedy wyrażenie logiczne zwraca true, co jest częstym problemem w programowaniu logicznego przepływu w aplikacjach. Zrozumienie i poprawne zastosowanie operatorów logicznych jest fundamentalne w tworzeniu warunków, które pomagają w kontrolowaniu przepływu programu zgodnie z zamierzonymi założeniami projektowymi.

Pytanie 37

Jaką wartość zwróci zapytanie z ramki wykonane na pokazanej tabeli?

SELECT COUNT(DISTINCT wykonawca) FROM muzyka;
Ilustracja do pytania
A. 4
B. 3
C. 0
D. 1
Zapytanie SQL SELECT COUNTDISTINCT wykonawca) FROM muzyka; ma na celu zliczenie unikalnych wartości w kolumnie wykonawca tabeli muzyka. W tym przypadku w tabeli są trzy różne wartości w tej kolumnie: Czesław Niemen Stan Borys i Mikołaj Czechowski. Funkcja COUNTDISTINCT zwraca liczbę niepowtarzających się wykonawców co w tym zestawie danych daje wynik 3. Zrozumienie użycia funkcji COUNTDISTINCT jest kluczowe w analizie danych szczególnie gdy chcemy określić liczebność unikalnych elementów w dużych zbiorach danych. To podejście jest szeroko stosowane w raportowaniu i analizach biznesowych gdzie istotne jest zidentyfikowanie niepowtarzalnych wpisów na przykład liczby unikalnych klientów czy produktów w sklepie. Dobre praktyki w SQL obejmują używanie aliasów w celu zwiększenia czytelności zapytań oraz optymalizację wydajności przez właściwe indeksowanie kolumn które są często wykorzystywane w funkcjach zliczających.

Pytanie 38

Aby stworzyć warunek w zapytaniu wybierającym nazwiska wszystkich uczniów z klas początkowych (od pierwszej do trzeciej), można zastosować klauzulę

A. WHERE klasa < 3
B. WHERE klasa IN (1, 3)
C. WHERE klasa BETWEEN 1 AND 3
D. WHERE klasa >= 1 OR klasa <= 3
Zestawienie innych odpowiedzi w kontekście tego zapytania ujawnia typowe nieporozumienia dotyczące logiki operacji SQL. Klauzula "WHERE klasa < 3" jest nieprawidłowa, ponieważ obejmuje jedynie klasy 1 i 2, co oznacza, że nie uwzględnia uczniów z klasy 3, a więc nie spełnia wymagań pytania. Również użycie klauzuli "WHERE klasa IN (1, 3)" jest mylące, ponieważ wybiera tylko uczniów z klasy 1 i 3, pomijając klasę 2, co jest sprzeczne z definicją klas nauczania początkowego. Kolejna odpowiedź, "WHERE klasa >= 1 OR klasa <= 3", generuje dodatkowe zamieszanie, ponieważ jest logicznie błędna; w praktyce ten warunek zawsze będzie prawdziwy dla wszystkich klas, ponieważ każda klasa będzie spełniać przynajmniej jeden z tych warunków, co prowadzi do zwrócenia wszystkich uczniów, a nie tylko tych z nauczania początkowego. Takie nieprawidłowe użycie operatorów może prowadzić do nieefektywnych zapytań oraz zwiększonego obciążenia bazy danych, a także do niezamierzonych wyników. W przypadku pracy z bazami danych kluczowe jest zrozumienie, jak różne klauzule wpływają na zestaw danych i jakie mogą przynieść konsekwencje w kontekście wyników, co często wymaga starannej analizy oraz testowania zapytań przed ich wdrożeniem.

Pytanie 39

Aby zmienić strukturę tabeli w bazie danych MySQL, należy użyć komendy

A. INSERT INTO
B. ALTER TABLE
C. GRANT
D. UPDATE
Wybór odpowiedzi 'INSERT INTO' jest błędny, ponieważ to polecenie służy do wstawiania nowych danych do tabeli, a nie do modyfikacji jej struktury. W praktyce, jeśli chcemy dodać nowy rekord do tabeli, użyjemy składni 'INSERT INTO tabela (kolumna1, kolumna2) VALUES (wartość1, wartość2);'. Z kolei 'UPDATE' również nie jest właściwym poleceniem w kontekście zmiany struktury tabeli, ponieważ to polecenie jest używane do modyfikacji istniejących danych w tabeli, a nie do zmiany jej budowy. Na przykład, aby zmienić wartość w kolumnie, użyjemy 'UPDATE tabela SET kolumna = nowa_wartość WHERE warunek;'. Dodatkowo, odpowiedź 'GRANT' jest nieodpowiednia, ponieważ to polecenie dotyczy przyznawania uprawnień do bazy danych, a nie zmiany jej struktury. Przyznawanie uprawnień jest kluczowe w kontekście bezpieczeństwa bazy danych, ale nie ma związku z modyfikowaniem struktury tabel. Typowymi błędami, które prowadzą do takich niepoprawnych wyborów, są pomylenie operacji na danych z operacjami na strukturze bazy danych oraz brak zrozumienia specyfiki poleceń SQL.

Pytanie 40

Która komenda algorytmu odpowiada graficznej wizualizacji bloku przedstawionego na ilustracji?

Ilustracja do pytania
A. Wykonaj podprogram sortowania tablicy t
B. n > 20
C. n <- n + 5
D. Wypisz n
Blok przedstawiony na rysunku to romb który symbolizuje operację decyzyjną w schemacie blokowym algorytmu. Taki blok decyzyjny jest używany do przedstawienia pytania które ma dwie możliwe odpowiedzi: prawda lub fałsz. W kontekście programowania instrukcja warunkowa pozwala na podjęcie decyzji w zależności od spełnienia określonego warunku. W tym przypadku wyrażenie n>20 jest warunkiem logicznym który weryfikuje czy wartość zmiennej n jest większa niż 20. Jeśli warunek ten jest spełniony algorytm wykonuje określoną sekwencję instrukcji natomiast w przeciwnym razie może przejść do innego fragmentu kodu. Tego typu struktury są powszechnie stosowane w programowaniu proceduralnym i obiektowym oraz są kluczowym elementem w tworzeniu algorytmów elastycznych i responsywnych na różne scenariusze operacyjne. Stanowią także fundamentalną część logiki w systemach takich jak automatyczne kontrolery procesów gdzie decyzje muszą być podejmowane dynamicznie w oparciu o zmienne warunki wejściowe. Zrozumienie i umiejętność implementacji bloków decyzyjnych jest niezbędne dla każdego programisty co ułatwia tworzenie efektywnych i skalowalnych rozwiązań technologicznych.