ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΡΡΡΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π°
Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ ΠΊΡΡΡΠ΅ΡΡΠΊΠΈΠ΅ ΡΡΠ»ΡΠ³ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»ΠΈ Π±ΡΡΡ ΡΠΎΡΠΊΠΎΡΡΡ, ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ²ΡΠΈΡΡ Π² ΡΡΡΠΎΠ²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ. ΠΡΠΈ Π½ΡΠ½Π΅ΡΠ½Π΅ΠΌ ΡΠ΅ΠΌΠΏΠ΅ ΠΆΠΈΠ·Π½ΠΈ Π²ΡΠ΅ ΡΠ°ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΆΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΡΠ°Π²ΠΈΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ Π³ΠΎΡΠΎΠ΄ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΡΠ°Π½Ρ. ΠΠΎ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΡΡΡΠ΅ΡΡΠΊΠΈΡ ΡΠ»ΡΠΆΠ± ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΡΡΡΠ΅ΡΠ°ΠΌΠΈ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠΎΡΡΠ°ΡΠ°Π»Π°ΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΡΡΡΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π° (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π‘ΠΠΠΠ ΠΠΠΠΠ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
1. ΠΠ½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
1.1 ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ
1.2 ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
2. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°
3. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°
4. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π‘ΠΏΠΈΡΠΎΠΊ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ ΠΊΡΡΡΠ΅ΡΡΠΊΠΈΠ΅ ΡΡΠ»ΡΠ³ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»ΠΈ Π±ΡΡΡ ΡΠΎΡΠΊΠΎΡΡΡ, ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ²ΡΠΈΡΡ Π² ΡΡΡΠΎΠ²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ. ΠΡΠΈ Π½ΡΠ½Π΅ΡΠ½Π΅ΠΌ ΡΠ΅ΠΌΠΏΠ΅ ΠΆΠΈΠ·Π½ΠΈ Π²ΡΠ΅ ΡΠ°ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΆΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΡΠ°Π²ΠΈΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ Π³ΠΎΡΠΎΠ΄ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΡΠ°Π½Ρ. ΠΠΎ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΡΡΡΠ΅ΡΡΠΊΠΈΡ ΡΠ»ΡΠΆΠ± ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΡΡΡΠ΅ΡΠ°ΠΌΠΈ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠΎΡΡΠ°ΡΠ°Π»Π°ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ΅ ΠΏΠΎΠΌΠΎΡΡ ΠΊΡΡΡΠ΅ΡΡΠΊΠΈΠΌ ΡΠ»ΡΠΆΠ±Π°ΠΌ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ°.
ΠΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΡΡΡΠ΅ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π° ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ². Π’Π°ΠΊ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²ΡΠ΄Π΅Π»ΠΈΠ»Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ:
Β· ΠΡΠ΅ΠΌΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π·Π°ΠΊΠ°Π·Π° ΠΈ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΊΡΡΡΠ΅ΡΠ°;
Β· ΠΠ±ΡΠ΅ΠΌ Π·Π°ΠΊΠ°Π·Π° ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΡΡΡΠ΅Ρ;
Β· ΠΠ΅Ρ Π·Π°ΠΊΠ°Π·Π° ΠΈ Π³ΡΡΠ·ΠΎΠΏΠΎΠ΄ΡΠ΅ΠΌΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΠΊΡΡΡΠ΅ΡΠ°;
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π±ΡΠ΄ΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄Π²Π° ΡΠΏΠΈΡΠΊΠ°: ΡΠΏΠΈΡΠΎΠΊ ΠΊΡΡΡΠ΅ΡΠΎΠ² ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΊΠ°Π·ΠΎΠ². ΠΠ°Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Delphi.
Π ΡΠ°Π±ΠΎΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. Π’Π°ΠΊ ΠΆΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΡΠΎΠΌΡ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ΅Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Delphi7.
ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
1. ΠΠΠΠΠΠ’ΠΠ§ΠΠ‘ΠΠΠ ΠΠΠΠΠ ΠΠΠ’ΠΠ ΠΠ’Π£Π Π«
1.1 ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ — Π΄Π°Π½Π½ΡΠ΅, ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΡΠ°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ½ΡΡ , ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. Π’Π°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ — ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1.
Π ΠΈΡΡΠ½ΠΎΠΊ 1. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ. Π ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: ΠΠΌΡ: ^ Π’ΠΈΠΏ;
Π³Π΄Π΅: ΠΈΠΌΡ — ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ; Π’ΠΈΠΏ — ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ; ^ - ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ: p1: ^integer; Ρ2: ^real;
p1 — ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° integer, a p2 — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° real.
Π’ΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ»Π°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏΠΎΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ:integer, ΡΠΎ Π³ΠΎΠ²ΠΎΡΡΡ:Ρ — «ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°» ΠΈΠ»ΠΈ «Ρ — ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ΅Π»ΠΎΠ΅» .
Π Π½Π°ΡΠ°Π»Π΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ «Π½ΠΈ Π½Π° ΡΡΠΎ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ». Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ°Π²Π½ΠΎ NIL. ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ NIL ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈ Π½Π° ΡΡΠΎ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ.
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ NIL ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΈ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ p1 ΠΈ Ρ2 ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ p1 := NIL;
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ if Ρ2 = NIL then ShowMessage ('Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ2 Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½!');
ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ2.
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ° (Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ — ΡΡΠΎ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠΎΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ @). ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ n, Ρ := @n;
ΠΠΎΠΌΠΈΠΌΠΎ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ p1 ΠΈ Ρ2 ΡΠ²Π»ΡΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ ΡΠΈΠΏΠ° integer, ΡΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ: p2 := p1;
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π°Π΄ΡΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ i, ΡΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ: Ρ^: = 5;
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ i Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΠΎ ΠΏΡΡΠΈ. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π·Π½Π°ΡΠΎΠΊ ^ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ new. Π£ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ new ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Π΄ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΡΠΈΠΏ real, ΡΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ new (p); Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΏΠ° real (ΡΠΎΠ·Π΄Π°Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° real), ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
Π£ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅Ρ ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ ΡΡΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΏΠ°ΠΌΡΡΡ ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, «ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅». ΠΠ»Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Dispose, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ΄Π΅Π»Π΅Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ new (p), ΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ dispose (Ρ) ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Var p1, p2,p3:^ Integer; // ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° integer
begin
// ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° integer
// Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
New (p1);
New (p2);
New (p3);
Ρ1^ := 5;
Ρ2^ := 3;
Ρ3^ := Ρ1^ + Ρ2^;
ShowMessage ('Π‘ΡΠΌΠΌΠ°ΡΠΈΡΠ΅Π»ΡΠ°Π²Π½Π° ' + IntToStr (Ρ3^));
// ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ
Dispose (p1);
Dispose (Ρ2);
Dispose (Ρ3);
end;
Π Π½Π°ΡΠ°Π»Π΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΠ²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ p1 ΠΈ Ρ2, ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠΌΠΌΠ° ΠΏΠ΅ΡΠ²ΡΡ Π΄Π²ΡΡ .
Π‘ΠΏΠΈΡΠΊΠΈ Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΈ ΠΈ Π΄Π΅ΡΠ΅Π²ΡΡ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.
Π ΠΈΡΡΠ½ΠΎΠΊ 2. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° (ΡΠ·Π΅Π») ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π·Π°ΠΏΠΈΡΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ. ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ — ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ. ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ²ΡΠ·Ρ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ°. Π‘ΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²ΡΠ·Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΡΠ²ΡΠ·Π½ΡΠΌ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠ³Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π½Π°Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ΄Π΅Π½ΡΠΎΠ²:
type
TPStudent = ^TStudent; // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° TStudent
// ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ°
TStudent = record
FIO: string[60]; // ΡΠ°ΠΌΠΈΠ»ΠΈΡ
group: integer; // Π½ΠΎΠΌΠ΅ΡΠ³ΡΡΠΏΠΏΡ
address: string[60]; // Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ Π°Π΄ΡΠ΅Ρ
next: TPStudent; // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°
end;
var head: TPStudent; // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° ΠΠΎΠ±Π°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π² Π½Π°ΡΠ°Π»ΠΎ, Π² ΠΊΠΎΠ½Π΅Ρ ΠΈΠ»ΠΈ Π² Π½ΡΠΆΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΠΏΠΈΡΠΊΠ°. ΠΠΎ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 3 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΏΠΈΡΠΊΠ°.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π½Π°ΡΠ°Π»ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°
type
TPStudent=^TStudent; // ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠ½Π°ΡΠΈΠΏ TStudent
TStudent = record
f_name:string[20]; // ΡΠ°ΠΌΠΈΠ»ΠΈΡ
l_name: string[20]; // ΠΈΠΌΡ
next: TPStudent; // ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉΡΠ»Π΅ΠΌΠ΅Π½ΡΡΠΏΠΈΡΠΊΠ°
end;
var head: TPStudent; // Π½Π°ΡΠ°Π»ΠΎ (Π³ΠΎΠ»ΠΎΠ²Π°) ΡΠΏΠΈΡΠΊΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΏΠΈΡΠΊΠ°
procedure add;
var
curr: TPStudent; // Π½ΠΎΠ²ΡΠΉΡΠ»Π΅ΠΌΠ΅Π½ΡΡΠΏΠΈΡΠΊΠ°
begin
new (curr); // Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ°
curr^.f_name := `Π‘ΠΈΠ΄ΠΎΡΠΎΠ²';
curr^. l _ name := `ΠΠ²Π°Π½';
// Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΏΠΈΡΠΊΠ°
curr^.next := head; head := curr;
end;
Π ΠΈΡΡΠ½ΠΎΠΊ 3. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΎΠΊ ΠΡΠ²ΠΎΠ΄ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°:
var
curr: TPStudent; // ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°
n:integer; // Π΄Π»ΠΈΠ½Π° (ΠΊΠΎΠ»-Π²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²) ΡΠΏΠΈΡΠΊΠ°
st:string; // ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°
begin
n := 0; st := '';
curr := head; // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°
while curr <> NIL do begin
n := n + 1;
st := st + curr^.f_name + ' ' + curr^.1_name+#13;
curr := curr^.next; // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ
end;
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° add, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-Π·Π°ΠΏΠΈΡΡ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π΅Π΅ ΠΏΠΎΠ»ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ head.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ·Π΅Π», Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ·Π»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΠΌ ΡΠ·Π»ΠΎΠΌ (ΡΠΈΡΡΠ½ΠΎΠΊ 4).
Π ΠΈΡΡΠ½ΠΎΠΊ 4. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ·Π΅Π» ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ·Π»Π° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠ°Ρ ΠΈΠΌ ΠΏΠ°ΠΌΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½Π°. ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΈΠ½ΠΎΠ³Π΄Π° Π³ΠΎΠ²ΠΎΡΡΡ, «ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ», Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ dispose. Π£ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ dispose ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. ΠΠ°ΠΌΡΡΡ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠ°Ρ ΡΡΠΎΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½Π°. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
Var Ρ: ^integer;
begin
new (p);
{ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ }
dispose (p);
end
1.2 ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΊΠ°Π·ΠΎΠ² Π½Π° ΠΏΠΎΠΊΡΠΏΠΊΡ ΡΠΎΠ²Π°ΡΠΎΠ² Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΊΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ: Π½ΠΎΠΌΠ΅Ρ Π·Π°ΠΊΠ°Π·Π°, Π°Π΄ΡΠ΅Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ, Π²ΡΠ΅ΠΌΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ (ΠΎΡ…, Π΄ΠΎ …), ΠΎΠ±ΡΠ΅ΠΌ Π·Π°ΠΊΠ°Π·Π° Π² ΠΌ3, Π²Π΅Ρ Π² ΠΊΠ³. Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΡΡΡΠ΅ΡΠΎΠ². ΠΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ: Π½ΠΎΠΌΠ΅Ρ ΠΊΡΡΡΠ΅ΡΠ°, Π€ΠΠ ΠΊΡΡΡΠ΅ΡΠ°, Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ (ΠΎΡ…, Π΄ΠΎ …), Π³ΡΡΠ·ΠΎΠΏΠΎΠ΄ΡΠ΅ΠΌΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ, max ΠΎΠ±ΡΠ΅ΠΌ Π³ΡΡΠ·Π° Π·Π° ΠΎΠ΄Π½Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΡ. Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ:
Β· ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π·Π°ΠΊΠ°Π·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΡΡΡΠ΅ΡΠ°ΠΌΠΈ;
Β· ΠΡΠ΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΊΡΡΡΠ΅ΡΠ°;
Β· ΠΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ, ΡΠ΄Π°Π»ΡΡΡ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠΏΠΈΡΠΊΠΎΠ², Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΏΠΈΡΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ
2. Π ΠΠΠ ΠΠΠΠ’ΠΠ ΠΠΠΠΠ ΠΠ’ΠΠ
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΈ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π±ΡΠ»ΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ Π²ΠΎΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΡΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ListZakStringGrid, Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½ΠΈΡ , ΡΠ΅ΠΊΡΡΠΎΠ²Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ MemoCour, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π·Π°ΠΊΠ°Π·ΠΎΠ² ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΡΡΡΠ΅ΡΠ°, ΡΠΏΠΈΡΠΊΠΈ FIOCourListBox, OtTimeCourListBox, DoTimeCourListBox, WeightCourListBox ΠΈ VolumeCourListBox Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ ΠΎ ΠΊΡΡΡΠ΅ΡΠ΅ ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ: ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠ΅Π½Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ, Π½Π΅ Π² ΡΡΠ΅ΡΠ± Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ.
Π£ΡΠ»ΠΎΠ²Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° 3 ΡΡΠ°ΠΏΠ°:
1) ΠΠ΅ΡΠ²ΡΠΉ ΡΡΠ°ΠΏ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΡΠΏΠΈΡΠΊΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΎ ΠΊΡΡΡΠ΅ΡΠ°Ρ ΠΈ Π·Π°ΠΊΠ°Π·Π°Ρ , Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ.
2) Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ°ΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ½ΡΡΡ ΡΡΠ°ΠΏ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΡΡΡΠ΅ΡΠ°ΠΌΠΈ.
3) ΠΠ° ΡΡΠ΅ΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅, ΡΡΠ°ΠΏΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
Π Π°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ» ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΈΡΡΠ½ΠΎΠΊ 4.1.
3. Π ΠΠΠ ΠΠΠΠ’ΠΠ ΠΠ ΠΠΠ ΠΠΠΠΠΠΠ Π‘Π ΠΠΠ‘Π’ΠΠ
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΡΠ²ΡΠ·Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ ΠΊΡΡΡΠ΅ΡΠΎΠ².
Π Π·Π°ΠΏΠΈΡΠΈ zakaz ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π·Π°ΠΊΠ°Π·Π΅:
— name: string; - Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°;
— number: integer; - Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠ²Π°ΡΠ°;
— adress: string; - Π°Π΄ΡΠ΅Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π·Π°ΠΊΠ°Π·Π°;
— othour: time; - Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°;
— dohour: time; - Π΄ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π°ΠΊΠ°Π·;
— ves: integer; - Π²Π΅Ρ ΡΠΎΠ²Π°ΡΠ°;
— volume: integer; - ΠΎΠ±ΡΠ΅ΠΌ ΡΠΎΠ²Π°ΡΠ°;
— next: Tzakaz; - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°;
— addToCour: boolean; - Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π° ΠΊΠ°ΠΊΠΎΠΌΡ-Π»ΠΈΠ±ΠΎ ΠΊΡΡΡΠ΅ΡΡ;
Π Π·Π°ΠΏΠΈΡΠΈ courier ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΠΈΠ΅ ΠΊΡΡΡΠ΅ΡΠ°:
— number: integer; - Π½ΠΎΠΌΠ΅Ρ ΠΊΡΡΡΠ΅ΡΠ°;
— fiocour: string; - Π€ΠΠ ΠΊΡΡΡΠ΅ΡΠ°;
— ottime: time; - Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΡΡΡΠ΅Ρ;
— dotime: time; - Π΄ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΡΡΡΠ΅Ρ;
— Volume: integer; - ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π·Π°ΠΊΠ°Π·Π°, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΈΠΌΠΎΠ³ΠΎ ΠΊΡΡΡΠ΅ΡΠΎΠΌ;
— weight: integer; - Π³ΡΡΠ·ΠΎΠΏΠΎΠ΄ΡΠ΅ΠΌΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΠΊΡΡΡΠ΅ΡΠ°;
— next: Tcourier; - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°;
— NowWeight: integer; - ΡΠ΅ΠΊΡΡΠΈΠΉ Π²Π΅Ρ Π·Π°ΠΊΠ°Π·ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ ΠΊΡΡΡΠ΅ΡΡ;
— NowVolume: integer; - ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΉ ΠΊΡΡΡΠ΅ΡΡ;
— PointZak: TCurZakaz; - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΊΠ°Π·ΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠ΅ΡΠ°;
ΠΠΎΠ»Π΅ PointZak Π·Π°ΠΏΠΈΡΠΈ courier ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ:
— zak: Tzakaz; - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π·Π°ΠΊΠ°Π· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠ΅ΡΠ°;
— next: TCurZakaz; - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°;
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅:
istZak, listCour — ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΊΡΡΡΠ΅ΡΠΎΠ² ΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ²;
temp, current, prev — ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΠΎΡ Π²ΡΡΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΡΡ .
Π ΡΠ°Π±Π»ΠΈΡΠ΅ 1 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Π’Π°Π±Π»ΠΈΡΠ° 1 «ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ»
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | |
TMainWind.FormCreate (Sender: TObject); | Π‘ΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΊΡΡΡΠ΅ΡΠΎΠ² ΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ². | |
TMainWind.AddZakButtonClick (Sender: TObject); | ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π°. | |
TMainWind.AddCourButtonClick; | ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΡΡΡΠ΅ΡΠ°. | |
TMainWind.FormClose; | Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Ρ. | |
TMainWind.DisplayCourList; | ΠΡΠ²ΠΎΠ΄ ΡΠΏΠΈΡΠΊΠ° ΠΊΡΡΡΠ΅ΡΠΎΠ² Π² ΡΠΎΡΠΌΡ. | |
TMainWind.DisplayZakList; | ΠΡΠ²ΠΎΠ΄ ΡΠΏΠΈΡΠΊΠ° Π·Π°ΠΊΠ°Π·ΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΡ. | |
TMainWind.GetCourierByIndex; | ΠΠ°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠ΅ΡΠ°. | |
TMainWind.FIOCourListBoxClick | ΠΡΠ²ΠΎΠ΄ Π² ΡΠΎΡΠΌΡ Π²ΡΠ΅Ρ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΊΡΡΡΠ΅ΡΠ°. | |
TMainWind.AddZakazToCur (zak:TZakaz):boolean; | Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΏΠΎ ΠΊΡΡΡΠ΅ΡΠ°ΠΌ. | |
TMainWind.ChangeCourButtonClick (Sender: TObject); | Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΊΡΡΡΠ΅ΡΠ°. | |
TMainWind.DeleteCourButtonClick (Sender: TObject); | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΊΡΡΡΠ΅ΡΠ°. | |
TMainWind.ChangeZakButtonClick (Sender: TObject); | Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π·Π°ΠΊΠ°Π·Π°. | |
TMainWind.DeleteZakButtonClick (Sender: TObject); | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°. | |
4. Π Π£ΠΠΠΠΠΠ‘Π’ΠΠ ΠΠΠΠ¬ΠΠΠΠΠ’ΠΠΠ―
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ²ΠΈΠ΄ΠΈΡ ΠΎΠΊΠ½ΠΎ Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ (ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ), ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ (ΡΠΈΡΡΠ½ΠΎΠΊ 5.1).
Π ΠΈΡΡΠ½ΠΎΠΊ 5.1
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΡΡΠΎΡΠΎΠΌ. ΠΡΠ±ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ.
ΠΠ»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π·Π°ΠΊΠ°Π·Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΏΡΠ½ΠΊΡ ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ (Π ΠΈΡΡΠ½ΠΎΠΊ 5.2.) Π²Π²Π΅ΡΡΠΈ Π½ΡΠΆΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π΅Π΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΡΡΡΠ΅ΡΡ. ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΎΠΊΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΊΡΠΎΠ΅ΡΡΡ.
Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΡΡΡΠ΅ΡΠ°. ΠΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π½Π΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΡΠΌΡ.
ΠΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠΎΡΠΌΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΡΡΡΠ΅ΡΠ°/Π·Π°ΠΊΠ°Π·Π°. ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ Π²ΠΈΠ΄Π΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 5.2.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠΎΡΠΌ.
ΠΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ»Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ.
ΠΡΠΎΡΠ΅Π΅. ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ°ΠΉΠ»Ρ courierΠΈ zakaz Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
1.ΠΠΎΠ±ΡΠΎΠ²ΡΠΊΠΈΠΉ, Π‘.Π., Delphi 7. Π£ΡΠ΅Π±Π½ΡΠΉ ΠΊΡΡΡ. — Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2004. 736Ρ.
2.Π€Π°ΡΠΎΠ½ΠΎΠ², Π. Π. Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Ρ 7.0. ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΡΡΡ. Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ / Π. Π. Π€Π°ΡΠΎΠ½ΠΎΠ². Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ «ΠΠΠ Π³ΡΡΠΏΠΏ», 2003. — 616Ρ.
3.ΠΠ»ΡΡ ΠΎΠ²Π° Π. Π., Π€Π°Π΄Π΅Π΅Π²Π°Π.Π., Π€Π°Π΄Π΅Π΅Π²Π°Π.Π. ΠΡΠ½ΠΎΠ²Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΠ°Π±. ΠΡΠ°ΠΊΡΠΈΠΊΡΠΌ Π΄Π»Ρ ΡΡΡΠ΄. ΡΠΏΠ΅Ρ. I-40 01 01 «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ» Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΡ. Π 4 Ρ. Π§.2. -ΠΠ½.: ΠΠΠ£ΠΠ , 2005.
ΠΠ ΠΠΠΠΠΠΠΠ
Π’ΠΠΠ‘Π’ ΠΠ ΠΠΠ ΠΠΠΠ«
unit MainWindowUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, NewOrderUnit, GlobalTypes, NewCourierUnit,
EditCourUnit, Grids, EditZakUnit;
type
TMainWind = class (TForm)
TableGroupBox: TGroupBox;
GroupBox2: TGroupBox;
ZakazGroupBox: TGroupBox;
AddCourButton: TButton;
ChangeCourButton: TButton;
DeleteCourButton: TButton;
AddZakButton: TButton;
ChangeZakButton: TButton;
DeleteZakButton: TButton;
MemoCour: TMemo;
FIOCourListBox: TListBox;
OtTimeCourListBox: TListBox;
DoTimeCourListBox: TListBox;
VolumeCourListBox: TListBox;
WeightCourListBox: TListBox;
FIOCourLabel: TLabel;
OtTimeCourLabel: TLabel;
DoTimeCourLabel: TLabel;
VolumeCourLabel: TLabel;
WeightCourLabel: TLabel;
ZakListLabel: TLabel;
ListZakStringGrid: TStringGrid;
procedure AddZakButtonClick (Sender: TObject);
procedure AddCourButtonClick (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure FormCreate (Sender: TObject);
procedure DisplayCourList;
Procedure DisplayZakList;
Procedure Number;
Procedure NumberZak;
procedure FIOCourListBoxClick (Sender: TObject);
procedure OtTimeCourListBoxClick (Sender: TObject);
procedure DoTimeCourListBoxClick (Sender: TObject);
procedure VolumeCourListBoxClick (Sender: TObject);
procedure WeightCourListBoxClick (Sender: TObject);
function AddZakazToCur (zak:TZakaz):boolean;
function GetCourierByIndex (index:integer;var prevCour: Tcourier):TCourier;
procedure ChangeCourButtonClick (Sender: TObject);
procedure DeleteCourButtonClick (Sender: TObject);
procedure ChangeZakButtonClick (Sender: TObject);
procedure DeleteZakButtonClick (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainWind: TMainWind;
zak:zakaz;
cour:courier;
listZak:Tzakaz;
listCour:TCourier;
implementation
{$R *.dfm}
{ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π°}
procedure TMainWind. AddZakButtonClick (Sender: TObject);
var
temp, current, prev: Tzakaz;
i:integer;
begin
NewZakForm.ShowModal;
if (NewOrderUnit.ifAddButClick=true) then
begin
temp:=NewOrderUnit.newZak;
temp.addToCour:=false;
AddZakazToCur (temp);
If ListZak=nil then
begin
ListZak:=temp;
ListZak.number:=1;
ListZak.next:=nil;
end
else
begin
i:=1;
current:=ListZak;
While current<>nil do
begin
if current.dohour.hour>temp.dohour.hour then
break
else
if current.dohour.hour=temp.dohour.hour then
if current.dohour.min>=temp.dohour.min then
break;
prev:=current;
current:=current.next;
inc (i);
end;
if i=1 then
begin
temp.next:=listZak;
listZak:=temp;
end
else
begin
temp.next:=current;
prev.next:=temp;
end;
end;
numberZak;
DisplayZakList;
end;
end;
{ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΡΡΡΠ΅ΡΠ°}
procedure TMainWind. AddCourButtonClick (Sender: TObject);
var
tempCour, CurrCour, PrevCour: TCourier;
j:integer;
begin
NewCourForm.ShowModal;
if (NewCourierUnit.ifAddButClick=true) then
begin
tempCour:=NewCourierUnit.NewCour;
If ListCour=nil then
begin
ListCour:=tempCour;
ListCour.number:=1;
ListCour.next:=nil;
end
else
begin
j:=1;
currCour:=ListCour;
While currCour<>nil do
begin
if currCour.dotime.hour>tempCour.dotime.hour then
break
else
if currCour.dotime.hour=tempCour.dotime.hour then
if currCour.dotime.min>=tempCour.dotime.min then
break;
prevCour:=currCour;
currCour:=currCour.next;
inc (j);
end;
if j=1 then
begin
tempCour.next:=ListCour;
ListCour:=tempCour;
end
else
begin
tempCour.next:=currCour;
prevCour.next:=tempCour;
end;
end;
Number;
DisplayCourList;
end;
end;
{Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»}
procedure TMainWind. FormClose (Sender: TObject; var Action: TCloseAction);
var
f1:textfile;
currZak:Tzakaz;
currCur:TCourier;
begin
assignfile (f1,'zakaz.txt');
rewrite (f1);
currZak:=listZak;
while currZak<>nil do
begin
writeln (f1,currZak.number);
writeln (f1,currZak.name);
writeln (f1,currZak.adress);
writeln (f1,currZak.othour.hour);
writeln (f1,currZak.othour.min);
writeln (f1,currZak.dohour.hour);
writeln (f1,currZak.dohour.min);
writeln (f1,currZak.volume);
writeln (f1,currZak.ves);
currZak:=currZak.next;
end;
closefile (f1);
assignfile (f1,'courier.txt');
rewrite (f1);
currCur:=listCour;
while currCur<>nil do
begin
writeln (f1,currCur.number);
writeln (f1,currCur.fiocour);
writeln (f1,currCur.ottime.hour);
writeln (f1,currCur.ottime.min);
writeln (f1,currCur.dotime.hour);
writeln (f1,currCur.dotime.min);
writeln (f1,currCur.volume);
writeln (f1,currCur.weight);
currCur:=currCur.next;
end;
closefile (f1);
end;
{Π‘ΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ}
procedure TMainWind. FormCreate (Sender: TObject);
var
f1:textfile;
currZak, prevZak: Tzakaz;
currCur, prevCur: TCourier;
begin
assignfile (f1,'zakaz.txt');
reset (f1);
prevZak:=nil;
while not eof (f1) do
begin
new (currZak);
readln (f1,currZak.number);
readln (f1,currZak.name);
readln (f1,currZak.adress);
readln (f1,currZak.othour.hour);
readln (f1,currZak.othour.min);
readln (f1,currZak.dohour.hour);
readln (f1,currZak.dohour.min);
readln (f1,currZak.volume);
readln (f1,currZak.ves);
currZak.addToCour:=false;
if (prevzak=nil) then
listZak:=currZak
else
prevZak.next:=currZak;
prevZak:=currZak;
end;
if (prevZak<>nil) then
prevZak.next:=nil;
closefile (f1);
NumberZak;
DisplayZakList;
assignfile (f1,'courier.txt');
reset (f1);
prevCur:=nil;
while not eof (f1) do
begin
new (currCur);
readln (f1,currCur.number);
readln (f1,currCur.fiocour);
readln (f1,currCur.ottime.hour);
readln (f1,currCur.ottime.min);
readln (f1,currCur.dotime.hour);
readln (f1,currCur.dotime.min);
readln (f1,currCur.volume);
readln (f1,currCur.weight);
currCur.NowWeight:=0;
currCur.NowVolume:=0;
currCur.PointZak:=nil;
if (prevCur=nil) then
listCour:=currCur
else
prevCur.next:=currCur;
prevCur:=currCur;
end;
if (prevCur<>nil) then
prevCur.next:=nil;
closefile (f1);
currZak:=listZak;
while (currZak<>nil) do
begin
AddZakazToCur (currZak);
currZak:=currZak.next;
end;
Number;
DisplayCourList;
end;
{ΠΡΠ²ΠΎΠ΄ ΡΠΏΠΈΡΠΊΠ° ΠΊΡΡΡΠ΅ΡΠΎΠ² Π² ΡΠΎΡΠΌΡ}
procedure TMainWind. DisplayCourList;
var
CurrCourList:TCourier;
begin
FIOCourListBox.Clear;
OtTimeCourListBox.Clear;
DoTimeCourListBox.Clear;
VolumeCourListBox.Clear;
WeightCourListBox.Clear;
CurrCourList:=ListCour;
while CurrCourList<>nil do
begin
FIOCourListBox.Items.Add (IntToStr (CurrCourList.number)+')'+CurrCourList.fiocour);
OtTimeCourListBox.Items.Add ('Hour:'+IntToStr (CurrCourList.ottime.hour)+' Min:'+IntToStr (CurrCourList.ottime.min));
DoTimeCourListBox.Items.Add ('Hour:'+IntToStr (CurrCourList.dotime.hour)+' Min:'+IntToStr (CurrCourList.dotime.min));
VolumeCourListBox.Items.Add (IntToStr (CurrCourList.Volume));
WeightCourListBox.Items.Add (IntToStr (CurrCourList.Weight));
CurrCourList:=CurrCourList.next;
end;
end;
//Π²ΡΠ²ΠΎΠ΄ ΡΠΏΠΈΡΠΊΠ° Π·Π°ΠΊΠ°Π·ΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΡ//
Procedure TMainWind. DisplayZakList;
var
currZak:TZakaz;
i:integer;
begin
for i:=0 to ListZakStringGrid. RowCount-1 do
ListZakStringGrid.Rows[i]. Clear;
with ListZakStringGrid do
begin
Cells[0,0]: ='?';
Cells[1,0]:='Eiy';
Cells[2,0]:='aa?an';
Cells[3,0]:='a?aiy ';
Cells[4,0]: ='ainoaaee n:';
Cells[5,0]: ='ai:';
Cells[7,0]:='aan';
Cells[8,0]:='iauai';
end;
currZak:=ListZak;
while currZak<>nil do
begin
with ListZakStringGrid do
begin
Cells[0,currZak.number]: =IntToStr (currZak.number);
Cells[1,currZak.number]:=currZak.name;
Cells[2,currZak.number]:=currZak.adress;
Cells[3,currZak.number]:=IntToStr (currZak.othour.hour);
Cells[4,currZak.number]:=IntToStr (currZak.othour.min);
Cells[5,currZak.number]:=IntToStr (currZak.dohour.hour);
Cells[6,currZak.number]:=IntToStr (currZak.dohour.min);
Cells[7,currZak.number]:=IntToStr (currZak.ves);
Cells[8,currZak.number]:=IntToStr (currZak.volume);
end;
currZak:=currZak.next;
end;
end;
{ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΊΡΡΡΠ΅ΡΠ°ΠΌ}
Procedure TMainWind. Number;
var
CurrCourList:Tcourier;
i:integer;
begin
i:=1;
CurrCourList:=ListCour;
while CurrCourList<>nil do
begin
CurrCourList.number:=i;
CurrCourList:=CurrCourList.next;
inc (i);
end;
end;
{ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π·Π°ΠΊΠ°Π·Π°ΠΌ}
Procedure TMainWind. NumberZak;
var
CurrZakList:TZakaz;
i:integer;
begin
i:=1;
CurrZakList:=ListZak;
while CurrZakList<>nil do
begin
CurrZakList.number:=i;
CurrZakList:=CurrZakList.next;
inc (i);
end;
end;
procedure TMainWind. FIOCourListBoxClick (Sender: TObject);
var
curZak:TCurZakaz;
prev:Tcourier;
begin
IF FIOCourListBox. ItemIndex>=0 then
begin
DoTimeCourListBox.ItemIndex:=FIOCourListBox.ItemIndex;
OtTimeCourListBox.ItemIndex:=FIOCourListBox.ItemIndex;
VolumeCourListBox.ItemIndex:=FIOCourListBox.ItemIndex;
WeightCourListBox.ItemIndex:=FIOCourListBox.ItemIndex;
MemoCour.Clear;
curZak:=GetCourierByIndex (FIOCourListBox.ItemIndex, prev).PointZak;
while (curZak<>nil)do
begin
MemoCour.Lines.Add (curZak.zak.name+' '+curZak.zak.adress+' n:'+IntToStr (curZak.zak.othour.hour)+'.'+IntToStr (curZak.zak.othour.min)+' ai:'+IntToStr (curZak.zak.dohour.hour)+'.'+IntToStr (curZak.zak.dohour.min)+' aan:'+IntToStr (curZak.zak.ves)+' iauai:'+IntToStr (curZak.zak.volume));
curZak:=curZak.next;
end;
end;
end;
{Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠ΅ΡΠ°}
function TMainWind. GetCourierByIndex (index:integer;var prevCour: Tcourier):TCourier;
var
temp, curCour: Tcourier;
i:integer;
begin
curCour:=listCour;
i:=0;
while (i<>nil) do
begin
prevCour:=CurCour;
CurCour:=curCour.next;
inc (i);
end;
GetCourierByIndex:=curCour;
end;
procedure TMainWind. OtTimeCourListBoxClick (Sender: TObject);
var
curZak:TCurZakaz;
prev:Tcourier;
begin
IF OtTimeCourListBox. ItemIndex>=0 then
begin
FIOCourListBox.ItemIndex:=OtTimeCourListBox.ItemIndex;
DoTimeCourListBox.ItemIndex:=OtTimeCourListBox.ItemIndex;
VolumeCourListBox.ItemIndex:=OtTimeCourListBox.ItemIndex;
WeightCourListBox.ItemIndex:=OtTimeCourListBox.ItemIndex;
MemoCour.Clear;
curZak:=GetCourierByIndex (OtTimeCourListBox.ItemIndex, prev).PointZak;
while (curZak<>nil)do
begin
MemoCour.Lines.Add (curZak.zak.name+' '+curZak.zak.adress+' n:'+IntToStr (curZak.zak.othour.hour)+'.'+IntToStr (curZak.zak.othour.min)+' ai:'+IntToStr (curZak.zak.dohour.hour)+'.'+IntToStr (curZak.zak.dohour.min)+' aan:'+IntToStr (curZak.zak.ves)+' iauai:'+IntToStr (curZak.zak.volume));
curZak:=curZak.next;
end;
end;
end;
procedure TMainWind. DoTimeCourListBoxClick (Sender: TObject);
var
curZak:TCurZakaz;
prev:Tcourier;
begin
IF DoTimeCourListBox. ItemIndex>=0 then
begin
FIOCourListBox.ItemIndex:=DoTimeCourListBox.ItemIndex;
OtTimeCourListBox.ItemIndex:=DoTimeCourListBox.ItemIndex;
VolumeCourListBox.ItemIndex:=DoTimeCourListBox.ItemIndex;
WeightCourListBox.ItemIndex:=DoTimeCourListBox.ItemIndex;
MemoCour.Clear;
curZak:=GetCourierByIndex (DoTimeCourListBox.ItemIndex, prev).PointZak;
while (curZak<>nil)do
begin
MemoCour.Lines.Add (curZak.zak.name+' '+curZak.zak.adress+' n:'+IntToStr (curZak.zak.othour.hour)+'.'+IntToStr (curZak.zak.othour.min)+' ai:'+IntToStr (curZak.zak.dohour.hour)+'.'+IntToStr (curZak.zak.dohour.min)+' aan:'+IntToStr (curZak.zak.ves)+' iauai:'+IntToStr (curZak.zak.volume));
curZak:=curZak.next;
end;
end;
end;
procedure TMainWind. VolumeCourListBoxClick (Sender: TObject);
var
curZak:TCurZakaz;
prev:Tcourier;
begin
IF VolumeCourListBox. ItemIndex>=0 then
begin
FIOCourListBox.ItemIndex:=VolumeCourListBox.ItemIndex;
OtTimeCourListBox.ItemIndex:=VolumeCourListBox.ItemIndex;
DoTimeCourListBox.ItemIndex:=VolumeCourListBox.ItemIndex;
WeightCourListBox.ItemIndex:=VolumeCourListBox.ItemIndex;
MemoCour.Clear;
curZak:=GetCourierByIndex (VolumeCourListBox.ItemIndex, prev).PointZak;
while (curZak<>nil)do
begin
MemoCour.Lines.Add (curZak.zak.name+' '+curZak.zak.adress+' n:'+IntToStr (curZak.zak.othour.hour)+'.'+IntToStr (curZak.zak.othour.min)+' ai:'+IntToStr (curZak.zak.dohour.hour)+'.'+IntToStr (curZak.zak.dohour.min)+' aan:'+IntToStr (curZak.zak.ves)+' iauai:'+IntToStr (curZak.zak.volume));
curZak:=curZak.next;
end;
end;
end;
procedure TMainWind. WeightCourListBoxClick (Sender: TObject);
var
curZak:TCurZakaz;
prev:Tcourier;
begin
IF WeightCourListBox. ItemIndex>=0 then
begin
FIOCourListBox.ItemIndex:=WeightCourListBox.ItemIndex;
OtTimeCourListBox.ItemIndex:=WeightCourListBox.ItemIndex;
DoTimeCourListBox.ItemIndex:=WeightCourListBox.ItemIndex;
VolumeCourListBox.ItemIndex:=WeightCourListBox.ItemIndex;
MemoCour.Clear;
curZak:=GetCourierByIndex (WeightCourListBox.ItemIndex, prev).PointZak;
while (curZak<>nil)do
begin
MemoCour.Lines.Add (curZak.zak.name+' '+curZak.zak.adress+' n:'+IntToStr (curZak.zak.othour.hour)+'.'+IntToStr (curZak.zak.othour.min)+' ai:'+IntToStr (curZak.zak.dohour.hour)+'.'+IntToStr (curZak.zak.dohour.min)+' aan:'+IntToStr (curZak.zak.ves)+' iauai:'+IntToStr (curZak.zak.volume));
curZak:=curZak.next;
end;
end;
end;
{ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΊΡΡΡΠ΅ΡΠ°ΠΌ}
function TMainWind. AddZakazToCur (zak:TZakaz):boolean;
var
curCur:Tcourier;
curCurZak, prevCurZak, temp: TCurZakaz;
Begin
if (zak = nil) then exit;
curCur:=listCour;
while (curCur<>nil)do
begin
if (zak.addToCour) then break;
if (curCur.Volume-curCur.NowVolume>=zak.volume) then
if (curCur.weight-curCur.NowWeight>=zak.ves) then
if (((curCur.ottime.hour<=zak.othour.min))) and
((curCur.dotime.hour>zak.othour.hour) or ((curCur.dotime.hour=zak.othour.hour) and (curCur.dotime.min>=zak.othour.min)))) or
(((curCur.ottime.hour<=zak.dohour.min))) and
((curCur.dotime.hour>zak.dohour.hour) or ((curCur.dotime.hour=zak.dohour.hour) and (curCur.dotime.min>=zak.dohour.min)))) or
(((curCur.ottime.hour>zak.othour.hour) or ((curCur.ottime.hour=zak.othour.hour) and (curCur.ottime.min>=zak.othour.min))) and
((curCur.dotime.hour<=zak.othour.min))))
then
begin
new (temp);
temp.zak:=zak;
temp.next:=curCur.PointZak;
curCur.PointZak:=temp;
curCur.NowWeight:=curCur.NowWeight+zak.ves;
curCur.NowVolume:=CurCur.NowVolume+zak.volume;
zak.addToCour:=true;
break;
end;
curCur:=curCur.next;
end;
AddZakazToCur:=zak.addToCour;
end;
{Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΡΡΠ΅ΡΠΎΠ²}
procedure TMainWind. ChangeCourButtonClick (Sender: TObject);
var
CurrListZak:TCurZakaz;
CurrZak:TZakaz;
Prev:Tcourier;
begin
tempBuffer:=GetCourierByIndex (FIOCourListBox.ItemIndex, prev);
EditCourForm.ShowModal;
if EditCourUnit. ifEditButClick=true then
begin
CurrListZak:=tempBuffer.PointZak;
tempBuffer.PointZak:=nil;
while CurrListZak<>nil do
begin
CurrListZak.zak.addToCour:=false;
CurrListZak:=CurrListZak.next;
end;
currZak:=ListZak;
while currZak<>nil do
begin
AddZakazToCur (currZak);
currZak:=currZak.next;
end;
DisplayCourList;
end;
end;
{Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΡΡΡΠ΅ΡΠΎΠ²}
procedure TMainWind. DeleteCourButtonClick (Sender: TObject);
var
DelCour, PrevCour: TCourier;
CourZakBuff:TCurZakaz;
begin
PrevCour:=nil;
DelCour:=GetCourierByIndex (FIOCourListBox.ItemIndex, prevCour);
if FIOCourListBox. ItemIndex=0 then
begin
CourZakBuff:=DelCour.PointZak;
ListCour:=DelCour.next;
dispose (DelCour);
end
else
begin
CourZakBuff:=DelCour.PointZak;
prevCour.next:=DelCour.next;
end;
while courZakBuff<>nil do
begin
CourZakBuff.zak.addToCour:=false;
AddZakazToCur (CourZakBuff.zak);
CourZakBuff:=CourZakBuff.next;
end;
number;
DisplayCourList;
end;
{Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·ΠΎΠ²}
procedure TMainWind. ChangeZakButtonClick (Sender: TObject);
var
currZak, temp: Tzakaz;
begin
If ListZakStringGrid. Row>=0 then
begin
currZak:=listZak;
while currZak. number<>ListZakStringGrid.Row do
currZak:=currZak.next;
tempBufZak:=currZak;
ChangeZakForm.ShowModal;
end;
DisplayZakList;
AddZakazToCur (tempBufZak);
end;
{Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·ΠΎΠ²}
procedure TMainWind. DeleteZakButtonClick (Sender: TObject);
var
Prev, DelZak, curZakCour: Tzakaz;
PrevZak, CurrZak: TCurZakaz;
CurrCour:Tcourier;
ifZakDelete:boolean;
begin
ifZakDelete:=false;
DelZak:=ListZak;
Prev:=nil;
while DelZak. number<>ListZakStringGrid.Row do
begin
prev:=delZak;
DelZak:=DelZak.next;
end;
currCour:=ListCour;
while CurrCour<>nil do
begin
prevZak:=nil;
currZak:=CurrCour.PointZak;
While currZak<>nil do
begin
If currZak.zak.number=DelZak.number then
begin
if prevZak=nil then
begin
CurrCour.PointZak:=CurrZak.next;
dispose (currZak);
end
else
begin
PrevZak.next:=currZak.next;
dispose (currZak);
end;
ifZakDelete:=true;
break;
end;
PrevZak:=CurrZak;
currzak:=currzak.next;
end;
if not ifZakDelete then
CurrCour:=CurrCour.next
else
break;
end;
if prev=nil then
begin
listZak:=DelZak.next;
dispose (DelZak);
end
else
begin
Prev.next:=DelZak.next;
dispose (DelZak);
end;
NumberZak;
DisplayZakList;
curZakCour:=ListZak;
while curZakCour<>nil do
begin
AddZakazToCur (CurZakCour);
curZakCour:=curZakCour.next;
end;
MemoCour.Clear;
DisplayCourList;
end;
end.
unit GlobalTypes;
interface
Type
time=record
hour:integer;
min:integer;
end;
Tzakaz=^zakaz;
zakaz=record
name:string;
number:integer;
adress:string;
othour:time;
dohour:time;
ves:integer;
volume:integer;
next:Tzakaz;
addToCour:boolean;
end;
TCurZakaz=^curZakaz;
curZakaz=record
zak:Tzakaz;
next:TCurZakaz;
end;
Tcourier=^courier;
courier=record
number:integer;
fiocour:string;
ottime:time;
dotime:time;
//time:integer;
Volume:integer;
weight:integer;
next:Tcourier;
NowWeight:integer;
NowVolume:integer;
PointZak:TCurZakaz;
end;
var
tempBuffer:Tcourier;
tempBufZak:Tzakaz;
implementation
end.
unit NewCourierUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, GlobalTypes;
type
TNewCourForm = class (TForm)
AddCourGroupBox: TGroupBox;
FIOCourEdit: TEdit;
OtHourCourEdit: TEdit;
DoHourCourEdit: TEdit;
VolCourEdit: TEdit;
WeightCourEdit: TEdit;
OtMinCourEdit: TEdit;
DoMinCourEdit: TEdit;
AddCourButton: TButton;
FIOCourLabel: TLabel;
OtTimeLabel: TLabel;
DoTimeLabel: TLabel;
VolCourLabel: TLabel;
WeightCourLabel: TLabel;
procedure FormCreate (Sender: TObject);
procedure AddCourButtonClick (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
NewCourForm: TNewCourForm;
NewCour:TCourier;
ifAddButClick: boolean;
implementation
{$R *.dfm}
procedure TNewCourForm. FormCreate (Sender: TObject);
begin
ifAddButClick:=false;
end;
procedure TNewCourForm. AddCourButtonClick (Sender: TObject);
var
FIO:string;
OtHour, OtMinute, DoHour, DoMinute, Volume, Weight: integer;
begin
ifAddButClick:=false;
FIO:=FIOCourEdit.Text;
If FIO='' then
begin
ShowMessagePos ('Wrong FIO', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
OtHour:=StrToInt (OtHourCourEdit.Text);
if (OtHour<0)or (OtHour>23) then
raise Exception. Create ('error with hour');
end;
except
ShowMessagePos ('Ioeaea a iiea? anu aey ia? aea a? aiaie ?aaiou', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
OtMinute:=StrToInt (OtMinCourEdit.Text);
if (OtMinute<0)or (OtMinute>59) then
raise Exception. Create ('error with minute');
end;
except
ShowMessagePos ('Ioeaea a iiea Ieioou aey ia? aea a? aiaie ?aaiou', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
DoHour:=StrToInt (DoHourCourEdit.Text);
if (DoHour<0)or (DoHour>23) then
raise Exception. Create ('error with Hour');
end;
except
ShowMessagePos ('Ioeaea a iiea? anu aey eiioa a? aiaie ?aaiou', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
DoMinute:=StrToInt (DoMinCourEdit.Text);
if (DoMinute<0)or (DoMinute>59) then
raise Exception. Create ('error with minute');
end;
except
ShowMessagePos ('Ioeaea a iiea Ieioou aey ia? aea a? aiaie ?aaiou', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
try
begin
if OtHour>DoHour then
raise Exception. Create ('error with time');
end;
except
ShowMessagePos ('Ioeaea ?acieou a? aiaie', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
try
begin
if (OtHour=DoHour) and (OtMinute>DoMinute) then
raise Exception. Create ('error with time');
end;
except
ShowMessagePos ('Ioeaea ?acieou a? aiaie', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
try
begin
if VolCourEdit. Text='' then
raise Exception. Create ('error with volum');
end;
except
ShowMessagePos ('Ioeaea a iiea Iauai', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
Volume:=StrToInt (VolCourEdit.Text);
If Volume<=0 then
Begin
ShowMessagePos ('Wrong volume', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
if WeightCourEdit. Text='' then
raise Exception. Create ('error with weight');
end;
except
ShowMessagePos ('Ioeaea a iiea Aan', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
Weight:=StrToInt (WeightCourEdit.Text);
If Weight<=0 then
Begin
ShowMessagePos ('Wrong weight', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
ifAddButClick:=true;
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΊΡΡΡΠ΅ΡΠΎΠ²
new (NewCour);
NewCour.fiocour:=fio;
NewCour.ottime.hour:=OtHour;
NewCour.ottime.min:=OtMinute;
NewCour.dotime.hour:=DoHour;
NewCour.dotime.min:=DoMinute;
NewCour.Volume:=volume;
NewCour.weight:=Weight;
NewCour.NowWeight:=0;
NewCour.NowVolume:=0;
NewCour.PointZak:=nil;
NewCourForm.Close ();
end;
end.
unit NewOrderUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, GlobalTypes;
type
TNewZakForm = class (TForm)
ChangeZakGroupBox: TGroupBox;
NameZakEdit: TEdit;
AdrZakEdit: TEdit;
OtHourEdit: TEdit;
DoHourEdit: TEdit;
VolEdit: TEdit;
VesEdit: TEdit;
NameZakLabel: TLabel;
AdrLabel: TLabel;
OtTimeZakLabel: TLabel;
DoTimeZakLabel: TLabel;
VolZakLabel: TLabel;
WeightZakLabel: TLabel;
NewAddZakButton: TButton;
OtMinuteEdit: TEdit;
DoMinuteEdit: TEdit;
procedure FormCreate (Sender: TObject);
procedure NewAddZakButtonClick (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
NewZakForm: TNewZakForm;
newZak:Tzakaz;
ifAddButClick:boolean;
implementation
{$R *.dfm}
procedure TNewZakForm. FormCreate (Sender: TObject);
begin
ifAddButClick:=false;
end;
procedure TNewZakForm. NewAddZakButtonClick (Sender: TObject);
var
name, adress: string;
OtHour, OtMinute, DoHour, DoMinute, Volume, Weight: integer;
begin
ifAddButClick:=false;
name:=NameZakEdit.Text;
If name='' then
begin
ShowMessagePos ('Wrong name', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
adress:=AdrZakEdit.Text;
If adress='' then
begin
ShowMessagePos ('Wrong adress', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
OtHour:=StrToInt (OtHourEdit.Text);
if (OtHour<0)or (OtHour>23) then
raise Exception. Create ('error with hour');
end;
except
ShowMessagePos ('Ioeaea a iiea? anu aey ia? aea a? aiaie ainoaaee', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
OtMinute:=StrToInt (OtMinuteEdit.Text);
if (OtMinute<0)or (OtMinute>59) then
raise Exception. Create ('error with minute');
end;
except
ShowMessagePos ('Ioeaea a iiea Ieioou aey ia? aea a? aiaie ainoaaee', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
DoHour:=StrToInt (DoHourEdit.Text);
if (DoHour<0)or (DoHour>23) then
raise Exception. Create ('error with Hour');
end;
except
ShowMessagePos ('Ioeaea a iiea? anu aey eiioa a? aiaie ainoaaee', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
DoMinute:=StrToInt (DoMinuteEdit.Text);
if (DoMinute<0)or (DoMinute>59) then
raise Exception. Create ('error with minute');
end;
except
ShowMessagePos ('Ioeaea a iiea Ieioou aey ia? aea a? aiaie ainoaaee', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
try
begin
if OtHour>DoHour then
raise Exception. Create ('error with time');
end;
except
ShowMessagePos ('Ioeaea ?acieou a? aiaie', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
try
begin
if (OtHour=DoHour) and (OtMinute>DoMinute) then
raise Exception. Create ('error with time');
end;
except
ShowMessagePos ('Ioeaea ?acieou a? aiaie', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
try
begin
if VolEdit. Text='' then
raise Exception. Create ('error with volum');
end;
except
ShowMessagePos ('Ioeaea a iiea Iauai', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
Volume:=StrToInt (VolEdit.Text);
If Volume<=0 then
Begin
ShowMessagePos ('Wrong volume', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
if VesEdit. Text='' then
raise Exception. Create ('error with weight');
end;
except
ShowMessagePos ('Ioeaea a iiea Aan', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
Weight:=StrToInt (VesEdit.Text);
If Weight<=0 then
Begin
ShowMessagePos ('Wrong weight', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
//nicaaiea nienea
ifAddButClick:=true;
New (NewZak);
NewZak.name:= name;
NewZak.adress:=adress;
NewZak.othour.hour:=othour;
NewZak.othour.min:=otminute;
NewZak.dohour.hour:=dohour;
NewZak.dohour.min:=dominute;
NewZak.volume:=volume;
NewZak.ves:=weight;
NewZakForm.Close ();
end;
end.
unit EditCourUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, GlobalTypes;
type
TEditCourForm = class (TForm)
EditCourGroupBox: TGroupBox;
EditFIOCourLabel: TLabel;
EditOtTimeLabel: TLabel;
EditDoTimeLabel: TLabel;
EditVolCourLabel: TLabel;
EditWeightCourLabel: TLabel;
EditFIOCourEdit: TEdit;
EditOtHourCourEdit: TEdit;
EditDoHourCourEdit: TEdit;
EditVolCourEdit: TEdit;
EditOtMinCourEdit: TEdit;
EditDoMinCourEdit: TEdit;
EditCourButton: TButton;
EditWeightCourEdit: TEdit;
procedure FormCreate (Sender: TObject);
procedure FormActivate (Sender: TObject);
procedure EditCourButtonClick (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
EditCourForm: TEditCourForm;
EditCour:TCourier;
ifEditButClick: boolean;
implementation
{$R *.dfm}
procedure TEditCourForm. FormCreate (Sender: TObject);
begin
ifEditButClick:=false;
end;
procedure TEditCourForm. FormActivate (Sender: TObject);
begin
EditFIOCourEdit.Text:=GlobalTypes.tempBuffer.fiocour;
EditOtHourCourEdit.Text:=IntToStr (tempBuffer.ottime.hour);
EditOtMinCourEdit.Text:=IntToStr (tempBuffer.ottime.min);
EditDoHourCourEdit.Text:=IntToStr (tempBuffer.dotime.hour);
EditDoMinCourEdit.Text:=IntToStr (tempBuffer.dotime.min);
EditVolCourEdit.Text:=IntToStr (tempBuffer.Volume);
EditWeightCourEdit.Text:=IntToStr (tempBuffer.weight);
end;
procedure TEditCourForm. EditCourButtonClick (Sender: TObject);
var
FIO:string;
OtHour, OtMinute, DoHour, DoMinute, Volume, Weight: integer;
begin
ifEditButClick:=false;
FIO:=EditFIOCourEdit.Text;
If FIO='' then
begin
ShowMessagePos ('Wrong FIO', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
OtHour:=StrToInt (EditOtHourCourEdit.Text);
if (OtHour<0)or (OtHour>23) then
raise Exception. Create ('error with hour');
end;
except
ShowMessagePos ('Ioeaea a iiea? anu aey ia? aea a? aiaie ?aaiou', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
OtMinute:=StrToInt (EditOtMinCourEdit.Text);
if (OtMinute<0)or (OtMinute>59) then
raise Exception. Create ('error with minute');
end;
except
ShowMessagePos ('Ioeaea a iiea Ieioou aey ia? aea a? aiaie ?aaiou', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
DoHour:=StrToInt (EditDoHourCourEdit.Text);
if (DoHour<0)or (DoHour>23) then
raise Exception. Create ('error with Hour');
end;
except
ShowMessagePos ('Ioeaea a iiea? anu aey eiioa a? aiaie ?aaiou', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
DoMinute:=StrToInt (EditDoMinCourEdit.Text);
if (DoMinute<0)or (DoMinute>59) then
raise Exception. Create ('error with minute');
end;
except
ShowMessagePos ('Ioeaea a iiea Ieioou aey ia? aea a? aiaie ?aaiou', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
try
begin
if OtHour>DoHour then
raise Exception. Create ('error with time');
end;
except
ShowMessagePos ('Ioeaea ?acieou a? aiaie', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
try
begin
if (OtHour=DoHour) and (OtMinute>DoMinute) then
raise Exception. Create ('error with time');
end;
except
ShowMessagePos ('Ioeaea ?acieou a? aiaie', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
try
begin
if EditVolCourEdit. Text='' then
raise Exception. Create ('error with volum');
end;
except
ShowMessagePos ('Ioeaea a iiea Iauai', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
Volume:=StrToInt (EditVolCourEdit.Text);
If Volume<=0 then
Begin
ShowMessagePos ('Wrong volume', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
if EditWeightCourEdit. Text='' then
raise Exception. Create ('error with weight');
end;
except
ShowMessagePos ('Ioeaea a iiea Aan', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
Weight:=StrToInt (EditWeightCourEdit.Text);
If Weight<=0 then
Begin
ShowMessagePos ('Wrong weight', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
ifEditButClick:=true;
tempBuffer.fiocour:=fio;
tempBuffer.ottime.hour:=OtHour;
tempBuffer.ottime.min:=OtMinute;
tempBuffer.dotime.hour:=DoHour;
tempBuffer.dotime.min:=DoMinute;
tempBuffer.Volume:=volume;
tempBuffer.weight:=Weight;
tempBuffer.NowWeight:=0;
tempBuffer.NowVolume:=0;
Close ();
end;
end.
unit EditZakUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, GlobalTypes, Grids;
type
TChangeZakForm = class (TForm)
AddGroupBox: TGroupBox;
NameZakLabel: TLabel;
AdrLabel: TLabel;
OtTimeZakLabel: TLabel;
DoTimeZakLabel: TLabel;
VolZakLabel: TLabel;
WeightZakLabel: TLabel;
NameChangeZakEdit: TEdit;
AdrChangeZakEdit: TEdit;
ChangeOtHourEdit: TEdit;
ChangeDoHourEdit: TEdit;
ChangeVolEdit: TEdit;
ChangeVesEdit: TEdit;
ChangeZakButton: TButton;
ChangeOtMinuteEdit: TEdit;
ChangeDoMinuteEdit: TEdit;
procedure FormActivate (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure ChangeZakButtonClick (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ChangeZakForm: TChangeZakForm;
IfChangeButClick: boolean;
implementation
{$R *.dfm}
procedure TChangeZakForm. FormCreate (Sender: TObject);
begin
IfChangeButClick:=false;
end;
procedure TChangeZakForm. FormActivate (Sender: TObject);
begin
NameChangeZakEdit.Text:=tempBufZak.name;
AdrChangeZakEdit.Text:=tempBufZak.adress;
ChangeOtHourEdit.Text:=IntToStr (tempBufZak.othour.hour);
ChangeOtMinuteEdit.Text:=IntToStr (tempBufZak.othour.min);
ChangeDoHourEdit.Text:=IntToStr (tempBufZak.dohour.hour);
ChangeDoMinuteEdit.Text:=IntToStr (tempBufZak.dohour.min);
ChangeVesEdit.Text:=IntToStr (tempBufZak.ves);
ChangeVolEdit.Text:=IntToStr (tempBufZak.volume);
end;
procedure TChangeZakForm. ChangeZakButtonClick (Sender: TObject);
var
name, adress: string;
OtHour, OtMinute, DoHour, DoMinute, Volume, Weight: integer;
begin
ifChangeButClick:=false;
name:=NameChangeZakEdit.Text;
If name='' then
begin
ShowMessagePos ('Wrong name', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
adress:=AdrChangeZakEdit.Text;
If adress='' then
begin
ShowMessagePos ('Wrong adress', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
OtHour:=StrToInt (ChangeOtHourEdit.Text);
if (OtHour<0)or (OtHour>23) then
raise Exception. Create ('error with hour');
end;
except
ShowMessagePos ('Ioeaea a iiea? anu aey ia? aea a? aiaie ainoaaee', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
OtMinute:=StrToInt (ChangeOtMinuteEdit.Text);
if (OtMinute<0)or (OtMinute>59) then
raise Exception. Create ('error with minute');
end;
except
ShowMessagePos ('Ioeaea a iiea Ieioou aey ia? aea a? aiaie ainoaaee', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
DoHour:=StrToInt (ChangeDoHourEdit.Text);
if (DoHour<0)or (DoHour>23) then
raise Exception. Create ('error with Hour');
end;
except
ShowMessagePos ('Ioeaea a iiea? anu aey eiioa a? aiaie ainoaaee', Left+Width div 2−50,top + Height div 2−50);
exit;
end;
try
begin
DoMinute:=StrToInt (ChangeDoMinuteEdit.Text);
if (DoMinute<0)or (DoMinute>59) then
raise Exception. Create ('error with minute');
end;
except
ShowMessagePos ('Ioeaea a iiea Ieioou aey ia? aea a? aiaie ainoaaee', Left+Width div 2−50,top+Height div 2−50);
exit;
end;
try
begin
if OtHour>DoHour then