Материал: LR_4_Izuchenie_uslovnykh_konstruktsiy

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

У тверждаю

Ректор университета

_______________ О.Н. Федонин

« ___ » _____________2017 г.

Алгоритмические языки изучение условных конструкций

Методические указания

к выполнению лабораторной работы

Брянск 2017

У ДК 004.432.2

Алгоритмические языки. Изучение условных конструкций [Электронный ресурс]: методические указания к выполнению лабораторной работы. – Брянск: БГТУ, 2017. –12с.

Разработали:

А.П. Горлов, канд.техн.наук., доц.

М.Л. Гулак, канд.техн.наук., доц.

Рекомендовано кафедрой «Системы информационной безопасности» БГТУ (протокол № 11 от 28.08.2017).

Научный редактор М.Ю. Рытов

Компьютерный набор А.П. Горлов

Методические указания публикуются в авторской редакции

Подписано в печать 28.08.17 г. Формат 60х84 1/16.

Усл. печ.л. 0,70 Уч.-изд.л. 0,70

Брянский государственный технический университет

Кафедра «Системы информационной безопасности», 58-83-54

241035, Брянск, бульвар 50 лет Октября, 7.

1. ЦЕЛЬ РАБОТЫ

Цель работы – изучить особенности построения разветвляющихся вычислительных процессов с использованием условных операторов if и switch и конструкций if{..}else if{..}else{} и switch(){case:..;break;.. default:;}.

Продолжительность работы: 4 ч.

2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

    1. Условные операторы if и switch

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

Оператор if. Конструкция if{..}else if{..}else{}

В самом простом случае синтаксис данного оператора следующий:

if (логическое выражение)

<оператор>

Если значение параметра «логическое выражение» равно «истинно» (или true), выполняется оператор, иначе («логическое выражение» равно «ложь» (или false) он пропускается программой. Следует отметить, что «логическое выражение» является условным выражением, в котором выполняется проверка некоторого условия. В таблице 1 представлены варианты простых логических выражений оператора if.

Таблица 1.

Простые логические выражения оператора if.

Выражение

Значение

if(a < b)

Истинно, если переменная a меньше переменной b и ложно в противном случае

if(a > b)

Истинно, если переменная a больше переменной b и ложно в противном случае

if(a == b)

Истинно, если переменная a равна переменной b и ложно в противном случае

if(a <= b)

Истинно, если переменная a меньше либо равна переменной b и ложно в противном случае

if(a >= b)

Истинно, если переменная a больше либо равна переменной b и ложно в противном случае

if(a != b)

Истинно, если переменная a не равна переменной b и ложно в противном случае

if(a)

Истинно, если переменная a не равна нулю, и ложно в противном случае

Ниже приведен пример использования оператора ветвления if в простом случае. Следующая программа позволяет определять знак введенной переменной.

Листинг. Программа определения знака введенного числа.

#include <iostream>

using namespace std;

int main()

{

setlocale (0, “”);

float x;

cout << “ Введите число”;

cin >> x;

if(x < 0)

cout<< “Введенное число является отрицательным.\n” << x;

if(x >= 0)

cout<< “Введенное число является неотрицательным.\n”<< x;

return 0;

}

В приведенном выше тексте программы два условных оператора if можно заменить одним, используя конструкцию:

If (логическое выражение)

<оператор1>

else

<оператор2>

которая интерпретируется следующим образом: если «логическое выражение» «истинно», то выполняется «оператор1», иначе выполняется «оператор2». В случаях, когда при выполнении какого-либо условия необходимо записать более одного оператора, необходимо использовать фигурные скобки, т.е. использовать конструкцию вида:

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

{

<оператор1.1>

<оператор1.n>

}

else

{

<оператор2.1>

<оператор2.k>

}

Формально после ключевого слова else можно поставить еще один оператор условия if, в результате получим конструкцию условных переходов показанную ниже:

if(логическое выражение 1)

{

<оператор1.1>

<оператор1.n>

}

else if(логическое выражение 2)

{

<оператор2.1>

<оператор2.k>

}

else

{

<оператор3.1>

<оператор3.l>

} // m,k,l – неотрицательные целые. Характеризуют число операторов.

Оператор if позволяет реализовывать более сложные условные переходы, используя логические операции языка С++:

&& - логическое И

|| - логическое ИЛИ

! – логическое НЕТ

На основе этих трех логических операций можно сформировать более сложные условия. Подобно операциям умножения и сложения в математике, логические операции И ИЛИ НЕТ, также имеют свои приоритеты. Самый высокий приоритет имеет операция НЕТ, т.е. такая операция выполняется в первую очередь. Более низкий приоритет у операции И, и наконец самый малый приоритет у операции ИЛИ.

Если имеются три логических выражения ЛВ1, ЛВ2, ЛВ3, ЛВ4 то они могут составлять логические конструкции, представленные в таблице 2.

Таблица 2

Виды логических выражений

if(ЛВ1 && ЛВ2)

if(ЛВ1 && ЛВ2 || ЛВ3)

if(ЛВ1 || ЛВ2)

if(ЛВ1 && (ЛВ2 || ЛВ3))

if(ЛВ1 && ЛВ2 && ЛВ3)

if((ЛВ1||ЛВ4) && (ЛВ2 || ЛВ3))

if(ЛВ1 || ЛВ2 && ЛВ3)

if((ЛВ1&&ЛВ4) || (ЛВ2&& ЛВ3))

    1. Оператор switch. Конструкция switch(){case:..;break;.. Default:;}

Условная операция if помогает в написании программ, в которых необходимо производить выбор между небольшим числом возможных вариантов. При условии необходимости осуществления в программе выбора одного из множества вариантов необходимо использовать следующую конструкцию:

switch(переменная)

{

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

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

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

}

Данный оператор последовательно проверяет на равенство переменной константам, стоящим после ключевого слова case. Если ни одна из констант не равна значению переменно, то выполняются операторы, находящиеся после слова default. Оператор switch имеет следующую особенность: если значение переменной равно значению константы1 и выполняются операторы, стоящие после первого ключевого слова case. После этого выполнение программы продолжится проверкой переменной на равенство константы2, что часто приводит к неоправданным затратам ресурсов ЭВМ. Во избежание такой ситуации следует использовать оператор break для перехода программы к следующему оператору после switch.

В листинге ниже представлен пример программирования условного оператора switch.

Листинг. Пример использования оператора switch.

#include <iostream>

using namespace std;

int main()

{

setlocale (0, “”);

int x;

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

cin>>x;

switch(x)

{

case 1 : cout<<“Введено число 1\n”; break;

case 2 : cout<<“Введено число 2\n”; break;

default : cout<<“Введено другое число\n”;

}

char ch;

cout<< “Введите символ:”;

cin>>ch;

switch(ch)

{

case ‘a’ : cout<<“Введен символ а\n”; break;

case ‘b’ : cout<<“Введен символ b\n”; break;

default : cout<<“Введен другой символ\n”;

}

return 0;

}

Оператор switch может производить выбор только на основании равенства своего аргумента одному из перечисленных значений case, т.е. проверка выражений типа x<0 в данном случае невозможна.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ.

  1. Ознакомится с теоретической частью лабораторной работы.

  2. Ознакомится с заданиями согласно варианту.

  3. Разработать блок-схему линейного алгоритма решения задачи.

  4. Реализовать разработанный алгоритм на языке программирования C++.

  5. Протестировать программу.

СОДЕРЖАНИЕ ОТЧЕТА

    1. Титульный лист с названием лабораторной работы, номером своего варианта, фамилией студента(ов) и группы.

    2. На первом после титульного листа указать :

- Название работы.

- Цель.

- Задание по варианту.

    1. Текст программы.

    2. Результаты работы программы.

    3. Выводы о полученных результатах работы программы.

КОНТРОЛЬНЫЕ ВОПРОСЫ

    1. Запишите условный оператор if для определения знака переменной val.

    2. В каких случаях следует использовать оператор switch?

    3. Как записывается логическое равенство в операторе if?

    4. Приведите обозначение логического знака «не равно».

    5. Какими символами обозначаются логические операции И и ИЛИ в условном операторе if?

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

  1. Липпман С. Б. Основы программирования на C++: Пер. с англ. — М.:Вильямс, 2002. — 256 с.

  2. Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 1104 с.

  3. Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 1104 с.

  4. Страуструп Б. Дизайн и эволюция языка C++. Объектно-ориентированный язык программирования: Пер. с англ. — М.: ДМК пресс, Питер, 2006. — 448 с.

  5. Эккель Б. Философия C++. Введение в стандартный C++: Пер. с англ. — 2-е изд. — СПб.: Питер, 2004. — 572 с.

  6. Эккель Б., Эллисон Ч. Философия C++. Практическое программирование: Пер. с англ. — СПб.: Питер, 2004. — 608 с.

Приложение