Advertisement
Maromon_Lupus

Zad3

Mar 23rd, 2019
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <math.h>
  4. #include "plik.h"
  5. #define PI 3.14159265
  6. using namespace std;
  7. Tzespol::Tzespol(){
  8.     Re=Im=0;
  9. }
  10. Tzespol::Tzespol(float a,float b){
  11.     Re=a;
  12.     Im=b;
  13.     modu();
  14.     argu();
  15. }
  16. void Tzespol::wyp(float a, float b){
  17. if(a!=0)cout<<a;
  18. if(a!=0&&b>=0)cout<<"+";
  19. if(b!=0)cout<<b<<"i";
  20. if(a==0&&b==0)cout<<0;
  21. }
  22. void Tzespol::wyp(){
  23. if(Re!=0)cout<<Re;
  24. if(Re!=0&&Im>=0)cout<<"+";
  25. if(Im!=0)cout<<Im<<"i";
  26. if(Re==0&&Im==0)cout<<0;
  27. }
  28. void Tzespol::dod(Tzespol dru){
  29. float a=Re+dru.Re;
  30. float b=Im+dru.Im;
  31. cout<<"Po dodaniu:\n";
  32. wyp(a,b);
  33. }
  34. void Tzespol::ode(Tzespol dru){
  35. float a=Re-dru.Re;
  36. float b=Im-dru.Im;
  37. cout<<"Po odjeciu:\n";
  38. wyp(a,b);
  39. }
  40. void Tzespol::mno(Tzespol dru){
  41. float a=Re*dru.Re-Im*dru.Im;
  42. float b=Re*dru.Im+Im*dru.Re;
  43. cout<<"Po wymnozeniu:\n";
  44. wyp(a,b);
  45. }
  46. void Tzespol::dzi(Tzespol dru){
  47. float a=(Re*dru.Re+Im*dru.Im)/(dru.Re*dru.Re+dru.Im*dru.Im);
  48. float b=(Im*dru.Re-Re*dru.Im)/(dru.Re*dru.Re+dru.Im*dru.Im);
  49. cout<<"Po dzieleniu:\n";
  50. wyp(a,b);
  51. }
  52. Tzespol Tzespol::operator+(Tzespol dru){
  53. Tzespol wynik;
  54. wynik.Re=Re+dru.Re;
  55. wynik.Im=Im+dru.Im;
  56. return wynik;
  57. }
  58. Tzespol Tzespol::operator-(Tzespol dru){
  59. Tzespol wynik;
  60. wynik.Re=Re-dru.Re;
  61. wynik.Im=Im-dru.Im;
  62. return wynik;
  63. }
  64. Tzespol Tzespol::operator*(Tzespol dru){
  65. Tzespol wynik;
  66. wynik.Re=Re*dru.Re-Im*dru.Im;
  67. wynik.Im=Re*dru.Im+Im*dru.Re;
  68. return wynik;
  69. }
  70. Tzespol Tzespol::operator/(Tzespol dru){
  71. Tzespol wynik;
  72. wynik.Re=(Re*dru.Re+Im*dru.Im)/(dru.Re*dru.Re+dru.Im*dru.Im);
  73. wynik.Im=(Im*dru.Re-Re*dru.Im)/(dru.Re*dru.Re+dru.Im*dru.Im);
  74. return wynik;
  75. }
  76. void Tzespol::modu(){
  77.     Mod=sqrt(Re*Re+Im*Im);
  78. }
  79. void Tzespol::argu(){
  80. Arg=asin (Im/Mod) * 180.0 / PI;
  81. }
  82. void Tzespol::wypmodu(){
  83. cout<<"Modulo jest rowne:"<<Mod<<"\n";
  84. }
  85. void Tzespol::wypargu(){
  86. cout<<"Argument jest rowny w stopniach:"<<Arg<<"\n";
  87. }
  88. Tzespol Tzespol::operator+=(Tzespol dru){
  89. float a;
  90. a=Re+dru.Re;
  91. Im=Im+dru.Im;
  92. Re=a;
  93. }
  94. Tzespol Tzespol::operator-=(Tzespol dru){
  95. float a;
  96. a=Re-dru.Re;
  97. Im=Im-dru.Im;
  98. Re=a;
  99. }
  100. Tzespol Tzespol::operator*=(Tzespol dru){
  101. float a;
  102. a=Re*dru.Re-Im*dru.Im;
  103. Im=Re*dru.Im+Im*dru.Re;
  104. Re=a;
  105. }
  106. Tzespol Tzespol::operator/=(Tzespol dru){
  107. float a;
  108. a=(Re*dru.Re+Im*dru.Im)/(dru.Re*dru.Re+dru.Im*dru.Im); 
  109. Im=(Im*dru.Re-Re*dru.Im)/(dru.Re*dru.Re+dru.Im*dru.Im);
  110. Re=a;
  111. }
  112. Tzespol Tzespol::operator==(Tzespol dru){
  113. if(Re==dru.Re&&Im==dru.Im){
  114.     cout<<"Prawda, sa rowne";
  115. }else{
  116.     cout<<"Falsz, nie sa rowne";
  117. }
  118. }
  119. Tzespol Tzespol::operator!=(Tzespol dru){
  120. if(Re!=dru.Re||Im!=dru.Im){
  121.     cout<<"Prawda, nie sa rowne";
  122. }else{
  123.     cout<<"Falsz, sa rowne";
  124. }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement