Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Complex Calculator

0.00/5 (No votes)
26 Jun 2007 1  
This calculator is written as a demo application for the SCI library

Screenshot - A_Complex_Calculator.png

Introduction

This calculator is written as a demo application for the SCI library. It has a similar interface to the Windows built-in calculator (Standard View) and it can handle complex numbers as operands. Complex Calculator is a more general-purpose and usable calculator.

The interface of Complex Calculator

  • Display: Outputs the results of calculations and current number inputs.
  • Input: Buttons for inputting digits and calculation operations.

Use of Sci.Math.ComplexNumber

The manipulation of complex numbers is powered by Sci.Math.ComplexNumber. Sci.Math.ComplexNumber is implemented using the following structure:

Sci.Math.ComplexNumber z = new Sci.Math.ComplexNumber(); 

Then z represents 0+i0. We can change the Real part or the Imaginary part of z using:

z.Re = 3;
z.Im = 4;

ComplexNumber supports Addition, Subtraction, Multiplication and Division. For instance:

Sci.Math.ComplexNumber w = new Sci.Math.ComplexNumber(1, 2);
w = w + z;

Then w represents 4+i6. Calculations of the modulus and argument of z can be retrieved from the properties Modulus and Argument:

double m = z.Modulus;
double a = z.Argument; 

Conclusion

Although this "Complex" Calculator is not truly complex, its intent is to enable users who use complex numbers to quickly get answers from basic operations for complex numbers. Many scientific software developers also know of the SCI library.

Links

History

  • 4 April, 2007 -- Version 1.0.0.0
  • 26 June, 2007 -- Article edited and moved to the main CodeProject.com article base

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here