Advertisement
icatalin

POO voinea numere complexe

Oct 30th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.82 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. class complex
  5.  
  6. {
  7.  
  8. private:
  9.  
  10.     float a, b;
  11.  
  12. public:
  13.  
  14.     void citire(char*s)
  15.  
  16.     {
  17.  
  18.         cout << "Introduceti datele nr. complex " << s << endl;
  19.  
  20.         cin >> a;
  21.  
  22.         cin >> b;
  23.  
  24.     }
  25.  
  26.  
  27.  
  28.     void afisare(char*);
  29.  
  30.     complex suma1(complex);
  31.  
  32.     void suma2(complex, complex&);
  33.  
  34.     void suma3(complex, complex*);
  35.  
  36.     complex diferenta(complex);
  37.  
  38.     void diferenta2(complex, complex&);
  39.  
  40.     void diferenta3(complex, complex*);
  41.  
  42.     complex produs(complex);
  43.  
  44.     void produs2(complex, complex&);
  45.  
  46.     void produs3(complex, complex*);
  47.  
  48.     complex impartire(complex);
  49.  
  50. };
  51. void complex::afisare(char*s)
  52.  
  53. {
  54.  
  55.     cout << "Nr. complex " << s << " este: " << a;
  56.  
  57.     cout << "*" << b << "i" << endl;
  58.  
  59. }
  60.  
  61.  
  62.  
  63. complex complex::suma1(complex z)
  64.  
  65. {
  66.  
  67.     complex r;
  68.  
  69.     r.a = a + z.a;
  70.  
  71.     r.b = b + z.b;
  72.  
  73.     return r;
  74.  
  75. }
  76.  
  77.  
  78.  
  79. void complex::suma2(complex z, complex& r)
  80.  
  81. {
  82.  
  83.     r.a = a + z.a;
  84.  
  85.     r.b = b + z.b;
  86.  
  87. }
  88.  
  89.  
  90.  
  91. void complex::suma3(complex z, complex* r)
  92.  
  93. {
  94.  
  95.     r->a = a + z.a;
  96.  
  97.     r->b = b + z.b;
  98.  
  99. }
  100.  
  101. complex complex::diferenta(complex z)
  102.  
  103. {
  104.  
  105.     complex r;
  106.  
  107.     r.a = a - z.a;
  108.  
  109.     r.b = b - z.b;
  110.  
  111.     return r;
  112.  
  113. }
  114.  
  115. void complex::diferenta2(complex z, complex &r)
  116.  
  117. {
  118.  
  119.     r.a = this->a - z.a;
  120.  
  121.     r.b = this->b - z.b;
  122.  
  123. }
  124.  
  125. void complex::diferenta3(complex z, complex*r)
  126.  
  127. {
  128.  
  129.     r->a = a - z.a;
  130.  
  131.     r->b = b - z.b;
  132.  
  133. }
  134.  
  135. complex complex::produs(complex z)//DE COMPLETAT CU FORMULA DE LA PRODUS
  136.  
  137. {
  138.  
  139.     complex r;
  140.  
  141.     r.a = a * z.a - b * z.b;
  142.  
  143.     r.b = a * z.b + b * z.a;
  144.  
  145.     return r;
  146.  
  147. }
  148.  
  149. void complex::produs2(complex z, complex &r)
  150.  
  151. {
  152.  
  153.     r.a = a * z.a - b * z.b;
  154.  
  155.     r.b = a * z.b + b * z.a;
  156.  
  157. }
  158.  
  159. void complex::produs3(complex z, complex *r)
  160.  
  161. {
  162.  
  163.     r->a = a * z.a - b * z.b;
  164.  
  165.     r->b = a * z.b + b * z.a;
  166.  
  167. }
  168. complex complex::impartire(complex z)
  169.  
  170. {
  171.  
  172.     complex r;
  173.     float aux=z.a*z.a+z.b*z.b;
  174.     if(aux)
  175.     {
  176.     r.a =(a*z.a+b*z.b)/aux;
  177.  
  178.     r.b = (z.a*b-a*z.b)/aux;
  179.     }
  180.     return r;
  181.  
  182. }
  183. int main()
  184. {
  185.     complex z1;
  186.  
  187.     z1.citire("z1");
  188.  
  189.     z1.afisare("z1");
  190.  
  191.     cout << endl;
  192.  
  193.     complex* z2;
  194.  
  195.     z2 = new complex;
  196.  
  197.     z2->citire("z2");
  198.  
  199.     z2->afisare("z2");
  200.  
  201.     cout << endl;
  202.  
  203.  
  204.  
  205.     complex z3;
  206.  
  207.     z3 = z1.suma1(*z2);
  208.  
  209.     z3.afisare("z1+z2");
  210.  
  211.     complex z4;
  212.  
  213.     z1.suma2(*z2, z4);
  214.  
  215.     z4.afisare("z1+z2");
  216.  
  217.     complex z5;
  218.  
  219.     z1.suma3(*z2, &z5);
  220.  
  221.     z5.afisare("z1+z2");
  222.  
  223.     complex z6;
  224.  
  225.     z6 = z1.diferenta(*z2);
  226.  
  227.     z6.afisare("z1-z2");
  228.  
  229.     complex z8;
  230.  
  231.     z1.diferenta2(*z2, z8);
  232.  
  233.     z8.afisare("z1-z2");
  234.  
  235.     complex z9;
  236.  
  237.     z1.diferenta3(*z2, &z9);
  238.  
  239.     z9.afisare("z1-z2");
  240.  
  241.     complex z7;
  242.  
  243.     z7 = z1.produs(*z2);
  244.  
  245.     z7.afisare("Z1*z2");
  246.  
  247.     complex z10;
  248.  
  249.     z1.produs2(*z2, z10);
  250.  
  251.     z10.afisare("z1*z2");
  252.  
  253.     complex z11;
  254.  
  255.     z1.produs3(*z2, &z11);
  256.  
  257.     z11.afisare("z2*z2");
  258.     complex z12;
  259.     z12=z1.impartire(*z2);
  260.     z12.afisare("z1/z2");
  261.  
  262.  
  263.  
  264.     return 0;
  265. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement