! "
$#&%'
(*),+- (.)/+1032
415674
+8 )/+ 9;: :
<>=@?BADCFEGIH'?JLKM?BNPORQBHFSUTWVYX@Z\[^]M_3`bac[d]Y]
e
Of?hgQiEQhOIjkOIQBEhOl?mVn]Y]M_poFqsr
e tvu
HF?BAxwzy|{
}F~/7
~ ,
~d'n
7
c ¢¡/¡¤£'¡¤¥¦¨§©ªd«¬¦®D°¯±¥¡©²$«¦®³¬7¡¤¯´®Dµ³¬¦¶¥®Yªd¡¤¬¦®D·¥¦¨¬¬¦®Dª¸ /¹º¤¡»«¼µ²½®D®Dª¾«¼ª¿U¬¦®M«¼¶¬¦¡¤¥À
Contents
Contents 3
1 Introduction 9
! ! ! ! ! """"""""""""""" $#
%&('*)+,-./ ! ! ! ! ! ! """"""""""""""" (0
1 243)5! ! ! ! ! ! ! ! ! """"""""""""""" (0
1 6789 : ! ! ! ! ! ! ! ! """"""""""""""" (0
1<; 6789,=)>?! ! ! ! ! ! ! ! """"""""""""""" (@
1BA CDE:)+FGHFI)J! ! ! ! ! ! """"""""""""""" $K
1L0 M4 NO)PNQ ! ! ! ! ! ! ! ! """"""""""""""" $K
1<R ST:)/ F&! ! ! ! ! ! ! ! ! """"""""""""""" $U
2 Foundations 21
1 V*WFG)X6ZY Y[/ ! ! ! ! ! ! """""""""""""""
1 \H)O]-93F^_/)`F+ ! ! ! ! """"""""""""""" ;
1 67)F7/3a Nb,=)c ! ! ! ! """"""""""""""" /A
1<; de9`> ,39 3`:)fbF"! ! ! ! ! ! """"""""""""""" 0
1BA gh!__PN,9`>)^i ! ! ! ! ! """"""""""""""" R
1L0 jk ,Fh/3a>lm>`>)F ! ! ! ! ! """"""""""""""" @
1<R gn1E>FX/3aPN,`>)9/ )op! ! ! ! """"""""""""""" @
1L@ qr)^>/ F ! ! ! ! ! ! ! ! """"""""""""""" @
1<K jkONs9 F ! ! ! ! ! ! ! ! """"""""""""""" @
1<U de39>)W9>^F&/3a9/>F ! ! ! ! """"""""""""""" K
1$#tCDs9uv`>)Fp ! ! ! ! ! ! ! ! """"""""""""""" K
1w2x]19^F^F^Fy ! ! ! ! ! ! ! """"""""""""""" U
1 zq{f// ,FZ/3^f// ,F ! ! ! ! ! """"""""""""""" ;#
1$;tCDE:)F|! ! ! ! ! ! ! ! """"""""""""""" ;#
1A}\))>)F ! ! ! ! ! ! ! """"""""""""""" ;;
1(0zgh"WFI)Zc^>fHFG)3 ! ! ! """"""""""""""" ;b0
1$R~ST:)/ F&! ! ! ! ! ! ! ! ! """"""""""""""" ;b@
1(@~ b/ F ! ! ! ! ! ! ! ! ! """"""""""""""" ;U
1$K~2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" Ab#
1$Ut679/ F ! ! ! ! ! ! ! """"""""""""""" A
1 de)>F ! ! ! ! ! ! ! ! ! ! """"""""""""""" Ab;
11 VXF^F^`N)fH)o_/3>`3`!P E>)^Fz""""""""""""" AA
11 2x]19^F^F^a)GF ! ! ! ! ! ! """"""""""""""" AbR
11<; 2 f// ,9)9+:]19^F^F^F_ ! ! ! ! """"""""""""""" AbR
11BA V&)>)^`XE>)Fh)T)vE ) """"""""""""""" A@
11L0 jk ,T/ ! ! ! ! ! ! ! """"""""""""""" 0H
11<R gh")oE",F^3 ) ! ! ! ! """"""""""""""" 0
11L@ ]=3:]HFGF^FX/3a`>fb>FGF*! """"""""""""""" 0;
11<K k9^_>FG)O) ! ! ! ! """"""""""""""" 0/A
11<U de)/ E)vEF ! ! ! ! ! ! ! """"""""""""""" 0R
11$#~ST:)/ F&! ! ! ! ! ! ! ! ! """"""""""""""" 0@
11 b/ F ! ! ! ! ! ! ! ! ! """"""""""""""" R=
11 z2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" R
11$;t679/ F ! ! ! ! ! ! ! """"""""""""""" R;
1B; k $/FD ! ! ! ! ! ! ! ! ! ! """"""""""""""" Rb0
1B;H k1 $PN,`>)F ! ! ! ! ! """"""""""""""" Rb0
1B;H gh")oE sm1 ! ! ! ! ! ! """"""""""""""" Rb@
1B;H<; \19G)&``,)h>f// ,9) ! ! ! ! """"""""""""""" @#
1B;HBA ST:)/ F&! ! ! ! ! ! ! ! ! """"""""""""""" @#
1B;HL0 b/ F ! ! ! ! ! ! ! ! ! """"""""""""""" @
1B;H<R 2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" @
1B;HL@ 679/ F ! ! ! ! ! ! ! """"""""""""""" @/A
1A 6 )^^ EFG))>)F ! ! ! ! ! ! ! """"""""""""""" @R
1A= \1 `>)^4P/3aPe F^ FG)O))F7! """"""""""""""" @R
1A= d )>)^4PNZFG)O))F.! ! ! ! """"""""""""""" @@
1A=<; k 1`HFZ/3aF^`>Ey! ! ! ! ! ! """"""""""""""" K=
1A=BA d )>)^ '& DFG)O))F ! ! ! """"""""""""""" KR
1A=L0 d )>)^43 FG))>)F?! ! ! ! """"""""""""""" KK
1A=<R /,8FG))>)F?! ! ! ! ! ! """"""""""""""" KU
1A=L@ 2,9f/ `"P )>O)FG))>)F!! """"""""""""""" U#
1A=<K 671FG+)I) )>)^ FI))>)F """"""""""""" U;
1A=<U ST:)/ F&! ! ! ! ! ! ! ! ! """"""""""""""" UA
1A=$#t b/ F ! ! ! ! ! ! ! ! ! """"""""""""""" UK
1A=w2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" UU
1A= ~679/ F ! ! ! ! ! ! ! """"""""""""""" $#;
1<0 b) E)Z,+sE:F ! ! ! ! ! ! """"""""""""""" $#A
1<01 gh")oEF bO)&9339,=s9 ! ! ! """"""""""""""" $#b0
1<01 ]=3:]HFGF^F 9`fb>^F^F 9/3)F """"""""" $#b@
1<01<; 2x]1 `)h`fb>F^F ! ! ! ! ! """"""""""""""" $#K
1<01BA jk ,T/ ! ! ! ! ! ! ! """"""""""""""" $#U
1<01L0 b)9.E)71,.sE>hFGHFI)F! ! """"""""""""""" $#
1<01<R gh d 24242yFI)/393-@0/A ! ! ! ! """"""""""""""" (0
1<01<K ST:)/ F&! ! ! ! ! ! ! ! ! """"""""""""""" #
1<01<U b/ F ! ! ! ! ! ! ! ! ! """""""""""""""
1<01$#~2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" ;
1<01 679/ F ! ! ! ! ! ! ! """"""""""""""" 0
1BR V&GHFZ/3E)>F ! ! ! ! ! ! ! """"""""""""""" @
1BRH V&^_)o1EF ! ! ! ! ! ! ! """"""""""""""" @
1BRH de9)N/
^$1FT! ! ! ! ! ! """"""""""""""" U
1BRH<; &/3J/``FGF&)+ )FJ! ! ! """"""""""""""" U
1BRHBA V&^HF& )ZFG P 3FG`>s9Q ! ! """"""""""""""" $;#
1BRHL0 d )>)^(fb>D.`)/> ! ! ! """"""""""""""" $;=
1BRH<R M )^>Z)oEFX93PN,9`>)^9/ )ot! ! """"""""""""""" $;
1BRHL@ V&^ ) em):Z`>fb>FGp! ! ! """"""""""""""" $;b0
1BRH<K M )^>XO)>)` ! ! ! ! ! """"""""""""""" $;R
1BRH<U SD19/`D^/ `$)! ! ! """"""""""""""" $;U
1BRH$#zV&^HFZP `9/`:)>F ! ! ! ! ! """"""""""""""" Ab;
1BRH ,9 )3F^9/ ^$1F ! ! ! ! """"""""""""""" A@
1BRH k>b3 ^HFZ/3E)>^F*! ! ! """"""""""""""" (0@
1BRH$;~ST:)/ F&! ! ! ! ! ! ! ! ! """"""""""""""" (0U
1BRHA} b/ F ! ! ! ! ! ! ! ! ! """"""""""""""" $R=
1BRH(0z2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" $R
1BRH$Rt679/ F ! ! ! ! ! ! ! """"""""""""""" $Rb0
3 Functions 169
;H V*WFG)X6ZY Y PN,9`:) ! ! ! ! ! ! ! """"""""""""""" (@#
;H M /3mFG)`3)F ! ! ! ! """"""""""""""" (@H
;H ,`>)a3>W99)F ! ! ! ! ! """"""""""""""" (@;
;H<; ,`>)a`$/ F ! ! ! ! ! ! ! """"""""""""""" (@/A
;HBA gh")oE fb3-! ! ! ! ! ! ! """"""""""""""" (@/A
;HL0 ,`>)9FZ/3aF^`>Ec! ! ! ! ! """"""""""""""" (@0
;H<R M `3,=/ {/ ! ! ! """"""""""""""" (@K
;HL@ V&^HF&/FhPN,9`>)^a^,9>)F ! ! """"""""""""""" $K#
;H<K 13, N
)c ! ! ! ! ! ! """"""""""""""" $K
;H<U &F^+ s^_PN,`>)9Fh ! ! ! ! """"""""""""""" $KK
;H$#~ST:)/ F&! ! ! ! ! ! ! ! ! """"""""""""""" $U#
;H b/ F ! ! ! ! ! ! ! ! ! """"""""""""""" $U
;H z2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" $U;
;H$;t679/ F ! ! ! ! ! ! ! """"""""""""""" $UK
;H h`,=F^ ! ! ! ! ! ! ! ! ! ! """"""""""""""" #
;H1 Vw'h^ ,= ! ! ! ! ! ! ! """"""""""""""" #
;H1 gh!`/ EFG)` ! ! ! ! ! ! ! """"""""""""""" #;
;H1<; /F^`T/`>)`_! ! ! ! ! ! ! """"""""""""""" #A
;H1BA Z`,=FGfb>FG,9FZ)>)z ! ! ! """"""""""""""" #R
;H1<R \1^) ! ! ! ! ! ! ! ! """"""""""""""" #U
;H1L@ qr3_b>hFGHFI)F ! ! ! ! """"""""""""""" H$R
;H1<K ST:)/ F&! ! ! ! ! ! ! ! ! """""""""""""""
;H1<U b/ F ! ! ! ! ! ! ! ! ! """"""""""""""" ;
;H1$#~2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" ;
;H1 679/ F ! ! ! ! ! ! ! """"""""""""""" K
4 Compound Types 231
A= \)^^,9`:)F XM N/aCD 3-ST)_ ! ! ! ! ! """"""""""""""" ;
A= \)^,`>)X3>W9)9F> ! ! ! ! ! """"""""""""""" ;b0
A= \)^,`>)F&/3aF^`E&! ! ! ! ! ! """"""""""""""" ;R
A=<; +sm>X``F^FJ ! ! ! ! ! ! """"""""""""""" ;R
A=BA de9)N/
)_93/F^F^9>)p ! ! """"""""""""""" ;b@
A=L0 &F^> e3>W99>3-E>)^F ! ! ! ! """"""""""""""" ;U
A=<R ST:)/ F&! ! ! ! ! ! ! ! ! """"""""""""""" /A
A=L@ b/ F ! ! ! ! ! ! ! ! ! """"""""""""""" /A
A=<K 2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" /Ab;
A=<U 679/ F ! ! ! ! ! ! ! """"""""""""""" /A0
A= gnETjkON/)FT! ! ! ! ! ! ! ! ! """"""""""""""" /AbK
A=1 ZPN>^`!)o1E>F ! ! ! ! ! ! """"""""""""""" /AbK
A=1 6h/ {s_f/ ,9"/3a`$ ms1PN>^`c! """"""""""""""" /AbU
A=1<; Z>),= s1f/ ,9"/3 ^>),=s >PN>` """""""""""""" 0#
A=1BA !,F^> 3>W93-E>O)F! ! ! """"""""""""""" 0H
A=1L0 67FG) )o1EF ! ! ! ! ! ! ! """"""""""""""" 00
A=1<R 9)Z:]=/`>) Fh`FG)) 5 ! ! ! """"""""""""""" 0@
A=1L@ 67FG) PN>^`F ! ! ! ! ! ! """"""""""""""" 0K
A=1<K 67FG) )o1EF&/F7>),=)oEF ! ! """"""""""""""" 0U
A=1<U a)^ ,F^ `FG) ! ! ! ! ! """"""""""""""" R#
A=1$#t b/ F ! ! ! ! ! ! ! ! ! """"""""""""""" R=
A=1w2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" R=
A=1 ~679/ F ! ! ! ! ! ! ! """"""""""""""" RA
A=B; 6 N/F^FGFT! ! ! ! ! ! ! ! ! ! ! """"""""""""""" RR
A=B;H 24`$9F^, NO)! ! ! ! ! ! ! """"""""""""""" RR
A=B;H M4,=s9 ` /3f/)J ! ! ! ! ! """"""""""""""" RU
A=B;H<; +sm>&PN,`>)9F ! ! ! ! ! """"""""""""""" @#
A=B;HBA 67FG)^^,9`:)F ! ! ! ! ! ! ! """"""""""""""" @
A=B;HL0 ST>P /, )h`FG)^,`>)Z ! ! ! ! ! """"""""""""""" @;
A=B;H<R &F^> e3>W99>3-`fb>^F^F_! ! ! ! """"""""""""""" @/A
A=B;HL@ +sm>&m>)^F ! ! ! ! ! """"""""""""""" @0
A=B;H<K ZFG)>3a)vEF ! ! ! ! ! ! ! """"""""""""""" @@
A=B;H<U 67 NF^FZ3>W9)9F ! ! ! ! ! ! """"""""""""""" @K
A=B;H$# &/3c1,+sm>Fh! ! ! ! ! ! """"""""""""""" @U
A=B;H ~ b/ F ! ! ! ! ! ! ! ! ! """"""""""""""" KR
A=B;H$;~2x]H>`FGF ! ! ! ! ! ! ! ! """"""""""""""" Kb@
A=B;HA}679/ F ! ! ! ! ! ! ! """"""""""""""" KU
A C++ Operators 291
Index 294
Chapter 1
Introduction
1.1 Why learn programming?
! " $#&%'()*+,)-#./0*)12,)3+465798:;<=
>3<:<)?1"@'A+657/'A+012<./-#B/C D)E5CF&G;<//HI)J
#KILM://N:/' O'KLM7/:!-P!57Q.QB657RL=<:6ST/!01"'I
#USWV$%F&XNY9657B1"! Z1[+012=-#\5CF&]N&9657^/:!1['I
_`!a8M57<L@bcVd./-RefLYL=:g0h=10012<.ji/k&ldmCn/o
p 5&10.A.Q/!01qr,sgLt U1[M.Iuv5C+jw/']LM7<:ELM://N:/' 1[./-E)xuv5&Vy1[z10.1['E{
L=:g2MST:|Vh}EM ~V
,9FG
/']LM7<:?LM:</N:/'E./-?;!CE+ .Q@
'Z)
657<'
9>|E9 9 PN 8uIs )F^39$1F ).F^,)o19`$ `>)/9F.-F^>`>)
`$/ 3
/'KLMC<:^.<Q10 " .
d )F& FG)>3 )>^+)X9`> ,39
:/)
4 s$/<
r
_Ru`<:L=1"M
g79>F^ ^ )^9 9/F_P
!LYLt Z12,+012}LM:</N:/'j.
X/F8)^ O) 9fb sE 'Z)^)^ s
`>G)/_E9 Xe_) sE(fbT`$/F^F O)`>F^P)h`GE)C )+sm ,F^>3s1_)>7E>
ePNZ:]8 =.F/ F7>>F^))fbg
gh
'KLMC<:W.<Q1[ [ ~.
F^`>))n/ FG! FI)k)^F bR
p|
M
F
cR]"4g7F^
)9/F P LM:</N:/'^'j1"7N U7N*NY<. n /, F ,F^3|) FG)^^,9`:) +/
`89,=)>$ ZF^ " N9,9/
Vh
`$/'Z)X)D/F )^ O) 'X F^,=s FG
1,) _sE ,F^3as1)>^F Zsb,=FG P
V `>8 ,=):/ F FI)_P FG)^,`>)^F_)^ sE /,=)_)^`$/ `F^F^>3 s1
`89,=)>$ g7+`>8 ,=):T)F^ P4FDFG),=93d / )^9 ) ` `>FDP ) /-
de )^9F F^F^ k-/ PN.)`>8 ,=): F. b_-` 1sE `E_PN FG8'X
`$/)D` >fb> '&)afb>^a )>3 F 1 F 8>F^F^fb F^, )F&`$/-sE s)/9>3 )=,
.FG)> es eFG)> FG)G,`>){
FG)DE9 "F^89 _,F^ F uI,FG)X b!)>,F^ ` 1sE HFhV F/ F&>>F^)
)fb rPN":]=/89 E3F O99 `$)a/FT/FT)1 FDPN"FT'7 m.g7 P /`:)")9)Tb,
h$/3 )Fn >)Fk,F4sE :fbh)9)4b,8E)>)N sE> ")!)^9Z`$)>^+PmE9 7'X
/ FG 3a)^ '&^)D/F
gh>^TX_/ ^$/F^F PN 'Z) 9^/F \1Z89 (b> )n 8PN7) FG
s /` Z`,=F^!) , ) =s9,)Z, )_O) )>"FZ 3>E:Z/F^asE3 )Z)^ O)
'7Z9 N ) :]19 N/8:]1)$ g79&,9F^)nFn)^ O)k('h/39$1F b,`/9)nsEX F^>,9Fn>
>)k/ Z"F^:,FnFG`)FG) b'X),)n)n $FG) F^ s /F^`Z/9&F H Fx2xfb_8 >F^F
F^>^,FX`)^:]H)F m'7 `$/ `>93 ) $^ / 1sE`/,F^.)X`$ sOsE,=)
. )hP PN, /3aF)^F^P /`>)^{
de )^98)o'7)>)^ `>),=^ x`>8 ,=):F 9fb8>fb ,=)
3 )8'h F^`>9`>_/3
>9 3|g sE_``>:) k'7_'X ,93>G )F 'X)|5:]8 P
_)_O)`FM4,9^s Os 3M) ]HE`:)Z_O) ) sEX>)38WFI)7_`9>`>)'X)
`89,=)>F/ 39>3 _/ _O)_)`>N/F!FG)^ ,F^ m>/3|m` 7y 39/ s /F^F
uv5C+
`FGF^ )D'Z)n39('X /`>)^, 11,.sE>F /3+)^XE>PN `/ `, N)^Fr'&) ) s 9/3r
g79F!9E3 ) FG- ,` ?'Z)_1PNF PN 9:'t)^F s9,=) ) 1`>F^F P
)1[7N )^9>F^X)F>ng7Fk`F^F7P) ,9F )..Ofb:Z_8`>9`:>)T:]=/89 F
h`,)::]8 F 1 3>7)+F^T`:^)/ )^)>^9F H7).39F^`(fb>Z)^ O)7F^XFG)O))
F P/ F^yg7a`89,=)>+9/F )^^3,9FG /``> >)^35)F `F^F s1 ) H9 Ofb:8)
,=)!'7 mT b,? -) 8_O)_)`>N/MBF7)> /3-)3 mb, FG) W93 >
>)G)>FZ/3-/ 13FZP FG)^/ FGH.sE F 1s9,)ZFG)h b> ,9.sE>^Fh >h)9/ )^{
gh>^ Fa)9`a)^ O)_9` | ,FG)^)F )^9-FG),9)h/3y)FF8)-F^$O` PN
) <:g.Q/=XLM:!1"'I!. Tde|$RAA 9)=^` a/3 _)_O)`N a^ >F^
FG)s9 F^3)"PN O'&+`> N/-
Mersenne’s Conjecture.
p 57|=h'A;/<:g. S|657GSQ:!'2 n − 1
:<?LM:!1['A=h'A;</:g.aSQ:
n = 2, 3, 5, 7, 13, 17, 19, 31, 67, 127, 257
- ;!C SQ:zI657<:z=C'j{;/<:
n < 257
>F^>9`^>FGE33 '&) _/ P7) $/3a_)^9>_)`/F"O) )9) ) F^
Fk`>buv`:),=XsE`$Z'X39> HO'&{ Z_)
n = 7
b,_`$/fb>^P8)n'X 7b,$/3)F /3a?$RAA H)"`>buv`:),="'h/FZ/ ^$/3=fb>W93,)n = 19
d ) ) +)9/ 1,3^3 b$F ,)^ n)8:]1).:]Hm9>) >FG9QBF. FG)!`, 3
sE fb>W93{zde* :)^)>_) k>, X9,=s9 F^3 (@@ &qr>99^3 2 ,9 > (fb3 )^ O)
2 31 − 1 = 2147483647
F -_1,.sE>$ k,=) $Kb@R k/)> ,93=>3|b$F N):>FG9 EFG),9,F^ a`>fb3 $f1 s9 (' 243,93 q{,`$/F"(fb3 )9)
2 67 − 1 = 147573952589676412927
F Xk1,+sm> q{,9`/FxF^O'7>3 Fx /F^F^+PN4 N , sE>^Fx/ F^Z'X. fb>)3.) pu`<:W S 1
,
g:xq{,`$/F<F 1P=3F ) '7 ")
'h b,'7, 38 ]HE`:) )k3F
:]H9s ) T9^ZP`>) P
2 67 − 1
)&FG)n3`:)k'h P (fH )^ O)X+1,+sm>&FZ)&g Hs9,=)&)&,F^FX+` >fb:D3`>)&,)hfb)3s1-qr,`$/FD )^9!F/!b$O$Tgh P /`:)FO)-P
2 67 − 1
>_/3-, HO'& PN /)>0.bF
de $U#; H Z FG 67 "'h/FZF^`9>39, >3 )^8fb + `>)^,^") )^9!VX>`/ a)^9
_)`$/ {\1`>)o ='XF^T)) T'hFLCTa) 9`>)F^)Pxqr Z,+sE:F<n6 T'7)h)
) s9 N/`1smb3E/3 'X),=)XF^$18F^ '73m WFG)D'&^) 3O'&?8`$ `, N))
s)/
2 67 − 1
s_>E$O)3a+, )9 `)+'X))o'7=k%&TW99/ 9/3)!,9.sE>147573952589676412927
)hs /`1sEb^3r ghZ'Z)h3O'&/)>e ,` ^Z)>>FG)+ `$/ `>,9 )+PN
)T9^13,`>)&Pr)o'7 1,.sE>F>
761838257287 x 193707721 ---
761838257287 6856544315583
2285514771861
5332867801009
5332867801009 5332867801009
1523676514574 761838257287 --- 147573952589676412927
67 X9/38Ofb>3)9)
2 67 − 1 = 761838257287 193707721
/_ 1")hF^, ) P{qr,`$/F sE >f/s9 ")_>fb:^1sE3=2 67 − 1
FX) "1,+sm>T%& >`fb3 FG)93(fO)F PNh)F7/``89 F^)k/3 NO)>Z/3)^)>38)9)7"9/3'7 b3W993 )F^ P/`>)^F>fb>G-\1,39$ PNh)" NFG)7)="bF
g 139 b, `/-FG)G)T `89,=)>&/ :s9+/J-b,=D`89,=)>P +E9, NZ
F
Maple
9)o1m"ifactor(2^67-1);
/3'&)_ F^Fh)9/a.F^`>93-:)Z) ,=)^9,)
(761838257287)(193707721)
g FG,9_O
Z1,3=3?b$OF / rs /)&_)_)`N/a>39>3 )=.b$FT)
`,= 'X) aFG,9 ) )9). ,` F^F s N/) E9 ? '7__) )/ 1 sE,=) b,h
`, 3 >) F^F )9/ F^`3 )139 ,F^ `89,=)> /3 ) )!/- g79F
F^>F83FG),=^s9 O) WFG)FG) /3y)^9 1 sm,) ) `>,F )PDF8 PNa67
3>fb)3 )-)9^s b,|_?>fb5PN> F^^^ PN+-E4, FG9, 3M)<4O)> x)
FG)G 9/F7)="8E^)/) F^F^FhFG)^
Tool skills.
q{F^F^+hF )9)46 Fx`$/ `, NO)Fr'7:7:]H)^^ !398`, ) fb.) )1 F"9/3A E> HE` H/3s s9 8fb>^ 13 >)/ {O)>)`g:xTfb) ) F Vh
9fb3 ) `89,=)>D93 8`89,=)>X/ >s./ `/ 3
Maple
r6 BF&`$/ `, NO)F$/FI ^,)^? F^,=_)9) 67 _'7, 3 PN hF^^G PN /b9,F^ )F^9:'
) Fn .)">13,`ZF^Z,93=>3 b$ 38`$/ `>,9 ){ ZF^PN, >'y) Fn $/38)"9:'
EF^FGs9 )F 93+`9/ F> CT+)79 9/3)F
+ " uv.
b,.) 39Tn)9/+b, `, 3
3 sEPN^ )^9")>X9/3-)&/ FG SQ://!. b,-) 38 P b,a'h)h) b> ,=-'X)
)!3>fb> 9)F> 9)^>fb>&b, 3 99('h/39HFhb,- ,FG)X/` 1,^!/3-_/)/)& $/FI)
F^Ds /F^` H('X >39TP `>8 ,=):Fh/3a9 `$O)/F
Problem skills.
q{F^F^ )v'7+F7)9) ) {F H F7/ D'7, 3 )h9fb" m3 6 D) P`>)2 67 − 1
D6 / FG 'h/FD813-_)_O)`N_'& H>' 8 )XP )G- `, 3 ,F^!) Ffb!`/ `, N)^Fxg79FZF7)T$/F^ 'XG9 +9>33a)=Tb$F>2 fb>?O'h3 1F E`89,=)>FD93 9 `)/FD )T>fb:^1)= /`>)^
2 67 − 1
F_$/FGsE`$,9FG )FF F^_/ X,+sE:sy)1397FFI)/393F k,=)P/`:) N^ 1,.sE>F]2 1000
F!`>9FG3>3 N^+)39$Cx `>,9 P b$F x)!)TsE2 2000
P4P /`>)9 1,.sE>F&FX).FG)X)&s9 PNT'&9` FG)Xm9 +,9FI)
/`>)^, E_)9)
`)8F^ ,=) '& >fb: sEPN,93{ g79$/FG5F )9)+_/
`>^)FGHFI)Fk)9) D,F^W ) P{F^`>,^D):>) s / H+ X9,= s /F^3_)
/`>)^`$/ {8EFGF^s9 )o P P /`>)^ NO!,9.sE>^F g7>PN )"'7^FG)XF^`>98PNZ)
>)o'7 b3+'7 3.'7,9 3+sE )^ O)4)^9 Is /3 ,=HF 3F^`(fb> WFG)4O'5)^"P /`:)4 N ,9.sE>^F
`) b
gh>^ O _/)>Xs9 Fh)9) .FDPTPp8F^ ,=) /FX)>a'7>^
`89,=)>"39$1F 679_s /`?) >F^ '78FI) `$/) `9`>)>
)8 ]HE)F
n
PND'X`-) 1,.sE>2 n − 1
FD 1,+sm>$&? 39M)D>fb H('['X>)^9:D)>T=W9) 8_/F^,` >FG9 F deP{b,9 N/_)._ bT `)^s9,=)_> =b,
F^, 3+9) s ,=+XP /FI)>4`89,=)> '&) ) N)>FG)xfb>F^ P
Maple
bs9,) FI),3._O){ 2xfb).`$/F^+P4s9 >FXPNT'X` `>8 ,=):FD`$/ $/ -`)Gs9,=) ) e"/`>),9/ W93h
)+F^ ,=)mb,?)o19`/ ->3?)9fb8_3> ,3>FG)/399Pn)^9.s9 p 3>
) 19(' 57u
)-,F^8)`89,=)>$deP7b, 'h/) )-sE` / > +FG`)FG)
b, +,FG) ` 1, /3 _/)/ _PN,3 H('X >39 sE,=)T) s9 >FXb,?'X sE
3$/ 9 '&){ g79F P /`>)7'h/F )^,T1,3=3b$Fh/ =93 )7F FG)^ )G,, `89,=)>F 9fb
)Zb:)& 3) F^ fb )^>FG)^+s9 F s_)F^ fb>F
Programming Skills.
q{F^F^.)= F 9 )^ O) 6 33.)x fbk)^DF^ ('h/39HF /s9 >FGE>`W9` HO'& 3.`$/ sE+)^,^9>3?)s9 > FGE>`W9` `89,=)>DF g79)T'h$
).FG))^+P4)+^) ``>!>FG9+FX9/F /3=f//`3 ,) P$.d )T),=3 ,=)
)9) >FG9 9/3?_/3 Wfb+FG) b>F
n = 67
/3n = 257
:F^BF" FG)T3 9)$35)?1,.sE>F<Z5)a)>9/3>FG9-9/3 GPN^)^) ?)a ]HE)F
n = 61, 89
/3107
VXF PX\1>).sE> ##K n'7 HO'JAbR >F^>F 4)^9 N^FG) PZ'X`59/F /
:]1E)"P
n = 43, 112, 609
k,=)!3M) sE >fb )9)T)F".'h/F PN,93?'&) l e)^9
F^ Pr/F
M ^s F 1``>,^ )"39/ PNTP /:&& F^`)FG)Z^"P)>a)Z/FG_)
F^ fb >fb 'X) `>8 ,=): /3 FI)/393 F^P)o'h8)!9/3{_de 3>!)^-)^)` )
b,-3
.<Q1[ [ ~.
PN&)",=) `$/ `>,9 )F /3
LM:<&;! <' .<Q1[ [ ~.
)^8,93>^FG)/3-/3
:]1)^/`>)D)^9.FGE`>)^F Px) s9 J)9)T`$/ -` / rsE F^ fb3 s1 8`>8 ,=):$ k,=)
)"3=b,-3 LM:<N:/'j'^1[7N ./Q10 " . ) /`>),9/ 3 )
The art of computer programming.
g `` ,3+)F F^`:) >) ,9F sE+9FI) !PN"_/E9 e` ,938) /,=)FTPk)FTsE1 Y E)+`F^F P4'&)9^/FT9/F"FG
fb>^ 9 e,)^ )ON/ /FGm`>)F./F"'7 e8? fb8>)3 )v'7P7)^9> sEPN^ .PN,9 /3
F)^F^P /`>)^{ ?!`, 3/33a_)_O)`$/ sE$,)o /3a+sE1FI)$kde9 'h &/)>
>fb>G /F^FG9)D/> PN F&)& $/FG)Z. )^) Xs )Z b /-^)^FG)$
gh8 /3=fb1`) P )F fH:' /F ST9/ 3 2hD,=){a%&8F!)
/,=) Ph1,)/ b/3 F^ FG>F PHF^>fb.sE HF >))^ 3
p 57R:gf S
'KLMC<:
_:</N:/'^'j1"7N
\)^)D'X)+j4 ,kd $URK )=7P )hF^>fb fb ,F 9,=s F^3
www.mersenne.org
s1!O'!xSX/P)F PHjn ,94d j|``, NO)kF^9`> ##b0 /3 )k9 N93 ^ $/FGk39) PHj4 ,
j F #=(0^ )&FG9, 3 sE /333a)9) X1,=)-'h/F7sE- $U;K /3a-Fh'7>s /
http:
//www-cs-faculty.stanford.edu/~knuth/taocp.html
48) /FG) 89 ` ) )^F )TEF^F^s9 )9)hj4 ,FkjTdn/3jTdId '& m)hsE 'Z)^)^a/H!:qr:) X1,=)-9fbT) W99/ {F>^K 1,) Pc) sm+P jn ,9Xd
p 57LM:</<.<.K SfLM:<qL7:!1[7NPLM:</N:/'j. ST:]^)1"N1[2+ /']LM7<:P10.X!.qL=<1q+ " ~V
+60:/J<01[F&<-`WM ZV ;<C.Q^1[W ;< /'j1q+ [ ZV )A.Q<1q<M01 ,+ [ ZVI:<<{
u:/)1"7N-;<7j+ ~.QH;<7.T1[? ;<@ J!.<657<012,sgL7<:!12< '^ !5 Z10
'KL=./1"7NBL=Q!0:!V :B'jC./12T
1.2 How to run a program
# _`:!1[.x657<V<C.<A.1['KLt ZV <L=/) 657/1[: /Vh!. )
./2:<)Guv57<|u`W.qL7dc3657/'(1[M:/<!5
\<F&<:
)1 )3./*//)1"I'A+T1[7N3657.T\1q)1q6.Rh)J<:g.<2)G657/1[:
u U7NtNYQ
:g p u1[=- p 57K# =Q/<M6. X;!:/QY) i/kmCndl!o
p 5&10..Q/!01q ,sgLt U1[M.9uv5C+10:<,+ [ ZVB'I,M. [u:!10cLM:</N:/'g- )]57u
V$x<Y;g Dz657j'KLMC<:3j:!h 1[2:z65&1[./-uR)J!.Q<:!1 ;<B657K1"7N:<)1q<M6.
1"=F& ~Fd)1[ 6579LM:<Q/!.<.\657
3) - 657
`89 : -657
`89,=)>
106.Q! S/-v)
657 E>O)"FIHFG)> ']LM7<:!-v/']LM10 D<:B)E<L7<:/+01[7N3./Vd./<'(NY!657<:
ST:!' 657
9 N)^PN
uv5&12!5Vh:<Ku:!1001[7NKLM:</N:'E.T
1.2.1 Editor
?^)"TtF4)kFG 3lm>^)nPt'Z)9 T >)^)^>$4CD9&`8EF^F4T):]H) )9)nF
EeEPN, Jh/PN,9 rF^ ,`.P4`9`>)>F> ZF^,9/ 9)>. `>>^)/ `>fb)F
('F^,` 8D)^:]H)nF FG)^,`>)^,^31/3+)h9,=^EF^7P9)h) ]H)nFx) )G/FGE^)4PN_O){
O)Z9/F sE>aF/3 F^+P&9 Fk)^+sE)^ >)G)>F7/39^/Fk,=)7'X'&)^
/ )^9:&Fn/)>k/FGE>`>)k)9)49/F4)"sEh) b )!/``,) xV/z Fn) sE
I$3 8s- `>8 ,=): / )9)&)X+,FG)XsE f// NOs )8)^9!`89,)^>X-> `>)^^9`
PN-_de )8PN,=),= '78) sm8s9 +)a/ 39`>)).) ) )8`89,=)>
s9,=) O'h3 1F )Z` 'h Fn) ,F^X b>sEb3/3F^89 )oE&)k{xVX
)1[:
F
/ `$)_/ )9)Z/ ('XF b,) 3FI $ 13P 1/3a `:)^`$/ 8FG)^TF^,`
)o1E>3 e ) ]H)$ g7Z,F^ZP 3)^FnF4) FG)^^`>)3 )" Pm`>,^F^x) FG
FG) =:]=FG)"^_/)` :]=`:9)^F :fb >)^)^>Fn&`>8EF^3 ,9FG!3)^FnF^,`_/Fz
:)
1.2.2 Compiler
a 1a9^/ $f// s9 ) ) `89,)^> >`>)^`+PN F",F^,9/ 9)!,r
g79
'J!5&1[] U7N*NY
`89,=)> `/,3>FG)93 3`>)^ F fb>G)fb&/31,)^
3lm:)ZPJ9),=/ E N9,9/>F
?)+)^9T/F a_/`D N/,9/TFZ+fHNs9 T )>9)^fb =F^`T)9)7'7, 3
,-) s9^$ ) 9^/ ) -1,.sE>PT9^)fb FG)^,`>)^F8)9))
`89,=)> `/|,3>FG)93{?ghF F b) 9 b,+P3 ) `(fb>+PN 3> s
) .9:Z'&9` ,F^`> F7) (fb 3>h) >)Z)^ b,=Z9 N`
(fb> _` N9,9/>FTf/^ `F^3>s9 asE>)o'7> 39 lm>>)"`89,)^>F+g7 O)
F x 3> )^ ,F^ /i'&)^) PN+FGE`>W9``89,)^> V a3lm>^).`
// Program: power8.C
// Raise a number to the power eight.
#include <iostream>
int main() { // input
std::cout << "Compute a^8 for a =? ";
int a;
std::cin >> a;
// computation int b = a * a;
b = b * b;
// Output b * b, i.e., a^8 std::cout << a << "^8 = "
<< b * b << "\n";
return 0;
}
Sourcecode Executable
MZ ÿÿ@ U‰å]é×È
U‰åƒì ƒä𸠉Eô‹Eôè'Ë è‚×ÇD 0C Ç $ÀeC è.ë Eü‰D$ Ç $ eC èKàD$ 0 Ç $ÀeC è ë Eø‰D$ Ç $ eC è$à ÇD$ <0 Ç $ÀeC èàê ‰Â‹Eü‰D$ ‰ $è ÇD$ H0C ‰ $è¿ê ‰Â‹Eø‰D$ ‰ $èn ÇD$ N0C ‰ $è ê ‰Â‹EøEü‰D$ ‰ $èJ ÇD$ S0C ‰ $èzê ÇD$ óB ‰ $èZúà U‰åƒì } ÿÿ u ƒ} u Ç $ `C èÑ } ÿÿ u ƒ}
u Ç $ `C èF ÉÃU‰åƒì ÇD$ ÿÿ Ç $ è¨ÿÿÿÉÃU‰åƒì ÇD$ ÿÿ Ç $ ÿÿÉà U‰åSƒì ‹] ‹M Ç ˚JC ‹@ôŠ p9C ˆ h ‹ R S Rè Ö Æƒ ƒÄ ‹]ü‰ì]à ´& ¼' U‰åSƒì ‹] ‹M Ç ˚JC ‹ @ôŠ p9C ˆ h ‹ P S RèÏÕ Æƒ ƒÄ ‹]ü‰ì]à ´& ¼' U‰åƒì ‹U Ç ˚JC RèûY ƒÄ ‰ì]à t& U‰åƒì ‹U Ç ˚JC RèÛY ƒÄ ‰ì]à t& U‰åSƒì ‹] Ç
˚JC SèºY ƒÄ ‰] ‹]ü‰ì]éyX ´&
U‰å‹E ƒÀ ]à t& U‰åWVSƒì<ŠM ˆMÇÇEàp @ ÇEäP C Eô‰EèÇEì @ ‰eð Uȃì RèWÉ ƒÄ }Ç •Â âÿ ‰UÀÿMÀ eÀ }Ç „
Compiler
Figure 1:
/']LM10 D<:30:/M./ D+!.K657z.Qh:<//Q)JB1[MA,s$//72Y;g D\LM:</N:/'A_/` /, P &kghF+9^1`FGF 7`$/ >3
L=:g01[7N
7`$ysmfb>^ `>,9.sE>^F^ P&)
_/`_ N/,9/F+PXV 93 tFG,s9FG)/)/ 3l >)$5VX F^ nEG) `/ sE
3"'X )a.3>)/ 3!19('X 3"P )^9TE`>,9 N)^F P ) fb fb3a`89,=)>F> k,=)Z)^9F
)o1EZP H('X >397F4) >/ '7^)^'X ) /` 1, /Fn)4F4)^3 )"Zfb>^ FGE>`W9`
`89,=)>$ VXF F^5/F )F `>8 ,=): F >9 N/`>3 s /)>. 4_/uI! O^)F PhF^,`
`89,=)> eFGE`>W9` 1O'& 3DsE`D'7^) >F^F&93 9$fb ) sm :s , )7P FG`>)`{
g a3,`8)F",93FGs9 )9 )"P `89,=)>F!/3 /F /3 )-/ O'
,F) 'Z) 9^/F8 FGF_)fb N/,9/ `e :fb D+ N9,9/>F
9fbXsE_3>fb m3{ng7F^T^DFG)/393
>3 N/,9/Fn)^ O) PNQ 13_PE`8F^
sE>)o'7>9)^,/ /, F /3_/`h N/,9/xde33)^9&,9FGXPm)&'73 G`8
F^ F{uv,FG)W >3 sE`/,F^Z)>^&^7)o'7"` `>)Tb/ F CT )Zh 93'7 '7, 3 b
).'&)D9^/F + /, X)9)7FZ/F7` F^T)+ O),=/ E N/,9/T/F7EF^FGs9 4CD)
)>"9/3 E'7+9$fb.) _ b )+`>8 ,=):FT,93>FI)/3?) /8 /, ./F
'7 [)F )F _F7s1f1,F^ 8+,` $F^>hPE)D/ N/,9/XF7` F^X)+_/`99
N/,9/
O)n3F ) $/ I)T_ b )7`89,=)>Fx,3>FG)93.) /Z N/,9/
de8)&>931/+/~9/Fn) sE&)^/F^ N)>3 )!_/`7 N/,9/xg7&1`>F^FkPm)^9F
)^9FG N)FX`$/ 3
/']LM10 U+012
ZO' b,-'X {s s9 /F I> Fh) sE>W)DP
)F '&9 X9^/! /, X``>) -de^39:h)^ 3.)T)G/F^ N)^_d4FI) m9fbD)
H(' / 9)F^T`89,=)> eFGE`>W9`X3>)/ F 13M)7do Z)$ deP{b, '7, 3_9$fbX)^.)G/F^ N)^
)Z/~b,=FG P g79b> F 4,h) F^,=EF^38)^")^9FG N)h)4b,^F^ P 4deFG)$3
>)Z /c3+)hPNZb,{k\1,9`- /QF7^PN>^>3a) F&
/']LM10 D<:
9 )h)G/F^ N)^F7
fb- /. N/,9/ 9) .Qh:<//Q)J r)_ / _/`99
N/,9/ ) ,sJ/<C2Y;g 7\1 ,= PND/ ,FG)^){
de FG,9_O^ g7 s9 sm>W)PK 9 e >fb U./9 N9,9/>F8F8)9)8)^9:
! #" %$&'() *'( +(#, - .* 0/ 1* 2 $3$&4 #"5 46
7 8( %9#"5 .+( *0,2 (7 %:$&'(8;<>=?"@ .6# A$& %*CB>#EDF2 ./ %*.BGH.I2/@7 %( 9 *
s9FG)^/`>).Pi)`$O Os )>F"PhFGE`>W9``89,)^>F Mx/F"'&)G) -9 e >fb
N/,9/D`$ sED,/ 139F7Pr`89,=)>F H/FZ 9+/Fh `89 : PNZ)^9T N9,9/&F
f Ns9 D)^9T ^)`, N7`89,=)>$
1.2.3 Computer
dePkb, ^ ) )>^FG)3??'&^)_`89 >^F E)"F")"`F^F^^?)^a,93>^FG)/3 ?39
)/ kO'Qa`89,)^>!'7 1F k,=) )>F^ s F^` ` F!sE3 )3F^ P
FG)k`89,)^>F )9) :<
8E^)) ) ,3>FG)93{4g79>F^X`9 F4PN})^9
F&B<C{
'A= :<!5&1[/!0h:<
/3 )> 8E^)/) F^` / FG) / N9,9/>F
T)/ 3_) )^9Tfb Z,_/ `)`:),=
VX!`89,=)> '&)!fb Z,_/ O`9)`>),=n9/Fx
:/)J' J/!.<.9'I/'I:!V
ZV
.F^89 _/ ^J /3 //M0:/+ fLM:</<.<./1[7Nh=10 o67M .F^89 1`>F^F^,
g79h_/.G FG)>F4)7/ ) sE7, s9,=) F^T39)X)9) )h/ 1,^F
/FD=9,=) E/3 39) )9)D)^9 / 13,`F /FD,=)^9,=)$ g79 `F^FG"FX) Is
Pk) `89,)^> T)":]=`>,)^F!).9^/ {$/)9)") `$^F!,=) ) F^ ,`8P
FG)^^,9`:)F 9^F^`>sE3s)^9T/c_/`99D /,
Main memory.
4,_`$/) 8PE)D`89,=)><BFk_^ /F7! 9 ^O' P FG'&)`F$/`5Ph) sE )^9: +l SD,=-9^/ :]H`,=)4FG'X)^` F+^ 9E3{
V )_/5) n)a^ `)) )a`,=^)EF^)^F P / ZFG'X)`9>F 3>W99>F )
LM:</N:/' .<2+ g79T/JFG)O)"`>8 >) 839:)>F '& O)Z9E>9Fh:]H) 6 9`>>
),9/ '7/ F^ `F^3>+,F^>+=9,=)+/3 / ,=)^9,)+F. G).Ph)/ FI))
>fb ), )8`^>FGE3 GFG'X)`9>F -)TsE )8,F^>!F s9/ )3
E>
\1`h13>+`89,=)>F47`$O Os hP 9 9DFG>fb>/ 9FG'&)`Fe; F^$Yx)n)^97F
) `F^>`,=)fb FG'&)`FT./`>`3 ,=E3 )^
'I<'A:!V /< [ ~.
g7 EF^)9F
PD/ hFI'X)`F |)`> 73>W99) M<M P&)`> 075 s9FG)^/`>)+)>F 4)
FG'&)`F `$/ >3
;!106.
$/` P )^9>i`$ s9 P FG)a8P )8,+sE:F
{0, 1}
de)FhF^F^ 9b,-`$/-)>^:)&)!`>))XPx+^_`> FX+s99G_1,+sm>Z'&)PN
:]=/89 =; .39)F ?!/ F^ F_)9)h'7"9fb
32
s9)h_/`99 HX32
{ ;!10./Vd./<'2n` ^+` mF , 1, 83)W938s1_ )F
Y)Y):<!./.
n,_`$) Pr)^9T393=>F^F
F^89 /Fh)^9TEF^ )P ) ^`> {) FG)7Px E^`> F
g + 1 _,=s9)7f// ,F =h)9 s9)^F7'&) FGE`>W9`"G8` 1) ` E9/F7).sE
J/!.<.Q,)
)=,)F&393=>F^Fngh _Px sE)ZQ'&)a; W9>F7)9)Zb,`$/)> m)
(fbT)^ ^8` {1,.sE>"(@1
gh )^>
:/)J' J/!.<.
^PN>F )a 9HFG`$/ E>^)o?P )8`89,=)>!F"G
))) ) bF8) ``F^F?`> \) GOfb) )F s )F ++F )-F/ PN/ h` F/X
^)`, N m)"3F
3>E3 ) 393=>F^F"P4).` e" b,?) )>FTP
)Z^sE)n )4sE`F4` n)^ O)n93~/``>F^F `$9)4sEZ) bPN /)>3r
d ) Fk9) 9>`F^FO^) 3F^`,F^F )^9Z HF^`$/ /Fks1 'X`/3 /``>F^F7Fk/
>3t)
.3 O) )ca^39:Z) /``>F^F&)h `) b
Processor.
4,-`$/a) P )!`>8 ,=):!BF71`>F^F^T/F&+sE$] )9)&FXs9 )8 b/3/3) :]H`,=)8) _` + N/,9/ 9FI)^,`>)F P7 / 3>g789^1`FGF^
9/F+F^_^ `> F.P&)^F ('Xk`/ 3 FG)>F /3|)+`$|)^/F^PN:839)-P )
`89,=)>!FZ_ >^)8)^Fh>FG)>^F 93af1` fb>F1hg7"FG)>&`)>)FDO / F^
^)"Pk) /pFG))/ FG) 8E^)/) 9) 1`>F^F^!`$/ E>^PN _W=]=3 F^:) P
F^89 E:)Fe bn/33Z F^,=s)^/`>)^ZFG)> `)>)F 3`>)^ `^FIE399h)
)&_` N9b,97FG)G,`>)Fxg7F4Fn'&9:h)^9ZPN,9`:)9/ )o P )Z'X
`FkPQ)D3{n2xfbfb>^`89 `$)38/3,F^>PN,9 m/Fk`$sEX9,=) ):)>
P +FG89 DF^>)ZP _/`D N/,9/TFG)^,`>)^F
VcF^ _FG)^,`>)^ /`>)F+ b_ _)_)^`$/ PN,`>)fb )_`,=^)
FG)O) f/ 35FG)^^,9`:)|>9:)F >' /35'7 3>W935:]H) / FG)O)yg79F
89 >F")9) / FG 1,` P&FG)^^,9`:)F 4/35 ^)`>,9 )'& 8/ 9/F+
'7 3>W93 sE> f1 =3>E3+)"9)N/ 99^/cFG))^
1.2.4 Operating system
_9fb FG|)9). 3>.)-'Z)_a/ 93 ,|) xb, WFG)+9fb_)^ FG)^)+/
3) /)o1E7.) / O) `$ 1) `89 : )D)^9FG N)k)^9 / )^D_/`99
N/,9/ /3 W99/ ) =)&`>8 ,=):n)":]=>`,=)X)$ de_/ =)F GFG)^)^ G`/ T/3
I) b,?^ )^9+`89,=)>!F
<L=<:/+01"7NO.Vd.</'
oC"\Y 8 F^ s /F^`.)^ O)
b, _ )!:fb E>`>fb )!F 9^/-.M 9, N"E>O)_FGHFG)^F!O@ 1")Ju.
=1Us
1"=Js /3
Jje8
=D:]8 H'X>)>Zb, FG)^)Z)!3)^Zsa` ` 1 -F^ `9&'&9:)>&b,
)o1E `_93 PN )^9F"F^:'X> {) m>)9FG1FG) _ bF!FG,^ )9) ) 3)^
/ F+ b/335) ) _/|^ 4/3|)^ O) )9^1`FGF^8FG)^)F :]=`>,)^?)$
\1 E'X b, FG)8b,= '&^)^) / )E>)aFG1FG) 1`)F FI `
PNZ)& )"93 3F /3-/F^FG1`NO)Fh)7'X)_)TW "9/Xb,-9fb (fH39>3r
V `>8 ,=):x'X),=) E>)TFGHFI)~F bh `n'&),=) )^F /3 FG) `89,=)>^F
b,`/s9,=_`X'&)! 9FI)/ >3m>)9 FIHFG)>-nd )7F 8E^))4) ,3>FG)/3
),b)^ O)4)^9hE>)TFGHFI)}F4)n:]H)G`$s9 !)3+)")h`89,=)> rb,8`$/ ) b
b,= I3('XFhMk6 /3FG) E)h,93>Xqr1,H]E
1.2.5 Platform
g79 `89,=)> )F m>)9 FGHFI) 935)^9 `89 > ^ )>)^9: PN:^3y) /F+)
Lt U+SQ:!'
.'&` b, Ok'&^)7b, 9^/F gh 3)^ F 9) ^)xPH)k9 NO)PN
F^` )h31FZ)Z 9,`T) sm9$f1hP )T9^/-
de/839/ H'7 3)>ZF !38PN4b, ) H(')^979 N)PN^ 'X b,Oh'Z)9
/F7a+ >fb E/ /, h`$/ r)9)7) /aF7) 3 b)T)
F^
"P .>^8`> Hex)T1,+sm>hPrs9)F )9)h`$ sE _/9, N)3 )>)>$ng79F F
FG) 8; )F^T39HF Hs9,=)7PNhF^X`89,=)>F ) F7RA /3PNhfb:^)fbZ`89,=)>^F
e bT)^9:O!,F^3F^_O^)h`$3F FJ 9)Z`/sE" ,` >F^Fh)^ -; 1
9> b,* ,F^ _ 1 _/`99 >)3yPN$O),=FP") 9^/
N/,9/ )PN eFGE`W `hsE9fHh)ksET)DF^, ) a >fb> m9^/
N/,9/F 9fb&F^,` ('e >fb PN$)^,^Fn)"P/` )) )^97)^9FG N)+) <12/M _/`99
N/,9/
4,Zb/ {F^, 3a 'hHF7sE )^ '&^)
Lt D+ST:!'E{ 1[)J2L=/)J<M
`13 F^9`>!)>^'&F^ =)
_8sEDfb>^3 `, ) )+>)7b,=h/ ) ,/)>7`89,=)> H:fbaPEb,a9fb
"`>8 >4PNk)9)k`89,=)>$xg7Fk8 F )9)k`>^)8PN$)^,^F F^, 38sE&$fb39>3 >fb
),)h)7F^ /3=f)/>,9F7)+,F^")J-.FGE`>W9`T9 NO)PN-
1.2.6 Details
j4 Z,_/MBF43$!Pr!` ^+PN )X/ ) )D3 O)"F^>F s1f1,F
P )39$CBF8E)PDfH>' 7s9,))^9- >FG)`89,=)>F b X=/3E,F^QBFE; 33M)
'7 )9)&'hb de-){; 9PND:]=/89 H)"^_PNX) 9^/c'h/FX. ,`-)E
3`,=9 3aP^J) =9,)Z/3 ,)G ,=)Z3>fH`> 9/3Pc)!_/>^b
VX )>>FG)&PN),=kP)nfb h,_/ `)>`>),=4Fr)^ O) ) / O'&F{F^ Pe13PH9
/F> ghF^!TE9, NZ/ )"3F^9:FZP `89,)^> fH^,9FGF PNX:]=/89
ghfb Z,_/ `)`>)^,^'&)|)F )v'7 >fb F PX>^@e_ >^ /3
1`>F^F^a^FG):F Fa/*3$
3 13 X/3 '7 89 `) '7 H ,93>a)^9F
13 m)^^,9,=)7)"`>,^F^
gh / )o 1 1F&"`89 `$O)3{13> `89,=)>^FX/ FG89$fb J!57 m `$
sE 99 )^+)T_/_G s9,=)Z/ ('X +,` P/FI)>&/``FGFh)+^ ` FRe) )
`hPE 7 NsE)Z/38:]HmF^fb&3FGh: ghZ3$DFn)9)nP ,) 3339)
FG)^3a)^9 `$/`")^ FGE>3a,=a)T9^/-
9 -`$/` F`>G)/ 5 113 ) 7)_ bF )- PN-P ?> ^
38`>,9 ) b,_`$/_ >n )XP/`>) )^ O) /``>F^F ) ) 39)"Fn39:E3)kP
'X>^Z)>8XFG)^3{ de_P/`>) ) >)n)&PN, m>PN_/`7sE>W)n)9) `$` `/lm>
) /: 9/F )T_ bkF^,= )9)x39)DO7/``>F^F^3 +
J!57!{,/57<:/<M
'hbxSD
)F ('7>fb> 1,FxFG `89,)^> FIE`W9`HO'& 37sE,=) )^9 `/`9 1O'& 3 '7
'7>!9/ 8)^^1 )fb3asa,F^ 9 e >fb {/9 /, F7q{,9`1 ='7
`$/ P) 9^ )FTF^F^,+/3 eFG,9`>`F^F^PN, JX ) ,)^_)`"`$/` _/9/>)
sE9 lm:3{4gh>ZFn/ F^"T)^9>>)`/ =13 =PNkF^ `$ 3
J!57!{,&;g Z1[F1q7.
/ )F
8'&9` _ )z:]1 `) 3F ) 19(' )^9Z O/>):FkPm)X`/`9/nVX )F
'X` ^88`>) ,93> )^9F!13 ^Ee `>>^)/ F^F^g! `) PN./ ``>^>)
`$/`!FG
de ^$/ e PN9 `)F r'7_/ F^ s9F^>^fb)89 )9) )39) )^ sm89^
`FGF^3y_) NO) W) )^ )^9`89,=)>!F._/ ^b CDE:) FGHFI)F.`$/
/,=)_)^`$/ 3$/ '&)a)F&sa `$/ :]1)38) _/->^_)8) 93 3F m
%&('7>fb> ) ./u!LYLM1[7N )^ O)X) bFX9 N`!'X 93 3F 39) )8sm./``FGF^3 O!)^9F
`$/` ,F8de?)^9F"F^),9)E) F P) ,F^ F^F")^ )8/,=)_)^` `9/F^F
(fH33as) E:) FGHFG)^F /3a)!/>7FX` 3)^8`!,= 'X)
1[&LMC47LMCR <12<M /F
2 fb>+'&9>.'7k:]H)>93.)kfb Z,_/ O`9)`>),=n)X` ,3kFG>fb>/ = $b:F P=
^ E)>+^ `89,=)>^FX)9) 39M)DW9) {FI)")Os m)>+
L7:/+ " ! 9'KLMC<:g.
'X )T)9/-"`F^FG$ ?) 8`>)&/F7PNDF^,` `89,=)>ZFZ+)/F
) 3lm>^)7PQ"PN7)Dfb Z>,9_9_O`9)`>),=/ng +) b PN, m/3
f//) P{)D / F^ /F 9fbT)^+sET3`8mF^3__/1,9/ ).3>E3)
^)F m$/` Px'X` F&)-, s1- Px) 1`>F^F^F>Dde _ `$/F^F m)F&FD)TO)
/ {.FG)^/)^PN^'h3)/F 93 FGE`>N/
3 N/,9/F 9fb")+sE ,9FG3{
V `>)hF^,``FGF^PN, / )>9)fbZ) / 9`89,)^>F ^ >)o'7 1F P FG e`F^FG
`89,=)>F> 4,`$->fb `$/ E)FZ.`89,)^>XO`9)`>),=/ 9/ 1)>! *M0h'
/']LM7<:g.
)9)hXs /F^>3`89 >) 3l >) HF^`$/ ` Fk)9/)Dfb h,
_/_`)>`>),= Z/ 1,9/),Q`89,=)>F `/9) smXs , ) b>) 1s9,=)h/Fh!):)`$/
13 1,9/)^,9 `89,=)>^F+ ]=FG) k/3|/ )^9F! / /3= sE 39:fb E3 )^9F
F^9 3 EP `89,=))^{
Chapter 2
Foundations
2.1 A first C++ program
p 57E;/+./1q3 hST:G657z'A=1~LM7 U+012 SK:<+ Z100VA10.z6573'=1LM7{
U+012 SRuR:)+.TR#US\V$ ,/M0:< 657\'I=1"7N SPu`:/)+.-fVh
/M0:< 657PL=<Lt Kuv57j'jC.<C.QK657Bu`:/)+.T
_v5&10 Z1L3 >W12<Q- u Eb9h10 U)I =1[F&/:g.Q p 5C+
>GQ!./ % + [ 9LC:g
p
uRE>3V.
+<:?i/k&lm o
p 5&10.K.Q/!01q|LM:<!.Q<M6.j
:g.<c/']Lt ! `K LM:</N:/' )?1[M0:/Q) !.G657
FG1)`>)`$ ) F^_)`/ <:!'E.X/!.<.T:!VAjh)J<:g.<2)O+ " 106.L7:g6.T
%&> F ,=+WFG)_6hY Y - d )8/F 1F PN 1,.sE>
a
/F 9,=) /3 ,=)^9,)^F )^F) EO'7:
a 8
deP7b,59fb >fb> F^> 6ZY Y /isE>PN k:fb|)F.F^^)+)X -F^`$G rFG` )T`)/FT )DP4FG)^9 HFG1+sE FD/3 '7^39FD)9) O
)DPN,3 9),= N/,9/XCT ) )>D9/3 )F&FX13 9:'XF Z/FDF^^)TFD)DF
)F7/J/ ^$/3=_`)/FZ__8EG)/) PN$),=FZP ) 6ZY Y N/,9/nCT` '7
9fbD9Z)=,_)^9> )FkFG`>)1)^9Fn/ /3_>fb)> 1s9>n/F
'7M)h _F^`$^/H
// Program : power8 . C
Á
// Raise a number to the eighth power .
# include < iostream >
Ã
int main ()
{
// input
std :: cout < < " Compute a ^8 for a =? " ;
Â
int a ;
std :: cin > > a ;
Á
// c o m p u t a t i o n
int b = a * a ; // b = a ^2
Ã
b = b * b ; // b = a ^4
// output b * b , i . e . , a ^8
std :: cout < < a < < " ^8 = " < < b * b < < " .\ n " ;
return 0;
Á©Â
}
Program 1:
LM:<N. YL=u`<:Tm$
deP b,-`89 D)F7/cab,=X`>8 ,=):&93 )a,a)!:]H`,=)s9 TW9 T9^
3,`3 s1 ) `89 > Eb, W993 )^9 PN ('X + ) FG)939^3 ,=)^9,)_gn19`$
) FG)/393a,=)^9,=)hFh)^)` 3 ) F^D'&39('*b,=&`89,)^>7F^`>>{
Compute a ^8 for a =?
4, `$/ ('~): /?)>> rB= r,9FG) b>1sEbO3{ VXP)^>">F^F^
) ,)G ,=)hb,=XFG`>a^$/3F&FZPN O'&F
Compute a ^8 for a =? 2 2 ^ 8 = 2 5 6 .
kPNT3F^`,F^FG!)X/
power8.C
_3>) b >) ,F (fb>7) ` ,`H b g7FkFG)^)^ 'X))o'7.F^ N/FG9>F
//
/'^'I<M6.H)>_31`,) )X/QFG,9`)9)
)Z`$/a/F^ _sE",93>^FG)13 sae1,_/hn$39:$ q{"A `)F&/
1"! Z*)J!{ )1[:<!01[F&
)F7`$/F^ )h3`$O)F )9)7)T9^/Q,F^Fh)"=9,=)/,=)^9,=) sG
iostream
kg7'A1"XS/C<012
'X`.F ) $^) P>fb:^6hY Y/ FI 9Fx FxR #Hxg7FxPN,9`:)
F `$ 3 s1?)m>)9FGHFG)^ 'X )89^/iF FI)^)>3tn) 3F 'X)^
:/!0C:!
.<2+<'A<M _$UH g7 f// ,
0
FT>),=3 ) ) E>)^FIHFG)> r'&9` s1 ` fb)aF^ F )9)h) c)^>9)>3FG,9`>`F^F^PN, bgh"_/PN,9`>)^Fh3fH39>3)+)^^" ^)^F FG) FhK )^9 =9,=)Z,+sE:
F.$/3{ q{ U ,=)^9,)^F F^F^/) ),F^> )^ O)+)^ F > 'X` 13|P&9,=).)
/ :]Hm`>)FXde 8$#8
F:!1qY;g D
a
FX3`> N3-)9)X/`>)FX/FD 9 N/`> 3>&)FI) ) 9,=) 1,.sE>$ gh b>1'73int
93`)FT)9)a
F )^>$ de W99/)Tf^Ns9
a
>`fbF&)F f ,"Pc) = ,=)$gh ? F $; (08)8/`>)^, 4`>8 ,=)O)-) bF 9 N/` de 9A >'zf/NOs
b
F 3` 3 'X` /`>)^F./F. 9 N/`>9 39:!) FG)^ )8F^, ) P7)^9`>8 ,=)O){gh f/Ns9b
Fk9)N/ 3 )^!)&13,`>)a * a
4q{ (0"`>8 ,=)>Fn)&39,`>)b * b
)9)F
a 4
93FG)F7)F7F^, )Z/bb
gh )3 ^)Za F!(@ $K.Of13F7)"/J,=)^9,=)$ M O^)&P )&FZ) `89,
))^ P ) 39,`>)
b * b
=)9)hFa 8
2.1.1 Syntax and semantics.
dea3>h)+,93>^FG)/3)T/
power8.C
3>)/ =/3aD8m^)/) b)+'Z)/F"b,^F^ P7 N)^> xb, >3 ) H(' )8, F.``3-)-'X` /F O
'&^)^){ ghFGn, F PN )
./V+M2Qs
Pr6ZY Y.4,"PN,G)> 3 )^H(' 9(' )&)>^:)
9^/ I'X9)h31>FZ)T9^/J39 + /3)^9FZFh3>)>^3s )^9
.Q<'M012!.
P
6hY"Y k2xfb /t)9)kFn'7> PN^38/`>`3!)!)^9X6ZY YwFIH)O]_.sE 1"=Fd+ Z1q)
P F^_)`/ XE)P!f1>'! V
F+ ~1 )
/ F9 )9)aF FG1)`>)`$
)
F^_)`/ `^`:)$
d )!BFZ) F/ 'X) O),=/ r N/,9/ _ ) FZb,-'X9)&F^)^`FT s9,)Z)
)>^>))yP F^>)` e O^)`, NO 'X>)>)_ bF_F^>9FG?) / D ,9F
``>)ZP $/=
9>-./cF7f// 3)"`89 > __,=)^9,)ha>^ZF^F^/ /3 )^9F7'&
.VM2Qsj<:!:<:g.
, F>V~/)9) F"F^_/)`$ -f 3 _ `89 'X ),)">^^F s9,=)!'7O
) ('73 ) _ b /?/F^F^,8)FTsm,) )^F sE> f1! )./
/C D)
, W
PNa ]/89 -P") F^>_/)`$/ D>^^ 1,FG) 9/F 5`>9FG 1,`F* G)`, N
9 N)PN^--CD )> 9 NO)PNF r)89^/i_?sm9$fbFI)^/ x.`:/F^{ 2xfb|
)+F/ 9 N)PN E)")D'7 F^>)^F s9,=)"P / 4) )> )F ? F )9)T)
/?FmsE9fH F C)J
,) 6 $ kFG9, 3!fb3!'&^) /FE)9) :]=s9)
,39:W 3 sE9fH$
gh FG1)(].P 6hY YF FIE`W93.PN_ +&_)_O)`$/ / N/,9/ g7 3F^`>^)
PE)TF^_/)`FnF F^F FI)^`>)<H) O)> F^>+s9 F )^9X)^:]H)7Pr N' 1/3F F^,` ) F^,=l >F
P F^F^Fh/3aEF^FGs9 TF^)>^>))Fngh" 8`N N'wPZ6ZY Y `(fb>9 sE)
FG1)O]/3aFG_/)^`F HFh)"do\=Cd 2n6 FG)/393 AbKK .P $UUKH
9 DF^,`- PN_/ FIE`W9`$O)_F73FGEFOs ce)>^'&F^ O' F^, 3 `89 >
H(' 'X>)^9: b,=T/ )^:]H) FT/`:),9/ a_6ZY Yt/ E93 'X9)T)TFDF^,=EF^3
) 3 7)8F)FG,9)s9 PN_ $ 6hY"Y g7^,9,=) )^9F sE1 '7a:]H9 N5)
>f) FGH)/`>)`$/ /3 F^_)`/ X)>F_ O),=/ T N/,9/ /3 s :]=/89 =
)aF baPX$/39s9 )o 4'7'& P)>) FG)^`:) 39FG),F^ sE>)o'7 FG1)`>)`$ &/3
F^_)`/ m)>F 4FG ):Fh!FI)7 O),=/ _)^3,9`>3a/Fh9fH sm)aFG1)/`:)`$/
/3aF^>_/)`$/ E/FIE`>)F 93)h39:E3F&) `)^:]H)h'X`aFGE`>)ZF7 :f/)$
Unspecified and implementation defined behavior.
\1>)F >fb>?f 3-/F&sm9$fb 3lm:)^ 8_3lm:) 9 NO)PNF<b)F F XPE)D&,9 /FGm`>)F P 6ZY Y )9)k'7B3PN>k)!FG'7>>,93>n)Z,= &PN^),9)> '7&`$t) 7)hF^F^,&`>8 >) FG`
)h1`>`$/F^9/ 8E9Fh,a I/ { PN =
gh>^ )v'7 H3F&P )PN e39:E3)7sE9fH$ g7!`>&!Fh`$/ 3 1[']Lt <{
'I/M2+012)J ,)
sE9fH$
9>9:fb>a)?6ZY Y FI)/393 `/ F_F^ /FGE>`>)P") N9,9/ G89 >)O)
3>W93 b,`$:]HE>`>) b,=k9 N)^PN~)^!`)/83`,)O).)9)kPN, FIE`W9F4)
/FGm`>)$ g7h)o19`/ =:]8 PNkFG,9`8/ 89 ))"3>W99>38/FGm`>)nFx)h,+sE:
PEs9)Fn)^ O) _ b&,= !G `> F^ \1`>)^ 1<;H de_`$F^DPE89 ))+3>W93
/FGm`>)Fk/3 F^, )^ sE> f1 )D6hY"Y*FG)939^38/38)7 )PN )>)^9: `89 >)^
3>)>^X) /`>)^, msE9fH$
gh F^F`> H93*F`$/ 3 hM.qL=//1
) ;/!5CF1q: `> P F^?,FGE>`W93
/FGm`>)+Ph)^9 /, %&>b,|`/ ^ -'7> 3>W93 /3 ,9FG,
.'A+ [
F^>)+P
EF^FGs9 TFGE`W `)F 1s9,=)7) 9 NO)PNQF7)Z^ 1,>3 ) `)a PN, {FGE`>W9`$)P
)./FGm`>)$TV )o19`$ :]8 !PN F^,`?/ ,FGE`W >3?/FIE`>)TFX)^9 :f/ , O)-3> P
E>/39F7'X):]19^F^F^F^ \1`>) 1
de '&^)D/F /,9FGm`W93FGE`>)^Fn`$9)n/ 'h1F4sEhfb33bs ,=)4,F^,9/ FG
`$^"F^,=>F&)9)h ,FGE`W >3X:fb-,93>W93sE9fHhF^, )^F
2.1.2 Comments and layout
// Program : power8 . C
// Raise a number to the eighth power .
Vy`)xFG)G)Fx'X).)o'7"FG N/F^F
//
/3 `>),F ,9) H)738P9)h 6 )F38)Z(fH39"/PN,`>)9/ )o H$/ )9)h)"/Q'7, 3a3 :]/`:) _)!F
'X ),)h)-7-FX /J'X),=)Z`)^Fhs /3 )^9> 3
'&)^
/F PNn)&`89 :x)!)^9FG N) )t)":]=>`,=)s9 F bs9,=)k'7X F^"'Z) )tPN
)>hE9 Xe` ,93.,=F^ fbF ) /393P 1`G`>)&&:]1)3)-
),=) `)F {)8 N)G)> )/F 1F!sE`+fb>^ )^3,F"'X )^9 9^/ F )
`89 >)^ )^f1N/ e g ,FG).,F 2 fb b, '& 4) sE_s9 ) ,3>FG)93 b,=+O'& 9^
/Fh/P)^>X.`,=9 TP '7 1F ='X)^9,=)7`>)F g7>"F79
.<2)Y:/)
'h$P 'Z)9
`)F bs9,) '7D'& PN O' F^X` eF^F^X,3 9>F4CTTP{)QF )9)7>fb:^
/K :fb PZ).F.fb:^|FG89 , F^, 3 FG)^).'X)^ ^ F.PZ`>)F
)9) >) )X9^/?BF49/X93F8'& O) ) 3F4de ,= `/F^ 1)^9TOsEOfbX)o'7 9>F
PN, _F^, `
VX)> b> PN$),= P. $/39s9 9^/ Fa)F Nb,)< `F^3>a)?fb:F^ P
power8.C
FG9('X M / 1w? 9fb-(fb3`)^F h/3 / G,9`>F^FG Nb,=)h )F7 b FG /`F 9 Ts HF =s9 N/ _ 9>F /3a3))F
# include < iostream >
Á
int main (){ std :: cout < <" Compute a ^8 for a =? " ;
int a ; std :: cin > >a ; int b = a * a ; b = b * b ; std :: cout < <
a < < " ^8 = " <<b *b < < " .\ n " ; return 0;}
Program 2:
LM:</N. YL=u`<:Tm /)J<M.Q,)Y
gh+`89 >&FT`89 >)> a)Tsm,)D)^9>F^ `9/F Es9,=)"m>F^ $/3)
/t'X W93_)^9F `39>9FG3fb:F^ 1,)&398`, ) )^ ,93>FI)/3{ng7X9,GEF^DPr
13 Nb,)XFX)fHFG,
) 9^/ FG)G,`>),= g79FDPNT:]/89 !$/FZ)9)T `$/
s9 1`1F P{)^9X/ F^, 3sEDF^> )3_s1s9 N/ F )9) D XP{F^,=`>`13
F^, 3sE&>FGEF^s9 XPN7 X)= # )J<M2+012 = b
power8.C
9/F )ksm>)o'7_) /.Ph`,= s`F 4F+/)>.3FGE>9F^s9 >39).Ph13 $b,=) 4/ ),9 b,'X m N):hsm!s9 D) PN, `)T)F
gn19`/ x` NsEO)fb8F^P)o'h^_uv`>)^F+9fb Nb,).,3 F _ H9F^,=)^ O)
>fb>G1sE3y)-uI>`>)`$/ /F^ |$/3 :fb>^1sm13=y F^QBF`13 V )_) >fb TPT)
F^89 9^/F 3F^`,F^FG35 )F sE1 kF^,`5PN_/ ,3 F )+9>`F^FO^77'7
F^89 /39:&)"FG)/393,3 9>F )^ O)k9fbZ(fb)!'7 +'7 9/`>)`> 1938)^ O)
TsE9+,F^3-/ FG)h)>hsE1 _ 6hY YzFZ'7
2.1.3 Include directives
2xfb>^ ,9FGPN, /c`)/F7"Z
include
)1":</<01[F&!.F^,` /F
# include < iostream >
&F^,9/ x)F^aO9m$ ).) fb>^ sE9 PZ)^9/-
#include
3^`>)fb>F ^ 33 FG` E 6ZY Y{_/-8EG)/)&PN$),=>F"O.9)T ^)TP4).`. N/,9/"deFG)/3n)> 89 >)3 ) FG `$/ 3 ./2)Y:/) Z1q;!::!V 'X`|F. ^) P&>fb:^
6hY"Y 89 >))^{ V
Z1q;!::!V
F+ `$/ ,)+,F^3|) ,=5`:^)/|PN,9`>)^9/ )o
/3 )^.(fH39T) )^.)^9T,F^>Z F^,```>)hPN-4deP /`>) =)DFG)/3 O3 s9^8`>9FGFG)F7P
F^>fb:/ r sF !P '&`F7)"9,=)/,=)^9,=)7 sGb
V s^ F^)Fh)F PN,`>)9/ )v ) )T,9FG>&)TPNcPr9ThF^>fb:/ 57Y)J<:g.
24/` F^,`?$39:T`)FXPN_))9)DF&9>33 sa) `89 >Xde 3>D)_,F^
`:^)/ PN$O),=P s9^ 9/F )-9`> ,39+)`^>FGE3-9/3> )a)
/ s1 $/F PZ/
#include
3^`>)fb/ depower8.C
x'7'h/) ) ,F^=9,=)./3 ,=)^9,=)4'&`Re_1sE7F^,=^F^ J )4 ^)4P )h`& /, xg79h`^^FGE3$/3>ZP ) FG)/393 s^_Fh`/ 3
iostream
V '7 3F^9>3 6hY"Yy s^D9,=)F )FrPN,9`>)^9/ )oT)X 'I!.qLCJ/ g7k9/FG /`>
P{)DFG)/393_ sO^8Fk`$/ >3
std
4gh=_3> )^ ``F^FZ!PN$O),=TP )D sG '7 9fb )t+ ~1S/V
)F 9/4'X)^ ) 9/FG /` bn
std::cin
)F F )^9kPN$),= )9)/ O'&Fr,F{)&/3 =9,=) P^ ) b>1sEbO3h:xg79F `9/F^* F{)Dfb3
'IP! D+./57!.
'X`?3l >)"PN),=F!/``3)/ a>) ) F^/ 9/ V )T) F.)^ m:]19 `)
1,9/ W9`$) `>$F^FD) $/39s9 )o P4 /FD )DFX>39) O)XP
'X` sO^-8fb> PN$O),=.`FDV 9/!)^ O)TFX) 1,9/ W >3 FX`$/ 3 C t+ ~1 )
/3a,F^,9/ `^>FGE3FZ) +PN$O),="3>W93aa,=Z('X 9^/-
2.1.4 The main function
2xfb>^ 6hY"Y*9^/}+,FG) 9fbT
main
PN,9`:){ ghDF^^)^FG) t$39F /F PN ('XF>int main () { return 0; }
g79FZ/ 31FD)=7g79
main
PN,9`:)-FX`/ 3 s1a) m>)9 FGHFI) '&9>b, )^ D)) ,) /?&s9,=)'&yF) SC!01q X/3'X9)F
return 0;
F^,=EF^3*)|$/ ,9FI)a b?|_)_O)`$/ ZPN,9`:)D)
main
PN,`>)*`/ fb,)Ffb) )_,=E :]H`,=) P")-/ Z/3 )^9 `89,=))^F 'X )
)X`,= s/`>F H 39Fk!PN,`>)f// ,&)9)kF fbs /`?ek>),=3h4) )^9&E>)^
FG1FG)-xde+,= `$/F^ '7h9fb '&^)^)+
main
PN,`>).)^ O)x31Fx) :]1E`>)4/+,)F )FhFh3`$)>3 s1 )">89)o_s/`b>)F
()
sE3main
h/3'XF^ >),=af// ,"Fh)^9 )>0
g79hP/`>)n)9) )Z:),= f// ,Z+,FG) sEZ/8)>nF439`$)3.s1+)7'73int
sEPN^
main
n-`fb>)return 0
)^ Fh) E>O) FG1FG) )^ O)&)! 9/F,-F^,``>F^F^PN, Ae&)^ O)Z'7"39M)&`$O!'X>)^9:&)Z9/F 'X " )>&f// ,! ]H9 ` )
F^9/ FhP ,=
dea FG)^^`>)7_)_O)`$/ F^>9FG =)
main
PN,`>) Ppower8.C
Fh,=)^)^> 8sm= gh'X TPN,`>)9/ )oP )T9^/J`FhPJ)^9
W!
P )"PN,`>)rng79FZ>l `>)&F
)$/3 _1,.sE>"P )+FG)/393?= ,=)!/3?'&^).)F )?E('7>!)^ ) FI)/393
,=)^9,=)$kg7"P `>)&)9)ZPN,`>)Fh`$/a9fb!>l `>)F&F^>)FX6ZY Y ^)ZP _ S/h!012+
LM:</N:/'j'^1[7N U7N*N&!.
2.1.5 Values and effects
g794f ,k/3 :lm`>) P=7PN,9`>)^ 43>)>^3"s")k6ZY Y F^_/)`F >> HO'&
)aFG1)`>)`$ Z, FPX'Z)9 PN,9`:)F831F)8)^ &,F_/1) OsE,=) f// ,F/3
>l `>)Fkde)F7F^F^ 9f// ,"/3a>lm>`>)D^ 9,= F^>_/)`$/ ):F
=.:]/89 '79fb8)
Qu
)9)! 6ZY Yx)`9/`:)>
0
F )>^:)3 /F ))>
0
/ ),9 )FkFn) 38`>,9 )n)!,9>F^F :4d ) Fk/ F^"8E^)/) ) ,3>FG)/38)9) f// ,!93>lm`:)X3>E3a )"``>^>)"/cFG)) 'X` ) PN,9`:)aF7`$ 3{2.1.6 Types and functionality
g797'73
int
F )^9Z9/ PE 6ZY Y )o1E4g7Fx)vE&F4,F^>3F^`7)hpower8.C
3$/ F '&) )>F> de _)_)`F ):F._13 3 s1 )8
( , +, )
g7F/ :s9/`8FG)G,`>),=39:W F ))^>F. )>F Ph) f// ,/ )_F^>) k/3
?)^>FTPk) PN,`>)9/ )o| /33) /3 +, )9 `)h:"de 6hY"Y )>^F!`$/ sE
13 3+s )^97)o1E
int
nq{bZG_O)_)`/ )vE !6hY Y*)o1mZ9/Fn 'A 1 Fd+ Z :/7NY/3
SC!01q+ ~1[0V
39:W 'X9)!'7 `$/ 3'X)^ )$8 '7+PN> )^ )o1E
'7T'X 39+F^+s1 )F79/ Z)D)9)7) 9/DFZ.FIH)/`>)`/ r/FGE`:)ZPr) )oE ='X
f// , /!/3aPN,`>) )o^"P FG_/)^`$/ m9)^,^
67fb) 6hY Yy`)/F Z,9.sE> P S/h)Y'I<M2+ J0VgL=!. eF^>)FE`$/ 3!s9, )
)vEF PNh)o19`$/ m `$)9F>xghT)o1E
int
F7TP )- g7"_/uv 3l >`D) )G_)_)`$/ )vE( , +, )
F7)9)int
F& W99)Df/ ,9T/ b2.1.7 Literals
V )^>/ >F^>)FnD`FG)/)xf/ ,9 P9F^ )o1m = :]/89 + D$UTP9)
power8.C
0
Fn )>/ =P9)o1Eint
b>>F^)^")7f/ ,90
=k/`PN,939/)/ 1)oE ).F.F^: O) 3>W99>3|O'c)F. )>/ F! 1 b k93 'X9) )^9>.f/ ,9>F O Vc )^>/`$/_sEDF^>a/F )^9TFG1)`>)`$ `,)^>^ ^)7Pr!f// , ) _ b>F )Xf/ ,9 If1F^s9 )
/-
2.1.8 Variables
g79
int a ;
F&
)J! D:+012
P
Fd:!1qY;g D
Vwf^Ns9 T>F^>)FD+)&`>F^F `>9FI)/)Zf ,!P
F^ )vEZgh!f/s9 !9/F&
'I
0VgL=
E
Fd+ ~*
m93 /
Y)Y):/!.<.
)v9`$/ _a)
`89,=)>!F _/ >^7xb,|`/ )^9 Ph)_/33=FGF F^8 /F )^9EFG) P7)
f/Ns9 )8_/ ^Y:_gh 9,=^EFG8P )/33=F^F F ) H('}'&9: )-FG)^
/3a _,=a) f// ,4g7"$F^aPNZ`$/ 9.F^,`-/))v
Fd:!1qY;!
F7)9)h)F f// ,
`$/ sE ` 9/3 s 13P1)^9 ^ `)) )!)8`>^FGm93-393=>F^Fag7
9>y'7 PN>8)^ f/Ns9 n'7'& 73 F^?s5)F 9/ g7a3` N)
int a;
)J !.
fONs9 D'X))^9"PN ('X `9/`:)>FI)`F
9/ )oE f// , 393=>F^F
a int
,3>W93 `9FGas1 `89 > C"\4,8) '73>4'X+)F4Fk`/ 3
)J =1[012
P
a
>fb>_)^9,8)k31>Fk)k3>W9 ) f// , Pa
k,)"`$ 4)^ O)")FTf// , 3>E>93F )^9+/FG))^ /3 )9) ) 3>W9) PN, ?FGE`>W9F 57u )8f ,F s)/3+ 1 ?).,=5)a
F+/33^F^F?\HH )9)nDf^Ns95C+.
Df/ ,97F )>>PNZFG>'X9) 8>`F^ s9,=) '7B =FG)`.) ) $uv,9FI)k b
_)_O)`N9F )/ OsE,=)
S/h!012 Fd+ Z
'&)^9:_/`>),9/ /)Xf/ ,9Ds)3
s1a>f ,9) ) PN,`>) '&)-``>^>)+,)F7 >fb FG)> PN,=^)>D'X)
,=DF^ 9F^F P
a
9/F&f// ,2
PND:]=/89 ='7 / F^8F)^ O)a
F2
=Zg7F&FZ)!'h )9) />F ,F^,9/ )/ sE,=) f/NOs F /3 ) f// ,F>a 8'X n:) ) H('`9/F^F PNX/F^F^99+/3a`9/.f/ ,9>FZP f/s9 F7-\1>`>) 1$;H
2.1.9 Identifiers and names
g79 9/.P / f/NOs ++,FG)TsE /
1q)J<M01 <:
/``3) )+PN ('X_3>W9)
/3a)h+,FG)7sE"3l >)&P^ `:^)/ :<!.Q/:!F&) 9/F7 b
int
Definition 1
Ridentifier
10. =V .T *</ S@!5C:/J<<:g./'KL7.Q) S|657} !6/:g.a
z
)A
QZ
-P657 k )1"N1[6.0
9
-W)O657Gh)J<:g.Q/:/Ii_
od p 57 :g./]!5C:J!<:5C+.]A;<? D!6<:
Vp6hY"Y / _$ / F^ `)/ )> 9/F PN ]/89 _)
t+ ~1 )
9/>F
std::cin
/3std::cout
g7_6hY"YQFGH)O] FGE`W >F"'X9) 9/+F r'X .)6hY"Y F^_)`>F7)^ F7,Fh'&9)7) >FGE`>)^fb!9/DPN:FZ) a.fb`) ]H)$2.1.10 Objects
VXs9uv`>) F ^)kPm)&`89,=)><BFk_ G )9)kF ,F^3s1 )Z/~) FG)^
f/ ,9/+V& s uv`:)"9/F!/ 393=>F^F 8)o1m /3?_f// ,+Pk)FT)o1Ee3>):3 s1 )
^8`)>)&)Z)^9 s9uI>`>)!BFh/33=FGF :
) )^9F43>W9) Tf/NOs `$/ sE7`F^39:3/FnD9/3+s uv`>) s9,=) '7Z_./ F^
9fb+,9/3 s9uI>`>)F"VX ),a'7.`$/M)TF^('~/ :]/89 !PN! ,9/3 s uv`:)!O)
)F E) H'7 `$/-^,9T)9)h, 3s9uv`>)FZ 8E^)/)$
de P /`>) 9P b,a'h/)&) 'Z) )>FI) /F =)XF&s9F^ ,=) _9>`F^FO^a) '7
'X )s9uv`>)F7)9)& 9)Z9/3s1f^Ns9 Fng79FZ`$sE F^-s1_)"PN ('X F^89
),) ]HE>^) F^,=EF^X)9) b,9$fbX'Z)^)^"/})^ O) FG)>FZ"F^ 1,` P
)>Fh) sE"$/3-P +W9 B PNX:]=/89 =)8F^G)&) /P)>^'hO3F : Z(' b,- aO)
b,=k}/3`,)k)X,9.sE>nP f/NOs F4)^ O) )n`)/F4\H )^9Fk1,.sE>nF ;=
k,=)& )F^";=Df^Ns9 F Hb,`$/aFG)^"+D)9/a;= )^>F4deP b,=h/QFhP
/-9/`>)`/ x,F^ {) `$/ `>^) -FG)^ F^ 1,` Pk; _):F Es9,)D)^9>?)>.+,9FI)
2.1.11 Expressions
de )n/
power8.C
O)=k`9`>)>xFG 1,`F FG)/3 ,=) sm`$/,F^4)>! 1 P/ /3-^!` ^FGEF^s9 PN&)^9"PN,9`:)9/ )oP )"/ )F^! )!`9/`>)^>F^ ,`F
a * a
a 9+A /3b * b
F (0 93 $KHVX ]HF^FG>>F^)^FX `89,=))fb f1+)^9:Z ]HF^FGF ^ `>F^
/ ]HF^FG F )>!
LM:!1"'A:!V,s!LM:<!.<./1q
PN!:]/89 +_ ):/ x! 9/ {") F
'KL=./1[?,sgLM:<<.<./12
ZV `8EFG)T:]H>F^F^ F&s)3as1-`>+s9+:]HFGF^F
)=,`>G)/E:)F s 9,=)^) T / Pm ^)FGF
()
O,93_:]HFGF^{ghD:]1F^F^
a * a
F / :!1065&'A!012 :]1F^F^ 1fb f1 =h'I<:!1q f/s9 F
/3
) +, )9 `$)E>)^ uv,FG) b '7 HO't)"P _O)_)`>F.VX``3)a,=
sE(fb&3>W9)
a * a
F `8EF^)^h ]HF^FGs9, )nPt)^9Z , )^9 `$)^ E>)/3)T)o'7 _G8:]19^F^F^F
a
/3a
VX``^399-) )sE(fb_39:W )^ / ]HF^FG|F+-FG1)/`:)`$/ k))v xs9,=)+).9/F
F^_)`/ E/FGm`>)FZ/F7'7 /:]HFGF^a9/Fh )vE 9 f ,"Pr)F )vE /3EF^F^s9
/y>l `>)$*g7a)o1E-F W]H3 s ,=)8)^9 f/ ,9a/3y)^9-:lm`>)_ _):N/
'X )
:]19^F^F^|>)F
<Fd+ Z*+,)
k$/a)9).)_`89,=)) ) >FG)F F.`$^^3|,=)$
2xf/ , O) / ]HF^FG_Fk)&FI) P ,)7`>)f1)o "_'& Z 6hY"Y*9^/~F
:]H`,=)3Mm) >f// ,9)a`89,=)F&)!f// , Px) :]1F^F^?/3 `$GFX,=)D)FX>l `>)
eP /Y:
gn1m /3af ,!P _O^_:]H>F^F^ ^ 3>)>9>3s1 )FZ39:W )>/ =Xs
)o1Ea/35f/ ,9 PX)a))o sm35)F 39:W 9// M ^_^ :]19^F^F^F89fba
>l `>)$hgnE f/ ,9!/3a>l `>)DP +`8EF^)^D:]HFGF^ "39:)>3s1 )!fb fb3
E>)=3>E3+a) f// ,F&/3a>lm>`>)FXP )^9 fb fb3aF^,=s ]HF^FGF M ,)G)
)F^F
()
,3/ ]HF^FG1 3F :]1F^F^'&)8)DF/Z)vE 1f// ,D93>l `>)$
ghT:]19^F^F^
a * a
=PNh:]/89 1F P{)o1Eint
93)7,9 ]HE`:)3 =)F f// ,DF).F 1,9^ P4).f// ,+P
a
g7 ]HF^FG 9/FT >l `>)$+g7+ ]HF^FGb = b * b
s9, )nP})
+.<.1"N='A<M9<L=<:/+:
/3)&)o'7 :]H>F^F^F
b
/3b * b
19/Fk)^9&F/)o1E!/3af , /F
b * b
9s9,=)X)&9/FX/ 393)^9/ m>l `>) )X/F^F^9Fh)!F ,9 Pb
s /`)
b
"F )9)&/-:]1F^F^aF
/Fd+ ~t+)
)>h)9/
,s$<7,)
sE>`$/,F^ _/_:]H>F
F^Fh3 )&9fb >l `>) 9F^ )9)7)&PN,`>)9/ )o8FZ/F^F^`N)^3'X))^9 f ," b
2xfbPNh:]19^F^F^F '&)_>lm>`>) =F^&sm1 HF ,F^D)X): ./1q)J3 W/! ).89 F^
&)^ O)
)&8E^)/)x)!F4)&f// , g79D6ZY Y >))^F4` 9+FIEF^s9 &PNk>lm>`>)F7h)
.<2+<'A<M6.
) '&9` '7":)&sE O'!
7'h/)x)^ >_ )9) ) M ZV
'h.P /`>`F^F^9!/ ]HF^FGMBFxf ,hF )^">f// ,9)^
) 93 )Fh/ F^+`$^^Fh,)Z)F7>l `>)$4,`$/)Z>)Z)^9Tf// , '&),=) )":lm`>)
87 QQ .#* *I : 5 (7 +( , 9297 (P 2 2/( .. B#,
$ - B>J
Q M -272* / 2A 27 (, 7" $&(9 " -BK2"O +( * '(97 N* %$. N
b
7O7 >'( A07 8/22 82
b
J