Розділ №2. Підсумковий тест

  Юрій  | 

  Оновл. 28 Кві 2020  | 

 85

Отримані знання потрібно завжди застосовувати на практиці, тому ми спочатку повторимо теорію, а потім перейдемо до практики.

Теорія

Цілочисельні типи даних використовуються для зберігання цілих чисел. Не забувайте про проблеми ділення і переповнення з ними. Використовуйте цілочисельні типи з фіксованим розміром.

Типи даних з плаваючою крапкою використовуються для зберігання дійсних чисел. Не забувайте про проблеми з точністю, помилки округлення і неточне порівняння чисел.

Логічний тип даних містить 2 значення: true і false.

Символьний тип даних містить цілі числа, які можуть інтерпретуватися в символи, що відповідають стандарту ASCII. Будьте обережні при використанні фактичних чисел і цифр, які використовуються для представлення символів. Також пам’ятайте про проблеми переповнення.

Використовуйте специфікатор const для оголошення символьних констант замість використання директив #define. Це безпечніше.

Завдання №1

Чому символьні константи краще літеральних (магічних чисел)? Чому використання const краще використання директив #define?

Відповідь №1

Використання літеральних констант (магічних чисел) не тільки ускладнює програму, але і ускладнює внесення в неї змін. Символьні константи краще тим, що вони надають контекст того, навіщо і чому вони використовуються + якщо вам ще знадобитися внести зміни — досить буде внести правки тільки в оголошенні константи, а не шукати їх по всьому коду. Константи #define не відображаються в відлагоджувачеві, ймовірність виникнення конфлікту імен у них вище.

Завдання №2

Виберіть відповідний тип даних для змінних в кожній з наступних ситуацій. Будьте якомога конкретнішими. Якщо відповіддю є цілочисельний тип даних, то використовуйте відповідний тип з фіксованим розміром (наприклад, int16_t). Якщо змінна повинна бути константною, то так і відповідайте.

   Вік користувача.

   Чи подобається певний колір користувачеві?

   Число Пі.

   Кількість сторінок в підручнику.

   Ціна акцій в доларах (дріб присутній).

   Скільки разів ви моргнули за все своє життя? (Примітка: Відповідь обчислюється в мільйонах.)

   Користувач вибирає опцію з допомогою введення певної букви.

Відповідь №2

   int8_t не зможе зберігати вік людини, старше 127 років. Незважаючи на те, що таких випадків у світі одиниці (якщо є взагалі), в майбутньому це може бути цілком можливим. Так що int16_t тут підійде найкраще.

   bool.

   const double.

   Так як більшість книг мають більше 255 сторінок, але менше ніж 32 767, то int16_t — тут найкращий варіант.

   float.

   int32_t.

   char.

Завдання №3

Напишіть наступну програму. Спочатку користувачеві пропонується ввести 2 числа типу з плаваючою крапкою (використовуйте тип double). Потім пропонується ввести один з наступних математичних символів: +, -, * або /. Програма виконує обрану користувачем математичну операцію між двома числами, а потім виводить результат на екран. Якщо користувач ввів некоректний символ, то програма нічого не повинна виводити.

Наприклад:

Enter a double value: 7
Enter a second double value: 5
Enter one of the following: +, -, *, or /: *
7 * 5 = 35

Підказка: Ви можете використовувати розгалуження if для того, щоб визначити, ввів користувач певний математичний символ (наприклад, +) чи ні. Детальніше про це читайте в уроці №37.

Відповідь №3

Завдання №4

Це вже трохи складніше. Напишіть коротку програму-симулятор падіння м’ячика з вежі. Спочатку користувачеві пропонується ввести висоту вежі в метрах. Не забувайте про гравітацію (9,8м/с2) і про те, що у м’ячика немає початкової швидкості (він тримається в руках). Програма повинна виводити відстань від землі, на якому знаходиться м’ячик після 0, 1, 2, 3, 4 і 5 секунд падіння. Мінімальна висота: 0 метрів (нижче м’ячику падати не можна).

У вашій програмі повинен бути заголовковий файл constants.h з простором імен myConstants. У myConstants визначте символьну константу для зберігання значення сили тяжіння на Землі (9.8). В якості нагадування дивіться урок №40.

Напишіть функцію для обчислення висоти м’ячика через х секунд падіння. Використовуйте наступну формулу: висота м’ячика = константа_гравітаціі * x_секунд2/2.

Приклад результату виконання програми:

Enter the initial height of the tower in meters: 100
At 0 seconds, the ball is at height: 100 meters
At 1 seconds, the ball is at height: 95.1 meters
At 2 seconds, the ball is at height: 80.4 meters
At 3 seconds, the ball is at height: 55.9 meters
At 4 seconds, the ball is at height: 21.6 meters
At 5 seconds, the ball is on the ground.

Примітка №1: Залежно від початкової висоти, м’ячик може і не досягти землі протягом 5 секунд — це нормально. Ми вдосконалимо цю програму, коли будемо розглядати цикли.

Примітка №2: Символ ^ не є експонентом в C++. В формулі замість нього використовуйте знак множення *.

Відповідь №4

Файл constants.h:

Файл main.cpp:

Зверніть увагу, функція calculateHeight() не виводить висоту на екран (пам’ятаємо про правило одного завдання). Ми використовуємо окрему функцію для виведення.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (Немає Оцінок)
Loading...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *