Тема 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), если

Решение. Алгоритм имеет вложенную ветвящуюся структуру
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. Написать программу решения системы линейных уравнений
![]()
17. Найти координаты точек пересечения прямой y=k1x+b1 и y=k2x+b2. В каких координатных четвертях находятся точки пересечения?
18. Заданы размеры А, В прямоугольного отверстия и размеры X, Y, Z кирпича. Определить, пройдет ли кирпич через отверстие.
19. Составить программу, осуществляющую перевод величин из радианной меры в градусную или наоборот. Программа должна запрашивать, какой перевод нужно осуществить, и выполнять указанное действие.
20. В небоскребе N этажей и всего один подъезд; на каждом этаже по 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры М. На какой этаж должен доставить лифт пассажира?
21. Составить программу, которая проверяла бы, не приводит ли суммирование двух целых чисел А и В к переполнению (т. е. к результату большему, чемЕсли будет переполнение, то сообщить об этом, иначе вывести сумму этих чисел.
В задачах № 52 — № 61 для данного х вычислить значения функций:




