Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Вложенное ветвление (сложное)




Реализация сложного вложенного ветвления осуществляется при помощи синтаксических конструкций.

if (условие1) оператор1;

if (условие2) оператор2;

else оператор3;

Else оператор4;

В данное схеме есть классическое ветвление, у которого по внешней ветви при истинности условия есть еще внутреннее ветвление, т.е. дополнительные условия при истинности условия1.

Приведенная схема не является единственной. Более того, возможно множество комбинаций полных и сокращенных ветвлений внутри одного сложного разветвления. Например:

if (условие1) оператор1;

if (условие2) оператор2;

else оператор4;

Здесь при истинном условии1 есть дополнительный фильтр в виде сокращенного ветвления по условию2.

В следующей программе реализовано вычисление: является ли вычисленное Sin(x)>=0 одновременно равным Sin(x)<2.5. Значение х задано инициализатором.

......

double x=1.0; bool f; // х задано при описании

 

f = (Math.Sin(x) >= 0) && (Math.Sin(x) < 2.5); // логическое условие с && - логическим //умножением

Console.WriteLine(" Итак:");

if (f)

Console.WriteLine(" True x {0,5:f2} {1,7:f3} {2}", x, Math.Sin(x), f);

else

Console.WriteLine(" False x {0,5:f2} {1,7:f3} {2}", x, Math.Sin(x), f);

В результате выполнения логического умножения истинно значение выражения в случае, если обе части выражения имеют значение «истина». Программа включает классические варианты ветвления, имеющие ветви «да» и «нет». При вычислении синуса используются методы библиотеки Math. Обращение к методу класса в программе производится через имя класса: Math.Sin(x)

Следующая программа демонстрирует вычисление значения функции G=F(X,Y)

| true, если точка с координатами (X,Y) попадает в фигуру

G = <

| false, если точка с координатами (X,Y) не попадает в фигуру

Фигура - сектор круга радиусом R в диапазоне углов 270<= fi <=45

 

using System; //пространство имен

class Operator

{

public static void Main()

{const double R = 2.8; //Радиус

double x, y; //Координаты точки

bool g; //Значение функции

char rep; //Признак повторного выполнения

string str; //Строка для приема данных и вывода данных

Console.Clear(); // очистили экран

Console.Write("Введите X: "); // вывод строки на экран

str = Console.ReadLine(); //чтение строки с экрана

x = double.Parse(str); // конвертация значения из строки в вещественное число

Console.Write("Введите Y: ");

str = Console.ReadLine();

y = double.Parse(str);

 

if (x * x + y * y <= R * R) //в круге

if (x >= 0) //и справа от оси Y

if (y <= x) //и ниже прямой y = x

g = true; // в фигуре

else //и выше прямой y = x

g = false; // не в фигуре

else //и слева от оси Y

g = false; // вне фигуры

else //вне круга

g = false; //вне фигуры

 

str = string.Format("G({0:f3},{1:f3}) = {2}", x, y, g);

Console.WriteLine(str);

 

} //Конец определения метода

} //Конец объявления класса

 

В программе имеется вложенное ветвление. Внешнее ветвление позволяет определить, в пределах круга точка или нет? Если да, то определяем попадание точки в сектор круга. Таким образом, исключаются излишние проверки в случае, если точка вне круга. Обращаем ваше внимание: цвета в данном исходном коде полностью соответствуют среде программирования: синий – ключевые слова, зеленый – комментарии, голубой – имена классов, красный – форматы вывода.

Теперь рассмотрим программу, определяющую попадания точки в кольцо, образуемое двумя окружностями с радиусами r и R. Условия для попадания в кольцо для точки с координатами x и y можно записать так: (x2+y2>r2) И (x2+y2<R2)

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

 

double x, y;

double r = 1.0, R = 3.0;

Console.WriteLine(" Попадание точки в кольцо: ");

Console.WriteLine(" Введите координаты (x,y): ");

x = double.Parse(Console.ReadLine());

y = double.Parse(Console.ReadLine());

if (((x*x+y*y)>r*r) && ((x*x+y*y)<R*R))

Console.WriteLine("YES {0} {1}",x,y);

Else

Console.WriteLine(" NO {0} {1}",x,y);

 





Поделиться с друзьями:


Дата добавления: 2017-01-21; Мы поможем в написании ваших работ!; просмотров: 491 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наглость – это ругаться с преподавателем по поводу четверки, хотя перед экзаменом уверен, что не знаешь даже на два. © Неизвестно
==> читать все изречения...

2675 - | 2239 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.