Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_УчебноеПособие.doc
Скачиваний:
44
Добавлен:
03.05.2015
Размер:
862.21 Кб
Скачать

Базовые стандартные типы данных

Таблица 1

Имя типа

размер в байтах объектов данного типа

способ кодировки

диапазон значений данных, которые могут

быть записаны в объектах данного типа

(от … до …)

char

1

символ

-128 … 127

(коды ASCII)

unsigned char

1

беззнаковый символ

0 … 255

short

2

целое

-32768 … 32767

unsigned int

2

беззнаковое целое

0 … 65535

int

2

целое

-32768 … 32767

long

4

длинное целое

-2147483648 … 2147483647

unsigned long

4

беззнаковое длинное целое

0 … 4294967295

float

4

действительное

3.4E-38 … 3.4E+38

double

8

длинное действительное

1.7E-308 … 1.7E+308

long double

10

длинное действительное

3.4E-4932 … 3.4E+4932

Понятие определения объекта

Для того, чтобы в программе можно было работать с объектом, его надо создать, т.е. программист на языке С++ должен дать указание системе на его создание – на выделение памяти требуемого размера и задать способ кодировки информации в этой области памяти. Выделенной памяти должно быть присвоено имя. В этом случае говорят, надо определить (defined) объект. Определить объект можно только один раз!!!!!!!!

Объект, который определен, одновременно и описан (declared).

Инструкция определения объекта выглядит так:

имя_типа [имя_объекта1, имя_объекта2, …,] имя_объектаN ;

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

Инструкция обязательно заканчивается точкой с запятой. Нет точки с запятой – нет инструкции!!!

Например:

intnA1, nA2, nA3 = 0 ;

float fltVar ;

char chSymb ;

Здесь записаны три инструкции определения объекта.

Первая создает в памяти три объекта с именами nA1, nA2, nA3,размер каждого из них 2 байта, в область этих объектов можно записывать целые числа из диапазона от -32768 до 32767 (смотри табл .) При создании объектовnA1, nA2в их область памяти ничего разумного не записано, там могут в данный момент находиться любые целые числа из диапазона объектов типаint.

В область объекта nA3записано в момент создания число 0. Об объектеnA3говорят, что объектnA3 инициализирован нулем.

Какие объекты созданы в в следующих двух инструкциях, смотри таблицу 1.

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

Так определяют целые константные объекты, тип которыхlong:

3 55 -10 +1 1 1876

Так определяют действительные константные объекты, тип которыхdouble( в записи таких констант всегда присутствует точка):

3.0 3. 55. – 10.-1.1 0.34.34 -15.12345678

Так определяют символьные константные объекты, тип которыхchar (их значения взяты в одинарные кавычки – кавычки не являются частью данного, а призваны только для того , чтобы обозначить его значение):

3‘‘a‘‘\n‘‘я‘‘%‘‘}

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

3“ “abcd“ “123456789-15.12345678“ “я

константная строка, в памяти занимает столько байт, сколько в ней символов + 1 байт на символ конца строки

Символом конца строки является символ ‘\0’, код которого равен 0.

Понятие описания объекта

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

Но иногда в программе приходится объект не создавать (он где-то уже создан или гарантировано будет создан), а только описывать (declared)его основные характеристики, для того чтобы система знала, как правильно организовать его обработку. В этом случае используютинструкцию описания объекта.

Вот ее вид:

extern имя_типа [имя_объекта1, имя_объекта2, …,] имя_объектаN ;

Обратите внимание, что инструкция описания объектаповторяет синтаксисинструкции определения объекта, перед которой появляется зарезервированное словоextern.

Модульная структура программы в СИ++.Объект типа функция.

Любой алгоритм можно сформулировать в виде последовательности операций, выполняемых над некоторыми объектами, и записать эту последовательность операций в виде программы. С увеличением алгоритмов и соответственно объема программы невозможно удержать в памяти все ее детали. Возрастает трудоемкость создания таких программ и уменьшается их надежность. К счастью программисты давно используют принципы структурного программирования, разбивая программу на отдельные процедуры, реализующие определенные группы операции алгоритма. Каждая процедура решает свою узкоспециализированную задачу, может обращаться к другим процедурам, а для этого ей необходимо уметь обмениваться данными с другими процедурами. Понятие подобной процедуры в языке С++ конкретизируется в виде объекта типа функции.

Такой стиль программирования, использующий принципы структурного программирования, ведет к повышению степени абстракции программы и к упрощению ее структуры, повышает надежность программы. Разделение программы на объекты-функции позволяет избежать избыточности кода (многократного повторения одного и того же кода), поскольку функцию записывают один раз, а вызывать ее на выполнение можно многократно из разных точек программы. Упрощается процесс отладки, т.к. каждую функцию можно отладить отдельно. Дальнейшим шагом в повышении уровня абстракции является объединение функций и связанных с ними данных в отдельные файлы - исходные модули (они имеют расширение .срр), компилируемые раздельно. Получившиеся в процессе компиляции файлыобъектные модули (файлы с расширением.obj), объединяются в исполняемую программу с помощью компоновщика (получают исполняемыйфайл с расширением.exe).