На этом шаге мы рассмотрим еще одиин пример использования класса complex.
Вторая программа в цикле читает два комплексных числа и вычисляет результат возведения первого числа в степень второго:
//--------------------------------------------------------------------------- #include <vcl.h> #include <iostream> #include <complex> #include <cstdlib> #include <limits> #include <conio.h> //необходимо для getch() #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused using namespace std; std::string ToRus(const std::string &in) { char *buff = new char [in.length()+1]; CharToOem(in.c_str(),buff); std::string out(buff); delete [] buff; return out; } int main (int argc, char* argv[]) { complex<long double> c1, c2; while (cin.peek() != EOF) { // Ввод первого комплексного числа cin >> c1; if (!cin) { cerr << ToRus("Ошибка ввода") << endl; return EXIT_FAILURE; } // Ввод второго комплексного числа cin >> c2; if (!cin) { cerr << ToRus("Ошибка ввода") << endl; return EXIT_FAILURE; } if (c1 == c2) { cout << ToRus("c1 и c2 равны!\n") << endl; } cout << ToRus("Первое комплексное число c1: ") << c1 <<endl; cout << ToRus("Второе комплексное число c2: ") << c2 <<endl; cout << ToRus("c1 в степени c2: ") << pow(c1,c2) << endl << endl; // Пропуск оставшейся части строки cin.ignore(numeric_limits<int>::max(),'\n'); } getch(); return 0; } //---------------------------------------------------------------------------
Результат выполнения программы выглядит так:
Рис.1. Результат работы приложения
Обратите внимание: при вводе комплексного числа указывается либо только вещественная часть в виде отдельного значения (в круглых скобках или без), либо вещественная и мнимая части в круглых скобках, разделенные запятыми.
Со следующего шага мы начнем знакомиться с операциями над комплексными числами.