Українська
Підсумки
Висновки
Типи задають допустимі значення, але коректність предметних даних перевіряє програміст. Ініціалізація і перевірка меж запобігають значній частині дефектів. Введення потребує перевірки стану потоку та змісту значення. Розгалуження і цикли будують алгоритм, а формат виведення робить результат читабельним. Перевірка на межах і некоректних токенах потрібна навіть для короткої консольної програми.
Питання для самоперевірки
- Чим тип відрізняється від поточного значення змінної?
- Чому
longу MSVC x64 не обов’язково має 8 байтів? - Чим
min()іlowest()відрізняються дляdouble? - Яке звуження забороняє ініціалізація фігурними дужками?
- Чим
const,constexprіautoвідрізняються за призначенням? - Чому
charне є універсальним типом літери Unicode? - Коли ділення є цілим і як отримати дробовий результат?
- Чому переповнення потрібно перевіряти до операції?
- Що означає
{:08.3f}і чи обмежує воно величину числа? - Навіщо після помилки введення потрібні
clearтаignore? - Чому EOF не слід обробляти нескінченним повторенням запиту?
- Коли тіло
whileможе не виконатися жодного разу? - Чим
breakвідрізняється відcontinue? - Яка різниця між генератором і розподілом випадкових чисел?
- Які тести потрібні для циклу з користувацькими межами і кроком?
Контрольні питання до лабораторної роботи
- Як відрізняються синтаксична й предметна перевірки введення?
- Коли доцільні
int,long longтаdouble? - Що змінює явне перетворення перед діленням?
- Як перевірити переповнення додавання невід’ємних чисел?
- Чому не можна перевіряти діапазон ланцюжком порівнянь?
- Як правильно відновити потік після помилкового токена?
- Як
continueвпливає на крокfor? - Чим
switchвідрізняється відifдля діапазонів? - Що означає мінімальна ширина форматованого поля?
- Як довести, що цикл завершиться для допустимих даних?
Корисні посилання
- Типи MSVC: https://learn.microsoft.com/cpp/cpp/fundamental-types-cpp.
- Реалізація форматування MSVC: https://github.com/microsoft/STL/blob/main/stl/inc/format.
- Введення: https://learn.microsoft.com/cpp/standard-library/basic-istream-class.
- Випадкові числа: https://learn.microsoft.com/cpp/standard-library/random.