,   CyberForum.ru

- C++

 
4A
1 / 1 / 0
: 05.05.2011
: 66
01.07.2012, 14:41     #1
. , ..
!
Similar
41792 / 34177 / 6122
: 12.04.2006
: 57,940
01.07.2012, 14:41    
:

. C++
C++ .
C++
C++
C++
.
Andrey.K
   Andrey.K
338 / 259 / 15
: 14.11.2010
: 480
01.07.2012, 15:06     #2
:
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
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
class Man //  
{
    int age;//  
    string name;//  
public:
    void SetMan(int a,string n) { age=a; name=n; }//   
    int GetAge() { return age; } //   
    string GetName() { return name; }//   
};
int main()
{
    setlocale(0,"Rus");
    Man man1,man2;//  
    man1.SetMan(35,"");// 
    man2.SetMan(3,"");//
    cout<<"  1: "<<man1.GetAge()<<endl;//   1 
    cout<<"  2: "<<man2.GetName()<<endl;//   2 
    getch();
    return 0;
}
4A
1 / 1 / 0
: 05.05.2011
: 66
01.07.2012, 16:04  []     #3
, -?
MrGluck
 ++
   MrGluck
4927 / 2670 / 243
: 29.11.2010
: 7,429
01.07.2012, 16:11     #4
4A
, -?
? . , , , ?
4A
1 / 1 / 0
: 05.05.2011
: 66
01.07.2012, 16:16  []     #5
, , . , , .. - , , ) )
taras atavin
.
   taras atavin
3569 / 1752 / 91
: 24.11.2009
: 27,619
01.07.2012, 16:18     #6
4A, , . ?
taras atavin
.
   taras atavin
3569 / 1752 / 91
: 24.11.2009
: 27,619
01.07.2012, 16:21     #7
?
 : rar SeaJackals.rar (1.56 , 24 )
4A
1 / 1 / 0
: 05.05.2011
: 66
01.07.2012, 16:21  []     #8
, , )
taras atavin
.
   taras atavin
3569 / 1752 / 91
: 24.11.2009
: 27,619
01.07.2012, 16:22     #9
TControrl , TStatuses , TKeys .
MrGluck
 ++
   MrGluck
4927 / 2670 / 243
: 29.11.2010
: 7,429
01.07.2012, 16:26     #10
4A, -
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
#include <iostream>
#include <clocale>
#include <conio.h>
#include <fstream>
#include <vector>
using namespace std;
 
struct node
{
    int Key; 
    int bal; 
    node *Left, *Right;
};
 
class TREE 
{
  private:
    // h - ôë*ã, ñèã**ëèçèðóþùèé îá óâåëè÷å*èè âûñîòû ïîääåðåâ*:
    // true - âûñîò* ïîääåðåâ* óâåëè÷èë*ñü, 
    // false - âûñîò* ïîääåðåâ* *å óâåëè÷èë*ñü.
    bool h;
    node *Tree;
  public:
    TREE() {Tree = NULL; h = false;}
    void Search (int, node **);
    void Print (node **, int);
    void Traversal (node **, ofstream&);
    node** GetTree() {return &Tree;}
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
    TREE A;
    int choose, el;
    cout<< "1. Ç*ãðóçèòü ïîñëåäîâ*òåëü*îñòü ñ ô*éë*\n"
        << "2. Ââåñòè ïîñëåäîâ*òåëü*îñòü âðó÷*óþ\n\n"
        << "Â*ø âûáîð: ";
    do{ cin>> choose;} while(choose != 1 && choose != 2);
    vector <int> v;
    vector <int>::iterator cur;
    if (choose == 1)
    {        
        ifstream iz("bin.txt");
        if (iz.bad()) return 1;
        while(!iz.eof() && iz>> el)
            v.push_back(el);        
        iz.close();
    }
    
    if (choose == 2)
    {
        cout<< "È*ôîðì*öèî**ûå ïîëÿ âåðøè* äåðåâ*:\n";
        while(cin>> el)
            v.push_back(el);
    }
    
    sort (v.begin(), v.end());
    for (cur = v.begin(); cur < v.end(); cur++)
            A.Search (*cur, A.GetTree());        
    // Ã.Ì.Àäåëüñî*-Âåëüñêèé è Å.Ì.Ë**äèñ   
    cout<< "\nÀÂË-äåðåâî:\n\n"; 
    A.Print (A.GetTree(), 0);
    ofstream o("bin.txt");
    A.Traversal (A.GetTree(), o);
    getch();
    o.close();
    return 0;
}
 
void TREE::Search (int x, node **p)
// x - êëþ÷ âåðøè*û, ïîìåù*åìîé â ÀÂË-äåðåâî.
// *p - óê*ç*òåëü ** êîðå*ü ÀÂË-äåðåâ*.
// h - ôë*ã, ñèã**ëèçèðóþùèé îá óâåëè÷å*èè âûñîòû ïîääåðåâ*:
// true - âûñîò* ïîääåðåâ* óâåëè÷èë*ñü, 
// false - âûñîò* ïîääåðåâ* *å óâåëè÷èë*ñü.
// Ïðè ïåðâîì îáð*ùå*èè ê ôó*êöèè Search() h=false.
{
    node *p1, *p2;
    h = false;
    if (*p == NULL) // åñëè óê*ç*òåëü ** äåðåâî ð*âå* 0
    {  
        *p = new(node);
        h = true; 
        (**p).Key = x; 
        (**p).Left = (**p).Right = NULL;
        (**p).bal = 0; 
    }
    else 
    if (x <= (**p).Key) 
    {
        Search (x, &((**p).Left)); 
        if (h == true)
            switch ((**p).bal) 
            { 
                case 1 :  (**p).bal = 0; h = false; break; 
                case 0 : (**p).bal = -1; break; 
                case -1: 
                          p1 = (**p).Left; 
                          if ((*p1).bal==-1) 
                          {    
                              (**p).Left = (*p1).Right; 
                              (*p1).Right = *p; 
                              (**p).bal = 0; 
                              *p = p1; 
                          } 
                          else 
                          {
                              p2 = (*p1).Right; 
                              (*p1).Right = (*p2).Left; 
                              (*p2).Left = p1; 
                              (**p).Left = (*p2).Right; 
                              (*p2).Right = *p;
                              if ((*p2).bal == -1) 
                                  (**p).bal = 1; 
                              else 
                                  (**p).bal = 0; 
                              if ((*p2).bal == 1) 
                                  (*p1).bal = -1; 
                              else 
                                  (*p1).bal = 0;
                              *p = p2;
                          } 
                          (**p).bal = 0; 
                          h = false; 
                          break; 
            } // switch ((**p).bal)
    } // if (x <= (**p).Key) 
    if (x > (**p).Key) 
    {    
        Search (x, &((**p).Right)); 
        if (h == true)
            switch ((**p).bal) 
            { 
                case -1: (**p).bal = 0; h = false; break; 
                case  0: (**p).bal = 1; break;
                case  1:
                          p1 = (**p).Right; 
                          if ((*p1).bal == 1) 
                          {
                              (**p).Right = (*p1).Left; 
                              (*p1).Left = *p; 
                              (**p).bal = 0; 
                              *p = p1; 
                          } 
                          else
                          {
                               p2 = (*p1).Left; 
                               (*p1).Left = (*p2).Right; 
                               (*p2).Right = p1; 
                               (**p).Right = (*p2).Left; 
                               (*p2).Left = *p; 
                               if ((*p2).bal == 1) 
                                   (**p).bal = -1; 
                               else 
                                   (**p).bal = 0; 
                               if ((*p2).bal == -1) 
                                   (*p1).bal = 1; 
                               else 
                                   (*p1).bal = 0; 
                               *p = p2; 
                          } 
                          (**p).bal = 0; 
                          h = false; 
                          break;
             } //switch ((**p).bal) 
    } //if (x > (**p).Key) 
} // void TREE::Search (int x, node **p)
 
void TREE::Print (node **w, int lvl)
//Èçîáð*æå*èå äåðåâ* w ** ýêð**å äèñïëåÿ
//         (ðåêóðñèâ*ûé *ëãîðèòì).
//*w - óê*ç*òåëü ** êîðå*ü äåðåâ*.
{
    if  (*w != NULL)
    {
        Print (&((**w).Right), lvl + 1);
        for (int i = 0; i < lvl; i++) 
            cout<< "   ";
        cout<< (**w).Key<< endl;
        Print (&((**w).Left), lvl + 1);
    }
}
 
void TREE::Traversal (node **w, ofstream& o)
//*w - óê*ç*òåëü ** êîðå*ü äåðåâ*.
{
    if  (*w != NULL)
    {
        Traversal (&((**w).Left), o);
        o<< (**w).Key<< " ";
        Traversal (&((**w).Right), o);                      
    }
}
2
- :
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <iostream>
#include <conio.h>
#include <clocale>
#include <iomanip>
#include <cmath>
using namespace std;
 
class Quadrilateral // ÷åòûðåõóãîëü*èê
{
    public:
           Quadrilateral(float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4)
           {
                cout<<"Êî*ñòðóêòîð êë*ññ* Quadrilateral\n"; 
                x[0]=x1; y[0]=y1;
                x[1]=x2; y[1]=y2;
                x[2]=x3; y[2]=y3;
                x[3]=x4; y[3]=y4;
           }
           void paintq() 
           {
                for (int i=0; i<4; i++)
                    cout<<"Êîîðäè**òû òî÷êè: "<<i+1<<" ("<<x[i]<<", "<<y[i]<<")"<<endl;
           }
           void set(float a1,float b1,float a2,float b2,float a3,float b3,float a4,float b4)
           {
                x[0]=a1; y[0]=b1;
                x[1]=a2; y[1]=b2;
                x[2]=a3; y[2]=b3;
                x[3]=a4; y[3]=b4;
           }
    protected:
              float x[4], y[4];
};
 
class Parallelogram: public Quadrilateral
{
      public:
             Parallelogram(float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4):
             Quadrilateral(x1, y1, x2, y2, x3, y3, x4, y4)                                 
             {
                 cout<<"Êî*ñòðóêòîð êë*ññ* Parallelogram\n"; 
                 storona1 = sqrt ((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
                 storona2 = sqrt ((x4-x3)*(x4-x3) + (y4-y3)*(y4-y3));
             }
             void paintp()
             {
                  cout<< "Ñòîðî*û ð*â*û: "<< storona1<< " è "<< storona2<< endl;
             }                  
      protected:
                float storona1, storona2;
};
 
class Trapezoid: public Parallelogram
{
      public:
             Trapezoid(float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4): 
             Parallelogram(x1, y1, x2, y2, x3, y3, x4, y4) 
             {
                 cout<<"Êî*ñòðóêòîð êë*ññ* Trapezoid\n"; 
                 storona = sqrt ((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
             }
             void paintt() {cout<< "Ñòîðî*û ð*â*û: "<< storona<< endl; }
      protected:
                float storona;
};
 
class Rectangle: public Parallelogram //ïðÿìîóãîëü*èê
{
      public:
             Rectangle(float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4): 
             Parallelogram(x1, y1, x2, y2, x3, y3, x4, y4) 
             {
                 cout<<"Êî*ñòðóêòîð êë*ññ* Rectangle\n"; 
                 area(); 
                 storona1 = sqrt ((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
                 storona2 = sqrt ((x4-x3)*(x4-x3) + (y4-y3)*(y4-y3));
             };
             float area() 
             {
                   rarea = storona1 * storona2; 
                   return rarea; 
             };
      protected:
                float rarea, storona1, storona2;
};
 
class Square: public  Rectangle//êâ*äð*ò
{
      public:
             Square(float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4): 
                   Rectangle(x1, y1, x2, y2, x3, y3, x4, y4) 
                   {
                       cout<<"Êî*ñòðóêòîð êë*ññ* Square\n"; 
                       diag(); 
                   };
             float diag() 
             {
                   diagonal = storona1 * sqrt(2); 
                   return diagonal; 
             };
      protected:
                float diagonal;
};
 
int main()
{
    setlocale(LC_ALL,"Russian");
    Square s1(0, 0, 2, 0, 2, 2, 0, 2);
    s1.paintq();
    s1.paintp();
    cout<< "Ïëîù*äü ð*â**: "<< s1.area()<< endl;
    cout<< "Äè*ãî**ëü ð*â**: "<< s1.diag()<< endl;
    Square s2(0, 3, 3, 0, 3, 3, 0, 3);
    s2.paintq();
    s2.paintp();    
    cout<< "Ïëîù*äü ð*â**: "<< s2.area()<< endl;
    cout<< "Äè*ãî**ëü ð*â**: "<< s2.diag()<< endl;
    getch();
    return 0;
}
MoreAnswers
37091 / 29110 / 5898
: 17.06.2006
: 43,301
01.07.2012, 16:27    
:

. Employee C++
C++ ,



:
4A
1 / 1 / 0
: 05.05.2011
: 66
01.07.2012, 16:27  []     #11
, ! !)
Yandex
01.07.2012, 16:27    

: 05:01. GMT +3.
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
@Mail.ru