Листинг Программа morechar . cpp .
// morechar.cpp — сопоставление данных // типа char и типа int
#include <iostream>
using namespace std;
int main() {
char с = 'M' ; //переменной с присваивается код ASCII для символа М
int i = с; //тот же код присваивается переменной типа int
cout « "The ASCII code for " « с « " is " « i « "\n" ;
cout « "Add one to the character code: \n" ;
с = с + 1;
i = с;
cout « "The ASCII code for " « с « " is " « i « '\n' ;
return 0; }
В ходе выполнения программы получается следующий результат:
The ASCII code for M is 77
Add one to the character code:
The ASCII code for N is 78
Примечания к программе
Запись 'М' представляет числовой код для символа М, поэтому инициализация переменной с типа char значением 'М' означает занесение в нее числа 77. Затем идентичное значение присваивается переменной i типа int . Теперь обе переменные, с и i, содержат число 77. Затем объект cout отображает переменную с как символ М и переменную i как число 77. Как уже говорилось ранее, тип значения определяет функционирование объекта cout , когда он решает, каким образом отображать данное значение.
Поскольку переменная с в действительности содержит целое число, по отношению к ней можно выполнять операции для целых чисел, например, прибавление единицы. В результате переменная с будет иметь значение 78. Затем это новое значение присваивается переменной i. (Можно было просто добавить 1 к переменной i.) Объект cout снова отображает это значение типа char как символ и значение типа int как число.
Некоторые символы нельзя вводить в программу с клавиатуры непосредственно. Например, символ новой строки нельзя ввести, просто нажав клавишу Enter; программа текстового редактора интерпретирует нажатие этой клавиши как требование начать новую строку в вашем файле исходного кода. Трудности с записью других символов происходят потому, что в языке C++ им придается особое значение. Например, символ двойных кавычек ограничивает строки, поэтому его нельзя взять и просто вставить в середину строки. Для нескольких таких символов в языке C++ имеется специальная форма записи, которая называется управляющей последовательностью. Например, последовательность \а задает символ предупреждения, который вызывает звуковой сигнал. Последовательность \" трактует двойные кавычки как обычный символ, а не ограничитель строки. Такую форму записи можно использовать в строках или символьных константах:
|
|
char alarm = ' \ а ' ;
cout « alarm « "Don't do that again!\a\n";
cout « "Ben \"Buggsie\" Hacker was here!\n";
Последняя строка дает такие выходные данные:
Ben "Buggsle" Hacker was here!
Обратите внимание, что управляющая последовательность, например \а, трактуется как обычный символ, например, Q. Таким образом, для создания символьной константы управляющая последовательность заключается в одинарные кавычки, а внутри строки одинарные кавычки не заключается.
|
|
Листинг Программа bondini.cpp
// bondini.cpp — использование управляющих последовательностей
#include <iostream>
using namespace std;
int mainQ
{
cout « "\aOperation \"HyperHype\" is now activated!\n";
cout « "Enter your agent code:\b\b\b\b\b\b\b\b" ;
long code ;
cin » code ;
cout « “\aYou entered " « code « "...\n";
cout « "\aCode verified! Proceed with Plan Z3!\n";
return 0;
}
После печати символов подчеркивания программа с помощью символа возврата перемещает курсор назад на место первого символа подчеркивания. Теперь можно ввести секретный код и продолжить выполнение программы. Вот окончательные результаты:
Operation "HyperHype" is now activated!
Enter your agent code:42007007
You entered 42007007. . .
Code verified! Proceed with Plan Z3!
Новый тип данных bool
Стандарт ANSI/ISO языка C++ добавил новый тип данных bool (т.е. новый для языка C++). Он назван в честь английского математика Джорджа Буля (George Boole), который разработал математическое представление законов логики. В программировании переменная Boolean — это такая переменная, которая может принимать два значения: true (истина) или false (ложь).
bool isready = true ;
Литералы true и false могут быть преобразованы в данные типа int путем повышения типа, при этом true преобразуется в 1, a false — в 0:
|
|
int ans = true; //переменной ans присваивается 1
int promise = false; //переменной promise присваивается О
Кроме того, любое числовое значение или значение указателя может быть преобразовано в значение типа bool неявно (т.е. без явного приведения типов). Любое ненулевое значение преобразуется в значение true , a нулевое значение — в значение false :
bool start = -100; //переменной start присваивается //значение true
bool stop = 0; //переменной stop присваивается //значение false
Квалификатор const
Инициализации константы с помощью ключевого слова const . Предположим, например, что вам требуется символическая константа, обозначающая число месяцев в году. Используйте в программе такую строку:
const int MONTHS = 12; //MONTHS – это символическая константа, обозначающая число 12
Теперь в программе вместо числа 12 можно использовать символическое имя MONTHS . (Простое число 12 в программе может означать число дюймов в футе или количество пончиков в дюжине, но имя MONTHS прямо говорит о том, что оно представляет.) При инициализации константы ее значение устанавливается так же, как в случае с константой MONTHS . После этого компилятор не позволяет изменять значение константы MONTHS .
|
|
Ключевое слово const называется квалификатором, так как оно квалифицирует смысл объявления.
Записывайте имя константы большими буквами, чтобы было видно, что это константа. Это никоим образом не универсальное правило, но оно помогает отличать константы от переменных при чтении программы. Используется и другое правило: только первая буква имени пишется заглавной. Третье правило состоит в том, что имя константы начинается с буквы "к", например, kmonths . Есть и другие правила. Во многих организациях имеются свои правила написания программ, которых придерживаются программисты.
Оператор создания константы имеет такой общий вид:
const type name = value;
Обратите внимание, что инициализация константы осуществляется вместе с ее объявлением. Следующая последовательность операторов некорректна:
const int toes; //в этом операторе значение константы toes не определено
toes= 10; //слишком поздно!
Если при объявлении константы вы не присваиваете ей значение, то она так и останется неопределенной, так как модифицировать ее после этого нельзя.
В языке C++ квалификатор const можно использовать для определения размера массива.
1. Типы данных с плавающей точкой
Типы данных с плавающей точкой составляют вторую большую группу основных типов данных языка C++. Эти типы данных позволяют представлять числа с дробными частями, с помощью которых, например, оценивается расстояние, которое проходит танк, расходуя один галлон бензина (0.56 мили на галлон). Они также обеспечивают намного больший диапазон значений. Если число слишком велико, чтобы быть представленным как тип данных long , например, число звезд в нашей галактике (по оценкам, приблизительно 400 000 000 000), можно использовать один из типов данных с плавающей точкой.
С помощью типов данных с плавающей точкой можно представлять такие числа, как 2.5, 3.14159 и 122442.32, т.е. числа с дробной частью. В компьютере такие числа хранятся в виде двух составных частей. Одна часть представляет некоторое значение, а вторая — степень этого значения. Обратите внимание на следующий пример. Рассмотрим два числа: 34.1245 и 34124.5. Они состоят из идентичных цифр, но имеют разный масштаб. Первое число можно представить как 0.341245 (основное значение) и 100 (степень) Второе число можно представить как 0.341245 (то же самое основное значение) и 100000 (большая степень). Степень служит для перемещения десятичной точки, отсюда и термин "плавающая точка". В языке C++ для представления чисел с плавающей точкой используется подобный метод, за исключением того, что внутри компьютера хранятся двоичные числа и степени кратны 2, а не 10. К счастью, вам не требуется подробно знать о внутреннем представлении. Главными моментами здесь является то, что типы данных с плавающей точкой позволяют представлять дробные, очень большие и очень маленькие числа, а также то, что их внутреннее представление совершенно иное, чем представление целых чисел.
В языке C++ имеется два способа записи чисел с плавающей точкой. Первый способ — это стандартная запись чисел с десятичной точкой (десятичных дробей), которой вы обычно пользуетесь:
12.34 //число с плавающей точкой
939001.32 //число с плавающей точкой
0.00023 //число с плавающей точкой
8.0 //также число с плавающей точкой
Даже если дробная часть равна 0, как в числе 8.0, наличие десятичной точки гарантирует, что число будет храниться в формате чисел с плавающей точкой, а не целых чисел.
Второй способ записи чисел с плавающей точкой называется экспоненциальной формой записи, например: 3.45Е6. Эта запись означает, что число 3.45 умножается на 1000000; Е6 означает 10 в 6-й степени, т.е. 1 с шестью последующими нулями. Таким образом, 3.45Е6 означает 3450000. Здесь 6 называется экспонентой, а 3.45 — мантиссой. Вот несколько примеров:
Как вы могли заметить, экспоненциальная запись наиболее полезна для очень больших и очень маленьких чисел. Экспоненциальная запись числа гарантирует, что число будет храниться в формате чисел с плавающей точкой, даже если десятичная точка отсутствует. Обратите внимание, что можно писать, как Е, так и е, а экспонента может иметь знак "+" или "-". Однако внутри числа нельзя делать пробелы: запись 7.2 Е6 неправильна.
Дата добавления: 2022-01-22; просмотров: 17; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!