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: 3704.
Strona 42 z 50.

Czym jest zmienna w języku C++?

Zmienna to nazwane miejsce w pamięci, w którym program może przechowywać dane. Każda zmienna ma określony typ, np. `int`, `float`, `char` lub `bool`.

Do czego służy typ `int` w C++?

Typ `int` służy do przechowywania liczb całkowitych, czyli wartości bez części ułamkowej. Przykłady takich wartości to `-3`, `0`, `25`.

Jaka jest różnica między `int` a `float`?

`int` przechowuje liczby całkowite, a `float` liczby zmiennoprzecinkowe, czyli z częścią ułamkową. Przykład: `int wiek = 18;`, `float cena = 12.50;`.

Czym różni się deklaracja zmiennej od inicjalizacji?

Deklaracja tworzy zmienną, np. `int liczba;`. Inicjalizacja od razu przypisuje jej wartość początkową, np. `int liczba = 5;`.

Jakie są przykłady podstawowych typów danych w C++?

Podstawowe typy to m.in. `int` dla liczb całkowitych, `float` dla liczb rzeczywistych, `char` dla znaków oraz `bool` dla wartości logicznych.

Dlaczego `char liczba;` nie jest deklaracją zmiennej całkowitej?

Ponieważ `char` oznacza typ znakowy, przeznaczony głównie do przechowywania pojedynczych znaków, np. `'A'`. Do liczb całkowitych używa się typu `int`.

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

`==` porównuje dwie wartości i zwraca `true` albo `false`. Operator `=` przypisuje wartość do zmiennej.

Co zwraca wyrażenie `x != y`?

Zwraca `true`, gdy wartości `x` i `y` są różne. Jeśli są równe, zwraca `false`.

Do czego służy operator `&&`?

`&&` oznacza logiczne AND. Całe wyrażenie jest prawdziwe tylko wtedy, gdy oba warunki są prawdziwe.

Do czego służy operator `||`?

`||` oznacza logiczne OR. Wyrażenie jest prawdziwe, gdy przynajmniej jeden z warunków jest prawdziwy.

Dlaczego `x == y` zwraca wartość logiczną?

Ponieważ jest to wyrażenie porównujące. Wynikiem porównania może być tylko prawda (`true`) albo fałsz (`false`).

Jak można użyć operatora `==` w instrukcji warunkowej?

Można sprawdzić równość wartości, np. `if (x == y)`. Kod wewnątrz instrukcji wykona się tylko wtedy, gdy zmienne są równe.

Czym różni się deklaracja typu od deklaracji zmiennej w C++?

Deklaracja typu definiuje nowy rodzaj danych, np. `class Student {};`. Deklaracja zmiennej tworzy zmienną określonego typu, np. `int wynik = 100;`.

Dlaczego `class Student {};` jest przykładem typu złożonego?

Ponieważ definiuje nowy typ danych o nazwie `Student`. Klasa może zawierać pola i metody, czyli składać się z wielu elementów.

Czy `bool status;` jest deklaracją typu złożonego?

Nie. Jest to deklaracja zmiennej `status` typu prostego `bool`, który przechowuje wartość logiczną `true` albo `false`.

Jakie są przykłady typów prostych w C++?

Do typów prostych należą między innymi `int`, `float`, `double`, `char` i `bool`. Służą do przechowywania pojedynczych wartości.

Jaka jest różnica między klasą a obiektem?

Klasa jest definicją typu, czyli wzorcem. Obiekt jest konkretną instancją tej klasy utworzoną w programie.

Czy sama deklaracja klasy tworzy obiekt?

Nie. Zapis `class Student {};` definiuje typ `Student`, ale nie tworzy jeszcze żadnego obiektu. Obiekt powstaje np. przez zapis `Student s1;`.

Czym jest źródło danych wejściowych w programie?

To miejsce lub urządzenie, z którego program pobiera dane. Może to być klawiatura, plik, baza danych, formularz lub sieć.

Jaka jest różnica między operacją wejścia a operacją wyjścia?

Operacja wejścia dostarcza dane do programu, a operacja wyjścia przekazuje dane z programu na zewnątrz. Przykładem wejścia jest odczyt z klawiatury, a wyjścia wyświetlenie wyniku na ekranie.

Dlaczego dane wejściowe powinny być sprawdzane?

Dane od użytkownika lub z pliku mogą być błędne, puste albo niebezpieczne. Walidacja pomaga uniknąć błędów działania programu i problemów z bezpieczeństwem.

Czy odczyt danych z pliku jest operacją wejścia?

Tak. Jeśli program pobiera dane z pliku, wykonuje operację wejścia, ponieważ dane trafiają z zewnętrznego źródła do programu.

Czy wpisanie tekstu w formularzu internetowym jest operacją wejścia?

Tak. Dane wpisane przez użytkownika w formularzu są przekazywane do aplikacji, więc stanowią dane wejściowe.

Jakie instrukcje służą do operacji wejścia w popularnych językach?

W Pythonie często używa się `input()`, w C++ `std::cin`, a w C# `Console.ReadLine()`. Wszystkie te mechanizmy pozwalają programowi pobrać dane.

Czym różni się operator `==` od operatora `=` w C++?

Operator `==` porównuje dwie wartości, a operator `=` przypisuje wartość do zmiennej. Przykład: `x = 5` oznacza przypisanie, a `x == 5` oznacza sprawdzenie, czy `x` ma wartość 5.

Jaki typ wyniku zwraca wyrażenie z operatorem `==`?

Wyrażenie z operatorem `==` zwraca wartość typu `bool`, czyli `true` albo `false`.

Gdzie najczęściej używa się operatora `==`?

Najczęściej używa się go w instrukcjach warunkowych, np. `if`, gdy program ma wykonać określone działanie tylko wtedy, gdy dwie wartości są równe.

Co oznacza zapis `a == b` w C++?

Zapis `a == b` oznacza sprawdzenie, czy wartość zmiennej `a` jest równa wartości zmiennej `b`.

Jaki operator służy w C++ do sprawdzenia, czy dwie wartości są różne?

Do sprawdzenia, czy dwie wartości są różne, służy operator `!=`. Przykład: `a != b` oznacza, że `a` jest różne od `b`.

Dlaczego pomylenie `=` i `==` może powodować błędy w programie?

Ponieważ `=` zmienia wartość zmiennej, zamiast ją porównywać. W warunkach może to prowadzić do nieoczekiwanego działania programu.

Do czego służy operator `in` w Pythonie?

Operator `in` sprawdza, czy element znajduje się w kolekcji, np. w liście, napisie, krotce, zbiorze lub słowniku. Zwraca `True` albo `False`.

Jak sprawdzić, czy liczba znajduje się na liście w Pythonie?

Można użyć składni `liczba in lista`, np. `5 in [1, 3, 5]`, co zwróci `True`.

Czym różni się operator `in` od operatora `==`?

`in` sprawdza, czy element należy do kolekcji. Operator `==` porównuje dwie wartości i sprawdza, czy są równe.

Czym różni się operator `in` od operatora `is`?

`in` sprawdza przynależność elementu do kolekcji. `is` sprawdza, czy dwie zmienne odnoszą się do tego samego obiektu w pamięci.

Jak sprawdzić, czy elementu nie ma na liście?

Należy użyć operatora `not in`, np. `"Ala" not in imiona`. Wynik będzie `True`, jeśli element nie występuje na liście.

Czy operator `in` działa tylko z listami?

Nie. Operator `in` działa także m.in. z napisami, krotkami, zbiorami i słownikami.

Do czego służy instrukcja `while` w C++?

Instrukcja `while` służy do wielokrotnego wykonywania bloku kodu, dopóki podany warunek jest prawdziwy.

Czym różni się `while` od `if`?

`if` sprawdza warunek i wykonuje blok kodu najwyżej raz. `while` sprawdza warunek wielokrotnie i może wykonywać ten sam blok wiele razy.

Kiedy pętla `while` może stać się pętlą nieskończoną?

Gdy warunek pętli nigdy nie stanie się fałszywy, np. gdy zapomnimy zmienić wartość zmiennej sterującej.

Jaką rolę pełni warunek w pętli `while`?

Warunek decyduje, czy blok kodu ma zostać wykonany. Jest sprawdzany przed każdą iteracją pętli.

Czym różni się `while` od `switch`?

`while` jest instrukcją pętli, czyli powtarza blok kodu. `switch` jest instrukcją wyboru, która wykonuje jedną z gałęzi programu zależnie od wartości wyrażenia.

Do czego służy instrukcja `break` w pętli?

`break` przerywa działanie pętli przed naturalnym zakończeniem wynikającym z warunku.

Czym różni się biblioteka standardowa Pythona od zewnętrznych bibliotek instalowanych przez pip?

Biblioteka standardowa jest dostępna od razu po instalacji Pythona. Biblioteki zewnętrzne, np. `requests` lub `numpy`, trzeba doinstalować najczęściej za pomocą `pip`.

Do czego służy moduł sys w Pythonie?

Moduł `sys` umożliwia dostęp do funkcji i danych związanych z interpreterem Pythona, np. wersji Pythona, argumentów programu oraz zakończenia działania programu.

Dlaczego odpowiedzi <math.h> i <stdio.h> nie są poprawne dla Pythona?

`<math.h>` i `<stdio.h>` to pliki nagłówkowe języka C. Python nie używa takiej składni importowania bibliotek.

Z jakim językiem programowania najczęściej kojarzy się vector?

`vector` kojarzy się głównie z językiem C++, gdzie `std::vector` jest dynamiczną tablicą z biblioteki standardowej STL.

Jak importuje się moduły w Pythonie?

Moduły importuje się instrukcją `import`, np. `import sys`. Można też importować konkretne elementy, np. `from math import sqrt`.

Czy moduł sys trzeba instalować przed użyciem?

Nie. `sys` jest częścią biblioteki standardowej Pythona, więc jest dostępny bez dodatkowej instalacji.

Czym różni się operator `|` od operatora `||` w C++?

`|` to operator bitowy OR, działający na bitach liczb całkowitych. `||` to operator logiczny OR, używany głównie w warunkach i zwracający wartość logiczną.

Jak działa bitowe lub na przykładzie liczb 5 i 3?

Liczba 5 to binarnie `0101`, a 3 to `0011`. Wynik `5 | 3` to `0111`, czyli dziesiętnie `7`.

Do czego służy operator `^` w C++?

Operator `^` oznacza bitowe XOR. Wynikowy bit ma wartość `1` tylko wtedy, gdy porównywane bity są różne.

Który operator w C++ służy do przesunięcia bitów w prawo?

Do przesunięcia bitów w prawo służy operator `>>`. Przykład: `x >> 1` przesuwa bity liczby `x` o jedną pozycję w prawo.

Kiedy w programowaniu stosuje się operatory bitowe?

Operatory bitowe stosuje się m.in. przy maskach bitowych, flagach, programowaniu niskopoziomowym i obsłudze rejestrów sprzętowych.

Dlaczego w pytaniu poprawna jest odpowiedź „bitowe lub”, a nie „logiczne lub”?

Ponieważ operator logicznego lub w C++ zapisuje się jako `||`. Pojedynczy znak `|` oznacza operację bitową OR.

Na czym polega dziedziczenie w programowaniu obiektowym?

Dziedziczenie polega na tym, że jedna klasa przejmuje pola, metody lub zachowania innej klasy. Klasa przejmująca nazywa się zwykle klasą pochodną, a klasa źródłowa klasą bazową.

Po co stosuje się dziedziczenie?

Dziedziczenie pozwala ponownie wykorzystać kod i uporządkować klasy w hierarchię. Dzięki temu nie trzeba wielokrotnie pisać tych samych pól i metod.

Czym jest klasa bazowa, a czym klasa pochodna?

Klasa bazowa to klasa, z której inne klasy dziedziczą. Klasa pochodna to klasa, która przejmuje cechy klasy bazowej i może dodać własne elementy.

Czym dziedziczenie różni się od hermetyzacji?

Dziedziczenie opisuje przejmowanie cech jednej klasy przez drugą. Hermetyzacja polega na ukrywaniu szczegółów implementacji i kontrolowaniu dostępu do danych.

Czym dziedziczenie różni się od polimorfizmu?

Dziedziczenie tworzy relację między klasą bazową i pochodną. Polimorfizm pozwala używać obiektów różnych klas przez wspólny typ lub interfejs.

Jak dziedziczenie wiąże się z nadpisywaniem metod?

Klasa pochodna może przejąć metodę z klasy bazowej, ale zdefiniować jej własną wersję. Taki mechanizm nazywa się nadpisywaniem metody.

Kiedy dziedziczenie może być złym wyborem?

Dziedziczenie nie powinno być stosowane tylko po to, aby uniknąć powtarzania kodu. Jeśli klasy nie mają logicznej relacji typu „jest rodzajem”, lepsza może być kompozycja.