home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS 1
/
BBS#1.iso
/
document
/
pas60pg.lzh
/
PG03.MY
< prev
next >
Wrap
Text File
|
1991-02-04
|
52KB
|
1,229 lines
âïÇéÇ 3
ÆêÅ¢.
Åα¿ «íΩ∩ó½Ñ¡¿¿ »ÑαѼѡ¡«⌐ ¡Ñ«íσ«ñ¿¼« π¬áºáΓ∞ ÑÑ Γ¿». Æ¿»
»ÑαѼѡ¡«⌐ «»¿ßδóáÑΓ ¡áí«α º¡áτÑ¡¿⌐, ¬«Γ«αδÑ «¡á ¼«ªÑΓ »α¿¡¿¼áΓ∞, ¿
ñÑ⌐ßΓó¿∩, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ ¡áñ ¡Ñ⌐ óδ»«½¡Ñ¡δ. ÄíΩ∩ó½Ñ¡¿Ñ Γ¿»á
«»αÑñѽ∩ÑΓ ¿ñÑ¡Γ¿Σ¿¬áΓ«α, ¬«Γ«αδ⌐ «í«º¡áτáÑΓ Γ¿».
┌───────────┐ ┌───┐ ┌─────┐ ┌───┐
«íΩ∩ó½Ñ¡¿Ñ ──÷│ ¿ñÑ¡Γ¿Σ¿- ├──÷│ = ├──÷│ Γ¿» ├──÷│ ; ├──÷
Γ¿»á │ ¬áΓ«α │ └───┘ └─────┘ └───┘
└───────────┘
┌────────────────────┐
Γ¿» ────────┬────÷│ »α«ßΓ«⌐ Γ¿» │─────────÷
│ └────────────────────┘ °
│ ┌────────────────────┐ │
├────÷│ Γ¿» π¬áºáΓѽ∩ ├────┤
│ └────────────────────┘ │
│ ┌────────────────────┐ │
├────÷│ ßΓαπ¬Γπα¡δ⌐ Γ¿» ├────┤
│ └────────────────────┘ │
│ ┌────────────────────┐ │
├────÷│ ßΓ᫬«óδ⌐ Γ¿» ├────┤
│ └────────────────────┘ │
│ ┌────────────────────┐ │
└────÷│ êñÑ¡Γ¿Σ¿¬áΓ«α Γ¿»á ├────┘
└────────────────────┘
ô¬áºá¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ó ½Ñó«⌐ τáßΓ¿ «íΩ∩ó½Ñ¡¿∩ Γ¿»á
«º¡áτáÑΓ,τΓ« «¡ «»αÑñѽѡ ¬á¬ ¿ñÑ¡Γ¿Σ¿¬áΓ«α Γ¿»á ñ½∩ í½«¬á, ó
¬«Γ«α«¼ óßΓαÑτáÑΓß∩ φΓ« «íΩ∩ó½Ñ¡¿Ñ Γ¿»á. Äí½áßΓ∞ ñÑ⌐ßΓó¿∩
¿ñÑ¡Γ¿Σ¿¬áΓ«αá Γ¿»á ¡Ñ ó¬½ετáÑΓ Ñú« ßἫú«, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ¿»á
π¬áºáΓѽ∞.
ê¼ÑÑΓß∩ 6 í«½∞Φ¿σ ¬½áßß«ó Γ¿»«ó:
- »α«ßΓδÑ Γ¿»δ;
- ßΓ᫬«óδÑ Γ¿»δ;
- ßΓαπ¬Γπα¡δÑ Γ¿»δ;
- Γ¿» π¬áºáΓѽ∞;
- »α«µÑñπα¡δÑ Γ¿»δ;
- «íΩÑ¬Γ¡δÑ Γ¿»δ.
é »«ß½ÑñπεΘ¿σ αáºñѽáσ íπñÑΓ «»¿ßá¡ ¬áªñδ⌐ ¿º φΓ¿σ ¬½áßß«ó.
Åα«ßΓδÑ Γ¿»δ
Åα«ßΓδÑ Γ¿»δ «»αÑñѽ∩εΓ π»«α∩ñ«τÑ¡¡δÑ ¼¡«ªÑßΓóá º¡áτÑ¡¿⌐.
┌────────────────────┐
»α«ßΓ«⌐ Γ¿» ─────┬────÷│ »«α∩ñ¬«óδ⌐ Γ¿» ├─────────÷
│ └────────────────────┘ °
│ ┌────────────────────┐ │
└────÷│ óÑΘÑßΓóÑ¡¡δ⌐ Γ¿» ├─────┘
└────────────────────┘
┌────────────────────┐
óÑΘÑßΓóÑ¡¡δ⌐ Γ¿» ─────÷│ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ├─────÷
│ óÑΘÑßΓóÑ¡¡«ú« Γ¿»á │
└────────────────────┘
êñÑ¡Γ¿Σ¿¬áΓ«α óÑΘÑßΓóÑ¡¡«ú« Γ¿»á «Γ¡«ß¿Γß∩ ¬ τ¿ß½π ßΓá¡ñáαΓ¡δσ
¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ Real, Single, Double, Extended
¿½¿ Comp. é ú½áóÑ 1 ¼«ª¡« ¡á⌐Γ¿ «»¿ßá¡¿Ñ, ¬á¬ ºáñáóáΓ∞ ¬«¡ßΓá¡Γδ
µÑ½«ú« ¿ óÑΘÑßΓóÑ¡¡«ú« Γ¿»«ó.
Å«α∩ñ¬«óδÑ Γ¿»δ.
Å«α∩ñ¬«óδÑ Γ¿»δ »αÑñßΓáó½∩εΓ ß«í«⌐ »«ñ¼¡«ªÑßΓó« »α«ßΓδσ Γ¿»«ó.
éßÑ »α«ßΓδÑ Γ¿»δ, «Γ½¿τ¡δÑ «Γ óÑΘÑßΓóÑ¡¡δσ Γ¿»«ó, ∩ó½∩εΓß∩
»«α∩ñ¬«ó묨 ¿ óδñѽ∩εΓß∩ »« ß½ÑñπεΘ¿¼ τÑΓδαѼ σáαá¬ΓÑα¿ßΓ¿¬á¼.
- éßÑ ó«º¼«ª¡δÑ º¡áτÑ¡¿∩ ñá¡¡«ú« »«α∩ñ¬«ó«ú« Γ¿»á »αÑñßΓáó½∩εΓ
ß«í«⌐ π»«α∩ñ«τÑ¡¡«Ñ ¼¡«ªÑßΓó«, ¿ ¬áªñ«Ñ 󫺼«ª¡«Ñ º¡áτÑ¡¿Ñ ßó∩ºá¡«
ß »«α∩ñ¬«óδ¼ ¡«¼Ñα«¼, ¬«Γ«αδ⌐ »αÑñßΓáó½∩ÑΓ ß«í«⌐ µÑ½«τ¿ß½Ñ¡¡«Ñ
º¡áτÑ¡¿Ñ. çá ¿ß¬½ετÑ¡¿Ñ¼ º¡áτÑ¡¿⌐ Γ¿»á Integer, »Ñαó«Ñ º¡áτÑ¡¿Ñ
½εí«ú« »«α∩ñ¬«ó«ú« Γ¿»á ¿¼ÑÑΓ »«α∩ñ¬«óδ⌐ ¡«¼Ñα 0, ß½ÑñπεΘÑÑ
º¡áτÑ¡¿Ñ ¿¼ÑÑΓ »«α∩ñ¬«óδ⌐ ¡«¼Ñα 1 ¿ Γᬠñá½ÑÑ ñ½∩ ¬áªñ«ú« º¡áτÑ¡¿∩
ó φΓ«¼ »«α∩ñ¬«ó«¼ Γ¿»Ñ. Å«α∩ñ¬«óδ¼ ¡«¼Ñα«¼ º¡áτÑ¡¿∩ Γ¿»á Integer
∩ó½∩ÑΓß∩ ßἫ φΓ« º¡áτÑ¡¿Ñ. é ½εí«¼ »«α∩ñ¬«ó«¼ Γ¿»Ñ ¬áªñ«¼π
º¡áτÑ¡¿ε, ¬α«¼Ñ »Ñαó«ú«, »αÑñΦÑßΓóπÑΓ ñαπú«Ñ º¡áτÑ¡¿Ñ, ¿ »«ß½Ñ
¬áªñ«ú« º¡áτÑ¡¿∩, ¬α«¼Ñ »«ß½Ññ¡Ñú«, ß½ÑñπÑΓ ñαπú«Ñ º¡áτÑ¡¿Ñ ó
ß««ΓóÑΓßΓó¿¿ ß π»«α∩ñ«τÑ¡¡«ßΓ∞ε Γ¿»á.
- è ½εí«¼π º¡áτÑ¡¿ε »«α∩ñ¬«ó«ú« Γ¿»á ¼«ª¡« »α¿¼Ñ¡¿Γ∞
ßΓá¡ñáαΓ¡πε Σπ¡¬µ¿ε Ord, ó«ºóαáΘáεΘπε »«α∩ñ¬«óδ⌐ ¡«¼Ñα φΓ«ú«
º¡áτÑ¡¿∩.
- è ½εí«¼π º¡áτÑ¡¿ε »«α∩ñ¬«ó«ú« Γ¿»á ¼«ª¡« »α¿¼Ñ¡¿Γ∞
ßΓá¡ñáαΓ¡πε Σπ¡¬µ¿ε Pred, ó«ºóαáΘáεΘπε º¡áτÑ¡¿Ñ, »αÑñΦÑßΓóπεΘÑÑ
φΓ«¼π º¡áτÑ¡¿ε. àß½¿ φΓá Σπ¡¬µ¿∩ »α¿¼Ñ¡∩ÑΓß∩ ¬ »Ñαó«¼π º¡áτÑ¡¿ε ó
φΓ«¼ »«α∩ñ¬«ó«¼ Γ¿»Ñ, Γ« óδñáÑΓß∩ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ.
- è ½εí«¼π º¡áτÑ¡¿ε »«α∩ñ¬«ó«ú« Γ¿»á ¼«ª¡« »α¿¼Ñ¡¿Γ∞
ßΓá¡ñáαΓ¡πε Σπ¡¬µ¿ε Succ, ó«ºóαáΘáεΘπε º¡áτÑ¡¿Ñ, ß½ÑñπεΘÑÑ ºá φΓ¿¼.
àß½¿ φΓá Σπ¡¬µ¿∩ »α¿¼Ñ¡∩ÑΓß∩ ¬ »«ß½Ññ¡Ñ¼π º¡áτÑ¡¿ε ó φΓ«¼
»«α∩ñ¬«ó«¼ Γ¿»Ñ, Γ« óδñáÑΓß∩ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ.
æ¿¡Γá¬ß¿ß »«α∩ñ¬«ó«ú« Γ¿»á ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ó¿ñ:
┌────────────────────┐
»«α∩ñ¬«óδ⌐ ─────┬────÷│ Γ¿» »«ññ¿á»áº«¡á ├─────────÷
Γ¿» │ └────────────────────┘ °
│ ┌────────────────────┐ │
├────÷│ »ÑαÑτ¿ß½¿¼δ⌐ Γ¿» ├─────┘
│ └────────────────────┘ │
│ ┌────────────────────┐ │
└────÷│ ¿ñÑ¡Γ¿Σ¿¬áΓ«α │ │
│ »«α∩ñ¬«ó«ú« Γ¿»á ├─────┘
└────────────────────┘
Turbo Pascal ¿¼ÑÑΓ ßѼ∞ óßΓα«Ñ¡¡δσ »«α∩ñ¬«óδσ Γ¿»«ó: Integer
(µÑ½δ⌐), Shortint (¬«α«Γ¬¿⌐ µÑ½δ⌐), Longint (ñ½¿¡¡δ⌐ µÑ½δ⌐), Byte
(ñ½¿¡«⌐ ó íá⌐Γ), Word (ñ½¿¡«⌐ ó ß½«ó«), Boolean (½«ú¿τÑ߬¿⌐) ¿ Char
(ß¿¼ó«½∞¡δ⌐). èα«¼Ñ Γ«ú«, ¿¼ÑÑΓß∩ ñóá ñαπú¿σ ¬½áßßá »«α∩ñ¬«óδσ
Γ¿»«ó, «»αÑñѽ∩Ѽδσ »«½∞º«óáΓѽѼ: »ÑαÑτ¿ß½¿¼δÑ Γ¿»δ ¿ Γ¿»δ
»«ññ¿á»áº«¡á.
ûѽ«τ¿ß½Ñ¡¡δ⌐ Γ¿»
é Turbo Pascal ¿¼ÑÑΓß∩ »∩Γ∞ óßΓα«Ñ¡¡δσ µÑ½«τ¿ß½Ñ¡¡δσ Γ¿»«ó:
Shortint (¬«α«Γ¬«Ñ µÑ½«Ñ), Integer (µÑ½«Ñ), Longint (ñ½¿¡¡«Ñ
µÑ½«Ñ), Byte (ñ½¿¡«⌐ ó íá⌐Γ) ¿ Word (ñ½¿¡«⌐ ó ß½«ó«). èáªñδ⌐ Γ¿»
«í«º¡áτáÑΓ «»αÑñѽѡ¡«Ñ »«ñ¼¡«ªÑßΓó« µÑ½δσ τ¿ßѽ, ¬á¬ φΓ« »«¬áºá¡«
ó ß½ÑñπεΘÑ⌐ Γáí½¿µÑ.
Æáí½¿µá 3.1: éßΓα«Ñ¡¡δÑ µÑ½«τ¿ß½Ñ¡¡δÑ Γ¿»δ
───────────────────────────────────────────────────────────────────
Æ¿» ä¿á»áº«¡ ö«α¼áΓ
───────────────────────────────────────────────────────────────────
Shortint -128 .. 127 8 í¿Γ«ó ß« º¡á¬«¼
Integer -32768 .. 32767 16 í¿Γ«ó ß« º¡á¬«¼
Longint -2147483648 .. 2147483647 32 í¿Γá ß« º¡á¬«¼
Byte 0 .. 255 8 í¿Γ«ó íѺ º¡á¬á
Word 0 .. 65535 16 í¿Γ«ó íѺ º¡á¬á
───────────────────────────────────────────────────────────────────
Çα¿Σ¼ÑΓ¿τÑ߬¿Ñ ñÑ⌐ßΓó¿∩ ¡áñ «»Ñαá¡ñἿ µÑ½«ú« Γ¿»á
»αÑñ»«½áúáεΓ 8-, 16- ¿ 32-í¿Γ«óπε Γ«τ¡«ßΓ∞ ó ß««ΓóÑΓßΓó¿¿ ß«
ß½ÑñπεΘ¿¼¿ »αáó¿½á¼¿:
- Æ¿» µÑ½«⌐ ¬«¡ßΓá¡Γδ »αÑñßΓáó½∩ÑΓ ß«í«⌐ óßΓα«Ñ¡¡δ⌐
µÑ½«τ¿ß½Ñ¡¡δ⌐ Γ¿» ß ¡á¿¼Ñ¡∞Φ¿¼ ñ¿á»áº«¡«¼, ó¬½ετáεΘ¿¼ º¡áτÑ¡¿Ñ φΓ«⌐
µÑ½«⌐ ¬«¡ßΓá¡Γδ;
- é ß½πτáÑ í¿¡áα¡«⌐ «»Ñαᵿ¿, «íá «»Ñαá¡ñá »αÑ«íαáºπεΓß∩ ¬ ¿σ
«íΘѼπ Γ¿»π »ÑαÑñ ΓѼ, ¬á¬ ¡áñ ¡¿¼¿ »α«¿ºó«ñ¿Γß∩ «»Ñαᵿ∩. ÄíΘ¿¼
Γ¿»«¼ ∩ó½∩ÑΓß∩ óßΓα«Ñ¡¡δ⌐ µÑ½«τ¿ß½Ñ¡¡δ⌐ Γ¿» ß ¡á¿¼Ñ¡∞Φ¿¼
ñ¿á»áº«¡«¼, ó¬½ετáεΘ¿¼ óßÑ ó«º¼«ª¡δÑ º¡áτÑ¡¿∩ «í«¿σ Γ¿»«ó.
ìá»α¿¼Ñα, «íΘ¿¼ Γ¿»«¼ ñ½∩ Integer ¿ Byte ∩ó½∩ÑΓß∩ Γ¿» Integer, á
«íΘ¿¼ Γ¿»«¼ ñ½∩ Integer ¿ Word ∩ó½∩ÑΓß∩ LongInt. äÑ⌐ßΓó¿Ñ
óδ»«½¡∩ÑΓß∩ ó ß««ΓóÑΓßΓó¿¿ ß Γ«τ¡«ßΓ∞ε «íΘÑú« Γ¿»á ¿ Γ¿»«¼
αѺπ½∞ΓáΓá ∩ó½∩ÑΓß∩ «íΘ¿⌐ Γ¿».
- éδαáªÑ¡¿Ñ ß»αáóá ó «»ÑαáΓ«αÑ »α¿ßóá¿óá¡¿∩ óδτ¿ß½∩ÑΓß∩
¡Ñºáó¿ß¿¼« «Γ αẼÑαá ¿½¿ Γ¿»á »ÑαѼѡ¡«⌐ ó ½Ñó«⌐ τáßΓ¿.
- ÅÑαÑñ óδ»«½¡Ñ¡¿Ñ¼ ½εí«⌐ áα¿Σ¼ÑΓ¿τÑ߬«⌐ «»Ñαᵿ¿ «»Ñαá¡ñ
αẼÑα«¼ ó íá⌐Γ »αÑ«íαáºπÑΓß∩ ó »α«¼ÑªπΓ«τ¡δ⌐ «»Ñαá¡ñ αẼÑα«¼ ó
ß½«ó«, τΓ« ß«ó¼ÑßΓ¿¼« ¬á¬ ß Γ¿»«¼ Integer, Γᬠ¿ ß Γ¿»«¼ Word.
ç¡áτÑ¡¿Ñ «ñ¡«ú« µÑ½«τ¿ß½Ñ¡¡«ú« Γ¿»á ¼«ªÑΓ íδΓ∞ ∩ó¡δ¼ «íαẫ¼
»αÑ«íαẫóá¡« ¬ ñαπú«¼π µÑ½«τ¿ß½Ñ¡¡«¼π Γ¿»π ß »«¼«Θ∞ε »α¿óÑñÑ¡¿∩
Γ¿»«ó (Åα¿óÑñÑ¡¿Ñ Γ¿»«ó «»¿ßδóáεΓß∩ ó ú½áóáσ 4 ¿ 6).
ï«ú¿τÑ߬¿⌐ Γ¿»
ç¡áτÑ¡¿∩ ½«ú¿τÑ߬«ú« Γ¿»á «í«º¡áτáεΓß∩ óßΓα«Ñ¡¡δ¼¿
¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ ¬«¡ßΓá¡Γ False ¿ True. ū߬«½∞¬π ½«ú¿τÑ߬¿⌐ Γ¿»
∩ó½∩ÑΓß∩ »ÑαÑτ¿ß½¿¼δ¼, ¼Ñªñπ φΓ¿¼¿ º¡áτÑ¡¿∩¼¿ ¿¼ÑεΓ ¼ÑßΓ« ß½ÑñπεΘ¿Ñ
«Γ¡«ΦÑ¡¿∩:
- False < True
- Ord(False) = 0
- Ord(True) = 1
- Succ(False) = True
- Pred(True) = False
濼ó«½∞¡δ⌐ Γ¿»
î¡«ªÑßΓó«¼ º¡áτÑ¡¿⌐ φΓ«ú« Γ¿»á ∩ó½∩εΓß∩ ß¿¼ó«½δ, π»«α∩ñ«τÑ¡¡δÑ
ó ß««ΓóÑΓßΓó¿¿ ß αáßΦ¿αÑ¡¡δ¼ ¡áí«α«¼ ß¿¼ó«½«ó ¬«ñá ASCII
(Åα¿½«ªÑ¡¿Ñ é). Åα¿ ó맮óÑ Σπ¡¬µ¿¿ Ord(Ch), úñÑ Ch - º¡áτÑ¡¿Ñ
Γ¿»á Char, ó«ºóαáΘáÑΓß∩ »«α∩ñ¬«óδ⌐ ¡«¼Ñα Ch.
æΓ᫬«óá∩ ¬«¡ßΓá¡Γá ß ñ½¿¡«⌐ 1 ¼«ªÑΓ «í«º¡áτáΓ∞ º¡áτÑ¡¿Ñ
¬«¡ßΓá¡Γδ ß¿¼ó«½∞¡«ú« Γ¿»á. ïεí«Ñ º¡áτÑ¡¿Ñ ß¿¼ó«½∞¡«ú« Γ¿»á ¼«ª¡«
»«½πτ¿Γ∞ ß »«¼«Θ∞ε ßΓá¡ñáαΓ¡«⌐ Σπ¡¬µ¿¿ Chr.
ÅÑαÑτ¿ß½¿¼δÑ Γ¿»δ
ÅÑαÑτ¿ß½¿¼δÑ Γ¿»δ «»αÑñѽ∩εΓ π»«α∩ñ«τÑ¡¡δÑ ¡áí«αδ º¡áτÑ¡¿⌐
τÑαѺ »ÑαÑτ¿ß½Ñ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, ¬«Γ«αδÑ «í«º¡áτáεΓ φΓ¿
º¡áτÑ¡¿∩. ô»«α∩ñ«τÑ¡¿Ñ ¡áí«α«ó óδ»«½¡∩ÑΓß∩ ó ß««ΓóÑΓßΓó¿¿ ß
»«ß½Ññ«óáΓѽ∞¡«ßΓ∞ε, ó ¬«Γ«α«⌐ »ÑαÑτ¿ß½∩εΓß∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ.
┌───┐ ┌───────────────┐ ┌───┐
»ÑαÑτ¿ß½¿¼δ⌐ ──÷│ ( ├───÷│ ß»¿ß«¬ ├───÷│ ) ├───÷
Γ¿» └───┘ │¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó│ └───┘
└───────────────┘
ß»¿ß«¬ ┌─────────────┐
¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ────────÷│¿ñÑ¡Γ¿Σ¿¬áΓ«α├───┬────÷
° └─────────────┘ │
│ ┌───┐ │
└──────┤ , │≈───────────┘
└───┘
Åα¿ π¬áºá¡¿¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ó ß»¿ß¬Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó
»ÑαÑτ¿ß½¿¼«ú« Γ¿»á «¡ «íΩ∩ó½∩ÑΓß∩ ¬á¬ ¬«¡ßΓá¡Γá ñ½∩ í½«¬á, ó
¬«Γ«α«¼ «íΩ∩ó½∩ÑΓß∩ »ÑαÑτ¿ß½¿¼δ⌐ Γ¿». Æ¿»«¼ φΓ«⌐ ¬«¡ßΓá¡Γδ ∩ó½∩ÑΓß∩
«íΩ∩ó½Ñ¡¡δ⌐ »ÑαÑτ¿ß½¿¼δ⌐ Γ¿».
Å«α∩ñ¬«óδ⌐ ¡«¼Ñα »ÑαÑτ¿ß½¿¼«⌐ ¬«¡ßΓá¡Γδ «»αÑñѽ∩ÑΓß∩ ÑÑ
»«º¿µ¿Ñ⌐ ó ß»¿ß¬Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó »α¿ «íΩ∩ó½Ñ¡¿¿. ÅÑαÑτ¿ß½¿¼δ⌐ Γ¿»,
ó ¬«Γ«α«¼ «»¿ßδóáÑΓß∩ ¬«¡ßΓá¡Γá, ßΓá¡«ó¿Γß∩ ÑÑ Γ¿»«¼. ÅÑαóá∩
»ÑαÑτ¿ß½¿¼á∩ ¬«¡ßΓá¡Γá ó ß»¿ß¬Ñ ¿¼ÑÑΓ »«α∩ñ¬«óδ⌐ ¡«¼Ñα 0.
Åα¿óÑñѼ »α¿¼Ñαδ »ÑαÑτ¿ß½¿¼«ú« Γ¿»á:
type
Suit = (Club, Diamond, Heart, Spade);
æ«ú½áß¡« φΓ¿¼ «íΩ∩ó½Ñ¡¿∩¼ diamond ∩ó½∩ÑΓß∩ ¬«¡ßΓá¡Γ«⌐ Γ¿»á
Suit.
Åα¿ »α¿¼Ñ¡Ñ¡¿¿ Σπ¡¬µ¿¿ Ord ¬ º¡áτÑ¡¿ε »ÑαÑτ¿ß½¿¼«ú« Γ¿»á «¡á
ó«ºóαáΘáÑΓ µÑ½«Ñ τ¿ß½«, ¬«Γ«α«Ñ »«¬áºδóáÑΓ, ¬á¬«Ñ »«½«ªÑ¡¿Ñ
ºá¡¿¼áÑΓ φΓ« º¡áτÑ¡¿Ñ »« «Γ¡«ΦÑ¡¿ε ¬ ñαπú¿¼ º¡áτÑ¡¿∩¼ φΓ«ú«
»ÑαÑτ¿ß½¿¼«ú« Γ¿»á. æ«ú½áß¡« »αÑñΦÑßΓóπεΘ¿¼ «íΩ∩ó½Ñ¡¿∩¼, Ord(Club)
ó«ºóαáΘáÑΓ 0, Ord(Diamond) ó«ºóαáΘáÑΓ 1 ¿ Γᬠñá½ÑÑ.
Æ¿» »«ññ¿á»áº«¡á
Æ¿» »«ññ¿á»áº«¡á »αÑñßΓáó½∩ÑΓ ß«í«⌐ ñ¿á»áº«¡ º¡áτÑ¡¿⌐ ¿º
»«α∩ñ¬«ó«ú« Γ¿»á, ¡áºδóáѼ«ú« ú½áó¡δ¼ Γ¿»«¼. Ä»αÑñѽѡ¿Ñ Γ¿»á
»«ññ¿á»áº«¡á ó¬½ετáÑΓ ¡á¿¼Ñ¡∞ΦÑÑ ¿ ¡á¿í«½∞ΦÑÑ º¡áτÑ¡¿∩ ó
»«ññ¿á»áº«¡Ñ; «¡« ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ß¿¡Γá¬ß¿ß:
Γ¿» ┌───────────┐ ┌────┐ ┌───────────┐
»«ññ¿á»áº«¡á ───÷│ ¬«¡ßΓá¡Γá ├───÷│ .. ├───÷│ ¬«¡ßΓá¡Γá ├───÷
└───────────┘ └────┘ └───────────┘
ÄíÑ ¬«¡ßΓá¡Γδ ñ«½ª¡δ íδΓ∞ «ñ¡«ú« »«α∩ñ¬«ó«ú« Γ¿»á. Æ¿»δ
»«ññ¿á»áº«¡á, ¿¼ÑεΘ¿Ñ ó¿ñ á .. b, ΓαÑíπεΓ, τΓ«íδ á íδ½ ¼Ñ¡∞ΦÑ ¿½¿
αáóÑ¡ b.
Åα¿óÑñѼ »α¿¼Ñαδ Γ¿»«ó »«ññ¿á»áº«¡á:
0 .. 99
-128 .. 127
Club .. Heart
ÅÑαѼѡ¡á∩ Γ¿»á »«ññ¿á»áº«¡á ¿¼ÑÑΓ óßÑ ßó«⌐ßΓóá »ÑαѼѡ¡δσ
ú½áó¡«ú« Γ¿»á, «ñ¡á¬« ÑÑ º¡áτÑ¡¿Ñ ¡á φΓá»Ñ óδ»«½¡Ñ¡¿∩ ñ«½ª¡«
»α¿¡áñ½ÑªáΓ∞ π¬áºá¡¡«¼π ¿¡ΓÑαóá½π.
êº-ºá ñ«»πΘÑ¡¿∩ ¬«¡ßΓá¡Γ¡δσ óδαáªÑ¡¿⌐ 󫺡¿¬áÑΓ ß¿¡Γá¬ß¿τÑ߬á∩
¡Ñ«»αÑñѽѡ¡«ßΓ∞ Γá¼, úñÑ ßΓá¡ñáαΓ¡δ⌐ Åá߬á½∞ ñ«»π߬áÑΓ Γ«½∞¬«
»α«ßΓδÑ ¬«¡ßΓá¡Γδ. Éácß¼«Γα¿¼ ß½ÑñπεΘ¿Ñ «íΩ∩ó½Ñ¡¿∩:
const
X = 50;
Y = 10;
type
Color = (Red, Green, Blue);
Scale = (X - Y) * 2 .. (X + Y) * 2;
æ¿¡Γá¬ß¿ß ßΓá¡ñáαΓ¡«ú« Åá߬á½∩ ßΓáó¿Γ ¡Ñ»αѼѡ¡δ¼ πß½«ó¿Ñ¼,τΓ«
Ñß½¿ «»αÑñѽѡ¿Ñ Γ¿»á ¡áτὫß∞ ß ¬απú½«⌐ ߬«í¬¿, Γ« φΓ«
»ÑαÑτ¿ß½¿¼δ⌐ Γ¿», »«ñ«í¡« Γ¿»π Color, «»αÑñѽѡ¡«¼π óδΦÑ. Äñ¡á¬«
µÑ½∞ε «íΩ∩ó½Ñ¡¿∩ Scale ∩ó½∩ÑΓß∩ ºáñá¡¿Ñ Γ¿»á »«ññ¿á»áº«¡á. ÉÑΦÑ¡¿Ñ¼
φΓ«⌐ »α«í½Ñ¼δ ∩ó½∩ÑΓß∩ ½¿í« »ÑαÑñѽ¬á »Ñαó«ú« óδαáªÑ¡¿∩
»«ññ¿á»áº«¡á Γá¬, τΓ«íδ «¡« ¡Ñ ¡áτ¿¡á½«ß∞ ß ¬απú½«⌐ ߬«í¬¿, ¿½¿
ºáñá¡¿Ñ ñαπú«⌐ ¬«¡ßΓá¡Γδ, αáó¡«⌐ º¡áτÑ¡¿ε φΓ«ú« óδαáªÑ¡¿∩, ¿ ºáΓѼ
¿ß»«½∞º«óá¡¿Ñ φΓ«⌐ ¬«¡ßΓá¡Γδ ó «»αÑñѽѡ¿¿ Γ¿»á:
type
Scale = 2 * (X - Y) .. (X + Y) * 2;
éÑΘÑßΓóÑ¡¡δÑ Γ¿»δ
è óÑΘÑßΓóÑ¡¡«¼π Γ¿»π «Γ¡«ß¿Γß∩ »«ñ¼¡«ªÑßΓó« óÑΘÑßΓóÑ¡¡δσ
τ¿ßѽ, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ »αÑñßΓáó½Ñ¡δ ó Σ«α¼áΓÑ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐
ß Σ¿¬ß¿α«óá¡¡δ¼ τ¿ß½«¼ µ¿Σα. çỿß∞ º¡áτÑ¡¿∩ ó Σ«α¼áΓÑ ß »½áóáεΘÑ⌐
Γ«τ¬«⌐ «íδτ¡« ó¬½ετáÑΓ Γα¿ º¡áτÑ¡¿∩ - m, b, e - Γᬿ¼ «íαẫ¼, τΓ«
(m * b) ó ßΓѻѡ¿ e = n, úñÑ b óßÑúñá αáóÑ¡ 2, á m ¿ e ∩ó½∩εΓß∩
µÑ½«τ¿ß½Ñ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿ ó ñ¿á»áº«¡Ñ óÑΘÑßΓóÑ¡¡«ú« Γ¿»á. ¥Γ¿
º¡áτÑ¡¿∩ m ¿ e ñá½ÑÑ «»αÑñѽ∩εΓ ñ¿á»áº«¡ ¿ Γ«τ¡«ßΓ∞ óÑΘÑßΓóÑ¡¡«ú«
Γ¿»á.
ê¼ÑεΓß∩ »∩Γ∞ ó¿ñ«ó óÑΘÑßΓóÑ¡¡δσ Γ¿»«ó: Real, Single, Double,
Extended ¿ Comp.
éÑΘÑßΓóÑ¡¡δÑ Γ¿»δ αẽ¿τáεΓß∩ ñ¿á»áº«¡«¼ ¿ Γ«τ¡«ßΓ∞ε ßó∩ºá¡¡δσ
ß ¡¿¼¿ º¡áτÑ¡¿⌐ (ß¼. Γáí½¿µπ 3.2)
Æáí½¿µá 3.2 éÑΘÑßΓóÑ¡¡δÑ Γ¿»δ ñá¡¡δσ
───────────────────────────────────────────────────────────────────
Æ¿» ä¿á»áº«¡ ç¡áτáΘ¿Ñ ÉẼÑα ó
µ¿Σαδ íá⌐Γáσ
───────────────────────────────────────────────────────────────────
Real 2.9x10**-39 .. 1.7x10**38 11-12 6
Single 1.5x10**-45 .. 3.4x10**38 7-8 4
Double 5.0x10**-324 .. 1.7x10**308 15-16 8
Extended 3.4x10**-4932 .. 1.1x10**4932 19-20 10
Comp -2**63 + 1 .. 2**63 - 1 19-20 8
───────────────────────────────────────────────────────────────────
Åα¿¼Ñτá¡¿Ñ : 潫ª¡δ⌐ Γ¿» ß«ñÑαª¿Γ Γ«½∞¬« µÑ½«τ¿ß½Ñ¡¡δÑ
º¡áτÑ¡¿∩ ó ñ¿á»áº«¡Ñ «Γ -2**63 + 1 ñ« 2**63 - 1, τΓ« »α¿í½¿º¿Γѽ∞¡«
αáó¡« -9.2x10**18 ¿ 9.2x10**18.
Turbo Pascal »«ññÑনóáÑΓ ñóÑ ¼«ñѽ¿ úÑ¡Ñαᵿ¿ ¬«ñá ñ½∩
óδ»«½¡Ñ¡¿∩ ñÑ⌐ßΓó¿⌐ ¡áñ óÑΘÑßΓóÑ¡¡δ¼¿ Γ¿»á¼¿: »α«úαá¼¼¡πε ñ½∩ τ¿ßѽ
ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ¿ á»»áαáΓ¡πε ñ½∩ τ¿ßѽ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐. éδí«α
ß««ΓóÑΓßΓóπεΘÑ⌐ ¼«ñѽ¿ «ßπΘÑßΓó½∩ÑΓß∩ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ
¬«¼»¿½∩Γ«αá $N. Åα¿ «ΓßπΓßΓó¿¿ τ¿ß½«ó«ú« ß«»α«µÑßß«αá 8087
ñ¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá $E «íÑß»Ñτ¿Γ »«½¡πε φ¼π½∩µ¿ε τ¿ß½«ó«ú«
ß«»α«µÑßß«αá 8087.
Åα«úαá¼¼¡á∩ »«ññÑ᪬á τ¿ßѽ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
é ß«ßΓ«∩¡¿¿ {$N-} , ¬«Γ«α«Ñ πßΓá¡áó½¿óáÑΓß∩ »« π¼«½τá¡¿ε,
úÑ¡Ñα¿απѼδ⌐ ¬«ñ óδ»«½¡∩ÑΓ óßÑ óδτ¿ß½Ñ¡¿∩ ß óÑΘÑßΓóÑ¡¡δ¼¿ Γ¿»á¼¿
»α«úαá¼¼¡«, τÑαѺ óδº«ó »«ñ»α«úαá¼¼ í¿í½¿«ΓѬ¿ óαѼѡ¿ óδ»«½¡Ñ¡¿∩.
êº-ºá ß««íαáªÑ¡¿∩ ߬«α«ßΓ¿ ¿ αẼÑαá ¬«ñá ó φΓ«¼ ß«ßΓ«∩¡¿¿
ñ«»π߬áεΓß∩ Γ«½∞¬« ñÑ⌐ßΓó¿∩ ¡áñ »ÑαѼѡ¡δ¼¿ Γ¿»á Real
(óÑΘÑßΓóÑ¡¡δ⌐). ïεíá∩ »«»δΓ¬á «ΓΓαá¡ß½¿α«óáΓ∞ «»ÑαáΓ«αδ,
óδ»«½¡∩εΘ¿Ñ ñÑ⌐ßΓó¿∩ ¡áñ Γ¿»á¼¿ Single, Double, Extended, Comp
óδºδóáÑΓ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ.
Ç»»áαáΓ¡á∩ »«ññÑ᪬á τ¿ßѽ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
é ß«ßΓ«∩¡¿¿ {$N+} úÑ¡Ñα¿απѼδ⌐ ¬«ñ óδ»«½¡∩ÑΓ óßÑ óδτ¿ß½Ñ¡¿∩
¡áñ óÑΘÑßΓóÑ¡¡δ¼¿ Γ¿»á¼¿ ß »«¼«Θ∞ε τ¿ß½«ó«ú« ß«»α«µÑßß«αá 8087. ¥Γ«
ß«ßΓ«∩¡¿Ñ »«ºó«½∩ÑΓ ¿ß»«½∞º«óáΓ∞ óßÑ »∩Γ∞ óÑΘÑßΓóÑ¡¡δσ Γ¿»«ó.
Turbo Pascal »«ñ¬½ετáÑΓ í¿í½¿«ΓѬπ óαѼѡ¿ óδ»«½¡Ñ¡¿∩, ¬«Γ«αá∩
áóΓ«¼áΓ¿τÑ߬¿ φ¼π½¿απÑΓ τ¿ß½«ó«⌐ ß«»α«µÑßß«α 8087, Ñß½¿ «¡
«ΓßπΓßΓóπÑΓ; ñ½∩ «»αÑñѽѡ¿∩ Γ«ú« íπñÑΓ ¿½¿ ¡ÑΓ ó¬½ετÑ¡ φ¼π½∩Γ«α ó
»α«úαá¼¼π, ¿ß»«½∞ºπÑΓß∩ ñ¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá $E.
ü«½ÑÑ ñÑΓá½∞¡«Ñ «»¿ßá¡¿Ñ úÑ¡Ñαᵿ¿ ¬«ñá »α¿ á»»áαáΓ¡«⌐
»«ññÑαª¬Ñ τ¿ßѽ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ¿ φ¼π½∩µ¿¿ τ¿ß½«ó«ú«
ß«»α«µÑßß«αá 8087 óδ ¼«ªÑΓÑ ¡á⌐Γ¿ ó ú½áóÑ 14 "êß»«½∞º«óá¡¿Ñ
8087".
æΓ᫬«óδÑ Γ¿»δ
ç¡áτÑ¡¿Ñ¼ ßΓ᫬«ó«ú« Γ¿»á ∩ó½∩ÑΓß∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß¿¼ó«½«ó
ß ñ¿¡á¼¿τÑ߬¿¼ áΓα¿íπΓ«¼ ñ½¿¡δ (ó ºáó¿ß¿¼«ßΓ¿ «Γ ñÑ⌐ßΓó¿Γѽ∞¡«ú«
τ¿ß½á ß¿¼ó«½«ó »α¿ óδ»«½¡Ñ¡¿¿ »α«úαá¼¼δ) ¿ ¬«¡ßΓá¡Γ¡δ¼ áΓα¿íπΓ«¼
αẼÑαá ó ñ¿á»áº«¡Ñ «Γ 1 ñ« 255.
æΓ᫬«óδ⌐ Γ¿», «íΩ∩ó½Ñ¡¡δ⌐ íѺ áΓα¿íπΓá αẼÑαá, ¿¼ÑÑΓ
πßΓá¡«ó½Ñ¡¡δ⌐ »« π¼«½τá¡¿ε áΓα¿íπΓ αẼÑαá, αáó¡δ⌐ 255. ÆѬπΘÑÑ
º¡áτÑ¡¿Ñ áΓα¿íπΓá ñ½¿¡δ ¼«ª¡« »«½πτ¿Γ∞ ß »«¼«Θ∞ε ßΓá¡ñáαΓ¡«⌐
Σπ¡¬µ¿¿ Length.
┌──────┐
ßΓ᫬«óδ⌐ Γ¿» ───÷│string├──┬──────────────────────────────÷
└──────┘ │ °
│ ┌───┐ ┌─────┐ ┌───┐ │
└─÷│ [ ├──÷│µÑ½«Ñ├──÷│ ] ├─┘
└───┘ │íѺ │ └───┘
│º¡á¬á│
└─────┘
ÄΓ¡«ΦÑ¡¿Ñ ¼Ñªñπ ½εí묨 ñóπ¼∩ ßΓ᫬«ó묨 º¡áτÑ¡¿∩¼¿
πßΓá¡áó½¿óáÑΓß∩ ß«ú½áß¡« «Γ¡«ΦÑ¡¿ε »«α∩ñ¬á ¼Ñªñπ º¡áτÑ¡¿∩¼¿
ß¿¼ó«½«ó ó ß««ΓóÑΓßΓóπεΘ¿σ »«º¿µ¿∩σ. é ñóπσ ßΓ᫬áσ αạ«⌐ ñ½¿¡δ
¬áªñδ⌐ ß¿¼ó«½ í«½ÑÑ ñ½¿¡¡«⌐ ßΓ᫬¿ íѺ ß««ΓóÑΓßΓóπεΘÑú« ß¿¼ó«½á ó
í«½ÑÑ ¬«α«Γ¬«⌐ ßΓα«¬Ñ »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ "í«½∞ΦÑ"; ¡á»α¿¼Ñα, 'xs'
í«½∞ΦÑ, τѼ 'x'. ÅπßΓδÑ ßΓ᫬¿ ¼«úπΓ íδΓ∞ αáó¡δ Γ«½∞¬« ñαπú¿¼
»πßΓδ¼ ßΓ᫬á¼, ¿ «¡¿ ∩ó½∩εΓß∩ ßΓα«¬á¼¿ ß ¡á¿¼Ñ¡∞Φ¿¼ º¡áτÑ¡¿Ñ¼.
è ß¿¼ó«½á¼ ó ßΓα«¬Ñ ¼«ª¡« ¿¼ÑΓ∞ ñ«ßΓπ» ¬á¬ ¬ ¬«¼»«¡Ñ¡Γá¼
¼áßß¿óá, τΓ« «»¿ßδóáÑΓß∩ ó αáºñÑ½Ñ "îáßß¿óδ, ßΓ᫬¿ ¿ ¿¡ñѬßδ"
ú½áóδ 4. Ä»ÑαáΓ«αδ αáí«Γδ ß« ßΓ᫬«ó묨 Γ¿»á¼¿ «»¿ßδóáεΓß∩ ó
αáºñѽáσ "æΓ᫬«óδÑ «»ÑαáΓ«αδ" ¿ "Ä»ÑαáΓ«αδ «Γ¡«ΦÑ¡¿⌐" ú½áóδ 6.
æΓá¡ñáαΓ¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ñ½∩ αáí«Γδ ß« ßΓ᫬«ó묨 Γ¿»á¼¿
«»¿ßá¡δ ó αáºñÑ½Ñ "æΓ᫬«óδÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿" ú½áóδ 10.
æΓαπ¬Γπα¡δÑ Γ¿»δ
æΓαπ¬Γπα¡δ⌐ Γ¿», σáαá¬ΓÑਧπѼδ⌐ ¼ÑΓ«ñ«¼ ßΓαπ¬Γπα¿α«óá¡¿∩ ¿
Γ¿»á¼¿ ßó«¿σ ¬«¼»«¡Ñ¡Γ, ¿¼ÑÑΓ í«½ÑÑ «ñ¡«ú« º¡áτÑ¡¿∩. àß½¿ Γ¿»
¬«¼»«¡Ñ¡Γ ∩ó½∩ÑΓß∩ ßΓαπ¬Γπα¡δ¼, Γ« »«½πτáѼδ⌐ ó αѺπ½∞ΓáΓÑ
ßΓαπ¬Γπα¡δ⌐ Γ¿» ¿¼ÑÑΓ í«½ÑÑ «ñ¡«ú« πα«ó¡∩ ßΓαπ¬Γπα¿α«óá¡¿∩.
æΓαπ¬Γπα¡δ⌐ Γ¿» ¼«ªÑΓ ¿¼ÑΓ∞ ¡Ñ«úαá¡¿τÑ¡¡δÑ πα«ó¡¿ ßΓαπ¬Γπα¿α«óá¡¿∩.
┌───────────────┐
ßΓαπ¬Γπα¡δ⌐ ──┬────────────────┬──÷│ Γ¿» ¼áßß¿ó ├─────÷
Γ¿» │ ┌────────┐ ° │ └───────────────┘ °
└─÷│ packed ├─┘ │ ┌───────────────┐ │
└────────┘ ├──÷│ ¼¡«ªÑßΓóÑ¡¡δ⌐ ├──┤
│ │ Γ¿» │ │
│ └───────────────┘ │
│ ┌───────────────┐ │
├──÷│ Σá⌐½«óδ⌐ Γ¿» ├──┤
│ └───────────────┘ │
│ ┌───────────────┐ │
├──÷│ Γ¿» ºá»¿ß∞ ├──┤
│ └───────────────┘ │
│ ┌───────────────┐ │
└──÷│ «íΩÑ¬Γ¡δ⌐ Γ¿» ├──┘
└───────────────┘
潫ó« packed ó «íΩ∩ó½Ñ¡¿¿ ßΓαπ¬Γπα¡«ú« Γ¿»á ΓαÑíπÑΓ «Γ
¬«¼»¿½∩Γ«αá π»½«Γ¡¿Γ∞ σαá¡¿¼δÑ ñá¡¡δÑ, ñáªÑ ºá ßτÑΓ π¼Ñ¡∞ΦÑ¡¿∩
ñ«ßΓπ»á ¬ ¬«¼»«¡Ñ¡ΓÑ »ÑαѼѡ¡«⌐ φΓ«ú« Γ¿»á. 潫ó« packed ¡Ñ ¿¼ÑÑΓ
¡¿¬á¬«ú« ñÑ⌐ßΓó¿∩ ó Turbo Pascal, ó¼ÑßΓ« φΓ«ú« π»á¬«ó¬á óδ»«½¡∩ÑΓß∩
ºñÑß∞ áóΓ«¼áΓ¿τÑ߬¿ óßεñπ, úñÑ φΓ« 󫺼«ª¡«.
Åα¿¼Ñτá¡¿Ñ: îá¬ß¿¼á½∞¡δ⌐ ñ«»πßΓ¿¼δ⌐ αẼÑα ßΓαπ¬Γπα¡«ú« Γ¿»á ó
Turbo Pascal αáóÑ¡ 65520 íá⌐Γ.
Æ¿» ¼áßß¿ó
îáßß¿óδ ß«ñÑαªáΓ Σ¿¬ß¿α«óá¡¡«Ñ τ¿ß½« ¬«¼»«¡Ñ¡Γ «ñ¡«ú« Γ¿»á -
Γ¿» ¬«¼»«¡Ñ¡Γδ. ìá »α¿óÑñÑ¡¡«⌐ ¡¿ªÑ ß¿¡Γá¬ß¿τÑ߬«⌐ ñ¿áúαá¼¼Ñ Γ¿»
¬«¼»«¡Ñ¡Γδ ß½ÑñπÑΓ ºá ß½«ó«¼ of.
┌───────┐ ┌───┐ ┌───────┐ ┌───┐ ┌────┐ ┌─────┐
Γ¿» ──÷│ array ├─÷│ [ ├───÷│ Γ¿» ├─┬─÷│ ] ├─÷│ of ├─÷│ Γ¿» ├─÷
¼áßß¿ó └───────┘ └───┘ ° │¿¡ñѬßá│ │ └───┘ └────┘ └─────┘
│ └───────┘ │
│ ┌───┐ │
└────│ , │≈──┘
└───┘
Γ¿» ┌────────────────┐
¿¡ñѬßá ───÷│ »«α∩ñ¬«óδ⌐ Γ¿» ├───÷
└────────────────┘
é Γ¿»áσ ¿¡ñѬßá, »« «ñ¡«¼π ñ½∩ ¬áªñ«⌐ αẼÑα¡«ßΓ¿ ¼áßß¿óá,
π¬áºδóáÑΓß∩ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó. ä«»πßΓ¿¼δ¼¿ Γ¿»á¼¿ ¿¡ñѬßá ∩ó½∩εΓß∩
óßÑ »«α∩ñ¬«óδÑ Γ¿»δ, ºá ¿ß¬½ετÑ¡¿Ñ¼ Longint ¿ »«ññ¿á»áº«¡«ó
Longint. îáßß¿ó ¼«ªÑΓ íδΓ∞ »α«¿¡ñѬ߿α«óá¡ »« ¬áªñ«⌐ αẼÑα¡«ßΓ¿
óßѼ¿ º¡áτÑ¡¿∩¼¿ ß««ΓóÑΓßΓóπεΘÑú« Γ¿»á ¿¡ñѬßá; τ¿ß½« φ½Ñ¼Ñ¡Γ«ó
»«φΓ«¼π αáó¡« τ¿ß½π º¡áτÑ¡¿⌐ ó ¬áªñ«¼ Γ¿»Ñ ¿¡ñѬßá. ù¿ß½«
αẼÑα¡«ßΓÑ⌐ ∩ó½∩ÑΓß∩ ¡Ñ«úαá¡¿τÑ¡¡δ¼.
Åα¿óÑñѼ »α¿¼Ñα Γ¿»á ¼áßß¿ó:
array [1..100] of Real
àß½¿ Γ¿» ¬«¼»«¡Ñ¡Γδ ó Γ¿»Ñ ¼áßß¿ó Γá¬ªÑ ∩ó½∩ÑΓß∩ ¼áßß¿ó«¼, Γ«
αѺπ½∞ΓáΓ ¼«ª¡« αáßß¼áΓα¿óáΓ∞ ¬á¬ ¼áßß¿ó ¼áßß¿ó«ó ¿½¿ ¬á¬ «ñ¿¡
¼¡«ú«¼Ñα¡δ⌐ ¼áßß¿ó. ìá»α¿¼Ñα,
array [Boolean] of array [1..10] of array [Size] of Real
¿¡ΓÑα»αÑΓ¿απÑΓß∩ ¬«¼»¿½∩Γ«α«¼ Γ«τ¡« ΓᬠªÑ, ¬á¬
array [Boolean, 1..10, Size] of Real.
èα«¼Ñ Γ«ú«, óδ ¼«ªÑΓÑ óδαếΓ∞
packed array [1..10] of packed array [1..8] of Boolean
¬á¬
packed array [1..10, 1..8] of Boolean
ä½∩ ñ«ßΓπ»á ¬ φ½Ñ¼Ñ¡Γá¼ ¼áßß¿óá ¡Ñ«íσ«ñ¿¼« π¬áºáΓ∞
¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼áßß¿óá ß «ñ¡¿¼ ¿½¿ ¡Ñ߬«½∞¬¿¼¿ ¿¡ñѬßἿ ó ߬«í¬áσ
(ß¼. "îáßß¿ó, ßΓ᫬¿ ¿ ¿¡ñѬßδ" ó ú½áóÑ 4).
Æ¿» ¼áßß¿ó, ¿¼ÑεΘ¿⌐ ó¿ñ
packed array [M..N] of Char
úñÑ M ¼Ñ¡∞ΦÑ, τѼ N, ¡áºδóáÑΓß∩ π»á¬«óá¡¡δ¼ ßΓ᫬«óδ¼ Γ¿»«¼ (ß½«ó«
packed ¼«ª¡« «»πßΓ¿Γ∞, »«ß¬«½∞¬π «¡« ¡Ñ «¬áºδóáÑΓ ñÑ⌐ßΓó¿∩ ó Turbo
Pascal). ô»á¬«óá¡¡δ⌐ ßΓ᫬«óδ⌐ Γ¿» ¿¼ÑÑΓ ¡Ñ¬«Γ«αδÑ ßó«⌐ßΓóá, ¡Ñ
σáαá¬ΓÑα¡δÑ ñ½∩ ñαπú¿σ Γ¿»«ó ¼áßß¿ó«ó (ß¼. "Æ«ªñÑßΓóÑ¡¡δÑ ¿
ß«ó¼ÑßΓ¿¼δÑ Γ¿»δ" ñá½ÑÑ ó φΓ«⌐ ú½áóÑ).
Æ¿» ºá»¿ß∞
Æ¿» ºá»¿ß∞ c«ñÑαª¿Γ πßΓá¡«ó½Ñ¡¡«Ñ τ¿ß½« ¬«¼»«¡Ñ¡Γ ¿½¿ »«½Ñ⌐,
¬«Γ«αδÑ ¼«úπΓ íδΓ∞ αẽ¿τ¡δσ Γ¿»«ó. ÄíΩ∩ó½Ñ¡¿Ñ Γ¿»á ºá»¿ß∞
π¬áºδóáÑΓ Γ¿» ¬áªñ«ú« »«½∩ ¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α, ¬«Γ«αδ⌐ ¿¼Ñ¡πÑΓ »«½Ñ.
┌────────┐ ┌─────┐
Γ¿» ºá»¿ß∞ ───÷│ record ├──┬────────────────÷│ end ├──÷
└────────┘ │ ┌────────┐ ° └─────┘
└─÷│ ß»¿ß«¬ ├─┘
│ »«½Ñ⌐ │
└────────┘
ß»¿ß«¬ ┌────────────┐
»«½Ñ⌐ ┬─÷│ Σ¿¬ß¿α«óá¡-├─┬────────────────────────────┬──────────÷
│ │ ¡á∩ τáßΓ∞ │ │ ┌───┐ ┌────────────┐ ° │ ┌───┐ °
│ └────────────┘ └─÷│ ; ├───÷│ óáα¿á¡Γ¡á∩ ├─┘ └─÷│ ; ├─┘
│ └───┘ ° │ τáßΓ∞ │ └───┘
└──────────────────────────┘ └────────────┘
┌───────────┐ ┌───┐ ┌─────┐
Σ¿¬ß¿α«óá¡¡á∩ ────÷│ ß»¿ß«¬ ├───÷│ : ├───÷│ Γ¿» ├──┬──÷
τáßΓ∞ ° │ ¿ñÑ¡Γ¿Σ¿- │ └───┘ └─────┘ │
│ │ ¿¬áΓ«α«ó │ │
│ └───────────┘ │
│ ┌───┐ │
└────────────│ ; │≈───────────────────┘
└───┘
ö¿¬ß¿α«óá¡¡á∩ τáßΓ∞ Γ¿»á ºá»¿ß∞ ß«ñÑαª¿Γ ß»¿ß«¬ Σ¿¬ß¿α«óá¡¡δσ
»«½Ñ⌐ ó¼ÑßΓÑ ß ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ ¿ Γ¿»«¼ ñ½∩ ¬áªñ«ú« »«½∩. èáªñ«Ñ
»«½Ñ ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε, ¬«Γ«αá∩ óßÑúñá «Γδ߬¿óáÑΓß∩ «ñ¡¿¼ ¿ ΓѼ
ªÑ ß»«ß«í«¼.
Åα¿óÑñѼ »α¿¼Ñα Γ¿»á ºá»¿ß∞:
type
DateRec = record
Year : Integer;
Month : 1 .. 12;
Day : 1 .. 31;
end;
é óáα¿á¡Γ¡«⌐ τáßΓ¿, ¿º«íαáªÑ¡¡«⌐ ¡á ß¿¡Γá¬ß¿τÑ߬«⌐ ñ¿áúαá¼¼Ñ
«íΩ∩ó½Ñ¡¿∩ Γ¿»á ºá»¿ß∞, »á¼∩Γ∞ αáß»αÑñѽ∩ÑΓß∩ í«½ÑÑ τѼ ñ½∩ «ñ¡«ú«
ß»¿ß¬á »«½Ñ⌐, »«φΓ«¼π ñ«ßΓπ» ¬ ¿¡Σ«α¼áµ¿¿ ¼«ªÑΓ íδΓ∞ «ßπΘÑßΓó½Ñ¡
í«½ÑÑ τѼ «ñ¡¿¼ ß»«ß«í«¼. èáªñδ⌐ ß»¿ß«¬ »«½Ñ⌐ ∩ó½∩ÑΓß∩ óáα¿á¡Γ«¼.
éáα¿á¡Γδ ¡á½áúáεΓß∩ ñαπú ¡á ñαπúá ó »á¼∩Γ¿, »«φΓ«¼π ó ½εí«Ñ óαѼ∩
󫺼«ªÑ¡ ñ«ßΓπ» ¬« óßѼ »«½∩¼ ó« óßÑσ óáα¿á¡Γáσ.
óáα¿á¡Γ¡á∩ τáßΓ∞
│ ┌────┐ ┌────────┐ ┌──┐ ┌───────┐
└─÷│case├─┬───────────────────÷│Γ¿» »«½∩├─÷│of├────÷│óáα¿á¡Γ├─┬─÷
└────┘ │ ° │»α¿º¡á¬á│ └──┘ ° └───────┘ │
│ ┌───────┐ ┌─┐ │ └────────┘ │ ┌─┐ │
└─÷│¿ñÑ¡Γ¿-├─÷│:├─┘ └──────┤;│≈───┘
│Σ¿¬áΓ«α│ └─┘ └─┘
└───────┘
┌──────────────┐
Γ¿» »«½∩ ────÷│¿ñÑ¡Γ¿Σ¿¬áΓ«α ├────÷
»α¿º¡á¬á │»«α∩ñ¬«ú« Γ¿»á│
└──────────────┘
┌─────────┐ ┌─┐ ┌─┐ ┌─┐
óáα¿á¡Γ ────÷│¬«¡ßΓá¡Γá├─┬─÷│;├──÷│(├──┬──────────────÷│)├───÷
° └─────────┘ │ └─┘ └─┘ │ ° └─┘
│ ┌─┐ │ │ │
└────┤,│≈──────┘ │ ┌──────┐ │
└─┘ └─÷│ß»¿ß«¬├─┘
│»«½Ñ⌐ │
└──────┘
éδ ¼«ªÑΓÑ ó¿ñÑΓ∞ ¡á ñ¿áúαá¼¼Ñ, τΓ« ¬áªñδ⌐ óáα¿á¡Γ
¿ñÑ¡Γ¿Σ¿µ¿απÑΓß∩ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¡«⌐ ¬«¡ßΓá¡Γ«⌐. éßÑ ¬«¡ßΓá¡Γδ
ñ«½ª¡δ íδΓ∞ «Γ½¿τ¡δ¼¿ ñαπú «Γ ñαπúá ¿ ¿¼ÑΓ∞ »«α∩ñ¬«óδ⌐ Γ¿»,
ß«ó¼ÑßΓ¿¼δ⌐ ß Γ¿»«¼ »«½∩ »α¿º¡á¬á. ä«ßΓπ» ¬ óáα¿á¡Γ¡δ¼ ¿
Σ¿¬ß¿α«óá¡¡δ¼ »«½∩¼ «ñ¿¡ ¿ ëà ªÑ.
é óáα¿á¡Γ¡«⌐ τáßΓ¿ ¼«ª¡« π¬áºáΓ∞ ¡Ñ«í∩ºáΓѽ∞¡δ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α »α¿º¡á¬á »«½∩. Åα¿ ¡á½¿τ¿¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá »α¿º¡á¬á
»«½∩ «¡ ßΓá¡«ó¿Γß∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ ñ«»«½¡¿Γѽ∞¡«ú« Σ¿¬ß¿α«óá¡¡«ú«
»«½∩ ºá»¿ß¿ - »«½∩ »α¿º¡á¬á. Åα«úαá¼¼á ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ º¡áτÑ¡¿Ñ
»«½∩ »α¿º¡á¬á ñ½∩ π¬áºá¡¿∩, ¬á¬«⌐ óáα¿á¡Γ ∩ó½∩ÑΓß∩ á¬Γ¿ó¡δ¼ ó
¡áßΓ«∩Θ¿⌐ ¼«¼Ñ¡Γ. üѺ π¬áºá¡¿∩ »«½∩ »α¿º¡á¬á »α«úαá¼¼á óδí¿αáÑΓ
óáα¿á¡Γ »« ñαπú«¼π ¬α¿ΓÑα¿ε.
ì¿ªÑ »α¿ó«ñ¿Γß∩ ¡Ñ߬«½∞¬« »α¿¼Ñα«ó Γ¿»á ºá»¿ß∞:
type
Person = record
FirstName, LastName: string[40];
BirthDate: Date;
case Citizen: Boolean of
True: (BirthPlace : string[40]);
False: (Country: string[20];
EntryPort: string[20];
EntryDate: Date;
ExitDate: Date);
end;
Polygon = record
X, Y: Real;
case Kind: Figure of
Rectangle: (Height, Width: Real);
Triangle: (Size1, Size2, Angle: Real);
Circle: (Radius: Real);
end;
Æ¿»δ «íΩÑ¬Γ«ó.
Æ¿» «íΩÑ¬Γ - φΓ« ßΓαπ¬Γπαá, ß«ßΓ«∩Θá∩ ¿º Σ¿¬ß¿α«óá¡¡«ú« τ¿ß½á
¬«¼»«¡Ñ¡Γ. èáªñá∩ ¬«¼»«¡Ñ¡Γá - φΓ« ¿½¿ »«½Ñ, ¬«Γ«α«Ñ ß«ñÑনΓ
ñá¡¡δÑ «»αÑñѽѡ¡«ú« Γ¿»á, ¿½¿ ¼ÑΓ«ñ, ¬«Γ«αδ⌐ »α«¿ºó«ñ¿Γ «»Ñαᵿ¿
¡áñ «íΩÑ¬Γ«¼. ǡὫú¿τ¡« «íΩ∩ó½Ñ¡¿ε »ÑαѼѡ¡δσ, «íΩ∩ó½Ñ¡¿Ñ »«½∩,
π¬áºδóáÑΓ Γ¿» ñá¡¡δσ »«½∩ ¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¿¼Ñ¡¿ φΓ«ú« »«½∩; ¿
á¡á½«ú¿τ¡« «íΩ∩ó½Ñ¡¿ε »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ «íΩ∩ó½Ñ¡¿Ñ ¼ÑΓ«ñá
π¬áºδóáÑΓ ºáú«½«ó«¬ »α«µÑñπαδ, Σπ¡¬µ¿¿, ¬«¡ßΓαá¬Γ«αá ¿½¿
ñÑßΓαá¬Γ«αá.
Æ¿» «íΩÑ¬Γ ¼«ªÑΓ ¡áß½Ññ«óáΓ∞ ¬«¼»«¡Ñ¡Γδ «Γ ñαπú«ú« Γ¿»á
«íΩѬΓá. àß½¿ T2 ¡áß½ÑñπÑΓ «Γ Æ1, Γ« Æ2 ÑßΓ∞ »«α«ªñÑ¡¡δ⌐ «Γ Æ1, á
Æ1 ÑßΓ∞ »αÑñ«¬ ñ½∩ Æ2.
ìáß½Ññ«óá¡¿Ñ ∩ó½∩ÑΓß∩ Γα᡺¿Γ¿ó¡δ¼, Γ.Ñ. Ñß½¿ Æ3 ¡áß½ÑñπÑΓ
«Γ Æ2, á Æ2 ¡áß½ÑñπÑΓ «Γ Æ1, Γ« Æ3 ΓᬠªÑ ¡áß½ÑñπÑΓ «Γ Æ1.
æΣÑαá ñÑ⌐ßΓó¿∩ Γ¿»á «íΩѬΓá ß«ßΓ«¿Γ ¿º ¡Ñú« ßἫú« ¿ óßÑσ Ñú«
»«α«ªñÑ¡¡δσ Γ¿»«ó.
┌──────┐ ┌────────────────┐
Γ¿» «íΩѬΓá ──÷│object├─┬───────────────────÷│ß»¿ß«¬ ¬«¼»«¡Ñ¡Γ├─┐
└──────┘ │ ┌────────────┐ ° └────────────────┘ │
└─÷│Háß½Ññ«óá¡¿Ñ├─┘ │
└────────────┘ │
┌───────────────────────────────────────────┘
│ ┌───┐
└─┬──────────────────────────────────┬──┤end├─÷
│ ┌───────┐ ┌────────────────┐ │ └───┘
└──÷│private├──÷│ß»¿ß«¬ ¬«¼»«¡Ñ¡Γ├─┘
└───────┘ └────────────────┘
┌───┐ ┌──────────────────────────┐ ┌───┐
¡áß½Ññ«óá¡¿Ñ ──÷│ ( ├──÷│¿ñÑ¡Γ¿Σ¿¬áΓ«α Γ¿»á «íΩѬΓá├──÷│ ) ├──÷
└───┘ └──────────────────────────┘ └───┘
ß»¿ß«¬ ¬«¼»«¡Ñ¡Γ ──┬─────────────────┬───────────────────÷
│ ┌────────┐ ° │ ┌─────────┐ °
└─÷│ ß»¿ß«¬ ├──┘ └─÷│ ß»¿ß«¬ ├──┘
│ »«½Ñ⌐ │ │ ¼ÑΓ«ñ«ó │
└────────┘ └─────────┘
┌──────────────────────┐ ┌───┐ ┌───┐ ┌───┐
ß»¿ß«¬ »«½Ñ⌐ ────÷│c»¿ß«¬ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó├─÷│ : ├─÷│typ├─÷│ ; ├─┬─÷
° └──────────────────────┘ └───┘ └───┘ └───┘ │
└────────────────────────────────────────────────┘
┌────────────────┐ ┌───┐
ß»¿ß«¬ ¼ÑΓ«ñ«ó ───÷│ºáú«½«ó«¬ ¼ÑΓ«ñá├─┬───────────────────┤ ; ├─┬─÷
° └────────────────┘ │ ┌───┐ ┌───────┐° └───┘ │
│ └÷│ ; ├─÷│virtual├┘ │
│ └───┘ └───────┘ │
└───────────────────────────────────────────────┘
┌────────────────────────┐
ºáú«½«ó«¬ ¼ÑΓ«ñá ────┬───÷│ ºáú«½«ó«¬ »α«µÑñπαδ ├──────÷
│ └────────────────────────┘ °
│ ┌────────────────────────┐ │
├───÷│ ºáú«½«ó«¬ Σπ¡¬µ¿¿ ├──┤
│ └────────────────────────┘ │
│ ┌────────────────────────┐ │
├───÷│ ºáú«½«ó«¬ ¬«¡ßΓαá¬Γ«αá ├──┤
│ └────────────────────────┘ │
│ ┌────────────────────────┐ │
└───÷│ ºáú«½«ó«¬ ñÑßΓαá¬Γ«αá ├──┘
└────────────────────────┘
æ½ÑñπεΘ¿⌐ ¬«ñ »«¬áºδóáÑΓ »α¿¼Ñαδ «íΩ∩ó½Ñ¡¿∩ Γ¿»«ó «íΩÑ¬Γ«ó.
¥Γ¿ «íΩ∩ó½Ñ¡¿∩ íπñπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó ñαπú¿σ »α¿¼Ñαáσ φΓ«⌐ ú½áóδ.
type
Point = object
X, Y: Integer;
end;
Rect = object
A, B: Point;
procedure Init(XA, YA, XB, YB: Integer);
procedure Copy(var R: Rect);
procedure Move(DX, DY: Integer);
procedure Grow(DX, DY: Integer);
procedure Intersect(var R: Rect);
procedure Union(var R: Rect);
function Contains(P: Point): Boolean;
end;
StringPtr = ^String;
FieldPtr = ^Field;
Field = object
X, Y, Len: Integer;
Name: StringPtr;
constructor Copy(var F: Field);
constructor Init(FX, FY, FLen: Integer; FName: String);
destructor Done; virtual;
procedure Display; virtual;
procedure Edit; virtual;
function GetStr: String; virtual;
function PutStr(S: String): Boolean; virtual;
end;
StrFieldPtr = ^StrField;
StrField = object(Field)
Value: StringPtr;
constructor Init(FX, FY, FLen: Integer; FName: String);
destructor Done; virtual;
function GetStr: String; virtual;
function PutStr(S: String): Boolean; virtual;
function Get: String;
procedure Put(S: String);
end;
NumFieldPtr = ^NumField;
NumField = object(Field)
Value, Min, Max: Longint;
constructor Init(FX, FY, FLen: Integer; FName: String;
FMin, FMax : LongInt);
function GetStr : String; virtual;
function PutStr(S : String) : Boolean; virtual;
function Get : Longint;
procedure Put(S : Longint);
end;
ZipFieldPtr = ^ZipField;
ZipField = object(NumField)
function GetStr: String; virtual;
function PutStr(S: String): Boolean; virtual;
end;
é «Γ½¿τ¿Ñ «Γ ñαπú¿σ Γ¿»«ó, Γ¿» «íΩÑ¬Γ ¼«ªÑΓ íδΓ∞ «íΩ∩ó½Ñ¡ ó
τáßΓ¿ «íΩ∩ó½Ñ¡¿∩ Γ¿»«ó ó ßἫ⌐ ó¡ÑΦ¡Ñ⌐ τáßΓ¿ »α«úαá¼¼δ ¿½¿ ¼«ñπ½∩.
Æá¬, Γ¿» «íΩѬΓá ¡Ñ ¼«ªÑΓ íδΓ∞ «íΩ∩ó½Ñ¡ ó τáßΓ¿ «íΩ∩ó½Ñ¡¿∩
»ÑαѼѡ¡δσ ¿½¿ ó¡πΓα¿ »α«µÑñπαδ, Σπ¡¬µ¿¿ ¿½¿ ¼ÑΓ«ñá.
諼»«¡Ñ¡Γδ ¿ ßΣÑαá ñÑ⌐ßΓó¿∩.
諼»«¡Ñ¡Γá ñ½∩ Γ¿»á Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «íΩÑ¬Γ¡«ú« Γ¿»á, á Γá¬
ªÑ ½εí«⌐ ßΓαπ¬Γπα¿α«óá¡¡δ⌐ Γ¿» ¡Ñ ¼«ªÑΓ ¿¼ÑΓ∞ ¬«¼»«¡Ñ¡Γπ «íΩÑ¬Γ¡«ú«
Γ¿»á.
æΣÑαá ñÑ⌐ßΓó¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¬«¼»«¡Ñ¡Γδ αáß»α«ßΓαá¡∩ÑΓß∩ ¡á
ßΣÑαπ ñÑ⌐ßΓó¿∩ φΓ«ú« «íΩÑ¬Γ¡«ú« Γ¿»á. ü«½ÑÑ Γ«ú«, ßΣÑαá ñÑ⌐ßΓó¿∩
¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¬«¼»«¡Ñ¡Γδ αáß»α«ßΓαá¡∩ÑΓß∩ ¡á »α«µÑñπαδ, Σπ¡¬µ¿¿,
¬«¡ßΓαá¬Γ«αδ ¿ ñÑßΓαá¬Γ«αδ ¬«Γ«αδÑ αÑ὿ºπεΓ ¼ÑΓ«ñδ φΓ«ú«
«íΩÑ¬Γ¡«ú« Γ¿»á ¿ Ñú« »«α«ªñÑ¡¡δσ Γ¿»«ó. Å« φΓ«⌐ »α¿τ¿¡Ñ ¡á»¿ßá¡¿Ñ
¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¬«¼»«¡Ñ¡Γδ ñ«½ª¡« íδΓ∞ π¡¿¬á½∞¡δ¼ ó¡πΓα¿ «íΩÑ¬Γ¡«ú«
Γ¿»á, óßÑσ Ñú« »«α«ªñÑ¡¡δσ Γ¿»«ó ¿ óßÑσ Ñú« ¼ÑΓ«ñ«ó.
æΣÑαá ñÑ⌐ßΓó¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¬«¼»«¡Ñ¡Γδ, «íΩ∩ó½Ñ¡¡«⌐ ó
αáºñÑ½Ñ private (½¿τ¡δ⌐) «íΩ∩ó½Ñ¡¿∩ Γ¿»á «íΩѬΓá, «úαá¡¿τÑ¡«
¼«ñπ½Ñ¼ ¿½¿ »α«úαá¼¼«⌐, ¬«Γ«αδÑ ß«ñÑαªáΓ «íΩ∩ó½Ñ¡¿∩ Γ¿»á «íΩѬΓá.
äαπú¿¼¿ ß½«óἿ, ¿ñÑ¡Γ¿Σ¿¬áΓ«α private ¬«¼»«¡Ñ¡Γδ ñÑ⌐ßΓóπÑΓ ¬á¬
¿ñÑ¡Γ¿Σ¿¬áΓ«α «íδτ¡«⌐ ¬«¼»«¡Ñ¡Γδ ó¡πΓα¿ ¼«ñπ½∩, ß«ñÑαªáΘÑú«
«íΩ∩ó½Ñ¡¿Ñ Γ¿»á «íΩѬΓá, ¡« ó¡Ñ φΓ«ú« ¼«ñπ½∩ ½εí«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α
private ¬«¼»«¡Ñ¡Γδ ¡Ñ¿ºóÑßΓÑ¡ ¿ ¡Ññ«ßΓπ»Ñ¡. Å«¼ÑΘá∩ ßó∩ºá¡¡δÑ Γ¿»δ
«íΩÑ¬Γ«ó ó «ñ¡«¼ ¼«ñπ½Ñ, φΓ¿ Γ¿»δ «íΩÑ¬Γ«ó ¼«úπΓ ¿¼ÑΓ∞ ñ«ßΓπ» ¬
ñαπú¿¼ private ¬«¼»«¡Ñ¡Γá¼, ñѽá∩ private ¬«¼»«¡Ñ¡Γδ ¡Ñ¿ºóÑßΓ¡δ¼¿ ó
ñαπú¿σ ¼«ñπ½∩σ.
îÑΓ«ñδ.
ÄíΩ∩ó½Ñ¡¿Ñ ¼ÑΓ«ñá ó¡πΓα¿ Γ¿»á «íΩѬΓá ß««ΓóÑΓßΓóπÑΓ «íΩ∩ó½Ñ¡¿ε
forward ñ½∩ φΓ«ú« ¼ÑΓ«ñá. Å«ß½Ñ «íΩ∩ó½Ñ¡¿∩ Γ¿»á «íΩѬΓá ¿ ó¡πΓα¿
ßΣÑαδ ñÑ⌐ßΓó¿∩ «íΩ∩ó½Ñ¡¿∩ φΓ«ú« «íΩѬΓá ñ«½ª¡á ßΓ«∩Γ∞ αÑ὿ºáµ¿∩
ñ½∩ φΓ«ú« ¼ÑΓ«ñá.
è«úñá ΓαÑíπÑΓß∩ π¡¿¬á½∞¡á∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿∩ ¼ÑΓ«ñá, ¿ß»«½∞ºπÑΓß∩
πΓ«τ¡Ñ¡¡δ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼ÑΓ«ñá. Ä¡ ß«ßΓ«¿Γ ¿º ¿ñÑ¡Γ¿Σ¿¬áΓ«αá Γ¿»á
«íΩѬΓá, Γ«τ¬¿ ¿ »«ß½ÑñπεΘÑú« ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¼ÑΓ«ñá. Å«ñ«í¡« ñαπú¿¼
¿ñÑ¡Γ¿Σ¿¬áΓ«αá¼, »ÑαÑñ πΓ«τ¡Ñ¡¡δ¼ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ ¼ÑΓ«ñá ¼«ªÑΓ
ßΓ«∩Γ∞ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼«ñπ½∩ ß Γ«τ¬«⌐.
é¡πΓα¿ «»¿ßá¡¿∩ Γ¿»á «íΩѬΓá ºáú«½«ó«¬ ¼ÑΓ«ñá ¼«ªÑΓ π¬áºδóáΓ∞
»áαá¼ÑΓαδ, «íΩ∩ó½Ñ¡¡δÑ ó «íΩÑ¬Γ¡«¼ Γ¿»Ñ, ñáªÑ Ñß½¿ «íΩ∩ó½Ñ¡¿Ñ ÑΘÑ
¡Ñ ºáóÑαΦÑ¡«. ¥Γ« ¿½½εßΓα¿απÑΓß∩ ¼ÑΓ«ñἿ Copy, Intersect ¿ Union
Γ¿»á Rect ó »αÑñδñπΘѼ »α¿¼ÑαÑ.
é¿αΓπá½∞¡δÑ ¼ÑΓ«ñδ.
Å« π¼«½τá¡¿ε ¼ÑΓ«ñδ ∩ó½∩εΓß∩ ßΓáΓ¿τÑ߬¿¼¿, ¡« ¼«úπΓ íδΓ∞, ºá
¿ß¬½ετÑ¡¿Ñ¼ ¬«¡ßΓαá¬Γ«α-¼ÑΓ«ñá, ó¿αΓπá½∞¡δ¼¿ τÑαѺ ó¬½ετÑ¡¿Ñ
ñ¿αÑ¬Γ¿óδ virtual ó «íΩ∩ó½Ñ¡¿¿ ¼ÑΓ«ñá. 諼»¿½∩Γ«α αáºαÑΦáÑΓ ó맮óδ
ßΓáΓ¿τÑ߬«ú« ¼ÑΓ«ñá ó« óαѼ∩ ¬«¼»¿½∩µ¿¿, ó Γ« óαѼ∩, ¬á¬ ó맮ó
ó¿αΓπá½∞¡δσ ¼ÑΓ«ñ«ó αáºαÑΦáÑΓß∩ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩. éΓ«α«⌐ ¿º ¡¿σ
¡áºδóáÑΓß∩ »«ºñ¡¿¼ ßó∩ºδó᡿Ѽ.
àß½¿ Γ¿» «íΩѬΓá «íΩ∩ó½∩ÑΓ ¿½¿ ¡áß½ÑñπÑΓ ½εí«⌐ ó¿αΓπá½∞¡δ⌐
¼ÑΓ«ñ, Γ« »ÑαѼѡ¡δÑ φΓ«ú« Γ¿»á ñ«½ª¡δ íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡δ τÑαѺ
óδº«ó ¬«¡ßΓαá¬Γ«αá »ÑαÑñ ½εíδ¼ óδº«ó«¼ ó¿αΓπá½∞¡«ú« ¼ÑΓ«ñá. Æá¬
½εí«⌐ Γ¿» «íΩѬΓá, ¬«Γ«αδ⌐ «íΩ∩ó½∩ÑΓ ¿½¿ ¡áß½ÑñπÑΓ ½εí«⌐
ó¿αΓπá½∞¡δ⌐ ¼ÑΓ«ñ, ñ«½ªÑ¡ ΓᬠªÑ «íΩ∩ó½∩Γ∞ ¿½¿ ¡áß½Ññ«óáΓ∞ »«
¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¿¡ ¬«¡ßΓαá¬Γ«α-¼ÑΓ«ñ.
ÄíΩÑ¬Γ¡δ⌐ Γ¿» ¼«ªÑΓ »ÑαѬαδóáΓ∞ (»ÑαÑ«»αÑñѽ∩Γ∞) ½εíδÑ ¼ÑΓ«ñδ,
¡áß½ÑñπѼδÑ ¿¼ «Γ »αÑñ¬á. àß½¿ «íΩ∩ó½Ñ¡¿Ñ ¼ÑΓ«ñá ó »«α«ªñÑ¡¡«¼ Γ¿»Ñ
π¬áºδóáÑΓ Γᬫ⌐ ªÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«α Γ¿»á, ¬á¬ «íΩ∩ó½Ñ¡¿Ñ ó »αÑñ¬Ñ, Γ«
«íΩ∩ó½Ñ¡¿Ñ ó »«α«ªñÑ¡¡«¼ Γ¿»Ñ »ÑαѬαδóáÑΓ «íΩ∩ó½Ñ¡¿Ñ ó »αÑñ¬Ñ.
æΣÑαá ñÑ⌐ßΓó¿∩ »ÑαѬαδΓ¿∩ αáß»α«ßΓαá¡∩ÑΓß∩ ¡á «í½áßΓ∞ »«α«ªñÑ¡¡«ú«
Γ¿»á, ó ¬«Γ«α«¼ «¡ íδ½ «»αÑñѽѡ ¿ ñ« ΓÑσ »«α, »«¬á ¿ñÑ¡Γ¿Σ¿¬áΓ«α
¼ÑΓ«ñá ¡Ñ íπñÑΓ ß¡«óá »ÑαѬαδΓ.
ÅÑαѬαδΓ¿Ñ ßΓáΓ¿τÑ߬«ú« ¼ÑΓ«ñá »«ºó«½∩ÑΓ ßó«í«ñ¡« ¿º¼Ñ¡∩Γ∞
ºáú«½«ó«¬ ¼ÑΓ«ñá »α«¿ºó«½∞¡δ¼ «íαẫ¼. ìá»α«Γ¿ó, »α¿ »ÑαѬαδΓ¿¿
ó¿αΓπá½∞¡«ú« ¼ÑΓ«ñá ñ«½ªÑ¡ íδΓ∞ Γ«τ¡« ß«í½εñÑ¡ »«α∩ñ«¬, Γ¿» ¿ ¿¼Ñ¡á
»áαá¼ÑΓα«ó, á ΓᬠªÑ Γ¿» αѺπ½∞ΓáΓá Σπ¡¬µ¿¿. ü«½ÑÑ Γ«ú«, »ÑαѬαδΓ¿Ñ
ñ«½ª¡« ß¡«óá ó¬½ετáΓ∞ ñ¿αÑ¬Γ¿óπ virtual.
¥¬ºÑ¼»½∩αδ «íΩÑ¬Γ«ó.
¥¬ºÑ¼»½∩α «íΩѬΓá ß«ºñáÑΓß∩ »πΓѼ «íΩ∩ó½Ñ¡¿∩ »ÑαѼѡ¡δσ ¿½¿
Γ¿»¿α«óá¡¡«⌐ ¬«¡ßΓá¡Γδ «íΩÑ¬Γ¡«ú« Γ¿»á ¿½¿ »α¿¼Ñ¡Ñ¡¿Ñ¼ ßΓá¡ñáαΓ¡«⌐
»α«µÑñπαδ New ß »ÑαѼѡ¡«⌐ Γ¿»á π¬áºáΓѽ∞ ¡á «íΩÑ¬Γ¡δ⌐ Γ¿».
ÉѺπ½∞Γ¿απεΘ¿⌐ «íΩÑ¬Γ ¡áºδóáÑΓß∩ φ¬ºÑ¼»½∩α«¼ «íΩÑ¬Γ¡«ú« Γ¿»á.
var
F: Field;
Z: ZipField;
FP: FieldPtr;
ZP: ZipFieldPtr;
é ñá¡¡δσ «íΩ∩ó½Ñ¡¿∩σ F ÑßΓ∞ φ¬ºÑ¼»½∩α Field, á Z - φ¬ºÑ¼»½∩α
ZipField. Æá¬ªÑ »«ß½Ñ »α¿¼Ñ¡Ñ¡¿∩ New ¬ FP ¿ ZP, FP íπñÑΓ π¬áºδóáΓ∞
¡á φ¬ºÑ¼»½∩α Field, á ZP íπñÑΓ π¬áºδóáΓ∞ ¡á φ¬ºÑ¼»½∩α ZipField.
àß½¿ «íΩÑ¬Γ¡δ⌐ Γ¿» ß«ñÑαª¿Γ ó¿αΓπá½∞¡δÑ ¼ÑΓ«ñδ, Γ« φ¬ºÑ¼»½∩αδ
φΓ«ú« Γ¿»á ñ«½ª¡δ íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡δ »«ßαÑñßΓó«¼ ó맮óá
¬«¡ßΓαá¬Γ«αá »ÑαÑñ ½εíδ¼ óδº«ó«¼ ó¿αΓπá½∞¡«ú« ¼ÑΓ«ñá. æ¼. »α¿¼Ñα:
var
S: StrField;
begin
S.Init(1, 1, 25, 'FirstName');
S.Put('Frank');
S.Display;
...
S.Done;
end;
àß½¿ S.Init ¡Ñ íδ½ óδºóá¡, Γ« ó맮ó S.Display ó φΓ«¼ »α¿¼ÑαÑ
íπñÑΓ »α¿ó«ñ¿Γ∞ ¬ «Φ¿í¬Ñ.
é᪡«! Åα¿ßóá¿óá¡¿Ñ φ¬ºÑ¼»½∩απ «íΩÑ¬Γ¡«ú« Γ¿»á ¡Ñ «º¡áτáÑΓ
¿¡¿µ¿á½¿ºáµ¿¿ φ¬ºÑ¼»½∩αá.
¥Γ« »αá󿽫 ¿¡¿µ¿á½¿ºáµ¿¿ ΓᬠªÑ »α¿¼Ñ¡¿¼« ¬ φ¬ºÑ¼»½∩αá¼
¬«¼»«¡Ñ¡Γ ßΓαπ¬Γπα¿α«óá¡¡δσ Γ¿»«ó. ìá»α¿¼Ñα:
var
Comment: array[1..5] of StrField;
I: Integer;
begin
for I := 1 to 5 do Comment[I].Init(1, I+10, 40, "Comment");
...
for I:= 1 to 5 do Comment[I].Down;
end;
ä½∩ ñ¿¡á¼¿τÑ߬¿σ φ¬ºÑ¼»½∩α«ó ¿¡¿µ¿á½¿ºáµ¿∩ «íδτ¡« ß«ó¼ÑΘÑ¡á ß
αáß»αÑñѽѡ¿Ñ¼, á «τ¿ßΓ¬á «íδτ¡« ß«ó¼ÑΘÑ¡á ß «ßó«í«ªñÑ¡¿Ñ¼,
¿ß»«½∞ºπ∩ αáßΦ¿αÑ¡¡δ⌐ ß¿¡Γá¬ß¿ß New ¿ Dispose. Åα¿¼Ñα:
var
SP: StrFieldPtr;
begin
New(SP, Init(1, 1, 25, "FirstName"));
SP^.Put("Frank");
SP^.Display;
...
Dispose(SP, Done);
end;
ô¬áºáΓѽ∞ «íΩÑ¬Γ¡«ú« Γ¿»á ß«ó¼ÑßΓ¿¼ »« »α¿ßóá¿óá¡¿ε ß
π¬áºáΓѽѼ ½εí«ú« Γ¿»á «íΩѬΓá »αÑñ¬á, ß½Ññ«óáΓѽ∞¡« ó« óαѼ∩
óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ π¬áºáΓѽ∞ Γ¿»á «íΩѬΓá ¼«ªÑΓ π¬áºδóáΓ∞ ¡á
φ¬ºÑ¼»½∩α φΓ«ú« Γ¿»á ¿½¿ φ¬ºÑ¼»½∩α ½εí«ú« »«α«ªñÑ¡¡«ú« Γ¿»á.
ìá»α¿¼Ñα, π¬áºáΓѽ∞ Γ¿»á ZipFieldPtr ¼«ªÑΓ íδΓ∞ »α¿ßó«Ñ¡
π¬áºáΓѽ∩¼ Γ¿»á ZipFieldPtr, NumFieldPtr ¿ FieldPtr ó« óαѼ∩
óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ, π¬áºáΓѽ∞ ¡á Γ¿» FieldPtr ¼«ªÑΓ íδΓ∞ ¿½¿
nil, ¿½¿ π¬áºáΓѽ∞ ¡á φ¬ºÑ¼»½∩α Field, StrField, NumField,
ZipField, ¿½¿ ½εí«⌐ ñαπú«⌐ φ¬ºÑ¼»½∩α, »«α«ªñÑ¡¡δ⌐ «Γ Field.
¥Γ« »αá󿽫 ß«ó¼ÑßΓ¿¼«ßΓ¿ »α¿ »α¿ßóá¿óá¡¿¿ π¬áºáΓѽÑ⌐ ΓᬠªÑ
»α¿¼Ñ¡¿¼« ¬ »áαá¼ÑΓαá¼ «íΩÑ¬Γ¡«ú« Γ¿»á. ìá»α¿¼Ñα, ¼ÑΓ«ñπ Field.Copy
¼«ªÑΓ íδΓ∞ »ÑαÑñá¡ ½εí«⌐ φ¬ºÑ¼»½∩α Field, StrField, NumField,
ZipField ¿½¿ ½εí«⌐ ñαπú«⌐ φ¬ºÑ¼»½∩α, »«α«ªñÑ¡¡δ⌐ «Γ Field.
îÑΓ«ñ á¬Γ¿ó¿º¿απÑΓß∩ τÑαѺ ¬óá½¿Σ¿¬áΓ«α ¼ÑΓ«ñá ó Σ«α¼Ñ
¥¬ºÑ¼»½∩α.îÑΓ«ñ, úñÑ ¥¬ºÑ¼»½∩α - φΓ« φ¬ºÑ¼»½∩α «íΩÑ¬Γ¡«ú« Γ¿»á, á
îÑΓ«ñ - φΓ« ¼ÑΓ«ñ φΓ«ú« «íΩÑ¬Γ¡«ú« Γ¿»á.
ä½∩ ßΓáΓ¿τÑ߬¿σ ¼ÑΓ«ñ«ó «íΩ∩ó½Ñ¡¡δ⌐ (ó« óαѼ∩ ¬«¼»¿½∩µ¿¿) Γ¿»
φ¬ºÑ¼»½∩αá «»αÑñѽ∩ÑΓ, ¬á¬«⌐ ¼ÑΓ«ñ ñ«½ªÑ¡ íδΓ∞ á¬Γ¿ó¿α«óá¡.
ìá»α¿¼Ñα, ¬óá½¿Σ¿¬áΓ«αδ F.Init ¿ FP^.Init íπñπΓ óßÑúñá
á¬Γ¿ó¿º¿α«óáΓ∞ Field.Init, »«ß¬«½∞¬π «íΩ∩ó½Ñ¡¡δ⌐ Γ¿» F ¿ FP^ -
Field.
ä½∩ ó¿αΓπá½∞¡δσ ¼ÑΓ«ñ«ó óδí¿αáÑΓß∩ á¬Γπá½∞¡δ⌐ (ó« óαѼ∩
óδ»«½¡Ñ¡¿∩) Γ¿» φ¬ºÑ¼»½∩αá. ìá»α¿¼Ñα, ¬óá½¿Σ¿¬áΓ«α FP^.Edit ¼«ªÑΓ
á¬Γ¿ó¿α«óáΓ∞ Field.Edit, StrField.Edit, NumField.Edit ¿½¿ ZipField.
Edit ó ºáó¿ß¿¼«ßΓ¿ «Γ á¬Γπá½∞¡«ú« Γ¿»á φ¬ºÑ¼»½∩αá, ¡á ¬«Γ«αδ⌐
π¬áºδóáÑΓ FP.
é««íΘÑ, ¡ÑΓ ß»«ß«í«ó «»αÑñѽ¿Γ∞, ¬á¬«⌐ ¼ÑΓ«ñ íπñÑΓ á¬Γ¿ó¿α«óá¡
¬óá½¿Σ¿¬áΓ«α«¼ ó¿αΓπá½∞¡«ú« ¼ÑΓ«ñá. éδ ¼«ªÑΓÑ αáºαáí«ΓáΓ∞ »α«úαá¼¼π
(Γá¬πε, ¬á¬ »α«úαá¼¼π αÑñá¬Γ«αá óσ«ñ¡δσ Σ«α¼), ¬«Γ«αá∩ á¬Γ¿ó¿απÑΓ
FP^.Edit ¿ »«ºñ¡ÑÑ, íѺ ¼«ñ¿Σ¿¬áµ¿¿ φΓ«⌐ »α«úαá¼¼δ, »α¿¼Ñ¡¿Γ∞ ÑÑ ¬
φ¬ºÑ¼»½∩απ ¡«ó«ú«, ¡Ñ»αÑñó¿ñÑ¡¡«ú« »«α«ªñÑ¡¡«ú« Γ¿»á «Γ Field.
è«úñá ¡Ñ«íσ«ñ¿¼á ú¿í¬«ßΓ∞ Γᬫú« α«ñá, éδ ñ«½ª¡δ »α¿¼Ñ¡∩Γ∞
«íΩÑ¬Γ¡δ⌐ Γ¿» ß «Γ¬αδΓδ¼ ¡áí«α«¼ »«α«ªñÑ¡¡δσ Γ¿»«ó, τΓ« ú«αáºñ«
½πτΦÑ «úαá¡¿τÑ¡¡«ú« ¡áí«αá Γ¿»á ºá»¿ß¿ ß óáα¿á¡ΓἿ.
Æ¿» ¼¡«ªÑßΓó«.
ä¿á»áº«¡ º¡áτÑ¡¿⌐ Γ¿»á ¼¡«ªÑßΓó« »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¼«Θ¡«ßΓ∞
¼¡«ªÑßΓóá ñ½∩ «»αÑñѽѡ¡«ú« »«α∩ñ¬«ó«ú« Γ¿»á (íẫó«ú« Γ¿»á).
èáªñ«Ñ 󫺼«ª¡«Ñ º¡áτÑ¡¿Ñ Γ¿»á ¼¡«ªÑßΓó« ∩ó½∩ÑΓß∩ »«ñ¼¡«ªÑßΓó«¼
󫺼«ª¡δσ º¡áτÑ¡¿⌐ íẫó«ú« Γ¿»á.
ÅÑαѼѡ¡á∩ Γ¿»á ¼¡«ªÑßΓó« ¼«ªÑΓ »α¿¡¿¼áΓ∞ ¬á¬ óßÑ º¡áτÑ¡¿∩
¼¡«ªÑßΓóá, Γᬠ¿ ¡¿ «ñ¡«ú«.
┌─────┐ ┌────┐ ┌────────────────┐
Γ¿» ¼¡«ªÑßΓó« ───÷│ set ├───÷│ of ├───÷│ »«α∩ñ¬«óδ⌐ Γ¿» ├───÷
└─────┘ └────┘ └────────────────┘
üẫóδ⌐ Γ¿» ¡Ñ ñ«½ªÑ¡ ¿¼ÑΓ∞ í«½ÑÑ 256 󫺼«ª¡δσ º¡áτÑ¡¿⌐ ¿
»«α∩ñ¬«óδÑ º¡áτÑ¡¿∩ óÑασ¡Ñ⌐ ¿ ¡¿ª¡Ñ⌐ úαá¡¿µδ íẫó«ú« Γ¿»á ¡Ñ
ñ«½ª¡δ »αÑóδΦáΓ∞ ñ¿á»áº«¡á «Γ 0 ñ« 255. é ß¿½π φΓ«ú« íẫóδ⌐ Γ¿»
¼¡«ªÑßΓóá ¡Ñ ¼«ªÑΓ íδΓ∞ ShorInt, Integer, LongInt, Word.
Ä»Ñαᵿ¿ ¡áñ Γ¿»á¼¿ ¼¡«ªÑßΓó «»¿ßδóáεΓß∩ ó αáºñÑ½Ñ "Ä»Ñαᵿ¿
¡áñ ¼¡«ªÑßΓóἿ" ó ú½áóÑ 6. é αáºñÑ½Ñ "è«¡ßΓαá¬Γ«αδ ¼¡«ªÑßΓó" ó
φΓ«⌐ ú½áóÑ »«¬áºá¡«, ¬á¬ ß«ºñáΓ∞ º¡áτÑ¡¿Ñ ¼¡«ªÑßΓóá.
ïεí«⌐ ¼¡«ªÑßΓóÑ¡¡δ⌐ Γ¿» ¼«ªÑΓ »α¿¡¿¼áΓ∞ º¡áτÑ¡¿Ñ [], ¬«Γ«α«Ñ
¡áºδóáÑΓß∩ »πßΓδ¼ ¼¡«ªÑßΓó«¼.
öá⌐½«óδÑ Γ¿»δ
öá⌐½«óδ⌐ Γ¿» ß«ßΓ«¿Γ ¿º ½¿¡Ñ⌐¡«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ¬«¼»«¡Ñ¡Γ,
¬«Γ«αδÑ ¼«úπΓ ¿¼ÑΓ∞ ½εí«⌐ Γ¿» ºá ¿ß¬½ετÑ¡¿Ñ¼ Σá⌐½«ó«ú« Γ¿»á ¿½¿
ßΓαπ¬Γπα¡«ú« Γ¿»á, ß«ñÑαªáΘÑú« ¬«¼»«¡Ñ¡Γπ ß Σá⌐½«óδ¼ Γ¿»«¼. ù¿ß½«
¬«¼»«¡Ñ¡Γ ¡Ñ πßΓá¡áó½¿óáÑΓß∩ «íΩ∩ó½Ñ¡¿Ñ¼ Σá⌐½«ó«ú« Γ¿»á.
┌──────┐ ┌────┐ ┌─────┐
Σá⌐½«óδ⌐ Γ¿» ───÷│ file ├──┬─÷│ of ├───÷│ Γ¿» ├─────÷
└──────┘ │ └────┘ └─────┘ °
└─────────────────────┘
àß½¿ ß½«ó« of ¿ Γ¿» ¬«¼»«¡Ñ¡Γδ «»πΘÑ¡δ, «íΩ∩ó½∩ÑΓß∩
¡ÑΓ¿»¿α«óá¡¡δ⌐ Σá⌐½. ìÑΓ¿»¿α«óá¡¡δÑ Σá⌐½δ - φΓ« ¡¿º¬«πα«ó¡ÑóδÑ
¬á¡á½δ é/é, ¿ß»«½∞ºπѼδÑ ñ½∩ ñ«ßΓπ»á ¬ ½εí«¼π ñ¿ß¬«ó«¼π Σá⌐½π
¡Ñºáó¿ß¿¼« «Γ Ñú« ó¡πΓαÑ¡¡Ñú« Σ«α¼áΓá.
æΓá¡ñáαΓ¡δ⌐ Σá⌐½«óδ⌐ Γ¿» Text «»αÑñѽ∩ÑΓ Σá⌐½, ß«ñÑαªáΘ¿⌐
ß¿¼ó«½δ, π»«α∩ñ«τÑ¡¡δÑ ó ßΓ᫬¿. ÆѬßΓ«óδÑ Σá⌐½δ ¿ß»«½∞ºπεΓ
߻ѵ¿á½∞¡δÑ »α«µÑñπαδ óó«ñá/óδó«ñá, ¬«Γ«αδÑ «»¿ßδóáεΓß∩ ó ú½áóÑ 19
"éó«ñ ¿ óδó«ñ".
Æ¿» π¬áºáΓѽ∞
Æ¿» π¬áºáΓѽ∞ «»αÑñѽ∩ÑΓ ¼¡«ªÑßΓó« º¡áτÑ¡¿⌐, ¬«Γ«αδÑ π¬áºδóáεΓ
¡á ñ¿¡á¼¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ «»αÑñѽѡ¡«ú« Γ¿»á, ¡áºδóáѼ«ú« íẫóδ¼
Γ¿»«¼. ÅÑαѼѡ¡á∩ Γ¿»á Pointer ß«ñÑαª¿Γ áñαÑß ñ¿¡á¼¿τÑ߬«⌐
»ÑαѼѡ¡«⌐ ó »á¼∩Γ¿.
┌───┐ ┌─────────────┐
Γ¿» π¬áºáΓѽ∞ ───÷│ ^ ├───÷│ íẫóδ⌐ Γ¿» ├──÷
└───┘ └─────────────┘
┌─────────────────────┐
íẫóδ⌐ Γ¿» ────÷│ ¿ñÑ¡Γ¿Σ¿¬áΓ«α Γ¿»á ├───÷
└─────────────────────┘
àß½¿ íẫóδ⌐ Γ¿» ∩ó½∩ÑΓß∩ ÑΘÑ ¡Ñ «íΩ∩ó½Ñ¡¡δ¼ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼,
Γ« «¡ ñ«½ªÑ¡ íδΓ∞ «íΩ∩ó½Ñ¡ ó Γ«⌐ ªÑ ßἫ⌐ τáßΓ¿ «íΩ∩ó½Ñ¡¿∩, τΓ« ¿
Γ¿» π¬áºáΓѽ∞.
ÅÑαѼѡ¡«⌐ π¬áºáΓѽ∩ ¼«ª¡« »α¿ßó«¿Γ∞ º¡áτÑ¡¿Ñ ß »«¼«Θ∞ε
»α«µÑñπαδ New, «»ÑαáΓ«αá @ ¿½¿ Σπ¡¬µ¿¿ Ptr. Åα«µÑñπαá New «Γó«ñ¿Γ
¡«óπε «í½áßΓ∞ »á¼∩Γ¿ ó ¬πτÑ ñ½∩ ñ¿¡á¼¿τÑ߬«⌐ »ÑαѼѡ¡«⌐ ¿ ß«σαá¡∩ÑΓ
áñαÑß φΓ«⌐ «í½áßΓ¿ ó »ÑαѼѡ¡«⌐ π¬áºáΓѽÑ. Ä»ÑαáΓ«α @ πßΓá¡áó½¿óáÑΓ
»ÑαѼѡ¡πε π¬áºáΓѽ∩ ¡á «í½áßΓ∞ »á¼∩Γ¿, ß«ñÑαªáΘπε ßπΘÑßΓóπεΘπε
»ÑαѼѡ¡πε, ó¬½ετá∩ ¿ ΓÑ »ÑαѼѡ¡δÑ, ¬«Γ«αδÑ ¿¼ÑεΓ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ.
öπ¡¬µ¿∩ Ptr πßΓá¡áó½¿óáÑΓ »ÑαѼѡ¡πε π¬áºáΓѽ∞ ¡á «»αÑñѽѡ¡δ⌐
áñαÑß ó »á¼∩Γ¿.
çáαѺÑαó¿α«óá¡¡«Ñ ß½«ó« nil «í«º¡áτáÑΓ ¬«¡ßΓá¡Γπ ß« º¡áτÑ¡¿Ñ¼
π¬áºáΓѽ∩, ¬«Γ«αδ⌐ ¡¿ ¡á τΓ« ¡Ñ π¬áºδóáÑΓ.
éßΓα«Ñ¡¡δ⌐ Γ¿» Pointer «í«º¡áτáÑΓ ¡ÑΓ¿»¿α«óá¡¡δ⌐ π¬áºáΓѽ∞, Γ«
ÑßΓ∞ π¬áºáΓѽ∞, ¬«Γ«αδ⌐ ¡Ñ π¬áºδóáÑΓ ¡¿ ¡á ¬á¬«⌐ «»αÑñѽѡ¡δ⌐ Γ¿».
ÅÑαѼѡ¡δÑ Γ¿»á Pointer ¡Ñ ¼«úπΓ íδΓ∞ αế¼Ñ¡«óá¡δ; π¬áºá¡¿Ñ
ß¿¼ó«½á ^ »«ß½Ñ Γᬫ⌐ »ÑαѼѡ¡«⌐ óδºδóáÑΓ »«∩ó½Ñ¡¿Ñ «Φ¿í¬¿. èᬠ¿
º¡áτÑ¡¿Ñ, «í«º¡áτáѼ«Ñ ß½«ó«¼ nil, º¡áτÑ¡¿∩ Γ¿»á Pointer ß«ó¼ÑßΓ¿¼δ
ß« óßѼ¿ ñαπú¿¼¿ Γ¿»á¼¿ π¬áºáΓѽÑ⌐.
é αáºñÑ½Ñ "ô¬áºáΓѽ¿ ¿ ñ¿¡á¼¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ" ó ú½áóÑ 4
¼«ª¡« ¡á⌐Γ¿ ß¿¡Γá¬ß¿ß ßß佬¿ ¡á ñ¿¡á¼¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ, ¬«Γ«αδÑ
π¬áºδóáεΓß∩ ß »«¼«Θ∞ε »ÑαѼѡ¡«⌐ π¬áºáΓѽ∩.
Åα«µÑñπα¡δÑ Γ¿»δ.
æΓá¡ñáαΓ¡δ⌐ Åá߬á½∞ αáßß¼áΓα¿óáÑΓ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ¬á¬
τáßΓ∞ »α«úαá¼¼δ, ¬«Γ«απε ¼«ª¡« óδ»«½¡¿Γ∞ »«ßαÑñßΓó«¼ ó맮óá
»α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿. é Turbo Pascal í«½ÑÑ ßó«í«ñ¡«Ñ «Γ¡«ΦÑ¡¿Ñ ¬
»α«µÑñπαá¼ ¿ Σπ¡¬µ¿∩¼: «¡ »«ºó«½∩ÑΓ αáßß¼áΓα¿óáΓ∞ »α«µÑñπαδ ¿
Σπ¡¬µ¿¿ ¬á¬ «í∞ѬΓδ, ¬«Γ«αδÑ ¼«ª¡« »α¿ßó«¿Γ∞ »ÑαѼѡ¡δ¼ ¿½¿ ¬«Γ«αδÑ
¼«úπΓ óδßΓπ»áΓ∞ ó ¬áτÑßΓóÑ »áαá¼ÑΓα«ó. Æá¬¿Ñ ñÑ⌐ßΓó¿∩ ßΓ὿
󫺼«ª¡δ¼¿ í½áú«ñáα∩ »α«µÑñπα¡δ¼ Γ¿»á¼.
ä½∩ í«½ÑÑ »«½¡«⌐ ¿¡Σ«α¼áµ¿¿ »« »α«µÑñπα¡δ¼ Γ¿»á¼ «íαáΓ¿ΓÑß∞ ¬
αáºñѽπ "Åα«µÑñπα¡δÑ Γ¿»δ" ó ú½áóÑ 8.
ÄíΩ∩ó½Ñ¡¿Ñ »α«µÑñπα¡«ú« Γ¿»á ºáñáÑΓ »áαá¼ÑΓαδ ¿, ñ½∩ Σπ¡¬µ¿¿,
Γ¿» αѺπ½∞ΓáΓá.
»α«µÑñπα¡δ⌐ Γ¿»
│
│ ┌─────────┐
└┬÷│procedure├─┬────────────────────────────────────────────────÷
│ └─────────┘ │ ┌────────────────────────────┐ ° °
│ └─÷│ß»¿ß«¬ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó├─┘ │
│ └────────────────────────────┘ │
│ ┌────────┐ ┌─┐ ┌─────────┐│
└÷│function├┬────────────────────────────────÷│:├÷│αѺπ½∞ΓáΓ├┘
└────────┘│ ┌────────────────────────────┐° └─┘ └─────────┘
└÷│ß»¿ß«¬ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó├┘
└────────────────────────────┘
æ¿¡Γá¬ß¿ß «íΩ∩ó½Ñ¡¿∩ »α«µÑñπα¡«ú« Γ¿»á Γ«τ¡« Γᬫ⌐ ªÑ, ¬á¬
«»αÑñѽѡ¿Ñ ºáú«½«ó¬á »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«,
τΓ« ¿ñÑ¡Γ¿Σ¿¬áΓ«α »«ß½Ñ ¬½ετÑó«ú« ß½«óá procedure ¿½¿ function
«»π߬áÑΓß∩. Åα¿¼Ñαδ «íΩ∩ó½Ñ¡¿⌐ »α«µÑñπα¡«ú« Γ¿»á:
type
Proc = procedure;
SwapProc = procedure(var X, Y: Integer);
StrProc = procedure(S: String);
MathFunc = function(X: Real): Real:
DeviceFunc = function(var F: Text): Integer;
MaxFunc = function(A, B: Real; F: MathFunc): Real;
ê¼Ñ¡á »áαá¼ÑΓα«ó ó «íΩ∩ó½Ñ¡¿¿ »α«µÑñπα¡«ú« Γ¿»á τ¿ßΓ«
ñѬ«αáΓ¿ó¡δÑ - «¡¿ ¡Ñ ó«ºñÑ⌐ßΓóπεΓ ¡á ß¼δß½ «íΩ∩ó½Ñ¡¿∩.
Åα¿¼Ñτá¡¿Ñ: Turbo Pascal ¡Ñ »«ºó«½∩ÑΓ éá¼ «íΩ∩ó½∩Γ∞ Σπ¡¬µ¿¿,
ó«ºóαáΘáεΘ¿Ñ º¡áτÑ¡¿∩ »α«µÑñπα¡«ú« Γ¿»á; αѺπ½∞ΓáΓ Σπ¡¬µ¿¿ ñ«½ªÑ¡
íδΓ∞ String, Real, Integer, Char, Boolean, Pointer ¿½¿
»ÑαÑτ¿ß½Ñ¡¿Ñ.
Æ«ªñÑßΓóÑ¡¡δÑ ¿ ß«ó¼ÑßΓ¿¼δÑ Γ¿»δ
äóá Γ¿»á ¼«úπΓ íδΓ∞ Γ«ªñÑßΓóÑ¡¡δ¼¿, ¿ φΓá Γ«ªñÑßΓóÑ¡¡«ßΓ∞
(¿ñÑ¡Γ¿τ¡«ßΓ∞) ∩ó½∩ÑΓß∩ «í∩ºáΓѽ∞¡«⌐ ó ¡Ñ¬«Γ«αδσ ¬«¡ΓѬßΓáσ. é
ñαπú¿σ ß½πτá∩σ ñóá Γ¿»á ñ«½ª¡δ íδΓ∞ Γ«½∞¬« ß«ó¼ÑßΓ¿¼δ ¿½¿
ß«ó¼ÑßΓ¿¼δ ñ½∩ »α¿ßóá¿óá¡¿∩. äóá Γ¿»á ∩ó½∩εΓß∩ Γ«ªñÑßΓóÑ¡¡δ¼¿, Ñß½¿
«¡¿ «»¿ßá¡δ ó¼ÑßΓÑ, ¿½¿ Ñß½¿ ¿σ «»αÑñѽѡ¿Ñ ¿ß»«½∞ºπεΓ «ñ¿¡ ¿ Γ«Γ
ªÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«α Γ¿»á.
Æ«ªñÑßΓóÑ¡¡«ßΓ∞ Γ¿»«ó
Æ«ªñÑßΓóÑ¡¡«ßΓ∞ Γ¿»«ó ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ »ÑαѼѡ¡δσ
Σá¬Γ¿τÑ߬¿σ ¿ Σ«α¼á½∞¡δσ »áαá¼Ñα«ó »α¿ ó맮óÑ »α«µÑñπα ¿ Σπ¡¬µ¿⌐.
äóá Γ¿»á, ߬áªÑ¼ Æ1 ¿ Æ2, ∩ó½∩εΓß∩ Γ«ªñÑßΓóÑ¡¡δ¼¿, Ñß½¿
∩ó½∩ÑΓß∩ ¿ßΓ¿¡¡δ¼ «ñ¡« ¿º ß½ÑñπεΘ¿σ πΓóÑαªñÑ¡¿⌐: Æ1 ¿ Æ2
»αÑñßΓáó½∩εΓ ß«í«⌐ «ñ¿¡ ¿ ëà ªÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«α Γ¿»á; Æ1 «íΩ∩ó½Ñ¡
¬á¬ φ¬ó¿óá½Ñ¡Γ¡δ⌐ Γ¿»π, Γ«ªñÑßΓóÑ¡¡«¼π Æ2.
éΓ«α«Ñ πß½«ó¿Ñ «º¡áτáÑΓ, τΓ« Æ1 ¡Ñ «í∩ºáΓѽ∞¡« ñ«½ªÑ¡ íδΓ∞
«íΩ∩ó½Ñ¡ ¬á¬ ¡Ñ»«ßαÑñßΓóÑ¡¡« φ¬ó¿óá½Ñ¡Γ¡δ⌐ Æ2. æ½ÑñπεΘÑÑ «íΩ∩ó½Ñ¡¿Ñ
Γ¿»«ó:
Æ1 = Integer;
Æ2 = Æ1;
Æ3 = Integer;
Æ4 = Æ2;
«º¡áτáεΓ, τΓ« Æ1, Æ2, Æ3, Æ4 ¿ Integer ∩ó½∩εΓß∩ Γ«ªñÑßΓóÑ¡¡δ¼¿
Γ¿»á¼¿. æ½ÑñπεΘ¿Ñ «íΩ∩ó½Ñ¡¿∩ Γ¿»«ó
Æ5 = set of Integer;
Æ6 = set of Integer;
¡Ñ «»αÑñѽ∩εΓ Æ5 ¿ Æ6 ¬á¬ Γ«ªñÑßΓóÑ¡¡δÑ, »«ß¬«½∞¬π set of
Integer ¡Ñ ∩ó½∩ÑΓß∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ Γ¿»á. äóÑ »ÑαѼѡ¡δÑ,
«íΩ∩ó½Ñ¡¡δÑ ó «ñ¡«¼ ¿ Γ«¼ ªÑ «íΩ∩ó½Ñ¡¿¿, ¡á»α¿¼Ñα:
V1, V2: set of Integer;
¿¼ÑÑεΓ Γ«ªñÑßΓóÑ¡¡δÑ Γ¿»δ, »«ß¬«½∞¬π ¿σ «íΩ∩ó½Ñ¡¿∩ ¡Ñ
αáºñѽѡδ. ÄíΩ∩ó½Ñ¡¿∩:
V1: set of Integer;
V2: set of Integer;
V3: Integer;
V4: Integer;
«º¡áτáεΓ, τΓ« V3 ¿ V4 ¿¼ÑεΓ Γ«ªñÑßΓóÑ¡¡δ⌐ Γ¿», á V1 ¿ V2 ¡ÑΓ.
æ«ó¼ÑßΓ¿¼«ßΓ∞ Γ¿»«ó
ê¡«úñá, ¡á»α¿¼Ñα, ó óδαáªÑ¡¿∩σ ¿ «»Ñαᵿ∩σ ßαáó¡Ñ¡¿∩ ΓαÑíπÑΓß∩
ß«ó¼ÑßΓ¿¼«ßΓ∞ Γ¿»«ó. æ«ó¼ÑßΓ¿¼«ßΓ∞ Γ¿»«ó, ¬α«¼Ñ Γ«ú«, ∩ó½∩ÑΓß∩
ó᪡«⌐ »αÑñ»«ß佬«⌐ ñ½∩ ß«ó¼ÑßΓ¿¼«ßΓ¿ »α¿ »α¿ßóá¿óá¡¿¿.
æ«ó¼ÑßΓ¿¼«ßΓ∞ Γ¿»«ó ¿¼ÑÑΓ ¼ÑßΓ«, Ñß½¿ óδ»«½¡∩ÑΓß∩, »« ¬αá⌐¡Ñ⌐
¼ÑαÑ, «ñ¡« ¿º ß½ÑñπεΘ¿σ πß½«ó¿⌐:
- «íá Γ¿»á ∩ó½∩εΓß∩ «ñ¿¡á¬«ó묨.
- «íá Γ¿»á ∩ó½∩εΓß∩ óÑΘÑßΓóÑ¡¡δ¼¿ Γ¿»á¼¿.
- «íá Γ¿»á ∩ó½∩εΓß∩ µÑ½«τ¿ß½Ñ¡¡δ¼¿.
- «ñ¿¡ Γ¿» ∩ó½∩ÑΓß∩ »«ññ¿á»áº«¡«¼ ñαπú«ú«.
- «íá Γ¿»á ∩ó½∩εΓß∩ »«ññ¿á»áº«¡á¼¿ «ñ¡«ú« ¿ Γ«ú« ªÑ «ß¡«ó¡«ú«
Γ¿»á.
- «íá Γ¿»á ∩ó½∩εΓß∩ Γ¿»á¼¿ ¼¡«ªÑßΓó ß ß«ó¼ÑßΓ¿¼δ¼¿ íẫó묨
Γ¿»á¼¿.
- «íá Γ¿»á ∩ó½∩εΓß∩ π»á¬«óá¡¡δ¼¿ ßΓ᫬«ó묨 Γ¿»á¼¿ ß
«ñ¿¡á¬«óδ¼ τ¿ß½«¼ ¬«¼»«¡Ñ¡Γ.
- «ñ¿¡ Γ¿» ∩ó½∩ÑΓß∩ ßΓ᫬«óδ¼, á ñαπú«⌐ Γ¿» ∩ó½∩ÑΓß∩ ¿½¿
ßΓ᫬«óδ¼ Γ¿»«¼, ¿½¿ π»á¬«óá¡¡δ¼ ßΓ᫬«óδ¼ Γ¿»«¼, ¿½¿
Γ¿»«¼ Char.
- «ñ¿¡ Γ¿» - Pointer, á ñαπú«⌐ ∩ó½∩ÑΓß∩ ½εíδ¼ Γ¿»«¼ π¬áºáΓѽ∩
- «íá Γ¿»á ∩ó½∩εΓß∩ »α«µÑñπα¡δ¼¿ Γ¿»á¼¿ ß Γ«ªñÑßΓóÑ¡¡δ¼¿
Γ¿»á¼¿ αѺπ½∞ΓáΓá, ß Γ«ªñÑßΓóÑ¡¡δ¼ τ¿ß½«¼ »áαá¼ÑΓα«ó, ß
Γ«ªñÑßΓóÑ¡¡δ¼¿ («ñ¿¡ ó «ñ¿¡) Γ¿»á¼¿ »áαá¼ÑΓα«ó.
æ«ó¼ÑßΓ¿¼«ßΓ∞ ó «»Ñαᵿ∩σ »α¿ßóá¿óá¡¿∩
æ«ó¼ÑßΓ¿¼«ßΓ∞ »« »α¿ßóá¿óá¡¿ε ¡Ñ«íσ«ñ¿¼á, Ñß½¿ ¿¼ÑÑΓ ¼ÑßΓ«
»α¿ßóá¿óá¡¿Ñ º¡áτÑ¡¿∩, ¡á»α¿¼Ñα, ó «»ÑαáΓ«αÑ »α¿ßóá¿óá¡¿∩ ¿½¿ »α¿
»ÑαÑñáτÑ º¡áτÑ¡¿⌐ »áαá¼ÑΓα«ó.
ç¡áτÑ¡¿Ñ Γ¿»á Æ2 ∩ó½∩ÑΓß∩ ß«ó¼ÑßΓ¿¼δ¼ »« »α¿ßóá¿óá¡¿ε ß Γ¿»«¼
Æ1 (Γ.Ñ. ñ«»πßΓ¿¼« Æ1:=Æ2),Ñß½¿ óδ»«½¡∩ÑΓß∩ «ñ¡« ¿º ß½ÑñπεΘ¿σ
πß½«ó¿⌐:
- Æ1 ¿ Æ2 ¿¼ÑεΓ Γ«ªñÑßΓóÑ¡¡δÑ Γ¿»δ, ¿ ¡¿ «ñ¿¡ ¿º ¡¿σ ¡Ñ
∩ó½∩ÑΓß∩ Σá⌐½«óδ¼ Γ¿»«¼ ¿½¿ ßΓαπ¬Γπα¡δ¼ Γ¿»«¼, ß«ñÑαªáΘ¿¼
¬«¼»«¡Ñ¡Γπ ß Σá⌐½«óδ¼ Γ¿»«¼ ¡á «ñ¡«¼ ¿º ßó«¿σ πα«ó¡Ñ⌐.
- Æ1 ¿ Æ2 ∩ó½∩εΓß∩ ß«ó¼ÑßΓ¿¼δ¼¿ »«α∩ñ¬«ó묨 Γ¿»á¼¿ ¿ º¡áτÑ¡¿∩
Γ¿»á Æ2 »«»áñáεΓ ó ñ¿á»áº«¡ 󫺼«ª¡δσ º¡áτÑ¡¿⌐ Æ1.
- Æ1 ¿ Æ2 ∩ó½∩εΓß∩ óÑΘÑßΓóÑ¡¡δ¼¿ Γ¿»á¼¿ ¿ º¡áτÑ¡¿∩ Γ¿»á Æ2
»«»áñáεΓ ó ñ¿á»áº«¡ 󫺼«ª¡δσ º¡áτÑ¡¿⌐ Æ1.
- Æ1 ∩ó½∩ÑΓß∩ óÑΘÑßΓóÑ¡¡δ¼ Γ¿»«¼, á Æ2 ∩ó½∩ÑΓß∩ µÑ½«τ¿ß½Ñ¡¡δ¼
Γ¿»«¼.
- Æ1 ¿ Æ2 ∩ó½∩εΓß∩ ßΓ᫬«ó묨 Γ¿»á¼¿.
- Æ1 ∩ó½∩ÑΓß∩ ßΓ᫬«óδ¼ Γ¿»«¼, á Æ2 ∩ó½∩ÑΓß∩ Γ¿»«¼ Char.
- Æ1 ∩ó½∩ÑΓß∩ ßΓ᫬«óδ¼ Γ¿»«¼, á Æ2 ∩ó½∩ÑΓß∩ π»á¬«óá¡¡δ¼
ßΓ᫬«óδ¼ Γ¿»«¼.
- Æ1 ¿ Æ2 ∩ó½∩εΓß∩ ß«ó¼ÑßΓ¿¼δ¼¿ π»á¬«óá¡¡δ¼¿ ßΓ᫬«ó묨
Γ¿»á¼¿.
- Æ1 ¿ Æ2 ∩ó½∩εΓß∩ ß«ó¼ÑßΓ¿¼δ¼¿ Γ¿»á¼¿ ¼¡«ªÑßΓó, ¿ óßÑ
º¡áτÑ¡¿∩ Γ¿»á Æ2 »«»áñáεΓ ó ñ¿á»áº«¡ 󫺼«ª¡δσ º¡áτÑ¡¿⌐ Æ1.
- Æ1 ¿ Æ2 ∩ó½∩εΓß∩ ß«ó¼ÑßΓ¿¼δ¼¿ Γ¿»á¼¿ π¬áºáΓѽÑ⌐.
- Æ1 ¿ Æ2 ∩ó½∩εΓß∩ ß«ó¼ÑßΓ¿¼δ¼¿ »α«µÑñπα¡δ¼¿ Γ¿»á¼¿.
- Æ1 ∩ó½∩ÑΓß∩ Γ¿»«¼ »α«µÑñπα¡δ¼ Γ¿»«¼, á Æ2 ∩ó½∩ÑΓß∩
»α«µÑñπα«⌐ ¿½¿ Σπ¡¬µ¿Ñ⌐ ß Γ«ªñÑßΓóÑ¡¡δ¼ Γ¿»«¼ αѺπ½∞ΓáΓá, ß
¿ñÑ¡Γ¿τ¡δ¼ τ¿ß½«¼ »áαá¼ÑΓα«ó ¿ Γ«ªñÑßΓóÑ¡¡«ßΓ∞ε «ñ¿¡-ó-«ñ¿¡
¼Ñªñπ Γ¿»á¼¿ »áαá¼ÑΓα«ó.
- ÄíΩÑ¬Γ Γ¿»á Æ2 ß«ó¼ÑßΓ¿¼ »« »α¿ßóá¿óá¡¿ε ß «íΩ5Ñ¬Γ«¼ Γ¿»á
Æ2, Ñß½¿ Æ2 ¡áσ«ñ¿Γß∩ ó «í½áßΓ¿ «»αÑñѽѡ¿∩ Æ1.
- ô¬áºáΓѽ∞ Γ¿»á É2, π¬áºδóáεΘ¿⌐ ¡á Γ¿» «íΩѬΓá Æ2, ß«ó¼ÑßΓ¿¼
»« »α¿ßóá¿óá¡¿ε ß π¬áºáΓѽѼ Γ¿»á É1, π¬áºδóáεΘ¿¼ ¡á Γ¿»
«íΩѬΓá Æ1, Ñß½¿ Æ2 ½Ñª¿Γ ó «í½áßΓ¿ «»αÑñѽѡ¿∩ Æ1.
ìá φΓá»Ñ ¬«¼»¿½∩µ¿¿ ¿ óδ»«½¡Ñ¡¿∩ óδñáÑΓß∩ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ,
Ñß½¿ ß«ó¼ÑßΓ¿¼«ßΓ∞ »« »α¿ßóá¿óá¡¿ε ¡Ñ«íσ«ñ¿¼á, á ¡¿ «ñ¡« ¿º πß½«ó¿⌐
»αÑñδñπΘÑú« ß»¿ß¬á ¡Ñ óδ»«½¡Ñ¡«.
Éáºñѽ «íΩ∩ó½Ñ¡¿∩ Γ¿»«ó.
Åα«úαá¼¼δ, »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ¿¼ÑεΓ ñ½∩ «íΩ∩ó½Ñ¡¿∩ Γ¿»«ó
߻ѵ¿á½∞¡πε τáßΓ∞ «íΩ∩ó½Ñ¡¿∩ Γ¿»«ó. ìá»α¿¼Ñα:
type
Range = Integer;
Number = Integer;
Color = (Red, Green, Blue);
CharVal = Ord(`A') .. Ord(`Z');
TestIndex = 1..100;
TestValue = -99..99;
TestList = array [TestIndex] of TestValue;
TestListPtr = ^TestList;
Date = object
Year: Integer;
Month: 1..12;
Day: 1..31;
procedure SetDate(D, M, Y: Integer);
function ShowDate: String;
end;
MeasureData = record
When: Date;
Count: TestIndex;
Data: TestListPtr;
end;
MeasureList = array [1..50] of MeasureData;
Name = string [80];
Sex = (Male, Female);
Person = ^PersonData;
PersonData = record
Name, FirstName: Name;
Age: Integer;
Married: Boolean;
Father, Child, Sibling: Person;
case S: Sex of
Male: (Bearded: Boolean);
Female: (Pregnant: Boolean);
end;
PersonBuf = array [0..Size of (PersonData) -1] of Byte;
People = file of PersonData;
é φΓ«¼ »α¿¼ÑαÑ Range, Number ¿ Integer ∩ó½∩εΓß∩ Γ«ªñÑßΓóÑ¡¡δ¼¿
Γ¿»á¼¿. TestIndex ∩ó½∩ÑΓß∩ ß«ó¼ÑßΓ¿¼δ¼ ¿ ß«ó¼ÑßΓ¿¼δ¼ »«
»α¿ßóá¿óá¡¿ε, ¡« ¡Ñ Γ«ªñÑßΓóÑ¡¡δ¼, ß Γ¿»á¼¿ Range, Number ¿
Integer. ÄΓ¼ÑΓ¿¼ ¿ß»«½∞º«óá¡¿Ñ ¬«¡ßΓá¡Γ¡δσ óδαáªÑ¡¿⌐ ó «íΩ∩ó½Ñ¡¿∩σ
CharVal ¿ PersonBuf.