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

4.2Примеры составления алгоритмов и программ с использованием условного оператора If

П ример 4.1. Определить большее из двух целых чисел A и B.

Блок-схема алгоритма решения задачи:

#include<iostream.h>

void main()

{

int Max,A,B;

cout<<”\nВведите значения A и B \n”;

cin>>A>>B;

if(A>=B) Max=A;

else Max=B;

cout<<”\nЗначение Max= ”<<Max;

}

Пример 4.2. Определить принадлежит ли вводимое с клавиатуры значение A интервалу [0..5].

Блок-схема алгоритма решения этой задачи аналогична примеру 4.1.

#include<iostream.h>

void main()

{

int Max;

float A;

cout<<”\nВведите значения A и B \n”;

cin>>A;;

if((A>=0)&&(A<=5))

cout>>”\nЗначение ”<<A<<”принадлежит отрезку [0..5]”;

else

cout>>”\nЗначение ”<<A<<”не принадлежит отрезку [0..5]”;

}

Пример 4.3. Значения переменных X, Y, Z вводятся с клавиатуры. Если X Y Z, то все значения возвести в квадрат, при X >Y >Z каждое из них разделить на 2, в противном случае изменить знаки чисел. Изменённые значения переменных вывести на экран.

Обратите внимание, что при решении данной задачи в каждой ветви условного оператора необходимо использовать составной оператор.

Блок-схема алгоритма решения задачи:

#include<iostream.h>

void main()

{

int X,Y,Z;

cout<<”\nВведите значения X, Y и Z \n”;

cin>>X>>Y>>Z;

if((X<=Y)&&(Y<=Z)){ X*=X;Y*=Y;Z*=Z;}

else if ((X>Y)&&(Y>Z)) {X/=2; Y/=2; Z/=2;}

else {X=-X;Y=-Y;Z=-Z;}

cout<<”\nX= ”<<X<<”\tY=”<<Y<<”\tZ=”<<Z<<endl;

}

4.3Переключатель switch

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

switch (выражение ) оператор

Оператор в этом случае представляет собой тело переключателя, практически всегда является составным и имеет такой вид:

{ case константа-1 : операторы

case константа-2 : операторы

............................

default : операторы

}

Выполнение переключателя состоит в вычислении управляющего выражения и переходе к группе операторов, помеченных case-меткой, равной управляющему выражению, если такой case-метки нет, выполняются операторы по метке default. Пункт default может отсутствовать и тогда, если управляющему выражению не соответствуют ни одна case-метка, весь переключатель эквивалентен пустому оператору. Следует учитывать, что при выполнении переключателя происходит переход на оператор с выбранной case-меткой и дальше операторы выполняются в естественном порядке. Например, в переключателе

switch (count)

{ case 1 : x=1;

case 2 : x=2;

case 3 : x=3;

default : x=4;

}

если значение count равно 1, то после перехода на case 1 будут выполнены все операторы, в результате x станет равным 4. Чтобы разделить ветви переключателя, в конце каждой ветви нужно записать оператор break, не имеющий операндов. По этому оператору происходит выход из переключателя к следующему оператору программы:

switch (count)

{ case 1 : x = 1; break;

case 2 : x = 2; break;

case 3 : x = 3; break;

default : x = 4;

}

Теперь в зависимости от значения count будет выполняться только одна ветвь переключателя и x будет принимать одно из четырех предусмотренных значений.

Блок-схема алгоритма для представленного фрагмента выглядит так: