,   CyberForum.ru

- C++

C++ , http://www.cyberforum.ru/cpp-beginners/thread1167125.html
, . !
C++ #include < Windows.h > #include < stdio.h > #include < clocale > #include < conio.h > #include < iostream > using namespace std; struct WORKER { http://www.cyberforum.ru/cpp-beginners/thread1167124.html
C++ ( ) ?
?
C++
int generation(int m, int n = 0) { int double_matrix; int single_matrix; int i,j; if(n != 0) { for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { cout << " : ";
C++ http://www.cyberforum.ru/cpp-beginners/thread1167116.html
, . . , , , , . ...
C++ - . .

MahovIV
5 / 6 / 1
: 17.09.2013
: 337
05.05.2014, 18:03    
. , , : , ,
.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <conio.h>
 
#define show(x) #x << " = " << x << "  "
#define test(x) if(x) cout << #x << endl
// Âû÷èñëå*èå ÍÎÄ = Í*èáîëüøèé îáùèé äåëèòåëü
// GCD = Greatest Common Divider (ïî-**ãëèéñêè)
long GCD( long a, long b ){ return b==0 ? a : GCD(b,a%b); }
 
// Êë*ññ "Ð*öèî**ëü**ÿ äðîáü"
class Rat {
  void init( long n, long d ){ 
    long gcd = GCD(n,d); // âû÷èñëÿåì **èáîëüøèé îáùèé äåëèòåëü ÷èñëèòåëÿ è ç**ìå**òåëÿ
    // Ñîêð*ù*åì äðîáü 
    this->n = n/gcd; 
    this->d = d/gcd; 
    curObj++; 
    constCalls++; 
  };
public:   
  static int curObj /* òåêóùåå êîë-âî îáúåêòîâ */, constCalls /* êîë-âî âûçîâîâ êî*ñòðóêòîðîâ */; 
  long n,d; // ×èñëèòåëü è ç**ìå**òåëü nominator/denominator 
  Rat(long n, long d) { init(n,d); } // "Îñ*îâ*îé" êî*ñòðóêòîð
  Rat(const Rat& x) { init(x.n,x.d); }; // Êî*ñòðóêòîð êîïèðîâ**èÿ
  Rat() { init(0,1); } // Êî*ñòðóêòîð "ïî-óìîë÷**èþ", äðîáü ð*â**ÿ 0 - 0/1
  ~Rat() { curObj--; } // Äåñòðóêòîð (óìå*üø*åò êîëè÷åñòâî îáúåêòîâ)
  // Àðèôìåòè÷åñêèå îïåð*öèè
  Rat operator+(const Rat& x) const { return Rat( n*x.d+d*x.n, d*x.d ); }
  Rat operator-(const Rat& x) const { return Rat( n*x.d-d*x.n, d*x.d ); }
  Rat operator*(const Rat& x) const { return Rat( x.n*n, x.d*d ); }
  Rat operator/(const Rat& x) const { return Rat( n*x.d, d*x.n ); }
  // Îïåð*öèè ñð*â*å*èÿ
  bool operator==(const Rat& x) const { return n*x.d == d*x.n; }
  bool operator!=(const Rat& x) const { return n*x.d != d*x.n; }
  bool operator>(const Rat& x) const { return n*x.d > d*x.n; }
  bool operator<(const Rat& x) const { return n*x.d < d*x.n; }
  bool operator>=(const Rat& x) const { return n*x.d >= d*x.n; }
  bool operator<=(const Rat& x) const { return n*x.d <= d*x.n; }
};
 
// È*èöè*ëèçèðóåì ñò*òè÷åñêèå ïåðåìå**ûå
int Rat::curObj = 0, Rat::constCalls = 0;
 
using namespace std;
 
// Ïåðåãðóçê* îïåð*öèè âûâîä* â ïîòîê äëÿ êë*ññ* "Ð*öèî**ëü**ÿ äðîáü"
ostream& operator << ( ostream& os, const Rat& x ){ return os << x.n << "/" << x.d; };
 
// Îñ*îâ**ÿ ïðîãð*ìì* - äåìî*ñòð*öèÿ âîçìîæ*îñòåé êë*ññ* "Ð*öèî**ëü**ÿ äðîáü"
void demoRat(){
     int n1, n2, d1, d2;
     cin >> n1 >> n2;
     cin >> d1 >> d2;
     Rat a(n1, n2), b(d1, d2), c = a * b + a / b;
  cout << show(a) << show(b) << endl;
  cout << show(a+b) << show(a-b) << show(a*b) << show(a/b) << endl;
  test(a==b); test(a!=b); test(a>b); test(a<b); test(a>=b); test(a<=b); test( a*b == b*a );
}
 
int main() {
  demoRat();
  cout << "Îáúåêòîâ â ï*ìÿòè = " << Rat::curObj << "   Âûçîâîâ êî*ñòðóêòîðîâ = " << Rat::constCalls << endl; 
  getch();   
  return 0;
}
, ?

43
.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <conio.h>
 
#define show(x) #x << " = " << x << "  "
#define test(x) if(x) cout << #x << endl
// Âû÷èñëå*èå ÍÎÄ = Í*èáîëüøèé îáùèé äåëèòåëü
// GCD = Greatest Common Divider (ïî-**ãëèéñêè)
long GCD( long a, long b ){ return b==0 ? a : GCD(b,a%b); }
 
// Êë*ññ "Ð*öèî**ëü**ÿ äðîáü"
class Rat {
  void init( long n, long d ){ 
    long gcd = GCD(n,d); // âû÷èñëÿåì **èáîëüøèé îáùèé äåëèòåëü ÷èñëèòåëÿ è ç**ìå**òåëÿ
    // Ñîêð*ù*åì äðîáü 
    this->n = n/gcd; 
    this->d = d/gcd; 
    curObj++; 
    constCalls++; 
  };
public:   
  static int curObj /* òåêóùåå êîë-âî îáúåêòîâ */, constCalls /* êîë-âî âûçîâîâ êî*ñòðóêòîðîâ */; 
  long n,d; // ×èñëèòåëü è ç**ìå**òåëü nominator/denominator 
  Rat(long n, long d) { init(n,d); } // "Îñ*îâ*îé" êî*ñòðóêòîð
  Rat(const Rat& x) { init(x.n,x.d); }; // Êî*ñòðóêòîð êîïèðîâ**èÿ
  Rat() { init(0,1); } // Êî*ñòðóêòîð "ïî-óìîë÷**èþ", äðîáü ð*â**ÿ 0 - 0/1
  ~Rat() { curObj--; } // Äåñòðóêòîð (óìå*üø*åò êîëè÷åñòâî îáúåêòîâ)
  // Àðèôìåòè÷åñêèå îïåð*öèè
  Rat operator+(const Rat& x) const { return Rat( n*x.d+d*x.n, d*x.d ); }
  Rat operator-(const Rat& x) const { return Rat( n*x.d-d*x.n, d*x.d ); }
  Rat operator*(const Rat& x) const { return Rat( x.n*n, x.d*d ); }
  Rat operator/(const Rat& x) const { return Rat( n*x.d, d*x.n ); }
  // Îïåð*öèè ñð*â*å*èÿ
  bool operator==(const Rat& x) const { return n*x.d == d*x.n; }
  bool operator!=(const Rat& x) const { return n*x.d != d*x.n; }
  bool operator>(const Rat& x) const { return n*x.d > d*x.n; }
  bool operator<(const Rat& x) const { return n*x.d < d*x.n; }
  bool operator>=(const Rat& x) const { return n*x.d >= d*x.n; }
  bool operator<=(const Rat& x) const { return n*x.d <= d*x.n; }
};
 
// È*èöè*ëèçèðóåì ñò*òè÷åñêèå ïåðåìå**ûå
int Rat::curObj = 0, Rat::constCalls = 0;
 
using namespace std;
 
// Ïåðåãðóçê* îïåð*öèè âûâîä* â ïîòîê äëÿ êë*ññ* "Ð*öèî**ëü**ÿ äðîáü"
ostream& operator << ( ostream& os, const Rat& x ){ return os << x.n << "/" << x.d; };
 
// Îñ*îâ**ÿ ïðîãð*ìì* - äåìî*ñòð*öèÿ âîçìîæ*îñòåé êë*ññ* "Ð*öèî**ëü**ÿ äðîáü"
void demoRat(){
     int n, n1, n2, d, d1, d2;
     cin >> n>> n1 >> n2;
     cin >> d>> d1 >> d2;
     n1 = n*n2+n1;
     d1=d*d2+d1;
     Rat a(n1, n2), b(d1, d2), c = a * b + a / b;
  cout << show(a) << show(b) << endl;
  cout << show(a+b) << show(a-b) << show(a*b) << show(a/b) << endl;
  test(a==b); test(a!=b); test(a>b); test(a<b); test(a>=b); test(a<=b); test( a*b == b*a );
}
 
int main() {
  demoRat();
  cout << "Îáúåêòîâ â ï*ìÿòè = " << Rat::curObj << "   Âûçîâîâ êî*ñòðóêòîðîâ = " << Rat::constCalls << endl; 
  getch();   
  return 0;
}
?

1
?

17
?
.
 
: 02:54. GMT +3.
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
@Mail.ru