Арифметические операции. Остаток от деления — КиберПедия 

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

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

2020-05-08 189
Арифметические операции. Остаток от деления 0.00 из 5.00 0 оценок
Заказать работу

Операция применяется только к целым числам типа char, short, int и long. Эта операция называется операцией остатка от деления и обозначается знаком процента %. Результатом этой операции, иногда также называемой «взятием по модулю», является остаток, получаемый при делении ее левого операнда на правый. Программа REMAIND демонстрирует применение этой операции.

// remaind.cpp

// применение операции остатка от деления

#include <iostream>

using namespace8 << endl /*6*/

<< 7%8 << endl /*7*/

<<8%8 << endl /*0*/

<< 9%8 << endl /*1*/

<< 10%8 << endl; /*2*/

return 0;

}

В этой программе берутся остатки от деления чисел 6, 7, 8, 9 и 10 на 8, а результаты — 6, 7, 0, 1 и 2 — выводятся на экран. Операция остатка от деления используется довольно широко, и она еще понадобится нам в других программах.

Заметим, что в операторе

cout << 6*8

операция остатка от деления выполняется раньше, чем операция <<, поскольку приоритет последней ниже. Если бы это было не так, то мы были бы вынуждены заключить операцию 6 % 8 в скобки, чтобы выполнить ее до посылки в поток вывода.

 

Арифметические операции с присваиванием

Стандартная запись:

total= total + item: // сложение total и item

В С++ существует способ сократить подобные операторы, применяя арифметические операции с присваиванием.

total +=item: // сложение total и item

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

// assign.срр

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

#include <iostream>

using namespace std;

int main()

{

int ans = 27;

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

cout << ans << ". ";

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

cout << ans << ". ";

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

cout << ans << ". ";

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

cout << ans << ". ";

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

cout << ans << endl;

return 0;

}

Результат работы такой программы будет следующим: 37, 30, 60, 20, 2

Инкремент

// increm.cpp

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

#include <iostream>

using namespace std;

int main()

{

int count =10;

cout << "count=" << count << endl; // вывод числа 10

cout << "count-" << ++count << endl; // вывод числа 11 (префиксная форма)

cout << "count=" << count << endl; // вывод числа 11

cout << "count=" << count++ << endl; // вывод числа 11 (постфиксная форма)

cout << "count=" << count << endl; // вывод числа 12

return 0;

}

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

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

 

Декремент

 

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

 

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

Многие действия языка С++ производятся с помощью библиотечных функций. Эти функции обеспечивают доступ к файлам, производят математические расчеты, выполняют преобразование данных и множество других действий. В следующем примере под названием SQRT используется библиотечная функция sqrt(), вычисляющая значения квадратного корня из числа, вводимого пользователем.

// sqrt.cpp

// использование библиотечной функции sqrtO

#include <iostream>// для cout и т. п.

#include <cmath> // для sqrt()

using namespace std;

int main() {

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

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

cin >> number; // ввод числа

answer= sqrt(number); // извлечение корня

cout << "Квадратный корень равен "

<< answer << endl; // вывод результата

return 0;

}

Сначала программа получает значение от пользователя. Затем полученное значение используется в качестве аргумента для функции sqrt():

answer =sqrt(number);

Аргументы функций и возвращаемые ими значения должны иметь правильный тип.

Обнаружение ошибок

С помощью средств компилятора, позволяющих облегчить процесс обнаружения ошибок в программах, вы можете создать динамическую модель, иллюстрирующую процесс выполнения вашего цикла. Главным из таких средств является пошаговое выполнение. Откройте окно проекта для отлаживаемой программы и окно с текстом программы. Нажимая соответствующую функциональную клавишу F10 или F11, можно построчно исполнять код вашей программы. Таким образом, вы сможете увидеть работу программы в том порядке, в котором записаны ваши операторы. При работе с циклом вы сможете убедиться в том, что сначала исполняется тело вашего цикла, затем происходит переход, и тело цикла исполняется снова.

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

Watch window и пошаговое исполнение программы являются мощным отладочным инструментом. Если поведение вашей программы отличается от задуманного, вы можете использовать эти средства для контроля над объектами программы. Как правило, причина ошибки после такой отладки становится ясной.

 


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

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.