home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / math / zpp / z_test.cpp < prev   
Encoding:
C/C++ Source or Header  |  1992-04-03  |  5.4 KB  |  193 lines

  1. /* -------------------------------------------------------------------- */
  2. /* z_test.cpp                                                           */
  3. /* Revised 04/01/92                            */
  4. /*                                    */
  5. /* Copyright 1992 by Carl W. Moreland                    */
  6. /*                                    */
  7. /* Test program for the Z++ complex number class.            */
  8. /* This source code may be freely distributed as long as the copyright    */
  9. /* notice remains intact.                        */
  10. /* -------------------------------------------------------------------- */
  11.  
  12. #include <stdio.h>
  13. #include <conio.h>
  14. #include <stdlib.h>
  15. #include "complex.h"
  16.  
  17. void pause(void);
  18.  
  19. main()
  20. {
  21.   _setcursortype(_NOCURSOR);
  22.   clrscr();
  23.  
  24.   cout << "\r\n\r\n\r\n\r\n\r\n\r\n";
  25.   cout << "                                       Z++                    \r\n";
  26.   cout << "                                                              \r\n";
  27.   cout << "                               Complex number class           \r\n";
  28.   cout << "                                   Version 1.0                \r\n";
  29.   cout << "                                                              \r\n";
  30.   cout << "                             Written by Carl Moreland         \r\n";
  31.   cout << "                                                              \r\n";
  32.   cout << "                             Hit any key to continue,         \r\n";
  33.   cout << "                                or <Ctrl>C to exit            \r\n";
  34.  
  35.   pause();
  36.  
  37.   complex z1(3,4);
  38.   complex z2 = complex(5,-6);
  39.   complex z3;
  40.   z3 = 10.5;
  41.  
  42.   cout << "\r\n";
  43.   cout << "Create some complex numbers:\r\n\r\n";
  44.   cout << "complex z1(3,4);\r\n";
  45.   cout << "complex z2 = complex(5,-6);\r\n";
  46.   cout << "complex z3;\r\n";
  47.   cout << "z3 = 10.5;\r\n\r\n";
  48.  
  49.   cout << "The results are:\r\n\r\n";
  50.   cout << "z1 = " << z1 << "\r\n";
  51.   cout << "z2 = " << z2 << "\r\n";
  52.   cout << "z3 = " << z3 << "\r\n";
  53.   cout << "\r\n";
  54.   cout << "complex z2c = conj(z2);\r\n";
  55.   cout << "The complex conjugate of z2 is " << conj(z2) << "\r\n";
  56.   cout << "-z2 = " << -z2 << "\r\n";
  57.  
  58.   pause();
  59.  
  60.   cout << "The magnitude and angle of z1, z2, & z3 are:\r\n\r\n";
  61.   cout << "mag(z1) = " << mag(z1) << "\r\n";
  62.   cout << "ang(z1) = " << ang(z1) << " (radians)\r\n";
  63.   cout << "mag(z2) = " << mag(z2) << "\r\n";
  64.   cout << "ang(z2) = " << ang(z2) << " (radians)\r\n";
  65.   cout << "mag(z3) = " << mag(z3) << "\r\n";
  66.   cout << "ang(z3) = " << ang(z3) << " (radians)\r\n";
  67.   cout << "\r\n";
  68.  
  69.   cout << "Now set the angle mode to degrees:\r\n";
  70.   Complex.SetArgMode(Z_DEGREES);
  71.   cout << "Complex.SetMode(Z_DEGREES);\r\n\r\n";
  72.  
  73.   cout << "ang(z1) = " << ang(z1) << "°\r\n";
  74.   cout << "ang(z2) = " << ang(z2) << "°\r\n";
  75.   cout << "ang(z3) = " << ang(z3) << "°\r\n";
  76.  
  77.   Complex.SetArgMode(Z_RADIANS);
  78.   cout << "\nComplex.SetMode(Z_RADIANS);\r\n";
  79.  
  80.   pause();
  81.  
  82.   complex z4 = z1 + z2;
  83.   complex z5 = z1 - z2;
  84.   complex z6 = z1 * z2;
  85.   complex z7 = z1 / z2;
  86.  
  87.   cout << "Now use some overloaded operators:\r\n\r\n";
  88.   cout << "complex z4 = z1 + z2;\r\n";
  89.   cout << "complex z5 = z1 - z2;\r\n";
  90.   cout << "complex z6 = z1 * z2;\r\n";
  91.   cout << "complex z7 = z1 / z2;\r\n";
  92.   cout << "\r\n";
  93.   cout << "z4 = " << z4 << "\r\n";
  94.   cout << "z5 = " << z5 << "\r\n";
  95.   cout << "z6 = " << z6 << "\r\n";
  96.   cout << "z7 = " << z7 << "\r\n";
  97.   cout << "\r\n";
  98.  
  99.   pause();
  100.  
  101.   z4 += z1;
  102.   z5 -= z1;
  103.   z6 *= z1;
  104.   z7 /= z1;
  105.  
  106.   cout << "More overloaded operators:\n\r\n";
  107.   cout << "z4 += z1;\r\n";
  108.   cout << "z5 -= z1;\r\n";
  109.   cout << "z6 *= z1;\r\n";
  110.   cout << "z7 /= z1;\r\n";
  111.   cout << "\r\n";
  112.   cout << "z4 = " << z4 << "\r\n";
  113.   cout << "z5 = " << z5 << "\r\n";
  114.   cout << "z6 = " << z6 << "\r\n";
  115.   cout << "z7 = " << z7 << "\r\n";
  116.   cout << "\r\n";
  117.  
  118.   Complex.SetPrintMode(Z_LETTER);
  119.  
  120.   cout << "Complex.SetPrintMode(Z_LETTER);\r\n";
  121.   cout << "z4 = " << z4 << "\r\n";
  122.   cout << "z5 = " << z5 << "\r\n";
  123.   cout << "\r\n";
  124.  
  125.   Complex.SetLetter('j');
  126.  
  127.   cout << "Complex.SetLetter('j');\r\n";
  128.   cout << "z6 = " << z6 << "\r\n";
  129.   cout << "z7 = " << z7 << "\r\n";
  130.   cout << "\r\n";
  131.  
  132.   Complex.SetLetter('i');
  133.   cout << "Complex.SetLetter('i');\r\n";
  134.  
  135.   pause();
  136.  
  137.   z4 = sqrt(z1);
  138.   z5 = pow(z1, 1.2);
  139.   z6 = pow(z1, z2);
  140.   z7 = pow(1.2, z1);
  141.  
  142.   cout << "Overloaded C power functions:\r\n\r\n";
  143.   cout << "z4 = sqrt(z1);\r\n";
  144.   cout << "z5 = pow(z1, 1.2);\r\n";
  145.   cout << "z6 = pow(z1, z2);\r\n";
  146.   cout << "z7 = pow(1.2, z1);\r\n";
  147.   cout << "\r\n";
  148.   cout << "z4 = " << z4 << "\r\n";
  149.   cout << "z5 = " << z5 << "\r\n";
  150.   cout << "z6 = " << z6 << "\r\n";
  151.   cout << "z7 = " << z7 << "\r\n";
  152.  
  153.   pause();
  154.  
  155.   z4 = sin(z1);
  156.   z5 = cos(z1);
  157.   z6 = exp(z1);
  158.   z7 = log(z1);
  159.  
  160.   cout << "Overloaded C trig functions:\r\n\r\n";
  161.   cout << "z4 = sin(z1);\r\n";
  162.   cout << "z5 = cos(z1);\r\n";
  163.   cout << "z6 = exp(z1);\r\n";
  164.   cout << "z7 = log(z1);\r\n";
  165.   cout << "\r\n";
  166.   cout << "z4 = " << z4 << "\r\n";
  167.   cout << "z5 = " << z5 << "\r\n";
  168.   cout << "z6 = " << z6 << "\r\n";
  169.   cout << "z7 = " << z7 << "\r\n";
  170.  
  171.   pause();
  172.  
  173.   cout << "Here are some useful constants that are declared in complex.h:\r\n\r\n";
  174.   cout << "Z0   = " << Z0   << "\r\n";
  175.   cout << "Z1   = " << Z1   << "\r\n";
  176.   cout << "Zi   = " << Zi   << "\r\n";
  177.   cout << "Zinf = " << Zinf << "\r\n";
  178.  
  179.   pause();
  180.  
  181.   return 0;
  182. }
  183.  
  184. void pause(void)
  185. {
  186.   char ch = getch();
  187.   if(!ch)
  188.     getch();
  189.   if(ch == 0x03)
  190.     exit(0);
  191.   clrscr();
  192.   cout << "\r\n";
  193. }