Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_Раб_1С++ (1).doc
Скачиваний:
5
Добавлен:
16.11.2019
Размер:
419.84 Кб
Скачать

Преобразование типов в выражениях

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

Применительно к двум значениям типа int операция деления "/" означает деление нацело, например, 7/2 равно 3. В данном случае, если необходимо получить результат 3.5, то можно просто добавить десятичную точку в записи одного или обоих чисел: "7.0/2", "7/2.0" или "7.0/2.0". Но если и в числителе, и в знаменателе стоят переменные, а не константы, то указанный способ не подходит. Вместо него можно применить явное преобразование типа. Например, значение "7" преобразуется в значение типа double с помощью выражения "double(7)". Поэтому в выражении

answer = double(numerator) / denominator

операция "/" всегда будет рассматриваться компилятором как вещественное деление, даже если "numerator" и "denumerator" являются целыми числами. Для явного преобразования типов можно пользоваться и другими именами типов данных. Например, "int(14.35)" приведет к получению целого числа 14.

Символьный тип

Для хранения символьных данных в С++ предназначен тип "char". Переменная типа "char" рассчитана на хранение только одного символа (например, буквы или пробела). В памяти компьютера символы хранятся в виде целых чисел. Соответствие между символами и их кодами определяется таблицей кодировки, которая зависит от компьютера и операционной системы. Почти во всех таблицах кодировки есть прописные и строчные буквы английского алфавита, цифры 0,...,9, и некоторые специальные символы, например, #, ., !, +, - и др. Самой распространенной таблицей кодировки, скорее всего, является таблица символов ASCII.

В тексте программ символьные константы типа "char" надо заключать в одиночные кавычки, иначе компилятор поймет их неправильно и это может привести к ошибке компиляции, или, что еще хуже, к ошибкам времени выполнения. Например, "'A'" является символьной константой, но "A" будет рассматриваться компилятором в качестве имени переменной. Аналогично, ‘9’ является символом, а 9 – целочисленной константой.

Т.к. в памяти компьютера символы хранятся в виде целых чисел, то тип "char" на самом деле является подмножеством типа "int". На С++ разрешается использовать символы в арифметических выражениях. Например, на любом компьютере с таблицей ASCII следующее выражение даст истинное значение (TRUE, или 1):

'9'-'0' = = 57-48 == 9

Константы

В программах на С++ переменные обязательно должны быть описаны до первого использования, например, так: float number;

После оператора описания до момента выполнения первого оператора присваивания значение переменной "number" будет неопределенным, т.е. эта переменная может иметь случайное значение. В С++ можно (и желательно) инициализировать переменные конкретными значениями непосредственно при описании переменных. Например, возможен следующий оператор описания с инициализацией:

float PI = 3.1416;

Если значение переменной в программе никогда не изменяется, то ее целесообразно защитить от случайного изменения с помощью служебного слова "const" – т.е., превратить в константу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]