
- •1 Основы алгоритмизации
- •1.1 Понятие об алгоритме
- •1.2 Свойства алгоритма
- •1.3 Средства записи алгоритма
- •1.4 Графические схемы алгоритмов
- •Символы схемы алгоритма
- •1.5 Типы алгоритмов
- •2 Основные элементы языка программирования
- •2.1 Структура программы
- •2.2 Типы данных
- •2.2.1 Основные понятия
- •2.3 Переменные и константы
- •2.4 Разработка и отладка линейных алгоритмов
- •Стандартные математические функции
2.2 Типы данных
2.2.1 Основные понятия
Основная цель любой программы состоит в обработке данных. Данные различного типа хранятся и обрабатываются по-разному. В любом алгоритмическом языке каждая константа, переменная, результат вычисления выражения или функции должны иметь определенный тип.
Тип данных определяет:
• множество значений, которые могут принимать величины этого типа;
• внутреннее представление данных в памяти компьютера;
• операции и функции, которые можно применять к величинам этого типа.
Исходя из этих характеристик, программист выбирает тип каждой величины, используемой в программе для представления реальных объектов. Обязательное описание типа позволяет компилятору производить проверку допустимости различных конструкций программы. От типа величины зависят машинные команды, которые будут использоваться для обработки данных.
Основные (стандартные) типы данных часто называют арифметическими, поскольку их можно использовать в арифметических операциях. Для описания основных типов определены следующие ключевые слова:
int (целый);
char (символьный);
wchar_t (расширенный символьный);
bool (логический);
float (вещественный);
double (вещественный с двойной точностью).
Первые четыре типа называют целочисленными (целыми), последние два - типами с плавающей точкой. Код, который формирует компилятор для обработки целых величин, отличается от кода для величин с плавающей точкой.
Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:
short (короткий);
long (длинный);
signed (знаковый);
unsigned (беззнаковый).
Диапазоны значение и объем занимаемой памяти для простых типов приведены в таб. 2.1.
Таблица 2.1Числовые типы данных языка C
Тип данных |
Размер памяти, бит |
Диапазон значений |
char (символьный) |
8 |
от–128 до 127 |
signed char (знаковый символьный) |
8 |
от–128 до 127 |
Unsigned char (беззнаковый символьный) |
8 |
от 0 до 255 |
Short int (короткое целое) |
16 |
от–32768 до 32767 |
unsigned int (беззнаковое целое) |
16 |
от 0 до 65535 (16-битная платформа) от 0 до 4294967295 (32-битная платформа) |
Продолжение таблицы 2.1
int (целое) |
16 32 |
от–32768 до 32767 (16-битная платформа) от –2147483648 до 2147483647 (32-битная платформа) |
Long (длинное целое) |
32 |
от–2147483648 до 2147483647 |
unsigned long (длинное целое без знака) |
32 |
от 0 до 4294967295 |
Long long int (C99) |
64 |
от–(263–1) до 263–1 |
unsigned long long int (C99) |
64 |
от 0 до 264–1 |
Float (вещественное) |
32 |
от 3.4E–38 до 3.4E38 |
double (двойное вещественное) |
64 |
от 1.7E–308 до 1.7E308 |
long double (длинное вещественное) |
80 |
от 3.4E–4932 до 3.4E4932 |
_Bool (C99) |
8 |
true(1), false(0) |
Bool (C++) |
8 |
true(1), false(0) |
В 32-разрядной ОС Windows тип int занимает в памяти 32 бита, и диапазон допустимых значений для знакового int в этом случае от минус 2147483648 до 2147483647. Такое различие в размере памяти, выделяемой под переменную типа int, объясняется тем, что тип int – машинно-зависимый, и для него выделяется одно машинное слово, длина которого в 16-разрядных процессорах – 16 бит, в 32-разрядных – 32 бита.
К основным типам языка относится тип также void. Множество значений этого типа пусто. Он используется:
• для определения функций, которые не возвращают значения,
• для указания пустого списка аргументов функции.