Задача 8. Решение простого уравнения

В качестве небольшой иллюстрации применения логических операторов приведем программу, которой относительно переменной х решается уравнение вида . Особой интриги в этом уравнении нет. При ненулевых значениях а и b решением является x . Если a = 0, то возможны два варианта: при b = 0 решением является любое число х, а при уравнение решений не имеет. Именно эти варианты и необходимо предусмотреть в программе. Сразу отметим, что приведенный в листинге 8 код не является оптимальным, это всего лишь иллюстрация: подобного рода задачи решаются несколько иными способами.

Листинг 8. Решение простого уравнения

В программе используются переменные а и b для записи параметров уравнения, а также логическая переменная state для записи результатов проверки условий, которые определяют решение уравнения. После ввода параметров уравнения командой state = (a!= 0) переменной state присваивается результат проверки условия . Если условие верно, значение переменной state равно true, а если условие не верно, то значение переменной state равно false. При верном условии а!= 0 в результате выполнения команды state? (cout<<b/a<<endl, exit(0)):state= (a==0) && (b==0) отображается значение корня уравнения b/а и завершается работа программы (инструкция exit(0), нулевой аргумент функции exit() означает, что программа завершила работу корректно). Поскольку первый блок тернарного оператора состоит из нескольких выражений, они разделяются запятой и заключаются в круглые скобки. Если условие а!= 0 не выполняется (т.е. коэффициент а нулевой), значение переменной state изменяется с помощью команды state = (а==0) && (b==0). На самом деле в данном случае хватило бы и команды state= (b==0), поскольку условие равенства нулю коэффициента а выполняется автоматически. Такая «неидеальная» форма оставлена скорее для наглядности.

Далее на экран выводится результат, возвращаемый выражением state?"any number!": "no result! ". Проверить функциональность программы самостоятельно.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: