Return 0;// Выход из функции и из программы

}

3. Общее понятие типов данных.

Любая программа предназначена для обработки некоторых данных. Данные представляют некоторую информацию. Информация многообразна – это числовая информация, текстовая информация, аудио и видеоинформация и т.д. Однако, несмотря на многообразие видов информации, внутреннее машинное представление ее едино. Любые данные хранятся в памяти компьютера в виде двоичных кодов.

Память компьютера можно представить в виде непрерывной последовательности двоичных ячеек, каждая из которых может находиться в двух состояниях условно обозначаемых 0 и 1. Каждая такая двоичная ячейка называется битом. Вся эта последовательность ячеек условно разбита на порции из 8 бит, называемые байтами. Таким образом, 1 байт = 8 битам. Байт является основной единицей измерения объема памяти.

Return 0;// Выход из функции и из программы - student2.ru

С каждым байтом памяти связано понятие адреса, который, по сути, является номером байта в непрерывной последовательности байтов памяти компьютера. То есть каждый байт памяти имеет свой адрес. По этому адресу и осуществляется доступ к данным, хранящимся в памяти.

Пусть, например, программе необходимо вывести на экран данные, хранящиеся в байте с адресом 1. Но как это сделать? Ведь двоичный код, содержащийся в этом байте, можно трактовать по-разному: это может быть число, а может быть это некоторая буква. Таким образом, программе для правильной обработки этого байта необходимо «знать» что это – число или буква. Другими словами, программе необходимо точно представлять какие данные хранятся в этом байте памяти.

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

Тип данных для каждого программного объекта, представляющего данные,определяет:

· характер данных (число, со знаком или без знака, целое или с дробной частью, одиночный символ или текст, представляющий последовательность символов и т.д.);

· объем памяти, который занимают в памяти эти данные;

· диапазон или множество возможных значений;

· правила обработки этих данных (например, допустимые операции).

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

Другой уровень классификации разделяет все типы данных на предопределенные (изначально встроенные в язык программирования) и пользовательские (типы данных, определяемые программистом) типы данных.

4. Переменные и константы.

В программах данные представлены константами и переменными.

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

Общее правило определения переменной можно сформулировать так:[класс памяти] <тип данных><идентификатор - имя> [инициализатор];

Понятие класс памятиопределяет такие важные характеристики как время жизни и область видимости переменных.

Примеры описания переменных:

· int а;// переменнаяa типа int(целого типа)

· double х;// переменнаях типа double(вещественного типа с двойной точностью)

· unsignedshortintd;// переменнаяd– короткое целое без знака

Однотипные переменные можно определять в одной строке:inti, j, k;

Описание переменной можно совместить с ее инициализацией:

· int а = 1213;// переменнаяaинициализирована значением 1213

· double х = 0.003;// переменнаях инициализирована значением 0.003

· unsignedshortintd = 13;// переменнаяd инициализирована значением 13

Существует альтернативный способ инициализации переменных. Следующие примеры эквивалентны предыдущим:

· int а (1213);// переменнаяaинициализирована значением 1213

· double х (0.003);// переменнаях инициализирована значением 0.003

· unsignedshortintd (13);// переменнаяd инициализирована значением 13

Определения неинициализированных и инициализированных однотипных переменных можно совмещать в одной строке:inti = 0, j, k (10);

Инициализировать переменные можно не только конкретными значениями, как в предыдущих примерах. В качестве инициализирующего значения можно использовать любые допустимые выражения. Например:doubley = a * x;/*переменнаяy инициализирована значением равным произведению значений переменных a и x */

При инициализации переменной присваивается конкретное значение. Однако, если переменная не инициализирована, это не означает, что она не имеет значения. На самом деле она хранит некоторое значение, которое находилось в этой области памяти до определения переменной. Это значение невозможно предсказать. Такие случайные данные обычно называют “мусором”.

Во время выполнения программы значение переменной можно изменять.

Константа – это величина, значение которой в процессе работы программы не изменяется.

Константы бывают двух видов: константы – литералы и именованные константы.

Константы – литералы представляют собой сами значения. Например:123 -245 0.003 -12.45 ’R’ ”Это текст”

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

Именованные константы задаются с помощью ключевого слова const:

· constdoublePi = 3.14;

· constintc1 = 1000, c2 = 2000;

· const char point = ’.’;

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

5. Основные типы данных.

Основные (предопределенные) типы данных часто называют арифметическими, поскольку их можно использовать в арифметических операциях. Для описания основных типов определены следующие ключевые слова:

· int (целый);

· float (вещественный);

· double (вещественный тип с двойной точностью);

· bool (логический);

· char (символьный).

Типы int,boolиchar относят к группе целочисленных (целых) типов, а floatиdouble - к группе вещественных типов - типов с плавающей точкой. Код, который формирует компилятор для обработки целых величин, отличается от кода для величин с плавающей точкой.

6. Спецификаторы типов данных.

Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:

· short(короткий);

· long (длинный);

· signed (знаковый);

· unsigned (без знаковый).

Спецификаторы добавляются слева к названию типа, например, так:

· shortint – короткоецелое;

· unsignedshortint - короткоецелоебез знака.

Спецификаторы могут в произвольном порядке. Например: unsignedshortintэквивалентноshortunsigned int.

Допустимы не все сочетания спецификаторов и типов данных. Например: unsigneddoubleявляется недопустимым сочетанием.

7. Определение переменных и констант в программе.

Общее правил определения переменной можно сформулировать так:

[класс памяти] <тип данных><идентификатор - имя> [инициализатор];

Понятие класс памятиопределяет такие важные характеристики как время жизни и область видимости переменных.

Примеры описания переменных:

· int а;// переменнаяa типа int(целого типа)

· double х;// переменнаях типа double(вещественного типа с двойной точностью)

· unsignedshortintd;// переменнаяd– короткое целое без знака

Однотипные переменные можно определять в одной строке:inti, j, k;

Описание переменной можно совместить с ее инициализацией:

· int а = 1213;// переменнаяaинициализирована значением 1213

· double х = 0.003;// переменнаях инициализирована значением 0.003

· unsignedshortintd = 13;// переменнаяd инициализирована значением 13

Существует альтернативный способ инициализации переменных. Следующие примеры эквивалентны предыдущим:

· int а (1213);// переменнаяaинициализирована значением 1213

· double х (0.003);// переменнаях инициализирована значением 0.003

· unsignedshortintd (13);// переменнаяd инициализирована значением 13

Определения неинициализированных и инициализированных однотипных переменных можно совмещать в одной строке:inti = 0, j, k (10);

Инициализировать переменные можно не только конкретными значениями, как в предыдущих примерах. В качестве инициализирующего значения можно использовать любые допустимые выражения. Например:doubley = a * x;/*переменнаяy инициализирована значением равным произведению значений переменных a и x */

При инициализации переменной присваивается конкретное значение. Однако, если переменная не инициализирована, это не означает, что она не имеет значения. На самом деле она хранит некоторое значение, которое находилось в этой области памяти до определения переменной. Это значение невозможно предсказать. Такие случайные данные обычно называют “мусором”.

Во время выполнения программы значение переменной можно изменять.

Константы – литералы представляют собой сами значения. Например:123 -245 0.003 -12.45 ’R’ ”Это текст”

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

Именованные константы задаются с помощью ключевого слова const:

· constdoublePi = 3.14;

· constintc1 = 1000, c2 = 2000;

· const char point = ’.’;

Далее в программе можно использовать имена этих констант, а не сами значения.

8. Инициализация различных типов данных.

Примеры описания переменных:

· int а;// переменнаяa типа int(целого типа)

· double х;// переменнаях типа double(вещественного типа с двойной точностью)

· unsignedshortintd;// переменнаяd– короткое целое без знака

Описание переменной можно совместить с ее инициализацией:

· int а = 1213;// переменнаяaинициализирована значением 1213

· double х = 0.003;// переменнаях инициализирована значением 0.003

· unsignedshortintd = 13;// переменнаяd инициализирована значением 13

Существует альтернативный способ инициализации переменных. Следующие примеры эквивалентны предыдущим:

· int а (1213);// переменнаяaинициализирована значением 1213

· double х (0.003);// переменнаях инициализирована значением 0.003

· unsignedshortintd (13);// переменнаяd инициализирована значением 13

Определения неинициализированных и инициализированных однотипных переменных можно совмещать в одной строке:inti = 0, j, k (10);

В качестве инициализирующего значения можно использовать любые допустимые выражения. Например:doubley = a * x;/*переменнаяy инициализирована значением равным произведению значений переменных a и x */

9. Целочисленный тип данных.

Размер типа int не определяется стандартом, а зависит от компьютера и компилятора. Для 16-разрядного процессора под величины этого типа отводится 2 байта – в этом случае диапазон возможных значений составляет -32 768 ... 32 767 (2 в степени 16 различных значений). Для 32-разрядного - 4 байта – диапазон значений -2 147 483 648 ... 2 147 483 647 (2 в степени 32 различных значений).

Спецификатор short перед именем типа указывает компилятору, что под число требуется отвести 2 байта независимо от разрядности процессора.

Спецификатор long означает, что целая величина будет занимать 4 байта. Таким образом, на 16-разрядном компьютере эквиваленты int и shortint, а на 32-разрядном — int и longint.

При определении переменных вместо shortintили longint можно использовать более короткие обозначения: shortили longсоответственно:shorta;longb;

Использование типов int, shortint (short), longint (long) подразумевает представление целых чисел со знаком, поэтому спецификатор signedможно не указывать.

Внутреннее представление величины целого типа — целое число в двоичном коде. Например, число +22 типа shortint (short) представляются в памяти так:

Номера разрядов: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Наши рекомендации