Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using std::cout;
- using std::endl;
- class Ket
- {
- private:
- int fock;
- double liczba;
- public:
- Ket() : fock(0), liczba(1)
- {}
- Ket(int fo, double lic)
- {
- fock = fo;
- liczba = lic;
- }
- int daje_fock()
- {
- return fock;
- }
- double daje_liczbe()
- {
- return liczba;
- }
- void biore_fock(int n)
- {
- fock = n;
- }
- void biore_liczbe(double lic)
- {
- liczba = lic;
- }
- void pokazuje_ket()
- {
- cout << "Oto ket:" << liczba << "|" << fock << ">" <<endl;
- }
- Ket operator *(double hihi);
- };
- Ket Ket::operator *(double hihi)
- {
- Ket hyhy(fock, liczba*hihi);
- return hyhy;
- }
- class Bra
- {
- private:
- int fock;
- double liczba;
- public:
- Bra() : fock(0), liczba(1)
- {}
- Bra(int fo, double lic)
- {
- fock = fo;
- liczba = lic;
- }
- int daje_fock()
- {
- return fock;
- }
- double daje_liczbe()
- {
- return liczba;
- }
- void biore_fock(int n)
- {
- fock = n;
- }
- void biore_liczbe(double lic)
- {
- liczba = lic;
- }
- void pokazuje_bra()
- {
- cout << "Oto bra:" << liczba << "<" << fock << "|" <<endl;
- }
- Bra operator *(double hihi);
- };
- double operator &(Bra bra, Ket ket)
- {
- int delta;
- if (bra.daje_fock() == ket.daje_fock())
- delta = 1;
- else
- delta = 0;
- double il_skal = bra.daje_liczbe()*ket.daje_liczbe()*delta;
- return il_skal;
- }
- // <2|0> = 0, <2|2> = 1, 3<2|2>5 = 15
- Bra Bra::operator *(double hihi)
- {
- Bra hyhy(fock, liczba*hihi);
- return hyhy;
- }
- int main()
- {
- Ket mro;
- Ket pszcz(3, 2.4);
- mro.pokazuje_ket();
- pszcz.pokazuje_ket();
- Bra mra;
- double trzm = mra & pszcz;
- cout << "Iloczyn skalarny: " << trzm << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement