Арифметика в Borland C++ 3.1

В программировании очень большое внимание уделяется вычислениям. Постоянно надо что-то считать.
Для арифметических вычислений в C++ преимущественно используется пять операций:

Сложение
+

Вычитание

Деление
/

Умножение
*

Взятие остатка
%

В C++, как правило, простая арифметика начинающим дается легко.

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

Программа работает следующим образом:

Сначала выполняется очистка экрана. Очищает экран функция clrscr. Как работает эта функция знать нам сейчас необязательно. Программисты её написали, а мы можем использовать, вот и используем. Достаточно знать, что эта функция в Borland C++ 3.1 очищает экран, в современных компиляторах этой функции нет.
После очистки экрана программа складывает два числа: 5 + 10
В Borland C++ 3.1 программа компилируется с помощью сочетания клавиш Alt+F9, нажать на клавиатуре Enter. А посмотреть результат можно с помощью сочетания клавиш Alt+F5. Можно использовать меню: Run -> Run, но меню иногда глючное, поэтому лучше сочетанием клавиш.
Результатом работы программы будет вывод на экран числа 30, поскольку 20+10 = 30

В школе, когда нас учили считать, очень много внимания уделялось четырём арифметическим действиям: сложение, вычитание, умножение и деление. Каждое из этих действий имеет своё обозначение: +, , * и /

Кроме обозначенных действий, существует много других, каждому из которых соответствует какой-то символ: %, — и другие, символы эти мы знаем.

В программировании на C++ часто необходимо взятие остатка. Для взятия остатка в C++ используется символ %. Это может быть неожиданным для новичков, ведь этот символ — общеприменемый символ процента. Но вот решили разработчики C++ использовать для взятия остатка именно этот символ, поэтому придётся привыкнуть, это несложно. Для некоторых операций в C++ не существует своего символа (взятие квадратного корня, процент, факториал и для многих других). Для наиболее востребованных операций существуют готовые функции, которые мы можем использовать, но если функции для какой-то операции нет, то надо писать свою функцию.

Арифметическое деление в C++ заслуживает отдельного внимания. Когда мы делим числа, которые нацело не делятся, остается остаток:

5/3 = 1 (остаток 2)
10/7 = 1 (остаток 3)
10/3 = 3 (остаток 1)

  • В языке C++ существует специальный оператор — операция взятия остатка
Из-за некоторых особенностей самого языка, при делении чисел могут происходить необычные для программистов-новичков вещи. Для примера приведу код самого обычного деления числа.

При работе такой программы на экран выведется только целая часть числа, которая получается при делении:

20/20 = 1

Это обычно удивляет новичков: во-первых, непривычно, а во-вторых из-за этого случается головная боль, ведь коды, которые, казалось бы верные, ведут к неправильным подсчётам.

Почему так происходит вам пока знать рано, но нужно запомнить, что при делении, если деление нужно привычное, хотя бы одно из чисел должно иметь тип числа с плавающей точкой: float, double.
Смотрим на листинг #2. Помните, что я недавно писал о существовании операции взятия остатка, понимаете, что это а остаток такой? Я старался всё опиать подробно, поэтому очень надеюсь, что с этим вопросов не возникает. Вспоминаем символ операции взятия остатка в C++, это %, следовательно в любом компиляторе C++ можно взять остаток от деления, использовав символ процентов.
20/11 == 1 (в остатке 9).

Выводим остаток на экран:
Результатом работы программы будет вывод на экран числа 9

  • В C++ для взятия остатка используется символ-процент: %
Ранее упоминалось, что для привычного деления нужно, чтобы хотя бы одно число из участвующих в делении имело тип число с плавающей точкой. Если и делитель, и знаментатель целые, то можно использовать насильственное приведение типов:

Для вывода на экран числа с запятой можно использовать такой код:


Результатом будет вывод на экран числа 1.818182
double – это тип переменной, который обозначает, что число не целое. Таких типов, которые обозначают нецелые числа, три: floatdoublelong double.

  • Указание в скобках типа непосредственно перед некоторым значением не меняет тип самого значения, но вычисления происходят так, как будто бы значение имеет тип, указанный внутри приставочных скобок
Вывод на экран в разных вариантах:


Обратите внимание на 14 строчку в личтинге #6, после числа стоит точка, такая запись обозначает, что тип у числа — число с плавающей точкой, и что после точки нули. Этот приём иногда используется, чтобы сразу сделать число нецелым.

Возможные ошибки
!

  • Названия типов путаются с названиями переменных
  • Неправильное деление: делят целое на целое, ожидают не целое. При делении хотя бы одно число должно быть нецелым. Если все числа целые по некоторым особым соображениям, то для получения нецелого результата хотя бы одно число надо привести к типу "число с плавающей точкой"
  • Забывают о том, что на ноль делить нельзя и не делают проверок
  • Не знают или забывают, что арифметические типы ограничены в размерах: результат вычисления может оказаться за пределами ёмкости типа

Задание
?

  • Напишите простой калькулятор. Пользователь вводит два числа, на экран надо вывести результат сложения, вычитания, деления, умножения и остаток от деления. Для взятия остатка от деления приведите оба числа к типу int.
input x: 10
input y: 4
Result
10 + 4 = 14
10 4 = 6
10 * 4 = 40
10 / 4 = 2.5
10 % 4 = 2

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

5 комментариев: Арифметика в Borland C++ 3.1

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     

Случайная книга в электронном формате

Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

- Что ты пишешь? - спросили программиста. - Сейчас запустим - узнаем! - ответил программист.

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок