Зачастую для решения одной и той же задачи можно использовать разные средства языка.
В качестве примеров рассмотрим классические задачи вычисления корней линейного и квадратного уравнений.
Пример 1. Составьте программу для решения уравнения вида на множестве действительных чисел. Исходные данные – значения коэффициентов а, b вводятся пользователем с клавиатуры.
Известно, что при разных значениях коэффициентов a и b задача вычисления корней должна решаться по разным правилам. Перечислим возможные варианты:
а!=0 – уравнение имеет единственный корень, который вычисляется по формуле x=a/b;
а==0, b!=0 – уравнение примет вид 0 = b, которое при ненулевом значении b корней не имеет;
а==0, b==0 – уравнение примет вид 0 = 0, решением которого является множество действительных чисел.
Блок-схема данной программы будет выглядеть следующим образом:
Пример 2. Составьте программу для решения квадратного уравнения на множестве комплексных чисел. Исходные данные – действительные значения коэффициентов а, b, с вводятся пользователем с клавиатуры.
Известно, что при разных значениях коэффициентов a, b, с задача вычисления корней должна решаться по разным правилам. Перечислим возможные варианты:
а==0 – линейное уравнение;
а!=0, b*b-4*a*c>0 – два различных действительных корня;
а!=0, b*b-4*a*c=0 – два совпадающих действительных корня;
а!=0, b*b-4*a*c<0 – два комплексных корня.
В случаях, когда a! =0 справедлива формула: .
С ее помощью при положительном дискриминанте вычисляются два действительных корня. При отрицательном дискриминанте, т.е. когда , комплексные корни можно определить так: , где i – мнимая единица.
Отметим, что в языке Си комплексную величину можно представить двумя переменными, соответствующими ее действительной и мнимой частям.
Блок-схема данной программы будет выглядеть следующим образом: