Тема 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 для данного х вычислить значения функций: