home *** CD-ROM | disk | FTP | other *** search
/ For Beginners & Professional Hackers / cd.iso / docum / pascal.doc / pas_1-7.doc < prev    next >
Encoding:
Text File  |  1989-11-26  |  106.1 KB  |  2,684 lines

  1. ------------------------------------------------------------
  2.  Åα«µÑñπαá GetTime                               î«ñπ½∞ Dos
  3. ------------------------------------------------------------
  4.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ πßΓá¡«ó½Ñ¡¡«Ñ ó «»Ñαᵿ«¡¡«⌐ ß¿ßΓÑ-
  5. ¼Ñ ΓѬπΘÑÑ óαѼ∩.
  6.      Ä»¿ßá¡¿Ñ: GetTime(var τáß, ¼¿¡πΓá, ßѬπ¡ñá,  ß«Γ_ßѬ  :
  7. word)
  8.      Åα¿¼Ñτá¡¿∩: é«ºóαáΘáѼδÑ »áαá¼ÑΓαδ »α¿¡¿¼áεΓ  ß½ÑñπεΘ¿Ñ
  9. º¡áτÑ¡¿∩: "τáß" - «Γ 0 ñ« 23, "¼¿¡πΓá" - «Γ 0 ñ« 59, "ßѬπ¡-
  10. ñá" - «Γ 0 ñ« 59 ¿ "ß«Γ_ßѬ" (ß«Γá∩ ñ«½∩ ßѬπ¡ñδ) - «Γ 0  ñ«
  11. 99.
  12.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ SetTime, GetDate, SetDate.
  13.  
  14. ------------------------------------------------------------
  15.  Åα«µÑñπαá GetVerify                             î«ñπ½∞ Dos
  16. ------------------------------------------------------------
  17.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ß«ßΓ«∩¡¿Ñ Σ½áúá »α«óÑન äÄæ.
  18.      Ä»¿ßá¡¿Ñ: GetVerify(var Σ½áú_»α«óÑન : boolean)
  19.      Åα¿¼Ñτá¡¿∩: äá¡¡á∩ »α«µÑñπαá ó«ºóαáΘáÑΓ ß«ßΓ«∩¡¿Ñ Σ½áúá
  20. »α«óÑન  äÄæ. Åα¿ ßíα«ΦÑ¡¡«¼ Σ½áúÑ (False) »α«óÑα¬á »α¿ ºá-
  21. »¿ß¿ ¡á ñ¿ß¬ ¡Ñ óδ»«½¡∩ÑΓß∩. Åα¿ πßΓá¡«ó½Ñ¡¡«¼ Σ½áúÑ  (True)
  22. ñ½∩  «íÑß»ÑτÑ¡¿∩  »αáó¿½∞¡«ßΓ¿ ºá»¿ß¿ óßÑ «»Ñαᵿ¿ ºá»¿ß¿ ¡á
  23. ñ¿ß¬ »α«óÑα∩εΓß∩.
  24.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ SetVerify.
  25.  
  26. ------------------------------------------------------------
  27.  Åα«µÑñπαá GetViewSettings                     î«ñπ½∞ Graph
  28. ------------------------------------------------------------
  29.      öπ¡¬µ¿∩: Å«ºó«½∩ÑΓ »«½∞º«óáΓѽε óδñáΓ∞ ºá»α«ß « ΓѬπΘÑ⌐
  30. «í½áßΓ¿ »α«ß¼«Γαá ¡á φ¬αá¡Ñ ¿ »áαá¼ÑΓαáσ "óδαѺᡡ«ú«" ¿º«í-
  31. αáªÑ¡¿∩.
  32.      Ä»¿ßá¡¿Ñ: GetViewSettings(var ViewPort : ViewPortType)
  33.      Åα¿¼Ñτá¡¿∩: äá¡¡á∩ »α«µÑñπαá ó«ºóαáΘáÑΓ »ÑαѼѡ¡πε Γ¿»á
  34. ViewPortType. ¥Γ«Γ Γ¿» »αÑñóáα¿Γѽ∞¡« «»¿ßá¡ ß½ÑñπεΘ¿¼ «íαá-
  35. º«¼:
  36.  
  37.   type
  38.     ViewPortType = record
  39.                      x1, y1, x2, y2: integer;
  40.                      Clip : boolean;
  41.                    end;
  42.      Ç¡á½«ú¿τ¡á∩ »α«µÑñπαá ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  43.      Æ«τ¬¿ (x1,y1) ¿ (x2,y2) »αÑñßΓáó½∩εΓ ß«í«⌐ αẼÑαδ  á¬-
  44. Γ¿ó¡«⌐  «í½áßΓ¿  »α«ß¼«Γαá. Åáαá¼ÑΓα Clip »αÑñßΓáó½∩ÑΓ ß«í«⌐
  45. »ÑαѼѡ¡πε íπ½Ñó߬«ú« Γ¿»á ¿ π¬áºδóáÑΓ ¡á ¡á½¿τ¿Ñ  "óδαѺá¡-
  46. ¡«ú«" («ΓßÑτÑ¡¡«ú« ºá ºáñá¡¡δ¼¿ úαá¡¿µá¼¿) ¿º«íαáªÑ¡¿∩.
  47.      Ç¡á½«ú¿τ¡á∩ »α«µÑñπαá ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  48.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  49.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ SetViewPort.
  50.      Åα¿¼Ñα:
  51.  
  52.   uses
  53.     Graph;
  54.   var
  55.     Gd, Gm : integer;
  56.    ViewPortType = ViewPortType;
  57.   begin
  58.     Gd := Detect;  { »ÑαÑóÑßΓ¿ ó úαáΣ¿τÑ߬¿⌐ αѪ¿¼ }
  59.     InitGraph(Gd, Gm, '');
  60.     if GraphResult < 0 then
  61.        Halt(1);
  62.     GetViewSettings(ViePort);
  63.     with ViewPort do
  64.     begin
  65.       Rectangle(0, 0, x2 - x1, y2 - y1);
  66.       if Clip then
  67.          OutText('ÄΓßÑτÑ¡¿Ñ ¿º«íαáªÑ¡¿∩ ¡Ñ á¬Γ¿ó¡«');
  68.       else
  69.       OutText('æÑú«ñ¡∩ «ΓßÑτÑ¡¿Ñ ¿º«íαáªÑ¡¿∩ ¡Ñ ñÑ⌐ßΓóπÑΓ');
  70.      end;
  71.      Readln;
  72.      CloseGraph;
  73.   end.
  74.  
  75. ------------------------------------------------------------
  76.  öπ¡¬µ¿∩ GetX                                î«ñπ½∞ Graph
  77. ------------------------------------------------------------
  78.      öπ¡¬µ¿∩:  é«ºóαáΘáÑΓ  ò-¬««αñ¿¡áΓπ  ΓѬπΘÑú«  π¬áºáΓѽ∩
  79. (æÉ).
  80.      Ä»¿ßá¡¿Ñ: GetX
  81.      Æ¿» αѺπ½∞ΓáΓá: ûѽδ⌐ (integer).
  82.      Åα¿¼Ñτá¡¿∩: Åα«µÑñπαá Getò ºáó¿ß¿Γ «Γ «í½áßΓ¿  »α«ß¼«Γ-
  83. αá. Æá¬¿¼ «íαẫ¼, ÑÑ º¡áτÑ¡¿Ñ óßÑúñá αáó¡« áíß«½εΓ¡«⌐ ò-¬«-
  84. «αñ¿¡áΓÑ æÉ, ¼¿¡πß ViewPort.σ1. é ß½ÑñπεΘѼ »α¿¼ÑαÑ:
  85.  
  86.  1 SetViewPort(0,0,GetMaxX,GetMaxY,True);
  87.  2 MoveTo(5,5);
  88.  3 SetViewPort(10,10,100,100,True);
  89.  4 MoveTo(5,5);
  90.  
  91.      - ó ßΓα«¬Ñ 1 æÉ »ÑαѼÑΘáÑΓß∩ ó Γ«τ¬π ß áíß«½εΓ¡δ¼¿  ¬«-
  92. «αñ¿¡áΓἿ (0,0), ¿ »α«µÑñπαá Getò ΓᬪѠó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ
  93. 0;
  94.      - ó ßΓα«¬Ñ 2 æÉ »ÑαѼÑΘáÑΓß∩ ó Γ«τ¬π ß áíß«½εΓ¡δ¼¿  ¬«-
  95. «αñ¿¡áΓἿ (5,5), ¿ »α«µÑñπαá Getò ΓᬪѠó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ
  96. 5;
  97.      - ó ßΓα«¬Ñ 3 æÉ »ÑαѼÑΘáÑΓß∩ ó Γ«τ¬π ß áíß«½εΓ¡δ¼¿  ¬«-
  98. «αñ¿¡áΓἿ (10,10), ¡« »α«µÑñπαá Getò ó«ºóαáΓ¿Γ º¡áτÑ¡¿Ñ 0;
  99.      - ó ßΓα«¬Ñ 4 æÉ »ÑαѼÑΘáÑΓß∩ ó Γ«τ¬π ß áíß«½εΓ¡δ¼¿  ¬«-
  100. «αñ¿¡áΓἿ (15,15), ¡« »α«µÑñπαá Getò ó«ºóαáΓ¿Γ º¡áτÑ¡¿Ñ 5.
  101.      Ç¡á½«ú¿τ¡á∩ Σπ¡¬µ¿∩ ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  102.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  103.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ GetViewSettings, GetY,  In-
  104. itGraph, MoveTo, SetViewPort.
  105.      Åα¿¼Ñα:
  106.  
  107.   uses Graph;
  108.   var
  109.     GraphDriver, GraphMode : integer;
  110.     x, y : integer;
  111.   begin
  112.     GraphDiver := Detect;
  113.     InitGraph(GraphDriver,GraphMode,'');
  114.     if Graphesult <> grOk then
  115.        Halt(1);
  116.     OutText('ìáτ¡Ñ¼ ºñÑß∞.');
  117.     x := GetX;
  118.     y := GetY;
  119.     OutText(20,10,'ÆÑ»Ñα∞ »ÑαÑ⌐ñѼ ßεñá...');
  120.     OutText(x,y,'Ç ΓÑ»Ñα∞ óÑα¡Ñ¼ß∩ ¡áºáñ.');
  121.     Readln;
  122.     CloseGraph;
  123.   end.
  124.  
  125. ------------------------------------------------------------
  126.  öπ¡¬µ¿∩ GetY                                  î«ñπ½∞ Graph
  127. ------------------------------------------------------------
  128.      öπ¡¬µ¿∩:  é«ºóαáΘáÑΓ  Y-¬««αñ¿¡áΓπ  ΓѬπΘÑú«  π¬áºáΓѽ∩
  129. (æÉ).
  130.      Ä»¿ßá¡¿Ñ: GetY
  131.      Æ¿» αѺπ½∞ΓáΓá: ûѽδ⌐ (integer).
  132.      Åα¿¼Ñτá¡¿∩: Åα«µÑñπαá GetY ºáó¿ß¿Γ «Γ «í½áßΓ¿  »α«ß¼«Γ-
  133. αá. Æá¬¿¼ «íαẫ¼, ÑÑ º¡áτÑ¡¿Ñ óßÑúñá αáó¡« áíß«½εΓ¡«⌐ ò-¬«-
  134. «αñ¿¡áΓÑ æÉ, ¼¿¡πß ViewPort.π1. é ß½ÑñπεΘѼ »α¿¼ÑαÑ:
  135.  
  136.  1 SetViewPort(0,0,GetMaxX,GetMaxY,True);
  137.  2 MoveTo(5,5);
  138.  3 SetViewPort(10,10,100,100,True);
  139.  4 MoveTo(5,5);
  140.  
  141.      - ó ßΓα«¬Ñ 1 æÉ »ÑαѼÑΘáÑΓß∩ ó Γ«τ¬π ß áíß«½εΓ¡δ¼¿  ¬«-
  142. «αñ¿¡áΓἿ (0,0), ¿ »α«µÑñπαá GetY ΓᬪѠó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ
  143. 0;
  144.      - ó ßΓα«¬Ñ 2 æÉ »ÑαѼÑΘáÑΓß∩ ó Γ«τ¬π ß áíß«½εΓ¡δ¼¿  ¬«-
  145. «αñ¿¡áΓἿ (5,5), ¿ »α«µÑñπαá GetY ΓᬪѠó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ
  146. 5;
  147.      - ó ßΓα«¬Ñ 3 æÉ »ÑαѼÑΘáÑΓß∩ ó Γ«τ¬π ß áíß«½εΓ¡δ¼¿  ¬«-
  148. «αñ¿¡áΓἿ (10,10), ¡« »α«µÑñπαá GetY ó«ºóαáΓ¿Γ º¡áτÑ¡¿Ñ 0;
  149.      - ó ßΓα«¬Ñ 4 æÉ »ÑαѼÑΘáÑΓß∩ ó Γ«τ¬π ß áíß«½εΓ¡δ¼¿  ¬«-
  150. «αñ¿¡áΓἿ (15,15), ¡« »α«µÑñπαá GetY ó«ºóαáΓ¿Γ º¡áτÑ¡¿Ñ 5.
  151.      Ç¡á½«ú¿τ¡á∩ Σπ¡¬µ¿∩ ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  152.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  153.      Åα«τÑÑ:  æ¼.  ΓᬪѠ »α«µÑñπαδ  GetViewSettings,  GetX,
  154. InitGraph, MoveTo, SetViewPort.
  155.  
  156.      Åα¿¼Ñα:
  157.  
  158.   uses Graph;
  159.   var
  160.     GraphDriver, GraphMode : integer;
  161.     x, y : integer;
  162.   begin
  163.     GraphDiver := Detect;
  164.     InitGraph(GraphDriver,GraphMode,'');
  165.     if Graphesult <> grOk then
  166.        Halt(1);
  167.     OutText('ìáτ¡Ñ¼ ºñÑß∞.');
  168.     x := GetX;
  169.     y := GetY;
  170.     OutText(20,10,'ÆÑ»Ñα∞ »ÑαÑ⌐ñѼ ßεñá...');
  171.     OutText(x,y,'Ç ΓÑ»Ñα∞ óÑα¡Ñ¼ß∩ ¡áºáñ.');
  172.     Readln;
  173.     CloseGraph;
  174.   end.
  175.  
  176. ------------------------------------------------------------
  177.  Åα«µÑñπαá GotoXY                                î«ñπ½∞ ært
  178. ------------------------------------------------------------
  179.      öπ¡¬µ¿∩: Å«º¿µ¿«¡¿απÑΓ ¬παß«α.
  180.      Ä»¿ßá¡¿Ñ: GoToXY(x, Y : byte)
  181.      Åα¿¼Ñτá¡¿∩: ¬«αß«α »ÑαѼÑΘáÑΓß∩ ó Γπ »«º¿µ¿ε ó¡πΓα¿ ΓÑ-
  182. ¬πΘÑú«  «¬¡á,  ¬«Γ«αá∩  ºáñá¡á  ¬««αñ¿¡áΓἿ ò ¿ Y (ò ºáñáÑΓ
  183. ßΓ«½íѵ, Y ºáñáÑΓ ßΓ᫬π). éÑασ¡¿⌐ ½Ñóδ⌐ πú«½ ºáñáÑΓß∩  ¬«α-
  184. ñ¿¡áΓἿ (1,1).
  185.      ¥Γá »α«µÑñπαá ºáó¿ß¿Γ «Γ ΓѬπΘÑú« «¬¡á. ìá»α¿¼Ñα:
  186.  
  187.      Window(1,10,60,20);
  188.      GotoXY(1,1);
  189.  
  190. »ÑαѼÑßΓ¿Γ ¬παß«α ó óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ á¬Γ¿ó¡«ú« «¬¡á (áíß«-
  191. ½εΓ¡δÑ ¬««αñ¿¡áΓδ (1,10)).
  192.      Äúαá¡¿τÑ¡¿∩: àß½¿ ºáñáεΓß∩ ¡Ññ«»πßΓ¿¼δÑ ¬««αñ¿¡áΓδ,  Γ«
  193. «íαáΘÑ¡¿Ñ ¬ »α«µÑñπαÑ ¿ú¡«α¿απÑΓß∩.
  194.  
  195.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ Window, WhereX, WhereY.
  196.  
  197. ------------------------------------------------------------
  198.  Åα«µÑñπαá GraphDefaults                       î«ñπ½∞ Graph
  199. ------------------------------------------------------------
  200.      öπ¡¬µ¿∩:  æíαáßδóáÑΓ  πßΓá¡«ó½Ñ¡¡δÑ   ñ½∩   úαáΣ¿τÑ߬¿σ
  201. ßαÑñßΓó »áαá¼ÑΓαδ.
  202.      Ä»¿ßá¡¿Ñ: GraphDefaults
  203.      Åα¿¼Ñτá¡¿∩: é«ºóαáΘáÑΓ ΓѬπΘ¿⌐ π¬áºáΓѽ∞ ó ¡π½Ñóπε Γ«τ-
  204. ¬π ¿ πßΓá¡áó½¿óáÑΓ ñ½∩ úαáΣ¿τÑ߬«⌐ ß¿ßΓÑ¼δ »áαá¼ÑΓαδ:
  205.      - «í½áßΓ∞ »α«ß¼«Γαá;
  206.      - »á½¿Γαπ;
  207.      - Σ«¡«óδ⌐ ¿ «ß¡«ó¡«⌐ µóÑΓ;
  208.      - Γ¿» ½¿¡¿¿ ¿ «íαáºÑµ ½¿¡¿¿;
  209.      - Γ¿» ºá»«½¡¿Γѽ∩, «íαáºÑµ ºá»«½¡¿Γѽ∩ ¿ µóÑΓ  ºá»«½¡¿-
  210. Γѽ∩;
  211. »α¿¡∩ΓδÑ »« π¼«½τá¡¿ε.
  212.      Ç¡á½«ú¿τ¡á∩ »α«úαἼᠿ¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  213.  
  214. ------------------------------------------------------------
  215.  öπ¡¬µ¿∩ GraphErrorMsg                         î«ñπ½∞ Graph
  216. ------------------------------------------------------------
  217.  
  218.      öπ¡¬µ¿∩: ä½∩ ºáñá¡¡«ú« ¬«ñá «Φ¿í¬¿  (ErrorCode)  óδñáÑΓ
  219. ßΓ᫬π ß««íΘÑ¡¿∩ «í «Φ¿í¬Ñ.
  220.      Ä»¿ßá¡¿Ñ: GraphErrorMsg(ErrorCode : integer)
  221.      Æ¿» αѺπ½∞ΓáΓá: æΓ᫬«óδ⌐ (string).
  222.      Åα¿¼Ñτá¡¿∩: äá¡¡á∩ Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ßΓ᫬π,  ß«ñÑαªá-
  223. Θπε  ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ, ß««ΓóÑΓßΓóπεΘÑÑ ¬«ñπ «Φ¿í¬¿ úαáΣ¿-
  224. τÑ߬«⌐ ß¿ßΓѼδ. ¥Γ« «í½ÑúτáÑΓ óδó«ñ «»¿ßδóáεΘÑú« «Φ¿í¬π  ß«-
  225. «íΘÑ¡¿∩ ó »«½∞º«óáΓѽ∞߬«⌐ »α«úαá¼¼Ñ. ìá»α¿¼Ñα:
  226.  
  227.  "Device driver not found" (¡Ñ  ¡á⌐ñÑ¡  ñαá⌐óÑα  πßΓα«⌐ßΓóá)
  228.  
  229. ó¼ÑßΓ«:
  230.  
  231.      "error code - 3" («ñ «Φ¿í¬¿ - 3).
  232.  
  233.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  234.      Åα«τÑÑ: æ¼. ΓᬪѠ »α«µÑñπαδ GraphResult,  DetectGraph,
  235. InitGraph.
  236.      Åα¿¼Ñα:
  237.  
  238.   uses Graph;
  239.   var
  240.     GraphDriver, GraphMode : integer;
  241.     ErrorCode : integer;
  242.   begin
  243.     GraphDiver := Detect;
  244.     InitGraph(GraphDriver,GraphMode,'');
  245.     if Graphesult <> grOk then
  246.        Halt(1);
  247.     begin
  248.       Writeln('ÄΦ¿í¬á úαáΣ¿¬¿: ',GraphErrorMsg(ErrorCode);
  249.       Readln;
  250.       Halt(1);
  251.     end;
  252.      Line(0, 0, GetMaxX, GetMaxY);
  253.      Readln;
  254.      CloseGraph;
  255.   end.
  256.  
  257. ------------------------------------------------------------
  258.  öπ¡¬µ¿∩ GraphResult                           î«ñπ½∞ Graph
  259. ------------------------------------------------------------
  260.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ñ½∩ »«ß½Ññ¡Ñ⌐ úαáΣ¿τÑ߬«⌐  «»Ñαᵿ¿
  261. ¬«ñ «Φ¿í¬¿.
  262.      Ä»¿ßá¡¿Ñ: GraphResult
  263.      Æ¿» αѺπ½∞ΓáΓá: ûѽδ⌐ (integer).
  264.      Åα¿¼Ñτá¡¿∩: é«ºóαáΘáÑΓ ¬«ñ «Φ¿í¬¿ ñ½∩ »«ß½Ññ¡Ñ⌐  úαáΣ¿-
  265. τÑ߬«⌐ «»Ñαᵿ¿. Ä»αÑñѽѡδ ß½ÑñπεΘ¿Ñ ¬«ñδ «Φ¿í«¬:
  266.  
  267.       0 ¡ÑΓ «Φ¿í¬¿;
  268.      -1 (éæI) úαáΣ¿¬á ¡Ñ πßΓá¡«ó½Ñ¡á (¿ß»«½∞ºπ⌐ΓÑ  »α«µÑñπαπ
  269. InitGraph);
  270.      -2 úαáΣ¿τÑ߬á∩ á»»áαáΓπαá ¡Ñ ¡á⌐ñÑ¡á;
  271.      -3 ñαá⌐óÑα úαáΣ¿τÑ߬«ú« πßΓα«⌐ßΓóá ¡Ñ ¡á⌐ñÑ¡;
  272.      -4 ¡ÑóÑα¡δ⌐ Σá⌐½ ñαá⌐óÑαá úαáΣ¿τÑ߬«ú« πßΓα«⌐ßΓóá;
  273.      -5 ¡Ñ σóáΓáÑΓ »á¼∩Γ¿ ñ½∩ ºáúαπº¬¿ ñαá⌐óÑαá;
  274.      -6 óδσ«ñ ºá úαá¡¿µδ »á¼∩Γ¿ »α¿ »α«ß¼«ΓαÑ  «í½áßΓ¿  ºá¬-
  275. αá߬¿;
  276.      -7 óδσ«ñ ºá úαá¡¿µδ »á¼∩Γ¿ »α¿ ºá¬αáΦ¿óá¡¿¿;
  277.      -8 Σá⌐½ Φα¿ΣΓá ¡Ñ ¡á⌐ñÑ¡;
  278.      -9 ¡Ñ σóáΓáÑΓ »á¼∩Γ¿ ñ½∩ ºáúαπº¬¿ Φα¿ΣΓá;
  279.      -10 ¡Ññ«»πßΓ¿¼δ⌐ úαáΣ¿τÑ߬¿⌐ αѪ¿¼ ñ½∩ óδíαá¡¡«ú« ñαá⌐-
  280. óÑαá.
  281.  
  282.      è«ñ «Φ¿í¬¿ πßΓá¡áó½¿óáÑΓß∩ ß½ÑñπεΘ¿¼¿ »α«µÑñπαἿ:
  283.  
  284.      DetectGraph, InitGraph, FloodFill, FillPoly,  DrawPoly,
  285. Bar,  Bar3D,  PieSlice,  ClearViewPort,  SetTextStyle,  Set-
  286. GrphMode,  CloseGraph,,  DetectGraph,  FillPoly,  FloodFill,
  287. GetGraphMode, ImageSize, InstallUserDriver, InstallUserFont,
  288. PieSlice, RegisterBGIDriver,RegisterBGIFont,  SetAllPalette,
  289. SetFillPattern, SetFillStyle, SetGraphBufSize, SetGraphMode,
  290. SetLineStyle, SetPalette, SetTextJustify.
  291.  
  292.      çá¼ÑΓ¿¼, τΓ« GraphResult (¬«ñ «Φ¿í¬¿) ßíαáßδóáÑΓß∩ ó  0
  293. »«ß½Ñ  «íαáΘÑ¡¿∩  ¬  ñá¡¡«⌐  »α«µÑñπαÑ  (á¡á½«ú¿τ¡«  Σπ¡¬µ¿¿
  294. IOResult). Æá¬¿¼ «íαẫ¼ »«½∞º«óáΓѽε ß½ÑñπÑΓ ß«σαá¡¿Γ∞ º¡á-
  295. τÑ¡¿Ñ  ¬«ñá «Φ¿í¬¿ ó« óαѼѡ¡«⌐ »ÑαѼѡ¡«⌐ ¿ ºáΓѼ »α«óÑα¿Γ∞
  296. ÑÑ. Ä»αÑñѽѡδ ß½ÑñπεΘ¿Ñ ¬«¡ßΓá¡Γδ:
  297.  
  298. -----------------------------------------------------------
  299.  è«¡ßΓá¡Γá                  è«ñ        æ««ΓóÑΓßΓóπεΘÑÑ
  300. «Φ¿í¬¿ úαáΣ¿¬¿            «Φ¿í¬¿       ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ
  301. ------------------------------------------------------------
  302.  
  303.   grOk                         =  0; { ¡ÑΓ «Φ¿í¬¿ }
  304.   grNoInitGraph                = -1; { úαáΣ¿¬á ¡Ñ ¿¡¿µ¿á½¿-
  305.                                        º«óá¡á }
  306.   grNotDetected                = -2; { úαáΣ¿τÑ߬¿Ñ ßαÑñßΓóá
  307.                                        ¡Ñ ¡á⌐ñÑ¡δ }
  308.   grFileNotFound               = -3; { Σá⌐½ ¡Ñ ¡á⌐ñÑ¡ }
  309.  
  310.   grInvalidDriver              = -4; { ¡Ññ«»πßΓ¿¼δ⌐
  311.                                        ñαá⌐óÑα }
  312.   grNoLoadMem                  = -5; { »á¼∩Γ∞ ¡Ñ ºáúαπªÑ¡á }
  313.   grNoScanMem                  = -6; { «Φ¿í¬á »α¿ »α«ß¼«ΓαÑ
  314.                                        »á¼∩Γ¿ }
  315.   grNoFloodMem                 = -7; { «Φ¿í¬á »α¿ ºáαá߬Ѡ}
  316.   grFontNotFound               = -8; { Φα¿ΣΓ ¡Ñ ¡á⌐ñÑ¡ }
  317.   grNoFontMem                  = -9; { Φα¿ΣΓ ¡Ñ ºáúαπªÑ¡ ó
  318.                                        »á¼∩Γ∞ }
  319.   grInvalidMode                = -10; { ¡Ññ«»πßΓ¿¼δ⌐ αѪ¿¼ }
  320.   grError                      = -11; { «Φ¿í¬á úαáΣ¿¬¿ }
  321.   grIOError                    = -12; { «Φ¿í¬á óó«ñá-óδó«ñá
  322.                                         úαáΣ¿¬¿ }
  323.   grInvalidFont                = -13; { ¡Ññ«»πΓ¿¼δ⌐ Σá⌐½
  324.                                         Φα¿ΣΓá }
  325.   grInvalidFontNum             = -14; { ¡Ññ«»πßΓ¿¼δ⌐ ¡«¼Ñα
  326.                                         Φα¿ΣΓá }
  327. ------------------------------------------------------------
  328.  
  329.      Äúαá¡¿τÑ¡¿∩: ÅαÑñπß¼«ΓαÑ¡á ßΓ᫬«óá∩  Σπ¡¬µ¿∩  GraphEr-
  330. rorMsg, ¬«Γ«αá∩ ó«ºóαáΘáÑΓ ßΓ᫬π ß««íΘÑ¡¿∩, ß««ΓóÑΓßΓóπεΘÑ-
  331. ú« ¬áªñ«¼π ¬«ñπ «Φ¿í¬¿.
  332.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿ε MraphErrorMsg.
  333.      Åα¿¼Ñα:
  334.  
  335.   uses
  336.    Graph;
  337.   var
  338.    ErrorCode : integer;
  339.    GrDriver, GrMode : integer;
  340.   begin
  341.     GrDriver := Detect;
  342.     InitGraph(GrDriver,GrMode);
  343.     ErrorCode := Grapesult;  { »α«óÑαá ¡á «Φ¿í¬¿ }
  344.     if ErorCode <> grOk then
  345.     begin
  346.       Writeln('ÄΦ¿í¬á úαáΣ¿¬¿: ');
  347.       Writeln(GraphErrorMsg(ErroeCode));
  348.       Writeln('Åα«úαá¼¼á áóáα¿⌐¡« ºáóÑαΦ¿½á αáí«Γπ!...');
  349.       Halt(1);
  350.     end;
  351.   { óδ»«½¡¿Γ∞ ¡Ñ¬«Γ«αδÑ úαáΣ¿τÑ߬¿Ñ Σπ¡¬µ¿¿ }
  352.     ClearDevice;
  353.     Rectangle(0,0,GetMaxX,GetMaxY);
  354.     Readln;
  355.     CloseGraph;
  356.   end.
  357.  
  358. ------------------------------------------------------------
  359.  Åα«µÑñπαá Halt
  360. ------------------------------------------------------------
  361.      öπ¡¬µ¿∩: ÄßΓá¡áó½¿óáÑΓ óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ ¿ ó«ºóαáΘá-
  362. ÑΓ π»αáó½Ñ¡¿Ñ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼÑ.
  363.      Ä»¿ßá¡¿Ñ: ìált [ ( ¬«ñ-óδσ«ñá : word) ]
  364.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα  "¬«ñ-óδσ«ñá"  »αÑñßΓáó½∩ÑΓ  ß«í«⌐
  365. ¡Ñ«í∩ºáΓѽ∞¡«Ñ  óδαáªÑ¡¿Ñ ñ½¿¡«⌐ ó ß½«ó«, ¬«Γ«α«Ñ ºáñáÑΓ ¬«ñ
  366. óδσ«ñá ¿º »α«úαá¼¼δ. Åα«µÑñπαá  ìált  íѺ  »áαá¼ÑΓα«ó  ß««Γ-
  367. óÑΓßΓóπÑΓ  ó맮óπ  ìált(0). è«ñ óδσ«ñá ¼«ªÑΓ »α«óÑα∩Γ∞ß∩ »«-
  368. ᫪ñáÑεΘ¿¼ »α«µÑßß«¼ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ àσitCode  ¼«ñπ½∩  Dos
  369. ¿½¿ ß »«¼«Θ∞ε »α«óÑન ERRORLEVEL ó Σá⌐½Ñ »á¬ÑΓ¡«⌐ «íαáí«Γ¬¿
  370. äÄæ.
  371.      çá¼ÑΓ¿¼, τΓ« »α«µÑñπαá ìált  ¿¡¿µ¿á½¿º¿απÑΓ  óδ»«½¡Ñ¡¿Ñ
  372. ¿¼ÑεΘ¿σß∩ ó ¼«ñπ½Ñ »α«µÑñπα ºáóÑαΦÑ¡¿∩ (ß¼. â½áóπ 26).
  373.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ àσit.
  374.  
  375. ------------------------------------------------------------
  376.  öπ¡¬µ¿∩ Hi
  377. ------------------------------------------------------------
  378.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ßΓáαΦ¿⌐ íá⌐Γ áαúπ¼Ñ¡Γá.
  379.      Ä»¿ßá¡¿Ñ: ìi(x)
  380.      Æ¿» αѺπ½∞ΓáΓá: üá⌐Γ.
  381.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα x »αÑñßΓáó½∩ÑΓ ß«í«⌐ óδαáªÑ¡¿Ñ µÑ-
  382. ½«ú«  Γ¿»á ¿½¿ ß½«ó«. öπ¡¬µ¿∩ ìi ó«ºóαáΘáÑΓ ßΓáαΦ¿⌐ íá⌐Γ x ó
  383. ó¿ñÑ º¡áτÑ¡¿∩ íѺ º¡á¬á.
  384.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿¿ Lo, Swap.
  385.      Åα¿¼Ñα:
  386.  
  387.  var
  388.    w : word;
  389.  begin
  390.    w := Hi($1234);                             { $12 }
  391.  end;
  392.  
  393. ------------------------------------------------------------
  394.  Åα«µÑñπαá HighVideo                             î«ñπ½∞ ært
  395. ------------------------------------------------------------
  396.      öπ¡¬µ¿∩: ôßΓá¡áó½¿óáÑΓ ñ½∩ ß¿¼ó«½«ó »«ñßóÑΓ¬π.
  397.      Ä»¿ßá¡¿Ñ: HighVideo
  398.      Åα¿¼Ñτá¡¿∩: é ¼«ñπ½Ñ ært  ¿¼ÑÑΓß∩  íá⌐Γ«óá∩  »ÑαѼѡ¡á∩
  399. ÆÑσtÇttr,  ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ σαá¡Ñ¡¿∩ ΓѬπΘ¿σ áΓα¿íπ-
  400. Γ«ó ¿º«íαáªÑ¡¿∩. Åα«µÑñπαá HighVideo πßΓá¡áó½¿óáÑΓ ñ½∩ µóÑΓá
  401. ß¿¼ó«½«ó  »ÑαѼѡ¡«⌐  ÆÑσtAttr í¿Γ »«ñßóÑΓ¬¿. Æá¬¿¼ «íαẫ¼,
  402. µóÑΓá 0..7 «Γ«íαáªáεΓß∩ ó µóÑΓá 8..15.
  403.      ÄΓ½¿τ¿∩: é óÑαß¿¿ 3.0 »α«µÑñπαá HighVideo óßÑúñá  óδí¿-
  404. αá½á  ªÑ½Γδ⌐ µóÑΓ ¡á τÑα¡«¼ Σ«¡Ñ (íѽδ⌐ ¡á τÑα¡«¼ Σ«¡Ñ ó ¼«-
  405. ¡«σα«¼áΓ¿τÑ߬«¼ αѪ¿¼Ñ ¿ ó ó¿ñÑ«αѪ¿¼áσ éW80).
  406.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ NomVideo, LowVideo, TextCo-
  407. lor, TextBackGround.
  408.      Åα¿¼Ñα:
  409.  
  410.  uses Crt;
  411.  begin
  412.    TextAttr := LightGray;
  413.    HighVideo;                   { µóÑΓ ßΓá¡«ó¿Γß∩ íÑ½δ¼ }
  414.  end;
  415.  
  416. ------------------------------------------------------------
  417.  Åα«µÑñπαá ImageSize                           î«ñπ½∞ Graph
  418. ------------------------------------------------------------
  419.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ τ¿ß½« íá⌐Γ«ó, ¡Ñ«íσ«ñ¿¼δσ ñ½∩  ß«σ-
  420. αá¡Ñ¡¿∩ »α∩¼«πú«½∞¡«⌐ «í½áßΓ¿ φ¬αá¡á.
  421.      Ä»¿ßá¡¿Ñ: ImageSize(x1, y1, x2, y2 : word)
  422.      Æ¿» αѺπ½∞ΓáΓá: æ½«ó« (word).
  423.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓαδ x1, y1, x2 ¿ y2 «»αÑñѽ∩εΓ »α∩¼«-
  424. πú«½∞¡πε  «í½áßΓ∞ φ¬αá¡á. öπ¡¬µ¿∩ ImageSize «»αÑñѽ∩ÑΓ τ¿ß½«
  425. íá⌐Γ«ó, ¡Ñ«íσ«ñ¿¼δσ Σπ¡¬µ¿¿ Getimage ñ½∩ ß«σαá¡Ñ¡¿∩ ºáñá¡¡«⌐
  426. «í½áßΓ¿ φ¬αá¡á. ÉẼÑα ñó«¿τ¡«ú« «íαáºá «í½áßΓ¿ φ¬αá¡á ó¬½ε-
  427. τáÑΓ ó ßÑí∩ ΓᬪѠ»á¼∩Γ∞, ¡Ñ«íσ«ñ¿¼πε  ñ½∩  ñóπσ  »ÑαѼѡ¡δσ
  428. ñ½¿¡«⌐  ó  ñóá  ß½«óá, ó ¬«Γ«αδσ ß«σαá¡∩ÑΓß∩ Φ¿α¿¡á ¿ óδß«Γá
  429. «í½áßΓ¿ φ¬αá¡á:
  430.  
  431.  width  := x2 - x1 + 1;            { Φ¿α¿¡á }
  432.  height := y2 - y1 + 1;            { óδß«Γá φ¬αá¡á }
  433.  
  434.      ÉẼÑα »á¼∩Γ¿, ¡Ñ«íσ«ñ¿¼δ⌐ ñ½∩ ß«σαá¡Ñ¡¿∩ ñó«¿τ¡«ú« «í-
  435. αáºá  ßἫ⌐  «í½áßΓ¿, óδτ¿ß½∩ÑΓß∩ »πΓѼ π¼¡«ªÑ¡¿∩ Φ¿α¿¡δ «í-
  436. ½áßΓ¿ ¡á ÑÑ óδß«Γπ.
  437.      àß½¿ «íΩѼ »á¼∩Γ¿, ¡Ñ«íσ«ñ¿¼δ⌐ ñ½∩ ß«σαá¡Ñ¡¿∩  «í½áßΓ¿,
  438. »αÑóδΦáÑΓ ¿¿ αáóÑ¡ 64è, Γ« ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ 0 ¿ Σπ¡¬µ¿∩
  439. GraphResult ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ -11 (grError).
  440.      Ç¡á½«ú¿τ¡á∩ »α«µÑñπαá ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  441.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  442.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ GetImage, PutImage.
  443.      Åα¿¼Ñα:
  444.  
  445.   uses Graph;
  446.   var
  447.     Gd, Gm : integer;
  448.     P : pointer;
  449.     Size : word;
  450.   begin
  451.     Gd := Detect;
  452.     InitGraph(Gd, Gm, '');
  453.     if GraphResult <> grOk then
  454.        Halt(1);
  455.     Bar(0, 0, GetMaxX, GetMaxY);
  456.     Size := ImageSize(10,20,30,40)
  457.     GetMem(P, Size)    { éδñѽ¿Γ∞ »á¼∩Γ∞ ó ñ¿¡á¼¿τÑ߬¿
  458.                          αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ }
  459.     GetImage(10,20,30,40,P^);
  460.     Readln;
  461.     ClearDevice;
  462.     PutImage(100, 100, P^, NormalPut);
  463.     Readln;
  464.     CloseGraph;
  465.   end.
  466.  
  467. ------------------------------------------------------------
  468.  Åα«µÑñπαá Inc
  469. ------------------------------------------------------------
  470.      öπ¡¬µ¿∩: ôóѽ¿τ¿óáÑΓ º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐.
  471.      Ä»¿ßá¡¿Ñ: Inc(x [ ; n : longint ] )
  472.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα x  »αÑñßΓáó½∩ÑΓ  ß«í«⌐  »ÑαѼѡ¡πε
  473. »ÑαÑτ¿ß½¿¼«ú«  Γ¿»á, á n - µÑ½«τ¿ß½Ñ¡¡«Ñ óδαáªÑ¡¿Ñ. ç¡áτÑ¡¿Ñ
  474. x πóѽ¿τ¿óáÑΓß∩ ¡á 1 (¿½¿ ¡á n ó ß½πτáÑ ∩ó¡«ú«  ºáñá¡¿∩  n).
  475. Æ« ÑßΓ∞ Inß(x) ß««ΓóÑΓßΓóπÑΓ x := x+1, á Inß(x,n) ß««ΓóÑΓßΓ-
  476. óπÑΓ x := x+n. öπ¡¬µ¿∩ Inß »«α«ªñáÑΓ «»Γ¿¼¿º¿α«óá¡¡δ⌐ ¬«ñ  ¿
  477. «ß«íÑ¡¡« »«½Ñº¡á ó í«½∞Φ¿σ µ¿¬½áσ.
  478.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿¿ Dec. Pred.
  479.      Åα¿¼Ñα:
  480.  
  481.  var
  482.    IntVar  : intege;
  483.    LongIntVar : longint;
  484.  begin
  485.    Inc(IntVar);         { intVar := IntVar + 1 }
  486.    Inc(LongIntVar);     { LongIntVar := LongIntVar + 5 }
  487.  
  488. ------------------------------------------------------------
  489.  Åα«µÑñπαá InitGraph                           î«ñπ½∞ Graph
  490. ------------------------------------------------------------
  491.      öπ¡¬µ¿∩: ê¡¿µ¿á½¿º¿απÑΓ úαáΣ¿τÑ߬πε ß¿ßΓÑ¼π ¿ »ÑαÑó«ñ¿Γ
  492. á»»áαáΓπαπ ó úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  493.      Ä»¿ßá¡¿Ñ: InitGraph(var  úαáΣ_ñαá⌐óÑα  :  integer;  var
  494. úαáΣ_αѪ¿¼ : integer; »πΓ∞_ñαá⌐óÑα : string)
  495.      Åα¿¼Ñτá¡¿∩:  ê  »áαá¼ÑΓα  "úαáΣ-ñαá⌐óÑα",  ¿   »áαá¼ÑΓα
  496. "úαáΣ-αѪ¿¼" ∩ó½∩εΓß∩ »áαá¼ÑΓαἿ-»ÑαѼѡ¡δ¼¿ (var).
  497.      àß½¿ »áαá¼ÑΓα "úαáΣ_ñαá⌐óÑα"  αáó¡∩ÑΓß∩  Detect(0),  Γ«
  498. óδ»«½¡∩ÑΓß∩  óδº«ó  »α«µÑñπαδ DetectGraph, ºáúαπªáÑΓß∩ ß««Γ-
  499. óÑΓßΓóπεΘ¿⌐ ñαá⌐óÑα ¿ óδí¿αáÑΓß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  500.  
  501.      àß½¿ »áαá¼ÑΓα "úαáΣ_ñαá⌐óÑα" ¡Ñ αáóÑ¡  0,  Γ«  º¡áτÑ¡¿Ñ
  502. φΓ«ú«  »áαá¼ÑΓαá  αáßß¼áΓα¿óáÑΓß∩,  ¬á¬ ¡«¼Ñα ñαá⌐óÑαá. ¥Γ«Γ
  503. ñαá⌐óÑα ºáúαπªáÑΓß∩ ¿ ß¿ßΓѼᠻÑαÑó«ñ¿Γß∩ ó αѪ¿¼, «»αÑñѽ∩-
  504. Ѽδ⌐ »áαá¼ÑΓα«¼ "úαáΣ_αѪ¿¼". çá¼ÑΓ¿¼, τΓ« Ñß½¿ º¡áτÑ¡¿Ñ áó-
  505. Γ«¼áΓ¿τÑ߬«ú«  αáß»«º¡áóá¡¿∩  á»»áαáΓπαδ  ¿º¼Ñ¡Ñ¡«,  Γ«   óδ
  506. ñ«½ª¡δ  ñ½∩  ΓαÑíπѼ«ú« ñαá⌐óÑαá «íÑß»Ñτ¿Γ∞ »αáó¿½∞¡δ⌐ »áαá-
  507. ¼ÑΓα "úαáΣ_αѪ¿¼".
  508.      Åáαá¼ÑΓα "»πΓ∞_ñαá⌐óÑα" «»αÑñѽ∩ÑΓ »πΓ∞ ñ«ßΓπ»á ¬ ¬áΓá-
  509. ½«úπ  (¼áαΦαπΓ),  ó  ¬«Γ«α«¼ ¡áσ«ñ∩Γß∩ úαáΣ¿τÑ߬¿Ñ ñαá⌐óÑαδ.
  510. àß½¿ φëà»áαá¼ÑΓα »πßΓ, Γ« »«ñαáºπ¼ÑóáÑΓß∩, τΓ« Σá⌐½δ ñαá⌐-
  511. óÑα«ó ß«ñÑαªáΓß∩ ó ΓѬπΘѼ ¬áΓὫúÑ.
  512.      æ »«¼«Θ∞ε «íαáΘÑ¡¿∩ ¬ »α«µÑñπαÑ  GetîѼ  ó  ñ¿¡á¼¿τÑ߬¿
  513. αáß»αÑñѽ∩Ѽ«⌐  «í½áßΓ¿ ñ½∩ úαáΣ¿τÑ߬«ú« ñαá⌐óÑαá óδñѽ∩ÑΓß∩
  514. »á¼∩Γ∞. Åα¿ «íαáΘÑ¡¿¿ ¬ »α«µÑñπαÑ CloseGraph φΓá »á¼∩Γ∞  «ß-
  515. ó«í«ªñáÑΓß∩.
  516.      Å«ß½Ñ «íαáΘÑ¡¿∩ ¬  »α«µÑñπαÑ  InitGraph  ñ½∩  »áαá¼ÑΓαá
  517. "úαáΣ_ñαá⌐óÑα"  íπñÑΓ  πßΓá¡«ó½Ñ¡« º¡áτÑ¡¿Ñ, ß««ΓóÑΓßΓóπεΘÑÑ
  518. ΓѬπΘѼ úαáΣ¿τÑ߬«¼π ñαá⌐óÑαπ, á ñ½∩ »áαá¼ÑΓαá  "úαáΣ_αѪ¿¼"
  519. íπñÑΓ  πßΓá¡«ó½Ñ¡« º¡áτÑ¡¿Ñ, ß««ΓóÑΓßΓóπεΘÑÑ ΓѬπΘѼπ úαáΣ¿-
  520. τÑ߬«¼π αѪ¿¼π.
  521.      àß½¿ »α«¿ßσ«ñ¿Γ «Φ¿í¬á, Γ« »α«µÑñπαá GrapDriver ¿ Σπ¡¬-
  522. µ¿∩ GraphResult ó«ºóαáΘáεΓ «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
  523.  
  524.      -2 - ¡Ñ «í¡áαπªÑ¡á úαáΣ¿τÑ߬á∩ »½áΓá;
  525.      -3 - ¡Ñ ¡á⌐ñÑ¡ Σá⌐½ ñαá⌐óÑαá;
  526.      -4 - ¡ÑóÑα¡δ⌐ ñαá⌐óÑα;
  527.      -5 - ñ½∩ ºáúαπº¬¿ »á¼∩Γ¿ ¡Ññ«ßΓáΓ«τ¡« »á¼∩Γ¿.
  528.  
  529.      Åα«µÑñπαá InitGraph ßíαáßδóáÑΓ óßÑ úαáΣ¿τÑ߬¿Ñ »áαá¼ÑΓ-
  530. αδ  (ΓѬπΘ¿⌐  π¬áºáΓѽ∞,  »á½¿Γαπ, µóÑΓ, «í½áßΓ∞ »α«ß¼«Γαá ¿
  531. Γ.ñ.) ¿ πßΓá¡áó½¿óáÑΓ ñ½∩ ¡¿σ »αÑñπß¼«ΓαÑ¡¡δÑ  »«  π¼«½τá¡¿ε
  532. º¡áτÑ¡¿∩.
  533.      ä½∩ πßΓᡫ󬿠»«ßΓáó½∩Ѽδ⌐ Σ¿α¼á¼¿ ñαá⌐óÑα«ó ¼«ª¡«  ¿ß-
  534. »«½∞º«óáΓ∞ »α«µÑñπαπ InstallDriver (í«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼á-
  535. µ¿∩ ß«ñÑনΓß∩ ó «»¿ßá¡¿¿ »α«µÑñπαδ InstallUserDriver).
  536.      ä½∩ ¬áªñ«ú« »«ññÑনóáѼ«ú« úαáΣ¿τÑ߬«ú« ñαá⌐óÑαá «»αÑ-
  537. ñѽѡ α∩ñ »«½Ñº¡δ󠬫¡ßΓá¡Γ:
  538.  
  539. -----------------------------------------------------------
  540.  è«¡ßΓá¡Γá                  è«ñ        æ««ΓóÑΓßΓóπεΘÑÑ
  541. «Φ¿í¬¿ úαáΣ¿¬¿            «Φ¿í¬¿       ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ
  542. -----------------------------------------------------------
  543.   grOk                         =  0; { ¡ÑΓ «Φ¿í¬¿ }
  544.   grNoInitGraph                = -1; { úαáΣ¿¬á ¡Ñ ¿¡¿µ¿á½¿-
  545.                                        º«óá¡á }
  546.   grNotDetected                = -2; { úαáΣ¿τÑ߬¿Ñ ßαÑñßΓóá
  547.                                        ¡Ñ ¡á⌐ñÑ¡δ }
  548.   grFileNotFound               = -3; { Σá⌐½ ¡Ñ ¡á⌐ñÑ¡ }
  549.   grInvalidDriver              = -4; { ¡Ññ«»πßΓ¿¼δ⌐
  550.                                        ñαá⌐óÑα }
  551.   grNoLoadMem                  = -5; { »á¼∩Γ∞ ¡Ñ ºáúαπªÑ¡á }
  552.   grNoScanMem                  = -6; { «Φ¿í¬á »α¿ »α«ß¼«ΓαÑ
  553.                                        »á¼∩Γ¿ }
  554.   grNoFloodMem                 = -7; { «Φ¿í¬á »α¿ ºáαá߬Ѡ}
  555.   grFontNotFound               = -8; { Φα¿ΣΓ ¡Ñ ¡á⌐ñÑ¡ }
  556.   grNoFontMem                  = -9; { Φα¿ΣΓ ¡Ñ ºáúαπªÑ¡ ó
  557.                                        »á¼∩Γ∞ }
  558.   grInvalidMode                = -10; { ¡Ññ«»πßΓ¿¼δ⌐ αѪ¿¼ }
  559.   grError                      = -11; { «Φ¿í¬á úαáΣ¿¬¿ }
  560.   grIOError                    = -12; { «Φ¿í¬á óó«ñá-óδó«ñá
  561.                                         úαáΣ¿¬¿ }
  562.   grInvalidFont                = -13; { ¡Ññ«»πΓ¿¼δ⌐ Σá⌐½
  563.                                         Φα¿ΣΓá }
  564.   grInvalidFontNum             = -14; { ¡Ññ«»πßΓ¿¼δ⌐ ¡«¼Ñα
  565.                                         Φα¿ΣΓá }
  566. ------------------------------------------------------------
  567.  
  568.  const
  569.    { úαáΣ¿τÑ߬¿Ñ αѪ¿¼δ ñ½∩ ¬áªñ«ú« ñαá⌐óÑαá }
  570.    CGAC1        = 0; { 1 »á½¿Γαá µóÑΓ«ó 320σ200: ¬αáß¡δ⌐,
  571.                        ªÑ½Γδ⌐, ºÑ½Ñ¡δ⌐; 1 ßΓαá¡¿µá }
  572.    CGAC2        = 1; { 2 »á½¿Γαá µóÑΓ«ó 320σ200: ßóÑΓ½«-
  573.                        í¿αóδ⌐, ¼á½¿¡«óδ⌐, íѽδ⌐; 1
  574.                        ßΓαá¡¿µá }
  575.    CGAHi        = 2; { 640σ200, 1 ßΓαá¡¿µá }
  576.    MCGAC1       = 0  { 1 »á½¿Γαá µóÑΓ«ó 320σ200: ¬αáß¡δ⌐,
  577.                        ªÑ½Γδ⌐, ºÑ½Ñ¡δ⌐; 1 ßΓαá¡¿µá }
  578.    MCGAC2       = 1; { 2 »á½¿Γαá µóÑΓ«ó 320σ200: ßóÑΓ½«-
  579.                        í¿αóδ⌐, ¼á½¿¡«óδ⌐, íѽδ⌐; 1
  580.                        ßΓαá¡¿µá }
  581.    MCGAMed      = 2; { 640σ200, 1 ßΓαá¡¿µá }
  582.    MCGAHi       = 3; { 640σ480, 2 µóÑΓá, 1 ßΓαá¡¿µá }
  583.    EGALo        = 0; { 640σ200, 4 ßΓαá¡¿µδ }
  584.    EGAHi        = 1; { 640σ350, 16 µóÑΓ«ó, 2 ßΓαá¡¿µδ }
  585.    EGA64Lo      = 0; { 640σ200, 16 µóÑΓ«ó, 1 ßΓαá¡¿µá }
  586.    EGA64Hi      = 1; { 640σ350, 4 µóÑΓá, 1 ßΓαá¡¿µá }
  587.    EGA64MonoHi  = 3; { 640σ350, 64è ¡á »½áΓπ, 1 ßΓαá¡¿µá -
  588.                        256è ¡á »½áΓπ, 4 ßΓαá¡¿µδ }
  589.    HercMonoHi   = 0; { 720σ348, 2 ßΓαá¡¿µδ }
  590.    ATT400C1     = 0; { 1 »á½¿Γαá µóÑΓ«ó 320σ200: ¬αáß¡δ⌐,
  591.                        ªÑ½Γδ⌐, ºÑ½Ñ¡δ⌐; 1 ßΓαá¡¿µá }
  592.    ATT400C2     = 1; { 2 »á½¿Γαá µóÑΓ«ó 320σ200: ßóÑΓ½«-
  593.                        í¿αóδ⌐, ¼á½¿¡«óδ⌐, íѽδ⌐; 1
  594.                        ßΓαá¡¿µá; 20 - 640σ200, 1 ßΓαá¡¿µá }
  595.    ATT400Med    = 2; { 640σ200, 1 ßΓαá¡¿µá }
  596.    ATT400Hi     = 3; { 640σ200, 1 ßΓαá¡¿µá }
  597.    VGALo        = 0; { 640σ200, 16 µóÑΓ«ó, 4 ßΓαá¡¿µδ }
  598.    VGAMed       = 1; { 640σ350, 16 µóÑΓ«ó, 2 ßΓαá¡¿µδ }
  599.    VGAHi        = 2; { 640σ480, 16 µóÑΓ«ó, 1 ßΓαá¡¿µá }
  600.    VGANi2       = 3; { 640σ480, 2 µóÑΓá, 1 ßΓαá¡¿µá }
  601.    PC3270Hi     = 0; { 720σ350, 1 ßΓαá¡¿µá }
  602.  
  603.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  604.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ CloseGraph, DetectGraph,
  605.      RestoreCrtMode, SetGraphMode, GraphResult, InstallUser-
  606. Driver, SetGraphBufSize, RegisterBGIDriver, RegisterBGIFont,
  607. GraphDefaults.
  608.      Åα¿¼Ñα:
  609.  
  610.  uses  Graph;
  611.  var
  612.    grDriver : integer;
  613.    grMode   : integer;
  614.    EmCode   : integer;
  615.  begin
  616.   gDriver := Detect;
  617.   InitGraph(grDiver,grMode,'');
  618.   ErrCode := GraphResult;
  619.   it ErrCode <> grOk then
  620.   begin                   { óδ»«½¡¿Γ∞ úαáΣ¿τÑ߬¿Ñ Σπ¡¬µ¿¿ }
  621.    Line(0, 0, GetMaxX, GetMaxY);
  622.    Readln;
  623.    CloseGraph;
  624.   end
  625.   else
  626.     Writeln('ÄΦ¿í¬á úαáΣ¿¬¿ : ',GraphErrorMsg(ErrCode));
  627.   end.
  628.  
  629. ------------------------------------------------------------
  630.  Åα«µÑñπαá Insert
  631. ------------------------------------------------------------
  632.      öπ¡¬µ¿∩: éßΓáó½∩ÑΓ ó ßΓ᫬𠻫ñßΓ᫬π.
  633.      Ä»¿ßá¡¿Ñ: Insert(¿ßσ_ßΓ᫬á : string; var s  :  string;
  634. ¿¡ñѬߠ: integer)
  635.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα  "¿ßσ_ßΓ᫬á"  »αÑñßΓáó½∩ÑΓ  ß«í«⌐
  636. óδαáªÑ¡¿Ñ ßΓ᫬«ó«ú« Γ¿»á. Åáαá¼ÑΓα s - »ÑαѼѡ¡á∩ ßΓ᫬«ó«-
  637. ú« Γ¿»á ½εí«⌐ ñ½¿¡δ. Åáαá¼ÑΓα "¿¡ñѬß"  ∩ó½∩ÑΓß∩  óδαáªÑ¡¿Ñ¼
  638. µÑ½«ú«  Γ¿»á.  äá¡¡á∩ »α«µÑñπαá óßΓáó½∩ÑΓ ßΓ᫬π, ºáñáóáѼπε
  639. »áαá¼ÑΓα«¼ "¿ßσ_ßΓ᫬á", ó ßΓ᫬π, ºáñáóáѼπε »áαá¼ÑΓα«¼  s,
  640. ¡áτ¿¡á∩  ß  »«º¿µ¿¿,  «»αÑñѽ∩Ѽ«⌐ »áαá¼ÑΓα«¼ "¿¡ñѬß". àß½¿
  641. »«½πτ¿óΦá∩ß∩ ó αѺπ½∞ΓáΓÑ ßΓα«¬á »αÑóδΦáÑΓ 256 ß¿¼ó«½«ó,  Γ«
  642. «¡á πßѬáÑΓß∩ ñ« 255 ß¿¼ó«½«ó.
  643.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ Delete, Copy, ConCat, Pos.
  644.      Åα¿¼Ñα:
  645.  
  646.  var
  647.    s : string;
  648.  begin
  649.    s := 'Honest Lincoln';
  650.    Insert('Abe',s,8);    { Honest Abe Lincoln }
  651.  
  652. ------------------------------------------------------------
  653.  Åα«µÑñπαá InsLine                               î«ñπ½∞ ært
  654. ------------------------------------------------------------
  655.      öπ¡¬µ¿∩: ìáτ¿¡á∩ ß  »«º¿µ¿¿  ¬παß«αá  óßΓáó½∩ÑΓ  »πßΓπε
  656. ßΓ᫬π.
  657.      Ä»¿ßá¡¿Ñ: InsLine
  658.      Åα¿¼Ñτá¡¿∩: éßÑ ßΓ᫬¿, αáß»«½«ªÑ¡¡δÑ ¡¿ªÑ  ñ«íáó½Ñ¡¡«⌐
  659. ßΓ᫬¿,  »ÑαѼÑΘáεΓß∩  ¡á  «ñ¡π ßΓ᫬π ó¡¿º, á ¡¿ª¡∩∩ ßΓ᫬á
  660. ¿ßτѺáÑΓ ß φ¬αá¡á (»α¿ φΓ«¼ ¿ß»«½∞ºπÑΓß∩ »α«úαá¼¼á "»α«¬απΓ-
  661. ¬¿" ¿º«íαáªÑ¡¿∩ ¡á φ¬αá¡Ñ íẫó«⌐ ß¿ßΓѼδ óó«ñá-óδó«ñá).
  662.      éßѼ »«º¿µ¿∩¼ ß¿¼ó«½«ó ¡«ó«⌐ ßΓ᫬¿ »α¿ßóá¿óáÑΓß∩  º¡á-
  663. τÑ¡¿Ñ  »α«íѽᠠߠΓѬπΘ¿¼¿ áΓα¿íπΓἿ ΓѬßΓá. Æá¬¿¼ «íαẫ¼,
  664. Ñß½¿ »α«µÑñπα«⌐ ÆÑσtéá߬Ground ¡Ñ πßΓá¡«ó½Ñ¡ Σ«¡«óδ⌐  τÑα¡δ⌐
  665. µóÑΓ, Γ« ¡«óá∩ ßΓα«¬á ¿¼ÑÑΓ τÑα¡δ⌐ Σ«¡«óδ⌐ µóÑΓ.
  666.      äá¡¡á∩ »α«µÑñπαá ºáó¿ß¿Γ «Γ ¿ß»«½∞ºπѼ«ú« «¬¡á.  ìá»α¿-
  667. ¼Ñα:
  668.  
  669.      Window(1,10,60,20);
  670.      InsLine;
  671.  
  672. »α¿óÑñÑΓ ¬ óßΓáó¬Ñ ßΓ᫬¿ ñ½¿¡«⌐ ó 60 ß¿¼ó«½«ó ó Γ«τ¬Ñ ß áí-
  673. ß«½εΓ¡δ¼¿ ¬««αñ¿¡áΓἿ (1,10).
  674.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ DelLine, Window.
  675.  
  676. ------------------------------------------------------------
  677.  öπ¡¬µ¿∩ InstallUserDriver                     î«ñπ½∞ Graph
  678. ------------------------------------------------------------
  679.      öπ¡¬µ¿∩: é¬½ετáÑΓ ó Γáí½¿µπ ñαá⌐óÑα«ó  πßΓα«⌐ßΓó  Σ¿α¼á
  680. BGI (ü«α½á¡ñ) ñαá⌐óÑαδ, »«ßΓáó½∩Ѽδ⌐ ñαπú¿¼¿ Σ¿α¼á¼¿.
  681.      Ä»¿ßá¡¿Ñ: InstallUserDriver(¿¼∩ : string; AutoDetectPtr
  682. : pointer)
  683.      Æ¿» αѺπ½∞ΓáΓá: ß½«ó« (word).
  684.      Åα¿¼Ñτá¡¿∩: äá¡¡á∩ »α«µÑñπαá »«ºó«½∩ÑΓ óá¼ ¿ß»«½∞º«óáΓ∞
  685. ñαá⌐óÑαδ πßΓα«⌐ßΓó, «Γ½¿τáεΘ¿Ñß∩ «Γ ñαá⌐óÑα«ó Σ¿α¼δ ü«α½á¡ñ.
  686. Åáαá¼ÑΓα "¿¼∩" »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¿¼∩ ¡«ó«ú«  ñαá⌐óÑαá  πßΓ-
  687. α«⌐ßΓóá.  AutoDetectPrt  -  φΓ«  π¬áºáΓѽ∞ ¡á ¡Ñ«í∩ºáΓѽ∞¡πε
  688. Σπ¡¬µ¿ε áóΓ«¼áΓ¿τÑ߬«ú« αáß»«º¡áóá¡¿∩, ¬«Γ«αá∩ ¼«ªÑΓ  »α¿½á-
  689. úáΓ∞ß∩  ¬  ¡«ó«¼π ñαá⌐óÑαπ. ¥Γá Σπ¡¬µ¿∩ áóΓ«¼áΓ¿τÑ߬«ú« αáß-
  690. »«º¡áóá¡¿∩ ¡Ñ ΓαÑíπÑΓ »áαá¼ÑΓα«ó ¿ ó«ºóαáΘáÑΓ  µÑ½«Ñ  º¡áτÑ-
  691. ¡¿Ñ.
  692.      àß½¿ ó¡πΓαÑ¡¡∩∩ Γáí½¿µá ñαá⌐óÑα«ó ºá»«½¡Ñ¡á, Γ«  »α«µÑ-
  693. ñπαá  InstallUserDriver ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ -11 (grError). é
  694. »α«Γ¿ó¡«¼ ß½πτáÑ ñá¡¡á∩ »α«µÑñπαá »α¿ßóá¿óáÑΓ  ¿  ó«ºóαáΘáÑΓ
  695. ñ½∩ ¡«ó«ú« ñαá⌐óÑαá πßΓα«⌐ßΓóá ¡«¼Ñα φΓ«ú« ñαá⌐óÑαá.
  696.      äαá⌐óÑα »«½∞º«óáΓѽ∩ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñóπ¼∩  ß»«ß«íá-
  697. ¼¿. ÅαÑñ»«½«σ¿¼, π óáß ¿¼ÑÑΓß∩ ¡«óá∩ ó¿ñÑ«»½áΓá SGA ¿ Σ¿α¼á,
  698. ¿ºú«Γ«ó½¿óáεΘá∩  φΓπ  »½áΓπ,  »«ßΓáó½∩ÑΓ  ñ½∩  ¡ÑÑ   ñαá⌐óÑα
  699. SGA.BGI. ìá¿í«½ÑÑ »α«ßΓ«⌐ ß»«ß«í ¿ß»«½∞º«óá¡¿∩ φΓ«ú« ñαá⌐óÑ-
  700. αá   ß«ßΓ«¿Γ   ó   Ñú«   πßΓá¡«ó¬Ñ   ß   »«¼«Θ∞ε   »α«µÑñπαδ
  701. InstallUserDriver ¿ »ÑαÑñáτ¿ ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ (»α¿ßó«-
  702. Ñ¡¡«ú« ¡«¼Ñαá ñαá⌐óÑαá) ¡Ñ»«ßαÑñßΓóÑ¡¡« »α«µÑñπαÑ InitGraph:
  703.  
  704.   var
  705.     Driver, Mode : integer;
  706.   begin
  707.     Driver := InstallUserDriver('SGA.BGI', Nil);
  708.     if Driver = grError then   { Γáí½¿µá »ÑαÑ»«½¡Ñ¡á? }
  709.        Halt(1);
  710.     Mode := 0;      { ¬áªñδ⌐ ñαá⌐óÑα »«ññÑনóáÑΓ αѪ¿¼ 0 }
  711.     InitGraph(Driver, Mode, ''); { ¿º¼Ñ¡¿Γ∞ áóΓ«¼áΓ¿τÑ߬«Ñ
  712.                                    αáß»«º¡áóá¡¿Ñ }
  713.     ...             { ¡ÑΓ úαáΣ¿¬¿ }
  714.   end.
  715.  
  716.      ç¡áτÑ¡¿Ñ nil »áαá¼ÑΓαá AutoDetectPtr  »α¿  «íαáΘÑ¡¿¿  ¬
  717. »α«µÑñπαÑ  InstallUserDriver  »«¬áºδóáÑΓ,  τΓ« ñ½∩ »½áΓδ SGA
  718. Σπ¡¬µ¿∩ áóΓ«¼áΓ¿τÑ߬«ú« αáß»«º¡áóá¡¿∩ «ΓßπΓßΓóπÑΓ.
  719.      äαπú«⌐, í«½ÑÑ «íΘÑ»α¿¡∩Γδ⌐ ß»«ß«í ß«ßΓ«¿Γ ó ¿ß»«½∞º«óá-
  720. ¡¿¿ φΓ«ú« ñαá⌐óÑαá ñ½∩ ßó∩º¿ Σπ¡¬µ¿¿ áóΓ«¼áΓ¿τÑ߬«ú« αáß»«º-
  721. ¡áóá¡¿∩,  ¬«Γ«αá∩  íπñÑΓ  óδºδóáΓ∞ß∩  »α¿  αáí«ΓÑ  »α«µÑñπαδ
  722. InitGraph. ÅαÑñ»«½«ª¿¼, Σ¿α¼á-¿ºú«Γ«ó¿Γѽ∞ »½áΓδ SGA »αÑñ«ß-
  723. Γáó¿½á óá¼ Σπ¡¬µ¿ε  áóΓ«¼áΓ¿τÑ߬«ú«  αáß»«º¡áóá¡¿∩,  ¬«Γ«αá∩
  724. óδú½∩ñ¿Γ ß½ÑñπεΘ¿¼ «íαẫ¼:
  725.  
  726.   {$F+}
  727.   function DetectSGA : integer;
  728.   var Found : Boolean;
  729.   begin
  730.     DetectSGA := grError; { »αÑñ»«½«ª¿¼, »½áΓá «ΓßπΓßΓóπÑΓ }
  731.     Found := ...           { »«¿ß¬ ß««ΓóÑΓßΓóπεΘÑú« á»»áαáΓ-
  732.                              ¡«ú« «íÑß»ÑτÑ¡¿∩ }
  733.     if not Found then
  734.        Exit;               { ¬«ñ ó«ºóαáΓá = -11 }
  735.     DetectSGA := 3;        { ó«ºóαáΓ¿Γ∞ αѬ«¼Ñ¡ñπѼδ⌐ ¿ ¡áº-
  736.                              ¡áτáѼδ⌐ »« π¼«½τá¡¿ε ó¿ñÑ«-
  737.                              αѪ¿¼ }
  738.   end.
  739.   {$F-}
  740.  
  741.      çáñáτá Σπ¡¬µ¿¿ DetectSGA ß«ßΓ«¿Γ ó »«¿ß¬Ñ ó« óαѼ∩  αá-
  742. í«Γδ  »α«úαá¼¼δ á»»áαáΓ¡«ú« «íÑß»ÑτÑ¡¿∩ SGA. àß½¿ »½áΓá SGA
  743. ¡Ñ «í¡áαπªÑ¡á, Γ« ñá¡¡á∩  Σπ¡¬µ¿∩  ó«ºóαáΘáÑΓ  º¡áτÑ¡¿Ñ  -11
  744. (grError).  é  »α«Γ¿ó¡«¼ ß½πτáÑ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ »αÑñß-
  745. Γáó½∩ÑΓ ß«í«⌐ »α¿¡∩Γδ⌐ »« π¼«½τá¡¿ε ó¿ñÑ«αѪ¿¼ ñ½∩ »½áΓδ SGA
  746. («íδτ¡« «¡ «íÑß»Ñτ¿óáÑΓ ¡á¿½πτΦÑÑ ß«τÑΓá¡¿Ñ µóÑΓá ¿ αáºαÑΦá-
  747. εΘÑ⌐ ß«»ß«í¡«ßΓ¿, ¬«Γ«αδÑ ¼«ª¡« ñ«ßΓ¿τ∞ ¡á ñá¡¡«¼ á»»áαáΓ¡«¼
  748. «íÑß»ÑτÑ¡¿¿).
  749.      çá¼ÑΓ¿¼, τΓ« φΓá Σπ¬¡µ¿∩ ¡Ñ ΓαÑíπÑΓ »áαá¼ÑΓα«ó ¿  ó«ºó-
  750. αáΘáÑΓ  µÑ½«τ¿ß½Ñ¡¡«Ñ  º¡áτÑ¡¿Ñ  ß« º¡á¬«¼. Ä¡á ñ«½ª¡á ¿¼ÑΓ∞
  751. ñá½∞¡¿⌐ Γ¿» «íαáΘÑ¡¿∩. Åα¿ πßΓá¡«ó¬Ñ ñαá⌐óÑαá (»πΓѼ «íαáΘÑ-
  752. ¡¿∩  ¬  »α«µÑñπαÑ  InstallUserDriver)  óδ »ÑαÑñáÑΓÑ ¡áα∩ñπ ß
  753. ¿¼Ñ¡Ñ¼  Σá⌐½á,   ß«ñÑαªáΘÑú«   ñαá⌐óÑα   πßΓα«⌐ßΓóá,   áñαÑß
  754. DetectSGA:
  755.  
  756.   var
  757.     Driver, Mode : integer;
  758.     begin
  759.       Driver := InstallUserDriver('SGA.GBI', @DetectSGA);
  760.       if Driver = grError then
  761.          Halt(1);
  762.       Driver := Detect;
  763.       { ¡Ñ íπñѼ πτ¿ΓδóáΓ∞ ñαá⌐óÑα SGA, ñ«óÑα¿¼ß∩ ßαÑñßΓóá¼
  764.         áóΓ«¼áΓ¿τÑ߬«ú« αáß»«º¡áóá¡¿∩ }
  765.       InitGraph(Driver, Mode, '');
  766.       ...
  767.   end.
  768.  
  769.      Å«ß½Ñ Γ«ú«, ¬á¬  óδ  πßΓá¡«ó¿ΓÑ  ñαá⌐óÑα  πßΓα«⌐ßΓóá  ¿
  770. Σπ¡¬µ¿ε  áóΓ«¼áΓ¿τÑ߬«ú« αáß»«º¡áóá¡¿∩, ¼«ª¡« óδºóáΓ∞ »α«µÑ-
  771. ñπαπ InitGraph, ¬«Γ«αá∩ óδ»«½¡¿Γ «íδτ¡δ⌐  »α«µÑßß  áóΓ«¼áΓ¿-
  772. τÑ߬«ú«  αáß»«º¡áóá¡¿∩.  ÅÑαÑñ  ΓѼ, ¬á¬ »α«µÑñπαá InitGraph
  773. óδºδóáÑΓ ßó«ε óßΓα«Ñ¡¡πε Σπ¡¬µ¿ε áóΓ«¼áΓ¿τÑ߬«ú« αáß»«º¡áóá-
  774. ¡¿∩  (DetectGraph),  «¡á óδºδóáÑΓ ß¡áτá½á Σπ¡¬µ¿ε DetectSGA.
  775. àß½¿ DetectSGA ¡Ñ ¡á⌐ñÑΓ á»»áαáΓ¡δσ ßαÑñßΓó SGA, Γ«  ó«ºóαá-
  776. ΘáÑΓß∩ º¡áτÑ¡¿Ñ -11 (grError), á »α«µÑñπαá InitGraph »α«ñ«½-
  777. ª¿Γ óδ»«½¡Ñ¡¿Ñ «íδτ¡«ú« »α«µÑßßá áóΓ«¼áΓ¿τÑ߬«ú« αáß»«º¡áóá-
  778. ¡¿∩ (¬«Γ«αδ⌐ ΓᬪѠ¼«ªÑΓ ó¬½ετáΓ∞ ó ßÑíδ óδº«ó »«½∞º«óáΓѽ∞-
  779. ߬¿σ Σπ¡¬µ¿⌐ áóΓ«¼áΓ¿τÑ߬«ú« αáß»«º¡áóá¡¿∩ ó Γ«¼ »«α∩ñ¬Ñ,  ó
  780. ¬«Γ«α«¼ «¡¿ í뫨 πßΓá¡«ó½Ñ¡δ). àß½¿ ªÑ Σπ¡¬µ¿∩ DetectSGA «»-
  781. αÑñѽ¿Γ ¡á½¿τ¿Ñ SGA, Γ« «¡á ó«ºóαáΘáÑΓ ¡Ñ«Γα¿µáΓѽ∞¡«Ñ  º¡á-
  782. τÑ¡¿Ñ  αѪ¿¼á,  á  InitGraph ¡á⌐ñÑΓ ¿ ºáúαπº¿Γ Σá⌐½ SGA.BGI,
  783. »ÑαÑóÑñÑΓ á»»áαáΓ¡«Ñ «íÑß»ÑτÑ¡¿Ñ ó ¡πª¡δ⌐ αѪ¿¼  (αѬ«¼Ñ¡ñ«-
  784. óá¡¡δ⌐  Σπ¡¬µ¿Ñ⌐  DetectSGA) ¿, ¡á¬«¡Ñµ, »ÑαÑñáßΓ π»αáó½Ñ¡¿Ñ
  785. óáΦÑ⌐ »α«úαá¼¼Ñ.
  786.      Ç¡á½«ú¿τ¡á∩ »α«µÑñπαá ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  787.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ  InitGraph  ¿  RegisterBGI-
  788. Driver.
  789.      Åα¿¼Ñα:
  790.  
  791.  uses Graph;
  792.  var
  793.    Driver, Mode,
  794.    TestDriver,
  795.    ErrCode : integer;
  796.  {$F+}
  797.  function TestDetect : integer;
  798.  { Σπ¬¡µ¿∩ áóΓ«¼áΓ¿τÑ߬«ú« αáß»«º¡áóá¡¿∩: Ñß½¿ ¿¼ÑεΓß∩
  799.    ß««ΓóÑΓßΓóπεΘ¿Ñ á»»áαáΓ¡δÑ ßαÑñßΓóá, «¡á ó«ºóαáΘáÑΓ
  800.    º¡áτÑ¡¿Ñ, αáó¡«Ñ ß««ΓóÑΓßΓóπεΘѼπ »α¿¡¿¼áѼ«¼π »«
  801.    π¼«½τá¡¿ε αѪ¿¼π }
  802.  begin
  803.    TestDetect := 1;  { »« π¼«½τá¡¿ε αѪ¿¼ = 1 }
  804.  end;
  805.  {$F-}
  806.  begin
  807.    { πßΓá¡«ó¿Γ∞ ñαá⌐óÑα }
  808.    TestDriver := InstallDriver('TEST', @TestDetect);
  809.    if GraphResult <> grOk then
  810.    begin
  811.      Writeln('ÄΦ¿í¬á »α¿ πßΓá¡«ó¬Ñ ñαá⌐óÑαá');
  812.      Halt(1);
  813.    end;
  814.    Driver := Detect; { »ÑαÑ⌐Γ¿ ó úαáΣ¿τÑ߬¿⌐ αѪ¿¼ }
  815.    InitGraph(Driver, Mode, '');
  816.    ErrCode := GraphResult;
  817.    If ErrCode <> grOk then
  818.    begin
  819.      Writeln('ôßΓá¡áó½¿óáѼδ⌐ ñαá⌐óÑα »«ññÑনóáÑΓß∩...');
  820.      Readln;
  821.      CloseGraph;
  822.   end.
  823.  
  824. ------------------------------------------------------------
  825.  öπ¡¬µ¿∩ InstallUserFont                       î«ñπ½∞ Graph
  826. ------------------------------------------------------------
  827.      öπ¡¬µ¿∩: ôßΓá¡áó½¿óáÑΓ ¡«óδ⌐ Φα¿ΣΓ, ¡Ñ  »αÑñπß¼«ΓαÑ¡¡δ⌐
  828. ó ß¿ßΓÑ¼Ñ Σ¿α¼δ ü«α½á¡ñ.
  829.      Ä»¿ßá¡¿Ñ: InstallUserFont(¿¼∩_Σá⌐½á_Φα¿ΣΓá : string)
  830.      Åα¿¼Ñτá¡¿∩:  Åáαá¼ÑΓα  "¿¼∩_Σá⌐½á_Φα¿ΣΓá"  »αÑñßΓáó½∩ÑΓ
  831. ß«í«⌐ ¿¼∩ Σá⌐½á "ΦΓα¿σ«ó«ú«" Φα¿ΣΓá. öπ¬¡µ¿∩ InstallUserFont
  832. ó«ºóαáΘáÑΓ ¡«¼Ñα Φα¿ΣΓá, ¬«Γ«αδ⌐  ¼«ª¡«  »ÑαÑñáΓ∞  »α«µÑñπαÑ
  833. SetTextStyle ñ½∩ óδí«αá φΓ«ú« Φα¿ΣΓá. àß½¿ ó¡πΓαÑ¡¡∩∩ Γáí½¿-
  834. µá  Φα¿ΣΓ«ó  »ÑαÑ»«½¡Ñ¡á,   Γ«   ó«ºóαáΘáÑΓß∩   º¡áτÑ¡¿Ñ   0
  835. (DefaultFont).
  836.      Ç¡á½«ú¿τ¡á∩ Σπ¡¬µ¿∩ ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  837.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ SetTextStyle.
  838.      Åα¿¼Ñα:
  839.  
  840.   uses Graph;
  841.   var
  842.     Driver, Mode : integer;
  843.     TestFont : integer;
  844.   begin
  845.    TestFont := InstallUserFont('TEST'); { πßΓá¡«ó¿Γ∞ Φα¿ΣΓ }
  846.    if GraphResult <> grOk then
  847.    begin
  848.      Writeln('ÄΦ¿í¬á »α¿ πßΓá¡«ó¬Ñ Φα¿ΣΓá TestFont; íπñÑΓ
  849.  ¿ß»«½∞º«óáΓ∞ß∩ DefaultFont');
  850.      Readln;
  851.    end;
  852.    Driver := Detect; { »ÑαÑóÑßΓ¿ ó úαáΣ¿τÑ߬¿⌐ αѪ¿¼ }
  853.    InitGraph(Driver, Mode, '');
  854.    if GraphResult <> grOk then
  855.       Halt(1);
  856.    SetTextStyle(TestFOnt, HorizDir, 2); { ¿ß»«½∞º«óáΓ∞ ¡«óδ⌐
  857.                                           Φα¿ΣΓ }
  858.    OutText('Å«ññÑনóáÑΓß∩ ¡«óδ⌐ πßΓá¡«ó½Ñ¡¡δ⌐ Φα¿ΣΓ...');
  859.    Readln
  860.    GloseGraph;
  861.   end.
  862.  
  863. ------------------------------------------------------------
  864.  öπ¡¬µ¿∩ Int
  865. ------------------------------------------------------------
  866.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ µÑ½πε τáßΓ∞ áαúπ¼Ñ¡Γá.
  867.      Ä»¿ßá¡¿Ñ: Int(x : real)
  868.      Æ¿» αѺπ½∞ΓáΓá: éÑΘÑßΓóÑ¡¡δ⌐ (real).
  869.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα x »αÑñßΓáó½∩ÑΓ ß«í«⌐ óδαáªÑ¡¿Ñ óÑ-
  870. ΘÑßΓóÑ¡¡«ú« Γ¿»á. ÉѺπ½∞ΓáΓ«¼ íπñÑΓ µÑ½á∩ τáßΓ∞ x, Γ« ÑßΓ∞ x
  871. «¬απú½∩ÑΓß∩ ó ßΓ«α«¡π ¡π½∩.
  872.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¬¡µ¿ε Fráß.
  873.      Åα¿¼Ñα:
  874.  
  875.   var
  876.     r : real;
  877.   begin
  878.     r := Int(123.456);                  { 123 }
  879.   end.
  880.  
  881. ------------------------------------------------------------
  882.  Åα«µÑñπαá Intr                                  î«ñπ½∞ Dos
  883. ------------------------------------------------------------
  884.      öπ¡¬µ¿∩: éδ»«½¡∩ÑΓ ºáñá¡¡«Ñ »α«úαá¼¼¡«Ñ »αÑαδóá¡¿Ñ.
  885.      Ä»¿ßá¡¿Ñ: Intr(¡«¼Ñα_»αÑα : byte; var Regs : Registers)
  886.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα "¡«¼Ñα_»αÑα"  -  φΓ«  ¡«¼Ñα  »α«ú-
  887. αá¼¼¡«ú«  »αÑαδóá¡¿∩  (0...255). Registers ∩ó½∩ÑΓß∩ ºá»¿ß∞ε,
  888. «»αÑñѽѡ¡«⌐ äÄæ ß½ÑñπεΘ¿¼ «íαẫ¼:
  889.  
  890.  type
  891.    Registers = record
  892.                 case integer of
  893.                  0: (AX,BX,CX,X,BP,SI,DS,ES,Flags: word);
  894.                  1: (AL,AH,BL,BH,CL,CH,DL,DH: byte);
  895.                end;
  896.  
  897.      ÅÑαÑñ óδ»«½¡Ñ¡¿Ñ¼  π¬áºá¡¡«ú«  »α«úαá¼¼¡«ú«  »αÑαδóá¡¿∩
  898. Σπ¡¬µ¿∩  Intr, ¿ß»«½∞ºπ∩ ºá»¿ß∞ RÑgs, ºáúαπªáÑΓ αÑú¿ßΓαδ Çò,
  899. éò, æò, Dò, éÉ, SI, DI, DS ¿ àS »α«µÑßß«αá 8086. Å«ß½Ñ Γ«ú«,
  900. ¬á¬ »αÑαδóá¡¿Ñ íπñÑΓ óδ»«½¡Ñ¡«, ß«ñÑন¼«Ñ αÑú¿ßΓα«ó Çò, éò,
  901. æò, Dò, éÉ, S1, DI, DS, àS ¿ αÑú¿ßΓα«ó Σ½áú«ó «»∩Γ∞ ß«σαá¡∩-
  902. ÑΓß∩ ó ºá»¿ß¿ Regs.
  903.      ä½∩ »«½πτÑ¡¿∩ í«½ÑÑ »«ñα«í¡«⌐ ¿¡Σ«α¼áµ¿¿ »«  αáºαáí«Γ¬Ñ
  904. »α«µÑñπα «íαáí«Γ¬¿ »αÑαδóá¡¿⌐ ß¼. αáºñѽ "Äíαáí«Γ¬á »αÑαδóá-
  905. ¡¿⌐" ó â½áóÑ 15 ("é¡πΓαÑ¡¡∩∩ «αúá¡¿ºáµ¿∩ Æπαí«-Åá߬á½∩").
  906.      Äúαá¡¿τÑ¡¿∩: Åα«úαá¼¼¡δÑ  »αÑαδóá¡¿∩,  ñ½∩  ¬«Γ«αδσ  ¡á
  907. óσ«ñÑ  ΓαÑíπÑΓß∩  ºáñá¡¿Ñ  «»αÑñѽѡ¡δσ º¡áτÑ¡¿⌐ ó SÉ ¿½¿ SS
  908. ¿½¿ ¿º¼Ñ¡∩εΓ º¡áτÑ¡¿∩ SÉ ¿ SS ¡á  óδσ«ñÑ,  ß  ¿ß»«½∞º«ó᡿Ѽ
  909. ñá¡¡«⌐ »α«µÑñπαδ óδ»«½¡∩Γ∞ß∩ ¡Ñ ¼«úπΓ.
  910.      ÄΓ½¿τ¿∩: é óÑαß¿¿ 3.0 Æπαí«-Åá߬á½∩ »Ñα¼Ñ¡¡á∩ Registers
  911. »ÑαÑñáóáѼá∩ »α«µÑñπαÑ Intr, ¿¼Ñ½á Γ¿», «»αÑñѽ∩Ѽδ⌐ »«½∞º«-
  912. óáΓѽѼ. é óÑαß¿∩σ 4.0 ¿ 5.0 φΓá »ÑαѼѡ¡á∩ ñ«½ª¡á ¿¼ÑΓ∞ Γ¿»
  913. Registers, «»αÑñѽѡ¡δ⌐ ó ¼«ñπ½Ñ Dos.
  914.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ MsDos.
  915.  
  916. ------------------------------------------------------------
  917.  öπ¡¬µ¿∩ IOResult
  918. ------------------------------------------------------------
  919.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ µÑ½«Ñ º¡áτÑ¡¿Ñ, »αÑñßΓáó½∩εΘÑÑ  ß«-
  920. í«⌐ ß«ßΓ«∩¡¿Ñ »«ß½Ññ¡Ñ⌐ óδ»«½¡Ñ¡«⌐ «»ÑαᵿÑ⌐ óó«ñá-óδó«ñá.
  921.      Ä»¿ßá¡¿Ñ: IOResult
  922.      Æ¿» αѺπ½∞ΓáΓá: æ½«ó« (word).
  923.      Åα¿¼Ñτá¡¿∩: ùΓ«íδ »ÑαÑσóáΓ¿Γ∞ «Φ¿í¬¿ óó«ñá-óδó«ñá,  ¿ß-
  924. »«½∞ºπ∩  Σπ¡¬µ¿ε IORÑsult, »α«óÑα¬á óó«ñá-óδó«ñá ñ«½ª¡á íδΓ∞
  925. ó䬽ετÑ¡á (ñ¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá {$I-}). àß½¿ »α«óÑα¬á  óó«-
  926. ñá-óδó«ñá  ó䬽ετѡᠠ¿  »α«¿ßσ«ñ¿Γ «Φ¿í¬á óó«ñá-óδó«ñá, Γ«,
  927. »«¬á óδ»«½¡∩ÑΓß∩ «íαáΘÑ¡¿Ñ ¬ Σπ¡¬µ¿¿ IORÑsult, óßÑ »«ß½Ññπε-
  928. Θ¿Ñ  «»Ñαᵿ¿ óó«ñá-óδó«ñá ¿ú¡«α¿απεΓß∩. ÄíαáΘÑ¡¿Ñ ó Σπ¡¬µ¿¿
  929. IORÑsult ßíαáßδóáÑΓ ÑÑ ó¡πΓαÑ¡¡¿⌐ Σ½áú «Φ¿í¬¿.
  930.      ÅÑαÑτÑ¡∞ ó«ºóαáΘáѼδ󠬫ñ«ó «Φ¿í«¬ »α¿óÑñÑ¡ ó  Åα¿½«ªÑ-
  931. ¡¿¿ 1 ("æ««íΘÑ¡¿∩ «í «Φ¿í¬áσ ¿ ¬«ñδ «Φ¿í«¬"). ç¡áτÑ¡¿Ñ 0 «Γ-
  932. αáªáÑΓ πß»ÑΦ¡«Ñ óδ»«½¡Ñ¡¿Ñ «»Ñαᵿ¿ óó«ñá-óδó«ñá.
  933.      ÄΓ½¿τ¿∩: é óÑαß¿¿ 3.0 Æπαí«-Åá߬á½∩ ¬«ñδ ¡Ñ¬«Γ«αδσ «Φ¿-
  934. í«¬ í뫨 ñαπú¿¼¿.
  935.      Åα¿¼Ñα:
  936.  
  937.  var
  938.    f : file of byte;
  939.  begin
  940.    { »«½πτ¿Γ∞ ¬«¼á¡ñ¡πε ßΓ᫬π ß ¿¼Ñ¡Ñ¼ Σá⌐½á }
  941.    Assign(f, ParamStr(1));
  942.    {$I-}
  943.    Reset(f);
  944.    {$I+}
  945.    if IOResult = 0 then
  946.        Writeln('ÉẼÑα Σá⌐½á ó íá⌐Γáσ :',FileSize(f));
  947.    else
  948.        Writeln('öá⌐½ ¡Ñ ¡á⌐ñÑ¡');
  949.   end.
  950.  
  951. ------------------------------------------------------------
  952.  Åα«µÑñπαá Keep                                  î«ñπ½∞ Dos
  953. ------------------------------------------------------------
  954.      öπ¡¬µ¿∩: Åα«µÑñπαá èÑÑp (ºáóÑαΦ¿Γ∞ αáí«Γπ ¿ «ßΓáó¿Γ∞  ó
  955. »á¼∩Γ¿)  »αÑαδóáÑΓ  αáí«Γπ »α«úαá¼¼δ ¿ «ßΓáó½∩ÑΓ ÑÑ αѺ¿ñÑ¡-
  956. Γ¡«⌐ ó »á¼∩Γ¿.
  957.  
  958.      Ä»¿ßá¡¿Ñ: Keep(¬«ñ_ºáóÑαΦÑ¡¿∩ : word)
  959.      Åα¿¼Ñτá¡¿∩: éÑß∞ ¬«ñ »α«úαá¼¼δ, ó¬½ετá∩ ßÑú¼Ñ¡Γ ñá¡¡δσ,
  960. ßÑú¼Ñ¡Γ ßΓѬᠿ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽπε «í½áßΓ∞, «ßΓáÑΓß∩
  961. αѺ¿ñÑ¡Γ¡δ¼ ó »á¼∩Γ¿. Å«φΓ«¼π ¡Ñ«íσ«ñ¿¼«  πíÑñ¿Γ∞ß∩  ó  Γ«¼,
  962. τΓ«  ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá $î óδ ºáñ὿ ¼á¬ß¿¼á½∞-
  963. ¡δ⌐  αẼÑα  ñ¿¡á¼¿τÑ߬¿  αáß»αÑñѽ∩Ѽ«⌐  «í½áßΓ¿.  Åáαá¼ÑΓα
  964. "¬«ñ_ºáóÑαΦÑ¡¿∩" ß««ΓóÑΓßΓóπÑΓ ¬«ñπ ºáóÑαΦÑ¡¿∩, »ÑαÑñáóáѼ«-
  965. ¼π ßΓá¡ñáαΓ¡«⌐ »α«µÑñπαÑ ìált.
  966.      Äúαá¡¿τÑ¡¿∩: äá¡¡«⌐ »α«µÑñπα«⌐ ß½ÑñπÑΓ  »«½∞º«óáΓ∞ß∩  ß
  967. «ßë᫪¡«ßΓ∞ε.  Åα«úαá¼¼δ,  ºáóÑαΦáεΘ¿Ñ  αáí«Γπ ¿ «ßΓáεΘ¿Ñß∩
  968. αѺ¿ñÑ¡Γ¡δ¼¿ ó »á¼∩Γ¿, ñ«ó«½∞¡« ß½«ª¡δ ¿ ñ½∩ ¡¿σ ¡Ñ  »αÑñπß-
  969. ¼«ΓαÑ¡« ¡¿¬á¬«⌐ ñαπú«⌐ »«ññÑ᪬¿. ü«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩
  970. ß«ñÑনΓß∩ ó ΓÑσ¡¿τÑ߬«⌐ ñ«¬π¼Ñ¡Γᵿ¿ »« äÄæ.
  971.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ DosExitCode.
  972.  
  973. ------------------------------------------------------------
  974.  öπ¡¬µ¿∩ KeyPressed                              î«ñπ½∞ ært
  975. ------------------------------------------------------------
  976.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ ÆruÑ, Ñß½¿  ¡á  ¬½áó¿áΓπαÑ
  977. ¡áªáΓá ¬½áó¿Φá ¿ False ó »α«Γ¿ó¡«¼ ß½πτáÑ.
  978.      Ä»¿ßá¡¿Ñ: KeyPressed
  979.      Æ¿» αѺπ½∞ΓáΓá: üπ½Ñó߬¿⌐ (boolean).
  980.      Åα¿¼Ñτá¡¿∩: æ¿¼ó«½ (¿½¿ ß¿¼ó«½δ) «ßΓáεΓß∩ ó íπΣÑαÑ ¬½á-
  981. ó¿áΓπαδ.  äá¡¡á∩ »α«µÑñπαá ¡Ñ αáß»«º¡áÑΓ ¬½áó¿Φ »ÑαÑó«ñá αÑ-
  982. ú¿ßΓαá, Γᬿσ, ¬á¬ Shift, Çlt, NumLock ¿ Γ.ñ.
  983.      ÄΓ½¿τ¿∩: é óÑαß¿¿ 3.0 »α«óÑα¬á ¡á  ß¿Γπáµ¿ε  ætrl-érÑá¬
  984. ñ«½ª¡á íδ½á íδΓ∞ ó䬽ετÑ¡á ({$æ-}), ó óÑαß¿¿ 4.0 ¿ 5.0 Γᬫ-
  985. ú« «úαá¡¿τÑ¡¿∩ ¡ÑΓ.
  986.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ ReadKey.
  987.      Åα¿¼Ñα:
  988.  
  989.  uses Crt;
  990.  begin
  991.    repeat
  992.      Write('Xx');       { ºá»«½¡∩Γ∞ φ¬αá¡, »«¬á ¡áªáΓá ¬½á-
  993.                           ó¿Φá }
  994.     until KeyPressed;
  995.  end;
  996.  
  997. ------------------------------------------------------------
  998.  öπ¡¬µ¿∩ Length
  999. ------------------------------------------------------------
  1000.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ñ¿¡á¼¿τÑ߬πε ñ½¿¡π ßΓ᫬¿.
  1001.      Ä»¿ßá¡¿Ñ: Length(s : string)
  1002.      Æ¿» αѺπ½∞ΓáΓá: ûѽδ⌐ (integer).
  1003.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα  s  »αÑñßΓáó½∩ÑΓ  ß«í«⌐  óδαáªÑ¡¿Ñ
  1004. ßΓ᫬«ó«ú« Γ¿»á. ÉѺπ½∞ΓáΓ«¼ íπñÑΓ ñ½¿¡á s.
  1005.      Åα¿¼Ñα:
  1006.  
  1007.   var
  1008.     s : string;
  1009.     i : word;
  1010.   begin
  1011.     s := 'abc';
  1012.     for i := 1 to Lenth(s) do
  1013.       s[i] := UpCese(s[i]);
  1014.       Writeln(s);                       { ABC }
  1015.   end.
  1016.  
  1017. ------------------------------------------------------------
  1018.  Åα«µÑñπαá Line                                î«ñπ½∞ Graph
  1019. ------------------------------------------------------------
  1020.      öπ¡¬µ¿∩: É¿ßπÑΓ »α∩¼πε ½¿¡¿ε ¿º Γ«τ¬¿ (x1,y1)  ó  Γ«τ¬π
  1021. (x2,y2).
  1022.      Ä»¿ßá¡¿Ñ: Line(x1, y1, x2, y2 : integer)
  1023.      Åα¿¼Ñτá¡¿∩: É¿ßπÑΓ »α∩¼πε, Γ«½Θ¿¡á ¿ Γ¿» ¬«Γ«α«⌐  ºáñá-
  1024. εΓß∩  »α«µÑñπα«⌐ SetLineStyle, á µóÑΓ πßΓá¡áó½¿óáÑΓß∩ »α«µÑ-
  1025. ñπα«⌐ SetColor.
  1026.      çá¼ÑΓ¿¼, τΓ«
  1027.  
  1028.      MoveTo(100,100);
  1029.      LineTo(200,200);
  1030.  
  1031. φ¬ó¿óá½Ñ¡Γ¡«
  1032.  
  1033.      LineTo(100,100,200,200);
  1034.      MoveTo(200,200);
  1035.  
  1036.      êß»«½∞ºπ⌐ΓÑ ñá¡¡πε »α«µÑñπαπ Γ«½∞¬« ó Γ«¼ ß½πτáÑ, ¬«úñá
  1037. ΓѬπΦ¿⌐  π¬áºáΓѽ∞  ¡áσ«ñ¿Γß∩  ó «ñ¡«¼ ¿º ¬«¡µ«ó ßΓ᫬¿, ¿½¿
  1038. ¬«úñá óδ σ«Γ¿ΓÑ, τΓ«íδ »«º¿µ¿∩ ΓѬπΘÑú« π¬áºáΓѽ∩ »«ß½Ñ  óδ-
  1039. τÑατ¿óá¡¿∩  ½¿¡¿¿ áóΓ«¼áΓ¿τÑ߬¿ ¿º¼Ñ¡¿½áß∞. çá¼ÑΓ¿¼, τΓ« ½¿-
  1040. ¡¿∩ ¡Ñ ¿º¼Ñ¡∩ÑΓ ΓѬπΘ¿⌐ π¬áºáΓѽ∞.
  1041.      Ç¡á½«ú¿τ¡á∩ »α«µÑñπαá ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  1042.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  1043.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ LineTo, MoveTo,  Rectangle,
  1044. SetColor, SetLineStyle.
  1045.      Åα¿¼Ñα:
  1046.  
  1047.   uses Crt, Graph;
  1048.   var
  1049.     Gd, Gm : integer;
  1050.   begin
  1051.     Gd := Detect;
  1052.     InitGraph(gd, Gm, '');
  1053.     if GraphResult <> 0 then
  1054.        Halt(1);
  1055.  Randomize;
  1056.  repeat
  1057.    Line(Random(200),Random(200),Random(200),Random(200));
  1058.  until KeyPressed;
  1059.  Readln;
  1060.  CloseGraph;
  1061.  end.
  1062.  
  1063. ------------------------------------------------------------
  1064.  Åα«µÑñπαá LineRel                             î«ñπ½∞ Graph
  1065. ------------------------------------------------------------
  1066.      öπ¡¬µ¿∩:  Åα«ó«ñ¿Γ »α∩¼πε ó Γ«τ¬π, ºáñá¡¡πε
  1067. «Γ¡«ß¿Γѽ∞¡δ¼ αáßßΓ«∩¡¿Ñ¼ «Γ ΓѬπΘÑú« π¬áºáΓѽ∩ (æÉ).
  1068.      Ä»¿ßá¡¿Ñ: LineRel(Dx,Dy)
  1069.      Åα¿¼Ñτá¡¿∩:  äá¡¡á∩  »α«µÑñπαá óδτÑατ¿óáÑΓ »α∩¼πε ½¿¡¿ε
  1070. ¿º ΓѬπΘÑ⌐ Γ«τ¬¿ ó Γ«τ¬π,  ºáñá¡¡πε «Γ¡«ß¿Γѽ∞¡δ¼ αáßΓ«∩¡¿Ñ¼
  1071. (Dσ,Dπ) «Γ ΓѬπΘÑú« π¬áºáΓѽ∩. Åα«µÑñπαá α¿ßπÑΓ »α∩¼πε,
  1072. Γ«½Θ¿¡á ¿ Γ¿» ¬«Γ«α«⌐ ºáñáεΓß∩  »α«µÑñπα«⌐ SetLineStyle, á
  1073.  µóÑΓ
  1074. πßΓá¡áó½¿óáÑΓß∩ »α«µÑñπα«⌐  SetColor.  ÄΓ¡«ß¿Γѽ∞¡δÑ ¬«¼á¡ñδ
  1075. »ÑαѼÑΘÑ¡¿∩ ¿ α¿ß«óá¡¿∩  »«½Ñº¡δ »α¿  óδτÑατ¿óá¡¿¿ αẽ¿τ¡δσ
  1076. «íΩÑ¬Γ«ó ¡á φ¬αá¡Ñ, π ¬«Γ«αδσ ¡áτá½∞¡á∩ Γ«τ¬á ¼«ªÑΓ íδΓ∞
  1077. ¿º¼Ñ¡Ñ¡á (τΓ«íδ, ¡á»α¿¼Ñα, óδτÑαΓ¿Γ∞ Γπ ªÑ ßá¼πε Σ¿úπαπ ó
  1078. ñαπú«¼ ¼ÑßΓÑ φ¬αá¡á).
  1079.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  1080.      Åα«τÑÑ: æ¼.  ΓᬪѠ »α«µÑñπαδ  Line,  LineTo,  MoveRel,
  1081.  MoveTo, SetLineStyle.
  1082.      Åα¿¼Ñα:
  1083.  
  1084.  uses Graph;
  1085.   var
  1086.     Gd, Gm : integer;
  1087.   begin
  1088.     Gd := Detect;
  1089.     InitGraph(gd, Gm, '');
  1090.     if GraphResult <> 0 then
  1091.        Halt(1);
  1092.  begin
  1093.   MoveTo(1,2);
  1094.   LineRel(10,10);       { »α«óÑßΓ¿ »α∩¼πε ó Γ«τ¬π (11,12) }
  1095.   end;
  1096.   Readln;
  1097.   CloseGraph;
  1098.  end.
  1099.  
  1100. ------------------------------------------------------------
  1101.  Åα«µÑñπαá LineTo                              î«ñπ½∞ Graph
  1102. ------------------------------------------------------------
  1103.      öπ¡¬µ¿∩: É¿ßπÑΓ »α∩¼πε ½¿¡¿ε ¿º Γ«τ¬¿, ó ¬«Γ«α«⌐  ¡áσ«-
  1104. ñ¿Γß∩ ΓѬπΘ¿⌐ π¬áºáΓѽ∞, ó Γ«τ¬π (x,y).
  1105.      Ä»¿ßá¡¿Ñ: LineTo(x, y : integer)
  1106.      Åα¿¼Ñτá¡¿∩: É¿ßπÑΓ »α∩¼πε, Γ«½Θ¿¡á ¿ Γ¿» ¬«Γ«α«⌐  ºáñá-
  1107. εΓß∩  »α«µÑñπα«⌐ SetLineStyle, á µóÑΓ πßΓá¡áó½¿óáÑΓß∩ »α«µÑ-
  1108. ñπα«⌐ SetColor.
  1109.      çá¼ÑΓ¿¼, τΓ«
  1110.  
  1111.      MoveTo(100,100);
  1112.      LineTo(200,200);
  1113.  
  1114. φ¬ó¿óá½Ñ¡Γ¡«
  1115.  
  1116.      Line(100,100,200,200);
  1117.  
  1118.      ÅÑαóδ⌐ ¼ÑΓ«ñ ΓαÑíπÑΓ í«½∞ΦÑ óαѼѡ¿  ñ½∩  óδ»«½¡Ñ¡¿∩  ¿
  1119. í«½∞ΦÑú«  «íΩѼᠠ»á¼∩Γ¿  ñ½∩ óδ»«½¡∩Ѽ«ú« ¬«ñá. êß»«½∞ºπ⌐ΓÑ
  1120. »α«µÑñπαπ LineÆ« Γ«½∞¬« ¬«úñá ΓѬπΘ¿⌐ π¬áºáΓѽ∞ ¡áσ«ñ¿Γß∩  ó
  1121. «ñ¡«¼ ¿º ¬«¡µ«ó »α∩¼«⌐. ÄΓ¼ÑΓ¿¼, τΓ« óΓ«α«⌐ ¼ÑΓ«ñ ¡Ñ ¿º¼Ñ¡∩-
  1122. ÑΓ º¡áτÑ¡¿∩ ΓѬπΘÑú« π¬áºáΓѽ∩.
  1123.      Åα«µÑñπαá LinÑÆ« »ÑαѼÑΘáÑΓ ΓѬπΘ¿⌐ π¬áºáΓѽ∞  ó  Γ«τ¬π
  1124. (x,y).
  1125.      Ç¡á½«ú¿τ¡á∩ »α«µÑñπαá ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  1126.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  1127.      Åα«τÑÑ: æ¼.  ΓᬪѠ »α«µÑñπαδ  Line,  LineRel,  MoveTo,
  1128. MoveRel, SetLineStyle.
  1129.      Åα¿¼Ñα:
  1130.  
  1131.   var
  1132.     Gd, Gm : integer;
  1133.   begin
  1134.     Gd := Detect;
  1135.     InitGraph(gd, Gm, '');
  1136.     if GraphResult <> 0 then
  1137.        Halt(1);
  1138.   Randomize;
  1139.   repeat
  1140.     LineTo(Random(200),Random(200));
  1141.   until KeyPressed;
  1142.   Readln;
  1143.   CloseGraph;
  1144.  end.
  1145.  
  1146. ------------------------------------------------------------
  1147.  öπ¡¬µ¿∩ Ln
  1148. ------------------------------------------------------------
  1149.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ¡áΓπαá½∞¡δ⌐ ½«úáα¿Σ¼ áαúπ¼Ñ¡Γá.
  1150.      Ä»¿ßá¡¿Ñ: Ln(x : real)
  1151.      Æ¿» αѺπ½∞ΓáΓá: éÑΘÑßΓóÑ¡¡δ⌐ (real).
  1152.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα x ∩ó½∩ÑΓß∩ óδαáªÑ¡¿Ñ¼ óÑΘÑßΓóÑ¡¡«-
  1153. ú« Γ¿»á. ÉѺπ½∞ΓáΓ«¼ íπñÑΓ ¡áΓπαá½∞¡δ⌐ ½«úáα¿Σ¼ x.
  1154.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿ε àxp.
  1155.  
  1156. ------------------------------------------------------------
  1157.  öπ¡¬µ¿∩  Lo
  1158. ------------------------------------------------------------
  1159.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ¼½áñΦ¿⌐ íá⌐Γ áαúπ¼Ñ¡Γá.
  1160.      Ä»¿ßá¡¿Ñ: L«(x)
  1161.      Æ¿» αѺπ½∞ΓáΓá: üá⌐Γ (byte).
  1162.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα x - φΓ« »áαá¼ÑΓα µÑ½«ú«  Γ¿»á  ¿½¿
  1163. »áαá¼ÑΓα  ñ½¿¡«⌐ ó ß½«ó«. öπ¡¬µ¿∩ L« ó«ºóαáΘáÑΓ ¼½áñΦ¿⌐ íá⌐Γ
  1164. x ó ¬áτÑßΓóÑ º¡áτÑ¡¿∩ íѺ º¡á¬á.
  1165.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿¿ Hi, Swap.
  1166.      Åα¿¼Ñα:
  1167.  
  1168.   var
  1169.     w : word;
  1170.   begin
  1171.     w := Lo($1234);                       { $34 }
  1172.   end.
  1173.  
  1174.  
  1175. ------------------------------------------------------------
  1176.  Åα«µÑñπαá LowVideo                              î«ñπ½∞ Crt
  1177. ------------------------------------------------------------
  1178.      öπ¡¬µ¿∩: éδí¿αáÑΓ ß¿¼ó«½δ ß »«¡¿ªÑ¡¡«⌐ ∩ᬫßΓ∞ε.
  1179.      Ä»¿ßá¡¿Ñ: LowVideo
  1180.      Åα¿¼Ñτá¡¿∩: é ¼«ñπ½Ñ ært  ¿¼ÑÑΓß∩  íá⌐Γ«óá∩  »ÑαѼѡ¡á∩
  1181. ÆÑσtÇttr,  ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ σαá¡Ñ¡¿∩ ΓѬπΘ¿σ áΓα¿íπ-
  1182. Γ«ó ¿º«íαáªÑ¡¿∩. Åα«µÑñπαá LowVideo «τ¿ΘáÑΓ ñ½∩ µóÑΓá ß¿¼ó«-
  1183. ½«ó  »ÑαѼѡ¡«⌐ ÆÑσtÇttr í¿Γ »«ñßóÑΓ¬¿. Æá¬¿¼ «íαẫ¼, µóÑΓá
  1184. 0..7 «Γ«íαáªáεΓß∩ ó µóÑΓá 8..15.
  1185.      ÄΓ½¿τ¿∩: é óÑαß¿¿ 3.0 »α«µÑñπαá LowVideo óßÑúñá óδí¿αá-
  1186. ½á ªÑ½Γδ⌐ µóÑΓ ¡á τÑα¡«¼ Σ«¡Ñ.
  1187.      Åα«τÑÑ:  æ¼.  ΓᬪѠ »α«µÑñπαδ  HighVideo,   NormVideo,
  1188. TextColor, TextBackGround.
  1189.      Åα¿¼Ñα:
  1190.  
  1191.  uses Crt;
  1192.  begin
  1193.    TextAttr := White;
  1194.    LowVideo;               { µóÑΓ ßΓá¡«ó¿Γß∩ ßóÑΓ½«-ßÑαδ¼ }
  1195.  end.
  1196.  
  1197. ------------------------------------------------------------
  1198.  Åα«µÑñπαá îárk
  1199. ------------------------------------------------------------
  1200.      öπ¡¬µ¿∩: çỿßδóáÑΓ  ó  »ÑαѼѡ¡«⌐-π¬áºáΓѽѠ ß«ßΓ«∩¡¿Ñ
  1201. ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩Γ¿.
  1202.      Ä»¿ßá¡¿Ñ: Mark(var p: Pointer)
  1203.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα p ∩ó½∩ÑΓß∩  »ÑαѼѡ¡«⌐-π¬áºáΓѽѼ,
  1204. ß««ΓóÑΓßΓóπεΘÑ⌐ ½εí«¼π Γ¿»π π¬áºáΓѽ∩. ÆÑ¬πΘÑÑ º¡áτÑ¡¿Ñ π¬á-
  1205. ºáΓѽ∩ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩Γ¿ ºá»¿ßδóáÑΓ-
  1206. ß∩ ó p ¿ ¼«ªÑΓ ó »«ß½ÑñßΓó¿¿ ¿ß»«½∞º«óáΓ∞ß∩ ó ¬áτÑßΓóÑ áαúπ-
  1207. ¼Ñ¡Γá »α«µÑñπαδ RÑlease.
  1208.      Äúαá¡¿τÑ¡¿∩: àß½¿ ¡Ñ  ß«í½εñÑ¡δ  «»αÑñѽѡ¡δÑ  »αáó¿½á,
  1209. »α«µÑñπαδ îár¬ ¿ RÑlease ¡Ñ½∞º∩ ¿ß»«½∞º«óáΓ∞ ó¼ÑßΓ« »α«µÑñπα
  1210. Dispose ¿ FrÑÑîѼ. Å«½¡«Ñ «íßπªñÑ¡¿Ñ φΓ«ú« ó«»α«ßá »α¿ó«ñ¿Γ-
  1211. ß∩ ó â½áóÑ 26, ó αáºñѽѠ»«ñ ºáú½áó¿Ñ¼ "Åα«úαá¼¼á π»αáó½Ñ¡¿∩
  1212. ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ∞ε".
  1213.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ Release, FreeMem, Dispose.
  1214.  
  1215. ------------------------------------------------------------
  1216.  öπ¡¬µ¿∩ MaxAvail
  1217. ------------------------------------------------------------
  1218.      öπ¡¬µ¿∩:  é«ºóαáΘáÑΓ  αẼÑα  ¡á¿í«½∞ΦÑú«  ¡Ñ»αÑαδó¡«ú«
  1219. ßó«í«ñ¡«ú« í½«¬á ó ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿, ß««Γ-
  1220. óÑΓßΓóπεΘ¿⌐ αẼÑαπ ¡á¿í«½∞ΦÑ⌐ ñ¿¡á¼¿τÑ߬«⌐ »ÑαѼѡ¡«⌐,  ñ½∩
  1221. ¬«Γ«α«⌐ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ ¼«ªÑΓ íδΓ∞ óδñѽѡᠻá¼∩Γ∞.
  1222.      Ä»¿ßá¡¿Ñ: MaxAvail
  1223.      Æ¿» αѺπ½∞ΓáΓá: ä½¿¡¡δ⌐ µÑ½δ⌐ (longint).
  1224.      Åα¿¼Ñτá¡¿∩: äá¡¡«Ñ º¡áτÑ¡¿Ñ óδτ¿ß½∩ÑΓß∩ »πΓѼ ßαáó¡Ñ¡¿∩
  1225. óßÑσ  ßó«í«ñ¡δσ í½«¬«ó, αáß»«½«ªÑ¡¡δσ ¡¿ªÑ π¬áºáΓѽ∩ ñ¿¡á¼¿-
  1226. τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩Γ¿. ä½∩  »«½πτÑ¡¿∩  »«½¡«ú«
  1227. «íΩѼá ßó«í«ñ¡«⌐ »á¼∩Γ¿ ó ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿
  1228. ¿ß»«½∞ºπ⌐ΓÑ »α«µÑñπαπ îѼÇvail. î¿¡¿¼á½∞¡δ⌐ αẼÑα  í½«¬á  ó
  1229. ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ αáó¡∩ÑΓß∩ «ñ¡«¼π íá⌐Γπ. æ
  1230. »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá {$î} ó óáΦÑ⌐  »α«úαἼѠ ¼«ª¡«
  1231. ºáñáóáΓ∞ ¼¿¡¿¼á½∞¡δÑ ¿ ¼á¬ß¿¼á½∞¡δÑ »«ΓαÑí¡«ßΓ¿ ó ñ¿¡á¼¿τÑß-
  1232. ¬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ (ß¼. Åα¿½«ªÑ¡¿Ñ æ).
  1233.      ÄΓ½¿τ¿∩: é óÑαß¿¿ 3.0 ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ ¿¼Ñ½« µÑ½δ⌐
  1234. Γ¿» ¿ »αÑñßΓáó½∩½« ß«í«⌐ αẼÑα ¡á¿í«½∞ΦÑú« ßó«í«ñ¡«ú« í½«¬á
  1235. ó íá⌐Γáσ.
  1236.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ MemAvail.
  1237.      Åα¿¼Ñα:
  1238.  
  1239.  type
  1240.    FriendRec = record
  1241.      Name  : string[30];
  1242.      Age   : byte;
  1243.     end;
  1244.  var
  1245.    p : pointer;
  1246.   begin
  1247.     if MaxAvail < SizeOf(FriendRec) then
  1248.     Writeln('ìÑ σóáΓáÑΓ »á¼∩Γ¿');
  1249.     else
  1250.     begin
  1251.  
  1252.   { óδñѽ¿Γ∞ »á¼∩Γ∞ ó ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ }
  1253.     GetMem(p, SizeOf(FriendRec));
  1254.      .
  1255.      .
  1256.      .
  1257.     end;
  1258.    end.
  1259.  
  1260. ------------------------------------------------------------
  1261.  öπ¡¬µ¿∩ MemAvail
  1262. ------------------------------------------------------------
  1263.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ τ¿ß½« ßó«í«ñ¡δσ í½«¬«ó ó ñ¿¡á¼¿τÑß-
  1264. ¬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩Γ¿.
  1265.      Ä»¿ßá¡¿Ñ: MemAvail
  1266.      Æ¿» αѺπ½∞ΓáΓá: ä½¿¡¡δ⌐ µÑ½δ⌐ (longint).
  1267.      Åα¿¼Ñτá¡¿∩: äá¡¡«Ñ τ¿ß½« «»αÑñѽ∩ÑΓß∩ »πΓѼ »πΓѼ  ß½«-
  1268. ªÑ¡¿∩  αẼÑα«ó  óßÑσ  ßó«í«ñ¡δσ  í½«¬«ó, αáß»«½«ªÑ¡¡δσ ¡¿ªÑ
  1269. π¬áºáΓѽ∩ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩Γ¿, ß  «íΩ-
  1270. Ѽ«¼  ßó«í«ñ¡«⌐ »á¼∩Γ¿, αáß»«½«ªÑ¡¡«⌐ óδΦÑ π¬áºáΓѽ∩ ñ¿¡á¼¿-
  1271. τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿. çá¼ÑΓ¿¼, τΓ« »«¬á ¡ÑΓ  «íαáΘÑ-
  1272. ¡¿⌐ ¬ »α«µÑñπαá¼ Dispose ¿ FrÑÑîѼ, ¿º-ºá Σαáú¼Ñ¡Γᵿ¿ ñ¿¡á-
  1273. ¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩Γ¿ ¼á½«óÑα«∩Γ¡«, τΓ«  íπ-
  1274. ñÑΓ  ñ«ßΓπ»Ñ¡  í½«¬  »á¼∩Γ¿,  αẼÑα  ¬«Γ«α«ú« ß««ΓóÑΓßΓóπÑΓ
  1275. ó«ºóαáΘáѼ«¼π º¡áτÑ¡¿ε. ä½∩  »«½πτÑ¡¿∩  αẼÑαá  ¡á¿í«½∞ΦÑú«
  1276. ßó«í«ñ¡«ú« í½«¬á ¿ß»«½∞ºπ⌐ΓÑ Σπ¡¬µ¿ε îáσÇvail. æ »«¼«Θ∞ε ñ¿-
  1277. αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá {$î} ó óáΦÑ⌐ »α«úαἼѠ¼«ª¡«  «»αÑñѽ¿Γ∞
  1278. ¼á¬ß¿¼á½∞¡δÑ  ¿ ¼¿¡¿¼á½∞¡δÑ ΓαÑí«óá¡¿∩ ¬ ñ¿¡á¼¿τÑ߬¿ αáß»αÑ-
  1279. ñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩Γ¿ (ß¼. Åα¿½«ªÑ¡¿Ñ æ).
  1280.      ÄΓ½¿τ¿∩: é óÑαß¿¿ 3
  1281. error in text...............
  1282.  
  1283.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ FillChar.
  1284.      Åα¿¼Ñα:
  1285.  
  1286.  var
  1287.    a : array[1..4] of char;
  1288.    b : longint;
  1289.   begin
  1290.     Move(a, b, SizeOf(a));         { ñ½∩ ¡áñѪ¡«ßΓ¿ ¿ß»«½∞-
  1291.                                      ºπÑΓß∩ Σπ¡¬µ¿∩ SizeOf }
  1292.   end.
  1293.  
  1294. ------------------------------------------------------------
  1295.  Åα«µÑñπαá MoveRel                             î«ñπ½∞ Graph
  1296. ------------------------------------------------------------
  1297.      öπ¡¬µ¿∩: ÅÑαѼÑΘáÑΓ ΓѬπΘ¿⌐ π¬áºáΓѽ∞ (æÉ) ¡á  αáßßΓ«∩-
  1298. ¡¿Ñ, ºáñá¡¡«Ñ «Γ¡«ß¿Γѽ∞¡δ¼¿ ¬««αñ¿¡áΓἿ «Γ Ñú« ΓѬπΘÑ⌐ »«-
  1299. º¿µ¿¿.
  1300.      Ä»¿ßá¡¿Ñ: MoveRel(Dx, Dy : integer)
  1301.      Åα¿¼Ñτá¡¿∩: Åα«µÑñπαá î«vÑRÑl »ÑαѼÑΘáÑΓ ΓѬπΘ¿⌐ π¬áºá-
  1302. Γѽ∞  (æÉ)  ó  Γ«τ¬π,  ºáñá¡¡πε   «Γ¡«ß¿Γѽ∞¡δ¼  αáßßΓ«∩¡¿Ñ¼
  1303. (Dσ,Dy) «Γ Γ«τ¬¿, ó ¬«Γ«α«⌐ ¡áσ«ñ¿Γß∩ ΓѬπΘ¿⌐ π¬áºáΓѽ∞.
  1304.      ÄΓ¡«ß¿Γѽ∞¡δÑ  ¬«¼á¡ñδ  »ÑαѼÑΘÑ¡¿∩ ¿ α¿ß«óá¡¿∩ »«½Ñº¡δ
  1305. »α¿ óδτÑατ¿óá¡¿¿ αẽ¿τ¡δσ «íΩÑ¬Γ«ó ¡á φ¬αá¡Ñ, π ¬«Γ«αδσ ¡á-
  1306. τá½∞¡á∩ Γ«τ¬á ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡á  (τΓ«íδ,  ¡á»α¿¼Ñα, óδτÑα-
  1307. Γ¿Γ∞ Γπ ªÑ ßá¼πε Σ¿úπαπ ó ñαπú«¼ ¼ÑßΓÑ φ¬αá¡á).
  1308.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  1309.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ LineRel, LineTo, MoveTo.
  1310.  
  1311.      Åα¿¼Ñα:
  1312.  
  1313.  uses Graph;
  1314.   var
  1315.     Gd, Gm : integer;
  1316.   begin
  1317.     Gd := Detect;
  1318.     InitGraph(gd, Gm, '');
  1319.     if GraphResult <> 0 then
  1320.        Halt(1);
  1321.    MoveTo(1,2);
  1322.    MoveRel(10,10)     { »ÑαѼÑßΓ¿Γ∞ ó Γ«τ¬π ß ¬««αñ¿¡áΓἿ
  1323.                         (11,12) }
  1324.    PutPixel(GeyX, GetY, GetMaxColor);
  1325.   Readln;
  1326.   CloseGraph;
  1327.  end.
  1328.  
  1329. ------------------------------------------------------------
  1330.  Åα«µÑñπαá MoveTo                              î«ñπ½∞ Graph
  1331. ------------------------------------------------------------
  1332.      öπ¡¬µ¿∩: ÅÑαѼÑΘáÑΓ ΓѬπΘ¿⌐ úαáΣ¿τÑ߬¿⌐ π¬áºáΓѽ∞  (æÉ)
  1333. ó Γ«τ¬π (x,y).
  1334.      Ä»¿ßá¡¿Ñ: MoveTo(x, y : integer)
  1335.      Åα¿¼Ñτá¡¿∩: ÆÑ¬πΘ¿⌐ π¬áºáΓѽ∞ (æÉ) »Ñα¼ÑΘáÑΓß∩ ó  Γ«τ¬π
  1336. ß  ¬««αñ¿¡áΓἿ (x,y). ÆÑ¬πΘ¿⌐ π¬áºáΓѽ∞ á¡á½«ú¿τÑ¡ ¬παß«απ,
  1337. ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó ΓѬßΓ«ó«¼ αѪ¿¼Ñ.  Éẽ¿τáÑΓ  ¿σ  Γ«,
  1338. τΓ«  ΓѬπΘ¿⌐ π¬áºáΓѽ∞ ¡Ñó¿ñ¿¼. ÆÑ¬πΘ¿⌐ π¬áºáΓѽ∞ (æÉ) »ÑαÑ-
  1339. ¼ÑΘáεΓ ß½ÑñπεΘ¿Ñ »α«µÑñπαδ:
  1340.  
  1341.      InitGraph, MoveTo, MoveRel, LineTo,  LineRel,  OutText,
  1342. SetGraphMode
  1343.  
  1344.      àß½¿ á¬Γ¿ó¡á ΓѬπΘá∩ «í½áßΓ∞ »α«ß¼«Γαá, Γ«  æÉ  ºáó¿ß¿Γ
  1345. «Γ  ñá¡¡«⌐  «í½áßΓ¿  (º¡áτÑ¡¿∩  x ¿ y íπñπΓ ßπ¼¼¿α«óáΓ∞ß∩ ß«
  1346. º¡áτÑ¡¿∩¼¿ x1, y1 ΓѬπΘÑ⌐ «í½áßΓ¿ »α«ß¼«Γαá). é úαá¡¿µáσ ΓÑ-
  1347. ¬πΘÑ⌐ «í½áßΓ¿ »α«ß¼«Γαá ΓѬπΘ¿⌐ π¬áºáΓѽ∞ ¡¿¬«úñá ¡Ñ «ΓßѬá-
  1348. ÑΓß∩.
  1349.  
  1350.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ  GeetMaxX,  GetMaxY,  GetX,
  1351. GetY, MoveRel.
  1352.      Åα¿¼Ñα:
  1353.  
  1354.  uses Graph;
  1355.   var
  1356.     Gd, Gm : integer;
  1357.   begin
  1358.     Gd := Detect;
  1359.     InitGraph(gd, Gm, '');
  1360.     if GraphResult <> 0 then
  1361.        Halt(1);
  1362.  MoveTo(0,0);           { ½Ñóδ⌐ óÑασ¡¿⌐ πú«½ «¬¡á }
  1363.  LineTo(GetMaxX, GetMaxY);
  1364.    Readln;
  1365.    CloseGraph;
  1366.   end.
  1367.  
  1368. ------------------------------------------------------------
  1369.  Rrliug~ MsDos                                   î«ñπ½∞ Dos
  1370. ------------------------------------------------------------
  1371.      öπ¡¬µ¿∩: éδ»«½¡∩ÑΓ Σπ¡¬µ¿«¡á½∞¡δ⌐ ó맮ó äÄæ.
  1372.      Ä»¿ßá¡¿Ñ: MsDos(var Regs : Registers)
  1373.      Åα¿¼Ñτá¡¿∩: ÉѺπ½∞ΓáΓ «íαáΘÑ¡¿∩ ¬ Σπ¡¬µ¿¿  MsDos  íπñÑΓ
  1374. ëࠪѠßá¼δ⌐, τΓ« ¿ «íαáΘÑ¡¿Ñ ¬ Σπ¡¬µ¿¿ Intr ß ¡«¼Ñα«¼ »αÑ-
  1375. αδóá¡¿∩ IntNo $21. Registers »αÑñßΓáó½∩ÑΓ ß«í«⌐ ºá»¿ß∞, «»¿-
  1376. ßá¡¡πε ó ¼«ñπ½Ñ Dos ß½ÑñπεΘ¿¼ «íαẫ¼:
  1377.  
  1378.   type
  1379.    Registers = record
  1380.                 case integer of
  1381.                  0: (AX,BX,CX,X,BP,SI,DS,ES,Flags: word);
  1382.                  1: (AL,AH,BL,BH,CL,CH,DL,DH: byte);
  1383.                end;
  1384.  
  1385.      Äúαá¡¿τÑ¡¿∩: Åα«úαá¼¼¡δÑ  »αÑαδóá¡¿∩,  ñ½∩  ¬«Γ«αδσ  ¡á
  1386. óσ«ñÑ  ΓαÑíπÑΓß∩  ºáñá¡¿Ñ  «»αÑñѽѡ¡δσ º¡áτÑ¡¿⌐ ó SÉ ¿½¿ SS
  1387. ¿½¿ ¿º¼Ñ¡∩εΓ º¡áτÑ¡¿∩ SÉ ¿ SS ¡á  óδσ«ñÑ,  ß  ¿ß»«½∞º«ó᡿Ѽ
  1388. ñá¡¡«⌐ Σπ¡¬µ¿¿ óδ»«½¡∩Γ∞ß∩ ¡Ñ ¼«úπΓ.
  1389.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿ε Intr.
  1390.  
  1391. ------------------------------------------------------------
  1392.  Åα«µÑñπαá New
  1393. ------------------------------------------------------------
  1394.      öπ¡¬µ¿∩: æ«ºñáÑΓ ¡«óπε ñ¿¡á¼¿τÑ߬πε »ÑαѼѡ¡πε ¿  πßΓá-
  1395. ¡áó½¿óáÑΓ ¡á ¡ÑÑ π¬áºáΓѽ∞.
  1396.      Ä»¿ßá¡¿Ñ: New(var : pointer)
  1397.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα α ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ-»ÑαѼѡ¡«⌐ ¿
  1398. «Γ¡«ß¿Γß∩ ¬ π¬áºáΓѽ∩¼ ½εí«ú« Γ¿»á. ÉẼÑα óδñѽ∩Ѽ«ú« í½«¬á
  1399. »á¼∩Γ¿ ß««ΓóÑΓßΓóπÑΓ αẼÑαπ Γ«ú« Γ¿»á, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ
  1400. α.  ìá  ó¡«ó∞ ß«ºñá¡¡πε »ÑαѼѡ¡πε ¼«ª¡« ßßδ½áΓ∞ß∩ ß »«¼«Θ∞ε
  1401. α. àß½¿ ñ½∩ óδñѽѡ¿∩ »á¼∩Γ¿ »«ñ ¡«óπε ñ¿¡á¼¿τÑ߬πε »ÑαѼѡ-
  1402. ¡πε  ó  ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ¡Ññ«ßΓáΓ«τ¡« ßó«-
  1403. í«ñ¡«⌐ »á¼∩Γ¿, Γ« ó« óαѼ∩ óδ»«½¡Ñ¡¿∩  »α«úαá¼¼δ  »α«¿ßσ«ñ¿Γ
  1404. «Φ¿í¬á.  (¥Γ«⌐  «Φ¿í¬¿  ¼«ª¡« ¿ºíѪáΓ∞ - ß¼. αáºñѽ "öπ¡¬µ¿∩
  1405. «íαáí«Γ¬¿ «Φ¿í¬¿ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿  »á¼∩Γ¿"
  1406. ó â½áóÑ 26.)
  1407.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ GetMem, Dispose.
  1408.  
  1409. ------------------------------------------------------------
  1410.  Åα«µÑñπαá NormVideo                             î«ñπ½∞ ært
  1411. ------------------------------------------------------------
  1412.      öπ¡¬µ¿∩: çáñáÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ßτ¿Γδóá¡¿∩ ΓѬπΘÑú« áΓα¿-
  1413. íπΓá  ΓѬßΓá  ¿º »«º¿µ¿¿ ¬παß«αá ó« óαѼ∩ ºáúαπº¬¿ ¿ ºá»π߬á
  1414. »α«úαá¼¼δ.
  1415.      Ä»¿ßá¡¿Ñ: NormVideo
  1416.      Åα¿¼Ñτá¡¿∩: é í½«¬Ñ  ært  ¿¼ÑÑΓß∩  íá⌐Γ«óá∩  »ÑαѼѡ¡á∩
  1417. (ÆÑσtÇttr), ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ß«σαá¡Ñ¡¿∩ ΓѬπΘÑú« ó¿-
  1418. ñÑ«áΓα¿íπΓá. äá¡¡á∩ »α«µÑñπαá ó«ßßΓá¡áó½¿óáÑΓ  ñ½∩  ÆÑσtAttr
  1419. Γ«  º¡áτÑ¡¿Ñ,  ¬«Γ«α«Ñ φΓá »ÑαѼѡ¡á∩ ¿¼Ñ½á ñ« ºá»π߬ᠻα«ú-
  1420. αá¼¼δ.
  1421.      ÄΓ½¿τ¿∩: é óÑαß¿¿ 3.0 Æπαí«-Åá߬á½∩ »α«µÑñπαδ NormVideo
  1422. ¿ HighVideo í뫨 ¿ñÑ¡Γ¿τ¡δ¼¿. æ¼. »α«µÑñπαπ HigVdeo.
  1423.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ HighVieo, LowVideo, TextCo-
  1424. lor, TextBackGround.
  1425.  
  1426. ------------------------------------------------------------
  1427.  Åα«µÑñπαá NoSound                               î«ñπ½∞ ært
  1428. ------------------------------------------------------------
  1429.      öπ¡¬µ¿∩: é䬽ετáÑΓ ó¡πΓαÑ¡¡¿⌐ ñ¿¡á¼¿¬.
  1430.      Ä»¿ßá¡¿Ñ: NoSound
  1431.      Åα¿¼Ñτá¡¿∩: æ½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ óδºδóáÑΓ  ºóπ-
  1432. τá¡¿Ñ ß¿ú¡á½á τáßëë⌐ 440 úÑαµ ó ΓÑτÑ¡¿¿ »«½«ó¿¡δ ßѬπ¡ñδ.
  1433.  
  1434.      Sound(440); Delay(500); NoSound;
  1435.  
  1436.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ Sound.
  1437.  
  1438. ------------------------------------------------------------
  1439.  öπ¡¬µ¿∩ Odd
  1440. ------------------------------------------------------------
  1441.      öπ¡¬µ¿∩: Åα«óÑα∩ÑΓ, ∩ó½∩ÑΓß∩ ½¿ áαúπ¼Ñ¡Γ ¡ÑτÑΓ¡δ¼  τ¿ß-
  1442. ½«¼.
  1443.      Ä»¿ßá¡¿Ñ: Odd(x : longint)
  1444.      Æ¿» αѺπ½∞ΓáΓá: üπ½Ñó߬¿⌐ (boolean).
  1445.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα x - φΓ« óδαáªÑ¡¿Ñ ñ½¿¡¡«ú«  µÑ½«ú«
  1446. Γ¿»á. ÉѺπ½∞ΓáΓ »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ ÆruÑ, Ñß½¿ x »αÑñßΓáó½∩ÑΓ
  1447. ß«í«⌐ ¡ÑτÑΓ¡«Ñ τ¿ß½« ¿ False - ó »α«Γ¿ó¡«¼ ß½πτáÑ.
  1448.  
  1449. ------------------------------------------------------------
  1450.  öπ¡¬µ¿∩ Ofs
  1451. ------------------------------------------------------------
  1452.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ñ½∩ ºáñá¡¡«ú« «íΩѬΓá ß¼ÑΘÑ¡¿Ñ.
  1453.      Ä»¿ßá¡¿Ñ: Ofs(x)
  1454.      Æ¿» αѺπ½∞ΓáΓá: æ½«ó« (word).
  1455.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα x »αÑñßΓáó½∩ÑΓ ß«í«⌐  ½εíπε  »ÑαÑ-
  1456. ¼Ñ¡¡πε  ¿½¿  ¿ñÑ¡Γ¿Σ¿¬áΓ«α  »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿. ÉѺπ½∞ΓáΓ
  1457. ñ½¿¡«⌐ ó ß½«ó« »αÑñßΓáó½∩ÑΓ ß«í«⌐ ß¼ÑΘÑ¡¿Ñ ñ½∩ x.
  1458.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ Seg, Addr.
  1459.  
  1460. ------------------------------------------------------------
  1461.  öπ¡¬µ¿∩ Ord
  1462. ------------------------------------------------------------
  1463.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ »«α∩ñ¬«óδ⌐ ¡«¼Ñα ñ½∩ º¡áτÑ¡¿∩ »ÑαÑ-
  1464. τ¿ß½¿¼«ú« Γ¿»á.
  1465.      Ä»¿ßá¡¿Ñ: Ord(x)
  1466.      Æ¿» αѺπ½∞ΓáΓá: ä½¿¡¡δ⌐ µÑ½δ⌐ (longint).
  1467.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα x »αÑñßΓáó½∩ÑΓ ß«í«⌐ óδαáªÑ¡¿Ñ »Ñ-
  1468. αÑτ¿ß½¿¼«ú«  Γ¿»á.  ÉѺπ½∞ΓáΓ  ¿¼ÑÑΓ ñ½¿¡¡δ⌐ µÑ½δ⌐ Γ¿» ¿ Ñú«
  1469. º¡áτÑ¡¿Ñ ∩ó½∩ÑΓß∩ »«α∩ñ¬«óδ¼ º¡áτÑ¡¿Ñ¼ ñ½∩ x.
  1470.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿ε Chr.
  1471.  
  1472. ------------------------------------------------------------
  1473.  Åα«µÑñπαá OutText                             î«ñπ½∞ Graph
  1474. ------------------------------------------------------------
  1475.      öπ¡¬µ¿∩: ÅÑαÑßδ½áÑΓ ßΓ᫬π ¡á πßΓα«⌐ßΓó«  óδó«ñá  ó  Γ«
  1476. ¼ÑßΓ«, ó ¬«Γ«α«¼ ¡áσ«ñ¿Γß∩ ΓѬπΘ¿⌐ π¬áºáΓѽ∞.
  1477.      Ä»¿ßá¡¿Ñ: ÄutÆÑσt(ßΓ᫬á : string)
  1478.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα "ßΓ᫬á" óδó«ñ¿Γß∩ ó ¼ÑßΓÑ  αáß»«-
  1479. ½«ªÑ¡¿∩  ΓѬπΘÑú«  π¬áºáΓѽ∩.  Åα¿ φΓ«¼ ¿ß»«½∞ºπεΓß∩ ΓѬπΘ¿Ñ
  1480. »áαá¼ÑΓαδ óδαáó¡¿óá¡¿∩. àß½¿ ßΓα«¬á  ß½¿Φ¬«¼  ñ½¿¡¡á∩  ¿  ¡Ñ
  1481. π¼ÑΘáÑΓß∩  ¡á φ¬αá¡Ñ ¿½¿ ó ΓѬπΘÑ⌐ «í½áßΓ¿ »α«ß¼«Γαá, Γ« «¡á
  1482. πßѬáÑΓß∩. àß½¿ á¬Γ¿óÑ¡  Φα¿ΣΓ,  ¿ß»«½∞ºπѼδ⌐  »«  π¼«½τá¡¿ε
  1483. (Φα¿ΣΓ  ß »«í¿Γ«óδ¼ «Γ«íαáªÑ¡¿Ñ¼), á ßΓ᫬á ß½¿Φ¬«¼ óѽ¿¬á ¿
  1484. ¡Ñ π¼ÑΘáÑΓß∩ ¡á φ¬αá¡Ñ, Γ« «¡á ¡Ñ óδó«ñ¿Γß∩.
  1485.      é ñá¡¡«⌐ »α«µÑñπαÑ  ¿ß»«½∞ºπÑΓß∩  Φα¿ΣΓ,  πßΓá¡«ó½Ñ¡¡δ⌐
  1486. »α«µÑñπα«⌐ SetTextStyle. ùΓ«íδ «íÑß»ÑτÑ¿Γ∞ ß«ó¼ÑßΓ¿¼«ßΓ∞ óδ-
  1487. »«½¡∩Ѽ«ú« ¬«ñá »α¿ ¿ß»«½∞º«óá¡¿¿  ¡Ñ߬«½∞¬¿σ  Φα¿ΣΓ«ó,  ñ½∩
  1488. «»αÑñѽѡ¿∩  αẼÑα«ó  ßΓ᫬¿  ¿ß»«½∞ºπ⌐ΓÑ  ó맮óδ  »α«µÑñπα
  1489. ÆÑσtWidth ¿ ÆÑσtHeight.
  1490.      Åα«µÑñπαá OutText ¿ß»«½∞ºπÑΓ »áαá¼ÑΓαδ óδó«ñá, πßΓá¡«ó-
  1491. ½Ñ¡¡δÑ  »α«µÑñπα«⌐ SetTextJustify (óδαáó¡¿óá¡¿Ñ, µÑ¡Γα¿α«óá-
  1492. ¡¿Ñ, óαáΘÑ¡¿Ñ ¡á 90 úαáñπ߫󠿠Γ.ñ.).
  1493.      ÆÑ¬πΘ¿⌐ π¬áºáΓѽ∞ ¿º¼Ñ¡∩ÑΓß∩ »α«µÑñπα«⌐ OutText  Γ«½∞¬«
  1494. ó  Γ«¼ ß½πτáÑ, Ñß½¿ ¡á»αáó½Ñ¡¿Ñ óδó«ñá ΓѬßΓá ú«α¿º«¡Γá½∞¡«Ñ
  1495. ¿ ºáñá¡« óδαáó¡¿óá¡¿Ñ »« ½Ñó«⌐ úαá¡¿µÑ.  ìá»αáó½Ñ¡¿Ñ  óδó«ñá
  1496. ΓѬßΓá  (ú«α¿º«¡Γá½∞¡«Ñ ¿½¿ óÑαΓ¿¬á½∞¡«Ñ) ºáñáÑΓß∩ ß »«¼«Θ∞ε
  1497. »α«µÑñπαδ SetTextStyle, á óδαáó¡¿óá¡¿Ñ - ß »«¼«Θ∞ε »α«µÑñπαδ
  1498. SetTextJustify (ΓѬπΘ¿⌐ π¬áºáΓѽ∞ ß½Ñóá «Γ ßΓ᫬¿, µÑ¡Γα¿απ-
  1499. ÑΓß∩ ¿½¿ αáß»«½«ªÑ¡ ß»αáóá «Γ ßΓ᫬¿, ºá»¿ßδóáÑΓß∩ ¡áª ßΓα«-
  1500. ¬«⌐, »«ñ ßΓ᫬«⌐).
  1501.      àß½¿ »áαá¼ÑΓα ú«α¿º«¡Γá½∞¡«ú« óδαáó¡¿óá¡¿∩ ΓѬßΓá,  πß-
  1502. Γá¡«ó½Ñ¡¡δ⌐  ß  »«¼«Θ∞ε »α«µÑñπαδ SetTextJustify, αáóÑ¡ Cen-
  1503. terText ¿½¿ RightText, Γ«  Y  φ½Ñ¼Ñ¡Γ«ó  ΓѬπΘÑú«  π¬áºáΓѽ∩
  1504. (æÉY) íπñπΓ ß¼ÑΘÑ¡δ ß½ÑñπεΘ¿¼ «íαẫ¼:
  1505.  
  1506.      CPY := CPY + TextHeight(TextString)
  1507.  
  1508.      àß½¿ »áαá¼ÑΓα ú«α¿º«¡Γá½∞¡«ú« óδαáó¡¿óá¡¿∩ ΓѬßΓá,  πß-
  1509. Γá¡«ó½Ñ¡¡δ⌐  ß »«¼«Θ∞ε »α«µÑñπαδ SetTextJustify, αáóÑ¡ Left-
  1510. Text, Γ« ò φ½Ñ¼Ñ¡Γ«ó ΓѬπΘÑú« π¬áºáΓѽ∩ (æÉò) íπñπΓ  ß¼ÑΘÑ¡δ
  1511. ß½ÑñπεΘ¿¼ «íαẫ¼:
  1512.  
  1513.      CPX := CPX + TextWidth(TextString)
  1514.  
  1515.      é ß½ÑñπεΘѼ »α¿¼ÑαÑ ó í½«¬Ñ 1 óδó«ñ¿Γß∩ ABCDEF ¿  ΓѬπ-
  1516. Θ¿⌐  π¬áσáΓѽ∞ »ÑαѼÑΘáÑΓß∩ (ΓѬßΓ óδó«ñ¿Γß∩ ú«α¿º«¡Γá½∞¡« ¿
  1517. óδαáó¡¿óáÑΓß∩ ß½Ñóá), ó í½«¬Ñ 2 óδó«ñ¿Γß∩ ABC á DEF  ºá»¿ßδ-
  1518. óáÑΓß∩  ß»αáóá ¡áñ φΓ¿¼ ΓѬßΓ«¼, Γᬠ¬á¬ ΓѬßΓ óδαáó¡¿óáÑΓß∩
  1519. ß»αáóá, á¡á½«ú¿τ¡«, ó í½«¬Ñ 3 óδó«ñ¿Γß∩ ΓѬßΓ ABC ¿ ¡áñ  ¡¿¼
  1520. ß»αáóá óδó«ñ¿Γß∩ DEF (Γᬠ¬á¬ ΓѬßΓ óδó«ñ¿Γß∩ óÑαΓ¿¬á½∞¡«).
  1521.  
  1522.   program CPupdate;
  1523.   uses Graph;
  1524.   var
  1525.     Driver, Mode : integer;
  1526.   begin
  1527.     Driver := Detect;
  1528.     InitGraph(Driver, Mode, '');
  1529.     if GraphResult < 0 then
  1530.        Halt(1);
  1531.    { í½«¬ 1 }
  1532.    MoveTo(0, 0);
  1533.    SetTextStyle(DefaultFont, HorizDir, 1) { αẼ. ß¿¼ó. =1 }
  1534.    SetTextJustify(LeftText, TopText);
  1535.    OutText('ABC');                    { CP ¿º¼Ñ¡∩ÑΓß∩ }
  1536.    OutText('DEF');                    { æÉ ¿º¼Ñ¡∩ÑΓß∩ }
  1537.    { í½«¬ 2 }
  1538.    MoveTo(100, 50);
  1539.    SetTextStyle(DefaultFont, HorizDir, 1) { αẼ. ß¿¼ó. =1 }
  1540.    SetTextJustify(RightText, TopText);
  1541.    OutText('ABC');                    { CP ¿º¼Ñ¡∩ÑΓß∩ }
  1542.    OutText('DEF');                    { æÉ ¿º¼Ñ¡∩ÑΓß∩ }
  1543.    { í½«¬ 3 }
  1544.    MoveTo(100, 100);
  1545.    SetTextStyle(DefaultFont, VerDir, 1) { αẼ. ß¿¼ó. =1 }
  1546.    SetTextJustify(LeftText, TopText);
  1547.    OutText('ABC');                    { CP ¡Ñ ¿º¼Ñ¡∩ÑΓß∩ }
  1548.    OutText('DEF');                    { æÉ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩ }
  1549.    Readln;
  1550.    CloseGraph;
  1551.   end.
  1552.  
  1553.      Åα«µÑñπα«⌐ OutTextXY ΓѬπΘ¿⌐ π¬áºáΓѽ∞ ¡¿¬«úñá ¡Ñ ¿º¼Ñ-
  1554. ¡∩ÑΓß∩.
  1555.      éδí¿αáѼδ⌐ »« π¼«½τá¡¿ε Φα¿ΣΓ (Φα¿ΣΓ ß í¿Γ«óδ¼  «íαẫ¼
  1556. 8σ8)  ¡Ñ  úαá¡¿µÑ  φ¬αá¡Ñ ¡Ñ «ΓßѬáÑΓß∩. é φΓ«¼ ß½πτáÑ, Ñß½¿
  1557. ¬á¬á∩-½¿í« τáßΓ∞ ßΓ᫬¿ ¡Ñ ¼«ªÑΓ  íδΓ∞  »«¼ÑΘѡᠠ¡á  φ¬αá¡,
  1558. ΓѬßΓ »α«ßΓ« ¡Ñ óδó«ñ¿Γß∩. æ½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ, ¡á»α¿¼Ñα, ¡Ñ
  1559. »α¿óÑñπΓ ¬ óδó«ñπ ΓѬßΓá:
  1560.  
  1561.   SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn);
  1562.   SetTextJustify(LeftText, TopText);
  1563.   OutTextXY(-5, 0); { φΓá Γ«τ¬á óδσ«ñ¿Γ ºá úαá¡¿µπ φ¬αá¡á }
  1564.   OutText(GetMaxX -1, 0, 'ABC'); { τáßΓ∞ 'A' }
  1565.                                  { 'BC' ¡Ñ »«¼ÑΘáÑΓß∩ }
  1566.  
  1567.      Äñ¡á¬« "ΦΓα¿σ«óδÑ" Φα¿ΣΓδ «ΓßѬáεΓß∩ ¡á úαá¡¿µÑ φ¬αá¡á.
  1568.      Ç¡á½«ú¿τ¡á∩ »α«µÑñπαá ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  1569.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  1570.      Åα«τÑÑ: æ¼. ΓᬪѠ »α«µÑñπαδ  OutTextXY,  SetTextStyle,
  1571. SetTextJustify, GetTextSettings, TextHeight, TextWidth.
  1572.      Åα¿¼Ñα:
  1573.  
  1574.  uses Graph;
  1575.   var
  1576.     Gd, Gm : integer;
  1577.   begin
  1578.     Gd := Detect;
  1579.     InitGraph(gd, Gm, '');
  1580.     if GraphResult <> grOk then
  1581.        Halt(1);
  1582.     OutText('ïÑú¬« ¿ß»«½∞º«óáΓ∞');
  1583.     Readln;
  1584.     CloseGraph;
  1585.   end.
  1586.  
  1587. ------------------------------------------------------------
  1588.  Åα«µÑñπαá OutTextXY                           î«ñπ½∞ Graph
  1589. ------------------------------------------------------------
  1590.      öπ¡¬µ¿∩: ÅÑαÑßδ½áÑΓ ßΓ᫬π ¡á πßΓα«⌐ßΓó« óδó«ñá.
  1591.      Ä»¿ßá¡¿Ñ:  OutTextXY(ò,Y  :  integer;  ΓѬßΓ_ßΓα«¬á   :
  1592. string)
  1593.      Åα¿¼Ñτá¡¿∩: æΓ᫬á, ºáñá¡¡á∩ »áαá¼ÑΓα«¼ "ΓѬßΓ_ßΓ᫬á",
  1594. óδó«ñ¿Γß∩ ó Γ«τ¬Ñ (ò,ô). àß½¿ ßΓ᫬á ß½¿Φ¬«¼ ñ½¿¡¡á∩ ¿ óδσ«-
  1595. ñ¿Γ ºá »αÑñѽδ φ¬αá¡á ¿½¿ ΓѬπΘÑ⌐ «í½áßΓ¿ »α«ß¼«Γαá, Γ«  «¡á
  1596. πßѬáÑΓß∩.
  1597.      Åα«µÑñπαá OutText ¿ß»«½∞ºπÑΓß∩ ñ½∩ óδó«ñá ΓѬßΓá ó ¼Ñß-
  1598. ΓÑ  αáß»«½«ªÑ¡¿∩ ΓѬπΘÑú« π¬áºáΓѽ∩, »α«µÑñπαá OutTextXY ¿ß-
  1599. »«½∞ºπÑΓß∩ ñ½∩ óδó«ñá ΓѬßΓá ó ½εí«¼ ºáñá¡¡«¼ ¼ÑßΓÑ φ¬αá¡á.
  1600.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ OutText, SetTextStyle, Set-
  1601. TextJustify, GetTxtSettings, TextHeight, TextWidth.
  1602.      Åα¿¼Ñα:
  1603.  
  1604.  uses Graph;
  1605.   var
  1606.     Gd, Gm : integer;
  1607.   begin
  1608.     Gd := Detect;
  1609.     InitGraph(gd, Gm, '');
  1610.     if GraphResult <> grOk then
  1611.        Halt(1);
  1612.   MoveTo(0,0);
  1613.  OutText('ìÑφΣΣΣÑ¬Γ¿ó¡«');
  1614.  OutTextXY(GetX,GetY,'Æá¬ªÑ ¡ÑφΣΣÑ¬Γ¿ó¡«');
  1615.  OutTextXY(0,0,'ÅαÑó«ßσ«ñ¡«!');{ ºá¼Ñ¡∩ÑΓ óδóÑñÑ¡¡«Ñ αá¡ÑÑ }
  1616.  Readln;
  1617.  CloseGraph;
  1618.  end.
  1619.  
  1620. ------------------------------------------------------------
  1621.  Åα«µÑñπαá OvrClearBuf                       î«ñπ½∞ Overlay
  1622. ------------------------------------------------------------
  1623.      öπ¬¡µ¿∩: Äτ¿ΘáÑΓ «óÑα½Ñ⌐¡δ⌐ íπΣÑα.
  1624.      Ä»¿ßá¡¿Ñ: OvrClearBuf
  1625.      Åα¿¼Ñτá¡¿∩: ÅÑαÑñ óδº«ó«¼ »α«µÑñπαδ ¿º «óÑα½Ñ⌐¡«ú«  íπ-
  1626. ΣÑαá  óδó«ñ∩Γß∩ óßÑ ºáúαπªÑ¡¡δÑ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ «óÑα½Ñ¿. ¥Γ«
  1627. »α¿óÑñÑΓ ¬ Γ«¼π, τΓ« »α¿ »«ß½ÑñπεΘ¿σ «íαáΘÑ¡¿∩σ ¬ «óÑα½Ñ⌐¡δ¼
  1628. »α«úαἼἠ «óÑα½Ñ¿  íπñπΓ  ºáúαπªáΓ∞ß∩ ¿º «óÑα½Ñ⌐¡«ú« Σá⌐½á
  1629. (¿½¿ ¿º αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿). àß½¿ »α«µÑñπαá OvrClearBuf  óδ-
  1630. ºδóáÑΓß∩  ¿º «óÑα½Ñ∩, Γ« »ÑαÑñ ó«ºóαáΓ«¼ ¿º OvrClearBuf φΓ«Γ
  1631. «óÑα½Ñ⌐ íπñÑΓ ¡Ñ¼Ññ½Ñ¡¡« »ÑαѺáúαπªÑ¡. Å«ñß¿ßΓѼá π»αáó½Ñ¡¿∩
  1632. «óÑα½Ñ∩¼¿  ¡Ñ  ΓαÑíπÑΓ  «Γ óáß ó맮óá »α«µÑñπαδ OvrClearBuf.
  1633. öá¬Γ¿τÑ߬¿, »α¿ «íαáΘÑ¡¿∩σ ¬ φΓ«⌐  »α«µÑñπαÑ  »α«¿ºó«ñ¿Γѽ∞-
  1634. ¡«ßΓ∞ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Γ«½∞¬« πσπñΦ¿Γß∩, »«ß¬«½∞¬π
  1635. φΓ« »α¿óÑñÑΓ ¬ ¡Ñ«íσ«ñ¿¼«ßΓ¿ »ÑαѺáúαπº¬¿ «óÑα½ÑÑó. Åα«µÑñπ-
  1636. αá OvrClearBuf »αÑñ¡áº¡áτÑ¡á Γ«½∞¬« ñ½∩ «ß«íδσ ß½πτáÑó, ¡á»-
  1637. α¿¼Ñα, ñ½∩ óαѼѡ¡«ú« «ßó«í«ªñÑ¡¿∩ »á¼∩Γ¿, ºá¡¿¼áѼ«⌐  «óÑα-
  1638. ½Ñ⌐¡δ¼ íπΣÑα«¼.
  1639.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ OvrGetBuf, OvrSetBuf.
  1640.  
  1641. ------------------------------------------------------------
  1642.  Åα«µÑñπαá OvrGetBuf                         î«ñπ½∞ Overlay
  1643. ------------------------------------------------------------
  1644.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ΓѬπΘ¿⌐ αẼÑα «óÑα½Ñ⌐¡«ú« íπΣÑαá.
  1645.      Ä»¿ßá¡¿Ñ: OvrGetBuf
  1646.      Æ¿» αѺπ½∞ΓáΓá: ä½¿¡¡δ⌐ µÑ½δ⌐ (longint).
  1647.      Åα¿¼Ñτá¡¿∩: ÉẼÑα «óÑα½Ñ⌐¡«ú« íπΣÑαá πßΓá¡áó½¿óáÑΓß∩ ß
  1648. »«¼«Θ∞ε «íαáΘÑ¡¿∩ ¬ »α«µÑñπαÑ OvrSetBuf. ÅÑαó«¡áτá½∞¡« «óÑα-
  1649. ½Ñ⌐¡δ⌐ íπΣÑα ¿¼ÑÑΓ ¼¿¡¿¼á½∞¡δ⌐ ó«º¼«ª¡δ⌐ αẼÑα,  ß««ΓóÑΓßΓ-
  1650. óπεΘ¿⌐  αẼÑαπ ¡á¿í«½∞ΦÑú« «óÑα½Ñ∩. Åα¿ óδ»«½¡Ñ¡¿¿ «óÑα½Ñ⌐-
  1651. ¡«⌐ »α«úαá¼¼δ íπΣÑα Γᬫú« αẼÑαá óδñѽ∩ÑΓß∩ áóΓ«¼áΓ¿τÑ߬¿.
  1652. (çá¼Ñτá¡¿Ñ:  ìáτá½∞¡δ⌐  αẼÑα  íπΣÑαá  ¼«ªÑΓ »αÑóδΦáΓ∞ 64è,
  1653. »«ß¬«½∞¬π «¡ ó¬½ετáÑΓ ó ßÑí∩ ¿ ¬«ñ  ¡á¿í«½∞ΦÑú«  «óÑα½Ñ∩,  ¿
  1654. Ñú« ¬«ααÑ¬Γ¿α«ó«τ¡πε ¿¡Σ«α¼áµ¿ε).
  1655.      Åα«τÑÑ:  æ¼.  ΓᬪѠ »α«µÑñπαδ   OvrInit,   OvrInitEMS,
  1656. OvrSetBuf.
  1657.      Åα¿¼Ñα:
  1658.  
  1659.   {$M 16384,65536,655360 }
  1660.   use Overlay;
  1661.   const
  1662.     ExtractSize = 49152; { 48K }
  1663.   begin
  1664.     OvrInit('EDITOR.OVR');
  1665.     Writeln('ìáτá½∞¡δ⌐ αẼÑα «óÑα½Ñ⌐¡«ú« íπΣÑαá = ',
  1666.              OvrGetBuf, 'íá⌐Γ«ó');
  1667.     OvrSetBuf(OvrGetBuf+ExtractSize);
  1668.     Writeln('ÉẼÑα «óÑα½Ñ⌐¡«ú« íπΣÑαá πóѽ¿τÑ¡ ΓÑ»Ñα∞ ñ« ',
  1669.              OvrGetBuf, 'íá⌐Γ«ó');
  1670.   end.
  1671.  
  1672. ------------------------------------------------------------
  1673.  Åα«µÑñπαá OvrInit                           î«ñπ½∞ Overlay
  1674. ------------------------------------------------------------
  1675.      öπ¬¡µ¿∩: ê¡¿µ¿á½¿º¿απÑΓ »«ñß¿ßΓѼπ π»αáó½Ñ¡¿∩ «óÑα½Ñ∩¼¿
  1676. ¿ «Γ¬αδóáÑΓ «óÑα½Ñ⌐¡δ⌐ Σá⌐½.
  1677.      Ä»¿ßá¡¿Ñ: OvrInit(¿¼∩_Σá⌐½á : string)
  1678.      Åα¿¼Ñτá¡¿∩: àß½¿ ó »áαá¼ÑΓαÑ "¿¼∩_Σá⌐½á" íπ¬óÑ¡¡á∩ ¼ÑΓ-
  1679. ¬á  ñ¿ß¬«ó«ñá ¿½¿ »«ñ¬áΓὫú ¡Ñ ºáñá¡δ, Γ« »«ñß¿ßΓѼá π»αáó-
  1680. ½Ñ¡¿∩ «óÑα½Ñ∩¼¿ ¿ΘÑΓ Σá⌐½ ó ΓѬπΘѼ  ¬áΓὫúÑ,  ó  ¬áΓὫúÑ,
  1681. ß«ñÑαªáΘѼ  Σá⌐½δ .àòà (»α¿ αáí«ΓÑ ó äÄæ óÑαß¿¿ 3.σ) ¿ ó ¬á-
  1682. ΓὫúáσ, ºáñá¡¡δσ ß »«¼«Θ∞ε  »ÑαѼѡ¡«⌐  «»Ñαᵿ«¡¡«⌐  ßαÑñδ
  1683. PATH.  é«º¼«ª¡δÑ  «Φ¿í¬¿ ¼«úπΓ íδΓ∞ »«½πτÑ¡δ ß »«¼«Θ∞ε »ÑαÑ-
  1684. ¼Ñ¡¡«⌐ «»Ñαᵿ«¡¡«⌐ ßαÑñδ OvrResult. ç¡áτÑ¡¿Ñ ovrOk  ú«ó«α¿Γ
  1685. «í  πß»ÑΦ¡«¼ ºáóÑαΦÑ¡¿¿, ovrError »«¬áºδóáÑΓ, τΓ« «óÑα½Ñ⌐¡δ⌐
  1686. Σá⌐½ ¿¼ÑÑΓ ¡Ñ»αáó¿½∞¡δ⌐ Σ«α¼áΓ, ¿½¿ τΓ« »α«úαἼᠡѠ ß«ñÑα-
  1687. ª¿Γ  «óÑα½ÑÑó.  ç¡áτÑ¡¿Ñ ovrNotFound «º¡áτáÑΓ, τΓ« ¡Ñ ¡á⌐ñÑ¡
  1688. «óÑα½Ñ⌐¡δ⌐ Σá⌐½.
  1689.      é ß½πτáÑ «Φ¿í¬¿ »«ñß¿ßΓѼá π»αáó½Ñ¡¿∩ «óÑα½Ñ∩¼¿ «ßΓáÑΓ-
  1690. ß∩  ¡ÑπßΓá¡«ó½Ñ¡¡«⌐  ¿  »«»δΓ¬¿  ó맮óá «óÑα½Ñ⌐¡«⌐ »α«úαá¼¼δ
  1691. »α¿óÑñπΓ ¬ «Φ¿í¬Ñ óαѼѡ¿ óδ»«½¡Ñ¡¿∩  208  (Overlay  manager
  1692. not  installed - »«ñß¿ßΓѼá π»αáó½Ñ¡¿∩ «óÑα½Ñ∩¼¿ ¡Ñ πßΓá¡«ó-
  1693. ½Ñ¡á).
  1694.      Åα«µÑñπαá OvrInit ñ«½ª¡á óδºδóáΓ∞ß∩ »ÑαÑñ ½εí묨 ñαπú¿-
  1695. ¼¿ »α«µÑñπαἿ »«ñß¿ßΓѼδ π»αáó½Ñ¡¿∩ «óÑα½Ñ∩¼¿.
  1696.      Åα«τÑÑ:  æ¼.  ΓᬪѠ »α«µÑñπαδ  OvrGetBuf,  OvrInitEMS,
  1697. OvrSetBuf.
  1698.      Åα¿¼Ñα:
  1699.  
  1700.   use Overlay;
  1701.   const
  1702.   begin
  1703.     OvrInit('EDITOR.OVR');
  1704.     if OvrResult <> ovrOk then
  1705.     begin
  1706.       case OvrResult of
  1707.        ovrError: Writeln('Åα«úαἼᠡѠ߫ñÑন¼Γ «óÑα½ÑÑó');
  1708.        ovrNotFound: Writeln('ÄóÑα½Ñ⌐¡δ⌐ Σá⌐½ ¡Ñ ¡á⌐ñÑ¡');
  1709.       end;
  1710.     Halt(1);
  1711.     end;
  1712.   end.
  1713.  
  1714. ------------------------------------------------------------
  1715.  Åα«µÑñπαá OvrInitEMS                        î«ñπ½∞ Overlay
  1716. ------------------------------------------------------------
  1717.      öπ¬¡µ¿∩: àß½¿ φΓ« ó«º¼«ª¡«, ºáúαπªáÑΓ «óÑα½Ñ⌐¡δ⌐ Σá⌐½ ó
  1718. αáßΦ¿αÑ¡¡πε »á¼∩Γ∞ (EMS).
  1719.      Ä»¿ßá¡¿Ñ: OvrInitEMS
  1720.      Åα¿¼Ñτá¡¿∩: àß½¿ ¿¼ÑÑΓß∩ ñαá⌐óÑα αáßΦ¿αÑ¡¡«⌐  »á¼∩Γ¿  ¿
  1721. ¿¼ÑÑΓß∩  ñ«ßΓáΓ«τ¡δ⌐ «íΩѼ Γᬫ⌐ »á¼∩Γ¿, Γ« ñá¡¡á∩ »α«µÑñπαá
  1722. ºáúαπªáÑΓ óßÑ «óÑα½Ñ¿ ó αáßΦ¿αÑ¡¡πε »á¼∩Γ∞ ¿ ºá¬αδóáÑΓ «óÑα-
  1723. ½Ñ⌐¡δ⌐ Σá⌐½. Å«ß½ÑñπεΘ¿Ñ ºáúαπº¬¿ «óÑα½ÑÑó ßó«ñ∩Γß∩ »α«ßΓ« ¬
  1724. íδßΓα«⌐  »ÑαÑßδ½¬Ñ  ¿σ  ¿º  »á¼∩Γ¿   ó   »á¼∩Γ∞.   Åα«µÑñπαá
  1725. OvrInitEMS  πßΓá¡áó½¿óáÑΓ  ΓᬪѠ »α«µÑñπαπ óδσ«ñá, ¬«Γ«α«á∩
  1726. »α¿ ºáóÑαΦÑ¡¿¿ αáí«Γδ  »α«úαá¼¼δ  áóΓ«¼áΓ¿τÑ߬¿  «ßó«í«ªñáÑΓ
  1727. óδñѽѡ¡πε αáßΦ¿αÑ¡¡πε »á¼∩Γ∞.
  1728.      é«º¼«ª¡δÑ «Φ¿í¬¿ ¼«úπΓ íδΓ∞ »«½πτÑ¡δ ß »«¼«Θ∞ε »ÑαѼѡ-
  1729. ¡«⌐  «»Ñαᵿ«¡¡«⌐ ßαÑñδ OvrResult. ç¡áτÑ¡¿Ñ ovrOk ú«ó«α¿Γ «í
  1730. πß»ÑΦ¡«¼  ºáóÑαΦÑ¡¿¿,  ovrError  »«¬áºδóáÑΓ,  τΓ«  »α«µÑñπαá
  1731. OvrInit ºáóÑαΦ¿½áß∞ ¡Ñπñáτ¡« ¿½¿ ¡Ñ íδ½á óδºóá¡á, ovrIOError
  1732. ú«ó«α¿Γ « Γ«¼, τΓ« »α¿ τΓÑ¡¿¿  «óÑα½Ñ⌐¡«ú«  Σá⌐½á  »α«¿º«Φ½á
  1733. «Φ¿í¬á,  ovrNoEMSDriver «º¡áτáÑΓ, τΓ« ¡Ñ ¡á⌐ñÑ¡ ñαá⌐óÑα αáß-
  1734. Φ¿αÑ¡¡«⌐ »á¼∩Γ¿, ovrNoEMSMemory - τΓ« ñ½∩ ºáúαπº¬¿  «óÑα½Ñ⌐-
  1735. ¡«ú«  Σá⌐½á  ó αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ ¡ÑΓ ñ«ßΓáΓ«τ¡«ú« »α«ßΓαá¡-
  1736. ßΓóá.
  1737.      é ß½πτáÑ «Φ¿í¬¿ »«ñß¿ßΓѼá π»αáó½Ñ¡¿∩  «óÑα½Ñ∩¼¿  íπñÑΓ
  1738. »α«ñ«½ªáΓ∞ αáí«Γπ, ¡« «óÑα½Ñ¿ íπñπΓ ßτ¿ΓδóáΓ∞ß∩ ß ñ¿ß¬á.
  1739.      äαá⌐óÑα αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ ñ«½ªÑ¡ «ΓóÑτáΓ∞  ß«ú½áΦÑ¡¿∩¼
  1740. Σ¿α¼ ï«Γπß, ê¡Γѽ ¿ î¿¬α«ß«ΣΓ (Expamded Memory Specification
  1741. - EMS). àß½¿ óδ ¿ß»«½∞ºπÑΓÑ »ßÑóñ«ñ¿ß¬, αẼÑΘÑ¡¡δ⌐ ó αáßΦ¿-
  1742. αÑ¡¡«⌐  »á¼∩Γ¿, ¡πª¡« πíÑñ¿Γ∞ß∩ ó Γ«¼, τΓ« ¬«¼á¡ñá, ß«ñÑαªá-
  1743. Θá∩ß∩ ó Σá⌐½Ñ CONFIG.SYS ¿ ºáúαπªáεΘá∩  ñαá⌐óÑα  »ßÑóñ«ñ¿ß¬á
  1744. «ßΓáó½∩ÑΓ  ¡Ñ¬«Γ«αδ⌐ ßó«í«ñ¡δ⌐ «íΩѼ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿, ¬«-
  1745. Γ«αδ⌐ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ óáΦá »α¿¬½áñ¡á∩ ºáñáτá.
  1746.      Åα«τÑÑ:   æ¼.   ΓᬪѠ  »α«µÑñπαδ  OvrGetBuf,  OvrInit,
  1747. OvrSetBuf.
  1748.      Åα¿¼Ñα:
  1749.  
  1750.   use Overlay;
  1751.   const
  1752.   begin
  1753.     OvrInit('EDITOR.OVR');
  1754.     if OvrResult <> ovrOk then
  1755.     begin
  1756.        Writeln('Å«ñß¿ßΓѼá π»αáó½Ñ¡¿∩ π»αáó½Ñ¡¿∩ «óÑα½Ñ∩¼¿
  1757.  ¡Ñ πßΓá¡«ó½Ñ¡á ¿º-ºá «Φ¿í¬¿');
  1758.        Halt(1);
  1759.     end;
  1760.     OvrInitEMS;
  1761.     case OvrResult of
  1762.      ovrIOError: Writeln('ÄΦ¿í¬á óó«ñá-óδó«ñá »α¿ τΓÑ¡¿¿
  1763.                           «óÑα½Ñ⌐¡«ú« Σá⌐½á');
  1764.      ovrNoEMSDriver: Writeln('ìÑ πßΓá¡«ó½Ñ¡ ñαá⌐óÑα
  1765.                               αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿');
  1766.      ovrNoEMSMemory('ìÑ σóáΓáÑΓ «íΩѼá αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿');
  1767.     else
  1768.      Writeln('ä½∩ í«½ÑÑ íδßΓα«⌐ αáí«Γδ ß «óÑα½∩Ѽ¿
  1769.               ¿ß»«½∞ºπÑΓß∩ αáßΦ¿αÑ¡¡á∩ »á¼∩Γ∞');
  1770.    end;
  1771.   end.
  1772.  
  1773. ------------------------------------------------------------
  1774.  Åα«µÑñπαá OvrSetBuf                         î«ñπ½∞ Overlay
  1775. ------------------------------------------------------------
  1776.      öπ¬¡µ¿∩: ôßΓá¡áó½¿óáÑΓ αẼÑα «óÑα½Ñ⌐¡«ú« íπΣÑαá.
  1777.      Ä»¿ßá¡¿Ñ: OvrSetBuf(αẼ_íπΣÑαá : longint)
  1778.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα "αẼ_íπΣÑαá" ñ«½ªÑ¡  íδΓ∞  í«½∞ΦÑ
  1779. ¿½¿ αáóÑ¡ ¡áτá½∞¡«¼π αẼÑαπ «óÑα½Ñ⌐¡«ú« íπΣÑαá ¿ ¼Ñ¡∞ΦÑ ¿½¿
  1780. αáóÑα MemAvail + OvrGetBuf. ìáτá½∞¡δ⌐ αẼÑα «óÑα½Ñ⌐¡«ú« íπ-
  1781. ΣÑαá  »αÑñßΓáó½∩ÑΓ  ß«í«⌐  αẼÑα,  ó«ºóαáΘáѼδ⌐  »α«µÑñπα«⌐
  1782. OvrGetBuf »ÑαÑñ «íαáΘÑ¡¿∩¼¿ ¬ OvrSetBuf. àß½¿ ºáñá¡¡δ⌐  αáº-
  1783. ¼Ñα »αÑóδΦáÑΓ ΓѬπΘ¿⌐ αẼÑα, Γ« ¿º ¡áτá½á ñ¿¡á¼¿τÑ߬¿ αáß»-
  1784. αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ñ«íáó½∩ÑΓß∩ ñ«»«½¡¿Γѽ∞¡á∩ »á¼∩Γ∞, ¿, Γá-
  1785. ¬¿¼ «íαẫ¼, αẼÑα ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩-
  1786. Γ¿ π¼Ñ¡∞ΦáÑΓß∩. àß½¿ ªÑ ºáñá¡¡δ⌐ αẼÑα ¼Ñ¡∞ΦÑ ΓѬπΘÑú«,  Γ«
  1787. ¿ºíδΓ«τ¡«Ñ »α«ßΓαá¡ßΓó« »α¿ß«Ññ¿¡∩ÑΓß∩ ¬ ñ¿¡á¼¿τÑ߬¿ αáß»αÑ-
  1788. ñѽ∩Ѽ«⌐ «í½áßΓ¿.
  1789.      Åα«µÑñπαá OverSetBuf ΓαÑíπÑΓ, τΓ«íδ ñ¿¡á¼¿τÑ߬¿ αáß»αÑ-
  1790. ñѽ∩Ѽá∩ «í½áßΓ∞ »á¼∩Γ¿ íδ½á »πßΓ«⌐. àß½¿ ß »«¼«Θ∞ε »α«µÑñπα
  1791. New  ¿ GetMem πªÑ óδñѽѡδ ñ¿¡á¼¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ, Γ«  ó«º-
  1792. ¡¿¬áÑΓ  «Φ¿í¬á. Å«φΓ«¼π ¡Ñ«íσ«ñ¿¼« πíÑñ¿Γ∞ß∩ ó Γ«¼, τΓ« »α«-
  1793. µÑñπαá  OvrSetBuf  ¿ß»«½∞ºπÑΓß∩  »ÑαÑñ   óδº«ó«¼   »α«µÑñπαδ
  1794. InitGraph,  »«ß¬«½∞¬π  »α«µÑñπαá InitGraph óδñѽ∩ÑΓ »á¼∩Γ∞ ó
  1795. ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿, »«ß½Ñ τÑú« óßÑ «íαáΘÑ¡¿∩
  1796. ¬ »α«µÑñπαÑ OvrSetBuf ¿ú¡«α¿απεΓß∩.
  1797.      àß½¿ ñ½∩ πóѽ¿τÑ¡¿∩ αẼÑαá «óÑα½Ñ⌐¡«ú« íπΣÑαá  óδ  ¿ß-
  1798. »«½∞ºπÑΓÑ  »α«µÑñπαπ OvrSetBuf, Γ« ñ½∩ ß««ΓóÑΓßΓóπεΘÑú« πóÑ-
  1799. ½¿τÑ¡¿∩ ¼¿¡¿¼á½∞¡«ú« αẼÑαá ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐  «í-
  1800. ½áßΓ¿ ó »α«úαá¼¼π ¡Ñ«íσ«ñ¿¼« ΓᬪѠó¬½ετ¿Γ∞ ñ¿αÑ¬Γ¿ó𠬫¼»¿-
  1801. ½∩Γ«αá $M.
  1802.      é«º¼«ª¡δÑ «Φ¿í¬¿ ¼«úπΓ íδΓ∞ »«½πτÑ¡δ ß »«¼«Θ∞ε »ÑαѼѡ-
  1803. ¡«⌐  OvrResult.  ç¡áτÑ¡¿Ñ ovrOk ú«ó«α¿Γ «í πß»ÑΦ¡«¼ ºáóÑαΦÑ-
  1804. ¡¿¿, ovrError - « Γ«¼, τΓ« »α«µÑñπαá OvrInit ºáóÑαΦ¿½áß∞  ¡Ñ
  1805. πñáτ¡« ¿½¿ ¡Ñ íδ½á óδºóá¡á, τΓ« º¡áτÑ¡¿Ñ "αẼ_íπΣÑαá" ß½¿Φ-
  1806. ¬«¼ ¼á½« ¿½¿ τΓ« ñ½∩ πóѽ¿τÑ¡¿∩ αẼÑαá  «óÑα½Ñ⌐¡«ú«  íπΣÑαá
  1807. ¡Ñ σóáΓáÑΓ »á¼∩Γ¿.
  1808.      Åα«τÑÑ:   æ¼.  ΓᬪѠ »α«µÑñπαδ   OvrGetBuf,   OvrInit,
  1809. OvrInitEMS.
  1810.      Åα¿¼Ñα:
  1811.  
  1812.  {$M 16384,65536,655360 }
  1813.   use Overlay;
  1814.   const
  1815.     ExtractSize = 49152; { 48K }
  1816.   begin
  1817.     OvrInit('EDITOR.OVR');
  1818.     OvrSetBuf(OvrGetBuf + ExtactSize);
  1819.   end.
  1820.  
  1821. ------------------------------------------------------------
  1822.  Åα«µÑñπαá PackTime                              î«ñπ½∞ Dos
  1823. ------------------------------------------------------------
  1824.      öπ¡¬µ¿∩: ÅαÑ«íαáºπÑΓ ºá»¿ß∞ DateTime (ñáΓá ¿  óαѼ∩)  ó
  1825. τÑΓδαÑσíá⌐Γ«ó«Ñ   º¡áτÑ¡¿Ñ,  »αÑ«íαáºπ∩  ñ½¿¡¡δ⌐  µÑ½δ⌐  Γ¿»
  1826. »αÑñßΓáó½Ñ¡¿∩ ñáΓδ ¿ óαѼѡ¿, ¿ß»«½∞ºπѼδ⌐  »α«µÑñπα«⌐  Set-
  1827. Time.
  1828.      Ä»¿ßá¡¿Ñ: PackTime(var DT: DateTime; var  Time  :  lon-
  1829. gint)
  1830.      Åα¿¼Ñτá¡¿∩: çỿß∞ DateTime «»¿ßá¡á ó ¼«ñπ½Ñ Dos ß½Ññπ-
  1831. εΘ¿¼ «íαẫ¼:
  1832.  
  1833.  DateTime = record
  1834.                Year, Month, Day, Hour, Min, Sec : word;
  1835.             end;
  1836.  
  1837.      ä½∩ »«½Ñ⌐ ñá¡¡«⌐ ºá»¿ß¿ ¡Ñ óδ»«½¡∩ÑΓß∩ »α«óÑα¬á ¡á »αá-
  1838. ó¿½∞¡«ßΓ∞ úαá¡¿µ.
  1839.      Åα«τÑÑ:   æ¼.  ΓᬪѠ »α«µÑñπαδ  UnPackTime,   GetTime,
  1840. SetTime, GetFTime, SetFTime.
  1841.  
  1842. ------------------------------------------------------------
  1843.  öπ¡¬µ¿∩ ParamCount
  1844. ------------------------------------------------------------
  1845.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ τ¿ß½« »áαá¼ÑΓα«ó,  »ÑαÑñá¡¡δσ  ó  ó
  1846. ¬«¼á¡ñ¡«⌐ ßΓ᫬Ñ.
  1847.      Ä»¿ßá¡¿Ñ: ParamCount
  1848.      Æ¿» αѺπ½∞ΓáΓá: æ½«ó« (word).
  1849.      Åα¿¼Ñτá¡¿∩: Éáºñѽ¿Γѽ∩¼¿ ß½πªáΓ »α«íÑ½δ ¿ ß¿¼ó«½δ  Γá-
  1850. íπ½∩µ¿¿.
  1851.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿ε ParamStr.
  1852.      Åα¿¼Ñα:
  1853.  
  1854.  begin
  1855.    if ParamCount < 1 then
  1856.       Writeln('é ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ ¡ÑΓ »áαá¼ÑΓα«ó');
  1857.    else
  1858.       Writeln(ParamCount,' »áαá¼ÑΓα«ó');
  1859.  end.
  1860.  
  1861. ------------------------------------------------------------
  1862.  öπ¡¬µ¿∩ ParamStr
  1863. ------------------------------------------------------------
  1864.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ºáñá¡¡δ⌐ »áαá¼ÑΓα ¬«¼á¡ñ¡«⌐ ßΓ᫬¿.
  1865.      Ä»¿ßá¡¿Ñ: Éárá¼Str(¿¡ñѬß)
  1866.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα "¿¡ñѬß" »αÑñßΓáó½∩ÑΓ ß«í«⌐  óδαá-
  1867. ªÑ¡¿Ñ ñ½¿¡«⌐ ó ß½«ó«. äá¡¡á∩ Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¿º ¬«¼á¡ñ¡«⌐
  1868. ßΓ᫬¿ »áαá¼ÑΓα, ¡«¼Ñα  ¬«Γ«α«ú«  ºáñáÑΓß∩  »áαá¼ÑΓα«¼  "¿¡-
  1869. ñѬß",  ¿½¿  »πßΓπε ßΓ᫬π, Ñß½¿ "¿¡ñѬß" αáó¡∩ÑΓß∩ ¡π½ε ¿½¿
  1870. í«½∞ΦÑ, τѼ Éárá¼æ«unt.
  1871.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿ε ParamCount.
  1872.      Åα¿¼Ñα:
  1873.  
  1874.  var i : word;
  1875.  begin
  1876.    for i := 1 to ParamCount do
  1877.         Writeln(PaamStr(i));
  1878.  end.
  1879.  
  1880. ------------------------------------------------------------
  1881.  öπ¡¬¿∩ Pi
  1882. ------------------------------------------------------------
  1883.      öπ¡¬µ¿∩:    é«ºóαáΘáÑΓ    º¡áτÑ¡¿Ñ    τ¿ß½á          Pi
  1884. (3,1415926535897932385).
  1885.      Ä»¿ßá¡¿Ñ: Pi
  1886.      Æ¿» αѺπ½∞ΓáΓá: éÑΘÑßΓóÑ¡¡δ⌐ (real).
  1887.      Åα¿¼Ñτá¡¿∩: é ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, αáí«ΓáÑΓ ½¿ ¬«¼»¿½∩-
  1888. Γ«α  ó  αѪ¿¼Ñ  »α«µÑßß«αá 8087 (80287, 80387), ¿½¿ Γ«½∞¬« ó
  1889. αѪ¿¼Ñ »α«úαá¼¼¡«ú« «íÑß»ÑτÑ¡¿∩, Γ«τ¡«ßΓ∞ ¼«ªÑΓ ¼Ñ¡∩Γ∞ß∩.
  1890.      ÄΓ½¿τ¿∩: é óÑαß¿¿ 3.0 τ¿ß½« Éi »αÑñßΓáó½∩½« ß«í«⌐ ¬«¡ß-
  1891. Γá¡Γπ.
  1892.  
  1893. ------------------------------------------------------------
  1894.  Åα«µÑñπαá PieSlice                            î«ñπ½∞ Graph
  1895. ------------------------------------------------------------
  1896.      öπ¡¬µ¿∩: É¿ßπÑΓ ¿ ºá»«½¡∩ÑΓ µóÑΓ«¼ ßÑ¬Γ«α ¬απúá.  Æ«τ¬á
  1897. (ò,Y)  »α¿ φΓ«¼ ¿ß»«½∞ºπÑΓß∩ ó ¬áτÑßΓóÑ µÑ¡Γαá «¬απª¡«ßΓ¿, á
  1898. ßÑ¬Γ«α α¿ßπÑΓß∩ «Γ ¡áτá½∞¡«ú« πú½á ñ« ¬«¡Ñτ¡«ú« πú½á.
  1899.      Ä»¿ßá¡¿Ñ: PieSlice(σ, π : integer; ¡áτ_πú«½,  ¬«¡_πú«½,
  1900. αáñ¿πß : word)
  1901.      Åα¿¼Ñτá¡¿∩: è«¡Γπα ßÑ¬Γ«αá óδτÑατ¿óáÑΓß∩  ΓѬπΘ¿¼  µóÑ-
  1902. Γ«¼,  á  »α¿  ºá¬αáΦ¿óá¡¿¿ ¿ß»«½∞ºπεΓß∩ Γ¿» ¿ µóÑΓ ºá¬αá߬¿,
  1903. ºáñá¡¡δÑ »α«µÑñπαἿ SetFillStyle ¿ SetFillPattern.
  1904.      é ¬áªñ«¼ úαáΣ¿τÑ߬«¼  ñαá⌐óÑαÑ  ß«ñÑনΓß∩  ¬«φΣΣ¿µ¿Ñ¡Γ
  1905. «Γ¡«ß¿Γѽ∞¡«ú« πñ½¿¡¡Ñ¡¿∩, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó »α«µÑñπαáσ
  1906. æircle, Çrß ¿ ÉieSlice. ìáτá½∞¡δ⌐ πú«½, αáó¡δ⌐ 0 ¿  ¬«¡Ñτ¡δ⌐
  1907. πú«½, αáó¡δ⌐ 359, ºáñáεΓ óδτÑατ¿óá¡¿Ñ »«½¡«⌐ «¬απª¡«ßΓ¿.
  1908.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  1909.      Åα«τÑÑ:  æ¼.  ΓᬪѠ »α«µÑñπαδ  Arc,  Circle,  Ellipse,
  1910. GetArcCoods, GetAspectRatio, SetFillStyle, SetFillPatern.
  1911.      Åα¿¼Ñα:
  1912.  
  1913.  uses Graph;
  1914.  const
  1915.    Radius = 30;
  1916.  var
  1917.    Gr, Gm : integer;
  1918.  begin
  1919.    Gd := Detect;
  1920.    InitGraph(Gd, Gm, '');
  1921.    if GraphResult <> grOk then
  1922.       Halt(1);
  1923.  PieSlice(100, 100, 0, 270, Radius);
  1924.  Readln;
  1925.  CloseGraph;
  1926.  end.
  1927.  
  1928. ------------------------------------------------------------
  1929.  öπ¡¬µ¿∩ Pos
  1930. ------------------------------------------------------------
  1931.      öπ¡¬µ¿∩: Åα«¿ºó«ñ¿Γ »«¿ß¬ »«ñßΓ᫬¿ ó ßΓ᫬Ñ.
  1932.      Ä»¿ßá¡¿Ñ: Pos(»«ñßΓ᫬á, s : string)
  1933.      Æ¿» αѺπ½∞ΓáΓá: üá⌐Γ (byte).
  1934.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓαδ "»«ñßΓ᫬á" ¿ s ∩ó½∩εΓß∩  óδαáªÑ-
  1935. ¡¿∩¼¿ ßΓ᫬«ó«ú« Γ¿»á. äá¡¡á∩ Σπ¡¬µ¿∩ ¿ΘÑΓ »«ñßΓ᫬π, ºáñá¡-
  1936. ¡πε »áαá¼ÑΓα«¼ "»«ñßΓ᫬á", ó ßΓα«¬Ñ s  ¿  ó«ºóαáΘáÑΓ  µÑ½«Ñ
  1937. º¡áτÑ¡¿Ñ,  ∩ó½∩εΘÑÑß∩  »«º¿µ¿Ñ⌐  »Ñαó«ú« ß¿¼ó«½á »«ñßΓ᫬¿ ó
  1938. ßΓα«¬Ñ s. àß½¿ »«ñßΓα«¬á ¡Ñ ¡á⌐ñÑ¡á, Γ«  Σπ¡¬µ¿∩  ó«ºóαáΘáÑΓ
  1939. º¡áτÑ¡¿Ñ 0.
  1940.      Åα¿¼Ñα:
  1941.  
  1942.  var
  1943.    s : string;
  1944.   begin
  1945.    s := '    123.5';
  1946.  { »αÑ«íαáºπÑΓ »α«íѽδ ó ¡π½¿ }
  1947.    while Pos(' ',s) > 0  do
  1948.      s[Pos(' ',s)] := '0';
  1949.    end;
  1950.  
  1951. ------------------------------------------------------------
  1952.  öπ¡¬µ¿∩ Pred
  1953. ------------------------------------------------------------
  1954.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ »αÑñΦÑßΓóπεΘÑÑ º¡áτÑ¡¿Ñ áαúπ¼Ñ¡Γá.
  1955.      Ä»¿ßá¡¿Ñ: Pred(x)
  1956.      Æ¿» αѺπ½∞ΓáΓá: æ«ó»áñáÑΓ ß Γ¿»«¼ »áαá¼ÑΓαá.
  1957.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα x - óδαáªÑ¡¿Ñ »ÑαÑτ¿ß½¿¼«ú«  Γ¿»á.
  1958.  
  1959. ÉѺπ½∞ΓáΓ, ¿¼ÑεΘ¿⌐ Γ«Γ ªÑ Γ¿», τΓ« ¿ x, ∩ó½∩ÑΓß∩ »αÑñΘÑßΓóπ-
  1960. εΘ¿¼ º¡áτÑ¡¿Ñ¼ x.
  1961.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿¿ Succ, Dec.
  1962.  
  1963. ------------------------------------------------------------
  1964.  öπ¡¬µ¿∩ Ptr
  1965. ------------------------------------------------------------
  1966.      öπ¡¬µ¿∩: ÅαÑ«íαáºπÑΓ áñαÑß, ºáñá¡¡δ⌐  ó  ó¿ñÑ  íẫó«ú«
  1967. ßÑú¼Ñ¡Γá ¿ ß¼ÑΘÑ¡¿∩, ó º¡áτÑ¡¿Ñ Γ¿»á π¬áºáΓѽ∞.
  1968.      Ä»¿ßá¡¿Ñ: Étr(ßÑú¼, ß¼ÑΘ : word)
  1969.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓαδ "ßÑú¼" ¿ "ß¼ÑΘ" »αÑñßΓáó½∩εΓ  ß«-
  1970. í«⌐ óδαáªÑ¡¿∩ ñ½¿¡«⌐ ó ß½«ó«. ÉѺπ½∞ΓáΓ«¼ ∩ó½∩ÑΓß∩ π¬áºáΓѽ∞
  1971. ¡á áñαÑß, ºáñá¡¡δ⌐ »áαá¼ÑΓαἿ "ßÑú¼" ¿ "ß¼ÑΘ". èᬠ¿ π¬áºá-
  1972. Γѽ∞ Γ¿»á nil, αѺπ½∞ΓáΓ Σπ¡¬µ¿¿ Étr ß«ó¼ÑßΓ¿¼ »« »α¿ßóá¿óá-
  1973. ¡¿ε ß π¬áºáΓѽ∩¼¿ ½εíδσ Γ¿»«ó.
  1974.      ÉѺπ½∞ΓáΓ Σπ¡¬µ¿¿ ¼«ª¡« »α«á¡á½¿º¿α«óáΓ∞, ¡á»α¿¼Ñα:
  1975.  
  1976.  if Prt($40, $49)^ = 7 then
  1977.     Writeln('ó¿ñÑ«αѪ¿¼ = ¼«¡«');
  1978.  
  1979.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿ε Addr.
  1980.      Åα¿¼Ñα:
  1981.  
  1982.  var
  1983.    p : ^byte;
  1984.  begin
  1985.    p := Ptr($40, $49);
  1986.    Writeln('ÆÑ¬πΘ¿¼ ó¿ñÑ«αѪ¿¼«¼ ∩ó½∩ÑΓß∩ ', p^);
  1987.  end;
  1988.  
  1989. ------------------------------------------------------------
  1990.  Åα«µÑñπαá PutImage                            î«ñπ½∞ Graph
  1991. ------------------------------------------------------------
  1992.      öπ¡¬µ¿∩: éδó«ñ¿Γ ¿º íπΣÑαá ¡á φ¬αá¡ ñó«¿τ¡δ⌐ «íαẠ ºá-
  1993. ñá¡¡«⌐ «í½áßΓ¿ φ¬αá¡á.
  1994.      Ä»¿ßá¡¿Ñ:  PutImage(σ1,  π1,  σ2,  π2,  :   word;   var
  1995. í¿Γ_¼áßß; ñó_«»Ñα : word)
  1996.      Åα¿¼Ñτá¡¿∩: Æ«τ¬á ß ¬««αñ¿¡áΓἿ (σ,π) «»αÑñѽ∩ÑΓ óÑασ-
  1997. ¡¿⌐   ½Ñóδ⌐  πú«½  »α∩¼«πú«½∞¡«⌐  «í½áßΓ¿  φ¬αá¡á.  Åáαá¼ÑΓα
  1998. "í¿Γ_¼áßß" ∩ó½∩ÑΓß∩ ¡ÑΓ¿»¿º«óá¡¡δ¼ »áαá¼ÑΓα«¼, ¬«Γ«αδ⌐ «»αÑ-
  1999. ñѽ∩ÑΓ  Φ¿α¿¡π  ¿  óδß«Γπ «í½áßΓ¿ φ¬αá¡á. Åáαá¼ÑΓα "ñó_«»Ñα"
  2000. «»αÑñѽ∩ÑΓ, ¬á¬«⌐ ñó«¿τ¡δ⌐ «»ÑαáΓ«α íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩
  2001. óδó«ñá ñó«¿τ¡«ú« «íαáºá «í½áßΓ¿ ¡á φ¬αá¡.
  2002.      Ä»αÑñѽѡδ ß½ÑñπεΘ¿Ñ ¬«¡ßΓá¡Γδ:
  2003.  
  2004.  const
  2005.    NormalPut  = 0;                         { MOV }
  2006.    XORPut     = 1;                         { XOR }
  2007.    OrPut      = 2;                         { OR  }
  2008.    AndPut     = 3;                         { AND }
  2009.    NotPut     = 4;                         { NOT }
  2010.  
  2011.      èáªñá∩ ¬«¡ßΓá¡Γá ß««ΓóÑßΓóπÑΓ ñó«¿τ¡«⌐ «»Ñαᵿ¿. ìá»α¿-
  2012. ¼Ñα, PutImage(x,y,BitMap,NormalPut) óδó«ñ¿Γ ¡á φ¬αá¡  ñó«¿τ-
  2013. ¡δ⌐  «íαáº,  ß«σαá¡Ñ¡¡δ⌐  ó  ¼áßß¿óÑ BitMap, ¡áτ¿¡á∩ ß Γ«τ¬¿
  2014. (x,y). Åα¿ φΓ«¼ ñ½∩ óδó«ñá ¬áªñ«ú«  íá⌐Γá  ñó«¿τ¡«ú«  «íαáºá
  2015. ¿ß»«½∞ºπÑΓß∩ ¿¡ßΓαπ¬µ¿∩ áßßѼí½Ñαá îÄV.
  2016.      Ç¡á½«ú¿τ¡«:
  2017.  
  2018.      PutImage(x,y,BitMap,XORPut)
  2019.  
  2020. óδó«ñ¿Γ ¡á φ¬αá¡ ñó«¿τ¡δ⌐ «íαáº, ß«σαá¡Ñ¡¡δ⌐ ó ¼áßß¿óÑ  Bit-
  2021. Map, ¡áτ¿¡á∩ ß Γ«τ¬¿ (x,y). Åα¿ φΓ«¼ ñ½∩ óδó«ñá ¬áªñ«ú« íá⌐-
  2022. Γá ñó«¿τ¡«ú« «íαáºá ¿ß»«½∞ºπÑΓß∩ ¿¡ßΓαπ¬µ¿∩ áßßѼí½Ñαá  òÄR.
  2023. ¥Γ«Γ ¼ÑΓ«ñ τáßΓ« ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¼π½∞Γ¿»½¿¬áµ¿¿ ¿ »ÑαѼÑΘÑ-
  2024. ¡¿∩ ¿º«íαáªÑ¡¿∩ »« φ¬αá¡π.
  2025.  
  2026.      PutImage(x,y,BitMap,NotPut)
  2027.  
  2028. ¿¡óÑαΓ¿απÑΓ í¿Γδ ó BitMap ¿ óδó«ñ¿Γ ñó«¿τ¡δσ  «íαáº,  ß«σαá-
  2029. ¡Ñ¡¡δ⌐ ó BitMap, ¡áτ¿¡á∩ ß Γ«τ¬¿ (x,y). Åα¿ φΓ«¼ ñ½∩ ¬áªñ«ú«
  2030. íá⌐Γá ñó«¿τ¡«ú«  «íαáºá  ¿ß»«½∞ºπÑΓß∩  ¿¡ßΓᬵ¿∩  áßßѼí½Ñαá
  2031. MOV.  Æá¬¿¼ «íαẫ¼ ñó«¿τ¡δσ «íαẠ»α¿ óδó«ñÑ »«½πτáÑΓ ¡Ñúá-
  2032. Γ¿ó¡«Ñ »« «Γ¡«ΦÑ¡¿ε ¬ ¿ßσ«ñ¡«¼π ¿º«íαáªÑ¡¿Ñ.
  2033.      çá¼ÑΓ¿¼, τΓ« »α«µÑñαá PutImage ¡¿¬«úñá ¡Ñ óδ»«½¡∩ÑΓ «Γ-
  2034. ßÑτÑ¡¿Ñ  ¿º«íαáªÑ¡¿∩  ¡á úαá¡¿µáσ ΓѬπΘÑ⌐ «í½áßΓ¿ »α«ß¼«Γαá.
  2035. ü«½ÑÑ Γ«ú«, ºá «ñ¡¿¼ ¿ß¬½ετ¡¿Ñ¼ «¡« ¡Ñ «ΓßѬáÑΓß∩  ΓᬪѠ ¡á
  2036. úαá¡¿µÑ  óßÑú«  φ¬αá¡á. é φΓ«¼ ß½πτáÑ, Ñß½¿ ¬á¬á∩-½¿í« τáßΓ∞
  2037. ¿º«íαáªÑ¡¿∩ ¡Ñ »«¼ÑΘáÑΓß∩ ó »«½Ñ φ¬αá¡á, «¡« ó««íΘÑ ¡Ñ óδó«-
  2038. ñ¿Γß∩.  é  ß½ÑñπεΘѼ »α¿¼ÑαÑ »Ñαóδ⌐ «íαẠφ¬αá¡á íπñÑΓ óδóÑ-
  2039. ñÑ¡, á ßαÑñ¡¿Ñ Γα¿ ó맮óá  PutImage  ¡Ñ  »α¿óÑñπΓ  ¬  óδó«ñπ
  2040. ¿º«íαáªÑ¡¿∩.
  2041.  
  2042.   program NoClip;
  2043.   uses Graph;
  2044.   var
  2045.     Driver, Mode : integer;
  2046.     p : pointer;
  2047.   begin
  2048.     Driver := Detect;
  2049.     InitGraph(Driver, Mode, '');
  2050.     if GraphResult <> grOk then
  2051.        Halt(1);
  2052.     SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn);
  2053.     GetMem(p, ImageSize(0, 0, 0, 99, 49));
  2054.     PieSlice(50, 25, 0, 360, 45);
  2055.     GetImage(0, 0, 99, 49, p^);  { Φ¿α¿¡á = 100,
  2056.                                    óδß«Γá = 50 }
  2057.     ClearDevice;
  2058.     PutImage(GetMaxX - 99, 0, p^, NormalPut);
  2059.              { x + óδß«Γá > GetMaxX }
  2060.     PutImage(-1, 0, p^, NormalPut); { -1,0 ¡Ñ ¡áσ«ñ¿Γß∩ ¡á
  2061.                                       φ¬αá¡Ñ }
  2062.     PutImage(0, -1, p^, NormalPut); { 0,-1 ¡Ñ ¡áσ«ñ¿Γß∩ ¡á
  2063.                                       φ¬αá¡Ñ }
  2064.     PutImage(0, GetMaxY - 30, p^, NormalPut)
  2065.              { óδóÑñÑΓ 31 "ßΓ᫬π" }
  2066.     Readln;
  2067.     CloseGraph;
  2068.     end.
  2069.  
  2070.      é »«ß½Ññ¡Ñ¼ «íαáΘÑ¡¿¿ ¬ PutImage óδß«Γá  «ΓßѬáÑΓß∩  »«
  2071. ¡¿ª¡Ñ¼π  ¬αáε  φ¬αá¡á  ¿  τáßΓ∞  ¿º«íαáªÑ¡¿∩  óδó«ñ¿Γß∩. ¥Γ«
  2072. Ññ¿¡ßΓóÑ¡¡δσ ß½πτá⌐, ¬«úñá »α«µÑñπαá PutImage «ΓßѬáÑΓ óδó«-
  2073. ñ¿¼«Ñ ¿º«íαáªÑ¡¿Ñ.
  2074.      Ç¡á½«ú¿τ¡á∩ »α«µÑñπαá ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  2075.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  2076.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ GetImage, ImageSize.
  2077.      Åα¿¼Ñα:
  2078.  
  2079.  uses Graph;
  2080.  var
  2081.     p  : pointer;
  2082.   Size : word;
  2083.  begin
  2084.   Gd := Detect;
  2085.   InitGraph(Gd, Gm, '');
  2086.   ig GraphResult <> grOk then
  2087.      Halt(1);
  2088.   Bar(0, 0, GetMaxX, GetMaxY);
  2089.   Size := ImageSize(10,20,30,40);
  2090.   GetMem(p, Size);  { óδñѽ¿Γ∞ »á¼∩Γ∞ ó ñ¿¡á¼¿τÑ߬¿ αáß»αÑ-
  2091.                        ñѽ∩Ѽ«⌐ «í½áßΓ¿ }
  2092.   GetImage(10,20,30,40,p^); { ßτ¿ΓáΓ∞ ñó«¿τ¡δ⌐ «íαẠ}
  2093.   PutImage(100,100,p^,NormalPut); { ß¬«»¿α«óáΓ∞ ñó«¿τ¡δ⌐
  2094.                                       «íαẠ}
  2095.   Readln;
  2096.   CloseGraph;
  2097.  end.
  2098.  
  2099. ------------------------------------------------------------
  2100.  Åα«µÑñπαá PutPixel
  2101. ------------------------------------------------------------
  2102.      öπ¡¬µ¿∩: æΓα«¿Γ φ½Ñ¼Ñ¡Γ ¿º«íαáªÑ¡¿∩) ó Γ«τ¬Ñ (x,y).
  2103.      Ä»¿ßá¡¿Ñ: PutPixel(x,y : integer; φ½_¿º«íα᪠: word).
  2104.      Åα¿¼Ñτá¡¿∩: æΓα«¿Γ ó (x,y) Γ«τ¬π, µóÑΓ ¬«Γ«α«⌐  «»αÑñÑ-
  2105. ½∩ÑΓß∩ »áαá¼ÑΓα«¼ "φ½_¿º«íα".
  2106.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  2107.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ GetImage, GetPixel,  PutIm-
  2108. age.
  2109.      Åα¿¼Ñα:
  2110.  
  2111.  uses Graph;
  2112.  var
  2113.     p  : pointer;
  2114.  Color : word;
  2115.  begin
  2116.   Gd := Detect;
  2117.   InitGraph(Gd, Gm, '');
  2118.   ig GraphResult <> grOk then
  2119.      Halt(1);
  2120.   Color := GetMaxColor;
  2121.  Randomize;
  2122.  repeat
  2123.    PutPixel(Random(100),Random(100),Color); { ßΓα«¿Γ
  2124.                                               "ºóѺñ«τ¬¿" }
  2125.    Delay(10);
  2126.  until KeyPressed;
  2127.  Readln;
  2128.  CloseGraph;
  2129.  end.
  2130.  
  2131. ------------------------------------------------------------
  2132.  öπ¡¬µ¿∩ Random
  2133. ------------------------------------------------------------
  2134.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ß½πτá⌐¡«Ñ τ¿ß½«.
  2135.      Ä»¿ßá¡¿Ñ: Random(ñ¿á»áº«¡ : word)
  2136.      Æ¿» αѺπ½∞ΓáΓá: æ«ó»áñáÑΓ ß Γ¿»«¼ »áαá¼ÑΓαá.
  2137.      Åα¿¼Ñτá¡¿∩: àß½¿ »áαá¼ÑΓα "ñ¿á»áº«¡" ¡Ñ ºáñá¡,  Γ«  αÑ-
  2138. ºπ½∞ΓáΓ«¼ íπñÑΓ óÑΘÑßΓóÑ¡¡«Ñ τ¿ß½« x ó ñ¿á»áº«¡Ñ 0 <= σ < 1.
  2139. àß½¿ ºáñá¡ »áαá¼ÑΓα "ñ¿á»áº«¡", Γ«  «¡  ñ«½ªÑ¡  »αÑñßΓáó½∩Γ∞
  2140. ß«í«⌐  óδαáªÑ¡¿Ñ  µÑ½«ú« Γ¿»á, á αѺπ½∞ΓáΓ«¼ íπñÑΓ ß½πτá⌐¡«Ñ
  2141. τ¿ß½« ñ½¿¡«⌐ ó ß½«ó« ó ñ¿á»áº«¡Ñ 0 <= σ < N, úñÑ N -  º¡áτÑ-
  2142. ¡¿Ñ,  ºáñá¡¡«Ñ  »áαá¼ÑΓα«¼ "ñ¿á»áº«¡". àß½¿ »áαá¼ÑΓα "ñ¿á»á-
  2143. º«¡" ¼Ñ¡∞ΦÑ ¿½¿ αáóÑ¡ ¡π½ε, Γ«  ó«óαáΘáѼ«Ñ  º¡áτÑ¡¿Ñ  íπñÑΓ
  2144. αáó¡« ¡π½ε.
  2145.      âÑ¡ÑαáΓ«α ß½πτá⌐¡δσ τ¿ßѽ Random  ñ«½ªÑ¡  ¿¡¿µ¿á½¿º¿α«-
  2146. óáΓ∞ß∩ «íαáΘÑ¡¿Ñ¼ ¬ »α«µÑñπαÑ Randomize.
  2147.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ Randomize.
  2148.  
  2149.      Åα¿¼Ñα:
  2150.  
  2151.  uses Crt;
  2152.   begin
  2153.     Randomize;
  2154.     repeat
  2155.   { óδóÑßΓ¿ ΓѬßΓ ß« ß½πτá⌐¡« óδíαá¡¡δ¼ µóÑΓ«¼ }
  2156.     TexAttr := Random(256);
  2157.     Write('!');
  2158.   until KeyPressed;
  2159.  end.
  2160.  
  2161. ------------------------------------------------------------
  2162.  Åα«µÑñπαá Randomize
  2163. ------------------------------------------------------------
  2164.      öπ¡¬µ¿∩: ê¡¿µ¿á½¿º¿απÑΓ óßΓα«Ñ¡¡δ⌐ úÑ¡ÑαáΓ«α  ß½πτá⌐¡δσ
  2165. τ¿ßѽ ß½πτá⌐¡δ¼ º¡áτÑ¡¿Ñ¼.
  2166.      Ä»¿ßá¡¿Ñ: Randomize
  2167.      Åα¿¼Ñτá¡¿∩: æ½πτá⌐¡«Ñ º¡áτÑ¡¿Ñ »«½πτáÑΓß∩ «Γ ß¿ßΓѼ¡«ú«
  2168. Γá⌐¼Ñαá.
  2169.  
  2170.            çá¼Ñτá¡¿Ñ: ù¿ß½«, »«½πτáѼ«Ñ ó αѺπ½∞ΓáΓÑ  αáí«Γδ
  2171.       úÑ¡ÑαáΓ«αá  ß½πτá⌐¡δσ  τ¿ßѽ,  σαá¡¿Γß∩ ó »αÑñ«»¿ßá¡«⌐
  2172.       »ÑαѼѡ¡«⌐ ß ¿¼Ñ¡Ñ¼ RandSeed. ÅπΓѼ »α¿ßóá¿óá¡¿∩  φΓ«⌐
  2173.       »ÑαѼѡ¡«⌐  ¬«¡¬αÑΓ¡«ú« º¡áτÑ¡¿∩ ¼«ª¡« »«½πτáΓ∞ ¬áªñδ⌐
  2174.       αẠºáñá¡¡πε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß½πτá⌐¡δσ  τ¿ßѽ.  ¥Γ«
  2175.       «ß«íÑ¡« »«½Ñº¡« ó »α¿¬½áñ¡δσ ºáñáτáσ, úñÑ ¿ß»«½∞ºπÑΓß∩
  2176.       ¬«ñ¿α«óá¡¿Ñ ñá¡¡δσ.
  2177.            Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ Random.
  2178.  
  2179. ------------------------------------------------------------
  2180.  Åα«µÑñπαá Read (Γ¿»¿º«óá¡¡δÑ Σá⌐½δ)
  2181. ------------------------------------------------------------
  2182.      öπ¡¬µ¿∩: æτ¿ΓδóáÑΓ ó »ÑαѼѡ¡πε φ½Ñ¼Ñ¡Γ Σá⌐½á.
  2183.      Ä»¿ßá¡¿Ñ: Read(f, v1, [, v2,...,vn])
  2184.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα f  ∩ó½∩ÑΓß∩  Σá⌐½«ó«⌐  »ÑαѼѡ¡«⌐,
  2185. ß««ΓóÑΓßΓóπεΘÑ⌐  ½εí«¼π Γ¿»π Σá⌐½á, ¬α«¼Ñ ΓѬßΓ«ó«ú«, á ¬áª-
  2186. ñδ⌐ φ½Ñ¼Ñ¡Γ v »αÑñßΓáó½∩ÑΓ ß«í«⌐ »ÑαѼѡ¡πε  Γ«ú«  ªÑ  Γ¿»á,
  2187. τΓ«  ¿  φ½Ñ¼Ñ¡Γ  Σá⌐½á f. Åα¿ ¬áªñ«¼ ßτ¿Γδóá¡¿¿ ó »ÑαѼѡ¡πε
  2188. ΓѬπΘá∩ »«º¿µ¿∩ ó Σá⌐½Ñ »α«ñó¿úáÑΓß∩ ¬ ß½ÑñπεΘѼπ  φ½Ñ¼Ñ¡Γπ.
  2189. Å«»δΓ¬á  ßτ¿Γδóá¡¿∩  ß½ÑñπεΘÑú« φ½Ñ¼Ñ¡Γá Σá⌐½á ó Γ«Γ ¼«¼Ñ¡Γ,
  2190. ¬«úñá ΓѬπΘá∩ »«º¿µ¿∩ Σá⌐½á ¡áσ«ñ¿Γß∩ ó ¬«¡µÑ Σá⌐½á (Γ« ÑßΓ∞
  2191. ¬«úñá à«f(f) ¿¼ÑÑΓ º¡áτÑ¡¿Ñ ÆruÑ) ∩ó½∩ÑΓß∩ «Φ¿í¬«⌐.
  2192.      Åα¿  π¬áºá¡¿¿  ñ¿αÑ¬Γ¿óδ  ¬«¼»¿½∩Γ«αá   {$I-}   Σπ¡¬µ¿∩
  2193. IORÑsult íπñÑΓ ó«ºóαáΘáΓ∞ º¡áτÑ¡¿Ñ 0 ó Γ«¼ ß½πτáÑ, Ñß½¿ «»Ñ-
  2194. αᵿ∩ ºáóÑαΦ¿½áß∞ πß»ÑΦ¡«, ¿ ¡Ñ¡π½Ñó«⌐ ¬«ñ «Φ¿í¬¿ ó  »α«Γ¿ó-
  2195. ¡«¼ ß½πτáÑ.
  2196.      Äúαá¡¿τÑ¡¿∩: öá⌐½ ñ«½ªÑ¡ íδΓ∞ «Γ¬αδΓ.
  2197.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ Write.
  2198.  
  2199. ------------------------------------------------------------
  2200.  Åα«µÑñπαá Read (ΓѬßΓ«óδÑ Σá⌐½δ)
  2201. ------------------------------------------------------------
  2202.      öπ¡¬µ¿∩: æτ¿ΓδóáÑΓ «ñ¡« ¿½¿ í«½ÑÑ º¡áτÑ¡¿⌐ ¿º ΓѬßΓ«ó«-
  2203. ú« Σá⌐½á ó «ñ¡π ¿½¿ í«½ÑÑ »ÑαѼѡ¡δσ.
  2204.      Ä»¿ßá¡¿Ñ: Read( [ var f : text; ] v1, [, v2,...,vn ] )
  2205.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα f (Ñß½¿ «¡ π¬áºá¡) ∩ó½∩ÑΓß∩ Σá⌐½«-
  2206. ó«⌐  »ÑαѼѡ«⌐,  ß««ΓóÑΓßΓóπεΘÑ⌐  ΓѬßΓ«ó«¼π  Σá⌐½π. àß½¿ «¡
  2207. «»πΘÑ¡, Γ« »«ñαáºπ¼ÑóáÑΓß∩ ¿ß»«½∞º«óá¡¿Ñ ßΓá¡ñáαΓ¡«⌐  Σá⌐½«-
  2208. ó«⌐  »ÑαѼѡ¡«⌐ Input. èáªñδ⌐ »áαá¼ÑΓα v ∩ó½∩ÑΓß∩ »ÑαѼѡ¡«⌐
  2209. ß¿¼ó«½∞¡«ú«, ßΓ᫬«ó«ú«, µÑ½«ú« ¿½¿ óÑΘÑßΓóÑ¡¡«ú« Γ¿»á.
  2210.      é ß½πτáÑ ßΓ᫬«ó«ú« Γ¿»á »α«µÑñπαá  RÑád  ßτ¿ΓδóáÑΓ  ¿º
  2211. Σá⌐½á  «ñ¿¡  ß¿¼ó«½ ¿ »α¿ßóá¿óáÑΓ Ñú« »ÑαѼѡ¡«⌐. àß½¿ »ÑαÑñ
  2212. óδ»«½¡Ñ¡¿Ñ¼ »α«µÑñπαδ RÑád Σπ¡¬µ¿∩ à«f(f) »α¿¡¿¼á½á º¡áτÑ¡¿Ñ
  2213. ÆruÑ,  Γ«  »ÑαѼѡ¡«⌐ »α¿ßóá¿óáÑΓß∩ º¡áτÑ¡¿Ñ æhr(26) (ß¿¼ó«½
  2214. ætrl-Z). àß½¿ Σπ¡¬µ¿∩ à«ln(f)  »α¿¡¿¼á½á  ¿ßΓ¿¡¡«Ñ  º¡áτÑ¡¿Ñ
  2215. (ÆruÑ),  Γ« »ÑαѼѡ¡«⌐ »α¿ßóá¿óáÑΓß∩ º¡áτÑ¡¿Ñ æhr(3) (ß¿¼ó«½
  2216. ó«ºóαáΓá ¬áαÑΓ¬¿). æ½ÑñπεΘá∩ «»Ñαᵿ∩ RÑád ¡áτ¡ÑΓß∩ ß«  ß½Ñ-
  2217. ñπεΘÑú« ß¿¼ó«½á ó Σá⌐½Ñ.
  2218.      é ß½πτáÑ »ÑαѼѡ¡«⌐ µÑ½«ú« Γ¿»á »α«µÑñπαá RÑád  «ª¿ñáÑΓ
  2219. »«ßΓπ»½Ñ¡¿∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ß¿¼ó«½«ó, «íαáºπεΘ¿σ τ¿ß½« ß«
  2220. º¡á¬«¼, ß«ú½áß¡« ß¿¡Γá¬ß¿ßπ, π¬áºá¡¡«¼π  ó  αáºñѽѠ "ù¿ß½á"
  2221. â½áóδ 17 ("濼ó«½δ ¿ ¬«¡ßΓá¡Γδ"). ïεíδÑ »α«íѽδ, º¡á¬¿ Γáíπ-
  2222. ½∩µ¿¿ ¿½¿ ¼ÑΓ¬¿ ¬«¡µá ßΓ᫬¿, »αÑñΦÑßΓóπεΘ¿Ñ τ¿ß½«ó«⌐  ßΓα«-
  2223. ¬Ñ,  »α«»π߬áεΓß∩.  æτ¿Γδóá¡¿Ñ  »αѬαáΘáÑΓß∩ »α¿ «í¡áαπªÑ¡¿¿
  2224. »Ñαó«ú« »α«íѽá, ß¿¼ó«½á Γáíπ½∩µ¿¿ ¿½¿ ¼ÑΓ¬¿  ¬«¡µá  ßΓ᫬¿,
  2225. ¬«Γ«αδÑ  ß½ÑñπεΓ ºá τ¿ß½«ó«⌐ ßΓ᫬«⌐, ¿½¿ ó Γ«¼ ß½πτáÑ, Ñß½¿
  2226. Σπ¡¬µ¿∩ à«f(f) »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ ÆruÑ. àß½¿ τ¿ß½«óá∩ ßΓ᫬á
  2227. ¡Ñ  ß««ΓóÑΓßΓóπÑΓ  «ª¿ñáѼ«¼π  Σ«α¼áΓπ, Γ« »α«¿ßσ«ñ¿Γ «Φ¿í¬á
  2228. óó«ñá-óδó«ñá. é »α«Γ¿ó¡«¼  ß½πτáÑ  »ÑαѼѡ¡«⌐  »α¿ßóá¿óáÑΓß∩
  2229. º¡áτÑ¡¿Ñ.  àß½¿ Σπ¡¬µ¿∩ à«f(f) ¿¼Ñ½á º¡áτÑ¡¿Ñ ÆruÑ »ÑαÑñ óδ-
  2230. »«½¡Ñ¡¿Ñ¼ »α«µÑñπαδ RÑád, ¿½¿ Σπ¡¬µ¿∩ à«f(f) »α¿¡∩½á  º¡áτÑ-
  2231. ¡¿Ñ  ÆruÑ  »α¿ »α«»π߬Ѡ¡áτá½∞¡δσ »α«íѽ«ó, º¡á¬«ó Γáíπ½∩µ¿¿
  2232. ¿½¿ ¼ÑΓ«¬ ¬«¡µá ßΓ᫬¿, Γ« »ÑαѼѡ¡«⌐ »α¿ßóá¿óáÑΓß∩  ¡π½Ñó«Ñ
  2233. º¡áτÑ¡¿Ñ. æ½ÑñπεΘá∩ «»Ñαᵿ∩ RÑád ¡áτ¡ÑΓß∩ ß »α«íѽá, ß¿¼ó«-
  2234. ½á Γáíπ½∩µ¿¿ ¿½¿ ¼ÑΓ¬¿ ¬«¡µá  ßΓ᫬¿,  ¬«Γ«α묨  ºáóÑαΦ¿½áß∞
  2235. τ¿ß½«óá∩ ßΓ᫬á.
  2236.      é ß½πτáÑ »ÑαѼѡ¡«⌐ óÑΘÑßΓóÑ¡¡«ú« Γ¿»á  »α«µÑñπαá  RÑád
  2237. «ª¿ñáÑΓ »«ßΓπ»½Ñ¡¿∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ß¿¼ó«½«ó, ¬«Γ«αδÑ «í-
  2238. αáºπεΓ τ¿ß½« ó ß««ΓóÑΓßΓó¿¿ ß ß¿¡Γá¬ß¿ß«¼, »«¬áºá¡¡δ¼ ó αáº-
  2239. ñѽѠ"ù¿ß½á" â½áóδ 17 ("濼ó«½δ ¿ ¬«¡ßΓá¡Γδ"), ºá ¿ß¬½ετÑ¡¿-
  2240. Ѽ Γ«ú«, τΓ« ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ »αÑñßΓáó½Ñ¡¿Ñ ¡Ñ ñ«»π߬áÑΓß∩.
  2241. ïεíδÑ »α«íѽδ, º¡á¬¿ Γáíπ½∩µ¿¿ ¿½¿ ¼ÑΓ¬¿ ¬«¡µá ßΓ᫬¿, »αÑñ-
  2242. ΦÑßΓóπεΘ¿Ñ µ¿ß½«ó«⌐ ßΓ᫬Ñ, »α«»π߬áεΓß∩. æτ¿Γδóá¡¿Ñ »αѬαá-
  2243. ΘáÑΓß∩  »α¿  «í¡áαπªÑ¡¿¿  »Ñαó«ú« »α«íѽá, ß¿¼ó«½á Γáíπ½∩µ¿¿
  2244. ¿½¿ ¼ÑΓ¬¿ ¬«¡µá ßΓ᫬¿, ¬«Γ«αδÑ ß½ÑñπεΓ ºá τ¿ß½«ó«⌐ ßΓ᫬«⌐,
  2245. ¿½¿  ó  Γ«¼  ß½πτáÑ,  Ñß½¿ Σπ¡¬µ¿∩ à«f(f) »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ
  2246. ÆruÑ. àß½¿ τ¿ß½«óá∩ ßΓα«¬á ¡Ñ ß««ΓóÑΓßΓóπÑΓ «ª¿ñáѼ«¼π  Σ«α-
  2247. ¼áΓπ,  Γ« »α«¿ßσ«ñ¿Γ «Φ¿í¬á óó«ñá-óδó«ñá. é »α«Γ¿ó¡«¼ ß½πτáÑ
  2248. »ÑαѼѡ¡«⌐ »α¿ßóá¿óáÑΓß∩ º¡áτÑ¡¿Ñ. àß½¿ Σπ¡¬µ¿∩ à«f(f) ¿¼Ñ½á
  2249. º¡áτÑ¡¿Ñ  ÆruÑ »ÑαÑñ óδ»«½¡Ñ¡¿Ñ¼ »α«µÑñπαδ RÑád, ¿½¿ Σπ¡¬µ¿∩
  2250. à«f(f) »α¿¡∩½á º¡áτÑ¡¿Ñ ÆruÑ »α¿ »α«»π߬Ѡ ¡áτá½∞¡δσ  »α«íÑ-
  2251. ½«ó,  º¡á¬«ó Γáíπ½∩µ¿¿ ¿½¿ ¼ÑΓ«¬ ¬«¡µá ßΓ᫬¿, Γ« »ÑαѼѡ¡«⌐
  2252. »α¿ßóá¿óáÑΓß∩ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ. æ½ÑñπεΘá∩ «»Ñαᵿ∩ RÑád ¡áτ-
  2253. ¡ÑΓß∩  ß  »α«íѽá, ß¿¼ó«½á Γáíπ½∩µ¿¿ ¿½¿ ¼ÑΓ¬¿ ¬«¡µá ßΓ᫬¿,
  2254. ¬«Γ«α묨 ºáóÑαΦ¿½áß∞ τ¿ß½«óá∩ ßΓ᫬á.
  2255.      é ß½πτáÑ »ÑαѼѡ¡«⌐ ßΓ᫬«ó«ú« Γ¿»á »α«µÑñπαá RÑád ßτ¿-
  2256. ΓδóáÑΓ  óßÑ  ß¿¼ó«½δ, ó»½«Γ∞ ñ« ß½ÑñπεΘÑ⌐ ¼ÑΓ¬¿ ¬«¡µá ßΓ᫬¿
  2257. (¡« ¡Ñ ó¬½ετá∩ ÑÑ), ¿½¿ »«¬á Σπ¡¬µ¿∩ à«f(f) ¡Ñ »α¿¼ÑΓ º¡áτÑ-
  2258. ¡¿Ñ ÆruÑ. ÅÑαѼѡ¡«⌐ »α¿ßóá¿óáÑΓß∩ »«½πτ¿óΦá∩ß∩ ó αѺπ½∞ΓáΓÑ
  2259. ß¿¼ó«½∞¡á∩ ßΓ᫬á. àß½¿ ñ½¿¡á αѺπ½∞Γ¿απεΘÑ⌐ ßΓ᫬¿ »αÑóδΦá-
  2260. ÑΓ  ñ½¿¡π,  ¼á¬ß¿¼á½∞¡« ñ«»πßΓ¿¼πε ñ½∩ ßΓ᫬«ó«⌐ »ÑαѼѡ¡«⌐,
  2261. Γ« «¡á πßѬáÑΓß∩. æ½ÑñπεΘá∩ «»Ñαᵿ∩ RÑád ¡áτ¿¡áÑΓß∩ ß ¼ÑΓ¬¿
  2262. ¬«¡µá ßΓ᫬¿, ¬«Γ«α«⌐ ºáóÑαΦ¿½áß∞ »αÑñδñπΘá∩ ßΓ᫬á.
  2263.      Åα¿  π¬áºá¡¿¿  ñ¿αÑ¬Γ¿óδ  ¬«¼»¿½∩Γ«αá   {$I-}   Σπ¡¬µ¿∩
  2264. IORÑsult íπñÑΓ ó«ºóαáΘáΓ∞ º¡áτÑ¡¿Ñ 0 ó Γ«¼ ß½πτáÑ, Ñß½¿ «»Ñ-
  2265. αᵿ∩ ºáóÑαΦ¿½áß∞ πß»ÑΦ¡«, ¿ ¡Ñ¡π½Ñó«⌐ ¬«ñ «Φ¿í¬¿ ó  »α«Γ¿ó-
  2266. ¡«¼ ß½πτáÑ.
  2267.      Äúαá¡¿τÑ¡¿∩: Åα«µÑñπαá RÑád ß« ßΓ᫬«ó«⌐ »ÑαѼѡ¡«⌐  ¡Ñ
  2268. ñѽáÑΓ »«ß½Ñ ßτ¿Γδóá¡¿∩ »α«»π߬ ñ« ß½ÑñπεΘÑ⌐ ßΓ᫬¿. Å«φΓ«¼π
  2269. ñ½∩ ßτ¿Γδóá¡¿∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ßΓ᫬ ¡Ñ½∞º∩  ¿ß»«½∞º«óáΓ∞
  2270. »«ß½Ññ«óáΓѽ∞¡δÑ  «íαáΘÑ¡¿∩  ¬ »α«µÑñπαÑ RÑád, »«ß¬«½∞¬π »α¿
  2271. φΓ«¼ óδ ¡¿¬«úñá ¡Ñ »ÑαÑ⌐ñÑΓÑ  ñá½∞ΦÑ  »Ñαó«⌐  ßΓ᫬¿.  Å«ß½Ñ
  2272. »Ñαó«ú« «íαáΘÑ¡¿∩ ¬ »α«µÑñπαÑ RÑád »«ß½ÑñπεΘ¿Ñ «»Ñαᵿ¿ RÑád
  2273. íπñπΓ «í¡áαπª¿óáΓ∞ ¼Ñì𠬫¡µá ßΓ᫬¿  ¿  ó«ºóαáΘáΓ∞  ßΓ᫬π
  2274. ¡π½Ñó«⌐  ñ½¿¡δ.  Å«φΓ«¼π  ñ½∩  ßτ¿Γδóá¡¿∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿
  2275. ßΓ᫬ ¿ß»«½∞ºπ⌐ΓÑ «íαáΘÑ¡¿∩ »α«µÑñπαÑ RÑádln.
  2276.      ÄΓ½¿τ¿∩: æ¼. Åα¿½«ªÑ¡¿Ñ Ç.
  2277.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ Readln, ReadKey.
  2278.  
  2279. ------------------------------------------------------------
  2280.  öπ¡¬µ¿∩ ReadKey                                 î«ñπ½∞ ært
  2281. ------------------------------------------------------------
  2282.      öπ¡¬µ¿∩: æτ¿ΓδóáÑΓ ß¿¼ó«½ ß ¬½áó¿áΓπαδ.
  2283.      Ä»¿ßá¡¿Ñ: ReadKey
  2284.      Æ¿» αѺπ½∞ΓáΓá: æ¿¼ó«½∞¡δ⌐ (char).
  2285.      Åα¿¼Ñτá¡¿∩: æτ¿ΓδóáѼδ⌐ ß¿¼ó«½ ¡Ñ «Γ«íαáªáÑΓß∩ ¡á φ¬αá-
  2286. ¡Ñ.   àß½¿   »ÑαÑñ  «íαáΘÑ¡¿Ñ¼  ¬  Σπ¡¬µ¿¿  RÑádèÑπ  Σπ¡¬µ¿∩
  2287. èÑyÉressed ¿¼Ñ½á º¡áτÑ¡¿Ñ ÆruÑ, Γ« ß¿¼ó«½ ßτ¿ΓδóáÑΓß∩ ¡Ñ¼Ññ-
  2288. ½Ñ¡¡«, ó »α«Γ¿ó¡«¼ ß½πτáÑ Σπ¬¡µ¿∩ «ª¿ñáÑΓ ¡áªáΓ¿∩ ¬½áó¿Φ¿.
  2289.      æ»Ñµ¿á½∞¡δÑ ¬½áó¿Φ¿ ¡á ¬½áó¿áΓπαÑ ¬«¼»∞εΓÑαá Éæ úÑ¡Ñα¿-
  2290. απεΓ  αáßΦ¿αÑ¡¡δÑ ¬«ñδ ¬½áó¿Φ. (ÉáßΦ¿αÑ¡¡δÑ ¬«ñδ ¬½áó¿Φ »α¿-
  2291. óÑñÑ¡δ ó  Åα¿½«ªÑ¡¿¿  à.)  æ»Ñµ¿á½∞¡δ¼¿  ¬½áó¿ΦἿ  ∩ó½∩εΓß∩
  2292. Σπ¡¬µ¿«¡á½∞¡δÑ ¬½áó¿Φ¿, ¬½áó¿Φ¿ π»αáó½Ñ¡¿∩ ¬παß«α«¼, ¬½áó¿Φ¿
  2293. Çlt ¿ Γ.ñ. Åα¿ ¡áªáΓ¿¿ ß»Ñµ¿á½∞¡«⌐  ¬½áó¿Φ¿  Σπ¡µ¿∩  RÑádèÑπ
  2294. ó«ºóαáΘáÑΓ  ß¡áτá½á  ¡π½Ñó«⌐ ß¿¼ó«½ ( 0), á ºáΓѼ αáßΦαÑ¡¡δ⌐
  2295. ¬«ñ ¬½áó¿Φ¿. ìπ½ÑóδÑ ß¿¼ó«½δ ¡Ñ ¼«úπΓ íδΓ∞ »«½πτÑ¡δ  ¡¿¬á¬¿¼
  2296. ñαπú¿¼ »πΓѼ. ¥Γ¿¼ «íÑß»Ñτ¿óáÑΓß∩ Γ«, τΓ« ß½ÑñπεΘ¿¼ ß¿¼ó«½«¼
  2297. íπñÑΓ αáßΦ¿αÑ¡¡δ⌐ ¬«ñ ¬½áó¿Φ¿.
  2298.      é ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ ó »ÑαѼѡ¡πε  ß  ¿¼Ñ¡Ñ¼
  2299. æh  ßτ¿ΓδóáÑΓß∩ ß¿¼ó«½ ¿½¿ αáßΦ¿αÑ¡¡δ⌐ ¬«ñ ¬½áó¿Φ¿ ¿ ñ½∩ »Ñ-
  2300. αѼѡ¡«⌐ FuncKey íπ½Ñó߬«ú«  Γ¿»á  πßΓá¡áó½¿óáÑΓß∩  º¡áτÑ¡¿Ñ
  2301. ÆruÑ, Ñß½¿ ß¿¼ó«½ ∩ó½∩ÑΓß∩ ¬«ñ«¼ ß»Ñµ¿á½∞¡«⌐ ¬½áó¿Φ¿.
  2302.  
  2303.  Ch := ReadKey;
  2304.  if Ch <> #0 then FuncKey := False else
  2305.  begin
  2306.    FuncKey := True;
  2307.    Ch := ReadKey;
  2308.  end;
  2309.  
  2310.      ÅÑαѼѡ¡á∩ æhÑákérÑᬠπ»αáó½∩ÑΓ ΓѼ, íπñÑΓ ½¿ »α«úαá¼¼á
  2311. »αѬαáΘáΓ∞ αáí«Γπ »α¿ ¡áªáΓ¿¿ ¬½áó¿Φ ætrl-érÑák, ¿½¿ «¡¿ íπ-
  2312. ñπΓ αáßß¼áΓα¿óáΓ∞ß∩, ¬á¬ ½εíδÑ ñαπú¿Ñ ¬½áó¿Φ¿.  è«úñá  »ÑαÑ-
  2313. ¼Ñ¡¡á∩  æhÑá¬érÑák  ¿¼ÑÑΓ  º¡áτÑ¡¿Ñ  False,  Σπ¡¬µ¿∩ ReádèÑy
  2314. ó«ºóαáΘáÑΓ ñ½∩ ¬½áó¿Φ ætrl-érÑák º¡áτÑ¡¿Ñ ætrl-æ ( 3).
  2315.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¡¬µ¿ε KeyPressed.
  2316.  
  2317. ------------------------------------------------------------
  2318.  Åα«µÑñπαá Readln
  2319. ------------------------------------------------------------
  2320.      öπ¡¬µ¿∩: éδ»«½¡∩ÑΓ »α«µÑñπαπ RÑád,  ºáΓѼ  »ÑαÑσ«ñ¿Γ  ¬
  2321. ß½ÑñπεΘÑ⌐ ßΓα«¬Ñ Σá⌐½á.
  2322.      Ä»¿ßá¡¿Ñ: Readln( [ var f : text; ] v1 [, v2,...,vn ] )
  2323.      Åα¿¼Ñτá¡¿∩: Åα«µÑñπαá RÑádln ∩ó½∩ÑΓß∩ αáßΦ¿αÑ¡¿Ñ¼  »α«-
  2324. µÑñπαδ  RÑád ¿ «»αÑñѽѡá ñ½∩ ΓѬßΓ«óδσ Σá⌐½«ó. Å«ß½Ñ óδ»«½-
  2325. ¡Ñ¡¿∩ »α«µÑñπαδ RÑád »α«µÑñπαá RÑádln ñѽáÑΓ »α«»π߬ ñ«  ¡á-
  2326. τá½á ß½ÑñπεΘÑ⌐ ßΓ᫬¿.
  2327.      é맮ó Σπ¡¬µ¿¿ RÑádln(f) íѺ »áαá¼ÑΓα«ó »α¿ó«ñ¿Γ ¬ »ÑαÑ-
  2328. ¼ÑΘÑ¡¿ε  ΓѬπΘÑ⌐  »«º¿µ¿¿  Σá⌐½á  ¡á ¡áτὫ ß½ÑñπεΘÑ⌐ ßΓ᫬¿
  2329. (Ñß½¿ «¡á ¿¼ÑÑΓß∩, ó »α«Γ¿ó¡«¼ ß½πτáÑ »α«¿ßσ«ñ¿Γ  »ÑαÑσ«ñ  ¬
  2330. ¬«¡µπ Σá⌐½á). öπ¡¬µ¿∩ RÑádln íѺ ß»¿ß¬á »áαá¼ÑΓα«ó »«½¡«ßΓ∞ε
  2331. ß««ΓóÑΓßΓóπÑΓ «íαáΘÑ¡¿ε RÑádln(Input).
  2332.      Åα¿  π¬áºá¡¿¿  ñ¿αÑ¬Γ¿óδ  ¬«¼»¿½∩Γ«αá   {$I-}   Σπ¡¬µ¿∩
  2333. IORÑsult íπñÑΓ ó«ºóαáΘáΓ∞ º¡áτÑ¡¿Ñ 0 ó Γ«¼ ß½πτáÑ, Ñß½¿ «»Ñ-
  2334. αᵿ∩ ºáóÑαΦ¿½áß∞ πß»ÑΦ¡«, ¿ ¡Ñ¡π½Ñó«⌐ ¬«ñ «Φ¿í¬¿ ó  »α«Γ¿ó-
  2335. ¡«¼ ß½πτáÑ.
  2336.      Äúαá¡¿τÑ¡¿∩: öπ¡¬µ¿∩ αáí«ΓáÑΓ Γ«½∞¬« ñ½∩ ΓѬßΓ«óδσ Σá⌐-
  2337. ½«ó,  ó¬½ετá∩ ßΓá¡áñáαΓ¡δ⌐ óó«ñ. öá⌐½ ñ«½ªÑ¡ íδΓ∞ «Γ¬αδΓ ñ½∩
  2338. óó«ñá.
  2339.  
  2340.      Åα«τÑÑ: æ¼. ΓᬪѠΣπ¬¡µ¿ε Read.
  2341.  
  2342. ------------------------------------------------------------
  2343.  Åα«µÑñπαá Rectangle                           î«ñπ½∞ Graph
  2344. ------------------------------------------------------------
  2345.      öπ¡¬µ¿∩: É¿ßπÑΓ »α∩¼«πú«½∞¡¿¬, ¿ß»«½∞ºπ∩ ΓѬπΘ¿⌐ µóÑΓ ¿
  2346. Γ¿» ßΓ᫬¿.
  2347.      Ä»¿ßá¡¿Ñ: Rectangle(x1, y1, x2, x2 : integer)
  2348.      Åα¿¼Ñτá¡¿∩: Æ«τ¬á  ß  ¬««αñ¿¡áΓἿ  (σ1,π1)  «»αÑñѽ∩ÑΓ
  2349. óÑασ¡¿⌐  ½Ñóδ⌐  πú«½  »α∩¼«πú«½∞¡¿¬á, á Γ«τ¬á ß ¬««αñ¿¡áΓἿ
  2350. (σ2,π2) «»αÑñѽ∩ÑΓ ¡¿ª¡¿⌐ »αáóδ⌐ πú«½  (0  <=  σ1  <  σ2  <=
  2351. Getîáσò ¿ 0 <= π1 < π2 <= GetîáσY).
  2352.      Åα¿ óδτÑατ¿óá¡¿¿  »α∩¼«πú«½∞¡¿¬á  íπñπΓ  ¿ß»«½∞º«óáΓ∞ß∩
  2353. ΓѬπΘ¿⌐   Γ¿»   ßΓ᫬¿   ¿   µóÑΓ,  ¬«Γ«αδÑ  πßΓá¡áó½¿óáεΓß∩
  2354. »α«µÑñπα«⌐ SetLineStyle.
  2355.      Ç¡á½«ú¿τ¡á∩ »α«µÑñπαá ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  2356.      Äúαá¡¿τÑ¡¿∩: ä«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  2357.      Åα«τÑÑ: æ¼.  ΓᬪѠ »α«µÑñπαδ  InitGraph,  SetViewPort,
  2358. Bar, GetViewSettings, Bar3D.
  2359.      Åα¿¼Ñα:
  2360.  
  2361.  uses Graph;
  2362.  var
  2363.    GraphDriver, GraphMode : integer;
  2364.    x1, y1, x2, y2 : integer;
  2365.  begin
  2366.    GraphDriver := Detect;
  2367.    InitGraph(GraphDriver,GraphMode,'');
  2368.    if GraphResult <> grOk then
  2369.       Halt(1);
  2370.    Randomize;
  2371.    repeat
  2372.        x1 := Random(GetMaxX);
  2373.        y1 := Random(GetMaxY);
  2374.        x2 := Random(GetMaxX - x1) + x1;
  2375.        y2 := Random(GetMaxY - y1) + y1;
  2376.    Rectangle(x1,y1,x2,y2);
  2377.   until KeyPressed;
  2378.  
  2379.     CloseGraph;
  2380.  end.
  2381.  
  2382. ------------------------------------------------------------
  2383.  öπ¡¬µ¿∩ RegisterBGIdriver
  2384. ------------------------------------------------------------
  2385.      öπ¡¬µ¿∩: ÉÑú¿ßΓα¿απÑΓ ó úαáΣ¿τÑ߬«⌐ ß¿ßΓѼѠºáúαπªÑ¡¡δ⌐
  2386. »«½∞º«óáΓѽѼ ¿½¿ ß¬«¼»«¡«óá¡¡δ⌐ ß »α«úαá¼¼«⌐ ñαá⌐óÑα Σ«α¼á-
  2387. Γá BGI (Σ«α¼áΓ Σ¿α¼δ ü«α½á¡ñ).
  2388.      Ä»¿ßá¡¿Ñ: RegisterBGIdriver(ñαá⌐óÑα :  pointer)  :  in-
  2389. teger;
  2390.      Åα¿¼Ñτá¡¿∩: é ß½πτáÑ «Φ¿í«¬ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ ¼Ñ¡∞-
  2391. ΦÑ  ¡π½∩.  é  »α«Γ¿ó¡«¼ ß½πτáÑ ó«ºóαáΘáÑΓß∩ ó¡πΓαÑ¡¡¿⌐ ¡«¼Ñα
  2392. ñαá⌐óÑαá. ¥Γá  »α«úαἼᠠ»«ºó«½∩ÑΓ  »«½∞º«óáΓÑ½ε  ºáúαπº¿Γ∞
  2393. Σá⌐½  ñαá⌐óÑαá ¿ ºáαÑú¿ßΓα¿α«óáΓ∞ ñαá⌐óÑα, »ÑαÑñáó Ñú« áñαÑß
  2394. ó »á¼∩Γ¿ Σπ¡¬µ¿¿ RegisterBGIdriver. Å«ß½Ñ φΓ«ú« ñαá⌐óÑα  ¼«-
  2395. ªÑΓ  ¡Ñ»«ßαÑñßΓóÑ¡¡«  ¿ß»«½∞º«óáΓ∞ß∩ »α«µÑñπα«⌐ InitGraph, á
  2396. ¡Ñ ºáúαπªáΓ∞ß∩ ß ñ¿ß¬á ¼«ñπ½Ñ¼ Graph.  äαá⌐óÑα  »«½∞º«óáΓѽ∩
  2397. ¼«ª¡« ºáúαπº¿Γ∞ ß ñ¿ß¬á ó ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽπε «í½áßΓ∞
  2398. »á¼∩Γ¿ ¿½¿ »αÑ«íαẫóáΓ∞ ó  Σá⌐½  .OBJ  (ß  »«¼«Θ∞ε  πΓ¿½¿Γδ
  2399. BINOBJ.EXE),  »«ß½Ñ  τÑú«  ß¬«¼»«¡«óáΓ∞  ß »α«úαá¼¼«⌐ ó Σá⌐½
  2400. .EXE.
  2401.      é«º¼«ª¡«⌐ ó«ºóαáΘáѼ«⌐ «Φ¿í¬«⌐ ∩ó½∩ÑΓß∩ grInvalidDriver
  2402. (¡Ññ«»πßΓ¿¼δ⌐  úαáΣ¿τÑ߬¿⌐ ñαá⌐óÑα). Åα¿ φΓ«¼ ¬«ñ «Φ¿í¬¿ αá-
  2403. óÑ¡ -4 ¿ ºáú«½«ó«¬ ñαá⌐óÑαá «¬áºδóáÑΓß∩ ¡Ñ«»«º¡á¡¡δ¼.
  2404.      æ½ÑñπεΘá∩ »α«úαἼᠺáúαπªáÑΓ ó ñ¿¡á¿¼τÑ߬¿ αáß»αÑñѽ∩-
  2405. Ѽπε  «í½áßΓ∞  »á¼∩Γ¿ ñαá⌐óÑα CGA, αÑú¿ßΓα¿απÑΓ Ñú« ó úαáΣ¿-
  2406. τÑ߬«⌐ ß¿ßΓѼѠ¿ óδºδóáÑΓ »α«µÑñπαπ InitGraph.
  2407.  
  2408.   program LoadDriv;
  2409.   uses Graph;
  2410.  var
  2411.    Driver, Mode : integer;
  2412.    DriverF : file;
  2413.    DriverP : pointer;
  2414.  begin
  2415.  { «Γ¬αδΓ∞ Σá⌐½ ñαá⌐óÑαá, ßτ¿ΓáΓ∞ Ñú« ó »á¼∩Γ∞ ¿
  2416.    ºáαÑú¿ßΓα¿α«óáΓ∞ }
  2417.    Assign(DriverF, 'CGA.BGI');
  2418.    Reset(DriverF, 1);
  2419.    GetMem(DriverP, FileSize(DriverF));
  2420.    if RegisterBGIdriver < 0 then
  2421.    begin
  2422.      Writeln('ÄΦ¿í¬á αÑú¿ßΓαᵿ¿ ñαá⌐óÑαá: ',
  2423.               GraphErrorMSG(GraphResult));
  2424.      Halt(1);
  2425.    end;
  2426.    { ¿¡¿µ¿á½¿ºáµ¿∩ úαáΣ¿¬¿ }
  2427.    Driver := CGA;
  2428.    Mode := CGAHi;
  2429.    InitGraph(Driver,Mode,'');
  2430.    if GraphResult <> grOk then
  2431.       Halt(1);
  2432.    OutText('äαá⌐óÑα ºáúαπªÑ¡ »α«úαá¼¼«⌐ »«½∞º«óáΓѽ∩');
  2433.    Readln;
  2434.    CloseGraph;
  2435.   end.
  2436.  
  2437.      ¥Γá »α«úαἼᠡáτ¿¡áÑΓ αáí«Γπ ß ºáúαπº¬¿ ñαá⌐óÑαá CGA ß
  2438. ñ¿ß¬á  ¿  αÑú¿ßΓαᵿ¿  Ñú« ß »«¼«Θ∞ε ¼«ñπ½∩ Graph. çáΓѼ ñ½∩
  2439. ¿¡¿µ¿á½¿ºáµ¿¿ úαáΣ¿τÑ߬«⌐ ß¿ßΓÑ¼δ  óδ»«½¡∩ÑΓß∩  «íαáΘÑ¡¿Ñ  ¬
  2440. »α«µÑñπαÑ  InitGraph. éδ ¼«ªÑΓÑ ºáσ«ΓÑΓ∞ αẼÑßΓ¿Γ∞ «ñ¿¡ ¿½¿
  2441. í«½ÑÑ Σá⌐½«ó ¡Ñ»«ßαÑñßΓóÑ¡¡« ó Σá⌐½Ñ .EXE. Åα¿  φΓ«¼  úαáΣ¿-
  2442. τÑ߬¿Ñ ñαá⌐óÑαδ, ¬«Γ«αδÑ ΓαÑíπεΓß∩ óáΦÑ⌐ »α«úαá¼¼Ñ, «¬áªπΓß∩
  2443. óßΓα«Ñ¡¡δ¼¿ ¿ ñ½∩ αáí«Γδ »«ΓαÑíπÑΓß∩ Γ«½∞¬« Σá⌐½ .EXE.  Åα«-
  2444. µÑßß  αẼÑΘÑ¡¿∩ ñαá⌐óÑαá ó óδ»«½¡∩Ѽ«¼ Σá⌐½Ñ ñ«ó«½∞¡« »α«ßΓ
  2445. ¿ ß«ßΓ«¿Γ ó ß½ÑñπεΘѼ:
  2446.  
  2447.      1.  éδ»«½¡¿Γ∞ ñ½∩ Σá⌐½á (¿½¿ Σá⌐½«ó) »α«úαá¼¼π BINOBJ.
  2448.      2.  æ¬«¼»«¡«óáΓ∞  αѺπ½∞Γ¿απεΘ¿Ñ  Σá⌐½δ  ,OBJ  ß  óáΦÑ⌐
  2449.          »α«úαá¼¼«⌐.
  2450.      3.  ÅÑαÑñ óδº«ó«¼ »α«µÑñπαδ Init ºáαÑú¿ßΓα¿α«óáΓ∞ ß¬«¼-
  2451.          »«¡«óá¡¡δÑ Σá⌐½δ (Σá⌐½) ñαá⌐óÑαá.
  2452.  
  2453.      ü«½ÑÑ »«ñα«í¡«Ñ «»¿ßá¡¿Ñ φΓ«ú« »α«µÑßßá ¼«ª¡«  ¡á⌐Γ¿  ó
  2454. ¬«¼¼Ñ¡Γáα¿∩σ,   ß«ñÑαªáΘ¿σß∩   ó   ΦỬѠ  »α«úαá¼¼δ-»α¿¼Ñαá
  2455. GRLINK.PAS ¡á ñ¿ß¬Ñ 3. ä«¬π¼Ñ¡Γᵿ∩ »« πΓ¿½¿ΓÑ BINOBJ ß«ñÑα-
  2456. ª¿Γß∩ ó Åα¿½«ªÑ¡¿¿ æ "Éπ¬«ó«ñßΓóá »«½∞º«óáΓѽ∩".
  2457.      ê¼ÑÑΓß∩ ΓᬪѠ󫺼«ª¡«ßΓ∞ αÑú¿ßΓαᵿ¿ ó ß¿ßΓѼѠ Σá⌐½«ó
  2458. Φα¿ΣΓ«ó (ß¼. «»¿ßá¡¿Ñ Σπ¡¬µ¿¿ RegisterBGIfont).
  2459.      Ç¡á½«ú¿τ¡á∩ Σπ¡¬µ¿∩ ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  2460.      Äúαá¡¿τÑ¡¿∩: çá¼ÑΓ¿¼, τΓ« ñαá⌐óÑα ñ«½ªÑ¡ íδΓ∞ ºáαÑú¿ßΓ-
  2461. α¿α«óá¡ »ÑαÑñ «íαáΘÑ¡¿Ñ¼ ¬ »α«µÑñπαÑ InitGraph. àß½¿ Σπ¡¬µ¿∩
  2462. RegisterBGIdriver óδºδóáÑΓß∩, ¬«úñá ßαÑñßΓóá úαáΣ¿¬¿ πªÑ á¬-
  2463. Γ¿ó¿º¿α«óá¡δ, Γ« ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ -11 (grError).
  2464.      Åα«τÑÑ:    æ¼.    ΓᬪѠ   »α«µÑñπαδ    InitGraph     ¿
  2465. InstallUserDriver.
  2466.  
  2467. ------------------------------------------------------------
  2468.  öπ¡¬µ¿∩ RegisterBGIfont
  2469. ------------------------------------------------------------
  2470.      öπ¡¬µ¿∩:  ÉÑú¿ßΓα¿απÑΓ  ºáúαπªáѼδ⌐  »«½∞º«óáΓѽѼ  ¿½¿
  2471. ߬«¼»«¡«óá¡¡δ⌐  ß »α«úαá¼¼«⌐ Φα¿ΣΓ Σ«α¼áΓá BGI (Σ«α¼áΓ Σ¿α¼δ
  2472. ü«α½á¡ñ) ó úαáΣ¿τÑ߬«⌐ ß¿ßΓѼÑ.
  2473.      Ä»¿ßá¡¿Ñ: RegisterBGIfonr(Φα¿ΣΓ : pointer) : integer;
  2474.      Åα¿¼Ñτá¡¿∩: é ß½πτáÑ «Φ¿í¬¿ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ íπñÑΓ
  2475. ¼Ñ¡∞ΦÑ  0.  é »α«Γ¿ó¡«¼ ß½πτáÑ ó«ºóαáΘáÑΓß∩ ó¡πΓαÑ¡¡¿⌐ ¡«¼Ñα
  2476. Φα¿ΣΓá. ¥Γá »α«úαἼᠻ«ºó«½∩ÑΓ »«½∞º«óáΓÑ½ε ºáúαπº¿Γ∞  Σá⌐½
  2477. Φα¿ΣΓá ¿ "ºáαÑú¿ßΓα¿α«óáΓ∞" Φα¿ΣΓ, »ÑαÑñáó Ñú« áñαÑß ó »á¼∩-
  2478. Γ¿ »α«µÑñπαÑ RagisterBGIfont. Å«ß½Ñ φΓ«ú« ñá¡¡δ⌐ Φα¿ΣΓ ¼«ª¡«
  2479. óδí¿αáΓ∞  ß »«¼«Θ∞ε «íαáΘÑ¡¿∩ ¬ »α«µÑñπαÑ SetTextStyle. éδí-
  2480. αá¡¡δ⌐ Φα¿ΣΓ íπñÑΓ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¿ß»«½∞º«óáΓ∞ß∩ íѺ  ¡Ñ«í-
  2481. σ«ñ¿¼«ßΓ¿  ºáúαπº¬¿ Ñú« ß ñ¿ß¬á ¼«ñπ½Ñ¼ Graph. çáαÑú¿ßΓα¿α«-
  2482. óá¡¡δ⌐ »«½∞º«óáΓѽѼ Φα¿ΣΓ ¼«ª¡« ºáúαπº¿Γ∞ ß ñ¿ß¬á ó ñ¿¡á¼¿-
  2483. τÑ߬¿ αáß»αÑñѽ∩Ѽπε «í½áßΓ∞ »á¼∩Γ¿ ¿½¿ »αÑ«íαẫóáΓ∞ (ß »«-
  2484. ¼«Θ∞ε πΓ¿½¿Γδ BINOBJ.EXE) ó Σá⌐½ .OBJ, á ºáΓѼ  ß¬«¼»«¡«óáΓ∞
  2485. ß »α«úαá¼¼«⌐ ó óδ»«½¡∩Ѽδ⌐ Σá⌐½.
  2486.      Åα¿óÑñѼ »ÑαÑτÑ¡∞ ¡Ñ¬«Γ«αδσ ó«º¼«ª¡δσ «Φ¿í«¬:
  2487.  
  2488. ------------------------------------------------------------
  2489.  è«ñ «Φ¿í¬¿  êñÑ¡Γ¿Σ¿¬áΓ«α «Φ¿í¬¿         è«¼¼Ñ¡Γáα¿⌐
  2490. ------------------------------------------------------------
  2491.  -11            grError            Åα¿ αÑú¿ßΓαᵿ¿ ÑΘÑ «ñ¡«-
  2492.                                    ú« Φα¿ΣΓá ¡Ñ σóáΓáÑΓ ¼Ñß-
  2493.                                    Γá ñ½∩ Γáí½¿µδ Φα¿ΣΓ«ó.
  2494.                                    (Æáí½¿µá Φα¿ΣΓ«ó ¼«ªÑΓ
  2495.                                    ß«ñÑαªáΓ∞ ñ« 10 Φα¿ΣΓ«ó,
  2496.                                    ¿º ¡¿σ ó ßΓá¡ñáαΓ¡«⌐ ¬«¡-
  2497.                                    Σ¿úπαᵿ¿ ¿¼ÑÑΓß∩ Γ«½∞¬«
  2498.                                    4, »«φΓ«¼π φΓá «Φ¿í¬á
  2499.                                    ó«º¡¿¬áΓ∞ ¡Ñ ñ«½ª¡á.)
  2500.  
  2501.  -13           grInvalidFont       ìÑ αáß»«º¡á¡ ºáú«½«ó«¬
  2502.                                    Φα¿ΣΓá.
  2503.  
  2504.  -14         grInvalidFontNum      ìÑ αáß»«º¡á¡ ¡«¼Ñα Φα¿ΣΓá
  2505.                                    ó ºáú«½«ó¬Ñ Φα¿ΣΓá.
  2506. ------------------------------------------------------------
  2507.  
  2508.      æ½ÑñπεΘá∩ »α«úαἼᠺáúαπªáÑΓ ó ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩-
  2509. Ѽπε  «í½áßΓ∞  Φα¿ΣΓ triplex, αÑú¿ßΓα¿απÑΓ Ñú« ó úαáΣ¿τÑ߬«⌐
  2510. ß¿ßΓѼÑ, á ºÑΓѼ »αÑñ«ßΓáó½∩ÑΓ ó«º¼«ª¡«ßΓ∞ óδí«αᠼѪñπ φΓ¿¼
  2511. Φα¿ΣΓ«¼  ¿  ñαπú¿¼  ΦΓα¿σ«óδ¼  Φα¿ΣΓ«¼, ¬«Γ«αδ⌐ ¼«ñπ½∞ Graph
  2512. ºáúαπªáÑΓ ß ñ¿ß¬á (SansSerifFont).
  2513.  
  2514.   program LoadFont;
  2515.   uses Graph;
  2516.   var Driver, Mode : integer;
  2517.       FontF : file;
  2518.       FontP : pointer;
  2519.   begin
  2520.   { «Γ¬αδΓ∞ Σá⌐½ Φα¿ΣΓá, ßτ¿ΓáΓ∞ Ñú« ó »á¼∩Γ∞ ¿
  2521.     ºáαÑú¿ßΓα¿α«óáΓ∞ }
  2522.     Assign(FontF, 'TRIP.CHR');
  2523.     Reset(FontF, 1);
  2524.     GetMem(FontP, FontP^, FileSize(FontF));
  2525.     if RegisterBGIfont(FontP) < 0 then
  2526.     begin
  2527.       Writeln('ÄΦ¿í¬á αÑú¿ßΓαᵿ¿ Φα¿ΣΓá: ',
  2528.                GraphErrorMsg(GraphResult));
  2529.       Halt(1);
  2530.     end;
  2531.     { ¿¡¿µ¿á½¿º¿α«óáΓ∞ úαáΣ¿¬π }
  2532.     Driver := Detect;
  2533.     InitGraph(Driver, Mode, '..\');
  2534.     if GraphResult < 0 then
  2535.        Halt(1);
  2536.     Readln;
  2537.     { óδíαáΓ∞ ºáαÑú¿ßΓα¿α«óá¡¡δ⌐ Φα¿ΣΓ }
  2538.     SetTextStyle(TriplexFont, HorizDir, 4);
  2539.     OutText('Åα«úαá¼¼«⌐ ºáúαπªÑ¡ Φα¿ΣΓ Triplex');
  2540.     MoveTo(0, TextHeight('a'));
  2541.     Readln;
  2542.     { Å«óΓ«α¡« óδíαáΓ∞ ºáαÑú¿ßΓα¿α«óá¡¡δ⌐ Φα¿ΣΓ
  2543.       (πªÑ ºáúαπªÑ¡¡δ⌐ ó »á¼∩Γ∞ }
  2544.     SetTextStyle(TriplexFont, HorizDir, 4);
  2545.     OutText('Åα«úαá¼¼«⌐ ß¡«óá óδíαá¡ Φα¿ΣΓ Triplex');
  2546.     Readln;
  2547.     CloseGraph;
  2548.   end.
  2549.  
  2550.      Åα«úαἼᠡáτ¿¡áÑΓ ßó«ε αáí«Γπ ß ºáúαπº¬¿ ß ñ¿ß¬á Φα¿Σ-
  2551. Γá Triplex ¿ αÑú¿ßΓαᵿ¿ Ñú« ¼«ñπ½Ñ¼ Graph. çáΓѼ ñ½∩ ¿¡¿µ¿-
  2552. ὿ºáµ¿¿ úαáΣ¿τÑ߬«⌐ ß¿ßΓѼδ óδºδóáÑΓß∩ »α«µÑñπαá InitGraph.
  2553. Åα«óÑα∞ΓÑ,  ÑßΓ∞  ½¿  «íαáΘÑ¡¿Ñ  ¬  ñ¿ß¬π  ¿ ¡áª¼¿ΓÑ ¬½áó¿Φπ
  2554. ENTER. Å«ß¬«½∞¬π ΓÑ»Ñα∞ Φα¿ΣΓ Triplex πªÑ ºáúαπªÑ ó »á¼∩Γ∞ ¿
  2555. ºáαÑú¿ßΓα¿α«óá¡, ¼«ñπ½ε Graph ¡Ñ ¡πª¡« ßτ¿ΓδóáΓ∞ Ñú« ß ñ¿ß¬á
  2556. (Γᬿ¼ «íαẫ¼, «Γ»áñáÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ «íαáΘÑ¡¿∩ ¬  ñ¿ß¬«ó«-
  2557. ñπ).  çáΓѼ »α«úαá¼¼á á¬Γ¿ó¿º¿απÑΓ Φα¿ΣΓ SansSerifFont, ºáú-
  2558. απªá∩ Ñú« ß ñ¿ß¬á («¡  ¡Ñ  ºáαÑú¿ßΓα¿α«óá¡).  æ¡«óá  ¡áª¼¿ΓÑ
  2559. ¬½áó¿Φπ  ENTER  ¿ »«ß¼«Γα¿ΓÑ, ÑßΓ∞ ½¿ «íαáΦÑ¡¿Ñ ¬ ñ¿ß¬π (»α¿
  2560. «íαáΘÑ¡¿¿ ¬ ñ¿ß¬π ºáú«αáÑΓß∩  ½á¼»«τ¬á-¿¡ñ¿¬áΓ«α  ¡á  »á¡Ñ½¿
  2561. ¬«¼»∞εΓÑαá).   ìᬫ¡Ñµ,   »α«úαἼᠠ ß¡«óá  óδí¿αáÑΓ  Φα¿ΣΓ
  2562. Triplex. Å«ß¬«½∞¬π «¡ πªÑ ºáαÑú¿ßΓα¿α«óá¡, Γ« »α¿ φΓ«¼ »α«ú-
  2563. αá¼¼á, ¬«úñá óδ ¡áª¼ÑΓÑ ¬½áó¿Φπ ENTER, «íαáΘáΓ∞ß∩ ¬ ñ¿ß¬π ¡Ñ
  2564. íπñÑΓ.
  2565.      ä½∩ ºáúαπº¬¿ ¿ αÑú¿ßΓαᵿ¿ Σá⌐½«ó Φα¿ΣΓ«ó ¿¼ÑÑΓß∩  ¡Ñß-
  2566. ¬«½∞¬«  »α¿τ¿¡. é«-»Ñαóδσ, ¼«ñѽ∞ Graph ó ¬áªñδ⌐ ¼«¼Ñ¡Γ óαÑ-
  2567.  ¼Ñ¡¿ σαá¡¿Γ ó »á¼∩Γ¿ Γ«½∞¬« «ñ¿¡ ΦΓα¿σ«ó«⌐ Φα¿ΣΓ. àß½¿ π óáß
  2568. ¿¼ÑÑΓß∩ »α«úαá¼¼á, ¬«Γ«αá∩ ñ«½ª¡á íδßΓα« »ÑαѬ½ετáΓ∞ß∩ ß «ñ-
  2569. ¡«ú« Φα¿ΣΓá ¡Ñ ñαπú«⌐, Γ« ó«º¼«ª¡« óδ »αÑñ»«τΓÑΓÑ  ó  ¡áτá½Ñ
  2570. »α«úαá¼¼δ  óδ»«½¡¿Γ∞ αÑú¿ßΓαáµ¿ε ¿ ºáúαπº¬π Φα¿ΣΓá. Åα¿ φΓ«¼
  2571. »α¿ «íαáΘÑ¡¿¿ ¬ »α«µÑñπαÑ SetTextStyle ¼«ñπ½ε Graph ¡Ñ »«¡á-
  2572. ñ«í¿Γß∩ ¬áªñδ⌐ αẠºáúαπªáΓ∞ ¿ αáºúαπªáΓ∞ Φα¿ΣΓ.
  2573.      é«-óΓ«αδσ, óδ ¼«ªÑΓÑ ºáσ«ΓÑΓ∞  αẼÑßΓ¿Γ∞  Σá⌐½  Φα¿ΣΓá
  2574. ¡Ñ»«ßαÑñßΓóÑ¡¡«  ó  óáΦѼ  Σá⌐½Ñ  .EXE.  Æá¬¿¼ «íαẫ¼, Σá⌐½
  2575. Φα¿ΣΓá, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓ óáΦá »α«úαá¼¼á, «¬áªÑΓß∩ óßΓα«Ñ¡-
  2576. ¡δ¼,  ¿ ñ½∩ ºá»π߬ᠻα«úαá¼¼δ »«ΓαÑíπÑΓß∩ Γ«½∞¬« óδ»«½¡∩Ѽδ⌐
  2577. Σá⌐½ (Σá⌐½ .EXE). Åα«µÑßß αẼÑΘÑ¡¿∩ Σá⌐½á Φα¿ΣΓá ó óδ»«½¡∩-
  2578. Ѽ«¼ Σá⌐½Ñ ñ«ó«½∞¡« »α«ßΓ ¿ ß«ßΓ«¿Γ ó ß½ÑñπεΘѼ:
  2579.  
  2580.      1.  éδ»«½¡¿Γ∞ ñ½∩ Σá⌐½á (¿½¿ Σá⌐½«ó) »α«úαá¼¼π BINOBJ.
  2581.      2.  æ¬«¼»«¡«óáΓ∞  αѺπ½∞Γ¿απεΘ¿Ñ  Σá⌐½δ  ,OBJ  ß  óáΦÑ⌐
  2582.          »α«úαá¼¼«⌐.
  2583.      3.  ÅÑαÑñ óδº«ó«¼ »α«µÑñπαδ Init ºáαÑú¿ßΓα¿α«óáΓ∞ ß¬«¼-
  2584.          »«¡«óá¡¡δÑ Σá⌐½δ (Σá⌐½) ñαá⌐óÑαá.
  2585.  
  2586.      ü«½ÑÑ »«ñα«í¡«Ñ «»¿ßá¡¿Ñ φΓ«ú« »α«µÑßßá ¼«ª¡«  ¡á⌐Γ¿  ó
  2587. ¬«¼¼Ñ¡Γáα¿∩σ,   ß«ñÑαªáΘ¿σß∩   ó   ΦỬѠ  »α«úαá¼¼δ-»α¿¼Ñαá
  2588. GRLINK.PAS ¡á ñ¿ß¬Ñ 3. ä«¬π¼Ñ¡Γᵿ∩ »« πΓ¿½¿ΓÑ BINOBJ ß«ñÑα-
  2589. ª¿Γß∩ ó Åα¿½«ªÑ¡¿¿ æ "Éπ¬«ó«ñßΓóá »«½∞º«óáΓѽ∩".
  2590.      çá¼ÑΓ¿¼, τΓ« ó ¿ß»«½∞ºπѼδ⌐ »« π¼«½τá¡¿ε Φα¿ΣΓ (ß í¿Γ«-
  2591. óδ¼  «Γ«íαáªÑ¡¿Ñ¼  8σ8)  óßΓα«Ñ¡ ó ¼«ñѽ∞ GRAPH.TPU ¿, Γᬿ¼
  2592. «íαẫ¼, óßÑ óαѼ∩ ¡áσ«ñ¿Γß∩ ó »á¼∩Γ¿. Åα¿ óδí«αÑ ¿ ºáúαπº¬Ñ
  2593. ΦΓα¿σ«ó«ú«  Φα¿ΣΓá óáΦá »α«úαἼᠿ¼ÑÑΓ ó«ºó«ª¡«ßΓ∞ »ÑαѬ½ε-
  2594. τáΓ∞ß∩ ¼Ñªñπ ¿ß»«½∞ºπÑ¼δ¼ »« π¼«½τá¡¿ε ¿  ΦΓα¿σ«óδ¼  Φα¿ΣΓ«¼
  2595. íѺ ¡Ñ«íσ«ñ¿¼«ßΓ¿ »ÑαѺáúαπªáΓ∞ ¬á¬«⌐-½¿í« ¿º ¡¿σ.
  2596.      î«ª¡« ΓᬪѠαÑú¿ßΓα¿α«óáΓ∞ Σá⌐½δ ñαá⌐óÑα«ó (ß¼.  «»¿ßá-
  2597. ¡¿Ñ Σπ¡¬µ¿¿ RegisterBGIdriver.
  2598.      Ç¡á½«ú¿τ¡á∩ Σπ¡¬µ¿∩ ¿¼ÑÑΓß∩ ó óÑαß¿¿ 2.0 Æπαí«-æ¿.
  2599.      Åα«τÑÑ:   æ¼.   ΓᬪѠ   »α«µÑñπαδ    SetTextStyle    ¿
  2600. InstallUserFont.
  2601.  
  2602. ------------------------------------------------------------
  2603.  Åα«µÑñπαá Release
  2604. ------------------------------------------------------------
  2605.      öπ¡¬µ¿∩: é«ºóαáΘáÑΓ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽπε  «í½áßΓ∞
  2606. »á¼∩Γ¿ ó π¬áºá¡¡«Ñ ß«ßΓ«∩¡¿Ñ.
  2607.      Ä»¿ßá¡¿Ñ: Release(var p : pointer)
  2608.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα p ∩ó½∩ÑΓß∩  π¬áºáΓѽѼ-»ÑαѼѡ¡«⌐,
  2609. ß««ΓóÑΓßΓóπεΘÑ⌐  ½εí«¼π  Γ¿»π  π¬áºáΓѽÑ⌐, ñ½∩ ¬«Γ«α«⌐ αá¡ÑÑ
  2610. í佫  óδ»«½¡Ñ¡«  »α¿ßóá¿óá¡¿Ñ  ß  »«¼«Θ∞ε  »α«µÑñπαδ   îárk.
  2611. Åα«µÑñπαá  Release «Γ¼Ñ¡∩ÑΓ óßÑ ñ¿¡á¼¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ, ñ½∩
  2612. ¬«Γ«αδσ íδ½á óδñѽѡᠻá¼∩Γ∞  ß  »«¼«Θ∞ε  »α«µÑñπα  New  ¿½¿
  2613. GetMem, ¡áτ¿¡á∩ ß Γ«ú« ¼«¼Ñ¡Γá, ¬«úñá íδ½á óδ»«½¡Ñ¡« »α¿ßóá-
  2614. ¿óá¡¿Ñ ñ½∩ α »α«µÑñπα«⌐ îárk.
  2615.      Äúαá¡¿τÑ¡¿∩: àß½¿ ¡Ñ  ß«í½εñÑ¡δ  «»αÑñѽѡ¡δÑ  »αáó¿½á,
  2616. «íαáΘÑ¡¿∩  ¬  »α«µÑñπαá¼  îárk ¿ Release ¡Ñ½∞º∩ »ÑαѼѪáΓ∞ ß
  2617. «íαáΘÑ¡¿∩¼¿ ¬ »α«µÑñπαá¼ Dispose ¿ FrÑÑîѼ. Å«½¡«Ñ  «íßπªñÑ-
  2618. ¡¿Ñ  φΓ«⌐  ΓÑ¼δ  ñáÑΓß∩  ó  αáºñѽѠ"Åα«úαá¼¼á ñ¿¡á¼¿τÑ߬«ú«
  2619. αáß»αÑñѽѡ¿∩ »á¼∩Γ¿" ó â½áóÑ 15.
  2620.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ Mark, Dispose, FreeMem.
  2621.  
  2622. ------------------------------------------------------------
  2623.  Åα«µÑñπαá Rename
  2624. ------------------------------------------------------------
  2625.      öπ¡¬µ¿∩: ÅÑαÑ¿¼Ñ¡«óδóáÑΓ ó¡ÑΦ¡¿⌐ Σá⌐½.
  2626.      Ä»¿ßá¡¿Ñ: Rename(f; ¡«ó_¿¼∩ : string)
  2627.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα f »αÑñßΓáó½∩ÑΓ ß«í«⌐ Σá⌐½«óπε  »Ñ-
  2628. αѼѡ¡πε, ß««ΓóÑΓßΓóπεΘπε ½εí«¼π Σá⌐½π ½εí«ú« Γ¿»á. Åáαá¼ÑΓα
  2629. "¡«ó_¿¼∩" ∩ó½∩ÑΓß∩ óδαáªÑ¡¿Ñ¼ ßΓ᫬«ó«ú« Γ¿»á. é¡ÑΦ¡Ñ¼π Σá⌐-
  2630. ½π,  ßó∩ºá¡¡«¼π ß »ÑαѼѡ¡«⌐ f, »α¿ßóá¿óáÑΓß∩ ¡«ó«Ñ ¿¼∩, ºá-
  2631. ñá¡¡«Ñ »áαá¼ÑΓα«¼ "¡«ó_¿¼∩". äá½∞¡Ñ⌐Φ¿Ñ «»Ñαᵿ¿ ß  f  íπñπΓ
  2632. óδ»«½¡∩Γ∞ß∩ ß ó¡ÑΦ¡¿¼ Σá⌐½«¼ ß ¡«óδ¼ ¿¼Ñ¡Ñ¼.
  2633.      Åα¿  π¬áºá¡¿¿  ñ¿αÑ¬Γ¿óδ  ¬«¼»¿½∩Γ«αá   {$I-}   Σπ¡¬µ¿∩
  2634. IORÑsult íπñÑΓ ó«ºóαáΘáΓ∞ º¡áτÑ¡¿Ñ 0 ó Γ«¼ ß½πτáÑ, Ñß½¿ «»Ñ-
  2635. αᵿ∩ ºáóÑαΦ¿½áß∞ πß»ÑΦ¡«, ¿ ¡Ñ¡π½Ñó«⌐ ¬«ñ «Φ¿í¬¿ ó  »α«Γ¿ó-
  2636. ¡«¼ ß½πτáÑ.
  2637.      Äúαá¡¿τÑ¡¿∩: Åα«µÑñπαá Rename ¡Ñ ñ«½ª¡á  ¿ß»«½∞º«óáΓ∞ß∩
  2638. ñ½∩ «Γ¬αδΓ«ú« Σá⌐½á.
  2639.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαπ Erase.
  2640.  
  2641. ------------------------------------------------------------
  2642.  Åα«µÑñπαá Reset
  2643. ------------------------------------------------------------
  2644.      öπ¡¬µ¿∩: ÄΓ¬αδóáÑΓ ßπΘÑßΓóπεΘ¿⌐ Σá⌐½.
  2645.      Ä»¿ßá¡¿Ñ: Reset(f [ : file; αẼ_ºá»¿ß¿ : word ] )
  2646.      Åα¿¼Ñτá¡¿∩: Åáαá¼ÑΓα f  ∩ó½∩ÑΓß∩  Σá⌐½«ó«⌐  »ÑαѼѡ¡«⌐,
  2647. ß««ΓóÑΓßΓóπεΘÑ⌐  ½εí«¼π  Γ¿»π Σá⌐½á. Ä¡ ñ«½ªÑ¡ íδΓ∞ ßó∩ºá¡ ß
  2648. ó¡ÑΦ¡¿¼  Σá⌐½«¼  ß  »«¼«Θ∞ε   »α«µÑñπαδ   Assign.   Åáαá¼ÑΓα
  2649. "αẼ_ºá»¿ß¿"  »αÑñßΓáó½∩ÑΓ  ß«í«⌐  ¡Ñ«í∩ºáΓѽ∞¡«Ñ óδαáªÑ¡¿Ñ
  2650. ñ½¿¡«⌐ ó ß½«ó« ¿ ¼«ªÑΓ π¬áºδóáΓ∞ß∩ Γ«½∞¬« ó Γ«¼ ß½πτáÑ, Ñß½¿
  2651. f ∩ó½∩ÑΓß∩ ¡ÑΓ¿»¿º«óá¡¡δ¼ Σá⌐½«¼.
  2652.      Åα«µÑñπαá Reset «Γ¬αδóáÑΓ  ßπΘÑßΓóπεΘ¿⌐  ó¡ÑΦ¡¿⌐  Σá⌐½,
  2653. ¿¼∩ ¬«Γ«α«ú« í佫 »α¿ßó«Ñ¡« f. àß½¿ ó¡ÑΦ¡¿⌐ Σá⌐½ ß π¬áºá¡¡δ¼
  2654. ¿¼Ñ¡Ñ¼ «ΓßπΓßΓóπÑΓ, Γ« φΓ« ∩ó½∩ÑΓß∩ «Φ¿í¬«⌐. àß½¿ Σá⌐½ f πªÑ
  2655. «Γ¬αδΓ,  Γ«  «¡  ß¡áτá½á  ºá¬αδóáÑΓß∩,  á  ºáΓѼ «Γ¬αδóáÑΓß∩
  2656. ó¡«ó∞. ÆÑ¬πΘá∩ »«º¿µ¿∩ ó  Σá⌐½Ñ  πßΓá¡áó½¿óáÑΓß∩  ¡á  ¡áτὫ
  2657. Σá⌐½á.   àß½¿   f   í佫  »α¿ßó«Ñ¡«  »πßΓ«Ñ  ¿¼∩  (¡á»α¿¼Ñα,
  2658. Assign(f'')), Γ« »«ß½Ñ «íαáΘÑ¡¿∩ ¬ »α«µÑñπαÑ Reset  f  íπñÑΓ
  2659. ßß佬«⌐ ¡á ßΓá¡ñáαΓ¡δ⌐ Σá⌐½ óó«ñá (ßΓá¡ñáαΓ¡δ⌐ ¬á¡á½ 0).
  2660.      àß½¿ f - ΓѬßΓ«óδ⌐ Σá⌐½,  Γ«  «¡  ßΓá¡«ó¿Γß∩  ñ«ßΓπ»¡δ¼
  2661. Γ«½∞¬«  »«  τΓÑ¡¿ε. Å«ß½Ñ «íαáΘÑ¡¿∩ ¬ »α«µÑñπαÑ Reset à«f(f)
  2662. »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ ÆruÑ, Ñß½¿ Σá⌐½ »πßΓ, ¿ º¡áτÑ¡¿Ñ False  ó
  2663. »α«Γ¿ó¡«¼ ß½πτáÑ.
  2664.      àß½¿ f  ∩ó½∩ÑΓß∩  ¡ÑΓ¿»¿º«óá¡¡δ¼  Σá⌐½«¼,  Γ«  »áαá¼ÑΓα
  2665. "αẼ-ºá»¿ß¿"  «»αÑñѽ∩ÑΓ  αẼÑα ºá»¿ß¿, ¬«Γ«αδ⌐ ñ«½ªÑ¡ ¿ß-
  2666. »«½∞º«óáΓ∞ß∩ »α¿ »ÑαÑñáτÑ ñá¡¡δσ. àß½¿ φëà»áαá¼ÑΓα «»πΘÑ¡,
  2667. Γ« «¡ »«ñαáºπ¼ÑóáÑΓß∩ αáó¡δ¼ »« π¼«½τá¡¿ε 128 íá⌐Γá¼.
  2668.      Åα¿  π¬áºá¡¿¿  ñ¿αÑ¬Γ¿óδ  ¬«¼»¿½∩Γ«αá   {$I-}   Σπ¡¬µ¿∩
  2669. IORÑsult íπñÑΓ ó«ºóαáΘáΓ∞ º¡áτÑ¡¿Ñ 0 ó Γ«¼ ß½πτáÑ, Ñß½¿ «»Ñ-
  2670. αᵿ∩ ºáóÑαΦ¿½áß∞ πß»ÑΦ¡«, ¿ ¡Ñ¡π½Ñó«⌐ ¬«ñ «Φ¿í¬¿ ó  »α«Γ¿ó-
  2671. ¡«¼ ß½πτáÑ.
  2672.      ÄΓ½¿τ¿∩: é óÑαß¿¿ 3.0 »πßΓ«Ñ ¿¼∩ Σá⌐½á í佫  ¡Ññ«»πßΓ¿-
  2673. ¼«.
  2674.      Åα«τÑÑ: æ¼. ΓᬪѠ»α«µÑñπαδ Rewrite, Append, Assign.
  2675.      Åα¿¼Ñα:
  2676.  
  2677.  function FileExists(FileName: string) : boolean;
  2678.  { íπ½Ñó߬á∩ Σπ¡¬µ¿∩, ó«ºóαáΘáεΘá∩ º¡áτÑ¡¿Ñ ÆruÑ, Ñß½¿ Σá⌐½
  2679.    ßπΘÑßΓóπÑΓ ¿ º¡áτÑ¡¿Ñ False ó »α«Γ¿ó¡«¼ ß½πτáÑ }
  2680.  var
  2681.    f : file;
  2682.  begin
  2683.  
  2684.