while ( Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ do ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ while (Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) for ( ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ opt; Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ opt ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
case ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ : ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ default : ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ break ; continue ;
return Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ opt ;
goto ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ; ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ : ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²: ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ, ΠΈ ΡΡΠΎ Π½Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
3.3.1 ΠΡΠΎΠ²Π΅ΡΠΊΠΈ
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ if, ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ switch:
if ( Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ if ( Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ else ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ switch ( Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
Π Π‘++ Π½Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΠ»Π΅Π²ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ
== != Β« β= β Β»=
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π»ΠΎΠ΅ 1, Π΅ΡΠ»ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΈΠ½Π½ΠΎ, ΠΈΠ½Π°ΡΠ΅ Π²ΠΎΠ·ΡΠ°ΡΠ°ΡΡ 0. ΠΠ΅ ΡΠ°ΠΊ ΡΠΆ Π½Π΅ΠΏΡΠΈΠ²ΡΡΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΠ‘Π’ΠΠΠ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΠΊ 1, Π° ΠΠΠΠ¬ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΠΊ 0.
Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ if ΠΏΠ΅ΡΠ²ΡΠΉ (ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠΏΠΎΠ½ΡΠ΅ΡΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅, ΠΈΠ½Π°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅ΡΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ (Π΅ΡΠ»ΠΈ ΠΎΠ½ Π·Π°Π΄Π°Π½). ΠΡΡΡΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π΅ΡΠ»ΠΈ a ΡΠ΅Π»ΠΎΠ΅, ΡΠΎ
if (a) // ...
ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ
if (a != 0) // ...
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ amp; amp; !! ! Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ . ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ amp; amp; ΠΈ !! Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΡΠΈΡΠ»ΡΡΡ Π²ΡΠΎΡΠΎΠΉ Π°ΡΠ³ΠΌΠ΅Π½Ρ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅Π½ΡΠΆΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
if (p amp; amp; 1Β«p-Β»count) // ...
Π²Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ p Π½Π΅ Π½ΡΠ»Π΅ΠΌ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ 1Β«p-Β»count.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ if ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΠΌ
Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ if. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
if (a Β«= d) max = b; else max = a;
Π»ΡΡΡΠ΅ Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠ°ΠΊ:
max = (aΒ«=b) ? b : a;
Π‘ΠΊΠΎΠ±ΠΊΠΈ Π²ΠΎΠΊΡΡΠ³ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ, Π½ΠΎ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°ΡΡ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ switch ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ Π·ΠΏΠΈΡΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² if. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
switch (val) (* case 1: f(); break; case 2; g(); break; default: h(); break; *)
ΠΈΠ½Π°ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ:
if (val == 1) f(); else if (val == 2) g(); else h();
Π‘ΠΌΡΡΠ» ΡΠΎΡ ΠΆΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ (switch) ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΡΠ΅Π»ΡΠ½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ²Π½ΠΎ Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΡΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΡΡΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ). ΠΠΎΡΡΠΎΠΌΡ Π² Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ switch ΡΠΈΡΠ°Π΅ΡΡΡ Π»Π΅Π³ΡΠ΅.
ΠΠ°Π±ΠΎΡΡΡΠ΅ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ switch Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠ°ΠΊ-ΡΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ case. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
switch (val) (* // ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ case 1: cout Β«β βcase 1\nβ; case 2; cout βΒ« Β«case 2\nβ; default: cout «« Β«default: case Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½\nβ; *)
ΠΏΡΠΈ val==1 Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ
case 1 case 2 default: case Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
ΠΊ Π²Π΅Π»ΠΈΠΊΠΎΠΌΡ ΠΈΠ·ΡΠΌΠ»Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ. Π‘Π°ΠΌΡΠΉ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΏΡΠΎΠ± Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ»ΡΡΠ°ΠΉ β ΡΡΠΎ break, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·Π²Π°ΡΡ goto. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
switch (val) (* // ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ
case 0: cout Β«β βcase 0\nβ; case1: case 1: cout ββ Β«case 1\nβ; return; case 2; cout «« Β«case 2\nβ; goto case1; default: cout «« Β«default: case Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½\nβ; return; *)
ΠΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΠΌΡ Ρ val==2 Π²ΡΠ΄Π°ΡΡ
case 2 case 1
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΌΠ΅ΡΠΊΠ° case Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΊΠ° Π΄Π»Ρ ΡΠΏΠΎΡΠ΅Π±Π»Π΅Π½ΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ goto:
goto case 1; // ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°
3.3.2 Goto
Π‘++ ΡΠ½Π°Π±ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡΠΈΠΌ Π΄ΡΡΠ½ΡΡ ΡΠ΅ΠΏΡΡΠ°ΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ goto.
goto ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ; ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ : ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
Π ΠΎΠ±ΡΠ΅ΠΌ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π‘++ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, Π° Π½Π΅ ΠΏΠΈΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ goto ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π·ΠΎΠ²Π°ΡΡ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅, ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ². ΠΠΏΠ΅ΡΠ°ΡΠΎΡ goto ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ΅Π½ Π² ΡΠ΅Ρ ΡΠ΅Π΄ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΆΠ½Π° Π½Π°ΠΈΠ»ΡΡΡΠ°Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ½ΠΎΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ ΡΠΈΠΊΠ»Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ΄Π½ΠΎ ΠΈΠ· Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π·ΡΠΌΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΎΡΡΠΎΠΈΡ Π² Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ (break Π»ΠΈΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ Π²ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π΅Π³ΠΎ ΡΠΈΠΊΠ»Π° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
for (int i = 0; iΒ«n; i++) for (int j = 0; jΒ«m; j++) if (nm[i][j] == a) goto found // Π½Π°ΠΉΠ΄Π΅Π½ΠΎ // Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ // ...
found: // Π½Π°ΠΉΠ΄Π΅Π½ΠΎ // nm[i][j] == a
ΠΠΌΠ΅Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ continue, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΡΡΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΊΠΎΠ½Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠΈΠΊΠ»Π°, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π² #3.1.5.
3.4 ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅
ΠΡΠΎΠ΄ΡΠΌΠ°Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΡΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ°ΠΌΠΌΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΡΡΠ½ΡΠΌ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΡΡΡΠΏΠΎΠ². ΠΠ²ΡΠΎΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ Π΄ΡΡΠ³ΠΎΠΌΡ (Ρ ΠΎΡΡ ΠΊΠ°ΠΊ ΠΈ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π°, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡ). Π‘ΠΊΠ°Π·Π°Π½ΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΠΊ ΡΡΠΈΠ»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².
ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
1. ΠΎΡΠΌΡΡΠ»Π΅Π½,
2. ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ
3. Π½Π΅ ΡΡΡΠ°ΡΠ΅Π».
ΠΠ΅ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅, Π΄Π²ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ»ΠΎΡ ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Ρ ΡΠΆΠ΅, ΡΠ΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ.
ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ·ΠΊΠ°, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ°Π½Π½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ Π²ΡΠΎΠ΄Π΅:
// ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ "v" Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π°.
//ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ"v"Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Β«f()Β».
// Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ init() ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ // Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
// Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΈΡΡΠΊΠΈ Β«cleanup()Β» Π² ΠΊΠΎΠ½ΡΠ΅ Π²Π°ΡΠ΅ΠΉ // ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
// Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Β«wierd()Β».
// ΡΡΠ½ΠΊΡΠΈΡ Β«f()Β» ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π‘++ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΌΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΡΠΈΠΈ ΡΡΠ°Π»ΠΈ ΠΈΠ·Π»ΠΈΡΠ½ΠΈΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ (#4.2) ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΡΠΈΡΠΊΠΈ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² (ΡΠΌ. #5.5.2).
ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π±ΡΠ»ΠΎ ΡΡΠ½ΠΎ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅, Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π· ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΡΡΠΎ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
a = b+c; // a ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ b+c count++; // ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΠ΅ΡΡΠΈΠΊ
Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Ρ ΡΠΆΠ΅ ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π»ΠΈΡΠ½ΠΈ, ΠΎΠ½ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π΄ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ, ΠΎΠ½ΠΈ ΡΠ°ΡΡΠΎ Π·Π°ΡΡΠΌΠ½ΠΈΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ.
ΠΠ²ΡΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅Ρ:
1. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠΈΠΉ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π² Π½Π΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π΄Π°ΡΡΠΈΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΈ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, ΠΎΠ±ΡΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ.Π΄.,
2. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π² ΠΊΡΠΎΡΠΎΠΌ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΎ Π΅Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ (Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½) ΠΈ, Π±ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ, ΡΡΠΎ-ΡΠΎ ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΡ Π² Π½Π΅ΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ,
3. ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π² ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°Ρ , Π³Π΄Π΅ ΠΏΡΠΎΡΠ°ΠΌΠΌΠ° Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π° ΠΈ/ΠΈΠ»ΠΈ Π½Π΅ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠ° ΠΈ
4. ΠΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ ΡΡΠΎ Π΅ΡΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
// tbl.c: Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½ /* ΠΠ°ΡΡΡΠΎΠ²ΡΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°ΡΡΠΈΡΠ½ΡΠΌ Π‘ΠΌ. Ralston: Β«A first course ...Β» ΡΡΡ. 411. */
// swap() ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° AT amp;T sB20.
/**************************************
Copyright (c) 1984 AT amp;T, Inc. All rights reserved
****************************************/
Π£Π΄Π°ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΈ Ρ ΠΎΡΠΎΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ β ΡΡΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΡΠΊΠΎΠ»Ρ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡ.
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ //, ΡΠΎ Π»ΡΠ±ΡΡ ΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² /* */, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
3.5 Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. (*1) ΠΠ΅ΡΠ΅ΠΏΠΈΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ for Π² Π²ΠΈΠ΄Π΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° while: for (i=0; iΒ«max_length; i++) if (input_line[i] == '?') quest_count++;