- •Лабораторная работа № 1
- •Линейные программы
- •Введение
- •Типы данных Целые числа
- •Вещественные числа
- •Преобразование типов в выражениях
- •Символьный тип
- •Константы
- •Расположение описаний констант и переменных в исходном тексте
- •Символьные константы
- •Оператор присваивания Краткая форма записи операторов присваивания
- •Логические выражения и операторы
- •Оператор ввода
- •Задание
- •Приложение а
- •Приложение б Задания на вычисление значения выражений с использованием вещественных переменных
- •Приложение в Задания на вычисление значения выражений с использованием переменных целого типа
- •Приложение г Задания на вычисление значения выражений с использованием логических выражений
- •Приложение д
Преобразование типов в выражениях
При выполнении вычислений иногда бывает нужно гарантировать, что определенное значение будет рассматриваться как вещественное число, даже если на самом деле это целое. Чаще всего это нужно при делении в арифметических выражениях.
Применительно к двум значениям типа 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" – т.е., превратить в константу.