Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 16 kwietnia 2026 12:23
  • Data zakończenia: 16 kwietnia 2026 12:27

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

Wskaż polecenie, które działa identycznie jak instrukcja while w PHP.

$x = 0;
while($x < 5) {
    echo "$x,";
    $x++;
}

Instrukcja 1
for ($x=0; $x<5; $x++) {
    echo "$x,";
    $x++;
}

Instrukcja 2
for ($x=0; $x<5; $x+=2) {
    echo "$x,";
    $x++;
}

Instrukcja 3

for ($x=0; $x<5; $x++) {
    echo "$x,";
}

Instrukcja 4
for ($x=1; $x<=5; $x++) {
    echo "$x,";
}
A. Instrukcja 3
B. Instrukcja 1
C. Instrukcja 2
D. Instrukcja 4
Niepoprawne odpowiedzi wynikają z błędnego zrozumienia struktury pętli for w JavaScript i jej porównania z pętlą while. Pętla while działa na zasadzie ciągłego sprawdzania warunku przed każdą iteracją co oznacza że pętla będzie się wykonywać dopóki warunek jest spełniony. W przypadku pętli for wszystkie elementy sterujące takie jak inicjalizacja warunek i inkrementacja są zdefiniowane w jednej linii. Dlatego ważne jest aby odpowiednio zrozumieć jak te elementy wpływają na wykonanie pętli. Błędy mogą pojawić się gdy warunek lub inkrementacja nie są właściwie zdefiniowane co może prowadzić do nieskończonych pętli lub nieoczekiwanych wyników. Dobre praktyki programistyczne wskazują że pętla for jest preferowana w sytuacjach gdzie liczba iteracji jest znana co zwiększa czytelność kodu i ułatwia jego utrzymanie. Zrozumienie błędów wynikających z niepoprawnej struktury pętli pozwala unikać typowych problemów takich jak niepoprawne warunki czy błędne przypisania co jest kluczowe w skutecznym programowaniu.

Pytanie 2

W języku PHP w konstrukcji switch powinno się znajdować

A. przynajmniej dwie instrukcje case
B. konstrukcja switch(wyrażenie)
C. instrukcja break po każdej instrukcji case
D. instrukcja default
Instrukcja switch w języku PHP jest konstrukcją, która umożliwia wykonywanie różnych bloków kodu w zależności od wartości zmiennej. Kluczowym elementem tej konstrukcji jest wyrażenie, które następnie jest porównywane z różnymi wartościami zdefiniowanymi w instrukcjach case. Jeśli wartość wyrażenia pasuje do wartości case, odpowiedni blok kodu zostaje wykonany. Warto zauważyć, że konstrukcja switch nie wymaga posiadania instrukcji default ani przynajmniej dwóch instrukcji case, choć są to często używane praktyki dla pełniejszego przetwarzania różnych możliwych wartości. Przykładowo, można zdefiniować zmienną $color, a następnie użyć switch do wykonania różnych akcji w zależności od wartości tej zmiennej: switch ($color) { case 'red': echo 'Czerwony'; break; case 'blue': echo 'Niebieski'; break; default: echo 'Inny kolor'; } W tym przykładzie, jeżeli $color wynosi 'red', zostanie wyświetlona wartość 'Czerwony'. W standardach PHP wyraźnie określono, że konstrukcja switch wymaga co najmniej jednego wyrażenia, na którym będzie operować, co czyni odpowiedź nr 2 poprawną.

Pytanie 3

Debugger to narzędzie wykorzystywane do

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

Pytanie 4

Podczas definiowania tabeli produkty należy stworzyć pole cena, które będzie reprezentować wartość produktu. Odpowiedni typ danych dla tego pola to

A. ENUM
B. TINYTEXT
C. DECIMAL(10, 2)
D. INTEGER(11)
Wybór typów danych dla pola przechowującego cenę produktu ma kluczowe znaczenie dla poprawności funkcjonowania bazy danych. INTEGER(11) jest typem, który przechowuje liczby całkowite, co oznacza, że nie może być zastosowany do reprezentacji wartości z miejscami dziesiętnymi, co jest niezbędne w przypadku cen. Użycie INTEGER może prowadzić do poważnych problemów, jak zaokrąglanie cen, co w branży handlowej może skutkować błędnymi transakcjami. TINYTEXT to typ danych przeznaczony do przechowywania tekstu, co czyni go całkowicie nieodpowiednim do reprezentacji wartości liczbowych, a tym bardziej cen. W przypadku zastosowania TINYTEXT w tym kontekście, nie tylko utracimy możliwość przeprowadzania obliczeń na cenach, ale również stworzymy dodatkowe problemy z wydajnością bazy danych, ponieważ operacje na tekstach są znacznie wolniejsze niż na liczbach. Z kolei ENUM, który jest używany do określenia zestawu dozwolonych wartości, nie ma zastosowania w kontekście cen, które mogą się zmieniać i nie są ograniczone do stałego zestawu opcji. Użycie ENUM do reprezentacji cen prowadziłoby do nieefektywności, ponieważ każda zmiana ceny wymagałaby modyfikacji definicji pola. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków to brak zrozumienia znaczenia precyzyjnego przechowywania danych finansowych oraz nieznajomość dostępnych typów danych i ich zastosowań w kontekście konkretnej aplikacji.

Pytanie 5

Jaką funkcję pełni instrukcja DROP w języku SQL?

A. wprowadzić nowy obiekt
B. usunąć już istniejący obiekt
C. zmienić właściwości obiektu
D. aktualizować dane obiektu
W kontekście języka SQL, istnieje wiele powszechnych nieporozumień dotyczących funkcji i zastosowania różnych poleceń, w tym także instrukcji DROP. Niektórzy mogą błędnie sądzić, że DROP służy do aktualizacji danych obiektu. Aktualizacja danych jest realizowana za pomocą polecenia UPDATE, które zmienia istniejące rekordy w tabelach, a nie usuwa obiektów. Przekonanie, że DROP może dodać nowy obiekt, jest również mylne; dodawanie nowych obiektów do bazy danych dokonuje się przez polecenia takie jak CREATE TABLE czy INSERT. Z kolei zmiana parametrów obiektu nie ma nic wspólnego z DROP, a jest realizowana przez ALTER, które pozwala na modyfikację struktury obiektów w bazie, takich jak dodawanie nowych kolumn czy zmiana typów danych. Te błędne koncepcje mogą wynikać z braku zrozumienia różnicy między poszczególnymi komendami SQL oraz ich specyficznymi funkcjami. Dlatego kluczowe jest zapoznanie się z dokumentacją oraz przeszkolenie w zakresie podstawowych operacji SQL. Nieprzemyślane użycie instrukcji DROP może prowadzić do poważnych konsekwencji, takich jak utrata danych, co jest nieodwracalne. Właściwe zrozumienie i wykorzystanie instrukcji SQL w praktyce wymaga znajomości ich specyficznych funkcji i skutków działania.

Pytanie 6

Którą czynność gwarantującą poprawne wykonanie przedstawionego kodu JavaScript należy wykonać przed pętlą?

