Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ
ΠΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½Ρ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°ΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡ — ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ°ΠΊ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»Π°ΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ Audi 6 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ Π»Π΅Π³ΠΊΠΎΠ²ΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²Ρ ΠΎΠ΄ΠΈΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π Π½Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ³ΡΠ°Π΅Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ Π² ΠΌΠΈΡΠ΅. ΠΠ΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ ΠΈΠ³ΡΠ°Π΅Ρ Π·Π°ΡΠΈΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΡΠΈΠ·Π²Π°Π½Π½Π°Ρ «ΡΠΊΡΡΡΡ ΠΎΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ Π³Π»Π°Π·» Π²Π°ΠΆΠ½ΡΠ΅ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ Π΄Π°Π½Π½ΡΠ΅. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π·Π°ΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ — ΠΏΠ°ΡΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠ°ΡΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΡΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈ Π² ΠΆΠΈΠ·Π½ΠΈ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΠ°ΡΠΎΠ»ΠΈ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π°Π½ΠΊΠΎΠΌΠ°Ρ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΠΠ-ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ. Π’Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ΄ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π²Π΅ΡΡΠΈ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°.
ΠΠ°ΡΠΎΠ»Ρ — ΡΡΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π»ΠΈΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ. ΠΠ°ΡΠΎΠ»ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ «ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ — ΠΏΠ°ΡΠΎΠ»Ρ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°ΡΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠ»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
Β· ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΏΠ°ΡΠΎΠ»Ρ.
Β· Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π±Π΅Π·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Β· Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Ρ.
Β· ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉΠΊΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ (Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», Π»ΠΈΠ±ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», Π²ΡΡ ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΎΠΉΠΊΠΈΠΌΠΈ Ρ ΡΡ-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ).
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΠΊΠΎΠ»ΠΎ 40% Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΏΠ°ΡΠΎΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠ³Π°Π΄Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ΅Π³ΠΊΠΎ ΡΠ³Π°Π΄ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ (123, admin) ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠ»Π°Π±ΡΠΌΠΈ ΠΈ ΡΡΠ·Π²ΠΈΠΌΡΠΌΠΈ. ΠΠ°ΡΠΎΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π°Π΄Π°ΡΡ, ΡΡΠΈΡΠ°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎΠΉΠΊΠΈΠΌΠΈ.
Π§Π°ΡΡΠΎ ΡΡΠ΅Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΠ°ΡΠΎΠ»ΡΠΌ:
Β· ΠΠ°ΡΠΎΠ»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π΅Π³ΠΎ Π²Π·Π»ΠΎΠΌ ΠΏΠΎΠ»Π½ΡΠΌ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠΎΠΌ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° — Π²ΠΎΡΠ΅ΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠΎ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΎΠ½ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΈΡ ΡΠΈΡΡ.
Β· ΠΠ°ΡΠΎΠ»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ½ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΡΠΌ ΠΈΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ΠΌ, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π±ΠΎΡ ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ.
Β· ΠΠ°ΡΠΎΠ»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡΠΎΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠ΅ΠΉ ΠΊ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ ΡΠ»ΠΎΠ² Ρ ΡΠΈΡΡΠ°ΠΌΠΈ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ (#, $, * ΠΈ Ρ. Π΄.), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Π»ΠΎΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΈΠ»ΠΈ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ»ΠΎΠ², ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ «Π² Π³ΠΎΠ»ΠΎΠ²Π΅». ΠΠ»ΡΡ, ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π³Π΄Π΅-ΡΠΎ Ρ ΡΠ°Π½ΠΈΡΡ. ΠΡΠΈΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ «Π»ΠΈΡΠ½ΠΈΠ΅ Π³Π»Π°Π·Π°» ΡΡΠΈ ΠΏΠ°ΡΠΎΠ»ΠΈ Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ. ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
ΠΠ»Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ. Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ, ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠ΅ΠΉΠΊΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π½Π΅ΡΡΠΈ Π·Π°ΠΌΠ΅ΡΠΊΡ ΠΈ ΡΠ»Π°Π³. ΠΡΠ±ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² ΡΠ°ΠΉΠ», ΠΏΡΠΈΡΠΎΠΌ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ. Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠΈΡΠΈΡΡ ΠΎΡ ΠΎΡΠΊΡΡΡΠΈΡ ΡΡΠΆΠΈΠΌΠΈ Π»ΡΠ΄ΡΠΌΠΈ ΠΎΡΠΎΠ±ΡΠΌ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ, Π΄ΠΎ Π²Π²ΠΎΠ΄Π° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π΅Π½.
ΠΠ±Π·ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π‘++ — ΡΡΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π·Π°Π΄ΡΠΌΠ°Π½Π½ΡΠΉ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΡΡΠ½ΡΠΌ Π΄Π»Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. ΠΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ Π‘++ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ C. ΠΠΎΠΌΠΈΠΌΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π΅Ρ C, Π‘++ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ², ΡΠΎΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π°ΡΡΠΈΠ΅ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ°ΡΡΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ . ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΡΠΈΠΏΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. Π’Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΡΡΡ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΡΠ΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΡΠΈΠΏ Π½Π΅Π»ΡΠ·Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ. ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅, ΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΡΠ΅ ΠΈ Π»Π΅Π³ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ Π‘++ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ. ΠΠ»Π°ΡΡ — ΡΡΠΎ ΡΠΈΠΏ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΠ»Π°ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΎΠΊΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ , Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΡΠΈΠΏΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ°, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. Π‘++ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠΈΠ΅, ΡΠ΅ΠΌ Π² C, ΡΡΠ΅Π΄ΡΡΠ²Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ². Π ΡΠ·ΡΠΊΠ΅ Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ΅Π±Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, inline-ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ ΡΡΡΠ»ΠΎΡΠ½ΡΠΉ ΡΠΈΠΏ. Π Π‘++ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ° C ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ (Π±ΠΈΡΡ, Π±Π°ΠΉΡΡ, ΡΠ»ΠΎΠ²Π°, Π°Π΄ΡΠ΅ΡΠ° ΠΈ Ρ. ΠΏ.). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠΈΠΏΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
Π‘++ ΠΈ Π΅Π³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ. ΠΠΌΠ΅ΡΡΠ°ΡΡΡ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ·ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΈΠ΄ΡΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ C. ΠΠ· Π‘++ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ C Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈ Ρ Π‘++ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C.
Java — ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems Ρ 1991 Π³ΠΎΠ΄Π° ΠΈ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ Π²ΡΠΏΡΡΠ΅Π½Π½ΡΠΉ 23 ΠΌΠ°Ρ 1995 Π³ΠΎΠ΄Π°. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°Π»ΡΡ Oak (James Gosling) ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ Π΄Π»Ρ Π±ΡΡΠΎΠ²ΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠΈ, Π½ΠΎ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Java ΠΈ ΡΡΠ°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ², ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Java ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ java-ΠΌΠ°ΡΠΈΠ½Π΅ (JVM) — ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ΅ΠΉ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, Π½ΠΎ Ρ ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ, ΡΡΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ΅ΠΊΡΡΠ°, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅.
Π―Π·ΡΠΊ Java Π·Π°ΡΠΎΠ΄ΠΈΠ»ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π±ΡΡΠΎΠ²ΡΡ ΠΏΡΠΈΠ±ΠΎΡΠΎΠ². Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»Π° Π½Π°ΡΠ°ΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ C++, Π½ΠΎ Π²ΡΠΊΠΎΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊ ΡΡΠ΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π±ΠΎΡΡΠ±Ρ Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° — ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘ΡΠ°Π»ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π±Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ.
Π―Π·ΡΠΊ Java ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΠΈ Internet. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈΠ½ΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Java, Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ΄ΠΈΠΊΡΠΎΠ²Π°Π½ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΡΡ ΠΎΠ΄Π½ΡΠΉ Ρ C ΠΈ C++. Π Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°. Π Java Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΡΠ΅ΡΡΡ C++.
Π’ΡΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡ Π² ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ·ΡΠΊΠ° Java:
Β· Java ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π»Ρ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΈ Π°ΠΏΠΏΠ»Π΅ΡΡ (applets) — Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅, Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠ΅, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠΈΠ΅ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π² ΡΡΡΠ°Π½ΠΈΡΡ Web. ΠΠΏΠΏΠ»Π΅ΡΡ Java ΠΌΠΎΠ³ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΌ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π»Π΅Π³ΠΊΠΎΡΡΡΡ, ΠΊΠ°ΠΊ Π»ΡΠ±ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ HTML
Β· Java Π²ΡΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΌΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎΡΠ΅ΡΠ°Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ Π² ΡΠ°Π±ΠΎΡΠ΅ ΡΡΠ΅Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΠΎΠΊΠΎΠΌΡ ΠΊΡΡΠ³Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π½ΠΎΠ²ΡΠ΅ Π°ΠΏΠΏΠ»Π΅ΡΡ
Β· Java ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π±ΠΎΠ³Π°ΡΡΠΉ Π½Π°Π±ΠΎΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΡΡΠ½ΠΎΠ³ΠΎ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΎΠΊΠ½Π°ΠΌΠΈ, ΡΠ΅ΡΡΡ ΠΈ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ»ΡΡΠ΅Π²Π°Ρ ΡΠ΅ΡΡΠ° ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΡΠΏΠ΅ΠΊΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²
Pascal (Π½Π°Π·Π²Π°Π½ Π² ΡΠ΅ΡΡΡ ΠΠ»Π΅Π·Π° ΠΠ°ΡΠΊΠ°Π»Ρ) — ΡΡΠΎ ΡΠΈΡΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Pascal Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΠΈΠΊΠ»Π°ΡΡΠΎΠΌ ΠΠΈΡΡΠΎΠΌ Π² 1970; Π²ΠΎΠΏΡΠ΅ΠΊΠΈ ΡΠ°ΡΡ ΠΎΠΆΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, ΠΎΠ½ Π½Π΅ Π±ΡΠ» ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π±Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ°Π»ΡΡ Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΎΡΠΎΡΠΈΠΏΠΎΠΌ ΠΏΠΎΡΠ»ΡΠΆΠΈΠ» Algol. ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ·ΡΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΡΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠ·ΡΠΊΡ Java.
Π 1983 Π³ΠΎΠ΄Ρ Π±ΡΠ» ΠΏΡΠΈΠ½ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ ΡΠ·ΡΠΊΠ°, ISO 7185:1983, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ Standard Pascal. ΠΡΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ» Π² ΡΠ·ΡΠΊ Π½ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π» ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ°. Π 1990 Π³ΠΎΠ΄Ρ Π±ΡΠ» ΠΏΡΠΈΠ½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ ISO/IEC 10 206, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Extended Pascal. ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ ΡΠ·ΡΠΊΠ° ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠΎΠ³Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ² ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ (ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠ³ΠΎ) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Pascal Π±ΡΠ» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ². ΠΠΎ ΠΌΠ½Π΅Π½ΠΈΡ Π. ΠΠΈΡΡΠ°, ΡΠ·ΡΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ, Π½Π°ΡΡΠ΄Ρ ΡΠΎ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π² Pascal ΡΠ²Π΅Π΄Π΅Π½Ρ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ, Π° ΡΠ°ΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ΅Π½ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π΅ Ρ ΡΠ·ΡΠΊΠΎΠΌ. ΠΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΡΠ·ΡΠΊΠ°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ·ΡΠΊ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ» ΡΡΠ΄ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ : Π·Π°ΠΏΠΈΡΠΈ, ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠ°ΠΉΠ»Ρ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ·ΡΠΊ ΠΎΠ±Π»Π°Π΄Π°Π» ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ²: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Ρ. ΠΏ.
ΠΠΈΠ°Π»Π΅ΠΊΡ Object Pascal, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π² 1985 Π³ΠΎΠ΄Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΄ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ², ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ·ΡΠΊ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½.
Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΏΠ°ΡΠΎΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ΅ΡΠΎΠ΄Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ
Base64 Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ — ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ 64. ΠΠ΄Π΅ΡΡ 64 — ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ°Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π΄Π²ΠΎΠΉΠΊΠΈ (26), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ°ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ASCII. ΠΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΏΠΈΡΡΠΌΠ° (ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅). ΠΡΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Base64, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ A-Z, a-z ΠΈ 0−9, ΡΡΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 62 Π·Π½Π°ΠΊΠ°, Π΄Π»Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΡ Π΄Π²ΡΡ Π·Π½Π°ΠΊΠΎΠ² Π² ΡΠ°Π·Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Base64. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Thunderbird ΠΈ Mozilla ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Base64 Π΄Π»Ρ ΡΠΎΠΊΡΡΡΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π² POP3. Base64 ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠΊΡΡΡΠΈΡ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ² Π±Π΅Π· ΠΈΠ·Π΄Π΅ΡΠΆΠ΅ΠΊ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°ΠΌΠΈ.
Π‘ΠΊΠ°Π½Π΅ΡΡ ΡΠΏΠ°ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² base64, ΡΠ°ΡΡΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Base64, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΊΠ°ΠΆΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌΠΈ, ΠΈΠ»ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Π² ΡΠ΅ΠΊΡΡΠ΅ Base64, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΠΏΡΠΈΠ½ΡΡΡΠΌΠΈ Π·Π° ΡΠΏΠ°ΠΌ. ΠΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΏΠ°ΠΌΠΌΠ΅ΡΡ Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π°Π½ΡΠΈΡΠΏΠ°ΠΌΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ².
MD5. ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π² 1991 Π³ΠΎΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ Π ΠΎΠ½Π°Π»ΡΠ΄ΠΎΠΌ Π. Π ΠΈΠ²Π΅ΡΡΠΎΠΌ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ MD5 ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ. ΠΠ»Π°Π²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ MD5 ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ. Π ΡΡΠΎ ΡΡΠΎ Π·Π° Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΈΡΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΊ, ΡΡΠΎ Π½ΠΈΠΊΡΠΎ ΠΈΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ·Π½Π°ΡΡ? MD5 — ΡΡΠΎ Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ. Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊ Π²ΠΎΠΏΡΠΎΡ: ΡΡΠΎ ΠΆΠ΅ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅? ΠΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° ΡΡΠΎΠΌ Π²ΠΎΠΏΡΠΎΡΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π₯ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ? ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° ΠΎΡ 1 Π΄ΠΎ 106. Π ΠΏΡΡΡΡ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ 1 Π΄ΠΎ 106, Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ 1 Π΄ΠΎ 1000. ΠΠ°ΠΌ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°ΠΌ Π²Π°ΠΆΠ½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠΈΡΠ»Ρ ΠΎΡ 1 Π΄ΠΎ 106 ΡΡΠ°Π²ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ 1 Π΄ΠΎ 1000. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅:
int hash (long int x){
if (x%1000==0) return 1000;
return (x % 1000);
}
function hash (x:longint):longint;
begin
if (x mod 1000=0) then hash:=1000 else
hash:=x mod 1000;
end;
ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠ°Ρ Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ»ΠΈ ΠΌΡ Π·Π½Π°Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π Π΅ΡΠ»ΠΈ Π½Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΡΠ·Π½Π°ΡΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ? ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅Ρ. ΠΠ»Ρ ΡΠΈΡΠ»Π° 234 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ 234,1234, 2234,3234… ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ MD5? ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π΅ΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π Π²ΠΎΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ MD5 ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ ΡΠ°ΠΊ-ΡΠΎ ΠΏΡΠΎΡΡΠΎ. Π’. Π΅. Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ MD5, ΡΠΎ ΠΌΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ΄Π°ΡΡ ΡΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (ΡΠ΅ΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°). MD5 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ. ΠΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΎΠΏΠ°ΡΠ½ΠΎ. ΠΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΠ°ΠΉΡ «ΠΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅» (ΡΠ°ΠΉΡ). ΠΠ° ΡΡΠΎΠΌ ΡΠ°ΠΉΡΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ Π³ΠΎΡΠΎΠ΄ΡΠΊΠΈΠ΅ ΠΎΠ»ΠΈΠΌΠΏΠΈΠ°Π΄Ρ ΡΠΊΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² ΠΏΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ΅, Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΎΠ±ΡΡΠ°ΡΡΡΡ ΡΠΎΡΠ½ΠΈ ΡΠΊΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ². ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΊΠΎΠ»Π°Ρ Π΄ΠΎΡΡΡΠΏΠ° Π² ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π½Π΅Ρ, ΠΈ ΡΠΊΠΎΠ»ΡΠ½ΠΈΠΊΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ»ΡΠ³Π°ΠΌΠΈ ΡΠ°ΠΉΡΠ° Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΌΠ°, Π»ΠΈΠ±ΠΎ Π½Π΅ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠΊΠΎΠ»Π΅. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΉΡ Π½Π°ΡΠ°Π»ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π² ΡΠ°ΠΌΠΈΡ ΡΠΊΠΎΠ»Π°Ρ . Π’. Π΅. ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ Π½Π° ΡΠ°ΠΌΠΎΠΌ ΡΠ°ΠΉΡΠ΅, Π° Π½Π° Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π² ΡΠΊΠΎΠ»Π΅. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ°ΠΉΡΠΎΠΌ ΡΠΊΠΎΠ»Π° ΠΏΠΎΠ»ΡΡΠ°Π»Π° ΠΏΠ°ΡΠΎΠ»ΠΈ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ²), ΠΈ ΡΡΠΈΠΌΠΈ ΠΏΠ°ΡΠΎΠ»ΡΠΌΠΈ Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠ³ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ «Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ» ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°. ΠΡΠ»ΠΎ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
1. ΠΠ΅ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΏΠΈΠΈ ΡΠ°ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Π° Π² ΡΠΊΠΎΠ»Ρ, ΡΠ΄Π°Π»ΡΡΡ Π²ΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ.
2. ΠΠ°ΡΠΈΡΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΡΠΌΠΎΠ³ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
ΠΡΠ» Π²ΡΠ±ΡΠ°Π½ Π²ΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±. Π‘Π΅ΠΉΡΠ°Ρ ΠΏΠ°ΡΠΎΠ»ΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ (ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ MD5). ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²Π΅Π΄Π΅Ρ ΡΠ²ΠΎΠΉ ΠΏΠ°ΡΠΎΠ»Ρ, ΠΎΡ ΠΏΠ°ΡΠΎΠ»Ρ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ MD5. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Ρ ΡΠ°Π½ΡΡΠΈΠΌΡΡ Π² Π±Π°Π·Π΅. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π²Π½Ρ, ΡΠΎ ΠΏΠ°ΡΠΎΠ»Ρ Π²Π΅ΡΠ΅Π½. ΠΡΠ΅ MD5 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΡΠ΄Π°-ΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ». ΠΡΠΈΡΠ΅ΠΌ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΠΉ, ΡΡΠΎ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ Π±Π΅Π· ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ. ΠΠ΅ΡΠ΅Π΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ MD5 ΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ. ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ MD5 ΠΎΡ ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ Π΄Π²Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅, ΡΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ» ΠΈΡΠΏΠΎΡΡΠ΅Π½ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅. ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ MD5 ΡΡΠ°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΊΠ°Π·ΠΈΠ½ΠΎ. ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠ°Π²ΠΊΡ, ΠΈΠ³ΡΠΎΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Ρ ΡΡ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΠ³ΡΡ. ΠΠΎΠ³Π΄Π° ΡΡΠ°Π²ΠΊΠ° ΡΠ΄Π΅Π»Π°Π½Π°, ΠΈΠ³ΡΠΎΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠ³ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠ°Π»ΠΎ ΡΠΈΡΠ»ΠΎ 26). ΠΠΎΡΡΠΈΡΠ°Π² ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΊΠ°Π·ΠΈΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΎ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ³ΡΠΎΠΊ ΡΠ΄Π΅Π»Π°Π» ΡΡΠ°Π²ΠΊΡ. ΠΠΎ Π½Π΅ ΡΡΠΎΠΈΡ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ Π²ΡΠΈΠ³ΡΠ°ΡΡ Π² ΡΡΠΎΠΌ ΠΊΠ°Π·ΠΈΠ½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. ΠΠ΅ΡΡ ΡΠ΅ΠΊΡΠ΅Ρ Π² ΡΠΎΠΌ ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π²ΡΠΈΠ³ΡΡΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Π° ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΈΠ³ΡΠΎΠΊ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π² ΠΏΡΠΎΠΈΠ³ΡΡΡΠ΅.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ MD5? Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ MD5. ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ MD5 ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠΎΠΊΡ. ΠΡΠ° ΡΡΡΠΎΠΊΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· Π½ΡΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ. ΠΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ? Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π΅ΡΡΡ ΡΠ²ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ. ΠΡΠΈ Π½ΠΎΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½ΡΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠΈΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· Π½ΡΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ. ΠΡΡΡΡ q Π±ΡΠ΄Π΅Ρ Π΄Π»ΠΈΠ½Π° ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ΅ΠΉΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (ΡΠΎΠ²Π½ΠΎ 64 Π±ΠΈΡΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ Π½Π΅Π·Π½Π°ΡΠ°ΡΠΈΠΌΠΈ Π½ΡΠ»ΡΠΌΠΈ). Π ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ΅ΠΉΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ 1. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΄Π»ΠΈΠ½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 1. ΠΠ°ΡΠ΅ΠΌ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½ΡΠ»ΠΈ, ΠΏΠΎΠΊΠ° Π΄Π»ΠΈΠ½Π° Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 512 ΡΠ°Π²Π½Π° 448 (length mod 512=448). ΠΠ°Π»Π΅Π΅ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ 32 Π±ΠΈΡΠ° ΡΠΈΡΠ»Π° q, Π° Π·Π°ΡΠ΅ΠΌ — ΡΡΠ°ΡΡΠΈΠ΅. ΠΠ»ΠΈΠ½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΊΡΠ°ΡΠ½ΠΎΠΉ 512. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π°Π·ΠΎΠ²Π΅ΠΌ S. ΠΠ»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΡΡΡΠ΅ Π΄Π²ΠΎΠΉΠ½ΡΡ ΡΠ»ΠΎΠ²Π° (32 Π±ΠΈΡΠ°). ΠΡΠΈ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π³Π΄Π΅ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΠΌΡΠΉ ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ:
A: 01 23 45 67
B: 89 ab cd ef
C: fe dc ba 98
D: 76 54 32 10
Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
F (X, Y, Z) = XY v not (X) Z
G (X, Y, Z) = XZ v Y not (Z)
H (X, Y, Z) = X xor Y xor Z
I (X, Y, Z) = Y xor (X v not (Z))
X, Y, Z — ΡΡΠΎ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π°. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΆΠ΅ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π°. ΠΠ»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ (Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π΅ W). ΠΠ½Π° Ρ ΠΈΡΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π΅Π΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π½Π΅ Π±ΡΠ΄Ρ, Ρ.ΠΊ. ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ΡΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ). ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ F, G, H, I.
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ ΡΡ Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. Π‘Π»Π΅Π²Π° — Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΏΡΠ°Π²Π° — Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅.
ΠΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΡΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°:
1. ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠ΅ 512 Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ S.
2. Π£Π΄Π°Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠ΅ 512 Π±ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ S (ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΈ Π±Π΅Π· ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, Π½ΠΎ ΡΠΎΠ³Π΄Π° Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ°Π³Π΅ Π½Π°Π΄ΠΎ Π±ΡΠ°ΡΡ Π½Π΅ ΠΏΠ΅ΡΠ²ΡΠ΅ 512, Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ 512 Π±ΠΈΡ).
3. ΠΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ W. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ A, B, C, D — ΡΡΠΎ ΡΠ΅ΠΊΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π΄Π²ΠΎΠΉΠ½ΡΡ ΡΠ»ΠΎΠ². ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ T — ΡΡΠΎ Π·Π°ΠΏΠΎΠΌΠ½Π΅Π½Π½ΡΠ΅ 512 Π±ΠΈΡ.
4. ΠΡΠΈΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ A A0.
5. B=B+B0.
6. C=C+C0.
7. D=D+D0.
8. ΠΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ 0, Π²ΡΡ ΠΎΠ΄ΠΈΠΌ.
9. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ°Π³Ρ 1.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° A, B, C, D — ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ 128 Π±ΠΈΡ). Π§Π°ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ MD5 ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· 32 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² 0.f. ΠΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΠ°Π½ Π½Π΅ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, Π° Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΉ.
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ.
ΠΡ ΠΆΠΈΠ²Π΅ΠΌ Π² ΠΌΠΈΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π‘ΡΠΎΠ», Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ, ΡΡΡΠΊΠ°, ΠΊΠ»Π°ΡΡΠ½Π°Ρ Π΄ΠΎΡΠΊΠ° — Π²ΡΠ΅ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ°ΡΡΠ΄Ρ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠΈΠΏΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΠ»Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±ΡΠ΅ΠΊΡ — ΡΡΠΎ Π»ΡΠ±Π°Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ»ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½Π°Ρ ΡΠ΅ΡΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΡΠ½ΠΎΡΡΡ. ΠΠ±ΡΠ΅ΠΊΡ — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΡΠΈΠ»ΠΎΡΠΎΡΡΠΊΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ·ΡΡΠ°Π»ΠΎΡΡ ΡΠΈΠ»ΠΎΡΠΎΡΠ°ΠΌΠΈ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ±ΡΠ΅ΠΊΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ. Π’Π°ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΊΠΎΡΠΎΡΡΡ, ΠΌΠΎΡΠ½ΠΎΡΡΡ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ, ΡΠ²Π΅Ρ ΠΊΡΠ·ΠΎΠ²Π° ΠΈ Ρ. Π΄. ΠΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΠΎΡΠ½ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Π²ΡΡ ΠΎΠ΄Π½Π°Ρ ΠΌΠΎΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ²Π΅Π½Ρ ΡΡΠΌΠ° ΠΈ Ρ. Π΄.
ΠΠΎΠΌΠΈΠΌΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ (ΠΠΠ) Π½Π°Π·ΡΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ. Π’Π°ΠΊ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ Π΅Π·Π΄ΠΈΡΡ, ΠΊΠΎΡΠ°Π±Π»Ρ — ΠΏΠ»Π°Π²Π°ΡΡ, ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ — ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠΊΡΡΠ²Π°Ρ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ Ρ Π½ΠΈΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
Π’Π°ΠΊ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅Π»Π΅Π²ΠΈΠ·ΠΈΠΎΠ½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π° ΠΏΡΠ»ΡΡΠ΅ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π°Π±ΡΠ°ΡΡ Π΅Π΅ Π½ΠΎΠΌΠ΅Ρ, ΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΈΡΠΎΠ³Π΅ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. ΠΠ°ΠΌ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠ»ΡΡΠ΅ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΅Π»Π΅Π²ΠΈΠ·ΠΎΡΠ΅, Π½Π°ΠΌ Π»ΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ΅Π»Π΅Π²ΠΈΠ·ΠΎΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ (ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ) ΠΈ ΠΊΠ°ΠΊ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΠΊΡΡΡΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΠΠ. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΈ Π΄Π°Π»Π΅Π΅ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠΈ, Π½Π΅ Π²Π΄Π°Π²Π°ΡΡΡ Π² ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ±ΡΠ΅ΠΊΡ — ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΊΠ»Π°ΡΡΠ°. Π’Π°ΠΊ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ Audi 6 ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ Sony SW-7600G ΡΠ°ΠΊ ΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ»Π°ΡΡ — ΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅. ΠΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΠΎΠ½ΠΎΠ²ΡΠΊΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°. ΠΠ° UML — ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ — ΠΊΠ»Π°ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΡΠΈ ΡΠ°ΡΡΠΈ. Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ — Π°ΡΡΠΈΠ±ΡΡΡ, Π² ΡΡΠ΅ΡΡΠ΅ΠΉ — ΠΌΠ΅ΡΠΎΠ΄Ρ (ΡΠΈΡ. 1, Π°).
ΠΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½Ρ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°ΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡ — ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ°ΠΊ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»Π°ΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ Audi 6 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ Π»Π΅Π³ΠΊΠΎΠ²ΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²Ρ ΠΎΠ΄ΠΈΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΈΠΌΠΎ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ°ΠΌΠΎΠ»Π΅ΡΡ, ΠΊΠΎΡΠ°Π±Π»ΠΈ ΠΏΠΎΠ΅Π·Π΄Π° ΠΈ Ρ. Π΄. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ, ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² Π±ΠΎΡΠ°Π½ΠΈΠΊΠ΅ ΠΈ Π·ΠΎΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π³Π΅Π½Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ½Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π΅ΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΌ (ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ) ΠΊΠ»Π°ΡΡΠΎΠΌ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ»Π°ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π΅Π½Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠΎΠ² Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, ΡΠ°ΠΌΠΎΠ»Π΅ΡΠΎΠ² ΠΈ ΠΊΠΎΡΠ°Π±Π»Π΅ΠΉ. Π UML ΠΏΡΠΈΠ½ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΡΠΎ ΠΎΡΡΠ°Π·ΠΈΠ»ΠΎΡΡ ΠΈ Π² ΡΠΈΠΌΠ²ΠΎΠ»Π΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΌ ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅: Π±ΠΎΠ»ΡΡΠ°Ρ Π½Π΅ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ ΡΡΡΠ΅Π»ΠΊΠ°, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π½Π° ΠΊΠ»Π°ΡΡ, ΡΠ²Π»ΡΡΡΠΈΠΌΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² (ΡΠΈΡ. 1, Π±).
Π ΠΈΡ. 1. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ Π³Π΅Π½Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² UML: Π° — ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°; Π± — ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅; Ρ — ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ-ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ. ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ, ΠΈ ΡΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π° Π½ΠΈΠΆΠ½ΠΈΡ ΡΡΠΎΠ²Π½ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ, ΡΠ½Π°ΡΠ»Π΅Π΄ΡΡΡ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° (Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ) Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΡΠΌΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ. ΠΠ»Π°ΡΡ B ΡΠ½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° A ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ A, B, C ΠΈ D ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ A, B, C ΠΈ D, Π° ΠΊΠ»Π°ΡΡ C — Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ A, B, C, E, F ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ A, B ΠΈ E.
ΠΠΎΠΌΠΈΠΌΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ (ΡΠΈΡ. 1, Ρ). ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ ΡΠ½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ-ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ.
Π’Π°ΠΊΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°ΠΊ «ΠΠ»ΠΌΠ°Π· ΠΠΈΠΊΡΠΎΠ½Π°». ΠΠ΅ ΡΡΡΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΠΠΈΠΊΡΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ²Π°ΠΊΠ΅ΡΠΎΠΌ ΠΈ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊ ΡΠ΅ΡΠΏΡΠ±Π»ΠΈΠΊΠ°Π½ΡΠΊΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ. Π ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΊΠ²Π°ΠΊΠ΅ΡΡ — ΠΏΠ°ΡΠΈΡΠΈΡΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠΏΡΠ±Π»ΠΈΠΊΠ°Π½ΡΡ — ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊΠΈ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ° Π»ΠΈΡΠΎ ΡΠ²Π½Π°Ρ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡ. Π ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ ΠΠΠ ΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ (Π° ΠΎΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ·ΡΠΊΠ°Ρ ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ·ΡΠΊ Java, ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ Π² ΡΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ), ΠΎΠ½Π° ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π²Π°Π΅ΡΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, Π½ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΡΡ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ.
ΠΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠ³ΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ. Π’Π°ΠΊ, ΠΊΠ»Π°ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ. Π ΠΊΠ»Π°ΡΡΠ°Ρ -ΠΏΠΎΡΠΎΠΌΠΊΠ°Ρ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½: Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ Π±ΡΠ΄Π΅Ρ Π΅Π·Π΄ΠΈΡΡ, ΡΠ°ΠΌΠΎΠ»Π΅Ρ — Π»Π΅ΡΠ°ΡΡ, ΠΊΠΎΡΠ°Π±Π»Ρ — ΠΏΠ»Π°Π²Π°ΡΡ. Π’Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ. ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ — ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠΌΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ. Π ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² C++ ΠΎΠ½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡΡΠ³ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π²ΠΈΠ΄ΠΎΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ. ΠΠ½Π° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π³ΡΠ΅Π³Π°ΡΠΎΠ² (ΡΠΎΡΡΠ°Π²Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ, ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ) Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ. Π’Π°ΠΊ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΡΠ·ΠΎΠ²Π°, Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ, ΡΡΠ°Π½ΡΠΌΠΈΡΡΠΈΠΈ ΠΈ Ρ. ΠΏ., Π° Π² ΡΠΎΡΡΠ°Π² ΠΏΡΠΈΠ΅ΠΌΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²Ρ ΠΎΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊ, ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΈ Π°Π½ΡΠ΅Π½Π½ΠΎ-ΡΠΈΠ΄Π΅ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. Π UML Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π»ΠΈΠ½ΠΈΠΈ Ρ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΌ ΡΠΎΠΌΠ±ΠΎΠΌ Π½Π° ΠΊΠΎΠ½ΡΠ΅. ΠΠ³ΡΠ΅Π³Π°ΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΠΊΡΠ°ΡΠ½ΠΎΡΡΡ. Π’Π°ΠΊ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ΄ΠΈΠ½ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ. ΠΠ²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΡ Π΄Π²ΡΡ Π΄ΠΎ ΠΏΡΡΠΈ Π΄Π²Π΅ΡΠ΅ΠΉ. Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ Π΄Π²Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ.
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ Π°Π³ΡΠ΅Π³Π°ΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΅Π³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΆΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ D ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ f1() ΠΈ f2() (ΡΠΈΡ. 2). Π§ΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠΈ, Π½Π°Π΄ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π, Π·Π°ΡΠ΅ΠΌ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π‘, ΡΡΠΎ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
A.C.
ΠΠ°Π»Π΅Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° D, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π³ΡΠ΅Π³Π°ΡΠΎΠΌ C, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ f1() ΠΈ f2():
A.C.D.f1()
A.C.D.f2()
Π ΠΈΡ. 2. ΠΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠΌ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ. ΠΠΎ Π΅ΡΠ»ΠΈ Π² Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ Π°Π³ΡΠ΅Π³Π°ΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΊΠ»Π°ΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠΎ Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π°Π±Π°Ρ ΡΠ²ΡΠ·Ρ. Π’Π°ΠΊ, ΡΡΡΠ΄Π΅Π½ΡΡ Ρ Π²ΡΠ·ΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΡΠ°ΠΊΡΠ»ΡΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΎΠ΄ΡΡ Π² ΡΠΎΡΡΠ°Π² Π²ΡΠ·Π° (Ρ. Π΅. ΡΠ²Π»ΡΡΡΡΡ Π΅Π³ΠΎ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΈΠ»ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠ°ΠΌΠΈ), ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ. ΠΠ° UML ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΡ ΡΠΎΠΌΠ±ΠΎΠ². ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ, ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΊΡΠ°ΡΠ½ΠΎΡΡΡ. ΠΠ³ΡΠ΅Π³Π°ΡΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΈ. ΠΡΡΠΎΡΠΈΠ°ΡΠΈΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π»ΠΈΠ½ΠΈΠΈ Π±Π΅Π· ΡΡΡΠ΅Π»ΠΎΠΊ ΠΈ ΡΠΎΠΌΠ±ΠΈΠΊΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΠΈΠ΄, ΠΊΠ°ΠΊ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΠ° ΡΠ°Π½Π½ΠΈΡ ΡΡΠ°ΠΏΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΉ, Π° ΡΠ²ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΉ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ ΡΡΠ°ΠΏΠ°Ρ .
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ-ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΈ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ. ΠΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΈΡΡΡΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ, ΡΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±Π΅Π·ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ Π²Π»Π°ΡΡΠ²ΠΎΠ²Π°Π»Π° Π΄ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΠΠ. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΠΠ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π·Π½Π°Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡ, Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° ΠΈ ΡΠ΅ΠΌΠΈΠΎΡΠΈΠΊΠ°, ΠΏΡΠΈΡΠ΅ΠΌ, Π½Π΅ ΠΏΡΠ΅ΡΠ΅ΡΠΏΠ΅Π² ΠΎΡΠΎΠ±ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΡΡΠΈ ΡΡΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ. ΠΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ (ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ) ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ, ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²Π΅ΠΊΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ½ Π·Π°Π½ΡΠ» ΠΏΠΎΠ΄ΠΎΠ±Π°ΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ, ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ.
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅, ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΈ ΠΈΠ·ΡΡΠ΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Ρ ΠΠΠ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ 3 ΠΊΠ»Π°ΡΡΠ° ΡΠ·ΡΠΊΠΎΠ², ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ:
1. ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅
2. ΠΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅
3. ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ ΠΠΠ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ. Π’ΠΈΠΏΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»ΡΠΌΠΈ ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ C++, Java, C#.
Π ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠ°ΠΌ ΠΎΡΠ½ΠΎΡΡΡ ΡΠ·ΡΠΊΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½ΠΎ, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, Π½ΠΎ Π½Π΅ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅. Π’ΠΈΠΏΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ Visual Basic Π΄ΠΎ ΡΠ΅ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Ada.
Π ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠ·ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². JavaScript ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π’Π°ΠΊ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (DOM), Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ , ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ, ΠΏΡΠ΅Π΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Object Pascal
ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
Β· ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°: Generator. exe
Β· Π Π°Π·ΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°: 7,70 ΠΠ±Π°ΠΉΡ.
Β· ΠΠΊΠΎΠ½ΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
Β· ΠΠ΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°: 1,0
Β· ΠΠ΅ΡΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°: 1,0
Β· ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΈΠΌΡ: Generator
Β· ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°: Generator. exe
Β· ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°: Generator
Β· ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°: 1,0
Β· ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ: Π©Π΅Π»ΠΊΠ°Π½ΠΎΠ² Π ΠΎΠΌΠ°Π½
Β· Π―Π·ΡΠΊ: Π ΡΡΡΠΊΠΈΠΉ (Russian)
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
Β· ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°: Windows XP, Windows 7
Π―Π·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°:
Β· DelphiXE2(Object Pascal);
ΠΠ»Π°ΡΡΡ ΡΠ΅ΡΠ°Π΅ΠΌΡΡ Π·Π°Π΄Π°Ρ:
Β· ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ;
Β· Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ.
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΈ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π·Π°Π΄Π°Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΏΠ°ΡΠΎΠ»ΠΈ Π² Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΡΡΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ.
Π‘Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅:
Β· ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Windows.
Β· ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½ΡΠΆΠ΅Π½ ΡΠ°ΠΉΠ» «settings.stgg» (ΡΠ°ΠΉΠ» Π½Π°ΡΡΡΠΎΠ΅ΠΊ)
Π ΠΈΡ. 3. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
Β· Generate — Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ;
Β· Coder — ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ;
Β· Decoder — Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
ΠΠ»Π°Π²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ· Π½Π΅Π³ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΈ ΠΎΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· Π²ΡΠ΅Ρ ΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
ΠΠΎΠ΄ΡΠ»Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ. ΠΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΠΎΠ΄ΡΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ. ΠΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈ ΠΎΡΠ΄Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π³Π»Π°Π²Π½ΠΎΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΠΎΠ΄ΡΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ. ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈ ΠΎΡΠ΄Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π³Π»Π°Π²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΠΎΠ΄ΡΠ»Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ. ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈ ΠΎΡΠ΄Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π³Π»Π°Π²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π‘Π²ΡΠ·ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΠΠ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Windows.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°. Π ΡΠΎΡΡΠ°Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² Π²Ρ ΠΎΠ΄ΠΈΡ: IBM PC ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ 80 386 ΠΈ Π²ΡΡΠ΅, ΠΠΠ£ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 32 ΠΠ±Π°ΠΉΡ, 16 ΠΠ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ, Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π° ΠΆΠ΅ΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ 15 ΠΠ±Π°ΠΉΡ.
ΠΡΠ·ΠΎΠ² ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ°. ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ Π² Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅:
«.psw"-ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π»ΠΈΡΡ Ρ ΠΏΠ°ΡΠΎΠ»ΡΠΌΠΈ (ΠΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ).
«Settings.stgg» — ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Ρ ΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠ΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅:
«.psw"-ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π»ΠΈΡΡ Ρ ΠΏΠ°ΡΠΎΠ»ΡΠΌΠΈ (ΠΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ).
«Settings.stgg» — ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
1. ΠΡΡ Π°Π½Π³Π΅Π»ΡΡΠΊΠΈΠΉ Π. Π―. — Delphi 7. Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅. — «ΠΠΈΠ½ΠΎΠΌ», 2004.
2. ΠΠ°ΡΠ°Ρ Π²Π΅Π»ΠΈΠ΄Π·Π΅ Π. Π., ΠΠ°ΡΠΊΠΎΠ² Π. Π. — ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Delphi 7, «ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³», 2003.
3. ΠΡΠ΄ΡΡΠ²ΡΠ΅Π² Π. Π‘. — ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Delphi. Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅, «ΠΠΠ£ ΠΠΠ Π‘ΠΠ±ΠΠ’Π£Π Π. — Π‘ΠΠ±», 2007.
4. ΠΡΠ»ΡΡΠΈΠ½ Π. Π. — ΠΡΠ½ΠΎΠ²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Delphi 7. — «ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³», 2007.
5. Π€Π»Π΅Π½ΠΎΠ² Π. Π. — ΠΠΈΠ±Π»ΠΈΡ Delphi. 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, «ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³», 2008.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: 1 — ΡΡΡΠΎΠΊΠ° ΠΌΠ΅Π½Ρ; 2 — ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ; 3 — ΠΏΠΎΠ»Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΉΠ»Π°; 4 — ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ; 5 — Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΉΠ»Π°
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2
Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ°
ΠΠΎΠ΄ΡΠ»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΠ° — ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΎΠ΄ΡΠ»Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ — ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΠ΄ΡΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ — ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΎΠ΄ΡΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ — ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΡΠΏΠΈΠ²ΡΠΈΡ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ.
ΠΠΎΠ΄ΡΠ»Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ — ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΡΠΏΠΈΠ²ΡΠΈΡ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π³Π»Π°Π²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΠ»Π°Π²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ .
ΠΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π²Π²ΠΎΠ΄ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ²ΠΎΠ΄ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π½Π° ΡΠΊΡΠ°Π½.
ΠΡΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ. ΠΠ»Π°Π²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΠ°ΡΠΎΠ»Ρ Π² ΠΌΠΎΠ΄ΡΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ. ΠΠΎΠ΄ΡΠ»Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° Π³Π»Π°Π²Π½ΡΡ ΡΠΎΡΠΌΡ.
Π Π³Π»Π°Π²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π²Π²ΠΎΠ΄ Π·Π°ΠΌΠ΅ΡΠΎΠΊ ΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π·Π°ΡΠΈΡΡ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠ°ΡΠΎΠ»ΡΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π½Π° ΡΠΊΡΠ°Π½.
ΠΡΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π³Π»Π°Π²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ.
Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠ½ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, Π³Π΄Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² Π³Π»Π°Π²Π½ΡΡ ΡΠΎΡΠΌΡ, ΠΎΡΠΊΡΠ΄Π° ΠΎΠ½ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΏΠ°ΡΠΎΠ»ΡΠΌΠΈ.
ΠΡΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π³Π»Π°Π²Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ.
Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠ½ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΡΠ°ΠΉΠ» Ρ ΠΏΠ°ΡΠΎΠ»ΡΠΌΠΈ, ΠΎΡΠΊΡΠ΄Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠ°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ Π² ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π΅ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΎΡΠΊΡΠ΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π°Π·Π°Π΄ Π² ΡΠΎΡΠΌΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΡΠΌΠ°:
unit kurs;
interface
uses
Winapi.Windows, Winapi. Messages, System. SysUtils, System. Variants, System. Classes, Vcl. Graphics,
Vcl.Controls, Vcl. Forms, Vcl. Dialogs, Vcl. ImgList, Vcl. StdCtrls, Vcl. Grids,
Vcl.Imaging.jpeg, Vcl. ExtCtrls, Vcl. Menus, Vcl.Imaging.pngimage, Clipbrd,
setting, generate, coder, decoder, about, ShellApi;
type Pass=Record
flag:boolean;
password:string[100];
dlin:integer;
zamet:string[100];
End;
type
TForm1 = class (TForm)
Tablica: TStringGrid;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N9: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
AddPassword: TButton;
Image1: TImage;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label5: TLabel;
Label4: TLabel;
Label3: TLabel;
Label2: TLabel;
Label1: TLabel;
SaveButton: TButton;
NewPassword2: TEdit;
NewPassword1: TEdit;
LastPassword: TEdit;
Label6: TLabel;
Label7: TLabel;
Securitybutton: TButton;
Button1: TButton;
PasswordEdit: TEdit;
PasswordButton: TButton;
InformationLabel: TLabel;
Label8: TLabel;
procedure FormCreate (Sender: TObject);
procedure AddPasswordClick (Sender: TObject);
procedure TablicaSelectCell (Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure TablicaMouseWheelDown (Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
procedure TablicaMouseWheelUp (Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
procedure N3Click (Sender: TObject);
procedure N2Click (Sender: TObject);
procedure N5Click (Sender: TObject);
procedure SecuritybuttonClick (Sender: TObject);
procedure N9Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure N4Click (Sender: TObject);
procedure SaveButtonClick (Sender: TObject);
procedure PasswordButtonClick (Sender: TObject);
procedure N13Click (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure N12Click (Sender: TObject);
private
{ Private declarations }
public
end;
var
Form1: TForm1;
Gener: TGenerate;
Code: TCode;
Decode: TDecode;
i, n, pis:integer;
f: file of Pass;
names, namer, confrm, reader, reader2, j:shortstring;
pswchange, newdoc: boolean;
zap:Pass;
implementation
{$R *.dfm}
procedure TForm1. AddPasswordClick (Sender: TObject);
begin
Tablica.RowCount:=Tablica.RowCount+1;
Tablica.cells[2,Tablica.RowCount-1]: ='?';
Tablica.cells[3,Tablica.RowCount-1]:='d';
Tablica.cells[5,Tablica.RowCount-1]:='?';
end;
procedure TForm1. SaveButtonClick (Sender: TObject);
begin
if lastpassword. text='' then lastpassword. Text:='';
if newdoc=false then
begin
assignfile (f, namer);
reset (f);
seek (f, 0);
read (f, zap);
if lastpassword. Text<>decode.cipher (zap.password, zap. dlin) then informationlabel. Caption:='Π‘ΡΠ°ΡΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ Π½Π΅Π²Π΅ΡΠ΅Π½'
else begin
if newpassword1. Text=newpassword2.text then
begin
seek (f, 0);
zap.password:=code.cipher (newpassword1.text, length (newpassword1.text));
zap.dlin:=length (newpassword1.text);
write (f, zap);
newpassword1.Text:='';
newpassword2.Text:='';
lastpassword.Text:='';
informationlabel.Caption:='Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΎ';
end
else informationlabel. Caption:='ΠΠ°ΡΠΎΠ»ΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ';
end; pswchange:=true;
end
else
if newpassword1. Text=newpassword2.text then
if SaveDialog1. Execute then
begin
namer:=SaveDialog1.FileName+'.psw';
AssignFile (f, namer);
rewrite (f);
seek (f, 0);
zap.password:=code.cipher (newpassword1.text, length (newpassword1.text));
zap.dlin:=length (newpassword1.text);
write (f, zap);
newpassword1.Text:='';
newpassword2.Text:='';
lastpassword.Text:='';
informationlabel.Caption:='Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΎ';
seek (f, 1);
for I:=1 to Tablica. RowCount do
begin
if ((Tablica.Cells[0,i]='')
and (tablica.Cells[1,i]='')
and (tablica.Cells[4,i]='')) then continue
else begin
if Tablica. Cells[0,i]='' then zap. flag:=false
else zap. flag:=true;
zap.password:=code.cipher (tablica.Cells[1,i], length (tablica.Cells[1,i]));
zap.dlin:=length (tablica.Cells[1,i]);
zap.zamet:=tablica.Cells[4,i];
write (f, zap);
end;
end; end
else informationlabel. Caption:='ΠΠ°ΡΠΎΠ»ΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ';
newdoc:=false; pswchange:=false;
end;
procedure TForm1. SecuritybuttonClick (Sender: TObject);
begin
Form1.ClientHeight:=509;
end;
procedure TForm1. Button1Click (Sender: TObject);
begin
Form1.ClientHeight:=296;
end;
procedure TForm1. FormClose (Sender: TObject; var Action: TCloseAction);
begin
if PSWChange=true then
begin
case MessageBox (Handle, PChar ('ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ. ΠΠ°ΠΊΡΡΡΡ Π±Π΅Π· ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ?'), PChar ('ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅'), MB_YESNOCANCEL+MB_APPLMODAL) of
IDYES:begin end;
IDNO: begin
if SaveDialog1. Execute then
begin
action:=caNone;
namer:=SaveDialog1.FileName+'.psw';
AssignFile (f, namer);
rewrite (f);
seek (f, 0);
zap.password:='';
zap.dlin:=0;
write (f, zap);
seek (f, 1);
for I:=1 to Tablica. RowCount do
begin
if ((Tablica.Cells[0,i]='')
and (tablica.Cells[1,i]='')
and (tablica.Cells[4,i]='')) then continue
else begin
if Tablica. Cells[0,i]='' then zap. flag:=false
else zap. flag:=true;
zap.password:=code.cipher (tablica.Cells[1,i], length (tablica.Cells[1,i]));
zap.dlin:=length (tablica.Cells[1,i]);
zap.zamet:=tablica.Cells[4,i];
write (f, zap);
end;
end; pswchange:=false; newdoc:=true; end
end;
IDCANCEL: begin action:=caNone; end;
end;
end;
end;
procedure TForm1. FormCreate (Sender: TObject);
begin
if not FileExists (ExtractFilePath (ParamStr (0)) + 'settings.stgg') then begin
showmessage ('ΠΠ΅Ρ ΡΠ°ΠΉΠ»Π° Π½Π°ΡΡΡΠΎΠ΅ΠΊ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Ρ');
Halt;
end;
newdoc:=true; pis:=1;
lastpassword.PasswordChar := '*';
newpassword1.PasswordChar := '*';
newpassword2.PasswordChar := '*';
passwordedit.passwordchar:= '*';
Form1.ClientHeight:=296;
Tablica.Options:=Tablica.Options-[goEditing];
Tablica.cells[0,0]:='Π€Π»Π°Π³';
Tablica.ColWidths[0]:=42;
Tablica.cells[1,0]:='ΠΠ°ΡΠΎΠ»Ρ';
Tablica.cells[2,0]:='ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ';
Tablica.ColWidths[2]:=76;
for i := 1 to Tablica. rowcount do
Tablica.cells[2,I]: ='?';
Tablica.cells[3,0]:='Π Π±ΡΡΠ΅Ρ';
Tablica.ColWidths[3]: =66;
for i := 1 to Tablica. rowcount do
Tablica.cells[3,I]: ='d';
Tablica.cells[4,0]:='ΠΠ°ΠΌΠ΅ΡΠΊΠ°';
Tablica.ColWidths[4]:=120;
Tablica.Cells[5,0]:='Π£Π΄Π°Π»ΠΈΡΡ';
for i:=1 to tablica. rowcount do
tablica.cells[5,i]: ='?';
end;
procedure TForm1. N12Click (Sender: TObject);
begin
ShellExecute (Form1.Handle, nil, PChar (ExtractFilePath (ParamStr (0)) + 'help.doc'), nil, nil, SW_RESTORE);
end;
procedure TForm1. N13Click (Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1. N2Click (Sender: TObject);
begin
if pis <>0 then begin
if PSWChange=true then
begin
case MessageBox (Handle, PChar ('ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ. ΠΠ°ΠΊΡΡΡΡ Π±Π΅Π· ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ?'), PChar ('ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅'), MB_YESNOCANCEL+MB_APPLMODAL) of
IDYES:begin end;
IDNO: begin
if SaveDialog1. Execute then
begin
namer:=SaveDialog1.FileName+'.psw';
AssignFile (f, namer);
rewrite (f);
seek (f, 0);
zap.password:='';
zap.dlin:=0;
write (f, zap);
seek (f, 1);
for I:=1 to Tablica. RowCount do
begin
if ((Tablica.Cells[0,i]='')
and (tablica.Cells[1,i]='')
and (tablica.Cells[4,i]='')) then continue
else begin
if Tablica. Cells[0,i]='' then zap. flag:=false
else zap. flag:=true;
zap.password:=code.cipher (tablica.Cells[1,i], length (tablica.Cells[1,i]));
zap.dlin:=length (tablica.Cells[1,i]);
zap.zamet:=tablica.Cells[4,i];
write (f, zap);
end;
end; pswchange:=false; newdoc:=true; end
end;
IDCANCEL: begin exit; end;
end;
end; end;
tablica.RowCount:=10;
for i:=1 to Tablica. RowCount do
Tablica.Rows[i]. Clear;
Tablica.RowCount:=10;
for i := 1 to Tablica. rowcount do
Tablica.cells[2,I]: ='?';
for i := 1 to Tablica. rowcount do
Tablica.cells[3,I]: ='d';
end;
procedure TForm1. N3Click (Sender: TObject);
begin
if pis<>0 then begin if PSWChange=true then
begin
case MessageBox (Handle, PChar ('ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ. ΠΠ°ΠΊΡΡΡΡ Π±Π΅Π· ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ?'), PChar ('ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅'), MB_YESNOCANCEL+MB_APPLMODAL) of
IDYES:begin end;
IDNO: begin
if SaveDialog1. Execute then
begin
namer:=SaveDialog1.FileName+'.psw';
AssignFile (f, namer);
rewrite (f);
seek (f, 0);
zap.password:='';
zap.dlin:=0;
write (f, zap);
seek (f, 1);
for I:=1 to Tablica. RowCount do
begin
if ((Tablica.Cells[0,i]='')
and (tablica.Cells[1,i]='')
and (tablica.Cells[4,i]='')) then continue
else begin
if Tablica. Cells[0,i]='' then zap. flag:=false
else zap. flag:=true;
zap.password:=code.cipher (tablica.Cells[1,i], length (tablica.Cells[1,i]));
zap.dlin:=length (tablica.Cells[1,i]);
zap.zamet:=tablica.Cells[4,i];
write (f, zap);
end;
end; newdoc:=false; pswchange:=false; end
end;
IDCANCEL: begin exit; end;
end;
end; end;
if OpenDialog1. execute then
begin
namer:=OpenDialog1.FileName;
AssignFile (f, namer);
reset (f);
seek (f, 0);
read (f, zap);
if filesize (f)=1 then tablica. RowCount:=2
else
if filesize (f)-1<>Tablica.RowCount then
begin
if zap. dlin<>0 then n:=1 else n:=0;
Tablica.RowCount:=filesize (f);
seek (f, 1);
for i:=1 to filesize (f)-1 do
begin
read (f, zap);
if zap. flag=false then tablica. Cells[0,i]: =''
else tablica. Cells[0,i]: ='?';
if n=1 then begin tablica. cells[1,i]: ='ΠΠΉ-Π°ΠΉ-Π°ΠΉ!'; pis:=0; end
else begin tablica. cells[1,i]: =decode.cipher (zap.password, zap. dlin); pis:=1; end;
tablica.Cells[4,i]: =zap.zamet;
end;
newdoc:=false;
pswchange:=false;
end;
end;
end;
procedure TForm1. N4Click (Sender: TObject);
begin
if pis <>0 then if newdoc=false then begin
AssignFile (f, namer);
reset (f);
seek (f, 1);
for I:=1 to Tablica. RowCount do
begin
if ((Tablica.Cells[0,i]='')
and (tablica.Cells[1,i]='')
and (tablica.Cells[4,i]='')) then continue
else begin
if Tablica. Cells[0,i]='' then zap. flag:=false
else zap. flag:=true;
zap.password:=code.cipher (tablica.Cells[1,i], length (tablica.Cells[1,i]));
zap.dlin:=length (tablica.Cells[1,i]);
zap.zamet:=tablica.Cells[4,i];
write (f, zap);
end;
end;
end
else if SaveDialog1. Execute then
begin
namer:=SaveDialog1.FileName+'.psw';
AssignFile (f, namer);
rewrite (f);
seek (f, 0);
zap.password:='';
zap.dlin:=0;
write (f, zap);
seek (f, 1);
for I:=1 to Tablica. RowCount do
begin
if ((Tablica.Cells[0,i]='')
and (tablica.Cells[1,i]='')
and (tablica.Cells[4,i]='')) then continue
else begin
if Tablica. Cells[0,i]='' then zap. flag:=false
else zap. flag:=true;
zap.password:=code.cipher (tablica.Cells[1,i], length (tablica.Cells[1,i]));
zap.dlin:=length (tablica.Cells[1,i]);
zap.zamet:=tablica.Cells[4,i];
write (f, zap);
end;
end; end;
pswchange:=false; newdoc:=false;
end;
procedure TForm1. N5Click (Sender: TObject);
begin
if pis <>0 then if SaveDialog1. Execute then
begin
namer:=SaveDialog1.FileName+'.psw';
AssignFile (f, namer);
rewrite (f);
seek (f, 0);
zap.password:='';
zap.dlin:=0;
write (f, zap);
seek (f, 1);
for I:=1 to Tablica. RowCount do
begin
if ((Tablica.Cells[0,i]='')
and (tablica.Cells[1,i]='')
and (tablica.Cells[4,i]='')) then continue
else begin
if Tablica. Cells[0,i]='' then zap. flag:=false
else zap. flag:=true;
zap.password:=code.cipher (tablica.Cells[1,i], length (tablica.Cells[1,i]));
zap.dlin:=length (tablica.Cells[1,i]);
zap.zamet:=tablica.Cells[4,i];
write (f, zap);
end;
end; newdoc:=false; pswchange:=false; end;
end;
procedure TForm1. N9Click (Sender: TObject);
begin
Settings.ShowModal;
end;
procedure TForm1. PasswordButtonClick (Sender: TObject);
begin
seek (f, 0);
read (f, zap);
if passwordedit. text=decode.cipher (zap.password, zap. dlin) then
for i:=1 to filesize (f)-1 do begin pis:=1; read (f, zap); tablica. cells[1,i]: =decode.cipher (zap.password, zap. dlin); label8. caption:=''; end
else label8. caption:='ΠΠ°ΡΠΎΠ»Ρ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ';
end;
procedure TForm1. TablicaMouseWheelDown (Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
Tablica.Perform (WM_VScroll, SB_LINEDOWN, 0); Handled:=True;
end;
procedure TForm1. TablicaMouseWheelUp (Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
Tablica.Perform (WM_VScroll, SB_LINEUP, 0); Handled:=True;
end;
procedure TForm1. TablicaSelectCell (Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
if (ACol=0) then
begin
pswchange:=true;
Tablica.Options:=Tablica.Options-[goEditing];
if Tablica. cells[ACol, ARow]='?' then Tablica. cells[ACol, ARow]: =''
else Tablica. cells[ACol, ARow]: ='?';
end;
if (Acol=1) then Tablica. Options:=Tablica.Options-[goEditing];
if (Acol=2) then
begin
Tablica.Options:=Tablica.Options-[goEditing];
if pis=1 then begin
pswchange:=true; Tablica. Cells[Acol-1,Arow]: =gener.password (setting.symbol, setting. rate);
end;
end;
if (Acol=3) then
begin
Tablica.Options:=Tablica.Options-[goEditing];
ClipBoard.AsText:=Tablica.Cells[ACol-2,Arow];
end;
if (Acol=4) then begin Tablica. Options:=Tablica.Options+[goEditing]; pswchange:=true; end;
if (ACol=5) then begin Tablica. Options:=Tablica.Options-[goEditing]; pswchange:=true;
Tablica.Cells [0,arow]: =''; Tablica. Cells [1,arow]: =''; Tablica. Cells [4,arow]: ='';
end;end;
end.
Π€ΠΎΡΠΌΠ° Π½Π°ΡΡΡΠΎΠ΅ΠΊ:
unit setting;
interface
uses
Winapi.Windows, Winapi. Messages, System. SysUtils, System. Variants, System. Classes, Vcl. Graphics,
Vcl.Controls, Vcl. Forms, Vcl. Dialogs, Vcl. StdCtrls, Vcl. ComCtrls,
Vcl.Imaging.pngimage, Vcl. ExtCtrls, Vcl. Grids;
type
TSettings = class (TForm)
Morda: TImage;
SymbolBar: TTrackBar;
RateBar: TTrackBar;
LabelForSymbolBar: TLabel;
LabelForRateBar: TLabel;
UserNoticeSymbolBar: TLabel;
UserNoticeRateBar: TLabel;
SaveButton: TButton;
LabelForSymbols: TLabel;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Label3: TLabel;
StringGrid1: TStringGrid;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure SymbolBarChange (Sender: TObject);
procedure RateBarChange (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure SaveButtonClick (Sender: TObject);
procedure StringGrid1KeyPress (Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Settings: TSettings;
symbol, rate, i: integer;
f: file of shortstring;
names, j: shortstring;
const
Dig = ('0.9');
implementation
{$R *.dfm}
procedure TSettings. FormCreate (Sender: TObject);
begin
names:= ExtractFilePath (ParamStr (0)) + 'settings.stgg';
AssignFile (f, names);
reset (f);
read (f, j);
symbolbar.Position:=strtoint (j);
read (f, j);
ratebar.Position:=strtoint (j);
read (f, j);
edit1.Text:=j;
read (f, j);
edit2.text:=j;
read (f, j);
edit3.text:=j;
for i:=0 to 9 do
begin
read (f, j);
StringGrid1.Cells[0,i]: =j;
end;
for i:=0 to 9 do
begin
read (f, j);
StringGrid1.Cells[1,i]: =j;
end;
case RateBar. Position of
0:UserNoticeRateBar.Caption:='1 Π·Π½Π°ΠΊ';
1:UserNoticeRateBar.Caption:='2 Π·Π½Π°ΠΊΠ°';
2:UserNoticeRateBar.Caption:='3 Π·Π½Π°ΠΊΠ°';
3:UserNoticeRateBar.Caption:='4 Π·Π½Π°ΠΊΠ°';
4:UserNoticeRateBar.Caption:='5 Π·Π½Π°ΠΊΠΎΠ²';
5:UserNoticeRateBar.Caption:='6 Π·Π½Π°ΠΊΠΎΠ² ';
6:UserNoticeRateBar.Caption:='7 Π·Π½Π°ΠΊΠΎΠ²';
7:UserNoticeRateBar.Caption:='8 Π·Π½Π°ΠΊΠΎΠ²';
8:UserNoticeRateBar.Caption:='9 Π·Π½Π°ΠΊΠΎΠ² ';
9:UserNoticeRateBar.Caption:='10 Π·Π½Π°ΠΊΠΎΠ²';
10:UserNoticeRateBar.Caption:='11 Π·Π½Π°ΠΊΠΎΠ²';
11:UserNoticeRateBar.Caption:='12 Π·Π½Π°ΠΊΠΎΠ²';
12:UserNoticeRateBar.Caption:='13 Π·Π½Π°ΠΊΠΎΠ²';
13:UserNoticeRateBar.Caption:='14 Π·Π½Π°ΠΊΠΎΠ²';
14:UserNoticeRateBar.Caption:='15 Π·Π½Π°ΠΊΠΎΠ²';
15:UserNoticeRateBar.Caption:='16 Π·Π½Π°ΠΊΠΎΠ²';
16:UserNoticeRateBar.Caption:='17 Π·Π½Π°ΠΊΠΎΠ²';
17:UserNoticeRateBar.Caption:='18 Π·Π½Π°ΠΊΠΎΠ²';
18:UserNoticeRateBar.Caption:='19 Π·Π½Π°ΠΊΠΎΠ²';
19:UserNoticeRateBar.Caption:='20 Π·Π½Π°ΠΊΠΎΠ²';
end;
case SymbolBar. Position of
0:UserNoticeSymbolBar.Caption:='Π’ΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΡ';
1:UserNoticeSymbolBar.Caption:='Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΡΠ½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
2:UserNoticeSymbolBar.Caption:='Π’ΠΎΠ»ΡΠΊΠΎ Π·Π°Π³Π»Π°Π²Π½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
3:UserNoticeSymbolBar.Caption:='Π¦ΠΈΡΡΡ ΠΈ ΡΡΡΠΎΡΠ½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
4:UserNoticeSymbolBar.Caption:='Π¦ΠΈΡΡΡ ΠΈ Π·Π°Π³Π»Π°Π²Π½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
5:UserNoticeSymbolBar.Caption:='ΠΠ°Π³Π»Π°Π²Π½ΡΠ΅ ΠΈ ΡΡΡΠΎΡΠ½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
6:UserNoticeSymbolBar.Caption:='Π¦ΠΈΡΡΡ, Π·Π°Π³Π»Π°Π²Π½ΡΠ΅ ΠΈ ΡΡΡΠΎΡΠ½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
end;
end;
procedure TSettings. RateBarChange (Sender: TObject);
begin
rate:=RateBar.Position;
case RateBar. Position of
0:UserNoticeRateBar.Caption:='1 Π·Π½Π°ΠΊ';
1:UserNoticeRateBar.Caption:='2 Π·Π½Π°ΠΊΠ°';
2:UserNoticeRateBar.Caption:='3 Π·Π½Π°ΠΊΠ°';
3:UserNoticeRateBar.Caption:='4 Π·Π½Π°ΠΊΠ°';
4:UserNoticeRateBar.Caption:='5 Π·Π½Π°ΠΊΠΎΠ²';
5:UserNoticeRateBar.Caption:='6 Π·Π½Π°ΠΊΠΎΠ² ';
6:UserNoticeRateBar.Caption:='7 Π·Π½Π°ΠΊΠΎΠ²';
7:UserNoticeRateBar.Caption:='8 Π·Π½Π°ΠΊΠΎΠ²';
8:UserNoticeRateBar.Caption:='9 Π·Π½Π°ΠΊΠΎΠ² ';
9:UserNoticeRateBar.Caption:='10 Π·Π½Π°ΠΊΠΎΠ²';
10:UserNoticeRateBar.Caption:='11 Π·Π½Π°ΠΊΠΎΠ²';
11:UserNoticeRateBar.Caption:='12 Π·Π½Π°ΠΊΠΎΠ²';
12:UserNoticeRateBar.Caption:='13 Π·Π½Π°ΠΊΠΎΠ²';
13:UserNoticeRateBar.Caption:='14 Π·Π½Π°ΠΊΠΎΠ²';
14:UserNoticeRateBar.Caption:='15 Π·Π½Π°ΠΊΠΎΠ²';
15:UserNoticeRateBar.Caption:='16 Π·Π½Π°ΠΊΠΎΠ²';
16:UserNoticeRateBar.Caption:='17 Π·Π½Π°ΠΊΠΎΠ²';
17:UserNoticeRateBar.Caption:='18 Π·Π½Π°ΠΊΠΎΠ²';
18:UserNoticeRateBar.Caption:='19 Π·Π½Π°ΠΊΠΎΠ²';
19:UserNoticeRateBar.Caption:='20 Π·Π½Π°ΠΊΠΎΠ²';
end;
end;
procedure TSettings. SaveButtonClick (Sender: TObject);
begin
seek (f, 0);
j:=inttostr (symbolbar.Position);
write (f, j);
j:=inttostr (ratebar.Position);
write (f, j);
j:=edit1.Text;
write (f, j);
j:=edit2.text;
write (f, j);
j:=edit3.text;
write (f, j);
for i:=0 to 9 do
begin
j:=StringGrid1.Cells[0,i];
write (f, j);
end;
for i:=0 to 9 do
begin
j:=StringGrid1.Cells[1,i];
write (f, j);
end;
close;
end;
procedure TSettings. StringGrid1KeyPress (Sender: TObject; var Key: Char);
begin
if not (key in ['0'.'9',#8]) then key:=#0;
end;
procedure TSettings. SymbolBarChange (Sender: TObject);
begin
symbol:=SymbolBar.Position;
case SymbolBar. Position of
0:UserNoticeSymbolBar.Caption:='Π’ΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΡ';
1:UserNoticeSymbolBar.Caption:='Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΡΠ½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
2:UserNoticeSymbolBar.Caption:='Π’ΠΎΠ»ΡΠΊΠΎ Π·Π°Π³Π»Π°Π²Π½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
3:UserNoticeSymbolBar.Caption:='Π¦ΠΈΡΡΡ ΠΈ ΡΡΡΠΎΡΠ½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
4:UserNoticeSymbolBar.Caption:='Π¦ΠΈΡΡΡ ΠΈ Π·Π°Π³Π»Π°Π²Π½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
5:UserNoticeSymbolBar.Caption:='ΠΠ°Π³Π»Π°Π²Π½ΡΠ΅ ΠΈ ΡΡΡΠΎΡΠ½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
6:UserNoticeSymbolBar.Caption:='Π¦ΠΈΡΡΡ, Π·Π°Π³Π»Π°Π²Π½ΡΠ΅ ΠΈ ΡΡΡΠΎΡΠ½ΡΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ';
end;
end;
end.
ΠΠΎΠ΄ΡΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ:
unit generate;
interface
uses classes, Sysutils;
type
TGenerate=class (TObject)
private
public
function password (symbolpassword, ratepassword: integer):string;
end;
implementation
var schet: integer;
gener:string;
nabor, name: string;
nabor1, nabor2, nabor3: shortstring;
names: shortstring;