- •1. Основные типы данных. Целый, символьный, вещественный, voit
- •2. Структура программы. Примеры простейшей программы, использующей ввод/вывод на экран(сложить 2 числа)
- •2.3. Константы
- •3.1. Условный оператор
- •3.2. Оператор множественного выбора
- •1.4. Операторы
- •1.4.1. Оператор выражение
- •1.4.2. Пустой оператор
- •1.4.3. Составной оператор
- •1.4.4. Оператор if
- •1.4.5. Оператор switch
- •1.4.6. Оператор break
- •1.4.7. Оператор for
- •1.4.8. Оператор while
- •1.4.9. Оператор do while
- •1.4.10. Оператор continue
- •1.4.11. Оператор return
- •1.4.12. Оператор goto
- •6. Статические массивы(умножение матриц) двумерные статические массивы (матрицы).
- •Заполнение матриц.
- •Вывод элементов двумерных массивов.
- •Организация символьного одномерного массива в виде матрицы символов.
- •Квадратные матрицы. Работа с диагональными элементами.
- •Транспонирование матриц.
- •Умножение матрицы на вектор.
- •Умножение матрицы на матрицу.
- •Удаление строк матриц.
- •Включение столбца в матрицу.
- •Преобразование матрицы.
- •Преобразование матрицы в одномерный массив.
- •3.6. Описание и определение функций.
- •Лекция 6. Технология программирования OpenMp
1. Основные типы данных. Целый, символьный, вещественный, voit
Любая программа предназначена для обработки каких либо данных, например, чисел или текстов. Понятно, что данные могут быть различного вида или типа и, в зависимости от их типа, с ними можно выполнять разные действия. А что такое тип данных?
Тип данных характеризует:
объем памяти, выделяемый под данные;
их внутреннее представление в памяти компьютера;
набор допустимых операций (действий);
множество допустимых значений.
Все типы данных можно подразделить на простые — они предопределены стандартом языка, и сложные (или составные) — задаются пользователем. Данные простого типа нельзя разложить на более простые составляющие без потери сущности данного. Простые типы данных создают основу для построения более сложных типов: массивов, структур, классов. Простые типы в языке C++ — это целые, вещественные типы, символьный и логический тип и тип void.
Рассмотрим более подробно простые типы данных.
Целые типы
Целый тип данных предназначен для представления в памяти компьютера обычных целых чисел. Основным и наиболее употребительным целым типом является тип int. Гораздо реже используют его разновидности: short (короткое целое) и long (длинное целое). Также к целым типам относится тип char (символьный). Кроме того, при необходимости можно использовать и тип long long (длинное-предлинное!), который хотя и не определён стандартом, но поддерживается многими компиляторами C++. По-умолчанию все целые типы являются знаковыми, т.е. старший бит в таких числах определяет знак числа: 0 — число положительное, 1 — число отрицательное. Кроме знаковых чисел на C++ можно использовать беззнаковые. В этом случае все разряды участвуют в формировании целого числа. При описании беззнаковых целых переменных добавляется слово unsigned (без знака).
Сводная таблица знаковых целых типов данных:
Тип данных |
Размер, байт |
Диапазон значений |
char |
1 |
-128 ... 127 |
short |
2 |
-32768 ... 32767 |
int |
4 |
-2147483648 ... 2147483647 |
long |
4 |
-2147483648 ... 2147483647 |
long long |
8 |
-9223372036854775808 ... 9223372036854775807 |
Сводная таблица беззнаковых целых типов данных:
Тип данных |
Размер, байт |
Диапазон значений |
unsigned char |
1 |
0 ... 255 |
unsigned short |
2 |
0 ... 65535 |
unsigned int (можно просто unsigned) |
4 |
0 ... 4294967295 |
unsigned long |
4 |
0 ... 4294967295 |
unsigned long long |
8 |
0 ... 18446744073709551615 |
Запоминать предельные значения, особенно для 4-х или 8-ми байтовых целых, вряд ли стоит, достаточно знать хотя бы какого порядка могут быть эти значения, например, тип int — приблизительно 2·109.
На практике рекомендуется везде использовать основной целый тип, т.е. int. Дело в том, что данные основного целого типа практически всегда обрабатываются быстрее, чем данные других целых типов. Короткие типы (char, short) подойдут для хранения больших массивов чисел с целью экономии памяти при условии, что значения элементов не выходят за предельные для этих типов. Длинные типы необходимы в ситуации, когда не достаточно типа int.
Символьные типы
В стандарте C++ нет типа данных, который можно было бы считать действительно символьным. Для представления символьной информации есть два типа данных, пригодных для этой цели, — это типы char и wchar_t, хотя оба эти типа по сути своей вообще-то являются целыми типами. Например, можно взять символ 'A' и поделить его на число 2. Кстати, а что получится? Подсказка: символ пробела. Для «нормальных» символьных типов, например, в Паскале или C#, арифметические операции для символов запрещены.
Тип char используется для представления символов в соответствии с системой кодировки ASCII (American Standard Code for Information Interchange — Американский стандартный код обмена информации). Это семибитный код, его достаточно для кодировки 128 различных символов с кодами от 0 до 127. Символы с кодами от 128 до 255 используются для кодирования национальных шрифтов, символов псевдографики и др.
Тип wchar_t предназначен для работы с набором символов, для кодировки которых недостаточно 1 байта, например, Unicode. Размер типа wchar_t обычно равен 2 байтам. Если в программе необходимо использовать строковые константы типа wchar_t, то их записывают с префиксом L, например, L"Слово".
Логический тип
Логический (булевый) тип обозначается словом bool. Данные булевого типа могут принимать только два значения: true и false. Значение false обычно равно числу 0, значение true — числу 1. Под данные булевого типа отводится 1 байт.
Вещественные типы
Особенностью вещественных (действительных) чисел является то, что в памяти компьютера они практически всегда хранятся приближенно, а при выполнении арифметических операций над такими данными накапливается вычислительная погрешность.
Имеется три вещественных типа данных: float, double и long double. Основным считается тип double. Так, все математические функции по-умолчанию работают именно с типом double. В таблице ниже приведены основные характеристики вещественных типов:
Тип данных |
Размер, байт |
Диапазон абсолютных величин |
Точность, количество десятичных цифр |
float |
4 |
от 3.4Е—38 до 3.4Е+38 |
7 |
double |
8 |
от 1.7Е—308 до 1 .7Е+308 |
15 |
Тип long double в настоящее время, как правило, совпадает с типом double и на практике обычно не применяется. При использовании старых 16-ти разрядных компиляторов данные типа long double имеют размер 10 байт и обеспечивают точность до 19 десятичных цифр.
Рекомендуется везде использовать только тип double. Работа с ним всегда ведётся быстрее, меньше вероятность заметной потери точности при большом количестве вычислений. Тип float может пригодиться только для хранения больших массивов при условии, что для решения поставленной задачи будет достаточно этого типа.
Тип void
Тип void — самый необычный тип данных языка C++. Множество значений этого типа пусто, т.е. нельзя переменной такого типа присвоить какое-нибудь значение. Более того, нельзя даже описать переменную этого типа. Зачем же нужно то, чем вроде бы невозможно воспользоваться?
Оказывается, это очень полезный тип данных! Он используется:
для определения функций, которые не возвращают результата своей работы;
для указания того, что список параметров функции пуст;
а так же этот тип является базовым для работы с указателями. Достаточно сказать, что всё программирование с использованием Win32 API построено на применении указателей на тип void.