Поговоримо про типи. Частина 3.
Минулого разу я розповідав про типи-цілі числа. На кінець замітки я запропонував написати програму, яка б реалізовувала розрахунок за якою-небудь математичною формулою. Ну от наприклад, всім відома з шкільних часів формула переміщення під час рівноприскореного руху S = v*t + a*t
Відкопілювавши та виконавши цю програму отримаємо:
Для a = 10, все добре. А якщо замінити на 11, то ми мали б отримати 137,5, а ось програма поверне всього 137. Зрозуміло, що втрати дробної частини числа далеко не завжди є допустимими, тому в мові C присутні дійсні числові типи.
Дійсні числові типи в мові C
Можна виділити три дійсні числові типи: float, double,
Отримаємо:
Тип float займає 4 байти, з яких один розряд (біт) йде на знак, 7 на порядок та 24 під мантису. Аналогічно в double під порядок та мантису йде 11 та 52 розріди відповідно. А в long double 19 та 76.
Виводимо дійсні числа
Для виведення дійсних чисел на контенкст виводу через функції форматного виведення, як і цілочислені дані. Однак формат виведення буде іншим.
%f - дійсне число у вигляді десяткового дробу; %e - у вигляді числа з фіксованою крапкою, тобто мантиси та порядку; %g - автовибір між %f та %e, для оптимального відображення (наприклад, 10Операції з дійсними числами
Для дійсних чисел доступні всі операції, що й для цілих окрім двох: цілочислене ділення замінене на звичайне, тобто таке що повертає дійсні числа, та повністю відсутня операція залишку від ділення.
Тут хочу наголосити, що всі операції, що виконуються з дійсними числами в результаті повертають дійсні числа, а якщо всі числа цілі, то й результатом буде ціле число. Тому потрібно бути обережним при використанні дійсних та цілих чисел в одному виразі. Наведу декілька прикладів.
Вираз:
надрукує в консолі 0.000000, тому-що операції виконувались з цілими числами і виконувалось цілочислене ділення. А ось:
надрукує "0.100000 0.100000", тому що один з операндів дійсне число.
Доречі, спроба присвоїти цілій змінній результат виконання операції з дійсними числами неможливий. Потрібно використовувати приведення типів:
Модифікована програма розрахунку за формулою
На кінець хочу навести код модифікованої програми для розрахунку за формулою:
Результатом ії виконання буде:
, що й треба було отримати. Пропоную всім хто слідкує за моїми дописами та виконує мої завдання спробувати модифікувати власні програми для того, щоб вони працювали з дійсними числами.
Наступного разу планую розповісти детальніше про функції введення/виведення. Слідкуйте через rss та поштову розсилку, залишайте відгуки в коментарях та мені на пошту grandse(at)ukr.net. Дякую за увагу!
Коментарі:
До речі, Ваш блог на самописній CMS?
мені здалося, що існує глюк з коментарами - Ваша регулярка не пропустила e-mail 3-го рівня mail@stopie.org.ua
Вибачте за змушений спам
Дякую за увагу до блогу, та уважне читання. Та й взагалі за те, що не полінились коментувати. Виправлю найближчим часом.



