на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Типы данных С++
p align="left">Например:

inc. main()

{

II примеры комментария

int а = 0; // int d;

/*int b = 15;*/

int с = 7;

/* <- начало комментария

а = с;

конец комментария -> */ return 0;

}

В приведенном примере компилятор проигнорирует объявление переменной b и d, а также присвоение переменной а значения переменной с.

3. Переменные и типы данных

Суть фактически любой программы сводится к вводу, хранению, модифицированию и выводу некоторой информации.

Для того чтобы программа могла на протяжении своего выполнения сохранять определенные данные и оперировать с ними, используются переменные и константы.

Одним из базовых свойств программы является идентификатор.

Под идентификатором понимается имя переменной или константы, имя функции или метка. В программе идентификатор может содержать прописные и строчные латинские буквы, цифры и символ подчеркивания, обязательно начинается с буквы или символа подчеркивания и не должен совпадать с ключевым словом (с учетом регистра). Так, в приведенном выше примере представлены идентификаторы а, Ь, с и d.

Следующим базовым понятием любого языка программирования является ключевое слово.

Ключевые слова - это зарезервированные языком идентификаторы, имеющие специальное назначение. В табл. 1.1 приводится список ключевых слов языка С++.

Таблица 1.1

Ключевые слова

asm

else

new

template

auto

enum

operator

this

break

explicit

private

throw

case

extern

protected

try

catch

float

public

typedef

char

for

register

typename

class

friend

return

union

const

goto

short

unsigned

continue

if

signed

virtual

default

inline

sizeof

void

delete

int

static

volatile

do

long

struct

while

double

mutable

switch

Чтобы переменную можно было использовать в программе, она должна быть предварительно объявлена. При этом в процессе объявления переменной осуществляется создание ее идентификатора.

Переменная - объект программы, занимающий в общем случае несколько ячеек памяти, призванный хранить данные. Переменная, обладает именем, размером и рядом других атрибутов (таких как видимость, время существования и т.д.).

При объявлении переменной для нее резервируется некоторая область памяти, размер которой зависит от конкретного типа переменной. Здесь следует обратить внимание на то, что размер одного и того же типа данных может отличаться на компьютерах разных платформ, а также может зависеть от используемой операционной системы. Поэтому при объявлении той или иной переменной нужно четко представлять, сколько байт она будет занимать в памяти ЭВМ, чтобы избежать проблем, связанных с переполнением и неправильной интерпретацией данных.

Ниже приведен перечень базовых типов переменных и их размер в байтах. Следует учесть, что размер, указанный в табл. 1.2 для каждого типа, должен быть проверен для конкретного ПК.

Таблица 1.2

Базовые типы данных для ПК на базе платформы Intel

Тип

Размер, байт

Значение

bool

1

true или false

unsigned short int

2

от 0 до 65 535

short int

2

от -32 768 до 32 767

unsigned long int

4

от 0 до 4 294 967 295

long int

4

от -2 147 483 648

до 2 147 483 647

int (16 разрядов)

2

от -32 768 до 32 767

int (32 разряда)

4

от -2 147 483 648

до 2 147 483 647

unsigned int (16 разрядов)

2

от 0 до 65 535

unsigned int (32 разряда)

4

от 0

до 4 294 967 295

char

1

от 0 до 256

float

4

от 1.2е-38 до 3.4е38

double

8

от 2.2е-308 до 1.8е308

void

2 или 4

-

Объявление переменной начинается с ключевого слова, определяющего его тип, за которым следует собственно имя переменой и (необязательно) инициализация - присвоение начального значения.

Одно ключевое слово позволяет объявить несколько переменных одного и того же типа. При этом они следуют друг за другом через запятую (,). Заканчивается объявление символом точка с запятой (;).

Имя переменной (идентификатор) не должно превышать 256 символов (разные компиляторы накладывают свои ограничения на количество распознаваемых символов в идентификаторе). При этом важно учитывать регистр букв (Abe и abc - не одно и то же)! Конечно, имя должно быть достаточно информативным, однако не следует использовать слишком длинные имена, так как это приводит к опискам.

Хотя начальная инициализация и не является обязательной при объявлении переменной, все же рекомендуется инициализировать переменные начальным значением. Если этого не сделать, переменная изначально может принять непредсказуемое значение.

Установка начального значения переменной осуществляется с помощью оператора присваивания (=).

Рассмотрим подробно основные типы переменных.

Переменная типа bool занимает всего 1 байт и используется, прежде всего, в логических операциях, так как может принимать значение 0 (false, ложь) или отличное от нуля (true, истина). В старых текстах программ вы можете встретить тип данных BOOL и переменные этого типа, принимающие значения TRUE и FALSE. Этот тип данных и указанные значения не являлись частью языка, а объявлялись в заголовочных файлах как unsigned short, с присвоением начальных значений 1 и 0 соответственно. В новой редакции С++ bool - самостоятельный, полноправный тип.

Часто в программе бывает необходимо указать, что переменная должна принимать только целые значения. Целочисленные переменные (типа int, long, short), как следует из названия, призваны хранить целые значения, и отличаются только размером допустимого значения. Целочисленные переменные могут быть знаковыми и беззнаковыми.

Знаковые переменные могут представлять как положительные, так и отрицательные числа. Для этого в их представлении один бит (самый старший) отводится под знак. В отличие от них, беззнаковые переменные принимают только положительные значения. Чтобы указать, что неременная будет беззнаковой, используется ключевое слово unsigned. По умолчанию целочисленные переменные считаются знаковыми (signed, чаще всего опускается; используется при преобразовании типов данных).

Из табл. 1.2 видно, что переменная типа int в разных случаях может занимать в памяти различное число байт.

Символьный тип данных char применяется," когда переменная должна нести информацию о коде ASCII. Этот тип данных часто используется для построения более сложных конструкций, таких как строки, символьные массивы и т.д. Данные типа char также могут быть знаковыми и беззнаковыми.

Для представления чисел с плавающей запятой применяют тип данных float. Этот тип, как правило, используется для хранения не очень больших дробных чисел и занимает в памяти 4 байта: 1 бит - знак, 8 бит - экспонента, 23 бита - мантисса.

Если вещественное число может принимать очень большие значения, используют переменные двойной точности, тип double.

Переменная типа void не имеет значения и служит для согласования синтаксиса. Например, синтаксис требует, чтобы функция возвращала значение. Если не требуется использовать возвращенное значение, перед именем функции ставится тип void.

Приведем несколько примеров объявления переменных:

int а = О, А = 1;

float aGe = 17.5;

double PointX;

bool bTheLightlsOn=false;

char LETTER = 'Z';

void MyFunctionQ; //возвращаемое функцией

//значение игнорируется

4. Константы

Константы, так же как и переменные, представляют собой область памяти для хранения данных, с тем лишь отличием, что значение, присвоенное константе первоначально, не может быть изменено на протяжении выполнения всей программы. Константы бывают литеральными и типизованными, причем литеральные константы делятся на символьные, строковые, целые и вещественные.

Символьные константы представляются отдельным символом, заключенным в одинарные кавычки (апострофы): 'е', '@', '<'.

Строковые константы - это последовательность символов, заключенная в двойные кавычки: "Это пример не самой длинной строковой константы!".

Целые константы бывают следующих форматов:

¦ десятичные;

¦ восьмеричные;

¦ шестнадцатеричные.

Десятичные могут быть представлены как последовательность цифр, начинающаяся не с нуля, например: 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с.

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.