Pytania pomocnicze - INF.04

Projektowanie, programowanie i testowanie aplikacji

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: 1799.
Strona 15 z 20.

Jak rozpoznać pętlę na schemacie blokowym?

Pętla występuje wtedy, gdy po wykonaniu instrukcji przepływ programu wraca do wcześniejszego warunku lub bloku. W tym pytaniu po przypisaniu `y = a + b` algorytm wraca do sprawdzenia warunku.

Dlaczego poprawną odpowiedzią jest kod z instrukcją while?

Ponieważ schemat pokazuje wielokrotne wykonywanie instrukcji tak długo, jak warunek `y <> 100` jest prawdziwy. To odpowiada konstrukcji `while (y != 100)`.

Co oznacza zapis `y <> 100` w schemacie blokowym?

Oznacza, że zmienna `y` jest różna od `100`. W wielu językach programowania zapisuje się to jako `y != 100`.

Czym różni się instrukcja if od pętli while?

`if` sprawdza warunek i wykonuje blok kodu najwyżej raz. `while` sprawdza warunek wielokrotnie i powtarza blok, dopóki warunek jest prawdziwy.

Co oznaczają litery T i N przy wyjściach z warunku w schemacie blokowym?

`T` oznacza „tak”, czyli warunek jest spełniony. `N` oznacza „nie”, czyli warunek nie jest spełniony.

Kiedy pętla `while (y != 100)` zakończy działanie?

Pętla zakończy się wtedy, gdy po sprawdzeniu warunku okaże się, że `y` jest równe `100`. Wtedy warunek `y != 100` będzie fałszywy.

Dlaczego kod z warunkiem `while (y == 100)` nie pasuje do schematu?

Schemat wykonuje instrukcję, gdy `y` jest różne od `100`, a nie gdy jest równe `100`. Warunek `y == 100` ma odwrotne znaczenie.

Dlaczego kod z instrukcją if else jest równoważny instrukcji switch z pytania?

Ponieważ sprawdza te same wartości zmiennej `nrTel`: 999, 998 i 997. Dla każdej wartości przypisuje ten sam opis, a dla pozostałych przypadków wykonuje gałąź `else`, odpowiednik `default`.

Jaką rolę pełni słowo kluczowe default w instrukcji switch?

`default` wykonuje się wtedy, gdy żadna wartość podana w `case` nie pasuje do wartości sprawdzanego wyrażenia. Jest odpowiednikiem końcowego `else` w instrukcji warunkowej.

Dlaczego w tym przypadku poprawny jest Kod 2, a nie Kod 3?

Kod 2 używa łańcucha `if - else if - else`, więc wykona się tylko jedna pasująca gałąź. W Kodzie 3 ostatnie `else` należy tylko do ostatniego `if`, co może nadpisać wcześniejsze przypisanie.

Na czym polega błąd logiczny w zapisie kilku niezależnych instrukcji if zamiast if else?

Niezależne instrukcje `if` są sprawdzane osobno. Jeśli na końcu występuje `else`, odnosi się ono tylko do najbliższego poprzedzającego `if`, a nie do całego zestawu warunków.

Co oznacza funkcjonalna równoważność dwóch fragmentów kodu?

Dwa fragmenty kodu są funkcjonalnie równoważne, jeśli dla tych samych danych wejściowych dają ten sam efekt końcowy. Nie muszą mieć identycznej składni.

Dlaczego instrukcja break jest ważna w switch?

`break` przerywa wykonywanie instrukcji `switch` po obsłużeniu danego przypadku. Bez niego program mógłby przejść do kolejnych etykiet `case`.

Kiedy lepiej zastosować switch zamiast wielu instrukcji if else?

`switch` jest czytelny, gdy porównuje się jedną zmienną z wieloma konkretnymi wartościami. `if else` jest bardziej uniwersalne, gdy warunki są złożone, np. zawierają zakresy lub kilka zmiennych.

Po czym rozpoznać znak ochrony przeciwpożarowej?

Najczęściej ma czerwone tło i biały piktogram. Informuje o sprzęcie, instalacji lub działaniu związanym z pożarem.

Co oznacza symbol dłoni naciskającej przycisk obok płomienia?

Oznacza system alarmowy przeciwpożarowy lub miejsce uruchomienia alarmu pożarowego. W pytaniu egzaminacyjnym poprawna odpowiedź to system alarmowy przeciwpożarowy.

Dlaczego znaki przeciwpożarowe są czerwone?

Kolor czerwony jest standardowo kojarzony z pożarem, alarmem i sprzętem gaśniczym. Dzięki temu znak jest łatwy do zauważenia w sytuacji zagrożenia.

Czym różni się znak systemu alarmowego przeciwpożarowego od znaku rozdzielni elektrycznej?

Znak systemu alarmowego odnosi się do zgłaszania lub sygnalizowania pożaru. Rozdzielnia elektryczna dotyczy instalacji elektrycznej i zwykle nie jest oznaczana symbolem płomienia oraz przycisku alarmowego.

Jakie działanie należy podjąć po zauważeniu pożaru w miejscu pracy?

Należy zaalarmować osoby w pobliżu, uruchomić alarm przeciwpożarowy, powiadomić odpowiednie służby i stosować się do procedur ewakuacyjnych.

Czym jest system kontroli wersji?

To narzędzie pozwalające zapisywać historię zmian w plikach projektu. Dzięki temu można sprawdzić, kto i kiedy coś zmienił oraz wrócić do wcześniejszej wersji.

Dlaczego Git jest poprawną odpowiedzią w tym pytaniu?

Git służy bezpośrednio do zarządzania wersjami kodu i pracy z repozytoriami. Pozostałe narzędzia z odpowiedzi mają inne główne zastosowania.

Do czego służy commit w Git?

Commit to zapis konkretnego stanu projektu w historii repozytorium. Można go traktować jak punkt kontrolny zmian.

Czym różni się Git od GitHub?

Git to system kontroli wersji instalowany lokalnie. GitHub to platforma internetowa do przechowywania repozytoriów Git i współpracy zespołowej.

Czy Jira służy do zarządzania wersjami kodu?

Nie bezpośrednio. Jira służy głównie do zarządzania zadaniami, projektami i zgłoszeniami, choć może być integrowana z Gitem.

Do czego służy branch w Git?

Branch, czyli gałąź, pozwala pracować nad zmianami niezależnie od głównej wersji projektu. Po zakończeniu pracy zmiany można połączyć z inną gałęzią.

Jakie narzędzia są często mylone z Gitem na egzaminie?

Często pojawiają się Trello, Jira i Bugzilla. Trello i Jira służą do organizacji pracy, a Bugzilla do obsługi zgłoszeń błędów.

Jakie cyfry występują w systemie binarnym?

W systemie binarnym występują tylko dwie cyfry: 0 i 1. Dlatego nazywa się go systemem dwójkowym.

Kiedy w dodawaniu binarnym powstaje przeniesienie?

Przeniesienie powstaje, gdy suma w danej kolumnie wynosi co najmniej 2, np. 1 + 1 = 10₂. Zapisuje się wtedy jeden bit wyniku, a 1 przenosi do następnej kolumny.

Jak sprawdzić wynik dodawania binarnego w systemie dziesiętnym?

Można zamienić obie liczby binarne na dziesiętne, dodać je, a następnie zamienić wynik z powrotem na system binarny.

Ile wynosi liczba binarna 1101 w systemie dziesiętnym?

1101₂ to 13₁₀, ponieważ 1·8 + 1·4 + 0·2 + 1·1 = 13.

Ile wynosi liczba binarna 1001 w systemie dziesiętnym?

1001₂ to 9₁₀, ponieważ 1·8 + 0·4 + 0·2 + 1·1 = 9.

Dlaczego wynik 1101 + 1001 ma pięć bitów?

W ostatniej, najbardziej znaczącej kolumnie występuje przeniesienie. To przeniesienie tworzy dodatkowy bit z lewej strony wyniku.

Czym charakteryzuje się metoda abstrakcyjna?

Metoda abstrakcyjna ma zadeklarowaną nazwę, typ zwracany i parametry, ale nie zawiera ciała metody. Jej implementację muszą dostarczyć klasy dziedziczące, o ile same nie są abstrakcyjne.

Dlaczego metoda abstrakcyjna nie ma implementacji w klasie bazowej?

Klasa bazowa określa tylko wymagany interfejs zachowania, ale nie zna szczegółów wykonania. Konkretne działanie zależy od klasy pochodnej.

Czy metoda abstrakcyjna zawsze jest prywatna?

Nie. Metoda abstrakcyjna nie powinna być prywatna, ponieważ klasa pochodna musi mieć możliwość jej zaimplementowania. Najczęściej jest publiczna lub chroniona.

Jaka jest różnica między metodą abstrakcyjną a zwykłą metodą?

Zwykła metoda ma implementację, czyli ciało z instrukcjami. Metoda abstrakcyjna zawiera tylko deklarację i wymusza implementację w klasach pochodnych.

Co musi zrobić klasa dziedzicząca po klasie z metodą abstrakcyjną?

Musi zaimplementować wszystkie odziedziczone metody abstrakcyjne. Jeśli tego nie zrobi, sama również musi być zadeklarowana jako abstrakcyjna.

Jaki jest związek metody abstrakcyjnej z polimorfizmem?

Metody abstrakcyjne umożliwiają wywoływanie tej samej metody na obiektach różnych klas pochodnych. Każda klasa może wykonać ją na swój sposób.

Dlaczego błędy aplikacji React lub Angular często widać w konsoli przeglądarki?

React i Angular tworzą aplikacje działające głównie po stronie klienta, czyli w przeglądarce. Gdy wystąpi błąd JavaScript, przeglądarka wyświetla go w konsoli.

Jakie informacje można znaleźć w konsoli przeglądarki?

Można tam znaleźć błędy JavaScript, ostrzeżenia, komunikaty `console.log()`, problemy z ładowaniem zasobów oraz błędy zapytań do API.

Dlaczego narzędzia po stronie serwera nie są najlepszą odpowiedzią w tym pytaniu?

Błędy interpretacji kodu React lub Angular zwykle dotyczą kodu wykonywanego w przeglądarce. Serwer może obsługiwać API lub pliki, ale nie interpretuje bezpośrednio kodu front-endu użytkownika.

Czy JavaScript ma klasyczny kompilator wykrywający takie błędy jak w C++ lub Javie?

JavaScript jest wykonywany przez silnik przeglądarki i wiele błędów ujawnia się dopiero w czasie działania programu. Dlatego w praktyce sprawdza się je m.in. w konsoli przeglądarki.

Do czego służy instrukcja console.log() podczas debugowania?

`console.log()` pozwala wypisać w konsoli wartości zmiennych, obiektów lub etapów wykonania programu. Pomaga szybko sprawdzić, co dzieje się w kodzie.

Czym różni się konsola przeglądarki od debuggera?

Konsola pokazuje komunikaty i błędy oraz pozwala wykonywać proste polecenia JavaScript. Debugger umożliwia dokładniejsze śledzenie kodu, np. zatrzymywanie programu na breakpointach.

Jak otworzyć narzędzia deweloperskie w przeglądarce?

Najczęściej używa się klawisza `F12` albo skrótów `Ctrl + Shift + I` lub `Ctrl + Shift + J`. Konsola znajduje się zwykle w zakładce `Console`.

Czym jest Dziennik Testów w dokumentacji testowej?

Dziennik Testów to zapis przebiegu wykonania testów. Zawiera informacje o wykonanych przypadkach testowych, osobach testujących, czasie wykonania i wynikach.

Jak odróżnić Dziennik Testów od Planu Testów?

Plan Testów opisuje, jak testowanie ma być zorganizowane przed jego rozpoczęciem. Dziennik Testów zapisuje to, co faktycznie wydarzyło się podczas wykonywania testów.

Jakie informacje są typowo zapisywane w Dzienniku Testów?

Najczęściej zapisuje się identyfikator testu, datę wykonania, osobę wykonującą, wynik testu oraz ewentualne uwagi lub odwołania do błędów.

Czym różni się Specyfikacja Procedury Testowej od Dziennika Testów?

Specyfikacja Procedury Testowej opisuje kroki, które tester powinien wykonać. Dziennik Testów dokumentuje, że test został wykonany i jaki był jego rezultat.

Do czego służy Raport Podsumowujący Testy?

Raport Podsumowujący Testy przedstawia końcową ocenę procesu testowania, wyniki, wykryte problemy i wnioski. Powstaje po zakończeniu testów.

Dlaczego w Dzienniku Testów zapisuje się osobę wykonującą test?

Pozwala to ustalić odpowiedzialność za wykonanie testu i ułatwia wyjaśnianie ewentualnych nieścisłości lub błędów w wynikach.

Jakie jest znaczenie standardu IEEE 829 w testowaniu oprogramowania?

IEEE 829 porządkuje dokumentację testową i określa typowe dokumenty używane w procesie testowania. Dzięki temu łatwiej standaryzować pracę testerów.

Czym jest pole klasy?

Pole klasy to zmienna zadeklarowana wewnątrz klasy, która przechowuje dane obiektu lub klasy. Przykładami pól są marka, rocznik i parametry samochodu.

Dlaczego marka i rocznik samochodu nie są metodami?

Marka i rocznik opisują stan obiektu, czyli przechowują dane. Metoda służy do wykonywania czynności, np. uruchom(), hamuj() albo wyswietlDane().

Jaka jest różnica między polem a metodą w klasie?

Pole przechowuje wartość, np. rocznik = 2020. Metoda wykonuje operację, np. oblicza wiek samochodu lub wyświetla informacje.

Czy tablica może być polem klasy?

Tak. Jeśli w klasie zadeklarowano np. parametry[], to jest to pole przechowujące wiele wartości, np. pojemność silnika, moc lub spalanie.

Czym różni się klasa od obiektu?

Klasa jest wzorcem opisującym, jakie pola i metody będzie miał dany typ. Obiekt to konkretny egzemplarz klasy, np. samochód marki Toyota z rocznika 2021.

Do czego służą modyfikatory dostępu przy polach klasy?

Modyfikatory dostępu określają, skąd można odczytać lub zmienić pole. Na przykład private ukrywa pole przed bezpośrednim dostępem z zewnątrz klasy.

Co oznacza błąd kompilatora „incompatible types”?

Oznacza, że w kodzie użyto wartości typu niezgodnego z typem oczekiwanym przez zmienną, funkcję, metodę lub operator.

Dlaczego przekazanie napisu do funkcji oczekującej liczby całkowitej powoduje błąd?

Ponieważ napis i liczba całkowita to różne typy danych. Kompilator nie może traktować tekstu jako wartości typu `int`, jeśli nie wykonano poprawnej konwersji.

Czym różni się parametr funkcji od argumentu funkcji?

Parametr to zmienna zadeklarowana w definicji funkcji, np. `int x`. Argument to konkretna wartość przekazana podczas wywołania, np. `5`.

Czy przypisanie wartości 243 do zmiennej typu int jest błędem typów?

Nie. Wartość `243` jest liczbą całkowitą, więc pasuje do typu `int`, o ile mieści się w jego zakresie.

Czy wywołanie funkcji zwracającej void musi być przypisane do zmiennej?

Nie. Typ `void` oznacza, że funkcja nie zwraca wartości, więc zwykle wywołuje się ją samodzielnie jako instrukcję.

Jak można naprawić błąd niezgodności typów?

Trzeba przekazać wartość właściwego typu, zmienić deklarację typu albo zastosować poprawną konwersję lub rzutowanie, jeśli ma to sens.