Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Лафоре Р. -> "Объектно-ориентированное программирование в С++" -> 31

Объектно-ориентированное программирование в С++ - Лафоре Р.

Лафоре Р. Объектно-ориентированное программирование в С++ — М.: Питер, 2004. — 992 c.
Скачать (прямая ссылка): obektnoorentprogramm2004.djvu
Предыдущая << 1 .. 25 26 27 28 29 30 < 31 > 32 33 34 35 36 37 .. 341 >> Следующая


На рис. 2.10 продемонстрирована эквивалентность указанных двух операторов.

С присваиванием комбинируется не только операция сложения, но и другие арифметические операции: -=, *=, /=, %= и т. д. Следующий пример демонстрирует использование арифметических операций с присваиванием:

Il assign.срр

// применение арифметических операций с присваиванием !include <iostream> using namespace std; int mainO

total

total + item;

total + = item; Рис. 2.10. Операция арифметического присваивания

int ans = 27; ans += 10; cout « ans « ans -- 7; cout « ans « ans *=2 : cout « ans « ans I= 3: cout « ans « ans 3: cout « ans « return 0:

II то же самое, что ans = ans *3 endl;

II то же самое, что ans = ans +10:

// то же самое, что ans = ans -7

// то же самое, что ans = ans *2

// то же самое, что ans = ans /3

Результат работы такой программы будет следующим:

37. 30. 60. 20. 2

Использовать арифметические операции с присваиванием при программировании не обязательно, но они являются довольно употребительными В С++, И мы будем пользоваться ими в других наших примерах. Арифметические операции 81

Инкремент

Операция, которую мы сейчас рассмотрим, является более специфичной, нежели предыдущие. При программировании вам часто приходится иметь дело с увеличением какой-либо величины на единицу. Это можно сделать «в лоб», используя оператор

count - count + 1; //увеличение count на 1 или с помощью сложения с присваиванием: count +- 1; //увеличение count на 1

Но есть еще один, более сжатый, чем предыдущие, способ: ++count; //увеличение count на 1

Операция ++ инкрементирует, или увеличивает на 1, свой операнд.

Префиксная и постфиксная формы

Знак операции инкремента может быть записан двояко: в префиксной форме, когда он расположен перед своим операндом, и в постфиксной форме, когда операнд записан перед знаком ++. В чем разница? Часто инкрементирование переменной производится совместно с другими операциями над ней: totalWeight = avgWeight * ++count;

Возникает вопрос — что выполняется раньше: инкрементирование или умножение? В данном случае первым выполняется инкрементирование. Каким образом это определить? Префиксная форма записи и означает то, что инкремент будет выполнен первым. Если бы использовалась постфиксная форма, то сначала бы выполнилось умножение, а затем переменная count была бы увеличена на 1. Рисунок 2.11 иллюстрирует две указанные формы записи.

Рассмотрим пример, в котором используются как префиксная, так и постфиксная формы инкрементирования.

// increm.срр // применение опе| !include <iostreai using namespace s

int mainO {

int count =10: cout « "count= cout « "count= cout « "count= cout « "count= cout « "count= return 0:

}

При первом инкрементировании переменной count мы использовали префиксную форму для того, чтобы вывести на экран значение переменной, уже увеличенное на единицу. Поэтому второй оператор выводит на экран значение 11, а не 10.

рации инкрементирования

и>

td:

« count « endl; « ++count « endl: « count « endl: « count++ « endl: « count « endl:

// вывод числа 10

// вывод числа 11 (префиксная форма)

// вывод числа 11

// вывод числа 11 (постфиксная форма)

// вывод числа 12 82

Глава 2. Ot новы программирования на С++

Постфиксное инкрементирование, наоборот, действует после вывода на экран значения 11, и только следующий оператор получит значение count, равное 12.

1) 2) 3)

Префикс: totalWeight

totalWeight

1244.0

avgWeight

avgWeight I 155.5

I 155.5

++count; count

155.5

Инкремент Умножение

1) 2) 3)

Постфикс: totalWeight

totalWeight

1088.5

1088.5

avgWeight

avgWeight I 155.5

I 155.5

I 155.5

* count++; count

8

¦4-Умножение

I 4-Инкремент

Рис. 2.11. Операция инкремента

Декремент

Операция декремента, обозначаемая --, в отличие от операции инкремента, уменьшает, а не увеличивает, на единицу свой операнд. Декремент также допускает префиксную и постфиксную формы записи.

Библиотечные функции

Многие действия языка С++ производятся с помощью библиотечных функций. Эти функции обеспечивают доступ к файлам, производят математические расчеты, выполняют преобразование данных и множество других действий. До тех пор пока мы не рассмотрим механизм работы функций в главе 5, нет особого смысла вдаваться в подробности относительно библиотечных функций. Тем не менее, уже сейчас вы сможете использовать наиболее простые из библиотечных функций на основе элементарных знаний об их работе.

В следующем примере иод названием SQRT используется библиотечная функция sqrt(), вычисляющая значения квадратного корня из числа, вводимого пользователем. // sqrt.cpp

// использование библиотечной функции sqrtO #include <iostream> //для cout и т.п. Библиотечные функции_83

!include <cmath> //для sqrtO

using namespace std:

int main() {

double number,answer: //аргументы типа double для функции sqrtO

cout « "Введите число: ";

ein » number: // ввод числа
Предыдущая << 1 .. 25 26 27 28 29 30 < 31 > 32 33 34 35 36 37 .. 341 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100