home *** CD-ROM | disk | FTP | other *** search
- âïÇéÇ 8.
-
- ÅÉÄûàäôÉ¢ ê öôìèûêê.
-
- Åα«µÑñπαδ ¿ Σπ¡¬µ¿¿ »«ºó«½∩εΓ ó¬½ετáΓ∞ ó «ß¡«ó¡«⌐ »α«úαá¼¼¡δ⌐
- í½«¬ ñ«»«½¡¿Γѽ∞¡δÑ í½«¬¿. èáªñ«Ñ «íΩ∩ó½Ñ¡¿Ñ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿
- ß«ñÑαª¿Γ ºáú«½«ó«¬, ºá ¬«Γ«αδ¼ ß½ÑñπÑΓ í½«¬. Åα«µÑñπαá
- á¬Γ¿ó¿º¿απÑΓß∩ ß »«¼«Θ∞ε «»ÑαáΓ«αá »α«µÑñπαδ. öπ¡¬µ¿∩
- á¬Γ¿ó¿º¿απÑΓß∩ »α¿ óδτ¿ß½Ñ¡¿¿ óδαáªÑ¡¿∩, ß«ñÑαªáΘÑú« ó맮ó Σπ¡¬µ¿¿
- ¿ ó«ºóαáΘáѼ«Ñ Σπ¡¬µ¿Ñ⌐ º¡áτÑ¡¿Ñ »«ñßΓáó½∩ÑΓß∩ ó φΓ« óδαáªÑ¡¿Ñ.
- é ñá¡¡«⌐ ú½áóÑ «íßπªñáεΓß∩ αẽ¿τ¡δÑ ß»«ß«íδ «íΩ∩ó½Ñ¡¿⌐
- »α«µÑñπα ¿½¿ Σπ¡¬µ¿⌐ ¿ ¿σ »áαá¼ÑΓαδ.
-
-
- ÄíΩ∩ó½Ñ¡¿Ñ »α«µÑñπα.
-
- ÄíΩ∩ó½Ñ¡¿Ñ »α«µÑñπαδ »«ºó«½∩ÑΓ ßó∩ºáΓ∞ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ß í½«¬«¼
- »α«µÑñπαδ. Åα«µÑñπαπ ¼«ª¡« á¬Γ¿ó¿º¿α«óáΓ∞ ß »«¼«Θ∞ε «»ÑαáΓ«αá
- »α«µÑñπαδ
-
-
- ┌─────────┐ ┌───┐ ┌─────────┐ ┌───┐
- «íΩ∩ó½Ñ¡¿Ñ ──÷│ºáú«½«ó«¬├──÷│ ; ├──÷│ Γѽ« ├──÷│ ; ├──÷
- »α«µÑñπαδ │»α«µÑñπαδ│ └───┘ │»α«µÑñπαδ│ └───┘
- └─────────┘ └─────────┘
-
- ┌─────────┐ ┌─────────────┐
- ºáú«½«ó«¬ ──÷│procedure├──÷│¿ñÑ¡Γ¿Σ¿¬áΓ«α├─┬──────────────────÷
- »α«µÑñπαδ └─────────┘ └─────────────┘ │ ┌──────────┐ °
- │ │ß»¿ß«¬ │ │
- └─÷│Σ«α¼á½∞¡δσ├─┘
- │»áαá¼ÑΓα«ó│
- └──────────┘
-
- ┌──────┐
- Γѽ« ───┬──────────────────────────────┬──÷│¼«ñπ½∞├────────÷
- »α«µÑñπαδ │ ┌─────────┐ ┌─┐ ° │ └──────┘ °
- ├──÷│ near ├─────÷│;├───┘ │ ┌───────┐ │
- │ └─────────┘ ° └─┘ │──÷│forward├───┤
- │ ┌─────────┐ │ │ └───────┘ │
- ├──÷│ far ├──┤ │ ┌────────┐ │
- │ └─────────┘ │ │──÷│external├──┤
- │ ┌─────────┐ │ │ └────────┘ │
- ├──÷│interrupt├──┘ │ ┌────────┐ │
- │ └─────────┘ └──÷│í½«¬ asm├──┤
- │ └────────┘ │
- │ ┌─────────┐ │
- └─────────────────────────────────÷│ñ¿αÑ¬Γ¿óá├─┘
- │ inline │
- └─────────┘
-
-
- é ºáú«½«ó¬Ñ »α«µÑñπαδ π¬áºδóáÑΓß∩ ¿¼∩ »α«µÑñπαδ ¿ «»¿ßδóáÑΓß∩
- ß»¿ß«¬ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó (Ñß½¿ «¡ »α¿ßπΓßΓóπÑΓ). æ¿¡Γá¬ß¿ß ñ½∩
- ß»¿ß¬á Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó »«¬áºá¡ ñá½ÑÑ ó φΓ«⌐ ú½áóÑ ó αáºñѽÑ
- "Åáαá¼ÑΓαδ".
- çá»π߬ »α«µÑñπαδ «ßπΘÑßΓó½∩ÑΓß∩ ß »«¼«Θ∞ε «»ÑαáΓ«αá »α«µÑñπαδ,
- ó ¬«Γ«α«¼ ß«ñÑαªáΓß∩ ¿¼∩ »α«µÑñπαδ ¿ Σá¬Γ¿τÑ߬¿Ñ »áαá¼ÑΓαδ.
- Ä»ÑαáΓ«αδ, ¬«Γ«αδÑ ñ«½ª¡δ óδ»«½¡∩Γ∞ß∩ »α¿ ºá»π᪥ »α«µÑñπαδ,
- ¿ß»«½∞ºπεΓß∩ ó «»ÑαáΓ«α¡«⌐ τáßΓ¿ í½«¬á »α«µÑñπαδ. àß½¿ ó
- ß«ñÑαªáΘѼß∩ ó »α«µÑñπαÑ «»ÑαáΓ«αÑ ó¡πΓα¿ í½«¬á »α«µÑñπαδ
- ¿ß»«½∞ºπÑΓß∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«α »α«µÑñπαδ, Γ« »α«µÑñπαá íπñÑΓ
- óδ»«½¡∩Γ∞ß∩ αѬπαß¿ó¡« (íπñÑΓ »α¿ óδ»«½¡Ñ¡¿¿ «íαáΘáΓ∞ß∩ ßá¼á ¬
- ßÑíÑ).
- Åα¿óÑñѼ »α¿¼Ñα «íΩ∩ó½Ñ¡¿∩ »α«µÑñπαδ:
-
- procedure NumString (N: Integer; var S: string);
- var
- V: Integer;
- begin
- V := Abs(N);
- S := '';
- repeat
- S := Chr(N mod 10 + ord(`0')) + S;
- N := N div 10;
- until N = 0;
- if N < 0 then
- S := `-' + S;
- end;
-
-
- near ¿ far «íΩ∩ó½Ñ¡¿∩.
-
- Turbo Pascal »«ññÑনóáÑΓ 2 ¼«ñѽ¿ ó맮óá »α«µÑñπα: near
- (í½¿ª¡∩∩) ¿ far (ñá½∞¡∩∩). é ΓÑନ¡áσ αẼÑαá ¬«ñá ¿ ߬«α«ßΓ¿
- óδ»«½¡Ñ¡¿∩ ¼«ñѽ∞ ó맮óá near í«½ÑÑ φΣΣÑ¬Γ¿ó¡á, ¡« ßπΘÑßΓóπÑΓ
- «úαá¡¿τÑ¡¿Ñ - í½¿ª¡∩∩ »α«µÑñπαá ¼«ªÑΓ óδºδóáΓ∞ß∩ Γ«½∞¬« ó¡πΓα¿
- ¼«ñπ½∩, ó ¬«Γ«α«¼ «¡á «íΩ∩ó½Ñ¡á. æ ñαπú«⌐ ßΓ«α«¡δ, ñá½∞¡¿Ñ
- »α«µÑñπαδ ¼«úπΓ óδºδóáΓ∞ß∩ ¿º ½εí«ú« ¼«ñπ½∩, ¡« ¬«ñ ñá½∞¡¿σ ó맮ó«ó
- ¡Ñ߬«½∞¬« ¼Ñ¡ÑÑ φΣΣÑ¬Γ¿óÑ¡.
-
- Turbo Pascal áóΓ«¼áΓ¿τÑ߬¿ óδí¿αáÑΓ ¬«ααÑ¬Γ¡πε ¼«ñѽ∞ ó맮óá
- ¡á «ß¡«óá¡¿¿ «íΩ∩ó½Ñ¡¿∩ »α«µÑñπαδ: »α«µÑñπαδ, «íΩ∩ó½Ñ¡¡δÑ ó αáºñѽÑ
- interface ¼«ñπ½∩, ¿ß»«½∞ºπεΓ ñá½∞¡εε ¼«ñѽ∞ ó맮óá - «¡¿ ¼«úπΓ íδΓ∞
- óδºóá¡δ ¿º ñαπú¿σ ¼«ñπ½Ñ⌐. Åα«µÑñπαδ, «íΩ∩ó½Ñ¡¡δÑ ó »α«úαá¼¼Ñ ¿½¿ ó
- αáºñÑ½Ñ implementation ¼«ñπ½∩, ¿ß»«½∞ºπεΓ í½¿ª¡εε ¼«ñѽ∞ ó맮óá -
- «¡¿ ¼«úπΓ óδºδóáΓ∞ß∩ Γ«½∞¬« ó¡πΓα¿ φΓ«⌐ »α«úαá¼¼δ ¿½¿ ¼«ñπ½∩.
-
- é ¡Ñ¬«Γ«αδσ ß½πτá∩σ ¼«ªÑΓ »«ΓαÑí«óáΓ∞ß∩ ¿ß»«½∞º«óá¡¿Ñ ñ½∩
- »α«µÑñπαδ ñá½∞¡Ñ⌐ ¼«ñѽ¿ ó맮óá. ìá»α¿¼Ñα, ó «óÑα½Ñ⌐¡δσ »α«úαá¼¼áσ
- óßÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ñ«½ª¡δ íδΓ∞ ñá½∞¡¿¼¿; á¡á½«ú¿τ¡«, Ñß½¿
- »α«µÑñπαá ¿½¿ Σπ¡¬µ¿∩ »α¿ßóá¿óáÑΓß∩ »α«µÑñπα¡«⌐ »ÑαѼѡ¡«⌐, «¡á
- ñ«½ª¡á ¿ß»«½∞º«óáΓ∞ ñá½∞¡εε ¼«ñѽ∞ ó맮óá. ä¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá $F
- ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ »ÑαѬαδΓ¿∩ áóΓ«¼áΓ¿τÑ߬«ú« óδí«αá ¼«ñѽ¿
- ó맮óá ¬«¼»¿½∩Γ«α«¼. Åα«µÑñπαδ ¿ Σπ¡¬µ¿¿, «Γ¬«¼»¿½¿α«óá¡¡δÑ ó
- ß«ßΓ«∩¡¿¿ {$F+} óßÑúñá ¿ß»«½∞ºπεΓ ñá½∞¡εε ¼«ñѽ∞ ó맮óá; ó
- ß«ßΓ«∩¡¿¿ {$F-} ¬«¼»¿½∩Γ«α áóΓ«¼áΓ¿τÑ߬¿ óδí¿αáÑΓ ¬«ααÑ¬Γ¡πε
- ¼«ñѽ∞. æ«ßΓ«∩¡¿Ñ »« π¼«½τá¡¿ε - {$F-}.
-
- ä½∩ ºáñá¡¿∩ ΓαÑíπѼ«⌐ ¼«ñѽ¿ ó맮óá «íΩ∩ó½Ñ¡¿Ñ »α«µÑñπαδ ¼«ªÑΓ
- ß«ñÑαªáΓ∞ ñ¿αÑ¬Γ¿óπ near ¿½¿ far ñ« í½«¬á - Ñß½¿ Γá¬á∩ ñ¿αÑ¬Γ¿óá
- π¬áºá¡á, «¡á »ÑαѬαδóáÑΓ πßΓá¡«ó¬π ñ¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá $F, á Γá¬
- ªÑ áóΓ«¼áΓ¿τÑ߬¿⌐ óδí«α ¼«ñѽ¿ ó맮óá ¬«¼»¿½∩Γ«αá.
-
-
- interrupt «íΩ∩ó½Ñ¡¿Ñ.
-
- ÄíΩ∩ó½Ñ¡¿Ñ »α«µÑñπαδ ¼«ªÑΓ ß«ñÑαªáΓ∞ ñ¿αÑ¬Γ¿óπ interrupt »ÑαÑñ
- í½«¬«¼, ¿ Γ«úñá »α«µÑñπαá αáßß¼áΓα¿óáÑΓß∩ ¬á¬ »α«µÑñπαá »αÑαδóá¡¿∩.
- Åα«µÑñπαδ »αÑαδóá¡¿∩ »«½¡«ßΓ∞ε «»¿ßá¡δ ó ú½áóÑ 18 "é«»α«ßδ
- ¬«¡Γα«½∩". æÑ⌐τáß ºá¼ÑΓ¿¼, τΓ« »α«µÑñπαδ »αÑαδóá¡¿∩ ¡Ñ½∞º∩ óδºδóáΓ∞
- ß »«¼«Θ∞ε «»ÑαáΓ«α«ó »α«µÑñπα ¿ τΓ« ¬áªñá∩ »α«µÑñπαá »αÑαδóá¡¿∩
- ñ«½ª¡á ºáñáóáΓ∞ ß»¿ß«¬ »áαá¼ÑΓα«ó Γ«τ¡« Γá¬, ¬á¬ φΓ« »«¬áºá¡« ¡¿ªÑ:
-
- procedure MyInt (Flags, CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP
- : Word);
-
- interrupt;
-
- é¼ÑßΓ« í½«¬á ó «íΩ∩ó½Ñ¡¿¿ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ¼«ª¡« ¡á»¿ßáΓ∞
- forward («»ÑαѪáεΘá∩), external (ó¡ÑΦ¡∩∩) ¿½¿ inline (óßΓα«Ñ¡¡á∩)
- «íΩ∩ó½Ñ¡¿Ñ.
-
-
- Ä»ÑαѪáεΘ¿Ñ «íΩ∩ó½Ñ¡¿∩ (forward).
-
- Ä»ÑαѪáεΘ¿¼ (forward) «íΩ∩ó½Ñ¡¿Ñ¼ ¡áºδóáÑΓß∩ «íΩ∩ó½Ñ¡¿Ñ
- »α«µÑñπαδ, ºáñáεΘÑÑ ñ¿αÑ¬Γ¿óπ forward ó¼ÑßΓ« í½«¬á. âñÑ-¡¿íπñ∞
- »«ß½Ñ φΓ«ú« «íΩ∩ó½Ñ¡¿∩ »α«µÑñπαá ñ«½ª¡á íδΓ∞ «»αÑñѽѡá ß »«¼«Θ∞ε
- «»αÑñѽ∩εΘÑú« «íΩ∩ó½Ñ¡¿∩ - «íΩ∩ó½Ñ¡¿∩ »α«µÑñπαδ, ¬«Γ«α«Ñ ¿ß»«½∞ºπÑΓ
- Γᬫ⌐ ªÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«α »α«µÑñπαδ, ¡« «»π߬áÑΓ ß»¿ß«¬ Σ«α¼á½∞¡δσ
- »áαá¼ÑΓα«ó ¿ ß«ñÑαª¿Γ í½«¬. Ä»ÑαѪáεΘÑÑ «íΩ∩ó½Ñ¡¿Ñ ¿ «»αÑñѽ∩εΘÑÑ
- «íΩ∩ó½Ñ¡¿Ñ ñ«½ª¡δ ¡áσ«ñ¿Γ∞ß∩ ó «ñ¡«⌐ ¿ Γ«⌐ ªÑ τáßΓ¿ «íΩ∩ó½Ñ¡¿∩
- »α«µÑñπα ¿ Σπ¡¬µ¿⌐. îѪñπ ¡¿¼¿ ¼«úπΓ íδΓ∞ «íΩ∩ó½Ñ¡δ ñαπú¿Ñ
- »α«µÑñπαδ ¿ Σπ¡¬µ¿¿, ¿ «¡¿ ¼«úπΓ óδºδóáΓ∞ »α«µÑñπαπ ß «»ÑαѪáεΘ¿¼
- «íΩ∩ó½Ñ¡¿Ñ¼. Æá¬¿¼ «íαẫ¼, 󫺼«ª¡á óºá¿¼¡á∩ αѬπαß¿∩.
- Ä»ÑαѪáεΘÑÑ «íΩ∩ó½Ñ¡¿Ñ ¿ «»αÑñѽ∩εΘÑÑ «íΩ∩ó½Ñ¡¿Ñ ß«ßΓáó½∩εΓ
- »«½¡«Ñ «íΩ∩ó½Ñ¡¿Ñ »α«µÑñπαδ. æτ¿ΓáÑΓß∩, τΓ« »α«µÑñπαá «íΩ∩ó½Ñ¡á ó
- «»ÑαѪáεΘѼ «íΩ∩ó½Ñ¡¿¿.
- Åα¿óÑñѼ »α¿¼Ñα «»ÑαѪáεΘÑú« «íΩ∩ó½Ñ¡¿∩:
-
- procedure Walter(M, N: Integer): forward;
- procedure Clara(X, Y: Real);
- begin
- ...
- Walter(4, 5);
- ...
- end;
-
- procedure Walter;
- begin
- ...
- Clara(8.3, 2.4);
- ...
- end;
-
- Ä»αÑñѽ∩εΘÑÑ «íΩ∩ó½Ñ¡¿Ñ »α«µÑñπαδ ¼«ªÑΓ íδΓ∞ external ¿½¿
- assembler. Äñ¡á¬«, «¡« ¡Ñ ¼«ªÑΓ íδΓ∞ near, far, inline ¿½¿ ñαπú¿¼
- forward «íΩ∩ó½Ñ¡¿Ñ¼. Ä»αÑñѽ∩εΘÑÑ «íΩ∩ó½Ñ¡¿Ñ Γá¬ªÑ ¡Ñ ¼«ªÑΓ
- ß«ñÑαªáΓ∞ ñ¿αÑ¬Γ¿óπ interrupt, near ¿½¿ far. Ä»ÑαѪáεΘ¿Ñ «íΩ∩ó½Ñ¡¿∩
- ¡Ñ ñ«»π߬áεΓß∩ ó ¿¡ΓÑαΣÑ⌐ß¡«⌐ τáßΓ¿ ¼«ñπ½∩.
-
-
- é¡ÑΦ¡¿Ñ «íΩ∩ó½Ñ¡¿∩ (external).
-
- é¡ÑΦ¡¿Ñ «íΩ∩ó½Ñ¡¿∩ »«ºó«½∩εΓ ßó∩ºδóáΓ∞ «Γñѽ∞¡«
- ߬«¼»¿½¿α«óá¡¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿, ¡á»¿ßá¡¡δÑ ¡á ∩ºδ¬Ñ
- áßßѼí½Ñαá. æ »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ {$L ¿¼∩ Σá⌐½á} ó¡ÑΦ¡εε »α«úαá¼¼π
- ¼«ª¡« ßó∩ºáΓ∞ ß »α«úαá¼¼«⌐ ¿½¿ ¼«ñπ½Ñ¼, ¡á»¿ßá¡¡δ¼ ¡á Åá߬á½Ñ.
- ü«½ÑÑ ñÑΓá½∞¡δÑ «íΩ∩ó½Ñ¡¿∩ αÑñá¬Γ¿α«óá¡¿∩ ßó∩ºÑ⌐ ß »α«úαá¼¼«⌐ ¡á
- ∩ºδ¬Ñ áßßѼí½Ñαá ß«ñÑαªáΓß∩ ó ú½áóÑ 23.
- Åα¿óÑñѼ ß½ÑñπεΘ¿Ñ »α¿¼Ñαδ «íΩ∩ó½Ñ¡¿⌐ ó¡ÑΦ¡¿σ »α«µÑñπα:
-
- procedure MoveWord(var Source, Dest; Count: Word);
- external;
- procedure MoveLong(var Source, Dest; Count: Word);
- external;
- procedure FillWord(var Dest; Data: Integer;
- Count: Word); external;
- procedure FillLong(var Dest; Data: Longint;
- Count: Word); external;
-
- {$L BLOCK.OBJ}
-
-
- assembler «íΩ∩ó½Ñ¡¿Ñ.
-
- assembler «íΩ∩ó½Ñ¡¿Ñ »«ºó«½∩ÑΓ éá¼ ¡á»¿ßáΓ∞ »α«µÑñπαπ ¿½¿
- Σπ¡¬µ¿ε ¡á óßΓα«Ñ¡¡«¼ ÇßßѼí½ÑαÑ. ü«½ÑÑ ñÑΓá½∞¡«Ñ «»¿ßá¡¿Ñ
- ÇßßѼí½Ñα¡δσ »α«µÑñπα ¿ Σπ¡¬µ¿⌐ »α¿óÑñÑ¡« ó ú½áóÑ 22 "éßΓα«Ñ¡¡δ⌐
- ÇßßѼí½Ñα".
-
-
- ┌─────────┐ ┌─┐ ┌──────────┐ ┌────────────┐
- í½«¬ asm ───÷│assembler├──÷│;├──÷│ αáºñѽ ├──÷│asm «»ÑαáΓ«α├──÷
- └─────────┘ └─┘ │«íΩ∩ó½Ñ¡¿∩│ └────────────┘
- └──────────┘
-
-
- inline «íΩ∩ó½Ñ¡¿Ñ.
-
- ä¿αÑ¬Γ¿óá inline »«ºó«½∩ÑΓ ºá»¿ßδóáΓ∞ ¿¡ßΓαπ¬µ¿¿ ó ¼áΦ¿¡¡«¼
- ¬«ñÑ, ¡Ñ ¿ß»«½∞ºπ∩ í½«¬ «»ÑαáΓ«α«ó. Åα¿ ó맮óÑ «íδτ¡«⌐ »α«µÑñπαδ
- ¬«¼»¿½∩Γ«α ß«ºñáÑΓ ¬«ñ, ó ¬«Γ«α«¼ »áαá¼ÑΓαδ »α«µÑñπαδ »«¼ÑΘáεΓß∩ ó
- ßΓѬ, á ºáΓѼ ñ½∩ ó맮óá »α«µÑñπαδ úÑ¡Ñα¿απÑΓß∩ ¿¡ßΓαπ¬µ¿∩ call.
- è«úñá óδ óδºδóáÑΓÑ ó¡πΓαÑ¡¡εε »α«µÑñπαπ, ¬«¼»¿½∩Γ«α úÑ¡Ñα¿απÑΓ ¬«ñ
- ¿º ñ¿αÑ¬Γ¿óδ inline ó¼ÑßΓ« call. Æá¬¿¼ «íαẫ¼, inline »α«µÑñπαá
- "αáßΦ¿α∩ÑΓß∩" »α¿ ¬áªñ«¼ «íαáΘÑ¡¿¿ ¬ ¡Ñ⌐, á¡á½«ú¿τ¡«
- ¼á¬α« ¡á ∩ºδ¬Ñ áßßѼí½Ñαá. Åα¿óÑñѼ ñóá ¡Ñí«½∞Φ¿σ »α¿¼Ñαá
- ó¡πΓαÑ¡¡¿σ »α«µÑñπα:
-
- procedure DisableInterrupts; inline ($FA); {CLI}
- procedure EnableInterrupts; inline ($FB); {STI}
-
-
- ÄíΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐.
-
- ÄíΩ∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿ «»αÑñѽ∩ÑΓ τáßΓ∞ »α«úαá¼¼δ, ó ¬«Γ«α«⌐
- óδτ¿ß½∩ÑΓß∩ ¿ ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ.
-
-
- ┌─────────┐ ┌─┐ ┌───────┐ ┌─┐
- «íΩ∩ó½Ñ¡¿Ñ ───÷│ºáú«½«ó«¬├──÷│;├──÷│ Γѽ« ├──÷│;├──÷
- Σπ¡¬µ¿¿ │ Σπ¡¬µ¿¿ │ └─┘ │Σπ¡¬µ¿¿│ └─┘
- └─────────┘ └───────┘
-
- ┌────────┐ ┌─────────────┐
- ºáú«½«ó«¬ ───÷│function├─÷│¿ñÑ¡Γ¿Σ¿¬áΓ«α├──┬───────────────────┐
- Σπ¡¬µ¿¿ └────────┘ └─────────────┘ │ ┌──────────┐ ° │
- │ │ß»¿ß«¬ │ │ │
- └─÷│Σ«α¼á½∞¡δσ├──┘ │
- │»áαá¼ÑΓα«ó│ │
- └──────────┘ │
- ┌─────────────────────┘
- │ ┌─┐ ┌────────┐
- └─÷│:├──÷│Γ¿» αÑ- ├────÷
- └─┘ │ºπ½∞ΓáΓá│
- └────────┘
-
- ┌─────────────┐
- Γ¿» αѺπ½∞ΓáΓá ─────÷│¿ñÑ¡Γ¿Σ¿¬áΓ«α├─────────÷
- │ │ Γ¿»á │ °
- │ └─────────────┘ │
- │ ┌──────┐ │
- └─────÷│string├─────────┘
- └──────┘
-
- ┌──────┐
- Γѽ« ───┬─────────────────────────┬──÷│¼«ñπ½∞├────────÷
- Σπ¡¬µ¿¿ │ ┌──────┐ ┌─┐ ° │ └──────┘ °
- ├──÷│ near ├────÷│;├──┘ │ ┌───────┐ │
- │ └──────┘ ° └─┘ ├──÷│forward├───┤
- │ ┌──────┐ │ │ └───────┘ │
- ├──÷│ far ├──┘ │ ┌────────┐ │
- │ └──────┘ ├──÷│external├──┤
- │ │ └────────┘ │
- │ │ ┌────────┐ │
- │ └──÷│í½«¬ asm├──┤
- │ └────────┘ │
- │ ┌─────────┐ │
- └────────────────────────────÷│ñ¿αÑ¬Γ¿óá├─┘
- │ inline │
- └─────────┘
-
- çáú«½«ó«¬ Σπ¡¬µ¿¿ ß«ñÑαª¿Γ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ñ½∩ Σπ¡¬µ¿¿,
- Σ«α¼á½∞¡δÑ »áαá¼ÑΓαδ (Ñß½¿ «¡¿ »α¿ßπΓßΓóπεΓ) ¿ Γ¿» αѺπ½∞ΓáΓá
- Σπ¡¬µ¿¿.
- öπ¡¬µ¿∩ á¬Γ¿ó¿º¿απÑΓß∩ ß »«¼«Θ∞ε ó맮óá Σπ¡¬µ¿¿ ¿½¿
- óδτ¿ß½Ñ¡¿∩. é맮ó Σπ¡¬µ¿¿ ß«ñÑαª¿Γ ¿ñÑ¡Γ¿Σ¿¬áΓ«α Σπ¡¬µ¿¿ ¿
- ¡Ñ«íσ«ñ¿¼δÑ Σá¬Γ¿τÑ߬¿Ñ »áαá¼ÑΓαδ. öπ¡¬µ¿∩ óδ»«½¡∩ÑΓß∩ »α¿
- óδτ¿ß½Ñ¡¿¿ óδαáªÑ¡¿∩, á º¡áτÑ¡¿Ñ «»Ñαá¡ñá ßΓá¡«ó¿Γß∩ º¡áτÑ¡¿Ñ¼,
- ó«ºóαáΘáÑ¼δ¼ Σπ¡¬µ¿Ñ⌐.
- Ä»ÑαáΓ«α¡á∩ τáßΓ∞ í½«¬á Σπ¡¬µ¿¿ ß«ñÑαª¿Γ «»ÑαáΓ«αδ, ¬«Γ«αδÑ
- óδ»«½¡∩εΓß∩ »α¿ á¬Γ¿ó¿ºáµ¿¿ Σπ¡¬µ¿¿. ü½«¬ ñ«½ªÑ¡ ß«ñÑαªáΓ∞ »«
- ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¿¡ «»ÑαáΓ«α »α¿ßóá¿óá¡¿∩, ó ¬«Γ«α«¼ »α¿ßóá¿óáÑΓß∩
- º¡áτÑ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«απ Σπ¡¬µ¿¿. ÉѺπ½∞ΓáΓ«¼ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿
- íπñÑΓ »«ß½Ññ¡ÑÑ »α¿ßóá¿óáѼ«Ñ º¡áτÑ¡¿Ñ. àß½¿ Γᬫú« «»ÑαáΓ«αá
- »α¿ßóá¿óá¡¿∩ ¡ÑΓ ¿½¿ «¡ ¡Ñ óδ»«½¡∩ÑΓß∩, Γ« ó«ºóαáΘáѼ«Ñ Σπ¡¬µ¿Ñ⌐
- º¡áτÑ¡¿Ñ íπñÑΓ ¡Ñ«»αÑñѽѡ¡δ¼.
- àß½¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α Σπ¡¬µ¿¿ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ó맮óá Σπ¡¬µ¿¿
- ó¡πΓα¿ í½«¬á Σπ¡¬µ¿¿, Γ« Σπ¡¬µ¿∩ óδ»«½¡∩ÑΓß∩ αѬπαß¿ó¡«. Åα¿óÑñѼ
- »α¿¼Ñα «íΩ∩ó½Ñ¡¿⌐ Σπ¡¬µ¿⌐:
-
- function Max(A: Vector; N: Integer): Extended;
- var
- X: Extended;
- I: Integer;
- begin
- X := A[1];
- for I := 2 to N do
- if X < A[I] then X := A[I];
- Max := X;
- end;
-
- function Power(X: Extended; Y: Integer): Extended;
- var
- Z: Extended;
- I: Integer;
- begin
- Z := 1.0;
- I := Y;
- while I > 0 do
- begin
- if Odd(I) then Z := Z * X;
- I := I div 2;
- X := Sqr(X);
- end;
- Power := Z;
- end;
-
- èᬠ¿ »α«µÑñπαδ, Σπ¡¬µ¿¿ ¼«úπΓ íδΓ∞ «íΩ∩ó½Ñ¡δ ¬á¬ forward,
- external, inline, near, far ¿ assembler; «ñ¡á¬« ¡Ñ ñ«»πßΓ¿¼δ
- interrupt Σπ¡¬µ¿¿.
-
-
- ÄíΩ∩ó½Ñ¡¿Ñ ¼ÑΓ«ñ«ó.
-
- ÄíΩ∩ó½Ñ¡¿Ñ ¼ÑΓ«ñá ó¡πΓα¿ «íΩÑ¬Γ¡«ú« Γ¿»á ß««ΓóÑΓßΓóπÑΓ
- «íΩ∩ó½Ñ¡¿ε forward ñ½∩ φΓ«ú« ¼ÑΓ«ñá. Æá¬¿¼ «íαẫ¼, »«ß½Ñ
- «íΩ∩ó½Ñ¡¿∩ «íΩÑ¬Γ¡«ú« Γ¿»á ¿ ó¡πΓα¿ ßΣÑαδ ñÑ⌐ßΓó¿∩ «íΩ∩ó½Ñ¡¿∩ φΓ«ú«
- «íΩÑ¬Γ¡«ú« Γ¿»á ñ«½ª¡á íδΓ∞ αÑ὿ºáµ¿∩ φΓ«ú« ¼ÑΓ«ñá.
- ä½∩ ¼ÑΓ«ñ«ó Γ¿»á »α«µÑñπα ¿ Σπ¡¬µ¿⌐ αÑ὿ºáµ¿∩ ¿¼ÑÑΓ Σ«α¼π
- «íΩ∩ó½Ñ¡¿∩ «íδτ¡«⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ß «ñ¡¿¼ ¿ß¬½ετÑ¡¿Ñ¼, τΓ«
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ó φΓ«¼ ß½πτáÑ ñ«½ªÑ¡ íδΓ∞
- πΓ«τ¡Ñ¡¡δ¼ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ ¼ÑΓ«ñá.
- îÑΓ«ñδ ¬«¡ßΓαá¬Γ«α ¿ ñÑßΓαá¬Γ«α ¿¼ÑεΓ Γá¬πε ªÑ Σ«α¼π
- «íΩ∩ó½Ñ¡¿∩ ¼ÑΓ«ñá-»α«µÑñπαδ, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« ¬½ετÑó«Ñ
- ß½«ó« procedure ºá¼Ñ¡∩ÑΓß∩ ¬½ετÑóδ¼ ß½«ó«¼ constructor ¿½¿
- destructor.
- Åα¿ αÑ὿ºáµ¿¿ ¼ÑΓ«ñá, ó ºáú«½«ó¬Ñ ¼ÑΓ«ñá ¼«ª¡« π¬áºδóáΓ∞
- ß»¿ß«¬ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó, π¬áºá¡¡δσ »α¿ «íΩ∩ó½Ñ¡¿¿ «íΩÑ¬Γ¡«ú«
- Γ¿»á. é φΓ«¼ ß½πτáÑ «»αÑñѽѡ¿Ñ ºáú«½«ó¬á ¼ÑΓ«ñá ñ«½ª¡« Γ«τ¡«
- ß««ΓóÑΓßΓó«óáΓ∞ »« »«α∩ñ¬π Γ¿»á¼ ¿ ¿¼Ñ¡á¼ »áαá¼ÑΓα«ó ¿ Γ¿»π
- αѺπ½∞ΓáΓá Σπ¡¬µ¿¿.
- é «»αÑñѽ∩εΘѼ «íΩ∩ó½Ñ¡¿¿ ¼ÑΓ«ñá óßÑúñá »α¿ßπΓßΓóπÑΓ ¡Ñ∩ó¡δ⌐
- »áαá¼ÑΓα ß ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ Self, ß««ΓóÑΓßΓóπεΘ¿⌐ Σ«α¼á½∞¡«¼π
- »áαá¼ÑΓαπ ß φΓ¿¼ «íΩÑ¬Γ¡δ¼ Γ¿»«¼. é¡πΓα¿ ¼ÑΓ«ñá Self ß«ñÑনΓ
- φ¬ºÑ¼»½∩α, τ∞∩ ¬«¼»«¡Ñ¡Γá íδ½á ¡áº¡áτÑ¡á »α¿ á¬Γ¿ó¿ºáµ¿¿ φΓ«ú«
- ¼ÑΓ«ñá. Æá¬¿¼ «íαẫ¼, ½εíδÑ ¿º¼Ñ¡Ñ¡¿∩ º¡áτÑ¡¿⌐ »«½Ñ⌐ Self
- «ΓαáªáεΓß∩ ó φ¬ºÑ¼»½∩αÑ.
- æΣÑαá ñÑ⌐ßΓó¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ó «íΩÑ¬Γ¡«¼ Γ¿»Ñ
- αáß»α«ßΓαá¡∩ÑΓß∩ ¡á ½εíπε »α«µÑñπαπ, Σπ¡¬µ¿ε, ¬«¡ßΓαá¬Γ«α ¿½¿
- ñÑßΓαá¬Γ«α, ¬«Γ«αδÑ αÑ὿ºπεΓ ¼ÑΓ«ñ φΓ«ú« «íΩÑ¬Γ¡«ú« Γ¿»á. ¥ΣΣѬΓ
- φΓ«ú« ëà ªÑ ßá¼δ⌐, ¬á¬ Ñß½¿ íδ óÑß∞ í½«¬ ¼ÑΓ«ñá íδ½ ºá¬½ετÑ¡ ó
- «»ÑαáΓ«α with ó Σ«α¼Ñ:
-
- with Self do begin ... end;
-
- Å« φΓ«⌐ »α¿τ¿¡Ñ ¡á»¿ßá¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó Σ«α¼á½∞¡δσ
- »áαá¼ÑΓα«ó ¼ÑΓ«ñá, Self ¿ ½εíδσ ñαπú¿σ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, óóÑñÑ¡¡δσ ó
- ¼ÑΓ«ñÑ, ñ«½ª¡« íδΓ∞ π¡¿¬á½∞¡δ¼.
- ìÑ߬«½∞¬« »α¿¼Ñα«ó αÑ὿ºáµ¿¿ ¼ÑΓ«ñ«ó:
-
- procedure Rect.Intersect(var R: Rect);
- begin
- if A.X < R.A.X then A.X := R.A.X;
- if A.Y < R.A.Y then A.Y := R.A.Y;
- if B.X > R.B.X then B.X := R.B.X;
- if B.Y > R.B.Y then B.Y := R.B.Y;
- if (A.X >= B.X) or (A.Y >= B.Y) then Init(0, 0, 0, 0);
- end;
-
- procedure Field.Display;
- begin
- GotoXY (X, Y);
- Write(Name^, ' ', GetStr);
- end;
-
- function NumField.PutStr(S: String): Boolean;
- var
- E: Integer;
- begin
- Val(S, Value, E);
- PutStr := (E = 0) and (Value >= Min) and (Value <= Max);
- end;
-
-
- è«¡ßΓαá¬Γ«αδ ¿ ñÑßΓαá¬Γ«αδ.
-
- è«¡ßΓαá¬Γ«αδ ¿ ñÑßΓαá¬Γ«αδ - φΓ« ߻ѵ¿á½¿º¿α«óá¡¡δÑ Σ«α¼δ
- ¼ÑΓ«ñ«ó. êß»«½∞ºπѼδÑ ó ß«τÑΓá¡¿¿ ß αáßΦ¿αÑ¡¡δ¼ ß¿¡Γá¬ß¿ß«¼ New ¿
- Dispose, ¬«¡ßΓαá¬Γ«αδ ¿ ñÑßΓαá¬Γ«αδ ¿¼ÑεΓ ó«º¼«ª¡«ßΓ∞ αáß»αÑñѽ∩Γ∞
- ¿ «ßó«í«ªñáΓ∞ ñ¿¡á¼¿τÑ߬¿Ñ «íΩѬΓδ. ä«»«½¡¿Γѽ∞¡«, ¬«¡ßΓαá¬Γ«αδ
- ¿¡¿µ¿á½¿º¿απεΓ «íΩѬΓδ, ß«ñÑαªáΘ¿Ñ ó¿αΓπá½∞¡δÑ ¼ÑΓ«ñδ. èᬠ¿ ñαπú¿Ñ
- ¼ÑΓ«ñδ, ¬«¡ßΓαáΓ«αδ ¿ ñÑßΓαá¬Γ«αδ ¼«úπΓ ¡áß½Ññ«óáΓ∞ß∩, ¿ «íΩѬΓ
- ¼«ªÑΓ ¿¼ÑΓ∞ ½εí«Ñ τ¿ß½« ¬«¡ßΓαá¬Γ«α«ó ¿ ñÑßΓαá¬Γ«α«ó.
- è«¡ßΓαá¬Γ«αδ ¿ß»«½∞ºπεΓß∩ ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ ó¡«ó∞ «íαẫóá¡¡δσ
- «íΩÑ¬Γ«ó. Äíδτ¡« ¿¡¿µ¿á½¿ºáµ¿∩ «ß¡«óá¡á ¡á »ÑαÑñáτÑ º¡áτÑ¡¿⌐ ó
- »áαá¼ÑΓαδ ¬«¡ßΓαá¬Γ«αá. è«¡ßΓαá¬Γ«αδ ¡Ñ ¼«úπΓ íδΓ∞ ó¿αΓπá½∞¡δ¼¿,
- »«Γ«¼π τΓ« ¼Ñσá¡¿º¼ ó¿αΓπá½∞¡δσ ¼ÑΓ«ñ«ó «ß¡«óá¡ ¡á Γ«¼, τΓ«
- ¬«¡ßΓαá¬Γ«α πªÑ ¿¡¿µ¿á½¿º¿α«óá½ «íΩѬΓ.
- Åα¿¼Ñαδ ¬«¡ßΓαá¬Γ«α«ó:
-
- constructor Field.Copy(var F: Field);
- begin
- Self := F;
- end;
-
- constructor Field.Init(FX, FY, FLen: Integer; FName: String);
- begin
- X := FX;
- Y := FY;
- Len := FLen;
- GetMem(Name, Length(FName) + 1);
- Name^ := FName;
- end;
-
- constructor StrField.Init(FX, FY, FLen: Integer; Fname :
- String);
- begin
- Field.Init(FX, FY, FLen, FName);
- GetMem(Value, Len);
- Value^ := ' ';
- end;
-
- ÅÑαó«Ñ ñÑ⌐ßΓó¿Ñ ¬«¡ßΓαá¬Γ«αá »«α«ªñÑ¡¡«ú« Γ¿»á Γᬫú«, ¬á¬
- StrField.Init ó »α¿¼ÑαÑ - »«τΓ¿ óßÑúñá óδº«ó ¬«¡ßΓαá¬Γ«αá »αÑñ¬á
- ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ π¡áß½Ññ«óá¡¡δσ »«½Ñ⌐ «íΩѬΓá. Å«ß½Ñ φΓ«ú«
- ¬«¡ßΓαá¬Γ«α ¿¡¿µ¿á½¿º¿απÑΓ »«½∩ «íΩѬΓá, ¬«Γ«αδÑ í뫨 óóÑñÑ¡δ ó
- »«α«ªñÑ¡¡«¼ Γ¿»Ñ.
-
- Åα¿¼Ñτá¡¿Ñ: äÑßΓαá¬Γ«αδ ¼«úπΓ íδΓ∞ ó¿αΓπá½∞¡δ¼¿. äÑßΓαá¬Γ«αδ
- αÑñ¬« ¿¼ÑεΓ »áαá¼ÑΓαδ.
-
- äÑßΓαá¬Γ«αδ óδ»«½¡∩εΓ ñÑ⌐ßΓó¿Ñ, »α«Γ¿ó«»«½«ª¡«Ñ ¬«¡ßΓαá¬Γ«αá¼
- ¿ ¿ß»«½∞ºπεΓß∩ ñ½∩ «τ¿ßΓ¬¿ «íΩÑ¬Γ«ó »«ß½Ñ ¿σ ¿ß»«½∞º«óá¡¿∩. Äτ¿ßΓ¬á
- «íδτ¡« ß«ßΓ«¿Γ ó «ßó«í«ªñÑ¡¿¿ óßÑσ »«½Ñ⌐ - π¬áºáΓѽÑ⌐ «íΩѬΓá.
- Åα¿¼Ñαδ ñÑßΓαá¬Γ«α«ó:
-
- destructor Field.Done;
- begin
- FreeMem(Name, Length(Name^) + 1);
- end;
-
- destructor StrField.Done;
- begin
- FreeMem(Value, Len);
- Field.Done;
- end;
-
- äÑßΓαá¬Γ«α »«α«ªñÑ¡¡«ú« Γ¿»á Γᬫ⌐ ¬á¬ StrField.Done ó
- »α¿¼ÑαÑ, «íδτ¡« ó ¡áτá½Ñ π¡¿τΓ«ªáεΓ »«½∩ π¬áºáΓѽÑ⌐, óóÑñÑ¡¡δÑ ó
- ¡Ñ¼, ¿ ºáΓѼ, ó ¬áτÑßΓóÑ »«ß½Ññ¡Ñú« ñÑ⌐ßΓó¿∩, óδºδóáεΓ
- ß««ΓóÑΓßΓóπεΘ¿⌐ ñÑßΓαá¬Γ«α ßó«Ñú« ¡Ñ»«ßαÑñßΓóÑ¡¡«ú« »αÑñ¬á ñ½∩
- «ßó«í«ªñÑ¡¿∩ óßÑσ π¡áß½Ññ«óá¡¡δσ »«½Ñ⌐ π¬áºáΓѽÑ⌐ «íΩѬΓá.
-
-
- Åáαá¼ÑΓαδ.
-
- ÄíΩ∩ó½Ñ¡¿Ñ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ß«ñÑαª¿Γ ß»¿ß«¬ Σ«α¼á½∞¡δσ
- »áαá¼ÑΓα«ó. èáªñδ⌐ »áαá¼ÑΓα, «íΩ∩ó½Ñ¡¡δ⌐ ó ß»¿ß¬Ñ Σ«α¼á½∞¡δσ
- »áαá¼ÑΓα«ó, ∩ó½∩ÑΓß∩ ½«¬á½∞¡δ¼ »« «Γ¡«ΦÑ¡¿ε ¬ «íΩ∩ó½Ñ¡¡«⌐ »α«µÑñπαÑ
- ¿½¿ Σπ¡¬µ¿¿, ¡á ¡Ñú« ¼«ª¡« ßñѽáΓ∞ ßß佬π ß »«¼«Θ∞ε ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
- ó í½«¬Ñ, ßó∩ºá¡¡«¼ ß »α«µÑñπα«⌐ ¿½¿ Σπ¡¬µ¿Ñ⌐.
-
-
- ┌─┐ ┌──────────┐ ┌─┐
- ß»¿ß«¬ Σ«α¼á½∞¡δσ ───÷│(├─────÷│«íΩ∩ó½Ñ¡¿Ñ├──┬──÷│)├──÷
- »áαá¼ÑΓα«ó └─┘ ° │»áαá¼ÑΓαá │ │ └─┘
- │ └──────────┘ │
- │ ┌─┐ │
- └──────┤;│≈───────┘
- └─┘
-
- ┌─────────────┐
- «íΩ∩ó½Ñ¡¿Ñ ──┬──────────÷│ß»¿ß«¬ ¿ñÑ¡- ├──┬──────────────────────÷
- »áαá¼ÑΓαá │ ° │Γ¿Σ¿¬áΓ«α«ó │ │ °
- │ │ └─────────────┘ │ │
- │ ┌───┐ │ │ │
- └─÷│var├─┘ │ ┌─┐ ┌───────┐ │
- └───┘ └─÷│:├──÷│Γ¿» »á-├─┘
- └─┘ │αá¼ÑΓαá│
- └───────┘
-
- ┌──────────┐
- Γ¿» »áαá¼ÑΓαá ───┬──÷│ ¿ñÑ¡Γ¿Σ¿-├───────÷
- │ │¬áΓ«α Γ¿»á│ °
- │ └──────────┘ │
- │ ┌────────┐ │
- ├──÷│ string ├─────┤
- │ └────────┘ │
- │ ┌──────┐ │
- └──÷│ file ├───────┘
- └──────┘
-
-
- æπΘÑßΓóπÑΓ Γα¿ ó¿ñá »áαá¼ÑΓα«ó: º¡áτÑ¡¿Ñ, »ÑαѼѡ¡á∩ ¿
- ¡ÑΓ¿»¿α«óá¡¡á∩ »ÑαѼѡ¡á∩. Ä¡¿ σáαá¬ΓÑਧπεΓß∩ ß½ÑñπεΘ¿¼:
-
- - úαπ»»á »áαá¼ÑΓα«ó íѺ »αÑñΦÑßΓóπεΘÑú« ¬½ετÑó«ú« ß½«óá var ¿
- ß« ß½ÑñπεΘ¿¼ ºá ¡Ñ⌐ Γ¿»«¼ ∩ó½∩ÑΓß∩ ß»¿ß¬«¼ »áαá¼ÑΓα«ó -
- º¡áτÑ¡¿⌐.
-
- - úαπ»»á »áαá¼ÑΓα«ó ß »αÑñΦÑßΓóπεΘ¿¼ ¬½ετÑóδ¼ ß½«ó«¼ var ¿
- ß½ÑñπεΘ¿¼ ºá ¡Ñ⌐ Γ¿»«¼ ∩ó½∩ÑΓß∩ ß»¿ß¬«¼ »áαá¼ÑΓα«ó -
- »ÑαѼѡ¡δσ.
-
- - úαπ»»á »áαá¼ÑΓα«ó ß »αÑñΦÑßΓóπεΘ¿¼ Ñ⌐ ¬½ετÑóδ¼ ß½«ó«¼ var ¿
- íѺ ß½ÑñπεΘÑú« ºá ¡Ñ⌐ Γ¿»á ∩ó½∩ÑΓß∩ ß»¿ß¬«¼ ¡ÑΓ¿»¿α«óá¡¡δσ
- »áαá¼ÑΓα«ó »ÑαѼѡ¡δσ.
-
-
- Åáαá¼ÑΓαδ - º¡áτÑ¡¿∩.
-
- ö«α¼á½∞¡δ⌐ »áαá¼ÑΓα-º¡áτÑ¡¿Ñ ñÑ⌐ßΓóπÑΓ ¬á¬ »ÑαѼѡ¡á∩,
- ½«¬á½∞¡á∩ »« «Γ¡«ΦÑ¡¿ε ¬ »α«µÑñπαÑ ¿½¿ Σπ¡¬µ¿¿ ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«,
- τΓ« «¡á »«½πτáÑΓ ßó«Ñ ¿ßσ«ñ¡«Ñ º¡áτÑ¡¿Ñ ¿º ß««ΓóÑΓßΓóπεΘÑú«
- Σá¬Γ¿τÑ߬«ú« »áαá¼ÑΓαá »α¿ á¬Γ¿ó¿ºáµ¿¿ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿.
- 꺼ѡѡ¿∩ Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá-º¡áτÑ¡¿∩ ¡Ñ ó½¿∩εΓ ¡á º¡áτÑ¡¿Ñ
- Σá¬Γ¿τÑ߬«ú« »áαá¼ÑΓαá.
- öá¬Γ¿τÑ߬¿⌐ »áαá¼ÑΓα, ß««ΓóÑΓßΓóπεΘ¿⌐ »áαá¼ÑΓαπ-º¡áτÑ¡¿ε ó
- «»ÑαáΓ«αÑ »α«µÑñπαδ ¿½¿ ó맮óÑ Σπ¡¬µ¿¿ ñ«½ªÑ¡ íδΓ∞ óδαáªÑ¡¿Ñ¼, á
- Ñú« º¡áτÑ¡¿Ñ ¡Ñ ¼«ªÑΓ íδΓ∞ Σá⌐½«ó«ú« Γ¿»á ¿½¿ ¬á¬«ú«-¡¿íπñ∞
- ßΓαπ¬Γπα¡«ú« Γ¿»á. öá¬Γ¿τÑ߬¿⌐ »áαá¼ÑΓα ñ«½ªÑ¡ íδΓ∞ ß«ó¼ÑßΓ¿¼ »«
- »α¿ßóá¿óá¡¿ε ß Γ¿»«¼ Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá-º¡áτÑ¡¿∩. àß½¿ Γ¿»«¼
- »áαá¼ÑΓαá ∩ó½∩ÑΓß∩ String, Γ« Σ«α¼á½∞¡δ⌐ »áαá¼ÑΓα íπñÑΓ ¿¼ÑΓ∞
- áΓα¿íπΓ αẼÑαá, αáó¡δ⌐ 255.
-
-
- Åáαá¼ÑΓα - »ÑαѼѡ¡á∩.
-
- àß½¿ º¡áτÑ¡¿Ñ ¡πª¡« »ÑαÑñáΓ∞ ¿º »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ó
- óδºδóáεΘπε »α«úαá¼¼π, Γ« ¿ß»«½∞ºπÑΓß∩ »áαá¼ÑΓα-»ÑαѼѡ¡á∩.
- æ««ΓóÑΓßΓóπεΘ¿⌐ Σá¬Γ¿τÑ߬¿⌐ »áαá¼ÑΓα ó «»ÑαáΓ«αÑ ó맮óá »α«µÑñπαδ
- ¿½¿ Σπ¡¬µ¿¿ ñ«½ªÑ¡ íδΓ∞ ßß佬«⌐ ¡á »ÑαѼѡ¡πε. ö«α¼á½∞¡δ⌐
- »áαá¼ÑΓα-»ÑαѼѡ¡á∩ »αÑñßΓáó½∩ÑΓ Σá¬Γ¿τÑ߬πε »ÑαѼѡ¡πε ó« óαѼ∩
- á¬Γ¿ó¿ºáµ¿¿ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, »«φΓ«¼π óßÑ ¿º¼Ñ¡Ñ¡¿∩ º¡áτÑ¡¿∩
- Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá «ΓαáªáεΓß∩ ¡á Σá¬Γ¿τÑ߬«¼ »áαá¼ÑΓαÑ.
- é¡πΓα¿ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ½εíá∩ ßßδ½¬á ¡á Σ«α¼á½∞¡δ⌐
- »áαá¼ÑΓα-»ÑαѼѡ¡πε ñáÑΓ ñ«ßΓπ» ¬ ßἫ¼π Σá¬Γ¿τÑ߬«¼π »áαá¼ÑΓαπ.
- Æ¿» Σá¬Γ¿τÑ߬«ú« »áαá¼ÑΓαá ñ«½ªÑ¡ íδΓ∞ Γ«ªñÑßΓóѡѡ Γ¿»π
- Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá-»ÑαѼѡ¡«⌐ (¼«ª¡« «í«⌐Γ¿ φΓ« «úαá¡¿τÑ¡¿Ñ
- τÑαѺ ¡ÑΓ¿»¿α«óá¡¡δÑ »áαá¼ÑΓαδ-»ÑαѼѡ¡δÑ). àß½¿ Γ¿»«¼ Σ«α¼á½∞¡«ú«
- »áαá¼ÑΓαá ∩ó½∩ÑΓß∩ String, Γ« ºáñáÑΓß∩ áΓα¿íπΓ ñ½¿¡δ, αáó¡δ⌐ 255, ¿
- Σá¬Γ¿τÑ߬¿⌐ »áαá¼ÑΓα-»ÑαѼѡ¡á∩ ñ«½ªÑ¡ ¿¼ÑΓ∞ ßΓ᫬«óδ⌐ Γ¿» ß
- áΓα¿íπΓ«¼ ñ½¿¡δ, αáó¡δ¼ 255.
- öá⌐½«óδÑ Γ¿»δ ¼«úπΓ »ÑαÑñáóáΓ∞ß∩ Γ«½∞¬« ¬á¬
- »áαá¼ÑΓαδ-»ÑαѼѡ¡δÑ.
- àß½¿ ßßδ½¬á ¡á Σá¬Γ¿τÑ߬¿⌐ »áαá¼ÑΓα-»ÑαѼѡ¡πε ßó∩ºá¡á ß
- ¿¡ñѬ߿α«ó᡿Ѽ ¼áßß¿óá ¿½¿ ¡áσ«ªñÑ¡¿Ñ¼ «íΩѬΓá »« Ñú« π¬áºáΓѽε,
- Γ« φΓ¿ ñÑ⌐ßΓó¿∩ óδ»«½¡∩εΓß∩ ñ« á¬Γ¿ó¿ºáµ¿¿ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿.
-
-
- ÄíΩѬΓδ.
-
- Åαá󿽫 ß«ó¼ÑßΓ¿¼«ßΓ¿ »« »α¿ßóá¿óá¡¿ε «íΩÑ¬Γ¡δσ Γ¿»«ó ΓᬠªÑ
- »α¿¼Ñ¡¿¼« ¬ »áαá¼ÑΓαá¼-»ÑαѼѡ¡δ¼ «íΩÑ¬Γ¡δσ Γ¿»«ó: ñ½∩ Σ«α¼á½∞¡«ú«
- »áαá¼ÑΓαá Γ¿»á Æ1 ñÑ⌐ßΓó¿Γѽ∞¡δ⌐ »áαá¼ÑΓα ¼«ªÑΓ íδΓ∞ Γ¿»á Æ2, Ñß½¿
- Æ2 ½Ñª¿Γ ó «í½áßΓ¿ «»αÑñѽѡ¿∩ Æ1. ìá»α¿¼Ñα: ¼ÑΓ«ñπ FieldCopy ¼«ªÑΓ
- íδΓ∞ »ÑαÑñá¡ φ¬ºÑ¼»½∩α «Γ Field, StrField, NumField, ZipField ¿½¿
- ½εí«⌐ ñαπú«⌐ φ¬ºÑ¼»½∩α, »«α«ªñÑ¡¡δ⌐ «Γ Field.
-
-
- ìÑΓ¿»¿α«óá¡¡δÑ »áαá¼ÑΓαδ-»ÑαѼѡ¡δÑ.
-
- è«úñá Σ«α¼á½∞¡δ⌐ »áαá¼ÑΓα ∩ó½∩ÑΓß∩ ¡ÑΓ¿»¿α«óá¡¡δ¼
- »áαá¼ÑΓα«¼-»ÑαѼѡ¡«⌐, ß««ΓóÑΓßΓóπεΘ¿⌐ Σá¬Γ¿τÑ߬¿⌐ »áαá¼ÑΓα ¼«ªÑΓ
- íδΓ∞ ½εí«⌐ ßß佬«⌐ ¡á »ÑαѼѡ¡πε ¡Ñºáó¿ß¿¼« «Γ ÑÑ Γ¿»á.
- é¡πΓα¿ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ¡ÑΓ¿»¿α«óá¡¡δ⌐
- »áαá¼ÑΓα-»ÑαѼѡ¡á∩ ¡Ñ ¿¼ÑÑΓ Γ¿»á, Γ« ÑßΓ∞ «¡ ¡Ñ ß«ó¼ÑßΓ¿¼ ß
- »ÑαѼѡ¡δ¼¿ óßÑσ ñαπú¿σ Γ¿»«ó, Ñß½¿ Ѽπ ¡Ñ »α¿ßó«Ñ¡ «»αÑñѽѡ¡δ⌐
- Γ¿» ß »«¼«Θ∞ε »α¿óÑñÑ¡¿∩ Γ¿»á »ÑαѼѡ¡«⌐.
- Åα¿óÑñѼ »α¿¼Ñα ¡ÑΓ¿»¿α«óá¡¡δσ »áαá¼ÑΓα«ó-»ÑαѼѡ¡δσ:
-
- function Equal (var Source, Dest; Size: Word): Boolean;
- type
- Bytes = array [0 .. MaxInt] of Byte;
- var
- N: Integer;
- begin
- N := 0;
- while (N < Size) and (Bytes(Dest)[N] <>
- Bytes(Source)[N]) do Inc(N);
- Equal := N * Size;
- end;
-
- ¥Γπ Σπ¡¬µ¿ε ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ ßαáó¡Ñ¡¿∩ ½εíδσ ñóπσ
- »ÑαѼѡ¡δσ ½εí«ú« αẼÑαá. ìá»α¿¼Ñα, ñá¡« «íΩ∩ó½Ñ¡¿Ñ:
-
- type
- Vector = array[1 .. 10] of Integer;
- Point = record
- X, Y: Integer;
- end;
- var
- Vec1, Vec2: Vector;
- N: Integer;
- P: Point;
-
- ºáΓѼ ó맮óδ Σπ¡¬µ¿¿:
-
- Equal(Vec1, Vec2, SizeOf(Vector))
- Equal(Vec1, Vec2, SizeOf(Integer) * N)
- Equal(Vec[1], Vec1[6], SizeOf(integer) * 5)
- Equal(Vec1[1], P, Y)
-
- æαáó¡¿óáÑΓß∩ Vec1 c Vec2, ßαáó¡¿óáεΓß∩ »ÑαóδÑ N ¬«¼»«¡Ñ¡Γ Vec1
- ß »Ñαó묨 N ¬«¼»«¡Ñ¡ΓἿ Vec2, ßαáó¡¿óáεΓß∩ »ÑαóδÑ »∩Γ∞ ¬«¼»«¡Ñ¡Γ
- Vec1 ß »«ß½Ññ¡¿¼¿ »∩Γ∞ε ¬«¼»«¡Ñ¡ΓἿ Vec1, ßαáó¡¿óáεΓß∩ Vec1[1] ß
- P.X ¿ Vec1[2] ß P.Y.
-
-
- Åα«µÑñπα¡δÑ Γ¿»δ.
-
- é ¬áτÑßΓóÑ αáßΦ¿αÑ¡¿∩ ßΓá¡ñáαΓ¡«ú« Åá߬á½∩, Turbo Pascal
- »«ºó«½∩ÑΓ αáßß¼áΓα¿óáΓ∞ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ¬á¬ «íΩѬΓδ, ¬«Γ«αδÑ
- ¼«ª¡« »α¿ßó«¿Γ∞ »ÑαѼѡ¡δ¼ ¿ ¬«Γ«αδÑ ¼«úπΓ óδßΓπ»áΓ∞ ó ¬áτÑßΓóÑ
- »áαá¼ÑΓα«ó; »α«µÑñπα¡δÑ Γ¿»δ ñѽáεΓ φΓ« 󫺼«ª¡δ¼ (»α«µÑñπα¡δÑ Γ¿»δ
- «»αÑñѽѡδ ó ú½áóÑ 3 "Æ¿»δ").
-
-
- Åα«µÑñπα¡δÑ »ÑαѼѡ¡δÑ.
-
- èá¬ Γ«½∞¬« »α«µÑñπα¡δ⌐ Γ¿» «»αÑñѽѡ, ¼«ª¡« «íΩ∩ó½∩Γ∞
- »ÑαѼѡ¡δÑ φΓ«ú« Γ¿»á. Æá¬¿Ñ »ÑαѼѡ¡δÑ ¡áºδóáεΓß∩
- »α«µÑñπα¡δ¼¿ »ÑαѼѡ¡δ¼¿. ìá»α¿¼Ñα, ¿ß»«½∞ºπ∩ ñá¡¡«Ñ óδΦÑ
- «íΩ∩ó½Ñ¡¿Ñ Γ¿»á, ¼«ª¡« «»¿ßáΓ∞ ß½ÑñπεΘ¿Ñ »ÑαѼѡ¡δÑ:
-
- var
- P: SwapProc;
- F: MathFunc;
-
- Å«ñ«í¡« Γ«¼π, ¬á¬ µÑ½«τ¿ß½Ñ¡¡«⌐ »ÑαѼѡ¡«⌐ ¼«ª¡« »α¿ßó«¿Γ∞
- µÑ½«τ¿ß½Ñ¡¡«Ñ º¡áτÑ¡¿Ñ, »α«µÑñπα¡«⌐ »ÑαѼѡ¡«⌐ ¼«ª¡« »α¿ßó«¿Γ∞
- »α«µÑñπα¡«Ñ º¡áτÑ¡¿Ñ.
- Æá¬«Ñ º¡áτÑ¡¿Ñ ¼«ªÑΓ, ¬«¡Ñτ¡«, íδΓ∞ ¿ ñαπú«⌐
- »α«µÑñπα¡«⌐ »ÑαѼѡ¡«⌐, ¡« ¼«ªÑΓ Γá¬ªÑ ¿ íδΓ∞ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼
- »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿. é φΓ«⌐ ß¿Γπᵿ¿ «íΩ∩ó½Ñ¡¿Ñ »α«µÑñπαδ ¿½¿
- Σπ¡¬µ¿¿ ¼«ª¡« αáßß¼áΓα¿óáΓ∞ ¬á¬ «ß«íδ⌐ ó¿ñ «íΩ∩ó½Ñ¡¿∩ ¬«¡ßΓá¡Γδ,
- º¡áτÑ¡¿Ñ¼ ¬«Γ«α«⌐ ∩ó½∩ÑΓß∩ »α«µÑñπαá ¿½¿ Σπ¡¬µ¿∩. ìá»α¿¼Ñα, ñá¡δ
- ß½ÑñπεΘ¿Ñ «íΩ∩ó½Ñ¡¿∩ »α«µÑñπα ¿ Σπ¡¬µ¿⌐:
-
- {$F+}
- procedure Swap(var A, B: Integer);
- var
- Temp: Integer;
- begin
- Temp := A;
- A := B;
- B := Temp;
- end;
-
- function Tan(Angle: Real): Real;
- begin
- Tan := sin(Angle)/cos(Angle);
- end.
- {$F-}
-
- ÅÑαѼѡ¡δ¼ P ¿ F, «íΩ∩ó½Ñ¡¡δ¼ »αѪñÑ, ¼«ª¡« »α¿ßó«¿Γ∞
- º¡áτÑ¡¿∩:
-
- P := Swap; T := Tan;
-
- æ«ú½áß¡« φΓ¿¼ »α¿ßóá¿óá¡¿∩¼, ó맮ó P(I, J) φ¬ó¿óá½Ñ¡ΓÑ¡ ó맮óπ
- Swap(I, J), á ó맮ó F(X) φ¬ó¿óá½Ñ¡ΓÑ¡ ó맮óπ Tan(X).
- èᬠ¿ ó« óßÑσ ñαπú¿σ «»Ñαᵿ∩σ »α¿ßóá¿óá¡¿∩, »ÑαѼѡ¡á∩ ó
- ½Ñó«⌐ τáßΓ¿ ¿ »ÑαѼѡ¡á∩ ó »αáó«⌐ τáßΓ¿ «»ÑαáΓ«αá »α¿ßóá¿óá¡¿∩
- ñ«½ª¡δ íδΓ∞ ß«ó¼ÑßΓ¿¼δ¼¿ »« »α¿ßóá¿óá¡¿ε. ä½∩ Γ«ú« τΓ«íδ ßτ¿ΓáΓ∞ß∩
- ß«ó¼ÑßΓ¿¼δ¼¿ »« »α¿ßóá¿óá¡¿ε, »α«µÑñπα¡δÑ Γ¿»δ ñ«½ª¡δ ¿¼ÑΓ∞
- «ñ¿¡á¬«ó«Ñ τ¿ß½« »áαá¼ÑΓα«ó, »áαá¼ÑΓαδ ó ß««ΓóÑΓßΓóπεΘ¿σ »«º¿µ¿∩σ
- ñ«½ª¡δ íδΓ∞ Γ«ªñÑßΓóÑ¡¡δσ Γ¿»«ó; ¡á¬«¡Ñµ, Γ¿»δ αѺπ½∞ΓáΓ«ó Σπ¡¬µ¿⌐
- ñ«½ª¡δ íδΓ∞ ¿ñÑ¡Γ¿τ¡δ.
- èᬠ«Γ¼ÑτÑ¡« óδΦÑ, ¡áºóá¡¿∩ »áαá¼ÑΓα«ó ¡Ñ ¿¼ÑεΓ º¡áτÑ¡¿∩,
- ¬«úñá »α«óÑα∩ÑΓß∩ ß«ó¼ÑßΓ¿¼«ßΓ∞ Γ¿»á »α«µÑñπαδ.
- ä«»«½¡¿Γѽ∞¡« ¬ ß«ó¼ÑßΓ¿¼«ßΓ¿ Γ¿»«ó, »α«µÑñπαá ¿½¿ Σπ¡¬µ¿∩
- ñ«½ª¡δ πñ«ó½ÑΓó«α∩Γ∞ ß½ÑñπεΘ¿¼ ΓαÑí«óá¡¿∩¼, Ñß½¿ «¡¿ »α¿ßóá¿óáεΓß∩
- »α«µÑñπα¡«⌐ »ÑαѼѡ¡«⌐.
-
- - Ä¡á ñ«½ª¡á íδΓ∞ «íΩ∩ó½Ñ¡á ß ñ¿αÑ¬Γ¿ó«⌐ far ¿ «Γ¬«¼»¿½¿α«óá¡á
- ó ß«ßΓ«∩¡¿¿ {$F+}
- - Ä¡á ¡Ñ ñ«½ª¡á íδΓ∞
- - ßΓá¡ñáαΓ¡«⌐ »α«µÑñπα«⌐ ¿½¿ Σπ¬µ¿Ñ⌐
- - 󽫪ѡ¡«⌐ »α«µÑñπα«⌐ ¿½¿ Σπ¡¬µ¿Ñ⌐
- - inline »α«µÑñπα«⌐ ¿½¿ Σπ¡¬µ¿Ñ⌐
- - interrupt »α«µÑñπα«⌐ ¿½¿ Σπ¡¬µ¿Ñ⌐
-
- æΓá¡ñáαΓ¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿, Γá¬¿Ñ ¬á¬ WriteLn, ReadLn,
- Chr, ¿ Ord, «íΩ∩ó½Ñ¡δ ó ¼«ñπ½Ñ System. ä½∩ Γ«ú« τΓ«íδ ¿ß»«½∞º«óáΓ∞
- ßΓá¡ñáαΓ¡πε »α«µÑñπαπ ¿½¿ Σπ¡¬µ¿ε ß »α«µÑñπα¡«⌐ »ÑαѼѡ¡«⌐, éδ
- ñ«½ª¡δ «¬απª¿Γ∞ ÑÑ "«í«½«τ¬«⌐". ìá»α¿¼Ñα, ºáñá¡ Γ¿» »α«µÑñπαδ
-
- type
- IntProc = procedure(N: Integer);
-
- ñá½ÑÑ »α¿óÑñÑ¡á ß«ó¼ÑßΓ¿¼á∩ »« »α¿ßóá¿óá¡¿ε »α«µÑñπαá ñ½∩
- óδó«ñá µÑ½«ú« τ¿ß½á:
-
- procedure WriteInt(Number: Integer); far;
- begin
- write(Number);
- end;
-
- 齫ªÑ¡¡δÑ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ¡Ñ½∞º∩ ¿ß»«½∞º«óáΓ∞ ß
- »α«µÑñπα¡δ¼¿ »ÑαѼѡ¡δ¼¿. Åα«µÑñπαá ¿½¿ Σπ¡¬µ¿∩ ¡áºδóáÑΓß∩
- 󽫪ѡ¡«⌐, Ñß½¿ «¡á «íΩ∩ó½Ñ¡á ó¡πΓα¿ ñαπú«⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿.
- é ß½ÑñπεΘѼ »α¿¼ÑαÑ Inner 󽫪ѡá ó Outer, ß½Ññ«óáΓѽ∞¡« Inner
- ¡Ñ½∞º∩ »α¿ßó«¿Γ∞ »α«µÑñπα¡«⌐ »ÑαѼѡ¡«⌐.
-
- program Nested;
- procedure Outer;
- procedure Inner;
- begin
- WriteLn('Inner is nested');
- end;
- begin
- Inner;
- end;
- begin
- Outer;
- end.
-
- êß»«½∞º«óá¡¿Ñ »α«µÑñπα¡«ú« Γ¿»á ¡Ñ «úαá¡¿τ¿óáÑΓß∩ »α«ßΓ묨
- »α«µÑñπα¡δ¼¿ »ÑαѼѡ¡δ¼¿. Æá¬ ªÑ ¬á¬ ¿ ½εí«⌐ ñαπú«⌐ Γ¿»,
- »α«µÑñπα¡δ⌐ Γ¿» ¼«ªÑΓ »α¿ßπΓßΓó«óáΓ∞ ó «íΩ∩ó½Ñ¡¿¿ ßΓαπ¬Γπα¡«ú«
- Γ¿»á; »α¿¼Ñα«¼ ñ½∩ φΓ«ú« ¼«ªÑΓ ß½πª¿Γ∞ ß½ÑñπεΘÑÑ «íΩ∩ó½Ñ¡¿Ñ :
-
- type
- GoToProc = procedure(X, Y: Integer);
- ProcList = array[1..10] of GoToProc;
- WindowPtr = ^WindowRec;
- Window = record
- Next: WindowPtr;
- Header: String[31];
- Top, Left, Bottom, Right: integer;
- SetCursor: GoToProc;
- end;
- var
- P : ProcList;
- W : windowPtr;
-
- æ«ú½áß¡« φΓ«¼π «íΩ∩ó½Ñ¡¿ε, ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ∩ó½∩εΓß∩
- ñÑ⌐ßΓó¿Γѽ∞¡δ¼¿ ó맮óἿ »α«µÑñπαδ:
-
- P[3] (1,1);
- W^.SetCursor(10,10);
-
- è«úñá »α«µÑñπα¡«Ñ º¡áτÑ¡¿Ñ »α¿ßóá¿óáÑΓß∩ »α«µÑñπα¡«⌐
- »ÑαѼѡ¡«⌐, ¬«Γ«αá∩ Σ¿º¿τÑ߬¿ »αÑñßΓáó½∩ÑΓ áñαÑß »α«µÑñπαδ,
- Γ« «¡« ß«σαá¡∩ÑΓß∩ ó »ÑαѼѡ¡«⌐. öá¬Γ¿τÑ߬¿, »α«µÑñπα¡á∩ »ÑαѼѡ¡á∩
- ñÑ⌐ßΓóπÑΓ ¬á¬ »ÑαѼѡ¡á∩-π¬áºáΓѽ∞, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« ó¼ÑßΓ«
- π¬áºá¡¿∩ ¡á ñá¡¡δÑ, «¡á π¬áºδóáÑΓ ¡á »α«µÑñπαπ ¿½¿ Σπ¡¬µ¿ε. èᬠ¿
- π¬áºáΓѽ∞, »α«µÑñπα¡á∩ »ÑαѼѡ¡á∩ ºá¡¿¼áÑΓ 4 íá⌐Γá (ñóá ß½«óá),
- ß«ñÑαªáΘ¿Ñ áñαÑß ó »á¼∩Γ¿. ÅÑαó«Ñ ß½«ó« σαá¡¿Γ ß¼ÑΘÑ¡¿Ñ áñαÑßá,
- óΓ«α«Ñ ßÑú¼Ñ¡Γ¡πε τáßΓ∞.
-
-
- Åáαá¼ÑΓαδ »α«µÑñπα¡«ú« Γ¿»á.
-
- Æá¬ ¬á¬ »α«µÑñπα¡δÑ Γ¿»δ ñ«»πßΓ¿¼δ ó ½εí«¼ ¬«¡ΓѬßΓÑ, Γ« ¼«ª¡«
- «íΩ∩ó¿Γ∞ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, »áαá¼ÑΓαἿ ¬«Γ«αδσ ∩ó½∩εΓß∩
- »α«µÑñπαδ ½¿ Σπ¡¬µ¿¿.
- æ½ÑñπεΘá∩ »α«úαá¼¼á ñѼ«¡ßΓα¿απÑΓ ¿ß»«½∞º«óá¡¿Ñ »áαá¼ÑΓαá
- »α«µÑñπα¡«ú« Γ¿»á ñ½∩ óδó«ñá ΓαÑσ Γáí½¿µ αẽ¿τ¡δσ áα¿Σ¼ÑΓ¿τÑ߬¿σ
- Σπ¡¬µ¿⌐:
-
- program Tables;
- type
- Func = function(X, Y: Integer): Integer;
- {$F+}
- function Add(X, Y: Integer): Integer;
- begin
- Add := X + Y;
- end;
- Function Multiply(X, Y: Integer): Integer;
- begin
- Multiply := X * Y;
- end;
- function Funny(X, Y: Integer): Integer;
- begin
- Funny := (X + Y) * (X - Y);
- end;
- {$F-}
- procedure PrintTable(W, H: Integer; Operation: Func);
- var
- X, Y: Integer;
- begin
- for Y := 1 to H do
- begin
- for X := 1 to H do Write(Operation(X,Y ) : 5);
- Writeln;
- end;
- Writeln;
- end;
- begin
- PrintTable(10, 10, Add);
- PrintTable(10, 10, Multiply);
- PrintTable(10, 10, Funny);
- end.
-
- Åα¿ óδ»«½¡Ñ¡¿¿¿ »α«úαá¼¼á Tables óδó«ñ¿Γ Γα¿ Γáí½¿µδ. éΓ«αá∩
- Γáí½¿µá íπñÑΓ óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼ :
-
- 1 2 3 4 5 6 7 8 9 10
- 2 4 6 8 10 12 14 16 18 20
- 3 6 9 12 15 18 21 24 27 30
- 4 8 12 16 20 24 28 32 36 40
- 5 10 15 20 25 30 35 40 45 50
- 6 12 18 24 30 36 42 48 54 60
- 7 14 21 28 35 42 49 56 63 70
- 8 16 24 32 40 48 56 64 72 80
- 9 18 27 36 45 54 63 72 81 90
- 10 20 30 40 50 60 70 80 90 100
-
- Åáαá¼ÑΓαδ »α«µÑñπα¡«ú« Γ¿»á «ß«íÑ¡¡« »«½Ñº¡δ ó ß¿Γπᵿ∩σ,
- ¬«úñá ¡áñ ¼¡«ªÑßΓó«¼ »α«µÑñπα ¿½¿ Σπ¡¬µ¿⌐ óδ»«½¡∩εΓß∩ «íΘ¿Ñ
- ñÑ⌐ßΓó¿∩. é ¡áΦѼ ß½πτáÑ »α«µÑñπαá PrintTable »αÑñßΓáó½∩ÑΓ «íΘÑÑ
- ñÑ⌐ßΓó¿Ñ, óδ»«½¡∩Ѽ«Ñ ¡áñ Σπ¡¬µ¿∩¼¿ Add, Multiply ¿ Funny.
- àß½¿ »α«µÑñπαá ¿½¿ Σπ¡¬µ¿∩ »ÑαÑñáÑΓß∩ ¬á¬ »áαá¼ÑΓα, «¡á ñ«½ª¡á
- »«ñτ¿¡∩Γ∞ß∩ ΓѼ ªÑ »αáó¿½á¼ ß«ó¼ÑßΓ¿¼«ßΓ¿ Γ¿»«ó, τΓ« ¿ ó
- »α¿ßóá¿óá¡¿¿. æ½Ññ«óáΓѽ∞¡«, Γá¬¿Ñ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ñ«½ª¡δ
- íδΓ∞ «íΩ∩ó½Ñ¡δ ß ñ¿αÑ¬Γ¿ó«⌐ far, ¡Ñ ¼«úπΓ íδΓ∞ óßΓα«Ñ¡¡δ¼¿
- »α«úαἼἿ, ¡Ñ ¼«úπΓ íδΓ∞ 󽫪ѡ¡δ¼¿, «¡¿ ¡Ñ ¼«úπΓ íδΓ∞ «íΩ∩ó½Ñ¡δ
- ß inline ¿½¿ interrupt áΓα¿íπΓἿ.
-