var text;
for(var i=0; i<tab.length; i++ ){
    text+=tab[i] + "<br>";
}
A. Sprawdzić długość tablicy tab
B. Upewnić się, że text jest typu string
C. Zadeklarować zmienną i
D. Zainicjować zmienną text
W przedstawionym kodzie JavaScript kluczowe jest zainicjowanie zmiennej 'text' przed rozpoczęciem pętli for. Zmienna ta ma za zadanie zbierać wartości z tablicy 'tab' i konkatenuje je w formie tekstu z dodanym znacznikiem HTML <br>, który służy do łamania linii w przeglądarkach. Gdyby zmienna 'text' nie została zainicjowana, kod próbowałby wykonać operację konkatenacji na niezainicjowanej zmiennej, co skutkowałoby błędem. W JavaScript, zmienne, które nie zostały zainicjowane, mają wartość 'undefined', co może prowadzić do nieprzewidywalnych rezultatów. Dlatego przed pętlą, konieczne jest przypisanie zmiennej 'text' wartości początkowej, na przykład pustego łańcucha: text = ''. Dzięki temu, każda kolejna iteracja pętli doda nowy element tablicy do 'text' w sposób zgodny z zamierzeniem. Praktycznie, inicjalizowanie zmiennej jest fundamentalną praktyką w programowaniu, która zapobiega błędom oraz zapewnia klarowność kodu, co jest zgodne z najlepszymi standardami programowania.

Pytanie 7

W HTML znacznik <i> wywołuje taki sam efekt wizualny jak znacznik

A. <pre>
B. <em>
C. <strong>
D. <u>
Zastosowanie znaczników <u>, <pre> oraz <strong> w kontekście odwzorowania efektu znacznika <i> jest mylące ze względu na różnice w semantyce i wizualizacji. Znacznik <u> (underline) stosowany jest do podkreślenia tekstu, ale nie wprowadza on żadnych aspektów znaczeniowych. Używanie <u> zazwyczaj jest odradzane w nowoczesnym HTML, ponieważ może zostać zinterpretowane przez użytkowników jako link, co wprowadza w błąd. Znacznik <strong> (strong emphasis) wskazuje na szczególne znaczenie tekstu, co również nie odpowiada efektowi kursywy, a wręcz przeciwnie – ma na celu przyciągnięcie uwagi odbiorcy do ważnych informacji. Warto zauważyć, że <pre> (preformatted text) służy do wyświetlania tekstu w stałym formacie, co nie ma związku z efektem kursywy. Wprowadzenie do dokumentu HTML takich znaczników, które nie odpowiadają zamierzonym funkcjom, wprowadza chaos w strukturę semantyczną i może prowadzić do problemów z dostępnością. Przykładowe błędy myślowe obejmują mylenie efektów wizualnych z ich semantycznym znaczeniem, co jest kluczowe dla prawidłowego używania HTML. Zrozumienie różnic między tymi znacznikami jest istotne dla twórców stron internetowych, aby zapewnić, że ich treść jest nie tylko estetycznie przyjemna, ale również funkcjonalna i dostępna.

Pytanie 8

Wskaż komendę, która dokonuje aktualizacji danych w tabeli?

A. SELECT
B. ALTER
C. UPDATE
D. CREATE
Odpowiedź "UPDATE" jest jak najbardziej trafna. To takie podstawowe polecenie SQL, które pozwala na aktualizowanie już istniejących danych w tabeli. Możesz dzięki niemu zmienić jeden albo kilka wierszy w tabeli, w zależności od tego, jakie masz kryteria. Na przykład, jeśli mamy tabelę "pracownicy" i chcemy zwiększyć pensję programistów do 6000 zł, wystarczy użyć polecenia: `UPDATE pracownicy SET pensja = 6000 WHERE stanowisko = 'programista';`. To polecenie działa w taki sposób, że modyfikuje dane, ale przy tym dba o integralność, co jest bardzo ważne w pracy z bazami danych. Warto zawsze dodawać klauzulę WHERE, żeby zmiany dotyczyły tylko wybranych wierszy – to pomoże uniknąć sytuacji, w której przypadkiem zmienisz wszystko. Umiejętność korzystania z UPDATE jest naprawdę istotna, jeżeli chcesz efektywnie zarządzać swoimi danymi.

Pytanie 9

Poniżej przedstawiono fragment kodu w języku PHP. Jakie liczby wypisze ta pętla jako wynik swojego działania?

for ($i = 0; $i <= 20; $i += 4)
echo $i . ' ';
A. 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
B. 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
C. 0,4,8,12,16
D. 0,4,8,12,16,20
Kiedy patrzymy na ten kod pętli for, musimy zrozumieć, jak działają trzy ważne rzeczy: co się dzieje na początku, jaki jest warunek do dalszego działania i jak zmieniamy naszą zmienną. W tym przypadku pętla zaczyna od 0 i dodaje 4, aż dojdzie do 20. Czasem błędne odpowiedzi wynikają z tego, że nie do końca rozumiemy, jak działa ten warunek, albo z jaką wartością inkrementujemy. Często myślimy, że pętla skończy się przed 20, a to nie jest prawda. Inną pułapką jest zrozumienie, że dodawanie 4 to nie to samo, co branie wszystkich liczb od 0 do 20. Dobrze jest znać zasady działania pętli for, bo to pomaga w rozwiązywaniu problemów w programowaniu i sprawia, że kod działa lepiej. Przy budowaniu takich pętli pamiętajmy o precyzyjnym definiowaniu warunków i tego, jak zmieniamy wartości, bo to ważne dla uzyskania wyników, które chcemy.

Pytanie 10

Podaj właściwą sekwencję przy tworzeniu bazy danych?

A. Zdefiniowanie celu, normalizacja, utworzenie relacji, stworzenie tabel
B. Zdefiniowanie celu, utworzenie relacji, stworzenie tabel, normalizacja
C. Zdefiniowanie celu, normalizacja, utworzenie tabel, stworzenie relacji
D. Zdefiniowanie celu, stworzenie tabel, utworzenie relacji, normalizacja
Prawidłowa odpowiedź wskazuje, że pierwszym krokiem w procesie tworzenia bazy danych jest określenie celu, co jest kluczowe dla zrozumienia, jakie dane będą gromadzone i w jaki sposób będą one używane. Następnie, stworzenie tabel to fundament, na którym opiera się cała baza danych. Tabele definiują struktury danych, które będą przechowywane, a ich projektowanie powinno uwzględniać normalizację, czyli proces eliminowania redundancji danych i zapewniania ich integralności. Utworzenie relacji między tabelami jest kolejnym krokiem, który pozwala na efektywne łączenie danych w różnych tabelach, co z kolei umożliwia bardziej złożone zapytania. Normalizacja, będąca ostatnim krokiem, pozwala na optymalizację struktury bazy, co zwiększa wydajność operacji. Przykład zastosowania tej kolejności można zobaczyć w projektowaniu systemów zarządzania bazami danych w przedsiębiorstwach, gdzie dokładne określenie potrzeb biznesowych wpływa na przyszłe modele danych i ich relacje.

Pytanie 11

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. wykluczenia.
B. grupowania.
C. części wspólnej.
D. sumy.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 12

W tabeli artykuly wykonano określone instrukcje dotyczące uprawnień użytkownika jan. Po ich realizacji użytkownik jan uzyska możliwość

GRANT ALL PRIVILEGES ON artykuly TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan
A. tworzenia tabeli oraz edytowania jej zawartości
B. sprawdzania zawartości tabeli
C. edycji danych i przeglądania zawartości tabeli
D. tworzenia tabeli i wypełniania jej informacjami
Prawidłowa odpowiedź wskazuje na to że użytkownik jan ma prawa do tworzenia tabeli i wypełniania jej danymi co wynika z początkowego nadania pełnych praw za pomocą komendy GRANT ALL PRIVILEGES i późniejszego cofnięcia konkretnych przywilejów SELECT i UPDATE. To oznacza że jan zachował uprawnienia do tworzenia tabelek i wstawiania danych do tabeli bez możliwości przeglądania czy aktualizowania danych w istniejących wierszach. W kontekście zarządzania bazami danych takie precyzyjne przyznawanie i odbieranie uprawnień jest kluczowe do utrzymania integralności i bezpieczeństwa danych. Przykładowo w środowisku produkcyjnym tworzenie i wypełnianie tabel może być ograniczone do administratorów baz danych lub zespołów deweloperskich podczas gdy inne role mogą mieć jedynie prawa do odczytu. Takie zarządzanie uprawnieniami pomaga zminimalizować ryzyko błędów i nieautoryzowanych modyfikacji danych. Standardy takie jak ISO/IEC 27001 zalecają precyzyjne zarządzanie dostępem w celu zabezpieczenia informacji co jest dobrą praktyką w branży IT.

Pytanie 13

Jaką wartość zwróci funkcja zao, która została zdefiniowana w języku C++, gdy zostanie wywołana z argumentem 3.55?

int zao(float x) {
    return x+0.5;
}
A. 3
B. 3.5
C. 4.05
D. 4
Wartości zwracane przez funkcje w C++ mogą być mylące, gdy nie zrozumiemy, jak działa zaokrąglanie i operacje na liczbach zmiennoprzecinkowych. Rozważając odpowiedzi 3, 3.5 i 4.05, można zauważyć, że każda z tych odpowiedzi opiera się na błędnym zrozumieniu zastosowania funkcji zaofloat. Odpowiedź 3 wynika z błędu myślowego, który zakłada, że dodanie 0.5 do wartości 3.55 skutkuje zmniejszeniem wartości do najbliższej liczby całkowitej, co jest niezgodne z zasadami matematycznymi. Z kolei odpowiedź 3.5 może wydawać się logiczna dla kogoś, kto może pomyśleć, że dodanie 0.5 w jakimś sensie zmienia wartość do tej liczby, jednak w rzeczywistości, gdyby tak było, funkcja nie spełniałaby swojej podstawowej roli. Odpowiedź 4.05, mimo że jest poprawnym wynikiem dodania do 3.55 wartości 0.5, nie jest właściwą odpowiedzią w kontekście pytania, ponieważ nie uwzględnia zasady zaokrąglania do najbliższej liczby całkowitej. W praktyce programiści często napotykają podobne problemy i dlatego dobrym zwyczajem jest, aby jasno określać wymagania dotyczące wyników i stosować odpowiednie metody zaokrąglania, kiedy to konieczne, aby uniknąć nieporozumień.

Pytanie 14

Używając polecenia ALTER TABLE, co można zrobić?

A. zmiana struktury tabeli
B. usunięcie tabeli
C. stworznie tabeli
D. zmiana wartości w rekordach tabeli
W odpowiedziach pojawia się wiele nieprawidłowych koncepcji dotyczących funkcji polecenia ALTER TABLE w SQL. Usuwanie tabeli nie jest zadaniem ALTER TABLE - aby usunąć tabelę, używamy polecenia DROP TABLE. To polecenie całkowicie eliminuje tabelę z bazy danych, co jest zupełnie inną operacją niż modyfikacja już istniejącej struktury. Tworzenie tabeli także nie należy do funkcji ALTER TABLE; do tego celu używamy polecenia CREATE TABLE. To polecenie jest podstawowym narzędziem w procesie projektowania bazy danych, pozwalającym na definiowanie nowych struktur. Kolejną niepoprawną odpowiedzią było sugerowanie, że ALTER TABLE może modyfikować wartości zapisane w rekordach tabeli. Zmiana wartości w rekordach wymaga użycia polecenia UPDATE, które jest zaprojektowane do aktualizacji danych w tabeli, pozostawiając strukturę tabeli nietkniętą. Typowym błędem myślowym jest mylenie operacji strukturalnych z operacjami na danych. W praktyce, zrozumienie różnicy między tymi operacjami jest kluczowe dla efektywnego zarządzania bazami danych. Znalezienie odpowiednich poleceń i technik do realizacji zadań związanych z bazami danych jest fundamentalne dla każdego administratora bazy danych lub programisty, a właściwe korzystanie z ALTER TABLE to jedna z wielu umiejętności, które trzeba opanować.

Pytanie 15

Baza danych, która fizycznie znajduje się na wielu komputerach, lecz logicznie postrzegana jako całość, opiera się na architekturze

A. abstrakcyjną
B. relacyjną
C. lokalną
D. rozproszoną
Wybór architektury relacyjnej, abstrakcyjnej czy lokalnej do opisu systemu, w którym baza danych jest rozproszona, wskazuje na pewne nieporozumienia w zakresie terminologii i koncepcji baz danych. Architektura relacyjna odnosi się do struktury baz danych, w której dane są przechowywane w tabelach oraz powiązaniach między nimi, a nie do fizycznego rozmieszczenia danych. Systemy relacyjne mogą być wdrażane zarówno w architekturze lokalnej, jak i rozproszonej. Abstrakcyjna architektura danych dotyczy natomiast sposobów modelowania, które są niezależne od konkretnej technologii i nie odnoszą się bezpośrednio do fizycznego rozproszenia danych. Z kolei architektura lokalna odnosi się do sytuacji, w której wszystkie komponenty systemu są umieszczone w jednym miejscu, co zdecydowanie wyklucza możliwość rozproszenia danych. W praktyce, nieprawidłowy wybór architektury może prowadzić do problemów z wydajnością, dostępnością i skalowalnością systemu. Często mylone są pojęcia związane z architekturą baz danych i ich implementacją, co może skutkować błędnymi decyzjami projektowymi i trudnościami w zarządzaniu danymi. Dobrze jest zrozumieć, że architektura rozproszona nie tylko zwiększa wydajność, ale również poprawia bezpieczeństwo i dostępność danych, co czyni ją odpowiednim wyborem dla nowoczesnych systemów przetwarzania danych.

Pytanie 16

Który z poniższych zapisów CSS zmieni tło bloku na odcień niebieskiego?

