C++ xelnii surax bichig
-
Upload
e-gazarchin-online-university -
Category
Documents
-
view
116 -
download
14
Transcript of C++ xelnii surax bichig
-
1
-- --
-- --
--
-
2
. . , . , . , . . . . , , 313682, 323956 . .
.
. .
, . : , , , , , , , , . .
-
3
, . .
. . .
. . Microsoft Word, Excel, Access, PowerPoint, PageMaker Microsoft Windows . . . C++ .
. :
1. ( Designing ) 2. ( Coding ) 3. ( Compilnig ) 4. ( Testing ) 5. ( Developing ) 1. .
. , , . . , 2 . . 2 . 2 . 2 1
-
4
1 , 2 . , , 3- .
2. . , . , . , C++- .
3. . Compile Run . . . , , , . 2- . .
4. . . , . , .
5. . , , , , . , .
-
5
,,
. . , . C++- .
asm auto break case catch char class const continue default delete do double else enum extern float for friend goto if inline int long new operator private protected public register return short signed sizeof static struct switch template this throw try typedef union unsigned virtual void volatile while ,
, , . . :
1 .
. . .. +, -, *, /, ?, !, `, ~, , ,
;, :, @, #, $, %, ^, &, (, ), =, \, {, }, [, ], , .
. . ,
. , Fvar fvar .
-
6
.
.
. . . DEFINE .
#define
.
#define month 12 // #define degree 30 // #define pi 3.1412 // #define name . // #define question Sure? //
//
. . .
. 23 , 100 . 100 23 . . 25 . 23 25 .
-
7
. 23 . ,
#define num 23
, num
.
#define num 25
.
23 25 .
# #define . #define , 3- .
. , , . , . . ++- .
char 0..9,A..Z,a..z,*/+-@#$%^&*(){}[];;.,?`~
short -128..127 unsigned short 0..255 int -32768..32767 unsigned int 0..65535 long -2147483648.. 2147483647 unsigned long 0..4294967295
-
8
float 1.17549435e-38..3.40282347e+38 double 2.2250738585072014e-308 ..
1.7976931348623157e+308
.
.
,
, . .
int ivar1; // int ivar2=-10; // float fvar1=2.57; // unsigned int ivar3=500; // char ch1,ch2=*,ch3; //
.
.
2 .
, .
, .
,,
-
9
. . . .. . . , 640000 640000 640000 . . . 640000 0, 639999 .
, . . .
char 1 short 1
unsigned short 1 signed int 2
unsigned int 2 long 4
unsigned long 4
. , , , .
-
10
( ) ? . . . , (0 1) . , . 8 . 28=256 . 10 . 10- . 0 1 2- 2- . 10- 2- .
10- 156 .
156=1*102+5*101+6*100
10- . 2-
: 156=1*27+1*24+1*23+1*22
156=1*27+0*26+0*25+1*24+1*23+1*22+0*21+0*20
-
11
. 2- 10011100
. 10-
10- 2- 2- .
10- 2-
0 00000000 1 00000001 2 00000010 3 00000011 4 00000100 5 00000101 6 00000110 7 00000111 8 00001000
. . . . . . . . . . 255 11111111
.
.
8 .
. .
.
-
12
. .
CCOONNSSTT
. const . #define .
#define =
:
const int month=12 const int degree=30 const double pi=3.1412 const char name[]=. const char question[]=Sure?
. . const . #define . . .
a = pi * 2
. pi const
pi - . , .
-
13
#define pi .
a = 3.1412 * 2
.
++ - , , . . . *.h .
//defs.h void fun1() { } //my.cpp #include defs.h void main() { . . . . . fun1(); . . . . . }
#include
( ) .
-
14
. ++ . ++- , . Borland C++- library . #include . ( ) , (< >) . , , , math.h .
#include
.
CC++++
. , .
.
//hello.cpp #include #define greeting = ?; void main() { cout
-
15
Compile Run .
?
.
.
. . 2- iostream.h . . greeting .
void main()
. C++- ( {} ) . , , . . . .
cout
-
16
( *.EXE ) . .
. .
. .
. , , , .
-
17
2 . C++- 2 .
. . #define const .
. . .
, . 1 . . 1 8 256 .
, , . #include .
-
18
22--
--
-- --
-- --
-
19
22--
. ( ) . .. . . 2 .
, . . 2 .
. C++ (char, int, float .) ( ) . , , . . : 2 , .
RELAT .
//relat.cpp #include void main()
-
20
{ int numb; cout > numb; cout
-
21
< == != >= =44) (harry!=12) (7
-
22
. . . C++ for, while, do 3 .
FFOORR
C++- , . for BASIC . . . .
0- 14 FORDEMO .
//Fordemo.cpp #include void main() { int j; for (j=0; j
-
23
0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 ? For for 3 . , , . ( ) . j . . cout
-
24
. . . .
. j- 1- . ++j . j- . . --j j- .
j=j+1 j=j-1
.
. += -= . .
j+=3 j-=5
-
25
j- 3- ( 5- ) . .
j=j+3 j=j-5
?? 15
. j- 0 j 14 . . j = 15 . . 0- , , .
. ( { } ) . .
Cubelist . 1- 10 .
//cubelist.cpp #include
-
26
#include void main() { int numb; for (numb=1; numb
-
27
. . int cube .
int cube=numb*numb*numb;
.
cube=10; cube .
. .
.. . For 1 , cubelist . . .
.
-
28
for (numb=1; numb
-
29
Watch , . . .
Watch . .
FFOORR
, . . Factor ( ). : 5- 5*4*3*2*1=120 .
//factor.cpp void main() { unsigned int numb; unsigned long fact=1; cout > numb; for (int j=numb; j>0; j--) fact*=j; cout
-
30
numb, 1 (numb > 0), 1- . unsigned long . :
: 10 3628800
FFOORR .
j .
for (int j=numb; j>0; j--)
C++- .
. .
For
. ( , ) .
-
31
. .
For (j=0, alpha=100; j>n; }
. .
1
-
32
27 33 144 9 0
While for
. .
. 0 n!=0 .
: .
cin >> n .
WWhhiillee While4 while
. Cubelist Cubelist 4 . 4 4 9999- . 4 . .
-
33
//while4.cpp #include #include void main() { int pow=1; int numb=1; while (pow
-
34
. .
1 1 2 3 5 8 13 21 34 55 ..
. . , .
//fibo.cpp #include void main() { const unsigned long limit=4294967295; unsigned long next=0; unsigned long last=0; while (next
-
35
267914296 433494437 701408733 1134903170 1836311903 2971295073
unsigned long . while . Limit . .
(next
-
36
do .
Divdo , .
//divdo.cpp #include void main() { long dividend, divisor; char ch; do { cout > dividend; cout > divisor; cout
-
37
. .
: 11 : 3 3, 2 ? (Y/N) y : 222 : 17 13, 1 ? (Y/N) n
??
. For . do while . .
. , ?
-
38
. , ; , , ; , ..
. . C++- . Ifelse . ( else - .) 2 switch . . .
IIFF IF
. Ifdemo .
//ifdemo.cpp #include void main() { int x; cout > x; if (x>100) cout
-
39
If . If While . If , While - . .
: 2000 100-
100-
.
IIFF
() .
//if2.cpp #include void main() { int x; cout > x; if (x>100) { cout
-
40
: 12345 12345 100-
. .. , , , . prime- . .( 1 .)
//prime.cpp #include #include void main() { unsigned long n, j; cout > n; for (j=2; j
-
41
0- . . :
: 13 : 22229 : 22231 11- .
(
.)
for {} . If .
EExxiitt (())
. exit . . . 0 . ( (*.bat) errorlevel .)
-
42
IIFF EELLSSEE if
. . , ifelse .
if () { } else { }
. ifelse.cpp
.
//ifelse.cpp #include void main() { int x; cout > x; if (x>100) cout
-
43
while ifelse . getche . Chcount .
//chcount.cpp #include #include void main() { int chcount=0; int wdcount=1; char ch=a; while (ch!=\r) { ch=getche(); if (ch= ) wdcount++; else chcount++; } cout
-
44
ch . ( getch() getche() .)
space ( ) wdcount , chcount . .. . . :
This is an example =4 =15
ENTER
getche() \r .
//chcnt2.cpp #include #include void main() { int chcount=0; int wdcount=1; char ch; while ((ch=getche())!=\r) { if (ch= ) wdcount++; else chcount++;
-
45
} cout
-
46
adifelse .
//adifelse.cpp #include #include void main() { char dir=a; int x=10, y=10; cout
-
47
, . .
: 10,10 (n, s, e, w): n : 10,9 (n, s, e, w): e : 11,9 (n, s, e, w):
.
. . . . .
ifelse
. .
//badelse.cpp #include void main() { int a, b, c; cout > a >> b >> c; if (a==b) if (b==c)
-
48
cout
-
49
SSWWIITTCCHH
, switch . . .
//platters.cpp #include void main() { int speed; cout > speed; switch(speed) { case 33: cout
-
50
( ) . :
33, 45, 78- : 33
BBrreeaakk case break
. ( !) . , case . break .
DDEEFFAAUULLTT
//adswitch.cpp #include #include void main() { char dir=a; int x=10, y=10; while (dir!=\r) { cout
-
51
case n : y--; break; case s : y++; break; case e : x++; break; case w : x--; break; case \r : cout \n; break; default : cout \n; break; } } }
Adswitch switch
Default . case- default . Try again . break .
SSwwiittcchh IIffeellssee switch , ifelse
? .
If (SteamPressure*Factor>56) . . . . . else if (VoltageIn+VoltageOut
-
52
ifelse . switch- . (a
-
53
2 .
Min=(Alpha
-
54
. 8- , . .
cout
-
55
AANNDD C++
. Advenand.cpp Adswitch . (7,11) , .
//advenand.cpp #include #include #include void main() { char dir=a; int x=10, y=10; while (dir!=\r) { cout
-
56
If x 7-, y 11- . and && . x==7, y==11 . . C++- 3 .
&& AND || OR ! NOT
OORR
. . Advenor.cpp .
//advenor.cpp #include #include #include void main() { char dir=a; int x=10, y=10; while (dir!=\r) { cout
-
57
case n: y--; break; case s: y++; break; case e: x++; break; case w: x--; break; } } }
If x 15- , x
15- . .
NNOOTT not
. ( 2 , 3 ). . ! , . : x 7 (x==7) , !(x==7) .
. . . C++ 0
-
58
, 0- .
7- , . 7- .
//advenor.cpp #include #include #include void main() { char dir=a; int x=10, y=10; while (dir!=\r) { cout
-
59
. ( ) . ( ) .
I !, ++, --, -
II *, /, % III +, -
IV , = V ==, !=
VI && VII ||
VIII ? :
IX =, +=, -=, *=, /=, %=
C++-
. switch break . . conitinue, goto 2 .
-
60
BBRREEAAKK
. . Showprim .
//showprim.cpp #include #include void main() { const unsigned char WHITE=219; const unsigned char GRAY=176; unsigned char ch; for (int count=0; count
-
61
ch- GRAY , . , . Break .
CCoonnttiinnuuee break
. , . .. . continue .
divdo . . . 0 0- , Division by zero . , divdo2 .
//divdo2.cpp #include void main() { long dividend, divisor; char ch; do { cout > dividend; cout > divisor; if (divisor==0) {
-
62
cout
-
63
, . . 0- , 0- .
C++- 3 . for . while do .
, . .
4 . If . ifelse , . switch . , 2 .
and or , not .
break , continue , . goto .
-
64
. : , , , , , .
-
65
33--
-- --
--
-
66
33--
float, int, char
. . , , . , . C++- .
.
. . .
C++- . OOP- . Basic Pascal (record) .
. , , ,
-
67
. , .
//parts.cpp #include struct part { int partnum; int modelnum; float cost; }; void main() { part part1; part1.partnum=6244; part1.modelnum=373; part1.cost=217.55; cout
-
68
struct part { int partnum; int modelnum; float cost; };
.
Struct . . 3 . ( ; ) . ( .).
:
part part1; part part1
. . ? 3 . 2 , 4 , 8 .
struct C++- . .. struct part part1 .
-
69
. .
part1.partnum=6244;
, ( . ), 3 . part1- partnum . , . . .
. .
//partscom.cpp #include struct { int partnum; int modelnum; float cost;
-
70
} part1; void main() { part1.partnum=6244; part1.modelnum=373; part1.cost=217.55; cout
-
71
cout
-
72
struct Distance { int feet; float inches; }; void main() { Distance d1, d3; Distance d2=(11, 6.25); cout > d1.feet; cout > d1.inches; d3.inches=d1.inches+d2.inches; d3.feet=0; if (d3.inches >=12.0) { d3.inches-=12.0; d3.feet++; } d3.feet+=d1.feet+d2.feet; cout
-
73
d3 = d1 + d2 . Int, float header . .
. , 2 , distance .
//englarea.cpp #include struct Distance { int feet; float inches; }; struct Room { Distance length; Distance width; }; void main() { Room dining; Dining.length.feet=13; Dining.length.inches=6.5; Dining.width.feet=10;
-
74
Dining.width.inches=0.0; Float l=Dining.length.feet+Dining.length.inches/12; Float w=Dining.width.feet+Dining.width.inches/12; cout
-
75
Room distance . . distance {13, 6.5} , distance {10, 0.0} .
.
. Cardsharp 3 , . . .
struct card { int number; int suit; }
2- 14
. 11- 14 , , , . 0- 3 . , , , .
const int clubs=0; // const int diamonds=1; // const int hearts=2; // const int spades=3; // const int jack=11; // const int queen=12; //
-
76
const int king=13; // const int ace=14; // struct card { int number; int suit; } void main() { card temp, chosen, prize; int position; card card1={7, clubs}; cout
-
77
} if (chosen.number==prize.number && chosen.suit==prize.suit) cout
-
78
. . . Pascal .
. .
//dayenum.cpp #include enum days_of_week {Sun,Mon,Tue,Wed,Thu,Fri,Sat}; void main() { days_of_week day1, day2; day1=Mon; day2=Thu; int diff=day2 day1; cout
-
79
enum . , . . 7 . .
. day1, day2 . . Day1 Mon , day2 Thu . . . :
=3 1- 2- .
. . 0, 1 . Sun 0, Sat 6 . day1 = 5 . .
C++-
.
-
80
.
chcount . space ( ) . .
//wdcount.cpp #include #include enum boolean {false,true}; void main() { boolean isWord=false; char ch=a; int wordcount=0; do { ch=getche(); if (ch== || ch==\r) { if (isWord) { wordcount++; isWord=false; } } else if (!isWord) isWord=true; } while (ch!=\r); cout
-
81
, . . isWord . isWord . if else , else .
.
//cardenum.cpp #include const int jack=11; // const int queen=12; // const int king=13; // const int ace=14; // enum Suit {clubs,diamonds,hearts,spades}; struct card { int number; Suit suit; } void main()
-
82
{ card temp, chosen, prize; int position; card card1={7,clubs}; cout
-
83
0 . , 0- .
Enum Suit {clubs=1,diamonds,hearts,spades};
diamonds = 2, hearts = 3, spades
= 4 . . , . :
day1.suit=hearts; cout
-
84
. , . .
, . .
-
85
44--
--,,
-- --
-- --
--
-
86
44--
,
. .
. . .
Basic- , Pascal- .
, (*) .
//table.cpp #include void starline(); void main() { starline(); cout
-
87
} void starline() { for (int j=0; j
-
88
Void , . void . . (;) . prototype () .
3 . .
starline();
,
. (;) . .. . , .
. .
void starline() { for (int j=0; j
-
89
. , , .
. .
//table2.cpp #include void starline() { for (int j=0; j
-
90
. .
starline () . .
//tablearg.cpp #include void repchar(char, int); void main() { repchar(-, 43); cout
-
91
. . repchar () 2 . .
repchar(-, 43);
,
. .
------------------------------------------- =========================================== char -128 to 127 int -32768 to 32767 double -2147483648 to 2147483647 -------------------------------------------
, .
void repchar(char, int);
,
ch n . . , , .
-
92
. . .
//vararg.cpp #include void repchar(char, int); void main() { char chin; int nin; cout > chin; cout > nin; repchar(chin, nin); } void repchar(char ch, int n) { for (int j=0; j
-
93
.
. distance .
//engldisp.cpp #include struct Distance { int feet; float inches; }; void engldisp(Distance); void main() { Distance d1, d2; Cout > d1.feet; Cout > d1.inches; Cout > d2.feet; Cout > d2.inches; Cout
-
94
{ cout
-
95
( char ch , int n ), . . . .
. . .
//convert.cpp #include float lbstokg(float); void main() { float lbs, kgs; cout > lbs; kgs=lbstokg(lbs); cout
-
96
:
() : 182 () 82.553741
. . void . lbstokg .
. , .
kgs=lbstokg(lbs);
lbstokg kgs
.
rreettuurrnn lbstokg pounds
. kilograms . return .
return kilograms;
-
97
kgs
. , . . (void ) int . :
Somefunc();
int
.
convert - convert2 .
//convert2.cpp #include float lbstokg(float); void main() { float lbs; cout > lbs; cout
-
98
return 0.453592*pounds; }
kgs
. lbstokg kilograms , . .
.
//retstrc.cpp #include struct Distance { int feet; float inches; }; Distance addeng(Distance, Distance); void engldisp (Distance); void main() { Distance d1, d2, d3; Cout > d1.feet; Cout > d1.inches; Cout > d2.feet;
-
99
Cout > d2.inches; d3=addeng(d1, d2); Engldisp(d1); cout
-
100
. dd3 . main()- 3 . .
. , . , . .
. , . . .
-
101
.
//ref.cpp #include void main() { void intfrac(float, float &, float &); float number, intpart, fracpart; do { cout > number; intfrac(number, intpart, fracpart); cout
-
102
. . Return . . , ( & ) . , . .. fpart fracpart . fpart fracpart . ( & ) . . , , . n number . , .
.
, . order .
-
103
//reforder.cpp #include void main() { void order(int &,int &); int n1=99, n2=11; int n3=22, n4=88; order(n1, n2); order(n3, n4); cout
-
104
numb1 n1- , numb2 n2- numb1 n3- , numb2 n4- . . , . . , .
Distance
() . : 6 8 0.5 4 3 .
//referst.cpp #include struct Distance { int feet; float inches; }; void scale(Distance &, float); void engldisp(Distance); void main() { Distance d1={12, 6.5}, Distance d2={10, 5.5},
-
105
Cout
-
106
3 . .
. , , .
(*) 45
starline() , repchar() . 45 charline() . 3 . 3 , help 3 . .
//overload.cpp #include void repchar(); void repchar(char); void repchar(char, int);
-
107
void main() { repchar(); repchar(=); repchar(+, 30); } void repchar(); { for (int j=0;
-
108
.
. Distance , float .
//overengl.cpp #include struct Distance { int feet; float inches; }; void engldisp(Distance); void engldisp(float); void main() { Distance d1; float d2; cout > d1.feet; cout > d1.inches; cout > d2; cout
-
109
void engldisp(Distance); { cout
-
110
. . , .
. , , , , , .
. . . ( ), . , , .
-
111
. .
//inline.cpp #include inline float lbstokg(float pounds) { return 0.453592 * pounds; } void main() { float lbs; cout > lbs; cout
-
112
.
overload .
} void repchar(char ch, int n); { for (int j=0;
-
113
. , .
. Distance , float .
//overengl.cpp #include struct Distance { int feet; float inches; }; void engldisp(Distance); void engldisp(float); void main() { Distance d1; float d2; cout > d1.feet; cout > d1.inches; cout > d2; cout
-
114
void engldisp(Distance); { cout
-
115
. . , .
. , , , , , .
. . . ( ), . , , .
-
116
. .
//inline.cpp #include inline float lbstokg(float pounds) { return 0.453592 * pounds; } void main() { float lbs; cout > lbs; cout
-
117
.
overload .
//missarg.cpp #include void repchar(char=*, int=45); void main() { repchar(); repchar(=); repchar(+,30); } void repchar(char ch,int n); { for (int j=0; j
-
118
.
void repchar(char ch=*, int n=45);
,
. .. , repchar(30) . 2 . .
repchar(, 30)
( 100 ). .
. , , 3 .
-
119
.
void somefunc() { int somevar; float othervar; // }
. auto .
void somefunc() { auto int somevar; auto float othervar; // }
. .
-
120
( ). somevar othervar somefunc . . , . , . . . , , .
. , unknown variable ( ) . .
void somefunc() { int somevar; float othervar;
-
121
somevar=10; othervar=123.45; nextvar=15; // } void main() { int nextvar; somevar=20; // othervar=987.65; // nextvar=35; }
nextvar
. somevar othervar . . .
. 0 . . , . .
int n=33;
-
122
.
. . .
//extern.cpp #include #include char ch=a; void getachar(); void putachar(); void main() { while (ch!=\r) { getachar(); putachar(); } } void getachar(); { ch=getch(); } void putachar(); { cout
-
123
} getachar
. putachar . .
I`m typing
ch
, . . .
. . . , .
-
124
. , . 0 .
. , . . ch , .
.
. 15 .
. , , ( ) .
-
125
. getavg() .
//static.cpp #include float getavg(float); void main() { float data=1, avg; while (data!=0) { cout > data; avg=getavg(data); cout
-
126
. , 0 . total, count .
. ( ).
.
0 0
.
-
127
.
//retref.cpp #include int x; int& setx(); void main() { setx()=92; cout
-
128
. , . , (.. ) . . int , .
int ( *ptr ) ()
.
int ( *ptr )
int .
int *ptr () ,
int .
-
129
. . , . . , .
. 1- N N- . , 1- 1, 2- 2, 3- 6, 7- 5040 . 0- 1 . N! .
1! = 1 2! = 1*2 3! = 1*2*3 10! = 1*2*3*4*5*6*7*8*9*10 N! = 1*2*3**(N-1)*N
.
N! = 1*2*3**(N-1)*N = N*(N-1)**3*2*1 = N*(N-1)! N- (N-1)-
N- . . N- (N-1)- . (N-1)- (N-2)-
-
130
. 1- 1 . .
5! 5*4!
4! 4*3!
3! 3*2!
2! 2*1!
1! 1
,
. .
1! 1
2! 2*1! = 2*1 = 2
3! 3*2! = 3*2 = 6
4! 4*3! = 4*6 = 24
5! 5*4! = 5*24 = 120
.
void main() { int num; cout
-
131
cin >> num; if (num
-
132
) )
fact (4-
)
fact (5-
) 1 1
main fact 5
. 1- 5*fact(4) . fact 4 . 1- . 4*fact(3) fact 3 . fact 1 1 4 fact . 2*1 2 3 fact , 3*2=6 2 fact , 4*6=24 1 fact , 5*24=120 main .
. , . , . (num
-
133
if (num
-
134
x GETS_VALUE_OF y;
if (x==y)
if (x EQUALS y) .
#define .
#define
. \ . .. .
#define GETS_VALUE_OF \
=
. .
-
135
. #define- . .
#define EQUALS == #define EQ EQUALS
. .
#define NINE 9
#define
. .. , . , EQUALS == .
#define . . . .
#define PRESS_KEY \ cout
-
136
void main() { . . . . . PRESS_KEY; . . . . . }
#define \ .
. . .
++- . . , .
#define PRINT(name, age) \ cout
-
137
PRINT(, 28); . . . . . }
.
#define MUL2(num) 2*num void main() { int a1,a2; a1=MUL2(5); a2=MUL2(2+3); }
1- 10
, 2- 10 7 . 2*2+3=7 . MUL2(2+3) 2*2+3 . . 7 . .
#define MUL2(num) 2 * (num)
2*2+3 , 2*(2+3) , 10 .
-
138
, , . .
. , . . , .
. . .
. .
. , .
.
.
-
139
, . . .
. .
. , .
. #define . . , .
-
140
55--
-- -- --
-- --
--tthhiiss
-
141
55--
.
(Object Oriented Programming) C++ 1983 New Jersey Murray Hill Bell Laboratories- . . ++ .
C . : , , , , , , , .
, . : , , , .
, .
(procedure oriented programming) . 40 . .
. .
-
142
, . . (compiler) .
. : , , , , . 1960- . ( Object Oriented Programming-OOP) . 1967 Simula-67 . . 1980- - Smalltalk . C, Pascal - C++, Pascal 5.5, Object Pascal .
(Class) . . .
. : . , 2 . .
, .
-
143
. (inheritance - )
child . parent . .
. : .
. (code) . , . , . .
-
144
. .
#include class smallobj { private: int somedata; public: void setdata(int d) { somedata=d; } void showdata() { cout
-
145
((CCoonnssttrruuccttoorrss))
setdata . . . . .
.
class Counter { private: unsigned int count; public: Counter() {count = 0;} void inc_count() int get_count() }; . . . Counter c1; cout
-
146
~ . :
class Counter { private: unsigned int count; public: Counter() {count = 0;} ~Counter() { } void inc_count() int get_count() {return count;} };
,
. .
.
#include class Distance { private: int feet; float inches; public: Distance() { } Distance(int ft, float in) { feet = ft; inches = in; } void getdist() { cout > feet;
-
147
cout > inches; } void showdist() {cout
-
148
. . . :
dist3 = dist2
. . Distance add_dist(Distance)
. . static . . . .
Class foo { private: static int count; public: foo() {count++} int getcount() {return count;} };
.
-
149
-
. .
:
dist3.add_dist(dist1, dist2); .
dist3 = dist1 + dist2;
, . .
C++ +, *,
-
150
~Counter() { } void inc_count() int get_count() {return count;} void operator ++() {count++;} };
operator
++ .
c1++; ++c1;
.
.
.
c1 = c2++;
void
. . :
Counter operator ++() { count++; counter temp; temp.count = count; return temp; };
temp
. . .
Counter() { count = 0;} Counter(int c) {count = c;}
.
-
151
Counter operator ++ () { count++; return Counter(count); }
Counter(int c) {count = c;}
.
. , , .
.
dist3.add_dist(dist1, dist2);
+ .
dist3 = dist1 + dist2;
add_dist +
.
class Distance { . . . Distance operator + (Distance);
-
152
. . . }; Distance Distance::operator + (Distance d2) { int f=feet+d2.feet; float i=inches+d2.inches; if (i>=12.0) { i-=12.0; f++; } return Distance(f, i); }
+
.
dist3=dist1+dist2; dist1
dist2 . 2 .
dist4=dist1+dist2+dist3;
. .
. . . boolean operator < (Distance); . . . boolean Distance::operator < (Distance d2) { . . . }
-
153
.
float f; int t; t=f;
.
t = int(f);
.
,,
. .
.
. . . operator float() { return (feet*12+inches)*2.54 } . . . float mtrs=float(dist2);
. .
Distance(float meters) { float fltfeet=meters*100/2.54/12; feet=int(fltfeet); inches=12*(fltfeetfeet);
-
154
} . . . Distance dist1 = 2.35; . . . dist1 = 1.0;
. . 1 , .
.
objecta=objectb; objecta- destination, objectb- source
. objecta- , objectb- .
-
. - (base class) (derived class) . . . (decrement --) . .
#include
-
155
class Counter { protected: unsigned int count; public: Counter() { count = 0;} Counter(int c) {count = c;} int get_count() {return count;} Counter operator ++ () { count++; return Counter(count); } }; class CountDn : public Counter { public: Counter operator -- () { count--; return Counter(count); } }; void main() { CountDn c1; cout
-
156
protected .
(protected) private . . private . private, protected 2 . Counter count private protected .
. .
class CountDn : public Counter { public: CountDn() : Counter() { } CountDn (int c) : Counter(c) { } Counter operator -- () { count--; return Counter(count); } };
. .
-
157
. . . . (sign) .
enum posneg{pos, neg}; class DistSign : public Distance { private: posneg sign; public: DistSign():Distance() { sign = pos; } DistSign(int ft, float in, posneg sg=pos) :Distance(ft, in) { sign = sg; } void getdist() { Distance::getdist(); char ch; cout > ch; sign=(ch=='+') ? pos:neg; } void showdist() { cout
-
158
Distance::showdist(); . .
. abstract .
PPuubblliicc PPrriivvaattee C++
. :
Distance : public DistSign . public
public . private public . .
class A { private: int privdataA; protected: int protdataA; public: int pubdataA; }; class B : public A { public: void funct()
-
159
{ int a; a=privdataA; // a=protdataA; //ok a=pubdataA; //ok } }; class C : private A { public: void funct() { int a; a = privdataA; // a = protdataA; //ok a = pubdataA; //ok } }; void main { int a; B objB; a=objB.privdataA; // a=objB.protdataA; // a=objB.pubdataA; //ok C objC; a=objC.privdataA; // a=objC.protdataA; // a=objC.pubdataA; // }
.
-
160
(Multiple Inheritance) . .
class A {}; class B {}; class C : public A, public B {};
? .
. , , , (24), .
. ,
. (Type) .
Distance . (Lumber)
.
. .
.
#include #include
-
161
const int LEN = 40; class Type { private: char dimensions[LEN]; char grade[LEN]; public: Type() { strcpy(dimensions, " "); strcpy(grade, " "); } Type(char di[], char gr[]) { strcpy(dimensions, di); strcpy(grade, gr); } void gettype () { cout > dimensions; cout grade; } void showtype() { cout
-
162
public: Distance() { feet=0; inches=0.0;} Distance(int ft, float in) { feet=ft; inches=in;} void getdist() { cout > feet; cout > inches; } void showdist() { cout
-
163
cout
-
164
}; class B { public: void show() {cout
-
165
.
#include class Base { public: void show() { cout
-
166
Base Base
. .
#include class Base { public: virtual void show() { cout
-
167
ptr Derv1, Derv2 . show . .
Base show . . .
virtual void show()=0;
0
.
Base . . (abstract) .
VViirrttuuaall
-
168
. .
class Parent { protected: int Basedata; }; class Child1 : public Parent { }; class Child2 : public Parent { }; class GrandChild : public Child1, public Child2 { public: int getdata() {return Basedata;} };
getdata Basedata
. Child1, Child2 Parent Parent .
Parent
Child1 Child2
GrandChild
-
169
subobject . Child1, Child2 Basedata GrandChild ambiguity . . .
. . . class Child1 : virtual public Parent { }; class Child2 : virtual public Parent { }; class GrandChild : public Child1, public Child2 { public: int getdata() {return Basedata;} };
.
(share) . Basedata .
private
protected . . private . private . . ?
(friend) . .
#include
-
170
class beta; class alpha { private: int data; public: alpha() { data = 3; } friend int frifunc(alpha, beta); }; class beta { private: int data; public: beta() {data = 7; } friend int frifunc(alpha, beta); }; int frifunc(alpha a, beta b) { return (a.data + b.data); } void main() { alpha aa; beta bb; cout
-
171
. . Distance + . .
Distance d1, d2, d3; d1=d2+10.0;
+ d2 10.0 . 10.0 . .
d3 = 10.0 + d2;
10.0 .
.
class Distance { . . . friend Distance operator+(Distance,Distance); . . . }; Distance operator+(Distance d1,Distance d2) { int f=d1.feet+d2.feet; float i=d1.inches+d2.inches; if (i>=12.0) { i-=12.0; f++; }; return Distance(f, i); }
.
-
172
private . . .
#include class alpha { private: int data1; public: alpha() { data1 = 99; } friend class beta; }; class beta { public: void func1(alpha a) {cout
-
173
.
. . . . :
class gamma { private: static int total; public: static showtotal(); { cout
-
174
alpha a2(a1); ,
(copy constructor) . .
alpha a2=a1;
. .
#include #include class String { private: char *str; public: String() { str = NULL;} String(char *s) { str=new char[strlen(s)+1]; strcpy(str, s); } void changestr() { delete str; str = " "; } void showstr() { cout
-
175
s2=s1; s2.showstr(); s1.changestr(); s2.showstr(); }
2 s2.showstr()
s1 . s2 = s1
s1, s2 . changestr s1, s2 . . , .
.
void operator = (String& s) { if (str == NULL) delete str; str = new char[strlen(s.str)+1]; strcpy(str, s.str); }
s1 = s2 s1
s2 str . .
.
.
-
176
. . .
String(String& s) { if (str == NULL) delete str; str = new char[strlen(s.str)+1]; strcpy(str, s.str); }
String(String s) .
tthhiiss
this . this .
.
bool compare(char *str) { return strcmp(this->str, str); }
.
String& operator = (String& s) { if (str==NULL) delete str; str=new char[strlen(s.str)+1]; strcpy(str, s.str); return *this; }
-
177
. , . .
. . .
. . .
. child class, parent class .
. . ~ .
, . . .
. . static .
. .
. .
.
-
178
3 . private , .. . public . protected .
. .
this . .
-
179
66--
--
-- --
--
-
180
66--
. . C++- . . , . , , . .
Pascal, Basic . , . . string .
-
181
. .
//replay.cpp #include void main() { int age[4]; cout
-
182
. . . . 4 . .
. . , . (4 * 2 ) 8 . 0 . (n-1) (n !). 0-3 4 .
-
183
2 . .
cin >> age[j];
.
cout
-
184
total+=sales[j]; float average=total/SIZE; cout
-
185
. .
//days.cpp #include void main() { int month, day, total_days; int days_per_month[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; cout > month; cout > day; total_days=day; for (int j=0; j
-
186
4 (31, 28, 31, 30) .
. .
, .
int days_per_month[]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
0 . .
. , . .
//salemon.cpp #include #include const int districts=4; const int months=3; void main() {
-
187
int d, m; float sales[districts][months]; cout
-
188
1 2 3 1 3964.23 4135.87 4397.98 2 867.75 923.59 1037.01 3 12.77 378.32 798.22 4 2983.53 3983.73 9494.98
.
float sales[districts][months];
. , sales districts months . 3 .
2 .
sales[d][m]
. sales[ d, m ] .
salemon
. . : 2 ,
-
189
.
C++- . setw() . .
cout
-
190
. . saleinit .
//saleinit.cpp #include #include const int districts=4; const int months=3; void main() { int d, m; float sales[districts][months]= {{1432.07, 234.50, 654.01}, {322.00, 13838.32,17589.88}, {9328.34, 934.00, 4492.30}, {12838.29, 2332.63, 32.93}}; cout
-
191
, , .
. .
//salefunc.cpp #include #include const int districts=4; const int months=3; void display(float[districts][months]); void main() { float sales[districts][months]= {{1432.07, 234.50, 654.01}, {322.00, 13838.32, 17589.88}, {9328.34, 934.00, 4492.30}, {12838.29, 2332.63, 32.93}}; display(sales); } void display(float funsales[districts][months]) { int d, m; cout
-
192
for (m=0; m
-
193
, . . .. funsales sales .
struct .
//partaray.cpp #include const int size=4; struct part { int ModelNumber; int PartNumber; float cost; } void main() { int n; part apart[size]; for (n=0; n apart[n].PartNumber; cout > apart[n].cost; }
-
194
for (n=0; n
-
195
apart[n].ModelNumber
. : (stack) .
. , . .
MS-DOS . . Stackaray .
//Stackaray.cpp #include const int max=100; class Stack { private: int st[max]; int top;
-
196
public: Stack() { top=0; } void push(int var) { st[++top]=var; } int pop() { return st[top--]; } }; void main() { Stack s1; s1.push(11); s1.push(22); cout
-
197
3: 66 4: 55 5: 44 6: 33
.
. push top- .
st[++top]=var;
pop
top- .
return st[top--];
Stack
OOP(Object Oriented Programming )- . (queue), (set), (linked list) .
. .
-
198
DDiissttaannccee Distance
. .
//englaray.cpp #include const int max=100; class Distance { private: int feet; float inches; public: void getdist() { cout > feet; cout > inches; } void showdist() { cout
-
199
cout
-
200
, .
do
. max 100 . 100- ? . . , . , .
. do .
If (n>=max) { cout
-
201
. 100 . .
dist[j].showdist();
. , . getdist .
dist[n++].getdist();
(increment operator) . n++ n- .
. CARDOBJ . card
-
202
52 .
//cardaray.cpp #include #include #include enum Suit { clubs, diamonds, hearts, spades }; const int jack=11; const int queen=12; const int king=13; const int ace=14; enum Boolean { false, true }; class card { private: int number; Suit suit; public: card() { }; void init(int n, Suit s) { Suit=s; number=n; } void display(); Boolean isEqual(card); }; void card::display() { if (number>=2 && number
-
203
case ace: cout
-
204
cout
-
205
3 J 5 K Q 10 8 2 6 A 4 J 8 10 2 Q 10 5 A K 7 5 A 2 9 7
. . C++- . , . randomize() . stdlib.h, time.h 2 .
random() . . 0- 51- random (52) . , .
. .
-
206
.
//stringin.cpp #include const int max=80; void main() { char str[max]; cout > str; cout
-
207
. . C++- .
//safetyin.cpp #include #include const int max=20; void main() { char str[max]; cout > setw(max) >> str; cout
-
208
char str[]=Thou art too dear for my possessing; cout > var1 >> var2 >> var3;
.
15 25 35
-
209
. var1 15, var2 25, var3 35 . . space .
//blanksin.cpp #include const int max=80; void main() { char str[max]; cout
-
210
void main() { cout
-
211
{ char str1[]= ; char str2[max]; for (int j=0; j
-
212
void main() { char str1[]= ; char str2[max]; strcpy(str2, str1); cout
-
213
.
. , . . ( )
//strpart.cpp #include #include class part { private: char partname[30]; int partnumber; float cost; public: void setpart(char pname[], int pn, float c) {
-
214
strcpy(partname, pname); partnumber=pn; cost=c; } void showpart() { cout
-
215
C++-
. ,
str2=str1 .
. string .
//strobj.cpp #include #include const int sz=80; class String { private: char str[sz]; public: String() { str[0]=\0; } String(char s[]) { strcpy(str, s); } void display() { cout
-
216
void main() { String s1( !); String s2= !; String s3; cout
-
217
display , concat .
String s3( !); String s2= !; s3=s1; s3.concat(s2); cout
-
218
. , 10 3 , 7 . .
2 , . 4 , 7 ( 0 ). .
char Aimags1[ 3 ][ 11 ]= { , , - }; char *Aimags2[ 3 ]= { , , - };
. 7- . .
Aimags1[0][2] Aimags2[0][2]
.
.
Aimags1[0][2]
-
219
0 Aimags1 1- . 0*11 . Aimags1 11 . 2 2 3 .
2 .
Aimags2[0][2] 0 Aimags2
1- 0*4 . 4 . 2 2 .
-
220
. . , . . . . , 2 .
. .
. 0- null . string.h . 2 . .
-
221
77--
--
-- --
-- --
--
-
222
77--
Turbo C++ Borland C++-
. . .. , . .
Turbo C++- 2 .
. ( ) . IBM- .
CGA, EGA, VGA, SVGA . ( ) , , , .
. .
-
223
, .
. 80 25 . ( 4025, 8043- ) cout . . .
, MS-DOS . UNIX , Turbo Borland C++- .
WWiinnddooww(())
conio.h . 4 , , , . . ( .)
-
224
. (scroll) .
, . .
//window.cpp #include #include const int len=500; class box { private: int left, top, right, bottom; char str[len]; public: box(int l, int t, int r, int b, char s[]) { left=l; top=t; right=r; bottom=b; strcpy(str, s); window(left, top, right, bottom); cputs(str); } void erase() { window(left, top, right, bottom); clrscr(); } }; void main()
-
225
{ clrscr(); char s1[]=The disk drive is jammed\n\r\ or on fire, or the CPU\n\r\ is flooded. Correct the\n\r\ situation and try again. \n\r\ Press Enter to continue: ; char s2[]=This is a string that will wrap at the\ right edge of the window, probably\ breaking words inappropriately in the\ process.; box a(25, 6, 55, 18, s1); getch(); a.erase(); box b(1, 1, 25, 10, s2); getch(); }
box 5
. 4 4 , .
ccppuuttss(()) cout-
. , . . cputs() .
-
226
\n . , 13- ( ), 10- ( ) 2 . , 2 . \n 13- . cputs() \n . \r 10- . \n\r .
ccllrrssccrr(()) clrscr()
. 2 . ( ) . box erase() .
2 , 2 . .
bbooxx
-
227
box . , . box . IBM- . .
//boxes.cpp #include #include const int LEFT=25; const int TOP=6; const int RIGHT=55; const int BOTTOM=18; const int LEN=500; class box { private: int left, top, right, bottom; char str[len]; int color; public: box() { left=LEFT; top=TOP; right=RIGHT; bottom=BOTTOM; color=WHITE; } box(int l, int t, int r, int b, int c=WHITE) { left=l; top=t; right=r; bottom=b; color=c; } void text(char s[]) { strcpy(str, s); } void draw();
-
228
void erase() { window(left, top, right, bottom); clrscr(); } }; void box::draw() { erase; window(left, top, right, bottom+1); int width=right-left+1; int height=bottom-top+1; textcolor(color); for (int j=1; j
-
229
clrscr(); box a; box b(1, 1, 31, 8, YELLOW); a.text(\The time, \ said the \n\r\ Duchess, \is surely ripe;\n\r\ make haste, lest seconds\n\r\ spoil.\); b.text(Should you continue \n\r\ along the preset path you\n\r\ risk investigation\n\r\ for felonious chicanery.); a.draw(); getch(); a.erase(); b.draw(); getch(); b.erase(); b.text(); b.draw(); getch(); }
box 2
. . , . text() . , , . draw() , erase() . draw() .
gotoxy() .
-
230
. , .
putch() . . .
5 5 . draw() textcolor() . .
0 BLACK() 1 BLUE() 2 GREEN() 3 CYAN() 4 RED() 5 MAGENTA() 6 BROWN() 7 LIGHTGRAY( ) 8 DARKGRAY( ) 9 LIGHTBLUE( ) 10 LIGHTGREEN( ) 11 LIGHTCYAN() 12 LIGHTRED( ) 13 LIGHTMAGENTA( ) 14 YELLOW() 15 WHITE()
128 BLINK()
-
231
. textbackground() . 8 .
draw() window() . , . bottom . . window() . . . Press any key to continue: 3 window() .
. 2000 (8025) 307200 (640480) . , .
-
232
graphics.lib Options Libraries linker- . .
. . ezball . set() , draw() . ball RAD .
//ezball.cpp #include #include const int RAD=75; class ball { private: int xCo, yCo; public: ball() { xCo=0; yCo=0; } void set(int x, int y) { xCo=x; yCo=y; } void Draw() { circle(xCo, yCo, RAD); } }; void main() { int driver, mode;
-
233
driver=DETECT; initgraph(&driver, &mode, C:\\BORLANDC\\BGI); ball b1; ball b2; ball b3; b1.set(320, 150); b2.set(255, 150); b3.set(385, 150); b1.draw(); b2.draw(); b3.draw(); getch(); closegraph(); }
iinniittggrraapphh(())
. initgraph() .
2 . , . . . .
-
234
initgraph() . . .
CGA CGA EGA EGA VGA VGA
graphics.h . EGA EGA VGA EGA, CGA, VGA .
. . .
CGAC0 320x200, 4 , 0 CGAC1 320x200, 4 , 1 CGAC2 320x200, 4 , 2 CGAC3 320x200, 4 , 3
CGA
CGAHI 640x200, 2 EGALO 640x200, 16
EGA EGAHI 640x350, 16
VGA VGALO 640x200, 16
-
235
VGAMED 640x350, 16 VGAHI 640x480, 16
. CGA 4 4 . EGA VGA . .
int driver=EGA; int mode=EGAHI; initgraph(&driver, &mode, c:\\borlandc\\bgi);
. DETECT . .
initgraph()
2 . , , & . .
,
-
236
. . 6- .
initgraph() 3
. . C++- {C++- } \BGI . (C++- C:\BORLANDC . C:\\BORLANDC \\BGI .) *.BGI . CGA CGA.BGI , EGA VGA EGAVGA.BGI .
. ( ) . ( \ ) C++- (\n ..) 2 , . C++- , . .
-
237
cciirrccllee(()) ball 3
, set() . draw() . draw() C++- circle() .
circle() 3 2 , 3 . RAD , xCo, yCo .
circle(xCo, yCo, RAD);
cclloosseeggrraapphh(())
. , .
, closegraph() .
-
238
. .
//colorbal.cpp #include #include const int RAD=75; class ball { private: int xCo, yCo; int linecolor; int fillcolor; public: ball() { xCo=0; yCo=0; linecolor=WHITE; fillcolor=WHITE; } void set(int x, int y, int lc, int fc) { xCo=x; yCo=y; linecolor=lc; fill color=fc; } void Draw() { setcolor(linecolor); setlinestyle(SOLID_LINE, 0, THICK_WIDTH); circle(xCo, yCo, RAD); setfillstyle(SOLID_FILL, fillcolor); floodfill(xCo, yCo, linecolor); } }; void main() { int driver, mode; driver=DETECT; initgraph(&driver, &mode, C:\\BORLANDC \\BGI);
-
239
ball b1; ball b2; ball b3; b1.set(100, 150, YELLOW, RED); b2.set(200, 150, YELLOW, GREEN); b3.set(300, 150, YELLOW, BLUE); b1.draw(); b2.draw(); b3.draw(); getch(); closegraph(); }
ball set()
4 . 2 , 2 . draw() .
setcolor(linecolor); setlinestyle(SOLID_LINE, 0, THICK_WIDTH); circle(xCo, yCo, RAD); setfillstyle(SOLID_FILL, fillcolor); floodfill(xCo, yCo, linecolor);
.
sseettccoolloorr(())
. line ()
-
240
, . .
EGA VGA 16 . . ball .
sseettlliinneessttyyllee(())
, . .
0 SOLID_LINE() 1 DOTTED_LINE() 2 CENTER_LINE( ) 3 DASHED_LINE() 4 USERBIT_LINE( )
. 4 . 0 . 3 .
0 NORM_WIDTH(1 ) 3 THICK_WIDTH(3 )
-
241
sseettffiillllssttyyllee(())
. . .
0 EMPTY_FILL() 1 SOLID_FILL() 2 LINE_FILL(---) 3 LTSLASH_FILL(///()) 4 SLASH_FILL(///()) 5 BKSLASH_FILL(\\\()) 6 LTBKSLASH_FILL(\\\()) 7 HATCH_FILL(+++) 8 XHATCH_FILL(XXX) 9 INTERLEAVE_FILL(3 ) 10 WIDE_DOT_FILL(. . . . .) 11 CLOSE_DOT_FILL(. . . . . . . . .) 12 USER_FILL()
2
. . 3 , , 3 .
ffllooooddffiillll(()) floodfill()
. setfillstyle() , .
-
242
4 . 4 . .
.
//restline.cpp #include #include const int w=75; class rect { private: int xCo, yCo; int linecolor; int fillcolor; public: rect() { xCo=0; yCo=0; linecolor=WHITE; fillcolor=WHITE; } void set(int x, int y, int lc, int fc) { xCo=x; yCo=y; linecolor=lc; fill color=fc; } void Draw() { setcolor(linecolor);
-
243
setlinestyle(SOLID_LINE, 0, THICK_WIDTH); rectangle(xCo-w, yCo-w, xCo+w, yCo+w); setfillstyle(SOLID_FILL, fillcolor); floodfill(xCo, yCo, linecolor); line(xCo-w, yCo+w, xCo+w, yCo-w); } }; void main() { int driver, mode; driver=DETECT; initgraph(&driver, &mode, C:\\BORLANDC \\BGI); rect r1; rect r2; rect r3; r1.set(80, 150, YELLOW, RED); r2.set(250, 150, YELLOW, GREEN); r3.set(420, 150, YELLOW, BLUE); r1.draw(); r2.draw(); r3.draw(); getch(); closegraph(); }
2
.
rreeccttaannggllee(()) .
4 .
rectangle(left, top, right, bottom);
-
244
lliinnee(()) 2 .
2 , 2 .
line(x1, y1, x2, y2);
, ,
.
ball rect . fillpoly() .
//multshap.cpp #include #include const int w=75; class shape { protected: int xCo, yCo; int linecolor; int fillcolor; public: shape() {
-
245
xCo=0; yCo=0; linecolor=WHITE; fillcolor=WHITE; } void set(int x, int y, int lc, int fc) { xCo=x; yCo=y; linecolor=lc; fill color=fc; } void Draw() { setcolor(linecolor); setlinestyle(SOLID_LINE, 0, THICK_WIDTH); setfillstyle(SOLID_FILL, fillcolor); } }; class ball : public shape { public: ball() : shape() { } void set(int x, int y, int lc, int fc) { shape::set(x, y, lc, fc); } void Draw() { shape::draw(); circle(xCo, yCo, w); floodfill(xCo, yCo, linecolor); } }; class rect : public shape { public: rect() : shape() { } void set(int x, int y, int lc, int fc) { shape::set(x, y, lc, fc); } void Draw() { shape::draw(); rectangle(xCo-w, yCo-w, xCo+w, yCo+w); floodfill(xCo, yCo, linecolor);
-
246
moveto(xCo-w, yCo+w); lineto(xCo+w, yCo-w); } }; class tria : public shape { public: tria() : shape() { } void set(int x, int y, int lc, int fc) { shape::set(x, y, lc, fc); } void Draw() { int triarray[]={ xCo, yCo-w, xCo+w, yCo+w, xCo-w, yCo+w }; shape::draw(); fillpoly(3, triarray); } }; void main() { int driver, mode; driver=DETECT; initgraph(&driver, &mode, C:\\BORLANDC\\BGI); ball b1; rect r2; tria t3; b1.set(80, 150, YELLOW, RED); r2.set(250, 150, YELLOW, GREEN); t3.set(420, 150, YELLOW, BLUE); b1.draw(); r2.draw(); t3.draw(); getch(); closegraph(); }
-
247
sshhaappee 2 ball rect
. . set() draw() .( draw() .)
C++- . shape , ball rect . shape 2 .
tria
. shape . . .. . . , 4 .
int polyarray[]={x1, y1, x2, y2, x3, y3, x4, y4}
-
248
,
4 .
2 . . . ( , . )
fillpoly(4, polyarray);
2
. 2 3 , 3 4 . 4 1 , . . . drawpoly() .
. 3 777 . C++- .
-
249
3 . 4 . : , , , . . , , . .
//slot.cpp #include #include #include #include #include const int w=15; const int mar=10; class shape { protected: int xCo, yCo; int linecolor; int fillcolor; public: shape() { xCo=0; yCo=0; linecolor=WHITE; fillcolor=WHITE; } void set(int x, int y, int lc, int fc) { xCo=x; yCo=y; linecolor=lc; fill color=fc; } void draw()
-
250
{ setcolor(linecolor); setlinestyle(SOLID_LINE, 0, THICK_WIDTH); setfillstyle(SOLID_FILL, fillcolor); } }; class ball : public shape { public: ball() : shape() { } void set(int x, int y, int lc, int fc) { shape::set(x, y, lc, fc); } void draw() { shape::draw(); circle(xCo, yCo, w); floodfill(xCo, yCo, linecolor); } }; class rect : public shape { public: rect() : shape() { } void set(int x, int y, int lc, int fc) { shape::set(x, y, lc, fc); } void draw() { shape::draw(); rectangle(xCo-w, yCo-w, xCo+w, yCo+w); floodfill(xCo, yCo, linecolor); moveto(xCo-w, yCo+w); lineto(xCo+w, yCo-w); } }; class tria : public shape { public: tria() : shape()
-
251
{ } void set(int x, int y, int lc, int fc) { shape::set(x, y, lc, fc); } void draw() { int triarray[]={ xCo, yCo-w, xCo+w, yCo+w, xCo-w, yCo+w }; shape::draw(); fillpoly(3, triarray); } }; class noshape : public shape { public: void erase() { int border[]={ xCo-w-mar, yCo-w-mar, xCo+w+mar, yCo-w-mar, xCo+w+mar, yCo+w+mar, xCo-w-mar, yCo+w+mar }; setfillstyle(SOLID_FILL, DARKGRAY); fillpoly(4, border); } }; class cherry : public ball, public noshape { public: cherry() : ball() { } void set(int x, int y) { ball::set(x, y, WHITE, RED); noshape::set(x, y, WHITE, RED); } void draw() { erase(); ball::draw(); } }; class grape : public ball, public noshape {
-
252
public: grape() : ball() { } void set(int x, int y) { ball::set(x, y, WHITE, BLUE); noshape::set(x, y, WHITE, BLUE); } void draw() { erase(); ball::draw(); } }; class square : public rect, public noshape { public: square() : rect() { } void set(int x, int y) { rect::set(x, y, WHITE, GREEN); noshape::set(x, y, WHITE, GREEN); } void draw() { erase(); rect::draw(); } }; class pyramid : public tria, public noshape { public: pyramid() : tria() { } void set(int x, int y) { tria::set(x, y, WHITE, GREEN); noshape::set(x, y, WHITE, GREEN); } void draw() { erase(); tria::draw(); } }; class wheel : public shape { private:
-
253
cherry ch; grape gr; square sq; pyramid py; public: wheel() { xCo=0; yCo=0; } void set(int x, int y) { xCo=x; yCo=y; ch.set(xCo, yCo); gr.set(xCo, yCo); sq.set(xCo, yCo); py.set(xCo, yCo); } void draw(); }; void wheel::draw() { setcolor(WHITE); rectangle(xCo-w-mar, yCo-w-mar, xCo+w+mar, yCo+w+mar); switch(random(4)) { case 0 : ch.draw(); break; case 1 : gr.draw(); break; case 2 : sq.draw(); break; case 3 : py.draw(); break; } } void main() { const int number=60; int driver, mode; driver=DETECT; initgraph(&driver, &mode, c:\\borlandc\\bgi); randomize(); wheel w1;
-
254
wheel w2; wheel w3; w1.set(100, 100); w2.set(160, 100); w3.set(220, 100); for (int j=0; j
-
255
set() .
void cherry::set(int x, int y) { ball::set(x, y, WHITE, RED); noshape::set(x, y, WHITE, RED); }
. . noshape . erase() .
ball . noshape . noshape shape .
wheel shape- . , .
wheel 3
. set() . wheel cherry, grape, square, pyramid
-
256
. set() , . draw() , . draw() , . , . , .
C++-
. : 1. 2. 3.
.
sound(100); delay(20); nosound(); dos.h
. sound()
. 15- 3000
-
257
. .
delay() . delay() . (1/1000 ) . .. delay(500) .
nosound() .
. . .
. , , , . .
-
258
gstring . . : , , , , , .
. .
//grast.cpp #include #include #include class gstring { protected: char str[80]; int xCo, yCo; int font; int direction; int size; int color; int horzjustify; int vertjustify; int multx, divx; int multy, divy; public: gstring() { str[0]=\0; xCo=0; yCo=0; font=DEFAULT_FONT; direction=HORIZ_DIR; size=4; color=WHITE;
-
259
horzjustify=LEFT_TEXT; vertjustify=TOP_TEXT; multx=1; divx=1; multy=1; divy=1; } void drawtext() { moveto(xCo, yCo); settextstyle(font, direction, size); setcolor(color); settextjustify(horzjustify, vertjustify); setusercharsize(multx,divx,multy,divy); outtext(str); } void settext(char s[]) { strcopy(str, s); } void setposition(int x, int y) { xCo=x; yCo=y; } void SetFont(int f) { font=f; } void SetDirection(int d) { Direction=d; } void SetSize(int s) { size=s; } void SetColor(int c) { color=c; } void SetHJust(int hj) { horzjustify=hj; } void SetVJust(int vj) { vertjustify=vj; } void SetHorzSize(int m, int d) { size=0; multx=m; divx=d; } void SetVertSize(int m, int d) { size=0; multy=m; divy=d; } }; void main() { int driver, mode; driver=DETECT; initgraph(&driver, &mode, c:\\borlandc\\bgi); gstring s1, s2, s3, s4, s5, s6;
-
260
s1.SetText( ); s2.SetText( ); s2.SetFont(GOTHIC_FONT); s2.SetPosition(0, 75); s3.SetText( ); s3.SetFont(SANS_SERIF_FONT); s3.SetPosition(600, 0); s3.SetDirection(VERT_DIR); s4.SetText( ); s4.SetFont(TRIPLEX_FONT); s4.SetPosition(300, 150); s4.SetHJust(CENTER_TEXT); s5.SetText( ); s5.SetFont(SANS_SERIF_FONT); s5.SetSize(6); s5.SetPosition(300, 225); s5.SetDirection(CENTER_TEXT); s6.SetText( ); s6.SetFont(TRIPLEX_FONT); s6.SetPosition(0, 300); s6.SetHorzSize(2, 3); s6.SetVertSize(4, 1); s1.drawText(); s2.drawText(); s3.drawText(); s4.drawText(); s5.drawText(); s6.drawText(); getch(); closegraph(); }
gsrting 6
.
-
261
. 2 sans_serif . 3 4 5 . 6 .
drawtext() . .
mmoovveettoo(()) C++
(Current Position) . . (0, 0) .
sseetttteexxttssttyyllee(()) ,
. C++ 5 .
DEFAULT_FONT TRIPLEX_FONT Times SMALL_FONT SANS_SERIF_FONT Helvetica GOTHIC_FONT
-
262
initgraph()- 3- . CHR . : TRIP.CHR Triplex , SANS.CHR Sans Serif Font .
2 HORIZ_DIR () VERT_DIR () . , .
. 1 2 1 2 .
sseetttteexxttjjuussttiiffyy(())
. , .
LEFT_TEXT
(. ) CENTER_TEXT
(. ) RIGHT_TEXT
(. )
TOP_TEXT
-
263
CENTER_TEXT
BOTTOM _TEXT
sseettuusseerrcchhaarrssiizzee(())
, . 0 . 4 . 4 . . : 2 5 2 5/2 ( 4 ) 10 . 2 .
oouutttteexxtt(())
. . .
-
264
C++-
2 . , . window() .
. initgraph() closegraph() .
C++- , , , , . , , , .
-
265
88--
--
-- --
-- -- -- --
-
266
88--
, C++- . .
.
- -
-
- - ,
C++- . . C++- . , .
C++- . . , , .
C- .
-
267
new delete , , .
.
. . .. 0- 1, 2, 3 . 640KB 655359-, 1MB 1048575- .
. . .
&&
. varaddr .
//varaddr.cpp #include void main() { int var1=11; int var2=22;
-
268
int var3=33; cout
-
269
8 .
. stack- ( ) . heap .
& & (4 ) .
. . , , . .
. .. int int- . .
//ptrvar.cpp #include void main() { int var1=11; int var2=22;
-
270
cout
-
271
Float* fptr;
var1 11
. ptr 0x8f4ffff4 .
. . , . . ptrvar
Ptr=&var1;
.
var1 .
. , ( ) , . . .
. ?.
-
272
. ptracc .
//ptracc.cpp #include void main() { int var1=11 ; int var2=22 ; int *ptr ; ptr=&var1 ; cout
-
273
//ptrto.cpp #include void main() { int var1, var2; int *ptr; ptr=&var1; *ptr=37; var2=*ptr; cout
-
274
VVOOIIDD
. . , int float . . void .
void *ptr;
.
//ptrvoid.cpp #include void main() { int intvar; float flovar; int *ptrint; float *ptrflo; void *ptrvoid; ptrint=&intvar; //ptrint=&flovar; // //ptrflo=&intvar; // ptrint=&flovar; ptrvoid=&intvar; ptrvoid=&flovar; }
-
275
Ptrvoid
.
. 8 . arrnote .
//arrnote.cpp #include void main() { int intarray[5]={31, 54, 77, 52, 93}; for (int j=0; j
-
276
//ptrnote.cpp #include void main() { int intarray[5]={31, 54, 77, 52, 93}; for (int j=0; j
-
277
. . Intarray intarray , . Intarray intarray++ 7++ ( windows . .). .
//ptrinc.cpp #include void main() { int intarray[5]={31, 54, 77, 52, 93}; int *ptrint; ptrint=intarray; for (int j=0; j
-
278
. . .
. .
//passref.cpp #include void main() { void centimize(double &); double var=10.0 cout
-
279
var=10 inches var=25.4 centimeters
.
//passptr.cpp #include void main() { void centimize(double *); double var=10.0 cout
-
280
5
. . .
//passarr.cpp #include const int max=5; void main() { void centimize(double *); double varray[max]={10.0, 43.1, 95.9, 59.7, 87.3}; centimize(varray); for (int j=0; j
-
281
*ptrd++ 2 ? , ? . . (++) (*) .
2 . 4 reforder
. 2 2 1 .
//ptrorder.cpp #include void main() { void order(int*, int*); int n1=99, n2=11; int n3:=22; n4:=88; order(&n1, &n2); order(&n3, &n4); cout
-
282
void order(int* numb1, int* numb2) { if (*numb1 > *numb2) { int temp=*numb1; *numb1=*numb2; *numb2=temp; } }
Order reforder
. .
n1=11; n2=99; n3=22; n4=88;
order ptrsort
.
//ptrsort.cpp #include void main() { void bsort(int*, int); const int N=10; int arr[N]={37,84,62,91,11,65,57,28,19,49}; bsort(arr, N); for (int j=0; j
-
283
void order(int*, int*) int j, k ; for (j=0; j < N-1; j++) for (k=j+1; k < n; k++) order(ptr+j, ptr+k); } void order(int* numb1, int* numb2) { if (*numb1 > *numb2) { int temp=*numb1; *numb1=*numb2; *numb2=temp; } }
.
11 19 28 37 49 57 62 65 84 91
char . .
2 .
-
284
//twostr.cpp #include void main() { char str1[]= ; char *str2= ; cout
-
285
.
//ptrstr.cpp #include void main() { void dispstr(char *); char str[]= ; dispstr(str); } void dispstr(char * ps) { cout
-
286
//copystr.cpp #include void main() { void copystr(char *, char *); char* str1= \ .; char str2[80]; copystr(str2, str1); cout
-
287
2 . const src . dest . copystr .
. .
5 . . .
.
//ptrtostr.cpp #include const int DAYS=7; void main() { char* arrptrs[DAYS]={, , , , , , } ; for (int j=0; j < DAYS; j++) cout
-
288
. , .
.. NNeeww DDeelleettee
. : Int arr[100] 100
200 , arr . . . :
cin >> size; int arr[size];
-
289
. .
NNEEWW
, . Newintro .
//newintro.cpp #include #include void main() { char *str= .; int len=strlen(str) ; char *ptr; ptr=new char[len+1]; strcpy(ptr, str); cout
-
290
strcpy .
DDEELLEETTEE new
, , . . delete .
Delete ptr;
ptr
, . , . .
. . .
NNeeww ssttrriinngg
New
. 7 string .
-
291
. .
//newstr.cpp #include #include class string { private: char* str; public: string(char* s) { int length=strlen(s) ; str=new char[length+1] ; strcpy(str, s); } ~string() { delete str; } void display() { cout
-
292
.
() , . () . . . .
. Distance dist .
. new . .
//englptr.cpp #include class Distance { private: int feet; float inches; public: void getdist() { cout
-
293
cin >> feet; cout > inches; } void showdist() { cout
-
294
distptr->getdist();
:
: 10 : 6.25 10-6.25 : 6 : 4.75 6 4.75
. person .
//ptrobjs.cpp #include class person { protected: char name[40]; public: void setName() { cout > name; } void printName() { cout
-
295
void main() { person* persPtr[100]; int n=0; char choice; do { persPtr[n]=new person; persPtr[n]-> setName(); n++; cout > choice; } while (choice==y); for (int j=0; j
-
296
persPtr[j]->getName();
.
. .
new
. , .
link , linked list . Link . .
//linklist.cpp #include struct link {
-
297
int data; link *next; }; class linklist { private: link *first; public: linklist() { first=NULL; } void additem(int d); void display(); }; void linklist::additem(int d) { link *newlink=new link; newlink-> data=d; newlink-> next=first; first=newlink; } void linklist::display() { link *current=first; while (current!=NULL) { cout next; } } void main() { linklist li; li.additem(25); li.additem(36); li.additem(49); li.additem(64);
-
298
li.display(); }
first NULL . .
Additem . ( ) .
link *newlink=new link;
link ,
newlink . . 2 . , first .
newlink->next=first; first=newlink;
. . next NULL . ,
cout
-
299
current=NULL
current=current->next .
.
64 49 36 25
. . .
.
link link . . . .:
Class sample { sample *ptr ; // sample obj ; //. }
-
300
LLiinnkklliisstt
. , link , , , , , .
linklist . , . . .
.
ptrobjs ptrsort order, bsort person .
//persort.cpp #include #include class person { protected: char name[40]; public: void setName() { cout
-
301
cin >> name; } void printName() { cout choice; } while (choice==y); cout
-
302
int j, k ; for (j=0; j < N-1; j++) for (k=j+1; k < n; k++) order(pp+j, pp+k); } void order(person* pp1, person* pp2) { if (strcmp((*pp1)->getName(), (*pp2)->getName()) > 0) { person* tempptr=*pp1; *pp1=*pp2; *pp2=tempptr; } }
100
. .
: Washington (y/n)? y : Adams (y/n)? y : Jefferson (y/n)? y : Madison (y/n)? n : Washington Adams Jefferson Madison : Adams Jefferson Madison Washington
-
303
. . .
bsort 2 . . person . . person , .
Order strcmp
2 .
0 2
, . ,
-
304
, new delete , . , . , . watch . , . .
.
. . . (&) .
. .. . (*) .
-
305
.
. .
. .
.
New , . . delete .
(->) .
. .
. int** ptr .
-
306
99--
--
-
307
99--
((SSttrreeaammss))
. . .
.
istream
>> ostream
-
308
cout, cin- . cout ostream_withassign . ostream_withassign ostream .
istream istream_withassign cin .
, iostream.h . fstream.h .
ios
. . ios streambuf .
istream ostream ios . istream >> -, ostream
-
309
.
,,
.
#include void main() { ofstream outfile("test.txt"); outfile
-
310
getline() . . \n . 3- .
.
,, , get(), put()
. :
. . . outfile.put(str[j]); . . . infile.get(ch); . . .
,, , .
.
#include class person { protected: char name[40]; int age; public: void getdata(void) { cout > name; cout > age; } };
-
311
void main() { person pers; pers.getdata(); ofstream outfile("person.dat"); outfile.write((char *)&pers, sizeof(pers)); }
write()
. . . sizeof .
. read() .
infile read((char *)&pers, sizeof(pers));
ffssttrreeaamm fstream
. .
. . . fstream file; file.open(person.dat,ios::app|ios::out|ios::in); file.write((char *)&pers, sizeof(pers)); . . . file.write((char *)&pers, sizeof(pers)); file.seekg(0); file.read((char *)&pers, sizeof(pers)); . . . if (!file.eof())
-
312
file.read((char *)&pe