Przejdź do głównej treści

Pytania pomocnicze - INF.03

Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych - pytania pomocnicze rozwijające tematy z pytań egzaminacyjnych. Łącznie: 8439. Strona 97 z 116.

Czym jest debugowanie aplikacji?

Debugowanie to proces znajdowania, analizowania i usuwania błędów w kodzie źródłowym programu. Jego celem jest doprowadzenie aplikacji do poprawnego działania.

Czym debugowanie różni się od kompilacji?

Kompilacja polega na tłumaczeniu kodu źródłowego na kod wykonywalny lub pośredni. Debugowanie polega na wykrywaniu i usuwaniu błędów w programie.

Jakie błędy można wykryć podczas debugowania?

Podczas debugowania można wykryć m.in. błędy składniowe, logiczne, błędy działania programu oraz problemy z danymi wejściowymi lub komunikacją z bazą danych.

Do czego służy debugger?

Debugger to narzędzie wspomagające debugowanie. Umożliwia zatrzymywanie programu w wybranych miejscach, podgląd wartości zmiennych i wykonywanie kodu krok po kroku.

Co oznacza wykonywanie programu krok po kroku?

Oznacza uruchamianie kolejnych instrukcji programu pojedynczo, aby sprawdzić, w którym miejscu pojawia się nieprawidłowe działanie.

Dlaczego debugowanie jest ważnym etapem tworzenia aplikacji?

Pozwala usunąć błędy przed wdrożeniem programu i zwiększa niezawodność aplikacji. Dzięki temu użytkownik otrzymuje działający i stabilny produkt.

Ile razy wykona się pętla `for ($i = 0; $i < 10; $i++)`?

Pętla wykona się 10 razy. Zmienna `$i` przyjmie wartości od `0` do `9`.

Dlaczego w tablicy nie pojawia się wartość 100?

Ponieważ przy ostatnim wykonaniu pętli do tablicy wpisywane jest `90`, a dopiero potem `$x` zwiększa się do `100`. Po tym pętla kończy działanie.

Jaką rolę pełni zmienna `$i` w podanym kodzie?

Zmienna `$i` jest licznikiem pętli oraz indeksem tablicy. Określa, do którego elementu tablicy zostanie wpisana wartość.

Jaką rolę pełni zmienna `$x` w podanym kodzie?

Zmienna `$x` przechowuje wartość wpisywaną do tablicy. Po każdym obiegu pętli zwiększa się o 10.

Jaka jest kolejność wykonywania instrukcji wewnątrz pętli?

Najpierw wykonywane jest przypisanie `$tab[$i] = $x`, a potem zwiększenie `$x = $x + 10`. Dopiero po wykonaniu bloku zwiększa się licznik `$i++`.

Co oznacza zapis `$tab[$i]` w PHP?

Oznacza element tablicy `$tab` o indeksie równym aktualnej wartości zmiennej `$i`. Na przykład dla `$i = 3` zapis odnosi się do `$tab[3]`.

Jak zmieniłby się wynik, gdyby `$x` miało wartość początkową 10?

Tablica zawierałaby wartości: `10, 20, 30, ..., 100`. Pierwsza wpisana wartość zależy od początkowej wartości zmiennej `$x`.

Jak w JavaScript sprawdzić, czy liczba jest trzycyfrowa?

Trzeba sprawdzić, czy jest większa od 99 i mniejsza od 1000. Zapis: `(a > 99) && (a < 1000)`.

Czym różni się operator `&&` od operatora `||`?

`&&` oznacza logiczne „i”, więc oba warunki muszą być spełnione. `||` oznacza logiczne „lub”, więc wystarczy spełnienie przynajmniej jednego warunku.

Dlaczego warunek liczby trzycyfrowej wymaga operatora `&&`?

Liczba trzycyfrowa musi jednocześnie być większa od 99 i mniejsza od 1000. Oba warunki muszą być prawdziwe naraz.

Co oznacza sformułowanie „przynajmniej jeden warunek jest spełniony” w wyrażeniu logicznym?

Oznacza, że należy użyć operatora `||`. Całe wyrażenie będzie prawdziwe, jeśli prawdziwy będzie pierwszy warunek, drugi warunek albo oba.

Dlaczego odpowiedź z samymi operatorami `||` przy sprawdzaniu liczby trzycyfrowej jest błędna?

Warunek `(a > 99) || (a < 1000)` jest prawdziwy dla wielu liczb, które nie są trzycyfrowe, np. dla `5`. Do określenia przedziału potrzebny jest operator `&&`.

Jak sprawdzić w JavaScript, czy liczba całkowita `b` jest ujemna?

Wystarczy porównać ją z zerem: `b < 0`. Wynikiem takiego porównania jest wartość logiczna `true` albo `false`.

Po co stosuje się nawiasy w złożonych warunkach logicznych?

Nawiasy porządkują warunki i pokazują, które części wyrażenia mają być obliczane razem. Dzięki temu zapis jest czytelniejszy i mniej podatny na błędy.

Jak zbudowany jest szesnastkowy zapis koloru RGB?

