Листинг Программа 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!