Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора по информатике).doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
700.93 Кб
Скачать

44. Бинарные логические операции. Операции сдвига.

а) &&,|| И, ИЛИ.

Логические бинарные операции объединяют выражения сравнения со значениями истина (!=0) и ложь (==0). Результат операций приведён в следующей таблице

Первый операнд

Второй операнд

&&

||

Истина

истина

1

1

Истина

ложь

0

1

Ложь

истина

0

1

Ложь

ложь

0

0

б)Эти операции определены только для целочисленных операндов.

<< Операция левого сдвига.

Операндами могут быть выражения интегрального типа. Значением выражения является битовое представление левого операнда, сдвинутое влево на количество разрядов, равное значению правого операнда. При левом сдвиге на i разрядов первые i разрядов левого операнда теряются, последние i разрядов левого операнда заполняются нулями.

>> Операция правого сдвига.

Операндами могут быть выражения интегрального типа. Значением выражения является битовое представление левого операнда, сдвинутое вправо на количество разрядов, равное значению правого целочисленного операнда. При правом сдвиге на i разрядов первые i разрядов левого операнда заполняются нулями, если левый операнд имеет беззнаковый тип или имеет неотрицательное значение, в противном случае значение определяется реализацией. Последние i разрядов левого операнда теряются.

45. Бинарные логические операции. Применение, масок. Включение и отключение битов.

Биты которые нужно включить устанавливаем в маске в 1-цу, а остальные в 0. Применяем операцию побитового сложения(|).

Биты которые нужно выключить устанавливаем в маске в 0, а остальные в 1. Применяем операцию побитового умножения(&).

Биты которые нужно инвертировать устанавливаем в 1, а остальные в 0. Применяем операцию побитовое исключающее или(^).

49.Вложенные циклы.

Цикл – это управляющая конструкция предназначенная для организации многократного повторения оператора или блока.

Цикл с предусловием(while):

x=0;

While(условие){

Тело цикла

}

Цикл с постусловием (do….while):

do{

тело цикла

}while(условие);

Отличие while от do….while:

Т.к. условие в цикле while() происходит в начале он может не выполниться не разу.

А в цикле do….while() условие проверяется в конце и цикл выполняется гарантировано хотя бы один раз.

Цикл со счётчиком for():

For(инициализация; условие; приращение)

Тело цикла

Особенности:

  1. Один раз в начале выполнения цикла выполняется секция инициализации.

  2. Проверка условия выполняется каждой операцией цикла.

  3. После выполнения каждой итерации цикла перед проверкой условия выполняется секция приращения упровляющей переменной.

46. Операторы цикла while … Операторы break, continue.

Цикл for выполняет последовательность действий определенное количество раз. В том случае, когда неизвестно, сколько раз понадобится выполнить эту последовательность действий используется цикл while (цикл с предусловием).

Ниже представлен листинг программы, производящей перевод километров в мили и выводящей результат в виде таблицы.

Листинг 3.2

#include <stdio.h>

#define SCALE 0.6214

int main(void){

double kilometres, miles;

printf("Таблица перевода километров в мили\n");

printf("Километры Мили\n");

printf("----------------------\n");

kilometres=1.0;

while (kilometres<=20){

miles=SCALE*kilometres;

printf("%7.1f %7.2f\n", kilometres, miles);

kilometres+=1.0;

}

return 0;

}

С помощью директивы препроцессора define вводится множитель для перевода SCALE. Сначала печатается шапка таблицы, а затем, в цикле while – и сама таблица. Цикл с предусловием напоминает цикл for. Он содержит условие продолжения цикла, но не содержит ни инициализирующих, ни инкрементирующих выражений. До тех пор, пока выполняется условие выполнения цикла (выражение в скобках справа от слова while), исполнение цикла продолжается. В данной программе цикл будет выполняться до тех пор, пока переменная kilometres будет меньше или равна 20.

Несмотря на отсутствие инициализирующего значения, нужно инициализировать переменную цикла до начала исполнения тела цикла. Тело цикла должно содержать оператор, изменяющий значение переменной цикла, иначе цикл будет бесконечным!!! Таким оператором является kilometres+=1.0; В языке С имеются дополнительные операции присваивания: *=, /=, +=, -=, %=. В записи каждой такой операции имя переменной стоит слева от знака, а выражение – справа. Переменной присваивается новое значение, равное ее старому значению, скорректированному на величину выражения, стоящего справа. Результат зависит от используемой операции, например:

alpha+=20

То же самое, что и alpha=alpha+20

betta-=2

То же самое, что и betta=betta-2

gamma*=3

То же самое, что и gamma=gamma*3

thetta/=3.67

То же самое, что и thetta=thetta/3.67

unique%=4

То же самое, что и unique=unique%4

В примерах таблицы использовались простые числа, но можно использовать и более сложные выражения:

y*=4*s+12*x

то же самое, что и

y=y*(4*s+12*x)

Дополнительные операции присваивания обладают таким же низким приоритетом, что и операция =, т. е. меньшим, чем * или –.

Этими формами пользоваться необязательно. Однако они компактнее и более наглядны.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]