Строковые константы - это последовательность символов, заключенная в двойные кавычки: "Это пример не самой длинной строковой константы!".
Целые константы бывают следующих форматов:
■ десятичные;
■ восьмеричные;
■ шестнадцатеричные.
Десятичные могут быть представлены как последовательность цифр, начинающаяся не с нуля, например: 123; 2384.
Восьмеричные константы - последовательность восьмеричных цифр (от 0 до 7), начинающаяся с нуля, например: 034; 047.
Шестнадцатеричный формат констант начинается с символов Ох или ОХ с последующими шестнадцатеричными цифрами (0...9, A...F), например: 0xF4; 0X5D. Буквенные символы при этом могут быть представлены в как в нижнем, так и в верхнем регистре.
Длинные целые константы, используемые в переменных типа long, определяются латинской буквой I или L сразу после константы без пробела: 36L, 012L, 0x52L.
Вещественные константы - числа с плавающей запятой могут быть записаны в десятичном формате (24.58; 13.0;.71) или в экспоненциальной форме (1е4; 5е+2; 2.2е-5, при этом в мантиссе может пропускаться целая или дробная часть:.2е4).
Типизованные константы используются как неременные, значение которых не может быть изменено после инициализации.
Типизованная константа объявляется с помощью ключевого слова const, за которым следует указание типа константы, но, в отличие от переменных, константы всегда должны быть инициализированы.
Рассмотрим небольшой пример:
// Объявление переменной int i;
// Инициализация переменной i
// литеральной целочисленной константой 25600
i = 25600;
// Теперь объявим типизованную
// строковую константу MyCatName
// и инициализируем ее литеральной строковой константой
const MyCatName[] = "Рудик";
Символьные константы в С++ занимают в памяти 1 байт и, следовательно, могут принимать значения от 0 до 255 (см. табл. 1.2). При этом существует ряд символов, которые не отображаются при печати, - они выполняют специальные действия: возврат каретки, табуляция и т.д., и называются символами escape-последовательности. Термин «escape-последовательность» ввела компания Epson, ставшая первой фирмой, которая для управления выводом информации на своих принтерах стала использовать неотображаемые символы. Исторически сложилось так, что управляющие последовательности начинались с кода с десятичным значением 27 (0x1В), что соответствовало символу «Escape» кодировки ASCII,
Escape-символы в программе изображаются в виде обратного слеша, за которым следует буква или символ (см. табл. 1.3).
Таблица 1.3
Символы escape-последовательности
Символ | Описание |
\ | Вывод на печать обратной черты |
\! | Вывод апострофа |
\" | Вывод при печати кавычки |
\? | Символ вопросительного знака |
\а | Подача звукового сигнала |
\ь | •возврат курсора на 1 символ назад |
\f | Перевод страницы |
\п | Перевод строки |
\г | Возврат курсора на начало текущей строки |
\t | Перевод курсора к следующей позиции табуляции |
\v | Вертикальная табуляция (вниз) |
В качестве примера использования типизованных и литеральных констант вычислим значение площади круга по известному значению радиуса:
#include <iostream.h>
int main()
{
const double pi = 3.1415;
const int Radius = 3;
double Square = 0;
Square = pi * Radius * Radius;
// Выведем вычисленное значение
// и осуществим перевод строки ('\п')
cout << Square << '\n'; return 0;
}
В начале главной функции программы объявляются две константы: pi и Radius. Значение переменной Square изменяется в ходе выполнения программы и не может быть представлено как константа. Поскольку значение радиуса задано явно и в тексте программы не предусмотрено его изменение, переменная Radius объявлена как константа.
5. Перечисления
При использовании большого количества логически взаимосвязанных целочисленных констант удобно пользоваться перечислениями.
Перечисления имеют вид:
enum Name
{
iteml[=def],
item2[=def],
……..
itemN[ = def]
};
где
enum - ключевое слово (от enumerate - перечислять),
Name - имя списка констант,
iteml...itemN - перечень целочисленных констант,
[=def] - необязательный параметр инициализации.
Предположим, нам необходимо в программе описать работу светофора. Известно, что его цвет может принимать лишь 3 значения: красный (RED), желтый (YELLOW) и зеленый (GREEN). Для обработки полученных от светофора сигналов заведем три константы с такими же именами - RED, YELLOW и GREEN, проинициализировав их любыми неповторяющимися значениями с тем, чтобы в дальнейшем проверять, какой из этих трех цветов горит.
Например, мы могли бы записать:
const int RED = 0;
const int YELLOW = 1;
const int GREEN = 2;
Используя перечисления, то же самое можно сделать в одну строку:
enum COLOR {RED, YELLOW, GREEN};
Константы перечисления обладают следующей важной особенностью: если значение константы не указано, оно на единицу больше значения предыдущей константы. По умолчанию первая константа имеет значение 0.
То же перечисление можно было проинициализировать другими значениями:
enum COLOR {RED=13, YELLOW=l, GREEN};
При этом константа GREEN по-прежнему имеет значение 2.
6. Преобразования типов
В С++ существует явное и неявное преобразование типов.
В общем случае неявное преобразование типов сводится к участию в выражении переменных разного типа (так называемая арифметика смешанных типов). Если подобная операция осуществляется над переменными базовых типов (представленных в табл. 1.2),она может повлечь за собой ошибки: в случае, например, если результат занимает в памяти больше места, чем отведено под принимающую переменную, неизбежна потеря значащих разрядов.
Для явного преобразования переменной одного типа в другой перед именем переменной в скобках указывается присваиваемый ей новый тин:
#include <iostream.h>
int main()
{
int Integer = 54;
float Floating = 15.854;
Integer = (int) Floating; // явное преобразование типов
cout << "New integer: ";
cout << Integer << '\n';
return 0;
}
В приведенном листинге после объявления соответствующих переменных (целочисленной Integer и вещественной Floating)производится явное преобразование типа с плавающей запятой (Floating) к целочисленному (Integer).
Пример неявного преобразования:
#include <iostream.h>
int main()
{.
int Integer = 0;
float Floating = 15.854;
Integer = Floating; // неявное преобразование типов
cout << "New integer: ";
cout << Integer << '\n';
return 0;
}
В отличие от предыдущего варианта про1раммы, в данном случае после объявления и инициализации переменных осуществляется присваивание значения переменной с плавающей Floating целочисленной переменной Integer.
Результат работы обеих программ выглядит следующим образом:
New integer: 15
То есть произошло отсечение дробной части переменной Floating.
Выводы
В процессе выполнения работы мы ознакомились с типом данных С++, а именно со структурой, комментариями, переменными и типами данных, константами, перечислениями, преобразованием типов.
Список использованной литературы
1. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. - М.: Наука, 1988.
2. Довгаль С.И., Литвинов Б.Ю., Сбитнев А..И. Персональные ЭВМ: Турбо Паскаль V7.0, объектное программирование, локальные сети. – Киев: Информсиситема сервис, 1993.
3. Епанешников А.М., Епанешникова В.А. Программирование в среде Turbo Pascal 7.0.-М.: Диалог –МИФИ,1999.
4. Зуев Е.А. Программирование на языке Turbo Pascal 6.0,7.0. – М.: Радио и связь, Веста,1993.
5. Кандзюба С.П., Громов В.Н. Delphi 7.Базы данных и приложения. Лекции и упражнения. – К.: Издательство "ДиаСофт", 2001.
6. Климова Л.М. Pascal 7.0. Практическое программирование. Решение типовых задач. –М.:КУДИУ ОБРАЗ, 2000.
7. Марченко А. И., Марченко Л.А.. Программирование в среде Turbo Pascal 7.0.-К.: Век+,1999.
8. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. - М.: Нолидж, 2000.
9. Глушаков С.В., Коваль А.В., Смирнов С.В. Практикум по С++- Х., Фолио, 2006 – 525 с.
10. Методические указания к выполнению курсовой работы по дисциплине "Программирование" для студентов специальностей 7.091501 "Компьютерные системы и сети" и 7.091502 «Системное программирование» дневной и заочной форм обучения. /Сост.: Н.С. Семенова, С.А. Сафонова – Северодонецк: Изд-во СТИ ВНУ, 2006. - 37с.