Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Простейшие скалярные стандартные типы




Типы данных

Константы

Константы целого типа могут задаваться в десятичной, вось­меричной или шестнадцатеричной системах счисления.

Десятичные целые константы начинаются не с нулевой цифры. Восьмеричные константы всегда начинаются с цифры нуль (017).

Шестнадцатеричные константы всегда начинаются с символов 0X или ox (0X10A).

Константы вещественного типа состоят из цифр, десятичной точки и знаков десятичного порядка е или Е. Ниже приведены все возможные варианты записи констант вещественного типа: 1., 2е1,.1234,.1е3,.1, 2Е1, 1.234, 0.0035е-6, 1.0, 2e-1, 2.1e-12.

Символьные константы содержат один символ, заключенный в апострофы. Все символь­ные константы имеют значение типа int (целое), совпадающее с кодом символа в кодировке ASCII. Для повышения чита­бель­ности программы следует, где возможно, указывать символьную константу вместо кода символа.

Пример. Фрагмент кода if (ch >= 'а' && ch <= 'z') будет более наглядным, чем эквивалентный ему фрагмент if (ch >= 97 && ch <= 122).

Управляющие символы (коды) и символы, которые не имеют графического изображения, задаются в виде: \n (новая строка), \t (горизон­таль­ная табуляция), \v ( вертикальная табуля­ция), \b (возврат на символ), \r (воз­врат в начало строки); \f (прогон бумаги до конца стра­ни­цы), \\ (обрат­ный слеш), \’ (апостроф), (кавычка), (звуковой сигнал), \ddd (код сим­во­ла в ASCII - от одной до трех восьмеричных цифр), \xhhh (код символа в ASCII - от одной до трех шестнадцатеричных цифр).

Строковые константы состоят из нуля или более символов, зак­лю­чен­ных в двойные кавычки («Иванов»). В строковых константах могут быть управ­ляющие символы. Обратный слеш используется как символ переноса текста на новую строку.

Все переменные должны быть объявлены. При объявлении перемен­ных вначале указывается тип, а затем имена переменных через запятую. Пере­мен­ные можно ини­ции­ровать в месте их описания (Int height=71).

Скалярные типы данных приводятся в следующих двух таблицах.

С++Builder Delphi Тип Число байтов Диапазон значений
unsigned char Byte, ByteBool, AnsiChar Целое, символ   [0,255]
char ShortInt, Char Целое   [-128,128]
wchar_t WideChar Символ Unicode    
unsigned short Word, WordBool Целое   [0,65535]
short SmallInt Целое   [-32768,32767]
int Integer Целое   [-32768,32767]
unsigned long Cardinal, LongBool Целое   [0,4294967295]
long LongInt Целое   [-2147483648, 2147483647]
float Single, real Вещественное   [3.4x10-38, 3.4x1038]
double Double, comp Вещественное   [1.7x10-308,1.7x10308]
long double Extended Вещественное   [3.4x10-4932, 1.1x104932]
unsigned char* PChar, PAnsiChar Указатель на символы без знака    
void* Pointer Указатель    
bool Boolean Логический   false, true

 

Дополнительные типы, реализуемые классами

С++Builder Delphi Тип
Set Set Множество 1-32 байт
String String Cтрока, подобная при работе строке Delphi
SmallString String[n] Короткие строки в Паскале длиной до 255 символов
AnsiString AnsiString Текстовая строка Delphi произвольной длины
Variant Variant Любое значение
TdateTime TDateTime Значение даты и времени в виде Float
Currency Currency Значение денежной величины

Рассмотрим отдельно эти типы.

Set реализуется шаблонным классом Set:

Set< < тип>,<мин.значение элемента множества>,<макс. значение(<=255) >>

Пример:

typedef Set <char, 'A','Z'> bolhiebukvi; // прописные латинские буквы

bolhiebukvi glasnie, soglasnie; // объявление множеств гласных и согласных