Ma postać #RRGGBB, gdzie RR oznacza czerwony, GG zielony, a BB niebieski. Każda składowa jest zapisana jako dwie cyfry szesnastkowe.

Jak zamienić wartość składowej RGB z systemu dziesiętnego na szesnastkowy?

Należy przeliczyć liczbę z zakresu 0–255 na system o podstawie 16. Wynik zapisuje się zawsze dwoma znakami, np. 10 jako 0A.

Dlaczego wartość 160 w RGB zapisuje się jako A0?

W systemie szesnastkowym litera A oznacza wartość 10. Liczba A0 oznacza 10 × 16 + 0, czyli 160.

Co oznacza kolor #000000 w modelu RGB?

Wszystkie składowe mają wartość 0, więc nie świeci żadna barwa. Otrzymujemy kolor czarny.

Co oznacza kolor #FFFFFF w modelu RGB?

Wszystkie składowe mają maksymalną wartość 255. W modelu addytywnym daje to kolor biały.

Jak zapisać kolor RGB(119, 160, 193) w CSS?

Można użyć zapisu dziesiętnego `rgb(119, 160, 193)` albo szesnastkowego `#77A0C1`.

Do czego służy funkcja mysql_num_rows() w PHP?

Służy do zwrócenia liczby wierszy znajdujących się w wyniku zapytania SQL. Najczęściej używa się jej po zapytaniu SELECT.

Czy mysql_num_rows() zwraca konkretny rekord z bazy danych?

Nie. Funkcja zwraca tylko liczbę wierszy w rezultacie zapytania, a nie dane pojedynczego rekordu.

Jaka funkcja była używana do pobierania kolejnego rekordu z wyniku zapytania w starym rozszerzeniu mysql?

Do pobierania rekordów służyły funkcje takie jak mysql_fetch_array(), mysql_fetch_assoc() lub mysql_fetch_row(). Nie należy ich mylić z mysql_num_rows().

Dlaczego funkcji mysql_num_rows() nie powinno się używać w nowych projektach?

Ponieważ należy do przestarzałego rozszerzenia mysql, które zostało usunięte w PHP 7. Zamiast niego stosuje się mysqli albo PDO.

Jaki jest współczesny odpowiednik mysql_num_rows() w rozszerzeniu mysqli?

Odpowiednikiem jest mysqli_num_rows(). Działa podobnie, ale wymaga wyniku zapytania uzyskanego przez funkcje mysqli.

Kiedy lepiej użyć SELECT COUNT(*) zamiast mysql_num_rows()?

Gdy potrzebna jest wyłącznie liczba rekordów, lepiej policzyć je bezpośrednio w SQL za pomocą COUNT(*). Jest to zwykle wydajniejsze niż pobieranie całego zestawu wyników.

Jak zapisać w SQL warunek, że pensja jest większa niż 3000?

Należy użyć operatora `>`: `pensja > 3000`. Taki zapis nie obejmuje wartości 3000.

Jak zapisać w SQL warunek, że pensja jest mniejsza lub równa 4000?

Poprawny zapis to `pensja <= 4000`. Wartość 4000 spełnia ten warunek.

Co oznacza przedział jednostronnie domknięty `(3000, 4000>`?

Oznacza wartości większe od 3000 oraz mniejsze lub równe 4000. Liczba 3000 nie należy do przedziału, a 4000 należy.

Dlaczego w poprawnej odpowiedzi użyto operatora `AND`, a nie `OR`?

`AND` wymaga spełnienia wszystkich warunków jednocześnie: pracownik musi być kierownikiem i mieć pensję w podanym zakresie. `OR` zwróciłby także rekordy spełniające tylko część warunków.

Czy zapis `pensja => 3000` jest poprawny w SQL?

Nie. Poprawny operator „większe lub równe” to `>=`, np. `pensja >= 3000`.

Czy operator `BETWEEN` nadaje się idealnie do przedziału `(3000, 4000>`?

Nie idealnie, ponieważ `BETWEEN 3000 AND 4000` obejmuje obie granice, czyli także 3000. Dla tego przedziału trzeba użyć `pensja > 3000 AND pensja <= 4000`.

Jak wyglądałoby pełne zapytanie SQL pobierające nazwiska kierowników z pensją w tym przedziale?

Przykład: `SELECT nazwisko FROM pracownicy WHERE kierownik = true AND pensja > 3000 AND pensja <= 4000;`.

Co zwraca funkcja mysqli_query() w przypadku zapytania SELECT?

Zwraca wynik zapytania, czyli obiekt/zasób wyniku, z którego można pobierać kolejne rekordy np. funkcją mysqli_fetch_row().

Jak działa funkcja mysqli_fetch_row()?

Pobiera jeden kolejny rekord z wyniku zapytania i zwraca go jako tablicę indeksowaną numerycznie. Jeśli nie ma już rekordów, zwraca null.

Od jakiego numeru zaczynają się indeksy tablic numerycznych w PHP?

Indeksy zaczynają się od 0. Pierwszy element to `$a[0]`, drugi to `$a[1]`, trzeci to `$a[2]`.

