Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Листинг 6. Использование выражений вместо операторов инкремента.




main(){intcount = 0;printf("Первое значение переменной \count равно %d", count);printf("Второе значение переменной \count равно %d", count+1);printf("Последним значением переменной \count является %d", count);}

В результате работы программы мы увидим следующие сообщения:

Первое значение переменной count равно 0Второе значение переменной count равно 1Последним значением переменной count является 0

Значение выражения count+1 представлено на экране как 1, но полученный результат не был внесен в соответствующую область памяти. Поэтому третья функция printf() вывела на экран монитора исходное значение переменной, равное 0.

Оператор инкремента можно использовать так же, как и выражение, значение которого будет присвоено переменной, стоящей в левой части инструкции присваивания. Например, следующая инструкция увеличивает значение переменной count, а затем присваивает полученное значение переменной number:

number = ++count;

те же операции можно было выполнить и так:

count = count + 1;number = count;

Оператор ++ можно использовать с именем переменной как инструкцию:

++number;

Если же знаки ++ помещены справа от имени переменной,

variable++;

то приращение значения переменной произойдет после завершения соответствующей инструкции. Посмотрите на слегка модифицированную программу из Листинга6:

main() { intcount = 0; printf("Первое значение переменной \count равно %d", count); printf("Второе значение переменной \count равно %d", count++); printf("Последним значением переменной \count является %d", count); }

Оператор ++ увеличит значение переменной count после выполнения второй инструкции, использующей функцию printf(). Вторая функция printf() отобразит на экране исходное значение переменой, и сообщения, выведенные на экран, будут выглядеть так:

Первое значение переменной count равно 0Второе значение переменной count равно 0Последним значением переменной count является 1

Во время выполнения первой и второй функций printf(), значение переменной равно 0 и увеличивается на 1 только перед выполнением третьей функции printf().

Используя оператор инкремента, можно сохранить начальное значение переменной в другой переменной и одновременно увеличить его, как показано в программе:

main() { int number, storage; puts("Введитезначениечисла:"); scanf("%d", &number); storage = number++; printf("Начальноезначениечисла: %d\n", storage); printf("Новоезначениечисла: %d", number); }

В инструкции

storage = number++;

мы, во-первых, присваиваем значение number переменной storage, а во-вторых, увеличиваем переменную number на единицу.

Оператор декремента работает аналогичным образом, но уменьшает значение переменной на единицу. Синтаксис использования оператора таков:

--variable

уменьшает значение переменной на 1 до выполнения инструкции

variable--

уменьшает значение переменной на 1 после выполнения инструкции

 

Аккумуляторы

Аккумулятор также увеличивает значение переменной. Но, в отличие от счетчика, который всегда увеличивает значение переменной на одну и ту же величину, аккумулятор может иметь произвольный шаг (и способ) изменения при каждой новой операции. В общем виде синтаксис аккумулятора таков:

variable = variable + other_variable;

Аккумулятор получил такое название оттого, что он накапливает значение переменной. Посмотритенаследующийпример:

int total, number;total = 0;scanf("%d", &number);total = total + number;

Допустим, что переменной number присвоено значение 10. После выполнения инструкции

total=total+number;

переменная total приобретает значение 10, так как компьютер выполнил операцию сложения, используя следующие значения:

total=0+10;

Теперь предположим, что снова происходит ввод данных с помощью функции scanf() и выполняется новая операция суммирования, но на этот раз переменной number присвоено значение 15:

scanf("%d", &number);total = total + number;

теперь компьютер использует в вычислениях следующие значения:

total = 10 + 15;

Произошло накопление значений переменной number.

В Листинге 7 приведен текст программы, в которой вводятся три значения и вычисляется их среднее арифметическое. Для расчета среднего арифметического пользуются простым математическим выражением:

average = (A + B + C) / 3

В программе мы использовали аккумулятор, чтобы подсчитать сумму трех чисел, и счетчик для определения количества введенных значений (чтобы продемонстрировать работу счетчика).





Поделиться с друзьями:


Дата добавления: 2017-03-12; Мы поможем в написании ваших работ!; просмотров: 254 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

2214 - | 2048 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.