Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Rozpoczęcie: 9 września 2026 11:59
Zakończenie: 9 września 2026 12:20
Egzamin niezdany
Wynik: 18/40 punktów (45,0%)
Wymagane minimum: 20 punktów (50%)
Twój wynik na tle innych
Twój wynik jest lepszy niż 26% podejść do kwalifikacji INF.03.
Porównanie z 40715 zakończonymi podejściami do tej kwalifikacji (dane zbiorcze, bez wyników indywidualnych).
Zachowaj ten wynik na koncie
Załóż darmowe konto albo zaloguj się - ten egzamin przypiszemy do Twojego konta, więc wrócisz do swoich błędów, będziesz śledzić postęp i dostaniesz powtórki dobrane do Twoich odpowiedzi.
Jakie będzie działanie podanych instrukcji JavaScript?
var elementy = document.getElementsByClassName("styl1"); for(var i = 0; i < elementy.length; i++) elementy[i].style.fontWeight = "bolder";
A. Wyłącznie dla pierwszego elementu przypisanego do klasy styl1 zostanie nadany styl pogrubienia tekstu bolderTwoja odpowiedź
B. Jedynie dla elementu o id równym styl1 będzie przypisany styl pogrubienia tekstu na bolder
C. Dla wszystkich elementów przypisanych do klasy styl1 zostanie nadany styl pogrubienia tekstu bolderPoprawna odpowiedź
D. Dla wszystkich elementów na stronie zostanie zastosowany styl pogrubienia tekstu na bolder
Niepoprawna odpowiedź. Jednym z często popełnianych błędów jest założenie że metoda getElementsByClassName przypisuje styl wszystkim elementom na stronie. W rzeczywistości zwraca ona tylko te elementy które posiadają określoną klasę styl1. To ogranicza zakres działania funkcji wyłącznie do wybranych elementów z przypisaną klasą co jest istotne dla zrozumienia selektorów w JavaScript. Innym nieporozumieniem może być przekonanie że metoda działa podobnie do selektorów CSS takich jak ID gdzie tylko jeden element jest modyfikowany. W rzeczywistości metoda ta operuje na kolekcji elementów a nie na pojedynczym elemencie. Dodatkowo częstym błędem jest myślenie że getElementsByClassName działa jak querySelector który mógłby zwrócić tylko pierwszy napotkany element. To nieporozumienie może prowadzić do błędnych założeń na temat zakresu i efektu działania skryptu. Warto również pamiętać że manipulacja stylami poprzez bezpośrednie modyfikowanie właściwości style elementu często jest bardziej wydajna niż modyfikowanie arkuszy stylów CSS zwłaszcza w kontekście dynamicznego działania skryptów na stronie internetowej. Kluczowe jest zrozumienie jak różne metody selekcji i manipulacji dokumentem wpływają na działanie i wydajność aplikacji webowych oraz unikanie myślenia że jedna metoda selekcji jest uniwersalna dla wszystkich celów i przypadków użycia co jest istotne w profesjonalnym podejściu do programowania w JavaScript i pracy z DOM.
Pytanie 2
Podany fragment dokumentu HTML zawierający kod JavaScript sprawi, że po naciśnięciu przycisku
A. obraz1.png zostanie wymieniony na obraz2.png
B. obraz2.png zostanie wymieniony na obraz1.png
C. obraz2.png zostanie znikniętyTwoja odpowiedź
D. obraz1.png zostanie zniknięty
Poprawna odpowiedź. Załączony fragment kodu HTML pokazuje dwa elementy img oraz przycisk. Obrazek obraz2.png ma przypisany atrybut id o wartości id1. W kodzie JavaScript przypisanym do zdarzenia onclick przycisku wykorzystywana jest metoda document.getElementById('id1').style.display='none'. Ta metoda odwołuje się bezpośrednio do elementu o identyfikatorze id1 czyli obrazka obraz2.png i zmienia jego styl CSS display na none. W praktyce oznacza to że element ten zostanie ukryty na stronie po naciśnięciu przycisku. Praktyczne zastosowanie tej techniki to dynamiczne zarządzanie widocznością elementów na stronie bez konieczności jej przeładowania co poprawia doświadczenie użytkownika. Tego typu manipulacje DOM (Document Object Model) są podstawą interaktywnych aplikacji webowych i są powszechnie używane w nowoczesnym programowaniu JavaScript. Dobrym standardem jest jednak unikanie bezpośredniego pisania skryptów JavaScript w HTML co poprawia czytelność kodu i jego utrzymywalność
Pytanie 3
W kodzie HTML5 znajduje się fragment, który zawiera błąd walidacji. Jakiego rodzaju jest to błąd?
C. Znaczniki powinny być zapisane wielkimi literami.
D. Pierwszy znacznik <p> nie został zamknięty.Twoja odpowiedź
Poprawna odpowiedź. W tym zadaniu chodziło o rozpoznanie typowego błędu związanego z poprawnym zamykaniem znaczników HTML, a dokładniej – ze znacznikiem <p>. W przedstawionym kodzie rzeczywiście pierwszy znacznik <p> nie został zamknięty przed pojawieniem się kolejnego bloku <p>, co powoduje naruszenie struktury dokumentu. Według specyfikacji HTML5, element <p> nie powinien być zagnieżdżany ani przerwany przez inny blokowy element (w tym przypadku przez drugi <p>). Przeglądarki zwykle próbują automatycznie domykać taki znacznik, ale nie jest to dobra praktyka – takie poleganie na mechanizmach autokorekty może później prowadzić do trudnych do wykrycia błędów wizualnych albo nieprzewidywalnych efektów w stylach CSS. Z mojego doświadczenia wynika, że konsekwentne zamykanie znaczników nie tylko poprawia czytelność kodu, ale i ułatwia pracę zespołową oraz skalowanie projektu. Przykład: jeśli piszesz większy artykuł i zapomnisz zamknąć <p>, cała dalsza część tekstu może zostać potraktowana jako jeden paragraf. To potrafi solidnie namieszać, nawet w prostych stronach! Branża webowa od lat promuje zasadę – pisz zgodnie ze specyfikacją, a będziesz miał mniej problemów później. Zawsze lepiej przejrzeć strukturę dokumentu dwa razy, niż potem szukać błędów na produkcji. Przy pracy z edytorami kodu warto korzystać z funkcji podświetlania składni lub walidatorów HTML, które od razu wyłapują takie potknięcia.
Pytanie 4
Co utworzyć dla pól często wyszukiwanych lub sortowanych, aby przyspieszyć operacje na bazie?
A. więzy integralności
B. osobną tabelę na te pola
C. indeksPoprawna odpowiedź
D. klucz obcyTwoja odpowiedź
Niepoprawna odpowiedź. Pozostałe elementy nie służą do przyspieszania wyszukiwania. Klucz obcy i więzy integralności pilnują SPÓJNOŚCI danych, a tworzenie osobnej tabeli na te pola nie przyspiesza zapytań. Operacje wyszukiwania i sortowania przyspiesza indeks.
Pytanie 5
Jaką rozdzielczość należy przyjąć, aby uzyskać proporcje obrazu 16:9, zakładając, że piksel ma formę kwadratu?
A. 2560 na 2048 pikseli
B. 800 na 480 pikseli
C. 320 na 240 pikseli
D. 1366 na 768 pikseliTwoja odpowiedź
Poprawna odpowiedź. Proporcje obrazu 16:9 są standardem szerokokątnym, powszechnie stosowanym w telewizji, filmach oraz w grach komputerowych. Przy rozdzielczości 1366 na 768 pikseli, stosunek szerokości do wysokości wynosi 16 do 9, co oznacza, że dla każdego 16 pikseli szerokości przypada 9 pikseli wysokości. Technicznie, aby obliczyć proporcje obrazu, należy podzielić szerokość przez wysokość. W tym przypadku 1366/768 daje wartość równą około 1.77, co odpowiada proporcji 16:9. Takie rozdzielczości są często używane w laptopach oraz monitorach HD, co czyni je idealnym wyborem do zastosowań multimedialnych. Standard 16:9 stał się powszechnie akceptowanym formatem, co wpływa na kompatybilność treści wizualnych, umożliwiając ich odpowiednie wyświetlanie na różnych urządzeniach. Użycie tej rozdzielczości zapewnia również lepszą jakość obrazu w porównaniu z niższymi rozdzielczościami, co jest kluczowe w kontekście nowoczesnych technologii wyświetlania.
Pytanie 6
Jaką wartość zwróci funkcja napisana w języku C++, gdy jej argumentami są a = 4 i b = 3?
longintfun1(inta, intb) {longintwynik=1;for(inti=0; i < b; i++)wynik*=a;returnwynik;}
A. 64Poprawna odpowiedź
B. 16
C. 12
D. 1Twoja odpowiedź
Niepoprawna odpowiedź. Wartości, które nie są prawidłowymi odpowiedziami, mogą wynikać z błędnych interpretacji działania funkcji. Na przykład, odpowiedź wskazująca na 1 sugeruje, że wynik funkcji zacząłby się od wartości zerowej, co jest nieprawidłowe, ponieważ każda potęga liczby wynosi co najmniej 1, o ile podstawą jest liczba różna od zera. Pomocne w zrozumieniu tego jest zapoznanie się z regułą mnożenia, która mówi, że każda liczba podniesiona do zera wynosi 1, ale w tym przypadku mamy do czynienia z dodatnimi argumentami. Z kolei odpowiedzi 12 i 16 mogą wynikać z błędnego zrozumienia liczby mnożenia, gdzie użytkownik mógłby przekonwertować działanie funkcji na inne operacje, takie jak dodawanie lub mnożenie bez zrozumienia, że przykład ilustruje potęgowanie. Tego typu błędy myślowe często prowadzą do mylnego rozumienia algorytmów, w których istotne jest, aby śledzić, co dzieje się z każdą iteracją pętli. Zrozumienie zasady działania pętli i ich zastosowania w kontekście potęgowania jest kluczem do poprawnego rozwiązywania zadań programistycznych. Dlatego ważne jest, aby dokładnie analizować działanie kodu i stosować dobrych praktyk, takich jak testowanie poszczególnych części kodu, aby upewnić się, że rozumiemy, co się dzieje w każdej iteracji.
Pytanie 7
Automatyczna weryfikacja właściciela witryny udostępnianej przez protokół HTTPS jest możliwa dzięki:
A. danym kontaktowym na stronie
B. danym whois
C. kluczom prywatnym
D. certyfikatowi SSLTwoja odpowiedź
Poprawna odpowiedź. HTTPS opiera się na certyfikacie SSL/TLS, który serwer przedstawia przeglądarce. Certyfikat wydaje zaufany urząd certyfikacji (CA) po sprawdzeniu, że wnioskodawca kontroluje daną domenę, a często i tożsamości podmiotu. Przeglądarka automatycznie weryfikuje go i pokazuje kłódkę. Dlatego potwierdzenie właściciela witryny umożliwia certyfikat SSL.
Pytanie 8
Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze
A. td, th { background-color: Pink; }Twoja odpowiedź
B. tr { background-color: Pink; }
C. tr:hover { background-color: Pink; }Poprawna odpowiedź
D. tr:active { background-color: Pink; }
Niepoprawna odpowiedź. W tym zadaniu chodzi o zrozumienie, jak działają selektory CSS oraz pseudo-klasy odpowiedzialne za interakcję z użytkownikiem. Jeśli efekt ma pojawiać się tylko wtedy, gdy użytkownik najedzie myszką na wiersz tabeli, to zwykłe ustawienie background-color bez pseudo-klasy nie spełni tego warunku. Deklaracja tr { background-color: Pink; } oznaczałaby, że wszystkie wiersze tabeli są cały czas różowe, niezależnie od tego, czy ktoś na nie najedzie, czy nie. To jest po prostu styl statyczny, bez żadnej reakcji na zdarzenia.
Podobnie zapis td, th { background-color: Pink; } ustawia tło dla wszystkich komórek tabeli (zarówno nagłówkowych th, jak i zwykłych td) w sposób stały. Moim zdaniem to dość częsty błąd: ktoś kojarzy tabelę z komórkami i intuicyjnie styluje td/th, ale zapomina, że w pytaniu chodzi o efekt dynamiczny „po najechaniu”. W rezultacie otrzymujemy tabelę pokolorowaną na stałe, bez jakiejkolwiek interakcji, co jest sprzeczne z założeniem zadania i z typowym zachowaniem tabel w nowoczesnych interfejsach.
Ciekawsza jest kwestia selektora tr:active { background-color: Pink; }. Pseudo-klasa :active oznacza element w momencie „aktywacji”, czyli najczęściej w chwili klikania (przytrzymania przycisku myszy). Efekt trwa bardzo krótko, tylko w czasie samego kliknięcia. To zupełnie inny scenariusz niż wygodne podświetlenie wiersza, które ma się utrzymywać, dopóki kursor jest nad elementem. Użycie :active prowadzi do efektu, który miga na ułamek sekundy i z punktu widzenia ergonomii jest praktycznie bezużyteczny w kontekście podświetlania wierszy.
Typowy błąd myślowy przy takich pytaniach polega na myleniu różnych pseudo-klas: :hover, :active, :focus. W webdevie przyjęło się, że :hover służy do reakcji na najechanie myszką, :active do krótkiej reakcji na kliknięcie, a :focus do zaznaczenia elementu, który ma aktualnie fokus klawiatury. Standardy CSS i dobre praktyki projektowania interfejsów jasno wskazują, że do efektu „podświetl wiersz, gdy nad nim jestem” należy użyć właśnie :hover na odpowiednim elemencie, czyli w tym przypadku tr. Wszystkie pozostałe odpowiedzi ignorują tę zasadę albo stosują nie tę pseudo-klasę, co trzeba, przez co nie odzwierciedlają poprawnie zachowania pokazanego w materiale wideo.
Pytanie 9
Podany poniżej kod źródłowy w języku C++ ma na celu wypisywanie dla wprowadzonych dowolnych liczb całkowitych różniących się od zera:
Poprawna odpowiedź. Kod źródłowy napisany w języku C++ ma na celu wypisywanie tylko liczb parzystych. Funkcja main() wczytuje liczbę całkowitą za pomocą cin, a następnie wchodzi w pętlę while, która trwa tak długo, jak długo wczytana liczba nie jest równa zero. Wewnątrz pętli, zastosowano sprawdzenie warunku, który definiuje, czy liczba jest parzysta, poprzez operator modulo: (liczba % 2) == 0. Jeśli wynik tego działania jest równy zero, liczba jest parzysta i zostaje wypisana na ekranie. Wszelkie inne liczby (nieparzyste) nie są wyświetlane. Przykładem praktycznego zastosowania tego kodu może być program do analizy danych liczbowych, gdzie chcemy zebrać tylko liczby parzyste do dalszej obróbki, na przykład w statystyce lub w aplikacjach finansowych. Praktyczne podejście do programowania w C++ wymaga znajomości takich konstrukcji jak pętle i warunki, co jest zgodne z najlepszymi praktykami inżynieryjnymi w branży oprogramowania.
Pytanie 10
Który program przekłada kod źródłowy na język maszynowy (komputera)?
A. środowisko programistyczneTwoja odpowiedź
B. debugger
C. edytor kodu źródłowego
D. kompilatorPoprawna odpowiedź
Niepoprawna odpowiedź. Pozostałe programy nie tłumaczą kodu na język maszynowy. Debugger szuka błędów, edytor kodu służy do pisania, a środowisko programistyczne (IDE) to zestaw narzędzi, w którym kompilator jest tylko jednym z elementów. Tłumaczeniem na kod maszynowy zajmuje się kompilator.
Pytanie 11
W języku HTML, aby stworzyć pole do wprowadzania hasła, w którym wpisywany tekst będzie ukrywany (zastępowany kropkami), należy zastosować znacznik
A. <form input type="password" />
B. <input type="password" />Twoja odpowiedź
C. <input name="password" />
D. <form="password" type="password" />
Poprawna odpowiedź. Odpowiedź <input type="password" /> jest poprawna, ponieważ ten znacznik HTML służy do tworzenia pola edycyjnego, w którym wprowadzane dane są maskowane. W przypadku pól do wpisywania haseł, istotne jest, aby użytkownik nie mógł zobaczyć wpisywanego tekstu, co zwiększa poziom bezpieczeństwa. W HTML, atrybut 'type' z wartością 'password' instruuje przeglądarkę, aby ukrywała znaki wprowadzane przez użytkownika, zastępując je zazwyczaj kropkami lub gwiazdkami. Przykładem zastosowania tego typu znacznika może być formularz logowania, gdzie użytkownicy wpisują swoje hasła. Dobrą praktyką jest również zastosowanie odpowiednich etykiet i walidacji, aby zapewnić, że formularz jest użyteczny i zgodny z WCAG (Web Content Accessibility Guidelines). Warto pamiętać, że bezpieczeństwo haseł powinno być również wspierane przez odpowiednie zabezpieczenia po stronie serwera, w tym haszowanie haseł oraz ochrona przed atakami typu brute force.
Pytanie 12
Jaką operację trzeba wykonać podczas edytowania zdjęcia w programie graficznym, aby zamienić białe tło na przezroczystość?
A. Dodać kanał alfaPoprawna odpowiedź
B. Skadrować obrazTwoja odpowiedź
C. Zmienić saturację obrazu
D. Maksymalnie zmniejszyć jasność
Niepoprawna odpowiedź. Wybór odpowiedzi, która nie dotyczy dodania kanału alfa, prowadzi do fundamentalnych nieporozumień w zakresie obróbki obrazów w edytorach graficznych. Skadrowanie obrazu może pomóc w wyeliminowaniu niepożądanych elementów, jednak nie rozwiązuje problemu białego tła. Skadrowanie polega na przycinaniu obrazu do określonego obszaru, co oznacza, że wciąż zostanie zachowane białe tło, które nie jest usuwane, a jedynie ograniczane w widoczności. Zmiana saturacji obrazu odnosi się do intensywności kolorów, co również nie ma wpływu na przezroczystość tła - biały kolor pozostanie obecny, ale może stać się mniej intensywny. Modyfikacja jasności obrazu, w tym maksymalne jej zmniejszenie, skutkuje jedynie przyciemnieniem całego obrazu, a biały kolor zmienia się w szarość lub czernie, ale nie prowadzi do uzyskania przezroczystości. W praktyce, zrozumienie, że przezroczystość wymaga specyficznej manipulacji kanałem alfa, jest kluczowe dla skutecznej edycji grafiki. Często występuje błąd myślowy polegający na myleniu różnych operacji edycyjnych z efektem końcowym, dlatego ważne jest zdobycie wiedzy na temat podstawowych pojęć związanych z formatowaniem obrazów oraz ich właściwościami w kontekście obróbki graficznej.
Pytanie 13
Na stronie umieszczono obrazek, a po nim akapit. Aby obrazek znalazł się w tej samej linii, po LEWEJ stronie tekstu, w stylu CSS obrazka należy ustawić:
A.
align:left;
B.
alt:left;
Twoja odpowiedź
C.
style:left;
D.
float:left;
Poprawna odpowiedź
Niepoprawna odpowiedź.align i style nie są właściwościami opływania (a align w CSS w ogóle nie istnieje). alt to atrybut tekstu alternatywnego <img>, nie styl położenia. Opływanie obrazka tekstem daje float:left;.
Pytanie 14
Który z elementów relacyjnej bazy danych, zapisany w języku SQL, może być wykorzystany w zapytaniach modyfikujących kolumny danych udostępnione jako tabela, niezależnie od tego, czy jest stworzony programowo, czy dynamicznie?
A. Funkcja zdefiniowanaPoprawna odpowiedź
B. Trigger
C. ZasadaTwoja odpowiedź
D. Procedura składowa
Niepoprawna odpowiedź. Kiedy analizujemy inne obiekty bazy danych, takie jak reguły, wyzwalacze i procedury składowe, możemy zidentyfikować, dlaczego nie są one odpowiednie w kontekście tego pytania. Reguły w SQL są używane do automatyzacji modyfikacji zapytań, ale ich zastosowanie jest ograniczone i rzadko używane w nowoczesnych bazach danych. Reguły są rzeczywiście często pomijane w nowoczesnych implementacjach ze względu na ich złożoność oraz ograniczenia w stosowaniu. Wyzwalacze natomiast są mechanizmami, które automatycznie wywołują się w odpowiedzi na określone zdarzenia w bazie danych, takie jak dodawanie, aktualizacja lub usuwanie rekordów. Choć mogą modyfikować dane, to nie są one wywoływane bezpośrednio przez zapytania, a raczej jako odpowiedź na zdarzenia, co czyni je mniej elastycznymi w kontekście bezpośrednich zapytań. Procedury składowe są kolejnym typem obiektu bazy danych, które mogą implementować złożoną logikę, jednak są one zazwyczaj wywoływane jako całość i nie mogą być używane w kontekście zapytań modyfikujących dane, jak to ma miejsce w przypadku funkcji zdefiniowanej. Zatem w kontekście elastyczności i modułowości w modyfikacjach danych, funkcje zdefiniowane pozostają najodpowiedniejszym rozwiązaniem.
Pytanie 15
Efekt przedstawiony na obrazie, wykonany za pomocą edytora grafiki rastrowej, to
A. szum RGB.
B. grawerowanie.
C. pikselizacja.Twoja odpowiedź
D. rozmycie Gaussa.
Poprawna odpowiedź. Twoja odpowiedź jest prawidłowa! Wybrany efekt to pikselizacja. Pikselizacja polega na zmniejszeniu rozdzielczości obrazu do poziomu, gdy każdy piksel staje się widoczny dla oka. Efekt ten charakteryzuje się wyraźnymi, dużymi blokami pikseli tworzącymi obraz. Jest to efekt często stosowany w grafice komputerowej, szczególnie w celu nadania grafice stylu retro. Pikselizacja była też kluczowym elementem estetyki gier wideo z lat 80. i 90., kiedy to technologiczne ograniczenia sprzętowe wymuszały korzystanie z niskiej rozdzielczości obrazu. W dzisiejszych czasach efekt pikselizacji jest często stosowany celowo, dla uzyskania określonego efektu artystycznego lub dla celów nostalgicznych. Warto jednak pamiętać, że nadmierne pikselizowanie obrazu może prowadzić do utraty szczegółów, dlatego zawsze warto dobrze przemyśleć zastosowanie tego efektu.
Pytanie 16
Aby sprawdzić ustawienia konfiguracji PHP (z pliku php.ini), można uruchomić skrypt zawierający wywołanie:
A.
ini_set()
B.
phpcredits()
C.
phpversion()
D.
phpinfo()
Twoja odpowiedź
Poprawna odpowiedź. Funkcja phpinfo() generuje stronę z pełną informacją o konfiguracji PHP: wartości dyrektyw z pliku php.ini, załadowane rozszerzenia, wersję, ścieżki i zmienne środowiskowe. Wystarczy uruchomić skrypt <?phpphpinfo();?>, by sprawdzić, jak skonfigurowany jest serwer. Dlatego do podejrzenia ustawień PHP służy phpinfo().
Pytanie 17
Jaki jest prawidłowy sposób deklaracji funkcji w języku JavaScript?
A.
functionmyFunction(){}
Poprawna odpowiedź
B.
funcmyFunction(){}
C.
voidmyFunction(){}
D.
defmyFunction(){}
Twoja odpowiedź
Niepoprawna odpowiedź. Pozostałe słowa pochodzą z innych języków. def deklaruje funkcję w Pythonie, func w Go lub Swift, a void to typ zwracany w C/C++. W JavaScripcie funkcję deklaruje słowo function, więc poprawne jest functionmyFunction(){}.
Pytanie 18
Pętla while ma działać, dopóki zmienna x należy do przedziału otwartego (-2, 5). Który warunek to zapisuje (PHP)?
A.
($x>-2)||($x>5)
B.
($x>-2)&&($x<5)
Twoja odpowiedź
C.
($x<-2)||($x>5)
D.
($x==-2)&&($x<5)
Poprawna odpowiedź. Przedział otwarty (-2, 5) to liczby WIĘKSZE od -2 i jednocześnie MNIEJSZE od 5, więc warunek to ($x>-2)&&($x<5) - oba muszą być spełnione naraz, stąd iloczyn logiczny &&. Pętla while działa, dopóki ten warunek jest prawdziwy. Zapamiętaj: przedział otwarty = ostre nierówności (>, <) połączone &&.
Pytanie 19
W systemie baz danych hurtowni utworzono tabelę sprzedaz z polami: id, kontrahent, grupa_cenowa, obrot. Jakie polecenie należy zastosować, aby znaleźć jedynie kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000zł?
A. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 OR obrot > 4000
B. SELECT sprzedaz FROM kontrahent WHERE obrot > 4000
C. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000Twoja odpowiedź
D. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa = 2 AND obrot > 4000
Poprawna odpowiedź. Poprawna odpowiedź to 'SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000;'. To polecenie SQL precyzyjnie spełnia wymagania postawione w pytaniu, ponieważ korzysta z operatora AND do jednoczesnego filtrowania kontrahentów w drugiej grupie cenowej oraz tych, których obrót przekracza 4000 zł. W praktyce, takie zapytanie jest niezwykle użyteczne w analizie danych w hurtowniach, umożliwiając wyodrębnienie tylko tych kontrahentów, którzy spełniają oba warunki, co jest kluczowe w procesach selekcji kontrahentów do dalszych działań marketingowych czy analizy rentowności. Warto zauważyć, że dobrym nawykiem jest dokładne określenie, które pola chcemy wyświetlić, a w tym przypadku 'kontrahent' wskazuje na konkretne dane, które są istotne dla analizy. Dodatkowo, stosowanie odpowiednich warunków w zapytaniach SQL jest zgodne z najlepszymi praktykami w zakresie optymalizacji wydajności bazy danych, ponieważ pozwala na minimalizację ilości przetwarzanych danych oraz zwiększa przejrzystość wyników.
Pytanie 20
Które narzędzie wiersza poleceń tworzy KOPIĘ ZAPASOWĄ bazy MySQL (zrzut do pliku)?
A.
mysqldump
Twoja odpowiedź
B.
truncate
C.
mysqlcheck
D.
create
Poprawna odpowiedź. Narzędzie mysqldump tworzy KOPIĘ ZAPASOWĄ bazy MySQL - zrzuca jej strukturę i dane do pliku (zwykle z poleceniami SQL), z którego można ją później odtworzyć. Dlatego kopię zapasową robi mysqldump.
Pytanie 21
Aby wyróżnić innym kolorem wiersz tabeli, na który aktualnie najeżdża kursor myszy, należy w CSS użyć:
A. pseudoklasy :hoverTwoja odpowiedź
B. pseudoelementu :first-line
C. nowego selektora klasy dla wiersza tabeli
D. pseudoklasy :visited
Poprawna odpowiedź. Pseudoklasa :hover stosuje wybrane reguły CSS tylko wtedy, gdy kursor myszy znajduje się nad elementem. Aby podświetlić wiersz tabeli przy najechaniu, zapisuje się np. tr:hover{background:#eee;}. Po zsunięciu kursora styl znika. Dlatego do wyróżnienia wskazywanego wiersza służy pseudoklasa :hover.
Pytanie 22
W języku HTML, aby nadać dokumentowi tytuł "Moja strona", który będzie wyświetlany na zakładce przeglądarki internetowej, należy posłużyć się zapisem
A. <meta title="Moja strona">
B. <meta name="title" content="Moja strona" />
C. <title>Moja strona</title>Twoja odpowiedź
D. <head>Moja strona</head>
Poprawna odpowiedź. Element <title> jest absolutnie podstawą, jeśli chodzi o definiowanie tytułu strony w HTML. Umieszcza się go zawsze wewnątrz sekcji <head>, a jego zawartość jest tym, co wyświetla się na karcie przeglądarki. Moim zdaniem to jedna z tych rzeczy, które – choć wydają się drobiazgiem – mają duży wpływ na użyteczność i pozycjonowanie strony. Jeśli budujesz własną stronę lub pracujesz przy większym projekcie, warto pamiętać, żeby tytuł był unikalny i możliwie krótki, bo to właśnie on pojawia się również w wynikach wyszukiwania Google. Organizacje takie jak W3C wyraźnie podkreślają, że <title> jest wymagany w każdym dokumencie HTML5. Często też spotykałem się z przypadkami, gdzie ktoś zapominał o tym tagu i potem dziwił się, że przeglądarka pokazuje „Untitled” albo po prostu adres URL na pasku zakładki. Z praktyki – zawsze warto od razu na początku pracy nad stroną ustawić sensowny tytuł, bo potem łatwo o tym zapomnieć. A jak już masz kilka kart z otwartymi projektami, czy klient patrzy na podgląd w wyszukiwarce – profesjonalnie przygotowany tytuł robi robotę. Pamiętaj też, że <title> nie jest miejscem na wrzucanie dodatkowego kodu HTML, tylko sam tekst. Prosta sprawa, a oszczędza potem sporo nerwów.
Pytanie 23
Jakie oprogramowanie jest potrzebne do uruchomienia skryptu JavaScript działającego na stronie?
A. przeglądarka internetowaPoprawna odpowiedź
B. serwer WWW
C. serwer MySQL
D. debugger JavaScriptTwoja odpowiedź
Niepoprawna odpowiedź. Pozostałe oprogramowanie nie jest konieczne do działania JS w przeglądarce. Serwer WWW i serwer MySQL obsługują stronę i bazę po stronie SERWERA, niezależnie od skryptów klienta. Debugger JS pomaga szukać błędów, ale nie jest wymagany do uruchomienia kodu. Wystarczy przeglądarka internetowa.
Pytanie 24
W przedstawionym kodzie HTML zastosowany styl CSS jest stylem
<p style="color:red;">To jest przykładowy akapit.</p>
A. lokalnymTwoja odpowiedź
B. zewnętrznym
C. dynamicznym
D. nagłówkowym
Poprawna odpowiedź. Styl CSS zastosowany w podanym kodzie HTML to styl lokalny, ponieważ jest zdefiniowany bezpośrednio w tagu HTML za pomocą atrybutu 'style'. Taki sposób definiowania stylów pozwala na przypisanie unikalnych stylów do konkretnego elementu na stronie, co jest szczególnie przydatne, gdy chcemy szybko zmienić wygląd jednego elementu bez wpływania na inne. Przykładem lokalnego stylu jest ustawienie koloru tekstu akapitu na czerwony, co można zaobserwować w atrybucie 'style="color:red;"'. Warto zauważyć, że lokalne style mają wyższy priorytet od stylów zewnętrznych i wewnętrznych, co oznacza, że jeśli ten sam element ma przypisany styl zewnętrzny, lokalny styl go nadpisze. W kontekście standardów CSS, lokalne style są zgodne z zasadami kaskadowości, która określa, jak łączyć różne źródła stylów. Z perspektywy użyteczności, chociaż lokalne style mogą być wygodne, ich nadmierne stosowanie prowadzi do trudności w utrzymaniu kodu, dlatego zaleca się ich używanie w ograniczonym zakresie.
Pytanie 25
W języku JavaScript zadeklarowano funkcję. function absValue(f) { return Math.abs(f); }
A. wypisać wartość przeciwną do f
B. zwrócić wartość przeciwną do f
C. wypisać wartość bezwzględną z f
D. zwrócić wartość bezwzględną z fTwoja odpowiedź
Poprawna odpowiedź. Poprawna odpowiedź to „zwrócić wartość bezwzględną z f”. Funkcja absValue(f) korzysta z wbudowanej metody Math.abs(), która zwraca wartość bezwzględną liczby przekazanej jako argument. Oznacza to, że jeśli liczba f jest ujemna, zostanie zamieniona na dodatnią, a jeśli dodatnia — pozostanie bez zmian. Funkcja nie wypisuje wartości, lecz zwraca wynik, który można następnie wykorzystać w dalszych obliczeniach. Takie podejście jest często stosowane w programowaniu, gdy chcemy operować na wielkościach zawsze nieujemnych, np. przy obliczaniu różnic, odległości lub w analizie danych numerycznych.
Pytanie 26
Które z poniższych wyrażeń logicznych w języku C weryfikuje, czy zmienna o nazwie zm1 znajduje się w przedziale (6, 203>?
A. (zm1 > 6) || (zm1 <= 203)
B. (zm1 > 6) || (zm1 != 203)
C. (zm1 > 6) && (zm1 != 203)Twoja odpowiedź
D. (zm1 > 6) && (zm1 <= 203)Poprawna odpowiedź
Niepoprawna odpowiedź. Odpowiedzi, które nie spełniają wymagań przedziału (6, 203], zawierają różne błędne koncepcje związane z użyciem operatorów logicznych. Na przykład, zapis (zm1 > 6) || (zm1 <= 203) implikuje, że wystarczy, aby jeden z warunków był spełniony, co całkowicie mija się z celem ustalenia przedziału. Umożliwienie wartości zm1, która jest mniejsza lub równa 203, niezależnie od tego, czy jest większa niż 6, prowadzi do sytuacji, w której wartości poniżej 6 są również akceptowane, co jest sprzeczne z wymaganym przedziałem. Podobnie, opcja (zm1 > 6) || (zm1 != 203) jest myląca, ponieważ nie uwzględnia wartości równej 203, co również narusza założenia przedziału. Z kolei (zm1 > 6) && (zm1 != 203) zezwala na wartości większe niż 6, ale wyklucza 203, co jest błędne w kontekście zadania. Te przykłady pokazują, jak łatwo można pomylić się w interpretacji warunków logicznych, co podkreśla znaczenie precyzyjnego formułowania warunków w programowaniu. Kluczem do unikania takich pomyłek jest dogłębne zrozumienie operatorów logicznych oraz ich zastosowania w kontekście zdefiniowanych przedziałów, co jest niezbędne, aby tworzyć poprawny i działający kod.
Pytanie 27
Który format zapisze obraz rastrowy BEZ utraty jakości (bezstratnie) i nadaje się na stronę WWW?
A. CDR
B. JPGTwoja odpowiedź
C. BMP
D. PNGPoprawna odpowiedź
Niepoprawna odpowiedź. Pozostałe formaty nie spełniają obu warunków. JPG kompresuje STRATNIE (gubi detale, daje artefakty przy ostrych krawędziach). BMP jest praktycznie nieskompresowany, więc daje ogromne pliki nieprzyjazne webowi. CDR to format programu CorelDRAW (wektorowy), nieobsługiwany przez przeglądarki. Bezstratny obraz dla WWW to PNG.
Pytanie 28
W tabeli personel znajdują się pola: imie, nazwisko, pensja, staz. Aby otrzymać średnią pensję pracowników, dla których staż wynosi od 10 do 20 lat pracy włącznie, należy wykonać kwerendę:
A. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20Twoja odpowiedź
Poprawna odpowiedź. Poprawna kwerenda to 'SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20;'. Użycie funkcji AVG() jest kluczowe, gdyż jej celem jest obliczenie średniej wartości z konkretnego zestawu danych, w tym przypadku pensji pracowników z określonym stażem. Funkcja ta agreguje dane, zliczając sumę pensji i dzieląc ją przez ich liczbę, co jest standardową metodą obliczania średniej arytmetycznej. W kontekście praktycznym, taką kwerendę można wykorzystać w raportach finansowych dla działu HR, aby ocenić wynagrodzenia w zespole z odpowiednim doświadczeniem. Standardy SQL zalecają użycie funkcji agregujących, takich jak AVG(), do takich obliczeń, co zapewnia dokładność i efektywność w analizie danych. Co więcej, efektywne wykorzystanie takich zapytań pozwala na lepsze planowanie budżetu oraz strategii wynagrodzeń w organizacjach.
Pytanie 29
Który modyfikator jest związany z opisem podanym poniżej?
Metoda oraz zmienna jest dostępna wyłącznie dla innych metod własnej klasy.
A. public
B. protectedTwoja odpowiedź
C. static
D. privatePoprawna odpowiedź
Niepoprawna odpowiedź. Modyfikator static to pojęcie związane nie z ograniczaniem dostępu, a z przypisywaniem pola lub metody do samej klasy, a nie instancji obiektu. Użycie static nie wpływa na kontrolę dostępu do metod lub zmiennych z innych klas, jest raczej związane z zarządzaniem pamięcią i odwołaniami. Public z kolei oznacza brak ograniczeń w dostępie, umożliwiając użycie metod i zmiennych przez inne klasy, co jest przeciwieństwem private. Public sprawia, że elementy klasy są dostępne dla wszystkich, co może prowadzić do niezamierzonych zmian i trudności w utrzymaniu kodu szczególnie w dużych systemach. Protected to modyfikator pozwalający na dostęp do elementów klasy jedynie klasom dziedziczącym i znajdującym się w tym samym pakiecie (w Java). Jest przydatny w dziedziczeniu, ale nie ogranicza dostępu tak jak private. Typowym błędem jest mylenie static i public z mechanizmami ochrony danych, podczas gdy odnoszą się one do innych aspektów zarządzania klasami. Static dotyczy współdzielenia danych w obrębie klasy, a public szerokiego dostępu. Wybór odpowiedniego modyfikatora dostępu jak private jest kluczowy dla implementacji enkapsulacji, co jest fundamentem bezpieczeństwa i elastyczności w programowaniu obiektowym. Static i public to koncepcje o różnym zastosowaniu, niekoniecznie związane z ochroną i ukrywaniem danych przed dostępem zewnętrznym.
Pytanie 30
Funkcję Clean Project środowiska IDE stosuje się do
A. debugowania skompilowanego i uruchomionego projektu.Twoja odpowiedź
B. kompilowania projektu, gdy pliki źródłowe zostały zmienione.
C. usuwania wyników kompilacji projektu.Poprawna odpowiedź
D. usuwania całego projektu.
Niepoprawna odpowiedź. Funkcja „Clean Project” w środowisku IDE bywa mylona z kilkoma zupełnie innymi operacjami i stąd często biorą się błędne skojarzenia. Warto to sobie dobrze poukładać, bo w pracy z większymi projektami, szczególnie webowymi, znajomość tych różnic mocno ułatwia życie. Po pierwsze, Clean nie służy do usuwania całego projektu. IDE nie kasuje Twoich plików źródłowych, katalogów z kodem, konfiguracji, zasobów graficznych czy plików HTML, CSS, PHP, JS. Gdyby tak było, byłoby to po prostu niebezpieczne i kompletnie sprzeczne z dobrymi praktykami. Usuwanie projektu to zupełnie inna, osobna akcja, zwykle nazwana wprost „Delete project”, „Remove from workspace” itp. Clean ingeruje tylko w to, co zostało wygenerowane automatycznie podczas kompilacji lub procesu buildowania, czyli w artefakty, które w razie czego można bezpiecznie odtworzyć z kodu. Drugi częsty błąd to traktowanie funkcji Clean jako mechanizmu kompilowania projektu po zmianie plików źródłowych. W większości IDE kompilacją zajmują się polecenia typu „Build”, „Rebuild”, „Run”, ewentualnie system automatycznego builda po zapisaniu pliku. Clean sam z siebie nie kompiluje – on przygotowuje pole do ponownego, pełnego builda, usuwając stare binaria. Można to porównać do posprzątania warsztatu przed rozpoczęciem nowej pracy, a nie do samego naprawiania. Trzecie nieporozumienie to łączenie Clean z debugowaniem. Debugowanie polega na uruchamianiu skompilowanego programu z podpiętym debuggerem, stawianiu breakpointów, podglądaniu zmiennych, stosu wywołań itd. Funkcja Clean nie uruchamia aplikacji ani nie wchodzi w tryb debugowania, tylko czyści katalogi z wynikami wcześniejszych kompilacji. Typowy błąd myślowy polega na mieszaniu tych trzech etapów: porządkowania artefaktów (Clean), kompilacji/builda (Build/Run) i analizy działania programu (Debug). W praktyce, poprawna sekwencja przy dziwnych błędach to: Clean, potem pełny Build, a dopiero później ewentualne Debug. Takie rozdzielenie ról narzędzi jest standardem w większości popularnych IDE i systemów buildowania i dobrze jest się do niego przyzwyczaić, bo potem łatwiej przenosić się między różnymi technologiami i środowiskami.
Pytanie 31
Zgodnie z zasadami ACID dotyczącymi transakcji, wymóg izolacji (ang. isolation) wskazuje, że
A. jeśli dwie transakcje są wykonywane równolegle, to zazwyczaj nie zauważają wprowadzanych przez siebie zmianPoprawna odpowiedź
B. pod określonymi warunkami dane modyfikowane przez transakcję mogą zostać anulowane
C. gdy wystąpi konflikt z inną transakcją, obie mogą modyfikować te same dane równocześnie
D. po zrealizowaniu transakcji system baz danych będzie w stanie spójnościTwoja odpowiedź
Niepoprawna odpowiedź. Po pierwsze, odpowiedź, która sugeruje, że po wykonaniu transakcji system bazy danych będzie spójny, nie odnosi się bezpośrednio do aspektu izolacji. Spójność to w rzeczywistości inne z wymaganych stanów ACID, które koncentruje się na tym, że wszystkie transakcje muszą zapewnić, że system przechodzi z jednego stanu spójnego do innego. Izolacja działa w zupełnie innym kontekście. Kolejna odpowiedź wskazująca na konflikt modyfikacji danych przez różne transakcje sugeruje sytuację, która w rzeczywistości powinna być unika, a nie opisana jako cecha izolacji. Izolacja ma na celu zapobieganie takim konfliktom, a nie ich akceptację. Dodatkowo, odpowiedź mówiąca o wycofywaniu danych pod pewnymi warunkami odnosi się do działania mechanizmu rollback, który jest związany z innym aspektem transakcji – atomowością. Atomowość dotyczy tego, czy cała transakcja zostanie pomyślnie zakończona, czy też w razie problemów zostanie wycofana, ale nie bezpośrednio do izolacji. Powszechny błąd myślowy polega na myleniu tych pojęć i ich wzajemnych interakcji. Właściwe zrozumienie izolacji jako ochrony przed widocznością zmian między transakcjami współbieżnymi jest kluczowe dla projektowania poprawnych i odpornych na błędy systemów baz danych.
Pytanie 32
Jaki zestaw liczb zostanie wyświetlony w wyniku działania pętli napisanej w języku PHP?
Niepoprawna odpowiedź. 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.
Niepoprawna odpowiedź. 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 34
W bazie danych MYSQL znajduje się tabela z programami komputerowymi, która ma pola: nazwa, producent, rokWydania. Jak należy sformułować kwerendę SELECT, aby uzyskać wszystkie nazwy producentów bez powtórzeń?
A. SELECT UNIQUE producent FROM programy;
B. SELECT DISTINCT producent FROM programy;Poprawna odpowiedź
C. SELECT producent FROM programy WHERE UNIQUE;Twoja odpowiedź
D. SELECT producent FROM programy WHERE producent NOT DUPLICATE;
Niepoprawna odpowiedź. Odpowiedzi oparte na słowie kluczowym UNIQUE są po prostu błędne, bo w SQL nie ma takiej klauzuli jak WHERE UNIQUE. To może być mylące, bo niektórzy użytkownicy mogą myśleć, że UNIQUE jest tym samym co DISTINCT. Klauzula UNIQUE jest używana, żeby ustalić unikalność w strukturze tabel, a nie w kontekście zapytań. A używanie 'WHERE producent NOT DUPLICATE' też jest nietrafione, bo słowo 'DUPLICATE' nie istnieje w SQL. Zamiast tego, żeby eliminować duplikaty, używamy DISTINCT. Często błędne zrozumienie SQL bierze się z tego, że ludzie mylą różne klauzule i ich zastosowania. Kiedy piszesz zapytania SQL, ważne jest, żeby wiedzieć, które kluczowe słowa pasują do konkretnej akcji i co one oznaczają, gdy chodzi o dane.
Pytanie 35
Instrukcję for można zastąpić inną instrukcją
A. case
B. continue
C. switch
D. whileTwoja odpowiedź
Poprawna odpowiedź. Odpowiedź 'while' jest poprawna, ponieważ obie instrukcje, 'for' oraz 'while', służą do iteracji, czyli powtarzania pewnego bloku kodu w określonych warunkach. Instrukcja 'for' jest najczęściej używana, gdy znamy liczbę iteracji z góry, podczas gdy 'while' pozwala na bardziej elastyczne podejście, w którym kontynuujemy wykonanie pętli, aż do spełnienia określonego warunku. Przykład zastosowania instrukcji 'while' może wyglądać następująco: int i = 0; while (i < 10) { System.out.println(i); i++; }. W tym przypadku pętla 'while' będzie kontynuować swoje działanie tak długo, jak długo i jest mniejsze od 10. W praktyce, wybór między 'for' a 'while' powinien być podejmowany na podstawie kontekstu oraz przejrzystości kodu, co jest zgodne z najlepszymi praktykami programistycznymi. Warto również zauważyć, że w pewnych sytuacjach, takich jak przetwarzanie strumieni danych, stosowanie pętli 'while' może być bardziej intuicyjne i czytelne. Dzięki temu, programista może zachować większą kontrolę nad logiką iteracyjną, co sprzyja utrzymaniu i rozwijaniu kodu w przyszłości.
Pytanie 36
Ile razy zostanie wykonana poniższa pętla w PHP?
for($i = 0; $i < 25; $i += 5) { ... }
A. 0
B. 26
C. 5Twoja odpowiedź
D. 25
Poprawna odpowiedź. Pętla for w PHP jest jednym z fundamentalnych narzędzi kontrolnych używanych do wykonywania powtarzających się zadań. W przedstawionym przykładzie pętli mamy następującą składnię: for($i = 0; $i < 25; $i += 5). Pętla rozpoczyna się od wartości początkowej zmiennej $i równej 0, a warunek kontynuacji pętli określa, że $i musi być mniejsze niż 25. W każdym przebiegu pętli zmienna $i zwiększa się o 5. Dzięki tej konstrukcji pętla wykona się dla wartości $i wynoszących kolejno 0, 5, 10, 15 i 20, co oznacza, że pętla zostanie wykonana dokładnie 5 razy. Takie konstrukcje są powszechnie stosowane w programowaniu do iteracyjnego przetwarzania danych, takich jak iterowanie przez tablice lub generowanie ciągów. Warto zwrócić uwagę na dobre praktyki programistyczne, które nakazują klarowność i czytelność kodu, dzięki czemu inni programiści mogą go łatwo zrozumieć i utrzymywać. Projektowanie pętli z precyzyjnie zdefiniowanymi warunkami początkowymi i końcowymi jest kluczowe dla unikania błędów logicznych, takich jak nieskończone pętle lub błędne iteracje. Użycie odpowiednich inkrementacji, jak w tym przypadku $i += 5, pozwala na kontrolowanie tempa i liczby iteracji zgodnie z zamierzonymi celami algorytmu.
Pytanie 37
Aby zbudować tabelę, należy wykorzystać polecenie
A. INSERT INTO
B. CREATE TABLEPoprawna odpowiedź
C. ALTER TABLETwoja odpowiedź
D. CREATE DATABASE
Niepoprawna odpowiedź. Odpowiedzi takie jak 'INSERT INTO', 'ALTER TABLE' oraz 'CREATE DATABASE' wskazują na pewne nieporozumienia dotyczące funkcji poszczególnych poleceń SQL. 'INSERT INTO' jest poleceniem służącym do dodawania nowych wierszy do już istniejącej tabeli, co oznacza, że nie można go używać do tworzenia nowych struktur danych. Typowym błędem myślowym jest mylenie operacji dodawania danych z operacjami tworzenia struktury bazy danych. Z kolei 'ALTER TABLE' służy do modyfikacji istniejących tabel, co obejmuje takie działania jak dodawanie lub usuwanie kolumn, zmiana typów danych kolumn itp. Użytkownicy mogą myśleć, że to polecenie jest odpowiednie do tworzenia tabeli, ponieważ dotyczy tabel, ale w rzeczywistości jest używane w zupełnie innym kontekście. 'CREATE DATABASE' to polecenie, które umożliwia stworzenie nowej bazy danych, co również nie jest tym, o co pytano w kontekście tworzenia tabeli. Niezrozumienie między tworzeniem baz i tabel jest częste, jednak kluczowe jest, aby zrozumieć hierarchię i relacje pomiędzy tymi elementami w systemie zarządzania bazą danych. Dlatego ważne jest, aby przy nauce SQL skupić się na funkcjonalności i kontekście każdego polecenia oraz jego zastosowaniu w praktyce.
Pytanie 38
Fragment kodu w PHP przedstawia się następująco (patrz ramka): Przy założeniu, że zmienna tablicowa $tab zawiera liczby naturalne, wynik działania programu polega na wypisaniu
A. tych elementów, które przewyższają wartość zmiennej $liczbaTwoja odpowiedź
B. elementu tablicy równemu wartości $tab[0]
C. najmniejszego elementu w tablicy
D. największego elementu w tablicyPoprawna odpowiedź
Niepoprawna odpowiedź. Zobaczmy teraz, co poszło nie tak z innymi odpowiedziami. W przypadku tej, co miała znaleźć najmniejszy element, to kod nie jest w stanie tego zrobić, ponieważ warunek if sprawdza, czy element jest większy, a powinien być mniejszy, żeby szukać minimum. Jakby zmienić na if ($element < $liczba), to byłoby ok. W innej odpowiedzi twierdzono, że program znajdzie element równy $tab[0], ale w kodzie nie ma żadnego porównania z tym pierwszym elementem, poza tym, że przypisujemy go do $liczba na początku. Brak tam dodatkowej logiki, żeby to ogarnąć. A w ostatniej odpowiedzi pisano o wypisywaniu elementów większych od $liczba, ale kod nie działa w ten sposób, bo nie ma tam nic, co by pozwalało na wypisywanie więcej niż jednego elementu. Program jedynie aktualizuje $liczba, żeby znaleźć największą wartość. Często takie pomyłki biorą się z braku zrozumienia, jak działa iteracja i porównania w programowaniu, gdzie trzeba dobrze rozumieć, jakie warunki i operacje są potrzebne.
Pytanie 39
Kiedy zachowana jest integralność ENCJI w bazie danych?
A. gdy każda tabela ma utworzony klucz głównyPoprawna odpowiedź
B. gdy klucz główny jest zawsze liczbą całkowitą
C. gdy każdy klucz główny ma odpowiadający klucz obcy w innej tabeli
D. gdy każda kolumna ma przypisany typ danychTwoja odpowiedź
Niepoprawna odpowiedź. Pozostałe warunki nie dotyczą integralności encji. Klucz główny nie musi być liczbą całkowitą (może być np. tekstem). Przypisanie typu kolumnom to osobna kwestia. Powiązanie z kluczem obcym w innej tabeli to integralność REFERENCYJNA, nie encji. Integralność encji zapewnia klucz główny w każdej tabeli.
Pytanie 40
Jakie z poniższych stwierdzeń poprawnie opisuje zdefiniowaną tabelę?
CREATE TABLEdane(kolumnaINTEGER(3));
A. Tabela o nazwie dane posiada jedną kolumnę liczb całkowitych.Poprawna odpowiedź
B. Tabela ma jedną kolumnę, która zawiera tablice z trzema elementami.
C. Kolumny tabeli dane są nazywane: kolumna 1, kolumna2, kolumna3.Twoja odpowiedź
D. Tabela o nazwie dane zawiera trzy kolumny typu całkowitego.
Niepoprawna odpowiedź. Wszystkie niepoprawne odpowiedzi opierają się na błędnych założeniach dotyczących definicji tabeli i jej kolumn. Twierdzenie, że kolumny tabeli dane nazywają się kolumna1, kolumna2, kolumna3, jest błędne, ponieważ zdefiniowana tabela posiada jedynie jedną kolumnę o nazwie 'kolumna'. W SQL kolumny tworzy się na podstawie zadanej definicji, a w tym przypadku nie ma żadnych dodatkowych kolumn. Kolejne błędne stwierdzenie, że tabela posiada trzy kolumny liczb całkowitych, jest również nieprawdziwe, ponieważ w rzeczywistości mamy tylko jedną kolumnę, nie trzy. Wartości 'kolumna1', 'kolumna2' i 'kolumna3' wskazują na nieporozumienie w interpretacji struktury tabeli. Ponadto, założenie, że tabela posiada jedną kolumnę zawierającą trzyelementowe tablice, jest całkowicie błędne. Typ danych INTEGER oznacza, że kolumna przechowuje pojedyncze liczby całkowite, a nie tablice. W SQL nie definiuje się tablic w ten sposób; jeżeli konieczne byłoby przechowywanie tablic, zastosowanie wymagałoby innego podejścia, takiego jak zdefiniowanie typu danych ARRAY (w systemach, które go obsługują) lub zastosowanie relacji w inny sposób. Tego rodzaju nieporozumienia mogą prowadzić do nieefektywnego projektowania baz danych oraz problemów w aplikacjach korzystających z tych danych, co podkreśla znaczenie dokładności w definiowaniu struktur baz danych.