Jak kolejność kolumn w SELECT wpływa na indeksy w tablicy zwróconej przez mysqli_fetch_row()?

Kolejność indeksów odpowiada kolejności kolumn w zapytaniu SELECT. Dla `SELECT ulica, miasto, kod_pocztowy` indeks 0 to ulica, indeks 1 to miasto, indeks 2 to kod pocztowy.

Dlaczego podany kod wypisuje tylko dane z pierwszego rekordu?

Ponieważ funkcja `mysqli_fetch_row()` została wywołana tylko raz. Aby wypisać wszystkie rekordy, należałoby użyć pętli, np. `while`.

Jak wypisać wszystkie miasta i kody pocztowe zwrócone przez zapytanie?

Należy pobierać rekordy w pętli: `while ($a = mysqli_fetch_row($z)) { echo $a[1] . ', ' . $a[2]; }`.

Czym różni się mysqli_fetch_row() od mysqli_fetch_assoc()?

`mysqli_fetch_row()` zwraca tablicę z indeksami liczbowymi, np. `$a[1]`. `mysqli_fetch_assoc()` zwraca tablicę asocjacyjną z nazwami kolumn, np. `$a['miasto']`.

Co oznacza `font-style: oblique` w CSS?

Powoduje pochylenie tekstu. Efekt jest podobny do kursywy, ale technicznie `oblique` oznacza sztucznie pochyloną odmianę pisma.

Jak działa `font-variant: small-caps`?

Wyświetla małe litery jako kapitaliki, czyli pomniejszone wielkie litery. Wielkie litery pozostają większe od kapitalików.

Za co odpowiada `text-align: right`?

Wyrównuje zawartość tekstową elementu do prawej krawędzi jego obszaru.

Dlaczego odpowiedź C jest poprawna?

Ponieważ tekst jest pochylony, zapisany kapitalikami i wyrównany do prawej strony, zgodnie z regułą CSS dla `h1`.

Czym różni się `font-variant: small-caps` od `text-transform: uppercase`?

`small-caps` tworzy kapitaliki, czyli małe litery wyglądają jak pomniejszone wielkie. `uppercase` zamienia cały tekst wizualnie na wielkie litery.

Czy znacznik `h1` domyślnie ma pogrubiony tekst?

Tak, przeglądarki domyślnie wyświetlają `h1` jako duży i pogrubiony nagłówek, ale CSS może ten wygląd zmienić.

Co oznacza założenie, że żadne inne style nie są zastosowane do `h1`?

Należy brać pod uwagę tylko podane deklaracje CSS oraz domyślny wygląd nagłówka. Nie trzeba analizować konfliktów z innymi selektorami.

Jaki efekt wizualny daje znacznik <s> w HTML?

Znacznik <s> domyślnie wyświetla tekst jako przekreślony. Jest to efekt podobny do CSS `text-decoration: line-through`.

Kiedy warto używać elementu <s>?

Elementu <s> używa się do oznaczania tekstu, który jest nieaktualny, błędny lub przestał być istotny. Przykładem może być stara cena produktu w promocji.

Czym różni się <s> od <del>?

<s> oznacza tekst nieaktualny, a <del> tekst usunięty z dokumentu lub zmieniony w procesie edycji. Oba zwykle są wyświetlane jako przekreślone, ale mają inne znaczenie semantyczne.

Jak uzyskać przekreślenie tekstu za pomocą CSS?

Do przekreślenia tekstu w CSS służy właściwość `text-decoration: line-through`. Jest to dobre rozwiązanie, gdy chodzi tylko o wygląd, a nie znaczenie treści.

Czy znacznik <s> służy do podkreślania tekstu?

Nie. Podkreślenie tekstu uzyskuje się zwykle za pomocą CSS `text-decoration: underline` albo elementu `<u>`, natomiast `<s>` oznacza przekreślenie.

Do czego służy funkcja AVG() w SQL?

Funkcja `AVG()` oblicza średnią arytmetyczną wartości z podanej kolumny liczbowej. Przykładem może być średnia pensja pracowników.

Jaka jest poprawna ogólna składnia zapytania z AVG()?

Poprawna składnia to `SELECT AVG(nazwa_kolumny) FROM nazwa_tabeli;`. W nawiasie podaje się kolumnę, a po `FROM` tabelę.

Dlaczego w zapytaniu AVG(pensja) po FROM należy podać pracownicy?

Ponieważ `pensja` jest kolumną, z której liczymy średnią, a `pracownicy` jest tabelą zawierającą tę kolumnę.

Czy AVG() można stosować do kolumn tekstowych, takich jak nazwisko?

Nie. `AVG()` służy do obliczeń liczbowych, więc powinna być stosowana do kolumn typu liczbowego, np. `pensja` lub `wiek`.

Jak nadać nazwę kolumnie z wynikiem średniej?

Można użyć aliasu `AS`, np. `SELECT AVG(pensja) AS srednia_pensja FROM pracownicy;`.

Jak obliczyć średnią pensję tylko wybranej grupy pracowników?

Należy dodać warunek `WHERE`, np. `SELECT AVG(pensja) FROM pracownicy WHERE wiek > 30;`.