Главная » Статьи » Програмування » C [ Добавить статью ]

RUS Уроки по программированию на языке С (Арифметические операции с числами.)

Арифметические операции с числами.

Хорошо забытое старое…

Итак, приступим. Как уже было отмечено ранее – арифметические операции – это операции, позволяющие производить арифметические действия над данными. Большинство из них вам знакомы с детства и, тем не менее, давайте, систематизируем наши знания с помощью таблицы представленной ниже.

Название операции Символ, применяемый для обозначения в языке С. Краткое описание. Пример.
Сложение + Складывает два значения вместе, результатом является сумма операндов: 5+18 результат 23
Вычитание - Вычитает значение, находящееся справа из значения, находящегося слева от оператора. Результат – разность операндов: 20-15 результат 5
Умножение * Перемножает два значения, результатом является произведение операндов: 5*10 результат 50
Деление / Делит значение, находящееся слева на значение, находящееся справа от оператора. Например: 20/4 результат 5
Деление по модулю % Результатом этой операции является остаток от целочисленного деления, например, если мы делим 11 на 3, то целых частей у нас получается 3, (так как 3*3=9), в остатке будет 2, это число и будет результатом деления по модулю:
11/3 = 3 целых 2 в остатке
11%3 = 2 (остаток)
Примечание:

1. Операцию деления по модулю, можно применять только к целочисленным данным. Попытки нарушить данное правило приведут к ошибке на этапе компиляции.

2. Если меньшее число делится на большее с помощью %, то результатом будет само меньшее число. 3%10 = 3

3. Делить по модулю на нуль нельзя, это приведет к некорректной работе программы на этапе выполнения.

Инкремент и декремент.

Все вышеописанные операции, являлись бинарными, однако существуют еще и унарные арифметические операции, таких операций в школьном курсе нет, хотя на самом деле они очень просты:

1.Инкремент – обозначается конструкцией ++. Данный оператор увеличивает содержимое любой переменной на единицу и перезаписывает значение переменной. Например,

int a=8;
cout<<a; // на экране число 8
a++;
cout<<a; // на экране число 9

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

int a=8;
cout<<a; // на экране число 8
a--;
cout<<a; // на экране число 7

Достаточно просто, не правда ли?! Такие выражения могут быть представлены и так: a=a+1 или a=a-1. Следует отметить, что для литералов ни инкремент, ни декремент не используются, т. к. совершенно не логично поступать следующим образом 5=5+1. Это явная ошибка. Однако на этом мы не закончим знакомство с инкрементом и декрементом. В прошлом разделе урока мы выяснили, что синтаксис унарного оператора, может быть не только таким

операнд оператор;
, но и таким
оператор операнд;

Такие формы записи носят название постфиксной, (оператор располагается после значения) и префиксной (оператор располагается до значения). И инкремент, и декремент обладают обеими формами. Давайте разберемся, какие есть различия между формами, и в каких случаях эти различия имеют значение.

Пример 1.
int a=8;
cout<<a; // на экране число 8
a++;
cout<<a; // на экране число 9
++a;
cout<<a; // на экране число 10

В данном примере нет никакой разницы, между префиксной и постфиксной формой. И в первом и во втором случае значение переменной а просто увеличивается на единицу. Смысл использования различных форм оператора появляется только тогда, когда в строке кроме самого оператора, есть еще какая-нибудь команда.

Пример 2.
int a=8;
cout<<++a; // на экране число 9
cout<<a++; // на экране число 9
cout<<a; // на экране число 10

Прежде чем разбирать пример, давайте установим три правила:

1. Все команды в языке С выполняются справа налево.

2. Если кроме постфиксной формы инкремента или декремента, в строке есть еще какая-либо команда, то сначала выполняется эта команда, и только потом инкремент или декремент независимо от расположения команд в строке.

3. Если кроме префиксной формы инкремента или декремента, в строке есть еще какая-либо команда, то все команды в строке выполняются справа налево согласно приоритету операторов.

Теперь более подробно о примере:

• Изначально значение переменной равно числу 8.

• Команда cout<<++a; содержит префиксную форму оператора инкремент, следовательно, используя третье правило, описанное выше, мы сначала увеличиваем значение переменной а на единицу, а затем показываем его на экран с помощью команды cout<<.

• Команда cout<<a++; содержит постфиксную форму оператора инкремент, следовательно, используя второе правило, описанное выше, мы сначала показываем значение переменной (всё еще 9) на экран с помощью команды cout<<, а затем увеличиваем значение переменной a на единицу.

• При выполнении следующей команды cout<<a; будет показано уже измененное (увеличенное) значение, то есть число 10.

Сокращенные арифметические формы.

Исходя из предыдущих тем данного раздела урока, мы с вами теперь знаем, как упростить неудобную и «некрасивую» запись типа х=х+1 или х=х-1, превратив её в х++, или х--. Но таким образом, мы можем увеличивать и уменьшать значение переменной лишь на единицу, а как быть с любым другим числом? Например, как упростить запись:

Х=Х+12;

В данном случае, тоже есть простое решение – использовать так называемые комбинированные операторы или сокращенные арифметические формы. Выглядят они следующим образом:

Название формы Комбинация Стандартная запись Сокращенная запись
Присваивание с умножением *= А=А*N A*=N
Присваивание с делением /= A=A/N A/=N
Присваивание с делением по модулю %= A=A%N A%=N
Присваивание с вычитанием -= A=A-N A-=N
Присваивание со сложением += A=A+N A+=N

Мы рекомендуем вам в дальнейшем пользоваться сокращенными формами, так как это не только является хорошим тоном в программировании, но и значительно повышает читабельность программного кода. Кроме того, в некоторых источниках упоминается о том, что сокращенные формы обрабатываются компьютером быстрее, повышая скорость выполнения программы.

Применение арифметических операций.

Теперь самое время убедиться во всем вышесказанном на практике, потому что, как говориться, лучше один раз увидеть, чем сто раз услышать. Вы уже умеете создавать проекты и добавлять в них файлы, собственно именно это от вас сейчас и требуется. Далее представленно несколько программ, которые вам необходимо набрать, что бы увидеть применение арифметических операции на практике.  


Категория: C | Добавил: DEN-SHP (05.11.2012)
Просмотров: 815 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]