- •Лабораторная работа № 1
- •Линейные программы
- •Введение
- •Типы данных Целые числа
- •Вещественные числа
- •Преобразование типов в выражениях
- •Символьный тип
- •Константы
- •Расположение описаний констант и переменных в исходном тексте
- •Символьные константы
- •Оператор присваивания Краткая форма записи операторов присваивания
- •Логические выражения и операторы
- •Оператор ввода
- •Задание
- •Приложение а
- •Приложение б Задания на вычисление значения выражений с использованием вещественных переменных
- •Приложение в Задания на вычисление значения выражений с использованием переменных целого типа
- •Приложение г Задания на вычисление значения выражений с использованием логических выражений
- •Приложение д
Расположение описаний констант и переменных в исходном тексте
В исходном тексте описания констант чаще всего размещаются в заголовке программы перед функцией "main". После них, уже в теле функции "main", размещаются описания переменных. Для иллюстрации этого порядка ниже приведен фрагмент программы, которая вычисляет длину окружности заданного радиуса:
Пример 1
#include <iostream.h>
#include<conio.h>
const float PI = 3.1416;
void main() {
float radius = 0;
cout << "Введите радиус окружности.\n";
cin >> radius;
cout << "Длина окружности радиуса " << radius;
cout << " примерно равна " << 2*PI*radius << ".\n";
getch();
}
Символьные константы
Символьная константа состоит из символа, заключенного в одиночные кавычки (апострофы), как, например, 'х'. Значением символьной константы является численное значение символа в машинном наборе символов (алфавите). Символьные константы считаются данными типа int. Некоторые неграфические символы, одиночная кавычка ' и обратная косая \, могут быть представлены в соответствие с таблицей 1.
Таблица 1
Неграфические символы языка С++
символ новой строки |
NL(LF) |
\n |
горизонтальная табуляция |
NT |
\t |
вертикальная табуляция |
VT |
\v |
возврат на шаг |
BS |
\b |
возврат каретки |
CR |
\r |
перевод формата |
FF |
\f |
обратная косая |
\ |
\\ |
одиночная кавычка (апостроф) |
' |
\' |
набор битов |
0ddd |
\ddd |
набор битов |
0xddd |
\xddd |
Оператор присваивания Краткая форма записи операторов присваивания
В программах часто встречаются операторы присваивания, в которых справа стоит выражение, модифицирующее текущее значение переменной, например:
number = number + 1;
Переменным часто присваиваются значения, вычисленные на основе их старых значений. Поэтому в С++ была введена краткая форма записи для подобных операторов присваивания. Любую из операций "+" (сложение), "-" (вычитание), "*" (умножение), "/" (деление) и "%" (остаток от деления нацело) можно указать в качестве префикса оператора присваивания ("=") (cм. следующую таблицу).
Пример: Эквивалентное выражение:
number += 1;
total -= discount;
bonus *= 2;
time /= rush_factor;
change %= 100;
amount *= count1 + count2;
number = number + 1;
total = total - discount;
bonus = bonus * 2;
time = time / rush_factor;
change = change % 100;
amount = amount * (count1 + count2);
Первый пример допускает еще более краткую запись с помощью оператора инкремента "++":
number++;
Оператор "++" существует и в префиксной форме:
++number;
Постфиксная и префиксная форма записи имеют важное различие, которое необходимо помнить. Префиксный оператор применяется ДО вычисления остальной части выражения, а постфиксный – ПОСЛЕ. Например, после выполнения операторов
x = 4;
y = x++;
переменная "x" получит значение 5, а "y" – значение 4. В случае операторов
x = 4;
y = ++x;
обе переменные получат значение 5. Это объясняется тем, что "++x" выполняется до того, как значение "x" будет использовано в выражении, а "x++" – после. В С++ существует аналогичный оператор декремента "--", уменьшающий значение переменной на 1, и у него тоже есть префиксная и постфиксная форма.
Вообще, выражение с оператором присваивания имеет значение, равное значению левой части после выполнения присваивания. Ниже приведено выражение, соответствующее правилам С++, которое можно использовать для проверки условия:
(y = ++x) == 5
Это выражение означает следующее: "после присвоения переменной y инкрементированного значения x проверить, не равно ли значение y числу 5".