- •Этапы создания исполняемой программы
- •Идентификаторы
- •Ключевые слова
- •Комментарии
- •Структура программы
- •Вывод данных
- •Ввод данных
- •Вопросы для самоконтроля
- •Тема 1.1(2). Типы данных. Константы и переменные
- •Основные (стандартные) типы данных
- •Область действия переменных
- •1.3.1. Математические операции
- •1.3.2. Простое присваивание
- •1.3.3. Составное (сложное) присваивание
- •1.3.4. Операция приведения (преобразования) типов
- •1.3.5. Операции отношения
- •1.3.7. Операция sizeof
- •1.3.8. Операция "запятая" (,)
- •1.3.9. Условная операция (?:)
- •1.3.10. Указатель. Определение адреса переменной
- •1.3.11. Директива define
- •1.3.12. Директива include
- •1.3.13. Примеры программ
- •1.3.14. Вопросы для самоконтроля
- •Тема 1.3. Программирование алгоритмов различной структуры
- •Базовые конструкции структурного программирования
- •Операторы ветвления
- •1.4.1. Условный оператор if
- •If (условие) оператор_1; else оператор_2;
- •If (условие) оператор_1;
- •1.4.2. Оператор выбора switch
- •Операторы цикла
- •1.4.3. Оператор while
- •1.4.4. Оператор do...While
- •1.4.5. Оператор for
- •1.4.6. Функция exit(), операторы break, continue, return
- •Стандартные математические функции
- •Тема 1.4. Ввод-вывод данных
- •Функции get() и put()
- •Функция getch()
- •Функция printf
- •Функция sprintf()
- •Тема 1.5. Функции. Локальные и глобальные переменные. Способы передачи данных.
- •1.5.1. Видимость переменных
- •1.5.2. Определение функции
- •1.5.3. Функция main
- •1.5.4. Вызов функции
- •1.5.5. Способы передачи данных
- •1.5.6. Возвращаемые значения функции
- •1.5.7. Использование прототипов функций
- •Тема 1.6(1). Массивы и указатели
- •Объявление массива
- •Доступ к элементам массива
- •Многомерные массивы
- •Указатели
- •Тема 1.6(2). Структуры и строки
- •1.6.1. Структуры
- •1 Способ – по шаблону.
- •2 Способ – при объявлении (описании) шаблона.
- •1.6.2. Способы реализации строк
- •1.6.3. Строковые константы
- •1.6.4. Указатель на символьную строку
- •1.6.5. Массив символов
- •1.6.6. Некоторые функции для работы со строками
- •1.6.7. Некоторые функции проверки и преобразования символов
- •Тема 1.7. Работа с памятью
- •Функция malloc
- •Функция free
- •Операция new
- •Операция delete
- •Тема 1.10. Динамические структуры
- •Разновидности динамических структур
- •Примеры программ (фрагментов программ) для работы с динамическими структурами
-
Ввод данных
Оператор cin позволяет вводить значения переменных.
Формат команды:
cin [>> переменная];
Пример:
cin >> x; – ввод значения в переменную X
cin >> a >> b; – ввод значений в переменные А и В
Информацию о командах cout и cin содержит файл iostream.h. Поэтому его необходимо указывать в директиве include.
-
Вопросы для самоконтроля
-
Какой знак ставиться в конце каждого оператора?
-
Как выделить комментарии в программе?
-
Перечислите управляющие последовательности.
-
Какой оператор может быть использован для ввода значения в переменную?
-
Какой оператор используется для присвоения значения?
Тема 1.1(2). Типы данных. Константы и переменные
Цели изучения темы
-
ознакомление с различными типами данных;
-
использование констант и переменных;
-
директивы препроцессора.
1.2.1 Типы данных языка С++
Основная цель любой программы состоит в обработке данных.
Данные бывают двух видов: константы и переменные.
Данные различного типа хранятся и обрабатываются по-разному. В любом алгоритмическом языке каждая константа, переменная, результат вычисления выражения или функции должны иметь определенный тип.
Тип данных определяет:
-
внутреннее представление данных в памяти компьютера;
-
множество значений, которые могут принимать величины этого типа;
-
операции и функции, которые можно применять к величинам этого типа.
Все типы языка С++ можно разделить на основные (стандартные) и составные.
Основные типы данных служат для представления целых, вещественных, символьных и логических величин.
На основе стандартных типов могут быть описаны составные типы:
-
массивы;
-
перечисления;
-
функции;
-
структуры;
-
ссылки;
-
указатели;
-
объединения;
-
классы.
Основные (стандартные) типы данных
В языке С++ определено пять основных (стандартных, простых, арифметических) типов данных:
-
int (целый);
-
char (символьный); целые (целочисленные)
-
wchar_t (расширенный символьный); типы
-
float (вещественный); типы с плавающей
-
double (вещественный с двойной точностью). точкой
Существует четыре спецификатора типа, которые уточняют внутреннее представление и диапазон значений стандартных типов:
-
short (короткий);
-
long (длинный);
-
signed (знаковый);
-
unsigned (беззнаковый).
Диапазоны значений стандартных типов данных языка С++:
Имя объявления |
Тип |
Примерный диапазон значений |
Размер (байт) |
char |
символьный |
-128..127 |
1 (обычно) |
unsigned char |
беззнаковый символьный |
0..255 |
1 |
signed char |
знаковый символьный (такой же, как char) |
-128..127 |
1 |
int |
целый |
-32868..32676 |
2 (для 16-разрядного процессора) 4 (для 32-разрядного процессора) |
unsigned int (unsigned ) |
беззнаковый целый |
0..65535 |
2 |
signed int (signed) |
знаковый целый (такой же, как int) |
-32768..32767 |
2 |
short int (short) |
короткий целый |
-32768..32767 |
2 |
unsigned short int |
беззнаковый короткий целый |
0..65535 |
2 |
signed short int |
знаковый короткий целый (такой же, как short int) |
-32768..32767 |
2 |
long int (long) |
длинный целый (такой же, как long) |
-2147483648..2147483847 |
4 |
signed long int |
знаковый длинный целый (такой же, как long int) |
-2147483648..2147483847 |
4 |
unsigned long int |
беззнаковый длинный целый |
0..4294967295 |
4 |
float |
длинный с плавающей точкой |
-3.4Е-38..3.4Е+38 |
4 |
double |
с плавающей точкой двойной точности |
-1.7Е-308..1.7Е+308 |
8 |
long double |
длинный с плавающей точкой двойной точности |
-3.4Е-4932..3.4Е+4932 |
10 |
Наибольший интерес для нас будут представлять типы char, int, float.
Беззнаковый тип может принимать только положительные значения.
По умолчанию все целочисленные типы считаются знаковыми, т.е. спецификатор signed можно опускать. Например, тип int и тип signed int являются аналогичными.
В C++ величины логического типа представляются в виде чисел 1 (true) и 0 (false). Поэтому, если выражение принимает ненулевое значение, то оно считается истинным, а если нулевое - ложным.
Символьный тип предназначен для хранения 1 символа.
Тип wchar_t предназначен для хранения набора символов, для которых недостаточно 1 байта (например, Unicode). Размер этого типа зависит от реализации; как правило, он соответствует типу short.
Замечание:
На различных моделях компьютеров диапазон может значительно отличаться от приведенного.
Тип Void относится к основным типам языка С++. Множество значений этого типа пусто. Он имеет специальное назначение и используется:
-
для определения функций, которые не возвращают значений;
-
для указания пустого списка аргументов функции;
-
как базовый тип для указателей;
-
в операциях приведения типов.
1.2.2 Константы языка С++
Константа – это неизменяемая величина.
Константа может принадлежать любому из основных типов (см. таблицу), а так же быть строковой константой.
Строковая константа не имеет соответствующего типа. Она всегда заключается в двойные кавычки.
Примеры:
"С++ Programming" "123" " " "423 Е."
Любая строка символов или одиночный символ, заключенный в кавычки интерпретируется как символьная строка.
В конец каждой строковой константы компилятор добавляет нулевой символ (представляется управляющей последовательностью \0). Поэтому длина строковой всегда на 1 больше количества символов в ее записи. Например, пустая строка “” имеет длину 1 байт. Ноль является ограничителем строки и позволяет определять конец строки.
Так располагается строка "Program" в памяти:
|
p |
r |
o |
g |
r |
a |
m |
|
|
Длинную строковую константу можно разместить на нескольких строках, обозначая перенос знаком обратной косой черты, за которой следует перевод строки (Enter). Например, строка
“Любишь кататься, \
люби и \
саночки возить”
полностью соответствует строке
“Любишь кататься, люби и саночки возить”
Символьная константа заключается в одинарные кавычки.
Примеры:
'w' 'W' 'C' '='
Компилятор C++ не добавляет ограничитель в конец символьной константы.
Константы 'R' и "R" сильно отличаются друг от друга:
‘R’ в памяти: “R” в памяти:
|
R |
|
|
|
R |
|
|
1.2.3 Переменные языка С++
Переменная – это именованная область оперативной памяти, в которой хранятся данные определенного типа.
Имена переменных могут быть написаны как прописными, так и заглавными буквами. Причем переменные alfa, Аlfa, aLfa считаются различными переменными.
Перед использованием каждая переменная должна быть описана. При описании переменной указывается ее тип, имя и, возможно, значение.
Пример описания целой переменной А, вещественной переменной Х и символьной В:
int A; float X;
char B;
Общий вид оператора описания переменных:
[const] <тип> <имя> [значение];
Правила описания переменных:
-
ключевое слово const означает, что значение переменной изменять нельзя; такая переменная называется именованной константой или просто константой; для константы значение задается при описании;
-
если задается начальное значение (т.е. переменная инициализируется), то оно записывается со знаком равно или в круглых скобках.
Примеры:
float a=0, b=10.5; // вещественная переменная a получает значение 0, b - 10.5
short int x=1; // целая переменная х получает значение 1
const char C=’C’; // символьная константа С
char S, sf=’t’; // символьные переменные S и sf, значение ‘t’ относится только к sf
char F(‘%’); // символьная переменная F получает значение ‘%’
float Y=0.22, Z(3), Sum
Символьной переменной можно присваивать как символ, так и число.
Пример:
char c=84;
В переменной С будет храниться символ T, т.к. он имеет код 84 по таблице ASCII.
И наоборот целой переменной можно присвоить символ. Тогда в ней окажется ASCII-номер символа.
Пример:
int i='P'; //В переменной i окажется число 80.
Допустимы и арифметические операции с символьными переменными:
Пример:
char a;
a='T'+5;
В переменную A будет помещен символ Y, который имеет номер 89 по таблице ASCII.