glasnie <<'A'<<'I'<<'E'; // заполнение множества гласными буквами

soglasnie <<'B'<<'C'<<'D'; // заполнение множества согласными буквами

// проверка принадлежности буквы ‘B’ принадлежности множеству glasnie

Label1->Caption=glasnie.Contains('А')?»Да»:»Нет»; // вывод «Да»

String реализуется в виде: String <список имен>. Эти строки могут исполь­зоваться в привычных опера­циях сцепления (+) и срав­­нения строк (==).

Внимание! Отсчет символов начинается не с нуля, а с единицы

Пере­чис­лим основные методы (имя строки и метод раз­де­ляются точкой) работы с этими строками:

ToDouble/ToInt ‑ перевод строки в вещественное/целое число.

c_str‑ возвращает указатель на символьный массив с исходной строкой.

Length, IsEmpty ‑ возвращает длину строки, признак пустой строки (True).

IsEmpty ‑ возвращает true, если длина строки нулевая.

Insert(i) ‑ вставка строки после i‑й позиции исходной строки.

Delete/SubString(i,n) ‑ удаление/выделение подстроки длиной n с i‑й по­зи­ции исходной строки (r=Label1->Caption.SubString(2,3)).

LastDelimiter‑ возвращаетпозицию последнего символа‑ограничителя. LowerCase/UpperCase ‑ пере­вод строки в нижний/верхний регистр.

Trim, TrimLeft/TrimRight ‑ убрать пробелы и управ­ляющие символы в на­ча­ле и в конце строки, только в начале/конце строки соответственно.

Format‑ форматирование строки, аналогично функции printf.

ToInt/ToDouble ‑ перевод числовой ст­ро­ки к целому/вещественному числу.

AnsiPos(s), Pos(s) ‑ возврат номера первого символа вхождения строки S.

Пример формирования и вывода фамилии, имени и отчества:

String Fio, Fam=«Иванов», Imj=«Иван»; Fio=Fam+’ ‘+Imj+’ ‘;

Fio.Insert(«Иванович»,Fio.Length()+1); Label1->Caption=Fio;

SmallString реализуется в виде: SmallString <длина> <имя строки>.

Пример: SmallString<30>Fam; Fam=«Иванов»; Label1->Caption=Fam;

AnsiString реализуется в виде:

AnsiString<имя переменной>[<длина>]. Этот тип эквивалентен типу String.

Пример:

AnsiString Fio, Fam=«Иванов», Imj=«Иван»; Fio=Fam+’ ‘+Imj+’ ‘;

Fio.Insert(«Иванович»,Fio.Length()+1); Label1->Caption=Fio;

Variant реализуется в виде: Variant <список имен переменных>.

Пример:

Variant Fam=«Иванов»,Dp=Date();//объявление универсальных переменных

Label1->Caption=Fam+DateToStr(Dp); // формирование и вывод метки

TDateTime реализуется в виде: TDateTime <список имен переменных>. Этот тип имеет структуру типа double, которая содержит в целой части зна­че­ние даты (порядкового номера дня начиная с 30.12.1899), а в дробной ‑ значение времени (отсчитывая от 12:00).

Пример: TDateTime d=Date(); Label1->Caption=d+1; // дата на завтра

Currency реализуется в виде: Currency <список имен переменных>.

Currency Stoimoct=123565.15; Label1->Caption=Stoimoct;

Переменные‑константы задаются добавлением модификатора const и значений при объявлении этих переменных. Попытки изменить эти значения операторами присваивания будут обнаружены при компиляции.

Пример. const int a=1; /* переменная‑константа*/ a=2; // ошибка

Переопределение типа можно осуществить оператором typedef.

Пример переопределения типаlong double на новый тип vehhiclo:

typedef long double vehhiclo;vehhiclo a=1.2, b=1.6; // перемен. типа vehhiclo




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


Дата добавления: 2014-12-08; Просмотров: 503; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.