Ïðîãðàììèðîâàíèå, îðèåíòèðîâàííîå íà îáúåêòû
TSIZE (ADDRESS) = TSIZE (WORD) = 2 (íá®Ôá).
Åp¿ ÝÔ«¼ ÓẼÑÓ Óáí«þÑú« »Ó«ßÔÓá¡ßÔóá áñÓÑß«ó, «»ÓÑñѽ´Ñ¼Ù® ¼«Ú¡«ßÔý¯
¼¡«ªÑßÔóá ¬«¡ßÔá¡Ô Ô¿»á ADDRESS, ß«ßÔáó½´½ ñ½´ 16-ÓáºÓ´ñ¡ÙÕ Øéî 216 =
65536 = 64*1024 = 64K. æÔÓѼ½Ñ¡¿Ñ ÓáßÞ¿Ó¿Ôý áñÓÑß¡«Ñ »Ó«ßÔÓá¡ßÔó«
(«ßÔáóá´ßý ó ÓἬáÕ Ô«® ªÑ ÓáºÓ´ñ¡«ßÔ¿ Øéî) »Ó¿óѽ« ó í«½ÑÑ »«ºñ¡¿Õ óÑÓß¿´Õ
´ºÙ¬«ó »Ó«úÓá¼¼¿Ó«óá¡¿´ ¬ Òóѽ¿þÑ¡¿¯ ÓẼÑÓá ݽѼѡԫó ÕÓá¡Ñ¡¿´ áñÓÑß«ó ó 2
Óáºá:
TSIZE (ADDRESS) = TSIZE (ARRAY[1..2] OF WORD) = 4 (íá®Ôá).
ÅÓ¿ ÝÔ«¼ ADDRESS ßÔá½ ¿¡ÔÑÓ»ÓÑÔ¿Ó«óáÔýß´ ¬á¬ ßÔÓÒ¬ÔÒÓá:
TYPE ADDRESS = RECORD
SEGMENT, OFFSET: CARDINAL;
END;
¿ß»«½ýº«óá¡¿Ñ ¬«Ô«Ó«® õá¬Ô¿þÑ߬¿ «ß¡«óá¡« ¡á ¿¡ñѬߡ«® ¿ñÑ¡Ô¿õ¿¬áµ¿¿
«íÛѬÔá. SEGMENT «»ÓÑñѽ´ÑÔ ¡«¼ÑÓ ßÑú¼Ñ¡Ôá Óáí«þÑú« »Ó«ßÔÓá¡ßÔóá áñÓÑß«ó,
ÒÔ«þ¡´Ñ¼«ú« ß¼ÑÚÑ¡¿Ñ¼ (OFFSET), ó ¬«Ô«Ó«¼ ÕÓá¡¿Ôß´ "ÓáßßÔ«´¡¿Ñ" «Ô ¡áþá½á
ßÑú¼Ñ¡Ôá ñ« »ÓÑñßÔáó½Ñ¡¿´ ¿ñÑ¡Ô¿õ¿µ¿ÓÒѼ«ú« «íÛѬÔá.
ï¯í«® «íÛѬÔ-Ò¬áºáÔѽý (ßó«í«ñ¡Ù® ¿½¿ «úÓá¡¿þÑ¡¡Ù®) ¿ñÑ¡Ô¿õ¿µ¿ÓÒÑÔß´
¿¼Ñ¡Ñ¼, ñѬ½áÓ¿Ó«óá¡¡Ù¼ ó »Ó«úÓá¼¼Ñ. ç¡áþÑ¡¿Ñ Ò¬áºáÔѽ´, ß«ÕÓᡴѼ«Ñ "»«ñ"
ÝÔ¿¼ ¿¼Ñ¡Ñ¼, ¿ñÑ¡Ô¿õ¿µ¿ÓÒÑÔ ó ßó«¯ «þÑÓÑñý ñÓÒú«® «íÛÑ¬Ô (Ò¬áºÙóáÑÔ ¡á
¡Ñú«). Æá¬á´ ¿ñÑ¡Ô¿õ¿¬áµ¿´ ¡á ÒÓ«ó¡Ñ º¡áþÑ¡¿® »«ºó«½´ÑÔ ñ¿¡á¼¿þÑ߬¿ (ó
»Ó«µÑßßÑ óÙ»«½¡Ñ¡¿´ »Ó«úÓá¼¼Ù) ¼Ñ¡´Ôý "»«½«ªÑ¡¿Ñ ßÔÓѽ«¬" Ò¬áºáÔѽ´ ¿
ß««ÔóÑÔßÔóÑ¡¡« ¿ñÑ¡Ô¿õ¿µ¿Ó«óáÔý Óẽ¿þ¡ÙÑ «íÛѬÔÙ. "ù¿ßÔ«Ñ" ¿¼Ñ¡«óá¡¿Ñ ¡Ñ
ñáÑÔ Ôá¬¿Õ ó«º¼«ª¡«ßÔÑ®. ì¿ªÑ »Ó¿óÑñÑ¡á úÓáõ¿þÑ߬ᴠ¿½½¯ßÔÓᵿ´ ßßÙ½«þ¡«®
¿ñÑ¡Ô¿õ¿¬áµ¿¿ «íÛѬԫó Ò¬áºáÔѽѼ "»« ¿¼Ñ¡¿" P.
TYPE èóáñÓáÔ: ... ; VAR P: POINTER TO èóáñÓáÔ;
Ø½Ñ¼Ñ¡Ô xÓá¡Ñ¡¿´ Ò¬áºáÔѽ´
+-----------------------------+
ê¼´: P | ç¡áþÑ¡¿Ñ Ò¬áºáÔѽ´ *--+---+ (P=NIL)
+--------------------------+--+ v
+---+-----+--------+----+ -+-
| | | -+-
| | | |
+--v---+-----+--------+-------+
| +++ | | v | +-+ «íÛÑ¬Ô ¬½áßßá
| +-+ v v | +-+ èóáñpáÔ
| +++ +++ |
| +-+ +-+ | «íÛÑ¬Ô ¬½áßßá
| | PÑÞÑÔ«
| Páí«þÑÑ »p«ßÔpá¡ßÔó« »á¼´Ô¿ |
+-----------------------------+
ìá»Óáó½Ñ¡¿Ñ ßÔÓѽ«¬, «»ÓÑñѽ´Ñ¼«Ñ 󫺼«ª¡Ù¼¿ º¡áþÑ¡¿´¼¿ Ò¬áºáÔѽ´ P,
«Ô¬ÓÙóáÑÔ ñ«ßÔÒ» ¬ «íÛѬÔá¼ ¬½áßßá èóáñÓáÔ. ìá»Óáó½Ñ¡¿Ñ ßÔÓѽ¬¿,
Ò¬áºÙóá¯ÚÑ® ¡á "pÑÞÑÔ«", ñ½´ P, ñѬ½áÓ¿Ó«óá¡¡«ú« ¬á¬ POINTER TO èóáñÓáÔ,
´ó½´ÑÔß´ ¡Ññ«»ÒßÔ¿¼Ù¼, ßÔÓѽ¬á P=NIL ¡¿ ¡á þÔ« ¡Ñ Ò¬áºÙóáÑÔ.
êñÑ¡Ô¿õ¿¬áµ¿´ «íÛѬԫó þÑÓѺ ßßÙ½¬¿ «Ô¬ÓÙóáÑÔ ó«º¼«ª¡«ßÔ¿ «Óúá¡¿ºáµ¿¿
ñ¿¡á¼¿þÑ߬¿ ¼«ñ¿õ¿µ¿ÓÒѼÙÕ ßó´ºá¡¡ÙÕ ßÔpÒ¬ÔÒp. ÄíÛѬÔÙ, ¿º ¬«Ô«ÓÙÕ
¬«¡ßÔÓÒ¿ÓÒ¯Ôß´ Ôá¬¿Ñ ßÔÓÒ¬ÔÒÓÙ, ñ«½ª¡Ù «í½áñáÔý ßó«®ßÔó«¼ "ê¼ÑÔý ß󴺿 ß
ñÓÒú¿¼¿ «íÛѬÔἿ", ¬«Ô«p«Ñ ߻ѵ¿õ¿µ¿pÒÑÔß´ ¬á¬ Ò¬áºáÔѽý. ìá»Ó¿¼ÑÓ,
TYPE ؽѼѡÔ_ö¿úÒÓÙ = RECORD
A : èóáñÓáÔ;
B : POINTER TO ؽѼѡÔ_ö¿úÒÓÙ
END.
ì¿ªÑ »Ó¿óÑñÑ¡á úÓáõ¿þÑ߬ᴠ¿½½¯ßÔÓᵿ´ «ñ¡«® ¿º ¼¡«ú¿Õ ßó´ºá¡¡ÙÕ ßÔpÒ¬ÔÒp -
ßÔpÒ¬ÔÒp٠諽ýµá, ß«ßÔáó½Ñ¡¡«ú« ¿º ÔÓÑÕ Ôá¬¿Õ Ý½Ñ¼Ñ¡Ô«ó.
+--------+ +----------+
| v v P | v
| +---+---+ +---+---+ | +---+---+
| | A | | A | | | A |
| |-------+ +-------| | +-------|
| | B *-+-------->+ B *-+-----+ | B * |
| +-------+ +-------+ +---+---+
| |
+-----------------------------------------------+
VAR P: POINTER TO ؽѼѡÔ_ö¿úÒÓÙ
ìá ÝÔ«® ¿½½¯ßÔÓᵿ¿ Ññ¿¡ßÔóÑ¡¡Ù® Ò¬áºáÔѽý P »«ß½Ññ«óáÔѽý¡« (ó ¡á»Óáó½Ñ¡¿¿
ßÔÓѽ«¬ ßó´ºÑ®) «Ô¬ÓÙóáÑÔ ñ«ßÔÒ» ¬« óßѼ ݽѼѡÔá¼ ßÔpÒ¬ÔÒp٠諽ýµá.
çá¼ÑÔ¿¼, þÔ« ¡á ÝÔ«® ¿½½¯ßÔÓᵿ¿ (ó «Ô½¿þ¿Ñ «Ô »ÓÑñÙñÒÚÑ®) Ý½Ñ¼Ñ¡Ô ÕÓá¡Ñ¡¿´
Ò¬áºáÔѽ´ P ÒªÑ ¡Ñ ¿º«íÓáªÑ¡. ÅÓ«ßÔ« Ó´ñ«¼ ß« ßÔpѽ¬«® »p«ßÔáó½Ñ¡« ¿¼´
Ò¬áºáÔѽ´ - ÝÔ« «íÙþ¡Ù® »Ó¿Ñ¼ ñ½´ úÓáõ¿þÑ߬¿Õ ¿½½¯ßÔÓᵿ® »pÑñßÔáó½Ñ¡¿´
ßó´ºá¡¡ÙÕ ßÔÓÒ¬ÔÒÓ.
ï¯í«Ñ »Ó¿ßó«Ñ¡¿Ñ º¡áþÑ¡¿´ Ò¬áºáÔѽ¯ úÓáõ¿þÑ߬¿ ¿¡ÔÑÓ»ÓÑÔ¿ÓÒÑÔß´ ¬á¬
¿º¼Ñ¡Ñ¡¿Ñ ¡á»Óáó½Ñ¡¿´ ß««ÔóÑÔßÔóÒ¯ÚÑ® ßÔÓѽ¬¿ (»ÑÓÑßÔá¡«ó¬á, »ÑÓÑñ󿪬á
Ò¬áºáÔѽ´ ¡á ñÓÒú«® «íÛѬÔ). ä«ßÔÒ» ¬ «íÛѬÔÒ þÑÓѺ Ò¬áºáÔѽý «Ô¬ÓÙóáÑÔß´
»ÒÔѼ ¿¼Ñ¡«óá¡¿´ Ò¬áºáÔѽ´ ß »«ßÔõ¿¬ß«¼ "^". Æá¬, ó »Ó¿óÑñÑ¡¡«¼ óÙÞÑ
»Ó¿¼ÑÓÑ ñ½´ ñ«ßÔÒ»á ¬ «íÛѬÔÒ ¬½áßßá èóáñÓáÔ þÑÓѺ P: POINTER TO
ؽѼѡÔ_ö¿úÒÓÙ ¡Ñ«íÕ«ñ¿¼« ¿ß»«½ýº«óáÔý ¬ó὿ñÑ¡Ô ó¿ñá P^.A. é ¡Ñ¼
"ºáÞ¿õÓ«óá¡á" ß½ÑñÒ¯Úá´ »«ß½Ññ«óáÔѽý¡«ßÔý ñ«ßÔÒ»á:
P - ñ«ßÔÒ» ¬ Ò¬áºáÔѽ¯, ¿ñÑ¡Ô¿õ¿µ¿ÓÒ¯ÚÑ¼Ò Ø½Ñ¼Ñ¡Ô_ö¿úÒÓÙ;
P^ - ñ«ßÔÒ» ¬ ßÔÓÒ¬ÔÒÓÑ Ø½Ñ¼Ñ¡Ôá, ¡á ¬«Ô«ÓÒ¯ Ò¬áºÙóáÑÔ P;
P^. - ñ«ßÔÒ» ¬ áÔp¿íÒÔá¼ (¬«¼»«¡Ñ¡Ôá¼) ÝÔ«® ßÔÓÒ¬ÔÒÓÙ;
P^.A - ñ«ßÔÒ» ¬ áÔp¿íÒÔÒ èóáñÓáÔ.
èáªñÙ® ¿º »«ñ«í¡ÙÕ ¬ó὿ñÑ¡Ô«ó «Ô¬ÓÙóáÑÔ ñ«ßÔÒ» ¬ "ßó«Ñ¼Ò" Ò¡¿¬á½ý¡«¼Ò
«íÛѬÔÒ (¿½¿ áÔp¿íÒÔÒ). ìÑÔpÒñ¡« ºá¼ÑÔ¿Ôý, þÔ« ñ½´ ÝÔ«ú« »Ó¿¼ÑÓá (¿ ó «íÚѼ
ß½ÒþáÑ)
SIZE (P) # SIZE (P^) # SIZE (P^.A).
èßÔáÔ¿, þÑ¼Ò Óáó¡« SIZE (P^) ñ½´ ÝÔ«ú« »p¿¼Ñpá?
P«½ý »«ßÔõ¿¬ßá "^" (ßÔÓѽ¬¿) ºá¬½¯þáÑÔß´ ó "«Ô¬ÓÙÔ¿¿" ñ«ßÔÒ»á ¬ «íÛѬÔÒ
þÑÓѺ º¡áþÑ¡¿Ñ Ò¬áºÙóá¯ÚÑ® ¡á ¡Ñú« ßßÙ½¬¿. ê¡«úñá ÝÔÒ «»Ñpᵿ¯ «ípạ«
¡áºÙóá¯Ô "pá߬pÙԿѼ ßßÙ½¬¿". êß»«½ýº«óáÔý ß¿¼ó«½ "^" ¬á¬ »«ßÔõ¿¬ß ó ¿¼Ñ¡¿
«íÛѬÔá, ¬«Ô«ÓÙ® ¡Ñ ´ó½´ÑÔß´ Ò¬áºáÔѽѼ, ó «íÚѼ ß½ÒþáÑ ¡Ññ«»ÒßÔ¿¼«.
êß»«½ýº«óá¡¿Ñ ¬ó὿ñÑ¡Ô«ó ß ß¿¼ó«½«¼ "^" ó «»ÑÓáÔ«ÓáÕ »Ó¿ß«Ññ¿¡Ñ¡¿´
»Ó«ó«ñ¿Ôß´ ó «ß¡«ó¡«¼ ÔᬠªÑ, ¬á¬ ÒªÑ íÙ½« «»¿ßá¡« óÙÞÑ »Ó¿¼Ñ¡¿Ôѽý¡« ¬
áúÓÑú¿Ó«óá¡¡Ù¼ ßÔÓÒ¬ÔÒÓá¼. çñÑßý ß½ÑñÒÑÔ »«¼¡¿Ôý, þÔ« ½¯í«Ñ »Ó¿ß«Ññ¿¡Ñ¡¿Ñ
µÑ½Ñß««ípạ« ß ñóÒÕ Ô«þѬ ºpÑ¡¿´:
1) ñ½´ ß«¬ÓáÚÑ¡¿´ ñ¿ßÔᡵ¿¿ ñ«ßÔÒ»á ¬ ¬«¼»«¡Ñ¡Ôá¼ áúÓÑú¿Ó«óá¡¡«® ßÔÓÒ¬ÔÒÓÙ;
2) ñ½´ »«óÙÞÑ¡¿´ ¡áú½´ñ¡«ßÔ¿, óÙpếÔѽý¡«ßÔ¿ ¿ ßÔpÒ¬ÔÒp¡«ßÔ¿ »p«úpá¼¼Ù.
ä½´ ß½Òþá´ P: POINTER TO ؽѼѡÔ_ö¿úÒÓÙ ¿ß»«½ýº«óá¡¿Ñ «»ÑÓáÔ«Óá
WITH P^ DO < ÅÓ¿ß«Ññ¿¡´Ñ¼Ù® õÓáú¼Ñ¡Ô > END
pÑ὿ºÒÑÔ »p¿ß«Ññ¿¡Ñ¡¿Ñ ¬ ؽѼѡÔÒ_ö¿úÒpÙ, pẼÑÚÑ¡¡«¼Ò ó »á¼´Ô¿ "»«ñ" P,
á «»ÑÓáÔ«Ó
WITH P DO < ÅÓ¿ß«Ññ¿¡´Ñ¼Ù® õÓáú¼Ñ¡Ô > END
¼«ªÑÔ pÑ὿º«óáÔý »p¿ß«Ññ¿¡Ñ¡¿Ñ Ô«½ý¬« (!) ¬ áÔp¿íÒÔá¼ ßἫú« Ò¬áºáÔѽ´
(Ô.Ñ. »«½´¼ SEGMENT ¿ OFFSET) ¿ ¡Ñ ¿¼ÑÑÔ ¡¿¬á¬«ú« ß¼Ùß½á ó »½á¡Ñ
»p¿ß«Ññ¿¡Ñ¡¿´ ¬ ؽѼѡÔÒ_ö¿úÒpÙ. é ÝÔ«® ß󴺿 Ôá¬ªÑ «Ô¼ÑÔ¿¼, þÔ« ½¯í«Ñ
»Ó¿ß«Ññ¿¡Ñ¡¿Ñ, ñѬ½áÓ¿Ó«óá¡¡«Ñ ß««ÔóÑÔßÔóÒ¯Ú¿¼ «»ÑÓáÔ«Ó«¼ WITH, óÙ»«½¡´ÑÔß´
»«ß½Ñ Ô«ú«, ¬á¬ «»ÓÑñѽѡ« º¡áþÑ¡¿Ñ »Ó¿ß«Ññ¿¡´¯ÚÑú« ¬ó὿ñÑ¡Ôá, Ô.Ñ. ñ«
"óÕ«ñá" ó »Ó¿ß«Ññ¿¡´Ñ¼Ù® õÓáú¼Ñ¡Ô. Å«ÝÔ«¼Ò ½¯í«Ñ ¿º¼Ñ¡Ñ¡¿Ñ º¡áþÑ¡¿´
»p¿ß«Ññ¿¡´¯ÚÑú« Ò¬áºáÔѽ´ ó¡ÒÔÓ¿ »Ó¿ß«Ññ¿¡´Ñ¼«ú« õÓáú¼Ñ¡Ôá ¡Ñ ¿º¼Ñ¡¿Ô ÒªÑ
ß«ºñá¡¡«ú« »Ó¿ß«Ññ¿¡Ñ¡¿´ ¿ ¡Ñ¿ºíѪ¡« ¡ápÒÞ¿Ô ½«ú¿¬Ò óÙ»«½¡Ñ¡¿´ ÝÔ«ú«
õpáú¼Ñ¡Ôá. Åp¿óÑñѼ ÑÚÑ »p¿¼Ñp:
VAR P: POINTER TO èóáñÓáÔ;
BEGIN ... P:= ...; (* ôßÔá¡«ó¬á P ¡á ¬óáñÓáÔ *)
WITH P^ DO ...
(* Éáí«Ôá ß ¬óáñÓáÔ«¼, ¡á ¬«Ô«ÓÙ® Ò¬áºÙóáÑÔ P *);
P:= ...; (* ôßÔá¡«ó¬á P ¡á ¡«óÙ® ¬óáñÓáÔ *)
... (* Éáí«Ôá ß ¡«óÙ¼ ¬óáñÓáÔ«¼ *)
END.
é ÝÔ«¼ »Ó¿¼ÑÓÑ ÒßÔá¡«ó¬á P "¡á ¡«óÙ® ¬óáñÓáÔ " ¡Ñ »Ó¿óÑñÑÔ ¬ ¿º¼Ñ¡Ñ¡¿¯ ÒªÑ
ß«ºñá¡¡«ú« »Ó¿ß«Ññ¿¡Ñ¡¿´ ¿ ß««ÔóÑÔßÔóÑ¡¡« "Óáí«Ôá ß ¡«óÙ¼ ¬óáñÓáÔ«¼" þÑÓѺ
Ò¬«Ó«þÑ¡¡ÙÑ ¿ñÑ¡Ô¿õ¿¬áÔ«ÓÙ ¡Ñ ß«ßÔ«¿Ôß´ - ÝÔ«Ô õÓáú¼Ñ¡Ô »Ó«ñ«½ª¿Ô Óáí«ÔÒ ß«
"ßÔáÓÙ¼" ¬óáñÓáÔ«¼. ìѺ¡á¡¿Ñ ÝÔ«ú« «íßÔ«´ÔѽýßÔóá ¼«ªÑÔ ß½Òª¿Ôý ¿ßÔ«þ¡¿¬«¼
¼¡«ú¿Õ ÔÓÒñ¡« ¿ñÑ¡Ô¿õ¿µ¿ÓÒѼÙÕ «Þ¿í«¬, 󫺡¿¬á¯Ú¿Õ Ô«½ý¬« »p¿ ¿ñÑ¡Ô¿õ¿¬áµ¿¿
«íÛѬԫó ¼ÑÔ«ñ«¼ Ò¬áºá¡¿´.
é µÑ½«¼ Ò¬áºáÔѽý¡á´ ¿ñÑ¡Ô¿õ¿¬áµ¿´ »Ó¿¡µ¿»¿á½ý¡« «Ô½¿þáÑÔß´ «Ô ¿¼Ñ¡«óá¡¿´
ÔѼ, þÔ« «¡á ¿ß»«½ýºÒÑÔ ß»Ñµ¿á½ý¡ÙÑ ¿ñÑ¡Ô¿õ¿µ¿ÓÒ¯Ú¿Ñ «íÛѬÔÙ - Ò¬áºáÔѽ¿
(¿½¿ ßßÙ½¬¿), ß ¬«Ô«ÓÙ¼¿ ¼«ª¡« Óáí«ÔáÔý ¬á¬ ß ½¯íÙ¼¿ ñÓÒú¿¼¿ "«íÙþ¡Ù¼¿"
«íÛѬÔἿ. ØÔ« ßÒÚÑßÔóÑ¡¡« ÓáßÞ¿Ó´ÑÔ ó«º¼«ª¡«ßÔ¿ "þ¿ßÔ«ú«" ¿¼Ñ¡«óá¡¿´ ¿
»«ºó«½´ÑÔ ÓÑ὿º«óáÔý ñ¿¡á¼¿þÑ߬ү ¿ñÑ¡Ô¿õ¿¬áµ¿¯ Óẽ¿þ¡ÙÕ «íÛѬԫó þÑÓѺ
«ñ¿¡ ¿ Ô«Ô ªÑ Ò¬áºáÔѽý, ¿ñÑ¡Ô¿õ¿µ¿ÓÒѼٮ Ññ¿¡ßÔóÑ¡¡Ù¼ »Ó¿ßó«Ñ¡¡Ù¼ ѼÒ
¿¼Ñ¡Ñ¼.
IV. êìÆàPÅPàÆÇûêf ÄüÜàèÆÄé
Å«½¿¼«Óõ¿º¼. - æ«ó¼ÑßÔ¿¼«ßÔý Ô¿»«ó. - öÒ¡¬µ¿¿ »ÓÑ«íÓẫóá¡¿´ ¿ »Ó¿óÑñÑ¡¿´
Ô¿»«ó. - çỿ߿ ß óáÓ¿á¡ÔἿ. - ìáß½Ññ«óá¡¿Ñ ßó«®ßÔó. - Ä»ÓÑñѽѡ¿Ñ "
¡á½«ªÑ¡¿Ñ¼ ". - æἫ¿¡ÔÑÓ»ÓÑÔ¿ÓÒѼٮ «íÛѬÔ.
ÆÑÓ¼¿¡ "¿¡ÔÑÓ»ÓÑÔᵿ´" «»ÓÑñѽ´ÑÔ "»Ó¿»¿ßÙóá¡¿Ñ" «íÛѬÔÒ «»ÓÑñѽѡ¡ÙÕ
ßѼá¡Ô¿þÑ߬¿Õ, ß¼Ùß½«óÙÕ ßó«®ßÔó. ìá»Ó¿¼ÑÓ, ß¿¼ó«½ "I", ¿¡ÔÑÓ»ÓÑÔ¿ÓÒѼٮ
¬á¬ "É¿¼ß¬á´_û¿õÓá", íÒñÑÔ áßß«µ¿¿p«óáÔýß´ ß «íÛѬԫ¼ «»ÓÑñѽѡ¡«® ß¿ßÔѼÙ
ßþ¿ß½Ñ¡¿´, ÕáÓá¬ÔÑÓ¿ºÒѼ«® «ß«íÙ¼¿ ßó«®ßÔóἿ ÝÔ«® ß¿ßÔѼÙ.
é Ô« ªÑ óÓѼ´ "I" ¬á¬ "ï¿ÔÑÓá" ½áÔ¿¡ß¬«ú« á½õáó¿Ôá ÕáÓá¬ÔÑÓ¿ºÒÑÔß´
ß«óÑÓÞÑ¡¡« ñÓÒú¿¼¿ ßó«®ßÔóἿ. "I" ¬á¬ íÒ¬óá á¡ú½¿®ß¬«ú« á½õáó¿Ôá ¿¼ÑÑÔ
ß«íßÔóÑ¡¡ÙÑ ßó«®ßÔóá, ó þáßÔ¡«ßÔ¿, «»ÓÑñѽ´ÑÔ «ß«í«Ñ »Ó«¿º¡«ÞÑ¡¿Ñ "á®", á
¬á¬ íÒ¬óá ¡Ñ¼Ñµ¬«ú« á½õáó¿Ôá «¡á Ôᬿ¼ ßó«®ßÔó«¼ ¡Ñ «í½áñáÑÔ.
î¡«ªÑßÔóÑ¡¡«ßÔý ¿¡ÔÑÓ»ÓÑÔᵿ® «ñ¡«ú« ¿ Ô«ú« ªÑ «íÛѬÔá ßó´ºá¡á ß »«¡´Ô¿Ñ¼
»«½¿¼«Óõ¿º¼á. æ »p«´ó½Ñ¡¿Ñ¼ »«½¿¼«Óõ¡ÙÕ ¿¡ÔÑÓ»ÓÑÔᵿ® «íÛѬԫó ¼Ù
ßÔὬ¿óáѼߴ íÒ¬óá½ý¡« ¡á ¬áªñ«¼ ÞáúÒ - ÝÔ« ¿ ¼¡«ú«º¡áþ¡«ßÔý ¼¡«ú¿Õ
«í«p«Ô«ó ÓÑþ¿ (õÓẫóÙÕ ßÔÓÒ¬ÔÒÓ) ¿ ¼¡«ú«µÑ½Ñó«Ñ ¿ß»«½ýº«óá¡¿Ñ «íÛѬÔá
(óß»«¼¡¿ÔÑ »«óÑßÔý î.ÆóÑ¡á "ÅÓ¿¡µ ¿ ¡¿Ú¿®", úñÑ ú½áó¡Ù® úÑÓ«®
¿¡ÔÑÓ»ÓÑÔ¿Ó«óá½ ú«ßÒñáÓßÔóÑ¡¡Ò¯ »ÑþáÔý ¬á¬ ßÓÑñßÔó« ñ½´ Óá߬á½Ùóá¡¿´
«ÓÑÕ«ó), ¿, ¡á¬«¡Ñµ, ¼¡«ªÑßÔó« ½¿þ¡«ßÔ¡ÙÕ ¬áþÑßÔó ¿¡ÔÑÓ»ÓÑÔáÔ«Óá: ñ½´ ¬«ú«-
Ô« Ó«ºÙ - ÝÔ« µóÑÔÙ, á ñ½´ ¬«ú«-Ô« Þ¿»Ù.
é »Ó«úÓá¼¼¿Ó«óá¡¿¿ «íÛÑ¬Ô ¬á¬ ñá¡¡«ßÔý »«½¡«ßÔý¯ «»ÓÑñѽ´ÑÔß´ »«¡´Ô¿Ñ¼
ݽѼѡÔá ÕÓá¡Ñ¡¿´, ÒªÑ ¿ß»«½ýº«óá¡¡Ù¼ ó »ÓÑñÙñÒÚ¿Õ ú½áóáÕ. é ¬«¡Ñþ¡«¼ ßþÑÔÑ
ó »á¼´Ô¿ Øéî ½¯í«® Ý½Ñ¼Ñ¡Ô ÕÓá¡Ñ¡¿´ ß«ñÑÓª¿Ô »«ß½Ññ«óáÔѽý¡«ßÔý ¡Ò½Ñ® ¿
Ññ¿¡¿µ, ¿¡ÔÑÓ»ÓÑÔᵿ´ ªÑ ÝÔ«® »«ß½Ññ«óáÔѽý¡«ßÔ¿ ¬á¬ «íÛѬÔá »«½¡«ßÔý¯
ºáó¿ß¿Ô «Ô »Ó«úÓá¼¼¿ßÔá. é«»Ó«ß ó Ô«¼, þÑÓѺ ¬á¬¿Ñ "«þ¬¿" (ÔÓáõáÓÑÔ, ¼á߬Ò)
¼Ù »«ß¼«ÔÓ¿¼ ¡á Ý½Ñ¼Ñ¡Ô ÕÓá¡Ñ¡¿´. é ÝÔ«¼ ß¼Ù᫥ »«¡´Ô¿Ñ áíßÔÓá¬Ô¡«ú« Ô¿»á ó
»Ó«úÓá¼¼¿Ó«óá¡¿¿ ¿ óÙ»«½¡´ÑÔ Ó«½ý Ôá¬¿Õ «þ¬«ó (ÔÓáõáÓÑÔá, ¼á߬¿).
î¡«ªÑßÔó« Ô¿»«ó «»ÓÑñѽ´ÑÔ ¼¡«ªÑßÔó« 󫺼«ª¡ÙÕ ¿¡ÔÑÓ»ÓÑÔᵿ® «íÛѬÔá. é
ÝÔ«¼ »½á¡Ñ ó ´ºÙ¬áÕ 3-ú« »«¬«½Ñ¡¿´ «ß¡«ó¡Ù¼ ´ó½´ÑÔß´ »«¡´Ô¿Ñ ß«ó¼ÑßÔ¿¼«ßÔ¿
Ô¿»«ó. îÙ Óáßß¼áÔÓ¿óáѼ ñóá á߻ѬÔá Ôᬫ® ß«ó¼ÑßÔ¿¼«ßÔ¿: ß«ó¼ÑßÔ¿¼«ßÔý »«
»ÓÑñßÔáó½Ñ¡¿¯ (ÕÓá¡Ñ¡¿¯) «íÛѬÔá ó »á¼´Ô¿ Øéî ¿ ß«ó¼ÑßÔ¿¼«ßÔý ß«íßÔóÑ¡¡« »«
¿¡ÔÑÓ»ÓÑÔᵿ¿.
æ«ó¼ÑßÔ¿¼«ßÔý »ÓÑñßÔáó½Ñ¡¿® «»ÓÑñѽ´ÑÔß´ ÓẼÑÓἿ ݽѼѡԫó ÕÓá¡Ñ¡¿´.
ìá»Ó¿¼ÑÓ, Ñß½¿ «íÛѬÔÙ Ô¿»á CARDINAL ÕÓá¡´Ôß´ ó «ñ¡«¼ ¼áÞ¿¡¡«¼ ß½«óÑ (2
íá®Ôá) ¿ «íÛѬÔÙ Ô¿»á INTEGER ÕÓá¡´Ôß´ ó «ñ¡«¼ ß½«óÑ, Ô« INTEGER ¿ CARDINAL
ß«ó¼ÑßÔ¿¼Ù »« »ÓÑñßÔáó½Ñ¡¿¯ (¼ÑªñÒ ß«í«® ¿ ß ¼áÞ¿¡¡Ù¼ Ô¿»«¼ WORD).
A¡á½«ú¿þ¡« ß«ó¼ÑßÔ¿¼Ù »« »ÓÑñßÔáó½Ñ¡¿¯ CHAR ¿ BYTE; WORD ¿ ARRAY [1..2] OF
BYTE ¿ Ô.ñ.
æ«ó¼ÑßÔ¿¼«ßÔý »« ¿¡ÔÑÓ»ÓÑÔᵿ¿ «»ÓÑñѽ´ÑÔß´ 󫺼«ª¡«ßÔý¯ ¿ß»«½ýº«óáÔý
«íÛÑ¬Ô «ñ¡«ú« ¬½áßßá ó ¬áþÑßÔóÑ «íÛѬÔá ñÓÒú«ú« ¬½áßßá. ìá»Ó¿¼ÑÓ, ½«ª¬Ò ó
¬áþÑßÔóÑ ó¿½¬¿. é »Ó«úÓá¼¼¿Ó«óá¡¿¿ ß«ó¼ÑßÔ¿¼«ßÔý »« ¿¡ÔÑÓ»ÓÑÔᵿ¿ «íÙþ¡«
ßó´ºÙóáÑÔß´ ß ó«º¼«ª¡«ßÔý¯ »Ó¿ßóá¿óá¡¿´ «íÛѬÔÒ «ñ¡«ú« ¬½áßßá º¡áþÑ¡¿´
«íÛѬÔá ñÓÒú«ú« ¬½áßßá ¿ ¡áºÙóáÑÔß´ ß«ó¼ÑßÔ¿¼«ßÔý¯ »« »Ó¿ßóá¿óá¡¿¯. ÅÓ¿¼ÑÓ
Ôᬫ® ß«ó¼ÑßÔ¿¼«ßÔ¿:
VAR A: CARDINAL; B: INTEGER; BEGIN ... A:=B .
æ«ó¼ÑßÔ¿¼«ßÔý »« »Ó¿ßóá¿óá¡¿¯ «íÙþ¡« »«ñÓáºÒ¼ÑóáÑÔ ß«ó¼ÑßÔ¿¼«ßÔý
»ÓÑñßÔáó½Ñ¡¿® «íÛѬԫó.
Å«¡´Ô¿Ñ ß«ó¼ÑßÔ¿¼«ßÔ¿ Ô¿»«ó Òß½«ó¡« ñѽ¿Ô ´ºÙ¬¿ »Ó«úÓá¼¼¿Ó«óá¡¿´ ¡á
"ßÔÓ«ú¿Ñ" ¿ "¡ÑßÔÓ«ú¿Ñ". é »ÑÓó«® úÓÒ»»Ñ ´ºÙ¬«ó »Óá󿽫¼ ´ó½´ÑÔß´
¡Ñ󫺼«ª¡«ßÔý »Ó´¼«ú« ¿ß»«½ýº«óá¡¿´ «íÛѬԫó ÓạÙÕ ¬½áßß«ó ó «ñ¡«¼
óÙÓáªÑ¡¿¿. Æá¬«Ñ óÙÓáªÑ¡¿Ñ ¡Ñ«íÕ«ñ¿¼« ¬«¡ßÔÓÒ¿Ó«óáÔý ¡á «ß¡«óÑ ß»Ñµ¿á½ý¡ÙÙÕ
õÒ¡¬µ¿® »ÓÑ«íÓẫóá¡¿´ Ô¿»«ó, »Ó¿óÑñÑ¡¿´ Ô¿»«ó ¿ ߻ѵ¿á½ý¡ÙÕ ¼ÑÔ«ñ«ó
ß«ó¼ÑÚÑ¡¿´ Ô¿»«ó. ÉáºÒ¼ÑÑÔß´, "ßÔѻѡý ßÔÓ«ú«ßÔ¿" ´ºÙ¬á - »«¡´Ô¿Ñ óÑßý¼á
Òß½«ó¡«Ñ, ¿ ó ½¯í«® Ñú« óÑÓß¿¿ ßÒÚÑßÔóÒ¯Ô ¿ß¬½¯þÑ¡¿´ ¿º ÝÔ«ú« »Óáó¿½á.
"ìÑßÔÓ«ú¿Ñ" ´ºÙ¬¿ »ÓÑñßÔáó½´¯Ô »Ó«úÓá¼¼¿ßÔÒ »«½¡Ò¯ ßó«í«ñÒ ó ¿¡ÔÑÓ»ÓÑÔᵿ¿
«íÛѬԫó: ó «ñ¡«¼ óÙÓáªÑ¡¿¿ ¼«ª¡« "ß¼ÑÞ¿óáÔý" áíß«½¯Ô¡« Óẽ¿þ¡ÙÑ «íÛѬÔÙ,
»Ó¿ ÝÔ«¼, ÓáºÒ¼ÑÑÔß´, "«ÔóÑÔßÔóÑ¡¡«ßÔý" ºá Ô«, ¬ þÑ¼Ò »Ó¿óÑñÑÔ ÔᬫÑ
ß¼ÑÞÑ¡¿Ñ, »«½¡«ßÔý¯ ½«ª¿Ôß´ ¡á »«½ýº«óáÔѽ´. ÄíÛѬԡ«-«Ó¿Ñ¡Ô¿Ó«óá¡¡Ù® ßÔ¿½ý
»Ó«úÓá¼¼¿Ó«óá¡¿´ íѺÒß½«ó¡« «ÔñáÑÔ »ÓÑñ»«þÔÑ¡¿Ñ "ßÔÓ«ú«¼Ò" ´ºÙ¬Ò ß
Óáºó¿ÔÙ¼¿ ßÓÑñßÔóἿ ¬«¡ÔÓ«½´ ß«ó¼ÑßÔ¿¼«ßÔ¿ Ô¿»«ó, þÔ« ó «íÚѼ ß½ÒþáÑ
»«óÙÞáÑÔ ¡áñѪ¡«ßÔý ß«ºñáóáѼÙÕ »Ó«úÓá¼¼, Õ«Ô´ ¿ ñ«ßÔáó½´ÑÔ ßó«¿¼¿
"ßÔÓ«ú«ßÔ´¼¿" ¡Ñ¬«Ô«ÓÙÑ ¡ÑÒñ«íßÔóá "«»ÙÔ¡Ù¼" »Ó«úÓá¼¼¿ßÔá¼.
öÒ¡¬µ¿¿ »ÓÑ«íÓẫóá¡¿´ ¿ »Ó¿óÑñÑ¡¿´ Ô¿»«ó ÓÑ὿ºÒ¯Ô 󫺼«ª¡«ßÔ¿ ß«ó¼ÑÚÑ¡¿´
»« »Ó¿ßóá¿óá¡¿¯. ÅÓ¿ ÝÔ«¼ ¼ÑÕá¡¿º¼Ù Ôᬫú« ß«ó¼ÑÚÑ¡¿´ ñ½´ »ÓÑ«íÓẫóá¡¿´ ¿
»Ó¿óÑñÑ¡¿´ «¬áºÙóá¯Ôß´ ß«óÑÓÞÑ¡¡« Óẽ¿þ¡Ù¼¿. ÅÓ¿óÑñÑ¡¿Ñ Ô¿»«ó ¡Ñ ßó´ºá¡« ß
¬á¬¿¼-½¿í« »ÓÑ«íÓẫó᡿Ѽ ß««ÔóÑÔßÔóÒ¯ÚÑú« º¡áþÑ¡¿´ ó ݽѼѡÔÑ ÕÓá¡Ñ¡¿´.
Æá¬«Ñ º¡áþÑ¡¿Ñ »Ó«ßÔ« "»ÑÓÑó«ñ¿Ôß´ ó ñÓÒú«® ¬½áßß" - »Ó¿ßóá¿óáÑÔß´
»ÑÓѼѡ¡«® ñÓÒú«ú« Ô¿»á. ä½´ ÓÑ὿ºáµ¿¿ »Ó¿óÑñÑ¡¿´ Ô¿»á ¡Ñ«íÕ«ñ¿¼á
ß«ó¼ÑßÔ¿¼«ßÔý »ÓÑñßÔáó½Ñ¡¿® ß««ÔóÑÔßÔóÒ¯Ú¿Õ Ý½Ñ¼Ñ¡Ô«ó. ìá»Ó¿¼ÑÓ:
VAR A: INTEGER; B: CARDINAL;
BEGIN A:=-3; B:= CARDINAL (A); ...
çñÑßý CARDINAL() ¿ß»«½ýºÒÑÔß´ ¬á¬ ¿¼´ õÒ¡¬µ¿¿ »Ó¿óÑñÑ¡¿´ º¡áþÑ¡¿´ ¬ Ô¿»Ò
CARDINAL. é ¬áþÑßÔóÑ Ôá¬¿Õ ¿¼Ñ¡ ¼«úÒÔ ¿ß»«½ýº«óáÔýß´ ¡á¿¼Ñ¡«óá¡¿´ íẫóÙÕ
¼áÞ¿¡¡«-«Ó¿Ñ¡Ô¿Ó«óá¡¡ÙÕ Ô¿»«ó. ÅÓ¿ ¿ß»«½ýº«óá¡¿¿ õÒ¡¬µ¿® »Ó¿óÑñÑ¡¿´ Ô¿»«ó
»Ó«úÓá¼¼¿ßÔ ñ«½ªÑ¡ Õ«Ó«Þ« º¡áÔý »ÓÑñßÔáó½Ñ¡¿Ñ «íÛÑ¬Ô«ó ¿ Òþ¿ÔÙóáÔý óßÑ
"¡Ñ«ª¿ñá¡¡«ßÔ¿" ¿Õ ¿¡ÔÑÓ»ÓÑÔᵿ¿ ó ñÓÒú«¼ ¬½áßßÑ. (ìá»Ó¿¼ÑÓ, ñ½´ ÝÔ«ú«
»Ó¿¼ÑÓá º¡á¬ "-", ¿º«íÓáªáѼٮ Ññ¿¡¿µÑ® ó 15-¼ ÓáºÓ´ñÑ Ý½Ñ¼Ñ¡Ôá ÕÓá¡Ñ¡¿´ A,
ñ½´ B íÒñÑÔ ¿¡ÔÑÓ»ÓÑÔ¿Ó«óáÔýß´ ¬á¬ 215. æ««ÔóÑÔßÔóÑ¡¡« »«ß½Ñ »Ó¿óÑñÑ¡¿´ B =
215 + 21 + 20 = 32771). öá¬Ô¿þÑ߬¿ õÒ¡¬µ¿¿ »Ó¿óÑñÑ¡¿´ Ô¿»«ó õÒ¡¬µ¿´¼¿ ó
»«½¡«¼ ß¼Ù᫥ ¡Ñ ´ó½´¯Ôß´. êß»«½ýº«óá¡¿Ñ ¬½¯þÑóÙÕ ß½«ó ´ºÙ¬á (Ôá¬¿Õ ¬á¬
CARDINAL, BOOLEAN, INTEGER ¿ Ô.ñ.), «»ÓÑñѽ´¯Ú¿Õ ¿¼Ñ¡á íẫóÙÕ Ô¿»«ó, ó
¬«¡ÔѬßÔÑ BEGIN ... END ¡Ñ«íÕ«ñ¿¼« ÔÓá¡ß½´Ô«ÓÒ Ô«½ý¬« ñ½´ ¬«¡ÔÓ«½´
¬«ÓÓѬԡ«ßÔ¿ óÙÓáªÑ¡¿®, ß«ßÔáó½Ñ¡¡ÙÕ ¿º «íÛѬԫó Óẽ¿þ¡ÙÕ Ô¿»«ó.
ÅÓÑ«íÓẫóá¡¿Ñ Ô¿»«ó ó ÝÔ«¼ ß¼Ù᫥ - »«½¡á´ »Ó«Ô¿ó«»«½«ª¡«ßÔý »Ó¿óÑñÑ¡¿¯.
Äß¡«ó¡ÙÑ ñ¿ÓѬԿóÙ Ôᬫú« »ÓÑ«íÓẫóá¡¿´ (CHR, ORD, VAL, FLOAT, TRUNC)
ÓÑ὿ºÒ¯Ôß´ óßÔÓ«Ñ¡¡Ù¼¿ »ÓÑñ«»ÓÑñѽѡ¡Ù¼¿ »Ó«µÑñÒÓἿ. æ«ßÔáó Ôá¬¿Õ õÒ¡¬µ¿®
¼«ªÑÔ ÓáßÞ¿Ó´Ôýß´ ºá ßþÑÔ ¿ß»«½ýº«óá¡¿´ ߻ѵ¿á½ý¡ÙÕ í¿í½¿«ÔѬ. Æp¿ »ÑÓóÙÑ
õÒ¡¬µ¿¿ »ÓÑ«íÓẫóá¡¿´ «Ô¡«ß´Ôß´ ¬ Óáí«ÔÑ ß »ÑÓÑþ¿ß½¿¼Ù¼¿ Ô¿»á¼¿ ¿ »«ñÓ«í¡«
«»¿ßá¡Ù ó ß««ÔóÑÔßÔóÒ¯ÚÑ® ½¿ÔÑÓáÔÒÓÑ. çñÑßý ¼Ù »«ñþÑÓ¬¡Ñ¼ ½¿Þý «ñ¿¡ á߻ѬÔ
¿ß»«½ýº«óá¡¿´ õÒ¡¬µ¿¿ VAL. ū߬«½ý¬Ò, ¬á¬ ÒªÑ «Ô¼ÑþὫßý, í«½ýÞ¿¡ßÔó«
íẫóÙÕ Ô¿»«ó ÓÑ὿ºÒ¯Ôß´ ó Øéî ¡á «ß¡«óÑ »ÑÓÑþ¿ß½Ñ¡¿´, VAL ¼«ªÑÔ Óáí«ÔáÔý
ß ¡¿¼¿ ¬á¬ ß »ÑÓÑþ¿ß½¿¼Ù¼¿. ÄíÚá´ ß¿¡Ôá¬ß¿þÑ߬ᴠßÔÓÒ¬ÔÒÓá óÙº«óá VAL »Ó¿
ÝÔ«¼ ¿¼ÑÑÔ ß½ÑñÒ¯Ú¿® ó¿ñ:
:=
VAL (, ).
é ¬áþÑßÔóÑ Ô¿»á B ¼«ªÑÔ ¿ß»«½ýº«óáÔýß´ Ô«½ý¬« íẫóÙ® Ô¿», ÓÑ὿ºÒѼٮ ¡á
«ß¡«óÑ »ÑÓÑþ¿ß½Ñ¡¿´ (½¯í«® Ô¿» ¬Ó«¼Ñ REAL ¿ Ñú« "»Ó«¿ºó«ñ¡ÙÕ"). ÄíÛѬԫ¼
¬½áßßá CARDINAL ó ÝÔ«® ßÔÓÒ¬ÔÒÓÑ ¼«ªÑÔ íÙÔý ¬á¬ »ÑÓѼѡ¡á´, Ôᬠ¿
¬«¡ßÔá¡Ôá. ìá»Ó¿¼ÑÓ,
VAR c: CARDINAL; b: BYTE; i: INTEGER; ch: CHAR;
BEGIN ch := 'A'; c := 32771;
i := INTEGER ( c ); (*1*)
i := VAL ( INTEGER, c ); (*2*)
b := BYTE ( ch ); (*3*)
b := VAL ( BYTE, ORD(ch) ); (*4*)
b := VAL ( BYTE, c ); (*5*)
è «ñ¿¡á¬«óÙ¼ ½¿ ÓѺҽýÔáÔá¼ »Ó¿óÑñÒÔ «»ÑÓᵿ¿ (1) ¿ (2)? (3) ¿ (4)? è
¬á¬«¼Ò ÓѺҽýÔáÔÒ »Ó¿óÑñÑÔ «»ÑÓᵿ´ (5)? çá¼ÑÔýÔÑ, þÔ« ÝÔá «»ÑÓᵿ´ ßó´ºá¡á
ß »ÓÑ«íÓẫó᡿Ѽ º¡áþÑ¡¿´ »ÑÓѼѡ¡«® ¿º ß½«óá ó íá®Ô »Ó¿ «ÔßÒÔßÔó¿¿
ß«ó¼ÑßÔ¿¼«ßÔ¿ »ÓÑñßÔáó½Ñ¡¿®.
öÒ¡¬µ¿¿ FLOAT ¿ TRUNC »ÓÑñ¡áº¡áþÑ¡Ù ñ½´ ÓÑ὿ºáµ¿¿ "»ÑÓÑÕ«ñ«ó" «Ô
áÓ¿õ¼ÑÔ¿¬¿ µÑ½ÙÕ ¬ áÓ¿õ¼ÑÔ¿¬Ñ ñÑ®ßÔó¿Ôѽý¡ÙÕ þ¿ßѽ ¿ ¡á«í«Ó«Ô. Ä¡¿ »«ñÓ«í¡«
«»¿ßá¡Ù ó ÒþÑí¡¿¬áÕ »« »Ó«úÓá¼¼¿Ó«óá¡¿¯.
éßÑ Ò¬áºáÔѽ¿ ß«ó¼ÑßÔ¿¼Ù »« »ÓÑñßÔáó½Ñ¡¿¯, «íÑß»ÑþÑ¡¿Ñ ß«ó¼ÑßÔ¿¼«ßÔ¿ »«
»Ó¿ßóá¿óá¡¿¯ ßó´ºá¡« ß ¿ß»«½ýº«ó᡿Ѽ õÒ¡¬µ¿¿ »Ó¿óÑñÑ¡¿´ ADDRESS. æÔѻѡý
"ßÔÓ«ú«ßÔ¿" »Óáó¿½ ß«ó¼ÑßÔ¿¼«ßÔ¿ Ò¬áºáÔѽѮ óáÓý¿ÓÒÑÔß´ ñáªÑ ó ÓạÙÕ
óÑÓß¿´Õ «ñ¡«ú« ¿ Ô«ú« ªÑ ´ºÙ¬á.
Äñ¡¿¼ ¿º »Ó«´ó½Ñ¡¿® ¬«¡µÑ»µ¿¿ »«½¿¼«Óõ¿º¼á ó ´ºÙ¬áÕ »Ó«úÓá¼¼¿Ó«óá¡¿´
ÔÓÑÔýÑú« »«¬«½Ñ¡¿´ ´ó½´ÑÔß´ »«´ó½Ñ¡¿Ñ áúÓÑúáÔ¿ó¡ÙÕ ßÔÓÒ¬ÔÒÓ, ¿ºóÑßÔ¡ÙÕ »«ñ
¡áºó᡿Ѽ "ºá»¿ß¿ ß óáÓ¿á¡ÔἿ" (ºá»¿ß¿ ß "ÔÝúἿ", ºá»¿ß¿ »ÑÓѼѡ¡«®
ßÔÓÒ¬ÔÒÓÙ). é Ôá¬¿Ñ ßÔÓÒ¬ÔÒÓÙ óó«ñ´Ôß´ ߻ѵ¿á½ý¡ÙÑ óÙñѽ´¯Ú¿Ñ (óÙí¿Óá¯Ú¿Ñ)
ßó«®ßÔóá, «»ÓÑñѽ´¯Ú¿Ñ ¿¡ÔÑÓ»ÓÑÔᵿ¯ «íÛѬÔá. ìá»Ó¿¼ÑÓ, «íÛÑ¬Ô ¬½áßßá
"æÔÒñÑ¡Ô" ¼«ªÑÔ ÕáÓá¬ÔÑÓ¿º«óáÔýß´ ß½ÑñÒ¯Ú¿¼¿ ßó«®ßÔóἿ:
- Òß»ÑóáѼ«ßÔý¯,
- »Ó¿¡áñ½Ñª¡«ßÔý¯ ¬ úÓÒ»»Ñ,
- õἿ½¿Ñ®,
- ÓẼÑÓ«¼ »«½ÒþáѼ«® ßÔ¿»Ñ¡ñ¿¿.
ÆÓ¿ »ÑÓóÙÕ ßó«®ßÔóá »Ó¿ßÒÚ¿ ½¯í«¼Ò ßÔÒñÑ¡ÔÒ, á »«ß½Ññ¡ÑÑ Ô«½ý¬«
Òß»Ñóá¯ÚѼÒ. ìÑÒß»Ñóá¯Ú¿® ªÑ ßÔÒñÑ¡Ô ¼«ªÑÔ ÕáÓá¬ÔÑÓ¿º«óáÔýß´ «ß«íÙ¼
ßó«®ßÔó«¼: ¡á»Ó¿¼ÑÓ, ´ó½´ÑÔß´ ½¿ «¡ ¬á¡ñ¿ñáÔ«¼ ¡á «Ôþ¿ß½Ñ¡¿Ñ ¿½¿ »«¬á ¡ÑÔ.
Æᬿ¼ «íÓẫ¼, Òß»ÑóáѼ«ßÔý ßÔÒñÑ¡Ôá «Ô¡«ß¿Ôß´ ¬ ¬áÔÑú«Ó¿¿ óÙñѽ´¯Ú¿Õ
ßó«®ßÔó: º¡áþÑ¡¿Ñ ÝÔ«ú« ßó«®ßÔóá óÙñѽ´ÑÔ ¡ÑÒß»Ñóá¯Ú¿Õ ßÔÒñÑ¡Ô«ó,
ÕáÓá¬ÔÑÓ¿ºÒѼÙÕ ¡á½¿þ¿Ñ¼ ñ«»«½¡¿Ôѽý¡ÙÕ ¬áþÑßÔó, ¡Ñ ßó«®ßÔóÑ¡¡ÙÕ
Òß»Ñóá¯Ú¿¼. ÅÓ¿ ÝÔ«¼ "ôß»Ñóá¯Ú¿® ßÔÒñÑ¡Ô" ¿ "ìÑÒß»Ñóá¯Ú¿® ßÔÒñÑ¡Ô" íÒñÒÔ
ÕáÓá¬ÔÑÓ¿º«óáÔýß´ Óạټ¿ ßÔÓÒ¬ÔÒÓἿ «íÛѬԫó:
TYPE ôß»ÑóáѼ«ßÔý = ( ÄÔ½, ò«Ó, ôñ, ìÑÒñ );
ôß»Ñóá¯Ú¿®_æÔÒñÑ¡Ô = RECORD
FAM : öἿ½¿´;
GR : 쫼ÑÓ_âÓÒ»»Ù;
SB : ôß»ÑóáѼ«ßÔý;
ST : REAL; (* ÉẼÑÓ ßÔ¿»Ñ¡ñ¿¿ *)
END;
ìÑÒß»Ñóá¯Ú¿®_æÔÒñÑ¡Ô = RECORD
FAM : öἿ½¿´;
GR : 쫼ÑÓ_âÓÒ»»Ù;
SB : ôß»ÑóáѼ«ßÔý;
èá¡ñ¿ñáÔ_ìá_ÄÔþ¿ß½Ñ¡¿Ñ : ( äá, ìÑÔ )
END.
ìÑÔÓÒñ¡« ºá¼ÑÔ¿Ôý, þÔ« ó ÝÔ¿Õ ßÔÓÒ¬ÔÒÓáÕ ÑßÔý «íÚ¿Ñ þáßÔ¿, á «Ô½¿þ¿´
ßó´ºá¡Ù Ô«½ý¬« ß »«ß½Ññ¡¿¼ ¬áþÑßÔó«¼ (áÔp¿íÒÔ«¼, »«½Ñ¼). éÙ¡«ß´ óÙñѽ´¯ÚÑÑ
ßó«®ßÔó« SB ó »«½Ñ óáÓ¿á¡Ôá, ¼Ù ߬«¡ßÔÓÒ¿ÓÒѼ ßÔÓÒ¬ÔÒÓÒ «íÛѬÔá ó ó¿ñÑ
ºá»¿ß¿ ß óáÓ¿á¡ÔἿ:
TYPE æÔÒñÑ¡Ô = RECORD
FAM : öἿ½¿´;
GR : 쫼ÑÓ_âÓÒ»»Ù;
CASE SB : ôß»ÑóáѼ«ßÔý OF
ìÑÒñ : èá¡ñ¿ñáÔ_ìá_ÄÔþ¿ß½Ñ¡¿Ñ : ( äá, ìÑÔ ) |
ÄÔ½, ò«Ó, ôñ : ST : REAL
END
END.
ç¡áþÑ¡¿Ñ »ÑÓÑþ¿ß½¿¼«ú« Ô¿»á ôß»ÑóáѼ«ßÔý ó ÝÔ«¼ »Ó¿¼ÑÓÑ «»ÓÑñѽ´ÑÔ
¿¡ÔÑÓ»ÓÑÔᵿ¯ «íÛѬÔá ½¿í« ¬á¬ Òß»Ñóá¯ÚÑú«, ½¿í« ¬á¬ ¡ÑÒß»Ñóá¯ÚÑú«
ßÔÒñÑ¡Ôá. Æᬿ¼ «ípẫ¼ »«½¿¼«põ¿º¼ ßÔpÒ¬ÔÒpÙ ºá»¿ß¿ ß óáp¿á¡ÔἿ
ºá¬½¯þáÑÔß´ ó 󫺼«ª¡«ßÔ¿ ÑÑ ¿¡ÔÑp»pÑÔᵿ¿ ¡á á½ýÔÑp¡áÔ¿ó¡«® «ß¡«óÑ.
é ÝÔ«® ß󴺿 󫺡¿¬áÑÔ ó«»Ó«ß « ߻ѵ¿õ¿¬áµ¿¿ »ÓÑñßÔáó½Ñ¡¿´ ßÔÓÒ¬ÔÒÓÙ
æÔÒñÑ¡Ô. Ä¡á ß«ñÑÓª¿Ô »«ßÔ«´¡¡Ò¯ þáßÔý
TSIZE (öἿ½¿´) + SIZE (GR) + TSIZE (ôß»ÑóáѼ«ßÔý)
¿ »ÑÓѼѡ¡Ò¯ (¡áí«p á½ýÔÑp¡áÔ¿ó), ÓẼÑÓ ¬«Ô«Ó«® «»ÓÑñѽ´ÑÔß´ º¡áþÑ¡¿Ñ¼ SB.
ï¿í« ÝÔ« íá®Ô (ó ß½ÒþáÑ SB = ìÑÒñ)
SIZE (èá¡ñ¿ñáÔ_ìá_ÄÔþ¿ß½Ñ¡¿Ñ) = 1; ,
½¿í« ñó«®¡«Ñ ß½«ó« (ó ß½ÒþáÑ SB # ìÑÒñ) SIZE(ST)=4. èᬫ® ªÑ ÓẼÑÓ »á¼´Ô¿
óÙñѽ¿Ô ÔÓá¡ß½´Ô«Ó »«ñ Ý½Ñ¼Ñ¡Ô ÕÓá¡Ñ¡¿´ «íÛѬÔá "æÔÒñÑ¡Ô"? àñ¿¡ßÔóÑ¡¡«Ñ
ÓÑÞÑ¡¿Ñ - ¼á¬ß¿¼á½ý¡« 󫺼«ª¡Ù®, ¬«Ô«ÓÙ® ¼«ªÑÔ »«ÔÓÑí«óáÔýß´ ñ½´ ÕÓá¡Ñ¡¿´
ñá¡¡ÙÕ ßÔÒñÑ¡Ôá. ū߬«½ý¬Ò TSIZE (ôß»Ñóá¯Ú¿®_æÔÒñÑ¡Ô) > TSIZE
(ìÑÒß»Ñóá¯Ú¿®_æÔÒñÑ¡Ô), ÔÓá¡ß½´Ô«Ó óÙñѽ¿Ô »á¼´Ôý, ñ«ßÔáÔ«þ¡Ò¯ ñ½´ ÕÓá¡Ñ¡¿´
ñá¡¡ÙÕ «í Òß»Ñóá¯ÚѼ ßÔÒñÑ¡ÔÑ. àß½¿ ªÑ Ôᬫ® ßÔÒñÑ¡Ô »ÑÓÑ®ñÑÔ ó ÓáºÓ´ñ
¡ÑÒß»Ñóá¯Ú¿Õ, Ô«Ô ªÑ Ý½Ñ¼Ñ¡Ô ÕÓá¡Ñ¡¿´ íÒñÑÔ ¿¡ÔÑÓ»ÓÑÔ¿Ó«óáÔýß´ ó
ß««ÔóÑÔßÔó¿¿ ß «Ô¡«ÞÑ¡¿Ñ¼ óÙñѽѡ¿´ SB=ìÑÒñ. ÅÓ¿ ÝÔ«¼ ¿º þÑÔÙpÑÕ íá®Ô,
óÙñѽѡ¡ÙÕ ÔÓá¡ß½´Ô«Ó«¼ »«ñ ST ó ÓáßþÑÔÑ ¡á Òß»Ñóá¯ÚÑú« ßÔÒñÑ¡Ôá, Ôp¿
»«ß½Ññ¡¿Õ »Ó«ßÔ« ¡Ñ íÒñÒÔ ¿ß»«½ýº«óáÔýß´, á »ÑÓóÙ® íá®Ô íÒñÑÔ
¿¡ÔÑÓ»ÓÑÔ¿Ó«óáÔýß´ ¬á¬ ß«ÕÓá¡´¯Ú¿® º¡áþÑ¡¿Ñ ßó«®ßÔóá
èá¡ñ¿ñáÔ_ìá_ÄÔþ¿ß½Ñ¡¿Ñ.
çá¼ÑÔ¿¼, þÔ« óÙñѽ´¯Ú¿Ñ ßó«®ßÔóá, Ò»Óáó½´¯Ú¿Ñ óÙí«Ó«¼ ó¿ñá ¿¡ÔÑÓ»ÓÑÔᵿ¿,
¼«úÒÔ ¿ ¡Ñ ¿¼Ñ¡«óáÔýß´. é Ôá¬¿Õ ß½Òþá´Õ ó¿ñ á½ýÔÑp¡áÔ¿ó¡«® ¿¡ÔÑp»pÑÔᵿ¿
«»pÑñѽ´ÑÔß´ ¡Ñ óÙñѽ´¯Ú¿¼ ßó«®ßÔó«¼, á õá¬Ô¿þÑ߬¿¼ ¿ß»«½ýº«ó᡿Ѽ ¿¼Ñ¡¿
»«½´ »p¿ «ípáÚÑ¡¿¿ ¬ «íÛѬÔÒ. ìá»p¿¼Ñp:
TYPE æÔÒñÑ¡Ô = RECORD
FAM : öἿ½¿´; GR : 쫼ÑÓ_âÓÒ»»Ù;
CASE : ôß»ÑóáѼ«ßÔý OF
ìÑÒñ : èá¡ñ¿ñáÔ_ìá_ÄÔþ¿ß½Ñ¡¿Ñ : ( äá, ìÑÔ ) |
ÄÔ½, ò«Ó, ôñ : ST : REAL
END
END.
ÅÒßÔý VAR V: æÔÒñÑ¡Ô. Åp¿ ÝÔ«¼ ó ݽѼѡÔÑ Õpá¡Ñ¡¿´ ñ½´ V óÙñѽ´¯ÚÑÑ »«½Ñ
ó««íÚÑ «ÔßÒÔßÔóÒÑÔ, »«ßÔ«´¡¡á´ þáßÔý ¿¼ÑÑÔ pẼÑp TSIZE(öἿ½¿´)+SIZE(GR),
á á½ýÔÑp¡áÔ¿ó¡á´ ¿¼ÑÑÔ pẼÑp
max {SIZE(èá¡ñ¿ñáÔ_ìá_ÄÔþ¿ß½Ñ¡¿Ñ), SIZE(ST)}.
ÄípáÚÑ¡¿Ñ ¬ «íÛѬÔÒ þÑpѺ ¬ó὿ñÑ¡Ô V.èá¡ñ¿ñáÔ_ìá_ÄÔþ¿ß½Ñ¡¿Ñ »p¿óÑñÑÔ ¬
¿¡ÔÑp»pÑÔᵿ¿ á½ýÔÑp¡áÔ¿ó¡«® þáßÔ¿ ó ß««ÔóÑÔßÔó¿¿ ß »ÑpÑþ¿ß½¿¼Ù¼ Ô¿»«¼ (äá,
ìÑÔ), á «ípáÚÑ¡¿Ñ V.ST - ¬ ¿¡ÔÑp»pÑÔᵿ¿ Ô«® ªÑ þáßÔ¿ ó ß««ÔóÑÔßÔó¿¿ ß
Ô¿»«¼ REAL. çá¼ÑÔ¿¼, þÔ« Ôá¬á´ á½ýÔÑp¡áÔ¿ó¡á´ ¿¡ÔÑp»pÑÔᵿ´ ¼«ªÑÔ «¬áºáÔýß´
óÑßý¼á "¡ÑÒßÔ«®þ¿ó«®", ßó´ºá¡¡«® ß ó«º¼«ª¡«ßÔ´¼¿ 󫺡¿¬¡«óÑ¡¿´
ñ«»«½¡¿Ôѽý¡ÙÕ «Þ¿í«¬. ì὿þ¿Ñ ó ßÔpÒ¬ÔÒpÑ óáp¿á¡Ô¡«® þáßÔ¿ »«ß½Ññ¡Ñú«
»p¿¼Ñpá ñѬ½ápᵿ® Ô¿»á óÙñѽ´¯ÚÑú« ßó«®ßÔóá (ôß»ÑóáѼ«ßÔý), á ÔᬪÑ
¬«¡ßÔá¡Ô ÝÔ«ú« Ô¿»á (ìÑÒñ,ÄÔ½,ò«Ó,ôñ), ßÔp«ú« ú«ó«p´, «íÒß½«ó½Ñ¡« Ô«½ý¬«
«ñ¡¿¼ «íßÔ«´ÔѽýßÔó«¼: ßÔpѼ½Ñ¡¿Ñ¼ ß«Õpá¡¿Ôý «íÚÒ¯ ß¿¡Ôá¬ß¿þÑ߬ү ßÔpÒ¬ÔÒpÒ
ºá»¿ß¿ ß óáp¿á¡ÔἿ. é ß¼Ù᫥ ¬«ppѬԡ«® ¿¡ÔÑp»pÑÔᵿ¿ ÝÔ¿ ñѬ½ápᵿ¿ ¡Ñ
¿¼Ñ¯Ô ¡¿¬á¬«ú« º¡áþÑ¡¿´ - óÑñý »p«óÑp¿Ôý º¡áþÑ¡¿Ñ ¡ÑßÒÚÑßÔóÒ¯ÚÑú«
óÙñѽ´¯ÚÑú« ßó«®ßÔóá ¡Ñ󫺼«ª¡«!
é «íÚѼ ß½ÒþáÑ ¡Ñºáó¿ß¿¼« «Ô Ô«ú«, ¿¼Ñ¡ÒÑÔß´ »«½Ñ ÔÝúá ¿½¿ ¡ÑÔ, ºá»¿ß¿ ß
óáÓ¿á¡ÔἿ «úÓá¡¿þ¿óá¯Ô ¡áí«p 󫺼«ª¡ÙÕ ó¿ñ«ó ¿¡ÔÑÓ»ÓÑÔᵿ¿ «íÛѬԫó ¡á
á½ýÔÑp¡áÔ¿ó¡«® «ß¡«óÑ. é ÝÔ«¼ ¿ ß«ßÔ«¿Ô pÑú½á¼Ñ¡Ô¿pÒ¯Úá´ p«½ý ÝÔ¿Õ ßÔpÒ¬ÔÒp
ó »«½¿¼«põ¡«® á½ýÔÑp¡áÔ¿ó¡«® ¿¡ÔÑp»pÑÔᵿ¿ «íÛѬԫó.
ì὿þ¿Ñ «íÚ¿Õ þáßÔÑ® ó ßÔÓÒ¬ÔÒÓáÕ Óáßß¼«ÔÓÑ¡¡«ú« »Ó¿¼ÑÓá ôß»Ñóá¯Ú¿®_æÔÒñÑ¡Ô
¿ ìÑÒß»Ñóá¯Ú¿®_æÔÒñÑ¡Ô ´ó½´ÑÔß´ óÑßý¼á ÕáÓá¬ÔÑÓ¡Ù¼ ñ½´ »Ó«úÓá¼¼¿Ó«óá¡¿´. é
ÝÔ«¼ ß¼Ù᫥ ºá»¿ß¿ ß óáÓ¿á¡ÔἿ ¼«ª¡« Óáßß¼áÔÓ¿óáÔý ¬á¬ õ«Ó¼Ò ½á¬«¡¿þ¡«ú«
«»¿ßá¡¿´ Ô¿»«ó, »«ºó«½´¯ÚÒ¯ ¿ºíáó¿Ôýß´ «Ô »«óÔ«Ó«ó ó «»¿ßá¡¿¿ ßó«®ßÔó
«íÛѬԫó. é «íÛѬԡ«-«Ó¿Ñ¡Ô¿Ó«óá¡¡ÙÕ ´ºÙ¬áÕ ßÒÚÑßÔóÒÑÔ ñ«»«½¡¿Ôѽý¡á´
󫺼«ª¡«ßÔý Ôᬫ® ½á¬«¡¿ºáµ¿¿, «»ÓÑñѽ´¯Úá´ »«½¿¼«Óõ¡Ò¯ ¿¡ÔÑÓ»ÓÑÔᵿ¯
«íÛѬԫó ¡Ñ ¡á á½ýÔÑp¡áÔ¿ó¡«® «ß¡«óÑ, á ¡á «ß¡«óÑ páßÞ¿pÑ¡¿´ ßó«®ßÔó. ØÔá
󫺼«ª¡«ßÔý ßó´ºá¡á ß ¼ÑÕá¡¿º¼«¼ ¡áß½Ññ«óá¡¿´ ßó«®ßÔó.
îÑÕá¡¿º¼ ¡áß½Ññ«óá¡¿´ »«ºó«½´ÑÔ ½á¬«¡¿þ¡« «»¿ßáÔý Óẽ¿þ¡ÙÑ ¬½áßßÙ «íÛѬԫó
»ÒÔѼ óÙñѽѡ¿´ ¿Õ «íÚ¿Õ ßó«®ßÔó. Æá¬«Ñ óÙñѽѡ¿Ñ »Ó«ó«ñ¿Ôß´ ¡á «ß¡«óÑ
«Ô¡«ÞÑ¡¿´ "«íÚÑú« ¬ þáßÔ¡«¼Ò" - «í«íÚÑ¡¿´. Äí«íÚÑ¡¿Ñ ¼«ªÑÔ íÙÔý «»ÓÑñѽѡ«
õ«Ó¼á½ý¡« ¡á «ß¡«óÑ «Ô¡«ÞÑ¡¿´ 󬽯þÑ¡¿´ »«ñ¼¡«ªÑßÔó ó ¼¡«ªÑßÔó«.
ÅÒßÔý Ç - ¬½áßß «íÛѬԫó ß ¿¼¼á¡Ñ¡Ô¡Ù¼¿ ßó«®ßÔóἿ É(A): A = {a/P(A)}, a B
= {b/P(B)}. àß½¿ P(A) IN P(B) (P(A) ´ó½´ÑÔß´ »«ñ¼¡«ªÑßÔó«¼ P(B), IN -
«Ô¡«ÞÑ¡¿Ñ 󬽯þÑ¡¿´), Ô« Ç "«í«íÚáÑÔ" é (A*>B, "*>" - «Ô¡«ÞÑ¡¿Ñ «í«íÚÑ¡¿´).
é «Ô¡«ÞÑ¡¿¿ (Ç*>B) Ç ´ó½´ÑÔß´ ¡áñ¬½áßß«¼, é - »«ñ¬½áßß«¼, »Ó¿ ÝÔ«¼ ½¯í«®
«íÛÑ¬Ô ¬½áßßá é ÕáÓá¬ÔÑÓ¿ºÒÑÔß´ ¡áß½ÑñÒѼټ¿ ßó«®ßÔóἿ P(A) ¿
»Ó¿«íÓÑÔÑ¡¡Ù¼¿ P(B)-P(A). ìá»Ó¿¼ÑÓ, ½¯í«® áóÔ«¼«í¿½ý «í½áñáÑÔ ßó«®ßÔóἿ
ÔÓá¡ß»«ÓÔ¡«ú« ßÓÑñßÔóá ¿ ¿¼ÑÑÔ ¡Ñ¬«Ô«ÓÙÑ «ß«íÑ¡¡ÙÑ "áóÔ«¼«í¿½ý¡ÙÑ"
ßó«®ßÔóá, ¬«Ô«ÓÙ¼¿ ¡Ñ «í½áñáÑÔ Ôá¬«Ñ ÔÓá¡ß»«ÓÔ¡«Ñ ßÓÑñßÔó«, ¬á¬, ¡á»p¿¼Ñp,
½«ñ¬á. é ÝÔ«¼ ß¼Ùß½Ñ
ÆÓá¡ß»«ÓÔ¡«Ñ_æÓÑñßÔó« *> ÇóÔ«¼«í¿½ý, ï«ñ¬á.
ÅÓ¿þѼ É(ÇóÔ«¼«í¿½ý)^P(ï«ñ¬á) = P(ÆÓá¡ß»«ÓÔ¡«Ñ_æÓÑñßÔó«). (çñÑßý ß¿¼ó«½ "^"
¿ß»«½ýºÒÑÔß´ ¬á¬ "»ÑÓÑßÑþÑ¡¿Ñ ¼¡«ªÑßÔó"). è½áßß, ¬«Ô«ÓÙ® ¡Ñ «í«íÚáÑÔß´
¡¿¬á¬¿¼ ñÓÒú¿¼, ¡áºÙóáÑÔß´ Ó´ñ«óÙ¼ ¬½áßß«¼. ìá «ß¡«óÑ »ÑÓÑßÑþÑ¡¿´ ¼¡«ªÑßÔó
¿¼¼á¡Ñ¡Ô¡ÙÕ ßó«®ßÔó ¬½áßß«ó ¼«úÒÔ íÙÔý »«ßÔÓ«Ñ¡Ù ¼Ñª¬½áßß«óÙÑ «Ô¡«ÞÑ¡¿´
Ññ¿¡¿þ¡«ú« ¡áß½Ññ«óá¡¿´, ó ¬«Ô«ÓÙÕ ½¯í«® ¬½áßß ¡Ñ»«ßÓÑñßÔóÑ¡¡« «í«íÚáÑÔß´
½¿Þý «ñ¿¡ ñÓÒú¿¼. ìá»Ó¿¼ÑÓ,
ÆÓá¡ß»«ÓÔ¡«Ñ_æÓÑñßÔó«
*
|
+------------------+---------------------+
| |
|ÇóÔ«¼«í¿½ý |ï«ñ¬á
+-----*-----+ +-----*-----+
| | | |
| | | |
* * * *
âÓÒº«ó¿¬ ïÑú¬«ó«® üá®ñáÓ¬á f½
áóÔ«¼«í¿½ý
|
|
|
*
æἫßóá½
æѼá¡Ô¿¬á «í«íÚÑ¡¿´ ¬á¬ «Ô¡«ÞÑ¡¿´ «íÚÑú« ¬ þáßÔ¡«¼Ò ¿ ßÔÓѼ½Ñ¡¿Ñ »«óÙß¿Ôý
½á¬«¡¿þ¡«ßÔý «»¿ßá¡¿´ ¬½áßß«ó ¡á «ß¡«óÑ Ññ¿¡¿þ¡«ú« ¡áß½Ññ«óá¡¿´ ¡Ñ óßÑúñá
"óÙú½´ñ´Ô" áñѬóáÔ¡«. ìá»Ó¿¼ÑÓ,
TYPE ôºÑ½ = RECORD
A: ü«½Ô; B: âᮬá;
END; .
ö«Ó¼á½ý¡« ñ½´ ÝÔ«ú« »Ó¿¼ÑÓá ¼«ª¡« «»ÓÑñѽ¿Ôý «í«íÚÑ¡¿Ñ: ü«½Ô *>ôºÑ½ (âᮬá
*> ôºÑ½), «ñ¡á¬« ¿¡ÔÒ¿Ô¿ó¡« ü«½Ô ¡Ñ ó«ß»Ó¿¡¿¼áÑÔß´ ¬á¬ ¬áÔÑú«Ó¿´ «íÚÑú« »«
«Ô¡«ÞÑ¡¿¯ ¬ ôº½Ò.
ï¯í«® «íÛѬÔ, ¬«¡ßÔÓÒ¿ÓÒѼٮ ¡á «ß¡«óÑ «Ô¡«ÞÑ¡¿´ «í«íÚÑ¡¿´, »ÓÑñßÔáó½´ÑÔß´
ßÔÓÒ¬ÔÒÓ«® ßÔÓáÔ¿õ¿µ¿Ó«óá¡¡«ú« (Óáßß½«Ñ¡¡«ú«) áúÓÑúáÔá. ÅÓ¿þѼ ¬áªñÙ® ß½«®
(ßÔÓáÔá) ó Ôᬫ® ßÔÓÒ¬ÔÒÓÑ »ÓÑñ¡áº¡áþÑ¡ ñ½´ óÙ»«½¡Ñ¡¿´ Ó«½¿ ݽѼѡÔá
ÕÓá¡Ñ¡¿´ ßó«®ßÔó ß««ÔóÑÔßÔóÒ¯ÚÑú« ¡áñ¬½áßßá ñ« Ó«ñ«ó«ú« 󬽯þ¿Ôѽý¡«.
ìá»Ó¿¼ÑÓ, ½¯í«® «íÛÑ¬Ô ¬½áßßá "f½" (ß¼. ßÕÑ¼Ò óÙÞÑ) íÒñÑÔ «»ÓÑñѽ´Ôýß´
ßÔÓÒ¬ÔÒÓ«®:
TYPE æÔÓÒ¬ÔÒÓá f½á = RECORD
Ç: ÆÓá¡ß»«ÓÔ¡«Ñ_æÓÑñßÔó«;
é: ï«ñ¬á;
æ: f½;
END; .
ê¡ÔÑÓ»ÓÑÔᵿ´ f½á ¬á¬ ÔÓá¡ß»«ÓÔ¡«ú« ßÓÑñßÔóá ßó´ºá¡á Ô«½ý¬« ß
¿ß»«½ýº«ó᡿Ѽ ß½«´ Ç ó ݽѼѡÔÑ ÕÓá¡Ñ¡¿´. ê¡ÔÑÓ»ÓÑÔᵿ´ f½á ¬á¬ ½«ñ¬¿ - ß
¿ß»«½ýº«ó᡿Ѽ ñóÒÕ ß½«Ñó: Ç ¿ é, ¿, ¡á¬«¡Ñµ, ¿¡ÔÑÓ»ÓÑÔᵿ´ f½á ¬á¬
«ß«í«ú« ó¿ñá ½«ñ¬¿ ßó´ºá¡á ß ¿ß»«½ýº«ó᡿Ѽ óßÑÕ ÔÓÑÕ ß½«Ñó: Ç,é,æ.
äѬ½áÓᵿ´ ó¿ñá "æÔÓÒ¬ÔÒÓá_f½á" ó «íÛѬԡ«-«Ó¿Ñ¡Ô¿Ó«óá¡¡«¼ ´ºÙ¬Ñ ºá¼Ñ¡´ÑÔß´
«Ô¡«ÞÑ¡¿Ñ¼
f½ . (NEW ¿ DISPOSE - »ßÑóñ«»Ó«µÑñÒÓÙ, ¿Õ óÙº«óÙ
ÔÓá¡ß½¿ÓÒ¯Ôß´ ó óÙº«óÙ ALLOCATE ¿ DEALLOCATE ß««ÔóÑÔßÔóÑ¡¡«). êß»«½ýº«óá¡¿Ñ
NEW ¿ DISPOSE »«ºó«½´ÑÔ ¿ºíѪáÔý ¼¡«ú¿Õ ßѼá¡Ô¿þÑ߬¿Õ «Þ¿í«¬, ßó´ºá¡¡ÙÕ ß
Óẽ¿þ¡Ù¼¿ º¡áþÑ¡¿´¼¿ N ó »«ß½Ññ«óáÔѽý¡«ßÔ¿ óÙº«ó«ó ALLOCATE...DEALLOCATE,
«»ÓÑñѽ´¯ÚÑ® ß«ºñá¡¿Ñ/Ò¡¿þÔ«ªÑ¡¿Ñ «ñ¡«ú« ¿ Ô«ú« ªÑ «íÛѬÔá.
é µÑ½«¼ »«ß½Ññ«óáÔѽý¡«ßÔý óÙº«ó«ó NEW...DISPOSE (¿½¿ ß««ÔóÑÔßÔóÑ¡¡«
ALLOCATE...DEALLOCATE), ó «íÚѼ ß½ÒþáÑ »«½¡«ßÔý¯ «»ÓÑñѽ´Ñ¼á´ ½«ú¿¬«®
»Ó«úÓá¼¼¿ßÔá, »«Ó«ªñáÑÔ Ó´ñ »Ó«í½Ñ¼, ßó´ºá¡¡ÙÕ ß «Óúá¡¿ºáµ¿Ñ® ¿
Óáß»ÓÑñѽѡ¿Ñ¼ ßó«í«ñ¡«ú« »Ó«ßÔÓá¡ßÔóá ñ¿¡á¼¿þÑ߬«® »á¼´Ô¿. Äñ¡«® ¿º ÔᬿÕ
»Ó«í½Ñ¼ ´ó½´ÑÔß´ »Ó«í½Ñ¼á õÓáú¼Ñ¡Ôᵿ¿. ØõõÑ¬Ô õÓáú¼Ñ¡Ôᵿ¿ ºá¬½¯þáÑÔß´ ó
Ô«¼, þÔ« Óáí«þá´ «í½áßÔý ñ¿¡á¼¿þÑ߬«® »á¼´Ô¿ "ñÓ«í¿Ôß´" ¡á þáßÔ¿ -
õÓáú¼Ñ¡ÔÙ Óẽ¿þ¡«® ñ½¿¡Ù. èᬿÑ-Ô« ¿º ¡¿Õ "ºá¡´ÔÙ" - ¿ß»«½ýºÒ¯Ôß´
»Ó«úÓá¼¼¿ßÔ«¼ »«ñ ݽѼѡÔÙ ÕÓá¡Ñ¡¿´ Ñú« «íÛѬԫó, ¬á¬¿Ñ-Ô« "ßó«í«ñ¡Ù",
»Ó¿þѼ ÕáÓá¬ÔÑÓ þÑÓÑñ«óá¡¿´ ßó«í«ñ¡ÙÕ ¿ ºá¡´ÔÙÕ õÓáú¼Ñ¡Ô«ó ó «íÚѼ ß½ÒþáÑ
¼«ªÑÔ íÙÔý ß«óÑÓÞÑ¡¡« »Ó«¿ºó«½ý¡Ù¼. ï¯í«® ºá»Ó«ß »Ó«úÓá¼¼¿ßÔá ¡á ß«ºñá¡¿Ñ
¡«ó«ú« «íÛѬÔá »Ó¿ó«ñ¿Ô ¬ Ô«¼Ò, þÔ« ß¿ßÔѼá Ò»Óáó½Ñ¡¿´ ñ¿¡á¼¿þÑ߬«® »á¼´Ôý¯
"»«ñí¿ÓáÑÔ" Ñ¼Ò õÓáú¼Ñ¡Ô, »«ñÕ«ñ´Ú¿® »« ÓẼÑÓá¼. ÅÓáó¿½á Ôᬫú« »«ñí«Óá
¼«úÒÔ íÙÔý Óẽ¿þ¡Ù, ¡« «íÚá´ ºá¬«¡«¼ÑÓ¡«ßÔý «ñ¡á: Ôᬫ® õÓáú¼Ñ¡Ô ñ«½ªÑ¡
¿¼ÑÔý ÓẼÑÓ, ¡Ñ ¼Ñ¡ýÞ¿®, þѼ ºá»ÓáÞ¿óáѼٮ »Ó«úÓá¼¼¿ßÔ«¼. àß½¿ »«ñÕ«ñ´Ú¿®
õÓáú¼Ñ¡Ô ¿¼ÑÑÔ í«½ýÞ¿® ÓẼÑÓ, þѼ ÔÓÑíÒÑÔß´, ó »Ó¿¬½áñ¡Ò¯ »Ó«úÓá¼¼Ò íÒñÑÔ
«Ôñá¡á Ñú« þáßÔý, ¬«Ô«pá´ ÔÑ»Ñpý íÒñÑÔ páßß¼áÔp¿óáÔýß´ ß¿ßÔѼ«® ¬á¬ ºá¡´ÔÙ®
õpáú¼Ñ¡Ô, á «ßÔáÔ«¬ «ßÔá¡ÑÔß´ ó ßó«í«ñ¡«® º«¡Ñ ó ¬áþÑßÔóÑ ßó«í«ñ¡«ú«
õpáú¼Ñ¡Ôá. ÅÓ¿ ÝÔ«¼ »Ó«í½Ñ¼á õÓáú¼Ñ¡Ôᵿ¿ ºá¬½¯þáÑÔß´ ó Ô«¼, þÔ« ÝõõѬÔ
"ñÓ«í½Ñ¡¿´" ¼«ªÑÔ »Ó¿óÑßÔ¿ ¬ Ô«¼Ò, þÔ« ó ßó«í«ñ¡«® º«¡Ñ íÒñÑÔ ¡áÕ«ñ¿Ôýß´
¼¡«ªÑßÔó« "¼á½Ñ¡ý¬¿Õ" ÓáºÓ«º¡Ñ¡¡ÙÕ ßó«í«ñ¡ÙÕ õÓáú¼Ñ¡Ô«ó, ó ß«ó«¬Ò»¡«ßÔ¿
ß«ßÔáó½´¯Ú¿Õ ñ«ßÔáÔ«þ¡Ù® «íÛѼ. ÆѼ ¡Ñ ¼Ñ¡ÑÑ, ¡Ñß¼«ÔÓ´ ¡á Ôᬫ® «íÛѼ,
ºá»Ó«ß »Ó«úÓá¼¼¿ßÔá ¡á ¡«óÙ® Ý½Ñ¼Ñ¡Ô »á¼´Ô¿ ¼«ªÑÔ »«½Òþ¿Ôý «Ô¬áº »« »Ó¿þ¿¡Ñ
«ÔßÒÔßÔó¿´ µÑ½«ú« »«ñÕ«ñ´ÚÑú« ݽѼѡÔá. ì¿ªÑ »Ó¿óÑñÑ¡ õÓáú¼Ñ¡Ô »Ó«úÓá¼¼Ù ¿
ßÕѼá Óáß»ÓÑñѽѡ¿´ ñ¿¡á¼¿þÑ߬«® »á¼´Ô¿, ¿½½¯ßÔÓ¿ÓÒ¯Ú¿Ñ ÝõõѬÔ
õÓáú¼Ñ¡Ôᵿ¿. ÅÓ¿ ÝÔ«¼ ñ½´ »Ó«ßÔ«ÔÙ »ÓÑñ»«½áúáÑÔß´, þÔ« «íÚ¿® «íÛѼ
ñ¿¡á¼¿þÑ߬«® »á¼´Ô¿ ß«ßÔáó½´ÑÔ 20 íá®Ô.
TYPE ÆÓÑÒú«½ý¡¿¬ = POINTER TO ö¿úÒÓá_1
ö¿úÒÓá_1 = RECORD
æÔ«Ó«¡á_1, æÔ«Ó«¡á_2, æÔ«Ó«¡á_3:CARDINAL
END;
ùÑÔÙÓÑÕÒú«½ý¡¿¬ = POINTER TO ö¿úÒÓá_2;
ö¿úÒÓá_2 = RECORD
æÔ«Ó«¡á_1, æÔ«Ó«¡á_2, æÔ«Ó«¡á_3, æÔ«Ó«¡á_4:
CARDINAL
àND
VAR T1, T2: ÆÓÑÒú«½ý¡¿¬; î1, î2: ùÑÔÙÓÑÕÒú«½ý¡¿¬;
BEGIN NEW(T1);... NEW(M1);... NEW(T2);...
DISPOSE(T1);... DISPOSE(T2); NEW(M2);...
+-------------------+ -+
| WORD | |
+-------------------+ |
| | > æó«í«ñ¡Ù® õÓáú¼Ñ¡Ô, Óá¡ÑÑ
+-------------------+ | ¿ß»«½ýº«óá¡¡Ù® »«ñ
| | | «íÛÑ¬Ô Æ1^
+-------------------+ -+-+
| | |
+-------------------+ |
| | |
+-------------------+ > öÓáú¼Ñ¡Ô, ºá¡´ÔÙ®
| | | »«ñ «íÛÑ¬Ô î1^
+-------------------+ |
| | |
+-------------------+ -+-+
| | |
+-------------------+ |
| | > æó«í«ñ¡Ù® õÓáú¼Ñ¡Ô, Óá¡ÑÑ
+-------------------+ | ¿ß»«½ýº«óá¡¡Ù® »«ñ
| | | «íÛÑ¬Ô Æ2^
+-------------------+ -+
ê½½¯ßÔÓᵿ´ »«ßÔÓ«Ñ¡á ñ½´ ¼«¼Ñ¡Ôá «íÓáí«Ô¬¿ ºá»Ó«ßá NEW(M2). é ÝÔ«Ô ¼«¼Ñ¡Ô
óÓѼѡ¿ ó ñ¿¡á¼¿þÑ߬«® »á¼´Ô¿ ¿¼Ñ¯Ôß´ ñóá ßó«í«ñ¡ÙÕ õÓáú¼Ñ¡Ôá «íÚ¿¼ «íÛѼ«¼
ÞÑßÔý ß½«ó, ¬«Ô«ÓÙÕ ñ«ßÔáÔ«þ¡« ñ½´ óÙ»«½¡Ñ¡¿´ ºá»Ó«ßá ¡á óÙñѽѡ¿Ñ ݽѼѡÔá
ÕÓá¡Ñ¡¿´ »«ñ «íÛÑ¬Ô î2^ (Ô.Ñ. ñ½´ «íÛѬÔá, ¡á ¬«Ô«pÙ® íÒñÑÔ Ò¬áºÙóáÔý M2),
«ñ¡á¬« õÓáú¼Ñ¡Ôᵿ´ ¡Ñ »«ºó«½´ÑÔ ß¿ßÔÑ¼Ñ óÙñѽ¿Ôý »á¼´Ôý »«ñ «íÛÑ¬Ô î2^.
æ¿ßÔѼá Ò»Óáó½Ñ¡¿´ ñ¿¡á¼¿þÑ߬«® »á¼´Ôý¯ óÑñÑÔ ß»Ñµ¿á½ý¡Ù® ß»¿ß«¬ ßó«í«ñ¡ÙÕ
õpáú¼Ñ¡Ô«ó - »Ò½ »á¼´Ô¿. ÅÓ¿ ó«ºóÓáÚÑ¡¿¿ ¬á¬«ú«-½¿í« ݽѼѡÔá ÕÓá¡Ñ¡¿´,
¿ß»«½ýºÒѼ«ú« ó »Ó¿¬½áñ¡«® »Ó«úÓá¼¼Ñ, ó »Ò½ ßó«í«ñ¡«® »á¼´Ô¿ ¼«ªÑÔ íÙÔý
ÓÑ὿º«óá¡« "߬½Ñ¿óá¡¿Ñ" ß«ßÑñ¡¿Õ ßó«í«ñ¡ÙÕ õpáú¼Ñ¡Ô«ó ó «ñ¿¡ õpáú¼Ñ¡Ô
í«½ýÞÑú« «íÛѼá. ìá»Ó¿¼ÑÓ, Ñß½¿ ó »ÓÑñÙñÒÚÑ® »Ó«úÓá¼¼Ñ ¿º¼Ñ¡¿Ôý
»«ß½Ññ«óáÔѽý¡«ßÔý «íÓáÚÑ¡¿® ¬ ñ¿¡á¼¿þÑ߬«® »á¼´Ô¿ ¡á »Ó¿óÑñÑ¡¡Ò¯ ¡¿ªÑ, Ô«
«»¿ßá¡¡«ú« óÙÞÑ «Ô¬áºá »« »á¼´Ô¿ ¡Ñ »Ó«¿º«®ñÑÔ:
BEGIN NEW(T1);...NEW(T2);...NEW(M1);...
DISPOSE(T1);...DISPOSE(T2);... NEW(M2);...
çñÑßý »Ó¿ «íÓáí«Ô¬Ñ ºá»Ó«ßá NEW(M2) ó »Ò½Ñ ñ¿¡á¼¿þÑ߬«® »á¼´Ô¿ íÒñÑÔ
¡áÕ«ñ¿Ôýß´ «ñ¿¡ ßó«í«ñ¡Ù® õÓáú¼Ñ¡Ô «íÛѼá ÞÑßÔý ß½«ó, «íÓẫóá¡¡Ù®
"߬½Ñ¿ó᡿Ѽ" ݽѼѡԫó Æ1^ ¿ T2^, óÙ»«½¡Ñ¡¡Ù¼ »Ó¿ «íÓáí«Ô¬Ñ ºá»Ó«ßá
DISPOSE(T2). é «íÚѼ ß½ÒþáÑ ó«»Ó«ßÙ ÝõõѬԿ󡫮 ÓÑ὿ºáµ¿¿ Ò»Óáó½Ñ¡¿´
ñ¿¡á¼¿þÑ߬«® »á¼´Ôý¯, «íÑß»Ñþ¿óá¯ÚÑ® ¼¿¡¿¼Ò¼ «Ô¬áº«ó »Ó¿ «úÓá¡¿þÑ¡¡«¼
«íÛѼÑ, ß«ßÔáó½´¯Ô «Ôñѽý¡Ò¯ »Ó«í½Ñ¼Ò. çñÑßý ¼Ù Ô«½ý¬« ºá¼ÑÔ¿¼, þÔ« ß
«Óúá¡¿ºáµ¿Ñ® óÙñѽѡ¿´ "»ÑÓó«ú« »«ñÕ«ñ´ÚÑú«" õÓáú¼Ñ¡Ôá »á¼´Ô¿ ó
»Ó«úÓá¼¼¿Ó«óá¡¿¿ ßó´ºÙóá¯Ô Ôá¬¿Ñ ÔÑÓ¼¿¡Ù ¬á¬ "Õ¿»" ¿½¿ "¬Òþá", «Ô¡«ß´Ú¿Ñß´
߬«ÓÑÑ ¬ »Ó«õÑßß¿«¡á½ý¡«¼Ò ªáÓú«¡Ò, þѼ ¬ ¡áÒþ¡«-¼ÑÔ«ñ¿þÑ߬«® ÔÑÓ¼¿¡«½«ú¿¿.
ÆѼ ¡Ñ ¼Ñ¡ÑÑ ÝÔ¿ ÔÑÓ¼¿¡Ù ñ«ó«½ý¡« «íÓạ« ÕáÓá¬ÔÑÓ¿ºÒ¯Ô »Ó¿¡µ¿»Ù
«Óúá¡¿ºáµ¿¿ ñ¿¡á¼¿þÑ߬«® »á¼´Ô¿.
ÄÓúá¡¿ºáµ¿´ ¬«ÓÓѬԡ«® »«ß½Ññ«óáÔѽý¡«ßÔ¿ ºá»Ó«ß«ó ßó´ºá¡á, ¬Ó«¼Ñ Ô«ú«, ¬á¬
¼¿¡¿¼Ò¼ ÑÚÑ ß ñóÒ¼´ »Ó«í½Ñ¼á¼¿. ìá Ô«¼ ªÑ ªáÓú«¡Ñ ¿Õ ¡áºÙóá¯Ô »Ó«í½Ñ¼Ù
"ó¿ß´þ¿Õ ßßÙ½«¬" ¿ "¼Òß«Óá", á «»ÓÑñѽ´¯Ô «¡¿ ñóÑ ßÔ«Ó«¡Ù «ñ¡«® ¿ Ô«® ªÑ
«Þ¿í¬¿, ºá¬½¯þá¯ÚѮߴ ó ¡Ñ¬«ÓÓѬԡ«® Óáí«ÔÑ ß Ò¬áºáÔѽ´¼¿. æ½ÑñÒ¯Ú¿®
õÓáú¼Ñ¡Ô »Ó«úÓá¼¼Ù ¿½½¯ßÔÓ¿ÓÒÑÔ ó«º¡¿¬¡«óÑ¡¿Ñ Ôá¬¿Õ «Þ¿í«¬ (Ô¿»
"ÆÓÑÒú«½ý¡¿¬" «»¿ßá¡ óÙÞÑ).
VAR T1, T2:ÆÓÑÒú«½ý¡¿¬;
BEGIN NEW(T1);...T2:=T1;...
DISPOSE(T1); (* T2-"ó¿ß´þá´ ßßÙ½¬á" *)
............
NEW(T1);...NEW(T2);...
T1:=T2; (* ÄßÔá½ß´ "¼Òß«Ó" *)
êº ÝÔ«ú« »Ó¿¼ÑÓá »«¡´Ô¡«, þÔ« "ó¿ß´þá´ ßßÙ½¬á" - ÝÔ« Ò¬áºáÔѽý »Ó¿¬½áñ¡«®
»Ó«úÓá¼¼Ù, Ò¬áºÙóá¯Ú¿® ¡á ßó«í«ñ¡Ù® õÓáú¼Ñ¡Ô ñ¿¡á¼¿þÑ߬«® »á¼´Ô¿. ū߬«½ý¬Ò
ÝÔ«Ô õÓáú¼Ñ¡Ô ¼«ªÑÔ íÙÔý óÙñѽѡ ß¿ßÔѼ«® »« ¬á¬«¼Ò-½¿í« ºá»Ó«ßÒ ñÓÒú«®
»Ó¿¬½áñ¡«® »Ó«úÓá¼¼Ñ, Æ2 ¼«ªÑÔ «Ô¬ÓÙÔý ñ«ßÔÒ» ¬ "þÒª¿¼" ñá¡¡Ù¼ ¿
"ÓáºÓÑÞ¿Ôý" ¿Õ ¿¡ÔÑÓ»ÓÑÔᵿ¯ ¬á¬ ÔÓÑÒú«½ý¡¿¬á. Å«ß½ÑñßÔó¿´ Ôᬫ®
¿¡ÔÑÓ»ÓÑÔᵿ¿ ó «íÚѼ ß½ÒþáÑ ¡Ñ»ÓÑñ߬áºÒѼÙ. çá¼ÑÔ¿¼, þÔ« "ó¿ß´þá´" ßßÙ½¬á
¿ "»ÒßÔá´" ßßÙ½¬á (¿¼Ñ¯Úá´ º¡áþÑ¡¿Ñ NIL, ß¼. páºñ.III) ´ó½´¯Ôß´ ß«óÑÓÞÑ¡¡«
Óạټ¿ »«¡´Ô¿´¼¿. "îÒß«Ó" - ÝÔ« ºá¡´ÔÙ® õÓáú¼Ñ¡Ô ñ¿¡á¼¿þÑ߬«® »á¼´Ô¿, ¬
¬«Ô«Ó«¼Ò ó »Ó¿¬½áñ¡«® »Ó«úÓá¼¼Ñ »«ÔÑÓ´¡ ñ«ßÔÒ». é »Ó¿óÑñÑ¡¡«¼ »Ó¿¼ÑÓÑ
¼Òß«Ó«¼ «¬áºá½ß´ ßÔáÓÙ® ÔÓÑÒú«½ý¡¿¬ Æ1^, ¡á ¬«Ô«ÓÙ® Ò¬áºÙóá½ Æ1 ñ«
»ÑÓÑñ󿪬¿ (ÒßÔá¡«ó¬¿ ¡á Æ2). ØÔ«Ô ¼Òß«Ó ¡ÑÒßÔÓá¡¿¼: »Ó«úÓá¼¼¿ßÔ ¡Ñ ¿¼ÑÑÔ ¬
¡Ñ¼Ò ñ«ßÔÒ»á, á ß¿ßÔѼá Ò»Óáó½Ñ¡¿´ "ßþ¿ÔáÑÔ" ¼Òß«Ó ºá¡´ÔÙ¼ õÓáú¼Ñ¡Ô«¼
»á¼´Ô¿.
ÄíÛÑñ¿¡´ÑÔ ÝÔ¿ ñóá ó¿ñá «Þ¿í«¬ «ñ¡« «íÚÑÑ «íßÔ«´ÔѽýßÔó«: «¡¿ ¡Ñ
«í¡áÓÒª¿óá¯Ôß´ ¿ß»«½¡¿Ôѽý¡«® ßÓÑñ«®. êñÑ¡Ô¿õ¿µ¿Ó«óáÔý »«ñ«í¡ÙÑ «Þ¿í¬¿
¼«ª¡« Ô«½ý¬« »ÒÔѼ ÔÚáÔѽý¡«® »Ó«óÑÓ¬¿ ¿ «Ô½áñ¬¿ »Ó«úÓá¼¼Ù. ê, ¡á¬«¡Ñµ, »«
ßó«¿¼ 󫺼«ª¡Ù¼ 󽿴¡¿´¼ ¡á Óáí«ÔÒ »Ó«úÓá¼¼Ù ¼Òß«Ó ú«Óáºñ« "íѺ«í¿ñ¡ÑÑ"
ó¿ß´þÑ® ßßÙ½¬¿. Ä¡ õá¬Ô¿þÑ߬¿ »Ó¿ó«ñ¿Ô Ô«½ý¬« ¬ Òóѽ¿þÑ¡¡«¼Ò ÓáßÕ«ñÒ
»á¼´Ô¿, ó Ô« óÓѼ´ ¬á¬ ó¿ß´þá´ ßßÙ½¬á ß»«ß«í¡á »Ó¿ «»ÓÑñѽѡ¡ÙÕ Òß½«ó¿´Õ
»«½¡«ßÔý¯ »áÓ὿º«óáÔý »Ó«µÑßß óÙ»«½¡Ñ¡¿´ »Ó«úÓá¼¼Ù. é ß½«ª¡ÙÕ ß¿ßÔѼáÕ
"µÑ¡á" ó¿ß´þÑ® ßßÙ½¬¿ ¼«ªÑÔ «¬áºáÔýß´ «þÑ¡ý óÙß«¬«®.
êß»«½ýº«óá¡¿Ñ áóÔ«¼áÔ¿þÑ߬«® »á¼´Ô¿ ßó´ºá¡« ß ß«ºñ᡿Ѽ / Ò¡¿þÔ«ªÑ¡¿Ñ¼
߻ѵ¿á½ý¡ÙÕ Ý½Ñ¼Ñ¡Ô«ó ÕÓá¡Ñ¡¿´, ßó´ºá¡¡ÙÕ ß á¬Ô¿ó¡Ù¼¿ «íÛѬÔἿ -
ñÑ®ßÔó¿´¼¿ ¿½¿ »Ó«µÑñÒÓἿ. ï¯íá´ »Ó«µÑñÒÓá ÔpÑíÒÑÔ ñ½´ óÙ»«½¡Ñ¡¿´
ß«íßÔóÑ¡¡«® ¿¡ñ¿ó¿ñÒá½ý¡«® ½«¬á½ý¡«® ßÓÑñÙ. Å«ñ«í¡Ò¯ ßÓÑñÒ «íÓáºÒ¯Ô
½«¬á½ý¡ÙÑ »ÑÓѼѡ¡ÙÑ, «íÛ´ó½Ñ¡¡ÙÑ ó »Ó«µÑñÒÓÑ, õ«Ó¼á½ý¡ÙÑ »áÓá¼ÑÔÓÙ,
Ý½Ñ¼Ñ¡Ô ÕÓá¡Ñ¡¿´ áñÓÑßá ó«ºóÓáÔá ó »Ó«µÑñÒÓÒ, Ô.Ñ. ¡áí«Ó «íÛѬԫó,
«íÑß»Ñþ¿óá¯Ú¿Õ óÙ»«½¡Ñ¡¿Ñ ñÑ®ßÔó¿®, ßó´ºá¡¡ÙÕ ß »Ó«µÑñÒÓ«®. ìÑ«íÕ«ñ¿¼«ßÔý ó
½«¬á½ý¡«® ßÓÑñÑ ó«º¡¿¬áÑÔ Ô«½ý¬« ó ¼«¼Ñ¡Ô óÙº«óá »Ó«µÑñÒÓÙ - ¼«¼Ñ¡Ô
¿¡ÔÑÓ»ÓÑÔᵿ¿ «íÛѬÔá »Ó«µÑñÒÓ¡«ú« Ô¿»á. Å«ß½Ñ ºáóÑÓÞÑ¡¿´ Ôᬫ®
¿¡ÔÑÓ»ÓÑÔᵿ¿ ¡Ñ«íÕ«ñ¿¼«ßÔý ó ½«¬á½ý¡«® ßÓÑñÑ ¿ßþѺáÑÔ. Æᬿ¼ «íÓẫ¼,
óÓѼ´ ª¿º¡¿ ½«¬á½ý¡«® ßÓÑñÙ «úÓá¡¿þ¿óáÑÔß´ óÓѼѡѼ «ÔÓáí«Ô¬¿ »Ó«úÓá¼¼Ù, ó
¬«Ô«Ó«® «¡á «»¿ßá¡á. æ««ÔóÑÔßÔóÑ¡¡« ºá»Ó«ß ¡á ß«ºñá¡¿Ñ ½«¬á½ý¡«® ßÓÑñÙ
ßó´ºá¡ ß óÙº«ó«¼ »Ó«µÑñÒÓÙ, á ºá»Ó«ß ¡á Ò¡¿þÔ«ªÑ¡¿Ñ - ß «¬«¡þ᡿Ѽ õáºÙ
á¬Ô¿ó¡«ßÔ¿ «íÛѬÔá («»ÑÓáÔ«Ó RETURN ¿½¿ END ó ÔÑ½Ñ »Ó«µÑñÒÓÙ). ìá»Ó¿¼ÑÓ:
VAR W1, W2: PROC;
PROCEDURE Éáí«Ôá_1;
VAR A: INTEGER;... BEGIN... W2;...
END Éáí«Ôá_1;
PROCEDURE Éáí«Ôá_2;
VAR A: INTEGER;... BEGIN... W2;...
END Éáí«Ôá_2;
BEGIN... W1:=Éáí«Ôá_1;... W2:=Éáí«Ôá_2;... W1;...
é ÝÔ«¼ õÓáú¼Ñ¡ÔÑ «»¿ßá¡Ù ñóá á¬Ô¿ó¡ÙÕ «íÛѬÔá »Ó«µÑñÒÓ¡«ú« Ô¿»á PROC =
PROCEDURE(): W1 ¿ W2 ¿ ñóÑ »Ó«µÑñÒÓÙ íѺ »áÓá¼ÑÔÓ«ó: Éáí«Ôá_1 ¿ Éáí«Ôá_2,
¬«Ô«ÓÙÑ ¼«úÒÔ ¿ß»«½ýº«óáÔýß´ ¬á¬ ¬«¡ßÔá¡ÔÙ Ô¿»á PROC. ê¡ÔÑÓ»ÓÑÔᵿ´
(á¬Ô¿ó¿ºáµ¿´) W1 »Ó¿óÑñÑÔ ¬ óÙº«óÒ Éáí«ÔÙ_1 ¿ ß«ºñá¡¿¯ ½«¬á½ý¡«® ßÓÑñÙ
(ß«ñÑÓªáÚÑ® »ÑÓѼѡ¡Ò¯ Ç). é »Ó«µÑßßÑ óÙ»«½¡Ñ¡¿´ Éáí«ÔÙ_1 »Ó«¿ºó«ñ¿Ôß´
á¬Ô¿ó¿ºáµ¿´ «íÛѬÔá W2 ¿ ß««ÔóÑÔßÔóÑ¡¡« ß«ºñá¡¿Ñ ½«¬á½ý¡«® ßÓÑñÙ ñ½´
Éáí«ÔÙ_2. é ½¯í«® ÔѬÒÚ¿® ¼«¼Ñ¡Ô óÓѼѡ¿ ó ß¿ßÔÑ¼Ñ ¼«úÒÔ íÙÔý á¬Ô¿ó¡Ù
¡Ñ߬«½ý¬« «íÛѬԫó. (é ÝÔ«¼ »Ó¿¼ÑÓÑ á¬Ô¿ó¿ºáµ¿´ W1 »Ó¿ó«ñ¿Ô ¬ á¬Ô¿ó¿ºáµ¿¿
W2, ºáÔѼ «¡¿ «íá «ßÔá¯Ôß´ ó á¬Ô¿ó¡«¼ ß«ßÔ«´¡¿¿ ¿ ºáÔѼ ÔÑÓ´¯Ô ßó«¯
á¬Ô¿ó¡«ßÔý ó «íÓáÔ¡«® »«ß½Ññ«óáÔѽý¡«ßÔ¿: ß¡áþá½á »áßß¿ó¿ÓÒÑÔß´ W2, ºáÔѼ
W1). Å«ß½Ññ«óáÔѽý¡«ßÔý á¬Ô¿óᵿ¿ ¿ »áßß¿óᵿ¿ ßó´ºá¡á ß ó½«ªÑ¡¡«ßÔý¯
óÙº«ó«ó »Ó«µÑñÒÓ, ß««ÔóÑÔßÔóÑ¡¡« Ò»Óáó½Ñ¡¿Ñ áóÔ«¼áÔ¿þÑ߬«® »á¼´Ôý¯
«ß¡«óÙóáÑÔß´ ¡á ¿ß»«½ýº«óá¡¿¿ ßÔѬá - ßÔÓÒ¬ÔÒÓÙ, »«ññÑÓª¿óá¯ÚÑ® Ôá¬Ò¯
󽫪ѡ¡«ßÔý. ì¿ªÑ ñ½´ ÝÔ«ú« õÓáú¼Ñ¡Ôá »Ó¿óÑñÑ¡á ¿½½¯ßÔÓᵿ´ Óáß»ÓÑñѽѡ¿´
áóÔ«¼áÔ¿þÑ߬«® »á¼´Ô¿, ßÒÚÑßÔóÒ¯ÚÑú« ó ÔÑþÑ¡¿Ñ ß«ó¼ÑßÔ¡«® á¬Ô¿ó¡«ßÔ¿
«íÛѬԫó W1 ¿ W2.
+- +-------------------+ -+
| | ÅÑÓѼѡ¡á´ Ç | |
| +-------------------+ > 﫬á½ý¡á´ ßÓÑñá
| | ÇñÓÑß ó«ºóÓáÔá | | ñ½´ W1
çá¡´Ô«Ñ »Ó«ßÔ- < +-------------------+ -+
Óá¡ßÔó« | | ÅÑÓѼѡ¡á´ Ç | |
| +-------------------+ > 﫬á½ý¡á´ ßÓÑñá
| | ÇñÓÑß ó«ºóÓáÔá | | ñ½´ W2
éÑÓÞ¿¡á --> +- |-------------------+ -+
ßÔѬá | | |
áóÔ«¼áÔ¿þÑ߬«® | | |
»á¼´Ô¿ | | | æó«í«ñ¡«Ñ
| | > »Ó«ßÔÓá¡ßÔó«
Åáßß¿óᵿ´ | | | »á¼´Ô¿
| ^ | | |
| | | | |
| | | | |
v | +-------------------+ -+
ǬԿóᵿ´
ÅÓ¿ á¬Ô¿óᵿ¿ ¬áªñ«ú« ¡«ó«ú« «íÛѬÔá óÑÓÞ¿¡á ßÔѬá "«»Ò߬áÑÔß´ 󡿺" ¡á
óѽ¿þ¿¡Ò, «»ÓÑñѽ´Ñ¼Ò¯ ÓẼÑÓἿ ½«¬á½ý¡«® ßÓÑñÙ ÝÔ«ú« «íÛѬÔá,- »Ó¿ Ñú«
»áßß¿óᵿ¿ óÑÓÞ¿¡á ßÔѬá "»«ñ¡¿¼áÑÔß´ óóÑÓÕ". æ ¿ß»«½ýº«ó᡿Ѽ
áóÔ«¼áÔ¿þÑ߬«® »á¼´Ô¿ ßó´ºá¡Ù ñóÑ «ß¡«ó¡ÙÑ »Ó«í½Ñ¼Ù: ÓѬÒÓß¿¿ ¿
¼¡«ªÑßÔóÑ¡¡«ßÔ¿ áßß«µ¿áµ¿®.
ÉѬÒÓß¿´ - ¼ÑÕá¡¿º¼, »«ºó«½´¯Ú¿® «íÛѬÔÒ ß«óÑÓÞáÔý ßἫá¬Ô¿óáµ-¿¯.
ìá»Ó¿¼ÑÓ, »« ßÕѼÑ:
W1-->W1 (»Ó´¼á´ ÓѬÒÓß¿´)
¿½¿ W1-->W2 ...-->W1 (¬«ßóÑ¡¡á´ ÓѬÒÓß¿´).
ÅÓ´¼á´ ÓѬÒÓß¿´ ßó´ºá¡á ß ¡Ñ»«ßÓÑñßÔóÑ¡¡«® »«óÔ«Ó¡«® (󽫪ѡ¡«®)
á¬Ô¿óᵿѮ, á ¬«ßóÑ¡¡á´ - ß «»«ßÓÑñ«óá¡¡«® (»Ó¿þѼ þ¿ß½« »«ßÓÑñ¡¿¬«ó ó
ßÕÑ¼Ñ W1-->...-->W1 ¼«ªÑÔ íÙÔý »Ó«¿ºó«½ý¡Ù¼). êß»«½ýº«óá¡¿Ñ ÓѬÒÓß¿¿
¡á»Ó´¼Ò¯ ßó´ºá¡« ß ÓẼÑÓἿ Óáí«þÑú« »Ó«ßÔÓá¡ßÔóá áóÔ«¼áÔ¿þÑ߬«® »á¼´Ô¿.
êß»«½ýº«óá¡¿Ñ ÓѬÒÓß¿ó¡ÙÕ á¬Ô¿óᵿ® «íÛѬԫó, ß «ñ¡«® ßÔ«Ó«¡Ù, »«ºó«½´ÑÔ
¿¼ÑÔý «þÑ¡ý ½á¬«¡¿þ¡ÙÑ ¿ Ѽ¬¿Ñ »« ß«ñÑӪ᡿¯ »Ó«úÓá¼¼Ù, ß ñÓÒú«® ßÔ«Ó«¡Ù, ó
ÓѬÒÓß¿ó¡ÙÕ ßÕѼáÕ («ß«íÑ¡¡« ó ¬«ßóÑ¡¡«® ÓѬÒÓß¿¿) ó«ºÓáßÔáÑÔ óÑÓ«´Ô¡«ßÔý
»«´ó½Ñ¡¿´ ÔÓÒñ¡« ¿ñÑ¡Ô¿õ¿µ¿ÓÒѼÙÕ «Þ¿í«¬.
î¡«ªÑßÔóÑ¡¡«ßÔý áßß«µ¿áµ¿® ºá¬½¯þáÑÔß´ ó Ô«¼, þÔ« ó ¬½áßßÑ áóÔ«¼áÔ¿þÑ߬«®
»á¼´Ô¿ ¼«úÒÔ íÙÔý «ñ¡«óÓѼѡ¡« ÓẼÑÚÑ¡Ù ¡Ñ߬«½ý¬« «ñ¡«¿¼Ñ¡¡ÙÕ «íÛѬԫó,
¿¼Ñ¯Ú¿Õ ó «íÚѼ ß½ÒþáÑ Óẽ¿þ¡ÙÑ º¡áþÑ¡¿´ ¿ «Ô¡«ß´Ú¿Ñß´ ¬ Óạټ
á¬Ô¿ó¡«ßÔ´¼ «ñ¡«ú« ¿ Ô«ú« ªÑ ¿½¿ «»´Ôý-Ôᬿ ÓạÙÕ «íÛѬԫó. é »Ó¿óÑñÑ¡¡«¼
»Ó¿¼ÑÓÑ ßÒÚÑßÔóÒ¯Ô ñóá «ñ¡«¿¼Ñ¡¡ÙÕ «íÛѬÔá: »ÑÓѼѡ¡á´ Ç, ßó´ºá¡¡á´
(áßß«µ¿¿Ó«óá¡¡á´) ß á¬Ô¿ó¡«ßÔý¯ W1, ¿ »ÑÓѼѡ¡á´ Ç, áßß«µ¿¿Ó«óá¡¡á´ ß
á¬Ô¿ó¡«ßÔý¯ «íÛѬÔá W2. é ß««ÔóÑÔßÔó¿¿ ß »Ó¿¡µ¿»«¼ ßÔѬá ß¿ßÔѼá Ò»páó½Ñ¡¿´
áóÔ«¼áÔ¿þÑ߬«® »á¼´Ôý¯ óßÑúñá páßß¼áÔp¿óáÑÔ ó ¬áþÑßÔóÑ á¬Ô¿ó¡«® »«ß½Ññ¡¯¯
ß«ºñá¡¡Ò¯ áßß«µ¿áµ¿¯ (ßá¼Ò¯ "í½¿ª¡¯¯" ¬ óÑÓÞ¿¡Ñ ßÔѬá áóÔ«¼áÔ¿þÑ߬«®
»á¼´Ô¿). 髺¡¿¬¡«óÑ¡¿Ñ ¼¡«ªÑßÔóÑ¡¡«ßÔ¿ áßß«µ¿áµ¿® «íÒß½«ó½Ñ¡« Ô«½ý¬«
¿ß»«½ýº«ó᡿Ѽ ó »Ó¿¬½áñ¡ÙÕ »Ó«úÓá¼¼áÕ «ñ¡«¿¼Ñ¡¡ÙÕ »ÑÓѼѡ¡ÙÕ ß Óẽ¿þ¡«®
«í½áßÔý¯ ñÑ®ßÔó¿´ («í½áßÔý¯ ó¿ñ¿¼«ßÔ¿). àß½¿ Òª ¿ß»«½ýº«óá¡¿Ñ ÔᬿÕ
»ÑÓѼѡ¡ÙÕ ¿ ´ó½´ÑÔß´ ¡Ñ«íÕ«ñ¿¼Ù¼ (ó þѼ óßÑúñá ßÔ«¿Ô Òß«¼¡¿Ôýß´), Ô« »Ó¿
¿Õ ¿¡ÔÑÓ»ÓÑÔᵿ¿ ß½ÑñÒÑÔ »«¼¡¿Ôý « ¼¡«ªÑßÔóÑ¡¡«ßÔ¿ áßß«µ¿áµ¿®.
Ñòðàíèöû: 1, 2
|