
- •Институт математики, экономики и механики кафедра математического обеспечения компьютерных систем в. С. Макогон, и. Н. Лисицына
- •Оглавление
- •Введение
- •Основныетипы данных, операции и выражения
- •Описание переменных.
- •Операции , выражения и операторы.
- •3. Операторы управления программой. Базовые управляющие структуры.
- •Операторы ветвления Условный оператор if
- •Оператор - переключатель
- •Операторы повторения (цикла).
- •4. Программирование алгоритмов линейной структуры.
- •5. Программирование разветвляющихся алгоритмов (оператор if).
- •6. Программирование разветвляющихся алгоритмов (оператор switch)
- •Оператор for
- •Цикл с постусловием do -while
- •8. Итерационные циклы
- •Задачи для самостоятельного решения
- •9. Программирование алгоритмов с использованием функций
- •Основные понятия численного решения уравнений
- •10. Программирование алгоритмов с использованием массивов
- •11. Символьные переменные и строки. Обработка строк.
- •Другие средства ввода-вывода символов и строк
- •Массивы строк
- •12. Указатели
- •Массивы указателей
- •2. Описание метода трапеций
- •3. Программный комплекс
- •13. Структуры
- •Указатели на структуры
- •14. Файлы. Потоковый ввод-вывод
- •Функции для работы с файлами
- •Открытие файловых потоков
- •Закрытие файловых потоков
- •Удаление файлов
- •Переименование файлов
- •Реинициализация
- •Функции для ввода-вывода по символам
- •1 Вариант) содержит только буквы исходной строки
- •2 Вариант) перевернута по отношению к исходной
- •Двоичные (бинарные) файлы. Блочно-ориентированный ввод-вывод.
Основныетипы данных, операции и выражения
Все используемые в программе объекты (переменные, именованные константы, функции и др. ) должны быть предварительно определены (описаны); в описаниях указываются имена, их типы и, возможно, начальные значения. Константам тоже могут быть присвоены имена — синонимы констант. Имена (идентификаторы) могут состоять из букв латинского алфавита, цифр и символа подчеркивания "_", который считается буквой. Первый символ идентификатора должен быть буквой. Строчные и прописные буквы различаются, например Beta, beta и ВЕТА - различные имена. Число символов в имени практически не ограничено. В качестве имен переменных нельзя использовать зарезервированные слова вроде if, else, for, char, int и т.д. Все служебные слова должны быть набраны строчными (малыми) буквами.
Т и п ы д а н н ы х.
Тип данных определяет:
размер памяти, занимаемый определяемым объектом и его внутреннее (машинное) представление в памяти;
диапазон допустимых значений, которые может принимать определяемый объект;
множество допустимых операций, которые могут быть применимы к определяемому объекту.
В языке С++ используются следующие основные типы данных:
char (символьный, 1 байт);
wchar_t (расширенный символьный, 2 байта);
bool (логический, 1 байт);
int (целый , 2 или 4 байта);
float (вещественный или с плавающей точкой, 4 байта);
double (вещественный с двойной точностью, 8 байтов).
Существуют 4 модификатора типа, уточняющих внутреннее представление и диапазон значений основных типов:
short (короткий);
long (длинный);
signed (знаковый);
unsigned (беззнаковый).
Модификаторы signed, unsigned, short, long можно применять к целочисленным типам; типы signed и unsigned можно использовать с типом char, а модификатор long – с типом double. Допустимые комбинации базовых типов и модификаторов, а также размер и диапазоны изменения соответствующих данных приведены в следующей таблице.
Таблица 2.1. Размеры значений разных типов в байтах и диапазоны их изменения в 32-разрядной среде
Тип |
Размер в байтах |
Диапазон изменения |
char |
1 |
-128 … 127 |
unsigned char |
1 |
0 … 255 |
signed char |
1 |
-128 … 127 |
int |
4 |
-2 147 483 648 … 2 147 483 647 |
unsigned int |
4 |
0 … 4 294 967 295 |
signed int |
4 |
Аналогичен типу int |
short int |
2 |
-32 768 … 32 767 |
unsigned short int |
2 |
0 … 65 535 |
signed short int |
2 |
-32 768 … 32 767 |
long int |
4 |
Аналогичен типу int |
signed long int |
4 |
Аналогичен типу signed int |
unsigned long int |
4 |
Аналогичен типу unsigned int |
float |
4 |
3.4Е-38 … 3.4Е+38 |
double |
8 |
1.7Е-308 … 1.7Е+308 |
long double |
10 |
3.4Е-4932 … 3.4Е+4932 |
bool |
- |
ИСТИНА или ЛОЖЬ |
wchar_ t |
2 |
0 … 65535 |
В более ранних реализациях С++-компиляторов тип int может быть эквивалентен short int, т.е. данные зтого типа занимают в памяти 2 байта. В C++ предусмотрен сокращенный способ объявления unsigned-, short- и long-значений целочисленного типа: при объявлении int-значений достаточно использовать слова unsigned, short и long, не указывая тип int.
Ц е л ы е константы и константы с п л а в а ю щ е й т о ч к о й записываются в общепринятой для языков программирования форме:
13, -941, 0, 76; 13.035, 13Е+0, -1.76, 0.123е-2, 6.02Е23
В языке С/C++ существуют правила записи восьмеричных и шестнадцатеричных целых чисел: если число начинается с нуля, то это восьмеричная константа: 037, 0776; начальные 0Х или 0х указывают на шестнадцатеричное число: 0хf37, 0Х7FA.
Тип целочисленных констант определяется в соответствии с их видом; этот тип можно указать явно с помощью суффиксов L, l (long) и U, u (unsigned). Разрешается комбинировать оба суффикса в любом порядке, например:
125L, 0x75u, 137uL
Константа с плавающей точкой состоит из целой десятичной части, точки, дробной десятичной части и, быть может, степени, которая состоит из буквы Е (или е), за которой следует десятичный порядок. Перед показателем степени может стоять знак (+ или –). Либо десятичная точка, либо показатель, но не оба одновременно, могут быть опущены. Могут быть опущены либо целая, либо дробная части.
С и м в о л ь н а я к о н с т а н т а состоит из заключенного в одиночные кавычки символа, например ‘#'. Символы в языке С/С++ фактически являются целочисленными значениями из диапазона 0..255. Их числовое значение соответствует внутреннему (машинному) представлению символов в некотором принятом стандартном коде. Например, в коде ASCII значение символа ‘А’ равно 65, ‘b’ — 98, ‘2’ — 50. Символы, не имеющие графического изображения, и некоторые специальные символы, записывают следующим образом: ‘\n’ — новая строка, ‘\t’ — табуляция, ‘\0’ — нуль(пусто), ‘\\’ — обратная косая черта, ‘\’’ — апостроф, ‘ \” ‘ — кавычка, ‘\b’ — возврат на шаг, ‘\r’ —возврат каретки, ‘\f’ — перевод страницы. Такая комбинация выглядит как два символа, но фактически это один символ.
Кроме этого, любой символ может быть представлен последовательностью трёх восьмеричных ( ‘\ООО’ ) либо двух шестнадцатеричных ( ‘\xHH’ ) цифр. Например, символ ‘A’ (латинская буква) можно ещё записать как ’\101’ , либо ‘\x41’ .
С т р о к о в а я константа — это последовательность символов, заключенная в двойные кавычки, например "ИНТЕРЕСНОЕ \t СООБЩЕНИЕ\n" или "" (пустая строка). В конце каждой такой строки (в том числе и пустой) транслятор автоматически помещает нулевой символ \0.
Присвоение константам символических имен происходит, как уже отмечалось, с помощью препроцессорного утверждения #define либо с помощью описателя const. Например:
#define MAX 100
const int MAX = 100;
const char name[] = “********************” ;
К о н с т а н т ы л о г и ч е с к о г о типа в С++ могут принимать только значения true и false. Вместо них с успехом используются их машинные эквиваленты – целые константы 1 и 0 соответственно.
Тип void.. К основным типам, кроме перечисленных выше, относится особый тип – void. Множество значений этого типа пусто. Используется для указания пустого списка аргументов функции; для определения типа функции, не возвращающей значения в точку вызова и др.