Advertisement
Guest User

Untitled

a guest
May 24th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. #include<iostream>
  2. using std::cout;
  3. using std::endl;
  4.  
  5. class Ket
  6. {
  7. private:
  8. int fock;
  9. double liczba;
  10. public:
  11. Ket() : fock(0), liczba(1)
  12. {}
  13. Ket(int fo, double lic)
  14. {
  15. fock = fo;
  16. liczba = lic;
  17. }
  18. int daje_fock()
  19. {
  20. return fock;
  21. }
  22. double daje_liczbe()
  23. {
  24. return liczba;
  25. }
  26. void biore_fock(int n)
  27. {
  28. fock = n;
  29. }
  30. void biore_liczbe(double lic)
  31. {
  32. liczba = lic;
  33. }
  34. void pokazuje_ket()
  35. {
  36. cout << "Oto ket:" << liczba << "|" << fock << ">" <<endl;
  37. }
  38. Ket operator *(double hihi);
  39. };
  40.  
  41. Ket Ket::operator *(double hihi)
  42. {
  43. Ket hyhy(fock, liczba*hihi);
  44. return hyhy;
  45. }
  46.  
  47.  
  48.  
  49. class Bra
  50. {
  51. private:
  52. int fock;
  53. double liczba;
  54. public:
  55.  
  56. Bra() : fock(0), liczba(1)
  57. {}
  58. Bra(int fo, double lic)
  59. {
  60. fock = fo;
  61. liczba = lic;
  62. }
  63. int daje_fock()
  64. {
  65. return fock;
  66. }
  67. double daje_liczbe()
  68. {
  69. return liczba;
  70. }
  71. void biore_fock(int n)
  72. {
  73. fock = n;
  74. }
  75. void biore_liczbe(double lic)
  76. {
  77. liczba = lic;
  78. }
  79. void pokazuje_bra()
  80. {
  81. cout << "Oto bra:" << liczba << "<" << fock << "|" <<endl;
  82. }
  83. Bra operator *(double hihi);
  84. };
  85.  
  86. double operator &(Bra bra, Ket ket)
  87. {
  88. int delta;
  89. if (bra.daje_fock() == ket.daje_fock())
  90. delta = 1;
  91. else
  92. delta = 0;
  93. double il_skal = bra.daje_liczbe()*ket.daje_liczbe()*delta;
  94. return il_skal;
  95. }
  96.  
  97. // <2|0> = 0, <2|2> = 1, 3<2|2>5 = 15
  98.  
  99.  
  100. Bra Bra::operator *(double hihi)
  101. {
  102. Bra hyhy(fock, liczba*hihi);
  103. return hyhy;
  104. }
  105.  
  106.  
  107.  
  108. int main()
  109. {
  110. Ket mro;
  111. Ket pszcz(3, 2.4);
  112. mro.pokazuje_ket();
  113. pszcz.pokazuje_ket();
  114. Bra mra;
  115. double trzm = mra & pszcz;
  116. cout << "Iloczyn skalarny: " << trzm << endl;
  117.  
  118. return 0;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement