КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Организация разветвлений. Разветвления в цикле
Разветвление – это структура, содержащая две ветви, из которых в зависимости от условия будет выполнена только одна. Разветвления организуются при помощи условного оператора if (см. п. 1.7.1): if (выражение) { Операторы1; } [Else { Операторы2; }] ... Если выражение имеет значение true, то выполняются Операторы1, и происходит переход к оператору, следующему за if. Если выражение имеет значение false, то выполняются Операторы2, расположенные после else, и далее выполняется оператор, следующий за условным. Если вторая ветвь отсутствует (такая структура называется обход), то во втором случае никаких действий не производится и сразу выполняется оператор, следующий за условным. Если блок (операторы, заключенные в скобки {}) состоит из одного оператора и не содержит описаний переменных, то скобки можно не использовать. Далее приводятся примеры программ с использованием разветвлений, разветвлений в цикле и множественного выбора (см. п. 1.7.5). Пример 2.15. Составить программу для решения квадратного уравнения ax2+bx+c = 0. Квадратное уравнение имеет решение, если дискриминант d = b2 – 4ac не является отрицательным. Т.е. после ввода коэффициентов a, b и c нужно вычислить d и проверить условие d < 0. Если это условие выполняется, то нужно вывести сообщение «Уравнение не имеет решения». Если условие не выполняется (d >=0), нужно вычислить и напечатать корни (возможность совпадения корней игнорируется). double a, b, c, d, x1, x2; Console.WriteLine("Введите a"); a = double.Parse(Console.ReadLine()); Console.WriteLine("Введите b"); b = double.Parse(Console.ReadLine()); Console.WriteLine("Введите c"); c = double.Parse(Console.ReadLine()); d = b * b - 4 * a * c; if (d < 0) Console.WriteLine("Уравнение не имеет решения"); else { x1 = (-b + Math.Sqrt(d)) / (2 * a); x2 = (-b - Math.Sqrt(d)) / (2 * a); Console.WriteLine("{0:f4} {1:f4}", x1, x2); } Console.ReadKey(); Пример 2.16. Вывести большее из двух чисел. double x, y, u; Console.WriteLine("Введите x"); x = double.Parse(Console.ReadLine()); Console.WriteLine("Введите y"); y = double.Parse(Console.ReadLine()); u = x; if (y > u) u = y; Console.WriteLine(u); Console.ReadKey(); Пример 2.17. Найти максимальное из трех чисел. double x, y, z, u; Console.WriteLine("Введите x"); x = double.Parse(Console.ReadLine()); Console.WriteLine("Введите y"); y = double.Parse(Console.ReadLine()); Console.WriteLine("Введите z"); z = double.Parse(Console.ReadLine()); u = x; if (y > u) u = y; if (z > u) u = z; Console.WriteLine(u); Console.ReadKey();
Пример 2.18. Определить, лежит ли точка с координатами x, y внутри или вне круга радиусом r с центром вначале координат. string inside = "точка внутри круга"; string outside = "точка вне круга"; double x, y, r; Console.WriteLine("Введите x"); x = double.Parse(Console.ReadLine()); Console.WriteLine("Введите y"); y = double.Parse(Console.ReadLine()); Console.WriteLine("Введите r"); r = double.Parse(Console.ReadLine()); if (x * x + y * y <= r * r) Console.WriteLine(inside); else Console.WriteLine(outside); Console.ReadKey(); Здесь использованы символьные константы inside и outside для размещения соответствующей символьной информации, которая выводится в качестве результата. Второй вариант программы для решения этой задачи составлен с использованием логической переменной, в которую помещается результат (true, если точка внутри круга, false - в противоположном случае). double x, y, r; bool l = false; Console.WriteLine("Введите x"); x = double.Parse(Console.ReadLine()); Console.WriteLine("Введите y"); y = double.Parse(Console.ReadLine()); Console.WriteLine("Введите r"); r = double.Parse(Console.ReadLine()); if (x * x + y * y <= r * r) l =!l; Console.WriteLine(l); Console.ReadKey(); В операторе if логической переменной l присваивается значение true: выполняется операция отрицания (оператор!), если условие выполняется, т.е. точка лежит внутри круга.. Подробнее о логических операциях см. п. 1.5 Пример 2.19. Определить, лежит ли точка с координатами x, y внутри или вне квадрата, вершинами которого являются точки с координатами (1, 1), (–1, 1), (1, –1), (–1, –1). Точка лежит внутри квадрата, если одновременно выполняются условия | x |<1 и | y |<1. Результат будем получать в логической переменной (см. пример 2.18).
double x, y; bool l = false; Console.WriteLine("Введите x"); x = double.Parse(Console.ReadLine()); Console.WriteLine("Введите y"); y = double.Parse(Console.ReadLine()); if (Math.Abs(x) <= 1 && Math.Abs(y) <= 1) l =!l; Console.WriteLine(l); Console.ReadKey(); В операторе if логической переменной l присваивается значение true: выполняется логическая операция «И» (оператор &&), если условие выполняется, т.е. точка лежит внутри квадрата. Подробнее см. п. 1.5. Пример 2.20. Определить, лежит ли точка с координатами x, y внутри или вне треугольника с вершинами в точках (0, –1), (0, 1), (1, 0). Точка принадлежит треугольнику, если одновременно выполняются два условия x >= 0 и x+|y| <= 1.
double x, y; bool l = false; Console.WriteLine("Введите x"); x = double.Parse(Console.ReadLine()); Console.WriteLine("Введите y"); y = double.Parse(Console.ReadLine()); if (x >= 0 && Math.Abs(y) + x <= 1) l =!l; Console.WriteLine(l); Пример 2.21. Вводя координаты n точек x, y. Определить, сколько из них попадет в круг радиусом r с центром в начале координат. double x, y, r; int i, n, k; Console.WriteLine("Введите количество точек"); n = int.Parse(Console.ReadLine()); Console.WriteLine("Введите радиус"); r = double.Parse(Console.ReadLine()); k = 0; for (i = 1; i <= n; i++)//вместо i = i + 1 { Console.WriteLine("Введите x"); x = double.Parse(Console.ReadLine()); Console.WriteLine("Введите y"); y = double.Parse(Console.ReadLine()); if (x*x + y*y <= r*r) k++; } Console.WriteLine("В круг попало {0} точек из {1} ", k, n); Console.ReadKey(); Пример 2.22. Ввести координаты точки x, y. Вычислить по выбору радиус-вектор точки, площадь прямоугольника с вершинами в точках (0, 0), (x, 0), (0, y), (x, y) или длину окружности с центром в начале координат, проходящей через точку x, y. Для выбора варианта вычислений используем оператор switch. Вариант вычислений будем задавать цифрой 1, 2 или 3. double x, y, r; int k = 0; Console.WriteLine("Введите x"); x = double.Parse(Console.ReadLine()); Console.WriteLine("Введите y"); y = double.Parse(Console.ReadLine()); Console.WriteLine("Признак: 1 = радиус - вектор, 2 = площадь Console.Write("Введите признак 1, 2 или 3: "); k = int.Parse(Console.ReadLine()); switch (k) { case 1: r = Math.Sqrt(x * x + y * y); Console.WriteLine("радиус вектор {0:f}", r); Console.ReadLine(); break; case 2: r = x * y; Console.WriteLine("площадьпрямоугольника{0:f}",r); Console.ReadKey(); break; case 3: r = 2*Math.PI*Math.Sqrt(x * x + y * y); Console.WriteLine("длина окружности {0:f}", r); Console.ReadKey(); break; default: Console.WriteLine("Неверный выбор. Выберите 1, 2 или 3."); Console.ReadKey(); break; }
Дата добавления: 2014-12-07; Просмотров: 588; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |