Обмен значений переменных при помощи поразрядных операций

Обмен значений переменных с использованием дополнительной переменной

С= А; А= В; В= С

Обмен значений переменных без использования дополнительной переменной

А = А + В; В = A – B; А = А – В

Обмен значений переменных при помощи поразрядных операций

Поразрядное «исключающее или» (то же самое, что сложение по модулю 2), обладает замечательным свойством X ^ X = 0. Это свойство обычно используют в ассемблерных программах для быстрого обнуления регистров процессора. Эта операция ассоциативна и коммутативна (то есть выполняются сочетательный и переместительный законы).

Поэтому (Х ^ Y) ^ Y = Х ^ (Y ^ Y) = X ^ 0 = X.

Аналогично, (Y ^ X) ^ Y = (Х ^ Y) ^ Y = Х.

20. Структурированные операторы. Понятие составного оператора. Пример.

Структурированные операторы представляют собой конструкции, построенные по определенным правилам из других операторов. К структурированным операторам относятся:

— составной оператор;

— условный оператор;

— оператор выбора;

— операторы цикла (повтора);

— оператор доступа.

Составной оператор представляет собой группу из произвольного числа любых операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками { и }.

Формат составного оператора: { <Оператор1>; ...; <ОператорМ>;}


Пример составного оператора:

{

S:=0;

Cout<<”Ошибка”;

}

21. Структурированные операторы. Условный оператор. Формы условного оператора. Пример.

Условный оператор обеспечивает выполнение или невыполнение некоторых операторов в зависимости от соблюдения определенных условий. Условный оператор в общем случае предназначен для организации ветвления программы на два направления.

Формат составного оператора:

if (<Условие>) <Оператор1>; [else <Оператор2>;]

С помощью условного оператора можно реализовывать алгоритмы с разветвлением.

В общем случае условный оператор можно представить в виде схемы:

Условие представляет собой выражение, логического типа. Оператор работает следующим образом: если условие истинно (имеет значение true), то выполняется оператор1, в противном случае — оператор 2. Оба оператора могут быть составными.

Пример условных операторов:

if (х > 0) x=x+1;

else x=0;

if (q = 0) a=1;

22. Алгоритмы нахождения наибольшего (наименьшего) из трех чисел. Пример.

Найти наибольшее значение из трех заданных чисел.

#include <iostream.h>

int main ()

{

int a,b,c;

cout<<"Input 3 number-->";

cin>>a>>b>>c;

int max=a;

if (b>max) max=b;

if (c>max) max=c;

cout<<"Max="<<max<<endl;

return 0;}

Найти наибольшее значение из трех заданных чисел, неиспользуя условный оператор

#include <iostream.h>

#include <stdlib.h>

int main ()

{

int a,b,c;

cout<<"Input 3 number-->";

cin>>a>>b>>c;

int max=(a+b+abs(a-b))/2; //нашли max среди a и b

max=(max+c+abs(max-c))/2; //нашли max среди c и max

cout<<"Max="<<max<<endl;

return 0;

}

23. Алгоритм нахождения количества (суммы) чисел удовлетворяющих некоторому условию из трех заданных.

24. Алгоритм нахождения произведения чисел удовлетворяющих некоторому условию из трех заданных.

25. Структурированные операторы. Оператор выбора. Пример.

Оператор выбора является обобщением условного оператора и позволяет сделать выбор из произвольного числа имеющихся вариантов, т. е. организовать ветвление на произвольное число направлений.

Формат оператора выбора:

switch (<Выражение-селектор>)

{

case <константное выражение 1> : <операторы 1>;

case <константное выражение 2> : <операторы 2>;

case <константное выражение N> : <операторы N>;

[default: <операторы>;]

}

 


 

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

Оператор выбора выполняется следующим образом:

• вычисляется значение выражения селектора;

• производится последовательный просмотр вариантов на предмет совпадения значения селектора с константными выражениями;

• если для очередного варианта этот, поиск успешный, то выполняется оператор этого варианта, после чего выполняются все остальные ветви.

• если все проверки оказались безуспешными, то выполняется оператор стоящий после слова default (при его наличии).

26. Операторы передачи управления. Пример.

В С/С++ есть четыре оператора, изменяющих естественный порядок выполнения вычислений:

— оператор безусловного перехода goto;

— оператор выхода из цикла break;

— оператор перехода к следующей итерации цикла continue;

— оператор возврата из функции return.