Guest User

Untitled

a guest
Nov 27th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. ------------------------------------MAIN------------------------------------
  2. // ul10.cpp : Defines the entry point for the console application.
  3. //
  4.  
  5. #include "stdafx.h"
  6. #include "ComplexMath.h"
  7.  
  8. struct complex a;
  9. struct complex b;
  10. struct complex v; //vysledok
  11. int por; //vysledok
  12.  
  13. typOperace operacia;
  14. formatZobrazeni format;
  15.  
  16. int _tmain(int argc, _TCHAR* argv[])
  17. {
  18. printf("Zadaj typ operacie 1=sucet,2=rozdiel,3=sucin\n");
  19. scanf_s("%d",&operacia);
  20.  
  21. printf("Zadaj realnu a imaginarnu zlozku 1.\n");
  22. scanf_s("%lf%lf",&a.real,&a.imag);
  23.  
  24. printf("Zadaj realnu a imaginarnu zlozku 2.\n");
  25. scanf_s("%lf%lf",&b.real,&b.imag);
  26.  
  27. v=operace( a, b, operacia );
  28. por=porovnanie( a, b);
  29. printf("Navratova hodnota funkcie porovnanie je: %d\n",por);
  30.  
  31. tisk( v, algebraicky );
  32. tisk( v, geometricky );
  33.  
  34. return 0;
  35. }
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44. ------------------------------------ComplexMath.h-----------------------------
  45. #ifndef __COMPLEXMATH_H__
  46. #define __COMPLEXMATH_H__
  47.  
  48. enum typOperace{soucet= 1, rozdil, soucin};
  49. enum formatZobrazeni{algebraicky, geometricky};
  50.  
  51. struct complex
  52. {
  53. double real;
  54. double imag;
  55. };
  56.  
  57. struct complex operace( struct complex a, struct complex b, enum typOperace typ);
  58. int porovnanie( struct complex a, struct complex b);
  59. void tisk( struct complex a, enum formatZobrazeni format );
  60.  
  61. #endif
  62.  
  63. //
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ------------------------------------ComplexMath.cpp-----------------------------
  71. #include "ComplexMath.h"
  72. #include "stdafx.h"
  73. #include "math.h"
  74.  
  75. #define PI 3.14
  76.  
  77. struct complex x;
  78.  
  79. struct complex operace( struct complex a, struct complex b, enum typOperace typ )
  80. {
  81.  
  82. switch(typ){
  83. case 1:
  84. a.real=a.real+b.real;
  85. a.imag=a.imag+b.imag;
  86. break;
  87. case 2:
  88. a.real=a.real-b.real;
  89. a.imag=a.imag-b.imag;
  90. break;
  91. case 3:
  92. a.real=a.real*b.real-a.imag*b.imag;
  93. a.imag=a.real*b.imag+a.imag*b.real;
  94. break;
  95. default:
  96. printf("Zla operacia\n");
  97. break;
  98. }
  99.  
  100. return a;
  101. }
  102.  
  103. int porovnanie( struct complex a, struct complex b)
  104. {
  105. double velkostA;
  106. double velkostB;
  107.  
  108. velkostA= sqrt((a.real)*(a.real)+(a.imag*a.imag));
  109. velkostB= sqrt((b.real*b.real)+(b.imag*b.imag));
  110.  
  111. if(abs(velkostA)>abs(velkostB))
  112. return 1;
  113. if(abs(velkostA)<abs(velkostB))
  114. return -1;
  115. return 0;
  116.  
  117. }
  118.  
  119. void tisk( struct complex a, enum formatZobrazeni format )
  120. {
  121. char zn='\0';
  122.  
  123. switch(format){
  124. case algebraicky:
  125. if(a.imag>=0){zn='+';}
  126. printf("%.3lf%c%.3lfj\n",a.real,zn,a.imag);
  127. break;
  128. case geometricky:
  129. //printf("[%.3lf;%.3lf]\n",a.real,a.imag);
  130. //alebo printf("%.3lf*e^j%.3lfdeg\n",a.real,zn,a.imag);
  131. x.real=sqrt((a.real)*(a.real)+(a.imag*a.imag));
  132. if(a.imag>0&&a.real>0)
  133. x.imag= atan(abs(a.imag/a.real));
  134. else if(a.imag>0 && a.real<0)
  135. x.imag= PI-atan(abs(a.imag/a.real));
  136. else if(a.imag<0 && a.real<0)
  137. x.imag=-(PI-atan(abs(a.imag/a.real)));
  138. else
  139. x.imag=-atan(abs(a.imag/a.real));
  140.  
  141. printf("%.3lf * e^j%.0lf\n",x.real,x.imag*180/PI);
  142.  
  143. break;
  144. default:
  145. printf("Zly format");
  146. break;
  147. }
  148.  
  149.  
  150.  
  151.  
  152.  
  153. }
Advertisement
Add Comment
Please, Sign In to add comment