ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ — ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ . Π ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Ρ ΡΠ°Π½ΡΡΡΡ Π°Π΄ΡΠ΅ΡΠ° Π΄ΡΡΠ³ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π»ΠΈΡΠ½ΠΈΠΌ Π·Π°ΡΡΠ°ΡΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΊ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΈ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ΄ΡΠ΅ΡΠ°ΡΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ. Π ΠΠ°ΡΠΊΠ°Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π°Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ:
Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ;
ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ);
ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
1. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ — ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ . Π ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Ρ ΡΠ°Π½ΡΡΡΡ Π°Π΄ΡΠ΅ΡΠ° Π΄ΡΡΠ³ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π»ΠΈΡΠ½ΠΈΠΌ Π·Π°ΡΡΠ°ΡΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΊ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΈ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°Π½Π΅Ρ ΡΡΠ½ΠΎ, ΡΡΠΎ Π²ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ Π½Π° ΠΈΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΠΊΡΠΏΠ°ΡΡΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅. Π Π°Π±ΠΎΡΠ° Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² Pascal, Π½ΠΎ ΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ·ΡΠΊΠ΅ Π‘ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Π Pascal ΡΠΎΠ»Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠΎΠΌΠ½Π΅Π΅, ΠΈ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ²ΠΎΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ, ΡΡΠΎΠ±Ρ Π³Π»ΡΠ±ΠΆΠ΅ ΠΏΠΎΠ½ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
2. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ Π°Π΄ΡΠ΅ΡΠ°
ΠΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° ΡΡΠ΅ΠΉΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄ Π½Π΅Π΅ ΠΎΡΠ²ΠΎΠ΄ΠΈΡΡΡ. ΠΠ»Ρ Π΄Π°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² (ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ) ΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
Π Turbo Pascal ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π»ΡΠ±ΠΎΠΌΡ Π±Π°ΠΉΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ Π΅Π³ΠΎ Π°Π΄ΡΠ΅ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ system ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Mem, MemW ΠΈ MemL, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΡΡΠ΅Π΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ (ΠΎΠ΄ΠΈΠ½, Π΄Π²Π° ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΠ΅ Π±Π°ΠΉΡΠ°). ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Ρ Π² 32- ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ΅ ΠΆΠ΅ Π΄Π°Π΄ΠΈΠΌ ΠΊΡΠ°ΡΠΊΠΈΠ΅ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΡΠ΅Π΄Π΅ Borland (Turbo) Pascal.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅Ρ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² Π²ΠΈΠ΄Π΅, ΠΏΡΠΈΠ½ΡΡΠΎΠΌ Π² DOS: ΡΠ΅Π³ΠΌΠ΅Π½Ρ: Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°. Π’Π°ΠΊΠΎΠΉ ΡΡΡΠ°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΠΈΡΠΈ Π°Π΄ΡΠ΅ΡΠ° ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ DOS Π²ΡΡ ΠΏΠ°ΠΌΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ° Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ, ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 64 ΠΠ±Π°ΠΉΡ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΠΈΠ· ΠΏΠ°ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π° ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ Π½ΠΎΠ»Ρ (ΡΡΠΎ ΡΠ΅ΡΡΡΠ΅ Π½ΡΠ»Ρ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅), Π° Π·Π°ΡΠ΅ΠΌ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡ 1 ΠΠ±Π°ΠΉΡ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π²ΠΈΠ΄Π΅ΠΎΠ±ΡΡΠ΅ΡΠ° Π·Π°ΠΏΠΈΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ $B800:$ 000, Π° ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π΅Π³ΠΎ Π±Π°ΠΉΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ:
Mem[$Π800:$ 0000],
ΠΊ ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π²ΡΠΌ Π±Π°ΠΉΡΠ°ΠΌ — MemW[$B800:$ 0000],
ΠΊ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ Π±Π°ΠΉΡΠ°ΠΌ — MemL [$B800:$ 0000]
ΠΠ±ΡΠΎΠ»ΡΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΡΠ΅, — $B8000.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ·Π½Π°ΡΠ΅Π»ΡΠ½ΡΡ — ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ mem[0:$ 41C]: =mem[0:$ 41Π]; ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ Π±ΡΡΠ΅ΡΠ° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠ΄Π΅ΡΡ Π°Π΄ΡΠ΅Ρ ΠΌΠ°ΡΠΊΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ° Π±ΡΡΠ΅ΡΠ° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΏΡΠΈΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΊ Π°Π΄ΡΠ΅ΡΡ Π΅Π³ΠΎ Π½Π°ΡΠ°Π»Π°. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π»ΡΡΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ crt.
ΠΠΌΠ΅Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ — ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° absolute ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·Π°Π½ ΠΏΠΎΡΠ»Π΅ absolute. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° absolute — ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ.
ΠΠ΄Π½Π°ΠΊΠΎ absolute ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π΄Π²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. Π ΡΠ·ΡΠΊΠ΅ Pascal Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ) — ΠΎΠ½Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ @. ΠΠΌΠ΅Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π°Ρ Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΡ addr.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, @x ΠΈΠ»ΠΈ addr (Ρ ) — Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ .
ΠΠΌΠ΅Π΅ΡΡΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ Π΅Π΅ Π°Π΄ΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΠΊΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ^ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ Ρ.
Π ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π±ΠΎΡΡ Ρ Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΡ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ .
3. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ
Π Pascal ΠΈΠΌΠ΅ΡΡΡΡ Π΄Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ: ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈ Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅. Π’ΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ — ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π»ΠΎΠ³ΠΎ, ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΠ΅ΡΠΈΠΏΠΈΠ·Π°ΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ — ΡΡΠΎ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π»ΡΠ±Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΅Π΅ ΡΠΈΠΏΠ°.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π²ΡΡ Π²ΠΈΠ΄ΠΎΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ:
var p1: ^integer; {ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°}
p2: ^string; {ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠΎΠΊΡ}
p3 pointer; {Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ}
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ ΡΡΠΎ ΡΠΈΠΏ pointer ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈΠΌΠ΅Π½Π° Π²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π±ΡΠ΄Π΅ΠΌ Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ Π±ΡΠΊΠ²Ρ p (pointer).
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π² ΡΡΠ΅ΠΊΠ΅ (Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅) ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ°ΠΌ 4 Π±Π°ΠΉΡΠ°. ΠΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ «Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ' ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ, ΠΎΡΡΠ°Π²Π»ΡΡ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ .
Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ Π΄ΠΎΠ»Ρ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π»ΠΈΡΠ½ΠΈΠ΅ 4 Π±Π°ΠΉΡΠ°, Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΡΠ΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π½Π΅ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½Ρ.
ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ°ΠΌΡΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ
4. ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ. ΠΠ»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠΎΠΊ Π, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
var
p1: ^integer;
Ρ2: ^real;
type
PerconPointer = ^PerconRecord;
PerconRecord = record
Name: string;
Job: string;
Next: PerconPointer
end;
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΈΠΏΠ° PerconPointer ΠΌΡ ΡΠΎΡΠ»Π°Π»ΠΈΡΡ Π½Π° PerconRecord, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π½Π΅ Π±ΡΠ». ΠΠ°ΠΊ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ, Π² Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΆΠΈΠ·Π½Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π΅ΡΠ΅ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π½Π΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΎΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ ΡΠΏΠΈΡΠΊΠ°. ΠΡΠ»ΠΈ Π±Ρ Π² Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Π΅ Π½Π΅ Π±ΡΠ»ΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ² Π±ΡΠ»Π° Π±Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΡΡΡΠ΄Π½Π΅Π½Π°.
Π Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ Π½Π΅ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Ρ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»ΡΠΆΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΈΠΏ POINTER, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
var
Ρ: pointer;
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π° Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ, Ρ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΡΠΈΠΏ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅Π½ΡΡΡΡΡ Π² Ρ ΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ²Π»ΡΡΡΡΡ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΎ Π±Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ°ΠΊ. Π Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
var
p1, p2: ^integer;
Ρ3: ^real;
ΡΡ: pointer;
ΡΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Ρ1:= Ρ2;
Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Ρ1:= Ρ3;
Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π 1 ΠΈ Π 3 ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π° Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ
pp:= Ρ3;
Ρ1:= ΡΡ;
ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π΄ΠΎΡΡΠΈΡΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
Π§ΠΈΡΠ°ΡΠ΅Π»Ρ Π²ΠΏΡΠ°Π²Π΅ Π·Π°Π΄Π°ΡΡ Π²ΠΎΠΏΡΠΎΡ, ΡΡΠΎΠΈΠ»ΠΎ Π»ΠΈ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΡ ΠΆΠ΅ Π΄Π°Π²Π°ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄Π°. ΠΡΠ΅ Π΄Π΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π»ΡΠ±ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π° Ρ Π΄ΡΡΠ³ΠΎΠΉ — ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΌΠΎΡΠ½ΠΎΡΡΡ ΡΠ·ΡΠΊΠ°, Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΌ Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ΄Π°ΡΡ ΡΠ·ΡΠΊΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, Π½ΠΎ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΠΉ ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ
ΠΠΎΠ΄Π²Π΅Π΄Π΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΎΠ³ΠΈ. ΠΡΠ°ΠΊ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 200…300 ΠΠ±Π°ΠΉΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅, Π΅Π΅ Π½Π°ΡΠ°Π»ΠΎ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ HEAPORG, a ΠΊΠΎΠ½Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π°Π΄ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ HEAPEND. Π’Π΅ΠΊΡΡΠΈΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠΊΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ HEAPPTR.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΡΡΠΏΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π΄Π°Π½Π½ΡΡ . ΠΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ 100×200 ΡΠΈΠΏΠ° EXTENDED. ΠΠ»Ρ ΡΠ°Π·ΠΌΡΠ΅Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ 200 000 Π±Π°ΠΉΡ (100*200*10). ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
var
i, j: integer;
PtrArr: array [1.100, 1.200] of ^real;
begin
for i := 1 to 100 do
for j := 1 to 200 do
new (PtrArr[i, j]);
end.
Π’Π΅ΠΏΠ΅ΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
PtrArr[1,1]^ := 0;
if PtrArr[i, j*2]^ > 1 then
ΠΡΠΏΠΎΠΌΠ½ΠΈΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ Π΄Π»ΠΈΠ½Π° Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 4 Π±Π°ΠΉΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° PTRARR ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ 100*200*4 = 80 000 Π±Π°ΠΉΡ, ΡΡΠΎ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ (65 536 Π±Π°ΠΉΡ), Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΡΡ ΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π»Π° Π±Ρ ΠΏΠΎΡΠ»ΡΠΆΠΈΡΡ Π°Π΄ΡΠ΅ΡΠ½Π°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ°, Ρ. Π΅. Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ° Π½Π°Π΄ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ PTRARR ΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡ Π°Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ Π½Π΅ΠΌΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π² Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Π΅ Π½Π°Π΄ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΡΠΎΠΌΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠ΅ΡΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Π»ΡΠ±ΠΎΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ»ΠΎΠ² ΡΠΈΠΏΠ° WORD, Π² ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅. Π Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΄Π²Π΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠΏΠ° WORD, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΈΡ ΡΠ»ΠΎΠ²:
SEG (X) — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΡ ΡΠ°ΡΡΡ Π°Π΄ΡΠ΅ΡΠ°;
OFS (X) — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π₯ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ Π»ΡΠ±Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΠΌΠ΅Π΅ΠΌ
var
Ρ: ^real;
begin
new (p);
p^ := 3.14;
end
ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ SEG (P) Π²Π΅ΡΠ½Π΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΡ ΡΠ°ΡΡΡ Π°Π΄ΡΠ΅ΡΠ°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ 4-Π±Π°ΠΉΡΠ½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π , Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ SEG (P^) — ΡΠ΅Π³ΠΌΠ΅Π½Ρ 6-Π±Π°ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠΊΠ° ΠΊΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΈΡΠ»ΠΎ 3.14.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ PTR (SEG, OFS: WORD): POINTER ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ΅ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠ°ΠΊΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠ½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ GETMEM ΠΈΠ· ΠΊΡΡΠΈ Π·Π°Π±ΠΈΡΠ°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ Π΄Π»ΠΈΠ½Ρ (Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ Π·Π° ΠΎΠ΄Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 65 521 Π±Π°ΠΉΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ). ΠΠ»Ρ ΡΠ°Ρ ΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΡΠ°ΠΊΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΡΡΠΎΠ±Ρ Π² Π½ΠΈΡ ΠΌΠΎΠ³Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡΡΡ ΡΡΡΠΎΠΊΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, Ρ. Π΅.
200 * 10 = 2000 Π±Π°ΠΉΡ.
ΠΠ°ΡΠ°Π»ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°, Ρ. Π΅. ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΠ°Π»ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ PTRSTR, ΡΠΎΡΡΠΎΡΡΠ΅ΠΌ ΠΈΠ· 100 ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΡΠΎΠΊΠΈ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΡ Π½Π°ΡΠ°Π»Π° ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ:
var
i, j: integer;
PtrStr: array [1.100] of pointer;
pr: ^real;
const
SizeOfReal = 6;
begin
for i := 1 to 100 do
GetMem (PtrStr[i], SizeOfReal*200);
{ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ [i, j]}
pr := ptr (seg (PtrStr[i]^), ofs (PtrStr[i]^)+(j-1)*SizeOfReal);
if pr^ > 1 then
end
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° PR := PTR… Π±ΡΠ΄Π΅Ρ, ΡΡΠ΄Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²Π²Π΅ΡΡΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ GETR, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΡΡ, ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ PUTR, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· Π½ΠΈΡ , Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ADDRR Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ°. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠΎΠ·Π΄Π°ΡΡΠ°Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠ· NxM ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡΠ°Ρ ΠΈΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
program Primer1;
const
SizeOfReal = 6; {ΠΠ»ΠΈΠ½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΏΠ° REAL}
N = 100; {ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ²}
Π = 200; {ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ}
var
i, j: integer;
PtrStr: array [1.N] of pointer;
s: real;
type
RealPoint = ^real;
{}
Function AddrR (i, j: word): RealPoint;
{ΠΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ i ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ j Π²ΡΠ΄Π°Π΅Ρ Π°Π΄ΡΠ΅Ρ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ}
begin
AddrR:= ptr (seg (PtrStr[i]^), ofs (PtrStr[i]^)+(j-1)*SizeOfReal)
end; {AddrR}
{}
Function GetR (i, j: integer): real;
{ΠΡΠ΄Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ i
ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ j Π΅Π΅ Π°Π΄ΡΠ΅ΡΠ°}
begin
GetR := AddrR (i, j)^
end; {GetR}
{}
Procepure PutR (i, j: integer; x: real);
{ΠΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π°Π΄ΡΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½Ρ i
ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ j, Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ x}
begin
AddrR (i, j)^ := x
end; {PutR}
{}
begin {Main}
for i := 1 to N do
begin
GetMem (PtrStr[i], M*SizeOfReal);
for j := 1 to M do PutR (i, j, Random)
end;
s := 0;
for i := 1 to N do
for j := 1 to M do
s := s + GetR (i, j);
WriteLn (s / (N * M): 12:10)
end. {Main}
Π ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΡΡΠ΅, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π³ΡΠ°Π½ΠΈΡΡ ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠ°, ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ PTRSTR ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ. Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡΡ ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ GETMEM Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ°Π·Ρ Π·Π° ΠΊΠΎΠ½ΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠΏΠ°ΡΡΡ Π½Π° Π³ΡΠ°Π½ΠΈΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΏΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ (65 521 Π±Π°ΠΉΡ) ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π±Π°ΠΉΡΠ°.