home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS 1
/
BBS#1.iso
/
document
/
pas60pg.lzh
/
PG09.MY
< prev
next >
Wrap
Text File
|
1991-01-28
|
17KB
|
406 lines
âïÇéÇ 9.
ÅÉÄâÉÇîî¢ ê îÄäôïê.
æ¿¡Γá¬ß¿ß »α«úαá¼¼δ.
Åα«úαá¼¼á ó Turbo Pascal ¿¼ÑÑΓ Γᬫ⌐ ªÑ ó¿ñ, ¬á¬ «íΩ∩ó½Ñ¡¿Ñ
»α«µÑñπαδ, ºá ¿ß¬½ετÑ¡¿Ñ¼ ºáú«½«ó¬á »α«úαá¼¼δ ¿ ¡Ñ«í∩ºáΓѽ∞¡«ú«
»αÑñ½«ªÑ¡¿∩ uses.
»α«úαá¼¼á
│ ┌─────────┐ ┌─┐ ┌────┐ ┌─┐
└───┬─÷│ºáú«½«ó«¬├──÷│;├────┬──────────────────÷│í½«¬├──÷│.├──÷
│ │»α«úαá¼¼δ│ └─┘ ° │ ┌───────────┐ ° └────┘ └─┘
│ └─────────┘ │ └─÷│»αÑñ½«ªÑ¡¿Ñ├─┘
└────────────────────┘ │ uses │
└───────────┘
çáú«½«ó«¬ »α«úαá¼¼δ.
çáú«½«ó«¬ »α«úαá¼¼δ «»αÑñѽ∩ÑΓ ¿¼∩ »α«úαá¼¼δ ¿ ÑÑ »áαá¼ÑΓαδ.
ºáú«½«ó«¬ »α«úαá¼¼δ
│
│ ┌───────┐ ┌─────────────┐
└──÷│program├──÷│¿ñÑ¡Γ¿Σ¿¬áΓ«α├─┬──────────────────────────────÷
└───────┘ └─────────────┘ │ ┌─┐ ┌─────────┐ ┌─┐ °
└─÷│(├──÷│»áαá¼ÑΓαδ├──÷│)├─┘
└─┘ │»α«úαá¼¼δ│ └─┘
└─────────┘
┌───────────────┐
»áαá¼ÑΓαδ »α«úαá¼¼δ ────÷│ ß»¿ß«¬ ├────÷
│¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó│
└───────────────┘
àß½¿ ºáú«½«ó«¬ »α«úαá¼¼δ »α¿ßπΓßΓóπÑΓ, Γ« «¡ ∩ó½∩ÑΓß∩ τ¿ßΓ«
ñѬ«αáΓ¿ó¡«⌐ ñÑΓá½∞ε ¿ ¿ú¡«α¿απÑΓß∩ ¬«¼»¿½∩Γ«α«¼.
ÅαÑñ½«ªÑ¡¿Ñ uses.
ÅαÑñ½«ªÑ¡¿Ñ uses ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ óßÑ ¼«ñπ½¿, ¿ß»«½∞ºπѼδÑ
»α«úαá¼¼«⌐, ó¬½ετá∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¿ß»«½∞ºπѼδÑ ¼«ñ㫨 ¿ ¼«ñπ½¿,
¿ß»«½∞ºπѼδÑ φΓ¿¼¿ ¼«ñπ½∩¼¿.
┌────┐ ┌─────────────┐ ┌─┐
»αÑñ½«ªÑ¡¿Ñ uses ───÷│uses├──┬──÷│¿ñÑ¡Γ¿Σ¿¬áΓ«α├─────÷│;├───÷
└────┘ │ └─────────────┘ ° └─┘
│ ┌─┐ │
└─────÷│,├───────────┘
└─┘
î«ñπ½∞ System óßÑúñá ¿ß»«½∞ºπÑΓß∩ áóΓ«¼áΓ¿τÑ߬¿. System
αÑ὿ºπÑΓ óÑß∞ ¡¿ª¡¿⌐ πα«óÑ¡∞, »«ññÑ᪬π »α«úαá¼¼ óαѼѡ¿
óδ»«½¡Ñ¡¿∩ ñ½∩ »«ññÑ᪬¿ Γᬿσ ßαÑñßΓó, ¬á¬ Σá⌐½«óδ⌐ óó«ñ/óδó«ñ,
«íαáí«Γ¬á ßΓ᫬, «»Ñαᵿ¿ ß »½áóáεΘÑ⌐ ºá»∩Γ«⌐, ñ¿¡á¼¿τÑ߬«Ñ
αáß»αÑñѽѡ¿Ñ »á¼∩Γ¿ ¿ ñαπú¿σ. èα«¼Ñ System, Turbo Pascal αÑ὿ºπÑΓ
¼¡«ú¿Ñ ßΓá¡ñáαΓ¡δÑ ¼«ñπ½¿, Γá¬¿Ñ ¬á¬ Printer, Dos ¿ Crt. Ä¡¿ ¡Ñ
¿ß»«½∞ºπεΓß∩ áóΓ«¼áΓ¿τÑ߬¿: éδ ñ«½ª¡δ «í∩ºáΓѽ∞¡« ó¬½ετ¿Γ∞ ¿σ ó
»αÑñ½«ªÑ¡¿Ñ uses, ¡á»α¿¼Ñα:
uses Dos, Crt; {ΓÑ»Ñα∞ »«½πτÑ¡ ñ«ßΓπ» ¬ ßαÑñßΓóá¼ Dos ¿ Crt}
Å«α∩ñ«¬ »ÑαÑτ¿ß½Ñ¡¿∩ ¼«ñπ½Ñ⌐ ó uses «»αÑñѽ∩ÑΓ »«α∩ñ«¬ ¿σ
¿¡¿µ¿á½¿ºáµ¿¿. æ¼. αáºñѽ "Éáºñѽ ¿¡¿µ¿á½¿ºáµ¿¿".
C¿¡Γá¬ß¿ß ¼«ñπ½Ñ⌐.
î«ñ㫨 ∩ó½∩εΓß∩ ó Turbo Pascal «ß¡«ó«⌐ ¼«ñπ½∞¡«ú«
»α«úαá¼¼¿α«óá¡¿∩. Ä¡¿ ¿ß»«½∞ºπεΓß∩ ñ½∩ ß«ºñá¡¿∩ í¿í½¿«ΓѬ, ¬«Γ«αδÑ
¼«úπΓ ó¬½ετáΓ∞ß∩ ó αẽ¿τ¡δÑ »α«úαá¼¼δ (»α¿ φΓ«¼ ßΓá¡«ó¿Γß∩
¡Ñ«í∩ºáΓѽ∞¡δ¼ ¿¼ÑΓ∞ ó ¡á½¿τ¿¿ ¿ßσ«ñ¡δ⌐ ¬«ñ), á í«½∞Φ¿Ñ »α«úαá¼¼δ
¼«úπΓ »«ñαáºñѽ∩Γ∞ß∩ ¡á ½«ú¿τÑ߬¿ ßó∩ºá¡¡δÑ ¼«ñπ½¿.
┌─────────┐ ┌─┐ ┌──────────┐
¼«ñπ½∞ ─────÷│ºáú«½«ó«¬├──÷│;├──÷│¿¡ΓÑαΣÑ⌐ß-├───┐
│ ¼«ñπ½∩ │ └─┘ │¡δ⌐ αáºñѽ│ │
└─────────┘ └──────────┘ │
┌────────────────────────────────────┘
│ ┌──────────┐ ┌─────────────┐ ┌─┐
└─÷│ αáºñѽ ├───÷│ αáºñѽ ├──÷│.├──÷
│αÑ὿ºáµ¿¿│ │¿¡¿µ¿á½¿ºáµ¿¿│ └─┘
└──────────┘ └─────────────┘
çáú«½«ó«¬ ¼«ñπ½∩.
é ºáú«½«ó¬Ñ ¼«ñπ½∩ «»αÑñѽ∩ÑΓß∩ ¿¼∩ ¼«ñπ½∩
┌────┐ ┌────────────────────┐
ºáú«½«ó«¬ ¼«ñπ½∩ ───÷│unit│──÷│¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼«ñπ½∩│────÷
└────┘ └────────────────────┘
ê¼∩ ¼«ñπ½∩ ¿ß»«½∞ºπÑΓß∩ »α¿ ßßδ½¬Ñ ¡á ¼«ñπ½∞ ó »αÑñ½«ªÑ¡¿¿
uses. ¥Γ« ¿¼∩ ñ«½ª¡« íδΓ∞ π¡¿¬á½∞¡δ¼, Γᬠ¬á¬ ñóá ¼«ñπ½∩ ß «ñ¡¿¼
¿¼Ñ¡Ñ¼ ¡Ñ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ «ñ¡«óαѼѡ¡«.
ê¡ΓÑαΣÑ⌐ß¡δ⌐ αáºñѽ.
é ¿¡ΓÑαΣÑ⌐ß¡«¼ αáºñÑ½Ñ «íΩ∩ó½∩εΓß∩ ΓÑ ¬«¡ßΓá¡Γδ, Γ¿»δ,
»ÑαѼѡ¡δÑ, »α«µÑñπαδ ¿ Σπ¡¬µ¿¿, ¬«Γ«αδÑ ∩ó½∩εΓß∩ ú½«íá½∞¡δ¼¿, Γ«
ÑßΓ∞ ñ«ßΓπ»¡δ¼¿ «ß¡«ó¡«⌐ »α«úαá¼¼Ñ (»α«úαá¼¼Ñ ¿½¿ ¼«ñπ½ε, ¬«Γ«αδÑ
¿ß»«½∞ºπεΓ ñá¡¡δ⌐ ¼«ñπ½∞). Äß¡«ó¡á∩ »α«úαá¼¼á ¿¼ÑÑΓ ñ«ßΓπ» ¬ φΓ¿¼
φ½Ñ¼Ñ¡Γá¼, ¬á¬ Ñß½¿ íδ «¡¿ í뫨 íδ «íΩ∩ó½Ñ¡δ ó í½«¬Ñ, ¬«Γ«αδ⌐
ó¬½ετáÑΓ ú½áó¡πε »α«úαá¼¼π.
¿¡ΓÑαΣÑ⌐ß¡δ⌐ αáºñѽ
│
│ ┌─────────┐
└─÷│interfaße├─┬──────────────────────────────────────────────┬─÷
│ │ │ ┌───────────┐° ° │ ┌──────────────────┐ ° │
└─────────┘ └─÷│»αÑñ½«ªÑ¡¿Ñ├┘ │ ├─÷│αáºñѽ «íΩ∩ó½Ñ¡¿∩ ├──┤ │
│ uses │ │ │ │ ¬«¡ßΓá¡Γ │ │ │
└───────────┘ │ │ └──────────────────┘ │ │
│ │ ┌──────────────────┐ │ │
│ ├─÷│αáºñѽ «íΩ∩ó½Ñ¡¿∩ ├──┤ │
│ │ │Γ¿»«ó »ÑαѼѡ¡δσ │ │ │
│ │ └──────────────────┘ │ │
│ │ ┌──────────────────┐ │ │
│ ├─÷│αáºñѽ «íΩ∩ó½Ñ¡¿∩ ├──┤ │
│ │ │»ÑαѼѡ¡δσ │ │ │
│ │ └──────────────────┘ │ │
│ │ ┌──────────────────┐ │ │
│ └─÷│αáºñѽ ºáú«½«ó¬«ó ├──┘ │
│ │»α«µÑñπα ¿ Σπ¡¬µ¿⌐│ │
│ └──────────────────┘ │
└────────────────────────────┘
αáºñѽ ºáú«½«ó¬«ó
»α«µÑñπα ¿ Σπ¡¬µ¿⌐
│ ┌─────────┐ ┌─┐
└────┬──÷│ºáú«½«ó«¬├──────────÷│;├─┬───────────────────────÷
│ │»α«µÑñπαδ│ ° └─┘ │ ┌─────────┐ ┌─┐ °
│ └─────────┘ │ └─÷│ñ¿αÑ¬Γ¿óá├──÷│;├─┘
│ ┌─────────────────┐ │ │ inline │ └─┘
└─÷│ºáú«½«ó«¬ Σπ¡¬µ¿¿├─┘ └─────────┘
└─────────────────┘
àß½¿ »α«µÑñπαá ¿½¿ Σπ¡¬µ¿∩ ¡Ñ «íΩ∩ó½Ñ¡á ¬á¬ inline, Γ«
¿¡ΓÑαΣÑ⌐ß¡δ⌐ αáºñѽ Γ«½∞¬« »ÑαÑτ¿ß½∩ÑΓ ºáú«½«ó¬¿ »α«µÑñπα ¿
Σπ¡¬µ¿⌐. ÆÑ½á »α«µÑñπα ¿ Σπ¡¬µ¿⌐ ¡áσ«ñ∩Γß∩ ó αáºñÑ½Ñ αÑ὿ºáµ¿¿.
Éáºñѽ αÑ὿ºáµ¿¿.
é αáºñÑ½Ñ αÑ὿ºáµ¿¿ «»αÑñѽ∩εΓß∩ ¼«ñ㫨 óßÑσ ú½«íá½∞¡δσ
»α«µÑñπα ¿ Σπ¡¬µ¿⌐. é ¡Ñ¼ Γá¬ªÑ «»¿ßδóáεΓß∩ ¬«¡ßΓá¡Γδ, Γ¿»δ,
»ÑαѼѡ¡δÑ, »α«µÑñπαδ ¿ Σπ¡¬µ¿¿, ∩ó½∩εΘ¿Ñß∩ ½«¬á½∞¡δ¼¿, Γ« ÑßΓ∞
¡Ññ«ßΓπ»¡δ¼¿ «ß¡«ó¡«⌐ »α«úαá¼¼Ñ.
αáºñѽ αÑ὿ºáµ¿¿
│
│ ┌─────────┐
└─÷│implemen-├─┬────────────────────┬─────────────────────────┬─>
│ tation │ │ ┌───────────┐ ° ° │ ┌──────────────────┐ ° │ ° │
└─────────┘ └─>│»αÑñ½«ªÑ¡¿Ñ├─┘ │ ├─>│αáºñѽ «íΩ∩ó½Ñ¡¿∩ ├─┤ │
│ uses │ │ │ │ ¼ÑΓ«¬ │ │ │
└───────────┘ │ │ └──────────────────┘ │ │
│ │ ┌──────────────────┐ │ │
│ ├─>│αáºñѽ «íΩ∩ó½Ñ¡¿∩ ├─┤ │
│ │ │ ¬«¡ßΓá¡Γ │ │ │
│ │ └──────────────────┘ │ │
│ │ ┌──────────────────┐ │ │
│ ├─>│αáºñѽ «íΩ∩ó½Ñ¡¿∩ ├─┤ │
│ │ │Γ¿»«ó »ÑαѼѡ¡δσ │ │ │
│ │ └──────────────────┘ │ │
│ │ ┌──────────────────┐ │ │
│ ├─>│αáºñѽ «íΩ∩ó½Ñ¡¿∩ ├─┤ │
│ │ │»ÑαѼѡ¡δσ │ │ │
│ │ └──────────────────┘ │ │
│ │ ┌──────────────────┐ │ │
│ └─>│αáºñѽ «íΩ∩ó½Ñ¡¿∩ ├─┘ │
│ │»α«µÑñπα ¿ Σπ¡¬µ¿⌐│ │
│ └──────────────────┘ │
└───────────────────────────┘
Å« ¼Ñσá¡¿º¼π ñÑ⌐ßΓó¿∩ «íΩ∩ó½Ñ¡¿Ñ »α«µÑñπα ¿ Σπ¡¬µ¿⌐ ó
¿¡ΓÑαΣÑ⌐ß¡«¼ αáºñÑ½Ñ á¡á½«ú¿τ¡« forward «íΩ∩ó½Ñ¡¿ε, σ«Γ∩ ñ¿αÑ¬Γ¿óá
forward ¡Ñ π¬áºδóáÑΓß∩. Æᬿ¼ «íαẫ¼, φΓ¿ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿
¼«úπΓ íδΓ∞ «»αÑñѽѡδ (¿ ¬ ¡¿¼ ¼«ª¡« «íαáΘáΓ∞ß∩ ó ½εí«⌐
»«ß½Ññ«óáΓѽ∞¡«ßΓ¿) ó αáºñÑ½Ñ αÑ὿ºáµ¿¿.
Åα¿¼Ñτá¡¿Ñ: çáú«½«ó¬¿ »α«µÑñπα ¿ Σπ¡¬µ¿⌐ ¼«úπΓ íδΓ∞
ßñπí½¿α«óá¡δ ¿º ¿¡ΓÑαΣÑ⌐ß¡«ú« αáºñѽá. ìÑ«í∩ºáΓѽ∞¡« ºáñáóáΓ∞
ß»¿ß«¬ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó, ¡« Ñß½¿ óδ ßñѽ὿ φΓ«, Γ« ó ß½πτáÑ
¡Ñß««ΓóÑΓßΓó¿∩ «íΩ∩ó½Ñ¡¿∩ ó ¿¡ΓÑαΣÑ⌐ß¡«¼ αáºñÑ½Ñ ¿ αáºñѽÑ
αÑ὿ºáµ¿¿ ¬«¼»¿½∩Γ«α óδñáßΓ «Φ¿í¬π óαѼѡ¿ ¬«¼»¿½∩µ¿¿.
Éáºñѽ ¿¡¿µ¿á½¿ºáµ¿¿.
Éáºñѽ ¿¡¿µ¿á½¿ºáµ¿¿ ∩ó½∩ÑΓß∩ »«ß½Ññ¡¿¼ αáºñѽ«¼ ¼«ñπ½∩. Ä¡
¼«ªÑΓ ß«ßΓ«∩Γ∞ ½¿í« ¿º ºáαѺÑαó¿α«óá¡¡«ú« ß½«óá end (ó φΓ«¼ ß½πτáÑ
¼«ñπ½∞ ¡Ñ ß«ñÑαª¿Γ ¬«ñá ¿¡¿µ¿á½¿ºáµ¿¿), ½¿í« ¿º «»ÑαáΓ«α¡«⌐ τáßΓ¿,
¬«Γ«αá∩ ñ«½ª¡á óδ»«½¡∩Γ∞ß∩ ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ ¼«ñπ½∩.
┌───┐
αáºñѽ ¿¡¿µ¿á½¿ºáµ¿¿ ───┬──>│end├──────────────────>
│ └───┘ °
│ ┌─────────────────┐ │
└─>│«»ÑαáΓ«α¡á∩ τáßΓ∞├─┘
└─────────────────┘
ÉáºñÑ½δ ¿¡¿µ¿á½¿ºáµ¿¿ ¼«ñπ½Ñ⌐, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩
»α«úαá¼¼«⌐, óδ»«½¡∩εΓß∩ ó Γ«¼ ªÑ »«α∩ñ¬Ñ, ó ¬á¬«¼ ¼«ñ㫨 π¬áºá¡δ ó
»αÑñ½«ªÑ¡¿¿ uses.
è«ßóÑ¡¡δÑ ßß佬¿ ¡á ¿ß»«½∞ºπѼδÑ ¼«ñπ½¿.
é »αÑñ½«ªÑ¡¿¿ uses ó »α«úαá¼¼Ñ ¿½¿ ¼«ñπ½Ñ π¬áºδóáεΓß∩ ¿¼Ñ¡á
Γ«½∞¬« ΓÑσ ¼«ñπ½Ñ⌐, ¬«Γ«αδÑ ∩ó¡« ¿ß»«½∞ºπεΓß∩ φΓ¿¼ ¼«ñπ½Ñ¼ (¿½¿
»α«úαá¼¼«⌐).
Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿⌐ »α¿¼Ñα:
program Prog;
uses Unit2;
const a = b;
begin
end.
unit Unit2;
interfase
uses Unit1;
const b = c;
implementation
end.
unit Unit1;
interfase
const c = 1;
implementation
const d = 2;
end.
é »α¿óÑñÑ¡¡«¼ óδΦÑ »α¿¼ÑαÑ Unit2 ∩ó¡« ºáó¿ß¿Γ «Γ Unit1, á Prog
∩ó¡« ºáó¿ß¿Γ «Γ Unit2. ü«½ÑÑ Γ«ú«, Prog ¡Ñ∩ó¡« ºáó¿ß¿Γ «Γ Unit1
(τÑαѺ Unit2), σ«Γ∩ ¡¿ «ñ¿¡ ¿º ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, «íΩ∩ó½Ñ¡¡δσ ó
Unit1, ¡Ññ«ßΓπ»Ñ¡ Prog.
ùΓ«íδ «Γ¬«¼»¿½¿α«óáΓ∞ ¼«ñπ½∞, Turbo Pascal ñ«½ªÑ¡ ¡á⌐Γ¿ óßÑ
¼«ñπ½¿, «Γ ¬«Γ«αδσ φëà ¼«ñπ½∞ ºáó¿ß¿Γ (∩ó¡« ¿½¿ ¡Ñ∩ó¡«). Æá¬,
τΓ«íδ «Γ¬«¼»¿½¿α«óáΓ∞ Prog, ¬«¼»¿½∩Γ«α ñ«½ªÑ¡ ¡á⌐Γ¿ Unit1 ¿ Unit2,
ó »α«Γ¿ó¡«¼ ß½πτáÑ »α«¿º«⌐ñÑΓ «Φ¿í¬á.
è«úñá ó ¿¡ΓÑαΣÑ⌐ß¡πε τáßΓ∞ ¼«ñπ½∩ ó¡«ß∩Γß∩ ¿º¼Ñ¡Ñ¡¿∩, ñαπú¿Ñ
¼«ñπ½¿, ¿ß»«½∞ºπεΘ¿Ñ φëà ¼«ñπ½∞, ñ«½ª¡δ íδΓ∞ ºá¡«ó«
«Γ¬«¼»¿½¿α«óá¡δ. Äñ¡á¬«, Ñß½¿ ¿º¼Ñ¡Ñ¡¿∩ ¬«ß¡π½¿ß∞ Γ«½∞¬« αáºñѽá
αÑ὿ºáµ¿¿ ¿½¿ αáºñÑ½á ¿¡¿µ¿á½¿ºáµ¿¿, Γ« ñαπú¿Ñ ¼«ñπ½¿, ó ¬«Γ«αδσ
¿ß»«½∞ºπÑΓß∩ φëà ¼«ñπ½∞, »ÑαѬ«¼»¿½¿α«óáΓ∞ ¡Ñ ¡πª¡«. é »αÑñδñπΘѼ
»α¿¼ÑαÑ, Ñß½¿ ¿¡ΓÑαΣÑ⌐ß¡á∩ τáßΓ∞ ¼«ñπ½∩ Unit1 ¿º¼Ñ¡∩½áß∞ (¡á»α¿¼Ñα
æ = 2), Γ« ¼«ñπ½∞ Unit2 ¡πª¡« »ÑαѬ«¼»¿½¿α«óáΓ∞. 꺼ѡѡ¿Ñ ªÑ
αáºñѽá αÑ὿ºáµ¿¿ (¡á»α¿¼Ñα, D=1) ¡Ñ ΓαÑíπÑΓ »ÑαѬ«¼»¿½∩µ¿¿ Unit2.
Åα¿ ¬«¼»¿½∩µ¿¿ ¼«ñπ½∩ ó Turbo Pascal ¡á «ß¡«óÑ ¬«¡Γα«½∞¡«⌐
ßπ¼¼δ ¿¡ΓÑαΣÑ⌐ß¡«ú« αáºñѽá óδτ¿ß½∩ÑΓß∩ ¡«¼Ñα óÑαß¿¿ ¼«ñπ½∩. é
»αÑñδñπΘѼ »α¿¼ÑαÑ »α¿ ¬«¼»¿½∩µ¿¿ ¼«ñπ½∩ Unit2 ó «Γ¬«¼»¿½¿α«óá¡¡«⌐
óÑαß¿¿ ¼«ñπ½∩ Unit2 ß«σαá¡∩ÑΓß∩ ¡«¼Ñα óÑαß¿¿ ¼«ñπ½∩ Unit1. Åα¿
¬«¼»¿½∩µ¿¿ «ß¡«ó¡«⌐ »α«úαá¼¼δ ¡«¼Ñα óÑαß¿¿ ¼«ñπ½∩ Unit1
ßαáó¡¿óáÑΓß∩ ß ¡«¼Ñα«¼ óÑαß¿¿, ß«σαá¡Ñ¡¡δ¼ ó ¼«ñπ½Ñ Unit2. àß½¿
¡«¼Ñαá óÑαß¿⌐ ¡Ñ ß«ó»áñáεΓ, τΓ« ßó¿ñÑΓѽ∞ßΓóπÑΓ «í ¿º¼Ñ¡Ñ¡¿¿ ó
¿¡ΓÑαΣÑ⌐ß¡«⌐ τáßΓ¿ ¼«ñπ½∩ Unit1 ß« óαѼѡ¿ »«ß½Ññ¡Ñ⌐ ¬«¼»¿½∩µ¿¿
¼«ñπ½∩ Unit2, Γ« ¬«¼»¿½∩Γ«α, ó ºáó¿ß¿¼«ßΓ¿ «Γ αѪ¿¼á ¬«¼»¿½∩µ¿¿,
óδñáÑΓ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ ¿½¿ »ÑαѬ«¼»¿½¿απÑΓ ¼«ñπ½∞ Unit2.
èαπú«óδÑ ßß佬¿ ¼«ñπ½Ñ⌐.
鬽ετÑ¡¿Ñ »αÑñ½«ªÑ¡¿∩ uses ó αáºñÑ½Ñ αÑ὿ºáµ¿¿ ¼«ñπ½∩
»«ºó«½∩ÑΓ óἠ߬αδΓ∞ ó¡πΓαÑ¡¡¿Ñ φ½Ñ¼Ñ¡Γδ ¼«ñπ½∩, Γᬠ¬á¬ ¼«ñπ½¿,
¿ß»«½∞ºπѼδÑ ó αáºñÑ½Ñ αÑ὿ºáµ¿¿, ¡Ñó¿ñ¿¼δ ñ½∩ »«½∞º«óáΓѽÑ⌐ φΓ«ú«
¼«ñπ½∩. àΘÑ í«½ÑÑ ó᪡«, «ñ¡á¬«, τΓ« φΓ« Γá¬ªÑ »«ºó«½∩ÑΓ ß«ºñáóáΓ∞
óºá¿¼¡« ºáó¿ß¿¼δÑ ¼«ñπ½¿.
æ½ÑñπεΘá∩ »α«úαá¼¼á »«¬áºδóáÑΓ, ¬á¬ ñóá ¼«ñπ½∩ ¼«úπΓ
"¿ß»«½∞º«óáΓ∞" ñαπú ñαπúá. Äß¡«ó¡á∩ »α«úαá¼¼á, Circular, ¿ß»«½∞ºπÑΓ
¼«ñπ½∞ Display. Display ß«ñÑαª¿Γ «ñ¡π »α«úαá¼¼π, WriteXY, ¬«Γ«αá∩
¿¼ÑÑΓ Γα¿ »áαá¼ÑΓαá: »áα𠬫«αñ¿¡áΓ (X,Y) ¿ ΓѬßΓ«ó«Ñ ß««íΘÑ¡¿Ñ ñ½∩
óδó«ñá. àß½¿ Γ«τ¬á ß ¬««αñ¿¡áΓἿ (X,Y) ¡áσ«ñ¿Γß∩ ¡á φ¬αá¡Ñ, Γ«
WriteXY »ÑαÑñó¿úáÑΓ ¬παß«α ó (X,Y) ¿ óδó«ñ¿Γ ß««íΘÑ¡¿Ñ, ó »α«Γ¿ó¡«¼
ß½πτáÑ «¡á óδºδóáÑΓ »α«ßΓπε »α«úαá¼¼π - «íαáí«Γτ¿¬ «Φ¿í«¬.
ä« ß¿σ »«α ¡ÑΓ ¡¿τÑú« ß½«ª¡«ú« - WriteXY ¡áσ«ñ¿Γß∩ ó Write.
âñÑ ªÑ ºñÑß∞ óßΓαÑτáÑΓß∩ ¬απú«óá∩ ßßδ½¬á ¼«ñπ½Ñ⌐ ¿ ¬á¬
»α«úαá¼¼á-«íαáí«Γτ¿¬ «Φ¿í«¬ óδóÑñÑΓ ßó«Ñ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ?
êß»«½∞º«ó᡿Ѽ WriteXY ß¡«óá. Æᬿ¼ «íαẫ¼, ¿¼ÑÑΓß∩ WriteXY,
¬«Γ«αá∩ óδºδóáÑΓ »α«úαá¼¼π «íαáí«Γτ¿¬ «Φ¿í«¬ ShowError, ¬«Γ«αá∩
óδºδóáÑΓ WriteXY, τΓ«íδ »«¼ÑßΓ¿Γ∞ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ ¡á φ¬αá¡.
àß½¿ óáΦá ú«½«óá ºá¬απª¿½áß∞, »«ß¼«Γα¿ΓÑ ¡á ¿ßσ«ñ¡δ⌐ ¬«ñ
»α¿¼Ñαá, ¿ óδ πó¿ñ¿ΓÑ, τΓ« ºñÑß∞ ¡ÑΓ ¡¿τÑú« σ¿Γα«ú«.
Äß¡«ó¡á∩ »α«úαá¼¼á Circular, «τ¿ΘáÑΓ φ¬αá¡ ¿ Γਦñδ óδºδóáÑΓ
WriteXY :
program Circular;
{óδó«ñ¿Γ ¡á φ¬αá¡ ΓѬßΓ, ¿ß»«½∞ºπ∩ WriteXY}
uses
Crt, Display;
begin
ClrScr;
WriteXY(1, 1, 'éÑασ¡¿⌐ ½Ñóδ⌐ πú«½ φ¬αá¡á');
WriteXY(100, 100, 'çá »αÑñѽἿ φ¬αá¡á');
WriteXY(81 - Length('髺óαáΓ ¡á φ¬αá¡'), 15,
'Back to reality');
end.
Å«ß¼«Γα¿ΓÑ ¡á ¬««αñ¿¡áΓδ (X,Y) ó« óΓ«α«¼ ó맮óÑ WriteXY.
Æαπñ¡« óδóÑßΓ¿ ΓѬßΓ ó Γ«τ¬Ñ (100,100) ¡á φ¬αá¡ 80x25 ßΓ᫬. äá½ÑÑ,
ñáóá⌐ΓÑ »«ß¼«Γα¿¼, ¬á¬ αáí«ΓáÑΓ WriteXY. Åα¿óÑñѼ ¿ßσ«ñ¡δ⌐ ΓѬßΓ
¼«ñπ½∩ Display, ß«ñÑαªáΘ¿⌐ »α«µÑñπαπ WriteXY. àß½¿ ¬««αñ¿¡áΓδ (X,Y)
ñÑ⌐ßΓó¿Γѽ∞¡δ, Γ« «¡ óδó«ñ¿Γ ¡á φ¬αá¡ ß««íΘÑ¡¿Ñ; ó »α«Γ¿ó¡«¼ ß½πτáÑ
WriteXY óδó«ñ¿Γ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ :
unit Display;
{ß«ñÑαª¿Γ »α«ßΓπε »α«úαá¼¼π óδó«ñá ¡á φ¬αá¡}
interface
procedure WriteXY(X,Y: Integer; Message: String);
implementation
uses
Crt, Error;
procedure WriteXY(X,Y: Integer; Message: String);
begin
if (X in [1..80]) and (Y in [1..25]) then
begin
GoToXY(X, Y);
Write(Message);
end;
else
ShowError('ìÑ»αáó¿½∞¡δÑ ¬««αñ¿¡áΓδ WriteXY');
end;
end.
Åα«µÑñπαá ShowError, óδºδóáѼá∩ »α«µÑñπα«⌐ WriteXY,
«íΩ∩ó½Ñ¡á ó ¼«ñπ½Ñ àrror. ShowError óßÑúñá óδó«ñ¿Γ ßó«Ñ ß««íΘÑ¡¿Ñ
«í «Φ¿í¬Ñ ¡á 25 ßΓα«¬Ñ φ¬αá¡á :
unit Error;
{ß«ñÑαª¿Γ »α«ßΓπε »α«úαá¼¼π-«íαáí«Γτ¿¬ «Φ¿í«¬}
interface
procedure ShowError(ErrMsg: String);
implementation
uses
Display;
procedure ShowError(ErrMsg: String);
begin
WriteXy(1, 25, 'Error: ' + ErrMsg);
end;
end.
çá¼ÑΓ¿¼, τΓ« »αÑñ½«ªÑ¡¿Ñ uses ó αáºñѽáσ αÑ὿ºáµ¿⌐ Display ¿
Error ßßδ½áεΓß∩ ñαπú ¡á ñαπúá.
¥Γ¿ ñóá ¼«ñπ½∩ ¼«úπΓ ßßδ½áΓ∞ß∩ ñαπú ¡á ñαπúá ó ßó«¿σ αáºñѽáσ
αÑ὿ºáµ¿¿, »«Γ«¼π τΓ« Turbo Pascal ¼«ªÑΓ ¬«¼»¿½¿α«óáΓ∞ »«½¡δÑ
αáºñѽδ interface ñ½∩ «í«¿σ ¼«ñπ½Ñ⌐, ñαπú¿¼¿ ß½«óἿ Turbo Pascal
ñ«»π߬áÑΓ ßß佬π ¡á τáßΓ¿τ¡« «Γ¬«¼»¿½¿α«óá¡¡δ⌐ ¼«ñπ½∞ Ç ó αáºñѽÑ
αÑ὿ºáµ¿¿ ¼«ñπ½∩ é, »«¬á ¿¡ΓÑαΣÑ⌐ß¡δÑ αáºñÑ½δ ¼«ñπ½Ñ⌐ Ç ¿ é ¡Ñ
ºáó¿ß∩Γ ñαπú «Γ ñαπúá (¿ φΓ« ß½ÑñπÑΓ ßΓα«ú¿¼ »αáó¿½á¼ Åá߬á½∩ ñ½∩
»«α∩ñ¬á «íΩ∩ó½Ñ¡¿∩).
Éáºñѽѡ¿Ñ ñαπú¿σ «íΩ∩ó½Ñ¡¿⌐.
ÅαÑñ»«½«ª¿¼, τΓ« éδ ºáσ«Γѽ¿ ¿º¼Ñ¡¿Γ∞ WriteXY ¿ ShowError Γá¬,
τΓ«íδ óóÑßΓ¿ ñ«»«½¡¿Γѽ∞¡δ⌐ »áαá¼ÑΓα, ¬«Γ«αδ⌐ ºáñáÑΓ »α∩¼«πú«½∞¡«Ñ
«¬¡« ¡á φ¬αá¡Ñ :
procedure WriteXY(SomeWindow: WindRec; X, Y: Integer;
Message: String);
Procedure ShowError (SomeWindow: WindRec;
ErrMsg: String);
ìừ¼¡¿¼, τΓ« φΓ¿ »α«µÑñπαδ ¡áσ«ñ∩Γß∩ ó αẽ¿τ¡δσ ¼«ñπ½∩σ.
äáªÑ Ñß½¿ óδ «íΩ∩ó¿ΓÑ WindData ó ¿¡ΓÑαΣÑ⌐ßÑ «ñ¡«ú« ¼«ñπ½∩, Γ«
¡Ñ½∞º∩ ºá¬«¡¡δ¼ »πΓѼ ßñѽáΓ∞ φΓ« «íΩ∩ó½Ñ¡¿Ñ ñ«ßΓπ»¡δ¼ ó ¿¡ΓÑαΣÑ⌐ßÑ
ñαπú«ú« ¼«ñπ½∩. ÉÑΦÑ¡¿Ñ¼ φΓ«⌐ »α«í½Ñ¼δ ∩ó½∩ÑΓß∩ ß«ºñá¡¿Ñ ΓαÑΓ∞Ñú«
¼«ñπ½∩, ß«ñÑαªáΘÑú« Γ«½∞¬« «»αÑñѽѡ¿Ñ ºá»¿ß¿ «¬¡á:
unit WindData;
interface
type
WindRec = record
X1, Y1, X2, Y2: Integer;
ForeColor, BackColor: Byte;
Activ: Boolean;
end;
implementation
end.
éñ«íáó«¬ ¬ ¼«ñ¿Σ¿¬áµ¿¿ ¬«ñá WriteXY ¿ ShowError ñ½∩
¿ß»«½∞º«óá¡¿∩ ¡«ó«ú« »áαá¼ÑΓαá, ¿¡ΓÑαΣÑ⌐ß¡δÑ αáºñÑ½δ ¿ ¼«ñπ½∩
Display, ¿ ¼«ñπ½∩ Error ¼«úπΓ ΓÑ»Ñα∞ "¿ß»«½∞º«óáΓ∞" WindData. ¥Γ«
ßΓὫ 󫺼«ª¡δ¼ »«Γ«¼π, τΓ« ¼«ñπ½∞ WindData ¡Ñ ¿¼ÑÑΓ ºáó¿ß¿¼«ßΓÑ⌐ ó
»αÑñ½«ªÑ¡¿¿ uses, á ¼«ñπ½∞ Display ¿ Error ßßδ½áεΓß∩ ñαπú ¡á ñαπúá
Γ«½∞¬« ó ß««ΓóÑΓßΓóπεΘ¿σ αáºñѽáσ αÑ὿ºáµ¿¿.