- •Тема 1. Консольный проект и интерфейс vs 1
- •Тема 2. Организация стандартного ввода и вывода в языке Си 6
- •Тема 4. Операции над значениями простых типов данных 15
- •Тема 1. Консольный проект и интерфейс vs
- •Тема 2. Организация стандартного ввода и вывода в языке Си
- •Тема 4. Операции над значениями простых типов данных
Тема 4. Операции над значениями простых типов данных
Задание 1. Операции над значениями целого типа
Включите в функцию main операторы, обеспечивающие выполнение следующих заданий:
Определите две переменные а и b целого типа, например, типа int.
Введите значения в две переменные целого типа, используя объект cin. Выведите запрос на ввод данных.
Выведите результаты арифметических операций (+, -, /, %, *) для целых чисел, используя объект cout.
Проверьте правильность операций.
Введите в переменную а значение. Выведите результат выражения а/2, а также а/2.0. Одинаков ли результат.
Сохраните программу.
Выполните компиляцию.
Выполните программу, если компиляция прошла успешно.
Задание 2. Операции над значениями вещественного типа типа
Включите в функцию main операторы, обеспечивающие выполнение следующих заданий:
Определите две переменные с и d вещественного типа, например, типа float и double.
Введите значения в две переменные целого типа, используя объект cin.
Вывод результатов арифметических операций (+, -, /, *) для вещественных чисел, используя объект cout.
Выведите результат операций: вещественное значение поделить на целое число.
Сохраните программу.
Выполните компиляцию.
Выполните программу, если компиляция прошла успешно.
Задание 3. Поразрядные операции над значениями целого беззнакового типа
Включите в функцию main операторы, обеспечивающие выполнение следующих заданий:
Определите две переменные ua и ub целого типа, например, типа unsigned char и инициализируйте их значениями 255 и 10.
Пример инициализации переменных
int x=12, y=15;
Введите значения в две переменные целого типа, используя объект cin.
Вывод результатов поразрядных операций (<<, >>, ~, !, &, |), используя объект cout.
Выполнить компиляцию и выполнить программу, если компиляция прошла успешно.
Сохраните программу.
Выполните компиляцию и выполните программу, если компиляция прошла успешно.
Задание 4. Операции над значениями символьного типа
Примечание. Таблица операций и их приоритетность в конце этого документа
Сложение значения символьной переменной с целой константой, сравнение значений и вывод кода символа.
Определите переменную символьного типа: char ch=’A’;
Выведите значение переменной ch.
Выведите код значения переменной ch. Для этого подготовьте операторы
cout<<”Код символа =”<<int(ch)<<endl;
printf(“Код символа = %d\n”, ch);
Примечание. Операция приведения типа int(ch) – значение ch преобразуется в формат целого, т.е. выводится число, хранящееся в переменной – код символа.
Вывести символ, следующий в таблице кодов символов за символом переменной. Для этого подготовьте оператор: cout<<ch+1<<endl;
Сохраните программу.
Выполните компиляцию.
Выполните программу, если компиляция прошла успешно.
Таблица операций и их приоритетность |
||||
Приоритет |
Знак операции |
Смысл операции |
Применение |
Направление выполнения |
1 |
() |
Скобки |
В выражении (x+y)/2 |
Слева направо |
. |
Точка |
В имени a.x |
||
[] |
Кв.скобки |
Для индексации элементов массива a[I] |
||
-> |
Указатель |
Обращение к полю структуры через указатель l->next |
||
2 Унарные |
* |
Косвенная адресация |
Для определения указателя и разыменование указателя int *ptr; |
Справа налево |
& |
Получение адреса |
int x=5; ptr=&x; |
||
! |
НЕ логическое |
(a!=b) |
||
~ |
(инверсия) Дополнение до 1 для поразрядных операций |
unsigned char A=0xE; ~ A = 0001 |
||
++ |
инкримент |
.i++; ++I; |
||
-- |
декримент |
.i--; --I; |
||
+ |
Знак числа |
+5; +a |
||
- |
Знак числа |
-5.12; -b |
||
(тип) имя переменной |
Приведение типа переменной |
int x; long l; l=(long) x; или .l=long(x); |
||
Sizeof(тип) Sizeof(перем.)
|
Размер ячейки памяти |
sizeof(int) |
||
3 мультипликативные |
* / % |
Умножить Деление Остаток при делении целого на целое |
2*3; 5/2=2; 5.2/2=2.6; 1/2=0 5%2=1 |
Слева направо |
4 аддитивные |
+ - |
Сложить Вычесть |
2+3 2-3 |
Слева направо |
5 поразрядные |
<<
>> |
Сдвиг влево двоичного кода Сдвиг вправо |
int x=7; x=x<<2; // x=111<<2=100 X=x>>1; 100>>1=010 |
Слева направо |
6 отношения |
<, >,>=, <=,
|
|
A<=B |
Слева направо |
7 сравнения |
= = != |
Равно НЕ равно |
A= =B; A!=B |
Слева направо |
8
|
& |
Поразрядное И |
111 & 100 =100 |
Слева направо |
9 |
| |
Поразрядное ИЛИ |
111 | 100 =111 |
Слева направо |
10 |
^ |
Исключающее ИЛИ для поразрядных операций |
.unsigned int x=0xF, a=1,A; A=x^a; 1111 ^ 0001=1110 |
Слева направо |
11 |
&& |
Логическое И |
(a>0 && a<1) |
Слева направо |
12 |
| | |
Логическое ИЛИ |
(a<0 | | a>1) |
Слева направо |
13 |
? : |
Условное выражение |
Max = (10>=12)? 10 : 12; т.е. max = 12 |
Слева направо |
14 |
Операции присваивания: =; *=; +=; и т.д. |
|
A=2; a*=2; b=c=a; |
Слева направо |
15 |
, |
Запятая. Последовательное вполнение действий. Результат операции – результат самого левого выражения |
C=A=2,b=7; //c=7 |
Слева направо |