A. div {color:blue;}
B. div {border-color:blue;}
C. div {background-color:blue;}
D. div {shadow:blue;}
Zapis 'div {background-color:blue;}' jest jak najbardziej na miejscu. Właściwość 'background-color' jest kluczowa, bo ustawia kolor tła dla elementów blokowych w CSS. Kiedy używasz 'blue' jako wartości, to mówisz, że tło ma być niebieskie. Ta właściwość jest częścią tego całego systemu CSS, który decyduje, jak powinny wyglądać elementy HTML. Ustawienie koloru tła jest ważne, bo wpływa na wygląd strony i to, jak kontrastują ze sobą tekst i tło, co jest istotne, by strona była dostępna dla każdego. Jeśli chciałbyś zmienić kolor tła, możesz korzystać z różnych wartości, takich jak kody HEX (np. #0000FF) albo RGB (np. rgb(0, 0, 255)). Możesz to zobaczyć w praktyce, na przykład: <div style='background-color:blue;'>Treść</div>, co ustawi tło 'diva' na niebieskie.

Pytanie 17

Polecenie SQL:

GRANT CREATE, ALTER ON sklep.* TO adam;
Zakładając, że użytkownik adam wcześniej nie posiadał żadnych uprawnień, to powyższe polecenie SQL przyzna mu prawa jedynie do:
A. tworzenia oraz modyfikacji struktury w tabeli sklep
B. dodawania oraz modyfikacji danych w tabeli sklep
C. dodawania oraz modyfikacji danych we wszystkich tabelach bazy sklep
D. tworzenia oraz modyfikacji struktury wszystkich tabel w bazie sklep
Odpowiedź jest prawidłowa, ponieważ polecenie SQL 'GRANT CREATE, ALTER ON sklep.* TO adam;' przyznaje użytkownikowi 'adam' uprawnienia do tworzenia (CREATE) i zmiany (ALTER) struktury wszystkich tabel w bazie danych 'sklep'. W kontekście systemów zarządzania bazami danych (DBMS), uprawnienia 'CREATE' pozwalają użytkownikowi na tworzenie nowych obiektów, takich jak tabele, podczas gdy 'ALTER' umożliwia modyfikację istniejących obiektów. Dlatego użytkownik 'adam' zyskuje możliwość modyfikacji struktury każdej tabeli w bazie 'sklep', co obejmuje dodawanie lub usuwanie kolumn, zmiany typów danych oraz inne operacje związane z definicją tabel. Przykładowo, jeśli 'adam' chciałby dodać nową kolumnę do tabeli 'produkty', mógłby to zrobić dzięki uprawnieniom 'ALTER'. Z perspektywy najlepszych praktyk, przyznawanie takich uprawnień powinno być ograniczone do zaufanych użytkowników, aby zminimalizować ryzyko nieautoryzowanych zmian w strukturze bazy danych.

Pytanie 18

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

A. onClick
B. onSubmit
C. onEnter
D. onChange
Zdarzenia 'onClick', 'onEnter' oraz 'onChange' są często mylone z 'onSubmit', co może prowadzić do błędnych wniosków na temat ich zastosowania w kontekście formularzy HTML. Zdarzenie 'onClick' jest wywoływane, gdy użytkownik klika element, ale nie jest bezpośrednio powiązane z procesem wysyłania formularza. Może być używane w celu uruchomienia różnych akcji, ale nie służy do walidacji danych przed wysłaniem. Podobnie, 'onEnter' nie jest standardowym zdarzeniem w JavaScript; to raczej mylne odniesienie do działania klawisza Enter, które nie ma formalnego związku z formularzami. Zdarzenie 'onChange' jest wywoływane, gdy wartość elementu formularza zmienia się, co również nie jest bezpośrednio związane z wysyłaniem formularza. To zdarzenie jest przydatne w kontekście dynamicznej walidacji lub aktualizacji interfejsu, ale nie pozwala na kontrolowanie całego procesu wysyłania. Te niepoprawne odpowiedzi ilustrują typowy błąd myślowy, polegający na myleniu różnych zdarzeń w JavaScript i ich funkcji. Aby poprawnie zrozumieć, kiedy i jak stosować te zdarzenia, warto zgłębić dokumentację oraz standardy dotyczące programowania w JavaScript, co pozwoli uniknąć nieporozumień i zwiększyć efektywność tworzonych aplikacji.

Pytanie 19

Wykonano następującą kwerendę SQL na tabeli dania, której wiersze zostały pokazane na obrazie:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze ta kwerenda?

idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
62wieprzowy przysmak35
72Mintaj w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 2
B. 13
C. 5
D. 8
Gratulacje, dobrze sobie poradziłeś z tym pytaniem! Wykonanie kwerendy SELECT na tabeli danych, oznacza wybieranie konkretnych wierszy z tej tabeli, które spełniają określone kryteria. Kwerendy SQL są podstawowym narzędziem w zarządzaniu bazami danych, a ich zrozumienie jest kluczowe dla efektywnej pracy z danymi. W tym przypadku, kwerenda SELECT wybrała 2 wiersze - jest to prawidłowa odpowiedź. W praktyce, mogłoby to oznaczać na przykład wybranie z bazy danych informacji o dwóch klientach, którzy spełnili określone kryteria. Ważne jest, aby pamiętać, że liczba wybranych wierszy zależy od kryteriów, które określamy w kwerendzie. W SQL mamy wiele możliwości filtrowania i sortowania danych, co pozwala na efektywne zarządzanie informacjami. Dobra praktyka to dokładne zrozumienie działania kwerendy, zanim zostanie ona wykonana na dużej ilości danych.

Pytanie 20

Instrukcja w języku SQL GRANT ALL PRIVILEGES ON klienci TO pracownik

A. cofa wszystkie uprawnienia pracownikowi do tabeli klienci
B. przeniesie uprawnienia z grupy klienci do użytkownika pracownik
C. przyznaje uprawnienie grupie klienci dla tabeli pracownik
D. przyznaje wszystkie uprawnienia do tabeli klienci użytkownikowi pracownik
Wybór odpowiedzi, która nie odpowiada na pytanie, zazwyczaj wynika z błędnych założeń dotyczących działania polecenia GRANT w SQL. Odpowiedź, która sugeruje, że polecenie skopiuje uprawnienia z grupy klienci na użytkownika pracownik, jest błędna, ponieważ GRANT nie działa na zasadzie kopiowania uprawnień, ale bezpośrednio przydziela określone uprawnienia do wskazanego obiektu. W SQL nie istnieje konstrukcja, która automatycznie przenosi uprawnienia z jednej grupy na inny użytkownik, co czyni to zrozumienie niewłaściwym. Inną nieprawidłową koncepcją jest myślenie, że komenda nadaje uprawnienia grupie klienci do tabeli pracownik. To zrozumienie myli pojęcie grupy z użytkownikiem, co jest podstawowym błędem w interpretacji polecenia SQL. Ostatnia wskazana odpowiedź, która sugeruje, że odbiera wszystkie uprawnienia pracownikowi do tabeli klienci, jest również błędna, ponieważ polecenie GRANT nie jest używane do odbierania uprawnień, a do ich przydzielania. Powoduje to nieporozumienia co do funkcji i zastosowania polecenia w kontekście zarządzania dostępem do danych. Aby poprawnie zrozumieć te koncepcje, ważne jest, aby zapoznać się z dokumentacją SQL oraz najlepszymi praktykami zarządzania uprawnieniami, co przyczyni się do efektywnego i bezpiecznego zarządzania danymi w bazach danych.

Pytanie 21

Zawartość kodu w języku HTML umieszczona w ramce ilustruje zestaw

<ol>
<li>Pierwszy</li>
<li>Drugi</li>
<li>Trzeci</li>
</ol>
A. skróconych
B. wypunktowanej
C. linków
D. numerowanej
Fragment kodu HTML używa tagu <ol> co oznacza listę numerowaną. Tag <ol> jest skrótem od ordered list i jest używany do tworzenia listy elementów, które są automatycznie numerowane przez przeglądarkę. Wewnątrz tego tagu znajdują się tagi <li>, które oznaczają poszczególne elementy listy. Każdy z tych elementów będzie wyświetlany z kolejnym numerem w przeglądarce internetowej. Na przykład w przypadku zamieszczonego kodu HTML przeglądarka wyświetli listę z numerami 1 2 3 przed elementami Pierwszy Drugi Trzeci. Listy numerowane są użyteczne w sytuacjach gdy ważna jest kolejność elementów na przykład w instrukcjach krok po kroku lub rankingach. Tworzenie list numerowanych z użyciem <ol> jest zgodne ze standardami HTML i jest dobrym rozwiązaniem gdyż pozwala na łatwe zarządzanie kolejnością elementów bez konieczności ręcznego numerowania co redukuje ryzyko błędów i automatycznie aktualizuje numerację w przypadku dodania bądź usunięcia elementów z listy.

Pytanie 22

Jaki zestaw liczb zostanie wyświetlony w wyniku działania pętli napisanej w języku PHP?

$liczba = 10;
while ($liczba < 50) {
  echo "$liczba ";
  $liczba = $liczba + 5;
}
A. 10 15 20 25 30 35 40 45
B. 0 5 10 15 20 25 30 35 40 45 50
C. 10 15 20 25 30 35 40 45 50
D. 0 5 10 15 20 25 30 35 40 45
Pytanie dotyczyło wyniku działania pętli w języku PHP co często prowadzi do nieporozumień związanych z mechaniką działania pętli iteracyjnych. Pierwsza z niepoprawnych odpowiedzi zakładała że pętla wydrukuje również liczbę 0 co jest błędem ponieważ zmienna $liczba jest inicjalizowana wartością 10 i nigdy nie osiągnie wartości mniejszej niż 10 w trakcie działania tego programu. Częstym błędem w myśleniu jest nieuwzględnianie początkowej wartości zmiennej kontrolnej co prowadzi do fałszywych założeń na temat iteracji. Kolejna błędna odpowiedź sugerowała że pętla zakończy się po wypisaniu liczby 50 jednak warunek pętli while sprawdza czy $liczba jest mniejsza od 50 co oznacza że gdy $liczba osiągnie 50 warunek będzie fałszem i pętla zakończy działanie nie wypisując tej wartości. Ostatecznie inna opcja błędnie zakładała wypisanie liczby 0 co jak wcześniej wspomniano jest niemożliwe w kontekście tej konkretnej pętli. Aby uniknąć takich błędów należy zawsze dokładnie analizować warunki początkowe i końcowe oraz mechanizm inkrementacji zmiennej kontrolnej. Korzystanie z debuggera lub ręczne prześledzenie kolejnych kroków pętli może pomóc w lepszym zrozumieniu jej działania w praktyce co jest kluczowe w efektywnym programowaniu aplikacji wykorzystujących złożone struktury iteracyjne. Zrozumienie tych mechanizmów pozwala na tworzenie bardziej wydajnych i bezbłędnych kodów co jest zgodne z dobrymi praktykami programistycznymi.

Pytanie 23

Co oznacza skrót SQL?

A. Standard Quality Language
B. Structured Query Language
C. Simple Query Logic
D. Sequential Question Language
SQL, czyli <em>Structured Query Language</em>, to bardzo istotny język w świecie baz danych. Pozwala na tworzenie, modyfikowanie i zarządzanie danymi w relacyjnych bazach danych. Język ten umożliwia użytkownikom definiowanie struktury bazy danych poprzez tworzenie tabel oraz określanie relacji między nimi. Ponadto, SQL jest kluczowy do manipulacji danymi, oferując szeroki wachlarz komend do selekcji, wstawiania, aktualizacji i usuwania danych. Dzięki SQL można także kontrolować dostęp do danych, definiując uprawnienia użytkowników. W praktyce, SQL jest używany w wielu narzędziach i systemach zarządzania bazami danych, takich jak MySQL, PostgreSQL, Microsoft SQL Server czy Oracle Database. Jego standaryzacja przez ANSI i ISO zapewnia, że podstawowe komendy są zrozumiałe i spójne w wielu systemach. Dla programistów i administratorów baz danych znajomość SQL jest kluczowa, ponieważ pozwala na efektywne zarządzanie i analizę danych, co jest podstawą w podejmowaniu decyzji biznesowych.

Pytanie 24

Zmienna o typie integer lub int jest w stanie przechowywać

A. znak
B. liczbę rzeczywistą
C. liczbę całkowitą
D. łańcuch znaków
Odpowiedzi niepoprawne wskazują na mylne zrozumienie typów danych oraz ich zastosowania w programowaniu. Zmienna typu znakowego, która może przechowywać pojedynczy znak, nie jest odpowiednia dla wartości całkowitych, ponieważ nie reprezentuje liczby, lecz symbol. Przechowywanie znaków wymaga innego podejścia, które obejmuje typy danych takie jak char. Z kolei ciąg znaków, reprezentujący zestaw znaków, również nie nadaje się do przechowywania liczb całkowitych. Takie podejście prowadzi do nieporozumień dotyczących zarządzania danymi, ponieważ programy operujące na ciągach muszą konwertować te wartości do formatu liczbowego przed przeprowadzeniem kalkulacji, co wprowadza dodatkowe komplikacje i obniża wydajność. Ponadto, zmienne typu liczba rzeczywista, takie jak float czy double, są używane do przechowywania wartości z częścią dziesiętną, co również nie pasuje do definicji zmiennej integer, która ma na celu wyłącznie reprezentację liczb całkowitych. Tego typu pomyłki mogą wynikać z niepełnego zrozumienia struktury danych oraz podstawowych koncepcji programowania, co podkreśla znaczenie solidnej edukacji w zakresie typów danych i ich zastosowań w praktyce. Właściwe dobieranie typów danych jest kluczowe dla efektywności aplikacji oraz unikania błędów podczas ich działania.

Pytanie 25

Określ złożoność obliczeniową algorytmu naiwnego (zwykłego) poszukiwania minimum w kolekcji liczb?

A. O(n2)
B. O(n3)
C. O(n)
D. O(n!)
Odpowiedzi O(n2), O(n3) oraz O(n!) sugerują, że złożoność obliczeniowa algorytmu naiwnego wyszukiwania minimum jest wyższa niż rzeczywista złożoność O(n). Złożoność O(n2) oznaczałaby, że algorytm wymagałby odwiedzenia każdego elementu dla każdego innego elementu, co jest charakterystyczne dla algorytmów porównawczych, które porównują elementy parzyście, na przykład w sortowaniu bąbelkowym. Tego typu złożoność nie ma jednak zastosowania w prostym wyszukiwaniu minimum, gdzie wystarczy jedno przejście przez zbiór w celu znalezienia najmniejszego elementu. Z kolei O(n3) wskazywałoby na jeszcze bardziej skomplikowaną operację, co w kontekście wyszukiwania minimum jest nieadekwatne. Złożoność O(n!) sugerowałaby, że algorytm wymagałby przetwarzania wszystkich możliwych permutacji zbioru, co jest zjawiskiem spotykanym w złożonych problemach kombinatorycznych, takich jak problem komiwojażera. Aby uniknąć takich nieporozumień, ważne jest zrozumienie, że wyszukiwanie minimum to operacja podstawowa, która nie wymaga złożonych algorytmów ani dodatkowych złożoności, a jedynie prostego przejścia przez zbiór danych. W praktyce, złożoności O(n2), O(n3) i O(n!) nie mają zastosowania w kontekście wyszukiwania minimum, co jest kluczowe dla zrozumienia efektywności algorytmu.

Pytanie 26

W instrukcjach mających na celu odtwarzanie dźwięku jako muzyki tła na stronie internetowej NIE stosuje się atrybutu

A. balance="-10"
B. loop="10"
C. volume="-100"
D. href="C:/100.wav"
Odpowiedź href="C:/100.wav" jest prawidłowa, ponieważ atrybut href jest używany w kontekście linków hipertekstowych, a nie do odtwarzania dźwięku na stronie. W przypadku odtwarzania dźwięku w HTML, odpowiednie tagi to <audio> oraz związane z nimi atrybuty, takie jak src, controls, autoplay, loop, itp. Aby zrealizować odtwarzanie dźwięku jako podkładu muzycznego, używamy tagu <audio src="C:/100.wav" autoplay loop></audio>, co zapewnia, że dźwięk z pliku .wav będzie odtwarzany automatycznie i w pętli. Zgodnie z dobrymi praktykami, pliki audio powinny być dostępne na serwerze i wskazywane względem ich lokalizacji w sieci, co wspiera lepszą wydajność oraz dostępność. Użycie atrybutu href w tym kontekście jest niewłaściwe i może prowadzić do niepoprawnego działania strony, ponieważ przeglądarki nie interpretują tego w kontekście dźwięku. Przykładowo, zamiast href, należy zastosować odpowiednie atrybuty w tagu <audio> zgodnie z aktualnymi standardami HTML5.

Pytanie 27

Na tabeli muzyka, przedstawionej na schemacie, wykonano następującą kwerendę SQL. Co zostanie zwrócone przez tę zapytanie? SELECT wykonawca FROM `muzyka` WHERE wykonawca LIKE 'C%w';

Ilustracja do pytania
A. Czesław
B. pusty wynik
C. Czesław, Czechowski
D. Czesław, Niemen
Analiza błędnych odpowiedzi prowadzi do zrozumienia, dlaczego nie można ich uznać za poprawne w kontekście przedstawionego zapytania SQL. Odpowiedź 'Czesław' sugeruje, że zapytanie zwróci wykonawcę o takim imieniu. W rzeczywistości zapytanie SQL używa wzorca 'C%w', co oznacza, że szuka wykonawców, których imię i nazwisko zaczynają się na 'C' i kończą na 'w'. W tabeli nie ma wykonawcy spełniającego ten warunek. 'Czesław Niemen' mimo poprawnego początku nazwy, nie kończy się na 'w', co wyklucza tę odpowiedź. Podobnie, odpowiedzi sugerujące parę wykonawców, takie jak 'Czesław, Niemen' czy 'Czesław, Czechowski', również nie spełniają kryteriów wzorca, ponieważ żadne z nazwisk nie kończy się na 'w'. Typowym błędem myślowym przy takich zadaniach jest nieuwzględnienie pełnego warunku wzorca i skupienie się tylko na jego części początkowej. Użycie operatora LIKE z symbolem '%' wymaga zrozumienia, że jest to znak wieloznaczny, który pozwala na dowolną liczbę znaków między określonymi literami. Zlekceważenie tego aspektu prowadzi do błędnych wniosków. W praktyce, umiejętność poprawnego formułowania zapytań SQL i zrozumienie działania operatorów takich jak LIKE ma zasadnicze znaczenie dla pracy z bazami danych, szczególnie w kontekście wyszukiwania i filtrowania danych według określonych kryteriów. Prawidłowe wykorzystanie tych umiejętności pozwala na efektywną obsługę dużych zbiorów danych i jest kluczowym elementem skutecznego zarządzania informacją w przedsiębiorstwach i organizacjach.

Pytanie 28

Jaką złożoność obliczeniową posiada algorytm znajdowania elementu w nieposortowanej jednowymiarowej tablicy?

A. silnia, O(n!)
B. kwadratową, O(n2)
C. liniową, O(n)
D. stałą, O(1)
Wybierając odpowiedzi niepoprawne, można natknąć się na różne złożoności obliczeniowe, które nie odnoszą się do algorytmu wyszukiwania elementu w nieposortowanej tablicy. Złożoność kwadratowa, O(n2), dotyczy algorytmów, które muszą porównywać każdy element z każdym innym, co najczęściej występuje w algorytmach sortujących, takich jak sortowanie bąbelkowe, gdzie liczba porównań rośnie wraz z kwadratem liczby elementów. Z kolei złożoność silni, O(n!), występuje w kontekście problemów kombinatorycznych, takich jak generowanie permutacji, co oznacza, że liczba operacji wzrasta niezwykle szybko w miarę zwiększania się liczby elementów, ale nie jest odpowiednia dla prostych algorytmów wyszukiwania. Złożoność stała, O(1), sugeruje, że operacja zajmuje tę samą ilość czasu niezależnie od rozmiaru danych, co w przypadku wyszukiwania w nieposortowanej tablicy nie jest możliwe, ponieważ musimy przejrzeć co najmniej jeden element. Te błędne odpowiedzi wynikają z nieporozumień na temat działania algorytmów w kontekście różnych struktur danych oraz z mylnego utożsamiania złożoności z ich zastosowaniem. Zrozumienie różnicy między tymi złożonościami jest kluczowe dla efektywnego projektowania algorytmów oraz oceny ich wydajności w różnych scenariuszach.

Pytanie 29

Wskaż poprawny warunek w języku PHP, który sprawdza brak połączenia z bazą MySQL.

A. if (mysql_connect_errno()}{
B. if (mysql_connect_error())()
C. if (mysql_connect_error()}{
D. if (mysql_connect_errno()){}
Analizując błędne odpowiedzi, możemy zauważyć kilka fundamentalnych błędów w składni oraz logice użycia funkcji odpowiedzialnych za obsługę połączenia z bazą danych. W przypadku pierwszej propozycji, 'if (mysql_connect_error())()', widoczny jest zbędny nawias okrągły na końcu, co jest niezgodne z zasadami składni języka PHP. Taki zapis spowoduje błąd podczas wykonywania kodu, gdyż PHP nie oczekuje nawiasu po instrukcji warunkowej, a dodatkowo funkcja 'mysql_connect_error()' nie wymaga takiego zakończenia. Podobnie, druga odpowiedź 'if (mysql_connect_errno()}{' używa niepoprawnego zamknięcia nawiasu. Prawidłowe zapisywanie bloków kodu jest kluczowe dla zachowania przejrzystości oraz poprawności w wykonywaniu poleceń. Z kolei 'if (mysql_connect_error()}{' również zawiera błąd obsługi nawiasów. Poza składniowymi błędami, warto również zaznaczyć, że zarówno 'mysql_connect_error()', jak i 'mysql_connect_errno()' są funkcjami przestarzałymi, co oznacza, że ich użycie nie jest zalecane w nowoczesnym programowaniu. W aktualnych projektach powinno się stosować rozszerzenie MySQLi lub PDO, które oferują lepsze możliwości w zakresie obsługi błędów oraz bezpieczeństwa. Takie podejście nie tylko zwiększa stabilność aplikacji, ale również ułatwia późniejsze jej utrzymanie oraz rozwój.

Pytanie 30

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

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

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

Pytanie 31

W podanym kodzie PHP, w miejscu kropek należy umieścić odpowiednią instrukcję

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
while ($wiersz = ...................)
    echo "$wiersz[0] $wiersz[1]";
A. mysqli_query($zapytanie)
B. mysqli_num_fields($zapytanie)
C. mysqli_fetch_array($zapytanie)
D. mysqli_free_result($zapytanie)
Mysqli_query($zapytanie) to funkcja, która wykonuje zapytanie SQL, ale nie przetwarza wyników. Jest to kluczowy etap interakcji z bazą danych, ponieważ bez wykonania zapytania nie można uzyskać żadnych danych. Jednak w podanym kodzie funkcja ta już została użyta do utworzenia zasobu $zapytanie, więc jej ponowne użycie w pętli nie miałoby sensu. Z kolei mysqli_free_result($zapytanie) służy do zwolnienia zasobów związanych z wynikiem zapytania, co jest potrzebne po zakończeniu przetwarzania danych, aby unikać wycieków pamięci. W miejscu kropek nie jest jednak potrzebne, ponieważ nadal przetwarzamy dane. Mysqli_num_fields($zapytanie) zwraca liczbę pól w wyniku zapytania, co może być przydatne podczas analizy struktury danych, ale nie jest właściwe do pobierania danych z zapytania. Typowe błędy myślowe wynikają z niezrozumienia procesu przetwarzania wyników zapytania i różnicy między wykonaniem zapytania a przetwarzaniem jego wyników. Ważne jest, aby rozróżniać role poszczególnych funkcji i stosować je zgodnie z ich przeznaczeniem, co jest fundamentem efektywnej pracy z bazami danych.

Pytanie 32

Aby obraz umieszczony na stronie internetowej mógł automatycznie dostosowywać się do rozmiaru ekranu, na którym jest prezentowana strona, trzeba

A. jego szerokość ustawić w wartościach procentowych
B. nie zmieniać obu jego wymiarów za pomocą stylów CSS
C. jeden z jego wymiarów określić w pikselach
D. oba jego wymiary ustawić w pikselach
Nie modyfikowanie wymiarów obrazu stylami CSS nie zapewnia odpowiedniego dostosowania do różnych rozmiarów ekranów. W przypadku, gdy wartości szerokości i wysokości są ustalone w pikselach, obraz pozostaje stały na zadanym rozmiarze, co może prowadzić do problemów z wyświetlaniem na mniejszych ekranach, takich jak smartfony czy tablety. Użytkownik może doświadczyć sytuacji, w której obraz jest zbyt duży lub zbyt mały, co wpływa na estetykę i funkcjonalność strony. Ponadto, ustawianie jednego z wymiarów w pikselach ogranicza elastyczność projektu. W przypadku ustalania obu wymiarów w pikselach, obraz nie tylko nie dostosuje się do rozmiaru ekranu, ale również może zakłócać układ innych elementów na stronie, prowadząc do nieczytelności i frustracji użytkownika. Typowym błędem myślowym jest przekonanie, że stałe wymiary zapewniają lepszą kontrolę nad układem. W rzeczywistości, brak elastyczności w projektowaniu prowadzi do problemów z dostępnością oraz użytecznością, co jest sprzeczne z praktykami zalecanymi w nowoczesnym web designie. Aby skutecznie projektować responsywne strony, warto korzystać z jednostek względnych, takich jak procenty lub jednostki viewport, a także technik takich jak media queries w CSS.

Pytanie 33

Zadaniem poniższego kodu napisanego w języku C++ jest wypisanie dla podanych dowolnych liczb całkowitych różnych od zera:

int main()
{
    int liczba;
    cin >> liczba;

    while (liczba != 0)
    {
        if ((liczba % 2) == 0)
            cout << liczba << endl;

        cin >> liczba;
    }
    return 0;
}
A. wyłącznie liczby nieparzyste
B. wszystkie liczby
C. liczby pierwsze
D. jedynie liczby parzyste
Kod źródłowy w języku C++ analizuje dane wejściowe i wypisuje jedynie liczby parzyste, co wynika z zastosowania operacji modulo. Mylnym podejściem jest sądzenie, że program wypisze wszystkie liczby, ponieważ warunek w if ogranicza wyjście jedynie do liczb, które przy dzieleniu przez 2 dają resztę 0. To podejście jest często stosowane w sytuacjach, gdzie konieczne jest filtrowanie danych według określonych kategorycznych kryteriów, np. przy oddzielaniu danych na podstawie ich właściwości matematycznych. Zakładanie, że kod wypisze tylko liczby nieparzyste lub liczby pierwsze, jest błędne, ponieważ nie ma dodatkowych warunków weryfikujących te cechy. Liczby nieparzyste miałyby resztę z dzielenia przez 2 równą 1, co nie spełnia warunku if, natomiast liczby pierwsze wymagają bardziej złożonego algorytmu weryfikacji, który badałby podzielność przez wszystkie liczby mniejsze od pierwiastka kwadratowego z danej liczby. Często popełnianym błędem jest niedokładne przeanalizowanie struktury warunkowej i pętli, co prowadzi do błędnych wniosków dotyczących działania programu. Zrozumienie działania operatora modulo i jego zastosowania w kontekście logicznych warunków pozwala na poprawną interpretację funkcji programu i unikanie wspomnianych błędów myślowych.

Pytanie 34

Przedstawione polecenie MySQL ma za zadanie

 ALTER TABLE ksiazki
 MODIFY tytul VARCHAR(100) NOT NULL;
A. usunąć kolumnę tytul z tabeli ksiazki.
B. zmienić typ kolumny tytul w tabeli ksiazki.
C. zmienić nazwę kolumny w tabeli ksiazki.
D. dodać do tabeli ksiazki kolumnę tytul.
Cóż, niestety, Twoja odpowiedź jest błędna. Warto zwrócić uwagę, że ALTER TABLE, które widzisz w poleceniu, służy do modyfikacji istniejących tabel, a nie do dodawania nowych kolumn czy ich usuwania. Instrukcja MODIFY wskazuje na zmianę definicji kolumny, a nie jej nazwy. Dlatego odpowiedzi mówiące o dodawaniu nowej kolumny albo usuwaniu istniejącej są nietrafione. To, co jest w pytaniu, to zmiana typu kolumny 'tytul' na VARCHAR(100) oraz dodanie ograniczenia NOT NULL. Zmiana nazwy kolumny też tu nie pasuje, bo nie ma słowa kluczowego RENAME, które by na to wskazywało. Więc jedyna poprawna odpowiedź to ta, która mówi o zmianie typu kolumny 'tytul'.

Pytanie 35

Pętla while powinna działać tak długo, jak zmienna x będzie przyjmować wartości z otwartego przedziału (-2, 5). Zapis tego warunku w nagłówku pętli przy użyciu języka PHP wygląda następująco

A. ($x > -2) && ($x < 5)
B. ($x > -2) || ($x > 5)
C. ($x == -2) && ($x < 5)
D. ($x < -2) || ($x > 5)
Analizując błędne odpowiedzi, można zauważyć szereg nieporozumień związanych z użyciem operatorów logicznych oraz zrozumieniem przedziału wartości. Odpowiedź ($x == -2) && ($x < 5) sugeruje, że pętla będzie działać tylko wtedy, gdy x równo wynosi -2, co jest niezgodne z definicją przedziału otwartego (-2, 5), w którym -2 nie jest wliczane. Drugą odpowiedzią, ($x > -2) || ($x > 5), wprowadza duże zamieszanie, ponieważ użycie operatora OR oznacza, że pętla mogłaby być wykonywana, gdy x jest większe od -2 lub większe od 5, co nie tylko nie jest zgodne z wymaganiami, ale również sprawia, że warunek przestaje być precyzyjny. Wreszcie, odpowiedź ($x < -2) || ($x > 5) jest całkowicie sprzeczna z celem pętli, ponieważ sugeruje, że pętla będzie działać, gdy x jest mniejsze od -2 lub większe od 5, co wyklucza jakiekolwiek wartości z przedziału (-2, 5). Te przykłady ilustrują, jak istotne jest zrozumienie użycia operatorów logicznych w kontekście warunków pętli. Problemy te często wynikają z niepełnego zrozumienia konwencji matematycznych dotyczących przedziałów, co prowadzi do błędnych wniosków i potencjalnych błędów w kodzie, które mogą mieć dalsze konsekwencje w działaniu programów.

Pytanie 36

Który typ danych obsługiwany przez PHP jest przeznaczony do obsługi zmiennych typu logicznego?

A. Boolean
B. Integer
C. Float
D. String
Typy Float, Integer oraz String nie są odpowiednie do przechowywania informacji logicznych. Float reprezentuje liczby zmiennoprzecinkowe, co oznacza, że przechowuje dane numeryczne z częścią dziesiętną. Używanie typu float do logiki programistycznej może prowadzić do nieścisłości, ponieważ nie potrafi on właściwie reprezentować wartości logicznych, takich jak prawda czy fałsz. Z kolei Integer to typ całkowity, który również nie ma zastosowania w kontekście zmiennych logicznych. Przechowuje tylko liczby całkowite, a jego użycie w decyzjach logicznych może prowadzić do błędnych interpretacji, gdyż wartości całkowite nie są bezpośrednio związane z pojęciem prawdy i fałszu. String, będący typem reprezentującym dane tekstowe, również nie jest odpowiedni do tego celu. Choć można konwertować ciągi tekstowe na zmienne logiczne, takie jak poprzez interpretację 'true' jako prawdy i 'false' jako fałszu, nie jest to efektywne ani zalecane w praktyce ze względu na możliwość wystąpienia błędów. W programowaniu ważne jest, aby stosować odpowiednie typy danych, co zwiększa czytelność oraz jakość kodu, a także ułatwia jego utrzymanie. Prawidłowe stosowanie typów danych, w tym boolean, jest kluczowe dla tworzenia efektywnych i błędoodpornych aplikacji.

Pytanie 37

Jakie jest zadanie funkcji PHP o nazwie mysql_num_rows()?

A. zwrócić liczbę wierszy znajdujących się w wyniku zapytania
B. ponumerować rekordy w bazie danych
C. zwrócić następny rekord z wynikami zapytania
D. zwrócić rekord o numerze podanym jako parametr funkcji
Funkcja mysql_num_rows() w PHP jest używana do zwracania liczby wierszy w wyniku zapytania SQL, co jest kluczowe w pracy z danymi w bazach danych. Gdy wykonujemy zapytanie, na przykład za pomocą mysql_query(), otrzymujemy wynik w formie zasobu. Funkcja mysql_num_rows() pozwala na określenie, ile wierszy zostało zwróconych przez to zapytanie. To jest szczególnie przydatne w sytuacjach, gdy chcemy wiedzieć, czy dane istnieją, na przykład w aplikacjach webowych, gdzie użytkownik szuka określonych informacji. Oznacza to, że możemy dostosować logikę naszej aplikacji na podstawie liczby wyników. Ponadto, korzystając z tej funkcji, możemy monitorować i optymalizować zapytania, co jest zgodne z najlepszymi praktykami w zakresie wydajności i zarządzania bazami danych. Warto również zauważyć, że mysql_num_rows() działa w kontekście wywołania do bazy danych, co oznacza, że musi być używana w kontekście zasobu wynikowego, aby działać poprawnie.

Pytanie 38

Aby zainstalować system CMS Joomla!, potrzebne jest środowisko

A. IIS, PERL i MySQL
B. Apache oraz PHP
C. PHP oraz MySQL
D. Apache, PHP i MySQL
Użytkownicy mogą mieć wątpliwości co do wyboru odpowiednich technologii dla uruchomienia systemu CMS Joomla!. Odpowiedzi sugerujące jedynie Apache i PHP ignorują istotny element, jakim jest baza danych. Brak MySQL w konfiguracji oznacza, że nie byłoby możliwości przechowywania oraz zarządzania danymi, co jest kluczowe w każdej aplikacji webowej. Z kolei odpowiedź zakładająca użycie IIS, PERL i MySQL wprowadza nieprawidłową konfigurację, gdyż IIS jest serwerem stworzonym przez Microsoft, który może być używany z innymi technologiami, ale nie jest standardowym wyborem dla Joomla!. PERL to język programowania, który nie jest powszechnie używany w ekosystemie Joomla! i nie jest wymagany do jej działania. Inną kwestią jest odpowiedź proponująca tylko PHP i MySQL, która również pomija serwer WWW - fundament działania aplikacji webowych. Prawidłowe uruchomienie Joomla! wymaga zintegrowania wszystkich trzech komponentów: serwera, języka skryptowego i bazy danych. Ignorowanie tych zależności prowadzi do błędnego rozumienia architektury aplikacji internetowych, co może w przyszłości skutkować problemami w implementacji oraz działaniu projektów opartych na Joomla!. Właściwe podejście wymaga zrozumienia, że każdy z tych elementów odgrywa kluczową rolę w zapewnieniu stabilności, bezpieczeństwa oraz wydajności aplikacji.

Pytanie 39

Jaką rolę odgrywa kwerenda krzyżowa w programie MS Access?

A. Usuwa rekordy z tabel według określonych kryteriów
B. Zmienia istniejące dane w tabeli
C. Dodaje do wybranej tabeli rekordy z innej tabeli
D. Prezentuje zliczone wartości z pola i układa je w wiersze oraz kolumny
Odpowiedzi, które wskazują na usuwanie rekordów lub modyfikowanie istniejących danych, dotyczą zupełnie innych operacji w bazach danych. Usuwanie rekordów według podanych kryteriów odnosi się do kwerend aktualizujących lub usuwających, które służą do eliminacji danych, które nie są już potrzebne lub są błędne. Takie operacje są istotne, jednak nie mają nic wspólnego z kwerendami krzyżowymi, które koncentrują się na analizie danych poprzez agregację, a nie na ich usuwaniu. Modyfikowanie istniejących danych również nie jest związane z kwerendami krzyżowymi, które są statyczne w prezentacji danych, a ich zadaniem jest przedstawienie wyników agregacji. Dołączenie rekordów z jednej tabeli do innej odnosi się do operacji łączenia (JOIN), które służą do zestawienia informacji z różnych źródeł, co również różni się od funkcji kwerend krzyżowych. W kontekście analizy danych, ważne jest zrozumienie, że kwerendy krzyżowe są używane do syntetyzowania informacji i nie mają zastosowania w operacjach modyfikacji lub usuwania danych. Użytkownicy często mylą te funkcje, co prowadzi do błędnych wniosków i nieefektywnego przetwarzania danych w bazach danych.

Pytanie 40

Jaką wartość wyświetli standardowe wyjście dla podanego w ramce fragmentu kodu w języku C++?

Ilustracja do pytania
A. 32
B. 0
C. 2
D. 3
W analizowanym fragmencie programu funkcja obliczenia modyfikuje swój argument x poprzez operację x %= 3 co oznacza że oblicza resztę z dzielenia x przez 3. W przypadku x równego 32 reszta z dzielenia przez 3 wynosi 2. Następnie instrukcja x++ zwiększa wartość x o 1 co daje wynik końcowy równy 3. Wiedza o operatorach arytmetycznych takich jak % oraz o inkrementacji ++ jest kluczowa przy programowaniu w C++. Operator % jest powszechnie używany do określania parzystości liczb lub cyklicznych wzorców w algorytmach. Zrozumienie jak te operacje wpływają na przepływ danych w programie pozwala unikać błędów logicznych i poprawiać wydajność kodu. Inkrementacja jest również istotna w wielu strukturach sterujących takich jak pętle co czyni ją niezbędnym elementem w rozwiązywaniu problemów algorytmicznych. Tego typu operacje są fundamentem w standardach programowania ponieważ pozwalają na precyzyjne kontrolowanie wartości zmiennych w trakcie wykonywania programów. Warto ćwiczyć te koncepcje aby w pełni wykorzystać potencjał języka C++ szczególnie w kontekście optymalizacji i wydajności aplikacji.