Программа 4. Операции над целыми

Программа вычисляет выражения, приведенные в таблицах 2 и 3. При определении переменных a и b им сразу задается начальное значение. Это называется инициализация. Внешне инициализация похожа на присваивание, так как используется тот же знак =, но инициализация выполняется на этапе компиляции, а присваивание происходит на этапе выполнения программы.

// Файл OperInt.cpp

// Результаты операций над целыми

#include <iostream.h>

#include <conio.h>

int main()

{

// Определение переменных

int a = 13, b = 7, // Числа

sum, // Сумма

difference, // Разность

prod, // Произведение

quotient, // Частное

remainder; // Остаток

cout << "\na = " << a << ", b = " << b << "\n"; // Вывод a и b

sum = a + b; // Вычисление суммы

cout << "a + b = " << sum << "\n"; // Вывод суммы

difference = a - b; // Вычисление разности

cout << "a - b = " << difference << "\n"; // Вывод разности

prod = a * b; // Произведение

cout << "a * b = " << prod<< "\n"; // Вывод произведения

quotient = a / b; // Вычисление частного

cout << "a / b = " << quotient << "\n"; // Вывод частного

remainder = a % b; // Вычисление остатка

cout << "a % b = " << remainder << "\n"; // Вывод остатка

cout << "(a < b) = " << (a < b) << "\n"; // Вычисление и

cout << "(a <= b) = " << (a <= b) << "\n"; // вывод

cout << "(a > b) = " << (a > b) << "\n"; // результатов

cout << "(a >= b) = " << (a >= b) << "\n"; // сравнения

cout << "(a == b) = " << (a == b) << "\n";

cout << "(a != b) = " << (a != b) << "\n";

getch();

return 0;

}

Для вывода результатов и пояснений к ним используются цепочки операторов <<, которые обеспечивают последовательный вывод своих операндов.

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

Результаты, выдаваемые программой, совпадают со значениями выражений из таблиц 2 и 3:

a = 13, b = 7

a + b = 20

a - b = 6

a * b = 91

a / b = 1

a % b = 6

(a < b) = 0

(a <= b) = 0

(a > b) = 1

(a >= b) = 1

(a == b) = 0

(a != b) = 1

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

Числа с плавающей точкой

Числа с плавающей точкойимеют целую и дробную части, могут быть положительными и отрицательными. Они моделируют вещественные числа, используемые в математике. В табл.4 перечислены типы чисел с плавающей точкой языка С++. Для краткости рассматриваемые типы иногда называют просто плавающими.

Таблица 4. Типы чисел с плавающей точкой

Тип Размер, байт Диапазон значений модуля Точность, цифр
float double long double от 3.4 * 10-38 до 3.4 * 10+38 от 1.7 * 10-308 до 1.7 * 10+308 от 3.4 * 10-4932 до 1.1 * 10+4932 6-7 15-16 19-20

Под точностью понимается количество значащих цифр в десятичной записи числа. Точность определяется размером памяти, выделяемой под числа и способом ее использования.

Плавающие константы

Числовые константы для типов чисел с плавающей точкой записываются в виде

[s]m.mmmE[+/-]pp.

Здесь s – знак числа, m.mmm – мантисса, количество цифр которой определяет точность числа, pp – порядок числа, который может быть положительным или отрицательным. Если знак отсутствует, число считается положительным. Символ E (или e) заменяет 10. Следующие константы дают три различных записи одного и того же числа:

123.321, 1.23321E2, 123321e-3.

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

По умолчанию считается, что числовые константы с плавающей точкой имеют тип double. Если требуется константа типа float, ее можно явно определить с помощью суффиксов f или F, например,

3.14159265f, 2.0F.

Для числовых констант типа long double используются суффиксы l или L:

2.71828182845904523536l, 3.14159265358979323846L

(это числа e и π соответственно).

Ввод и вывод чисел

Числовые данные выводятся в выходной поток оператором вывода <<, определенным в заголовочном файле iostream.h. Этот оператор способен выводить данные любых стандартных типов, в том числе отдельные символы, строки. Приемником данных для выходного потока может быть стандартное устройство для вывода (экран) или дисковый файл. В iostream.h определена потоковая переменная cout, связанная со стандартным выходным устройством, которую надо использовать при выводе результатов на экран.

При выводе чисел с плавающей можно управлять точностью, то есть числом цифр, представляющих число. Для этого используется функция precision. При вызове этой функции в виде cout.precision() она возвращает установленную точность. При вызове в виде cout.precision(n) задается число выводимых цифр n.

Для ввода чисел применяется оператор >> чтения из потока. Источником данных для входного потока может быть стандартное входное устройство (клавиатура) или файл на диске. При чтении чисел сначала пропускаются пробелы, затем читаются символы числа. Ввод числа прекращается при поступлении пробела, табуляции или новой строки. Для ввода с клавиатуры следует использовать стандартный входной поток cin, объявленный в заголовочном файле iostream.h.

При вводе данных любых типов оператором >> разделителем отдельных порций данных является пробел.

Оператор ввода >> читает из потока символы, которые допускаются в записи данных для типа вводимой величины. Например, при вводе чисел с плавающей точкой допустима буква e как обозначение порядка, а при вводе целых чисел эта буква недопустима. При вводе с клавиатуры, набранные символы будут обрабатываться после нажатия Enter.

Наши рекомендации