Короткий условный оператор




Общий вид записи

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

где Р - любой оператор.

Работа оператора

Вычисляем (выполняем) условие. Если условие выполняется (TRUE), то выполняем оператор, который следует за круглой скобкой (Р). Если нет, то (Р)-оператор пропускается.

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

Общий вид записи

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

где Р1, Р2 - любые операторы или даже группы операторов.

Работа оператора

Вычисляется логическое выражение, и если оно имеет значе­ние TRUE(не ноль), то выполняется оператор Р1, стоящий после логического выражения. В противном случае (FALSE (ноль)) оператор P1 пропускается, а выполняется оператор Р2, стоящий после служебного слова else.

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ №2

ТЕМА: РАЗРАБОТКА И РЕАЛИЗАЦИЯ ПРОГРАММ С РАЗВЕТВЛЕННОЙ СТРУКТУРОЙ

Задание 2.1 Представить математическую запись фрагмента программы и вычислить значение переменной X после его выполнения. Обозначение: N - это номер варианта

t=n; x=0;

if (t<0) x=(t-1);

else x= t;

В данном случае рассматривается полный условный оператор IF. На блок-схеме в общем виде он представляется следующим образом

 

 

На C/C++ этот фрагмент блок-схемы записывается следующим образом:

 

If (условие) действие1;

else действие2;

Если условие истинно, то выполняется действие1, иначе (если условие ложно) выполняется действие2. Таким образом, блок-схема решаемого примера

 

 

Пусть N = 5. Тогда в соответствии с блок-схемой T=5, X=0.

Проверяем условие. T в данном случае больше 0, то есть условие T<0 ложно. Движемся по левой ветке. X=T, то есть X=5. Окончательный ответ после выполнения фрагмента программы X=5.

Пусть N = -2. Тогда в соответствии с блок-схемой T=-2, X=0. Проверяем условие. T в данном случае меньше 0, то есть условие T<0 истинно. Движемся по правой ветке. X=T-1, то есть X= -2-1=-3. Окончательный ответ после выполнения фрагмента программы X= -3.

Вывод: x

Рассмотрим еще один пример. В случае отсутствия действия, которое нужно выполнить в случае, когда условие ложно оператор if называется неполным и имеет вид

If (условие) действие;

Блок-схема такого варианта представлена ниже

 
 

 


Рассмотрим пример

t=n; x=3;

if (t>1 && t<3) x=t;

if (t<=1) x=1

Блок-схема этого примера

 

Пусть N=5, тогда T=5, X=3. Условие 1<T<3 не выполняется, движемся по левой ветке, приходим к условию T<=1. Это условие тоже не выполняется. Значит после выполнения фрагмента программы X=3.

Пусть N=-1, тогда Т=-1, X=-1. Условие 1<T<3 не выполняется, движемся по левой ветке, приходим к условию T<=1. Это условие выполняется. Значит, движемся по правой ветке и после выполнения фрагмента программы X=1.

 

 

Вывод:

X=

 

Пример программы:

#include <iostream>

#include <cmath>

using namespace std;

 

int main()

{

int x,n;

float t;

cout << "Vedite n=" << endl;

cin >>n;

t=n; x=3;

if (t>1 && t<3) x=t;

if (t<=1) x=1

 

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

return 0;

 

}

Задание 2.2. Написать программу, которая выводит на экран значение true, если точка А с координатами х, у принадлежит заштрихованной области, и false в противном случае.

 

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

Область находящаяся в первой четверти ограничена тремя линиями: x=0, y=0, x2+y2=22, при чем область находится выше y=0, включая саму линию, то есть y≥0; справа от x=0, включая саму линию, то есть x≥0, и внутри окружности x2+y2=22, то есть x2+y2≤22

Таким образом, логическое выражение для этой области x≥0 Ù y≥0 Ù x2+y2≤22.

Область находящаяся во второй четверти ограничена линиями: x=0, y=0, x=-2, y=-2, при чем область находится ниже y=0, то есть y≤0; слева от x=0, то есть x≤0, выше y=-2, то есть y≥-2; справа от x=-2, то есть x≥-2.

Таким образом, логическое выражение для второй области
x≥(-2) Ù x≤0 Ù y≥(-2) Ù y≤0.

На языке С/C++ окончательно логическое выражение будет иметь вид:

x>=0 && y>=0 && x*x+y*y<=4 || x>=(-2) && x<=0 && y>=(-2)&& y<=0

Схема алгоритма решения задачи представлена на рис. 2.1.

Рис. 2.1 Блок-схема решения задания 2.2

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

#include <iostream>

using namespace std;

int main(){

double x,y;

cout<<"Enter A(x,y):\n";

cin>>x>>y;

bool s1,s2;

s1=x>=0 && y>=0 && x*x+y*y<=4;

s2=x>=(-2) && x<=0 && y>=(-2)&& y<=0;

if (s1 || s2)

cout<<"true";

else cout<<"false";

return 0;

}

 

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

Enter A(x,y):

true



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: