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

1.4.1 Условные конструкции. Пример условных конструкций (пример 4)

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

if( условие )

{

блок операторов;

}

Если условие удовлетворено, то "блок операторов" в теле if выполняется.

Если условие не удовлетворяется, то "блок операторов"в теле if не выполняется.

if( условие )

{

блок операторов 1;

}

else

{

блок операторов 2;

}

Если условие выполняется, то выполняется "блок операторов 1".

Если условие не удовлетворено, то выполняется "блок операторов 2".

Условия в операторах if могут быть образованы с помощью операций равенства и отношений. В примере несколько операторов if сравнивают два вводимых пользователем числа. Если в каком-либо из этих операторов условие удовлетворяется (равно true) – выполняется связанный с данным if оператор вывода.

Если внутри условия только один оператор, допустимо не использовать фигурные скобки. Если операторов 2 и более – использование фигурных скобок обязательно.

/////////////////////////////////////////////////////////////////////////////

// Прикладное программирование

// Пример 4. Пример условных конструкций

//

// Кафедра Прикладной и компьютерной оптики, http://aco.ifmo.ru

// СПб НИУ ИТМО

/////////////////////////////////////////////////////////////////////////////

// подключение библиотеки ввод-вывода

#include <iostream>

// подключение стандартного пространства имен для использования библиотек

using namespace std;

/////////////////////////////////////////////////////////////////////////////

// функция main начинает исполнение программы

void main()

{

// объявление переменных

int x,y;

cout<<"Enter two integers to compare: "; // запросить ввод

cin>>x>>y; // прочитать два введенных числа

if(x == y) // число x равно числу y ?

cout<<x<<" == "<<y<<endl;

if(x != y) // число x не равно числу y?

cout<<x<<" != "<<y<<endl;

if(x < y) // число x меньше числа y ?

cout<<x<<" < "<<y<<endl;

if(x > y) // число x больше числа y ?

cout<<x<<" > "<<y<<endl;

if(x <= y) // число x меньше либо равно числу y ?

cout<<x<<" <= "<<y<<endl;

if(x >= y) // число x больше либо равно числу y ?

cout<<x<<" >= "<<y<<endl;

}

/////////////////////////////////////////////////////////////////////////////

1.4.2 Логические выражения. Логические операции и, или, не (пример 5)

Выражение, находящееся внутри круглых скобок оператора if – логическое выражение. Логическое выражение может принимать два значения – true (истинно) или false (ложно). Рассмотрим еще один пример, который определяет, попала ли точка с координатами x, y в прямоугольник:

/////////////////////////////////////////////////////////////////////////////

// Прикладное программирование

// Пример 5. Пример определения попадания точки в прямоугольник

//

// Кафедра Прикладной и компьютерной оптики, http://aco.ifmo.ru

// СПб НИУ ИТМО

/////////////////////////////////////////////////////////////////////////////

// подключение библиотеки ввод-вывода

#include <iostream>

// подключение стандартного пространства имен для использования библиотек

using namespace std;

/////////////////////////////////////////////////////////////////////////////

// функция main начинает исполнение программы

void main()

{

// объявление переменных

double x,y;

cout<<"Enter point coordinate (x,y): "; // запросить ввод

cin>>x>>y; // прочитать два введенных числа

// первый вариант решения

// если точка находится внутри прямоугольника

if(x<2 && x>-2 && y>-1 && y<1)

cout<<"Point inside"<<endl;

else

cout<<"Point outside"<<endl;

// второй вариант решения

// если точка находится внутри прямоугольника

bool x_inside=x<2 && x>-2;

bool y_inside=y<1 && y>-1;

if(x_inside && y_inside)

cout<<"Point inside"<<endl;

else

cout<<"Point outside"<<endl;

}

/////////////////////////////////////////////////////////////////////////////

В C++ предусмотрены логические операции, которые используются для образования более сложных условий путем комбинирования простых. Логическими операциями являются:

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

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

  • ! - логическое НЕ

В данном примере, для определения попадания точки внутрь прямоугольника нам надо проверить условие, которое математически можно записать как -1 < x < 1. При записи этого выражения на С++ нам придется воспользоваться операцией && (логического И) для объединения двух условий:x<2&&x>-2. Это условие равно true в том и только том случае, когда оба простых условия равны true. Логические операции И, ИЛИ и НЕ имеют более высокий приоритет чем операции сравнения, поэтому скобки не являются необходимыми. Однако, для удобства чтения можно добавить круглые скобки:

(x<2)&&(x>-2).

Если бы нам надо было определить, что точка НЕ попадает внутрь прямоугольника, нам потребовалась бы использовать оператор ИЛИ (координата x либо меньше -2, либо больше 2):

(x >2)||(x<-2)

Либо можно было бы воспользоваться оператором НЕ (координата x НЕ лежит внутри прямоугольника):

!( (x <2)&&(x >-2) )

Таблица показывает все четыре возможных комбинации значений false и true для операций И и ИЛИ с двумя выражениями

выражение 1

выражение 2

(выражение 1) && (выражение 2)

(выражение 1) || (выражение 2)

true

true

true

true

true

false

false

true

false

true

false

true

false

false

false

false

При написании выражений, содержащих много операций, справляйтесь с таблицей старшинства и ассоциативности (приложение ?). Если вы не уверены относительно порядка оценки в сложном выражении, используйте для задания нужного порядка круглые скобки, как в алгебраических выражениях.