[PDF]

‡‡ {
‡ ……
@=
[
E
DS @= U
P
Q= D
T E
IE > W < [
= C
B c
gU B
ih D @ Q=
l jk S
ih k DB
<= _ < [
? >= C
E
S< @
W < Q=
I
Sn =
=
D= U
JD F= C dB D=
_< < [
A @B
DB U D [=
E<
RE @ Q= !
TC= A KD B >= F $ ¢ JB W £ ? U (!
B
D¤
W $
RDB JKI
C @A
E R
J
¥D @
= Q=
E [ I<
C< A J
D
bool
I
n
s
for
sum_n.C
U
Pn
i=1
DU
B
i
n
Q=
C<E @ D \
<
DE [ @
C
C [A
KI DE @I
_ @ E
>
W
W
bC
@
[
? @A
CE _
R< A
>=
C >A
=
C @ Q=
_
F=
@A
Q
<A
RCE >A
=
S[
E< W
F=
DB U
=
n lo
lp
qip
l
CE
[
DB U
=
_ lœ
qip
D<E
QB
D
D
=
a
=
DE
if
A E
C @@= [
CE
C Q=
@B I
DB U < J
C @ D F=
JE E D
@C @ DE [ B U
RA [
CE IB J<
C@
I @K E
@u DE [
<@ B
E @= D @ Q= C [A
S K
I
CJ=
_ @ _ <= A C @
A
@ A š @B
?< A
@
B › Q=
A T
S
<
J D DE
CJB
A
@A E
@B C @= >= F
CA
W
@B
D<= <
@ CE @ C PQ=
EC D [
>A E A
= [ U
D F IB A
= @K <=
E G W I TC=
F= @ _
DB U
š
=
n lo
›
ž lp
<A
S
RDB
KD
<A
Q <E
< @ [A
E @= @B
CJ= TE Q
=
C @A
E
@ !#
Q= <B DI? !
=?
B [=
L
<Z= A W =?
I PQ
@= < A
[ @V
E @ K=
JB B? U
<
CB @ CDB
? @
= B
>
ID [ SB ^
CA
R
YA
@ I<
Q=
Z= @= A
=? D
I D=<
CB @ A ? @ A
B X_T= @ A
U
@
Q= E<
E
=?
E @=
@=
RDB
KD
Q=
C<==
T=E Q
=
P
CB [ B<
= DU
E
V F DE
CB =
=
D U KE >>
B D
=
J @@V
@
Q=
D\ <A
JK
< @ XW >=
@B
@ PQ=
Q= V
> ?
W E< @ CB
<
I? ] < @ A
B
Q U
KDE YE<=
RDB I
C=
E ?
J =
=?
Z=
=
DE
I
U
<@ E
@
E @ Q SJ<
CJ=
<@
B
BU
S >>B
CA
R
C >A
=
<B
?U
B
[=
@=
DB v
Z=
E
JK
X_ >=
@
A
Z<=
=?
I
@=
[
E
DS @= U
DE
W <[
X_<= A
n lo
lp
qip
l
Q=
E<
<A
<
IE >
E @=
& lp
qip
n lo
lœ
IE >
=
<A
_
T
AU
A
<@
u[
T
l jk
ih k
<= A
g<
ih
BU
S >>B
t
@
[
? @A
CJE
Q=
<=
A CE
[
E
DS @= U
DE
u< [
B
@
DS Q=
I
=?
Z<=
%
lp
qip
n lo
l
;
/
$
# 1 (
( #
($ =<
(! ? >=
(!
)
CB @ A
) ( "
A
! #
( D @=
E @
ON
) CB A
" O & "
! % ! ? >B F
#
" < G
(
! !
M & I H
# L JK
<
! ,
# $ (
!
&
$
! # $$ $
!
! %
$
! # (! &
; $ $
;
$
:
)
! #
&
!
!
& )
$
&
!#
! #
$
,
$ #
lp
qip
n lo
lœ
l jk
ih k
ih
m
gf
) -
#
:
>=
@=
[
<A
ZE @
VC<
Q=
W P
! %
VF
CE
CJ=
JK
D
E
=
[
CE
@ CE
A
CE U I
J
CB [ D F=
D
V> BU
AU J
C< @
<= A E
TC= D [
E
C [A
KI
C @A
@B
@
Q=
TD
E
E FA
>=
I @K
a
E @=
CJ= W
?@
CE
? F=
B
<@
Ka
CB @ A
E
_ V >>
CE
IB
'&
.) !
# ! #
$ + $ $
3 / &
(
$ , (
.
1 0 # *)
# $ $
! $#
2 $ $ +
56 4 ! # #
# 78 ! " $
9 $
,
[
DE [
C<E @
@B
›
S[
D
@= A
š
even
>=
E> <
B< QB
= F= SC D ŸB
CG
C =
SB K @V A TDB=
C =
_
<= @ Q=
@
E
Z= n lo lp
$< E<
CE< JKE qp
R A >= i lœ
! #
>=
$ C >A E FB CE
XW= XWT= [
n lo
cU lp
(!
@ qp
W $
S Q= i l
CJ=
E @=
<@
E
CE
CA
E @= C [=
dB
? >= > CJ= @= [
@ C
T= @ A \ E
_ V > C<B @ [
<@
<B
JC=
A
KI W JE
W @ I
]
K
K
C PQ= B
VB V<=
I B
S SI
IB CE
> @
[ @B
TE= Q A
JK
S @B >=
D
CJ=
@= A @
C
KDE E
RDB RE >
DB
E A
SJ @ Q
@A J @
Q Q
E@ E@
>= KD=
E< DB U
`@
_ `
`` J<
`
_
C >A ```
=
<B <
? U K @=
B <
WX [= DB U
a
J
Q
DJB
=
@=D c K
SB
E
CB @ A D=
IU
E S>
S >>B
VE
< B
@B U
Z=
=? CJ
I KE A
@= I
E CE @ >
<@ R A
E @=
@
JC= ? Q=
@ CB
CJE DB @
V >
@ A SB ^
_ J=< A
K KD<
B B
<< T
A A
VS F> [=
[
@A V F
Q #
[A¡ D= C= ! #
@
W $
(!
<A
a
TF
K IB A
SB <
D= V >
I U @Q
> <A
J=? IC< A
CE Q
[=
< A D< A
J< E
XW F>=
? @B
CB P
D @ D Q=
B =
> DB U
@ X_=
Q= C
S B ^ DB A
B D [=
U
KDE @B
BR A
D
JK
E >=
DJE CJ=
C= C @
== CB
[=
W [ bD@
TA
E >A
RE >
DB
@A
Q
_ J<
=
DJB
else
@
I
J?
$
m
ZE @
VC<
Ca
@ =
KE KD
DE E
? @ ? @A
I A ID >
DE > E
V>
<@ <
E @= A
JK
CJ= S >=
@ VE
A
Z<= @B
=?
I T [=
@= A
[ E @=
Cc D
BU
ed J
e C >A
=
@ DE
QA ?
?<
CE CDB
B@
F= >
C [B SB ^
=
T <A
A @B
CEE <=
? >=
$ @S
Q=
@
(! D Q=
DB
if-else
a
B
<=
ih k
l jk
Q=
if
if
>=
QB
=
IE >
=
<?
CE
K @V
E
U
DE >
E
CB @ A
B
>=
? [=
E FA
E
< @ KD
E @= E
E
CJ= J=
D @=
@
K f <=
B ?E
C @= Q
@ @A
EA
V >> XWJ=
m D @= c
TD<==
E@
E > CB A
@A <
@
W J=< E @=
]= CJ=
? >= @
D<
CB @ A E=
CE E >
<B?
[
AD @= E >
>=
E @ [
CB A <@ _ $
E @= E<
CJ= V @ Q=
@
D<E B š>B
=? K
B D@
? >>= IRB Q
T= @ A Q
V> E›
T
S
TD
CB A
DB
<<
=
l
ih
gf
else
else
E FA
CE
<A
l jk
ih k
lp
qip
n lo
C
P B
if
if
TDE
E
g
ih
=
D Q=
Z=
KD
S
if
C
Q=
<= @
D F K< >
CE @ A
? <
Q= @ Q=
< ?
A CB
Z<= D
=? B @ _
I >
@= B ^
W [ S
CA
D vB @B
? QA
<@
B Q E @=
U
@ CJ=
CB
? F=
? @ A TD=
< A @=
< [
@
Q= @B
BU
S >B > _
C
tR A CE
g [
ih n lo
lp
l jk p
ih k qi
l
<A
T= r
IE > E<
E @= @
Q=
u[ C
AC U E
E J=
CB [ IRR<
V> =
AU < @
A <
<T @ r
IE > < A
= E
< A <@
& E @=
CJ=
n lo W
lp @ s
s
pq
i l PQ=
A =<
=? CJE
Z<=
2.4.1 Selection: if– and if-else statements
@B W @ A [=
Z= C c C \
K DB =
C<
CE >A
D [= EB
@ @B @
Q=
IC D Q=
[A¡
T
D= D [= DE
A
C=
C< @ E F
K @ E >=
DE S [
@
? @B
B< V Q CB
U @
E Q= CE @
KD A
RB
$ D @ Q=
E D
J I=<
(!
_ @>
?
W B
C A JKI
@=
= [= <
[ @ Q=
F= D
=
TE= Q I<
< C @>
?E< E
[
E >A C \
J=
_ [ VE >>
S B
= I
@K
TE= Q I @
<
y‚
‘’‡
}
|
}{ ‡‡
} ‡†
‡
{
|ƒ
y …
z
‚ƒ
Q=
BU
S >B >
CA
R
C >A
=
<B
?U
B
[=
@
S@
B
DF
CE
?
if
||} ƒ
z{
} ‰Ž
‹
Œ ‰‹
ˆ ‰Š

}{ ‡ †
y …
z
‚ƒ
yƒ
{|}„
||‚ ƒ
{}
JK
_ >=
E
Z=
if
~€
z{|}
y x ww
"
! $! #
! "
! %# &%
2.4 Control statements
int a;
std :: cin > > a;
if ( a % 2 == 0) std :: cout < < " even ";
else
int a;
std :: cin > > a;
if ( a % 2 == 0)
std :: cout < < " even ";
else
std :: cout < < " odd ";
odd
even
2.4.2 Iteration: for statements
n
™
˜
—
–
•
”
“
Q=
VJE
CE >A
<
E
I FB
@
VC<
ZE @
DD=
DB
<
Cc
= [=
_ [
@
Q
S< A
BI
>
[
F=
RDE
=
E@
C @ QA
R
JK
Q
D @= A
E
CB @ A
R
D @Q
IB
E
@=
_ [
<=
C @@ A
R
=?
A
nn
k
_ ih
g
h
ži
jk
p
D @=
@
CJ A
E
W < @=
=
DB U W
=
ž i l kk
n lo
lp
qip
_ l
g
ih
l jk
k
_ ih _
n lo
lp
pq
_ il
p
D Q=
<A
@
D [=
DB
DC @I
<
=
?E _
C< QA
R
>=
D @= A
E
CB @ A
B
U
E
lp
Q=
C@
p
cU qi l
@D A CE
n lo
[
E @=
CJ= W
?@
CB
<A
<@
<B
D U\
<
Z= @
=?
I
C @A
R
<@
Q=
@
_$
!( #
CJ=
E @=
<@
@
@ #
E @Q < A ! #
A@
KD< B U
B? @
= Q=
C<< A B >B
R K
C= <
DE @
<[ W <@
A
J gc
J= U
[ ih
E @= A j
V > l kk
iDh
=
DC @I
<
$ )
_
_
W
A
P <=
D Q= V >
=
E [=
D @= U C \
g =
ih @ Q=
l jk <=
ih k CJE
< A ? @A
T= <B
IE > U
E @= E
[
cU < @
E
@D A @=
= CJ=
DC @I W @
< D vA
& _ < @
CE ž i l kk
=
D
l CE=
A
Z<= SB
=? D
I =
@= VE [
CB [ @B
?
W = KD=?
lp
qip
n lo
@
@
Q=
R
U
>=
CE [
?[
<<=
=
?E
<? A
E FA
E
>=
CE< A
IE >
=
B
TD
T
=
D Q=
Q
S< A
G=
>A
CQ
< @ RE
E @= =
[
CJ= V F
W @ g
ih
W
l jk
kih
CE
[
nn
k
_ ih
S
=?
E>
>
@
QA
TD<
E
E FA
>=
@
Q=
!
1
#
%
B
U
@
Q=
p
p
T = < A I? ]
IE > ) Q
$
nn E @ CE
kih CB A E =
C A B D @= U =? ¡
D? p U p @
=
<A
CJ= p p <E
n nn [A
< @ inh k ih k @B
@
Q=
š
TD JE E< Q J
E G= F= E G=
E FA <E C= KD
>= < T= RDB
@=
S K IE > =
<
? QA S @B E @= < @B
S
D
Q E [ D
< A < [ CE E
\ [
IC FB @ Q= A D< @=
C= C @=
[=
I CJ
D [U B [ J A
B @ U D F= CEB @ A
J Q= B W ›
U
E FB
@A
T=
P
J
=
C A < @ W < R Q=
E
g @= C c B
ih CJ= @ E >A
<
l jk W @ E @ Q @
C
Q
ih k c C<= E @g
Cc
_ <= ih
?
T= j
E<= _ D= l kk
V ih
<
p
p
for
KJ
i l _X >=
qp
Z=
D vB
I
Z<=
=?
CB @ A
I
Z=
T=
IE >
CE CE
B R @A
@
D Q= p
D @= A p
E nn
CB @ A W ih k
BU
S >>B D @= U
< =?
g cU E Q
ih D @= A
l jk E @
iDh k _ CB A
= g
DC @I ih
< l jkk
)
$ ih
<A
@ T=
Q= E
I>
E @=
<@ [
E @= RE
C
CJ= W E A
P & Q= _ for
S[
DCE
<
J=
C<E
<
Q=
? QA =?<
CB
Q
A< [
A
$ ) D @=
P W E@
Q=
CB A
T P
I
Q
IE > _ < C< A
= C SB
B B
U
P
s += i
i == 3
3 <= 2
for
S
i
K
IC
BU
S >>B
W<
_
D vA
<@
D @= A W
E
CB @ A
D Q=
@
@
@ _
Q
C< AA
?E p
tCB @ A nn k
_ ih
W
C dB WW
I
<A C
D [= @ A
>g
@ ih
Q=
l jk
hD k
i
<@
E @= =
DC @I
CJ=
@ <)
W $
<==
<
=
_
l
ih k
n lo
lp
qip
l
p
for
B >B
D@
CJ=
QA
B
CE
& _
CA
i
@= A
C\
C @A
E @=
<@
<
@
i <= n
[=
_
E<
V >A
K
B
<<
A
F>=
@B
D?
=
E @=
>B
KB
<
@
E @Q
C [B
B
@
D @=
CJ A
XWE @=
<A
@A
@=
< @=
<Z= A S [
CE
=?
I Q= [
@= @ I<
_ [ D Q= KK
B
<=
=<
C< A C @
@
SB R A W
?
B
W
@B <
JK _
D vA
>=
_ <@
@= CE
@
[ < A Q=
C<E D @ Q= & TD
Z= = _ E A
E
@ EU @ F
< @= D @= Q= >=
D\ A
K
<
@ C< A < @ [=
? Q= ? A D @= A C \
=
CB D
= E@ [
[A CJ= CB A CE
CB @ A
@= D< @ C [A
[ E @A
V F W <@ E A
CB P = >A
A< = Q= @B [
T= I?< < @ W
IE > Q E @=
E @= @ Q CJ= C PQ=
[ E@ @
W
< Ca
=
D @= A
E
< A CB @ A
N
n == 2
i <= n
1 <= 2
s
1
? @=
V>
JK
D >= A
<A
@
@
l jk
ih k
I CE
>> p [
<@
E @= p
CJ= nn k
W @ ih
Cc
J
@ VE
QA F=
?< =
E
S<= W JK @V
R=
= D ŸB
@ =
@ B
Q= TD=
_
FB
<@ @
E @= Q
žik
JC= l k
@ n lo lp
C Q=
=
W
CE A
RE
(!
$&
;$
for
JK
B
@
@I
=E
Z=
E>
V
>
D@
= @S [B
CA
R
J=
V > ? QA C
CI Q E
[B V
[= = @
D< A C< CR QA
W
EF B@
>= D @=
P
CE
D Q=
[KD CJ A D=B U
RDB E @= X_=
A
E <?
J E>
DJ= >=
[
D< CE
V@ !
# J
DE Q ! V E
[ # F=
@B D=
TEB W E [
A
<E
[
ih k
EQ
T<
IE >
=
& Z=
=?
I
C @A
R
F=
ih
<A
3
? Q=
C<
?E @
CE
@c
@B
KJ W
>=
W @= D PQ=
=
P EU
Q= D @=
I< _
Y<= F < A
I C? A
C= D
@ =
T= CJ=
IE > @=
E
CB @ A V [F
B CB
U =
I?<
Q
C= @ Q
E@
E @A
<>
W
B
?
2 <= 2
i
D<
I QB
l jk
Qg
ID U
C< A @
SB D Q=
_ D @= A
@ E@
Q= CB A
I<
@
JB E G=
U <
@ K? >
Q= E
D\ =
C
<@ E
[
@
Q=
K
C DB?
=
DE @I C<<
A
R
CE >
I B
U
J F= @ Q=
D
W<
<@
E @=
CJ=
C= @
W <[
@
<A
CJ=
E @=
s += i
i == 2
K
_
B >B
ih
@A
g
Infinite loops.
@= A
S
=?
›
Q=
<@
P
TDE=
E
W J ¥ C< V ?
c A B
< @ CB @B JK
VC<
?
W= E
Z E @ C DB @ U
c
<A
JB
J
B
C [= \ < @? C U
E
=
[ _ E<= D @= A
VF <
@ CEB @ A
Q=
<@
E
< @ @=
E @= CJ=
CJ= _ @
@ E<
D
D¤
RB
B >B
CE< A
K
R
CJ FA
=
<
D @Q
==
<@
E @=
CJ=
@
D<B
Z=
KD
=
<
CB< A
B
? @A
3
C\
CA
E KJ
CB @ A @V
D
[ E
n lo >>
lp @ Q
E
qip @ FB
?l @
CE
š
C @A
ICB
E?
E<
<
D<=
T=
sum_n.C
= [B
› B =
JKI TD=
@
_ D @= Q=
VB _ < >=
I <
<B
T=E Q J=
KD @ A
B J=<
E F I?<
V F> Q
Z= B >B
K K
D= <B
C= A ??
? ID
= =
[ T
@ C=
Q
<A CA
C GA D=
E
B [ >>A
UK = U
C Q= S<B U
B D@
CJ= W =E
tCB c
VB U
I
EKD DR
=
RDB I
DE >
E
J V>
_ VDE > W
d>=
E
D @= U < @
Q=
D @= A =
m
s
JI H
< @ tE<
G
E<
? @A 
B VQ
@
?E W J
bool
R
i
DB šU
TD==
›
Cc
R
C=
D=
E>
E
<@
E @=
CJ=
[
nn
ih k
p
l jk
k
uihp
ih
f
for
@ IB
Q=
=
? @B
<=
lp
ik
qip b l k
l n lo
lp
qip
gl
n lo
}
@
K @V
QB
sum_n.C
CB
I
=
D Q=
// output
std :: cout < < " 1+...+ " < < n < < " = " < < s < < " .\ n ";
return 0;
I
for
<A
E FA
>=
@
E @Q
E
TDE
<
=
@A
E >A
A
A
E @=
S
for
D@
B
CE >
[
TC==
< @ @I W
E @= E >
V>
JC= C=
@ [
for
@ JC=
E @ Q _ ž i l kk
@ @
D Q= <= n lo
= = lp
DE ? ]=
=
qp
S E > CB @ A i l
V E W “ C< A
W S< @ E
B W Z=
<= C c KD
=
J? A E > <<
B B > CB A
C >B U
C< A @ Q= < @
<=? E @=
S @ F= E CJ=
<= _
C== _ < @
ik
@ ž l k E? [=
Q=
K n lo D >
DE lp E
C=
p E@
@ iq CB A
Q= l
<= C= < @
<
E
E [ @=
D @= U S< CJ=
A
E @Q _ @
E DB
<=
@
I< J?B A C Q=
I
E
V >> C >B >
>
Q
<@
Program 6:
<=
if
_
I?<
// computation of sum_ {i =1}^ n i
unsigned int s = 0;
for ( unsigned int i = 1; i <= n ; ++ i ) s += i ;
I
š
CE Q =<
@=
ž i l kk
n lo
lp
qip
l
C [= \
=
C<E
C[
for statement.
=
@
E Q Q=
C< @ [= D @= A
A C
CE = \ CEB @ A
<
@ <@
Q=
< @ TD E @=
E @= E CJ=
A
CJ= E F>= @
Z<=
g @ W =?
I
ih
CB @ A
l jk
W
kih
Cc
A
C<E
Z=
KD
_
=
<<
ž i l kk
CB A
n lo
DB
lp
TD
p
E
q
il
E FA
>=
<A
E
? [=
? [=
DE >
DE >
E
CB @ A
E
CB @ A
S
@
int main ()
{
// input
std :: cout < < " Compute the sum 1+...+ n for n =? " ;
unsigned int n;
std :: cin > > n;
E FB
l jk
?
CE
? F=
iDh k CB
[ = T
E< DC @I D=
@=
& W < @B [
&
W
< c W
@ @
C Q= < A @c
E SE >>B C [=
J= = = \
IR< [ <
R @ QB
= EQ S
_ << @ @g C >B
p ih R
j
p l kk @ Q=
h
i
nn
D @= A
ih k <= A
E
A
CB @ A
C<E JK R
@V
DE C A B=
S <
CB
D @ FA
DE ? QA _ C
V ?Q
E
Z=
KD E<= J=
V
= A >
< @
C<B A T< CE< >B
IE > R
@ =
QE A E
@ < <
KD
CA g
D @= ih
# include < iostream >
W<
@c J
D< A V E
=
DD= U E<B >
= F=
[ =
@B
JK
E< @V
@ Cf
Q= S A
%
? QA
B ?Q
U
@ E<=
Q=
@A
Q
E
C
<@ <
E @= B
=
CJ= =? ¡
W @ W @
m
n lo
lp
qip
l
<C A
E
DE
D @ FA
D
VE
<@
E @=
CJ=
W @
for
// Program : sum_n .C
// Compute the sum of the first n natural numbers .
sum_n.C
for
for
for ( unsigned int i = 1; i <= n ; ++ i ) s += i ;
for
1
i
i <= n
s
n == 2
for
for (;;);
for (;;)
TE
IE >
=
@
E @Q
KE
K
D=E
C< A
g
ih
l jk
k
W ih
R
CA
R
nn
ih k
E< Q
@
Q=
=¡
=?
B@
?U
CE Q
p
VK P
?A
E
_ V >>
p
™
˜
—
–
•
”
z ‡ } ‡ ‡
{
y‡
€

ƒ
n(n + 1)
>B
[
e
@A
(
;$
N
#
E>
W
WW
“
W
WW
``
_
J
>
<A
I<
E>
TDB=
Q=
E<
E @S Q
@
BU
SU
? QA
Q
<A
@
C Q=
I
JD F=
E Q>
d>=
DE
_ V>
@
Q=
S@
BC
I
J F=
D
C< A
=?
E
?Q
B _
I>
CJ
I<
JI
K
W
Z=
U
TE= Q
D
=
E>
=A
[
@
E @Q
IDB
KD
RDB
E
J
DB
VJE
CG
SB
IB
@I
E
V >>
E
E F[
E
<? A
C
==
B
?
CJ A [= JKI
E @= S [ _ D @=
< C Q=
DB U
SE<
[=
E> R =
K > C< A T Q
B C A E=
<< R C
A
F>= >B E
KD KB IC [
RB W <
D
D [=
E =  C< @
J Q E
< @ TE [
E @= = @ A
< ? @B @B
@
Q ? Q= VE [
?E @
CE G <= f
š =
B?? V F @
I C Q Q=
WD E [› = @
@ E >A
E @Q W < m
@ P
Q= D Q=
D @= A =B
DU
E X_=
CB @ A
<B
< @ J=
E @= ?
D
CJ= E=
@ <A
D @=
JI
`
DB U
Q=
`
@
`
[
=
TD=
@
?
CB
Cc D@ E
B KJ
Sm
QA < > W >=
E< KD< @
E @= @c
@B
> A CJ= < A
[ DJE
@B V
EF
I< <? W < @ C [
A
IJ B QB
@
K >
Q=
C<=
@ [
C Q= _ VE<
<=
I @
@
J F= Q=
E @Q
D
D= @A
<
CJE
= [B
C<
B
JE
?@
@
Q=
CB
TC
W JE
? @A
?A
CA
P CA
R
Q= E
V>
?E @= DE d
[=
>
D Q= D
v
CJB
A
=
D< @
E Q D? [
K[ A
E @=
Q
CE >
C @
Q=
= IE
K
<
[
SB
@B < f
D=
G= B
K= @
C
=
@@V
KB
>=
[
@S A
[
>
B
F>=
CJ< A
KD
Q=
B
P
JD F=
C
A I
F>=
JA
<
@
E @Q
KD
CJ=
W @
K >B
T= [=
<B
S @U
DE
=
V
CJE
T= >
<B
IB
CJ= _ <
KD
<@ B
@ TC
Q
<A RA
D< @
@
RE @= E @ Q
V
CA CA
<
B
ed @
e_ KD
I XWJ= A
C< A
R
CB @ a
= SD Q=
X_<= A
< @ S=
E @= B
I
CJ= @K
_ @ I
CE @@
EQ
CB [ @
= A
KD<
< @ XWJ= A
E @=
D
CJ= RB ¤
W @ D
E
= J
b JK
@B
Q
@= A TE=
>B CE
C\
CA
? >A <
D
E @= E=
_ [ C
CE B
@
K [ SE >
B VE
<< <
A
V F> E<
=
@ E
V Q= V<
>B @B
KB K<
CA B
C\ @
E
@= A C< A
VS >
@
Q=
C Q=
E FB
Z= T
=? =
I Z=
@= E
C [A JK
? XW >=
D=
CE @ A BB
K
KD <?
RB C
D E
E
J F=
C<B ?
B
W V>
JK
E @=
< @ KD
n % d != 0
CA
@= A @B DJE
ih VD > @ E G
Q=
l jk D= @I g _ V F>
kih C ih
@
D
= < l jk Q=
@ICD ) k
$ W ih
<@
< DB U
P E @=
$ )
Q=
A CJ=
D=E
JK @
>D= A _ DB Q
_ <B C @ E<
S
E C
= @ B@ E
=
QE
T=E Q @@ D<= F JK
Q= T @V
ICB U >B E @ FB
BK CB A
_ V[
[
E R< A < A C
<
T [A ID @ Q ? A
AD<B CE E S=
E @
B @= @ Q= =
U = g
C A [ ih TE= Q
@B
@ D @= l jk KI
D Q=
k @
CE CJ A ih @
R
Q=
= E @=
T [A
u
AU
< AA
CE f
FA
>
@V A
[CB
[=
W V > \ < @=
b @
A
g Um
E @Q
(? m @
Q=
CE KD
C
B
B
@ F>=
F= J
<B B U
T= > [=
[ ? @=
V F CR @ A
E
%
F=
! # <
; SC QB
C\ C
c
@= A
?E U
>B _
KB @
<? @ Q=
Bf <
A
J @I
CJB E @
CB A
VD >
= <A
DD= U QB
= K=
[ t >=
@B <<
E< @? c
@ C
Q= E
CA
n
<=
@ D @I W
V Q= =
DE E
= KD
RB
E D
@B E
B
> J
@B V F
D< @
I?
@
@ A
E @ Q K<
< A B<
C @ Q= < FA
? >=
E > R @B
>= D
[ B
E IK
( E
& Y<=
! I
C=
$ ?=
B
CB U
(! =
DB
DB
< A DJB
JK =
V> <
@
E E @=
% CJ=
<@
P CA
QA @B
<
J=? CB
=
CE Q C<
A
R
<A
J >=
CJ=
ed
WW
W
?< [A
B
<<
IE
`
[
W DB U u
C Q=
?
_
X
=
“
QA
A <
<
V G> @I
C [=
= @
<
E Q[ I F
A V<
RJE DB U
CA
= SE
S[
D QA
X_ >=
C @ AA
R I
F
S [B @
C IE
@ <<?
C Q=
I JE=
J F= IK
D
S
C< A
A
C A @Q
D? @
= ? Q=
CE< A DDB
R
=?
DB
@D
D [= =
I<
CE >
@
CB [
=
C >A TD=
= V
I?
Y
for
@
EQ
DE @
=
C=
?
<@
CJ=
W
@B
? _
<G
E
S >>B
>B
D [A
=?
W V @>
E @=
<@ Cc
Program 7:
E @=
@
KI A
E @= >
@
? Q=
CB
D@
B
>
SB ^
CJE
B
C<
= [B
s = n * ( n + 1) / 2;
<@
n
R
[= D
RC< A IB
KC
K RA
SB
D= < @
I U E @=
CE > CJ=
[ <@
E@ @
@ EQ
Q= @
<E R? >B
J= E A
@ A V >>
JD= F=
= CR >B
E[
E F R @B
? >= =
CB @
D @ W D Q=
B
> C
<@ c
E @= KD
E
CJ= ? @ A
I
< @ _ DE >
@
=
DB U
=
D F=
K=
?E >
=
[
VF
@
Q=
IJ?
Q
D Q=
i = n(n + 1)/2,
=
n

?
CE
C @A
CJ=
E @=
i=1
DJB
……
W <@
CJ=
E @=
<@
Q=
``
S >B
CB W
?
=
RE
CE A
CA
D? [=
=
CE< A
R
DB
D [=
F=
5050
}‡
{
 †
z
2
A
DB U KD<
BI A
D J=
KD AU
RB CE
D
[
E CB
J V>
<A A
@ U
D Q= @ A
= C< A
DB U B
= @
<@
P
£
`
`
G=
@B
1, 2, 3, . . . , 100
VC ]
?E @
? @A
E
_ V >>
E
? F>B
G
<A
<A
JK
V>
E
Y<=
I
C=
?
=
B
U
D=
B
DB
ƒ
}y ƒ
|
y ƒ
D @= A
E
CB @ A
[
¢
@
Q
S< A
_ VE
Cc
E<
sum_n.C
…
n
| ƒ
{
V
£
,n
} 
¢
V
CE
DB U
sum_n.C
} ‡
D< @
RE @=
Q=
@=
<@ W S< _ S
Q= =
@
D Q= TE Q
DB =
C @
B E>
@ G=
RE [
TC= A E >B
C @
I E FB
I
J F= K @
D D
A A
KD< JC=
A I
J=
bJ
CE @ W
=[
?
C= A
@
<@
E @=
CJ=
@
s
CE
R >=
=
=
DJB
100 101 = 10100
‡ƒ
P
D
J F=
I
CE
n
|
W
{2, . . . , n − 1}
}z ƒ
yz ƒ
d
y ƒ
_
C= 
Z=
R@
=
@
@B
DE
=
E>
KE
K
? >A
E
CB @ A
B
U
<=
? >=
CB @ A
CE
for
¢
@
Cc
Prime numbers.
C Q= A
D@
B
I? [
G D @B
>A V
G=
@ ? ]=
E @ Q CB @ A
C [A S B R
S
@B B
@ I>
Q=
I [
I< KDE
E > RDB
C [= \ E
A J >B
CB @ A B
?? D F=
DB W <
n
ƒ
T [A
< AA
F>=
VF
C
VCE
I
J F=
D
101
| ƒ
?
>=
t
D
T [A E
AD<B
D
B A
@=
W U
E
cU B >B
E K
T [A @ Q
D<B A DIE @
C
<A <
ICB U D @ Q
_ [ IRB
S
?= Q
CE E >>
@
< Q=
K @B C<=
CE I
[ J
IB _ D F=
<
I @K CE
@
E @= [
?E U
<
D @B =? @
A E
E@ BQ
CB A U
B @ Q=
U
C A JDB U
@B
S @ C F= A
B R
E
n
X
|} ƒ ‡
| ƒ
} |
y
‘ }{ ‡‡
}
y‚
‡
}‡

y} ƒ
‡}
„
w
Gauss.
n
n
for
if
d == n
{2, . . . , n − 1}
// Program : prime .C
// Test if a given natural number is prime .
# include < iostream >
int main ()
{
// Input
unsigned int n;
std :: cout < < " Test if n >1 is prime for n =? ";
std :: cin > > n;
// Computation : test possible divisors d
unsigned int d;
for ( d = 2; n % d != 0; ++ d );
// Output
if ( d < n)
// d is a divisor of n in {2 ,... ,n -1}
std :: cout < < n < < " = " < < d < < " * " < < n / d < < " .\ n";
else
// no proper divisor found
std :: cout < < n < < " is prime .\ n ";
}
return 0;
2.4.3 Blocks and scope
™
˜
—
–
•
”
¥
int main ()
{
{
int i = 2;
}
std :: cout < < i ; // error , undeclared identifier
return 0;
}
U
(C W UA
@
E
WXJ= PQA
<
Q
C<E KKE
C=
Z=
S<
E
JK C Q=
_X >=
? @
CB Q=
K
<A B
D [= C @=
D ¤ @A
RDB E? >
<B
E K=
?
W J CB
CE @ A
C<B
=
DB
$
Q=
_
B
# include < iostream >
int main ()
{
int i = 2;
for ( int i = 0; i < 5; ++ i )
std :: cout < < i ;
// outputs 0 , 1 , 2 , 3 , 4
<<
B
=
A
W
Cc
D
K
? [= DE > B
= U
[ E
@ ? [=
Q
< A DE >
<? A E @
CB A
E>
>= <
[ DE @
A
< @ < @
! E @
# @
Q=
K
) CB A
S@
D Q=
= W
#
W ! @ Q=
P ? [=
Q=
K DE >
B E
C @= CB @ A
@
E? >A KKE
< =
KB W DE
= <
$
<@
D
JB
_
W
_
DE > C E E
T= @ A JC=
D A
R= D @
CB A IB
[
? ?=
E> [
>= V F
[
@ E
Q= ? [=
$ D>
E
E@
B CB A
U
@
Q= A
? [= 1<
DE > #
E DB CB @ A 1
$#
#
A %
@C C A
QA
@ KE
Q= D
?< E @
BK B
= @ UA
B <
U ? [=
D>
@ E
Q= b E
? [=
V
A
D @I
=
?@
IA
DE >
B
@
D Q=
D< @
I?
DE
CE U
K
[=
B
<@
IB
<A
@
E @Q
C [= \
B
D vA
<@
@
C Q=
@KI Z=
W @ @
I<
J
CJE
[
KD
U RB
@
W A Q= D
CB @ A KD W E
_ RDB J
? [= DB
?
DE > ?E JCE E Q
A
E CB S ? [=
CB @ A D
? B @ ? QA DE >
CE > Q E @
< @ @ CB A
E > E @= Q=
<B
CJ= ? [= E Q
QTE W D > C<E
@ E
!= C c E @ E
CB A <<B?
E>
($ @ > KE E A
Q= K= @=
<=? W DE [
$ E < <=< I? ] _ @ Q AU Q= DRE= 1 #
@ A ? [=
KE DE > CB? A ;! #
K
W
D=E CEB @ A CE
P
C< A
A F= QA
< A << E DR<=
[= E A ? F>B
CE @B [ _ CB A
G
E Q E <A
J= TE= CI? U @ Q=
K< ?
@ K
_XE= CB A DE
@
$
U
DE [ W
DD= [
DB _
IB
C<E @
@B
S< A
D
A
C @@=
CJ A
B
R >B
@ D @= U
E @Q
E Q
S >B > TCE A
R
I<
< C<==
@B
[= @ Q=
I? [ <=
= D
S \
<
? QA Z = @
CQ E
JK
E >=
J= _ <
<? S
CE S =
F= >A
I CB >
<= S
S[ CA
D
D Q= B @
= I? [
CA
=
@ @
Q= Q=
V
<= A
=?
D @=
KD
@
Q=
TD
W
\
C >A
=
C [A
=
C [=
E FA
>=
E
D
=
D= U
@B
@
Q=
=
!<
[B
C >A
=
CA
<
CB< A
=
Z=
KD
I
E
Y<=
K
D
KI
R
<
<=
B
I
=?
@=
! #
A &! )
? F>B S [ %
C
_ < G Q= B
U
CB
@ @
?= Q= Q=
CE
D?
= IC U CI U
E @= ? ?
@
<= CB @ A W CB A
? >=
A
CB @ A <? PQ
A
CE E >>= <
F>B
?
[ V [F
C= G
D @= A
@ ?
E @ Q= >B
CB A KB
D= <=<
<@
@
E @= CRE @ A Q=
CJ= V< YI<=
C=
S< @ < @= ?
WJ =
B
QB
U
<=
<@
FB
E @=
V? [
CJ=
CB
<@
@
CE @ A
E @Q
<
C< A
R
Z<=
t
@=
C< @ A
C=
> ?
[ =
>A B
G= U
S
S @B B @
D DB
@= A
IB DJB
@ =
E> <@
K > E @=
DE
@ CJ=
E >A W @
I< <
J< D vB
ID [ Z=
CA
R E
JK
@ X_ >=
? Q= I
B K<
JKI KB
@ <=
E @
CB @ A E Q
C A DB @ U
S=
IB
S
DB v
Z=
E
JK
X_ >=
CA
Q=
U
A
E
ž i l kk
n lo
lp
qip
l
B
@
I
_ DE >
@
Q
<A
KE
K
= >A
<
@B
ET
DE
E FA
>=
C [= \
=
C[
? @A
DE
K
CJ= W
W @
E @=
<@
D@
B
>
<@
E @=
CJ=
@
<A
? >B
E>
@B
@
E @? Q
CB
D@
B
>
<@
E @=
CJ=
@
Cc
CB
E?
CA
R
CA
D=E
K
KE
? [=
DE >
E
CB @ A
C
VE
? F>B ?E
BI W G B Q
<
U
QTE P @
= Q= Q=
DE > < A < @
= JK E @=
>=
VE [ < @ JC=
C<== ? F>B < @
G J
? F>B < A VCE
A
@
W < G Q= K
= D
E
?E JK ? @ A
I
@V
KD Q
D>
RDB ? F>B E
F=
E W G E
?J
CB
? F>B
_ G
CE @ A
<B
<
E
@A
K<
A
=?
K<
B
AE
<<
>
A
F>=
? F>B
_ G
@B
@
Q=
TE= Q
<B?
C
b
=
E>
< @=
>=
[
[
for
V F>
@S
IF
=
KB
F=
C
@ DA
Q= @
?< B
KB I? [
= =
B [
U
E VF
? [=
DE > J
E VE
CB @ A F=
I
A
Y<= <=
I C[
E> E
@B ? [
E
A @I
< @
VE >>
! D=
D= U
# <
$ @B
@ Q=
? [=
DE >
E
CB @ A
<=
E< Q =
; ? ]=
% @
CB A
$ W “
W W W
C vA
E
_ V >>
E
? [=
DE >
E
CB @ A
T@
IE >
=
B
C=
D
ID
? Q=
@
C @ Q=
D= =
S@
B
<@
E @=
CJ=
@
D<E
=
Z=
=?
I
@=
C [A
=?
E
Q
D @= A
E
CB @ A
B
U
@
Q=
>B
KB
i
<?
@
E >A
C @=
@A
@B
#
! Q=
<
CB @ A
C >A
_X=
=
CB
CB
_
@B
<A
E[
[=
[
G=
J<=
T= >
W<
P
D Q=
=
DB U
=
Q=
<G
@
? F>B
>A
D@
B
>
<@
E @=
CJ=
<? @
E
@
C dB
Control statements and blocks.
K<
J
[
U B
E @U
? [= Q=
DE > ? [=
E D>
CB @ A E
E
S T= @ A
D
= R
=
D<E @ CB A
W
D @U
B
B
C=
@ A JE=
>
@
[ C Q=
E
J=
C
[
@A
E>
>
@< \
CE @
CJ=
E @=
E
D @= U
@ ? >B
Q=
G
KCB <<
= QB
CA I
R >
CE C [A
R
[ C=
F= D=
DB U
= E>
@ F=
? Q= DB U
>B
C< A JE
R @
@=
DF [
?E E
_X= <<
CE S QB
C
[
E> E
C >>A T FB
= XW=
C< A
P
Q
F=S E @
@ _ <A
C== E
C
DE = >A
=C D
A =F
C [= E
G
@= KKE
CB [ D=
= E<
Declarative region.
Q=
=
CI<
P _<
E<=
?
>=
<@
@ T >=
Q= =
W >
? F>B C
?G a
CE V >
AU
F= @ Q=
DB U
? F>B
JE
@@= ? G
CB
[
E< < A
CB < @
= <B
C< A I UH
R
>= < @
C >A CB
XW= C=
R< A
i
@
Q=
KB
@
@
DB v
@
R
Scope.
?<
=
R PB
Z=
C @=
[=
C A &
R IR F
J R › W & P
@ C A Q=
Q= R A <
@ K @V
Dš
= IB K Q= & % =
D
E > @K B ; B
?
›
DK I = < A @= U
RDB @ < E? < @
@B <B B B
I
E C< @ C U J @K
JB E \ CJB I
I D[ C[
@S
E RA V> =
I @K [
I
C
@ DD= E <= Q
TE=
@ DB [
E @ Q B = > D @= [ D?
I I A
=
I< @K CJ A J E
I
@B @=
E
C[
VR >> @ CRE @ A
C [= A
C< A
B= ?
B
@
I<
< = ? @= KD Q=
A
@B @? Q E
DD= KD =
C<E @ CE DB RB TB A
W D I
DE [ C @ Q= < E Z<=
@c J
[
IB DJB R< A CJR A JKE
I @K = B D= >=
W @ = B D A
E< KD [ _ DB ?<
V >A ?
E
E C Q= >>=
F= ? @ A ? [
= = K<= @B š & %
DE S [=
D
E @= A RI F ;!; #
[ @= b ;
DU
B
s
sum_n.C
TE= Q
D @B
=
TJB=
<B
J=
K
DE
<B @
Visibility.
D[
VE
DE
ICB ? >B
G
[ <
? [= C [B
DE > B
@
E CB
CB @ A V >
< D< @
B f I?
TD U D @I
E =
E FA E
>= KD
< RB
DB U D
Z= E
TJ
E A
JK I<
>= E >
m V>
C IF
V @
@
? [= V Q=
DE > E
>
E <B
CB @ A DK
B
@ TA
QE [=
@
KE RE >B
K
D=E ? A
< E>
FB
CI
for ( unsigned int i = 1; i <= n ; ++ i ) {
s += i;
std :: cerr < < i < < " -th partial sum is " < < s < < " \n";
}
? [=
DE >
E
CB @ A
<B
=
DJB
C GA
U
CA
<A
[=
E
? F>B
G
<? A
E>
>=
[
s
? QA
Q @A KE @B
K
D= @
W E< E @ Q
C ? F>B
W _
E G
J=
@ ? >B
E @Q
E>
C< AA ? [=
D@ D> W
B E
I? [ E @
= CB A
[ Z=
V F C @=
E
? >B < [
CB
E>
? [= VIC >
DE >
@
E >A
CB @ A @
Q=
S
Q=
? F>B
@
B[
C=
main
main
C< A
B
@
Tš
< AA
F>=
BI ›
< @A
[=
B
U
@
Q=
? F>B
SG
D Q=
=
@A
<A
? [=
DE >
=
W [
DB v
Z=
E
JK
_X >=
CA
{}
W
WW
lp
lp
lp
l
lœ
il
qp
n lo
qip
n lo
qip
n lo
Q=
>=
C >A
=
C [A
<A
[=
@
Q=
? F>B
CG
A
E FA
E
@
? [=
DE >
=
TD
@A Q
@ C< A
Q
<? A B
B T@
X_ [= A
<A
@ A C F>=
A
I<< A
= @
C<E B Q=
DD= I @K
DB I
@
<
J= E @
@
R<< E
XWE= CJ=
@
C >A
=
W ¥
IP
_ <Q
A
VB U
I?
CB
DU
CB
@
@
? Q=
B
JK
D >= A
S
CA
V>
DF
?E
W =<
ID
CA
?
i
int main ()
{
for ( unsigned int i = 0; i < 10; ++ i ) s += i ;
std :: cout < < i ; // error , undeclared identifier
return 0;
}
D
D
™
˜
—
–
•
”
U
D
FB
Q

ƒ
y ƒ
std::cin
z€ ‡
_
@B
Q=
Q=
@
@
U
CA
DE >
E
CB @ A
? [=
B
=
?<
<
F=
KB
R
C >B
C >A
=
_ @
Q=
u
=¡
@
Q= < @ =?
=¡ E
?= @= B @
CJ= U
B @ W C >A
UC > @ =
A
= CA A
= <
_
@B
<A
for

@=
CJ=
W @
D [= W
@
Q=
BU
S >>B
CA
R
?
B
[=
DU
RE
<A
KJ
_X >=
?
CB
E
Z=
=
D?
CB
=?
DJB
E
< @
Q=
@B
E
D [[
=
<<
B
E @ G= U
@
K< T Q=
?E > DE
=
CA EA
F
=? >=
E
Q J
D @= A V?E
E
CB @ A CRE Q
=
CA
=?
E
Q
D @= A
E
CB @ A
B
U
@
Q=
B >B
WK
CB @ A
E A
Q=
@A
EA
b>
CA
B< >
@
k
}
|}‚
{
„

} ‡‡
€„ 
€
 ‡
‚
{}
|
}‡
‚{y
J
C ]A
?
=
C >A
=
3
~
} ƒ…
{
||z
}
y}
‡
y
|
I
CA
D?
@ =
Q=
B CJ=
@ @
D Q= @
Q=
CE Q T
DE
[ A
F= E F
C >B >=
R [=
< C\
@B =
@ C [A
Q=
?< C >
BK = A
= B CA
U
@ T=
Q= D=
? [= V
DE > D @= A
E E
CB @ A CB @ A
CA B
C >A @ U
= Q=
@ CB
=?
Z=
[
#
DB v
Z=
E
JK
X_ >=
CA
#
W!
&
;
$
(
&
>=
P I
Q @=
<A W [
F=
TE Q
DB A
?< A
E>
"
CA
V
>=
A
<A
DE >
E
CB @ A
? [=
<@
J=
@A
E FA
E
TD==
TD
s
.
)
(!
$
$
! #
$
$
#
! $
!
)
@ E<
Q= R<
CA
? [= =
DE > C [
E E
T= @ A [
D @
R= Q=
CB A DE [
=[
@ <
Q= <
E< ? F=
<B? B
J=
E @= A <
T
[ E>
J= W [A
DJB C V S
[
D< AU C
== Q=
=
CE [ TD=
[ @
@ Q=
Q= Z=
TD =?
E I
E FA CB @ A
>= R
< =
E[ @
D[ <
= @B
<< @
? F= C= Q=
B
J= B [
< U
"(
DB U _
R=
=
@
E
D šU
=
<
C QA
C<E @
?
=
B›
U
@
Q=
=
D Q=
=
@
E
W >[A
T
!
; ;# $
#
$ $
$& !
! # ! #
;$ ;
$ ) ! #
!
4 #
; &
9 )
4 !
; # ; 4
)
9 9
@ @
Q Q=
< A DK
CJ=E RDB
< E
@ J
E @S Q C<?B
C Q= DB @
TD== >A
C< A
@
Q= @
TD Q=
E TD
E FA E A
>= E F
>=
? [= <
K
DE > B
E C @=
CB @ A @
EA
D< A ?< >
=? KB
E XW=
Q=
_ [
ID <B C
RA
J=
KD
J= RDB
DJB
V JE
? >B Z=
=?
E I
CB @ A @
CB A
_
<A
@A
Q W
KB
_=
?<
I<
Q=
S
? QA
Q
CA
J=
@A
E
V >>
@
I
<A
ID [
E
CB @ A
=
RE
Q=
D< @B
@
E>
? >B
S >=
E FA
<A
E
RC<< A
=
[
@B
@A
TDE
E
E
CB @ A
D vB
? >B
Q=
@A
@
>=
@
[
E FA
>=
<A
A @A
T < $<
E _ >[A @ ;
QE & @ _ <A <B W ! #
J=
P
J= < QA
DJB D @=
V J
E FA
E
Q=
B
@B
=
KB
?<
@=
E>
=
U U
@ TE
Q= DE
E
D [[
=
<<
B
Q=
? QA
Q
@
CA
J=
TD
S
@=
<
B
C [=
Storage duration.
} ||
D Q=
i
0 1 2 3 4
} W
CA
=
IE > DB U
= =
&
@B
CB @ A Z<= =? _
?D [=
B I ! #
U
W
=
@ CB @ A
Q= _
CJ=
DK C P
@
RDB E < QA
@
[
Q=
E @ A JC=
D
š
JC= [B E
=U
= <
<
Q
W < [ C< @ Q
B E@
TD ›
E
P @? @ A
Q=
<
E FA
TD CRE Q E
>=
E = D [[
CA
E FA f =<
>= C Q= <
C< ? < A
TD==
=
V
[=
E
J= < @ š D @=
D @= A
[ ?E @ CJ
A
A
E
VF
CB @ A
C ›m = [
_
DB E
CE
@
? F= @ Q=
[
@
B
Q
CE
R F=
<A
J= C
SE >
[ CA CA
T CR A
VE
E>
D<
A B
=
IC [ U
I<
>
_
@ A @ Q= #
<@
>
;
T
U
4
"
#
9
E2
{
D
D
E
Cc
?
CB
D@
E<
@
TDE
E
E FA
>=
@
E @Q
<A
C [= \
=
C [A
C
E
J=
K<
?E
=
?<
KB
=
DB
R
>B
E? F>
<
KB
=
EQ
$<
for
2
b
i
=
}
$
?
// outputs 2
=?
E
C<=
N
!
E 1 , E3
Z=
E
=
$
;$
!
E3
} ‡ ‡
‡ {
}‡
E
KD
i
W
E
V >A
B
I FU
?<
E @=
<
@
Q=
KD
B
i
Kf
B
<<
A
F>=
=
=?
D<<
C
V >A
QA
[=
<
@
Q=
KD
=T
IB A
<
? [=
DE >
E
CB @ A
B
DE
DB
JK
D
E<=
?E >
D=
C=
@
i
R Q=
C< A
?
=
@
QA
IC<
C >A
=
¥
@=
Program 8:
D, E1 , E2 , E3
RDB
A B
CU
E
J=
QA
A CR [A
W
\
CA
P
E3
Q=
>
? [=
DE >
E
CB @ A
@
Q=
? [= Q=
DE >
C
E A
CB @ A C >
A
D =
BU D
JC D==
>A U
= <
W
@B
@
P
D Q= Q=
= ? [=
DB U
_X= DE >
E
@ CB @ A
Q=
DK D U
RB B
D
J
E C >A
JB =
I _ ¥
S
I @K
@< D Q=
D\ =
< E<
_ @ @ Q=
_
_ CA
_ C >A
_ =
CE D =
[ D= U
@C <
Q= @B
@
std :: cout < < i ;
return 0;
CB @ A
B
?< U
KB
C=
C [=
JE
Q=
J=
<B
Cc
C<=
_X<=
W
@
@
W V>
R
C [A
?E
DB
J?
E
Q=
RDB
KD
JE
C >A
=
b
VF
bC>
A
=
FE
_ << A
S
=
TE= Q
@B
DB U
CA
DF
=
C
D
E G = >A
=
<
_
CE ¥
VJE R GA ? [=
DB f
D>
S [B E
C E@
TA
VJCE
@ D=
Q=
B ? R=
@ m < CB A
B
KE K=
K
f
=D C< E?
E A CB
E > C @B DB @
JB = >A >
<@
<
CE @ < A E @=
<
C
VS A C
R J=
D Q= C= _ @ m
WX= D= K
B
S cU CE > C @=
B
S= @ @ A
CE KB E?< >
@ << A KB
@B F =
X_ >= C
E
E @> B [
G ? U ?<
E IB KB
I FB D =
_ <= DE
?< @
=
BK C<? A C >
= = =A
CB C
>A ¥
W
E = E2
@ KD
@
@
DK [
?E
? @A
=
@B
TEB
C [A
E
J=
Q
C [AA
R
U D
@ BU
Q=
<=? CJ >
CB = A
W
[
? [= P
DE > < QA
K
E
CB @ A C Q=
B
C=
CJ=
C< [A CB
C >A <? A
=
_ E >>=
@ ![
Q= <=? (
CB
#
[ ! #
? [= W ;
DE >
I
E
CB @ A @S
C Q=
š
? F= @
B Q=
J= ? [=
C< A D >
T EE
< AA T= @ A
F>= D
R=
S › f CB A
=
B
E1
@B
=
[
TC==
I
<=
IU
>
KE
K
? >A
E
CB @ A
C< A t <
? VE
=
@ šA
C Q= @D
IC
E
J= <B
I
CA @
B
C >A ? U
= <B
D K=
= ›
D= U C m
< E
@B [
@ @ Q=
Q=
TD D \
E <@
E FA ? [=
>=
DE >
C [= \ E @
= CB A
C [A @
C >A E G=
= <B
_ TD=
S
R= RE
= W CE A
@
@ C
Q= c
BI K
D
I @K E? @
@ IA
C A _ DE >
B
@A
=
[
A
A
Q=
DE >
E
CB @ A
? [=
DB v
@
`
I>
C< >A
=
K
C< >A
=
K
<B
<? @
_ `
CE
W
A
C< >A
=
=
<
KB
@
E? >A
C @=
K<
D
w
D
Q=
DB U
R
CE
CE
@c W
R< A
BB
C >A
=
E2
R vA C
DI E
= [
R ? [=
T= A D >
< E=
E
V< @ Q=
J FB <E
? >A CJ=
K?
A E
D @I X_J=
= @
B Q=
U K
@ B
Q= C @=
< A @A
@I E
E @ ?< >
CB A B
W K=
A<
B
C >A
U
=
A
D
<
=
`
JB
f
T
=
E
D [U
? F>B
B
_ Gm
J
@
>=
E @F
RD
C [= A
WE
S G @A J
D= \ C
a
Q=
@
@
D Q= E Q=
< B
@ @
D Q= C Q= D @ Q=
=
E
< A J= CE Q
<B B _ C [
J= @ U
B Q= E
@ ? J=
D Q= CB
C D C QA
@ [A
E B R
J= TD > E
E S >>B
<B E A <
F>= I
SJ= C A <
f
D Q= E >G= A
=
CA
=
D
<= >
C A < @ RB ¤
E @= D
@ JC= E
Q=
KD _ @ J RB S @B m
D A
I
E @ QB
J I <=B
@ ID
P Q
QA TCE U
< R A TBE
D
A
C<E @B A
@=
? Q=
?
Figure 5:
E W
_ J
@
Q=
? [=
DE >
E
T= @ A
D
R=
CB A
B
U
@
Q=
? [=
DE >
E
CB @ A
CA
C >A
=
=?
S
SB
K=
??E
E1
‘
B
@
E @Q
Q
DU B
B U
J JI
@ A @>
K< K >= A
B
C @= ? [=
@ D>
E >A E
?< E
@
KB CB A
= <
B
E< U
B U @ Q=
>>B
tS <
< JE=
C
D vB
=? JE=
E W m
Q
? [= P
Q=
DE > $
E CB @ A B
CA U
E
@ ? [=
Q= D >
K E
B
C @= CEB @ A
@
E >A
?< A
<
KB B
= @F
B CE A
U =
[
2
i
D
Cc ?
<
D ¤ KB
RB =
Q=
@ I?<
D
for ( unsigned int i = 0; i < 10; ++ i ) {
int k = 2;
// do something with k
}
int i = 5;
for ( int j = 0; j < 5; ++ j ) {
std :: cout < < ++ i ; // outputs 6 , 7 , 8 , 9 , 10
int k = 2;
std :: cout < < - - k ; // outputs 1 , 1 , 1 , 1 , 1
}
1
k
std::cout
`
™
˜
—
–
•
”
# include < iostream >
// Program : collatz . C
// Compute the Collatz sequence of a number n.
_
5, 16, 8, 4, 2, 1, 4, 2, 1, . . .
_
_
_
1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
J
A
IE >
=
<B
W U
c
VB U
I
K
VSE >
T
>B
DB U
?
D=
CE @
KB
@= A
C\
CA
CE @ A
C<E
CB
?
E
RDB
KD
n
@
Q=
@A _
Q
@a
D Q=
E P> S
C GA A
R _ <=
?
E FB CB
I <A
KD @ D [=
RDB DB U
t= JI
<< >
CE @
<A RA
A@? V
IB
DE >= D
>B
@ KB
E @Q
@ <E
C Q= E
I
JD F=
<@
E @=
SE > CJ=
VE W @
<
KE
K
D=E
<
C cU
B
@
@
Q=
1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
RDB
KD
@
E G= _ E
J
S E VIB
S
Q
WX >= A >A
B>
IB D<= F
S
T=
>>A
C \ @Q
_ [ E@
DB U C A
Z= [=
=
E [
JK KE
_X >= K=
@ DE
E @ Q D<B U
@
Q= E
C>
dB I >
>>
E@ J
D F=
Y<=
I V<B
C= I
?
= D@
DB U _ V
E>
@
IR QB
Q
< A @Q
<A
VJE
<
=
E<
@ E< A
Q=
JK
BK >B ? >=
IB
KD< C
RDB CR @ A
=
_ << B >B
I WK
<=
E D<E
I
>=
<@ B
E @= @ U
I
CJ= Q
W @ _ JF
D @I
AU E
@ T[
D Q= D=
= @A
<=
<A @
E D Q=
<A
JK DE @ Q=
p >= ?
B
p JK
nn ? >A
ih k E @=
@ [A
E @? Q D @=
E
KE CB @ A
I @
@ ?< QA
@
Q= E
X_<=
<A
@I @
E Q=
CB @ A KD
? RDB
CE =
<
F= < A
<
DJB JB
= <@
[p
P
Q=
B >B
kih K?
_ C
E
IF B
@ ?U
@
D Q= IDB
= <=
I<
C @ >A F=
R S
D
TD A
E C @@=
CE A
B @ E<
U
@ E
Q=
KD
RDB <
E@
E @=
J CJ=
<A @
>= S
D<< A
= @Q
E[ =
E F JK
>= @V
C< A
? žik
= lk
A n lo
D @@ lp
=A p
< qi
@B l
nn
p
CE
N
;$
Program 9:
_
_
_
_
_
_
_
_
_
collatz.C
_
_
_
_
E
1.
27 82 41 124 62 31 94 47 142 71 214 107 322 161 484 242 121
364 182 91 274 137 412 206 103 310 155 466 233 700 350 175 526
263 790 395 1186 593 1780 890 445 1336 668 334 167 502 251 754
377 1132 566 283 850 425 1276 638 319 958 479 1438 719 2158 1079
3238 1619 4858 2429 7288 3644 1822 911 2734 1367 4102 2051 6154
3077 9232 4616 2308 1154 577 1732 866 433 1300 650 325 976 488
244 122 61 184 92 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4
2 1
_
_
W<
D=E
K
C ]A
?
=
@
Q=
Y<=
I
C=
?
=
while
[
@
EF EQ
>= @
@B T=
KD C=
B @I
I? [ E
= V? >>
KDE B
BB J=
<
B U IK
U
@ DB U
Q
<? A E
CB >>
T
=? H IE
>
D @I =
WX= <B
U
_
C< A
C IF
B? @
C= J
@ E@
E< b Q=
1
KE
W
<= U
TD= W
E TDE >
E
E FA
< @ _ < >=
E @= DB
CB
JC=
@ <B
A
KD< J=?
= CB
D= U
E @ [A
WX F>= CB A
E
_ =<<
Q=
IE >
=
<B
@
DC @I
P
C ]A < Z= Q=
?
= ) ?=
W $ I
CB @ A
DB
<@
D [=
E @=
CJ=
<A
@
D Q=
@<
=
DE
DB U
=
=g
<B
=
ih
VE<
l jk
k
_ ih
D @B
S=
n lo
D
lp
@= A
pq
E<
_ il
g
h
i
<@
l jk
E @=
k
W_W ih
CJ=
W
_ <@
IC
S
@A
>g
VQ
ih
[B
S
l jk
C=
iDh k
==
=
b
[
for
T=
JD F=
I
W @A
D¤
RDB
E
J
D
=
E[
C< A
_ £
S
=?
CB
<A
D [=
@
Q=
N
$
&
!
T
CB [
C=
K [=
VJE
Q=
m
E<
@B
@
Q=
FB
S
qip
ih
lp
n lo
=g
D Q=
l jk
C [A V B [ ih k
R
U C
@ E
Q= [
n lo
lp
<@
E @=
qip
CJ= < @ l
E D
@ @= E=
CJ= E
W @ C< A
]= E
CJE
? @A < @
E
E @=
_ V >> CJ=
E W @
CB
K<
=
DDB
? Q=
@
< F=
< @ DB U
E @= X_=
CJ= n lo
lp
@
A p
Y<= qi
I l
T A D< A
CE >= D== U
D
@ =
@B [
l jk
ih k
m
gf
l ih
<A
]B
ZE @ E< _ DE U
A
JK S
<A > =
A
=\ Q
[ TE=
C<==
<@
E @= CB
=
CJ= A
_ @ D @=
S E
CB @ A
D Q=
= <
@
FB E @=
@
Q CJ=
ž i l kk _ @
n lo @ Q=
lp
qip
l <
CE E @
@=
p [ CJ=
W
p @
nn P
Q=
ih k
DE
=
B
$
JA @@= W [ (
c !
<@ VC<
W $
%
1
#
=
DD= U
=
[
@B
E
$<
#
D
W
@A
Q
<B
E>
=
DE
=
ID [
E
CB @ A
RE
D< @B
?E @ A
<@
S<
EA
F>=
DE
CA
C<E @
?
_X=
TE= Q
<@
E? @
A
D< @B
RE
=
ID [
E
CB @ A
DB U
lp
ug f
pq
i l ih
l jk
ih k
u
n lo
for
= >A
W
_
1
C Q=
@
@A
>
(ni )i
IC
@
QA
K<
BC
¢
n
E@
D
J F=
I
CE >
DE @I
@
for
T= A J
[ PQ=
E<
E? CJE
A
ICB D
=
C @A E
R C<B
>B D< A
KB =
CA E
S E[
F
? QA >AA
W @V
Q
@ Q=
CA <A
D? C< @
= E
CJ= J=
@ IR<
DB f R=
<
D? [= _ < @
= E
CJ=
@ <
B m E @@=
U
CE< A CJ=
R @
>= < A
TD K @V
E ?A
E FA E >
>= V >
=
D=?
K
while
F=
R< A
C=
D=
E
V >>
=
K
i
?
< @B
=
?
C=
A A
B< T=<
[ C=
[
[
CE
The Collatz problem.
n0 , n1 , n2 , . . .
n0 = n
ni−1
ni−1 /2,
ni =
3ni−1 + 1,
ni−1
C=
I
Q=
Y<=
@
@
CE
TC= A
<<
=
Q=
RDB
KD
@
for
I
E
<B @ _ S<
U
@ =
Q=
Y<= VJE
D=
K
AU
@A
Q
CB @ A C GA
@
[= Q=
D?< >B
A B
F= K
C<E < FB
Z= W V [
E Cc
JK
WX >= <B
J=
B
U
@
Q=
<=?
? Q=
D< A
TC= =
K<
C= A CB
<
V @ > FA
>=
JE DB U
[=
C A @ Q=
@ KDRB
Q= D
=
<<
< @ S @B
E @= D
E
CJ= < [
@ D @=
<p
CJ A
p E
@
nn W CB A
kih
Cc
?
CB
while
1
KE
=
AU
S
@
?
@ B
E @S Q JK
=? Zt >=
for
CE A
<
TE= Q
C
B
V= @
@
C= F=
@c
>=
AU
<=?
Z=
C Q=
P
while
for
while
? @A
=
C<BB _
S
<@
@ E =
Q= < R
E<
T= @ A
n=5
CJ=
I @K
@A
DB v
Z=
E
JK
X_ >=
for
JE
n
[
IB
=
D< @
K=
=
R
while
CE
JD F=
I
C
for
= @A
>B
E @A B
<> _ <G
<=? @
CB @ A K< QA
_ m DB
I F F>=
VB @ J
I <<=
DE =
=? J
<
D= @B
@CE F=
A
V > TE
C A D=
T V
@= A D Q
[ E
R @B [
T = A JE @
Q=
@A J
DE ?E @
V@ EA
C>
I
@
@B
D?
E?
G
<== f
E>
<B
@
Q=
2.4.4 Iteration: while statements
int main ()
{
// Input
std :: cout < < " Compute the Collatz sequence for n =? ";
unsigned int n;
std :: cin > > n;
// Iteration
while ( n > 1) {
if ( n % 2 == 0)
n = n / 2;
else
n = 3 * n + 1;
std :: cout < < n < < " ";
}
std :: cout < < "\ n";
return 0;
}
for
while
for
1
n = 27
n
“
™
˜
—
–
•
”
U [A
@ E @=
Q= V >
F=
< @ DB U
E @= =
@
JC= C Q=
A
CE @ KI
S [ <@
@
IB E @=
>C
[ CJ=
B W @
@
F= P
T D Q=
< AA =
F E
C >= A C<B
A
@ <@
Q= Q
E@
<@ S
E @= IB
>
CJ= [
@
@ C Q=
<p
F=
p ? >B
nn E
ih k @B >
@
Q=
FB
W
V[
B
do
a
do
a != 0
switch
y‚
‘ | ƒ…
}
{‡
}‡
Q=
E
break
do {
std :: cout < < " next number =? " ;
std :: cin > > a;
if ( a == 0) break ;
s += a;
=
SJ=
D Q=
W
0
B< š
CJ A
E
CB @ A
B
U
E >B
KB
D @=
V>
@
J=
CA
? >A
E @=
<@
>>
W @
D= =
<A
CJ=
I
CE
E @=
S[
VE
B
SU
D
C @ AA
R
JK
B
E?
D Q=
IF
D@
E@
K
B >B
@= A
A
@ D @=
EU E
D @= CB @ A
@
Q= < @
D @= A E @=
E CJ=
CB @ A
@
< @ D @=
E @= CJ
A
CJ= E
@=
@ <
Af A
CE U J
VW J=
m [A
E
D vB W V @= >
Z=
E P
JK Q=
_X >= Z=
=?
I
CB @ A
?
CB
C @A
I
=
<
E@
@
Q=
CJ=
R
C< A
>B
Q=
@
Q=
CJ=
E @=
<@
C=
<@
<
JE
@
>>=
D @= A
E
CB @ A
CE
A
A
C @ QA
@=
S[
I
=?
Z<=
CJ=
E @=
<@
E
C
_ @
b
<
$ )
W
TA CE >=
@
s
DC @I
iDh k
=
@A W
>p
u
K @V
E
QB
@=
@B
TD=
break
P CE @ A 
Q=
C Q=
D \ KB
CA
<@ W E
IH @ IH
JK D PQ= JK
< @ = <E @
E @= DE @=
=
CJ= S @ JC=
@ B @A
<? A [A¡ Z<=
D=
E > C= I=?
>=
[ @ @=
E IH _ [
JK @ Q=
< KD
$ E @@= RDB
CJ= E
(! < @ JB ^
S
u @ Q I
A@ E @S C?
<
VC< S = CB
Z E @ CE @ [A
@ CB A
D< A @B E
>
E @ ? [A V >
D Q= I< I šH
< A << JK
JK D Q= < ›
XW >= XW= @B
E
?
D=
[
R
<@ C
E @= E A
C
CJ= CB A
@ =
B
U
@
Q=
B
@
D Q=
?
RE @=
DB
W =< A
W
@ E>
S<B
CB D
D @ CE
B =
> [
SB ^ @
E @Q
I
P H
? Q= JK
B <
@
JK E @=
? >A
E CJ=
CB @ A @
<
B < QB
U I
@
? Q= >[
CB F=
D@ I
B <=
> S[
SB ^ A
?@
QE D Q
< E=
@B C
<
F= ?= A
F
CEE > V @ Q=
?
= C @=
[
VF [
? @B
RCE< A B
JK
?A ?>
CE \ A
E
@ @=
? Q=
C<=
=<
< _ m
I QB I H
>
I [ JK
<= < @
@ E @=
Q
< A CJ=
Z= ^
A <@
FA KD
>A B
S @V T A
[=
D Q= E
=T [
D= @ [A
CB A
@A
E E>
S >>B Z= ^
V<B FA
I >AA
@V
@B C A
A
JKD [=
BT RC< A
= C
VB R A
ID A
? D @=
B E
WX [= CB @ A
IB
F=
JK
IE H
R
CA
CA
D@
B
I? [
DB U
=
=
DB U
_X=
C @ QA
?G
DE
=
IU
V >>
D Q=
P
W<
? F=
U
@
SD Q=
B
[
SB T=
_ D= JC=
@
F= W < @ E @ Q
@
S< f
? QA
DE Q
=
E>
<B
IC
C
=?
=
< @ D<<
E @= VE
CA
CJ=
E @=
<@
CE
K @V
B
=
VE < U
C A E@
@=
@ CJ=
Q=
C<= < @
<= @ Q
@ DE @
E @ Q E=
@ D=
VS Q= DD= U
=
IB [
> @B
[
E
S >>B &E<
VB I (
$
@B [B <B (!
J= W $
C @ QA
R P
S <= Q=
? QA < @
Q E @=
C< A CJ=
B
K @ D< @
B E
=
<< A C
F>= B
@
D<<
=
@B DB U ) $
= CE TD= [ V (!
D @= A $
E D
CB @ A E=
<@
E @= B < A
U JA
CJ= @ Q= DE >
_ < @ B >B @B
@ KC
Q= A
FB < @=
V [ E <@
B B [ E @=
U U
E % JC=
) _ @
< @ = Z<=
E @= TD= ?
=
CJ= V K @
A
@ D @= @ Q
<Z= A E @ E @
=? W CB A @ Q=
?
I
@= P CB
D
[ Q= [
E @ D=B U CB @ AA
>= X_=
E< C A
@CB ? A =<
? CB T
WX= D IE >
@ E
E< @=
@ [
C
@ ?=
WX<= A
Cc
< @=
_ E[
IH
<@
>A
G=
BU
S >>B
IE >
=
<?
CE
CB
P
<A
CJ=
E @=
<@
E
E<
um
nn
ih k
ZE @
B
VC<
Q=
<=
S=
T
U
p
lp
pf p
qi
l
n lo
do
}
_C
U
A
<=
E @=
?
nn
p
IC
D @= A
E
CB @ A
B
@U
Q=
BK >B
?
CB
<A W
<@
<B
D U\
<
Z= @
=?
I
C @A
R
W<
C C [= \
=
[
E<
BU
S >>B
<
<A
nn
ih k
<B A
p
=p
D Q=
while
|} ‡
}
}{ ‡‡
IE >
R<E
=
B
I
=
C\
@
DJB
IU
@B KE >
I< K=
K DE
KD C
= ?E
<< =
@ BU
Q=
DD A
= W
TC >= C
E c
@ IDB
E[ ?
[A ?E
CB @ A I >
B DE @B >
U
C A Z=
@ JKE
Q=
>=
E< > DB U
@
D @= A J
E RE ¤
CB @ A =
_ P @S A
Q
<? A B
CE I
>
[
F= F=
=
R
@ A C >=
Q E
@
BU
S >>B
CA
R
B >B
WK
Q=
=
firsttime = false
K? @V
Q=
S=
<@
break
|
D= _X=
S
=
<==
@
C< A
B
CE @
E
U
BU
S >>B
CA
R
Y=
I
@
for
Q=
0
DJB
Q=
B
J<
D @=
W
WW
_
ih k
nn
p
Q=
? @A
CJE
<=
P
S
bool
C [B
m
A
W
k
_ ih
n lo _
lp
qip
_ l
p
nn
p
qp
_ il
p
lp
E n lo
CB @ A lp
B U qp
i
S >>B l
C
< E
[
@a @
DS Q= C Q=
T=
<= A IE >
@ CE @
Q= R A
p
<@ p
E @=
n
CJ= inh k
W
@
D @= p cU
CJ A
p
E @= n
< inh k
D
P =
Q= D @I
Z= C
=?
I < CB @ A &
DB C @
Q=
D [= C
E
<A B
@ D @ Q=
D Q=
=
DB U D @= A
= b
K<
@
QA
@ E >A
=?
E
K<
@A
Q
CB
_ @A
S
S=
IB
>
[
>A
G=
@B
Z=
C @=
[
IDB
DE
C<=
E>
B
?U
CB
D@
B
>
<@
E @=
CJ=
S< @
while
JA
[
[
W >= ›
B
@=
@
E @S Q
=?
IB
>
Y= [
I
TA
CE >=
VS @ >
D
@= A
@
int a ;
// next input value
int s = 0; // sum of values so far
do {
std :: cout < < " next number =? ";
std :: cin > > a;
s += a;
std :: cout < < " sum = " < < s < < " \n" ;
} while ( a != 0);
CA
k
>
CJ= DC @=
W @
E
T= @ A
_ V>
@
Q=
<=
CJE
? @A
<?
IB
>
[
F=
C [= \
=
C[
E @=
n lo
do
J=
A
uih
nn
p
p
p
iq l
f
<@
do
} ‡ w

|} ƒ
‡ƒ
z{y
y
~ …
€zz
yƒ
{
b
J
J=
V>
E
_ C @A
[B
V>
I[
I<
E>
>
n lo
lp
bool firsttime = true; firsttime ||
IB
CE
for
S=
C= F= _
C=
D @=
=
W [
E< Q
I
C
do
a
D Q=
S=
A
do
DE >
=
? [=
F>=
Z=
C@
I
J F=
D
C Q=
DE @I
while
do
@B
K
B
<<
@
G=
[
)
<B
while
D @= A
W DE U JD F= C dB n lo [ E @ P
CB A
E
lp _ < QA
_
V >>
S V C< D< [= A p p F=
D C= E
qi
A
l p T=E Q
[
C @@= DC @= E E< A
n <
A
U
<
I R A D @= JK Z= inh k >A
G=
C< A _ =? ? >= =?
I C< A IB
R
E
D
@=
?
C
@ Q E
B
E Q= I I > IC [ = @ š
I
>E ? T < A
D<= J D @B
< @ C D F= b CB IE > JI >
E @= A @ K @V [ E @= E @
CB A
? Q=
@A
CJ= [A KD = CB A [ f
E @= RB KE
I
[ B›
@
D K? > W VE >> = U
C< A < @
A
@B @ Q=
? Q E E
= E @ JB CB @ A
<
QB
D
@ @ Q= I @K C
?
Q=
A
@
K I S
D? A
D @= DRB @
I <@
D < @ ? QA
E
CJ A
@ A @=
E Q= Q
T= CJ=
E @ J I< @ Q=
CB A <
IE > _ @
I
? I QB JB D<=
E Z=
CB > U
CB @ A ?
_ K=
[ @ C=
[A < @B C Q= @=
<== @
CB @ A W K I D
@
<
?
? ]= E @ Q
CA
CE P JD F= YE<=
QA
CB @ A
CB < A C<= IC=
“ @ Q=
W
<
?
V>
W D
D @= =
JB
_ m <\
F= < @ = [ B
@
U
C
Do
S
@A
QA
? Q=
?
while
!< A
X_E<=
?<
@
Cc
2.4.5 Iteration: do statements
2.4.6 Jump statements
break
for (;;) break ;
break
for (;;) {
std :: cout < < " next number =? " ;
std :: cin > > a;
if ( a == 0) break ;
s += a;
std :: cout < < " sum = " < < s < < " \n" ;
}
™
˜
—
–
•
”
< @ Z= F=
TE= Q KD _ @V A
=
< @
DJB <= Q=
= I[
Z = C<
KD R A
=
< E CE
T<= A
[
K
SB <E @
D= @= <E @
@=
@ CJ=
CE Q W @ CJ=
P D< @
Q
< A D=E
J =
CE VD?E IC [
[ = C[
E @= E
_
<@ @ @
E @= Q= <E
A FB
JC= DJK @
=
W <@ < BQ
b
U
for
IC U
?
CB @ A
E>
KI U
D
=
B
J<
@ Cc
Q=
? D @=
@ JC
E @Q E
Y=
I
T
<@ E A
E @= C >=
CJ= V @ >
CB< A
while
do
for
qp
_ il
g
ih
ž
lp
jk
W
do
y} }
W
@
RJ A
@Q
B >B
G
>A
G=
t @Q
<A
CJ=
E @=
Q=
CJ=
E @=
@
<@
@
while
[
Q=
D @Q
==
D @= A
E
CB @ A
@
S @ F=
C==
<
E>
CB @ A
=
D Q=
@
C<E @
D [=
A
CJ=
E @=
@
<@
J
@
Q=
DU
B
E
CB @ A
? >A
@
W
T=
IB A
<
<=?
CB @ A
KD
<@
CJ=
E @=
<@
CJ=
E @=
@
@
@
QA
V>
DE >=
<?
_ D Q=
=
R PB
CJ=
E @=
@
<@
⇒ do
n lo
do
<@
E
D [=
<A
C dB
JK
Q=
E< >
@
@
=
CG
SB
⇒ for
@B
<<
=
<=
F=
Z=
KD
I
›
[
S cU
=
C [=
B
@=
š
?
CE
_
D Q=
=
@
=
DB U
=
TE= Q
S
VF
A⇒B
QA
I<
C< A
R
W
D Q=
S=
S
B
W <G _
s
E @= >
@
m
JE
DK >
B
DB U W B
U
C
JE c
C >A DB
D [=
C [= \
C A D @B
R =
@ VE >>
Q= K
D
<= B
T
CJE =
? @A E
<
<B E @
@= _
U
< @ JC=
E @= @
CJ= >G= A
W <@ @
_ QA
]= S<
CJE D=
? @A < \
<B B @
U
KD U E >
RDB S >
IB
E >
J [
CJ A Q
R TE=
=
DJB
KD š
B
B T=
@= <
›
@ @
E @S Q ? Q=
= >
KI E A
J=
@ Y= [
@
S Q= I A
DB T E
C >=
[ ?
W
X
=
1
$
CA
Y
I
B
@=
<
E<
IDB
D
=
CE<B
CA
R
?
CE
C
B
@
? F=
CB
<A
D [=
=
[
<<
=
Z=
KD
<@
@B
CJ=
CJ=
CJ=
W <@
E @=
<@
E @=
E @=
<@
_
<@
for
while
$ ) <E @
@=
CE
CJ=
[ @
@ <
Q= Z=
=?
BK >B I
@
< A CB A
D @= DB
CJ A D [=
g
E @=
ih
I [ l jk
C< A k
R _ ih
DB
JI
<A
@B
ih k
CJ=
W <@
F=
E
DB U
S@
?
WX= A
@B
<<
=
Z=
KD
<@
CJ=
_ <@
CE
E @=
<@
while
} }y € y
} ƒ ƒ
{ 
}y … {
z z} ‡ ƒ
y ‘z
‡
{ y
€ } ‡
‡ 
 zy
{ ‡
z ‡ {
}z{ ƒ… ~
€ | ‡
ƒ
} ƒ |
{ € 
y} …
‘ z …
<
E @S Q
@
m
l jk
gf
l ih
do statement ⇒ while statement.
qip
@B
⇒ while
E @>
CB A
JI
l jk
ih k
ih
<A
ZE @
Q=
A
DC @I
m
lp
while
ih k
l jk
while
gf p
q
ih i l
l jk
ih k
um
CE >
Q R
SE @ IR
=? E=
CE < A
<
[B IE<
D Q= =? FH
=
@
Cc B
U
B < @A
@ SB
D Q= C
S _
DB CE
t [
<[ @
Q=
P DB U
Q=
BU J
S >>B DE >
C A =@
R E
@
< A CJ=
E< B @
IJ? <= U
B Q CJE
U ?@
E A
KD š < A
BB S<
VE
›U
F=
<VE VCB
BI
[
S
@
CE A
RE
VC<
u
[
T=
IE >
E @=
<
[
CE G
? F>B
[
@ Cc
Q=
<E @ QA
<?
J=
IC U <=E
?
CB @ A
A
E > KD<
@V A =
A D= U
K< E
B X_ F>=
<<
A
F>= @
S IR QB
@A _ Q
I QB C< A
@ ?=
@C A
?A
I F V= >
@ D
@ =
D Q= E [
= <
I< E<
C @ >A š
R DB U
? T=
B D=
W
D [= ›
Y=
ID ? aU
= A IDB
C<E X_<=
break
while
l
ih
lp
E @=
R >>A
=
@
D Q=
_X=
IF
@
@A
<A
I<
?
C= A
@
@B
IC
S
E
>=
E>
<? A
@
do
else
break
while true
um
lp
do
if
qip
D\
<@
A
[=
E
S QB
n lo
<@
E @=
<@
CJ=
JK
(!
[
E>
CB @ A
[A
[
a != 0
u
n lo
$
Q=
IH
CB
<=?
P
E
do
f
gf
continue
I? [
@A =
>g Z<=
ih ?
E
l jk V @ >
kih
D @ Q=
=
n lo
if
do
IC
C< A
IDB
u
<A
KJ
WX >=
for
WW
do
gf
continue
l Cc
iDh k [=
ih
= _=
l jk DC @I [
@
ih k
Q
< <A
< A ) C A
TDE $ I? [
E CE =
E FA [ < @
>= @ Q=
? [= Q= Z=
DE > <E @ I=?
@=
@
E
CB @ A CJ= CB A
S @ DB
=? D @= D [=
CE CJ g
A
ih
I @ W E @= j
<= < l kk
< A I _ ih
E< @ n lo
@ D @ lp
p Q= = Q=
p
A q
p <E _ i l
g
nn < A
iCh k JK ih
A >= l jk
@ C? @= W_ ih k
Q= Q W
?A W
IC
< @ KDE >
E @= B @ >g A
CJ= t F>= ih
ž
@ J jk
g AU
for (;;) {
std :: cout < < " next number =? " ;
std :: cin > > a;
if ( a < 0) continue ;
if ( a == 0) break ;
s += a;
std :: cout < < " sum = " < < s < < " \n" ;
}
D= =
<A
DE
=
DB U
do
while
QA
2.4.7 Equivalence of iteration statements
P
D @= A < @ 
cU E E @= C Q=
@
@ CB A CJ= ?E
Q=
CB
ID< < @ < @
D E @=
C @A
ICB CJ= FB I=
V[
C [A @ A < @
R A < E
@=
<= @ <
D @= A >U KK GA CJ=
A
E !< = @
CB @ A _ [ Z<= A
CE =?
< @ D @= [ I
E @= C Z= @=
J A =? _
CJ= E I [
@
@=
@ W [ CB @ A D Q=
<A
? =
E
CB JC
C @A E A
I D [=
= B
< U
DB
E @ @ Q=
@ <
Q=
<@
C= JE
E @=
>= >
B [ C<= @
CJ=
U ?
_ @
@ >B
Q= C
@
<A
Q=
FB R
Z=
W V [ D @= A
=?
I
E
CB @ A
P CB @ A
Q=
while
l
k
_W ih
< A D @ Q=
E =
DB U
=?
< @ CB
E @=
C@
CJ= I A
=
@ <
@ VF
Q= =
Z= T
=? IE >
I CE
@
CB @ A R A
? A
CB <g @
C @ A ih
I j
= lk
< k
V F W ih
T= cU
IE > @ Q=
CE @ A DI<
R D
B
A IC
<p @ C
R [A
p
A
nn D @=
ih k E @
CE CB A
[ <@
C @ Q= E @=
CJ=
A
<@ @
continue
break
continue
 } w
{
}z ‡ {}
‘ zƒ y
| ƒ | ‡
|} {
z ‡ y~ ƒ
y ƒ „ ‡
| ƒ {
{ ‡‡
€ | ƒ
‡ |
€ 
} …
g
ih
for
KI A l jk
hk
E @= > W i
@ A
? Q= G=
CB @ _
D @ Q=
B
>
SB ^
C šA <E @
@=
@ CJ=
Q=
_ @
JA @
[ Q=
[>=
B›
U
E
BK >B
W <
E @@=
CJ=
@?
CE
@
D Q=
=
DB U
=
F=
I
<=
[
@B
CJE
do {
std :: cout < < " next number =? " ;
std :: cin > > a;
if ( a != 0) {
s += a ;
std :: cout < < " sum = " < < s < < "\ n";
}
} while ( a != 0);
yƒ
R C
W G _ CE A c
B
S @ A ID?
IB ?E
> I>
[ >
F=
K DE @B
B Z=
<<
A
F>= E
JK
@B X_ >=
[B @
@ Q=
Q
S< A B U
S >>B
@A C
QBI R A
@ T
DE
CE A
@
_ BU
E @ @ Q=
@ >B
Q=
Z = KB
KC RC A
=
B
<= D=
B C<
CE U R=
B
@ E
D Q= T= @ A
C C
= KA
< @= I
W
[ @
? F>B
I
<=
@B
<=
@
D<E
=
CJ=
E @=
<@
E>
>
D @Q
==
D @= A
E
CB @ A
tE
Q
<A
@
E @Q
@
S QB
S QB
<
=
C< A
B
@
@
? Q=
S
QA
<=?
CB @ A
<
@
Cc
TA
CE >=
W @
D ŸB
=
KD
=?
<= A
_ V>
S
=
<
S QB
IC U
?
CB @ A
E
V >>
Y=
I
std :: cout < < " sum = " < < s < < " \n" ;
} while ( true );
,
break
¥
™
˜
—
–
•
”
{y

}
‡†
…
…
|} ‡ †ƒ

{€}
A
ih
IC
l jk
I? [
= W
@A <
>g @
Q=
b
for
k
Dih <E @
= @=
DC @I CJ=
< @ _
) Z<=
$ =?
CE I
@
[ CB A
@ DB
Q=
IB D [=
D @= g
>B ih
KB l jk
D @= _ ih k
CJ A n lo _
E lp
W < @= qp
_ il
W
WW
b
0
100
for ( unsigned int i = 0; i < 100; ++ i ) {
if ( i % 2 == 0) continue ;
std :: cout < < i < < "\ n";
}
@B
CE
@
@
E @Q
<=
B
@S
V<B
I
I<
@A
E @Q
@
SE >
VE
<
=
DE
=
D Q=
T=
_ D=
S QB
u
E>
CB @ A
JI
_
? >=
CE
[
SB ^
D@
B
>
<A
CB
JK
CJ=
_ <@
E @=
<@
J
E
E @=
? >A
t
<G
DB
W
@ _
E @S Q
D= =
<A
TDE=
C<B A
KD
E
VC [
E
J? A
KD
B?
=
W <<
TC=
E
<A
J<
RDB
= [=
Cc
W
E
<
_ G
&!
$$
n lo
lp
pq
il
?
CB
CE @
S >>
DB
A
@
Q=
Cc
RDB
KD
_ @
CJ=
E @=
<@
A
_ [
@
Q
S< A
D
C @ AA W JE
R
VB [ @
I QB
S RI
>>A @ Q
=K G= KD Q=
? RB
CE Q D
R E
CA J
R
J
@ VE
Q=
KD S [B
RDB
Q
E E@
CJ A VIB
S
@ C
Q= E
IU @
D @I E @
= <B
TC= JK=
CB
AU _ @ A
@
D Q= @ Q=
= D
Y=
<? A
ID ID A
D =
C=
CJ=
VC @ > @
<?
CB C Q
== RE
[ X_=
? @B CE
CQ
< @ RE=
E @=
@
CJ= Q=
CI U
@ ?
VF @
CE CB A
Y= E >A
I @V
TA BU
CE >= @ Q=
@ KD
< A RDB
JK
D >= _ E
J
[
D @= A
E
CB @ A
JK
B
E?
S W
CE
@
D @B
K=
?E >
=
VJE
DB U V B
I
A
KDJ IJ >
BT E @
= W CB A
A
D< @ P
= R Q=
E C=
E [F D=
>A
@V A E >
DB @
Q=
D< @ J=
I?
D @I D Q=
_X= = A
S <
QA )
>= G= KC= t! #
RA ;
A @
< @ Q=
CI U KD
? B?
CB @ A =<
<B
E> DU
@V A S=
IC D
? CA
@
CE Q R A
R
= E
W [ KD
RDB
@B
W
_
@
< @ CB A
E @= S
B
CJ= I
>
p @ @[
C Q=
p KD
nn B?
ih k ==
<A S[
<
K GA @ QA
K
= @
[ Q=
CE T =
[g IE >
ih CEB @ A
l jk B
ih? k p U
B p
J= n
C< n k
Z = _ ih
@ IF
P C @A
Q
D< A @
= Q=
DB U
<A
JI JI
E> E>
CB @ A CR @ A
I
=?
Z=
R
@
_
W
DE >
I
? @A
VB
ID
K
DE
D@ _
B
>
<@
E @=
CJ=
<@
DB U
?
CB
E @= A
Q=
B
DK
KD
KE
C< A
B QB
Bm
?U
I Ff
@
E>
<B
@
Q=
ID F
C [=
CJ=
=
n lo
ik
lk
b
n lo
p lp
lp
nn qp g f
iuh k i l ih qip
l jk l
ih k
m
p
@ Q
IC [ CE T=E
[
CE [ @ Q= C<==
@
@
Q
@ ]A < @ DE @
>> E @= U
B
e d CJ= J
e
E
B ¡ DE @ IC U
D= Y== ?
< I CB @ A
E> TA
B > CE >= KE >
U
@ W @ CB A
Q=
<= ŸB B @
D
<@ = T U
E @= TB S= A
D= _
CJ= _
@ @ Q=
< @ Q=
CE
[
@ C <E @
R< QA E @=
[ CJ=
T= A
_ @
V<B
@
I
Q=
@ <
Q=
D U E @@=
==
<
[B CJ= E @@=
J <@ b
=
D=
DE
for
break
VB
I
K
K
>
Z= [
K
D=
C= A
?
=
CE
_
C [\
[
IB
CB A
W<
>=
S= U
Q=
JB D== <
@ < A
E
% < A
JK
CE R >=
[ I
! [= A
C >A
$ # =
DB U
DB U S
D
JI C A
@
E> RA
CB @ A R
W
BB š
P [
Q
< A ›>B
B
CJ=E W K
<
<
d
B QB
<=
@
Q=
>B
KB
@
E @Q
>=
E[
<
@B
@
m u
f
=
DB U
S=
D
CB
R
D Q=
<A
@
do
B
@
Q=
D @=
Q=
>=
T=E
=
CJ=
W @
E @=
<@
B
J<
@
U
C @A
CJ=
E @=
<@
@
U
@ DK
Q =
<A T
E< IB A
CE D<
Z= =
D=? DB U
JI
WX<= A >
E
CB @ A
tVE<
=
J<
<==
CJ=
E @=
<@
VF
E
do
S
Q
<
I QB
<A
CB
=
CE
CB [
V>
F=
<@
DB U
=
=
<<
@
D Q=
<A
Z=
KD
JK
C< @
TD==
JB
S= U
C >A
=
<B
?U
B
_ [=
u
m p
qi
l
f n lo lp
ik
lk
b n lo
g f lp
ih qp
i
l jk l
kih
m
_
lp
for
m
f
DB CE
R
Cc CA [
D A D
E
D= @ > =
B
J
K< < CE A
=? @ <
E @= &
S@
W
C
J
= = C
W @ c
<
@
I QB
Q
<? A
C >[
BS
EX_<=
S
?
=
? Q=
E>
G
<B
@
D @=
E @Q
IH
JC A
E @=
JK
<@
@
Q=
E @=
IB
CJ=
D @=
<? @
>B
KB
IE
@
C<=
E @D Q
B
KD=
DE Q
=
C<=
JC
A
<@
IDB
IDB
nn
ih k
p
l jk
k
uihp
ih
ik
qip b l k
l n lo
lp
qip
gl
n lo
R
Q=
<@
@
>
CE @ A
JI
]A
_
E @=
E
lp
CE @ A
<
E
il
?
CB
qp
n lo
=
D Q=
S<=
? Q=
@
@
Cc
CJ=
[A
_ V>
E @=
J=
J
CJ A
E @=
<A
K
™
˜
—
–
”
D @=
•
@
C Q= A
C
D=
B >B
break
I]
JC=
WE
SE @
=
[
B >B
WK W S
CA
TB
T= >
W [
IB
B@
KU
D=
C<B
E>
@
E<
@=
>
@
k
break
while
TCE RA
IH
<@
DCE >=
=
[
E
I FB
@
@
Q=
b
CJ= @
_ @ @ Q=
VB B
I [
C[
VSJE I
D JD F=
@= A <
@ S F=
Q= @
B U C==
S >>B
CA C
R E
while
C
while
b
JIB
CJ=
E @=
<@
for
>A DRE
G= I
S= U E
D= V F>
C >A E F
= ?[
<B QB
?
?U =A
B S<
[=
TD= ? QA
I< V B Q
< I
DJB < QB
=? I
B D >[
JK V @
? >A @B
E @= TE
B
Z = [ W [A
KD
= I<
<
CB< A E >
_ V>
<
CE D @ Q=
[ =
@ D
D Q= E=
= <B
< A J=
E> D@
<B E
<B B [= ¡
J= _ <
E @Q
R< A
CB
TC= A R A
CB
W
R Q=
S
I@
Z<=
K
CE >A
>=
uih
nn
p
p
while
bool b false
while b = !b
E
@
@
CA
E
D=
K
KE
B
C<
= [B
E @=
? >A
_ [
<B
JK
B
=?
DJB
E @Q
for
F=
Q=
<B
SJ=
continue
W<
= @
I@
<
B >B
G
E@
<B
J=
Z=
E
JK
>=
<
@B
<
S QB
@
E @Q
@
<=
B
C [= A
@A
D= \
K
K
I<
QA
<G
B >B
<
P
while
< @ IB
E @= @K
I
for
<@ E
E @= [
A¡
CJ= DC==
W @
C@
K E
B J=
C @= W m
@ B
E >A @=
? [= @
DE > E @ Q
E @
CB @ A S Q=
CA
QB
>=
ž i l kk <
@E
n lo @=
lp CJ=
pq @
i l DB U
SE< J<
= E
>> K<=
E< DE
@ E
Q= @=
=
VJE
b
y} 
}‡
y|
€ ‡
}

{‡

}
‡
y‚
}
<=
B QB
A
S=<
=?
SD Q=
Bf
@
b
y„ ƒ
_ G
E<
= [B
<
E
? F>B
while
{||

[
@A
cU
CA C
?<
E
KB
@ [
lp C Q= AU C dB =B
A
pq C A D= @ < A U
i l D= @I D [= A
DC C <
E @
[B=
< Z= I Q
C<
) =? < >
B < @ $ I J A
@? E
@ @= A
CB @= @ Q= CB A [
C
J
=
< @ B @B
CE @ A
@ E U @
<? @= @ Q= QA
E CB CJ= B <
I ? F>B
[ @
@CB AA D @= D @= W G
_ C
J
@
Q= J= A
C A C E @=
C E W< <
@
D= CR A
a E @=
>BB @ D @ Q= CJ=
K EQ S W
@
@
T= n lo X_<= A
IE > lp @ D vA
E @= qp Q= _ <g @
T
< i l DE ih
@<? A < A E A j
Z=
CB =? F>= l kk
ih
[ I
@CB AA @= < A <= A
C [ <= T
@
DB U Z= @B IE >
W @
E
& @=
@
Q= s _ [
n lo
break
>B WXJ=
KB C
c
D @=
[B
CJ A CR A
E @= _ <B
<
C ]A A
? <
= <=
@
@B
C< A
_
SB $ )
_
) C
$ E
p @[
? Q=
p CB
nn
[
ih k CB @ AA
A< D
T= = @I
IE > CD
E @= <
C [ $ )
Z= W @
B U D PQ=
S >>B D=B U
= X_=
[
D=
C
@ =?<
Q=
C A CB
while
for
‘
‡ {
…
‡…
VF
g
nn ih
k
_ ih l jkk
g W ih
ih
l jk PQ
k A
_ ih C<
if
}‡
z{
p
p
for
}w
while statement ⇒ for statement.
b
2.4.8 Choosing the “right” iteration statements
while
continue
continue
< _ @A
I QB C A
> B
?E [ ID
@I ?
E > <=E
V>
DB U @B
@
JE C Q=
@ CA
@ D=
Q=
<@ W
E @=
CJ= P
D Q=
@ =
>A DB U
G= X_=
t @Q @
< A Q=
IB
I @K
@
<A
if ( true )
if ( false )
if
R
@B
<
C >B
F=
@
Q=
x
K @V
=
B
U
E FA
>=
switch
break
switch ( x ) {
case 0: std :: cout < < "0 ";
case 1: std :: cout < < "1 " ; break ;
int
@A
break
<
= [B
_ il
qp
lp
U
default:
default:
switch
lp
CA
DB
=
[
A
R<
p
iq l
n lo
X_<= A
E>
CJ= W F= >
W @
_
@a
DS Q=
E @=
<@
B
>
D @= A
E>
<
TE= Q
@
Q=
<=
Q=
E Q>
>
@
<
<>
E >F=
S@
B
C
T
Q=
lp
il
qp
n lo
l jk
ih k
ih
m
gf
<? A
VC<
@
Q=
BU
S >B >
CA
R
$
@
Q=
C< A t e d
R e
I
ZWE @
!( = W < [= A
<
@c W
A
I< WW
<=
IU
>
@B
@
<= D Q=
? >= =
@ Z=
S @ F= < @ A
<
C== E
<=?
CJE CB
V [
E <=
DC @= > ? >=
@
E CB A
T= @ A
<
<@ E@
E @= @=
CJ=
CJ=
@
_ <@ C A
D @=
bCA
@I
A
T_ = @ A
ICB
if
DB v
K @V
WX=
E>
B
C UA
RD @=
E>
D @=
?
CB
P
@B
U
CB @ A
B
The switch statement.
switch
n lo
B
V>
<=
? >=
@
C<E
C=
D
V@
K
CB A
@
DB U
@
Q=
KD
B?
=
C<< A
R
CB
<A
E
>A
lp
@
IE >
=
qip DB @ B
l > gU
A <
I< E @@= ih
I<
l jk
E > CJ= ih k
V>
@
E S< JI
F? >B D Q= < @
= F=
G g ?
@ ih CB
E? @ Q j TD=
CB l kk @
ih A
CE @ A Q >= F
@B
< <E C
<T= @B E
D= F= C A
?
E > CB RD @=
% TD= E >
$ @ K @V
B FA XW=
U >=
@ @B P
Q=
Q
DB U
<A
W C< AA
J
?
CB
D@
E<
@
@B
@
Q=
n lo
B
D Q=
VS F
D
C @ AA
R
switch
E
o to
p lk
p lk
=
case
D Q=
@
@A
@A
EE >AA
int i = -1;
while (( i += 2) < 100)
std :: cout < < i < < "\ n";
TDE
S
=
RJ=
J=
<E
[
E@ W
@
F>=
W
SB ^
Q=
F=
?@
B
E
@A
Q
S[
I? [
=
KD
CE
I @K
IB
J=
<E
P
I
E
V >>
<A
JK
? >=
CB
D@
B
>
Y= [
CE @
CJ=
E @=
<@
for ( unsigned int i = 1; i < 100; i += 2)
std :: cout < < i < < "\ n";
<A
<E
Q=
B
CJE
KD
D @=
E @>
W
C<B A I @
KB D Q=
D= X_=
DE @B @ Q=
< C?B
I? ]
[
@A
Z = Q CB A
KD A
= <
< DJB
C<B A =?
D<E B
=? JK
?
B >A
E
JK _ @=
DE [
E C< A
T= @ A ?=
V> A
?@
[A B
?
I CJ F
A
@> =
@B <
IC R<E
C< A
D [=
C<E @ CJ=
@
[ CE
I[ ?[
= B
@B
JK
@ DE
Q= b
W
@A
Q
CE @
B[
F
CE @ A
?
B
S [=
CJ=
E @=
<@
simpler control flow
E @Q
@
switch
J=
@ > PQ= T
?< A
E
B <= XWI= >
C
J
JK E
DE ? @ P
= A D Q=
[ <B =?
@B U C
=? E E
E
E>
<B
BQ
U
F=
@
Q= < @ E
E
>
>
D @= A @= E F=
CJ= >
E
S< > @
A
? QA < @
Q Q= W
KE B U
K S >>B
D=E C
CA W RA
g
E
>E ih
F= j
C >A l kk
ih
n lo < A
lp T=
qp IE >
W i l E @=
cU C [
DB U E
C [
VE @ Q=
=
I<
D
Q=
Q=
R =
TC= A =? ¡
@
@ BU
QE @
@S Q=
= E
<
[= CR< A
ES >
CJ=
A
C @Q B @
K
D=
DE @I
E
CE > W CB @ A
I
J F= >
D _ <B
< @
C Q= A
@
Q=
B[
IF
VB @
I
?
CE
R
=
@D
U
A
P
Q
<T A
DE
CE A
@
<@
>>?A
CB
CE @ A
C<
=
< @=
[?
CB
D@
B
>
<@
E @=
CJ=
u< @
>=
G=
@
>A
•
=?
R
Q
D @Q
IB
DE >=
D @I
”
™
˜
—
–
`
D< @
I?
Q=
A
=
D= U
EF
>=
C< A
?
=
@A
E< Q
DK<
C<B A
G=
A
=? U
V? @ >
DDB
=?
_ @
IF
@
@
Q=
BU
S >>B
CA
R
TD=
K<
[ D=
; // null statement
else
std :: cout < < " Where do I belong ?";
@
JE
_ < QA
VB
I?
CE
<
C Q=
TD==
V
t IB
<G D
E=
IC
ID<
=
E
I FB
D@
I
? >A
@A
? F>B
Z=
K
W
CE
P
Q
<A
fewer state-
E @Q
if
@
else
@=
@ BU
Q= @
E >F= Q=
> J@
cU T Q=
@
D Q= IE >
= =
<
C< A RDE
B =
RDE X_=
== @ Q=
Z=
CJ= =?
@ I
I F CB @ A
@ ?
E CB
C @A
I
=
<
E
>E @@
F= Q=
> <
@ E @@=
Q=
Z= CJ=
=?
I @A
CB @ A J
? J=
CB [A
C @ A E @=
I V>
= BU
< S >B >
E@
@ CR A
Q=
2.4.9 Details
B
<@
@
U
T= \
C >A
=
C< A
< @=
E
B[
<A
@
E @Q
VB
IR
=
@
>=
?<<
CB
?
<=? A
B
u [=
@
D Q=
=
DE
C=
SB
<B
T= >
@
CE
?
IB
simpler expressions
<=
else
[ E @=
@
Q= CJ= W
Z=
=? @ A
I J
CB @ A J=
? [A
CB E @=
C @A V >
I BU
= >>B
< S
E C
D @= U R A
@ @ Q=
Q=
if ( true ) if ( false ); else std :: cout < < " Where do I belong ? ";
CE
i += 2
C
E B
DC @= > @
Z=
D @= A
E
E @ @S A
CB @ A _ T = A
< C Q=
< @ CB
E @= = @ Q=
CJ= E Q Z==?
<
W @ m @B I
I CB @ A
C dB <= D
=?
<A
E
D [=
Q=
DB U C f C<E
E
B
Z=
[ @
E @ Q D Q=
JK < A >
>= A E F=
<
@ @ W >
Q= Q= c
B U CB CB U
S >>B V > S=
C A R >= C
R
E
K IE > < @
=? A
@B
= <= <=
B B K
? U U DE
B
E @=
X_ [=
CE B @ Q=
I
[ < @ [A¡
>= [= A D=
I @ B C=
< U @
@
@B
unsigned int i = 1;
while ( i < 100) {
std :: cout < < i < < "\ n";
i += 2;
}
CE
CJ=
<
< @ E @@=
E @=
CJ=
CJ= C
@
@S ==
@A W < [
Qp
@c
p <==
nn J
ih k < @
E @Q
DB U
@
< A Q=
@ <A
Q=
JK
BK >B >=
KD
B B
?U
F>=
? QB A J
XW= B
SU
D
C @ AA
R
=
?A
Q=
K
VE
KD
P
for ( unsigned int i = 0; i < 100; ++ i)
if ( i % 2 != 0) std :: cout < < i < < "\n" ;
B
_
E @=
Q=
<@
@
S@
@B B
C >A
C [[ =
I <@
Q
JD F= E @
@
_ < Q=
E
IB
fewer lines of code
W
[A
E @=
V>
_ KD
CE =?
=
S [ CR [A
=
J=
if
Where do I belong?
J
Q
A
Where do I belong?
else
−1
K
if
DF
CE
?
D [=
<A
C dB
Nested if-else statements.
i
K
Q=
c
A @
>> C< A
C F= B
B E@
KD
IB B A
@KI D
?A
@ >=
D
C< A f S E
?
=
@ E @Q
? Q= @ A
CB <=
¡
[ =?
@CB AA t @
<A
QE AU
T< @ Q=
IE >
=
& D F
CE
m ?
IF Q
@ F=
AU C >B
@ R
Q= <
@B
@
Q=
D F IB
CE
? D @=
Q _
F=
C >B @
R D Q=
< =
S
for
for
while
I<
@
Q= C
CA CA
@I D=
A
T= @ A _ S
D
I R=
>= =
< A @@
@ Q=
E @ Q IB
@ @K
Q= I
@
P
@B
ments
if
if ( true ) {
if ( false ) {
; // null statement
}
else {
std :: cout < < " Where do I belong ?";
}
}
else
bool
default:
int i = 5;
>=
Q=
G=
@
>A
Q=
@
>
?E
B
? @=
nn
ih œ k
DB
p W
W
žp _
n m
_
@=
@B
CE
TD=
CB
[
žp[
bool
<A
ih k
nn
p
_m
p
<
$ )
DC @I
? F=
IE >
=
?<
CE
<A
m
DE f
@V A
W
=
TE= Q
CJ= KD
_ @ C=<=
< @ KCB @=
E @= A [
C@ @
CJ= R A ? Q=
@ B B
<p I @ JK
@ I
p EQ @
E
nn @@ CB @ A
kih Q=
W ? B
CB U
@
=  [A Q=
_ >> @
CB A dB
@
>
QE E >? E >
@
@
C< C Q Y<=
B RE I
C=
Z= @ =B ?
?E U =
V @ > A CE<
D < E
tI= @ B @B KE
? K
B ?>
A
@
Q= JK E
? >A CB @ A
[=
RC< A E @= B
D= [ @ U
< @B Q=
E @=
<@
= [=
_ [
@
? Q=
CB
=? H
W
D @I
=
<A
<@
A
IC >>
<B
T= >
W [
W
C< A
B
V= @
D@
=
VE [
DB U
I<?
KD Q
B
F>=
J<
›
Cc
@B
B ¡ JE? @
D= C AA
E
JI? ¤
IE
Q
S >B D >
D= B [
E < f
IJCB <@ DB U TD= B ¥ m
V D= ¡
[ =
? A [
I
>
KD @ _ S
B
F>= ? QA
J< < QA
m
D JI?
B[ Q
< VF
<E
A Q
[ <A
@ C< @
QE E
@
š DE [
E @Ÿ < [
Q= f
Q=
JE I
? @ A <=
< [
@
I
<=
dB
>>
U
TD==
VC
I
J F=
D
B
=
?
C=
YE @
Q=
C< A
D=E
K
KE
W
b
<
JE
@
Q=
CE A
DE
IC R
JIB
Q=
EU
P
TE= Q JE
@
Q=
C= F= J
E@
?
B¡ A
D= CE A
=
[ B
@B @
CE DE Q
VCB dB
>
S= E @ >
QB f
KD `
TB= D<B `
Sm
[
DK< A QB
TB= < @I
< = [A
@
? Q= [A
CB C @ A
=? H @
D @I Q=
= `
@
E @Q W <
@ ]=
C Q= TD=
I
E>
J F= KD
D A
=
<
dB
>
G
@
Q=
CJE
D= @B
?E F
<
B=
R=
?
C=
I
Y<=
Q=
E @>
P
@B
F=
TEB
A
V >A
E<
=
S
@ =
?
CE
D= U
@B
E
ed
e
=
VJDE
$
1 _
& #
=
D= U
< _
@B
E
E
DJ=
DE >
E
CB @ A
B
U
@
Q=
<E
JC=
? [=
? [=
DE >
E
CB @ A
B
U
@
QA
C<
< E
I QB WXJ=
? >[ B
CB DC v
CE @ A _ S B
DE > I<? [
=
CB [ I< Q
V > @F
CB >=
? @
WX= =< A
VF
@
Q=
BU
S >>B
CA
R
D
tI
>=
CE
V
? [=
DE >
E
CB @ A
? [=
J=
E
C Q=
b
E
J›
D
KD š
RB
J
R
Q=
Q=
B
=
B
C<B
J
KD
U
A
CA
@
F>=
Q
CE @ >A
P
@
C c @ AA C Q=
B E= >A E
@
J=
D Q= S [
< A @A E U
@I Q D @=
E @A
CB @ A <= > @ Q=
CU
< A C
@A @ A
QA C
>
VJE C< >A = A
_
X
=
D
KE Q
KC J= =
= C D= U
CE A <
@ R @B
IR QB @ @
Q Q=
Q E @ A ? [=
@ <@ D >
E @ Q TE E
@ SI= > CEB @ A
Q=
KE >>A C A
K
C
D=E I F= = >A
CE C
W
?
= C [=
B \ C dB
U =
CE _ C [ Y<=
I
E E C=
J= C [ @
CA B _ V>
W @
@
Q=
<A
< A IC U
@B [
E
? [= CJ=
A @
[= E
>
I f KD
C< A B
R F
>=
CE J
C< A
RE >
DB @ Q=
@A @
Q B Q=
D
SJ m V
B
Q= ? U
@ B
D Q=
JK
RE I
@
TC= A CEB @ A
W
KD C
RDB c
DB U
E J
J E>
V>
E Q> K<
@< =
D @= f CRE GA
CJ A _
@
E @= Q=
<S m KDB
C Q= F>=
J
=
F=
A
p
CB A
@
<== f
? ]=
CB @ A
“
“
`
K
l jk
iDh k
=
ih
T
<=
QB
nn
ih k
DE @B
if
V @>
JK
I
Y[
IB
=
?
C=
I
Y<=
E
<A
?
1
?
U
f
g AU
p
@A
@
CA
@B
E
KI
n
J
E
D¤
RDB
B
>B
KB
E
_ D @B
D=
D=
KB
@ BU
Q=
_
! d
@
Q=
! ## KD
=?
ID
D<B
@B
ed
@ _ e
E @Q
Q
E E
S >>B [
SE
I< =
< CE G
@B =
< A <<
JI DB U
E @= > TD=
V?
<@ B
E @= JK?
E
CJ= @?
B
< @ [=
VF C
Z= E
DK ? [
= E
<
C<B A JI=
< SK
P @A
Q= Q
J?E
C QA
_ =<
E
W J< I F
@
@
Q=
RDB
KD
e
ed
The Collatz problem and the ?-operator.
@
QA
TD<
E
CE A
@
F=
DW @@=
VB
I
D Q=
A
k
tih œ
p
nn
U
Q
<A
! @
ZE @
B
VC<
for
S [=
l jk
ih k
p
g
ih
p
λ
KB
D= _X=
g
ih
l jk
ih k
A
C<E
Z=
KD
=
<
C<B A
B
U
E
K @V
S=
? QA
Q
S @A
E
K<
CE A
IU
V >>
R
CA
ID P
Q=
D @=
P
TC= A
CA
KI
@
KD f
RB
D
E
J
<@
E
W @= m
RE
@=
CB [
I
=?
Z=
i
E>
nn
IE > ih œ k
E @=
W [ CE
cU [p
D @A
= p
DC @I nn
ih k
<
& D
_ E=
p Z=
KD
p =
nn C<<B A
ih œ k W
<
<= A P
T Q=
IE > <=
E @= CJ
_ [ E? @
CE < A
[ <A
@< A E<
T BU
IE > S >>B
= W
D< A <
= Dv
DC @I _ < A
@
= g
h
i
[
E< l jk
@ ih k
Q=
T
<= A p
while
@B
T
IE >
=
B
U
@
? Q=
[ B
@< A JKB
T
IE > < @= A
= Z=
D< A KD
= =
DC @I <<
CB A
= W
W [
P D @ aQ=
Q= S
@B
C G= <= A
T=
IE >
E @=
_ [
CE
bJ
B
? F=
S
A
A
>=
DB U
E [F
? [=
IC<
J
B W
F>=
_ JE
IF
@
E>
<B
@B
KDE
RB
D
E
CJ A
C
VE
B
@
D Q=
?
B
J
CJB
KD
RDB
E
J
CJ A
R
CE >
R
I
R
WXE=
RDB
KD
W
WW
@A
I[
<=
=U
CE
<E
E
T= @ A
<
@B
F=
[A
C< @ A
R
I
<A
Q=
_ [
K
VE >
E>
CD @=
S= U
_
W V>
F=
I QB
<
=
=
D Q=
D Q=
@
[
>
P
Q=
Q=
IB
@
DB v
SB < @ I @K
E
T= @= @ A
_ D= CJ= <
@ @ uB
QA A D U
K< SK<B
SB
D= D=
IU @
E > C > Q=
<B A IB
JE @ Q= I @K
G= C
< <= < @ A
<= u
@ B
E @ Q D @ Q=
< @ @A S
E @= E <= A
S >B > S
CJ=
=
< R
< @ @ Q= = @
DE Q
[ @ Q=
[ D= A¡ IB
D @B C= @K
= @ I
E
@
CE [ CDE @= >
DD= [ E @
DB T = A W
<
@B
<
DE Q
=?
B
XW [=
CB
WX=
S
KD
P CB
= XW=
DB U
= S DY= U
= I
C=
CJ= @
KD
CB @ A B
F>=
J
<A
@
D Q= E @ Q
C
B
=
DB U =
? DRB U
B =
JK < @
>= @B
C @= K
= I
< @
C<B E
D Q=
C Q=
D T=
D=
E@
D Q= @
D Q=
@ =
CE Q D
E=
CB
V>
W
E
switch
? [=
n
ih k JC=
CE
DE R A
=
T= @ Q
IE > E @
E @= E >>
=
[ =? ¡
<B @
gU
ih
l jk
ih k
DE
=
KD
B?
=
<<=
[
F=
BD U
=
=
@A
D Q=
p
? >=
CE
@
EF
Q=
Q
CE @ >A
R
KD
@
[
E @Q
@
TB=
KD
R
CA
ID P
RE
C [=
= = \ PB
A C[
C< G A E? @@
SB E E
C <= G
@
Q=
E< CJ A KD
E E> B
& , KKE >= F
! D=
#
J
; E DB U
( š J
CJ A E >
! # A _ V >
J @ Q=
E>
KD › D RDB @ A
<A
E Q
J J
CJ A E @
R Q=
CE > JE
R ?@
I C AA
RE E
u= C>
KDE E
RDB ID P
C
E RA
CJ A f
@ “
Q
<A b CE > m
b
I
R
else
VB
I
C >A
=
VF
C >A
=
<A
=
KB
JKI
 DR
E @ Q IE
= [B CJ=
<
IC š <? @
C
? [= E
A E>
E [F <B
>= F=
› I
JC= <=
E [
@B
KD
= B
T=
TE= Q @
Q=
C<== <
E
E J=
<A <
JK E @
>= @=
BK >B CJ=
@
DB U DB U
J=
<E
break
?< [
B
KD
?U B
B
if
CE
[
$$
switch
@B
i
E<?
[=
E<
CB @ A
T=
B F C [= A
uC = >=
#
E A K< % JK
J<? ? U A KD I J @@
@=
B
D
CE _ E @
RB @ U E @ Q
@ D CEB @ A
A
I H D Q=
_ [B < A E m CJE @ A
Z=? @ >A < A W J< D @ Q= V? C<E
G= JK
=? CB? C A
K=
? >A
D C
C
J
@ E? A
CE = @= \A
@ C _ @V
B KD @=
E @ Q = QA I
@ RB >B
@ C > DC P
F= D KB
V Q= RE R A
CE E _
I I
Q
I< RE J?
RE > W J< TCE=
E > _ = CE
B
D
C
VC >
Q
ID P A
@ A ? [= S @
== C =<
=
Q
RA D
J [A
E=
[
@
E
E
E @ Q >= F _ =<
IR Q J?E SE
? [= J= C A
C= C QA [= A
A C [=
I =<? V >
[= E =
?
< < @ CB [
J F= CE ?E
D
@ Q
=K
Q= E =
B [B
@
@=
C
UT =
EC Q> A f !
D= TD= [
R @A E
V V JB
K ? [=
KD @
KD DE A
[=
A CR QA B >
B ? @ A [=
JA
F>= I @
?
T= @ A @ Q B U
DE > Q=
J
E
Q
DB U
KB @ JKI
JB CE @ >
D= e d
R
e E@
[= A
bE
b
>
RDB
KD
switch
=
?<
JKI
J=
@A
<E W
@
@ I
C QA CEB @ A DC P
RA
=
_
C< A E >
@
D @= JB Q=
[=
J< ? > DJ= B E ?
? U >>= C A
B [ E
JKI b ?
?E > JE
E @@ I @ Q=
CB A I >
W< J
E? @
E
K > C AA
BS < E
A
W D= @@I DC C >B
P = B
Q= [
IB d
ID dQ _ @ ID? Q
?
Q
b Q < A Q f
ID P
C A JB `
R [= >
J?E
Q=
[ J=
m
@ CB @ A
<
DB U
@
E @Q
The Halting Problem, Decidability, and Computability.
KB
@
E >A
E
VD >>
R=
DE
C< A
DE @I
E @Q
@
IC U
?
CB @ A
B
?E
=
K >B
T= [=
C >A
=
b
VF
bC>
A
=
KE
KD
B
?
W EQ
Cc
S
i
=
@ A
D Q= C<
E @Q = A
DB U @
KE Q = Q=
KC
= [B ( #
=
C< A C< B
@ C@ BU
Q= ? A @
B U I > Q=
S >>B [= ? [=
CA @ D>
R Q= E
?
B I U CEB @ A
[= >> _
D U C >A
RE X_= DE @= U
CJ= I F @
_ @ CB @ C Q=
IF V> E
@ @ J=
DB U Q=
C @I KDE Q
E
E @= < @ K<E
@
D
V > E K=
@ CR @ A D=E
Q
<A D W [
?< A B U
CB J P
Q=
< A W KB
<C @=
P C @=
@S Z<= QA @
EA
@ A K ?< >
QB CE > B
ID A K
< =
whatever
K
B
C @=
K
R
CA
V
@ <A
Q= Y=
<A I
< TA
<@
E @= CE >=
< @
@ @B
E @Q I
DP
TD= š= CR A
1
A
I@
U
@=
[
[ VF
E<? E
B ID P
JKI CR A
E @ F J?
>= E
› C QA
@ W=
Q
<A ›
<@
E @= < @
CJ= D Q=
=
@
C< A C< A
B DB
@ R
E DB A
@ B
DB Q= I
= <
J C [=
IF \
@ @A
E CB A
VK Q B
B SU
@
Q= Q
< A E@
< A
@ C<
E? @ Q š
CE DE @I
C
B VE >>
@
KI
x==1
TE=
D
BQ
?E
B
JE
@
[=
DE
R=
D
01
C [= \
KD
KE
Q=
JE
F=
x==0
switch
A
C @@= C<
RA
E<
B U @ Q=
S >>B C?B
W<
[A W
CB @ A
S
Point of declaration.
ID a
?<
JKI
DB U
? š KJI
B D @=
B
J
? @ A DK
B
E >? TC=
=
DB
@ C= A ? @ A
EF ? E _
>= = W V >>
V F @ Q=
E D @= <B
ID P
U
C A J @B
R [
_ VE
J?E (& @
C QA Q=
= % VK Q
› I B
Y= f <= @
I [ Q=
T A S << A
CE >= @ A Q
QB C<E
_ V @> I @ B
@
E ID U F=
e d D @ C=
e Q=
Y
KD I K< [A
RB E DB
D >A T
?
E \ W=
W J m E@ C [
CB A c
< A @ Q=
E b
V
VC<
CB
default : std :: cout < < " whatever ";
=
<A
E
C >A KJ
W= >
? A\
P E
Q= CB @ A
D@ _
I =
@ TC=
Q
<A A
@ U
E @ Q ? @ Q=
@ B
Q=
K [=
CB A A
<
B @ I< A
U @
? [= VE F>
DE > DB U
E
CB @ A J
E
B @@=
U C[
CA E
S[
=
CB
V>
TE= Q
CB
=
? [=
DE >
E
CB @ A
D=
K
}
int i = 5;
{
int i = i;
}
i
5
1
500
n
for ( ; n > 1; std :: cout < < ( n % 2 == 0 ? n= n /2 : n =3* n +1) < < " " );
“
™
˜
—
–
•
”
>=
E @=
unsigned int s = 0;
do {
int i = 1;
if ( i % 2 == 1) s *= i;
} while (++ i < 10);
f
“ mf m ! #
“
m
mf
f
49
9
4
$
A
;
! #
$&
$
%
(
Q=
@
?E @
E
U
A
IC U
?
CB @ A
JCE
E
B
Q
<A
<@
<
CB
J
D
=
D= U
<
@B
KDE
RB
(D
;
( #
J$
D @=
P
C
E[ SA
CJ=
? QA
E @> Q
<=?
CB @ A W
D<E E
= D @I
I
<= E
W [ _ V >>
CB
V>
@
Q=
CI U
=
=?
Q=
D @Q
==
K
B
<<
A
VC F>
=
< @=
?[
CB
D@
B
>
<@
E @=
CJ=
<@
KE
K
D=E
@B
;
R
KD
@
[
KB
D=
E
CB @ A
<
? [A
I<
<<=
C[
K
I
C [A
2.4.11 Exercises
N
& )
$
) !
! # !; # $
& !#
Exercise 28
E
>=
@
W <G
E<
R
TC= A
DB U
J<
RDB
KD
JK
<A
[=
RC< A
f
m
A
K? [
A
G
@
Q=
CB
=
@
E @Q
CE
<@
CJ=
E @=
<@
D @= A
E
CB @ A
f
? m
B
D= U JKD
E
EF =
>= @ Q=
?
Af
CE U B
V Y [=
um I
E>
@V A
B
S @U
RB
TC= A
=
DK<
>
[
f
_
_
B D ¥m
@ =
D Q= DB U
S@
B IJ >
< @ E @=
E @= R
E
CJ= TC A
=
u< @
V
B
@
Q=
U
TA
CE >=
V @>
I
C< A
R
CE
I
Y= @
CJ=
E @=
<@
DB
do
!
`9
%4
=
C<E
K @V
? A\
=?
K<
E
_ [
@
D Q=
=
I<
@S >
IB
while
&
[A
#
_ @
E @Q
_ <A
##
Q=
VS G=
DB
@
@

@A
for
#
#
$#
& $ %
(
#
%
(
b
;
b<
@
TCE= Q
Q
I QB
U
u
DE >
E
CB @ A
? [=
RE
TC= A
B
=
KB
?< [
[=
CJ A
=
? [=
DE >
E
T= @ A
D
R=
CB A
CE
D @=
m
f
Q=
@
\
u
C [= A
@A
D= \
TC= A
RE
DB U
? [=
DE >
E
CB @ A
R
C QA
J?E
@
[
f
m
C
m
f
E
>=
uJ
RDB
KD
JK
<A
C\
[
Kf
B
C @=
@
EA
C >A m
C\
@= A
>B
KB
C< A
RE
TC= A
u
f
[
CJE
R
CA
ID [
KE Q
KC
=
<
E @Q
Z= [
K
CE >A
S
E
>=
<A
RDB
KD
JK
TC= A
RE
C<E @
D [=
Dm
@A
Z<= =E
=? [
I CE
CB @ A IC [
“
?m
f
[
DB U
VC<
?E @
? @A
?E >
DDB
=?
C@
=
<
C<E
m
CB A
? Q=
@
IB G
RE
K@ T A
B C=
<<
A
F>= < A
DD= JK
DB K >=
D
u < RB
D
E
J
f
E<
[=C
\
=
[
F=
S >B
K
ID [ D< @B
tV
P
JK Q CEB @ A
_ >= < A W
@A
CA A
<
<A
C [B
E>
<B
=
K
VF
B
DK
<< A
=K
F>=
C=
@B
C [A
R
C [= \
@
=
Q=
TD
E
VS G=
E FA
DB
>=
S<
[
@A
Q
? >B
E>
@B
?<
@
Q=
KB
=
TD
E
@
E @Q
E FA
>=
TE= Q
? [=
DE >
<@
E? @
E
A
CB @ A
W
D< @B
RE
DB v
=
E
Z=
Q=
@
@=
QB
>=
@
@
Cc
S Q=
B
= [B
C<
E FB
T=
>>
=
ID [
E
CB @ A
RE
D< @B
I
E FB
CB A
<<
? [A
I<
P
>=
WW @B
W
F=
[
>
EF
I QB
<
?@
IA
_ DE >
VB
I
DE
K
Operational.
Exercise 29
do
2.4.10 Goals
49 (
J
@
SE @
=
e
ed
0, 2, 4, 6, 8
;
@
@
x
_
=?
CB @ A E @ Q
V
>= IB
@<
@ DE= >
Q=
DK VE [
RDB C
G
E SB
I
CA
<@
CJ=
W << m
IE
D
J F=
@
Q=
@ DE [
Q= [
D \ =<
< @ <B
U
D @= A D
=
E
CB @ A JCE
A
<
P @ Q=
Q=
E FB <E
T = J=
K ID [
=? A CR A
=
B E
? U >>
B D @= A
S [= E
@
A CB A
>> _ <
@
D Q= CE
= [
DB U
= A
<
IB C A
@KI @ A
A
@ E >A
@ =
Q= [
Y<= @B
I C= !
?
= !
_ CA
Df
=
J= W
B
TU
IE >
=
<
i
! #
$&
R
? @=
C @A
[=
U
?
I
@V >
B
[A
U
[ E @=
@A
CJ=
<@
E @=
<@
>=
SB B<
U
T= IC U
_ D=
[
@ E
Q= CJ=
T
@
IE > E >
= @V _
A K
IC< =
@
Q=
C [= \ C A
= @A
CB [ E >A
T
V > IE >
AU =
J
E< Q VE W
IE F=
@B IC
JE [=
? @A C \
=
D< @B _ [
RE E
= C< A
DI [ @
Q=
E
CB @ A [=
W
b \
E FA
=
=? A
<A
JK
]
B E@ V >
? U ? @A
B T F=
[= DE @ Q=
A A
Z<= E F>= Y<=
=? < IC=
I Q ?
@= TE= =
uC [ F= B
A C= T = U
Y C=
ed I C
e A I
@=
@ I J
Q=V <= D F=
I
DE C >U <
= A
>= _
<< DB d
A U W
JK Z=
DB
E
CE @ JK
@ >=
? @B
ICB
@
S QB
B
C @= U
K
for ( int i = 0; i < 5; ++ i ) {
static int k = i ;
k += i;
std :: cout < < k < < "\ n";
}
u< @
CJ=
Q=
while
CJ=
u< @
<@
@
Z<=
CE
JK
=
IH
DJB
S@
B
=
W
E
A
CB @ A D
vB
TD
C
k
E @=
CJ=
[B
[
[
_
=
DE
D Q=
P
C
\ c
>= > ?
S [ CB
D@
@A E
Q _<
E T@
D= š DE
B EA
B › F>=
U S<
@
Q= @ A
KE < Q
KD @
E
KDB ? @ A
E @= A D< @B
RE
K @V =
W=
ID [
E
CB @ A
DE
=
SE >
VE
<
:
!#
static
<@
break
E @=
<@
B
=
F=
SE
DE
for
E
CB @ A
QA
W
WW >[
I QB
<
_
<<=
?
C [A
f I
W @
t < QA
m <=?
< @ A CB @ A
W
VJE C
B?? a
=
ID B
CB @ U
V > Q=
CA J
<A
E @
IC U Q=
?
CB @ A
W “
CB @ A
? ]=
return
D @=
_ >=
CE
S
QA
CB
_ @A
VB
I
K<
@
@ JA
@
W @A
B
@ SB ^
Q=
IH
JK
<@
E @= @B
@
CJ= Q=
C=
@
IF B[
U
C< @ A @
? ? Q=
= DB
@ D=
Q
<CB A K<
CB
=
C
D< A R [A
DE
= IC U
VC > ?
== CB @ A
[= FB
[
CE f W V [
[ P
<B Q=
B
SJ= @
D Q=
E @Q I H
[
? A JK
I <@
@ > E @=
@B
I CJ=
<= @
m <A
int x;
UA
[
_
CE
K
B >B
@= A
C\
CA
else
B
continue
CE
U
TA
CE >=
?
=
B
U
DB U
I
CE U
m
=
k
W <@
@V
E >A
<B
? @A
Y=
E>
B@
K=
CG
SB
if
I
IH
R[
=
@
? Q=
B
Y [=
@B
CJE
@I
K=
?
CB
? Q=
@
[
D [=
C
Im
@
ID [ C<E @
Q=
E @ [ VC<
CB A @
ZE @
u ? Q=
CE
CB
?
=K
[
<=
@<
CJE
? F>B
?@
_ G <A
B
<=
? >= W U
W
CB @ A W
_
D @= A _ E
CB @ A
_
_
? [=
DE >
E _
T = @ A CE
D
[
R=
CB A
_
<@
E @=
?<
KB
C
J
=
X_=
CE
u< @
[
=
RE
D< @B
S
0, 1, 3, 6, 10
EA
<=
[
?
CB
? Q=
[
Q D [=
BK >B <
C@
u< E
C
Im
Jump statements.
D @= A
ZE @
CE
@
C<E @
D [=
I<?
“
goto
B
DI U
D?
@
Q=
VC<
@
CG
SB
m
IC m
Dispositional.
E<
E@
¥m
CG
SB
Static variables.
static
# include < iostraem >
int main ()
{
unsinged int x = +1;
{ std :: cin > > x ; }
for ( int y = 0 u ; y < x ) {
std : cout < < ++ y;
return 0;
}
™
˜
—
–
•
”
Exercise 32
mf
f
m
# include < iostream >
int main ()
{
int x ;
std :: cin > > x ;
int s = 0;
for ( int i = 0; i < x ; ++ i ) {
s += i;
x += s / 2;
}
std :: cout < < s < < "\ n";
return 0;
}
Exercise 35
Exercise 34
%# )
(& ; ($ + & & %
$ &
&! )
1#
! # ! ) !#
$ # !#
& #
(
1
f “ $ #
mf ¥m f %
m : #
$ '
#
)
&
#
$#
!
)
%
!
!
( %
$
&
$
unsigned int n;
std :: cin > > n;
int x = 1;
if ( n > 0) {
int k = 0;
bool e = true ;
do {
if (++ k == n ) e = false ;
x *= 2;
} while ( e );
}
std :: cout < < x;
n
x
m
!# #
& !
#
& &
!
& &
(%
$ # $
! $ #
;& &
&
)
& $ # ;
$# (
( ;1 #
!
%
f mf fm : $ 0#
! Exercise 33
i
“
#
;1 #
(
;
$
! N
1
!#
)
!
$# #
;
& ;
& (
;1 #
)
#
$
;
1 #
( #
%
) ( ! # ! #
f “ ; #
mf !
!
m $ #
$
!#
# include < iostream >
int main ()
{
int s = 0;
{
int i = 0;
while ( i < 4)
{
++ i;
int f = i + 1;
s += f;
int s = 3;
i += s;
}
unsigned int t = 2;
std :: cout < < s + t < < "\n ";
}
int k = 1;
return 0;
}
f %#
mf #
¥ m !
f m )
! #
(&
'$ # % ;
(
%
; ($ + &
& 1 #
! & !
$ #
&! ) ! # #
(
) 1
$ # !# #
$
& :
mf
%
!
1; #
x s
!#
($
%
& )
$
!# '
& " $
% !(
) #
49 b 1
! & % 49 $
# ! # )
"
4 $# "
9 1 !
“ & 4 9 %
!; #
)
$ $
1
;
#
(
& ! #
& $
f ) )
“
mf $ :)
m Exercise 31
!#
Exercise 30
# include < iostream >
int main ()
{
{ unsigned int x ; }
std :: cin < < x ;
unsigned int y = x;
for ( unsigned int s = 0; y >= 0; - - y)
s += y;
std :: cout < < "s= " < < s < < " \n";
return 0;
}
# include < iostream >
int main ()
{
unsigned int x;
std :: cin > > x ;
int s = 0;
for ( unsigned int y = 1 + x ; y > 0; y -= x )
s += y;
std :: cout < < "s= " < < s < < " \n";
return 0;
}
¥
™
˜
—
–
•
”
&
*
!#
n=9
m
f (!
"
#
!
( &
(
& %
& !
$# &
f ! &
m
$
&
! &
$
) !
n==10
n==2
[1, 50000]
n==2
$
dec2bin2.C
n
dec2bin.C
1
(
;
#
#
)
&
(
)
!
;1 #
!
f #
&
m
( %
&
!
n!
n
!
!
%
!
! #)# ( ;
" $ # 1! #
!
&
&
! &
&$
(
( %
)
$ # $ #
4
& n
n
1011
$
( %
&
#) $ K
D=
=? U
@
; ## #
$
&
) $# !# ;
1 (
$ 4 $
$ !
$ # #
&
9 ( $
" !
) &
! &
(
& %
& !
$# &
f ! &
m
$
&
1101
& n
perfect.C
($
(
;
#
cross_sum.C
n
) $! #
! (
)
&
4
&
#
$# (
9
; ##
$
)
! %#
)
n
;
;
;
#
(
$&
)
fak-1.C
$#
&
( !
" $
!
$ # !
(
!
$
$ $ %
$! # $& J
!
n = k , s.t. k<n ∧ k|n k
12 < 1 + 2 + 3 + 4 + 6
P
"(
n==11
F>=
$ # ;
! # (
!
$
"
n
$
%#
n
$ 7
Exercise 41
( %
)
) *
1 # !
$ #
&
# " $ (
%
" $# ¢
£
$#
Exercise 39
Exercise 40
;# $ # #
&
) !
& # ;
$ # (
$ 4
$ !
#
&
$ # $
!
9 (
" &
) !
&
(
%
& !
& &
$ # & $
! $ # n==112
&
!
&
)
Exercise 38
) ! %#
!
n==11
;
Exercise 37
,
! Y
b
$ I=
C=
<
! KDB
! Exercise 36
n
!( #
&
n
$$
#
& !
& " $ 1
! #
& " ( % #
) ;
# !
! #
$ & (
! # $ ! !
: &
& !
!
!
$ #
#
% ( #
)
1; # ;
! (
n
01
n
1
n
28 = 1 + 2 + 4 + 7 + 14
n
10
2.4.12 Challenges
n
N
$ &
(
(
;
&
$
( %
&
! $ %
;
&
# include < iostream >
int main ()
{
int x ;
std :: cin > > x ;
int s = 0;
int i = -10;
do
for ( int j = 1;;)
if ( j ++ < i ) s += j - 1; else break ;
while (++ i <= x );
std :: cout < < s < < "\ n";
return 0;
}
™
˜
—
–
•
”