Алгоритм с ветвящейся структурой
Решение задач не всегда можно представить в виде линейного алгоритма. Существуют задачи, в которых требуется организовать выбор выполнения последовательности действий в зависимости от каких-либо условий. Такие алгоритмы называют алгоритмами разветвляющейся структуры.
Пример.Фонд заработной платы на предприятии, численностью не менее P человек составляет S усл. ед. В результате увеличения персонала на P1 человек и роста средней заработной платы на S1 усл. ед. фонд заработной платы вырос на S3 усл. ед. Необходимо произвести вычисления количества персонала на предприятии и средней заработной платы.
Этап 1. Математическое описание решения задачи. Пусть x – первоначальное количество персонала на предприятии, а y – первоначальная средняя зарплата. Тогда условие задачи можно записать в виде следующей системы двух уравнений:
x * y = S,
(x + P1)*(y + S1) = S + S3
Из первого уравнения находим y = S/x и подставляем его во второе уравнение, тогда получаем следующее уравнение:
(x + P1)*(S/x + S1) = S + S3.
Проведя соответствующие преобразования, получаем следующее квадратное уравнение: S1*x2 + (S3 + S1*P1)*x + S1 =0.
Для решения данного квадратного уравнения введем следующие обозначения: a = S1; b = (S3 + S1*P1); c = S1 и, подставляя их в исходное уравнение, получаем запись квадратного уравнения: a*x2 + b*x + c = 0.
Необходимо найти действительные корни квадратного уравнения вида . Если действительных корней нет, то выдать соответствующее сообщение. Далее, подставляем найденные значения в уравнение y = S/x, находим искомый результат x и y.
Из курса математики известно, что такое уравнение имеет два корня, которые вычисляются по формулам:
;
где и
- первый и второй корни уравнения соответственно; d =
-4ac - дискриминант уравнения. Уравнение имеет действительные корни, если дискриминант больше или равен 0 (d
).
Этап 2. Определение входных и выходных данных.Входными данными являются S1, S3, P1, с помощью которых вычисляются коэффициенты уравнения а, b, c, выходными данными - значения корней уравнения или сообщение об отсутствии действительных корней. Для вычисления корней уравнения необходимо знать дискриминант уравнения.
Этап 3. Разработка алгоритма решения. Введем обозначения: А, В, С - коэффициенты уравнения, которые вычисляются следующим образом: A = S1; B = (S3 + S1*P1); C = S1; а Х1, Х2 - первый и второй корни уравнения; D - дискриминант уравнения.
Шаг 1. Начало алгоритма.
Шаг 2. Ввод значений S1, S3, P1.
Шаг 3. Вычисление A = S1; B = (S3 + S1*P1); C = S1.
Шаг 4. Вычисление дискриминанта D:= -4AC.
Шаг 5. Если дискриминант D0, то перейти к шагу 6, иначе - к шагу 9.
Шаг 6. Вычисление значений корней
;
Шаг 7. Если X1>0, то необходимо вычислить Y:=S/X1 и перейти к шагу 8, в противном случае – к шагу 9.
Шаг 8. Вывод значений Х1, Y и переход к шагу 10.
Шаг 9. Вывод информации: «нет решения».
Шаг 10. Конец алгоритма.
Рис.2.5.9. Блок-схема алгоритм задачи решения реорганизации предприятия.