Pytania pomocnicze - INF.03
Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Pytania pomocnicze rozwijające tematy z pytań egzaminacyjnych. Każde pytanie ma krótką odpowiedź, która pomaga utrwalić wiedzę i przygotować się do egzaminu. Łącznie: 6221.
Strona 75 z 81.
Dlaczego format PNG jest dobry do zapisu logo z przezroczystym tłem?
PNG obsługuje przezroczystość, w tym kanał alfa. Dzięki temu logo może być umieszczone na dowolnym tle strony bez widocznego prostokątnego obszaru.
Czym różni się PNG od JPG w kontekście przezroczystości?
PNG obsługuje przezroczystość, a JPG jej nie obsługuje. JPG jest częściej używany do zdjęć, natomiast PNG do logo, ikon i grafik z ostrymi krawędziami.
Co oznacza kanał alfa w grafice komputerowej?
Kanał alfa określa stopień przezroczystości pikseli obrazu. Pozwala tworzyć zarówno całkowicie przezroczyste, jak i półprzezroczyste fragmenty grafiki.
Dlaczego BMP nie jest dobrym wyborem dla grafiki na stronę internetową?
BMP zwykle zajmuje dużo miejsca i nie jest formatem zoptymalizowanym do publikacji w sieci. Na stronach WWW częściej stosuje się PNG, JPG, GIF, SVG lub WebP.
Dlaczego CDR nie jest typowym formatem grafiki wyświetlanej bezpośrednio w przeglądarce?
CDR to natywny format programu CorelDRAW przeznaczony głównie do edycji grafiki wektorowej. Przed publikacją w internecie grafikę z CDR zwykle eksportuje się np. do PNG, SVG lub JPG.
Jak w HTML wstawić logo zapisane w formacie PNG?
Do wstawienia logo używa się elementu img, np. <img src="logo.png" alt="Logo firmy">. Atrybut src wskazuje plik graficzny, a alt opis alternatywny.
Jak rozpoznać instrukcję warunkową na schemacie blokowym?
Instrukcja warunkowa jest przedstawiana jako romb, czyli blok decyzyjny. Zwykle wychodzą z niego dwie ścieżki, np. dla odpowiedzi „tak” i „nie”.
Dlaczego w przedstawionym algorytmie potrzebne są dwie instrukcje warunkowe?
Na schemacie znajdują się dwa bloki decyzyjne. Każdy z nich odpowiada jednemu sprawdzeniu warunku w kodzie programu.
Czy prostokąt w schemacie blokowym oznacza instrukcję warunkową?
Nie. Prostokąt oznacza zwykłą operację, np. obliczenie, przypisanie wartości lub wyświetlenie wyniku.
Czym jest zagnieżdżona instrukcja warunkowa?
To instrukcja warunkowa umieszczona wewnątrz jednej z gałęzi innej instrukcji warunkowej. W schemacie widać ją jako kolejny romb znajdujący się po jednej ze ścieżek pierwszej decyzji.
Jak zapisać algorytm z dwoma blokami decyzyjnymi w kodzie?
Najczęściej używa się dwóch instrukcji `if`. Druga może być niezależna albo zagnieżdżona w jednej z gałęzi pierwszej instrukcji.
Czy liczba wyjść z jednego bloku decyzyjnego zwiększa liczbę instrukcji warunkowych?
Nie. Jeden blok decyzyjny, nawet z dwiema ścieżkami, nadal oznacza jedno sprawdzenie warunku, czyli jedną instrukcję warunkową.
Do czego służy blok decyzyjny w schemacie blokowym?
Blok decyzyjny, rysowany jako romb, służy do zapisania warunku logicznego. Zwykle wychodzą z niego dwie ścieżki, np. „TAK” i „NIE”.
Dlaczego warunek pętli umieszcza się w bloku decyzyjnym?
Warunek pętli decyduje, czy powtarzać instrukcje, czy zakończyć pętlę. Jest to decyzja logiczna, dlatego zapisuje się ją w rombie.
Jak oznacza się operację lub instrukcję w schemacie blokowym?
Operacje, np. przypisanie wartości zmiennej albo wykonanie obliczenia, zapisuje się w prostokącie. Prostokąt nie służy do zapisywania warunków.
Jakie wyjścia może mieć blok decyzyjny?
Najczęściej blok decyzyjny ma dwa wyjścia: jedno dla spełnionego warunku, np. „TAK”, i drugie dla niespełnionego warunku, np. „NIE”.
Czym różni się blok decyzyjny od bloku operacyjnego?
Blok decyzyjny sprawdza warunek i rozgałęzia przebieg algorytmu. Blok operacyjny wykonuje instrukcję, np. obliczenie lub przypisanie.
Jak w schemacie blokowym przedstawić pętlę?
Pętlę przedstawia się przez blok decyzyjny z warunkiem oraz strzałkę powrotną do wcześniejszego fragmentu algorytmu. Gdy warunek przestaje być spełniony, algorytm wychodzi z pętli.
Co oznacza znak gwiazdki `*` w selektorze CSS?
Gwiazdka `*` to selektor uniwersalny. Wybiera wszystkie elementy dokumentu HTML.
Czy reguła `* { color: Teal; }` zawsze wymusi kolor Teal na całej stronie?
Nie zawsze. Ustawia domyślne formatowanie dla wszystkich elementów, ale może zostać nadpisana przez bardziej szczegółowe lub późniejsze reguły CSS.
Jaka jest różnica między selektorem `*`, selektorem klasy i selektorem ID?
`*` wybiera wszystkie elementy. Selektor klasy zapisuje się z kropką, np. `.menu`, a selektor ID z kratką, np. `#naglowek`.
Dlaczego odpowiedź „niezależnie od późniejszych reguł CSS” jest błędna?
CSS działa według kaskady i specyficzności. Późniejsze lub bardziej szczegółowe reguły mogą zmienić wartości ustawione przez selektor uniwersalny.
Jaką rolę pełni właściwość `font-family` w CSS?
Właściwość `font-family` określa krój czcionki używany do wyświetlania tekstu, np. `Tahoma`, `Arial` lub `serif`.
Jaką rolę pełni właściwość `color` w CSS?
Właściwość `color` ustawia kolor tekstu elementu. W przykładzie `color: Teal;` tekst otrzymuje kolor morski/niebieskozielony.
Jak rozpoznać relację jeden do wielu między tabelami?
W relacji jeden do wielu jeden rekord z pierwszej tabeli może być powiązany z wieloma rekordami drugiej tabeli. Klucz obcy znajduje się zwykle w tabeli po stronie „wiele”.
Dlaczego w tym zapytaniu należy użyć warunku ON Klienci.id = Zgłoszenia.Klienci_id?
Ponieważ `Zgłoszenia.Klienci_id` jest kluczem obcym wskazującym klienta. Takie połączenie poprawnie przypisuje zgłoszenie do nazwiska klienta.
Czym różni się Zgłoszenia.id od Zgłoszenia.Klienci_id?
`Zgłoszenia.id` identyfikuje konkretne zgłoszenie. `Zgłoszenia.Klienci_id` wskazuje klienta, do którego należy zgłoszenie.
Dlaczego odpowiedź z warunkiem WHERE Klienci.id = 5 nie spełnia treści zadania?
Taki warunek wybiera klienta o numerze 5, a nie zgłoszenie o numerze 5. Może zwrócić wszystkie zgłoszenia tego klienta.
Jaka jest rola klauzuli WHERE w zapytaniu z JOIN?
`WHERE` ogranicza wynik zapytania do rekordów spełniających podany warunek. W tym przypadku wybiera tylko zgłoszenie o identyfikatorze 5.
Czy samo JOIN bez ON jest poprawnym sposobem łączenia tabel?
W praktyce nie należy tak robić, bo brak warunku połączenia może prowadzić do iloczynu kartezjańskiego lub błędnych wyników. Poprawne zapytanie powinno jasno określać warunek `ON`.
Jak można zapisać to zapytanie z aliasami tabel?
Można użyć aliasów, np. `SELECT z.opis, k.nazwisko FROM Zgłoszenia z JOIN Klienci k ON k.id = z.Klienci_id WHERE z.id = 5;`. Alias skraca zapis i poprawia czytelność.
Co zwróci funkcja `fun1(7, 3)`?
Zwróci `7`, ponieważ pierwszy argument jest większy od drugiego i spełnia warunek `$a > $b`.
Co zwróci funkcja `fun1(2, 9)`?
Zwróci `9`, ponieważ warunek `$b > $a` jest prawdziwy.
Co zwróci funkcja `fun1(5, 5)`?
Zwróci `-1`, ponieważ żadna z wartości nie jest większa od drugiej, więc wykonuje się blok `else`.
Dlaczego poprawny opis mówi o wyższej wartości, a nie niższej?
Funkcja sprawdza warunki `$a > $b` oraz `$b > $a`, czyli wybiera argument większy. Nie ma warunku szukającego mniejszej wartości.
Jaką rolę pełni instrukcja `return` w funkcji PHP?
`return` kończy działanie funkcji i zwraca wskazaną wartość do miejsca, w którym funkcja została wywołana.
Kiedy w tej funkcji wykona się część `else`?
Część `else` wykona się wtedy, gdy `$a > $b` jest fałszywe i `$b > $a` też jest fałszywe, czyli gdy `$a` i `$b` są równe.
Jak działa funkcja explode() w PHP?
Funkcja `explode()` dzieli łańcuch znaków według podanego separatora i zwraca tablicę. Na przykład separator `","` dzieli tekst w miejscach wystąpienia przecinków.
Od jakiego indeksu zaczyna się numerowanie tablic w PHP?
W tablicach indeksowanych numerycznie pierwszy element ma indeks `0`. Drugi element ma indeks `1`, a trzeci indeks `2`.
Jaką wartość ma element $tab[1] po wykonaniu podanego kodu?
Po użyciu `explode()` tablica zawiera kolejno: `jelenie`, `sarny`, `dziki`, `lisy`, `borsuki`. Element `$tab[1]` ma więc wartość `sarny`.
Jaką wartość ma element $tab[2] w tym przykładzie?
Element `$tab[2]` to trzeci element tablicy, czyli `dziki`.
Do czego służy kropka w instrukcji echo w PHP?
Kropka `.` jest operatorem konkatenacji, czyli łączenia tekstów. W tym kodzie łączy wartość `$tab[1]`, spację i wartość `$tab[2]`.
Dlaczego wynikiem nie jest „jelenie sarny”?
Ponieważ `jelenie` znajduje się pod indeksem `0`, a nie `1`. Kod wypisuje elementy o indeksach `1` i `2`, czyli `sarny dziki`.
Co oznacza zapis " " w instrukcji echo?
Zapis `" "` oznacza pojedynczą spację jako tekst. Dzięki temu wypisane wyrazy są oddzielone odstępem.
Czym analiza ścieżek różni się od testowania wartości brzegowych?
Analiza ścieżek dotyczy przebiegu wykonania kodu między punktem startowym i końcowym. Testowanie wartości brzegowych skupia się na danych wejściowych leżących na granicach dopuszczalnych zakresów.
Dlaczego w analizie ścieżek ważne są instrukcje warunkowe?
Instrukcje warunkowe tworzą różne drogi wykonania programu. Każda gałąź warunku może prowadzić do innego wyniku lub ujawnić inny błąd.
Jak pętle wpływają na liczbę możliwych ścieżek w programie?
Pętle zwiększają liczbę możliwych przebiegów, ponieważ kod może wykonać się zero razy, jeden raz albo wiele razy. W testach zwykle sprawdza się kilka reprezentatywnych przypadków.
Jaki jest cel analizy ścieżek w testach jednostkowych?
Celem jest sprawdzenie, czy najważniejsze możliwe przebiegi działania pojedynczej funkcji lub metody są poprawne. Pomaga to wykrywać błędy logiczne w kodzie.
Czy analiza ścieżek wymaga znajomości kodu źródłowego?
Tak, zwykle wymaga znajomości struktury kodu. Dlatego zalicza się ją do technik testowania białoskrzynkowego.
Co oznacza punkt początkowy i końcowy w analizie ścieżek?
Punkt początkowy to miejsce rozpoczęcia wykonywania analizowanego fragmentu kodu. Punkt końcowy to miejsce, w którym ten fragment kończy działanie lub zwraca wynik.
Dlaczego nie zawsze testuje się wszystkie możliwe ścieżki?
W większych programach liczba ścieżek może być bardzo duża, szczególnie przy wielu warunkach i pętlach. Dlatego wybiera się ścieżki najważniejsze, ryzykowne lub reprezentatywne.
Dlaczego w tym pytaniu poprawne jest zapytanie INSERT INTO, a nie SELECT?
`INSERT INTO` dodaje nowe rekordy do tabeli. `SELECT` służy tylko do odczytywania danych, więc nie spełnia celu wstawienia wartości do bazy.
Dlaczego w odpowiedzi D podano NULL jako pierwszą wartość?
Pierwsza kolumna jest autoinkrementowanym kluczem podstawowym. Podanie `NULL` pozwala bazie danych automatycznie nadać kolejny identyfikator.
Dlaczego odpowiedź C jest niepoprawna?
Tabela ma cztery kolumny, a zapytanie w odpowiedzi C podaje tylko trzy wartości. Przy składni `INSERT INTO tabela VALUES (...)` trzeba podać wartości dla wszystkich kolumn.
Jak można zapisać to zapytanie bez podawania wartości dla kolumny AUTO_INCREMENT?
Można wskazać tylko kolumny, do których wstawiane są dane, np. `INSERT INTO dane (kol2, kol3, kol4) VALUES ('$a', '$b', '$c');`. Wtedy baza sama uzupełni klucz główny.
Czym różni się podanie listy kolumn w INSERT od jej pominięcia?
Po podaniu listy kolumn wpisuje się wartości tylko dla wskazanych pól. Bez listy kolumn trzeba podać wartości dla wszystkich kolumn w dokładnej kolejności ich definicji.
Co robi funkcja mysqli_query() w pokazanym kodzie PHP?
Wykonuje zapytanie SQL zapisane w zmiennej `$zapytanie` na połączeniu z bazą danych `$db`.
Jakie ryzyko występuje przy bezpośrednim wstawianiu zmiennych PHP do zapytania SQL?
Może wystąpić SQL Injection, czyli możliwość wstrzyknięcia złośliwego kodu SQL. W praktyce należy stosować zapytania przygotowane.
Co oznacza wynik funkcji mysqli_num_rows()?
Funkcja `mysqli_num_rows()` zwraca liczbę wierszy, czyli rekordów, które znalazły się w wyniku zapytania SQL. Nie informuje o liczbie kolumn.
Co zwraca funkcja mysqli_fetch_row()?
`mysqli_fetch_row()` zwraca pojedynczy wiersz wyniku jako tablicę indeksowaną numerycznie. Kolumny są dostępne pod indeksami `0`, `1`, `2` itd.
Dlaczego w podanym kodzie wyświetlane są trzy pola?
Kod używa trzech elementów tablicy: `$wiersz[0]`, `$wiersz[1]` i `$wiersz[2]`. Oznacza to prezentację danych z trzech kolumn wyniku zapytania.
Czy pętla for w tym kodzie może poprawnie przejść po wszystkich rekordach?
Tak, jeśli `$zapytanie` jest poprawnym wynikiem zapytania `SELECT`. Zmienna `$ile` określa liczbę wierszy, a każde wywołanie `mysqli_fetch_row()` pobiera następny wiersz.
Co się stanie, jeśli zapytanie zwróci mniej niż trzy kolumny?
Odwołanie do nieistniejącego indeksu, np. `$wiersz[2]`, może spowodować ostrzeżenie PHP o niezdefiniowanym indeksie. Dane nie zostaną wtedy poprawnie wyświetlone.
Czym różni się mysqli_fetch_row() od mysqli_fetch_assoc()?
`mysqli_fetch_row()` zwraca tablicę z indeksami liczbowymi, np. `$wiersz[0]`. `mysqli_fetch_assoc()` zwraca tablicę asocjacyjną, gdzie dane pobiera się po nazwach kolumn, np. `$wiersz['imie']`.