Программирование ветвлений на Pascal Файл

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