- •Лабораторная работа № 2 Программирование алгоритмов линейной, ветвящейся и циклической структуры
- •Теоретические положения
- •Операторы присваивания и отношения
- •Условный оператор
- •Оператор переключатель
- •Оператор for
- •Оператор while
- •Оператор do…while
- •1. Задания по теме «Алгоритмы линейной структуры»
- •2. Задания по теме: «Ветвящиеся алгоритмы»
- •3. Задания по теме: "Циклические алгоритмы"
- •Варианты заданий
Операторы присваивания и отношения
Для работы с логическими переменными в языке программирования С определены логические операции (! – логическое НЕ, && – логическое И , || – логическое ИЛИ) и операции отношения.
Результатом логической операции является либо 0 (ЛОЖЬ), либо 1 (вообще говоря любое значение не равное 0) (ИСТИНА). Так как в языке программирования С нет логических переменных, то тип результата – int.
Таблица истинности для логических операций с операндами А и В.
А |
В |
!A |
!B |
A&&B |
A || B |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
Операции отношения сравнивают первый операнд со вторым и вырабатывают значение 1 (ИСТИНА) или 0 (ЛОЖЬ). Результат имеет тип int.
Различают следующие операторы отношения:
< |
Первый операнд меньше, чем второй операнд |
> |
Первый операнд больше, чем второй операнд |
<= |
Первый операнд меньше или равен второму операнду |
>= |
Первый операнд больше или равен второму операнду |
= = |
Первый операнд равен второму операнду |
! = |
Первый операнд не равен второму операнду |
Операнды операций отношения (как и операнды логических операций) могут иметь целый тип, тип чисел с плавающей точкой, либо быть указателями. Типы первого и второго операндов могут различаться. Над ними выполняются преобразования по умолчанию.(Над операндами логических операций преобразования по умолчанию не производятся).
В языке программирования Си используют также поразрядные (побитовые) операции, выполняющие над разрядами своих операндов логические функции И (&), включающее ИЛИ ( | ) и исключающее ИЛИ (^ ). Операнды поразрядных операций должны иметь целый тип, но бит знака, если он есть, также участвует в операции. Над операндами выполняются преобразования по умолчанию. Тип результата определяется типом операндов после преобразования. Таблица значений для поразрядных операций
X |
Y |
X | Y |
X & Y |
X ^ Y |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
В языке Си имеются следующие операции присваивания:
= |
Простое присваивание |
* = |
Умножение с присваиванием |
/ = |
Деление с присваиванием |
% = |
Остаток от деления с присваиванием |
+ = |
Сложение с присваиванием |
- = |
Вычитание с присваиванием |
<< = |
Сдвиг влево с присваиванием |
>> = |
Сдвиг вправо с присваиванием |
& = |
Поразрядное И с присваиванием |
| = |
Поразрядное включающее ИЛИ с присваиванием |
^ = |
Поразрядное исключающее ИЛИ с присваиванием |
При присваивании тип правого операнда преобразуется к типу левого операнда. В языке С значение, выработанное при операции присваивания, может быть использовано далее в вычислении выражения.
Операции инкремента (++) и декремента (--)
Эти операции являются унарными операциями присваивания. Они соответственно увеличивают и уменьшают значение операнда на единицу. Они могут записываться как перед своим операндом (префиксная форма записи), так и после него (постфиксная форма). В первом случае операнд сначала инкрементируется или декрементируется, а затем его новое значение участвует в дальнейшем вычислении выражения, содержащего данную операцию. Во втором случае операнд инкрементируется (декрементируется) после того, как в вычислении выражения участвует его старое значение.
