1 Тема 2. Программирование ветвящихся алгоритмов Для программирования ветвящихся алгоритмов применяются условный оператор (оператор ветвления) и оператор выбора. Условный оператор имеет следующий формат: If <логическое выражение> Then <оператор 1> Else <оператор 2>; Операторы 1 и 2 могут быть простыми или составными. Если логическое выражение, выступающее в качестве условия ветвления, принимает значение False, то выполняется оператор 2, если True — оператор 1. Неполная форма условного оператора: If <логическое выражение> Then <оператор>; Пример 1. Из трех данных вещественных чисел X, Y, Z выбрать наибольшее. Решение 1. Используем алгоритм с вложенными полными ветвлениями. Program МахЗ_1 ; Var X,Y,Z,MAX : real; Begin Write ('Введите X, Y, Z'); ReadLn(X, Y, Z); If X>=Y Then If X>=Z Then MAX : =X Else MAX : =Z Else If Y>=Z Then MAX : =Y Else MAX : =Z ; WriteLn('Максимальное значение=', MAX) End. Решение 2. Используем алгоритм с последовательными неполными ветвлениями и сложными логическими выражениями. Program МахЗ_2; Var X, Y, Z,MAX : real; Begin Write ('Введите X, Y, Z') ; ReadLn(X, Y, Z); If (X>=Y) and (X>=Z) Then MAX: =X; If (Y>=X) and (Y>=Z) Then MAX :=Y; If (Z>=X) and (Z>=Y) Then MAX :=Z; WriteLn ('Максимальное значение' , MAX) End. Пример 2. Дано действительное число x. Вычислить f(x), если Решение. Алгоритм имеет вложенную ветвящуюся структуру 2 Program Formula; Var X, F : Real; Begin WriteLn ('Введите действительное число: ' ) ; ReadLn(X) ; If X<=0 Then F:=0 Else If X<=1 Then F:=sqr (X) -X Else F:=sqr (X) -sin(Pi*X*X) ; WriteLn (' Значение функции F (x) при x = ', X,' равно ', F); End. Блок A 1. Даны две точки A(x1,y1) и В(х2, у2). Составить алгоритм, определяющий, которая из точек находится ближе к началу координат. 2. Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник. Если да, то будет ли он прямоугольным. 3. Даны действительные числа х и у, не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее — их удвоенным произведением. 4. Даны целые числа т, n. Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из исходных, а если равны, то заменить числа нулями. 5. Определить, является ли треугольник со сторонами а, b, с равносторонним. 6. Определить, является ли треугольник со сторонами а, b, с равнобедренным. 7. Подсчитать количество отрицательных чисел среди чисел а, b, с. 8. Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до А минут в месяц оплачиваются В руб., а разговоры сверх установленной нормы оплачиваются из расчета С руб. в минуту. Написать программу, вычисляющую плату за пользование телефоном для введенного времени разговоров за месяц. 9. Программа-льстец. На экране появляется вопрос «Кто ты: мальчик или девочка? Введи Д или М». В зависимости от ответа на экране должен появиться текст «Мне нравятся девочки!» или «Мне нравятся мальчики!». 10. Составить программу, определяющую результат гадания на ромашке — «любит — не любит», взяв за исходное данное количество лепестков n. Блок Б. 11.Написать программу нахождения суммы большего и меньшего из 3 чисел. 12.Определить, является ли треугольник со сторонами а, Ъ, с прямоугольным. Если нет, то вычислить больший угол. 13.Даны действительные числа а, Ь, с. Удвоить эти числа, если а<Ъ<с, и заменить их абсолютными значениями, если это не так. 14.На оси ОХ расположены три точки а, b, с. Определить, какая из точек b, с расположена ближе к а. 15.Написать программу решения уравнения ах3 + bх = 0 для произвольных а, Ь. 16.Написать программу решения системы линейных уравнений 3 17.Найти координаты точек пересечения прямой y=k1x+b1 и y=k2x+b2. В каких координатных четвертях находятся точки пересечения? 18.Заданы размеры А, В прямоугольного отверстия и размеры X, Y, Z кирпича. Определить, пройдет ли кирпич через отверстие. 19.Составить программу, осуществляющую перевод величин из радианной меры в градусную или наоборот. Программа должна запрашивать, какой перевод нужно осуществить, и выполнять указанное действие. 20.В небоскребе N этажей и всего один подъезд; на каждом этаже по 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры М. На какой этаж должен доставить лифт пассажира? 21.Составить программу, которая проверяла бы, не приводит ли суммирование двух целых чисел А и В к переполнению (т. е. к результату большему, чем 32 767). Если будет переполнение, то сообщить об этом, иначе вывести сумму этих чисел. В задачах № 52 — № 61 для данного х вычислить значения функций: