Базовий курс програмування на С++. Урок 4. Арифметичні операції та перетворення типів. |
Написав Joker | |||||||||||||||||||||||||||||||||||||||||
Четвер, 25 вересня 2014 08:28 Переглядів: 14638
|
|||||||||||||||||||||||||||||||||||||||||
Грамотний програміст – хороша зарплата, Грамотний програміст – хороше майбутнє.
Сьогодні ми вивчимо:
Арифметичні операції з числами Арифметичні операції – це операції, які дозволяють виконувати арифметичні дії з даними. Більшість з них ви вже знаєте з школи.
При роботі з операцією ділення по модулю потрібно пам’ятати про деякі особливості:
Інкремент / декремент Всі вище описані операції – бінарні. Крім них існують ще унарні арифметичні операції. Ці операції не вивчаються у школах, але це легка тема. Інкремент створюється конструкцією ++. Цей оператор збільшує значення змінної на 1. Спосіб 2:
Декремент – протилежність інкременту. Якщо перший збільшував значення змінної на 1, то декремент зменшує значення змінної на 1. Конструкція запису схожа, щоб записати декремент потрібно використовувати -- (два мінуси). Все інше аналогічне. Інкременти та декременти найчастіше використовуються при роботі з циклами.
Cкорочення арифметичних записів На минулих уроках ми навчилися скорочувати x=x+1 , на x++. Таким чином змінна x збільшується на 1. Проте нам може знадобитися збільшити змінну не на 1, а на деяке інше число. Це можна зробити! Запис x = x + 12 можна замінити на х += 12 (звісно ж число 12 можна замінити на будь-яке інше). Так можна замінити і інші записи.
Я рекомендую використовувати скорочену форму запису, оскільки цим ви вчитеся хорошого і красивого стилю програмування. Це покращить читабельність вашої програми. Ще один плюс - деякі підручники твердять про те, що такі записи опрацьовуються комп’ютером швидше ніж стандартні аналоги.
Перетворення типів Під час програмування ми повинні знати яким буде наш результат. Також очевидним буде факт, що з речовин потрібних для борщу, зробити макарони буде дещо важко. Відповідно результат буде залежати від частин, які використовувалися при обчисленні. Цей закон працює і для змінних. Не важко здогадатись, що якщо додати дві змінні типу int, результатом буде також тип int. Але яким буде результат, коли змінні різних типів? Про це зараз і піде мова. Перш за все, потрібно розібратися, які типи можуть взаємодіяти між собою. Для цього у С++ створена ієрархія типів, де всі типи розміщенні по старшинству. bool -> char -> short-int-unsigned int-long-unsigned long-float-double-long double Не дивлячись на те, що деякі типи мають однаковий розмір, вони мають різний діапазон значень. Так unsigned int в порівнянні з int може помістити в себе в 2 рази більше додатних значень і тому він старший у ієрархії. Також варто відмітити, що при участі таких типів як: bool, short, char. Вони автоматично перетворюються у int. Далі піде мова про перетворення типів у виразі (коді програми). Ось ми і підійшли до того як визначити якого типу буде результат обчислення. Давайте спробуємо це зробити за допомогою уже відомих знань. Припустимо, що ми працюємо з такими змінними. Користуючись цими змінними ми хочемо обчислити I-F+S*B А ось і питання – У змінну якого типу потрібно записати результат? Відповідь досить проста, але спершу потрібно їх записати у вигляді їхніх типів. int-float+short*bool. Тепер згадаємо, що short та bool автоматично перетворяться у int . Вираз зміниться на int-float+int*int. Тепер float буде = 0. При множенні двох типів int, результат також буде цього типу. А от int-float буде рівне float. Тут з’явилося нове правило:
Якщо у будь-якому виразі використовуються різні типи даних, то результат буде дорівнювати більшому з типів.
Таким чином результат виразу буде мати тип float. Тепер це все не настільки важливо, щоб визначити тип достатньо знайти найбільший тип який використовується при обчисленні виразу. Але це не знімає з програміста всієї обережності при роботі з типами змінних.
При діленні цілого числа на ціле, результатом буде також ціле число. Потрібно вказати, що результат повинен бути типу float. Це робиться так:
Домашнє завдання Сьогодні ви вивчили дуже важливу тему. Але щоб повноцінно її застосовувати вам потрібно вивчити теми з наступного уроку. Сьогодні не буде д/з. Ви отримаєте його на наступному уроці, де ви будете використовувати знання з обох уроків.
Наступний урок уже готується, очікуйте. Дякую за увагу. ( 19 Проголосувало ) Новіші матеріали:
Старіші матеріали:
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |