class task (* // ... task* next; static task* task_chain; void shedule(int); void wait(event); // ... *);
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ»Π΅Π½Π° task_chain (ΡΠ΅ΠΏΠΎΡΠΊΠ° Π·Π°Π΄Π°Ρ) ΠΊΠ°ΠΊ static ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½, Π° Π½Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΏΠΈΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ task. ΠΠ½ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΎΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° task, ΠΈ Β«ΠΈΠ·Π²Π½Π΅Β» Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΠΈΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π±ΡΠ» ΠΎΠΏΠΈΡΠ°Π½ ΠΊΠ°ΠΊ public. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΅Π³ΠΎ ΠΈΠΌΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠΎΡΠ½ΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°:
task::task_chain
Π ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Π΅ Π½Π° Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ ΠΏΡΠΎΡΡΠΎ task_chain. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π·ΠΌΠ΅ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
5.4.5 Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° Π§Π»Π΅Π½Ρ
ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ°ΡΡ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅Π½Π° ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Π° ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ ΡΠ΅Π»ΠΈ ΠΈ ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΊΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π² #4.6.9 ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΡΠ½ΡΠΈΠΈ, Π² ΡΠ°Π²Π½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΈ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΠ»Π΅Π½Π°ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π° Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π² ΡΠ·ΡΠΊΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄Π΅ΡΠ΅ΠΊΡ: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΆΡΠ»Π½ΠΈΡΠ°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠΊΠΈ. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²Π΄ΠΈΡΡΡ Π½ΠΈΠΆΠ΅, ΡΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΡΡΡΠΊ Π½Π°Π΄ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ. ΠΡΠΎΡ ΡΡΡΠΊ ΠΈΡΠΏΠΎΠ»Π·ΡΠ΅Ρ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ this ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠΉ (ΡΠΊΡΡΡΡΠΉ) ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Π°*: β * ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Π‘++ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΠΊΠ°Π·ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π½: cl::* ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π½ ΠΊΠ»Π°ΡΡΠ° clΒ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
typedef void (cl::*PROC)(int); PROC pf1 = amp;cl::print; // ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΈΠΏΡ Π½Π΅Π½ΡΠΆΠ½ΠΎ PROC pf2 = amp;cl::print;
ΠΠ»Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ»Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ . ΠΈ -Β». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
(z1.*pf1)(2); (( amp;z2)-Β»*pf2)(4);
(ΠΏΡΠΈΠΌ. Π°Π²ΡΠΎΡΠ°)
#include Β«stream.hΒ»
struct cl (* char* val; void print(int x) (* cout Β«β val «« x «« Β«\nβ; *); cl(char* v) (* val = v; *) *);
// ``ΡΠ°Π»ΡΡΠΈΠ²ΡΠΉ'' ΡΠΈΠΏ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ»Π΅Π½ΠΎΠ²: typedef void (*PROC)(void*, int);
main() (* cl z1("z1 "); cl z2("z2 "); PROC pf1 = PROC( amp;z1.print); PROC pf2 = PROC( amp;z2.print); z1.print(1); (*pf1)( amp;z1,2); z2.print(3); (*pf2)( amp;z2,4); *)
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ (ΡΠΌ. ΠΠ»Π°Π²Ρ 7) ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΈΠ½Π°ΡΠ΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·Π²Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ.
5.4.6 Π‘ΡΡΡΠΊΡΡΡΡ ΠΈ ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ
ΠΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ struct β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΊΠ»Π°ΡΡ, Π²ΡΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΡΠΎΡΠΎΠ³ΠΎ ΠΎΡΠΊΡΡΡΡΠ΅, ΡΠΎ Π΅ΡΡΡ
struct s (* ...
Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ
class s (* public: ...
Π‘ΡΡΡΠΊΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΠΎΠΊΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π½Π΅ΡΠΌΠ΅ΡΡΠ½ΠΎ.
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ struct, Π² ΠΊΠΎΡΡΠΎΠΉ Π²ΡΠ΅ ΡΠ»Π΅Π½Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π°Π΄ΡΠ΅Ρ (ΡΠΌ. #Ρ.8.5.13). ΠΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² C ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°: union tok_val (* char* p; // ΡΡΡΠΎΠΊΠ° char v[8]; // ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 8 char) long i; // ΡΠ΅Π»ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ double d; // Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ *);
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π²ΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π½Π΅ Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ»Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΏΡΡΠΎΠΌΡ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠ° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
void strange(int i) (* tok_val x; if (i) x.p = "2"; else x.d = 2; sqrt(x.d); // ΠΎΡΠΈΠ±ΠΊΠ° Π΅ΡΠ»ΠΈ i != 0 *)
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΡΠΎ, Π½Π΅Π»ΡΠ·Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ»Π°Π²Π° 5 ΠΠ»Π°ΡΡΡ
ΠΡΠΈ ΡΠΈΠΏΡ Π½Π΅ Β«Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΒ», ΠΎΠ½ΠΈ ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΡΠ΅Π°Π»ΡΠ½Ρ, ΠΊΠ°ΠΊ int ΠΈ float. β ΠΡΠ³ ΠΠ°ΠΊΠΠ»ΡΠΎΠΉ
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ² Π² Π‘++, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ±ΡΡΡΠ½ΡΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ Π·Π°ΡΠΈΡΡ ΡΡΡΡΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π΅Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π΅ΠΉ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π΅Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΏΡΠΎΡΡΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΈΠΌΠ΅Π½, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ ΡΡΠ΅ΠΊΠΎΠΌ, ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΈ ΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½ΠΈΡΡΡΡΠ΅Π³ΠΎ (ΡΠΎ Π΅ΡΡΡ, Β«Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎΒ») ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ²Π΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π³Π»Π°Π²Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ² Π² Π‘++ ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π΅ΡΠ΅ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
5.1 ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ ΠΈ ΠΡΠ°ΡΠΊΠΈΠΉ ΠΠ±Π·ΠΎΡ
ΠΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Ρ ΡΡΠ° ΠΈ Π΄Π²Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π³Π»Π°Π²Ρ, ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ², ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΡΠ΄ΠΎΠ±Π½ΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΡΠΊΠΎΠ»Ρ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ. Π ΠΈΠ΄Π΅Π°Π»Π΅ ΡΠΈΠΏ ΠΎΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ»ΡΠ°ΡΡΡΡ ΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ², ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ.
Π’ΠΈΠΏ Π΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ (ΠΏΠΎΠ½ΡΡΠΈΡ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ Π² Π‘++ ΡΠΈΠΏ float Ρ Π΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΡΠΌΠΈ +, -, * ΠΈ Ρ.Π΄. ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ, Π½ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΠΎΠ²ΡΠΉ ΡΠΈΠΏ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½ΠΈΡΡΠΎ ΠΏΡΡΠΌΠΎ ΠΈ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΡΡΠ΅Π΄ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠΏ trunk_module (ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π»ΠΈΠ½ΠΈΠΈ), Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠΎΠ² β ΡΠΈΠΏ list_of_paragraphs (ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠΎΠ²). ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΈΠΏΡ, Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡΠΌ ΠΏΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΠ½ΡΡΡ Π»Π΅Π³ΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎ Π½Π΅ Π΄Π΅Π»Π΅ΡΡΡ. Π₯ΠΎΡΠΎΡΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΠΊΠΎΠΉ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΠ°Π½ΡΡΡΡ Π½Π΅ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠΌΠΈ Π΄ΠΎ ΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ β ΠΎΡΠ΄Π΅Π»ΠΈΡΡ Π½Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΈΠΏΠ°) ΠΎΡ ΡΠ΅Ρ ΠΊΡΠ΅ΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½Ρ Π΄Π»Ρ Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½ΡΠΌ). Π’Π°ΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΠΌΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (ΠΊΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠ΅ΡΡΡ).
ΠΡΠ° Π³Π»Π°Π²Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΠ΅ΠΉ:
#5.2 ΠΠ»Π°ΡΡΡ ΠΈ Π§Π»Π΅Π½Ρ. ΠΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» Π·Π½Π°ΠΊΠΎΠΌΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ ΡΠΈΠΏΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡ ΠΊΠ»Π°ΡΡ (class). ΠΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ²Π°ΡΡΡΡ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΠ°. Π’Π°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠ»Π΅Π½Π°ΠΌΠΈ. ΠΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠ»Π΅Π½Π°ΠΌΠΈ, ΡΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ. ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ»Π΅Π½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠΏΡΠ°Π½Π° Π΄Π»Ρ Β«ΠΎΡΠΈΡΡΠΊΠΈΒ» ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΈ Π΅Π³ΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ. Π’Π°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ.
#5.3 ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠ΅ΡΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΈ ΠΈΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
#5.4 ΠΡΡΠ·ΡΡ ΠΈ ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ, ΠΊΠ°ΡΠ°ΡΡΠΈΡ ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². Π Π½Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΠΊΡΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π½ΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π’Π°ΠΊΠ°Ρ ΡΡΠ½ΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄ΡΡΠ³ (friend). Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½ΠΈΡΡΡΡΠ΅Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
#5.5 ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΈ ΠΠ΅ΡΡΡΡΠΊΡΠΎΡΡ. ΠΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡ ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΡΡ ΡΠ»Π΅Π½ΠΎΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ (ΡΠΈΠΏΠ° Π²Π΅ΠΊΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ°), ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ². ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΠ½ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠ².
5.2 ΠΠ»Π°ΡΡΡ ΠΈ Π§Π»Π΅Π½Ρ
ΠΠ»Π°ΡΡ β ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠΈΠΏ. ΠΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» Π·Π½Π°ΠΊΠΎΠΌΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ°, ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠ½ΠΈΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
5.2.1 Π€ΡΠ½ΠΊΡΠΈΠΈ Π§Π»Π΅Π½Ρ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΡ Π΄Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ struct Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°ΡΡ date ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°:
struct date (* int month, day, year; *); // Π΄Π°ΡΠ°: ΠΌΠ΅ΡΡΡ, Π΄Π΅Π½Ρ, Π³ΠΎΠ΄ *) date today; void set_date(date*, int, int, int); void next_date(date*); void print_date(date*); // ...
ΠΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ²Π½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ Π½Π΅Ρ. Π’Π°ΠΊΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΠΎΠΏΠΈΡΠ°Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ ΡΠ»Π΅Π½Ρ:
struct date (* int month, day, year;
void set(int, int, int); void get(int*, int*, int*); void next(); void print(); *);
Π€ΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠ»Π΅Π½Π°ΠΌΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΡΠ° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»Π΅Π½Π°ΠΌ ΡΡΡΡΠΊΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
date today; // ΡΠ΅Π³ΠΎΠ΄Π½Ρ date my_burthday; // ΠΌΠΎΠΉ Π΄Π΅Π½Ρ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ
void f() (* my_burthday.set(30,12,1950); today.set(18,1,1985);
my_burthday.print();
today.next(); *)
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Ρ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠΌΡ ΡΡΡΡΠΊΡΡΡΡ:
void date::next() (* if ( ++day Β» 28 ) (* // Π΄Π΅Π»Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ *) *)
Π ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Π΅ ΠΈΠΌΠ΅Π½Π° ΡΠ»Π΅Π½ΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±Π΅Π· ΡΠ²Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠΌΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ»Π΅Π½Ρ ΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π°.
5.2.2 ΠΠ»Π°ΡΡΡ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ date Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅ Π΄Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ date, Π½ΠΎ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΡΠΈΠΏΠ° date. ΠΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π»ΠΎΠΆΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΠΌΠ΅ΡΡΠΎ struct class: