Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Инициатор задает начальное значение переменной при объявлении.
Примеры описания переменных:
int a;
double b = 10.0;
char c = 'A';
double d[10]; // массив из 10 элементов
unsigned int m[3] = {5,-2,3}; //массив из 3-х элементов
Задачи:
1. Объявите переменные, необходимые для вычисления площади прямоугольника.
2. Объявите переменные, необходимые для пересчета веса из фунтов в килограммы.
3. Определите исходные данные и объявите переменные, необходимые для вычисления дохода по вкладу.
4. Объявите переменные, необходимые для вычисления площади круга.
5. Объявите переменные, необходимые для вычисления площади кольца.
6. Объявите переменные, необходимые для вычисления объема и площади поверхности цилиндра.
7. Объявите переменные, необходимые для вычисления стоимости покупки, состоящей из нескольких тетрадей, карандашей и линейки.
8. Объявите переменные, необходимые для вычисления стоимости покупки, состоящей из нескольких тетрадей и такого же количества обложек.
6. Немодифицируемая переменная
Переменная любого типа может быть объявлена как немодифицируемая. Это достигается добавлением ключевого слова const. Объекты с типом const представляют собой данные, используемые только для чтения, т. е. этой переменной не может быть присвоено новое значение. Если после слова const отсутствует спецификатор-типа, то подразумевается спецификатор типа int. Если ключевое слово const стоит перед объявлением составных типов (массив, структура, смесь, перечисление), то это приводит к тому, что каждый элемент также должен являться немодифицируемым. Значение немодифицируемым переменным присваивается один раз при определении.
const double A=2.128E-2, C=1;
const B=286; (подразумевается const int B=286)
const long B=0x286;
const char s[] = "Hello,\nВася";
const double m[4] = {5,-2,2,9}; //массив из 4-х элементов.
7. Операции
Знаки операций - это один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. Операции делятся на унарные, бинарные и тетрарную, по количеству участвующих в них операндов.
Один и тот же знак операции может интерпретироваться по разному, в зависимости от контекста. (с 31 стр. по 37 стр. - изучить).
Таблица операций с учетом приоритета
() — круглые скобки имеют самый высокий приоритет
Операция | Название | Пример |
Унарные операции ++ -- sizeof ~ ! - + & * new delete (type) бинарные * / % + - << >> < <= > >= == != & ^ | && || тернарная ?: Бинарные = *= /* %= += -= <<= >>= &= |= ^= , | Инкремент Декремент Получение размера Дополнение Отрицание логическое Унарный минус Унарный плюс Взятие адреса Разадресация Выделение памяти Удаление динамической перем. Преобразование типа Умножение Деление Остаток от деления Сложение Вычитание Сдвиг влево Сдвиг вправо Меньше? Меньше или равно? Больше? Больше или равно? Равно? Не равно? Поразрядное И Поразрядное Исключающее ИЛИ поразрядное ИЛИ логическое И логическое ИЛИ условная операция присваивание умножение с присваиванием деление с присваиванием сдвиг влево с присваиванием поразрядное И с присваиванием последовательное вычисление | a++ или ++a равнозначно a=a+1 a-- или --a равнозначно a=a-1 sizeof a – количество байт у перемен. A=true; b=!a есть false A=3; B=-a; //B=-3 Получение номера ячейки переменной Получение значения перем. по адресу Далее Далее Float a=2.7; int b=(int)a; //b=2 C=a*b; A=13; b=3; c=a%b; //c=1 A=3; b=2; c=a<<b; //c=12; A=11; b=2; c=a>>b; //c=2; 2<4 // true 2==3 //false 3&4 =0; 3&5 =1 3|4 = 7; 3|5=7 true&&true =true true||false = true c=a<b? a:b; //если a<b, то c=a, иначе c=b b=4; a=b; a*=b; //как a=a*b |
Постфиксная и префиксная формы инкремента и декремента приводят к одинаковому результату в отдельном операторе и к разному результату в сложном выражении. В префиксной форме сначала меняется операнд, а затем его значение становится результирующим значением выражения. В постфиксной форме значением выражения является исходное значение
операнда, после чего он меняется.
int a; float s;
a=5;
s = a++;
cout << s; //5
a=5;
s = ++a;
cout << s; //6
a=5;
s = ++a/2.0;
cout << s; //3
a=5;
s = a++/2.0;
cout << s; //2.5
Операции сдвига осуществляют смещение операнда влево (<<) или вправо (>>) на число битов, задаваемое вторым операндом. Оба операнда должны быть целыми величинами. Выполняются обычные арифметические преобразования. При сдвиге влево правые освобождающиеся биты устанавливаются в нуль. При сдвиге вправо метод заполнения освобождающихся левых битов зависит от типа первого операнда. Если тип unsigned, то свободные левые биты устанавливаются в нуль. В противном случае они заполняются копией знакового бита. Результат операции сдвига не определен, если второй операнд отрицательный.
Отметим, что сдвиг влево соответствует умножению первого операнда на степень числа 2, равную второму операнду, а сдвиг вправо соответствует делению первого операнда на 2 в степени, равной второму операнду.
Примеры:
int i=0x1234, j, k ;
k = i<<4 ; /* k = 0x2340 */
j = i<<8 ; /* j = 0x3400 */
i = j>>8 ; /* i = 0x0012 */
Поразрядные операции (&, |, ^) применяются только к целочисленным операндам и работают с их двоичными представлениями. При выполнении поразрядных операций их операнды сопоставляются побитово.
& - поразрядная коньюнкция,
| - поразрядная дизъюнкция,
^ - поразрядное исключающее ИЛИ,
int a=6, b=5;
cout << (a & b); // 0110
& 0101
-----
0100 === 4
cout << (a | b); // 0110
| 0101
-----
0111 === 7
cout << (a ^ b); // 0110
^ 0101
-----
0011 === 3
К логическим операциям относятся операция логического И (&&) и операция логического ИЛИ (||). Операнды логических операций могут быть целого типа, плавающего типа или типа указателя, при этом в каждой операции могут участвовать операнды различных типов. Операнды логических выражений вычисляются слева направо. Если значения первого операнда достаточно, чтобы определить результат операции, то второй операнд не вычисляется.
Условная операция (?:). Это операция тернарная, т. е. имеет три операнда. Ее формат: операнд_1 ? операнд_2 : операнд_3.
Первый операнд оценивается с точки зрения равенства нулю (false). Если он не равен нулю, то результатом условной операции является операнд_2, если он равен 0, то результатом условной операции является операнд_3.
Пример:
a= (b<0) ? -1: 1;
i=(i==-1) ? i+1: 1; ======= i=(i==-1) ? 0: 1;
При выполнении операций производится автоматическое преобразование типов, чтобы привести операнды выражений к общему типу или чтобы расширить короткие величины до размера целых величин, используемых в машинных командах. Выполнение преобразования зависит от специфики операций и от типа операнда или операндов.
Рассмотрим общие арифметические преобразования.
1. Операнды типа float преобразуются к типу double.
2. Если один операнд long double, то второй преобразуется к этому же типу.
3. Если один операнд double, то второй также преобразуется к типу double.
4. Любые операнды типа char и short преобразуются к типу int.
5. Любые операнды unsigned char или unsigned short преобразуются к
типу unsigned int.
6. Если один операнд типа unsigned long, то второй преобразуется
к типу unsigned long.
7. Если один операнд типа long, то второй преобразуется к типу long.
8. Если один операнд типа unsigned int, то второй операнд преобразуется
к этому же типу.
Таким образом, можно отметить, что при вычислении выражений операнды преобразуются к типу того операнда, который имеет наибольший размер.
Пример:
double ft, sd;
unsigned char ch;
unsigned long in;
int i;
....
sd=ft*(i+ch/in);
При выполнении оператора присваивания правила преобразования будут использоваться следующим образом. Операнд ch преобразуется к unsigned int (правило 5). Затем он преобразуется к типу unsigned long (правило 6). По этому же правилу i преобразуется к unsigned long и результат операции, заключенной в круглые скобки будет иметь тип unsigned long. Затем он преобразуется к типу double (правило 3) и результат всего выражения будет иметь тип double.
Задачи.
9. Запишите инструкцию, которая присваивает переменной х значение -1,5.
10. Запишите инструкцию, которая присваивает переменной summa нулевое значение.
12. Запишите инструкцию, которая уменьшает на два значение переменной counter.
13. Запишите инструкцию вычисления среднего арифметического переменных х1 и х2.
14. Запишите инструкцию, которая увеличивает значение переменной X на величину, находящуюся в переменной dx.
15. Запишите в виде инструкции присваивания формулу пересчета веса из фунтов в килограммы (один фунт — это 405,9 грамма).
17. Запишите в виде инструкции присваивания формулу пересчета расстояния из километров в версты (одна верста — это 1066,8 м).
18. Запишите в виде инструкции присваивания формулу вычисления площади прямоугольника.
19. Запишите в виде инструкции присваивания формулу вычисления площади прямоугольного треугольника по двум катетам.
20. Запишите в виде инструкции присваивания формулу вычисления площади трапеции.
21. Запишите в виде инструкции присваивания формулу вычисления площади круга.
11, Запишите в виде инструкции присваивания формулы вычисления площади поверхности и объема цилиндра.
23. Запишите в виде инструкции присваивания формулу вычисления объема параллелепипеда.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |


