Общий вид записи
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