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: 8 maja 2026 16:30
  • Data zakończenia: 8 maja 2026 16:57

Egzamin zdany!

Wynik: 25/40 punktów (62,5%)

Wymagane minimum: 20 punktów (50%)

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

Hermetyzacja to zasada programowania obiektowego mówiąca o tym, że

A. pola i metody wykorzystywane tylko przez daną klasę są ograniczane zasięgiem private lub protected.
B. klasy mogą mieć zdefiniowane metody wirtualne, które są implementowane w pochodnych klasach.
C. typy pól w klasach/obiektach mogą być dynamicznie zmieniane w zależności od danych im przypisywanych.
D. klasy mogą współdzielić ze sobą funkcjonalność.
Hermetyzacja to pojęcie, które dość często miesza się z innymi zasadami programowania obiektowego, takimi jak dziedziczenie, polimorfizm czy współdzielenie funkcjonalności między klasami. W efekcie powstaje takie wrażenie, że chodzi po prostu o „współpracę obiektów” albo „możliwość rozszerzania klas”, co jest tylko częścią obrazu, ale nie definicją hermetyzacji. Sedno hermetyzacji polega na ukrywaniu stanu obiektu i szczegółów implementacyjnych za dobrze zdefiniowanym interfejsem. Klasa ma swoje pola i metody pomocnicze, ale kod na zewnątrz widzi tylko to, co programista świadomie wystawi jako public. Pozostałe odpowiedzi dotykają innych cech obiektowości. Współdzielenie funkcjonalności między klasami to bardziej temat dziedziczenia, kompozycji albo używania wspólnych modułów czy interfejsów. To, że dwie klasy mogą mieć podobne metody i wykorzystywać wspólny kod, nie ma bezpośrednio nic wspólnego z hermetyzacją. Można mieć świetnie współdzieloną logikę, a kompletnie zignorować ukrywanie szczegółów implementacji i bezpieczeństwo stanu obiektów. Z kolei pomysł, że typy pól w klasach mogą się dynamicznie zmieniać w zależności od danych, dotyczy raczej systemu typów i języków dynamicznych, jak JavaScript czy PHP w trybie bez ścisłego typowania. To jest kwestia dynamicznego typowania, a nie hermetyzacji. Można mieć język statycznie typowany (np. Java, C#) i świetną hermetyzację, i można mieć język dynamicznie typowany, w którym hermetyzacja jest słaba lub w ogóle nieprzestrzegana. Natomiast metody wirtualne, nadpisywanie ich w klasach pochodnych, późne wiązanie wywołań – to klasyczny polimorfizm, nie hermetyzacja. Owszem, te koncepcje często występują razem w jednym projekcie, przez co łatwo się mylą, ale ich cele są inne. Polimorfizm pozwala różnym klasom reagować inaczej na to samo wywołanie metody, hermetyzacja zaś skupia się na tym, żeby ukryć wnętrze obiektu i wystawić tylko kontrolowany interfejs. Typowym błędem myślowym jest utożsamianie „obiektowości jako całości” z pojedynczymi jej elementami. Ktoś widzi dziedziczenie albo metody wirtualne i zakłada, że to już automatycznie „hermetyzacja”. W praktyce dobra hermetyzacja to przede wszystkim rozsądne używanie private/protected, unikanie publicznych pól, a także pilnowanie, żeby stan obiektu był spójny i nie dało się go przypadkiem popsuć z zewnątrz. To właśnie ta ochrona wnętrza klasy, a nie możliwość dziedziczenia czy dynamicznego typowania, jest tutaj kluczowa.

Pytanie 2

Tabela samochody zawiera poniższe rekordy.

idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017
Po wykonaniu podanego zapytania SQL, jakie dane zostaną zwrócone?
SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel";
A. zafira; insignia
B. opel zafira; opel insignia
C. zafira
D. opel zafira
Twoja odpowiedź jest nieprawidłowa, co sugeruje, że możesz nie do końca rozumieć, jak działa zapytanie SQL. Wszystkie odpowiedzi, które zawierały więcej niż jeden model samochodu, są niepoprawne, ponieważ zapytanie SQL jest skonstruowane tak, aby zwrócić tylko te modele, które spełniają oba warunki - markę 'opel' i rocznik większy niż 2017. W przypadku odpowiedzi zawierających tylko model 'zafira', ale bez wskazania marki, jest to błąd, ponieważ zapytanie SQL również wymaga, aby marka była równa 'opel'. W praktyce, błędy w konstrukcji zapytań SQL mogą prowadzić do błędnych wyników i potencjalnie do poważnych błędów w analizie danych lub oprogramowaniu. Dlatego, ważne jest, aby zrozumieć, jak prawidłowo konstruować zapytania SQL i jakie wyniki one zwracają.

Pytanie 3

Który z typów formatów oferuje największą kompresję pliku dźwiękowego?

A. CD-Audio
B. WAV
C. MP3
D. PCM
Format MP3 jest algorytmem kompresji stratnej, który umożliwia znaczną redukcję rozmiaru plików dźwiękowych przy zachowaniu akceptowalnej jakości dźwięku. W przeciwieństwie do formatów takich jak WAV, PCM czy CD-Audio, które są formatami bezstratnymi, MP3 wykorzystuje techniki psychoakustyczne do eliminacji dźwięków, które są mniej słyszalne dla ludzkiego ucha. Dzięki temu, pliki MP3 mogą być nawet dziesięciokrotnie mniejsze od swoich odpowiedników bezstratnych, co czyni je idealnymi do zastosowań w streamingach, pobierania muzyki oraz na urządzenia mobilne. Użytkownicy mogą z łatwością przechowywać większe ilości muzyki na swoich urządzeniach, co wpływa na komfort korzystania z technologii audio. Warto również zaznaczyć, że standard MP3 stał się de facto normą w branży muzycznej, co potwierdzają liczne platformy dystrybucji muzyki, które preferują ten format. Dobrą praktyką jest dostosowywanie bitrate'u przy kompresji do potrzeb użytkownika, aby równoważyć rozmiar pliku z jakością audio.

Pytanie 4

Jaki typ komunikatu jest zawsze przesyłany wyłącznie w kierunku w dół, to jest od kierownika do pracownika?

A. Poszukiwanie rozwiązań.
B. Powierzenie zadania.
C. Zgłaszanie.
D. Uwagi dotyczące polityki organizacji.
Powierzenie zadania jest komunikatem, który jest zawsze przekazywany w sposób pionowy w dół, co oznacza, że jest przekazywany od przełożonego do podwładnego. Tego typu komunikacja jest kluczowa dla efektywnego zarządzania, ponieważ pozwala przełożonym na delegowanie odpowiedzialności i ustalanie oczekiwań wobec pracowników. Przykładem może być sytuacja, w której kierownik działu przydziela zadanie konkretnej osobie, określając cele, terminy oraz zasoby potrzebne do jego realizacji. W praktyce, powierzenie zadań jest zgodne z zasadami efektywnego zarządzania projektami, gdzie klarowność i zrozumienie oczekiwań są niezbędne do osiągnięcia sukcesu. Warto również zwrócić uwagę na standardy, takie jak PMBOK, które podkreślają znaczenie komunikacji w procesie zarządzania projektami, w tym precyzyjnego delegowania zadań. Dzięki temu powierzenie zadań nie tylko zapewnia jasność, ale także zwiększa zaangażowanie pracowników i ich odpowiedzialność za realizowane projekty.

Pytanie 5

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

$db = mysqli_connect("localhost", "root", "qwerty", "baza1");
if (!$db) {
...
}
A. Obsługa błędu przy nawiązywaniu połączenia
B. Przetwarzanie danych uzyskanych z bazy
C. Zamknięcie połączenia z bazą danych
D. Informacja o pomyślnym nawiązaniu połączenia z bazą
Obsługa błędu połączenia jest kluczowym elementem przy nawiązywaniu połączenia z bazą danych w PHP. Gdy używamy funkcji mysqli_connect, istotne jest, aby sprawdzić, czy połączenie zostało nawiązane poprawnie. W przypadku, gdy połączenie nie powiedzie się, funkcja mysqli_connect zwraca fałsz. W takich sytuacjach warto zaimplementować odpowiednią obsługę błędów, aby zrozumieć, co poszło nie tak, oraz działania, które powinny być podjęte. Dobrą praktyką jest wykorzystanie funkcji mysqli_connect_errno oraz mysqli_connect_error, które dostarczają szczegółowych informacji o błędzie. Na przykład, można wyświetlić komunikat o błędzie lub zalogować go do pliku w celu dalszej analizy. W ten sposób programista może szybko zidentyfikować problem, czy to związany z błędnym loginem, hasłem, czy problemami z serwerem bazy danych. Implementacja takiej obsługi błędów zwiększa stabilność aplikacji oraz ułatwia późniejsze diagnozowanie problemów, co jest istotne w profesjonalnym środowisku programistycznym.

Pytanie 6

Wskaż najefektywniejszą metodę wyczyszczenia wszystkich danych z tabeli adresy, nie wpływając na jej strukturę

A. DROP TABLE adresy;
B. DELETE TABLE adresy;
C. TRUNCATE TABLE adresy;
D. DELETE * FROM adresy;
Usunięcie wszystkich rekordów z tabeli adresy bez usuwania jej struktury można zrealizować na wiele sposobów, jednak nie wszystkie z nich są właściwe. DROP TABLE adresy; jest komendą, która usuwa całą tabelę wraz z jej strukturą oraz danymi, co jest całkowicie sprzeczne z założeniem pytania. Takie podejście może prowadzić do poważnych problemów w aplikacjach, które polegają na istnieniu tabeli, ponieważ po wykonaniu tej komendy tabela przestaje istnieć, co uniemożliwia dalsze operacje na niej. DELETE * FROM adresy; wydaje się być poprawną próbą usunięcia danych, ale składnia ta jest błędna, ponieważ w SQL nie używa się znaku „*” w kontekście polecenia DELETE. Poprawna składnia powinna być DELETE FROM adresy;, co z kolei prowadzi do przetwarzania każdego rekordu w tabeli i może być znacznie wolniejsze w przypadku dużych zbiorów danych. DELETE również nie resetuje identyfikatorów autoinkrementacyjnych, co może być niepożądanym efektem. Z kolei DELETE TABLE adresy; to niewłaściwe wyrażenie, ponieważ SQL nie rozpoznaje komendy DELETE TABLE. W rzeczywistości, by usunąć tabelę, musielibyśmy użyć DROP TABLE. Zasadniczo, błędne odpowiedzi wskazują na niepełne zrozumienie zasadności i syntaktyki SQL oraz różnic pomiędzy operacjami na danych. Warto zatem przywiązywać wagę do detali, aby unikać nieefektywnych i błędnych rozwiązań, szczególnie w pracy z bazami danych, gdzie każdy błąd może prowadzić do utraty cennych danych.

Pytanie 7

W celu wykonania kopii bazy danych biblioteka w systemie MySQL należy w konsoli użyć polecenia

A. copymysql –u root biblioteka kopia.sql
B. backupmysql -u root biblioteka kopia.sql
C. mysqlduplicate –u root biblioteka > kopia.sql
D. mysqldump -u root biblioteka > kopia.sql
Poprawne polecenie do wykonania kopii bazy danych MySQL to „mysqldump -u root biblioteka > kopia.sql”. Narzędzie mysqldump jest oficjalnym, standardowym programem dostarczanym razem z serwerem MySQL i właśnie ono służy do tworzenia logicznych kopii zapasowych baz danych. Działa tak, że łączy się z serwerem MySQL, odczytuje strukturę tabel oraz dane, a następnie generuje plik tekstowy zawierający instrukcje SQL typu CREATE TABLE i INSERT. Taki plik można potem w prosty sposób wgrać z powrotem, np. poleceniem „mysql -u root biblioteka < kopia.sql”. To jest bardzo wygodne w praktyce, bo backup jest przenośny między serwerami, wersjami MySQL, a nawet można go edytować ręcznie w razie potrzeby. W tym poleceniu „-u root” oznacza użytkownika bazy danych, czyli logujemy się jako użytkownik root. W realnym środowisku produkcyjnym zwykle używa się konta z mniejszymi uprawnieniami i dodatkowo opcji „-p”, żeby podać hasło (np. „mysqldump -u backup_user -p biblioteka > kopia.sql”). Nazwa „biblioteka” to nazwa bazy, którą archiwizujemy. Znak „>” to przekierowanie powłoki systemowej (bash, cmd itp.), które zapisuje wynik działania programu mysqldump do pliku „kopia.sql” zamiast wypisywać go na ekran. To przekierowanie nie jest częścią MySQL, tylko mechanizmem systemu operacyjnego, co czasem bywa mylące dla początkujących. Moim zdaniem warto od razu wyrabiać sobie dobre nawyki: używać mysqldump regularnie, najlepiej w skryptach cron (Linux) lub Harmonogramie zadań (Windows), trzymać kopie na innym serwerze i testować odtwarzanie. W praktyce administracji serwerami i bezpieczeństwa danych takie kopie logiczne są podstawą procedur disaster recovery. W dokumentacji MySQL mysqldump jest wymieniony jako jedno z głównych narzędzi do backupu i migracji baz danych, więc znajomość dokładnie tego polecenia to absolutna podstawa pracy z MySQL w środowiskach webowych i nie tylko.

Pytanie 8

Jaki program jest wykorzystywany do edycji dźwięku?

A. Audacity
B. CorelDRAW
C. Inkscape
D. GIMP
Audacity to naprawdę fajny program do obróbki dźwięku, który jest używany przez wielu, zarówno hobbystów, jak i profesjonalistów. Jest to open-source, więc można go ściągnąć za darmo. Dzięki niemu możesz nagrywać dźwięki z mikrofonu lub z innych źródeł, co jest super przydatne. Możliwości edytowania ścieżek dźwiękowych są ogromne – masz różne efekty, jak kompresja, EQ czy reverb, które naprawdę mogą wzbogacić Twoje nagrania. Obsługuje też wiele formatów plików, jak WAV, MP3 czy OGG, co sprawia, że jest wszechstronny. Sam z niego korzystam do nagrywania podcastów i muszę przyznać, że dobrze się sprawdza. Ważne, żeby pamiętać, że Audacity jest popularne w branży, bo pozwala na solidną pracę z dźwiękiem, co jest kluczowe, jeśli planujesz coś profesjonalnego. Jest też duża społeczność użytkowników, więc program ciągle się rozwija i aktualizuje. To na pewno coś, czego warto spróbować!

Pytanie 9

W dokumencie HTML stworzono formularz. Jakie działanie kodu zostanie pokazane przez przeglądarkę, jeśli w drugie pole użytkownik wprowadzi tekst „ala ma kota”?

Ilustracja do pytania
A. Efekt 1
B. Efekt 3
C. Efekt 2
D. Efekt 4
Błędne odpowiedzi wynikają z niewłaściwego zrozumienia działania elementów HTML takich jak select i input type=password. Efekt 1 przedstawia listę kontrolną z opcjami do wyboru co jest niezgodne z kodem HTML w którym użyto elementu select pozwalającego na wybór tylko jednej opcji z rozwijanej listy. Tego typu błąd często wynika z mylenia różnych typów wprowadzania danych w HTML co może prowadzić do nieporozumień w projektowaniu interfejsów użytkownika. Efekt 3 sugeruje że w polu input można swobodnie zobaczyć wpisaną wartość co jest sprzeczne z użyciem typu password który celowo ukrywa wprowadzone znaki zapewniając ochronę danych. Taki typ błędu pojawia się gdy programiści nie uwzględniają zasady bezpieczeństwa w projektowaniu formularzy internetowych. Z kolei efekt 4 pokazuje zestaw przycisków radiowych i ukryte hasło co również nie odpowiada kodowi HTML. Przyciski radiowe są używane w formularzach do wyboru jednej opcji z grupy ale nie są częścią przedstawionego kodu. Często takie błędy są wynikiem niewłaściwego przypisywania typów wprowadzania danych i mogą prowadzić do niewłaściwego działania aplikacji webowych. Kluczowe jest więc zrozumienie różnych typów elementów formularzy i ich właściwego zastosowania w kontekście interfejsu użytkownika oraz bezpieczeństwa danych użytkownika. Dobre praktyki projektowania formularzy obejmują nie tylko estetykę i funkcjonalność ale przede wszystkim bezpieczeństwo i intuicyjność obsługi co jest kluczowe dla użytkowników końcowych. Użycie odpowiednich elementów HTML zgodnych ze standardami W3C zapewnia lepszą kompatybilność i użyteczność aplikacji internetowych oraz pomaga w unikaniu typowych błędów projektowych i implementacyjnych które mogą wpływać na doświadczenie użytkownika.

Pytanie 10

Aby uzyskać przedstawiony efekt napisu w programie INKSCAPE / COREL, należy

Ilustracja do pytania
A. skorzystać z opcji wstaw / dopasuj tekst do ścieżki
B. skorzystać z opcji gradientu
C. zastosować opcję sumy z kołem
D. zastosować opcję wykluczenia z kołem
Zastosowanie funkcji wykluczenia z kołem nie jest właściwe w kontekście dopasowywania tekstu do ścieżki ponieważ funkcja ta służy do tworzenia efektów wycinania w których elementy jednego obiektu są wykluczane z drugiego. Jest to przydatne w sytuacjach gdzie potrzebujemy stworzyć złożone kształty poprzez odejmowanie jednego obiektu od drugiego. Natomiast zastosowanie funkcji sumy z kołem odnosi się do łączenia kilku obiektów w jeden nowy kształt co jest użyteczne przy tworzeniu złożonych kompozycji graficznych ale nie ma związku z manipulowaniem kształtem tekstu. Funkcja gradientu jest związana z kolorowaniem obiektów przez stopniowe przechodzenie jednego koloru w drugi co nadaje obiektom atrakcyjny efekt wizualny ale nie wpływa na kształtowanie liter wzdłuż ścieżki. Typowym błędem jest myślenie że te funkcje mogą być używane wymiennie z narzędziami do tekstu co wynika z niepełnego zrozumienia ich specyficznych zastosowań i ograniczeń w kontekście projektowania grafiki wektorowej. Zrozumienie różnych funkcji dostępnych w programach do grafiki wektorowej jak Inkscape czy CorelDRAW jest kluczowe dla efektywnego tworzenia projektów które są zarówno estetyczne jak i funkcjonalne. Profesjonalne wykorzystanie tych narzędzi wymaga nie tylko znajomości ich podstawowych funkcji ale także świadomości kontekstu ich użycia oraz możliwości jakie oferują w tworzeniu zaawansowanych projektów graficznych które spełniają określone wymagania wizualne i techniczne.

Pytanie 11

W CSS, aby określić typ czcionki, powinno się zastosować właściwość

A. font-face
B. font-size
C. font-family
D. font-style
Właściwość 'font-family' w CSS jest kluczowa dla określenia kroju czcionki, który ma być używany na stronie internetowej. Dzięki tej właściwości możemy wskazać jedną lub więcej czcionek, które będą stosowane dla danego elementu. Wartością może być nazwa konkretnej czcionki, na przykład 'Arial', lub rodzina czcionek, jak 'sans-serif'. Przykład użycia to: 'font-family: Arial, sans-serif;'. W przypadku braku dostępności danej czcionki, przeglądarka wybierze następną z listy, co pozwala na zapewnienie spójności i czytelności tekstu na różnych urządzeniach. Zgodnie z najlepszymi praktykami, zaleca się użycie kilku opcji czcionek, aby zapewnić lepszą dostępność. Warto również pamiętać, aby unikać stosowania zbyt wielu różnych krojów czcionek, co mogłoby wpływać negatywnie na estetykę i czytelność strony. Użycie 'font-family' w połączeniu z innymi właściwościami, takimi jak 'font-size' czy 'font-weight', pozwala na pełne dostosowanie wyglądu tekstu zgodnie z wymaganiami projektu.

Pytanie 12

W poniższym kodzie CSS czcionka zmieni kolor na żółty

a[target="_blank"]
{
  color: yellow;
}
A. odnośników, które otwierają się w nowej karcie
B. każdego linku
C. odnośników, które otwierają się w tej samej karcie
D. tekstu akapitu
Prawidłowa odpowiedź wskazuje na zastosowanie selektora a[target="_blank"] w języku CSS. Ten selektor odnosi się do wszystkich odnośników HTML, które otwierają się w nowej karcie przeglądarki dzięki użyciu atrybutu target z wartością "_blank". Stylizacja tych odnośników na kolor żółty jest możliwa przez przypisanie właściwości color z odpowiednią wartością. Jest to praktyczne podejście, które pozwala na wizualne wyróżnienie linków otwierających się w osobnych zakładkach. Takie podejście jest zgodne z dobrymi praktykami projektowania stron internetowych, gdzie wskazane jest, aby użytkownicy mieli wyraźne sygnały o nietypowych działaniach linków. W kontekście dostępności webowej, takie stylizowanie wspiera użytkowników w szybszym orientowaniu się w sposobie działania poszczególnych elementów interfejsu. Separacja stylu i treści zgodnie z zasadami CSS umożliwia bardziej elastyczne zarządzanie wyglądem strony i ułatwia utrzymanie spójności wizualnej na całej witrynie. Przykład ten ilustruje, jak CSS może wpływać na interakcję użytkownika z elementami strony, co jest kluczowe w procesie tworzenia przyjaznych i intuicyjnych interfejsów użytkownika.

Pytanie 13

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. dodawania oraz modyfikacji danych we wszystkich tabelach bazy sklep
B. dodawania oraz modyfikacji danych w tabeli sklep
C. tworzenia oraz modyfikacji struktury wszystkich tabel w bazie sklep
D. tworzenia oraz modyfikacji struktury w tabeli sklep
Wiele błędnych odpowiedzi opiera się na mylnym zrozumieniu zakresu przyznawanych uprawnień. Przede wszystkim, uprawnienia 'CREATE' i 'ALTER' odnoszą się wyłącznie do struktury tabel i innych obiektów, a nie do danych przechowywanych w tabelach. Stąd wstawianie (INSERT) i zmiana danych (UPDATE) nie są umożliwione przez polecenie 'GRANT CREATE, ALTER', co jest kluczowym błędem w niektórych odpowiedziach. Wstawianie danych wymaga przyznania uprawnień 'INSERT', a zmiana danych 'UPDATE', których w tym przypadku nie przyznano. Kolejnym powszechnym nieporozumieniem jest mylenie odniesienia do jednej tabeli z odniesieniem do całej bazy danych. Uprawnienie 'ON sklep.*' wyraźnie sugeruje, że dotyczy wszystkich tabel w bazie danych o nazwie 'sklep', a nie tylko pojedynczej tabeli. To zrozumienie jest fundamentem dla odpowiedniego zarządzania prawami dostępu w praktyce administracyjnej baz danych. Najlepsze praktyki wskazują, że przy przyznawaniu uprawnień należy dokładnie określać, do jakich obiektów użytkownik ma mieć dostęp, co zmniejsza ryzyko nieautoryzowanych zmian i naruszeń bezpieczeństwa.

Pytanie 14

Co uzyskujemy po wykonaniu zapytania SQL?

Ilustracja do pytania
A. liczbę uczniów, których średnia ocen wynosi 5
B. suma ocen uczniów, których średnia ocen wynosi 5
C. całkowitą liczbę uczniów
D. średnią wszystkich ocen uczniów
Zapytanie SQL SELECT count(*) FROM Uczniowie WHERE srednia = 5; wykorzystuje funkcję agregującą count(*), która służy do zliczania liczby wierszy spełniających określone warunki. W tym przypadku warunkiem jest srednia = 5 co oznacza że zapytanie zlicza wszystkich uczniów których średnia ocen wynosi dokładnie 5. Jest to powszechna praktyka w analizie danych gdzie często potrzebujemy określić liczebność pewnych grup danych na przykład aby przeanalizować ich rozkład lub porównać je z innymi grupami. W profesjonalnej bazie danych zliczanie wierszy na podstawie kryteriów jest standardem co umożliwia generowanie raportów i podejmowanie decyzji na podstawie danych. Użycie count(*) bez dodatkowych parametrów jest zgodne z dobrymi praktykami ponieważ jest wydajne i łatwe w interpretacji. W praktyce stosowanie tego typu zapytań jest nieodzowne w działach analizy danych zarządzania relacjami z klientami czy w edukacji gdzie analizujemy wyniki uczniów.

Pytanie 15

W programie do edycji grafiki rastrowej, aby skoncentrować się na wybranej części obrazu, nie wpływając na pozostałe jego fragmenty, można zastosować

A. warstwy
B. odwrócenie
C. przycinanie
D. zmianę rozmiaru
Zastosowanie skalowania w edytorze grafiki rastrowej polega na zmianie rozmiaru obrazu, co wpływa na wszystkie jego elementy. Przykładowo, jeśli zdecydujemy się na skalowanie, wszystkie obiekty na obrazie zostaną powiększone lub pomniejszone w równym stopniu, co nie pozwala na selektywne modyfikacje. Inwersja, z kolei, to proces zmiany kolorów pikseli w obrazie na ich przeciwieństwa, co również nie umożliwia pracy na wybranej części obrazu bez zmiany innych elementów. Ponadto kadrowanie, które polega na przycinaniu części obrazu, również nie dostarcza narzędzi do edytowania wybranych elementów bez wpływu na resztę kompozycji. Takie podejścia są często mylnie postrzegane jako odpowiednie metody do pracy z grafiką rastrową, podczas gdy w rzeczywistości nie oferują elastyczności potrzebnej do profesjonalnej edycji. Nieprawidłowe wnioski mogą prowadzić do frustracji w trakcie edycji, zwłaszcza w bardziej złożonych projektach, gdzie precyzyjna kontrola nad elementami obrazu jest kluczowa. Dlatego istotne jest zrozumienie roli warstw jako jedynego narzędzia, które umożliwia niezależne zarządzanie elementami grafiki rastrowej.

Pytanie 16

W CSS, aby ustalić nietypowe odległości między słowami, używa się właściwości

A. letter-space
B. word-spacing
C. white-space
D. line-spacing
W języku CSS właściwość word-spacing jest używana do definiowania odstępu między wyrazami w elemencie tekstowym. Zwiększenie lub zmniejszenie odstępu między wyrazami może znacznie wpłynąć na czytelność i estetykę tekstu. Wartość tej właściwości można ustawić w jednostkach długości, takich jak piksele (px), em, rem lub procenty. Na przykład, zastosowanie word-spacing: 5px; w kodzie CSS spowoduje zwiększenie odstępu między wyrazami o 5 pikseli. Wartością domyślną tej właściwości jest 0, co oznacza, że odstępy są ustalane przez przeglądarkę na podstawie czcionki i innych parametrów tekstu. Użycie word-spacing może być szczególnie przydatne w przypadku projektowania stron internetowych, gdzie estetyka tekstu ma kluczowe znaczenie dla doświadczeń użytkownika. Dlatego, aby osiągnąć pożądany efekt wizualny, projektanci często manipulują odstępami między wyrazami w swoich stylach CSS, co jest zgodne z wytycznymi W3C dotyczącymi dostępności i czytelności treści na stronach internetowych.

Pytanie 17

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

function czytajImie(){
  var imie=null;
  do {
    imie=prompt("podaj imie: ");
    if (imie.length<3)
    alert("wprowadzony tekst jest niepoprawny");
  } while(imie.length<3);
}
A. Wczytanie tekstu zakończy się, gdy tekst będzie miał co najmniej 3 znaki
B. Pętla zostanie uruchomiona tylko raz
C. Funkcja zawiera pętlę, która powtarza się 3 razy
D. Tekst będzie wczytywany do czasu podania liczby większej niż 3
Funkcja czytajImie zawiera pętlę do-while która działa dopóki długość wprowadzonego ciągu znaków jest mniejsza niż 3 co oznacza że zakończenie pętli nastąpi gdy użytkownik wprowadzi tekst o długości co najmniej 3 znaków W praktyce oznacza to że funkcja wymaga od użytkownika podania imienia które będzie miało przynajmniej trzy znaki co jest powszechną praktyką podczas walidacji danych wejściowych w celu zapewnienia minimalnej ilości informacji Pętla do-while jest szczególnie przydatna w sytuacjach gdy musimy zagwarantować przynajmniej jedno wykonanie bloku kodu co tutaj pozwala na przynajmniej jednorazowe wywołanie okna prompt do wprowadzenia danych Tego typu walidacja jest podstawą podczas programowania interfejsów użytkownika gdzie poprawność i kompletność danych wejściowych jest kluczowa dla dalszego przetwarzania danych Warto również zauważyć że stosowanie tego rodzaju pętli w kontekście walidacji danych zwiększa użyteczność aplikacji poprzez zapewnienie że dane są zgodne z wymaganiami przed ich dalszym przetwarzaniem

Pytanie 18

W jakim standardzie języka hipertekstowego wprowadzono do składni znaczniki sekcji <footer>, <header>, <nav>?

A. HTML4
B. XHTML 2.0
C. HTML5
D. XHTML1.0
Zgadza się, w HTML4 nie było znaczników <footer>, <header> i <nav>, bo one pojawiły się później. HTML4 raczej skupiał się na prostym formatowaniu i strukturze. XHTML1.0 też tego nie oferuje, bo jest bardziej rygorystyczną wersją HTML i trzyma się zasad XML, co znaczy, że wszystko musi być zgodne z gramatyką XML, ale nowe semantyczne elementy nie są tam wprowadzone. A, no i XHTML 2.0 miał zmienić wszystko, ale nigdy nie wyszedł oficjalnie, więc w sumie odpuścili jego rozwój na rzecz HTML5. Tak więc to też pokazuje, że brak tych znaczników był sporym ograniczeniem w kontekście rozwoju internetu. Zresztą HTML5 ma ogromne wsparcie od twórców stron i narzędzi programistycznych, dlatego jest teraz numerem jeden w projektach webowych.

Pytanie 19

Które zdarzenie języka JavaScript jest wyzwalane w momencie, gdy kursor myszy znajduje się na elemencie do którego jest przypisane?

A. onmousedown
B. onmouseover
C. onmouseout
D. onmouseup
W tym pytaniu łatwo się pomylić, bo wszystkie wymienione zdarzenia są związane z myszką, ale każde z nich opisuje inny, dość precyzyjny moment interakcji użytkownika z elementem. Kluczowe jest zrozumienie, że pytanie dotyczy sytuacji, gdy kursor *znajduje się na elemencie*, czyli w praktyce momentu wejścia kursora w obszar tego elementu. Właśnie to zachowanie reprezentuje onmouseover. Zdarzenie onmouseup dotyczy chwili, gdy użytkownik puszcza (zwalnia) przycisk myszy. Nie ma znaczenia samo położenie kursora nad elementem, tylko to, że wcześniej przycisk został wciśnięty i teraz jest puszczany. Typowo wykorzystuje się je przy obsłudze drag & drop, przycisków, elementów interaktywnych, ale nie do reagowania na samo najechanie kursorem. Mylenie onmouseup z onmouseover wynika często z założenia, że „skoro klikam na elemencie, to pewnie chodzi o mysz nad elementem”, ale technicznie są to dwa różne etapy akcji. Z kolei onmouseout jest w pewnym sensie odwrotnością onmouseover. Wyzwala się wtedy, gdy kursor opuszcza obszar elementu, czyli przestaje się nad nim znajdować. Używa się go chociażby do cofania efektów stworzonych przy onmouseover, np. przywracania koloru, ukrywania dymka z podpowiedzią. Jeśli więc szukamy momentu, w którym kursor jest już nad elementem, to onmouseout opisuje raczej sytuację, kiedy z tego elementu „schodzimy”. Zdarzenie onmousedown uruchamia się przy wciśnięciu przycisku myszy, w chwili naciśnięcia, a nie najechania. Jest to ważne w interakcjach typu rysowanie na canvasie, łapanie suwaka, obsługa własnych kontrolek. W praktyce, jeżeli ktoś kojarzy wszystkie te zdarzenia jedynie ogólnie jako „coś od myszy”, to łatwo wrzucić je do jednego worka i strzelać odpowiedzi, ale według specyfikacji DOM Events każde z nich ma ściśle zdefiniowaną rolę. W kontekście pytania tylko onmouseover opisuje wejście kursora w obszar elementu i utrzymywanie się nad nim, więc właśnie ono jest poprawnym wyborem.

Pytanie 20

Zdefiniowano bazę danych z tabelą sklepy, która zawiera pola: nazwa, ulica, miasto, branza. W celu zlokalizowania wszystkich nazw sklepów spożywczych, które znajdują się tylko we Wrocławiu, należy wykorzystać kwerendę:

A. SELECT nazwa FROM sklepy WHERE branza="spozywczy" AND miasto="Wrocław"
B. SELECT nazwa FROM sklepy WHERE branza="spozywczy" OR miasto="Wrocław"
C. SELECT sklepy FROM nazwa WHERE branza="spożywczy" BETWEEN miasto="Wrocław"
D. SELECT sklepy FROM branza="spożywczy" WHERE miasto="Wrocław"
Odpowiedź 'SELECT nazwa FROM sklepy WHERE branza="spozywczy" AND miasto="Wrocław";' jest poprawna, ponieważ wykorzystuje właściwą składnię SQL do pobrania danych. W tym przypadku chcemy wybrać nazwy sklepów z tabeli 'sklepy', które spełniają dwa warunki: branża musi być równa 'spozywczy', a miasto musi być równe 'Wrocław'. Użycie operatora AND zapewnia, że oba kryteria muszą być spełnione jednocześnie, co jest kluczowe w tym zadaniu. Ponadto, dobrym zwyczajem jest stosowanie podwójnych cudzysłowów dla nazw kolumn i wartości tekstowych. Przykładowo, w praktyce taka kwerenda może być użyta do analizy lokalizacji sklepów spożywczych w danym mieście, co może być istotne dla strategii marketingowej lub planowania rozwoju sieci handlowej. Zrozumienie struktury SQL oraz sposób formułowania zapytań jest fundamentem efektywnego zarządzania danymi w relacyjnych bazach danych.

Pytanie 21

W języku CSS określono styl dla pola edycyjnego. Pole to będzie miało jasnozielony kolor tła, gdy będzie w trybie edycji.

A. jeśli jest to pierwsze wystąpienie tego elementu w dokumencie.
B. w każdej sytuacji.
C. gdy będzie na nie najechane kursorem bez kliknięcia.
D. po naciśnięciu na nie myszką w celu wpisania tekstu.
Inne odpowiedzi mogą wydawać się logiczne na pierwszy rzut oka, jednak każda z nich ma swoje wady. Stwierdzenie, że tło zmienia się "gdy zostanie wskazane kursorem myszy bez kliknięcia" jest nieprawidłowe, ponieważ stan "focus" wymaga interakcji użytkownika poprzez kliknięcie. W przeciwnym razie, pole nie będzie miało przypisanego stylu. Możliwość ustawienia tła przy najechaniu kursorem myszy można osiągnąć za pomocą pseudo-klasy :hover, ale to zupełnie inny kontekst. Twierdzenie, że tło zmienia się "w każdym przypadku" jest również mylące, ponieważ reguła CSS dotyczy tylko specyficznego stanu, a nie wszystkich stanów. Ostatecznie, stwierdzenie, że zmiana tła zachodzi "jeśli jest to pierwsze wystąpienie tego znacznika w dokumencie" jest nieprawdziwe, ponieważ reguła CSS odnosi się do każdego elementu <input>, który znajdzie się w stanie "focus", niezależnie od jego miejsca w dokumencie. Tego rodzaju myślenie prowadzi do nieporozumień dotyczących zastosowania selektorów CSS oraz ich właściwości. Dlatego ważne jest, aby mieć jasność co do mechanizmów działania CSS i zrozumieć, że odpowiednie style są stosowane w oparciu o interakcje użytkownika, a nie tylko na podstawie struktury dokumentu.

Pytanie 22

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

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

Pytanie 23

W SQL warunek ten odpowiada warunkowi liczba >= 10 AND liczba <= 100?

A. liczba LIKE '10%'
B. liczba IN (10, 100)
C. NOT (liczba < 10 AND liczba > 100)
D. liczba BETWEEN 10 AND 100
Odpowiedź 'liczba BETWEEN 10 AND 100' jest prawidłowa, ponieważ odpowiada warunkowi, który sprawdza, czy wartość zmiennej 'liczba' mieści się w przedziale od 10 do 100, włączając oba końce. W SQL konstrukcja 'BETWEEN' jest preferowana, ponieważ jest bardziej czytelna i zrozumiała dla programistów, co sprzyja utrzymaniu kodu. Przykładowe zapytanie SQL używające tego warunku mogłoby wyglądać tak: 'SELECT * FROM tabela WHERE liczba BETWEEN 10 AND 100;'. Zastosowanie 'BETWEEN' unika potencjalnych błędów związanych z używaniem operatorów porównawczych i zapewnia, że obie granice przedziału są respektowane. W praktyce, korzystanie z 'BETWEEN' w zapytaniach SQL jest zgodne z dobrymi praktykami programowania, gdyż poprawia czytelność i ułatwia analizę kodu. Dodatkowo, warto zauważyć, że 'BETWEEN' działa również z datami, co czyni go uniwersalnym narzędziem w SQL.

Pytanie 24

W HTML atrybut alt w tagu img służy do określenia

A. tekstu, który pojawi się, gdy obrazek nie może być załadowany
B. właściwości grafiki, takie jak rozmiar, ramka, wyrównanie
C. lokalizacji i nazwy pliku źródłowego obrazu
D. napisu, który będzie widoczny pod obrazem
Odpowiedź, która wskazuje, że atrybut alt znacznika img w języku HTML definiuje tekst, który będzie wyświetlony, jeśli grafika nie może być poprawnie załadowana, jest całkowicie poprawna. Atrybut alt jest kluczowym elementem dostępności w sieci, ponieważ dostarcza użytkownikom alternatywne informacje o zawartości obrazu, co jest szczególnie ważne dla osób korzystających z czytników ekranu. Na przykład, jeśli zdjęcie w artykule nie jest dostępne z powodu problemów z łączem internetowym, atrybut alt zapewnia kontekst, dzięki czemu użytkownik jest informowany o tym, co miało być przedstawione. Dobre praktyki zalecają, aby tekst w atrybucie alt był zwięzły, ale jednocześnie dostarczał wystarczających informacji o obrazie. Warto również zauważyć, że stosowanie atrybutu alt wspiera SEO (optymalizację pod kątem wyszukiwarek), ponieważ wyszukiwarki mogą używać tych informacji do indeksowania treści. Przykład: <img src='example.jpg' alt='Zdjęcie pięknego krajobrazu górskiego'>.

Pytanie 25

Jak można zaznaczyć komentarz w kodzie PHP?

A. /* … */
B. <? … ?>
C. <!-- …. -->
D. /? … ?/
Komentarze w kodzie PHP można umieszczać za pomocą znaków /* … */. Jest to standardowy sposób na dodawanie notatek, które są ignorowane przez interpreter PHP. Komentarze wieloliniowe są szczególnie przydatne w przypadku, gdy chcemy opisać większe fragmenty kodu lub wyłączyć sekcje kodu bez ich usuwania. Na przykład, możemy umieścić w komentarzach informacje o autorze, dacie powstania lub szczegóły dotyczące funkcjonalności danej funkcji. Dobrą praktyką jest również dokumentowanie ważnych informacji dotyczących zmiennych czy parametrów funkcji, co ułatwia przyszłą konserwację kodu. Warto pamiętać, że użycie komentarzy jest kluczowe w pracy zespołowej lub w projektach długoterminowych, gdzie zrozumienie kodu przez innych programistów może być kluczowe dla sukcesu projektu. Ponadto, stosowanie komentarzy zgodnie z dobrymi praktykami programowania zwiększa czytelność kodu i ułatwia jego późniejsze modyfikacje oraz debugowanie.

Pytanie 26

Wskaż nieprawdziwe zdanie dotyczące normalizacji dźwięku.

A. Podczas normalizacji poziom głośności całego nagrania jest wyrównywany.
B. Gdy najgłośniejszy fragment dźwięku ma wartość pół na skali, to wszystkie dźwięki zostaną wzmocnione dwukrotnie - w ten sposób najgłośniejszy fragment osiągnie maksymalną wartość na skali.
C. Funkcja normalizacja znajduje się w menu programu do edycji dźwięku.
D. Normalizacja polega na obniżeniu poziomu najgłośniejszej próbki w sygnale do określonej wartości, a następnie w odniesieniu do niej proporcjonalnym zwiększeniu głośności pozostałej części sygnału.
Twoja odpowiedź dobrze wskazuje na to, jak działa normalizacja. Generalnie chodzi o to, żeby dostosować głośność całego nagrania tak, aby najgłośniejszy fragment nie był za cichy. Kiedy ten najgłośniejszy kawałek jest na poziomie 50%, normalizacja podnosi głośność całego nagrania, żeby ten fragment był na maksa. W praktyce to też oznacza, że inne, cichsze części nagrania też będą głośniejsze, co jest ważne, bo pozwala to utrzymać przyjemny balans w dźwięku. Normalizacja jest bardzo powszechna, zwłaszcza w produkcji muzyki, żeby różne utwory miały podobny poziom głośności, bo różnice mogą być dość irytujące podczas słuchania. Ważne, żeby zawsze sprawdzić, czy po normalizacji nie ma jakichś zniekształceń czy clippingu. Czasem warto też używać normalizacji razem z innymi technikami, jak kompresja, żeby osiągnąć jeszcze lepszy efekt końcowy.

Pytanie 27

Aby zdefiniować selektor klasy w kaskadowych arkuszach stylów, należy użyć symbolu

A. *
B. : (dwukropek)
C. #
D. . (kropka)
Kiedy mówimy o selektorach w CSS, to warto pamiętać, że jeśli wybierzesz błędny symbol, to nie zadziała. Na przykład, dwukropek (:) nie definiuje klas, a raczej pseudoklasy i pseudoelementy, takie jak :hover, czy :focus, które są przydatne, gdy chcesz stylizować elementy w różnych stanach. Hash (#) to z kolei znacznik dla identyfikatora – możesz go użyć, ale tylko raz w całym dokumencie. Trochę ogranicza, nie? A gwiazdka (*) to selektor uniwersalny, działa na wszystko, co wcale nie jest precyzyjne. Dlatego pamiętaj, że tylko kropka (.) jest tą właściwą opcją do definiowania klas w CSS, bo to daje więcej możliwości w stylizacji HTML.

Pytanie 28

Według którego pola tabeli zostały pogrupowane dane w przedstawionym raporcie?

Ilustracja do pytania
A. rok
B. id_uczestnika
C. wynik
D. nazwa
Poprawnie wskazano, że dane w raporcie zostały pogrupowane według pola „rok”. Widać to po tym, że poszczególne rekordy są zebrane w bloki oznaczone nagłówkami 2009, 2010, 2011, 2012, 2020, a dopiero pod każdym z tych lat pojawiają się konkretne konkursy, id_uczestnika i wynik. To jest właśnie klasyczny przykład grupowania danych w raporcie po jednym z pól tabeli – w tym przypadku po kolumnie roku. W praktyce, czy to w SQL, czy w kreatorach raportów (np. w MS Access, LibreOffice Base, Crystal Reports, narzędziach BI), gdy projektujemy raport, często definiujemy tzw. sekcję grupującą (group header) opartą na wybranym polu. Tutaj takim polem jest rok, więc każda zmiana wartości roku powoduje rozpoczęcie nowej grupy i wyświetlenie nagłówka z tą wartością. To poprawia czytelność i pozwala łatwo analizować dane w podziale na lata. Moim zdaniem warto zapamiętać, że grupowanie po dacie lub roku to jedna z najczęściej stosowanych praktyk raportowych: używa się tego do raportów sprzedaży w latach, statystyk odwiedzin strony WWW, wyników egzaminów itd. W SQL można by to od strony danych poprzedzić np. zapytaniem sortującym: SELECT * FROM konkursy ORDER BY rok, nazwa; a samo faktyczne grupowanie wizualne realizuje już mechanizm raportów. Dobrą praktyką jest też, żeby pole, po którym grupujemy, było najpierw użyte do sortowania – inaczej grupy mogą się „rozsypać” i raport stanie się nieczytelny.

Pytanie 29

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr { background-color: Pink; }
B. td, th { background-color: Pink; }
C. tr:active { background-color: Pink; }
D. tr:hover { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 30

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

Pytanie 31

Aby wykonać usunięcie tabeli, należy użyć kwerendy

A. DELETE
B. DROP TABLE
C. UNIQUE
D. TRUNCATE TABLE
Poprawna odpowiedź to DROP TABLE, ponieważ jest to standardowa komenda SQL używana do całkowitego usunięcia tabeli z bazy danych. Użycie tej komendy powoduje nie tylko usunięcie samej struktury tabeli, ale również wszystkich danych, które były w niej przechowywane. Przykładowo, jeśli mamy tabelę 'Użytkownicy' i chcemy ją usunąć, piszemy: DROP TABLE Użytkownicy; Należy jednak pamiętać, że po wykonaniu tej operacji nie można odzyskać ani tabeli, ani jej danych, dlatego ważne jest, aby przed takim krokiem wykonać odpowiednie kopie zapasowe lub upewnić się, że dane są już zbędne. W kontekście dobrych praktyk, przed usunięciem tabeli warto przeanalizować wpływ na inne obiekty bazy danych, takie jak klucze obce, które mogą być związane z usuwaną tabelą. Istotne jest również zrozumienie, że DROP TABLE nie można użyć, jeśli w tabeli istnieją aktywne ograniczenia lub jeśli jest ona częścią jakiejś transakcji. W takiej sytuacji, czynności te należy zrealizować w odpowiedniej kolejności, aby uniknąć błędów.

Pytanie 32

Aby posortować listę uczniów według daty urodzenia w bazie danych, jakie polecenie należy zastosować?

A. SELECT imie,nazwisko,klasa from uczniowie group by rok_urodzenia
B. SELECT imie,nazwisko,klasa from uczniowie order by nazwisko
C. SELECT imie,nazwisko,klasa from uczniowie where rok_urodzenia = 1994
D. SELECT imie,nazwisko,klasa from uczniowie order by rok_urodzenia
Aby uporządkować listę uczniów według roku urodzenia w bazie danych, należy zastosować polecenie SQL 'SELECT imie,nazwisko,klasa from uczniowie order by rok_urodzenia'. Klauzula 'ORDER BY' jest kluczowa w SQL, ponieważ pozwala na sortowanie wyników zapytania według określonej kolumny, w tym przypadku 'rok_urodzenia'. Użycie tej klauzuli zapewnia, że wyniki są prezentowane w porządku rosnącym lub malejącym, co jest szczególnie przydatne, gdy chcemy analizować dane w kontekście czasowym. Na przykład, jeżeli mamy tabelę uczniów z kolumnami 'imie', 'nazwisko', 'klasa' oraz 'rok_urodzenia', użycie tego polecenia umożliwi nam nie tylko zobaczenie imion i nazwisk uczniów, ale również ich uporządkowanie według daty urodzenia. Zgodnie z normami SQL, jest to standardowa metoda sortowania danych, która zwiększa przejrzystość i użyteczność wyników. Przykładowo, jeśli w tabeli są uczniowie urodzeni w różnych latach, dzięki temu zapytaniu, najpierw zobaczymy uczniów urodzonych w najwcześniejszych latach, co może być istotne przy podejmowaniu decyzji organizacyjnych w szkole.

Pytanie 33

W języku JavaScript rezultat wykonania instrukcji zmienna++; będzie równy wynikowi instrukcji

A. zmienna--;
B. zmienna += 1;
C. zmienna === zmienna + 1;
D. zmienna = zmienna + 10;
Wybór odpowiedzi sugerujących <span>zmienna--;</span> jest mylny, ponieważ operator <span>--</span> to operator dekrementacji, który zmniejsza wartość zmiennej o 1, co stoi w sprzeczności z celem inkrementacji. Implementacja <span>zmienna === zmienna + 1;</span> jest także błędna z dwóch powodów. Po pierwsze, porównuje wartość zmiennej z wartością zmiennej zwiększonej o 1, co w większości przypadków zwróci <span>false</span>, a nie zwiększa samej zmiennej. Takie porównania są używane w logice warunkowej, jednak nie mają zastosowania w kontekście zwiększania wartości zmiennej. Ostatnia propozycja <span>zmienna = zmienna + 10;</span> jest niepoprawna, ponieważ zwiększa wartość o 10, a nie o 1, co diametralnie zmienia wynik działania. Warto pamiętać, że w programowaniu istotne jest zrozumienie działania operatorów i ich zastosowania, aby uniknąć błędów logicznych, które mogą prowadzić do nieprzewidzianych wyników. Używając typowych konstrukcji w JavaScript, jak pętle czy funkcje, programiści często korzystają z operatorów inkrementacji i przypisania, co sprawia, że ich prawidłowe wykorzystanie jest kluczowe w codziennej pracy. Zrozumienie różnic między tymi operatorami jest zatem fundamentem w nauce programowania w JavaScript.

Pytanie 34

W języku PHP funkcja trim ma za zadanie

A. porównywać dwa napisy i wypisywać część wspólną.
B. z obu końców napisu usuwać białe znaki lub inne znaki podane w parametrze.
C. zmniejszać napis o wskazaną w parametrze liczbę znaków.
D. wyznaczyć długość napisu.
W PHP łatwo pomylić różne funkcje operujące na łańcuchach znaków, bo często używa się ich obok siebie i wszystkie „coś robią z napisem”. Funkcja trim() bywa mylona z innymi narzędziami, które mierzą długość, porównują teksty albo je przycinają w środku. Warto więc to sobie spokojnie uporządkować. Trim nie służy do wyznaczania długości napisu – do tego jest funkcja strlen(), która zwraca liczbę znaków w łańcuchu i nic z nim nie usuwa ani nie modyfikuje. To typowy błąd: ktoś widzi krótką nazwę „trim” i kojarzy ją z „przycięciem do długości”, a tu chodzi wyłącznie o usuwanie znaków z obu końców. Funkcja trim nie porównuje też dwóch napisów i nie wypisuje części wspólnej. Jeżeli chcemy porównać łańcuchy, używamy operatorów porównania (==, ===) albo funkcji strcmp(), strcasecmp() itd. Szukanie części wspólnej między dwoma tekstami wymaga zupełnie innych technik, np. funkcji strpos(), substr(), czasem nawet algorytmów dopasowania wzorców – ale to zupełnie inny temat niż trim. Częste jest też mylne przekonanie, że trim „zmniejsza napis o wskazaną liczbę znaków”, jakby działał na zasadzie: przekaż n i utnij tyle znaków. Tymczasem trim w ogóle nie operuje na liczbach, tylko na zbiorze znaków podanych w drugim parametrze. Usuwa wszystkie wystąpienia tych znaków z początku i końca, niezależnie od tego, ile ich tam jest. Jeżeli ktoś chce przyciąć łańcuch do określonej długości, używa się substr() albo mb_substr() (dla UTF-8), czasem w połączeniu z funkcjami multibajtowymi. Moim zdaniem podstawowy błąd myślowy polega tu na traktowaniu „przycinania” bardzo ogólnie, bez rozróżnienia: czy przycinamy do długości, czy usuwamy białe znaki na brzegach, czy porównujemy zawartość. Trim jest funkcją specjalistyczną: normalizuje początek i koniec łańcucha, co jest kluczowe przy walidacji danych wejściowych, porównywaniu stringów i zapisywaniu ich w spójnej postaci. Dobrą praktyką jest najpierw zastosować trim na danych od użytkownika, a dopiero potem używać strlen, strcmp czy substr do dalszych operacji. Wtedy każdy element ma swoją jasną, techniczną rolę.

Pytanie 35

Czy możliwa jest przedstawiona transformacja obrazu rastrowego dzięki funkcji?

Ilustracja do pytania
A. zmniejszenie liczby kolorów
B. ustawienia jasności i kontrastu
C. odcienie szarości
D. barwienie
Barwienie to proces edycji obrazu rastrowego, który polega na modyfikacji istniejących kolorów poprzez nałożenie nowego odcienia na całość lub część obrazu. Dzięki temu możemy uzyskać efekt jak na przedstawionym obrazie, gdzie oryginalne kolory zostały zastąpione jednolitą barwą. Barwienie jest powszechnie stosowane w grafice komputerowej do nadawania dramatyzmu lub zmiany nastroju obrazu, co jest szczególnie przydatne w fotografii artystycznej czy projektach reklamowych. Narzędzia takie jak Adobe Photoshop czy GIMP oferują funkcje barwienia, pozwalając artystom na twórcze eksperymenty z kolorami. Technika ta może być stosowana również w procesie tworzenia materiałów wizualnych w branży marketingowej, gdzie spójna kolorystyka jest kluczowa dla budowania rozpoznawalności marki. Ważne jest, aby pamiętać o zachowaniu naturalnego balansu i harmonii w barwach, co jest zgodne z zasadami dobrych praktyk w projektowaniu graficznym. Barwienie umożliwia również korektę kolorystyczną, co jest istotne w procesie przygotowania materiałów do druku, gdzie kolory muszą być dostosowane do specyfikacji technicznych drukarni.

Pytanie 36

Kod programu wraz z komentarzami oraz opisem algorytmów i metod stanowi dokumentację

A. audiowizualną.
B. urzędową.
C. techniczną.
D. graficzną.
Poprawnie – mówimy tutaj o dokumentacji technicznej. Kod programu razem z komentarzami w kodzie, opisem algorytmów, struktur danych, interfejsów, sposobu działania poszczególnych modułów czy klas to właśnie klasyczny przykład dokumentacji technicznej. W branży IT przyjmuje się, że dokumentacja techniczna jest skierowana głównie do programistów, administratorów, czasem też architektów systemów, czyli osób, które będą rozwijać, utrzymywać lub integrować dany system. Nie jest to materiał marketingowy ani „urzędowy”, tylko coś, co ma pomóc zrozumieć jak system działa od środka. W praktyce dokumentacja techniczna obejmuje na przykład: komentarze w kodzie źródłowym (zgodne z konwencją danego języka, np. PHPDoc, JSDoc), opisy algorytmów w plikach README, wiki projektowe, diagramy UML, schematy przepływu danych, opisy endpointów API, a nawet instrukcje uruchomienia środowiska developerskiego. Moim zdaniem im lepiej zrobiona taka dokumentacja, tym łatwiej jest później komuś „wejść” w projekt bez zadawania dziesiątek pytań. Dobre praktyki mówią, żeby dokumentacja techniczna była aktualna, wersjonowana razem z kodem (np. w Git), a komentarze w kodzie nie powtarzały tego, co oczywiste, tylko wyjaśniały „dlaczego tak”, a nie „co robi ta linijka”. W projektach webowych dokumentacja techniczna opisuje na przykład, jak działa logika logowania użytkownika, jak są zrobione zapytania do bazy, jakie są ograniczenia wydajnościowe. To wszystko pozwala utrzymać spójność systemu i ułatwia debugowanie oraz rozwój nowych funkcji. Dlatego odpowiedź „techniczną” jest jak najbardziej zgodna z tym, jak branża rozumie dokumentację w kontekście programowania i algorytmów.

Pytanie 37

W bazie danych znajduje się tabela uczniowie z kolumnami: imie, nazwisko, klasa. Jakie polecenie SQL należy wykorzystać, aby znaleźć imiona oraz nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';
B. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN 'M%';
C. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN 'M%';
D. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = 'M%';
Podejście, które wykorzystuje IN w kontekście wyszukiwania wzorców jest niepoprawne, ponieważ operator IN służy do porównywania wartości z zestawem możliwych wartości, a nie do wyszukiwania wzorców. W SQL IN używa się, gdy chcemy sprawdzić, czy dana kolumna posiada jedną z kilku określonych wartości. Na przykład, gdybyśmy chcieli znaleźć wszystkich uczniów o nazwiskach 'Mroz', 'Michał' lub 'Malinowski', moglibyśmy użyć zapytania z IN, ale nie w kontekście wzorców. Kolejny błąd w zapytaniu dotyczy użycia ORDER BY w sposób, który nie ma sensu w kontekście filtrowania danych. ORDER BY służy do sortowania wyników, a nie do ich selekcji. Próba użycia tej konstrukcji do stworzenia warunku wyszukiwania prowadzi do nieporozumień, ponieważ nie można łączyć warunków filtrujących z sortowaniem w jednym poleceniu w podany sposób. Podobnie, użycie '=' w połączeniu z LIKE jest błędne, ponieważ '=' nie obsługuje symboli wieloznacznych. Typowym błędem jest mylenie funkcji służących do wyszukiwania z funkcjami do porządkowania danych, co skutkuje niepoprawnym zrozumieniem sposobu działania SQL. Ważne jest, aby znać funkcjonalność i ograniczenia poszczególnych operatorów SQL, aby poprawnie formułować zapytania i osiągać zamierzone cele w pracy z bazami danych.

Pytanie 38

Przedstawione polecenie SQL nadaje użytkownikowi adam@localhost prawa:

GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost
A. zarządzania strukturą bazy danych klienci.
B. zarządzania strukturą tabeli klienci.
C. manipulowania danymi w tabeli klienci.
D. manipulowania danymi bazy danych klienci.
Prawidłowa odpowiedź wskazuje, że polecenie SQL 'GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost' nadaje użytkownikowi o nazwie 'adam' z hosta 'localhost' prawa do manipulowania danymi w tabeli 'klienci'. Te konkretne operacje, takie jak SELECT (wybieranie danych), INSERT (wstawianie nowych danych), UPDATE (aktualizowanie istniejących danych), DELETE (usuwanie danych) pozwalają użytkownikowi na pełne zarządzanie danymi, ale nie strukturą tabeli czy bazy danych. Jest to zgodne z zasadą minimalnych uprawnień, która nakazuje nadawać użytkownikom tylko te uprawnienia, które są im bezwzględnie potrzebne do wykonywania ich zadań. Należy pamiętać, że nadanie większych uprawnień, takich jak zarządzanie strukturą bazy danych, mogłoby stworzyć potencjalne zagrożenie dla bezpieczeństwa systemu.

Pytanie 39

W języku PHPnie ma możliwości

A. zmienianie dynamiczne treści strony HTML w przeglądarce
B. obróbka informacji przechowywanych w bazie danych
C. przetwarzanie danych z formularzy
D. tworzenie dynamicznej zawartości strony internetowej
Odpowiedź dotycząca zmieniania dynamicznej zawartości strony HTML w przeglądarce jest poprawna, ponieważ PHP jest językiem skryptowym działającym po stronie serwera. Oznacza to, że PHP nie jest w stanie bezpośrednio modyfikować zawartości strony HTML po jej załadowaniu w przeglądarce użytkownika. Zamiast tego, PHP generuje HTML, który następnie jest przesyłany do przeglądarki. Dynamiczna zawartość strony może być generowana na podstawie danych z bazy danych lub formularzy, ale wszelkie zmiany w HTML po stronie klienta wymagają użycia języków, które działają po stronie przeglądarki, takich jak JavaScript. Przykładem może być sytuacja, w której użytkownik wypełnia formularz, a dane są przetwarzane przez PHP, które zwraca zaktualizowaną stronę. W przypadku potrzeby dynamicznych zmian, JavaScript może być użyty do manipulacji DOM po załadowaniu strony. Warto również zauważyć, że zgodnie z dobrymi praktykami, powinno się oddzielać logikę serwerową (PHP) od logiki klienckiej (JavaScript), co przyczynia się do lepszej struktury kodu i ułatwia jego utrzymanie.

Pytanie 40

Który format graficzny rastrowy jest obsługiwany przez przeglądarki internetowe?

A. TGA
B. PCX
C. FLIF
D. PNG
Format PNG (Portable Network Graphics) to jeden z tych formatów, które są naprawdę popularne w sieci. Przeglądarki go dobrze obsługują, co jest dużym plusem. Został stworzony jako lepsza wersja formatu GIF i do tego ma większą paletę kolorów oraz wspiera przezroczystość. To oznacza, że jakość obrazka pozostaje wysoka, kiedy go zapisujesz, bo PNG korzysta z bezstratnej kompresji. Dodatkowo, ten format pozwala na różne stopnie przezroczystości, co czyni go idealnym do różnych grafik w Internecie, na przykład logo czy ikony. Fajnie, że jest zgodny z HTML5 i CSS, bo to ułatwia pracę przy projektowaniu stron. Można go używać z kolorami w trybie RGBA, dzięki czemu można dodawać fajne efekty z przezroczystością, co zdecydowanie poprawia wygląd stron. W praktyce wiele witryn korzysta z PNG, bo nie tylko zachowuje jakość, ale też nie zajmuje dużo miejsca na serwerze, co sprawia, że strony ładują się szybciej i użytkownicy mają lepsze doświadczenia.