Алгоритм с ветвящейся структурой

Решение задач не всегда можно представить в виде линейного алгоритма. Существуют задачи, в которых требуется организовать выбор выполнения последовательности действий в зависимости от каких-либо условий. Такие алгоритмы называют алгоритмами разветвляющейся структуры.

Пример.Фонд заработной платы на предприятии, численностью не менее 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. Блок-схема алгоритм задачи решения реорганизации предприятия.