Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
програмирование..doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
612.86 Кб
Скачать

4.1 Условный оператор

  1. Синтаксис:

if (<выражение>)

<оператор 1>;

else

<оператор 2>;

Здесь <выражение > - это логическое или арифметическое выражение, <оператор 1> и <оператор 2> - любые операторы С++, в том числе блоки или составные операторы..

  1. Семантика:

Вначале вычисляется значение <выражения>. Если оно “истина” (выражение # 0 ), то выполняется <оператор 1>, в противном случае <оператор 2>.

Пример.

if (x<0)

{

x = -x;

f(x+2);

}

else

{

int i = 2;

x *= i;

f(x);

}

Все объекты, определенные в блоке, локализованы в нем.

Например:

if (j > 0)

{

int i;

i = 2*j;

}

else

i = - j; // ошибка: переменная i видима внутри блока

Пример. Вычислить частное от деления двух целых чисел.

#include <iostream.h>

void main()

{

int a,b;

cout << “ Введите числитель: “ ;

cin >> a;

cout << “ Введите знаменатель: “ ;

cin >> b;

if(b)

cout << “ Результат: “ << a / b << ‘\n’;

else

cout << “ на нуль делить нельзя. \n “ ;

}

Допустима сокращенная форма условного оператора, в которой отсутствует ветвь else.

Например:

if (a < 0 ) a = -a;

В этом случае при невыполнении условия никакие действия не выполняются.

Следует отметить, что <оператор 1> и <оператор 2> могут быть условными без ветви else. Синтаксис языка предполагает, что при вложенных условных операторах каждая ветвь else соответствует ближайшему к нему оператору if.

Пример: Найти максимальное значение из трех вещественных чисел: x, y, z.

…..

if ( x < y)

if ( y < z)

max = z;

else

max=y;

else

if(x<z)

max=z;

else

max=x;

….

4.2. Переключатели

Этот оператор позволяет делать выбор одной из множества альтернатив.

  1. Синтаксис.

switch (<выражение>)

{ case <константа 1> : <оператор 1>;

case <константа 2> : <оператор 2>;

……..

case <константа n> : <оператор n>;

default : <оператор>;

}

Здесь <выражение> и константы должны быть одного символьного или целого типа,

<оператор i> - любой оператор С++.

  1. Семантика. Вначале вычисляется значение <выражения>. Затем выполняется поиск оператора, которому предшествует константа, равная значению <выражения>. Если такой оператор найден, он выполняется, в противном случае осуществляется переход к оператору с меткой default. Если эта метка отсутствует, то не выполняется ни один из операторов. Если в конструкции выбора (альтернативе) не предусмотрен выход из переключателя с помощью оператора break, то в переключателе последовательно выполняются все операторы, начиная с той метки, на которую передано управление до тех пор, пока не встретится break или конец оператора switch В переключателе каждому оператору может предшествовать несколько констант выбора, которые отделяются друг от друга символом “:”.

Пример. Вывести на экран название нечетных цифр, которые не меньше заданной. Если задана цифра 2, то вывести 2,5,7,9 и т.д.

#include <iostream.h>

void main()

{ int cifra;

cout << “Введите цифру : “;

cin >> cifra;

cout << ‘\n’;

switch (cifra)

{ case 0: case 1: cout << “один, ”;

case 2: case 3: cout << “три, ”;

case 4: case 5: cout << “пять, ”;

case 6: case 7: cout << “семь, ”;

case 8: case 9: cout << “девять. ”;

break;

default : cout << “ошибка !”;

}

}

Результаты:

Введите цифру : 4

пять, семь, девять.

Введите цифру : а

ошибка !

Если поместить операторы break после вывода каждой цифры, то программа будет выводить на экран название только одной нечетной цифры.

Вопросы

1.Значение R после выполнения операции логического присваивания

R = ! (A || B || (X > 2) && (Y < 0))

при A = false, B = false, X = 3, Y = 2 будет равно

1. –1;

2. false;

3. true;

4. 0;

5. 1.

2. Значения переменных p и d после выполнения фрагмента кода

int k=47,d; bool p;

switch(k%9)

{case 5:{d=k;p=true;break;}

case 0:case 1:case 2:{d=2;p=false;break;}

case 8:{d=1;p=true;break;}

}

равны

1. p = true, d = 1;

2. p = false, d = 2;

3. p = false, d = 3;

4. p = true, d = 47;

5. p = true, d = 2.

3. Фрагмент программы

S = A; A = B; B = S;

выполняет

1. обмен значений переменных A, B;

2. присваивание переменным А, B значения S;

3. замена значения переменной A значением переменной B;

4. во фрагменте не выполняется никаких действий;

5. замена значения переменной B значением переменной A.

Лекция 7

Операторы цикла

В языке С++ определены три оператора цикла:

- цикл с предусловием;

- цикл с постусловием;

- итерационный цикл.