home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / document / tp_prof.lzh / TPPROF_1.DOC < prev    next >
Encoding:
Text File  |  1991-03-13  |  400.7 KB  |  8,589 lines

  1.                                                                                
  2.   Äú½áó½Ñ¡¿Ñ
  3.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                                = 1 =
  4.  
  5.          ÅαÑñ¿ß½«ó¿Ñ.....................................................4
  6.          éóÑñÑ¡¿Ñ........................................................5
  7.          âïÇéÇ 1. æÄÉÆêÉÄéèÇ ê ÅÄêæè.....................................7
  8.          æÄÉÆêÉÄéèÇ......................................................7
  9.          è½áßßδ á½ú«α¿Γ¼«ó ß«αΓ¿α«ó¬¿....................................7
  10.          ÄµÑ¡¬á á½ú«α¿Γ¼«ó ß«αΓ¿α«ó¬¿....................................8
  11.          æ«αΓ¿α«ó¬á »πºπα∞¬«óδ¼ ¼ÑΓ«ñ«¼..................................9
  12.          æ«αΓ¿α«ó¬á óδí«α«¼.............................................13
  13.          æ«αΓ¿α«ó¬á óßΓáó¬«⌐............................................14
  14.          ôß«óÑαΦÑ¡ßΓó«óá¡¡δÑ á½ú«α¿Γ¼δ ß«αΓ¿α«ó¬¿.......................16
  15.          æ«αΓ¿α«ó¬á ÿѽ½á...............................................17
  16.          âïÇéÇ 2. ÄùàÉàäê, æÆàèê, æéƒçÇìì¢à æÅêæèê ê äàÉà飃............32
  17.          ÄùàÉàäê........................................................33
  18.          û¿¬½¿τÑ߬á∩ «τÑαÑñ∞............................................36
  19.          æÆàèê..........................................................43
  20.          æéƒçÇìì¢à æÅêæèê...............................................47
  21.          æó∩ºá¡¡δÑ ß»¿ß¬¿ ß «ñ¿¡«τ¡«⌐ ßó∩º∞ε............................47
  22.          æ»¿ß¬¿ ß ñó«⌐¡«⌐ ßó∩º∞ε........................................55
  23.          æ»¿ß«¬ áñαÑ߫󠻫τΓ«óδ󠬫ααÑß»«¡ñÑ¡µ¿⌐, »«ßΓα«Ñ¡¡δ⌐ ó ó¿ñÑ
  24.           ß»¿ß¬á ß ñóπ¼∩ ßó∩º∩¼¿........................................61
  25.          äéÄêùì¢à äàÉà飃...............................................68
  26.          âïÇéÇ 3. äêìÇîêùàæèÄà ÉÇæÅÉàäàïàìêà ÅÇîƒÆê.....................76
  27.          öôìèûꃠ New...................................................78
  28.          öôìèûꃠ Dispose...............................................79
  29.          öôìèûêê  Mark ¿ Release........................................80
  30.          ÄüÉÇüÄÆèÇ ÉÇçÉàåàìì¢ò îÇææêéÄé.................................82
  31.          êß»«½∞º«óá¡¿Ñ ßó∩ºá¡¡«ú« ß»¿ß¬á ñ½∩ «αúá¡¿ºáµ¿¿
  32.           αáºαѪѡ¡«ú«  ¼áßß¿óá.........................................83
  33.          êß»«½∞º«óá¡¿Ñ ñó«¿τ¡«ú« ñÑαÑóá ñ½∩ «αúá¡¿ºáµ¿¿ αáºαѪѡ¡δσ
  34.           ¼áßß¿ó«ó......................................................87
  35.          Åα¿¼Ñ¡Ñ¡¿Ñ ¼áßß¿óá π¬áºáΓѽÑ⌐ ñ½∩ «αúá¡¿ºáµ¿¿ αáºαѪѡ¡δσ
  36.           ¼áßß¿ó«ó......................................................90
  37.          òàÿêÉÄéÇìêà....................................................94
  38.          Ç¡á½¿º σÑΦ¿α«óá¡¿∩............................................100
  39.          éδí«α ¼ÑΓ«ñá αÑ὿ºáµ¿¿ αáºα∩ªÑ¡¡δσ ¼áΓα¿µ....................100
  40.          üôöàÉêçÇûêƒ...................................................102
  41.          öÉÇâîàìÆÇûêƒ..................................................111
  42.          ä¿¡á¼¿τÑ߬«Ñ αáß»αÑñѽѡ¿Ñ »á¼∩Γ¿ ¿ ºáñáτ¿ ¿ß¬πßßΓóÑ¡¡«ú«
  43.           ¿¡Γѽ½Ñ¬Γá...................................................113
  44.          âïÇéÇ 4.  êìÆàÉöàëæ æ ÅÉÄâÉÇîîÇîê ìÇ ÇææàîüïàÉà ê æéƒç£ æ
  45.           ÄÅàÉÇûêÄììÄë æêæÆàîÄë........................................123
  46.          êìÆàÉöàëæ æ ÇææàîüïàÉÄî.......................................123
  47.          éìôÆÉàììêà öÄÉîÇÆ¢ äÇìì¢ò ê æÄâïÇÿàìꃠĠæéƒçƒò é ƒç¢èà
  48.           ÆôÉüÄ ÅÇæèÇï£................................................125
  49.          Åáαá¼ÑΓαδ-º¡áτÑ¡¿∩............................................126
  50.          Åáαá¼ÑΓαδ-»ÑαѼѡ¡δÑ..........................................127
  51.          ÅÑαÑñáτá αѺπ½∞ΓáΓá Σπ¡¬µ¿¿...................................128
  52.          æ«σαá¡Ñ¡¿Ñ αÑú¿ßΓα«ó..........................................128
  53.  
  54.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                                = 2 =
  55.  
  56.          æ«ºñá¡¿Ñ ó¡ÑΦ¡Ñ⌐ »α«úαá¼¼δ ¡á áßßѼí½ÑαÑ......................128
  57.          éßΓα«Ñ¡¡δ⌐ ¬«ñ áßßѼí½Ñαá.....................................130
  58.          è«úñá ß½ÑñπÑΓ »α¿¼Ñ¡∩Γ∞ áßßѼí½Ñα.............................132
  59.          æéƒç£ æ ÄÅàÉÇûêÄììÄë æêæÆàîÄë.................................134
  60.          ä«ßΓπ» ¬ ß¿ßΓѼ¡δ¼ αÑßπαßá¼ ó «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼѠPC-DOS.....135
  61.          Åα¿¼Ñ¡Ñ¡¿Ñ »α«µÑñπαδ MsDos....................................136
  62.          Æáí½¿µá 1 æ¿ßΓѼ¡δÑ »«ñ»α«úαá¼¼δ, óδºδóáѼδÑ »«ßαÑñßΓó«¼
  63.           »αÑαδóá¡¿⌐...................................................138
  64.          êß»«½∞º«óá¡¿Ñ ¬«ñ«ó ¬½áó¿Φ ß¬á¡¿α«óá¡¿∩.......................148
  65.          çᬽετ¿Γѽ∞¡δÑ ºá¼Ñτá¡¿∩ «Γ¡«ß¿Γѽ∞¡« ßó∩º¿ ß «»Ñαᵿ«¡¡«⌐
  66.           ß¿ßΓѼ«⌐.....................................................151
  67.          âïÇéÇ 5. æÆÇÆêæÆêùàæèêë ÇìÇïêç................................152
  68.          é¢üÄÉèê, âàìàÉÇï£ì¢à æÄéÄèôÅìÄæÆê, ÉÇæÅÉàäàïàìêƒ
  69.           éàÉăÆìÄæÆàë ê ÅàÉàîàìì¢à....................................153
  70.          Äß¡«ó¡δÑ ßΓáΓ¿ßΓ¿τÑ߬¿Ñ «µÑ¡¬¿................................154
  71.          æαÑñ¡ÑÑ º¡áτÑ¡¿Ñ..............................................154
  72.          îÑñ¿á¡δ.......................................................155
  73.          î«ñá..........................................................156
  74.          Åα¿¼Ñ¡Ñ¡¿Ñ ßαÑñ¡Ñú« º¡áτÑ¡¿∩, ¼Ññ¿á¡δ ¿ ¼«ñδ..................158
  75.          ä¿ß»Ñαß¿∩ ¿ ßΓá¡ñáαΓ¡«Ñ «Γ¬½«¡Ñ¡¿Ñ............................160
  76.          éδó«ñ ¡á φ¬αá¡ »α«ßΓδσ úαáΣ¿¬«ó...............................162
  77.          Åα«ú¡«º¿α«óá¡¿Ñ ¿ παáó¡Ñ¡¿Ñ αÑúαÑßß¿¿.........................168
  78.          ÅÄïìǃ ÅÉÄâÉÇîîÇ ÅÄ æÆÇÆêæÆêùàæèÄîô ÇìÇïêçô...................173
  79.          Åα¿¼Ñ¡Ñ¡¿Ñ »α«úαá¼¼δ ßΓáΓ¿ßΓ¿τÑ߬«ú« á¡á½¿ºá..................183
  80.          çÇèï₧ùêÆàï£ì¢à çÇîàùÇìêƒ......................................184
  81.  
  82.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                                = 3 =
  83.  
  84.          =================================================================
  85.  
  86.                            ÇóΓ«α߬¿⌐ ¬«½½Ñ¬Γ¿ó "*.*"
  87.  
  88.  
  89.  
  90.  
  91.                              ÅÉÄâÉÇîîÇ-æÅÉÇéÄùìêè
  92.                                »« ¬¡¿úÑ â.ÿ¿½ñΓá
  93.  
  94.  
  95.                          É Ç ü Ä Æ Ç  æ  ÆôÉüÄ ÅÇæèÇïàî
  96.  
  97.  
  98.                                  ú. î«ß¬óá, 1990 ú.
  99.  
  100.  
  101.          =================================================================
  102.  
  103.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                                = 4 =
  104.  
  105.                                         ÅαÑñ¿ß½«ó¿Ñ                            
  106.          -----------------------------------------------------------------
  107.  
  108.               ä½∩ «»δΓ¡«ú« »«½∞º«óáΓѽ∩,  »α¿¼Ñ¡∩εΘÑú« Æπαí« Åá߬á½∞,  φΓá
  109.          ¬¡¿úá ßΓá¡ÑΓ ¡Ñ«íσ«ñ¿¼δ¼ ¿¡ßΓαπ¼Ñ¡Γ«¼ »α¿ αáºαáí«Γ¬Ñ  »α«úαá¼¼  ó
  110.          ßαÑñÑ ß¿ßΓÑ¼δ Æπαí« Åá߬á½∞.
  111.               Æπαí« Åá߬á½∞ ¡áßτ¿ΓδóáÑΓ ó« óßѼ ¼¿αÑ í«½ÑÑ 700 000 »«½∞º«-
  112.          óáΓѽÑ⌐ ¿  ßΓá½  Σá¬Γ¿τÑ߬¿ ßΓá¡ñáαΓ¡δ¼ Åá߬á½Ñ¼ ñ½∩ »Ñαß«¡á½∞¡δσ
  113.          ¬«¼»∞εΓÑα«ó. é φëàαẠâÑαíÑαΓ ÿ¿½ñΓ, ¬«Γ«αδ⌐ ßá¼ ∩ó½∩ÑΓß∩ »α«ú-
  114.          αá¼¼¿ßΓ«¼, ó ßó«Ñ⌐ ¬¡¿úÑ, »αÑñ¡áº¡áτÑ¡¡«⌐ ñ½∩ «»δΓ¡δσ »«½∞º«óáΓÑ-
  115.          ½Ñ⌐ Æπαí« Åá߬á½∩, »αÑñßΓáó½∩ÑΓ á½ú«α¿Γ¼δ ¿ ¼ÑΓ«ñδ αáºαáí«Γ¬¿ φΣ-
  116.          ΣÑ¬Γ¿ó¡δσ, ¼«í¿½∞¡δσ »α«úαá¼¼, ßó«í«ñ¡δσ «Γ «Φ¿í«¬.
  117.               ÿ¿½ñΓ »«½∞ºπÑΓß∩ »«ñσ«ñ«¼, »α¿ ¬«Γ«α«¼ ½πτΦÑÑ πßó«Ñ¡¿Ñ ¼áΓÑ-
  118.          α¿á½á «íÑß»Ñτ¿óáÑΓß∩ »α¿¼ÑαἿ αÑΦÑ¡¿∩ ºáñáτ. èᬠóßÑúñá «Γ τÑΓ¬«
  119.          óδαáªáÑΓ  ßó«¿ ¼δß½¿ ¿ ¿½½εßΓα¿απÑΓ ¿σ ¼¡«ú«τ¿ß½Ñ¡¡δ¼¿ »α¿¼ÑαἿ.
  120.          ÇóΓ«α »α«ó«ñ¿Γ τ¿ΓáΓѽ∩ »« óßѼπ ∩ºδ¬π Åá߬á½∞  ¿ «ßΓá¡áó½¿óáÑΓß∩
  121.          ¡á ¬«¡¬αÑΓ¡δσ ó«»α«ßáσ »α«úαá¼¼¿α«óá¡¿∩. â½áóδ 9 ¿ 10 ºáß½πª¿óáεΓ
  122.          «ß«í«ú« ó¡¿¼á¡¿∩.  é ú½áóÑ 9 «»¿ßδóáεΓß∩ ßαÑñßΓóá  Æπαí« Åá߬á½∩,
  123.          »αÑñ¡áº¡áτÑ¡¡δÑ ñ½∩ αáí«Γδ ß íẫ⌐ ñá¡¡δσ. ¥Γ¿ ßαÑñßΓóá »αÑñßΓáó-
  124.          ½∩εΓ ß«í«⌐ í¿í½¿«ΓѬπ »α«µÑñπα Åá߬á½∩,  ¬«Γ«αá∩ »«ºó«½∩ÑΓ αáºαá-
  125.          íáΓδóáΓ∞ ¼«Θ¡δÑ ß¿ßΓѼδ íẠñá¡¡δσ. é ú½áóÑ 10 «»¿ßδóáεΓß∩ úαáΣ¿-
  126.          τÑ߬¿Ñ ßαÑñßΓóá Æπαí« Åá߬á½∩.  ¥Γ¿ ßαÑñßΓóá  »αÑñßΓáó½∩εΓ  ß«í«⌐
  127.          í¿í½¿«ΓѬπ »α«úαá¼¼,  »αÑñ¡áº¡áτÑ¡¡δσ ñ½∩ αáºαáí«Γ¬¿ ¬«¼¼ÑατÑ߬¿σ
  128.          úαáΣ¿τÑ߬¿σ ß¿ßΓѼ ß óδß«¬«⌐ αáºαÑΦáεΘÑ⌐ ß»«ß«í¡«ßΓ∞ε.
  129.               î¡Ñ í佫  »α¿∩Γ¡«  αáí«ΓáΓ∞ ß ¿ºñáΓѽ∞ßΓó«¼ "îá¬úα«π-ò¿½½" ¿
  130.          ÿ¿½ñΓ«¼ »α¿ »«ñú«Γ«ó¬Ñ ¬¡¿ú¿,  ¬«Γ«αá∩ ∩ó½∩ÑΓß∩ óáª¡δ¼  φΓừ¼  ó
  131.          αáºó¿Γ¿¿ ß¿ßΓÑ¼δ Æπαí« Åá߬á½∞.  éßÑ »α«úαá¼¼¿ßΓδ,  ßΓαѼ∩Θ¿Ñß∩ ¬
  132.          ¼á¬ß¿¼á½∞¡«⌐ »α«¿ºó«ñ¿Γѽ∞¡«ßΓ¿ »α¿ αáºαáí«Γ¬Ñ »α«úαá¼¼  ó  ßαÑñÑ
  133.          ß¿ßΓÑ¼δ Æπαí« Åá߬á½∞,  ºáσ«Γ∩Γ »α«τÑßΓ∞ ¿  ó«ß»«½∞º«óáΓ∞ß∩  φΓ«⌐
  134.          ¬¡¿ú«⌐.
  135.  
  136.                                                     ö¿½¿»» èá¡,
  137.                                                     »αѺ¿ñÑ¡Γ Σ¿α¼δ
  138.                                                     "ü«α½á¡ñ ¿¡ΓÑα¡Ñ⌐Φ¿½".
  139.  
  140.  
  141.  
  142.  
  143.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                                = 5 =
  144.  
  145.                                                  éóÑñÑ¡¿Ñ                      
  146.          -----------------------------------------------------------------
  147.  
  148.               ¥Γá ¬¡¿úá »«¼«ªÑΓ óá¼ αá߬αδΓ∞ ¡á ¬«¡¬αÑΓ¡δσ »α¿¼Ñαáσ  í«½∞-
  149.          Φ¿Ñ ó«º¼«ª¡«ßΓ¿ ß¿ßΓÑ¼δ Æπαí« Åá߬á½∞.  é ¬áªñ«⌐ ú½áóÑ αáßß¼áΓα¿-
  150.          óáÑΓß∩ «»αÑñѽѡ¡á∩ ΓѼᠻα«úαá¼¼¿α«óá¡¿∩ ¿ αáºαáíáΓδóáεΓß∩ »α«ú-
  151.          αá¼¼δ,  «Γ¡«ß∩Θ¿Ñß∩ ¬ φΓ«⌐ ΓѼÑ. é σ«ñÑ φΓ«ú« »α«µÑßßá óδ πó¿ñ¿ΓÑ
  152.          ¬á¬¿Ñ »αÑ¿¼πΘÑßΓóá ñáÑΓ Æπαí« Åá߬á½∞ »α¿ αÑΦÑ¡¿¿ ¡Ñ¬«Γ«αδσ «íδτ-
  153.          ¡δσ ºáñáτ »α«úαá¼¼¿α«óá¡¿∩.  é Γ« ªÑ óαѼ∩ óδ ß¼«ªÑΓÑ πß«óÑαΦÑ¡ß-
  154.          Γó«óáΓ∞ ßó«¿ »α«úαá¼¼¿ßΓ߬¿Ñ ß»«ß«í¡«ßΓ¿.
  155.               â½áóá 1  »«ßó∩ΘÑ¡á ß«αΓ¿α«ó¬Ñ ¼áßß¿ó«ó ¿ ñ¿ß¬«óδσ Σá⌐½«ó.  é
  156.          ú½áóÑ 2 αáßß¼áΓα¿óáεΓß∩ ßΓѬ¿, «τÑαÑñ¿, ßó∩ºá¡¡δÑ ß»¿ß¬¿ ¿ ñó«¿τ-
  157.          ¡δÑ  ñÑαÑó∞∩.  Æá¬«⌐  ñ¿á»áº«¡ ó«»α«ß«ó,  αáßß¼áΓα¿óáѼδσ ó «ñ¡«⌐
  158.          ú½áóÑ,  ¼«ªÑΓ »«¬áºáΓ∞ß∩ ß½¿Φ¬«¼ Φ¿α«¬¿¼, «ñ¡á¬« »αÑñ¼ÑΓ «íßπªñÑ-
  159.          ¡¿∩ «í½áñáÑΓ ñ«ßΓáΓ«τ¡«⌐ «ñ¡«α«ñ¡«ßΓ∞ε.
  160.               é ú½áóÑ 3 αáßß¼áΓα¿óáεΓß∩  ¼ÑΓ«ñδ  ñ¿¡á¼¿τÑ߬«ú«  π»αáó½Ñ¡¿∩
  161.          »á¼∩Γ∞ε,  á ó ú½áóÑ 4 ñáÑΓß∩ «íº«α »α¿¡µ¿»«ó ßó∩º¿ ß «»Ñαᵿ«¡¡«⌐
  162.          ß¿ßΓѼ«⌐ ¿ ß ∩ºδ¬«¼ áßßѼí½Ñαá.  ÆÑ¼«⌐ ú½áóδ 5 ∩ó½∩ÑΓß∩ ßΓáΓ¿ßΓ¿-
  163.          τÑ߬¿⌐ á¡á½¿º ¿ ó ¡ÑÑ ó¬½ετÑ¡δ ºá¬«¡τÑ¡¡δÑ »α«úαá¼¼δ »« ßΓáΓ¿ßΓ¿-
  164.          τÑ߬«¼π á¡á½¿ºπ.  é ú½áóÑ 6  αáßß¼áΓα¿óáεΓß∩  ó«»α«ßδ  ¬«ñ¿α«ó¬¿,
  165.          Φ¿Σα«óá¡¿∩ ¿ ßªáΓ¿∩ ñá¡¡δσ.  é ¡ÑÑ ΓᬪѠó¬½ετѡᠬαáΓ¬á∩ ¿ßΓ«α¿∩
  166.          ¬α¿»Γ«úαáΣ¿¿.  é ú½áóÑ 7  αáßß¼áΓα¿óáÑΓß∩  ¡Ñ߬«½∞¬«  úÑ¡ÑαáΓ«α«ó
  167.          ß½πτá⌐¡δσ  τ¿ß½Ñ ¿ ºáΓѼ «íßπªñáÑΓß∩ ¿σ ¿ß»«½∞º«óá¡¿Ñ »α¿ αÑΦÑ¡¿¿
  168.          ñóπσ ºáñáτ ¼«ñѽ¿α«óá¡¿∩ /¬«¡Γα«½∞¡«⌐ ½¿¡¿¿ ¡á ß¬½áñÑ ¿  π»αáó½Ñ-
  169.          ¡¿∩ »«αΓΣѽѼ ºá¬áº«ó/.
  170.               â½áóá 8,  ¬«Γ«αá∩ ¼¡Ñ ¡αáó¿Γß∩ í«½∞ΦÑ óßÑú«, ß«ñÑαª¿Γ »«½¡δ⌐
  171.          ¬«ñ  αѬπαß¿ó¡«ú« ¡¿ßσ«ñ∩ΘÑú« ß¿¡Γá¬ß¿τÑ߬«ú« á¡á½¿ºáΓ«αá.  /ìÑß-
  172.          ¬«½∞¬« ½ÑΓ ¡áºáñ ∩ ú«Γ«ó íδ½ ºá»½áΓ¿Γ∞ »«τΓ¿ ½εíπε µÑ¡π  ºá Γᬫ⌐
  173.          ¬«ñ/.  â½áóá  8  »αÑñ¡áº¡áτÑ¡á ñ½∩ ΓÑσ,  ¬«¼π ΓαÑíπÑΓß∩ óδ»«½¡∩Γ∞
  174.          á¡á½¿º óδαáªÑ¡¿⌐.  æαÑñßΓóá,  »αÑñ¡áº¡áτÑ¡¡δÑ ñ½∩ αáí«Γδ ß  íẫ⌐
  175.          ñá¡¡δσ,  ¿ úαáΣ¿τÑ߬¿Ñ ßαÑñßΓóá, ¬«Γ«αδÑ ∩ó½∩εΓß∩ ñóπ¼∩ «τÑ¡∞ »«-
  176.          ½Ñº¡δ¼¿ ñ«»«½¡Ñ¡¿∩¼¿ Æπαí« Åá߬á½∩, αáßß¼áΓα¿óáεΓß∩ ß««ΓóÑΓßΓóÑ¡-
  177.          ¡«  ó ú½áóÑ 9 ¿ ú½áóÑ 10.  é ú½áóÑ 11 αáßß¼áΓα¿óáεΓß∩ ó«»α«ßδ φΣ-
  178.          ΣÑ¬Γ¿ó¡«ßΓ¿, ¼«í¿½∞¡«ßΓ¿ ¿ «Γ½áñ¬¿ »α«úαá¼¼. é ¬«¡µÑ ¬¡¿ú¿ ñáÑΓß∩
  179.          Γα¿ »α¿½«ªÑ¡¿∩.  é »α¿½«ªÑ¡¿¿ Ç »«¬áºá¡«, ¬á¬ »α«úαá¼¼δ ¡á ∩ºδ¬áσ
  180.          æ¿ ¿ üÑ⌐ß¿¬ ¼«ª¡« »αÑ«íαẫóáΓ∞ ó »α«úαá¼¼π ¡á ∩ºδ¬Ñ TURBO  -Åáß-
  181.          ¬á½∞. é »α¿½«ªÑ¡¿¿ ü «»¿ßá¡δ «Γ½¿τ¿∩ ∩ºδ¬á Æπαí« Åá߬á½∞ «Γ ßΓá¡-
  182.          ñáαΓ¡«ú« Åá߬á½∩.  é »α¿½«ªÑ¡¿¿ é αáßß¼áΓα¿óáÑΓß∩ »α¿¼Ñ¡Ñ¡¿Ñ í½«-
  183.          ¬«ó ó Æπαí« Åá߬á½Ñ.
  184.               Å«ß¬«½∞¬π Æπαí« Åá߬á½∞ óßÑúñá  «Γ½¿τá½ß∩  «ß«íÑ¡¡«  óδß«¬«⌐
  185.          ß¬«α«ßΓ∞ε ¬«¼»¿½∩µ¿¿ ¿ φΣΣÑ¬Γ¿ó¡«ßΓ∞ε »«½πτáѼ«ú« ¬«ñá Γαπñ¡« íδ-
  186.          ½« «ª¿ñáΓ∞, τΓ« Ñú« ¼«ª¡« íπñÑΓ ¬á¬¿¼-½¿í« ß»«ß«í«¼ ºá¼ÑΓ¡« π½πτ-
  187.          Φ¿Γ∞.  Äñ¡á¬« ß óδσ«ñ«¼ Æπαí« Åá߬á½∩ óÑαß¿¿ 4 º¡áτ¿Γѽ∞¡« αáßΦ¿-
  188.          α∩ÑΓß∩  «í½áßΓ∞  »α¿¼Ñ¡Ñ¡¿∩  Æπαí« Åá߬á½∩.  ÆÑ»Ñα∞  /¿  ó»ÑαóδÑ/
  189.          »α«úαá¼¼¿ßΓδ, ¿ß»«½∞ºπεΘ¿Ñ Æπαí« Åá߬á½∞, ¡Ñ «úαá¡¿τÑ¡δ 64è ó «Γ-
  190.          ¡«ΦÑ¡¿¿ αẼÑαá ¬«ñá »α«úαá¼¼δ. Å«ß¬«½∞¬π ó óÑαß¿¿ 4.0 «íÑß»ÑτÑ¡á
  191.          αáºñѽ∞¡á∩  ¬«¼»¿½∩µ¿∩ ¿ ßó∩º∞ í½«¬«ó αẼÑα »α«úαá¼¼ «úαá¡¿τ¿óá-
  192.          ÑΓß∩ αẼÑα«¼ ¿¼ÑεΘÑ⌐ß∩ »á¼∩Γ¿.  é αѺπ½∞ΓáΓÑ ¿ß»«½∞º«óá¡¿∩  φΓ¿σ
  193.  
  194.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                                = 6 =
  195.  
  196.          ñ«»«½¡¿Γѽ∞¡δσ ó«º¼«ª¡«ßΓÑ⌐ ¡Ñ¬«Γ«αδÑ »α«úαá¼¼δ, ¬«Γ«αδÑ αáºαáíá-
  197.          Γδó὿ß∞ ß »α¿¼Ñ¡Ñ¡¿Ñ¼ »Ñαóδσ óÑαß¿⌐  ß¿ßΓÑ¼δ  Æπαí« Åá߬á½∞,  ¡Ñ
  198.          íπñπΓ  ¬«¼»¿½¿α«óáΓ∞ß∩  ó óÑαß¿¿ 4.0.  æ««ΓóÑΓßΓóÑ¡¡«,  ¡Ñ¬«Γ«αδÑ
  199.          »α«úαá¼¼δ,  ¡á»¿ßá¡¡δÑ ñ½∩ óÑαß¿¿ 4,  ¡Ñ íπñπΓ ¬«¼»¿½¿α«óáΓ∞ß∩  ó
  200.          »Ñαóδσ óÑαß¿∩σ ß¿ßΓÑ¼δ Æπαí« Åá߬á½∞. êº-ºá ó᪡«ßΓ¿ ¿ß»«½∞º«óá¡-
  201.          ¡δσ ó Æπαí« Åá߬á½Ñ óÑαß¿¿ 4 πß«óÑαΦÑ¡ßΓó«óá¡¿⌐ »α¿ó«ñ¿¼δÑ ó φΓ«⌐
  202.          ¬¡¿úÑ »α¿¼Ñαδ ß««ΓóÑΓßΓóπεΓ óÑαß¿¿ 4.  Æá¬¿¼ «íαẫ¼, Ñß½¿ óδ ¿ß-
  203.          »«½∞ºπÑΓÑ »ÑαóδÑ óÑαß¿¿ ß¿ßΓÑ¼δ Æπαí« Åá߬á½∞,  Γ«  óá¼  »α¿ñÑΓß∩
  204.          óδ»«½¡¿Γ∞ ¡Ñí«½∞Φ¿Ñ ¿º¼Ñ¡Ñ¡¿∩ ó ¡Ñ¬«Γ«αδσ »α¿¼Ñαáσ.  /Äñ¡á¬« ¡á¿-
  205.          ½πτΦ¿¼ óδσ«ñ«¼ ¿º »«½«ªÑ¡¿∩ ∩ó½∩ÑΓß∩ »ÑαÑσ«ñ ¡á í«½ÑÑ ß«óÑαΦÑ¡¡πε
  206.          óÑαß¿ε 4 Æπαí« Åá߬á½∩/.
  207.               àß½¿ óδ σ«Γ¿ΓÑ »«½πτ¿Γ∞ ú¿í¬¿⌐ ñ¿ß¬ ñ½∩ ¼¿¬α«¬«¼»∞εΓÑαá Σ¿α-
  208.          ¼δ êüî /¿½¿ ß«ó¼ÑßΓ¿¼«ú« ß ¡¿¼/ ß« óßѼ¿ »α«úαἼἿ ¿ á½ú«α¿Γ¼á-
  209.          ¼¿,  ¬«Γ«αδÑ »αÑñßΓáó½Ñ¡δ ó φΓ«⌐ ¬¡¿úÑ, Γ« ºá»«½¡¿ΓÑ Σ«α¼π ºá¬áºá
  210.          ß  »«ñΓóÑαªñÑ¡¿Ñ¼ «»½áΓδ.  àß½¿ óδ Γ«α«»¿ΓÑß∞,  Γ« ¼«ªÑΓÑ ßñѽáΓ∞
  211.          ºá¬áº »« ΓѽÑΣ«¡π /217/ 586-4021.
  212.                                                          â. ÿ¿½ñΓ
  213.               Å«ªá½π⌐ßΓá, »α¿Φ½¿ΓÑ ¼¡Ñ ___ ¬«»¿⌐  /¬áªñá∩  »«  µÑ¡Ñ  24,95
  214.          ñ«½½áα«ó/  »α«úαá¼¼  ¿º  ¬¡¿ú¿ "ôß«óÑαΦÑ¡ßΓó«óá¡¡δ⌐ Æπαí« Åá߬á½∞
  215.          óÑαß¿¿ 4".  ê¡«ßΓαá¡¡δÑ ºá¬áºτ¿¬¿ ñ«½ª¡δ ñ«íáó¿Γ∞ 5  ñ«½½áα«ó  ºá
  216.          ñ«»«½¡¿Γѽ∞¡δÑ αáßσ«ñδ ¡á »ÑαÑó«º¬π ¿ «íαáí«Γ¬π.
  217.               ê¼∩ ºá¬áºτ¿¬á ________________________
  218.               ÇñαÑß ºá¬áºτ¿¬á ___________________________________
  219.               â«α«ñ ___________æΓαá¡á ______________»«τΓ«óδ⌐ ¿¡ñѬߠ______
  220.               ÆÑ½ÑΣ«¡ ____________
  221.               ÉẼÑα ñ¿ß¬ÑΓδ: 5 1/4 ñε⌐¼á ________ 3 1/2 ñε⌐¼á ___________
  222.               æ»«ß«í «»½áΓδ: τѬ ______ ó¿ºá ___________ îæ ___________
  223.               ì«¼Ñα ¬αÑñ¿Γ¡«⌐ ¬áαΓ«τ¬¿ ___________________
  224.               äáΓá «Γ»αá󬿠___________________
  225.               Å«ñ»¿ß∞ _________________________
  226.               Å«ßδ½áΓ∞ »« áñαÑßπ: âÑαíÑαΓ ÿ¿½ñΓ,
  227.                                   RR 1, í«¬ß 130,
  228.                                   ú.îáú«¼ÑΓ, ΦΓ.ê½½¿¡«¿ß 61853, æÿÇ.
  229.               ÅαÑñ«ßΓáó½Ñ¡¿Ñ ñ¿ß¬ÑΓ ß »α«úαἼἿ  ∩ó½∩ÑΓß∩  ¿ß¬½ετ¿Γѽ∞¡«
  230.          »αÑñ½«ªÑ¡¿Ñ¼  âÑαíÑαΓá ÿ¿½ñΓá.  êºñáΓѽ∞ßΓó« ¡Ñ ¡ÑßÑΓ «ΓóÑΓßΓóÑ¡-
  231.          ¡«ßΓ¿ ºá óδ»«½¡Ñ¡¿Ñ φΓ«ú« ºá¬áºá.
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                                = 7 =
  240.  
  241.                                                                                
  242.              âïÇéÇ 1. æÄÉÆêÉÄéèÇ ê ÅÄêæè.
  243.          -----------------------------------------------------------------
  244.               é ¿¡Σ«α¼áΓ¿¬Ñ,  »«-ó¿ñ¿¼«¼π, ¡ÑΓ í«½ÑÑ ú½πí«¬« ¿ßß½Ññ«óá¡¡δσ
  245.          ºáñáτ,  τѼ ºáñáτ¿ ß«αΓ¿α«ó¬¿ ¿ »«¿ß¬á. Å«ñ»α«úαá¼¼δ ß«αΓ¿α«ó¬¿ ¿
  246.          »«¿ß¬á  ¿ß»«½∞ºπεΓß∩ Σá¬Γ¿τÑ߬¿ ó« óßÑσ »α«úαá¼¼áσ,  αáí«ΓáεΘ¿σ ß
  247.          íáºá¼¿ ñá¡¡δσ, á ΓᬪѠ󠬫¼»¿½∩Γ«αáσ, ¿¡ΓÑα»αÑΓáΓ«αáσ ¿ ó «»Ñαá-
  248.          µ¿«¡¡δσ  ß¿ßΓѼáσ.  é φΓ«⌐ ú½áóÑ αáßß¼áΓα¿óáεΓß∩ «ß¡«ó¡δÑ ó«»α«ßδ
  249.          ß«αΓ¿α«ó¬¿ ¿ »«¿ß¬á. æ«αΓ¿α«ó¬á αáßß¼áΓα¿óáÑΓß∩ »Ñαó«⌐, »«ß¬«½∞¬π
  250.          «¡á «íδτ¡« ñѽáÑΓ »«¿ß¬ ñá¡¡δσ í«½ÑÑ »α«ßΓδ¼ ¿ íδßΓαδ¼.
  251.                                                æÄÉÆêÉÄéèÇ                      
  252.          -----------------------------------------------------------------
  253.               æ«αΓ¿α«ó¬á »αÑñßΓáó½∩ÑΓ ß«í«⌐ »α«µÑßß π»«α∩ñ«τÑ¡¿∩ ¼¡«ªÑßΓóá
  254.          »«ñ«í¡δσ ¿¡Σ«α¼áµ¿«¡¡δσ «íΩÑ¬Γ«ó ó »«α∩ñ¬Ñ ó«ºαáßΓá¡¿∩ ¿½¿ πíδóá-
  255.          ¡¿∩ ¿σ º¡áτÑ¡¿⌐. ìá»α¿¼Ñα, ß»¿ß«¬ i ¿º n φ½Ñ¼Ñ¡Γ«ó íπñÑΓ «Γß«αΓ¿-
  256.          α«óá¡ ó »«α∩ñ¬Ñ ó«ºαáßΓá¡¿∩ º¡áτÑ¡¿⌐ φ½Ñ¼Ñ¡Γ«ó, Ñß½¿
  257.                            i <= i  <= ...  <= i
  258.               ê¼ÑÑΓß∩ ñóá ó¿ñá á½ú«α¿Γ¼«ó ß«αΓ¿α«ó¬¿: ß«αΓ¿α«ó¬á ¼áßß¿ó«ó,
  259.          ¬«Γ«αδÑ ¼«úπΓ ¡áσ«ñ¿Γ∞ß∩ ¬á¬ ó «»Ñαᵿ«¡¡«⌐ »á¼∩Γ¿, Γᬠ¿ ¡á ñ¿ß-
  260.          ¬Ñ  ó  ó¿ñÑ Σá⌐½á »α∩¼«ú« ñ«ßΓπ»á,  ¿ ß«αΓ¿α«ó¬á »«ß½Ññ«óáΓѽ∞¡δσ
  261.          Σá⌐½«ó,  ¡áσ«ñ∩Θ¿σß∩ ¡á ñ¿ß¬áσ ¿½¿ ¼áú¡¿Γ¡δσ ½Ñ¡Γáσ. é φΓ«⌐ ú½áóÑ
  262.          αáßß¼áΓα¿óáÑΓß∩ ó «ß¡«ó¡«¼ ß«αΓ¿α«ó¬á »Ñαó«ú« ó¿ñá, »«ß¬«½∞¬π «¡á
  263.          »αÑñßΓáó½∩ÑΓ ¡á¿í«½∞Φ¿⌐ ¿¡ΓÑαÑß ñ½∩ »«½∞º«óáΓѽÑ⌐  ¼¿¬α«¬«¼»∞εΓÑ-
  264.          α«ó.  Äñ¡á¬« ó ¬«¡µÑ ú½áóδ ñѽáÑΓß∩ «íΘ¿⌐ ¼ÑΓ«ñ ß«αΓ¿α«ó¬¿ »«ß½Ñ-
  265.          ñ«óáΓѽ∞¡δσ Σá⌐½«ó.
  266.               Äß¡«ó¡«Ñ «Γ½¿τ¿Ñ ¼Ñªñπ ß«αΓ¿α«ó¬«⌐  ¼áßß¿ó«ó  ¿  ß«αΓ¿α«ó¬«⌐
  267.          »«ß½Ññ«óáΓѽ∞¡δσ  Σá⌐½«ó  ºá¬½ετáÑΓß∩  ó Γ«¼,  τΓ« ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ
  268.          ¼áßß¿óá ∩ó½∩ÑΓß∩ ñ«ßΓπ»¡δ¼ ó ½εí«Ñ óαѼ∩. ¥Γ« º¡áτ¿Γ, τΓ« ó ½εí«Ñ
  269.          óαѼ∩  ½εí«⌐  φ½Ñ¼Ñ¡Γ  ¼áßß¿óá  ¼«ªÑΓ ßαáó¡¿óáΓ∞ß∩ ß ½εíδ¼ ñαπú¿¼
  270.          φ½Ñ¼Ñ¡Γ«¼ ¼áßß¿óá ¿ ½εíδÑ ñóá φ½Ñ¼Ñ¡Γá ¼áßß¿óá ¼«úπΓ «í¼Ñ¡¿óáΓ∞ß∩
  271.          ¼ÑßΓἿ.  ìá»α«Γ¿ó, ó »«ß½Ññ«óáΓѽ∞¡«¼ Σá⌐½Ñ ó ¬áªñδ⌐ ¼«¼Ñ¡Γ óαÑ-
  272.          ¼Ñ¡¿ ñ«ßΓπ»Ñ¡ ½¿Φ∞ «ñ¿¡ φ½Ñ¼Ñ¡Γ. êº-ºá φΓ¿σ «Γ½¿τ¿⌐ ¼ÑΓ«ñδ ß«αΓ¿-
  273.          α«ó¬¿ ßπΘÑßΓóÑ¡¡« «Γ½¿τáεΓß∩ ñ½∩ φΓ¿σ ñóπσ ó¿ñ«ó ß«αΓ¿α«ó¬¿.
  274.               é «íΘѼ ß½πτáÑ »α¿ ß«αΓ¿α«ó¬Ñ ñá¡¡δσ Γ«½∞¬« τáßΓ∞ ¿¡Σ«α¼áµ¿¿
  275.          ¿ß»«½∞ºπÑΓß∩ ó ¬áτÑßΓóÑ ¬½ετá ß«αΓ¿α«ó¬¿,  ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó
  276.          ßαáó¡Ñ¡¿∩σ.  è«úñá óδ»«½¡∩ÑΓß∩ «í¼Ñ¡,  »ÑαÑñáÑΓß∩  óß∩  ßΓαπ¬Γπαá
  277.          ñá¡¡δσ.  ìá»α¿¼Ñα, ó ß»¿ß¬Ñ »«τΓ«óδσ «Γ»αáó½Ñ¡¿⌐ ó ¬áτÑßΓóÑ ¬½ετá
  278.          ß«αΓ¿α«ó¬¿ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ »«τΓ«óδ⌐ ¿¡ñѬß,  á  ó  «»Ñαᵿ∩σ
  279.          «í¼Ñ¡á  ¬  »«τΓ«ó«¼π ¿¡ñѬßπ ñ«íáó½∩εΓß∩ »«½¡«Ñ ¿¼∩ ¿ áñαÑß.  ä½∩
  280.          »α«ßΓ«Γδ ó »α¿¼Ñαáσ,  ¿½½εßΓα¿απεΘ¿σ ¼ÑΓ«ñδ ß«αΓ¿α«ó¬¿, ¿ß»«½∞ºπ-
  281.          εΓß∩  ß¿¼ó«½∞¡δÑ  ¼áßß¿óδ.  çáΓѼ íπñÑΓ »«¬áºá¡«,  ¬á¬ φΓ¿ ¼ÑΓ«ñδ
  282.          ¼«ª¡« áñá»Γ¿α«óáΓ∞ ¬ ½εíδ¼ ßΓαπ¬Γπαá¼ ñá¡¡δσ.
  283.                                 è½áßßδ á½ú«α¿Γ¼«ó ß«αΓ¿α«ó¬¿                   
  284.          -----------------------------------------------------------------
  285.               ê¼ÑÑΓß∩ Γα¿ ß»«ß«íá ß«αΓ¿α«ó¬¿ ¼áßß¿ó«ó:
  286.  
  287.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                                = 8 =
  288.  
  289.               - ß«αΓ¿α«ó¬á «í¼Ñ¡«¼;
  290.               - ß«αΓ¿α«ó¬á óδí«α«¼;
  291.               - ß«αΓ¿α«ó¬á óßΓáó¬«⌐.
  292.               ÅαÑñßΓáó∞ΓÑ, τΓ« »ÑαÑñ óἿ ½Ñª¿Γ ¬«½«ñá ¬áαΓ. ä½∩ ß«αΓ¿α«ó-
  293.          ¬¿ ¬áαΓ «í¼Ñ¡«¼ óδ ñ«½ª¡δ αẽ«ª¿Γ∞ ¬áαΓδ ¡á ßΓ«½Ñ ½¿µÑó«⌐ ßΓ«α«-
  294.          ¡«⌐ óóÑασ ¿ ºáΓѼ ¼Ñ¡∩Γ∞ ¼ÑßΓἿ ΓÑ ¬áαΓδ,  ¬«Γ«αδÑ αáß»«½«ªÑ¡δ ó
  295.          ¡Ñ»αáó¿½∞¡«¼ »«α∩ñ¬Ñ,  ñѽá∩ φΓ« ñ« ΓÑσ »«α,  »«¬á ¬«½«ñá ¬áαΓ ¡Ñ
  296.          ßΓá¡ÑΓ π»«α∩ñ«τÑ¡¡«⌐.
  297.               ä½∩ ß«αΓ¿α«ó¬¿  óδí«α«¼  óδ ñ«½ª¡δ αẽ«ª¿Γ∞ ¬áαΓδ ¡á ßΓ«½Ñ,
  298.          óδíαáΓ∞ ßá¼πε ¼½áñΦπε ¬áαΓπ ¿ óº∩Γ∞ ÑÑ  ó  ßó«ε  απ¬π.  çáΓѼ  óδ
  299.          ñ«½ª¡δ  ¿º  «ßΓáóΦ¿σß∩  ¡á ßΓ«½Ñ ¬áαΓ ó¡«ó∞ óδíαáΓ∞ ¡á¿¼Ñ¡∞Φπε »«
  300.          º¡áτÑ¡¿ε ¬áαΓπ ¿ »«¼ÑßΓ¿Γ∞ ÑÑ »«ºáñ¿ Γ«⌐ ¬áαΓδ,  ¬«Γ«αá∩ πªÑ ¿¼Ñ-
  301.          ÑΓß∩ π óáß ó απ¬Ñ.  ¥Γ«Γ »α«µÑßß óδ ñ«½ª¡δ »α«ñ«½ªáΓ∞ ñ« ΓÑσ »«α,
  302.          »«¬á óßÑ ¬áαΓδ ¡Ñ «¬áªπΓß∩ π óáß ó απ¬áσ. Å«ß¬«½∞¬π ¬áªñδ⌐ αẠóδ
  303.          óδí¿αáÑΓÑ ¡á¿¼Ñ¡∞Φπε »« º¡áτÑ¡¿ε ¬áαΓπ ¿º «ßΓáóΦ¿σß∩ ¡á ßΓ«½Ñ, »«
  304.          ºáóÑαΦÑ¡¿ε Γᬫú« »α«µÑßßá ¬áαΓδ π óáß ó απ¬Ñ íπñπΓ  «Γß«αΓ¿α«óá-
  305.          ¡δ.
  306.               ä½∩ ß«αΓ¿α«ó¬¿ óßΓáó¬«⌐ óδ ñ«½ª¡δ ñÑαªáΓ∞ ¬áαΓδ ó ßó«Ñ⌐  απ-
  307.          ¬Ñ,  »««τÑαÑñ¡«  ß¡¿¼á∩ ¬áαΓπ ß ¬«½«ñδ.  èáªñá∩ óº∩Γá∩ óἿ ¬áαΓá
  308.          »«¼ÑΘáÑΓß∩ ó ¡«óπε ¬«½«ñπ ¡á ßΓ«½Ñ,  »α¿τѼ «¡á ßΓáó¿Γß∩ ¡á ß««Γ-
  309.          óÑΓßΓóπεΘÑÑ ¼ÑßΓ«. è«½«ñá íπñÑΓ «Γß«αΓ¿α«óá¡á, ¬«úñá π óáß ó απ¬Ñ
  310.          ¡Ñ «¬áªÑΓß∩ ¡¿ «ñ¡«⌐ ¬áαΓδ.
  311.                                 ÄµÑ¡¬á á½ú«α¿Γ¼«ó ß«αΓ¿α«ó¬¿                   
  312.          -----------------------------------------------------------------
  313.  
  314.               ä½∩ ¬áªñ«ú« ¼ÑΓ«ñá ß«αΓ¿α«ó¬¿ ¿¼ÑÑΓß∩ ¼¡«ú« á½ú«α¿Γ¼«ó. èáª-
  315.          ñδ⌐ á½ú«α¿Γ¼ ¿¼ÑÑΓ ßó«¿ ñ«ßΓ«¿¡ßΓóá,  ¡« ó µÑ½«¼ «µÑ¡¬á á½ú«α¿Γ¼á
  316.          ß«αΓ¿α«ó¬¿ ºáó¿ß¿Γ «Γ «ΓóÑΓ«ó,  ¬«Γ«αδÑ íπñπΓ »«½πτÑ¡δ ¡á ß½Ññπε-
  317.          Θ¿Ñ ó«»α«ßδ:
  318.               - ß ¬á¬«⌐ ßαÑñ¡Ñ⌐ ß¬«α«ßΓ∞ε φëàá½ú«α¿Γ¼ ß«αΓ¿απÑΓ ¿¡Σ«α¼á-
  319.          µ¿ε?;
  320.               - ¬á¬«óá ß¬«α«ßΓ∞ ñ½∩ ½πτΦÑú« ß½πτá∩ ¿ ñ½∩ σπñΦÑú« ß½πτßá∩?;
  321.               - »«óÑñÑ¡¿Ñ á½ú«α¿Γ¼á ∩ó½∩ÑΓß∩ ÑßΓÑßΓóÑ¡¡δ¼ ¿½¿ ∩ó½∩ÑΓß∩ ¡Ñ-
  322.          ÑßΓÑßΓóÑ¡¡δ¼?;
  323.               - óδ»«½¡∩ÑΓß∩ ½¿ »ÑαÑßΓá¡«ó¬á φ½Ñ¼Ñ¡Γ«ó ñ½∩ «ñ¿¡á¬«óδσ  ¬½ε-
  324.          τÑ⌐?
  325.               ä½∩ ¬«¡¬αÑΓ¡«ú« á½ú«α¿Γ¼á í«½∞Φ«Ñ  º¡áτÑ¡¿Ñ  ¿¼ÑÑΓ  ß¬«α«ßΓ∞
  326.          ß«αΓ¿α«ó¬¿.  æ¬«α«ßΓ∞,  ß  ¬«Γ«α«⌐  ¼áß߿󠼫ªÑΓ íδΓ∞ π»«α∩ñ«τÑ¡,
  327.          »α∩¼« ºáó¿ß¿Γ «Γ τ¿ß½á ßαáó¡Ñ¡¿⌐ ¿ τ¿ß½á ¡Ñ«íσ«ñ¿¼δσ «»Ñαᵿ⌐ «í-
  328.          ¼Ñ¡á,  »α¿τѼ «»Ñαᵿ¿ «í¼Ñ¡á ºá¡¿¼áεΓ í«½∞ΦÑÑ óαѼ∩. ì¿ªÑ ó φΓ«⌐
  329.          ú½áóÑ íπñÑΓ »«¬áºá¡«,  τΓ« ñ½∩ ¡Ñ¬«Γ«αδσ á½ú«α¿Γ¼«ó óαѼ∩  ß«αΓ¿-
  330.          α«ó¬¿  ºáó¿ß¿Γ  φ¬ß»«¡Ñ¡µ¿á½∞¡« «Γ τ¿ß½á φ½Ñ¼Ñ¡Γ«ó,  á ñ½∩ ñαπú¿σ
  331.          á½ú«α¿Γ¼«ó φΓ« óαѼ∩ ¡áσ«ñ¿Γß∩ ó ½«úáα¿Σ¼¿τÑ߬«⌐  ºáó¿ß¿¼«ßΓ¿  «Γ
  332.          τ¿ß½á φ½Ñ¼Ñ¡Γ«ó ß«αΓ¿α«ó¬¿.
  333.  
  334.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                                = 9 =
  335.  
  336.               éαѼ∩ αáí«Γδ á½ú«α¿Γ¼á ñ½∩ ½πτΦÑú« ¿ σπñΦÑú«  ß½πτáÑó  ó᪡«
  337.          πτ¿ΓδóáΓ∞,  ¬«úñá «ª¿ñáÑΓß∩ ¿σ τáßΓ«Ñ »«∩ó½Ñ¡¿Ñ. ùáßΓ« ß«αΓ¿α«ó¬á
  338.          ¿¼ÑÑΓ σ«α«Φπε ßαÑñ¡εε ß¬«α«ßΓ∞, ¡« «τÑ¡∞ »½«σπε ß¬«α«ßΓ∞ ñ½∩ σπñ-
  339.          ΦÑú« ß½πτá∩, ¿ ¡á«í«α«Γ.
  340.               æτ¿ΓáÑΓß∩ »«óÑñÑ¡¿Ñ á½ú«α¿Γ¼á ß«αΓ¿α«ó¬¿  ÑßΓÑßΓóÑ¡¡δ¼, Ñß½¿
  341.          óαѼ∩  ß«αΓ¿α«ó¬¿  ¡á¿¼Ñ¡∞ΦÑÑ »α¿ π»«α∩ñ«τÑ¡¡«¼ ß»¿ß¬Ñ φ½Ñ¼Ñ¡Γ«ó,
  342.          óαѼ∩ ß«αΓ¿α«ó¬¿ πóѽ¿τ¿óáÑΓß∩  »α¿  ¼Ñ¡ÑÑ  π»«α∩ñ«τÑ¡¡«¼  ß»¿ß¬Ñ
  343.          φ½Ñ¼Ñ¡Γ«ó  ¿ óαѼ∩ ß«αΓ¿α«ó¬¿ ßΓá¡«ó¿Γß∩ ¡á¿σπñΦ¿¼,  ¬«úñá ß»¿ß«¬
  344.          φ½Ñ¼Ñ¡Γ«ó π»«α∩ñ«τÑ¡ ó «íαáΓ¡«¼ »«α∩ñ¬Ñ. éαѼ∩ ß«αΓ¿α«ó¬¿ ºáó¿ß¿Γ
  345.          «Γ τ¿ß½á «»Ñαᵿ⌐ ßαáó¡Ñ¡¿∩ ¿ «»Ñαᵿ⌐ «í¼Ñ¡á.
  346.               ä½∩ Γ«ú«,  τΓ«íδ »«¡∩Γ∞ ó᪡«ßΓ∞ »ÑαÑúαπ»»¿α«ó¬¿ φ½Ñ¼Ñ¡Γ«ó ß
  347.          «ñ¿¡á¬«ó묨 ¬½ετἿ ß«αΓ¿α«ó¬¿,  »αÑñßΓáó¿¼ íáºπ ñá¡¡δσ,  ¬«Γ«αá∩
  348.          π»«α∩ñ«τѡᠻ« «ß¡«ó¡«¼π ¬½ετπ ¿ ñ«»«½¡¿Γѽ∞¡«¼π  ¬½ετπ.  /ìá»α¿-
  349.          ¼Ñα,  ß»¿ß«¬  »«τΓ«óδσ «Γ»αáó½Ñ¡¿⌐ ß »«τΓ«óδ¼ ¿¡ñѬ߫¼ ó ¬áτÑßΓóÑ
  350.          «ß¡«ó¡«ú« ¬½ετá ¿ ΣἿ½¿Ñ⌐ ó  ¬áτÑßΓóÑ  ñ«»«½¡¿Γѽ∞¡«ú«  ¬½ετá  ó
  351.          αἬáσ «ñ¡«ú« »«τΓ«ó«ú« ¿¡ñѬßá/. è«úñá ¡«óδ⌐ áñαÑß ñ«íáó½∩ÑΓß∩ ó
  352.          ß»¿ß«¬ ¿ ß»¿ß«¬ ó¡«ó∞ ß«αΓ¿απÑΓß∩,  óá¼ ¡Ñ ΓαÑíπÑΓß∩ »ÑαÑßΓá¡«ó¬á
  353.          ñ«»«½¡¿Γѽ∞¡δ󠬽ετÑ⌐. ä½∩ «íÑß»ÑτÑ¡¿∩ φΓ«ú« ß«αΓ¿α«ó¬á ¡Ñ ñ«½ª¡á
  354.          óδ»«½¡∩Γ∞ «»Ñαᵿ¿ «í¼Ñ¡á ñ½∩ «ß¡«ó¡δ󠬽ετÑ⌐ ß «ñ¿¡á¬«ó묨  º¡á-
  355.          τÑ¡¿∩¼¿.
  356.               é ß½ÑñπεΘ¿σ αáºñѽáσ »α¿ó«ñ∩Γß∩ á½ú«α¿Γ¼δ ß«αΓ¿α«ó¬¿ ¬áªñ«ú«
  357.          ¬½áßßá ¿ á¡á½¿º¿απÑΓß∩ ¿σ φΣΣÑ¬Γ¿ó¡«ßΓ∞.  èáªñá∩ »α«úαá¼¼á ß«αΓ¿-
  358.          α«ó¬¿ ¿ß»«½∞ºπÑΓ ñóá Γ¿»á ñá¡¡δσ, «»αÑñѽѡ¡δσ »«½∞º«óáΓѽѼ, ¬«-
  359.          Γ«αδÑ «»αÑñѽ∩εΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
  360.               type
  361.                 DataItem = char;
  362.                 DataArray = array [1..80] of DataItem;
  363.               æ½Ññ«óáΓѽ∞¡«, ñ½∩  ¿º¼Ñ¡Ñ¡¿∩ ¿ß»«½∞ºπѼδσ ó ß«αΓ¿α«ó¬áσ Γ¿-
  364.          »«ó ñá¡¡δσ ΓαÑíπÑΓß∩ ¿º¼Ñ¡¿Γ∞ Γ«½∞¬« φΓ¿ ñóá  «»αÑñѽѡ¿∩  Γ¿»«ó.
  365.          ÉẼÑα¡«ßΓ∞ ¼áßß¿óá óδíαá¡á »α«¿ºó«½∞¡« ¿ óδ ¼«ªÑΓÑ »α¿ ¡Ñ«íσ«ñ¿-
  366.          ¼«ßΓ¿ ¿σ ¿º¼Ñ¡¿Γ∞.
  367.                               æ«αΓ¿α«ó¬á »πºπα∞¬«óδ¼ ¼ÑΓ«ñ«¼.                  
  368.          -----------------------------------------------------------------
  369.  
  370.               ìá¿í«½ÑÑ ¿ºóÑßΓ¡«⌐ (¿ ¡á¿í«½ÑÑ "íÑßß½áó¡«⌐") ∩ó½∩ÑΓß∩ ß«αΓ¿-
  371.          α«ó¬á »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼. àÑ »«»π½∩α¡«ßΓ∞ «íΩ∩ß¡∩ÑΓß∩ ºá»«¼¿¡áε-
  372.          Θ¿¼ß∩ ¡áºó᡿Ѽ ¿ »α«ßëë⌐ á½ú«α¿Γ¼á. Äñ¡á¬«, φΓá ß«αΓ¿α«ó¬á ∩ó-
  373.          ½∩ÑΓß∩  «ñ¡«⌐  ¿º  ßá¼δσ σπñΦ¿σ ßαÑñ¿ óßÑ󠬫úñá-½¿í« »α¿ñπ¼á¡¡δσ
  374.          ß«αΓ¿α«ó«¬.
  375.               æ«αΓ¿α«ó¬á »πºδα∞¬«óδ¼  ¼ÑΓ«ñ«¼  ¿ß»«½∞ºπÑΓ  ¼ÑΓ«ñ  «í¼Ñ¡¡«⌐
  376.          ß«αΓ¿α«ó¬¿. Ä¡á «ß¡«óá¡á ¡á óδ»«½¡Ñ¡¿¿ ó µ¿¬½Ñ «»Ñαᵿ⌐ ßαáó¡Ñ¡¿∩
  377.          ¿  »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ «í¼Ñ¡á ß«ßÑñ¡¿σ φ½Ñ¼Ñ¡Γ«ó.  àÑ ¡áºóá¡¿Ñ »α«-
  378.          ¿ßσ«ñ¿Γ ¿º-ºá »«ñ«í¿∩ »α«µÑßßπ ñó¿ªÑ¡¿∩ »πºδα∞¬«ó ó αѺÑαóπáαÑ  ß
  379.          ó«ñ«⌐, ¬«úñá ¬áªñδ⌐ »πºδαѬ ¡áσ«ñ¿Γ ßó«⌐ ß«íßΓóÑ¡¡δ⌐ πα«óÑ¡∞. ì¿-
  380.          ªÑ »«¬áºá¡á ßá¼á∩ »α«ßΓá∩ Σ«α¼á »α«úαá¼¼δ ß«αΓ¿α«ó¬¿ ¼ÑΓ«ñ«¼  »π-
  381.          ºδα∞¬á:
  382.                { ß«αΓ¿α«ó¬á »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼}
  383.  
  384.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 10 =
  385.  
  386.                 procedure Bubble(var item: DataArray; count:integer);
  387.                 var
  388.                   i,j: integer;
  389.                   x: DataItem;
  390.                 begin
  391.                   for i := 2 to count do
  392.                   begin
  393.                     for j := count downto i do
  394.                       if item[j-1]>item[j] then
  395.                       begin
  396.                         x := item[j-1];
  397.                         item[j-1] := item[j];
  398.                         item[j] := x;
  399.                       end;
  400.                    end;
  401.                 end; {¬«¡Ñµ ß«αΓ¿α«ó¬¿ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼}
  402.  
  403.               é φΓ«¼ ß½πτáÑ  ñá¡¡«Ñ  "item"  ∩ó½∩ÑΓß∩  ¼áß߿󫼠 φ½Ñ¼Ñ¡Γ«ó
  404.          "DataItem",  ¬«Γ«αδ⌐ ß«αΓ¿απÑΓß∩, á ñá¡¡«Ñ "count" ß«ñÑαª¿Γ τ¿ß½«
  405.          φ½Ñ¼Ñ¡Γ«ó ó ¼áßß¿óÑ.
  406.               æ«αΓ¿α«ó¬á »πºδα∞¬«óδ¼  ¼ÑΓ«ñ«¼  ¿¼ÑÑΓ ñóá µ¿¬½á.  Å«ß¬«½∞¬π
  407.          τ¿ß½« φ½Ñ¼Ñ¡Γ«ó ¼áßß¿óá ºáñáÑΓß∩ »ÑαѼѡ¡«⌐ "count", ó¡ÑΦ¡¿⌐ µ¿¬½
  408.          óδºδóáÑΓ »α«ß¼«Γα ¼áßß¿óá count - 1 αáº.  ¥Γ« «íÑß»Ñτ¿óáÑΓ ¡áσ«ª-
  409.          ñÑ¡¿Ñ ¬áªñ«ú« φ½Ñ¼Ñ¡Γá ó ßó«Ñ⌐ »«º¿µ¿⌐ »«ß½Ñ ºáóÑαΦÑ¡¿∩  »α«µÑñπ-
  410.          αδ. é¡πΓαÑ¡¡¿⌐ µ¿¬½ »αÑñ¡áº¡áτÑ¡ ñ½∩ Σá¬Γ¿τÑ߬«ú« óδ»«½¡Ñ¡¿∩ «»Ñ-
  411.          αᵿ⌐ ßαáó¡Ñ¡¿∩ ¿ «í¼Ñ¡á.
  412.               ¥Γá óÑαß¿∩  ß«αΓ¿α«ó¬¿ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼ ¼«ªÑΓ ß«αΓ¿α«óáΓ∞
  413.          ß¿¼ó«½∞¡δ⌐ ¼áßß¿ó ó »«α∩ñ¬Ñ ó«ºαáßΓá¡¿∩ º¡áτÑ¡¿⌐ φ½Ñ¼Ñ¡Γ«ó.  ìá»-
  414.          α¿¼Ñα,  ß½ÑñπεΘá∩  ¬«α«Γ¬á∩  »α«úαá¼¼á ß«αΓ¿απÑΓ ßΓ᫬π,  ¬«Γ«αá∩
  415.          ßτ¿ΓδóáÑΓß∩ ß ñ¿ß¬«ó«ú« Σá⌐½á "test.dat".  ¥ΓᠪѠ»α«úαἼᠼ«ªÑΓ
  416.          ¿ß»«½∞º«óáΓ∞ß∩ ß ñαπú¿¼¿ »«ñ»α«úαἼἿ ß«αΓ¿α«ó¬¿,  ¬«Γ«αδÑ »α¿-
  417.          ó«ñ∩Γß∩ ó φΓ«⌐ ú½áóÑ.
  418.               program SortDriver;
  419.  
  420.              {φΓá  »α«úαἼᠠíπñÑΓ  ßτ¿ΓδóáΓ∞ 80 ¿½¿ ¼Ñ¡∞ΦÑ ß¿¼ó«½«ó ß
  421.               ñ¿ß¬«ó«ú« Σá⌐½á "test.dat",  «Γß«αΓ¿απÑΓ ¿σ ¿ óδñáßΓ
  422.               pѺπ½∞ΓáΓ ¡á φ¬αá¡ ñ¿ß»½Ñ∩ }
  423.  
  424.               type
  425.                 DataItem = char;
  426.                 DataArray = array [1..80] of char;
  427.               var
  428.                 test: DataArray;
  429.                 t, t2: integer;
  430.                 testfile: file of char;
  431.  
  432.             { ß«αΓ¿α«ó¬á »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼}
  433.               procedure Bubble(var item: DataArray; count:integer);
  434.  
  435.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 11 =
  436.  
  437.               var
  438.                 i,j: integer;
  439.                 x: DataItem;
  440.               begin
  441.                 for i := 2 to count do
  442.                 begin
  443.                   for j := count downto i do
  444.                     if item[j-1]>item[j] then
  445.                     begin
  446.                       x := item[j-1];
  447.                       item[j-1] := item[j];
  448.                       item[j] := x;
  449.                     end;
  450.                 end;
  451.               end;
  452.  
  453.               begin
  454.                 Assign(testfile, 'test.dat');
  455.                 Reset(testfile);
  456.                 t := 1;
  457.  
  458.               { ßτ¿Γδóá¡¿Ñ ß¿¼ó«½«ó,¬«Γ«αδÑ íπñπΓ ß«αΓ¿α«óáΓ∞ß∩.}
  459.  
  460.                while not Eof(testfile) do begin
  461.                   read(testfile, test[t]);
  462.                   t := t+1;
  463.                 end;
  464.               t := t-2; {߬«ααÑ¬Γ¿α«óáΓ∞ τ¿ß½« ßτ¿Γá¡¡δσ φ½Ñ¼Ñ¡Γ«ó }
  465.  
  466.               Bubble(test, t); { ß«αΓ¿α«óáΓ∞ ¼áßß¿ó }
  467.  
  468.               { óδñáΓ∞ «Γß«αΓ¿α«óá¡¡δ⌐ ¼áßß¿ó ß¿¼ó«½«ó }
  469.               for t2 := 1 to t do write(test[t2]);
  470.               WriteLn;
  471.             end.
  472.  
  473.  
  474.               ä½∩ ¿½½εßΓαᵿ¿ αáí«Γδ ß«αΓ¿α«ó¬¿ »πºδα∞¬«óδ¼  ¼ÑΓ«ñ«¼  ¡¿ªÑ
  475.          ñá¡δ αѺπ½∞ΓáΓδ ¬áªñ«ú« φΓá»á ß«αΓ¿α«ó¬¿ ¼áßß¿óá "dcab":
  476.  
  477.               - ¿ßσ«ñ¡«Ñ »«½«ªÑ¡¿Ñ: d c a b;
  478.               - »Ñαóδ⌐ »α«σ«ñ:      a d c b;
  479.               - óΓ«α«⌐ »α«σ«ñ:      a b d c;
  480.               - ΓαÑΓ¿⌐ »α«σ«ñ:      a b c d.
  481.  
  482.               Åα¿ á¡á½¿ºÑ óß∩¬«⌐ ß«αΓ¿α«ó¬¿  «»αÑñѽ∩ÑΓß∩  τ¿ß½«  «»Ñαᵿ⌐
  483.          ßαáó¡Ñ¡¿∩ ¿ «í¼Ñ¡á, óδ»«½¡∩Ѽδσ ó ½πτΦѼ, ßαÑñ¡Ñ¼ ¿ σπñΦ¿σ ß½πτá-
  484.          ∩σ. ä½∩ ß«αΓ¿α«ó¬¿ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼ τ¿ß½«  ßαáó¡Ñ¡¿⌐  «ßΓáÑΓß∩
  485.  
  486.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 12 =
  487.  
  488.          ¡Ñ¿º¼Ñ¡¡δ¼, »«ß¬«½∞¬π ñóá µ¿¬½á óßÑúñá óδ»«½¡∩εΓß∩ ºáñá¡¡«Ñ τ¿ß½«
  489.          αẠó¡Ñ ºáó¿ß¿¼«ßΓ¿ «Γ π»«α∩ñ«τÑ¡¡«ßΓ¿ ¿ßσ«ñ¡«ú« ¼áßß¿óá. ¥Γ« «º-
  490.          ¡áτáÑΓ, τΓ« »α¿ ß«αΓ¿α«ó¬Ñ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼ óßÑúñá óδ»«½¡∩ÑΓß∩
  491.          1/ 2 (n**2-n) «»Ñαᵿ⌐ ßαáó¡Ñ¡¿∩,  úñÑ "n" ºáñáÑΓ τ¿ß½« ß«αΓ¿απÑ-
  492.          ¼δσ  φ½Ñ¼Ñ¡Γ«ó  ¼áßß¿óá.  ¥Γá Σ«α¼π½á óδó«ñ¿Γß∩ ¡á Γ«¼ «ß¡«óá¡¿¿,
  493.          τΓ« ó¡ÑΦ¡¿⌐ µ¿¬½ ß«αΓ¿α«ó¬¿ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼  óδ»«½¡∩ÑΓß∩  n-1
  494.          αáº,  á ó¡πΓαÑ¡¡¿⌐ µ¿¬½ óδ»«½¡∩ÑΓß∩ n/2 αáº. êσ »ÑαѼ¡«ªÑ¡¿Ñ ñáßΓ
  495.          π¬áºá¡¡πε Σ«α¼π½π.
  496.               ù¿ß½« «»Ñαᵿ⌐  «í¼Ñ¡á  íπñÑΓ ¡π½Ñóδ¼ ñ½∩ ¡á¿½πτΦÑú« ß½πτá∩,
  497.          ¬«úñá ¿ßσ«ñ¡δ⌐ ¼áßß¿ó πªÑ ∩ó½∩ÑΓß∩ «Γß«αΓ¿α«óá¡¡δ¼.  ù¿ß½« «»Ñαá-
  498.          µ¿⌐  «í¼Ñ¡á  ñ½∩ ßαÑñ¡Ñú« ß½πτá∩ íπñÑΓ αáó¡« 3/4 (n**2-n),  á ñ½∩
  499.          ¡á¿σπñΦÑú« ß½πτá∩ íπñÑΓ αáó¡« 3/2 (n**2-n) αáº. éδó«ñ φΓ¿σ Σ«α¼π½
  500.          óδσ«ñ¿Γ ºá »αÑñѽδ φΓ«⌐ ¬¡¿ú¿.  î«ª¡« ºá¼ÑΓ¿Γ∞, τΓ« »« ¼ÑαÑ πσπñ-
  501.          ΦÑ¡¿∩ π»«α∩ñ«τÑ¡¡«ßΓ¿  ¿ßσ«ñ¡«ú«  ¼áßß¿óá  τ¿ß½«  ¡Ñπ»«α∩ñ«τÑ¡¡δσ
  502.          φ½Ñ¼Ñ¡Γ«ó  »α¿í½¿ªáÑΓß∩ ¬ τ¿ß½π ßαáó¡Ñ¡¿⌐ (¬áªñδ⌐ ¡Ñπ»«α∩ñ«τÑ¡¡δ⌐
  503.          φ½Ñ¼Ñ¡Γ ΓαÑíπÑΓ Γα¿ «»Ñαᵿ¿ «í¼Ñ¡á).  æ«αΓ¿α«ó¬π »πºδα∞¬«óδ¼ ¼Ñ-
  504.          Γ«ñ«¼  ¡áºδóáεΓ ¬óáñαáΓ¿τ¡δ¼ á½ú«α¿Γ¼«¼,  »«ß¬«½∞¬π óαѼ∩ Ñú« óδ-
  505.          »«½¡Ñ¡¿∩ »α«»«αµ¿«¡á½∞¡« ¬óáñαáΓπ  τ¿ß½á  ß«αΓ¿απѼδσ  φ½Ñ¼Ñ¡Γ«ó.
  506.          æ«αΓ¿α«ó¬á í«½∞Φ«ú« τ¿ß½á φ½Ñ¼Ñ¡Γ«ó »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼ »«ΓαÑíπÑΓ
  507.          «τÑ¡∞ ¼¡«ú« óαѼѡ¿, Γ.¬. óαѼ∩ óδ»«½¡Ñ¡¿∩ ß«αΓ¿α«ó¬¿ ¡áσ«ñ¿Γß∩ ó
  508.          ¬óáñαáΓ¿τ¡«⌐ ºáó¿ß¿¼«ßΓ¿ «Γ τ¿ß½á φ½Ñ¼Ñ¡Γ«ó ¼áßß¿óá.
  509.               ìá»α¿¼Ñα, Ñß½¿ ¡Ñ πτ¿ΓδóáΓ∞ óαѼ∩ «»Ñαᵿ⌐ «í¼Ñ¡á, óδ»«½¡∩Ñ-
  510.          ¼δσ ñ½∩ »ÑαÑßΓᡫ󬿠¡Ñπ»«α∩ñ«τÑ¡¡δσ φ½Ñ¼Ñ¡Γ«ó,  Γ« Γ«úñá »α¿ óδ-
  511.          »«½¡Ñ¡¿¿ «ñ¡«⌐ «»Ñαᵿ¿ ßαáó¡Ñ¡¿∩ ó ΓÑτÑ¡¿Ñ 0,001  ßѬπ¡ñ  ß«αΓ¿-
  512.          α«ó¬á   ñÑß∩Γ¿  φ½Ñ¼Ñ¡Γ«ó  ºá⌐¼ÑΓ  0,05  ßѬπ¡ñ,  ß«αΓ¿α«ó¬á  ßΓá
  513.          φ½Ñ¼Ñ¡Γ«ó ºá⌐¼ÑΓ »∩Γ∞ ßѬπ¡ñ,  á ß«αΓ¿α«ó¬á 1000 φ½Ñ¼Ñ¡Γ«ó ºá⌐¼ÑΓ
  514.          500 ßѬπ¡ñ.  æ«αΓ¿α«ó¬á 100 000 φ½Ñ¼Ñ¡Γ«ó (Γᬫ⌐ αẼÑα ¿¼ÑÑΓ ¡Ñ-
  515.          í«½∞Φ«⌐ ΓѽÑΣ«¡¡δ⌐ ß»αáó«τ¡¿¬) »«ΓαÑí«óá½á íδ 5000000  ßѬπ¡ñ ¿½¿
  516.          «¬«½« 1400 τáß«ó (Γ.Ñ. ñóá ¼Ñß∩µá ¡Ñ»αÑαδó¡«⌐ αáí«Γδ)!
  517.               æ«αΓ¿α«ó¬π »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼  ¼«ª¡«  ó  ¡Ñ¬«Γ«α«⌐  ßΓѻѡ¿
  518.          π½πτΦ¿Γ∞  ¿ ΓѼ ßá¼δ¼ ¡Ñ¼¡«ú« π½πτΦ¿Γ∞ ÑÑ óαѼѡ¡δÑ σáαá¬ΓÑα¿ßΓ¿-
  519.          ¬¿. î«ª¡«, ¡á»α¿¼Ñα, ºá¼ÑΓ¿Γ∞, τΓ« ß«αΓ¿α«ó¬á »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼
  520.          «í½áñáÑΓ  «ñ¡«⌐  «ß«íÑ¡¡«ßΓ∞ε:  αáß»«½«ªÑ¡¡δ⌐ ¡Ñ ¡á ßó«Ñ¼ ¼ÑßΓÑ ó
  521.          ¬«¡µÑ ¼áßß¿óá φ½Ñ¼Ñ¡Γ (¡á»α¿¼Ñα,  φ½Ñ¼Ñ¡Γ "á" ó  ¼áßß¿óÑ  "dcab")
  522.          ñ«ßΓ¿úáÑΓ ßó«Ñú« ¼ÑßΓᠺᠫñ¿¡ »α«σ«ñ, á φ½Ñ¼Ñ¡Γ, αáß»«½«ªÑ¡¡δ⌐ ó
  523.          ¡áτá½Ñ ¼áßß¿óá (¡á»α¿¼Ñα,  φ½Ñ¼Ñ¡Γ "d"), «τÑ¡∞ ¼Ññ½Ñ¡¡« ñ«ßΓ¿úáÑΓ
  524.          ßó«Ñú« ¼ÑßΓá.  ìÑ«í∩ºáΓѽ∞¡« óßÑ »α«ß¼«Γαδ ñѽáΓ∞ ó «ñ¡«¼ ¡á»αáó-
  525.          ½Ñ¡¿¿.  é¼ÑßΓ« φΓ«ú« óß∩¬¿⌐ »«ß½ÑñπεΘ¿⌐ »α«ß¼«Γα ¼«ª¡«  ñѽáΓ∞  ó
  526.          »α«Γ¿ó«»«½«ª¡«¼  ¡á»αáó½Ñ¡¿¿.  é  φΓ«¼ ß½πτáÑ ß¿½∞¡« πñá½Ñ¡¡δÑ «Γ
  527.          ßó«Ñú« ¼ÑßΓá φ½Ñ¼Ñ¡Γδ íπñπΓ íδßΓα« »ÑαѼÑΘáΓ∞ß∩ ó ß««ΓóÑΓßΓóπεΘÑÑ
  528.          ¼ÑßΓ«. ì¿ªÑ »«¬áºá¡á π½πτΦÑ¡¡á∩ óÑαß¿∩ ß«αΓ¿α«ó¬¿ »πºδα∞¬«óδ¼ ¼Ñ-
  529.          Γ«ñ«¼, »«½πτ¿óΦá∩ ¡áºóá¡¿Ñ  "τѽ¡«τ¡«⌐  ß«αΓ¿α«ó¬¿"  ¿º-ºá  ß««Γ-
  530.          óÑΓßΓóπεΘÑú« σáαá¬ΓÑαá ñó¿ªÑ¡¿⌐ »« ¼áßß¿óπ.
  531.               ò«Γ∩ φΓá ß«αΓ¿α«ó¬á ∩ó½∩ÑΓß∩ π½πτΦÑ¡¿Ñ¼ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼,
  532.          ÑÑ ¡Ñ½∞º∩ αѬ«¼Ñ¡ñ«óáΓ∞ ñ½∩ ¿ß»«½∞º«óá¡¿∩, »«ß¬«½∞¬π óαѼ∩ óδ»«½-
  533.          ¡Ñ¡¿∩ »«-»αѪ¡Ñ¼π ºáó¿ß¿Γ ¬óáñαáΓ¿τ¡« «Γ τ¿ß½á  φ½Ñ¼Ñ¡Γ«ó.  ù¿ß½«
  534.          ßαáó¡Ñ¡¿⌐ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩, á τ¿ß½« «í¼Ñ¡«ó π¼Ñ¡∞ΦáÑΓß∩ ½¿Φ∞ ¡á ¡Ñº-
  535.          ¡áτ¿Γѽ∞¡πε óѽ¿τ¿¡π.
  536.  
  537.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 13 =
  538.  
  539.  
  540.             { τѽ¡«τ¡á∩ ß«αΓ¿α«ó¬á ∩ó½∩ÑΓß∩ π½πτΦÑ¡¡«⌐ óÑαß¿Ñ⌐ ß«αΓ¿α«ó-
  541.                            ¬¿ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼ }
  542.                 procedure Shaker(var item: DataArray; count:integer);
  543.                 var
  544.                   j, k, l, r: integer;
  545.                   x: DataItem;
  546.                 begin
  547.                   l := 2; r := count; k := count;
  548.                   repeat
  549.                     for j := r downto l do
  550.                       if item[j-1] then
  551.                       begin    { «í¼Ñ¡ }
  552.                         x := item[j-1];
  553.                         item[j-1] := item[j];
  554.                         item[j] := x;
  555.                         k := j;
  556.                       end;
  557.  
  558.                     l := k+1;
  559.  
  560.                     for j := l to r do
  561.                       if item[j-1]>item[j] then
  562.                       begin   { «í¼Ñ¡ }
  563.                         x := item[j-1];
  564.                         item[j-1] := item[j];
  565.                         item[j] := x;
  566.                         k := j;
  567.                       end;
  568.  
  569.                     r := k-1;
  570.                   until l>r
  571.               end; { ¬«¡Ñµ τѽ¡«τ¡«⌐ ß«αΓ¿α«ó¬¿  }
  572.  
  573.          ÑÑ ¡Ñ½∞º∩ αѬ«¼Ñ¡ñ«óáΓ∞ ñ½∩ ¿ß»«½∞º«óá¡¿∩, »«ß¬«½∞¬π óαѼ∩ óδ»«½-
  574.          ¡Ñ¡¿∩  »«-»αѪ¡Ñ¼π ºáó¿ß¿Γ ¬óáñαáΓ¿τ¡« «Γ τ¿ß½á φ½Ñ¼Ñ¡Γ«ó.  ù¿ß½«
  575.          ßαáó¡Ñ¡¿⌐ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩, á τ¿ß½« «í¼Ñ¡«ó π¼Ñ¡∞ΦáÑΓß∩ ½¿Φ∞ ¡á ¡Ñº-
  576.          ¡áτ¿Γѽ∞¡πε óѽ¿τ¿¡π.
  577.                                      æ«αΓ¿α«ó¬á óδí«α«¼                        
  578.          -----------------------------------------------------------------
  579.  
  580.               Åα¿ ß«αΓ¿α«ó¬Ñ óδí«α«¼ óδí¿αáÑΓß∩ φ½Ñ¼Ñ¡Γ ß ¡á¿¼Ñ¡∞Φ¿¼  º¡á-
  581.          τÑ¡¿Ñ¼ ¿ ñѽáÑΓß∩ Ñú« «í¼Ñ¡ ß »Ñαóδ¼ φ½Ñ¼Ñ¡Γ«¼ ¼áßß¿óá. çáΓѼ ¡á-
  582.          σ«ñ¿Γß∩ φ½Ñ¼Ñ¡Γ ß ¡á¿¼Ñ¡∞Φ¿¼ º¡áτÑ¡¿Ñ¼ ¿º «ßΓáóΦ¿σß∩ n-1  φ½Ñ¼Ñ¡-
  583.          Γ«ó  ¿  ñѽáÑΓß∩  Ñú« «í¼Ñ¡ ß« óΓ«αδ¼ φ½Ñ¼Ñ¡Γ«¼ ¿ Γ.ñ.  ñ« «í¼Ñ¡á
  584.          ñóπσ »«ß½Ññ¡¿σ φ½Ñ¼Ñ¡Γ«ó.  ìá»α¿¼Ñα, Ñß½¿ ß«αΓ¿α«ó¬π óδí«α«¼ »α¿-
  585.          ¼Ñ¡¿Γ∞ ñ½∩ ¼áßß¿óá "bdac", Γ« íπñπΓ »«½πτÑ¡δ ß½ÑñπεΘ¿Ñ »α«σ«ñδ:
  586.  
  587.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 14 =
  588.  
  589.               - ¿ßσ«ñ¡«Ñ ß«ßΓ«∩¡¿Ñ: b d a c;
  590.               - »Ñαóδ⌐ »α«σ«ñ:      a d b c;
  591.               - óΓ«α«⌐ »α«σ«ñ:      a b b c;
  592.               - ΓαÑΓ¿⌐ »α«σ«ñ:      a b c d.
  593.               ì¿ªÑ »α¿ó«ñ¿Γß∩ »α«ßΓ«⌐  á½ú«α¿Γ¼  ß«αΓ¿α«ó¬¿  óδí«α«¼  /ß¼.
  594.          ß½ÑñπεΘπε ßΓαá¡¿µπ/.
  595.               è ß«ªá½Ñ¡¿ε  ¬á¬  ¿ ó ß«αΓ¿α«ó¬Ñ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼ ó¡ÑΦ¡¿⌐
  596.          µ¿¬½ óδ»«½¡∩ÑΓß∩ n-1 αáº,  á ó¡πΓαÑ¡¡¿⌐ µ¿¬½ óδ»«½¡∩ÑΓß∩ n/2 αáº.
  597.          ¥Γ« º¡áτ¿Γ,  τΓ« τ¿ß½« ßαáó¡Ñ¡¿⌐ ñ½∩ ß«αΓ¿α«ó¬¿ óδí«α«¼ αáó¡« 1/2
  598.          (n** 2-n) ¿ φΓá ß«αΓ¿α«ó¬á íπñÑΓ óδ»«½¡∩Γ∞ß∩ ß½¿Φ¬«¼ ¼Ññ½Ñ¡¡« ñ½∩
  599.          í«½∞Φ«ú« τ¿ß½á φ½Ñ¼Ñ¡Γ«ó.  ù¿ß½« «»Ñαᵿ⌐ «í¼Ñ¡á ó ¡á¿½πτΦѼ ß½π-
  600.          τáÑ αáó¡« 3 (n-1),  á ó σπñΦѼ ß½πτáÑ αáó¡« n**2/4+3(n-1). é ½πτ-
  601.          ΦѼ ß½πτáÑ /¬«úñá ¿ßσ«ñ¡δ⌐ ¼áßß¿ó πªÑ π»«α∩ñ«τÑ¡/ »«ΓαÑíπÑΓß∩ »«-
  602.          ¼Ñ¡∩Γ∞ ¼ÑßΓἿ Γ«½∞¬« n-1φ½Ñ¼Ñ¡Γ«ó,á ¬áªñá∩ «»Ñαᵿ∩ «í¼Ñ¡á  ΓαÑ-
  603.          íπÑΓ Γα¿ «»Ñαᵿ¿ »ÑαÑß佬¿.
  604.                 { ß«αΓ¿α«ó¬á óδí«α«¼ }
  605.                 procedure Selekt(var item: DataArray; count:integer);
  606.                 var
  607.                   i, j, k: integer;
  608.                   x: DataItem;
  609.                 begin
  610.                   for i := i to count-1 do
  611.                   begin
  612.                     k := i;
  613.                     x := item[i];
  614.                     for j := i+1 to count do { ¡á⌐Γ¿ φ½Ñ¼Ñ¡Γ ß ¡á¿¼Ñ¡∞Φ¿¼
  615.                               º¡áτÑ¡¿Ñ¼ }
  616.                     if item[j]<x then
  617.                     begin
  618.                         k := j;
  619.                         x := item[j];
  620.                       end;
  621.                     item[k] := item[i];  { «í¼Ñ¡ }
  622.                     item[i] := x;
  623.                   end;
  624.               end; { ¬«¡Ñµ ß«αΓ¿α«ó¬¿ óδí«α«¼  }
  625.               éδó«ñ τ¿ß½á «»Ñαᵿ⌐ «í¼Ñ¡á ñ½∩ ßαÑñ¡Ñú« ß½πτá∩  óδσ«ñ¿Γ  ºá
  626.          αἬ¿ φΓ«⌐ ¬¡¿ú¿. ¥Γ« τ¿ß½« αáó¡« n(ln+y), úñÑ "y" ∩ó½∩ÑΓß∩ ¬«¡ß-
  627.          Γá¡Γ«⌐ ¥⌐½Ñαá,  »α¿í½¿º¿Γѽ∞¡« αáó¡«⌐ 0,577216.  ¥Γ« º¡áτ¿Γ,  τΓ«
  628.          ¡Ñß¼«Γα∩ ¡á «ñ¿¡á¬«ó«Ñ τ¿ß½« «»Ñαᵿ⌐  ßαáó¡Ñ¡¿⌐  ñ½∩  ß«αΓ¿α«ó«¬
  629.          »πºδα∞¬«óδ¼  ¼ÑΓ«ñ«¼ ¿ ß«αΓ¿α«ó«¬ óδí«α«¼,  τ¿ß½« «»Ñαᵿ⌐ «í¼Ñ¡á
  630.          ñ½∩ ßαÑñ¡Ñú« ß½πτá∩ íπñÑΓ º¡áτ¿Γѽ∞¡« ¼Ñ¡∞Φ¿¼ ñ½∩ ß«αΓ¿α«ó¬¿  óδ-
  631.          í«α«¼.
  632.                                     æ«αΓ¿α«ó¬á óßΓáó¬«⌐                        
  633.          -----------------------------------------------------------------
  634.               æ«αΓ¿α«ó¬á óßΓáó¬«⌐ ∩ó½∩ÑΓß∩ »«ß½Ññ¡Ñ⌐ ¿º ¬½áßßá »α«ßΓδσ á½-
  635.  
  636.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 15 =
  637.  
  638.          ú«α¿Γ¼«ó ß«αΓ¿α«ó¬¿. Åα¿ ß«αΓ¿α«ó¬Ñ óßΓáó¬«⌐ ß¡áτá½á π»«α∩ñ«τ¿óá-
  639.          εΓß∩ ñóá φ½Ñ¼Ñ¡Γá ¼áßß¿óá.  çáΓѼ ñѽáÑΓß∩ óßΓáó¬á ΓαÑΓ∞Ñú«  φ½Ñ-
  640.          ¼Ñ¡Γá   ó  ß««ΓóÑΓßΓóπεΘÑÑ  ¼ÑßΓ«  »«  «Γ¡«ΦÑ¡¿ε  ¬  »Ñαóδ¼  ñóπ¼
  641.          φ½Ñ¼Ñ¡Γá¼. çáΓѼ ñѽáÑΓß∩ óßΓáó¬á τÑΓóÑαΓ«ú« φ½Ñ¼Ñ¡Γá ó ß»¿ß«¬ ¿º
  642.          ΓαÑσ  φ½Ñ¼Ñ¡Γ«ó.  ¥Γ«Γ  »α«µÑßß »«óΓ«α∩ÑΓß∩ ñ« ΓÑσ »«α,  »«¬á óßÑ
  643.          φ½Ñ¼Ñ¡Γδ ¡Ñ íπñπΓ π»«α∩ñ«τÑ¡δ.  ìá»α¿¼Ñα, ñ½∩ ¼áßß¿óá "dcab" ß«α-
  644.          Γ¿α«ó¬á óßΓáó¬«⌐ íπñÑΓ »α«σ«ñ¿Γ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
  645.               - ¿ßσ«ñ¡«Ñ ß«ßΓ«∩¡¿Ñ: d c a b;
  646.               - »Ñαóδ⌐ »α«σ«ñ:      c d a b;
  647.               - óΓ«α«⌐ »α«σ«ñ:      a c d b;
  648.               - ΓαÑΓ¿⌐ »α«σ«ñ:      a b c d.
  649.               ì¿ªÑ »α¿ó«ñ¿Γß∩ á½ú«α¿Γ¼ ß«αΓ¿α«ó¬¿ óßΓáó¬«⌐:
  650.  
  651.                 { ß«αΓ¿α«ó¬á óßΓáó¬«⌐ }
  652.                 procedure Inser(var item: DataArray; count:integer);
  653.                 var
  654.                   i, l: integer;
  655.                   x: DataItem;
  656.                 begin
  657.                   for i := 2 to count do
  658.                   begin
  659.                     x := item[i];
  660.                     j := i-1;
  661.                     while (x<item[j]) and (j>0) do
  662.                     begin
  663.                       item[j+1] := item[j];
  664.                       j := j-1;
  665.                     end;
  666.                     item[j+1] := x;
  667.  
  668.                   end;
  669.               end;  { ¬«¡Ñµ ß«αΓ¿α«ó¬¿ óßΓáó¬«⌐ }
  670.  
  671.               é «Γ½¿τ¿Ñ «Γ ß«αΓ¿α«ó¬¿ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼ ¿ ß«αΓ¿α«ó¬¿ óδ-
  672.          í«α«¼ τ¿ß½« «»Ñαᵿ⌐ ßαáó¡Ñ¡¿∩ ñ½∩ ß«αΓ¿α«ó¬¿ óßΓáó¬«⌐ ºáó¿ß¿Γ «Γ
  673.          ¿ßσ«ñ¡«⌐ π»«α∩ñ«τÑ¡¡«ßΓ¿ ¼áßß¿óá φ½Ñ¼Ñ¡Γ«ó.  àß½¿ ¿ßσ«ñ¡δ⌐ ¼áßß¿ó
  674.          πªÑ  π»«α∩ñ«τÑ¡,  Γ«  τ¿ß½«  «»Ñαᵿ⌐  ßαáó¡Ñ¡¿∩ αáó¡« n-1.  àß½¿
  675.          ¼áßß¿ó π»«α∩ñ«τÑ¡ ó «íαáΓ¡«¼ »«α∩ñ¬Ñ, Γ« τ¿ß½« «»Ñαᵿ⌐ ßαáó¡Ñ¡¿∩
  676.          αáó¡« 1/2 (n**2 +n)-1,ñáóá∩ ó ßαÑñ¡Ñ¼ º¡áτÑ¡¿Ñ 1/4 (n**2+n-2).
  677.               ù¿ß½« «»Ñαᵿ⌐ «í¼Ñ¡á íπñÑΓ ß½ÑñπεΘ¿¼:
  678.               - ñ½∩ ½πτΦÑú« ß½πτá∩: 2 (n-1);
  679.               - ó ßαÑñ¡Ñ¼: 1/4 (n**2+9n-10);
  680.               - ñ½∩ σπñΦÑú« ß½πτá∩: 1/2 (n**2+3n-4).
  681.               Æá¬¿¼ «íαẫ¼,  τ¿ß½« «»Ñαᵿ⌐ «í¼Ñ¡á ñ½∩ σπñΦÑú« ß½πτá∩ íπ-
  682.          ñÑΓ ßΓ«½∞ ªÑ í«½∞Φ¿¼,  ¬á¬ ¿ ñ½∩ ß«αΓ¿α«ó«¬ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼ ¿
  683.          ß«αΓ¿α«ó«¬ óδí«α«¼. ù¿ß½« «»Ñαᵿ⌐ «í¼Ñ¡á ñ½∩ ßαÑñ¡Ñú« ß½πτá∩ íπ-
  684.  
  685.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 16 =
  686.  
  687.          ñÑΓ ½¿Φ∞ ¡á ¡Ñ¼¡«ú« ¼Ñ¡∞ΦÑ.  Äñ¡á¬« ß«αΓ¿α«ó¬á óßΓáó¬«⌐ ¿¼ÑÑΓ ñóá
  688.          »αÑ¿¼πΘÑßΓóá. é«-»Ñαóδσ, «¡á «í½áñáÑΓ ÑßΓÑßΓóÑ¡¡δ¼ »«óÑñÑ¡¿Ñ¼, Γ.
  689.          Ñ.  «¡á  óδ»«½¡∩ÑΓß∩  íδßΓαÑÑ ñ½∩ π»«α∩ñ«τÑ¡¡«ú« ¼áßß¿óá ¿ ñ«½∞ΦÑ
  690.          óßÑú« óδ»«½¡∩ÑΓß∩,  ¬«úñá ¼áßß¿ó π»«α∩ñ«τÑ¡ ó «íαáΓ¡«¼  ¡á»αáó½Ñ-
  691.          ¡¿¿.  ¥Γ«  ñѽáÑΓ  ß«αΓ¿α«ó¬π  óßΓáó¬«⌐ »«½Ñº¡«⌐ ñ½∩ π»«α∩ñ«τÑ¡¿∩
  692.          »«τΓ¿ «Γß«αΓ¿α«óá¡¡δσ ¼áßß¿ó«ó. é«-óΓ«αδσ, φ½Ñ¼Ñ¡Γδ ß «ñ¿¡á¬«ó묨
  693.          ¬½ετἿ  ¡Ñ  »ÑαÑßΓáó½∩εΓß∩:  Ñß½¿ ß»¿ß«¬ φ½Ñ¼Ñ¡Γ«ó ß«αΓ¿απÑΓß∩ ß
  694.          ¿ß»«½∞º«ó᡿Ѽ ñóπ󠬽ετÑ⌐, Γ« »«ß½Ñ ºáóÑαΦÑ¡¿∩ ß«αΓ¿α«ó¬¿ óßΓáó-
  695.          ¬«⌐ «¡ »«-»αѪ¡Ñ¼π íπñÑΓ π»«α∩ñ«τÑ¡ »« ñóπ¼ ¬½ετá¼.
  696.               ìÑß¼«Γα∩ ¡á Γ«,  τΓ« τ¿ß½« ßαáó¡Ñ¡¿⌐ ¼«ªÑΓ íδΓ∞ ñ«ó«½∞¡« ¡Ñ-
  697.          í«½∞Φ¿¼ ñ½∩ «»αÑñѽѡ¡δσ ¡áí«α«ó ñá¡¡δσ, »«ßΓ«∩¡¡δÑ ßñó¿ú¿ ¼áßß¿-
  698.          óá ΓαÑíπεΓ óδ»«½¡Ñ¡¿∩ í«½∞Φ«ú« τ¿ß½á «»Ñαᵿ⌐  »ÑαÑß佫¬. Äñ¡á¬«,
  699.          ß«αΓ¿α«ó¬á óßΓáó¬«⌐ ¿¼ÑÑΓ ÑßΓÑßΓóÑ¡¡«Ñ »«óÑñÑ¡¿Ñ, ΓαÑíπ∩ ¡á¿¼Ñ¡∞-
  700.          ΦÑÑ τ¿ß½« «»Ñαᵿ⌐ «í¼Ñ¡á ñ½∩ »«τΓ¿ π»«α∩ñ«τÑ¡¡«ú« ß»¿ß¬á ¿  ¡á¿-
  701.          í«½∞ΦÑÑ τ¿ß½« «»Ñαᵿ⌐ «í¼Ñ¡á, ¬«úñá ¼áßß¿ó π»«α∩ñ«τÑ¡ ó «íαáΓ¡«¼
  702.          ¡á»αáó½Ñ¡¿¿.
  703.                           ôß«óÑαΦÑ¡ßΓó«óá¡¡δÑ á½ú«α¿Γ¼δ ß«αΓ¿α«ó¬¿             
  704.          -----------------------------------------------------------------
  705.  
  706.               éßÑ αáßß¼áΓα¿óáѼδÑ ñ« ß¿σ »«α á½ú«α¿Γ¼δ ß«αΓ¿α«ó¬¿ «í½áñáεΓ
  707.          «τÑ¡∞ ßÑα∞Ѻ¡δ¼ ¡Ññ«ßΓáΓ¬«¼,  á ¿¼Ñ¡¡«,  óαѼ∩ ¿σ óδ»«½¡Ñ¡¿∩ »α«-
  708.          »«αµ¿«¡á½∞¡« ¬óáñαáΓπ τ¿ß½á φ½Ñ¼Ñ¡Γ«ó. ä½∩ í«½∞Φ¿σ «íΩѼ«ó ñá¡¡δσ
  709.          φΓ¿ ß«αΓ¿α«ó¬¿ íπñπΓ ¼Ññ½Ñ¡¡δ¼¿,  á ¡áτ¿¡á∩ ß ¡Ñ¬«Γ«α«⌐  óѽ¿τ¿¡δ
  710.          «¡¿ íπñπΓ ß½¿Φ¬«¼ ¼Ññ½Ñ¡¡δ¼¿, τΓ«íδ ¿σ ¼«ª¡« í佫 ¿ß»«½∞º«óáΓ∞ ¡á
  711.          »αá¬Γ¿¬Ñ.  èáªñδ⌐ »α«úαá¼¼¿ßΓ ß½δΦá½ ¿½¿  αáß߬áºδóá½  "ßΓαáΦ¡δÑ"
  712.          ¿ßΓ«α¿¿ « "ß«αΓ¿α«ó¬Ñ,  ¬«Γ«αá∩ óδ»«½¡∩½áß∞ Γα¿ ñ¡∩". è ß«ªá½Ñ¡¿ε
  713.          φΓ¿ ¿ßΓ«α¿¿ τáßΓ« ¡Ñ ∩ó½∩½¿ß∞ óδñπ¼¬«⌐.
  714.               àß½¿ ß«αΓ¿α«ó¬á óδ»«½¡∩ÑΓß∩ ß½¿Φ¬«¼ ñ«½ú«, Γ« »α¿τ¿¡«⌐ φΓ«ú«
  715.          ¼«ªÑΓ íδΓ∞ ¿ß»«½∞ºπѼδ⌐ á½ú«α¿Γ¼. Äñ¡á¬«, »Ñαóá∩ αÑᬵ¿∩ ¡á ΓᬫÑ
  716.          »«óÑñÑ¡¿Ñ ß«αΓ¿α«ó¬¿ óδαáªáÑΓß∩ ß½«óἿ: "äáóá⌐ ¡á»¿ΦѼ »α«úαá¼¼π
  717.          ¡á áßßѼí½ÑαÑ". ò«Γ∩ ¿ß»«½∞º«óá¡¿Ñ áßßѼí½Ñαá »«τΓ¿ óßÑúñá »«ºó«-
  718.          ½∩ÑΓ  »«óδß¿Γ∞  íδßΓα«ñÑ⌐ßΓó¿Ñ  »α«úαá¼¼δ ó ¡Ñ¬«Γ«α«Ñ τ¿ß½« αẠß
  719.          »«ßΓ«∩¡¡δ¼ ¬«φΣΣ¿µ¿Ñ¡Γ«¼,  ¡« Ñß½¿ óδíαá¡¡δ⌐ á½ú«α¿Γ¼ ¡Ñ ∩ó½∩ÑΓß∩
  720.          ñ«ßΓáΓ«τ¡« σ«α«Φ¿¼, Γ« ß«αΓ¿α«ó¬á ó¡Ñ ºáó¿ß¿¼«ßΓ¿ «Γ «»Γ¿¼á½∞¡«ß-
  721.          Γ¿ ¬«ñá »«-»αѪ¡Ñ¼π íπñÑΓ óδ»«½¡∩Γ∞ß∩ ñ«½ú«. æ½ÑñπÑΓ »«¼¡¿Γ∞, τΓ«
  722.          »α¿ ¬óáñαáΓ¿τ¡«⌐ ºáó¿ß¿¼«ßΓ¿ óαѼѡ¿ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ «Γ τ¿ß-
  723.          ½á φ½Ñ¼Ñ¡Γ«ó ¼áßß¿óá »«óδΦÑ¡¿Ñ «»Γ¿¼á½∞¡«ßΓ¿ ¬«ñá  ¿½¿  »«óδΦÑ¡¿Ñ
  724.          íδßΓα«ñÑ⌐ßΓó¿∩  ¥éî  »α¿óÑñÑΓ  ½¿Φ∞  ¬ ¡Ñº¡áτ¿Γѽ∞¡«¼π π½πτΦÑ¡¿ε,
  725.          »«ß¬«½∞¬π óαѼ∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ íπñÑΓ πóѽ¿τ¿óáΓ∞ß∩ »«  φ¬ß-
  726.          »«¡Ñ¡ΓÑ. /èα¿óá∩, »«¬áºá¡¡á∩ ¡á α¿ß.1 ½¿Φ∞ ß½Ñú¬á ß¼ÑßΓ¿Γß∩ ó»αá-
  727.          ó«, «ñ¡á¬« ÑÑ ó¿ñ ¡Ñ ¿º¼Ñ¡¿Γß∩/. æ½ÑñπÑΓ »«¼¡¿Γ∞, τΓ« Ñß½¿ ¬á¬á∩-
  728.          ½¿í«  »α«úαá¼¼á,  ¡á»¿ßá¡¡á∩ ¡á ∩ºδ¬Ñ Æπαí« Åá߬á½∞,  óδ»«½¡∩ÑΓß∩
  729.          ¡Ññ«ßΓáΓ«τ¡« íδßΓα«,  Γ« «¡á  ¡Ñ  ßΓá¡ÑΓ  óδ»«½¡∩Γ∞ß∩  ñ«ßΓáΓ«τ¡«
  730.          íδßΓα«, Ñß½¿ ÑÑ ¡á»¿ßáΓ∞ ¡á áßßѼí½ÑαÑ. ÉÑΦÑ¡¿Ñ ½Ñª¿Γ ó ¿ß»«½∞º«-
  731.          óá¡¿¿ ½πτΦÑú« á½ú«α¿Γ¼á ß«αΓ¿α«ó¬¿.
  732.               é φΓ«⌐ ú½áóÑ íπñπΓ αáßß¼«ΓαÑ¡δ ñóÑ «τÑ¡∞ σ«α«Φ¿Ñ ß«αΓ¿α«ó¬¿.
  733.          ÅÑαóá∩ ¡«ß¿Γ ¡áºóá¡¿Ñ ß«αΓ¿α«ó¬¿ ÿѽ½á, á óΓ«αá∩ ¡áºδóáÑΓß∩ íδßΓ-
  734.  
  735.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 17 =
  736.  
  737.          α«⌐ ß«αΓ¿α«ó¬«⌐,  á½ú«α¿Γ¼ ¬«Γ«α«⌐ »α¿º¡á¡ ¡á¿½πτΦ¿¼.  ¥Γ¿ ß«αΓ¿-
  738.          α«ó¬¿ óδ»«½¡∩εΓß∩ «τÑ¡∞ íδßΓα«.
  739.                                       æ«αΓ¿α«ó¬á ÿѽ½á                         
  740.          -----------------------------------------------------------------
  741.  
  742.               æ«αΓ¿α«ó¬á ÿѽ½á »«½πτ¿½á ßó«Ñ ¡áºóá¡¿Ñ »« ¿¼Ñ¡¿ ÑÑ ß«ºñáΓÑ-
  743.          ½∩ ä.ï.ÿѽ½á. Äñ¡á¬«, φΓ« ¡áºóá¡¿Ñ ¼«ª¡« ßτ¿ΓáΓ∞ πñáτ¡δ¼, Γᬠ¬á¬
  744.          óδ»«½¡∩ѼδÑ  »α¿ ß«αΓ¿α«ó¬Ñ ñÑ⌐ßΓó¿∩ ¡á»«¼¿¡áεΓ π¬½áñδóá¡¿Ñ ¼«αß-
  745.          ¬¿σ αá¬πΦѬ ñαπú ¡á ñαπúá.  ("Éá¬πΦ¬á" - «ñ¡« ¿º  º¡áτÑ¡¿⌐  ß½«óá
  746.          shell - Åα¿¼Ñτ. »Ñα.)
  747.  
  748.               ÄíΘ¿⌐ ¼ÑΓ«ñ,  ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓ ß«αΓ¿α«ó¬π óßΓáó¬«⌐, »α¿¼Ñ-
  749.          ¡∩ÑΓ »α¿¡µ¿» π¼Ñ¡∞ΦÑ¡¿∩ αáßßΓ«∩¡¿∩ ¼Ñªñπ ßαáó¡¿óáÑ¼δ¼¿  φ½Ñ¼Ñ¡Γá-
  750.          ¼¿.  ìá α¿ß.2 »«¬áºá¡á ßσѼá óδ»«½¡Ñ¡¿∩ ß«αΓ¿α«ó¬¿ ÿѽ½á ñ½∩ ¼áß-
  751.          ß¿óá "«áßóÑ".  æ¡áτá½á ß«αΓ¿απεΓß∩ óßÑ φ½Ñ¼Ñ¡Γδ,  ¬«Γ«αδÑ ß¼ÑΘÑ¡δ
  752.          ñαπú «Γ ñαπúá ¡á Γα¿ »«º¿µ¿¿. çáΓѼ ß«αΓ¿απεΓß∩ óßÑ φ½Ñ¼Ñ¡Γδ, ¬«-
  753.          Γ«αδÑ ß¼ÑΘÑ¡δ ¡á ñóÑ »«º¿µ¿¿. ê, ¡á¬«¡Ñµ, π»«α∩ñ«τ¿óáεΓß∩ óßÑ ß«-
  754.          ßÑñ¡¿Ñ φ½Ñ¼Ñ¡Γδ.
  755.                 »α«σ«ñ 1   f   d   a   c   b   e
  756.  
  757.                 »α«σ«ñ 2   c   b   a   f   d   e
  758.  
  759.                 »α«σ«ñ 3   a   b   c   e   d   f
  760.  
  761.                 »«½πτÑ¡¡δ⌐ αѺπ½∞ΓáΓ   a   b   c   d   e   f
  762.               É¿ß.2. æ«αΓ¿α«ó¬á ÿѽ½á:
  763.  
  764.                 { ß«αΓ¿α«ó¬á ÿѽ½á }
  765.                 procedure Shell(var item: DataArray; count:integer);
  766.                 const
  767.                   t = 5;
  768.                 var
  769.                   i, j, k, s, m: integer;
  770.                   h: array[1..t] of integer;
  771.                   x: DataItem;
  772.                 begin
  773.                   h[1]:=9; h[2]:=5; h[3]:=3; h[4]:=2; h[5]:=1;
  774.                   for m := 1 to t do
  775.                     begin
  776.  
  777.                   k:=h[m];
  778.                   s:=-k;
  779.                   for i := k+1 to count do
  780.                   begin
  781.                     x := item[i];
  782.                     j := i-k;
  783.                     if s=0 then
  784.  
  785.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 18 =
  786.  
  787.                     begin
  788.                       s := -k;
  789.                       s := s+1;
  790.                       item[s] := x;
  791.                     end;
  792.                     while (x<item[j]) and (j<count) do
  793.                       begin
  794.                         item[j+k] := item[j];
  795.                         j := j-k;
  796.                       end;
  797.                       item[j+k] := x;
  798.                     end;
  799.                   end;
  800.               end; { ¬«¡Ñµ ß«αΓ¿α«ó¬¿ ÿѽ½á }
  801.  
  802.               Åα¿ »«óÑασ¡«ßΓ¡«¼ óºú½∩ñÑ ¡á á½ú«α¿Γ¼ ¡Ñ½∞º∩ ß¬áºáΓ∞, τΓ« «¡
  803.          ñáÑΓ σ«α«Φ¿⌐ αѺπ½∞ΓáΓ ¿ ñáªÑ Γ«,  τΓ« ó αѺπ½∞ΓáΓÑ »«½πτ¿Γß∩ «Γ-
  804.          ß«αΓ¿α«óá¡¡δ⌐ ¼áßß¿ó.  Äñ¡á¬«,  «¡ ñáÑΓ ¿ Γ« ¿ ñαπú«Ñ.  ¥ΣΣÑ¬Γ¿ó-
  805.          ¡«ßΓ∞ φΓ«ú« á½ú«α¿Γ¼á «íΩ∩ß¡∩ÑΓß∩ ΓѼ, τΓ« »α¿ ¬áªñ«¼ »α«σ«ñÑ ¿ß-
  806.          »«½∞ºπÑΓß∩ «Γ¡«ß¿Γѽ∞¡« ¡Ñí«½∞Φ«Ñ τ¿ß½«  φ½Ñ¼Ñ¡Γ«ó  ¿½¿  φ½Ñ¼Ñ¡Γδ
  807.          ¼áßß¿óá πªÑ ¡áσ«ñ∩Γß∩ ó «Γ¡«ß¿Γѽ∞¡«¼ »«α∩ñ¬Ñ,  á π»«α∩ñ«τÑ¡¡«ßΓ∞
  808.          πóѽ¿τ¿óáÑΓß∩ »α¿ ¬áªñ«¼ ¡«ó«¼ »α«ß¼«ΓαÑ ñá¡¡δσ.
  809.               ÉáßßΓ«∩¡¿∩ ¼Ñªñπ  ßαáó¡¿óáÑ¼δ¼¿  φ½Ñ¼Ñ¡ΓἿ ¼«úπΓ ¿º¼Ñ¡∩Γ∞ß∩
  810.          »«-αạ«¼π. Äí∩ºáΓѽ∞¡δ¼ ∩ó½∩ÑΓß∩ ½¿Φ∞ Γ«, τΓ« »«ß½Ññ¡¿⌐ Φáú ñ«½-
  811.          ªÑ¡ αáó¡∩Γ∞ß∩ Ññ¿¡¿µÑ. ìá»α¿¼Ñα, σ«α«Φ¿Ñ αѺπ½∞ΓáΓδ ñáÑΓ »«ß½Ññ«-
  812.          óáΓѽ∞¡«ßΓ∞ Φáú«ó 9,  5, 3, 2, 1, ¬«Γ«αá∩ ¿ß»«½∞º«óá¡á ó »«¬áºá¡-
  813.          ¡«¼  óδΦÑ  »α¿¼ÑαÑ.  æ½ÑñπÑΓ ¿ºíÑúáΓ∞ »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐ ßΓѻѡ¿
  814.          ñó«⌐¬¿,  ¬«Γ«αδÑ, ¬á¬ »«¬áºδóáεΓ ß½«ª¡δÑ ¼áΓѼáΓ¿τÑ߬¿Ñ ó䬽áñ¬¿,
  815.          ß¡¿ªáεΓ φΣΣÑ¬Γ¿ó¡«ßΓ∞ á½ú«α¿Γ¼á ß«αΓ¿α«ó¬¿.  /Äñ¡á¬«, »α¿ ¿ß»«½∞-
  816.          º«óá¡¿¿ Γá¬¿σ »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐ Φáú«ó ¼Ñªñπ ßαáó¡¿óáÑ¼δ¼¿  φ½Ñ-
  817.          ¼Ñ¡ΓἿ φΓá ß«αΓ¿α«ó¬á íπñÑΓ »«-»αѪ¡Ñ¼π αáí«ΓáΓ∞ »αáó¿½∞¡«/.
  818.               é¡πΓαÑ¡¡¿⌐ µ¿¬½  ¿¼ÑÑΓ   ñóá   πß½«ó¿∩   »α«óÑન.   ôß½«ó¿Ñ
  819.          "σ<item[j]" ¡Ñ«íσ«ñ¿¼« ñ½∩ π»«α∩ñ«τÑ¡¿∩ φ½Ñ¼Ñ¡Γ«ó.  ôß½«ó¿∩ "j>0"
  820.          ¿ "j<=count" ¡Ñ«íσ«ñ¿¼δ ñ½∩ Γ«ú«,  τΓ«íδ »αÑñ«ΓóαáΓ¿Γ∞  óδσ«ñ  ºá
  821.          »αÑñÑ½δ  ¼áßß¿óá "item".  ¥Γá ñ«»«½¡¿Γѽ∞¡á∩ »α«óÑα¬á ó ¡Ñ¬«Γ«α«⌐
  822.          ßΓѻѡ¿ πσπñΦáÑΓ ß«αΓ¿α«ó¬π ÿѽ½á.  æ½Ñú¬á ¿º¼Ñ¡Ñ¡¡δÑ óÑαß¿¿ ß«α-
  823.          Γ¿α«ó¬¿ ÿѽ½á ¿ß»«½∞ºπεΓ ß»Ñµ¿á½∞¡δÑ π»αáó½∩εΘ¿Ñ φ½Ñ¼Ñ¡Γδ,  ¬«Γ«-
  824.          αδÑ ¡Ñ ∩ó½∩εΓß∩ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ τáßΓ∞ε Γ«⌐ ¿¡Σ«α¼áµ¿¿, ¬«Γ«αá∩
  825.          ñ«½ª¡á  ß«αΓ¿α«óáΓ∞ß∩.  ô»αáó½∩εΘ¿Ñ  φ½Ñ¼Ñ¡Γδ ¿¼ÑεΓ úαá¡¿τ¡δÑ ñ½∩
  826.          ¼áßß¿óá ñá¡¡δσ º¡áτÑ¡¿∩, Γ.Ñ. ¡á¿¼Ñ¡∞ΦÑÑ ¿ ¡á¿í«½∞ΦÑÑ º¡áτÑ¡¿∩. é
  827.          φΓ«¼ ß½πτáÑ ¡Ñ «í∩ºáΓѽ∞¡« óδ»«½¡∩Γ∞ »α«óÑα¬π ¡á úαá¡¿τ¡δÑ º¡áτÑ-
  828.          ¡¿∩.  Äñ¡á¬«, »α¿¼Ñ¡Ñ¡¿Ñ Γᬿσ π»αáó½∩εΘ¿σ φ½Ñ¼Ñ¡Γ«ó ΓαÑíπÑΓ ß»Ñ-
  829.          µ¿á½∞¡δσ º¡á¡¿⌐ « Γ«⌐ ¿¡Σ«α¼áµ¿¿, ¬«Γ«αá∩ ß«αΓ¿απÑΓß∩, ¿ φΓ« ß¡¿-
  830.          ªáÑΓ π¡¿óÑαßá½∞¡«ßΓ∞ »α«µÑñπαδ ß«αΓ¿α«ó¬¿.
  831.               Ç¡á½¿º ß«αΓ¿α«ó¬¿  ÿѽ½á  ΓαÑíπÑΓ  αÑΦÑ¡¿∩ ¡Ñ¬«Γ«αδσ ß½«ª¡δσ
  832.          ¼áΓѼáΓ¿τÑ߬¿σ ºáñáτ,  ¬«Γ«αδÑ óδσ«ñ∩Γ ºá αἬ¿ φΓ«⌐ ¬¡¿ú¿. éαѼ∩
  833.          óδ»«½¡Ñ¡¿∩ ß«αΓ¿α«ó¬¿  ÿѽ½á »α«»«αµ¿«¡á½∞¡« n**1.2.  ¥Γá ºáó¿ß¿-
  834.          ¼«ßΓ∞ º¡áτ¿Γѽ∞¡« ½πτΦÑ ¬óáñαáΓ¿τ¡«⌐ ºáó¿ß¿¼«ßΓ¿,  ¬«Γ«α«⌐ »«ñτ¿-
  835.  
  836.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 19 =
  837.  
  838.          ¡∩εΓß∩ αáßß¼«ΓαÑ¡¡δÑ αá¡ÑÑ á½ú«α¿Γ¼δ ß«αΓ¿α«ó¬¿.  Äñ¡á¬«,  »αѪñÑ
  839.          τѼ óδ αÑΦ¿ΓÑ ¿ß»«½∞º«óáΓ∞ ß«αΓ¿α«ó¬π ÿѽ½á,  ß½ÑñπÑΓ ¿¼ÑΓ∞ ó ó¿-
  840.          ñπ, τΓ« íδßΓαá∩ ß«αΓ¿α«ó¬á ñáÑΓ ñáªÑ ÑΘÑ ½πτΦ¿Ñ αѺπ½∞ΓáΓδ.
  841.                                      üδßΓαá∩ ß«αΓ¿α«ó¬á                        
  842.          -----------------------------------------------------------------
  843.  
  844.               îÑΓ«ñ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ íδ½ αáºαáí«Γá¡ ù.ö.É.ò«áα«¼ ¿ «¡ ªÑ
  845.          ñὠѼπ φΓ« ¡áºóá¡¿Ñ.  é ¡áßΓ«∩ΘÑÑ óαѼ∩  φëà ¼ÑΓ«ñ  ß«αΓ¿α«ó¬¿
  846.          ßτ¿ΓáÑΓß∩ ¡á¿½πτΦ¿¼. Ä¡ «ß¡«óá¡ ¡á ¿ß»«½∞º«óá¡¿¿ «í¼Ñ¡¡«ú« ¼ÑΓ«ñá
  847.          ß«αΓ¿α«ó¬¿.  ¥Γ« ΓѼ í«½ÑÑ πñ¿ó¿Γѽ∞¡«,  Ñß½¿ πτÑßΓ∞ «τÑ¡∞ ¡¿º¬«Ñ
  848.          íδßΓα«ñÑ⌐ßΓó¿Ñ ß«αΓ¿α«ó¬¿ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼,  ¬«Γ«αδ⌐ »αÑñßΓáó-
  849.          ½∩ÑΓ ß«í«⌐ »α«ßΓÑ⌐Φπε óÑαß¿ε «í¼Ñ¡¡«⌐ ß«αΓ¿α«ó¬¿.
  850.               é «ß¡«óÑ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ ½Ñª¿Γ »α¿¡µ¿» αáºí¿Ñ¡¿∩. æ¡áτá½á
  851.          óδí¿αáÑΓß∩ ¡Ñ¬«Γ«α«Ñ º¡áτÑ¡¿Ñ ó ¬áτÑßΓóÑ "«ß¡«óδ"  ¿  ºáΓѼ  óÑß∞
  852.          ¼áßß¿ó  αáºí¿óáÑΓß∩ ¡á ñóÑ τáßΓ¿.  Äñ¡π τáßΓ∞ ß«ßΓáó½∩εΓ óßÑ φ½Ñ-
  853.          ¼Ñ¡Γδ, αáó¡δÑ ¿½¿ í«½∞Φ¿Ñ "«ß¡«óδ", á ñαπúπε τáßΓ∞ ß«ßΓáó½∩εΓ óßÑ
  854.          φ½Ñ¼Ñ¡Γδ ¼Ñ¡∞ΦÑú« º¡áτÑ¡¿∩,  »« ¬«Γ«α«¼π ñѽáÑΓß∩ αáºí¿Ñ¡¿Ñ. ¥Γ«Γ
  855.          »α«µÑßß »α«ñ«½ªáÑΓß∩ ñ½∩ «ßΓáóΦ¿σß∩ τáßΓÑ⌐ ñ« ΓÑσ »«α,  »«¬á óÑß∞
  856.          ¼áßß¿ó ¡Ñ íπñÑΓ «Γß«αΓ¿α«óá¡.  ìá»α¿¼Ñα, ñ½∩ ¼áßß¿óá "fedacb" »α¿
  857.          ¿ß»«½∞º«óá¡¿¿ ó ¬áτÑßΓóÑ º¡áτÑ¡¿∩ αáºí¿Ñ¡¿∩  "d"  íπñπΓ  »«½πτÑ¡δ
  858.          ß½ÑñπεΘ¿Ñ »α«σ«ñδ »α¿ óδ»«½¡Ñ¡¿¿ íδßΓα«⌐ ß«αΓ¿α«ó¬¿:
  859.  
  860.               - ¿ßσ«ñ¡«Ñ ß«ßΓ«∩¡¿Ñ: f e d a c b;
  861.               - »Ñαóδ⌐ »α«σ«ñ:      d c a d e f;
  862.               - óΓ«α«⌐ »α«σ«ñ:      a b c d e f.
  863.  
  864.               ¥Γ«Γ »α«µÑßß »α«ñ«½ªáÑΓß∩ ñ½∩ ¬áªñ«⌐  τáßΓ¿  "óßá"  ¿  def".
  865.          öá¬Γ¿τÑ߬¿  φëà »α«µÑßß ¿¼ÑÑΓ αѬπαß¿ó¡πε »α¿α«ñπ.  ê ñÑ⌐ßΓóΓ¿-
  866.          Γѽ∞¡«,  ¡á¿í«½ÑÑ "ᬬπαáΓ¡«" íδßΓαá∩ ß«αΓ¿α«ó¬á αÑ὿ºπÑΓß∩ »«ß-
  867.          αÑñßΓó«¼ αѬπαß¿ó¡«ú« á½ú«α¿Γ¼á.
  868.               éδí«α º¡áτÑ¡¿∩ αáºí¿Ñ¡¿∩ ¼«ª¡« ßñѽáΓ∞ ñóπ¼∩  ß»«ß«íἿ. ¥Γ«
  869.          º¡áτÑ¡¿Ñ  ¼«ª¡«  óδí¿αáΓ∞  ß½πτá⌐¡δ¼ «íαẫ¼ ¿½¿ »πΓѼ πßαÑñ¡Ñ¡¿∩
  870.          ¡Ñí«½∞Φ«ú« τ¿ß½á º¡áτÑ¡¿⌐,  óδíαá¡¡δσ ¿º ¼áßß¿óá. ä½∩ «»Γ¿¼á½∞¡«⌐
  871.          ß«αΓ¿α«ó¬¿ ΓαÑíπÑΓß∩ óδíαáΓ∞ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ íπñÑΓ ¡áσ«ñ¿Γ∞ß∩ ó
  872.          Γ«τ¡«ßΓ¿ »«ßÑαÑñ¿¡Ñ óßÑσ φ½Ñ¼Ñ¡Γ«ó. Äñ¡á¬«, ñ½∩ í«½∞Φ¿¡ßΓóá ¡áí«-
  873.          α«ó  ñá¡¡δσ  φΓ« ßñѽáΓ∞ ¡Ñ½Ñú¬«.  Äñ¡á¬«,  ñáªÑ ó σπñΦѼ ß½πτáÑ,
  874.          ¬«úñá óδí¿αáÑΓß∩ «ñ¡« ¿º φ¬ßΓαѼá½∞¡δσ º¡áτÑ¡¿⌐,  íδßΓαá∩  ß«αΓ¿-
  875.          α«ó¬á αáí«ΓáÑΓ ñ«ßΓáΓ«τ¡« σ«α«Φ«.
  876.               é »α¿ó«ñ¿¼«¼ ¡¿ªÑ á½ú«α¿Γ¼Ñ íδßΓα«⌐  ß«αΓ¿α«ó¬¿  ó  ¬áτÑßΓóÑ
  877.          º¡áτÑ¡¿∩ αáºí¿Ñ¡¿∩ ¿ß»«½∞ºπÑΓß∩ ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ. ò«Γ∩ Γᬫ⌐ »«ñ-
  878.          σ«ñ ¡Ñ óßÑúñá ∩ó½∩ÑΓß∩ ¡á¿½πτΦ¿¼, «¡ ñ«ßΓáΓ«τ¡« »α«ßΓ ¿ ß«αΓ¿α«ó-
  879.          ¬á íπñÑΓ óδ»«½¡∩Γ∞ß∩ »αáó¿½∞¡«.
  880.  
  881.               { íδßΓαá∩ ß«αΓ¿α«ó¬á }
  882.               procedure QuickSort(var item: DataArray; count:integer);
  883.                 procedure qs(l, r: integer; var it: DataArray);
  884.                   var
  885.  
  886.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 20 =
  887.  
  888.                   i, j: integer;
  889.                   x, y: DataItem;
  890.                 begin
  891.                   i:=l; j:=r;
  892.                   x:=it[(l+r) div 2];
  893.                   repeat
  894.                     while it[i]<x do i := i+1;
  895.                     while x<it[j] do j := j-1;
  896.                     if y<=j then
  897.                     begin
  898.                       y := it[i];
  899.                       it[i] := it[j];
  900.                       it[j] := y;
  901.                       i := i+1; j := j-1;
  902.                     end;
  903.                   until i>j;
  904.                   if l<j then qs(l, j, it);
  905.                   if l<r then qs(i, r, it)
  906.                 end;
  907.               begin
  908.                 qs(1, count, item);
  909.               end; { ¬«¡Ñµ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ }
  910.  
  911.               é ñá¡¡«¼  »α¿¼ÑαÑ  »α«µÑñπαá íδßΓα«⌐ ß«αΓ¿α«ó¬¿ «íαáΘáÑΓß∩ ¬
  912.          «ß¡«ó¡«⌐ »α«µÑñπαÑ ß«αΓ¿α«ó¬¿ ß  ¿¼Ñ¡Ñ¼  "qs".  ¥Γ«  «íÑß»Ñτ¿óáÑΓ
  913.          ñ«ßΓπ» ¬ ñá¡¡δ¼ "item" ¿ "count" »α¿ óßÑσ ó맮óáσ "qs".
  914.               éδó«ñ τ¿ß½á «»Ñαᵿ⌐ ßαáó¡Ñ¡¿∩ ¿ τ¿ß½á «»Ñαᵿ⌐  «í¼Ñ¡á  ñ½∩
  915.          íδßΓα«⌐ ß«αΓ¿α«ó¬¿ óδσ«ñ¿Γ ºá αἬ¿ ñá¡¡«⌐ ¬¡¿ú¿.  î«ª¡« ßτ¿ΓáΓ∞,
  916.          τΓ« τ¿ß½« «»Ñαᵿ⌐ ßαáó¡Ñ¡¿∩ αáó¡« n log n,  á τ¿ß½« «»Ñαᵿ⌐ «í-
  917.          ¼Ñ¡á  αáó¡«  »α¿í½¿º¿Γѽ∞¡« n/6 log n.  ¥Γ¿ σáαá¬ΓÑα¿ßΓ¿¬¿ º¡áτ¿-
  918.          Γѽ∞¡« ½πτΦÑ σáαá¬ΓÑα¿ßΓ¿¬ αáßß¼«ΓαÑ¡¡δσ αá¡ÑÑ ß«αΓ¿α«ó«¬.
  919.               ÉáóÑ¡ßΓó«
  920.  
  921.                    N = a**x
  922.          ¼«ª¡« »αÑñßΓáó¿Γ∞ ó ó¿ñÑ
  923.               x = log  n.
  924.                       a
  925.               ¥Γ«, ¡á»α¿¼Ñα, íπñÑΓ «º¡áτáΓ∞, τ« »α¿ ß«αΓ¿α«ó¬Ñ ßΓá φ½Ñ¼Ñ¡-
  926.          Γ«ó  ¼ÑΓ«ñ«¼ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ »«ΓαÑíπÑΓß∩ ó ßαÑñ¡Ñ¼ 100*2, Γ.Ñ.
  927.          200 «»Ñαᵿ⌐ ßαáó¡Ñ¡¿⌐, Γᬠ¬á¬ log 100 αáóÑ¡ 2. ¥Γ« º¡áτÑ¡¿Ñ ∩ó-
  928.          ½∩ÑΓß∩ ó»«½¡Ñ σ«α«Φ¿¼ »« ßαáó¡Ñ¡¿ε ß« º¡áτÑ¡¿Ñ¼ 990 ñ½∩ ß«αΓ¿α«ó-
  929.          ¬¿ »πºδα∞¬«óδ¼ ¼ÑΓ«ñ«¼.
  930.               Äñ¡á¬«, ß½ÑñπÑΓ  ¿¼ÑΓ∞ ó ó¿ñπ «ñ¡« ¡Ñ»α¿∩Γ¡«Ñ ßó«⌐ßΓó« íδßΓ-
  931.          α«⌐ ß«αΓ¿α«ó¬¿. àß½¿ óδí¿αáѼ«Ñ ñ½∩ αáºí¿Ñ¡¿∩ º¡áτÑ¡¿Ñ «¬áºδóáÑΓ-
  932.          ß∩  ß«ó»áñáεΘ¿¼  ß ¼á¬ß¿¼á½∞¡δ¼ º¡áτÑ¡¿Ñ¼,  Γ« íδßΓαá∩ ß«αΓ¿α«ó¬á
  933.          »αÑóαáΘáÑΓß∩ ó ßá¼πε ¼Ññ½Ñ¡¡πε ß óαѼѡѼ óδ»«½¡Ñ¡¿∩ n  . Äñ¡á¬«,
  934.          ¡á »αá¬Γ¿¬Ñ φΓ«Γ ß½πτá⌐ ¡Ñ óßΓαÑτáÑΓß∩.
  935.               ìÑ«íσ«ñ¿¼« ΓΘáΓѽ∞¡«  óδí¿αáΓ∞  ¼ÑΓ«ñ  «»αÑñѽѡ¿∩  º¡áτÑ¡¿∩
  936.  
  937.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 21 =
  938.  
  939.          αáºí¿Ñ¡¿∩. ùáßΓ« φΓ« º¡áτÑ¡¿Ñ «»αÑñѽ∩ÑΓß∩ »« Σá¬Γ¿τÑ߬¿¼ ñá¡¡δ¼,
  940.          ¬«Γ«αδÑ ß«αΓ¿απεΓß∩.  ä½∩ í«½∞Φ¿σ ß»¿ß¬«ó  »«τΓ«óδσ  «Γ»αáó½Ñ¡¿⌐,
  941.          ¬«úñá ß«αΓ¿α«ó¬á τáßΓ« ñѽáÑΓß∩ »« ¬«ñπ »«τΓ«ó«ú« ¿¡ñѬßá, º¡áτÑ-
  942.          ¡¿Ñ ñ½∩ αáºí¿Ñ¡¿∩ óδíαáΓ∞ ¡Ñ ß½«ª¡«, Γᬠ¬á¬ ¬«ñδ »«τΓ«óδσ ¿¡ñѬ-
  943.          ß«ó αáß»αÑñѽѡδ ñ«ßΓáΓ«τ¡« αáó¡«¼Ñα¡« ¿ ΓαÑíπѼ«Ñ º¡áτÑ¡¿Ñ ¼«ª¡«
  944.          «»αÑñѽ¿Γ∞ ß »«¼«Θ∞ε »α«ßΓ«⌐  á½úÑíαá¿τÑ߬«⌐  »α«µÑñπαδ.  Äñ¡á¬«,
  945.          «»αÑñѽѡ¡δÑ  íáºδ  ñá¡¡δσ  ¼«úπΓ  ¿¼ÑΓ∞ ¬½ετ¿ ß«αΓ¿α«ó¬¿ ß «τÑ¡∞
  946.          í½¿º¬¿¼¿ º¡áτÑ¡¿∩¼¿ ¿ »«φΓ«¼π ¡á¿½πτΦ¿¼ ¼ÑΓ«ñ«¼ τáßΓ« «¬áºδóáÑΓß∩
  947.          ß½πτá⌐¡δ⌐ óδí«α º¡áτÑ¡¿∩. Éáß»α«ßΓαá¡Ñ¡¡δ⌐ ¿ ñ«ßΓáΓ«τ¡« φΣΣÑ¬Γ¿ó-
  948.          ¡δ⌐ ¼ÑΓ«ñ ºá¬½ετáÑΓß∩ ó óδí«α¬Ñ ΓαÑσ φ½Ñ¼Ñ¡Γ«ó ¿º ß««ΓóÑΓßΓóπεΘÑ⌐
  949.          «í½áßΓ¿ ¿ óδτ¿ß½Ñ¡¿Ñ ¿σ ßαÑñ¡Ñú« º¡áτÑ¡¿∩.
  950.                                                                                
  951.              æ«αΓ¿α«ó¬á ñá¡¡δσ ñαπú¿σ Γ¿»«ó
  952.          -----------------------------------------------------------------
  953.  
  954.               ä« ß¿σ »«α αáßß¼áΓα¿ó὿ß∞ ß«αΓ¿α«ó¬¿ ñ½∩ ß¿¼ó«½∞¡δσ  ¼áßß¿-
  955.          ó«ó.  ¥Γ«  »«ºó«½∩½«  »αÑñßΓáó½∩Γ∞  á½ú«α¿Γ¼δ  ß«αΓ¿α«ó¬¿ ó í«½ÑÑ
  956.          »α«ßΓ«¼ ó¿ñÑ. èᬠπ¬áºδóὫß∞ αá¡ÑÑ, »α¿ ß«αΓ¿α«ó¬Ñ ¼«úπΓ ¿ß»«½∞-
  957.          º«óáΓ∞ß∩ ¼áßß¿óδ ½εíδσ óßΓα«Ñ¡¡δσ Γ¿»«ó ñá¡¡δσ.  ä½∩ φΓ«ú« ñ«ßΓá-
  958.          Γ«τ¡« ¿º¼Ñ¡¿Γ∞ «»αÑñѽѡ¿Ñ Γ¿»á ñá¡¡«ú« "DataItem". Äñ¡á¬«, τáßΓ«
  959.          »α¿σ«ñ¿Γß∩ ß«αΓ¿α«óáΓ∞ ß½«ª¡δÑ Γ¿»δ ñá¡¡δσ,  ¡á»α¿¼Ñα, ß¿¼ó«½∞¡δÑ
  960.          ßΓ᫬¿ ¿½¿ ßúαπ»»¿α«óá¡¡δѠ󠠺ỿ߿  ñá¡¡δÑ.  (ìừ¼¡¿¼,  τΓ«  ó
  961.          í«½∞Φ¿¡ßΓóÑ ß«αΓ¿α«ó¬áσ π»«α∩ñ«τ¿óáεΓß∩ φ½Ñ¼Ñ¡Γδ, ¿¼ÑεΘ¿Ñ ¬½ετ, ß
  962.          ¬«Γ«αδ¼ ßó∩ºá¡δ ñαπú¿Ñ ñá¡¡δÑ).  ä½∩ Γ«ú«,  τΓ«íδ ¡áßΓα«¿Γ∞ á½ú«-
  963.          α¿Γ¼δ  ß«αΓ¿α«ó¬¿  ¡á ñαπú¿Ñ ßΓαπ¬Γπαδ ñá¡¡δσ ñ«ßΓáΓ«τ¡« ¿º¼Ñ¡¿Γ∞
  964.          í½«¬ ßαáó¡Ñ¡¿⌐,  í½«¬ «í¼Ñ¡á ¿½¿ «íá φΓ¿ í½«¬á.  Äß¡«óá á½ú«α¿Γ¼á
  965.          «ßΓáÑΓß∩ ¡Ñ¿º¼Ñ¡¡«⌐.
  966.               Å«ß¬«½∞¬π íδßΓαá∩ ß«αΓ¿α«ó¬á ∩ó½∩ÑΓß∩ «ñ¡«⌐ ¿º ßá¼δσ ½πτΦ¿σ,
  967.          ¿¼ÑεΘ¿σß∩ ó ¡áßΓ«∩ΘÑÑ óαѼ∩ ß«αΓ¿α«ó«¬,  «¡á íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩
  968.          ó »«ß½ÑñπεΘ¿σ »α¿¼Ñαáσ. ÆÑ ªÑ ¼ÑΓ«ñδ, «ñ¡á¬«, ¼«ª¡« »α¿¼Ñ¡∩Γ∞ ñ½∩
  969.          ½εíδσ αá¡ÑÑ «»¿ßá¡¡δσ ß«αΓ¿α«ó«¬.
  970.                                 æ«αΓ¿α«ó¬á ß¿¼ó«½∞¡δσ ßΓ᫬                    
  971.          -----------------------------------------------------------------
  972.  
  973.               ä½∩ ß«αΓ¿α«ó¬¿ ß¿¼ó«½∞¡δσ ßΓ᫬ »α«ΘÑ óßÑú«  ß«ºñáΓ∞  ¼áßß¿ó
  974.          ß¿¼ó«½∞¡δσ ßΓ᫬,  ¿ß»«½∞ºπ∩ »αÑñπß¼«ΓαÑ¡¡δ⌐ ó ∩ºδ¬Ñ TURBOÅá߬á½∞
  975.          Γ¿» ñá¡¡δσ "string". ¥Γ« ñáÑΓ óá¼ »α«ßΓ«⌐ ß»«ß«í ¿¡ñѬ߿α«óá¡¿∩ ¿
  976.          óδ»«½¡Ñ¡¿∩  «»Ñαᵿ⌐  «í¼Ñ¡á  »α¿  ß«σαá¡Ñ¡¿¿ «ß¡«ó¡«ú« á½ú«α¿Γ¼á
  977.          ß«αΓ¿α«ó¬¿ ¡Ñ¿º¼Ñ¡¡δ¼.  Åα¿ó«ñ¿¼á∩ ¡¿ªÑ óÑαß¿∩ á½ú«α¿Γ¼á  íδßΓα«⌐
  978.          ß«αΓ¿α«ó¬¿ »«ºó«½∩ÑΓ π»«α∩ñ«τ¿óáΓ∞ ß¿¼ó«½∞¡δÑ ßΓ᫬¿ ó á½Σáó¿Γ¡«¼
  979.          »«α∩ñ¬Ñ:
  980.               type
  981.                 DataItem = string[80];
  982.                 DataArray = array [1..80] of DataItem;
  983.  
  984.              { á½ú«α¿Γ¼ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ ñ½∩ ß¿¼ó«½∞¡δσ ßΓ᫬ }
  985.               procedure QsString(var item: DataArray; count:integer);
  986.  
  987.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 22 =
  988.  
  989.                 procedure qs(l, r: integer; var it:DataArray);
  990.                   var
  991.                   i, l: integer;
  992.                   x, y: DataItem;
  993.                 begin
  994.                   i := l; j := r;
  995.                   x := it[(l+r) div 2];
  996.                   repeat
  997.                     while it[i] < x do i := i+1;
  998.                     while x < it[j] do j := j-1;
  999.                     if i<=j then
  1000.                     begin
  1001.                       y := it[i];
  1002.                       it[i] := it[j];
  1003.                       it[j] := y;
  1004.                       i := i+1; j := j-1;
  1005.                     end;
  1006.                   until i>j;
  1007.                   if l<j then qs(l, j, it);
  1008.                   if l<r then qs(i, r, it);
  1009.                 end;
  1010.               begin
  1011.                 qs(1, count, item);
  1012.               end; { ¬«¡Ñµ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ }
  1013.  
  1014.               æ½ÑñπÑΓ «Γ¼ÑΓ¿Γ∞,  τΓ« »«ΓαÑí«óὫß∞ ¿º¼Ñ¡¿Γ∞ Γ«½∞¬« «»αÑñÑ-
  1015.          ½Ñ¡¿Ñ Γ¿»á ñá¡¡«ú« "DataItem" ñ½∩ Γ«ú«,  τΓ«íδ ¡áßΓα«¿Γ∞ á½ú«α¿Γ¼
  1016.          íδßΓα«⌐ ß«αΓ¿α«ó¬¿ ¡á π»«α∩ñ«τ¿óá¡¿Ñ ß¿¼ó«½∞¡δσ ßΓ᫬. ¥Γ« «¬áºδ-
  1017.          óáÑΓß∩ ó«º¼«ª¡δ¼ í½áú«ñáα∩ »αÑó«ßσ«ñ¡«⌐ αáí«ΓÑ,  »α«ñѽᡡ«⌐ Σ¿α-
  1018.          ¼«⌐  Borland  »«  «íÑß»ÑτÑ¡¿ε ¿ß»«½∞º«óá¡¿∩ ó Åá߬á½Ñ ñá¡¡δσ Γ¿»á
  1019.          ß¿¼ó«½∞¡δσ ßΓ᫬.  ìá ßΓá¡ñáαΓ¡«¼ Åá߬á½Ñ ºá»¿ß∞ á½ú«α¿Γ¼á ß«αΓ¿-
  1020.          α«ó¬¿ ß¿¼ó«½∞¡δσ ßΓ᫬ íδ½á íδ º¡áτ¿Γѽ∞¡« ñ½¿¡ÑÑ.
  1021.               æ½ÑñπÑΓ πτ¿ΓδóáΓ∞,  τΓ«  «»Ñαᵿ¿ ßαáó¡Ñ¡¿∩ ß¿¼ó«½∞¡δσ ßΓ᫬
  1022.          óδ»«½¡∩εΓß∩ í«½∞ΦÑ óαѼѡ¿,  τѼ «»Ñαᵿ¿ ßαáó¡Ñ¡¿∩ ß¿¼ó«½«ó, Γá¬
  1023.          ¬á¬  ó »Ñαó«¼ ß½πτáÑ ¬áªñδ⌐ αẠñѽáÑΓß∩ »α«óÑα¬á ¡Ñ߬«½∞¬¿σ φ½Ñ-
  1024.          ¼Ñ¡Γ«ó.
  1025.                                      æ«αΓ¿α«ó¬á ºá»¿ßÑ⌐                        
  1026.          -----------------------------------------------------------------
  1027.  
  1028.               Å«-ó¿ñ¿¼«¼π ó í«½∞Φ¿¡ßΓóÑ »α¿¬½áñ¡δσ »α«úαá¼¼, úñÑ ¿ß»«½∞ºπ-
  1029.          ÑΓß∩ ß«αΓ¿α«ó¬á,  ΓαÑíπÑΓß∩ ß«αΓ¿α«óáΓ∞  úαπ»»δ  ñá¡¡δσ.  ò«α«Φ¿¼
  1030.          »α¿¼Ñα«¼ φΓ«ú« ∩ó½∩ÑΓß∩ ß»¿ß«¬ »«τΓ«óδ󠬫ααÑß»«¡ñÑ¡µ¿⌐, »«ß¬«½∞-
  1031.          ¬π ó φΓ«¼ ß½πτáÑ ΣἿ½¿∩,  π½¿µá, ú«α«ñ, ßΓαá¡á ¿ »«τΓ«óδ⌐ ¿¡ñѬß
  1032.          ß«ßΓáó½∩εΓ  ßó∩ºá¡¡πε  úαπ»»π ñá¡¡δσ.  Åα¿ ß«αΓ¿α«ó¬Ñ Γᬿσ úαπ»»
  1033.          ñá¡¡δσ ¿ß»«½∞ºπÑΓß∩ ¬½ετ ß«αΓ¿α«ó¬¿ ó «»Ñαᵿ∩σ ßαáó¡Ñ¡¿∩,  ¡«  ó
  1034.          «»Ñαᵿ∩σ  «í¼Ñ¡á πτáßΓóπÑΓ óß∩ ºá»¿ß∞ µÑ½¿¬«¼.  ä½∩ Γ«ú«,  τΓ«íδ
  1035.          ½πτΦÑ »«¡∩Γ∞ φëà»α«µÑßß ß¡áτá½á ß«ºñáñ¿¼ ºá»¿ß∞,  ¬«Γ«αá∩ íπñÑΓ
  1036.  
  1037.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 23 =
  1038.  
  1039.          ß«ñÑαªáΓ∞ ¡Ñ«íσ«ñ¿¼πε ¿¡Σ«α¼áµ¿ε. àß½¿ ó ¬áτÑßΓóÑ »α¿¼Ñαá ¿ß»«½∞-
  1040.          º«óáΓ∞ »«τΓ«óδ⌐ áñαÑß, Γ« ºá»¿ß∞ ¼«ªÑΓ ¿¼ÑΓ∞ ß½ÑñπεΘ¿⌐ ó¿ñ:
  1041.               type
  1042.                  address = record
  1043.                     name:   string[30];
  1044.                     street: string[40];
  1045.                     city:   string[20];
  1046.                     state:  string[2];
  1047.                     zip:    string[9];
  1048.                  end;
  1049.               Å«ß½Ñ «»¿ßá¡¿∩ áñαÑßá ¡Ñ«íσ«ñ¿¼« ¿º¼Ñ¡¿Γ∞  ß½ÑñπεΘ¿¼ «íαẫ¼
  1050.          «»αÑñѽѡ¿Ñ ñá¡¡«ú« "DataItem":
  1051.               DataItem = address;
  1052.               Å«ß½Ñ óδ»«½¡Ñ¡¿∩  φΓ¿σ  ¿º¼Ñ¡Ñ¡¿⌐ ¡πª¡« ß¬«ααÑ¬Γ¿α«óáΓ∞ í½«¬
  1053.          ßαáó¡Ñ¡¿⌐ ó á½ú«α¿Γ¼Ñ íδßΓα«⌐ ß«αΓ¿α«ó¬¿,  ¿ß»«½∞ºπ∩ Γ« »«½Ñ, ¬«-
  1054.          Γ«α«Ñ »α¿¼Ñ¡∩ÑΓß∩ ó ¬áτÑßΓóÑ ¬½ετá ß«αΓ¿α«ó¬¿.  é »α¿ó«ñ¿¼«⌐ ¡¿ªÑ
  1055.          óÑαß¿¿ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ ó ¬áτÑßΓóÑ ¬½ετá ¿ß»«½∞ºπÑΓß∩ »«½Ñ  Σá-
  1056.          ¼¿½¿¿ "name".  ¥Γ« «º¡áτáÑΓ,  τΓ« ß»¿ß«¬ »«τΓ«óδ󠬫ααÑß»«¡ñÑ¡µ¿⌐
  1057.          ß«αΓ¿απÑΓß∩ ó á½Σáó¿Γ¡«¼ »«α∩ñ¬Ñ ΣἿ½¿⌐.
  1058.  
  1059.                 { íδßΓαá∩ ß«αΓ¿α«ó¬á ºá»¿ßÑ⌐ ß »«τΓ«óδ¼ áñαÑß«¼ }
  1060.                 procedure QsRecord(var item: DataArray; count:integer);
  1061.                   procedure qs(l, r:integer; var it:DataArray);
  1062.                     var
  1063.                       i, j: integer;
  1064.                       x, y: DataItem;
  1065.                     begin
  1066.                       i := l; j := r;
  1067.                       x := it[(l+r) div 2];
  1068.                       repeat
  1069.                         while it[i].name < x.name do i := i+1;
  1070.                         while x.name < it[j].name do j := j-1;
  1071.                       if i<=j then
  1072.                       begin
  1073.                         y := it[i];
  1074.                         it[i] := it[j];
  1075.                         it[j] := y;
  1076.                         i := i+1; j := j-1;
  1077.                       end;
  1078.                     until i>j;
  1079.                     if l<j then qs(l, j, it);
  1080.                     if l<r then qs(i, r, it)
  1081.                   end;
  1082.               begin
  1083.                    qs(1, count, item);
  1084.               end; {¬«¡Ñµ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ ºá»¿ßÑ⌐}
  1085.  
  1086.  
  1087.  
  1088.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 24 =
  1089.  
  1090.                                                                                
  1091.              æ«αΓ¿α«ó¬á ñ¿ß¬«óδσ Σá⌐½«ó
  1092.          -----------------------------------------------------------------
  1093.  
  1094.               ê¼ÑÑΓß∩ ñóá Γ¿»á ñ¿ß¬«óδσ Σá⌐½«ó:  Σá⌐½δ ß  »«ß½Ññ«óáΓѽ∞¡δ¼
  1095.          ñ«ßΓπ»«¼  ¿  Σá⌐½δ ß »α«¿ºó«½∞¡δ¼ ñ«ßΓπ»«¼.  àß½¿ Σá⌐½ ñ«ßΓáΓ«τ¡«
  1096.          ¡Ñí«½∞Φ«⌐,  Γ« «¡ ¼«ªÑΓ íδΓ∞ ßτ¿Γá¡ ó «»ÑαáΓ¿ó¡πε »á¼∩Γ∞ ¿  Γ«úñá
  1097.          ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ¡á¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡«⌐ ß«αΓ¿α«ó¬¿ ΓÑ »α«ú-
  1098.          αá¼¼δ, ¬«Γ«αδÑ αáßß¼áΓα¿ó὿ß∞ αá¡ÑÑ ñ½∩ ß«αΓ¿α«ó¬¿ ¼áßß¿ó«ó. Äñ-
  1099.          ¡á¬«  ¼¡«ú¿Ñ ñ¿ß¬«óδÑ Σá⌐½δ ¿¼ÑεΓ ß½¿Φ¬«¼ í«½∞Φ«⌐ αẼÑα ¿ ¡Ñ ¼«-
  1100.          úπΓ »α«ßΓ« ßτ¿ΓδóáΓ∞ß∩ ó «»ÑαáΓ¿ó¡πε »á¼∩Γ∞ ñ½∩  ß«αΓ¿α«ó¬¿.  ä½∩
  1101.          φΓ«ú« ΓαÑíπÑΓß∩ »α¿¼Ñ¡¿Γ∞ ß»Ñµ¿á½∞¡δÑ ¼ÑΓ«ñδ.
  1102.                       æ«αΓ¿α«ó¬á ñ¿ß¬«óδσ Σá⌐½«ó »α«¿ºó«½∞¡«ú« ñ«ßΓπ»á         
  1103.          -----------------------------------------------------------------
  1104.  
  1105.               ä¿ß¬«óδÑ Σá⌐½δ ß »α«¿ºó«½∞¡δ¼ ñ«ßΓπ»«¼, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩
  1106.          ó  í«½∞Φ¿¡ßΓóÑ íẠñá¡¡δσ ¡á ¼¿¬α«-¥éî,  «í½áñáεΓ ñóπ¼∩ «ß¡«ó¡δ¼¿
  1107.          »αÑ¿¼πΘÑßΓóἿ ¡áñ »«ß½Ññ«óáΓѽ∞¡δ¼¿ ñ¿ß¬«ó묨  Σá⌐½á¼¿.  é«-»Ñα-
  1108.          óδσ,  ¿σ ½Ñú¬« »«ññÑনóáΓ∞. Äí¡«ó½Ñ¡¿Ñ ¿¡Σ«α¼áµ¿¿ ¼«ªÑΓ »α«¿ºó«-
  1109.          ñ¿Γ∞ß∩ íѺ ¬«»¿α«óá¡¿∩ óßÑú« ß»¿ß¬á. é«-óΓ«αδσ, ¿σ ¼«ª¡« αáßß¼áΓ-
  1110.          α¿óáΓ∞  ¬á¬  í«½∞Φ¿Ñ  ¼áßß¿óδ,  αáß»«½«ªÑ¡¡δÑ  ¡á  ñ¿ß¬Ñ,  τΓ«  ó
  1111.          º¡áτ¿Γѽ∞¡«⌐ ¼ÑαÑ π»α«ΘáÑΓ ß«αΓ¿α«ó¬π.
  1112.               Å«ß½Ññ¡ÑÑ »αÑ¿¼πΘÑßΓó« »«ºó«½∩ÑΓ ¿ß»«½∞º«óáΓ∞ á½ú«α¿Γ¼ íδßΓ-
  1113.          α«⌐ ß«αΓ¿α«ó¬¿ ó ¡Ñ¬«Γ«α묨 Ñú« ¼«ñ¿Σ¿¬áµ¿∩¼¿ ñ½∩ »«¿ß¬á  αẽ¿τ-
  1114.          ¡δσ ºá»¿ßÑ⌐ ¡á ñ¿ß¬Ñ á¡á½«ú¿τ¡« ¿¡ñѬ߿α«óá¡¿ε ¼áßß¿óá. é «Γ½¿τ¿Ñ
  1115.          «Γ ß«αΓ¿α«ó¬¿ »«ß½Ññ«óáΓѽ∞¡«ú« Σá⌐½á  »α¿  ß«αΓ¿α«ó¬Ñ  ñ¿ß¬«ó«ú«
  1116.          Σá⌐½á  ß »α«¿ºó«½∞¡δ¼ ñ«ßΓπ»«¼ ¡Ñ ΓαÑíπÑΓß∩ ¿¼ÑΓ∞ ¡á ñ¿ß¬Ñ »α«ßΓ-
  1117.          αá¡ßΓó« «ñ¡«óαѼѡ¡« ¬á¬ ñ½∩ «Γß«αΓ¿α«óá¡¡«ú«, Γᬠ¿ ñ½∩ ¡Ñ«Γß«α-
  1118.          Γ¿α«óá¡¡«ú« ¼áßß¿óá.
  1119.               é ¬áªñ«¼ ¬«¡¬αÑΓ¡«¼ ß½πτáÑ á½ú«α¿Γ¼ ß«αΓ¿α«ó¬¿ ñ«½ªÑ¡  ¼«ñ¿-
  1120.          Σ¿µ¿α«óáΓ∞ß∩  ó  ß««ΓóÑΓßΓó¿¿  ß« ßΓαπ¬Γπα«⌐ ß«αΓ¿απѼδσ ñá¡¡δσ ¿
  1121.          óδíαá¡¡δ¼ ¬½ετ«¼ ß«αΓ¿α«ó¬¿.  Äñ¡á¬« «ß¡«ó¡δÑ »α¿¡µ¿»δ ß«αΓ¿α«ó¬¿
  1122.          ñ¿ß¬«óδσ Σá⌐½«ó »α«¿ºó«½∞¡«ú« ñ«ßΓπ»á ¼«ª¡« »«¡∩Γ∞,  ¿ºπτá∩ »α«ú-
  1123.          αá¼¼π ß«αΓ¿α«ó¬¿ ºá»¿ßÑ⌐ ß áñαÑßἿ »«τΓ«óδ󠬫ααÑß»«¡ñÑ¡µ¿⌐ /ºá-
  1124.          »¿ß∞  "address" «»αÑñѽ∩½áß∞ αá¡∞ΦÑ/.  é »α¿ó«ñ¿¼«¼ ¡¿ªÑ »α¿¼ÑαÑ,
  1125.          »αÑñ»«½áúáÑΓß∩,  τΓ« τ¿ß½« φ½Ñ¼Ñ¡Γ«ó Σ¿¬ß¿α«óá¡¡« ¿ αáó¡« ó«ß∞¼¿-
  1126.          ñÑß∩Γ¿. ìá »αá¬Γ¿¬Ñ ßτÑΓτ¿¬ ºá»¿ßÑ⌐ ñ«½ªÑ¡ »«ññÑনóáΓ∞ß∩ ñ¿¡á¼¿-
  1127.          τÑ߬¿
  1128.  
  1129.              { »α¿¼Ñα »α«úαá¼¼δ ß«αΓ¿α«ó¬¿ ß»¿ß¬á »«τΓ«óδσ áñαÑß«ó }
  1130.                     programm MlistSort;
  1131.                     type
  1132.                       address = record
  1133.                         name: string[30];
  1134.                         street: string[40];
  1135.                         sity: string[20];
  1136.                         state: string[2];
  1137.                         zip: string[9];
  1138.  
  1139.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 25 =
  1140.  
  1141.                       end;
  1142.                       str80 = string[80];
  1143.                       DataItem = addres;
  1144.                       DataArray = array [1..80] of DataItem
  1145.                       recfil = file of DataItem
  1146.  
  1147.                       var
  1148.                         test: DataItem;
  1149.                         t, t2:integer;
  1150.                         testfile: recfil;
  1151.  
  1152.                                   { ¡á⌐Γ¿ ºá»¿ß∞ ó Σá⌐½Ñ }
  1153.                     function Find(var fp:recfil; i:integer): str80
  1154.                     var
  1155.                       t:address;
  1156.                     begin
  1157.                       i := i-1;
  1158.                       Seek(fp, i)
  1159.                       Read(fp, t)
  1160.                       Find := t.name;
  1161.                     end;
  1162.  
  1163.                     procedure QsRand(var var fp:recfil; count:integer)
  1164.                       procedure Qs(l, r:integer)
  1165.                         var
  1166.                           i, j, s:integer ;
  1167.                           x, y, z:DataItem;
  1168.                           begin
  1169.                             i := l; j := r;
  1170.                             s := (l+r) div 2;
  1171.                             Seek(fp,s-1); { »«½πτ¿Γ∞ ºá»¿ß∞ }
  1172.                             Reed(fp,x);
  1173.                             repeat
  1174.                               while Find(fp, i) < x.name do i := i+1;
  1175.                               while x.name < Find(fp, j) do j := j-1;
  1176.                               if i<=j then
  1177.                               begin
  1178.                                 Seek(fp,i-1);  Reed(fp,y);
  1179.                                 Seek(fp,j-1);  Reed(fp,z);
  1180.                                 Seek(fp,j-1);  Write(fp,y);
  1181.                                 Seek(fp,i-1);  Write(fp,z);
  1182.                                 i := i+1; j := j-1;
  1183.                               end;
  1184.                             until i>y;
  1185.                             if l<j then qs(l, j)
  1186.                             if l<r then qs(i, r)
  1187.                       end;
  1188.                     begin
  1189.  
  1190.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 26 =
  1191.  
  1192.                       qs(1,count);
  1193.                     end; { ¬«¡Ñµ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ Σá⌐½á »α«¿ºó«½∞¡«ú«
  1194.                     ñ«ßΓπ»á }
  1195.                     begin
  1196.                       Assign(testfile, 'rectest.dat');
  1197.                       Reset(testfile);
  1198.                       t := 1;
  1199.                       while not EOF(testfile) do begin
  1200.                         Read(testfile,test); { »«ñßτÑΓ τ¿ß½á ºá»¿ßÑ⌐ ó
  1201.                       Σá⌐½Ñ}
  1202.                       t := t+1;
  1203.                       end;
  1204.                       t := t-1;
  1205.  
  1206.                       QsRand(testfile,t)
  1207.                     end.
  1208.  
  1209.  
  1210.               öπ¡¬µ¿∩ Find ¿ß»«½∞ºπÑΓß∩ ñ½∩ Γ«ú«,  τΓ«íδ «ßΓáó¿Γ∞ ó «ß¡«ó-
  1211.          ¡«¼  ¡Ñ¿º¼Ñ¡¡δ¼  »α«úαá¼¼π  íδßΓα«⌐ ß«αΓ¿α«ó¬¿.  ÉѺπ½∞ΓáΓ«¼ φΓ«⌐
  1212.          Σπ¡¬µ¿¿ ∩ó½∩ÑΓß∩ ß¿¼ó«½∞¡á∩ ßΓ᫬á "name" ¿º ºá»¿ß¿,  αáß»«½«ªÑ¡-
  1213.          ¡«⌐ ¡á ñ¿ß¬Ñ. ìÑ«íσ«ñ¿¼« »«ßΓ«∩¡¡« óδτ¿ΓáΓ∞ Ññ¿¡¿µπ ¿º áαúπ¼Ñ¡Γ«ó
  1214.          Σπ¡¬µ¿⌐ Seek ¿ Find,  Γᬠ¬á¬ ºá»¿ß¿ ñ¿ß¬«ó«ú«  Σá⌐½á  ¡π¼ÑαπεΓß∩
  1215.          ¡áτ¿¡á∩ ß ¡π½∩, á ¼áßß¿óδ ¡π¼ÑαπεΓß∩ ß Ññ¿¡¿µδ.
  1216.                              æ«αΓ¿α«ó¬á »«ß½Ññ«óáΓѽ∞¡δσ Σá⌐½«ó                
  1217.          -----------------------------------------------------------------
  1218.  
  1219.               é «Γ½¿τ¿Ñ «Γ Σá⌐½«ó ß »α∩¼δ¼ ñ«ßΓπ»«¼ »«ß½Ññ«óáΓѽ∞¡δÑ Σá⌐½δ
  1220.          «íδτ¡«  ¡Ñ  ¿ß»«½∞ºπεΓ  ºá»¿ß¿ Σ¿¬ß¿α«óá¡¡«⌐ ñ½¿¡δ ¿ ¼«úπΓ αẼÑ-
  1221.          ΘáΓ∞ß∩ ¡á πßΓα«⌐ßΓóáσ »á¼∩Γ¿, ¡á ¬«Γ«αδσ Γαπñ¡« «αúá¡¿º«óáΓ∞ »α∩-
  1222.          ¼«⌐ ñ«ßΓπ». Å«φΓ«¼π »«ß½Ññ«óáΓѽ∞¡δÑ Σá⌐½δ ¡á ñ¿ß¬áσ ¿ß»«½∞ºπεΓß∩
  1223.          ó ΓÑσ ß½πτá∩σ,  ¬«úñá ñ½∩ αÑΦÑ¡¿∩ ¬«¡¬αÑΓ¡«⌐ ºáñáτ¿  πñ«í¡ÑÑ  ¿ß-
  1224.          »«½∞º«óáΓ∞  ºá»¿ß¿  »ÑαѼѡ¡«⌐  ñ½¿¡δ ¿½¿ ¬«úñá πßΓα«⌐ßΓó« »á¼∩Γ¿
  1225.          «α¿Ñ¡Γ¿α«óá¡« ¡á »«ß½Ññ«óáΓѽ∞¡δ⌐ ñ«ßΓπ».  ìá»α¿¼Ñα,  í«½∞Φ¿¡ßΓó«
  1226.          ΓѬßΓ«óδσ Σá⌐½«ó ¿¼ÑεΓ »«ß½Ññ«óáΓѽ∞¡πε «αúá¡¿ºáµ¿ε.
  1227.               ìÑß¼«Γα∩ ¡á Γ«,  τΓ« Γᬫ⌐ »«ñσ«ñ ¬ ß«αΓ¿α«ó¬Ñ, ¬«úñá ñ¿ß¬«-
  1228.          óδ⌐ Σá⌐½ αáßß¼áΓα¿óáÑΓß∩ ¬á¬ ¼áßß¿ó,  ¿¼ÑÑΓ α∩ñ »αÑ¿¼πΘÑßΓó,  Ñú«
  1229.          ¡Ñ½∞º∩ »α¿¼Ñ¡¿Γ∞ ¬ »«ß½Ññ«óáΓѽ∞¡δ¼ Σá⌐½á¼  -  íδßΓαδ⌐  ñ«ßΓπ»  ¬
  1230.          »α«¿ºó«½∞¡«¼π φ½Ñ¼Ñ¡Γπ ó φΓ«¼ ß½πτáÑ ¡Ñ󫺼«ªÑ¡. ìá»α¿¼Ñα, ¡Ñ½∞º∩
  1231.          íδßΓα« »α«τ¿ΓáΓ∞ »α«¿ºó«½∞¡πε ºá»¿ß∞ ¿º  »«ß½Ññ«óáΓѽ∞¡«ú« Σá⌐½á,
  1232.          αáß»«½«ªÑ¡¡«ú«  ¡á  ¼áú¡¿Γ¡«⌐  ½Ñ¡ΓÑ.  Å«  φΓ«⌐ »α¿τ¿¡Ñ ó«º¡¿¬áεΓ
  1233.          Γαπñ¡«ßΓ¿ »« »α¿¼Ñ¡Ñ¡¿ε ½εí«ú« αá¡ÑÑ «»¿ßá¡¡«ú« ¼ÑΓ«ñá ß«αΓ¿α«ó¬¿
  1234.          ¼áßß¿ó«ó ¬ ß«αΓ¿α«ó¬Ñ »«ß½Ññ«óáΓѽ∞¡δσ Σá⌐½«ó.
  1235.               ê¼ÑÑΓß∩ ñóá »«ñσ«ñá ¬  ß«αΓ¿α«ó¬Ñ  »«ß½Ññ«óáΓѽ∞¡δσ  Σá⌐½«ó.
  1236.          ÅÑαóδ⌐ »«ñσ«ñ »αÑñπß¼áΓα¿óáÑΓ ßτ¿Γδóá¡¿Ñ ¿¡Σ«α¼áµ¿¿ ó «»ÑαáΓ¿ó¡πε
  1237.          »á¼∩Γ∞ ¿ ß«αΓ¿α«ó¬π »α¿ »«¼«Θ¿ «ñ¡«ú« ¿º ßΓá¡ñáαΓ¡δσ ¼ÑΓ«ñ«ó ß«α-
  1238.          Γ¿α«ó¬¿ ¼áßß¿ó«ó. ìÑß¼«Γα∩ ¡á Γ«, τΓ« »α¿ Γᬫ¼ »«ñσ«ñÑ ß«αΓ¿α«ó-
  1239.  
  1240.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 27 =
  1241.  
  1242.          ¬á íπñÑΓ óδ»«½¡∩Γ∞ß∩ íδßΓα«,  αẼÑαδ «»ÑαáΓ¿ó¡«⌐ »á¼∩Γ¿ ¡á¬½áñδ-
  1243.          óáεΓ ß¿½∞¡«Ñ «úαá¡¿τÑ¡¿Ñ ¡á αẼÑα ß«αΓ¿απѼ«ú« Σá⌐½á.
  1244.               Åα¿ ¿ß»«½∞º«óá¡¿¿ óΓ«α«ú« »«ñσ«ñá, »«½πτ¿óΦÑú« ¡áºóá¡¿Ñ ß«α-
  1245.          Γ¿α«ó¬¿ ß½¿∩¡¿Ñ¼,  óÑß∞ Σá⌐½ ñѽ¿Γ∞ß∩ ¡á ñóÑ αáó¡δÑ τáßΓ¿. é »α«-
  1246.          µÑßßÑ ß«αΓ¿α«ó¬¿ ¿º ¬áªñ«ú« Σá⌐½á ßτ¿ΓδóáÑΓß∩ »« «ñ¡«¼π φ½Ñ¼Ñ¡Γπ,
  1247.          φΓá  »áαá φ½Ñ¼Ñ¡Γ«ó π»«α∩ñ«τ¿óáÑΓß∩ ¿ ñѽáÑΓß∩ ºá»¿ß∞ φ½Ñ¼Ñ¡Γ«ó ó
  1248.          ΓαÑΓ¿⌐ Σá⌐½,  αáß»«½«ªÑ¡¡δ⌐ ¡á ñ¿ß¬Ñ.  ì«óδ⌐ Σá⌐½ ºáΓѼ ß¡«óá ñÑ-
  1249.          ½¿Γß∩  ¡á ñóá Σá⌐½á ¿ π»«α∩ñ«τÑ¡¡δÑ »áαδ φ½Ñ¼Ñ¡Γ«ó «íΩÑñ¿¡∩εΓß∩ ó
  1250.          π»«α∩ñ«τÑ¡¡δÑ úαπ»»δ φ½Ñ¼Ñ¡Γ«ó »« τÑΓδαÑ φ½Ñ¼Ñ¡Γá ó ¬áªñ«⌐. çáΓѼ
  1251.          »«½πτÑ¡¡δ⌐  Σá⌐½  ß¡«óá  αáºñѽ∩ÑΓß∩ ¡á ñóá Σá⌐½á ¿ óß∩ »α«µÑñπαá
  1252.          »«óΓ«α∩ÑΓß∩ ñ« ΓÑσ »«α, »«¬á Σá⌐½ ¡Ñ íπñÑΓ «Γß«αΓ¿α«óá¡. ¥Γπ ß«α-
  1253.          Γ¿α«ó¬π-ß½¿∩¡¿Ñ ¡áºδóáεΓ ΓαÑσ½Ñ¡Γ«τ¡δ¼ ß½¿∩¡¿Ñ¼, »«ß¬«½∞¬π ó φΓ«¼
  1254.          ß½πτáÑ «ñ¡«óαѼѡ¡« ΓαÑíπÑΓß∩ ¿¼ÑΓ∞ Γα¿ Σá⌐½á /Γ.Ñ. Γα¿ ¡á¬«»¿ΓÑ-
  1255.          ½∩ ¡á ¼áú¡¿Γ¡«⌐ ½Ñ¡ΓÑ, Ñß½¿ Σá⌐½ αáß»«½áúáÑΓß∩ ¡á ½Ñ¡ΓÑ/.
  1256.               ä½∩ Γ«ú«,  τΓ«íδ  ½πτΦÑ  »«¡∩Γ∞  αáí«Γπ  ß«αΓ¿α«ó¬¿-ß½¿∩¡¿Ñ,
  1257.          αáßß¼«Γα¿¼ ß½ÑñπεΘπε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ τ¿ß½Ñ:
  1258.               1 4 3 8 6 7 2 5.
  1259.               é αѺπ½∞ΓáΓÑ  αáºí¿Ñ¡¿∩  »«½πτáΓ∞ß∩ ß½ÑñπεΘ¿Ñ »«ß½Ññ«óáΓѽ∞-
  1260.          ¡«ßΓ¿:
  1261.               1 4 3 8
  1262.               6 7 2 5.
  1263.               çáΓѼ »α«¿ºó«ñ¿Γß∩ ß½¿∩¡¿Ñ »áα φ½Ñ¼Ñ¡Γ«ó:
  1264.               1 6 - 4 7 - 2 3 - 5 8.
  1265.               ì«ó«Ñ αáºí¿Ñ¡¿Ñ ñáÑΓ ß½ÑñπεΘ¿Ñ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿:
  1266.               1 6 - 4 7
  1267.               2 3 - 5 8.
  1268.               ÉѺπ½∞ΓáΓ ß½ÑñπεΘÑú« ß½¿∩¡¿∩:
  1269.               1 2 3 6 - 4 5 7 8.
  1270.               Å«ß½Ññ¡ÑÑ αáºí¿Ñ¡¿Ñ íπñÑΓ ß½ÑñπεΘ¿¼:
  1271.               1 2 3 6
  1272.               4 5 7 8.
  1273.               ê ó αѺπ½∞ΓáΓÑ »«½πτáѼ:
  1274.               1 2 3 4 5 6 7 8.
  1275.               Åα¿ ß«αΓ¿α«ó¬Ñ ¼ÑΓ«ñ«¼ ß½¿∩¡¿∩,  ¬á¬ ó«º¼«ª¡« óδ πªÑ ºá¼ÑΓ¿-
  1276.          ½¿,  ΓαÑíπÑΓß∩  óδ»«½¡¿Γ∞ log n «»Ñαᵿ⌐ ñ«ßΓπ»á ¬ ¬áªñ«¼π Σá⌐½π,
  1277.          úñÑ "n" ∩ó½∩ÑΓß∩ τ¿ß½«¼ ß«αΓ¿απѼδσ φ½Ñ¼Ñ¡Γ«ó.
  1278.               ì¿ªÑ ñáÑΓß∩ »α«ßΓá∩ óÑαß¿∩ á½ú«α¿Γ¼á ß«αΓ¿α«ó¬¿ ¼ÑΓ«ñ«¼ ß½¿-
  1279.          ∩¡¿∩. ÅαÑñ»«½áúáÑΓß∩, τΓ« αẼÑα óσ«ñ¡«ú« Σá⌐½á ó ñóá αáºá »αÑóδ-
  1280.          ΦáÑΓ «íΩѼ ß«ñÑαªáΘÑ⌐ß∩ ó ¡Ñ¼ ¿¡Σ«α¼áµ¿¿. Å«φΓ«¼π ó ñÑ⌐ßΓóΓ¿Γѽ∞-
  1281.          ¡«ßΓ¿ ΓαÑíπÑΓß∩ ¿¼ÑΓ∞ ½¿Φ∞ «ñ¿¡ Σá⌐½.  Äñ¡á¬«, »«-ßπΘÑßΓóπ, ¼ÑΓ«ñ
  1282.          ß«αΓ¿α«ó¬¿   ß½¿∩¡¿Ñ¼   ¡Ñ  ¿º¼Ñ¡∩ÑΓß∩.  é  φΓ«¼  »α¿¼ÑαÑ  ñá¡¡«Ñ
  1283.          "filtype" «»αÑñѽ∩ÑΓß∩ ¬á¬ Σá⌐½ Γ¿»á "DataItem".  öπ¡¬µ¿∩  "Find"
  1284.          ¿ß»«½∞ºπÑΓß∩ ñ½∩ ßτ¿Γδóá¡¿∩ ¬«¡¬αÑΓ¡«⌐ ºá»¿ß¿ ¿º Σá⌐½á.
  1285.  
  1286.                { Σπ¡¬µ¿∩  "Find" ¿ß»«½∞ºπÑΓß∩ ó ß«αΓ¿α«ó¬Ñ ¼ÑΓ«ñ«¼
  1287.                  ß½¿∩¡¿∩ ñ½∩ ßτ¿Γδóá¡¿∩ ¿º Σá⌐½á ¬«¡¬αÑΓ¡«⌐ ºá»¿ß¿.}
  1288.                 function Find(var fp:filtype; i:integer):DataItem;
  1289.                 var
  1290.  
  1291.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 28 =
  1292.  
  1293.                   t:DataItem;
  1294.                 begin
  1295.                   Seek(fp, i-1);
  1296.                   Read(fp, t);
  1297.                   Find := t;
  1298.                 end;
  1299.  
  1300.                 procedure Mergesort(var fp: filetype; count:integer);
  1301.                    var
  1302.                      i, j, k, l, t, h, m, p, q, r: integer;
  1303.                     ch1, ch2:DataItem
  1304.                     up: Boolean;
  1305.                   begin
  1306.                     up := TRUE;
  1307.                     p := 1;
  1308.                     repeat
  1309.                       h := 1; m := count;
  1310.                       if up then
  1311.                       begin
  1312.                         i := 1; j := count; k := count+1; l := 2*count;
  1313.                       end else
  1314.                       begin
  1315.                         k := 1; l := count; i := count+1; j := 2*count;
  1316.                       end;
  1317.                       repeat
  1318.                         if m>=p then q := p else q := m;
  1319.                         m := m-q;
  1320.                         if m>=p then r := p else r := m;
  1321.                         m := m-r;
  1322.                         while (q<>0) and (r<>0) do
  1323.                         begin
  1324.                           if Find(fp,i) < Find(fp,j) then
  1325.                           begin
  1326.                             Seek(fp, i-1); Read(fp,ch2);
  1327.                             Seek(fp, k-1); Write(fp,ch2);
  1328.                             k := k+h; i := i+1; q := q-1;
  1329.                           end else
  1330.                           begin
  1331.                             Seek(fp, j-1); Read(fp,ch2);
  1332.                             Seek(fp, k-1); Write(fp,ch2);
  1333.                             k := k+h; j := j-1; r := r-1;
  1334.                           end;
  1335.                         end;
  1336.                         while r<>0 do
  1337.                         begin
  1338.                             Seek(fp, j-1); Read(fp,ch2);
  1339.                             Seek(fp, k-1); Write(fp,ch2);
  1340.                             k := k+h; j := j-1; r := r-1;
  1341.  
  1342.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 29 =
  1343.  
  1344.                         end;
  1345.                         while q<>0 do
  1346.                         begin
  1347.                             Seek(fp, i-1); Read(fp,ch2);
  1348.                             Seek(fp, k-1); Write(fp,ch2);
  1349.                             k := k+h; i := i+1; q := q-1;
  1350.                         end;
  1351.                            h := -1; t := k;
  1352.                            k := l;
  1353.                            l := t;
  1354.                        until m = 0:
  1355.                        up := not up;
  1356.                        p := p*2;
  1357.                      until  p >= count;
  1358.                      if not up then
  1359.                        for i := 1 to count do
  1360.                        begin
  1361.                          Seek(fp, i-1+count); Read(fp,ch2);
  1362.                          Seek(fp, i-1); Write(fp,ch2);
  1363.                        end;
  1364.                       end; { ¬o¡Ñµ ß«αΓ¿α«ó¬¿ ¼ÑΓ«ñ«¼ ß½¿∩¡¿∩ }
  1365.                                                                                
  1366.                           ÅÄêæè
  1367.          -----------------------------------------------------------------
  1368.  
  1369.               é ¡áßΓ«∩ΘÑÑ óαѼ∩ ¿¼ÑεΓß∩ íáºδ ñá¡¡δσ,  úñÑ ¿¡Σ«α¼áµ¿∩  σαá-
  1370.          ¡¿Γ∞ß∩ Γᬿ¼ «íαẫ¼, τΓ« »«½∞º«óáΓѽ∞ óαѼ∩ «Γ óαѼѡ¿ ¼«ªÑΓ »«-
  1371.          ½πτ¿Γ∞ ΓαÑíπѼδÑ ñá¡¡δÑ ¿º ß««ΓóÑΓßΓóπεΘ¿σ ºá»¿ßÑ⌐, ¬«úñá Ñ¼π ¿º-
  1372.          óÑßΓ¡δ   ¿σ   ¬½ετ¿.  ä½∩  ¡Ñπ»«α∩ñ«τÑ¡¡δσ  Σá⌐½«ó  ¿½¿  ¼áßß¿ó«ó
  1373.          ¿ß»«½∞ºπεΓß∩ «ñ¡¿ ¼ÑΓ«ñδ »«¿ß¬á,  á ñ½∩ π»«α∩ñ«τÑ¡¡δσ Σá⌐½«ó  ¿½¿
  1374.          ¼áßß¿ó«ó ¿ß»«½∞ºπεΓß∩ ñαπú¿Ñ ¼ÑΓ«ñδ »«¿ß¬á.
  1375.  
  1376.                                                                                
  1377.                           îàÆÄ䢠ÅÄêæèÇ
  1378.          -----------------------------------------------------------------
  1379.               Å«¿ß¬ ¿¡Σ«α¼áµ¿¿  ó ¡Ñ«Γß«αΓ¿α«óá¡¡«¼ ¼áßß¿óÑ ΓαÑíπÑΓ »α«óÑ-
  1380.          ñÑ¡¿∩ »«ß½Ññ«óáΓѽ∞¡«ú« »α«ß¼«Γαá ¼áßß¿óá.  Åα«ß¼«Γα ¡áτ¿¡áÑΓß∩ ß
  1381.          »Ñαó«ú«  φ½Ñ¼Ñ¡Γá  ¿  ºáóÑαΦáÑΓß∩ ½¿í« ¡á⌐ñÑ¡¡δ¼ φ½Ñ¼Ñ¡Γ«¼,  ½¿í«
  1382.          ñ«ßΓ¿ªÑ¡¿Ñ¼ ¬«¡µá ¼áßß¿óá.  ¥Γ«Γ ¼ÑΓ«ñ ñ«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩  ñ½∩
  1383.          ¡Ñ«Γß«αΓ¿α«óá¡¡δσ  ñá¡¡δσ,  ¡«  «¡ ΓᬪѠ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩
  1384.          «Γß«αΓ¿α«óá¡¡δσ ñá¡¡δσ.  àß½¿ ñá¡¡δÑ «Γß«αΓ¿α«óá¡δ,  Γ« ¼«ªÑΓ ¿ß-
  1385.          »«½∞º«óáΓ∞ß∩  ñó«¿τ¡δ⌐  »«¿ß¬,  ¬«Γ«αδ⌐  óδ»«½¡∩ÑΓß∩  º¡áτ¿Γѽ∞¡«
  1386.          íδßΓαÑÑ.
  1387.                                    Å«ß½Ññ«óáΓѽ∞¡δ⌐ »«¿ß¬                      
  1388.          -----------------------------------------------------------------
  1389.               Ç½ú«α¿Γ¼ »«ß½Ññ«óáΓѽ∞¡«ú«  »«¿ß¬á  ¿¼ÑÑΓ «τÑ¡∞ »α«ßΓ«⌐ ó¿ñ.
  1390.  
  1391.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 30 =
  1392.  
  1393.          ì¿ªÑ »αÑñßΓáó½Ñ¡á Σπ¡¬µ¿∩,  ¬«Γ«αá∩ óδ»«½¡∩ÑΓ »«¿ß¬ ó  ß¿¼ó«½∞¡«¼
  1394.          ¼áßß¿óÑ ºáñá¡¡«⌐ ñ½¿¡δ φ½Ñ¼Ñ¡Γá ß ºáñá¡¡δ¼ º¡áτÑ¡¿Ñ¼ ¬½ετá:
  1395.               function SeqSearch(item: DataArray; count:integer;
  1396.                                        key:DataItem):integer;
  1397.               var
  1398.                 t:integer;
  1399.               begin
  1400.                 t:=1;
  1401.                 while (key<>item[t]) and (t<=count) t:=t+1;
  1402.                 if t>count then SeqSearch:=0
  1403.                 else SeqSearch:=t;
  1404.               end; { ¬«¡Ñµ »«ß½Ññ«óáΓѽ∞¡«ú« »«¿ß¬á }
  1405.  
  1406.               ¥Γá Σπ¡¬µ¿∩ óδñáÑΓ ½¿í« º¡áτÑ¡¿Ñ ¿¡ñѬßá ñ½∩ ¡á⌐ñÑ¡¡«ú« φ½Ñ-
  1407.          ¼Ñ¡Γá ¼áßß¿óá,  ½¿í« ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ, ¬«úñá ΓαÑíπѼδ⌐ φ½Ñ¼Ñ¡Γ ¡Ñ
  1408.          ¡á⌐ñÑ¡.
  1409.               Åα¿ »α∩¼«¼ »«ß½Ññ«óáΓѽ∞¡«¼ »«¿ß¬Ñ ó ßαÑñ¡Ñ¼ »α«óÑα∩εΓß∩ n/2
  1410.          φ½Ñ¼Ñ¡Γ«ó. é ½πτΦѼ ß½πτáÑ íπñÑΓ »α«óÑα∩Γ∞ß∩ Γ«½∞¬« «ñ¿¡ φ½Ñ¼Ñ¡Γ,
  1411.          á  ó σπñΦѼ ß½πτáÑ íπñπΓ »α«óÑα∩Γß∩ n φ½Ñ¼Ñ¡Γ«ó.  àß½¿ ¿¡Σ«α¼áµ¿∩
  1412.          αẼÑΘáÑΓß∩ ¡á ñ¿ß¬Ñ,  Γ« »«¿ß¬ ¼«ªÑΓ íδΓ∞ «τÑ¡∞ ñ«½ú¿¼.  Äñ¡á¬«,
  1413.          Ñß½¿ ñá¡¡δÑ ¡Ñ «Γß«αΓ¿α«óá¡δ,  Γ« »«ß½Ññ«óáΓѽ∞¡δ⌐ »«¿ß¬ ∩ó½∩ÑΓß∩
  1414.          Ññ¿¡ßΓóÑ¡¡δ¼ ó«º¼«ª¡δ¼ ó ñá¡¡«¼ ß½πτáÑ ¼ÑΓ«ñ«¼ »«¿ß¬á.
  1415.                                        äó«¿τ¡δ⌐ »«¿ß¬                          
  1416.          -----------------------------------------------------------------
  1417.  
  1418.               àß½¿ ñá¡¡δÑ «Γß«αΓ¿α«óá¡δ, Γ« ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ «τÑ¡∞ σ«-
  1419.          α«Φ¿⌐ ¼ÑΓ«ñ »«¿ß¬á,  ¡áºóá¡¡δ⌐ ñó«¿τ¡δ¼ »«¿ß¬«¼. Åα¿ Γᬫ¼ »«¿ß¬Ñ
  1420.          ¿ß»«½∞ºπÑΓß∩  ¼ÑΓ«ñ  "αáºñѽ∩⌐ ¿ ó½áßΓóπ⌐".  æ¡áτá½á »α«¿ºó«ñ¿Γß∩
  1421.          »α«óÑα¬á ßαÑñ¡Ñú« φ½Ñ¼Ñ¡Γá. àß½¿ Ñú« ¬½ετ í«½∞ΦÑ ¬½ετá ΓαÑíπѼ«ú«
  1422.          φ½Ñ¼Ñ¡Γá,  Γ«  ñѽáÑΓß∩  »α«óÑα¬á ñ½∩ ßαÑñ¡Ñú« φ½Ñ¼Ñ¡Γá ¿º »Ñαó«⌐
  1423.          »«½«ó¿¡δ.  é »α«Γ¿ó¡«¼ ß½πτáÑ ñѽáÑΓß∩ »α«óÑα¬á ßαÑñ¡Ñú« φ½Ñ¼Ñ¡Γá
  1424.          ¿º óΓ«α«⌐ »«½«ó¿¡δ.  ¥Γ«Γ »α«µÑßß »«óΓ«α∩ÑΓß∩ ñ« ΓÑσ »«α, »«¬á ¡Ñ
  1425.          íπñÑΓ ¡á⌐ñÑ¡ ΓαÑíπѼδ⌐ φ½Ñ¼Ñ¡Γ ¿½¿ ¡Ñ íπñÑΓ í«½∞ΦÑ  φ½Ñ¼Ñ¡Γ«ó ñ½∩
  1426.          »α«óÑન.
  1427.               ìá»α¿¼Ñα, ñ½∩ »«¿ß¬á τ¿ß½á 4 ó ¼áßß¿óÑ 1 2 3 4 5  6  7  8  9
  1428.          π¬áºá¡¡δ¼  ¼ÑΓ«ñ«¼  ß¡áτá½á  ñѽáÑΓß∩ »α«óÑα¬á ßαÑñ¡Ñú« φ½Ñ¼Ñ¡Γá,
  1429.          ¬«Γ«αδ¼ ∩ó½∩ÑΓß∩ τ¿ß½« 5.  Å«ß¬«½∞¬π φëàφ½Ñ¼Ñ¡Γ í«½∞ΦÑ 4, »«¿ß¬
  1430.          íπñÑΓ »α«ñ«½ªÑ¡ ó »Ñαó«⌐ »«½«ó¿¡Ñ ¼áßß¿óá, Γ.Ñ. ßαÑñ¿ τ¿ßѽ
  1431.               1 2 3 4 5.  çñÑß∞ ßαÑñ¡¿¼ φ½Ñ¼Ñ¡Γ«¼ ∩ó½∩ÑΓß∩ 3. ¥Γ« º¡áτÑ¡¿Ñ
  1432.               ¼Ñ¡∞ΦÑ 4
  1433.          ¿ »«φΓ«¼π »Ñαóá∩ »«½«ó¿¡á ¡Ñ íπñÑΓ í«½∞ΦÑ αáßß¼áΓα¿óáΓ∞ß∩ ¿ »«¿ß¬
  1434.          »α«ñ«½ªáÑΓß∩ ßαÑñ¿ τ¿ßѽ
  1435.               4 5. ìá ß½ÑñπεΘѼ ΦáúÑ ¡πª¡δ⌐ φ½Ñ¼Ñ¡Γ íπñÑΓ ¡á⌐ñÑ¡. Åα¿ ñó«-
  1436.               ¿τ¡«¼ »«¿ß¬Ñ τ¿ß½« ßαáó¡Ñ¡¿⌐ ó σπñΦѼ ß½πτáÑ αáó¡«
  1437.          log n.  ä½∩ ßαÑñ¡Ñú« ß½πτá∩ φΓ« º¡áτÑ¡¿Ñ íπñÑΓ ¡Ñ߬«½∞¬« ½πτΦÑ, á
  1438.  
  1439.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 31 =
  1440.  
  1441.          ó ½πτΦѼ ß½πτáÑ «¡« αáó¡« Ññ¿¡¿µÑ.
  1442.               Åα¿ó«ñ¿¼πε ¡¿ªÑ Σπ¡¬µ¿ε,  ¬«Γ«αá∩ αÑ὿ºπÑΓ  ñó«¿τ¡δ⌐  »«¿ß¬
  1443.          ñ½∩ ß¿¼ó«½∞¡δσ ¼áßß¿ó«ó, ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ »«¿ß¬á ½εí«⌐ »α«-
  1444.          ¿ºó«½∞¡«⌐ ßΓαπ¬Γπαδ ñá¡¡δσ,  ¿º¼Ñ¡¿ó í½«¬ ßαáó¡Ñ¡¿∩ ¿ «»αÑñѽѡ¿Ñ
  1445.          Γ¿»á ñá¡¡«ú« "DataItem".
  1446.               function BSearch (item: DataArray; count:integer;
  1447.                                       key:DataItem):integer;
  1448.               var
  1449.                 low, high, mid: integer;
  1450.                 found:boolean;
  1451.               begin
  1452.                 low:=1; high:=count;
  1453.                 found:=false;         { ¡Ñ ¡á⌐ñÑ¡ }
  1454.                 while (low<=high) and (not found) do
  1455.                 begin
  1456.                   mid:=(low+high) div 2;
  1457.                   if key<item[mid] then high:=mid-1
  1458.                   else if key>item[mid] then low:=mid+1
  1459.                   else found:=true;  { ¡á⌐ñÑ¡ }
  1460.                 end;
  1461.                 if found then BSearch:=mid
  1462.                 else BSearch:=0;  { ¡Ñ ¡á⌐ñÑ¡ }
  1463.               end; { ¬«¡Ñµ »«¿ß¬á }
  1464.               é ß½ÑñπεΘÑ⌐    ú½áóÑ   ¿ßß½ÑñπεΓß∩   αẽ¿τ¡δÑ   »«ñσ«ñδ   ¬
  1465.          »αÑñßΓáó½Ñ¡¿ε ñá¡¡δσ, ¬«Γ«αδÑ ó ¡Ñ¬«Γ«αδσ ß½πτá∩σ º¡áτ¿Γѽ∞¡« «í-
  1466.          ½ÑúτáεΓ ß«αΓ¿α«ó¬π ¿ »«¿ß¬.
  1467.  
  1468.  
  1469.  
  1470.  
  1471.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 32 =
  1472.  
  1473.                     âïÇéÇ 2. ÄùàÉàäê, æÆàèê, æéƒçÇìì¢à æÅêæèê ê äàÉà飃        
  1474.          -----------------------------------------------------------------
  1475.  
  1476.               Åα«úαá¼¼δ ß«ßΓ«∩Γ ¿º á½ú«α¿Γ¼«ó ¿ ßΓαπ¬Γπα  ñá¡¡δσ.  ò«α«Φ¿Ñ
  1477.          »α«úαá¼¼δ  ¿ß»«½∞ºπεΓ  »αÑ¿¼πΘÑßΓóá ¿σ «í«¿σ.  éδí«α ¿ αáºαáí«Γ¬á
  1478.          ßΓαπ¬Γπαδ ñá¡¡δσ ßΓ«½∞ ªÑ ó᪡á,  ¬á¬ ¿ αáºαáí«Γ¬á »α«µÑñπαδ, ¬«-
  1479.          Γ«αá∩ ¼á¡¿»π½¿απÑΓ ¿¼¿. Äαúá¡¿ºáµ¿∩ ¿¡Σ«α¼áµ¿¿ ¿ ¼ÑΓ«ñδ ñ«ßΓπ»á ¬
  1480.          ¡Ñ⌐ «íδτ¡« «»αÑñѽ∩εΓß∩ σáαá¬ΓÑα«¼  ßΓ«∩ΘÑ⌐  »ÑαÑñ  »α«úαá¼¼¿ßΓ«¼
  1481.          ºáñáτ¿.  Å«φΓ«¼π ¬áªñδ⌐ »α«úαá¼¼¿ßΓ ñ«½ªÑ¡ ¿¼ÑΓ∞ ó ßó«Ñ¼ "íáúáªÑ"
  1482.          ß««ΓóÑΓßΓóπεΘ¿Ñ ¼ÑΓ«ñδ »αÑñßΓáó½Ñ¡¿∩  ¿  »«¿ß¬á  ñá¡¡δσ,  ¬«Γ«αδÑ
  1483.          ¼«ª¡« »α¿¼Ñ¡¿Γ∞ ó ¬áªñ«⌐ ¬«¡¬αÑΓ¡«⌐ ß¿Γπᵿ¿.
  1484.               é ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ßΓαπ¬Γπαδ ñá¡¡δσ ó ¥éî ßΓα«∩Γß∩ ¡á «ß¡«óÑ
  1485.          íẫóδσ Γ¿»«ó ñá¡¡δσ,  Γᬿσ ¬á¬ "char",  "integer",  "real".  ìá
  1486.          ß½ÑñπεΘѼ πα«ó¡Ñ ¡áσ«ñ∩Γß∩ ¼áßß¿óδ,  »αÑñßΓáó½∩εΘ¿Ñ ß«í«⌐  ¡áí«αδ
  1487.          íẫóδσ  Γ¿»«ó  ñá¡¡δσ.  çáΓѼ ¿ñπΓ ºá»¿ß¿,  »αÑñßΓáó½∩εΘ¿Ñ ß«í«⌐
  1488.          úαπ»»δ Γ¿»«ó ñá¡¡δσ, ñ«ßΓπ» ¬ ¬«Γ«αδ¼ «ßπΘÑßΓó½∩ÑΓß∩ »« «ñ¡«¼π ¿º
  1489.          ñá¡¡δσ. á »«ß½Ññ¡Ñ¼ πα«ó¡Ñ, ¬«úñá πªÑ ¡Ñ αáßß¼áΓα¿óáεΓß∩ Σ¿º¿τÑß-
  1490.          ¬¿Ñ á߻ѬΓδ »αÑñßΓáó½Ñ¡¿∩ ñá¡¡δσ, ó¡¿¼á¡¿Ñ «íαáΘáÑΓß∩ ¡á »«α∩ñ«¬,
  1491.          ó  ¬«Γ«α«¼ ñá¡¡δÑ σαá¡∩Γß∩ ¿ ó ¬«Γ«α«¼ ñѽáÑΓß∩ ¿σ »«¿ß¬.  Å« ßπ-
  1492.          ΘÑßΓóπ Σ¿º¿τÑ߬¿Ñ ñá¡¡δÑ ßó∩ºá¡δ ß "¼áΦ¿¡«⌐ ñá¡¡δσ",  ¬«Γ«αá∩ π»-
  1493.          αáó½∩ÑΓ  ß»«ß«í«¼ ñ«ßΓπ»á ¬ ¿¡Σ«α¼áµ¿¿ ó óáΦÑ⌐ »α«úαá¼¼Ñ. ê¼ÑÑΓß∩
  1494.          τÑΓδαÑ ΓᬿѠ"¼áΦ¿¡δ":
  1495.               - «τÑαÑñ∞;
  1496.               - ßΓѬ;
  1497.               - ßó∩ºá¡¡δ⌐ ß»¿ß«¬;
  1498.               - ñó«¿τ¡«Ñ ñÑαÑó«.
  1499.               èáªñδ⌐ ¼ÑΓ«ñ ¿ß»«½∞ºπÑΓß∩ »α¿ αÑΦÑ¡¿¿  «»αÑñѽѡ¡«ú«  ¬½áßßá
  1500.          ºáñáτ. èáªñδ⌐ ¼ÑΓ«ñ »« ßπΘÑßΓóπ ∩ó½∩ÑΓß∩ ¡Ñ¬¿¼ "πßΓα«⌐ßΓó«¼", ¬«-
  1501.          Γ«α«Ñ «íÑß»Ñτ¿óáÑΓ ñ½∩ ºáñá¡¡«⌐  ¿¡Σ«α¼áµ¿¿  «»αÑñѽѡ¡δ⌐  ß»«ß«í
  1502.          σαá¡Ñ¡¿∩  ¿  »α¿  ºá»α«ßÑ  óδ»«½¡∩ÑΓ «»αÑñѽѡ¡δÑ «»Ñαᵿ¿ »«¿ß¬á
  1503.          ñá¡¡δσ. é ¬áªñ«¼ ¿º φΓ¿σ ¼ÑΓ«ñ«ó ¿ß»«½∞ºπÑΓß∩ ñóÑ «»Ñαᵿ¿: ñ«íá-
  1504.          ó¿Γ∞  φ½Ñ¼Ñ¡Γ ¿ ¡á⌐Γ¿ φ½Ñ¼Ñ¡Γ /»«ñ φ½Ñ¼Ñ¡Γ«¼ »«¡¿¼áÑΓß∩ ¡Ñ¬«Γ«αá∩
  1505.          ¿¡Σ«α¼áµ¿«¡¡á∩ Ññ¿¡¿µá/. é φΓ«⌐ ú½áóÑ íπñÑΓ »«¬áºá¡«, ¬á¬ φΓ¿ ¼Ñ-
  1506.          Γ«ñδ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ó óáΦ¿σ »α«úαá¼¼áσ.
  1507.  
  1508.  
  1509.  
  1510.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 33 =
  1511.  
  1512.                                                  ÄùàÉàäê                       
  1513.          -----------------------------------------------------------------
  1514.  
  1515.               ÄτÑαÑñ∞ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ½¿¡Ñ⌐¡δ⌐ ß»¿ß«¬ ñá¡¡δσ,  ñ«ßΓπ» ¬
  1516.          ¬«Γ«α«¼π «ßπΘÑßΓó½∩ÑΓß∩ »« »α¿¡µ¿»π "»Ñαóδ⌐ ó«Φѽ,  »Ñαóδ⌐ óδΦѽ"
  1517.          /¿¡«úñá ß«¬αáΘÑ¡¡« Ñú« ¡áºδóáεΓ ¼ÑΓ«ñ«¼ ñ«ßΓπ»á  FIFO/.  ¥½Ñ¼Ñ¡Γ,
  1518.          ¬«Γ«αδ⌐ íδ½ »Ñαóδ¼ »«ßΓáó½Ñ¡ ó «τÑαÑñ∞,  íπñÑΓ »Ñαóδ¼ »«½πτÑ¡ »α¿
  1519.          »«¿ß¬Ñ.  ¥½Ñ¼Ñ¡Γ, »«ßΓáó½Ñ¡¡δ⌐ ó «τÑαÑñ∞ óΓ«αδ¼, »α¿ »«¿ß¬Ñ íπñÑΓ
  1520.          »«½πτÑ¡ ΓᬪѠóΓ«αδ¼ ¿ Γ.ñ. ¥Γ«Γ ß»«ß«í ∩ó½∩ÑΓß∩ Ññ¿¡ßΓóÑ¡¡δ¼ »α¿
  1521.          »«ßΓá¡«ó¬Ñ φ½Ñ¼Ñ¡Γ«ó ó «τÑαÑñ∞ ¿ »α¿ »«¿ß¬Ñ φ½Ñ¼Ñ¡Γ«ó  ó «τÑαÑñ¿.
  1522.          Åα¿¼Ñ¡Ñ¡¿Ñ  «τÑαÑñ¿  ¡Ñ  »«ºó«½∩ÑΓ  ñѽáΓ∞ »α∩¼«⌐ ñ«ßΓπ» ¬ ½εí«¼π
  1523.          ¬«¡¬αÑΓ¡«¼π φ½Ñ¼Ñ¡Γπ.
  1524.               é »«óßÑñ¡Ñó¡«⌐  ª¿º¡¿  «τÑαÑñ¿ óßΓαÑτáεΓß∩ τáßΓ«.  ìá»α¿¼Ñα,
  1525.          «τÑαÑñ∞ ó íᡬѠ¿½¿ «τÑαÑñ∞ ó ¬áΣÑΓÑα¿∩σ ß  íδßΓαδ¼ «íß½πª¿ó᡿Ѽ
  1526.          ∩ó½∩εΓß∩  «τÑαÑñ∞ε  ó  π¬áºá¡¡«¼ óδΦÑ ß¼δ߽Ѡ/¿ß¬½ετá∩ ΓÑ ß½πτáÑ,
  1527.          ¬«úñá τѽ«óѬ »δΓáÑΓß∩ ñ«í¿Γ∞ß∩ «íß½πª¿óá¡¿∩ ó¡Ñ  «τÑαÑñ¿!/.  ä½∩
  1528.          Γ«ú«,  τΓ«íδ ½πτΦÑ »«¡∩Γ∞ αáí«Γπ «τÑαÑñ¿, αáßß¼«Γα¿¼ ñóÑ »α«µÑñπ-
  1529.          αδ:  »«ßΓá¡«ó¬á ó «τÑαÑñ∞ ¿ óδí«α¬á ¿º  «τÑαÑñ¿.  Åα¿  óδ»«½¡Ñ¡¿¿
  1530.          »α«µÑñπαδ  »«ßΓᡫ󬿠ó «τÑαÑñ∞ φ½Ñ¼Ñ¡Γ »«¼ÑΘáÑΓß∩ ó ¬«¡Ñµ «τÑαÑ-
  1531.          ñ¿.  Åα¿ óδ»«½¡Ñ¡¿¿ »α«µÑñπαδ óδí«α¬¿ ¿º «τÑαÑñ¿ ¿º ¡ÑÑ πñá½∩ÑΓß∩
  1532.          »Ñαóδ⌐  φ½Ñ¼Ñ¡Γ,  ¬«Γ«αδ⌐  ∩ó½∩ÑΓß∩ αѺπ½∞ΓáΓ«¼ óδ»«½¡Ñ¡¿∩ ñá¡¡«⌐
  1533.          »α«µÑñπαδ.  Éáí«Γá «τÑαÑñ¿ »α«¿½½εßΓα¿α«óá¡á  ¡á  α¿ß.4.  æ½ÑñπÑΓ
  1534.          »«¼¡¿Γ∞, τΓ« »α¿ óδí«α¬Ñ ¿º «τÑαÑñ¿ ¿º ¡ÑÑ ñÑ⌐ßΓó¿Γѽ∞¡« πñá½∩ÑΓ-
  1535.          ß∩ «ñ¿¡ φ½Ñ¼Ñ¡Γ.  àß½¿ φëàφ½Ñ¼Ñ¡Γ ¡¿úñÑ ¡Ñ íπñÑΓ ß«σαá¡Ñ¡, Γ« ó
  1536.          »«ß½ÑñßΓó¿¿ ¬ ¡Ñ¼π ¡Ñ½∞º∩ íπñÑΓ «ßπΘÑßΓó¿Γ∞ ñ«ßΓπ».
  1537.  
  1538.                 Ä»Ñαᵿ∩                 æ«ñÑন¼«Ñ «τÑαÑñ¿
  1539.               1 Qstore(A)                A
  1540.               1 Qstore(B)                A B
  1541.               1 Qstore(C)                A B C
  1542.               2 Qretrieve returns A      B C
  1543.               1 Qstore(D)                B C D
  1544.               2 Qretrieve returns B      C D
  1545.               2 Qretrieve returns C      D
  1546.  
  1547.                        É¿ß.4. Éáí«Γá «τÑαÑñ¿:
  1548.              1 - »«ßΓá¡«ó¬á ó  «τÑαÑñ∞;
  1549.              2 - óδí«α¬á ¿º «τÑαÑñ¿ φ½Ñ¼Ñ¡Γá Ç, é, æ.
  1550.  
  1551.               ÄτÑαÑñ¿ ó »α«úαá¼¼¿α«óá¡¿¿ ¿ß»«½∞ºπεΓß∩ ó«  ¼¡«ú¿σ  ß½πτá∩σ,
  1552.          ¡á»α¿¼Ñα,  »α¿  ¼«ñѽ¿α«óá¡¿¿ («íßπªñáÑΓß∩ ¡¿ªÑ ó ß««ΓóÑΓßΓóπεΘÑ⌐
  1553.          ú½áóÑ),  »α¿ »½á¡¿α«óá¡¿¿ αáí«Γ (¼ÑΓ«ñ ÅàÉÆ ¿½¿  úαáΣ¿¬¿  âáΓΓá),
  1554.          »α¿ íπΣÑα¿ºáµ¿¿ óó«ñá-óδó«ñá.
  1555.               é ¬áτÑßΓóÑ »α¿¼Ñαá αáßß¼«Γα¿¼ »α«ßΓπε »α«úαá¼¼π »½á¡¿α«óá¡¿∩
  1556.          »αÑñ»¿ßá¡¿⌐,  ¬«Γ«αá∩ »«ºó«½∩ÑΓ «íαáΘáΓ∞ß∩ ¬ ¡Ñ߬«½∞¬¿¼ »αÑñ»¿ßá-
  1557.          ¡¿∩¼.  Åα¿ ¬áªñ«¼ «íαáΘÑ¡¿¿ »αÑñ»¿ßá¡¿Ñ πñá½∩ÑΓß∩ ¿º ß»¿ß¬á ¿  ¡á
  1558.          φ¬αá¡  óδó«ñ¿Γß∩ ß½ÑñπεΘÑÑ »αÑñ»¿ßá¡¿Ñ.  ä½∩ »α«ßΓ«Γδ ó »α«úαá¼¼Ñ
  1559.          ¿ß»«½∞ºπÑΓß∩ ¼áßß¿ó ß¿¼ó«½∞¡δσ ßΓ᫬  ñ½∩  π»αáó½Ñ¡¿∩  ß«íδΓ¿∩¼¿.
  1560.  
  1561.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 34 =
  1562.  
  1563.          Ä»¿ßá¡¿Ñ  »αÑñ»¿ßá¡¿∩ «úαá¡¿τ¿óáÑΓß∩ 80 ß¿¼ó«½á¼¿ ¿ τ¿ß½« »αÑñ»¿-
  1564.          ßá¡¿⌐ ¡Ñ ñ«½ª¡« »αÑóδΦáΓ∞ 100. ÅαѪñÑ óßÑú« ó φΓ«⌐ »α«úαἼѠ»½á-
  1565.          ¡¿α«óá¡¿∩  ñ«½ª¡δ  íδΓ∞ »αÑñπß¼«ΓαÑ¡δ »α«µÑñπαá »«ßΓᡫ󬿠ó «τÑ-
  1566.          αÑñ∞ ¿ »α«µÑñπαá óδí«α¬¿ ¿º  «τÑαÑñ¿.  ¥Γ¿  »α«µÑñπαδ  »α¿ó«ñ∩Γß∩
  1567.          ¡¿ªÑ  ¿ ñáεΓß∩ ¡Ñ«íσ«ñ¿¼δÑ «»¿ßá¡¿∩ ú½«íá½∞¡δσ »ÑαѼѡ¡δσ ¿ Γ¿»«ó
  1568.          ñá¡¡δσ.
  1569.               const
  1570.                 MAX_EVENT = 100;
  1571.  
  1572.               type
  1573.                 EvtType = string[80];
  1574.                 var
  1575.                   event: array[1..MAX_EVENT] of EvtType;
  1576.                   spos, rpos: integer;
  1577.  
  1578.                 {ñ«íáó¿Γ∞ ó «τÑαÑñ∞}
  1579.                 procedure Qstore(q:EvtType);
  1580.                 begin
  1581.                   if spos=MAX_EVENT then
  1582.                     WriteLn('List full')
  1583.                   else
  1584.                   begin
  1585.                     event[spos]:=q;
  1586.                     spos:=spos+1;
  1587.                   end;
  1588.               end; {¬«¡Ñµ »α«µÑñπαδ »«ßΓᡫ󬿠ó «τÑαÑñ∞}
  1589.  
  1590.               { óδí«α¬á «íΩѬΓá ¿º «τÑαÑñ¿ }
  1591.               function Qretrieve:EvtType;
  1592.               begin
  1593.                 if rpos=spos then
  1594.                 begin
  1595.                   WriteLn('No appointments scheduled.');
  1596.                   Qretrieve := '';
  1597.                 end else
  1598.                 begin
  1599.                   rpos:=rpos+1;
  1600.                   Qretrieve := event[rpos-1];
  1601.                 end;
  1602.               end; { ¬«¡Ñµ »α«µÑñπαδ óδí«α¬¿ ¿º «τÑαÑñ¿ }
  1603.  
  1604.               é αáí«ΓÑ φΓ¿σ Σπ¡¬µ¿⌐ ¿ß»«½∞ºπεΓß∩ Γα¿  ú½«íá½∞¡δÑ  »ÑαѼѡ-
  1605.          ¡δÑ:  "spos",  ¬«Γ«αá∩ ß«ñÑαª¿Γ ¿¡ñѬߠ߽ÑñπεΘÑú« ßó«í«ñ¡«ú« φ½Ñ-
  1606.          ¼Ñ¡Γá;  "rpos",  ¬«Γ«αá∩ ß«ñÑαª¿Γ ¿¡ñѬߠ ß½ÑñπεΘÑú«  óδí¿αáѼ«ú«
  1607.          φ½Ñ¼Ñ¡Γá ¿ "event",  ¬«Γ«αá∩ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¼áßß¿ó ß¿¼ó«½∞¡δσ
  1608.          ßΓ᫬ ß «»¿ß᡿Ѽ »αÑñ»¿ßá¡¿⌐.  ÅÑαѼѡ¡δÑ "spos" ¿ "rpos" ñ«½ª¡δ
  1609.          íδΓ∞ πßΓá¡«ó½Ñ¡δ ó ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ ñ« »Ñαó«ú« «íαáΘÑ¡¿∩ ¬ »α«µÑ-
  1610.          ñπαá¼ »«ßΓᡫ󬿠ó «τÑαÑñ∞ ¿ óδí«α¬¿ ¿º «τÑαÑñ¿.
  1611.  
  1612.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 35 =
  1613.  
  1614.               é φΓ«⌐ »α«úαἼѠ»α«µÑñπαá »«ßΓᡫ󬿠ó «τÑαÑñ∞ »«¼ÑΘáÑΓ ¡«-
  1615.          óδÑ ß«íδΓ¿∩ ó ¬«¡Ñµ ß»¿ß¬á ¿ ñѽáÑΓ »α«óÑα¬π  ºá»«½¡Ñ¡¿∩  ß»¿ß¬á.
  1616.          öπ¡¬µ¿∩  óδí«α¬¿ ¿º «τÑαÑñ¿ óδí¿αáÑΓ ß«íδΓ¿∩ ¿º «τÑαÑñ¿ »α¿ ¡Ñ«í-
  1617.          σ«ñ¿¼«ßΓ¿ ¿σ «íαáí«Γ¬¿. è«úñá »½á¡¿απÑΓß∩ ¡«ó«Ñ ß«íδΓ¿Ñ, »ÑαѼѡ-
  1618.          ¡á∩ "spos" πóѽ¿τ¿óáÑΓß∩ ¡á Ññ¿¡¿µπ, á ¬«úñá ß«íδΓ¿Ñ ºáóÑαΦáÑΓß∩,
  1619.          Γ« πóѽ¿τ¿óáÑΓß∩ ¡á Ññ¿¡¿µπ »ÑαѼѡ¡á∩ "rpos".  öá¬Γ¿τÑ߬¿  »ÑαÑ-
  1620.          ¼Ñ¡¡á∩ "rpos" »αÑß½ÑñπÑΓ »ÑαѼѡ¡πε "spos" ó »α«σ«ñáσ »« «τÑαÑñ¿.
  1621.          ¥Γ«Γ »α«µÑßß ¿½½εßΓα¿απÑΓß∩ ¡á  α¿ß.5.  àß½¿  º¡áτÑ¡¿Ñ  π¬áºáΓѽ∩
  1622.          ßó«í«ñ¡«ú«  ¼ÑßΓá  ß«ó»áñáÑΓ  ß«  º¡áτÑ¡¿Ñ¼ π¬áºáΓѽ∩ óδí¿αáѼ«ú«
  1623.          φ½Ñ¼Ñ¡Γá,  Γ« φΓ« «º¡áτáÑΓ,  τΓ« ó «τÑαÑñ¿ ¡ÑΓ  ß«íδΓ¿⌐.  æ½ÑñπÑΓ
  1624.          »«¼¡¿Γ∞,  τΓ« σ«Γ∩ Σπ¡¬µ¿∩ óδí«α¬¿ φ½Ñ¼Ñ¡Γá ¿º «τÑαÑñ¿ ó ñÑ⌐ßΓó¿-
  1625.          Γѽ∞¡«ßΓ¿ ¡Ñ ¡áαπΦáÑΓ ¿¡Σ«α¼áµ¿ε ó «τÑαÑñ¿,  »«óΓ«α¡δ⌐  ñ«ßΓπ»  ¬
  1626.          ¡Ñ⌐ ¡Ñ󫺼«ªÑ¡ ¿ Σá¬Γ¿τÑ߬¿ «¡á ¿ßτѺáÑΓ.
  1627.               ì¿ªÑ »α¿ó«ñ¿Γß∩ µÑ½¿¬«¼  »α«úαá¼¼á,  «ßπΘÑßΓó½∩εΘá∩  »α«ßΓ«Ñ
  1628.          »½á¡¿α«óá¡¿Ñ »αÑñ»¿ßá¡¿∩¼¿. éδ ¼«ªÑΓÑ πß«óÑαΦÑ¡ßΓó«óáΓ∞ φΓπ »α«ú-
  1629.          αá¼¼π »« ß«íßΓóÑ¡¡«¼π ªÑ½á¡¿ε.
  1630.  
  1631.  
  1632.  
  1633.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 36 =
  1634.  
  1635.                                     û¿¬½¿τÑ߬á∩ «τÑαÑñ∞                        
  1636.          -----------------------------------------------------------------
  1637.  
  1638.                                 spos 2
  1639.               1 Queue        ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
  1640.                 at Start-up  │  │  │  │  │  │  │  │  │  │  │  │
  1641.                              └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘
  1642.                                 rpos 3
  1643.                                    spos 2
  1644.               4 Qstore('A')  ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
  1645.                              │A │  │  │  │  │  │  │  │  │  │  │
  1646.                              └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘
  1647.                                 rpos 3
  1648.                                       spos 2
  1649.               4 Qstore('B')  ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
  1650.                              │A │B │  │  │  │  │  │  │  │  │  │
  1651.                              └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘
  1652.                                 rpos 3
  1653.                                       spos 2
  1654.               5 Qreirieve    ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
  1655.                              │A │B │  │  │  │  │  │  │  │  │  │
  1656.                              └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘
  1657.                                   rpos 3
  1658.                                       spos 2
  1659.               5 Qreirieve    ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
  1660.                              │A │B │  │  │  │  │  │  │  │  │  │
  1661.                              └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘
  1662.                                       rpos 3
  1663.                                          spos 2
  1664.               4 Qstore('C')  ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
  1665.                              │A │B │C │  │  │  │  │  │  │  │  │
  1666.                              └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘
  1667.                                       rpos 3
  1668.               É¿ß.5. ô¬áºáΓѽ∞ »«¿ß¬á »αÑß½ÑñπÑΓ π¬áºáΓѽ∞ ßó«í«ñ¡«ú« ¼Ñß-
  1669.                      Γá  ó  «τÑαÑñ¿:
  1670.          1 - «τÑαÑñ∞ ó ¿ßσ«ñ¡«¼ »«½«ªÑ¡¿¿;
  1671.          2 - π¬áºáΓѽ∞ ßó«í«ñ¡«ú« ¼ÑßΓá ó  «τÑαÑñ¿;
  1672.          3 - π¬áºáΓѽ∞ ß½ÑñπεΘÑú« óδí¿αáѼ«ú« φ½Ñ¼Ñ¡Γá;
  1673.          4 - »α«µÑñπαá »«ßΓᡫ󬿠ó «τÑαÑñ∞;
  1674.          5 - Σπ¡¬µ¿∩ óδí«α¬¿ ¿º «τÑαÑñ¿.
  1675.  
  1676.               { »α«ßΓ«Ñ  »½á¡¿α«óá¡¿Ñ »αÑñ»¿ßá¡¿∩¼¿ }
  1677.               procram MiniScheduler;
  1678.  
  1679.               uses Grt;
  1680.  
  1681.               const
  1682.                 MAX_EVENT = 100;
  1683.  
  1684.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 37 =
  1685.  
  1686.  
  1687.               type
  1688.                 EvtType = string[80];
  1689.  
  1690.               var
  1691.                 event: array[1..MAX_EVENT] of EvtType;
  1692.                 spos, rpos, t: integer;
  1693.                 ch:char;
  1694.                 done:boolean;
  1695.  
  1696.               { ñ«íáó¿Γ∞ ó «τÑαÑñ∞ }
  1697.               procedure Qstore(q:EvtType);
  1698.               begin
  1699.                 if spos=MAX_EVENT then
  1700.                   WriteLn('List full')
  1701.                 else
  1702.                 begin
  1703.                   event[spos] := q;
  1704.                   spos := spos+1;
  1705.                 end;
  1706.               end; { ¬«¡Ñµ »α«µÑñπαδ »«ßΓᡫ󬿠ó «τÑαÑñ∞ }
  1707.  
  1708.               { óδí«α¬á «íΩѬΓá ¿º «τÑαÑñ¿ }
  1709.               function Qretrieve:EvtType;
  1710.               begin
  1711.                 if rpos=spos then
  1712.                 begin
  1713.                   WriteLn('No appointments scheduled.);
  1714.                   Qretrieve := '';
  1715.                 end else
  1716.                       begin
  1717.                         rpos := rpos+1;
  1718.                         Qretrieve := event[rpos-1];
  1719.                       end;
  1720.                     end; { ¬«¡Ñµ Σπ¡¬µ¿¿ óδí«α¬¿ φ½Ñ¼Ñ¡Γá  ¿º  «τÑαÑñ¿ }
  1721.  
  1722.                    { óóÑßΓ¿ »αÑñ»¿ß᡿Ѡ󠻽᡿α«óΘ¿¬ }
  1723.  
  1724.               procedure Enter;
  1725.               var
  1726.                 s: string[80];
  1727.  
  1728.               begin
  1729.                 repeat
  1730.                   Write('Enter appointment',spos+1, ':');
  1731.                   ReadLn(s);
  1732.                   WriteLn;
  1733.                   if Length(s)<>0 then Qstore(s);
  1734.  
  1735.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 38 =
  1736.  
  1737.                 until Length(s)=0;
  1738.               end; { ¬«¡Ñµ »α«µÑñπαδ óó«ñá }
  1739.  
  1740.               { óδóÑßΓ¿ »αÑñ»¿ßá¡¿Ñ }
  1741.               procedure Review;
  1742.               var
  1743.                 t: integer;
  1744.               begin
  1745.                 for t:=rpos to spos-1 do WriteLn(t+1,':',event[t]);
  1746.               end; { ¬«¡Ñµ »α«µÑñπαδ óδó«ñá }
  1747.  
  1748.               { á¬Γ¿ó¿º¿α«óáΓ∞ »αÑñ»¿ßá¡¿Ñ }
  1749.               procedure Periorm;
  1750.               var
  1751.                 s:string[80];
  1752.               begin
  1753.                 s:=Qretrieve;  { »«½πτ¿Γ∞ ß½ÑñπεΘÑÑ »αÑñ»¿ßá¡¿Ñ }
  1754.                 if Length(s)<>0 then WriteLn(s);
  1755.               end; { ¬«¡Ñµ »α«µÑñπαδ   á¬Γ¿ó¿ºáµ¿¿   »αÑñ»¿ßá¡¿⌐ }
  1756.  
  1757.               begin  { ¡áτὫ »½á¡¿α«óΘ¿¬á }
  1758.                 for t:= 1 to MAX_EVENT do event[t]:=''; { ¿¡¿µ¿á½¿ºáµ¿∩
  1759.                      ß«íδΓ¿⌐}
  1760.                 spos:=0; rpos:=0; done:=FALSE;
  1761.  
  1762.                 repeat
  1763.                   Write('Enter,Review, Pertorm,Quit: ');
  1764.                   ch:= ReadKey;
  1765.                   WriteLn;
  1766.                   Case upcase(ch) of
  1767.                     'E':Enter;
  1768.                     'R':Review;
  1769.                     'P':Perform;
  1770.                     'Q':done:=TRUE;
  1771.                   end;
  1772.                 until done=TRUE;
  1773.               end.
  1774.  
  1775.               Åα¿ τΓÑ¡¿¿ »αÑñδñπΘÑú« αáºñѽá óδ ó«º¼«ª¡« »«ñπ¼á½¿ «í π½πτ-
  1776.          ΦÑ¡¿¿  »α«úαá¼¼δ  »½á¡¿α«óá¡¿∩  »αÑñ»¿ßá¡¿∩¼¿.  é¼ÑßΓ«  «ßΓá¡«ó¬¿
  1777.          »α«úαá¼¼δ »« ñ«ßΓ¿ªÑ¡¿ε »αÑñѽᠼáßß¿óá, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ »«ñ
  1778.          «τÑαÑñ∞, ¼«ª¡« π¬áºáΓѽ∞ »«ßΓᡫ󬿠ó «τÑαÑñ∞ ¿ π¬áºáΓѽ∞ óδí«α¬¿
  1779.          ¿º «τÑαÑñ¿ óÑα¡πΓ∞ ¡á ¡áτὫ ¼áßß¿óá.  é φΓ«¼  ß½πτáÑ  ó  «τÑαÑñ∞
  1780.          ¼«ª¡« ñ«íáó½∩Γ∞ ½εí«Ñ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó ó Γ« óαѼ∩ ¬á¬ φ½Ñ¼Ñ¡Γδ íπ-
  1781.          ñπΓ ΓᬪѠóδí¿αáΓ∞ß∩ ¿º «τÑαÑñ¿.  Æá¬á∩ «τÑαÑñ∞ ¡áºδóáÑΓß∩ µ¿¬½¿-
  1782.          τÑ߬«⌐, »«ß¬«½∞¬π ΓÑ»Ñα∞ ¼áßß¿ó ¿ß»«½∞ºπÑΓß∩ ¡Ñ ¬á¬ ½¿¡Ñ⌐¡δ⌐ ß»¿-
  1783.          ß«¬, á ¬á¬ µ¿¬½¿τÑ߬¿⌐ ß»¿ß«¬.
  1784.               ä½∩ ß«ºñá¡¿∩  µ¿¬½¿τÑ߬«⌐  «τÑαÑñ¿  ó »α«úαἼѠ»½á¡¿α«óá¡¿∩
  1785.  
  1786.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 39 =
  1787.  
  1788.          »αÑñ»¿ßá¡¿⌐ ΓαÑíπÑΓß∩ ¿º¼Ñ¡¿Γ∞ »«ñ»α«úαá¼¼δ »«ßΓᡫ󬿠 ó «τÑαÑñ∞
  1789.          ¿ óδí«α¬¿ ¿º «τÑαÑñ¿ ß½ÑñπεΘ¿¼ «íαẫ¼:
  1790.               procedure Qstore(q: EvtType);
  1791.               begin
  1792.                 { πíÑñ¿ΓÑß∞,  τΓ«  ¿¼ÑÑΓß∩  ßó«í«ñ¡«Ñ ¼ÑßΓ« ó «τÑαÑñ¿ }
  1793.                 if ((spos+1=rpos) or ((spos=MAX_EVENT) AND (rpos=0))then
  1794.                       WriteLn('List full')
  1795.                 else
  1796.                 begin
  1797.                   event[spos] := q;
  1798.                   spos := spos+1;
  1799.                   if spos=MAX_EVENT then spos:=1; { ó«ºóαáΓ ó ¡áτὫ }
  1800.                   end;
  1801.               end; { ¬«¡Ñµ »α«µÑñπαδ »«ßΓᡫ󬿠ó «τÑαÑñ∞ }
  1802.  
  1803.               function Qretrieve:EvtType;
  1804.               begin
  1805.                 if rpos=MAX_EVENT then rpos:=1; { ó«ºóαáΓ ó ¡áτὫ }
  1806.                 else rpos:=rpos+1;
  1807.  
  1808.                 if rpos=spos then
  1809.                 begin
  1810.                   WriteLn('Queue empty');
  1811.                   Qretrieve:=';';
  1812.                 end else
  1813.                   Qretrieve:=event[rpos-1];
  1814.               end; { ¬«¡Ñµ Σπ¡¬µ¿¿ óδí«α¬¿ ¿º «τÑαÑñ¿ }
  1815.  
  1816.  
  1817.               é ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ «τÑαÑñ∞ ßΓá¡«ó¿Γß∩ ºá»«½¡Ñ¡¡«⌐  Γ«½∞¬«  ó
  1818.          Γ«¼ ß½πτáÑ, ¬«úñá π¬áºáΓѽ∞ ßó«í«ñ¡«ú« ¼ÑßΓá ß«ó»áñáÑΓ ß π¬áºáΓÑ-
  1819.          ½Ñ¼ óδí«α¬¿ ß½ÑñπεΘÑú« φ½Ñ¼Ñ¡Γá. é »α«Γ¿ó¡«¼ ß½πτáÑ «τÑαÑñ∞ íπñÑΓ
  1820.          ¿¼ÑΓ∞  ßó«í«ñ¡«Ñ ¼ÑßΓ« ñ½∩ ¡«ó«ú« φ½Ñ¼Ñ¡Γá.  Äñ¡á¬«,  φΓ« º¡áτ¿Γ,
  1821.          τΓ« ó ¡áτá½Ñ »α«úαá¼¼δ ¿¡ñѬߠóδí«α¬¿ ñ«½ªÑ¡ πßΓá¡áó½¿óáΓ∞ß∩ ¡Ñ ó
  1822.          ¡π½Ñó«Ñ  º¡áτÑ¡¿Ñ,  á ¡á º¡áτÑ¡¿Ñ ¼á¬ß¿¼á½∞¡«ú« τ¿ß½á ß«íδΓ¿⌐.  é
  1823.          »α«Γ¿ó¡«¼ ß½πτáÑ »Ñαó«Ñ «íαáΘÑ¡¿Ñ ¬ »α«µÑñπαÑ »«ßΓᡫ󬿠 ó  «τÑ-
  1824.          αÑñ∞  »α¿óÑñÑΓ ¬ »«∩ó½Ñ¡¿ε ß««íΘÑ¡¿∩ « ºá»«½¡Ñ¡¿¿ ß»¿ß¬á. æ½ÑñπÑΓ
  1825.          »«¼¡¿Γ∞, τΓ« «τÑαÑñ∞ ¼«ªÑΓ ß«ñÑαªáΓ∞ Γ«½∞¬« ¡á «ñ¿¡ φ½Ñ¼Ñ¡Γ ¼Ñ¡∞-
  1826.          ΦÑ, τѼ º¡áτÑ¡¿Ñ ¼á¬ß¿¼á½∞¡«ú« τ¿ß½á ß«íδΓ¿⌐, »«ß¬«½∞¬π π¬áºáΓѽ¿
  1827.          óδí«α¬¿ ¿ »«ßΓᡫ󬿠ó «τÑαÑñ∞ óßÑúñá ñ«½ª¡δ «Γ½¿τáΓ∞ß∩  σ«Γ∩  íδ
  1828.          ¡á  Ññ¿¡¿µπ  (ó »α«Γ¿ó¡«¼ ß½πτáÑ ¡Ñ½∞º∩ íπñÑΓ »«¡∩Γ∞ ºá»«½¡Ñ¡á ½¿
  1829.          «τÑαÑñ∞ ¿½¿ «¡á »πßΓá∩).
  1830.  
  1831.               äá½ÑÑ αáßß¼áΓα¿óáÑΓß∩ µ¿¬½¿τÑ߬¿⌐ ¼áßß¿ó,  ¬«Γ«αδ⌐ ¿ß»«½∞ºπ-
  1832.          ÑΓß∩ ó ¡«ó«⌐ óÑαß¿¿ »α«úαá¼¼δ »½á¡¿α«óá¡¿∩.  ìá¿í«½ÑÑ Φ¿α«¬« µ¿¬-
  1833.          ½¿τÑ߬¿Ñ  «τÑαÑñ¿ »α¿¼Ñ¡∩εΓß∩ ó «»Ñαᵿ«¡¡δσ ß¿ßΓѼáσ »α¿ íπΣÑα¿-
  1834.          ºáµ¿¿ ¿¡Σ«α¼áµ¿¿,  ¬«Γ«αá∩ ßτ¿ΓδóáÑΓß∩ ¿½¿ ºá»¿ßδóáÑΓß∩ ¡á ñ¿ß¬«-
  1835.          óδÑ Σá⌐½δ ¿½¿ ¬«¡ß«½∞. äαπú«Ñ Φ¿α«¬«Ñ »α¿¼Ñ¡Ñ¡¿Ñ φΓ¿ «τÑαÑñ¿ ¡áΦ-
  1836.  
  1837.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 40 =
  1838.  
  1839.          ½¿ ó αÑΦÑ¡¿¿ ºáñáτ αÑá½∞¡«ú« óαѼѡ¿,  ¬«úñá, ¡á»α¿¼Ñα, »«½∞º«óá-
  1840.          Γѽ∞  ¼«ªÑΓ »α«ñ«½ªáΓ∞ ñѽáΓ∞ óó«ñ ß ¬½áó¿áΓπαδ ó« óαѼ∩ óδ»«½¡Ñ-
  1841.          ¡¿∩ ñαπú«⌐ ºáñáτ¿. Æá¬ αáí«ΓáεΓ ¼¡«ú¿Ñ ΓѬßΓ«óδÑ »α«µÑßß«αδ, ¬«ú-
  1842.          ñá ¿º¼Ñ¡∩ÑΓß∩ Σ«α¼áΓ »áαáúαáΣá ¿½¿ óδαáó¡¿óáÑΓß∩ ßΓ᫬á.  ê¼ÑÑΓß∩
  1843.          ¬«α«Γ¬¿⌐ »α«¼ÑªπΓ«¬ óαѼѡ¿, ¬«úñá ¡áíαá¡¡á∩ ¡á ¬½áó¿áΓπαÑ ¿¡Σ«α-
  1844.          ¼áµ¿∩  ¡Ñ  óδó«ñ¿Γß∩ ¡á φ¬αá¡ ñ« «¬«¡τá¡¿∩ ñαπú«ú« »α«µÑßßá.  ä½∩
  1845.          ñ«ßΓ¿ªÑ¡¿∩ Γᬫú« φΣΣѬΓá ó  »α«úαἼѠ ñ«½ª¡á  »αÑñπß¼áΓα¿óáΓ∞ß∩
  1846.          »«ßΓ«∩¡¡á∩  »α«óÑα¬á óó«ñá ß ¬½áó¿áΓπαδ ó σ«ñÑ óδ»«½¡Ñ¡¿∩ ñαπú«ú«
  1847.          »α«µÑßßá. Åα¿ óó«ñÑ ¡Ñ¬«Γ«α«ú« ß¿¼ó«½á Ñú« º¡áτÑ¡¿Ñ ñ«½ª¡« íδßΓα«
  1848.          ßΓáó¿Γ∞ß∩ ó «τÑαÑñ∞ ¿ »α«µÑßß ñ«½ªÑ¡ »α«ñ«½ªáΓ∞ß∩. Å«ß½Ñ ºáóÑαΦÑ-
  1849.          ¡¿∩ »α«µÑßßá ¡áíαá¡¡δÑ ß¿¼ó«½δ óδí¿αáεΓß∩ ¿º «τÑαÑñ¿ ¿  «íαáíáΓδ-
  1850.          óáεΓß∩ «íδτ¡δ¼ «íαẫ¼.
  1851.               ä½∩ Γ«ú«, τΓ«íδ »«¡∩Γ∞, ¬á¬ φΓ« ¼«ª¡« ßñѽáΓ∞ ß »«¼«Θ∞ε µ¿¬-
  1852.          ½¿τÑ߬«⌐ «τÑαÑñ¿, αáßß¼«Γα¿¼ ß½ÑñπεΘπε »α«ßΓπε »α«úαá¼¼π, ß«ßΓ«∩-
  1853.          Θπε ¿º ñóπσ »α«µÑßß«ó.  ÅÑαóδ⌐ »α«µÑßß óδ»«½¡∩ÑΓ  »«ñßτÑΓ  ñ«  32
  1854.          000.  éΓ«α«⌐  »α«µÑßß πßΓá¡áó½¿óáÑΓ ß¿¼ó«½δ ó µ¿¬½¿τÑ߬πε «τÑαÑñ∞
  1855.          »« ¼ÑαÑ Γ«ú« ¬á¬ «¡¿ óó«ñ∩Γß∩ ß  ¬½áó¿áΓπαδ.  Åα¿  φΓ«¼  óó«ñ¿¼δÑ
  1856.          ß¿¼ó«½δ  ¡Ñ  íπñπΓ óδó«ñ¿Γ∞ß∩ ¡á φ¬αá¡ ñ« ΓÑσ »«α,  »«¬á ¡Ñ íπñÑΓ
  1857.          óóÑñÑ¡á Γ«τ¬á ß ºá»∩Γ«⌐.  éó«ñ¿¼δÑ ß¿¼ó«½δ ¡Ñ íπñπΓ óδó«ñ¿Γ∞ß∩ ¡á
  1858.          φ¬αá¡, »«ß¬«½∞¬π »Ñαóδ⌐ »α«µÑßß íπñÑΓ ¿¼ÑΓ∞ í«½ÑÑ óδß«¬¿⌐ »α¿«α¿-
  1859.          ΓÑΓ ñ« ΓÑσ »«α, »«¬á óδ ¡Ñ óóÑñÑΓÑ Γ«τ¬π ß ºá»∩Γ«⌐ ¿½¿ »«¬á ßτÑΓ-
  1860.          τ¿¬  ¡Ñ ñ«ßΓ¿ú¡ÑΓ ¼á¬ß¿¼á½∞¡«ú« º¡áτÑ¡¿∩.  çáΓѼ ¿º «τÑαÑñ¿ íπñπΓ
  1861.          óδíαá¡δ óóÑñÑ¡¡δÑ ß¿¼ó«½δ ¿ óδóÑñÑ¡δ ¡á φ¬αá¡.
  1862.  
  1863.              { »α«úαá¼¼á, ¿½½εßΓα¿απεΘá∩ »α¿¼Ñ¡Ñ¡¿Ñ µ¿¬½¿τÑ߬«⌐ «τÑαÑñ¿ }
  1864.               program KeyBuffer;
  1865.  
  1866.               uses Crt, Dos;
  1867.  
  1868.               const
  1869.                  MAX_EVENT = 10;
  1870.  
  1871.               type
  1872.                 EvtType = char;
  1873.  
  1874.               var
  1875.                 event: array[1..MAX_EVENT] of EvtType;
  1876.                 spos, rpos, t: integer;
  1877.                 ch: char;
  1878.  
  1879.               { »«¼ÑßΓ¿Γ∞ «íΩÑ¬Γ ó «τÑαÑñ∞ }
  1880.               procedure Qstore(q:EvtType);
  1881.               begin
  1882.               2 { πíÑñ¿Γ∞ß∩,  τΓ« ó «τÑαÑñ¿ ¿¼ÑÑΓß∩ ßó«í«ñ¡«Ñ ¼ÑßΓ«}
  1883.                 if ((spos+1=rpos) or ((spos=MAX_EVENT) AND (rpos=0))then
  1884.                     WriteLn('List full')
  1885.                 else
  1886.                 begin
  1887.  
  1888.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 41 =
  1889.  
  1890.                   event[spos]:=q;
  1891.                   spos:=spos+1;
  1892.                   if spos=MAX_EVENT then spos:=1; { óÑα¡πΓ∞ß∩ ó ¡áτὫ
  1893.                                    «τÑαÑñ¿ }
  1894.                 end;
  1895.               end; { ¬«¡Ñµ »α«µÑñπαδ  »«ßΓᡫ󬿠ó «τÑαÑñ∞ }
  1896.  
  1897.              { óδí«α¬á «íΩѬΓá ¿º «τÑαÑñ¿ }
  1898.               function Qretrieve:EvtType;
  1899.               begin
  1900.                 if rpos=MAX_EVENT then rpos:=1; { óÑα¡πΓ∞ß∩ ó ¡áτὫ
  1901.                             «τÑαÑñ¿ }
  1902.                  else rpos:=rpos+1;
  1903.  
  1904.                 if rpos=spos then
  1905.                 begin
  1906.                   WriteLn('Queue empty');
  1907.                   Qretrieve:=';';
  1908.                 end else
  1909.                 begin
  1910.                   Qretrieve:= event[rpos-1];
  1911.                 end;
  1912.               end; { ¬«¡Ñµ Σπ¡¬µ¿¿ óδí«α¬¿ «íΩѬΓá ¿º «τÑαÑñ¿  }
  1913.  
  1914.               begin  { íπΣÑα ¡áíαá¡¡δσ  ß  »«¼«Θ∞ε ¬½áó¿áΓπαδ ß¿¼ó«½«ó }
  1915.                 spos := 0;
  1916.                 rpos := MAX_EVENT;
  1917.                  { πßΓá¡«ó¿Γ∞ »ÑαѼѡ¡πε "ch" ¡á ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ,
  1918.                            «Γ½¿τ¡«Ñ «Γ Γ«τ¬¿ ß ºá»∩Γ«⌐ }
  1919.  
  1920.                 ch:=' ';
  1921.                 t := 1;
  1922.                 repeat
  1923.                   if KeyPressed then
  1924.                   begin
  1925.                     ch := ReadKey;
  1926.                     Qstore(ch);
  1927.                   end;
  1928.                   t:=t+1;
  1929.                   write(t); write(' ');
  1930.                 until (t=32000) or (ch=';');
  1931.  
  1932.          { óδóÑßΓ¿  ß«ñÑন¼«Ñ íπΣÑαá óóÑñÑ¡¡δσ ß ¬½áó¿áΓπαδ ß¿¼ó«½«ó }
  1933.                 repeat
  1934.                   ch:=Qretrieve;
  1935.                   if ch<>';' then Write(ch);
  1936.                 until ch = ';';
  1937.               end.
  1938.  
  1939.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 42 =
  1940.  
  1941.  
  1942.               Åα«µÑñπαá "KeyPressed" ñѽáÑΓ «íαáΘÑ¡¿Ñ ¬ »α«úαἼѠ«»Ñαᵿ-
  1943.          «¡¡«⌐ ß¿ßΓѼδ,  ¬«Γ«αá∩ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ "¿ßΓ¿¡á",  Ñß½¿  íδ½á
  1944.          ¡áªáΓá ¬á¬á∩-½¿í« ¬½áó¿Φá,  ¿½¿ º¡áτÑ¡¿Ñ "½«ª∞",  Ñß½¿ ¬½áó¿áΓπαá
  1945.          ¡Ñ ¿ß»«½∞º«óá½áß∞.
  1946.  
  1947.  
  1948.  
  1949.  
  1950.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 43 =
  1951.  
  1952.                                               æÆàèê                            
  1953.          -----------------------------------------------------------------
  1954.  
  1955.               Äαúá¡¿ºáµ¿∩ ßΓѬá ó «»αÑñѽѡ¡«¼ ß¼δ߽Ѡ»α«Γ¿ó«»«½«ª¡á «αúá-
  1956.          ¡¿ºáµ¿¿ «τÑαÑñ¿,  »«ß¬«½∞¬π ºñÑß∞ ¿ß»«½∞ºπÑΓß∩ ñ«ßΓπ» »« »α¿¡µ¿»π
  1957.          "»«ß½Ññ¡Ñ⌐ »«Φѽ, »Ñαóδ⌐ óδΦѽ" /Γᬫ⌐ ¼ÑΓ«ñ ñ«ßΓπ»á ¿¡«úñá ¡áºδ-
  1958.          óáεΓ ¼ÑΓ«ñ«¼ LIFO/. ÅαÑñßΓáó¿¼ ßÑíÑ ßΓ«»¬π Γáαѽ«¬. ì¿ª¡∩∩ Γáαѽ-
  1959.          ¬á ¿º φΓ«⌐ ßΓ«»¬¿ íπñÑΓ ¿ß»«½∞º«óá¡á »«ß½Ññ¡Ñ⌐, á óÑασ¡∩∩ Γáαѽ¬á
  1960.          /¬«Γ«αá∩  íδ½á πßΓá¡«ó½Ñ¡á ó ßΓ«»¬π »«ß½Ññ¡Ñ⌐/ íπñÑΓ ¿ß»«½∞º«óá¡á
  1961.          »Ñαó«⌐. æΓѬ¿ Φ¿α«¬« ¿ß»«½∞ºπεΓß∩ ó ß¿ßΓѼ¡«¼ »α«úαá¼¼¡«¼ «íÑß»Ñ-
  1962.          τÑ¡¿¿, ó¬½ετá∩ ¬«¼»¿½∩Γ«αδ ¿ ¿¡ΓÑα»αÑΓáΓ«αδ.
  1963.               êßΓ«α¿τÑ߬¿ ß½«ª¿½«ß∞ Γá¬,  τΓ« ñóÑ  «ß¡«ó¡δÑ  «»Ñαᵿ¿  ñ½∩
  1964.          ßΓѬᠠ-  »«¼ÑßΓ¿Γ∞ ó ßΓѬ ¿ óδíαáΓ∞ ¿º ßΓѬá - »«½πτ¿½¿ ¡áºóá¡¿Ñ
  1965.          ß««ΓóÑΓßΓóÑ¡¡« "ºáΓ«½¬¡πΓ∞" ¿ "óδΓ«½¬¡πΓ∞".  Å«φΓ«¼π ñ½∩ αÑ὿ºá-
  1966.          µ¿¿  ßΓѬᠠ¡Ñ«íσ«ñ¿¼« ß«ºñáΓ∞ ñóÑ Σπ¡¬µ¿¿:  "posh" /ºáΓ«½¬¡πΓ∞/,
  1967.          ¬«Γ«αá∩ »«¼ÑΘáÑΓ φ½Ñ¼Ñ¡Γ ó óÑαΦ¿¡π ßΓѬá,  ¿ "pop" / óδΓ«½¬¡πΓ∞/,
  1968.          ¬«Γ«αá∩ óδí¿αáÑΓ ¿º óÑαΦ¿¡δ ßΓѬᠺ¡áτÑ¡¿Ñ. ìÑ«íσ«ñ¿¼« ΓᬪѠ»αÑ-
  1969.          ñπß¼«ΓαÑΓ∞ «»αÑñѽѡ¡πε «í½áßΓ∞ ó »á¼∩Γ¿,  úñÑ  Σá¬Γ¿τÑ߬¿  íπñÑΓ
  1970.          σαá¡¿Γ∞ß∩ ßΓѬ. ä½∩ φΓ«ú« ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ¼áß߿󠿽¿ ¼«ª¡« óδ-
  1971.          ñѽ¿Γ∞ «í½áßΓ∞ »á¼∩Γ¿, ¿ß»«½∞ºπ∩ ßαÑñßΓó« ñ¿¡á¼¿τÑ߬«ú« αáß»αÑñÑ-
  1972.          ½Ñ¡¿∩  »á¼∩Γ¿,  »αÑñπß¼«ΓαÑ¡¡«Ñ ó ∩ºδ¬Ñ Æπαí« Åá߬á½∞.  èᬠ¿ »α¿
  1973.          αáí«ΓÑ ß «τÑαÑñ∞ε »α¿ óδí«α¬Ñ º¡áτÑ¡¿∩ ¿º ßΓѬá φ½Ñ¼Ñ¡Γ íπñÑΓ »«-
  1974.          ΓÑα∩¡,  Ñß½¿ Ñú« ¡Ñ ß«σαá¡¿Γ∞ úñÑ¡¿íπñ∞ ó »á¼∩Γ¿. ì¿ªÑ »α¿ó«ñ¿Γß∩
  1975.          «íΘá∩ Σ«α¼á »α«µÑñπα πßΓᡫ󬿠ó ßΓѬ ¿ óδí«α¬¿ ¿º ßΓѬá.
  1976.               const
  1977.                 MAX = 100;
  1978.  
  1979.               var
  1980.                 stack:array[1..100] of integer;
  1981.                 tos:integer; {points to top of stask}
  1982.  
  1983.               { »«¼ÑΘÑ¡¿Ñ «íΩѬΓá ó ßΓѬ }
  1984.               procedure Push(i:integer);
  1985.               begin
  1986.                 if tos>=MAX then WriteLn('Stask full')
  1987.                 else
  1988.                 begin
  1989.                   stack[tos]:=i;
  1990.                   tos:=tos+1;
  1991.                 end;
  1992.               end; { ¬«¡Ñµ  »α«µÑñπαδ  »«¼ÑΘÑ¡¿∩ «íΩѬΓá ó ßΓѬ}
  1993.  
  1994.               { óδí«α¬á «íΩѬΓá ¿º ßΓѬá }
  1995.               function Pop:integer;
  1996.  
  1997.               begin
  1998.                 tos:=tos-1;
  1999.                 if tos<1 then
  2000.  
  2001.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 44 =
  2002.  
  2003.                 begin
  2004.                   WriteLn('Stack underflow');
  2005.                   tos:=tos+1;
  2006.                   Pop:=0;
  2007.                 end
  2008.                 else Pop := stack[tos];
  2009.               end; { ¬«¡Ñµ Σπ¡¬µ¿¿ óδí«α¬¿ «íΩѬΓá ¿º ßΓѬá }
  2010.  
  2011.               ÅÑαѼѡ¡á∩ "tos" ß«ñÑαª¿Γ º¡áτÑ¡¿Ñ  ¿¡ñѬßá  ñ½∩  ß½ÑñπεΘÑú«
  2012.          »«¼ÑΘáѼ«ú« ó ßΓѬ φ½Ñ¼Ñ¡Γá. Åα¿ αÑ὿ºáµ¿¿ φΓ¿σ »α«µÑñπα ¡¿¬«úñá
  2013.          ¡Ñ½∞º∩ ºáíδóáΓ∞ « »α«óÑα¬Ñ ß¿Γπᵿ⌐ »ÑαÑ»«½¡Ñ¡¿∩ ßΓѬᠠ¿ óδí«α¬¿
  2014.          ¿º »πßΓ«ú« ßΓѬá.  é »α¿óÑñÑ¡¡δσ »α«µÑñπαáσ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ π¬á-
  2015.          ºáΓѽ∩ "tos" «º¡áτáÑΓ, τΓ« ßΓѬ »πßΓ, á º¡áτÑ¡¿Ñ φΓ«ú« π¬áºáΓѽ∩,
  2016.          αáó¡«Ñ ¿½¿ »αÑóδΦáεΘÑÑ áñαÑß »«ß½Ññ¡Ñ⌐ ∩τÑ⌐¬¿ »á¼∩Γ¿,  úñÑ ß«ñÑα-
  2017.          ª¿Γß∩ ßΓѬ,  «º¡áτáÑΓ ºá»«½¡Ñ¡¿Ñ ßΓѬá. É¿ß.7 ¿½½εßΓα¿απÑΓ αáí«Γπ
  2018.          ßΓѬá.
  2019.               Ä»Ñαᵿ∩                   æ«ñÑন¼«Ñ ßΓѬá
  2020.               Push(A)                    A
  2021.               Push(B)                    B A
  2022.               Push(C)                    C B A
  2023.               Pop, óδí¿αáÑΓß∩ æ          é Ç
  2024.               Push(F)                    F B A
  2025.               Pop, óδí¿αáÑΓß∩ F          B A
  2026.               Pop, óδí¿αáÑΓß∩ é          Ç
  2027.               É«α, óδí¿αáÑΓß∩ Ç           »πßΓ«
  2028.               É¿ß.7. Éáí«Γá ßΓѬá.
  2029.  
  2030.               ò«α«Φ¿¼ »α¿¼Ñα«¼ »α¿¼Ñ¡Ñ¡¿∩ ßΓѬá ∩ó½∩ÑΓß∩ ¬á½∞¬π½∩Γ«α,  ¬«-
  2031.          Γ«αδ⌐ ¼«ªÑΓ óδ»«½¡∩Γ∞ τÑΓδαÑ ñÑ⌐ßΓó¿∩.  ü«½∞Φ¿¡ßΓó« ¬á½∞¬π½∩Γ«α«ó
  2032.          ¿ß»«½∞ºπεΓ ßΓá¡ñáαΓ¡πε Σ«α¼π óδαáªÑ¡¿⌐,  ¬«Γ«αá∩  ¡«ß¿Γ  ¡áºóá¡¿Ñ
  2033.          ¿¡Σ¿¬ß¡«⌐  Σ«α¼δ.  é «íΘѼ ó¿ñÑ ÑÑ ¼«ª¡« »αÑñßΓáó¿Γ∞ ó ó¿ñÑ "«»Ñ-
  2034.          αá¡ñ-«»ÑαáΓ«α-«»Ñαá¡ñ".  ìá»α¿¼Ñα,  ñ½∩ »α¿íáó½Ñ¡¿∩ 100 ¬ 200  óδ
  2035.          ñ«½ª¡δ  óóÑßΓ¿ τ¿ß½« 100,  ¡áíαáΓ∞ ß¿¼ó«½ ß½«ªÑ¡¿∩,  óóÑßΓ¿ τ¿ß½«
  2036.          200 ¿ ¡áªáΓ∞ ¬½áó¿Φπ ß« º¡á¬«¼ αáóÑ¡ßΓóá. Äñ¡á¬«, ¡Ñ¬«Γ«αδÑ ¬á½∞-
  2037.          ¬π½∩Γ«αδ  »α¿¼Ñ¡∩εΓ  ñαπúπε Σ«α¼π óδαáªÑ¡¿⌐,  »«½πτ¿óΦπε ¡áºóá¡¿Ñ
  2038.          »«ßΓΣ¿¬ß¡«⌐ Σ«α¼δ. é φΓ«¼ ß½πτáÑ «íá «»Ñαá¡ñá óó«ñ∩Γß∩ »ÑαÑñ óó«-
  2039.          ñ«¼ «»ÑαáΓ«αá. ìá»α¿¼Ñα, ñ½∩ ñ«íáó½Ñ¡¿∩ 100 ¬ 200 »α¿ ¿ß»«½∞º«óá-
  2040.          ¡¿¿ »«ßΓΣ¿¬ß¡«⌐ Σ«α¼δ ß¡áτá½á óó«ñ¿Γß∩ τ¿ß½« 100,  ºáΓѼ óó«ñ¿Γß∩
  2041.          τ¿ß½«  200 ¿ »«ß½Ñ φΓ«ú« ¡áª¿¼áÑΓß∩ ¬½áó¿Φá ß« º¡á¬«¼ »½εß.  éóÑ-
  2042.          ñÑ¡¡δÑ «»Ñαá¡ñδ »«¼ÑΘáεΓß∩ ó ßΓѬ.  Åα¿ óó«ñÑ «»ÑαáΓ«αá ¿º  ßΓѬá
  2043.          óδí¿αáεΓß∩  ñóá  «»Ñαá¡ñá ¿ αѺπ½∞ΓáΓ »«¼ÑΘáÑΓß∩ ó ßΓѬ.  Åα¿ ¿ß-
  2044.          »«½∞º«óá¡¿¿ »«ßΓΣ¿¬ß¡«⌐ Σ«α¼δ «τÑ¡∞ ß½«ª¡δÑ óδαáªÑ¡¿∩ ¼«úπΓ ½Ñú¬«
  2045.          óδτ¿ß½∩Γ∞ß∩ ¡á ¬á½∞¬π½∩Γ«αÑ.
  2046.               ì¿ªÑ »«¬áºá¡á »α«úαá¼¼á ñ½∩ Γᬫú« ¬á½∞¬π½∩Γ«αá.
  2047.              { ¬á½∞¬π½∩Γ«α ß τÑΓδα∞¼∩ «»Ñαᵿ∩¼¿, ¿½½εßΓα¿απεΘ¿⌐ αáí«Γπ }
  2048.                program four_function_calc;
  2049.               const
  2050.                 MAX = 100;
  2051.  
  2052.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 45 =
  2053.  
  2054.  
  2055.               var
  2056.                     stack:array [1..100] of integer;
  2057.                     tos:integer; { π¬áºáΓѽ∞ óÑαΦ¿¡δ ßΓѬá }
  2058.                     a, b:integer;
  2059.                     s:string[80];
  2060.  
  2061.                   { »«¼ÑßΓ¿Γ∞ «íΩÑ¬Γ ó ßΓѬ }
  2062.                    procedure Push(i:integer);
  2063.                    begin
  2064.                      if tos >= MAX then Writeln('Stack full')
  2065.                      else
  2066.                      begin
  2067.                        stack[tos] :=1;
  2068.                        tos := tos+1;
  2069.                      end;
  2070.                    end;{Push}
  2071.  
  2072.                   { óδí«α¬á «íΩѬΓá ¿º ßΓѬá }
  2073.                   function Pop:integer;
  2074.                   begin
  2075.                     tos := tos-1;
  2076.                     if tos < 1 then
  2077.                     begin
  2078.                      Writeln('Stack underflow')
  2079.                      tos := tos+1;
  2080.                      Pop := 0;
  2081.                     end
  2082.                      else Pop := stack[tos];
  2083.                   end;{ Pop }
  2084.  
  2085.                   begin { ¬á½∞¬π½∩Γ«α }
  2086.                     tos := 1;
  2087.                     Writeln('For Function Calculator');
  2088.                     repeat
  2089.                       Write(': '); { óδó«ñ »α¿ú½áΦÑ¡¿∩ }
  2090.                       Readln(s);
  2091.                       Val(s, a, b) { »αÑ«íαẫóá¡¿Ñ ßΓ᫬¿ ß¿¼ó«½«ó ó
  2092.                     µÑ½«Ñ τ¿ß½« }
  2093.  
  2094.                  {  ßτ¿ΓáÑΓß∩, τΓ« »α¿ πß»ÑΦ¡«¼ »αÑ«íαẫóá¡¿¿
  2095.                     »«½∞º«óáΓѽ∞ óóѽ τ¿ß½«, á ó »α«Γ¿ó¡«¼
  2096.                        ß½πτáÑ »«½∞º«óáΓѽ∞ óóѽ «»ÑαáΓ«α}
  2097.                     if (b=0) and ((Length(s)>1) or (s[1]<>'-')) then
  2098.                     Push(a)
  2099.                     else
  2100.                       case s[1] of
  2101.                         '+' begin
  2102.  
  2103.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 46 =
  2104.  
  2105.                               a := Pop
  2106.                               b := Pop
  2107.                               Writeln(a+b);
  2108.                               Push(a+b);
  2109.                             end;
  2110.                         '-' begin
  2111.                               a := Pop
  2112.                               b := Pop
  2113.                               Writeln(b+a);
  2114.                               Push(b+a);
  2115.                             end;
  2116.                         '*' begin
  2117.                               a := Pop
  2118.                               b := Pop
  2119.                               Writeln(a*b);
  2120.                               Push(a*b);
  2121.                             end;
  2122.                         '/' begin
  2123.                               a := Pop
  2124.                               b := Pop
  2125.                               if a=0 then Writeln('divide by zero');
  2126.                               else
  2127.                                 begin
  2128.                                   Writeln(b div a);
  2129.                                   Push(b div a);
  2130.                                 end;
  2131.                              end;
  2132.                         '.' begin
  2133.                               a := Pop
  2134.                               Writeln(a);
  2135.                               Push(a);
  2136.                             end;
  2137.                           end;
  2138.                        until UpCase(s[1])='G'
  2139.                     end.
  2140.               ä½∩ Γ«ú«,  τΓ«íδ »«ß¼«ΓαÑΓ∞,  τΓ« ¡áσ«ñ¿Γß∩ ó óÑαΦ¿¡Ñ ßΓѬá,
  2141.          ñ«ßΓáΓ«τ¡« óóÑßΓ¿ Γ«τ¬π.  ò«Γ∩ ñá¡¡á∩ »α«úαá¼¼á óδ»«½¡∩ÑΓ áα¿Σ¼Ñ-
  2142.          Γ¿τÑ߬¿Ñ ñÑ⌐ßΓó¿∩ Γ«½∞¬« ß µÑ½δ¼¿ τ¿ß½á¼¿, ÑÑ ½Ñú¬« ¼«ª¡« »α¿ß»«-
  2143.          ß«í¿Γ∞ ñ½∩ τ¿ßѽ ß »½áóáεΘÑ⌐ ºá»∩Γ«⌐,  ¿º¼Ñ¡∩∩ Γ¿» ñá¡¡δσ ßΓѬᠿ
  2144.          »αÑ«íαáºπ∩ «»ÑαáΓ«α "div" ó «»ÑαáΓ«α ñѽѡ¿∩ ñ½∩ τ¿ßѽ ß  »½áóáε-
  2145.          ΘÑ⌐ ºá»∩Γ«⌐ /¡á¬½«¡¡á∩ τÑαΓá/.
  2146.  
  2147.  
  2148.  
  2149.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 47 =
  2150.  
  2151.                                             æéƒçÇìì¢à æÅêæèê                   
  2152.          -----------------------------------------------------------------
  2153.  
  2154.               ÄτÑαÑñ¿ ¿ ßΓѬ¿ «í½áñáεΓ ñóπ¼∩ «íΘ¿¼¿ ßó«⌐ßΓóἿ. é«-»Ñαóδσ,
  2155.          ñ«ßΓπ»  ¬  ¡áσ«ñ∩Θ¿¼ß∩ ó ¡¿σ ñá¡¡δσ »«ñτ¿¡∩ÑΓß∩ ßΓα«ú¿¼ »αáó¿½á¼.
  2156.          é«-óΓ«αδσ,  «»Ñαᵿ¿ »«¿ß¬á ¿¼ÑεΓ αáºαπΦ¿Γѽ∞¡δ⌐  σáαá¬ΓÑα.  àß½¿
  2157.          óδíαá¡¡δ⌐ ¿º ßΓѬᠿ½¿ «τÑαÑñ¿ φ½Ñ¼Ñ¡Γ ¡Ñ íπñÑΓ úñÑ-¡¿íπñ∞ ß«σαá-
  2158.          ¡Ñ¡,  Γ« «¡ íπñÑΓ »«ΓÑα∩¡.  èα«¼Ñ Γ«ú«, ßΓѬ¿ ¿ «τÑαÑñ¿ ñ½∩ ßó«Ñ⌐
  2159.          αáí«Γδ  ΓαÑíπεΓ ¡á½¿τ¿∩ ¡Ñ»αÑαδó¡«⌐ «í½áßΓ¿ »á¼∩Γ¿ /¡Ñ»αÑαδó¡«ßΓ∞
  2160.          ñ«½ª¡á «íÑß»Ñτ¿óáΓ∞ß∩ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ½«ú¿τÑ߬¿/.
  2161.               é «Γ½¿τ¿¿ «Γ ßΓѬᠿ «τÑαÑñ¿ ßó∩ºá¡¡δ⌐ ß»¿ß«¬ »«ºó«½∩ÑΓ «ßπ-
  2162.          ΘÑßΓó½∩Γ∞ ñ«ßΓπ» ¬ ½εíδ¼ φ½Ñ¼Ñ¡Γá¼,  »«ß¬«½∞¬π ¬áªñá∩ Ññ¿¡¿µá ¿¡-
  2163.          Σ«α¼áµ¿¿  ¿¼ÑÑΓ  π¬áºáΓѽ∞ ¡á ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ ñá¡¡δσ ó µÑ»«τ¬Ñ.
  2164.          ¥½Ñ¼Ñ¡ΓἿ ßó∩ºá¡¡«ú« ß»¿ß¬á ∩ó½∩εΓß∩ ß½«ª¡δÑ  ßΓαπ¬Γπαδ  ñá¡¡δσ,
  2165.          Γ«úñá  ¬á¬ ßΓѬ¿ ¿ «τÑαÑñ¿ ¼«úπΓ αáí«ΓáΓ∞ ¿ ß »α«ßΓ묨 ¿ ß« ß½«ª-
  2166.          ¡δ¼¿ ßΓαπ¬ΓπαἿ ñá¡¡δσ.  Ä»Ñαᵿ∩ »«¿ß¬á ó ßó∩ºá¡¡«¼  ß»¿ß¬Ñ  ¡Ñ
  2167.          »α¿ó«ñ¿Γ ¬ πñá½Ñ¡¿ε ¿ π¡¿τΓ«ªÑ¡¿ε φ½Ñ¼Ñ¡Γá.  é ñá¡¡«¼ ß½πτáÑ ß½Ñ-
  2168.          ñπÑΓ »αÑñπß¼«ΓαÑΓ∞ ñ«»«½¡¿Γѽ∞¡« «»Ñαáµ¿ε  πñá½Ñ¡¿∩  φ½Ñ¼Ñ¡Γá  ¿º
  2169.          ß»¿ß¬á.
  2170.               æó∩ºá¡¡δÑ ß»¿ß¬¿ ¿ß»«½∞ºπεΓß∩ ó ñóπσ «ß¡«ó¡δσ ß½πτá∩σ. é«
  2171.          -»Ñαóδσ, »α¿ ß«ºñá¡¿¿ ¼áßß¿ó«ó, ¬«Γ«αδÑ αáß»«½áúáεΓß∩ ó «»ÑαáΓ¿ó-
  2172.          ¡«⌐ »á¼∩Γ¿ ¿ αẼÑα ¬«Γ«αδσ ºáαá¡ÑÑ ¡Ñ¿ºóÑßΓÑ¡.  àß½¿ óδ  ºáαá¡ÑÑ
  2173.          º¡áÑΓÑ, ¬á¬«ú« αẼÑαá »á¼∩Γ∞ »«ΓαÑíπÑΓß∩ ñ½∩ αÑΦÑ¡¿∩ óáΦÑ⌐ ºáñá-
  2174.          τ¿,  Γ« óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ »α«ßΓ«⌐ ¼áßß¿ó. Äñ¡á¬«, Ñß½¿ ñÑ⌐ß-
  2175.          Γó¿Γѽ∞¡δ⌐  αẼÑα ß»¿ß¬á óá¼ ¡Ñ¿ºóÑßΓÑ¡,  Γ« óδ ñ«½ª¡δ »α¿¼Ñ¡¿Γ∞
  2176.          ßó∩ºá¡¡δ⌐ ß»¿ß«¬.  é«-óΓ«αδσ, ßó∩ºá¡¡δÑ ß»¿ß¬¿ ¿ß»«½∞ºπεΓß∩ ó íá-
  2177.          ºáσ ñá¡¡δσ ¡á ñ¿ß¬áσ. æó∩ºá¡¡δ⌐ ß»¿ß«¬ »«ºó«½∩ÑΓ íδßΓα« óδ»«½¡∩Γ∞
  2178.          óßΓáó¬π ¿ πñá½Ñ¡¿Ñ φ½Ñ¼Ñ¡Γá ñá¡¡δσ íѺ αÑ«αúá¡¿ºáµ¿¿ óßÑú« ñ¿ß¬«-
  2179.          ó«ú« Σá⌐½á. Å« φΓ¿¼ »α¿τ¿¡á¼ ßó∩ºá¡¡δÑ ß»¿ß¬¿ Φ¿α«¬« ¿ß»«½∞ºπεΓß∩
  2180.          ó »α«úαá¼¼áσ »« π»αáó½Ñ¡¿ε íáºá¼¿ ñá¡¡δσ.
  2181.               æó∩ºá¡¡δÑ ß»¿ß¬¿  ¼«úπΓ  ¿¼ÑΓ∞  «ñ¿¡«τ¡δÑ ¿½¿ ñó«⌐¡δÑ ßó∩º¿.
  2182.          æ»¿ß«¬ ß «ñ¡«⌐ ßó∩º∞ε ß«ñÑαª¿Γ φ½Ñ¼Ñ¡Γδ,  ¬áªñδ⌐ ¿º ¬«Γ«αδσ ¿¼ÑÑΓ
  2183.          ßó∩º∞  ß«  ß½ÑñπεΘ¿¼ φ½Ñ¼Ñ¡Γ«¼ ñá¡¡δσ.  é ß»¿ß¬Ñ ß ñó«⌐¡«⌐ ßó∩º∞ε
  2184.          ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ ¿¼ÑÑΓ ßó∩º∞ ¬á¬ ß« ß½ÑñπεΘ¿¼ φ½Ñ¼Ñ¡Γ«¼,  Γᬠ ¿  ß
  2185.          »αÑñδñπΘ¿¼ φ½Ñ¼Ñ¡Γ«¼.  Æ¿» ßó∩ºá¡¡«ú« ß»¿ß¬á óδí¿αáÑΓß∩ ó ºáó¿ß¿-
  2186.          ¼«ßΓ¿ «Γ αÑΦáѼ«⌐ ºáñáτ¿.
  2187.                             æó∩ºá¡¡δÑ ß»¿ß¬¿ ß «ñ¿¡«τ¡«⌐ ßó∩º∞ε                
  2188.          -----------------------------------------------------------------
  2189.  
  2190.               é ß»¿ß¬Ñ  ß  «ñ¿¡«τ¡«⌐  ßó∩º∞ε  ¬áªñδ⌐  φ½Ñ¼Ñ¡Γ ñá¡¡δσ ¿¼ÑÑΓ
  2191.          ßó∩º∞ ß »«ß½ÑñπεΘ¿¼ φ½Ñ¼Ñ¡Γ«¼ ó  ß»¿ß¬Ñ.  èáªñδ⌐  φ½Ñ¼Ñ¡Γ  ñá¡¡δσ
  2192.          «íδτ¡« »αÑñßΓáó½∩ÑΓ ß«í«⌐ ºá»¿ß∞, ¬«Γ«αá∩ ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿«¡¡δÑ
  2193.          »«½∩ ¿ π¬áºáΓѽ∞ ßó∩º¿. æ»¿ß«¬ ß «ñ¿¡«τ¡«⌐ ßó∩º∞ε »«¬áºá¡ ¡á α¿ß.
  2194.          8.
  2195.  
  2196.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 48 =
  2197.  
  2198.                 ┌─────┐     ┌─────┐      ┌─────┐
  2199.                 │1info│     │1info│      │1info│
  2200.                 ├─────┤     ├─────┤      ├─────┤
  2201.                 │2link│     │2link│      │3 nil│
  2202.                 └─────┘     └─────┘      └─────┘
  2203.               É¿ß.8. Éáß»«½«ªÑ¡¿Ñ ß»¿ß¬á ß «ñ¿¡«τ¡«⌐ ßó∩º∞ε ó »á¼∩Γ¿:
  2204.          1 - ¿¡Σ«α¼áµ¿∩; 2 - π¬áºáΓѽ∞ ßó∩º¿; 3 - ¡π½∞.
  2205.               ê¼ÑÑΓß∩ ñóá ß»«ß«íá »«ßΓα«Ñ¡¿∩ ß»¿ß¬á ß «ñ¿¡«τ¡«⌐  ßó∩º∞ε. é
  2206.          »Ñαó«¼ ß½πτáÑ ¬áªñδ⌐ ¡«óδ⌐ φ½Ñ¼Ñ¡Γ ñ«íáó½∩ÑΓß∩ ó ¡áτὫ ¿½¿ ó ¬«-
  2207.          ¡Ñµ ß»¿ß¬á.  é« óΓ«α«¼ ß½πτáÑ ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ ñ«íáó½∩ÑΓß∩  ó  ßó«Ñ
  2208.          ¼ÑßΓ« ó ß»¿ß¬Ñ /¡á»α¿¼Ñα,  Γá¬, τΓ«íδ «íÑß»Ñτ¿Γ∞ π»«α∩ñ«τ¡«ßΓ∞ »«
  2209.          ó«ºαáßΓá¡¿ε/.
  2210.               æ»«ß«í »«ßΓα«Ñ¡¿∩  ß»¿ß¬á «»αÑñѽ∩ÑΓß∩ »α«µÑñπα«⌐ »«ßΓá¡«ó¬¿
  2211.          ¡«ó«ú« φ½Ñ¼Ñ¡Γá ó ß»¿ß«¬. ì¿ªÑ ñáÑΓß∩ Γá¬á∩ »α«µÑñπαá ñ½∩ »α«ßΓ«-
  2212.          ú« ß½πτá∩,  ¬«úñá φ½Ñ¼Ñ¡Γδ ñ«íáó½∩εΓß∩ ó ¬«¡Ñµ ß»¿ß¬á. ìÑ«íσ«ñ¿¼«
  2213.          «»αÑñѽ¿Γ∞ ºá»¿ß∞, ¬«Γ«αá∩ íπñÑΓ ß«ñÑαªáΓ∞ ¿¡Σ«α¼áµ¿ε ¿ π¬áºáΓѽ¿
  2214.          ßó∩º¿.  é  φΓ«¼ »α¿¼ÑαÑ ºá»¿ß∞ ß«ñÑαª¿Γ áñαÑß »«τΓ«ó«⌐ ¬«ααÑß»«¡-
  2215.          ñÑ¡µ¿¿.  Æ¿» ºá»¿ß¿ ñ½∩ ¬áªñ«ú« φ½Ñ¼Ñ¡Γá ó ß»¿ß¬Ñ áñαÑ߫󠫻αÑñÑ-
  2216.          ½∩ÑΓß∩ ¡¿ªÑ:
  2217.               AddrPointer = ^address;
  2218.               address = record
  2219.                 name:   string[30];
  2220.                 street: string[40];
  2221.                 city:   string[20];
  2222.                    state: string[2];
  2223.                    zip:   string[9];
  2224.                    next:  AddrPointer;  { π¬áºáΓѽ∞ ¡á ß½ÑñπεΘπε ºá»¿ß∞  }
  2225.                 end;
  2226.                 DataItem = address;
  2227.               var
  2228.                 start.last: AddrPointer;
  2229.               ì¿ªÑ »αÑñßΓáó½Ñ¡á   Σπ¡¬µ¿∩  ñ«íáó½Ñ¡¿∩  ó  ß»¿ß«¬  ß  «ñ¡«⌐
  2230.          ßó∩º∞ε,  ¬«úñá ¬áªñδ⌐ ¡«óδ⌐ φ½Ñ¼Ñ¡Γ »«¼ÑΘáÑΓß∩  ó  ¬«¡Ñµ  ß»¿ß¬á.
  2231.          ô¬áºáΓѽ∞  ºá»¿ß¿  Γ¿»á  "address" ñ«½ªÑ¡ »ÑαÑñáóáΓ∞ß∩ ó ¬áτÑßΓóÑ
  2232.          áαúπ¼Ñ¡Γá Σπ¡¬µ¿¿:
  2233.               { ñ«íáó½Ñ¡¿Ñ  ó  ß»¿ß«¬ ß «ñ¡«⌐ ßó∩º∞ε }
  2234.               procedure SL_Store(i: AddrPointer);
  2235.               Legin
  2236.                 if last=nil then  { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á } 2
  2237.                 begin
  2238.                   last := i;
  2239.                   start := i;
  2240.                   i^.next := nil;
  2241.                 end else
  2242.                 begin
  2243.                   last^.next := i;
  2244.                   i^.next := nil;
  2245.                   last := i;
  2246.  
  2247.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 49 =
  2248.  
  2249.                 end;
  2250.               end;  { ¬«¡Ñµ »α«µÑñπαδ ñ«íáó½Ñ¡¿∩ φ½Ñ¼Ñ¡Γ«ó ó ß»¿ß«¬ ß
  2251.                                  «ñ¡«⌐ ßó∩º∞ε }
  2252.  
  2253.               æ½ÑñπÑΓ »«¼¡¿Γ∞, τΓ« ñ« »Ñαó«ú« «íαáΘÑ¡¿∩ ¬ φΓ«⌐ Σπ¡¬µ¿¿ »Ñ-
  2254.          αѼѡ¡δÑ  "start"  ¿  "last"  ñ«½ª¡δ íδΓ∞ πßΓá¡«ó½Ñ¡δ ¡á º¡áτÑ¡¿Ñ
  2255.          "nil".
  2256.               î«ª¡« »αÑñπß¼«ΓαÑΓ∞ «Γñѽ∞¡πε «»Ñαáµ¿ε »« ß«αΓ¿α«ó¬Ñ ß»¿ß¬á,
  2257.          ß«ºñá¡¡«ú« ß »«¼«Θ∞ε π¬áºá¡¡«⌐  Σπ¡¬µ¿¿  ñ«íáó½Ñ¡¿∩  φ½Ñ¼Ñ¡Γ«ó  ó
  2258.          ß»¿ß«¬ ß «ñ¡«⌐ ßó∩º∞ε. Äñ¡á¬« π»«α∩ñ«τÑ¡¿∩ ½ÑúτÑ ñ«í¿Γ∞ß∩ ó« óαÑ-
  2259.          ¼∩ óßΓá󬿠»πΓѼ πßΓᡫ󬿠¬áªñ«ú« ¡«ó«ú« φ½Ñ¼Ñ¡Γá ó ß««ΓóÑΓßΓóπ-
  2260.          εΘÑÑ ¼ÑßΓ« ß»¿ß¬á.  èα«¼Ñ Γ«ú«, Ñß½¿ ß»¿ß«¬ πªÑ ∩ó½∩ÑΓß∩ «Γß«αΓ¿-
  2261.          α«óá¡¡δ¼,  Γ« ¿¼ÑÑΓ ß¼δß½ ß«σαá¡¿Γ∞ Ñú« π»«α∩ñ«τÑ¡¡«ßΓ∞, óßΓáó½∩∩
  2262.          ¬áªñδ⌐  ¡«óδ⌐  φ½Ñ¼Ñ¡Γ ó ß««ΓóÑΓßΓóπεΘÑÑ ¼ÑßΓ« ß»¿ß¬á.  ä½∩ φΓ«ú«
  2263.          ñѽáÑΓß∩ »«ß½Ññ«óáΓѽ∞¡δ⌐ »α«ß¼«Γα ß»¿ß¬á ñ« ΓÑσ »«α, »«¬á ¡Ñ íπ-
  2264.          ñÑΓ  ¡á⌐ñÑ¡« ¡πª¡«Ñ ¼ÑßΓ«.  é φΓ« ¼ÑßΓ« óßΓáó½∩ÑΓß∩ ¡«óδ⌐ áñαÑß ¿
  2265.          ñѽáÑΓß∩ ß««ΓóÑΓßΓóπεΘÑÑ ¿º¼Ñ¡Ñ¡¿Ñ ßó∩ºÑ⌐.
  2266.               Åα¿ óßΓáó¬Ñ φ½Ñ¼Ñ¡Γá ó ß»¿ß«¬ ß «ñ¡«⌐ ßó∩º∞ε ¼«ªÑΓ ó«¡¿¬¡πΓ∞
  2267.          «ñ¡á ¿º ΓαÑσ ß¿Γπᵿ⌐.  é«-»Ñαóδσ,  ¡«óδ⌐ φ½Ñ¼Ñ¡Γ ¼«ªÑΓ «¬áºáΓ∞ß∩
  2268.          »Ñαóδ¼ ó ß»¿ß¬Ñ.  é«-óΓ«αδσ,  «¡ ¼«ªÑΓ óßΓáΓ∞ ¼Ñªñπ ñαπú¿¼¿ ñóπ¼∩
  2269.          φ½Ñ¼Ñ¡ΓἿ ¿ ó-ΓαÑΓ∞¿σ,  «¡ ¼«ªÑΓ «¬áºáΓ∞ß∩ »«ß½Ññ¡¿¼ φ½Ñ¼Ñ¡Γ«¼ ó
  2270.          ß»¿ß¬Ñ.  ìá α¿ß.9 »«¬áºá¡«, ¬á¬ ñ½∩ ¬áªñ«ú« ¿º φΓ¿σ ß½πτáÑ󠿺¼Ñ-
  2271.          ¡∩εΓß∩ ßó∩º¿.
  2272.               àß½¿ ¿º¼Ñ¡∩ÑΓß∩ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á,  Γ« óѺñÑ ó »α«úαá¼¼Ñ
  2273.          ñ«½ª¡á íδΓ∞ ¿º¼Ñ¡Ñ¡á Γ«τ¬á óσ«ñá ó ß»¿ß«¬.  ä½∩ Γ«ú«, τΓ«íδ ¿ºíÑ-
  2274.          ªáΓ∞  φΓ«ú«,  ó ¬áτÑßΓóÑ »Ñαó«ú« φ½Ñ¼Ñ¡Γá ¡πª¡« ¿ß»«½∞º«óáΓ∞ Σ¿¬-
  2275.          Γ¿ó¡δ⌐ φ½Ñ¼Ñ¡Γ.  ¥Γ«Γ Σ¿¬Γ¿ó¡δ⌐ φ½Ñ¼Ñ¡Γ ñ«½ªÑ¡ ¿¼ÑΓ∞ ΓᬫѠº¡áτÑ-
  2276.          ¡¿Ñ,  ¬«Γ«α«Ñ  «íÑß»Ñτ¿óáÑΓ  Ñ¼π  »Ñαó«Ñ  ¼ÑßΓ« ó ß»¿ß¬Ñ.  é φΓ«¼
  2277.          ß½πτáÑ Γ«τ¬á óσ«ñá ó ß»¿ß«¬ ¡Ñ íπñÑΓ ¼Ñ¡∩Γ∞ß∩.  Äñ¡á¬«, ¡Ññ«ßΓáΓ-
  2278.          ¬«¼  Γᬫú«  ¼ÑΓ«ñá ∩ó½∩ÑΓß∩ ¡Ñ«íσ«ñ¿¼«ßΓ∞ αáßσ«ñá ñ«»«½¡¿Γѽ∞¡«⌐
  2279.          »á¼∩Γ¿ ñ½∩ Σ¿¬Γ¿ó¡«ú« φ½Ñ¼Ñ¡Γá ¿  »«φΓ«¼π  ó  »«¬áºá¡¡«¼  »α¿¼ÑαÑ
  2280.          φëà¼ÑΓ«ñ ¡Ñ ¿ß»«½∞ºπÑΓß∩.
  2281.  
  2282.  
  2283.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 50 =
  2284.  
  2285.  
  2286.                1 ì«óδ⌐ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ
  2287.                      ┌─────┐                         ┌─────┐
  2288.                      │2 new│                         │2 new│
  2289.                      ├─────┤                         ├─────┤
  2290.                      │     │                         │     │
  2291.                      └─────┘                         └─────┘
  2292.                                      4becomes
  2293.             ┌─────┐  ┌─────┐  ┌─────┐       ┌─────┐  ┌─────┐  ┌─────┐
  2294.             │3info│  │3info│  │3info│       │3info│  │3info│  │3info│
  2295.             ├─────┤  ├─────┤  ├─────┤       ├─────┤  ├─────┤  ├─────┤
  2296.             │     │  │     │  │5 nil│       │     │  │     │  │5 nil│
  2297.             └─────┘  └─────┘  └─────┘       └─────┘  └─────┘  └─────┘
  2298.  
  2299.               6 New Middle Item
  2300.                      ┌─────┐                         ┌─────┐
  2301.                      │2 new│                         │2 new│
  2302.                      ├─────┤                         ├─────┤
  2303.                      │     │                         │     │
  2304.                      └─────┘                         └─────┘
  2305.                                      4becomes
  2306.             ┌─────┐  ┌─────┐  ┌─────┐       ┌─────┐  ┌─────┐  ┌─────┐
  2307.             │3info│  │3info│  │3info│       │3info│  │3info│  │3info│
  2308.             ├─────┤  ├─────┤  ├─────┤       ├─────┤  ├─────┤  ├─────┤
  2309.             │     │  │     │  │5 nil│       │     │  │     │  │5 nil│
  2310.             └─────┘  └─────┘  └─────┘       └─────┘  └─────┘  └─────┘
  2311.  
  2312.                7 New Last Item
  2313.                      ┌─────┐                         ┌─────┐
  2314.                      │2 new│                         │2 new│
  2315.                      ├─────┤                         ├─────┤
  2316.                      │     │                         │5 nil│
  2317.                      └─────┘                         └─────┘
  2318.                                      4becomes
  2319.             ┌─────┐  ┌─────┐  ┌─────┐       ┌─────┐  ┌─────┐  ┌─────┐
  2320.             │3info│  │3info│  │3info│       │3info│  │3info│  │3info│
  2321.             ├─────┤  ├─────┤  ├─────┤       ├─────┤  ├─────┤  ├─────┤
  2322.             │     │  │     │  │5 nil│       │     │  │     │  │     │
  2323.             └─────┘  └─────┘  └─────┘       └─────┘  └─────┘  └─────┘
  2324.  
  2325.               É¿ß.9. éßΓáó¬á φ½Ñ¼Ñ¡Γá ó ß»¿ß«¬ ß «ñ¡«⌐ ßó∩º∞ε:
  2326.  
  2327.               1 - ¡«óδ⌐ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ;
  2328.               2 - ¡«óδ⌐ φ½Ñ¼Ñ¡Γ;
  2329.               3 - ¿¡Σ«α¼áµ¿«¡¡δÑ »«½∩;
  2330.               4 - ß»αáóá ñáÑΓß∩ »αÑ«íαẫóá¡¡δ⌐ ß»¿ß«¬;
  2331.               5 - ¡π½Ñó«⌐ π¬áºáΓѽ∞ ßó∩º¿;
  2332.               6 - ¡«óδ⌐ ßαÑñ¡¿⌐ φ½Ñ¼Ñ¡Γ;
  2333.  
  2334.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 51 =
  2335.  
  2336.               7 - ¡«óδ⌐ »«ß½Ññ¡¿⌐ φ½Ñ¼Ñ¡Γ.
  2337.  
  2338.               Åα¿ó«ñ¿¼á∩ ¡¿ªÑ Σπ¡¬µ¿∩  ¿ß»«½∞ºπÑΓß∩  ñ½∩  óßΓá󬿠 áñαÑß«ó
  2339.          »«τΓ«óδσ  ¬«ααÑß»«¡ñÑ¡µ¿⌐  ó  »«α∩ñ¬Ñ  ó«ºαáßΓá¡¿∩  ΣἿ½¿⌐ /»«½Ñ
  2340.          "name"/.  é ¬áτÑßΓóÑ αѺπ½∞ΓáΓá Σπ¡¬µ¿¿ óδñáÑΓß∩  »Ñαóδ⌐  φ½Ñ¼Ñ¡Γ
  2341.          ß»¿ß¬á.  éσ«ñ¡δ¼¿  áαúπ¼Ñ¡ΓἿ φΓ«⌐ Σπ¡¬µ¿¿ ∩ó½∩εΓß∩ π¬áºáΓѽ¿ ¡á
  2342.          ¡áτὫ ¿ ¬«¡Ñµ ß»¿ß¬á.
  2343.  
  2344.            { ñ«íáó½Ñ¡¿Ñ φ½Ñ¼Ñ¡Γ«ó ó ß»¿ß«¬ ß «ñ¡«⌐ ßó∩º∞ε ß ß«σαá¡Ñ¡¿Ñ¼
  2345.                          π»«α∩ñ«τÑ¡¡«ßΓ¿ }
  2346.                function SLS_Store(info, start: AddrPointer;
  2347.                                  var last: AddrPointer): AddrPointer;
  2348.               var
  2349.                 old, top: AddrPointer;
  2350.                 done: boolean;
  2351.               begin
  2352.                 top := start;
  2353.                 old := nil;
  2354.                 done := FALSE;
  2355.  
  2356.                 if start=nil then
  2357.                 begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á }
  2358.                   info^.next:=nil;
  2359.                   last:=info;
  2360.                   SLS_Store:=info;
  2361.                 end else
  2362.                 begin
  2363.                   while (start<>nil) and (not done) do
  2364.                 begin
  2365.                   if start^.name < info^.name then
  2366.                   begin
  2367.                     old:=start;
  2368.                     start:=start^.next;
  2369.                   end else
  2370.                   begin { óßΓáó¬á ó ßÑαÑñ¿¡π }
  2371.                     if old<>nil then
  2372.  
  2373.                    begin
  2374.                      old^.next:=info;
  2375.                      info^.next:=start;
  2376.                      SLS_Store:=top; { ß«σαá¡¿Γ∞ ¡áτὫ  }
  2377.                      done:=TRUE;
  2378.                    end else
  2379.                    begin
  2380.                      info^.next:=start; { ¡«óδ⌐ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ }
  2381.                      SLS_Store:=info;
  2382.                      done:=TRUE;
  2383.                    end;
  2384.  
  2385.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 52 =
  2386.  
  2387.                  end;
  2388.                 end; {while}
  2389.                 if not done then
  2390.                 begin
  2391.                   last^.next:=info; { óßΓáó¬á ó ¬«¡Ñµ }
  2392.                   info^.next:=nil;
  2393.                   last:=info;
  2394.                   SLS_Store:=top;
  2395.                 end;
  2396.                end;
  2397.               end;
  2398.          { ¬«¡Ñµ »α«µÑñπαδ π»«α∩ñ«τÑ¡¡«⌐ óßΓá󬿠ó ß»¿ß«¬ ß «ñ¡«⌐ ßó∩º∞ε}
  2399.  
  2400.               ä½∩ ßó∩ºá¡¡«ú« ß»¿ß¬á «íδτ¡« ¡Ñ  »αÑñπß¼áΓα¿óáÑΓß∩ «Γñѽ∞¡á∩
  2401.          Σπ¡¬µ¿∩, ßó∩ºá¡¡á∩ ß »α«µÑßß«¼ »«¿ß¬á, »α¿ ¬«Γ«α«¼ φ½Ñ¼Ñ¡Γδ óδñá-
  2402.          εΓß∩ ó »«α∩ñ¬Ñ ¿σ αáß»«½«ªÑ¡¿∩ ó ß»¿ß¬Ñ. ¥Γá Σπ¡¬µ¿∩ «íδτ¡« »α«ú-
  2403.          αá¼¼¿απÑΓß∩  «τÑ¡∞ »α«ßΓ« ¿ «Σ«α¼½∩ÑΓß∩ ó¼ÑßΓÑ ß ñαπú¿¼¿ Σπ¡¬µ¿∩-
  2404.          ¼¿,  ¡á»α¿¼Ñα,  »«¿ß¬«¼ «Γñѽ∞¡«ú« φ½Ñ¼Ñ¡Γá,  Ñú«  πñá½Ñ¡¿Ñ¼  ¿½¿
  2405.          óδó«ñ«¼  ¡á  φ¬αá¡.  é ¬áτÑßΓóÑ »α¿¼Ñαá ¡¿ªÑ »α¿ó«ñ¿Γß∩ »α«µÑñπαá
  2406.          óδó«ñá óßÑσ ΣἿ½¿⌐ ó ß»¿ß¬Ñ áñαÑ߫󠻫τΓ«óδ󠬫ααÑß»«¡ñÑ¡µ¿⌐:
  2407.  
  2408.               procedure Display(start: AddrPointer);
  2409.               begin
  2410.                 while start<>nil do begin
  2411.                   WriteLn(start^.name);
  2412.                   start:=start^.next;
  2413.                 end;
  2414.               end;  { ¬«¡Ñµ »α«µÑñπαδ óδó«ñá}
  2415.  
  2416.               çñÑß∞ »ÑαѼѡ¡á∩  "start"  ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á »Ñαóπε ºá-
  2417.          »¿ß∞ ó ß»¿ß¬Ñ.
  2418.               Å«¿ß¬ φ½Ñ¼Ñ¡Γá ó ß»¿ß¬Ñ »αÑñßΓáó½∩ÑΓ ß«í«⌐ »α«ßΓπε »α«µÑñπαπ
  2419.          »α«σ«ñá »« µÑ»«τ¬Ñ.  Åα«µÑñπαπ »«¿ß¬á áñαÑ߫󠻫  ΣἿ½¿∩¼  ¼«ª¡«
  2420.          ß«ßΓáó¿Γ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
  2421.  
  2422.              function Search(start:AddrPointer;name:str80):AddrPointer;
  2423.              var
  2424.                done:boolean;
  2425.              begin
  2426.                done := FALSE;
  2427.                while (start<>nil) and (not done) do
  2428.              begin
  2429.                if name=start^.name then
  2430.                begin
  2431.                  Search:=start;
  2432.                  done:=TRUE;
  2433.                end else
  2434.                  start:=start^.next;
  2435.  
  2436.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 53 =
  2437.  
  2438.                end;
  2439.                if start=nil then Search := nil; { ¡ÑΓ ó ß»¿ß¬Ñ }
  2440.              end; { ¬«¡Ñµ »α«µÑñπαδ »«¿ß¬á φ½Ñ¼Ñ¡Γá }
  2441.  
  2442.               Å«ß¬«½∞¬π φΓá »α«µÑñπαá »«¿ß¬á ó αѺπ½∞ΓáΓÑ óδñáÑΓ π¬áºáΓѽ∞
  2443.          ¡á Γ«Γ φ½Ñ¼Ñ¡Γ ß»¿ß¬á, ¬«Γ«αδ⌐ ß««ΓóÑΓßΓóπÑΓ ¿ß¬«¼«⌐ ΣἿ½¿¿, »Ñ-
  2444.          αѼѡ¡á∩  "Search"  ñ«½ª¡á  «íΩ∩ó½∩Γ∞ß∩ ¬á¬ π¬áºáΓѽ∞ ºá»¿ß¿ Γ¿»á
  2445.          "address".  àß½¿ ΓαÑíπѼδ⌐ φ½Ñ¼Ñ¡Γ «ΓßπΓßΓóπÑΓ ó ß»¿ß¬Ñ, Γ« ó αÑ-
  2446.          ºπ½∞ΓáΓÑ óδñáÑΓß∩ ¡π½Ñó«⌐ π¬áºáΓѽ∞.
  2447.               Åα«µÑñπαá πñá½Ñ¡¿∩ φ½Ñ¼Ñ¡Γá ¿º ß»¿ß¬á ß «ñ¡«⌐  ßó∩º∞ε  »α«ú-
  2448.          αá¼¼¿απÑΓß∩  »α«ßΓ«.  èᬠ»α¿ óßΓáó¬Ñ φ½Ñ¼Ñ¡Γá ºñÑß∞ ¼«ªÑΓ óßΓαÑ-
  2449.          Γ¿Γ∞ß∩ «ñ¿¡ ¿º ΓαÑσ ß½πτáÑó:  πñá½∩ÑΓß∩ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ, πñá½∩ÑΓß∩
  2450.          ßαÑñ¡¿⌐ φ½Ñ¼Ñ¡Γ ¿ πñá½∩ÑΓß∩ »«ß½Ññ¡¿⌐ φ½Ñ¼Ñ¡Γ.  ìá α¿ß.10 ¿½½εßΓ-
  2451.          α¿απÑΓß∩ ¬áªñá∩ ß¿Γπᵿ∩.
  2452.  
  2453.               1 Deleting the First Item   2becomes
  2454.                 ┌─────┐  ┌─────┐  ┌─────┐     ┌─────┐  ┌─────┐  ┌─────┐
  2455.                 │3info│  │3info│  │3info│     │3info│  │3info│  │3info│
  2456.                 ├─────┤  ├─────┤  ├─────┤     ├─────┤  ├─────┤  ├─────┤
  2457.                 │     │  │     │  │5 nil│     │5 nil│  │     │  │5 nil│
  2458.                 └─────┘  └─────┘  └─────┘     └─────┘  └─────┘  └─────┘
  2459.  
  2460.               6 Deleting a Middle Item    2becomes
  2461.                 ┌─────┐  ┌─────┐  ┌─────┐     ┌─────┐  ┌─────┐  ┌─────┐
  2462.                 │3info│  │3info│  │3info│     │3info│  │     │  │3info│
  2463.                 ├─────┤  ├─────┤  ├─────┤     ├─────┤  ├─────┤  ├─────┤
  2464.                 │     │  │     │  │5nil │     │     │  │5 nil│  │5 nil│
  2465.                 └─────┘  └─────┘  └─────┘     └─────┘  └─────┘  └─────┘
  2466.  
  2467.               7 Deleting the Last Item    2becomes
  2468.                 ┌─────┐  ┌─────┐  ┌─────┐     ┌─────┐  ┌─────┐  ┌─────┐
  2469.                 │3info│  │3info│  │3info│     │3info│  │3info│  │     │
  2470.                 ├─────┤  ├─────┤  ├─────┤     ├─────┤  ├─────┤  ├─────┤
  2471.                 │     │  │     │  │5 nil│     │     │  │5 nil│  │5 nil│
  2472.                 └─────┘  └─────┘  └─────┘     └─────┘  └─────┘  └─────┘
  2473.  
  2474.               É¿ß.10. ôñá½Ñ¡¿Ñ φ½Ñ¼Ñ¡Γá ¿º ß»¿ß¬á ß «ñ¡«⌐ ßó∩º∞ε:
  2475.  
  2476.          1 - πñá½Ñ¡¿Ñ »Ñαó«ú« φ½Ñ¼Ñ¡Γá;
  2477.          2 - ½Ñóδ⌐ ß»¿ß«¬ »αÑ«íαáºπÑΓß∩ ó »αáóδ⌐;
  2478.          3 - ¿¡Σ«α¼áµ¿«¡¡δÑ »«½∩;
  2479.          4 - πñá½Ñ¡¡δ⌐ φ½Ñ¼Ñ¡Γ;
  2480.          5 - ßó∩º∞ ß ¡π½Ñóδ¼ º¡áτÑ¡¿Ñ¼;
  2481.          6 - πñá½Ñ¡¿Ñ ßαÑñ¡Ñú« φ½Ñ¼Ñ¡Γá;
  2482.          7 - πñá½Ñ¡¿Ñ »«ß½Ññ¡Ñú« φ½Ñ¼Ñ¡Γá.
  2483.  
  2484.               Åα¿ó«ñ¿¼á∩ ¡¿ªÑ Σπ¡¬µ¿∩ óδ»«½¡∩ÑΓ πñá½Ñ¡¿Ñ ºáñá¡¡«ú« φ½Ñ¼Ñ¡-
  2485.          Γá ¿º ß»¿ß¬á ºá»¿ßÑ⌐ áñαÑß«ó:
  2486.  
  2487.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 54 =
  2488.  
  2489.  
  2490.               function SL_Delete(start, item, prior_item: AddrPointer)
  2491.                                  :AddrPointer;
  2492.               begin
  2493.                 if prior_item<>nil then
  2494.                   prior_item^.next:=item^.next
  2495.                 else start:= item^.next;
  2496.                 SL_Delete:=start;
  2497.               end;  { ¬«¡Ñµ Σπ¡¬µ¿¿ πñá½Ñ¡¿∩ φ½Ñ¼Ñ¡Γá ¿º ß»¿ß¬á ß «ñ¡«⌐
  2498.                                     ßó∩º∞ε }
  2499.  
  2500.               Åα¿óÑñÑ¡¡á∩ Σπ¡¬µ¿∩ »ÑαÑñáÑΓ π¬áºáΓѽ∞  φ½Ñ¼Ñ¡Γá,  π¬áºáΓѽ∞
  2501.          φ½Ñ¼Ñ¡Γá, ßΓ«∩ΘÑú« »ÑαÑñ πñá½Ñ¡¡δ¼, ¿ π¬áºáΓѽ∞ ¡á ¡áτὫ ß»¿ß¬á.
  2502.          àß½¿ πñá½∩ÑΓß∩ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ,  Γ« π¬áºáΓѽ∞  φ½Ñ¼Ñ¡Γá,  ßΓ«∩ΘÑú«
  2503.          »ÑαÑñ πñá½Ñ¡¡δ¼,  íπñÑΓ ¿¼ÑΓ∞ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ. ç¡áτÑ¡¿Ñ¼ Σπ¡¬µ¿¿
  2504.          ñ«½ªÑ¡ ∩ó½∩Γ∞ß∩ π¬áºáΓѽ∞ ¡á ¡áτὫ ß»¿ß¬á,  »«ß¬«½∞¬π ¼«ªÑΓ πñá-
  2505.          ½¿Γ∞ß∩ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ¿ ¡Ñ«íσ«ñ¿¼« º¡áΓ∞,  úñÑ íπñÑΓ ¡«óδ⌐ »Ñαóδ⌐
  2506.          φ½Ñ¼Ñ¡Γ ß»¿ß¬á.
  2507.               æ»¿ß¬¿ ß «ñ¡«⌐ ßó∩º∞ε ¿¼ÑεΓ «ñ¿¡ í«½∞Φ«⌐ ¡Ññ«ßΓáΓ«¬, ¬«Γ«αδ⌐
  2508.          »αÑ»∩ΓßΓóπÑΓ ¿σ Φ¿α«¬«¼π »α¿¼Ñ¡Ñ¡¿ε: Γᬫ⌐ ß»¿ß«¬ ¡Ñ½∞º∩ »α«ß¼áΓ-
  2509.          α¿óáΓ∞ ó «íαáΓ¡«¼ ¡á»αáó½Ñ¡¿¿. ä½∩ φΓ¿σ µÑ½Ñ⌐ ¿ß»«½∞ºπεΓß∩ ß»¿ß¬¿
  2510.          ß ñó«⌐¡«⌐ ßó∩º∞ε.
  2511.  
  2512.  
  2513.  
  2514.  
  2515.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 55 =
  2516.  
  2517.                                   æ»¿ß¬¿ ß ñó«⌐¡«⌐ ßó∩º∞ε                      
  2518.          -----------------------------------------------------------------
  2519.  
  2520.               èáªñδ⌐ φ½Ñ¼Ñ¡Γ  ó ß»¿ß¬Ñ ß ñó«⌐¡«⌐ ßó∩º∞ε ¿¼ÑÑΓ π¬áºáΓѽ∞ ¡á
  2521.          ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á ¿ π¬áºáΓѽ∞ ¡á »αÑñδñπΘ¿⌐ φ½Ñ¼Ñ¡Γ  ß»¿ß-
  2522.          ¬á.  É¿ß.11 ¿½½εßΓα¿απÑΓ σáαá¬ΓÑα ßó∩ºÑ⌐ ó Γᬫ¼ ß»¿ß¬Ñ.  æ»¿ß«¬,
  2523.          ¬«Γ«αδ⌐ ó¼ÑßΓ« «ñ¡«⌐ ¿¼ÑÑΓ ñóÑ ßó∩º¿,  «Γ½¿τáÑΓß∩ ñóπ¼∩ «ß¡«ó¡δ¼¿
  2524.          »αÑ¿¼πΘÑßΓóἿ.  é«-»Ñαóδσ, ß»¿ß«¬ ¼«ªÑΓ τ¿ΓáΓ∞ß∩ ó «í«¿σ ¡á»αáó-
  2525.          ½Ñ¡¿∩σ. ¥Γ« ¡Ñ Γ«½∞¬« π»α«ΘáÑΓ ß«αΓ¿α«ó¬π ß»¿ß¬á, ¡« ΓᬪѠ»«ºó«-
  2526.          ½∩ÑΓ  »«½∞º«óáΓѽ∩¼ íáºδ ñá¡¡δσ »α«ß¼áΓα¿óáΓ∞ ñá¡¡δÑ ó «í«¿σ ¡á»-
  2527.          αáó½Ñ¡¿∩σ.  é«-óΓ«αδσ,  ¿  »α∩¼á∩  ¿  «íαáΓ¡á∩  ßó∩º∞   »«ºó«½∩εΓ
  2528.          »α«τ¿ΓáΓ∞  ß»¿ß«¬ »«½¡«ßΓ∞ε ¿ »«φΓ«¼π »α¿ ¡áαπΦÑ¡¿¿ «ñ¡«⌐ ¿º ßó∩-
  2529.          ºÑ⌐ ß»¿ß«¬ ¼«ªÑΓ íδΓ∞ ó«ßßΓá¡«ó½Ñ¡ »« ñαπú«⌐ ßó∩º¿.  ¥Γ« ßó«⌐ßΓó«
  2530.          ¿¼ÑÑΓ  ß¼δß½ ¿ß»«½∞º«óáΓ∞ »α¿ «Γ¬áºáσ «í«απñ«óá¡¿∩,  »α¿ó«ñ∩Θ¿σ ¬
  2531.          ¡áαπΦÑ¡¿ε ß»¿ß¬á.
  2532.                  ┌──────────┐      ┌──────────┐      ┌───────────┐
  2533.                  │1 info    │      │1 info    │      │1 info     │
  2534.                  ├─────┬────┤      ├─────┬────┤      ├─────┬─────┤
  2535.                  │2nil │    │      │     │    │      │     │2 nil│
  2536.                  └─────┴────┘      └─────┴────┘      └─────┴─────┘
  2537.  
  2538.                          É¿ß.11. æ»¿ß«¬ ß ñó«⌐¡«⌐ ßó∩º∞ε:
  2539.  
  2540.               1 - ¿¡Σ«α¼áµ¿«¡¡δÑ »«½∩; 2 - ßó∩º∞ ß ¡π½Ñóδ¼ º¡áτÑ¡¿Ñ¼.
  2541.  
  2542.               ä½∩ ß»¿ß¬á ß ñó«⌐¡«⌐ ßó∩º∞ε »αÑñπß¼áΓα¿óáεΓß∩  Γα¿  «ß¡«ó¡δÑ
  2543.          «»Ñαᵿ¿: óßΓáó¬á ¡«ó«ú« »Ñαó«ú« φ½Ñ¼Ñ¡Γá, óßΓáó¬á ¡«ó«ú« ßαÑñ¡Ñ-
  2544.          ú« φ½Ñ¼Ñ¡Γá ¿ óßΓáó¬á ¡«ó«ú« »«ß½Ññ¡Ñú«  φ½Ñ¼Ñ¡Γá.  ¥Γ¿  «»Ñαᵿ¿
  2545.          »α«¿½½εßΓα¿α«óá¡δ ¡á α¿ß.12.
  2546.               æ»¿ß«¬ ß ñó«⌐¡«⌐ ßó∩º∞ε  ßΓα«¿Γß∩  »«ñ«í¡«  ß»¿ß¬π  ß  «ñ¡«⌐
  2547.          ßó∩º∞ε,  »α¿τѼ ó ºá»¿ß¿ ñ«½ª¡« íδΓ∞ »αÑñπß¼«ΓαÑ¡« ¼ÑßΓ« ñ½∩ ñóπσ
  2548.          π¬áºáΓѽÑ⌐.  ä½∩ »α¿¼Ñαá ß« ß»¿ß¬«¼ »«τΓ«óδ󠬫ααÑß»«¡ñÑ¡µ¿⌐  ºá-
  2549.          »¿ß∞ áñαÑßá ¼«ª¡« ¼«ñ¿Σ¿µ¿α«óáΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
  2550.  
  2551.               type
  2552.                 str80 = string[80];
  2553.                 AddrPointer = ^address;
  2554.                 address = record
  2555.  
  2556.               1 Inserling a New First Element
  2557.                        ┌──────┐                       ┌──────┐
  2558.                        │2 new │                       │2 new │
  2559.                        ├───┬──┤                       ├───┬──┤
  2560.                        │   │  │                       │   │  │
  2561.                        └───┴──┘                       └───┴──┘
  2562.                                         4becomes
  2563.  
  2564.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 56 =
  2565.  
  2566.              ┌──────┐  ┌──────┐  ┌──────┐   ┌──────┐  ┌──────┐ ┌──────┐
  2567.              │5 info│  │5 info│  │5 info│   │5 info│  │5 info│ │5 info│
  2568.              ├───┬──┤  ├──┬───┤  ├──┬───┤   ├──┬───┤  ├───┬──┤ ├──┬───┤
  2569.             3│nil│  │  │  │   │  │  │nil│3  │  │   │  │   │  │ │  │nil│3
  2570.              └───┴──┘  └──┴───┘  └──┴───┘   └──┴───┘  └───┴──┘ └──┴───┘
  2571.               6 Inserling a New Middle Element
  2572.                        ┌──────┐                       ┌──────┐
  2573.                        │2 new │                       │2 new │
  2574.                        ├──┬───┤                       ├───┬──┤
  2575.                        │  │   │                       │   │  │
  2576.                        └──┴───┘                       └───┴──┘
  2577.                                         4becomes
  2578.              ┌──────┐  ┌──────┐  ┌──────┐   ┌──────┐  ┌──────┐ ┌──────┐
  2579.              │5 info│  │5 info│  │5 info│   │5 info│  │5 info│ │5 info│
  2580.              ├───┬──┤  ├──┬───┤  ├──┬───┤   ├───┬──┤  ├───┬──┤ ├──┬───┤
  2581.             3│nil│  │  │  │   │  │  │nil│3 3│nil│  │  │   │  │ │  │nil│3
  2582.              └───┴──┘  └──┴───┘  └──┴───┘   └───┴──┘  └───┴──┘ └──┴───┘
  2583.               7 Inserling a New Last Element
  2584.                        ┌──────┐                       ┌──────┐
  2585.                        │2 new │                       │2 new │
  2586.                        ├──┬───┤                       ├──┬───┤
  2587.                        │  │   │                       │  │nil│3
  2588.                        └──┴───┘                       └──┴───┘
  2589.                                         4becomes
  2590.              ┌──────┐  ┌──────┐  ┌──────┐   ┌──────┐  ┌──────┐ ┌──────┐
  2591.              │5 info│  │5 info│  │5 info│   │5 info│  │5 info│ │5 info│
  2592.              ├───┬──┤  ├──┬───┤  ├──┬───┤   ├───┬──┤  ├──┬───┤ ├───┬──┤
  2593.             3│nil│  │  │  │   │  │  │nil│3 3│nil│  │  │  │   │ │   │  │
  2594.              └───┴──┘  └──┴───┘  └──┴───┘   └───┴──┘  └──┴───┘ └───┴──┘
  2595.  
  2596.               É¿ß.12. éßΓáó¬á φ½Ñ¼Ñ¡Γá ó ß»¿ß«¬ ß ñó«⌐¡«⌐ ßó∩º∞ε:
  2597.          1 - óßΓáó¬á ¡«ó«ú« »Ñαó«ú« φ½Ñ¼Ñ¡Γá;
  2598.          2 - ¡«óδ⌐ φ½Ñ¼Ñ¡Γ;
  2599.          3 - π¬áºáΓѽ∞ ß ¡π½Ñóδ¼ º¡áτÑ¡¿Ñ¼;
  2600.          4 - ½Ñóδ⌐ ß»¿ß«¬ »αÑ«íαáºπÑΓß∩ ó »αáóδ⌐;
  2601.          5 - ¿¡Σ«α¼áµ¿«¡¡δÑ »«½∩;
  2602.          6 - óßΓáó¬á ¡«ó«ú« ßαÑñ¡Ñú« φ½Ñ¼Ñ¡Γá;
  2603.          7 - óßΓáó¬á ¡«ó«ú« »«ß½Ññ¡Ñú« φ½Ñ¼Ñ¡Γá.
  2604.                 name :  string[30];
  2605.                 street: string[40];
  2606.                 city:   string[20];
  2607.                 state:  string[2];
  2608.                 zip:    string[9];
  2609.                 next:   AddrPointer; { π¬áºáΓѽ∞ ¡á ß½ÑñπεΘπε ºá»¿ß∞  }
  2610.                 prior:  AddrPointer; { π¬áºáΓѽ∞ ¡á »αÑñδñπΘπε ºá»¿ß∞ }
  2611.                  end;
  2612.  
  2613.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 57 =
  2614.  
  2615.  
  2616.                 DataItem = address;
  2617.                 DataArray = array [1..100] of AddrPointer;
  2618.  
  2619.  
  2620.               ì¿ªÑ »α¿ó«ñ¿Γß∩ Σπ¡¬µ¿∩,  ¬«Γ«αá∩ »«ºó«½∩ÑΓ ßΓα«¿Γ∞ ß»¿ß«¬ ß
  2621.          ñó«⌐¡«⌐ ßó∩º∞ε ñ½∩ ºá»¿ßÑ⌐ áñαÑß«ó:
  2622.               {ñ«íáó½Ñ¡¿Ñ φ½Ñ¼Ñ¡Γ«ó ó ß»¿ß«¬ ß ñó«⌐¡«⌐ ßó∩º∞ε }
  2623.               procedure DL_Store(i: AddrPointer);
  2624.               begin
  2625.                 if last=nil then { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á }
  2626.                 begin
  2627.                   last:=i;
  2628.                   start:=i;
  2629.                   i^.next:=nil;
  2630.                   i^.prior:=nil;
  2631.                 end
  2632.                 else
  2633.                 begin
  2634.                   last^.next:=i;
  2635.                   i^.next:=nil;
  2636.                   i^.prior:=last;
  2637.                   last:=i;
  2638.                 end;
  2639.               end; { ¬«¡Ñµ Σπ¡¬µ¿¿ ñ«íáó½Ñ¡¿∩ ó ß»¿ß«¬ ß ñó«⌐¡«⌐ ßó∩º∞ε }
  2640.  
  2641.              ¥Γá Σπ¡¬µ¿∩  »«¼ÑΘáÑΓ  ¬áªñδ⌐  ¡«óδ⌐  φ½Ñ¼Ñ¡Γ ó ¬«¡Ñµ ß»¿ß¬á.
  2642.          æ½ÑñπÑΓ ¿¼ÑΓ∞ ó ó¿ñπ, τΓ« »ÑαÑñ »Ñαóδ¼ «íαáΘÑ¡¿Ñ¼ ¬ Σπ¡¬µ¿¿ »ÑαÑ-
  2643.          ¼Ñ¡¡δÑ  "start"  ¿ "last" ñ«½ª¡δ πßΓá¡áó½¿óáΓ∞ß∩ ó ¡π½Ñó«Ñ º¡áτÑ-
  2644.          ¡¿Ñ.
  2645.              é σ«ñÑ  »«ßΓα«Ñ¡¿∩  ß»¿ß¬á ß ñó«⌐¡«⌐ ßó∩º∞ε ¬áªñδ⌐ ¡«óδ⌐ φ½Ñ-
  2646.          ¼Ñ¡Γ ¼«ªÑΓ /¬á¬ ¿ ñ½∩ ß»¿ß¬á ß «ñ¡«⌐ ßó∩º∞ε/ πßΓá¡áó½¿óáΓ∞ß∩ ¡Ñ ó
  2647.          ¬«¡Ñµ,  á ó ß««ΓóÑΓßΓóπεΘÑÑ ¼ÑßΓ«, «íÑß»Ñτ¿óá∩ π»«α∩ñ«τ¡«ßΓ∞ φ½Ñ-
  2648.          ¼Ñ¡Γ«ó ó ß»¿ß¬Ñ.  ì¿ªÑ »α¿ó«ñ¿Γß∩ Σπ¡¬µ¿∩, ¬«Γ«αá∩ ß«ºñáÑΓ ß»¿ß«¬
  2649.          ß ñó«⌐¡«⌐ ßó∩º∞ε,  π»«α∩ñ«τÑ¡δ⌐ »« ó«ºαáßΓá¡¿ε ΣἿ½¿⌐ ¿º ºá»¿ßÑ⌐
  2650.          áñαÑß«ó:
  2651.  
  2652.           {π»«α∩ñ«τÑ¡¡á∩ πßΓá¡«ó¬á φ½Ñ¼Ñ¡Γ«ó ó ß»¿ß«¬ ß ñó«⌐¡«⌐ ßó∩º∞ε}
  2653.                     function DSL_Store(info, start: AddrPointer;
  2654.                                        var last: AddrPointer): AddrPointer;
  2655.            { óßΓáó¬á φ½Ñ¼Ñ¡Γ«ó ó ß««ΓóÑΓßΓóπεΘÑÑ ¼ÑßΓ« ß ß«σαá¡Ñ¡¿Ñ¼
  2656.                                »«α∩ñ¬á }
  2657.                     var
  2658.                       old, top: AddrPointer;
  2659.                       done: boolean;
  2660.                     begin
  2661.                       top := start;
  2662.                       old := nil;
  2663.  
  2664.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 58 =
  2665.  
  2666.                       done := FALSE;
  2667.  
  2668.                       if start = nil then begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á }
  2669.                         info^.next := nil;
  2670.                         last := info;
  2671.                         info^.prior :=nil;
  2672.                         DCL_Store := info;
  2673.                       end else
  2674.                       begin
  2675.                         while (start<>nil) and (not done) do
  2676.                         begin
  2677.                           if start^.name < info^.name then
  2678.                           begin
  2679.                             old := start;
  2680.                             start := start^.next;
  2681.                           end else
  2682.                           begin { óßΓáó¬á ó ßÑαÑñ¿¡π }
  2683.                             if old <>nil then
  2684.                               begin
  2685.                               old^.next := info;
  2686.                               info^.next := start;
  2687.                               start^.prior := info;
  2688.                               info^.prior := old;
  2689.                               DSL_Store := top; { ß«σαá¡Ñ¡¿Ñ ¡áτá½á }
  2690.                               done := TRUE;
  2691.                             end else
  2692.                             begin
  2693.                               info^.next := start;{¡«óδ⌐ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ }
  2694.                               info^.prior := nil;
  2695.                               DSL_Store := info;
  2696.                               done := TRUE;
  2697.                             end;
  2698.                           end;
  2699.                         end;  { ¬«¡Ñµ µ¿¬½á }
  2700.                         if not done then begin
  2701.                           last^.next := info;
  2702.                           info^.next := nil;
  2703.                           info^.prior := last;
  2704.                           last := info;
  2705.                           DSL_Store := top; { ß«σαá¡Ñ¡¿Ñ ¡áτá½á }
  2706.                         end;
  2707.                       end;
  2708.                     end;  { ¬«¡Ñµ Σπ¡¬µ¿¿ DSL_Store }
  2709.  
  2710.               Å«ß¬«½∞¬π φ½Ñ¼Ñ¡Γ ¼«ªÑΓ »«¼ÑΘáΓ∞ß∩ ó  ßἫѠ ¡áτὫ  ß»¿ß¬á,
  2711.          φΓá  Σπ¡¬µ¿∩ ñ«½ª¡á óδñáóáΓ∞ π¬áºáΓѽ∞ ¡á ¡áτὫ ß»¿ß¬á,  τΓ«íδ ó
  2712.          ñαπú¿σ τáßΓ∩σ »α«úαá¼¼δ πτÑßΓ∞ ¿º¼Ñ¡Ñ¡¿∩ ¡áτá½á ß»¿ß¬á. Åα¿ »«¿ß-
  2713.          ¬Ñ  ¬«¡¬αÑΓ¡«ú«  φ½Ñ¼Ñ¡Γá  ß»¿ß¬á,  ¬á¬  ¿ ñ½∩ ß»¿ß¬á ß «ñ¿¡«τ¡«⌐
  2714.  
  2715.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 59 =
  2716.  
  2717.          ßó∩º∞ε,  ñѽáÑΓß∩ »«ß½Ññ«óáΓѽ∞¡δ⌐ »α«σ«ñ »« µÑ»«τ¬Ñ ßó∩ºÑ⌐  »«¬á
  2718.          ¡Ñ íπñÑΓ ¡á⌐ñÑ¡ ΓαÑíπѼδ⌐ φ½Ñ¼Ñ¡Γ.
  2719.               Åα¿ πñá½Ñ¡¿¿ φ½Ñ¼Ñ¡Γá ¿º ß»¿ß¬á ó«º¡¿¬áÑΓ «ñ¡á ¿º ΓαÑσ ß¿Γπ-
  2720.          áµ¿⌐:  πñá½Ñ¡¿Ñ  »Ñαó«ú«  φ½Ñ¼Ñ¡Γá,  πñá½Ñ¡¿Ñ ßαÑñ¡Ñú« φ½Ñ¼Ñ¡Γá ¿
  2721.          πñá½Ñ¡¿Ñ »«ß½Ññ¡Ñú« φ½Ñ¼Ñ¡Γá.  É¿ß.13 ¿½½εßΓα¿απÑΓ ¿º¼Ñ¡Ñ¡¿Ñ ßó∩-
  2722.          ºÑ⌐ ñ½∩ φΓ¿σ ß½πτáÑó.
  2723.  
  2724.               1 Deleting the First Item
  2725.                                       3becomes
  2726.            ┌──────┐  ┌──────┐  ┌──────┐   ┌───────┐  ┌──────┐ ┌──────┐
  2727.            │2 info│  │2 info│  │2 info│  4│2 info │  │2 info│ │2 info│
  2728.            ├───┬──┤  ├──┬───┤  ├──┬───┤   ├───┬───┤  ├───┬──┤ ├──┬───┤
  2729.           5│nil│  │  │  │   │  │  │nil│5 5│nil│nil│55│nil│  │ │  │nil│5
  2730.            └───┴──┘  └──┴───┘  └──┴───┘   └───┴───┘  └───┴──┘ └──┴───┘
  2731.  
  2732.               6 Deleting a Middle Item
  2733.                                      3becomes
  2734.            ┌──────┐  ┌──────┐  ┌──────┐   ┌──────┐  ┌───────┐ ┌──────┐
  2735.            │2 info│  │2 info│  │2 info│   │2 info│  │2 info │ │2 info│
  2736.            ├───┬──┤  ├──┬───┤  ├──┬───┤   ├───┬──┤  ├───┬───┤ ├──┬───┤
  2737.           5│nil│  │  │  │   │  │  │nil│5 5│nil│  │5 │nil│nil│5│  │nil│5
  2738.            └───┴──┘  └──┴───┘  └──┴───┘   └───┴──┘  └───┴───┘ └──┴───┘
  2739.  
  2740.               7 Deleting the Last Item
  2741.                                     3becomes
  2742.            ┌──────┐  ┌──────┐  ┌──────┐   ┌──────┐ ┌──────┐  ┌───────┐
  2743.            │2 info│  │2 info│  │2 info│   │2 info│ │2 info│  │2 info │
  2744.            ├───┬──┤  ├──┬───┤  ├──┬───┤   ├───┬──┤ ├──┬───┤  ├───┬───┤
  2745.           5│nil│  │  │  │   │  │  │nil│5 5│nil│  │ │  │nil│55│nil│nil│5
  2746.            └───┴──┘  └──┴───┘  └──┴───┘   └───┴──┘ └──┴───┘  └───┴───┘
  2747.  
  2748.               É¿ß.13. ôñá½Ñ¡¿Ñ φ½Ñ¼Ñ¡Γá ¿º ß»¿ß¬á ß ñó«⌐¡«⌐ ßó∩º∞ε:
  2749.          1 - πñá½Ñ¡¿Ñ »Ñαó«ú« φ½Ñ¼Ñ¡Γá; 2 - ¿¡Σ«α¼áµ¿«¡¡δÑ »«½∩; 3 - ½Ñóδ⌐
  2750.          ß»¿ß«¬ »αÑ«íαáºπÑΓß∩ ó »αáóδ⌐;  4 - πñá½Ñ¡¡δ⌐ φ½Ñ¼Ñ¡Γ; 5 - π¬áºá-
  2751.          Γѽ∞  ß  ¡π½Ñóδ¼ º¡áτÑ¡¿Ñ¼;  6 - πñá½Ñ¡¿Ñ ßαÑñ¡Ñú« φ½Ñ¼Ñ¡Γá;  7 -
  2752.          πñá½Ñ¡¿Ñ »«ß½Ññ¡Ñú« φ½Ñ¼Ñ¡Γá.
  2753.               ì¿ªÑ »α¿ó«ñ¿Γß∩ Σπ¡¬µ¿∩, ¬«Γ«αá∩ óδ»«½¡∩ÑΓ πñá½Ñ¡¿Ñ φ½Ñ¼Ñ¡Γá
  2754.          Γ¿»á "address" ¿º ß»¿ß¬á ß ñó«⌐¡«⌐ ßó∩º∞ε:
  2755.              { πñá½Ñ¡¿Ñ φ½Ñ¼Ñ¡Γá ¿º ß»¿ß¬á ß ñó«⌐¡«⌐ ßó∩º∞ε }
  2756.               function DL_Delete(start: AddrPointer;
  2757.                                  key: str80): AddrPointer;
  2758.               var
  2759.                 temp, temp2: AddrPointer;
  2760.                 done: boolean;
  2761.               begin
  2762.                 if start^.name=key then begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á}
  2763.                   DL_Delete:=start^.next;
  2764.                   if temp^.next <> nil then
  2765.  
  2766.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 60 =
  2767.  
  2768.                   begin
  2769.                     temp := start^.next;
  2770.                     temp^.prior := nil;
  2771.                   end;
  2772.                   dispose(start);
  2773.                 end else
  2774.                 begin
  2775.                   done := FALSE;
  2776.                   temp := start^.next;
  2777.                   temp2 := start;
  2778.                   while (temp<>nil) and (not done) do
  2779.                   begin
  2780.                     if temp^.name=key then
  2781.                     begin
  2782.                       temp^.next:=temp^.next;
  2783.  
  2784.  
  2785.                     if temp^.next<>nil then
  2786.                       temp^.next^.prior:=temp2;
  2787.                     done:=TRUE;
  2788.                     dispose(temp);
  2789.                   end else
  2790.                   begin
  2791.                     temp2:=temp;
  2792.                     temp:=temp^.next;
  2793.                   end;
  2794.                 end;
  2795.                 DL_Delete:=start; { ¡áτὫ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩ }
  2796.                 if not done then WriteLn('not found');
  2797.               end;
  2798.             end; { ¬«¡Ñµ Σπ¡¬µ¿¿ πñá½Ñ¡¿∩ φ½Ñ¼Ñ¡Γá
  2799.                      ¿º ß»¿ß¬á ß ñó«⌐¡«⌐ ßó∩º∞ε }
  2800.               ¥Γ«⌐ Σπ¡¬µ¿¿  »ÑαÑñáÑΓß∩  ¡á «ñ¿¡ π¬áºáΓѽ∞ ¼Ñ¡∞ΦÑ,  τѼ ñ½∩
  2801.          ß««ΓóÑΓßΓóπεΘÑ⌐ Σπ¡¬µ¿¿ »α¿ ¿ß»«½∞º«óá¡¿¿ ß»¿ß¬á ß  «ñ¡«⌐ ßó∩º∞ε.
  2802.          /ôñá½Ñ¡¡δ⌐  φ½Ñ¼Ñ¡Γ  πªÑ  ¿¼ÑÑΓ π¬áºáΓѽ∞ ¡á »αÑñδñπΘ¿⌐ φ½Ñ¼Ñ¡Γ ¿
  2803.          π¬áºáΓѽ∞ ¡á ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ/. Å«ß¬«½∞¬π »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ó ß»¿ß-
  2804.          ¬Ñ ¼«ªÑΓ ¿º¼Ñ¡¿Γ∞ß∩, Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á ¡áτὫ ß»¿ß-
  2805.          ¬á.
  2806.  
  2807.  
  2808.  
  2809.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 61 =
  2810.  
  2811.                     æ»¿ß«¬ áñαÑ߫󠻫τΓ«óδ󠬫ααÑß»«¡ñÑ¡µ¿⌐, »«ßΓα«Ñ¡¡δ⌐       
  2812.                       ó ó¿ñÑ ß»¿ß¬á ß ñóπ¼∩ ßó∩º∩¼¿
  2813.          -----------------------------------------------------------------
  2814.  
  2815.               ì¿ªÑ »α¿óÑñѡᠻα«ßΓá∩ »α«úαá¼¼á ñ½∩ ß»¿ß¬á »«τΓ«óδ󠬫ααÑß-
  2816.          »«¡ñÑ¡µ¿⌐,  »«ßΓα«Ñ¡¡«ú«  ó  ó¿ñÑ ß»¿ß¬á ß ñó«⌐¡«⌐ ßó∩º∞ε.  çñÑß∞
  2817.          óÑß∞ ß»¿ß«¬ ß«ñÑনΓß∩ ó «»ÑαáΓ¿ó¡«⌐  »á¼∩Γ¿.  Äñ¡á¬«,  »α«úαá¼¼á
  2818.          ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡á ñ½∩ σαá¡Ñ¡¿∩ ß»¿ß¬á ¡á ñ¿ß¬Ñ.
  2819.              {»α«ßΓá∩  »α«úαá¼¼á ñ½∩ ß»¿ß¬á áñαÑ߫󠻫τΓ«óδ󠬫ααÑß»«¡-
  2820.              ñÑ¡µ¿⌐, ¿½½εßΓα¿απεΘá∩ »α¿¼Ñ¡Ñ¡¿Ñ ß»¿ß¬«ó ß ñó«⌐¡«⌐ ßó∩º∞ε}
  2821.             program mailing_list;
  2822.  
  2823.               type
  2824.                 str80 = string[80];
  2825.                 AddrPointer = -address;
  2826.                 address = record
  2827.                   name: string[30];
  2828.                   street: string[40];
  2829.                   city: string[20];
  2830.                   state: string[2];
  2831.                   zip: string[9];
  2832.                   next: AddrPointer;  { π¬áºáΓѽ∞  ¡á ß½ÑñπεΘπε ºá»¿ß∞ }
  2833.                   prior: AddrPointer; { π¬áºáΓѽ∞ ¡á »αÑñδñπΘπε ºá»¿ß∞ }
  2834.                 end;
  2835.  
  2836.                 DataItem = address;
  2837.                 filtype = file of address;
  2838.  
  2839.               var
  2840.                 t, t2: integer;
  2841.                 mlist: FilType;
  2842.                 start, last: AddrPointer;
  2843.                 done: boolean;
  2844.  
  2845.               { ó맮ó ¼Ñ¡ε }
  2846.               function MenuSelect: char;
  2847.               var
  2848.                 ch: char;
  2849.                     begin
  2850.                       Writeln('1. Enter names');
  2851.                       Writeln('2. Delete a name');
  2852.                       Writeln('3. Display the list');
  2853.                       Writeln('4. Search for a name');
  2854.                       Writeln('5. Save the list');
  2855.                       Writeln('6. Load the list');
  2856.                       Writeln('7. Quit');
  2857.                       repeat
  2858.                         Writeln;
  2859.  
  2860.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 62 =
  2861.  
  2862.                         Write('Enter your choice: ');
  2863.                         Readln(ch);
  2864.                         ch := UpCase(ch);
  2865.                       until (ch>='1') and (ch<='7')
  2866.                       MenuSelect := ch;
  2867.                       end;{ ¬«¡Ñµ óδí«αá »« ¼Ñ¡ε }
  2868.  
  2869.          { π»«α∩ñ«τÑ¡¡á∩ πßΓá¡«ó¬á φ½Ñ¼Ñ¡Γ«ó ó ß»¿ß«¬ ß ñó«⌐¡«⌐ ßó∩º∞ε }
  2870.                     function DSL_Store(info, start: AddrPointer;
  2871.                                        var last: AddrPointer): AddrPointer;
  2872.            { óßΓáó¬á φ½Ñ¼Ñ¡Γ«ó ó ß««ΓóÑΓßΓóπεΘÑÑ ¼ÑßΓ« ß ß«σαá¡Ñ¡¿Ñ¼
  2873.                                »«α∩ñ¬á }
  2874.                     var
  2875.                       old, top: AddrPointer;
  2876.                       done: boolean;
  2877.                     begin
  2878.                       top := start;
  2879.                       old := nil;
  2880.                       done := FALSE;
  2881.  
  2882.                       if start = nil then begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á }
  2883.                         info^.next := nil;
  2884.                         last := info;
  2885.                         info^.prior :=nil;
  2886.                         DSL_Store := info;
  2887.                       end else
  2888.                       begin
  2889.                         while (start<>nil) and (not done) do
  2890.                         begin
  2891.                           if start^.name < info^.name then
  2892.                           begin
  2893.                             old := start;
  2894.                             start := start^.next;
  2895.                           end else
  2896.                           begin { óßΓáó¬á ó ßÑαÑñ¿¡π }
  2897.                             if old <>nil then
  2898.                               begin
  2899.                               old^.next := info;
  2900.                               info^.next := start;
  2901.                               start^.prior := info;
  2902.                               info^.prior := old;
  2903.                               DSL_Store := top; { ß«σαá¡Ñ¡¿Ñ ¡áτá½á }
  2904.                               done := TRUE;
  2905.                             end else
  2906.                             begin
  2907.                               info^.next := start;{¡«óδ⌐ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ }
  2908.                               info^.prior := nil;
  2909.                               DSL_Store := info;
  2910.  
  2911.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 63 =
  2912.  
  2913.                               done := TRUE;
  2914.                             end;
  2915.                           end;
  2916.                         end;  { ¬«¡Ñµ µ¿¬½á }
  2917.                         if not done then begin
  2918.                           last^.next := info;
  2919.                           info^.next := nil;
  2920.                           info^.prior := last;
  2921.                           last := info;
  2922.                           DSL_Store := top; { ß«σαá¡Ñ¡¿Ñ ¡áτá½á }
  2923.                         end;
  2924.                       end;
  2925.                     end;  { ¬«¡Ñµ Σπ¡¬µ¿¿ DSL_Store }
  2926.  
  2927.                  { πñ὿Γ∞ φ½Ñ¼Ñ¡Γ ¿º ß»¿ß¬á ß ñó«⌐¡«⌐ ßó∩º∞ε }
  2928.                     function DL_Delete(start: AddrPointer
  2929.                                        key: str[80]): AddrPointer
  2930.                     var
  2931.                       temp, temp2: AddrPointer
  2932.                       done: boolean;
  2933.                     begin
  2934.                       if star^.name = key then begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ
  2935.                     ß»¿ß¬á }
  2936.                        DL_Delete := start^.next;
  2937.                        if temp^.next <> nil then
  2938.                        begin
  2939.                          temp := start^.next;
  2940.                          temp^.prior := nil;
  2941.                        end;
  2942.                        dispose(start);
  2943.                     end else
  2944.                     begin
  2945.                       done := FALSE;
  2946.                       temp := start^.next;
  2947.                       temp2 := start;
  2948.                       while (temp <> nil) and (not done) do
  2949.                       begin
  2950.                         if temp^.next <> nil then
  2951.                            temp^.next^.prior := temp2
  2952.                            done := TRUE
  2953.                            dispose(temp);
  2954.                       end else
  2955.                         begin
  2956.                           temp2 := temp;
  2957.                           temp := temp^.next;
  2958.                         end;
  2959.                       end;
  2960.                       DL_Delete := start; { ¡áτὫ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩ }
  2961.  
  2962.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 64 =
  2963.  
  2964.                       if not done then Writeln('not found');
  2965.                     end;
  2966.                   end; { ¬«¡Ñµ Σπ¡¬µ¿¿ DL_Delete }
  2967.  
  2968.                    { πñá½Ñ¡¿Ñ áñαÑßá ¿º ß»¿ß¬á }
  2969.                     procedure remove;
  2970.                     var
  2971.                       name:str80;
  2972.                     begin
  2973.                       Writeln('Enter name to delete: ');
  2974.                       Readln(name);
  2975.                       start := DL_Delete(start,name);
  2976.                     end;  { ¬«¡Ñµ »α«µÑñπαδ πñá½Ñ¡¿∩ áñαÑßá ¿º ß»¿ß¬á }
  2977.  
  2978.                     procedure Enter;
  2979.                     var
  2980.                       info: AddrPointer;
  2981.                       done: boolean;
  2982.                     begin
  2983.                       done := FALSE;
  2984.                       repeat
  2985.                       new(info)  { »«½πτ¿Γ∞ ¡«óπε ºá»¿ß∞ }
  2986.                       Write('Enter name: ');
  2987.                       Readln(info^.name);
  2988.                       if Length(info^.name)=0 then done := TRUE
  2989.                       else
  2990.                       begin
  2991.                         Write(Enter street: ');
  2992.                         Readln(info.street);
  2993.                         Write(Enter city: ');
  2994.                         Readln(info.city);
  2995.                         Write(Enter state: ');
  2996.                         Readln(info.state);
  2997.                         Write(Enter zip: ');
  2998.                         Readln(info.zip);
  2999.                         start := DSL_Store(info, start, last); { óßΓáó¿Γ∞
  3000.                     ºá»¿ß∞ }
  3001.                       end;
  3002.                     until done;
  3003.                   end;  { ¬«¡Ñµ óó«ñá }
  3004.  
  3005.                     { óδóÑßΓ¿ ß»¿ß«¬ }
  3006.                     procedure Display(start:AddrPointer);
  3007.                     begin
  3008.                       while start <> nil do begin
  3009.                         Writeln(start^.name);
  3010.                         Writeln(start^.street);
  3011.                         Writeln(start^.city);
  3012.  
  3013.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 65 =
  3014.  
  3015.                         Writeln(start^.state);
  3016.                         Writeln(start^.zip);
  3017.                         start := start^.next
  3018.                         Writeln;
  3019.                       end;
  3020.                     end;
  3021.  
  3022.                    { ¡á⌐Γ¿ φ½Ñ¼Ñ¡Γ ß áñαÑß«¼ }
  3023.                     function Search(start: AddrPointer; name: str80):
  3024.                                    AddrPointer;
  3025.                     var
  3026.                       done: boolean;
  3027.                     begin
  3028.                       done := FALSE
  3029.                       while (start <> nil) and (not done) do begin
  3030.                         if name = start^.name then begin
  3031.                           search := start;
  3032.                           done := TRUE;
  3033.                         end else
  3034.                         start := star^.next;
  3035.                       end;
  3036.                       if start = nil then search := nil; { ¡ÑΓ ó ß»¿ß¬Ñ }
  3037.                     end; { ¬«¡Ñµ »«¿ß¬á }
  3038.  
  3039.                     { ¡á⌐Γ¿ áñαÑß »« ΣἿ½¿¿ }
  3040.                     procedure Find;
  3041.                     var
  3042.                       loc: Addrpointer;
  3043.                       name: str80;
  3044.                     begin
  3045.                       Write('Enter name to find: ');
  3046.                       Readln(name);
  3047.                       loc := Search(start, name);
  3048.                       if loc <> nil then
  3049.                       begin
  3050.                         Writeln(loc^.name);
  3051.                         Writeln(loc^.street);
  3052.                         Writeln(loc^.city);
  3053.                         Writeln(loc^.state);
  3054.                         Writeln(loc^.zip);
  3055.                       end;
  3056.                       else Writeln('not in list')
  3057.                        Writeln;
  3058.                     end; { Find }
  3059.  
  3060.                     { ºá»¿ßáΓ∞ ß»¿ß«¬ ¡á ñ¿ß¬ }
  3061.                     procedure Save(var f:FilType; start: AddrPointer):
  3062.                     begin
  3063.  
  3064.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 66 =
  3065.  
  3066.                       Writeln('saving file');
  3067.                       Rewrite(f);
  3068.                       while start <> nil do begin
  3069.                       write(f,start);
  3070.                       start := start^.next;
  3071.                       end;
  3072.                    end;
  3073.                                 { ºáúαπº¿Γ∞ ß»¿ß«¬ ß Σá⌐½á }
  3074.                     procedure Load(var f:FilType; start: AddrPointer):
  3075.                                  AddrPointer;
  3076.                     var
  3077.                       temp, temp2: AddrPointer
  3078.                       first: boolean;
  3079.                     begin
  3080.                       Writeln('load file');
  3081.                       Reset(f);
  3082.                       while start <> nil do begin  { «ßó«í«ªñÑ¡¿Ñ »á¼∩Γ¿
  3083.                                                     »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ }
  3084.                         temp := start^.next
  3085.                         dispose(start);
  3086.                         start := temp;
  3087.                       end;
  3088.  
  3089.                       start := nil; last := nil;
  3090.                       if not eof(f) then begin
  3091.                         New(temp);
  3092.                         Read(i, temp^);
  3093.                         temp^.next := nil;  temp^.prior:= nil;
  3094.                         load := temp;  { π¬áºáΓѽ∞ ¡á ¡áτὫ ß»¿ß¬á }
  3095.                       end;
  3096.  
  3097.                         while not eof(f) do begin
  3098.                           New(temp2);
  3099.                           Read(i, temp2^);
  3100.                           temp^.next := temp2; { »«ßΓα«¿Γ∞ ß»¿ß«¬ }
  3101.                           temp2^.next := nil;
  3102.                           temp^.prior := temp2;
  3103.                           temp := temp2;
  3104.                         end;
  3105.                         last := temp2;
  3106.                       end; { ¬«¡Ñµ ºáúαπº¬¿ }
  3107.  
  3108.                       begin
  3109.                         start := nil; { ß¡áτá½á ß»¿ß«¬ »πßΓ«⌐ }
  3110.                         last := nil;
  3111.                         done := FALSE;
  3112.  
  3113.                         Assign(mlist, 'mlistd.dat');
  3114.  
  3115.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 67 =
  3116.  
  3117.  
  3118.                         repeat
  3119.                           case MenuSelect of
  3120.                             '1': Enter;
  3121.                             '2': Remove;
  3122.                             '3': Display(start);
  3123.                             '4': Find;
  3124.                             '5': Save(mlist, start);
  3125.                             '6': start := Load(mlist, start);
  3126.                             '7': done := TRUE;
  3127.                           end;
  3128.                         until done=TRUE;
  3129.                     end. { ¬«¡Ñµ »α«úαá¼¼δ }
  3130.  
  3131.  
  3132.  
  3133.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 68 =
  3134.  
  3135.                                             äéÄêùì¢à äàÉà飃                   
  3136.          -----------------------------------------------------------------
  3137.  
  3138.               é φΓ«¼ αáºñѽѠαáßß¼áΓα¿óáÑΓß∩ τÑΓóÑαΓá∩  ßΓαπ¬Γπαá  ñá¡¡δσ,
  3139.          ¬«Γ«αá∩ ¡áºδóáÑΓß∩ ñó«¿τ¡δ¼ ñÑαÑó«¼.  ê¼ÑÑΓß∩ ¼¡«ú« Γ¿»«ó ñÑαÑó∞-
  3140.          Ñó.  Äñ¡á¬«, ñó«¿τ¡δÑ ñÑαÑó∞∩ ºá¡¿¼áεΓ «ß«í«Ñ »«½«ªÑ¡¿Ñ. àß½¿ Γá-
  3141.          ¬¿Ñ ñÑαÑó∞∩ π»«α∩ñ«τ¿Γ∞,  Γ« «»Ñαᵿ¿ »«¿ß¬á,  óßΓá󬿠¿ πñá½Ñ¡¿∩
  3142.          íπñπΓ óδ»«½¡∩Γ∞ß∩ «τÑ¡∞ íδßΓα«.  èáªñδ⌐ φ½Ñ¼Ñ¡Γ ñó«¿τ¡«ú«  ñÑαÑóá
  3143.          ¿¼ÑÑΓ ¿¡Σ«α¼áµ¿«¡¡δÑ »«½∩, ßó∩º∞ ß ½Ñóδ¼ φ½Ñ¼Ñ¡Γ«¼ ¿ ßó∩º∞ ß »αá-
  3144.          óδ¼ φ½Ñ¼Ñ¡Γ«¼. ìá α¿ß.14 »«¬áºá¡« ¡Ñí«½∞Φ«Ñ ñÑαÑó«.
  3145.               Åα¿ «»¿ßá¡¿¿ ñÑαÑó∞Ñó ¿ß»«½∞ºπÑΓß∩ ß»Ñµ¿á½∞¡á∩ ΓÑନ¡«½«ú¿∩.
  3146.          ÅÑαóδ⌐ φ½Ñ¼Ñ¡Γ ñÑαÑóá ¡áºδóáÑΓß∩ Ñú« ¬«α¡Ñ¼. èáªñδ⌐ φ½Ñ¼Ñ¡Γ ¡áºδ-
  3147.          óáεΓ óÑαΦ¿¡«⌐ /¿½¿ ½¿ßΓ«¼/ ñÑαÑóá,  á τáßΓ∞ ñÑαÑóá ¡«ß¿Γ ¡áºóá¡¿Ñ
  3148.          »«ññÑαÑóá. éÑαΦ¿¡á, ¬«Γ«αá∩ ¡Ñ ¿¼ÑÑΓ »«ññÑαÑó∞Ñó, ¡áºδóáÑΓß∩ ΓÑα-
  3149.          ¼¿¡á½∞¡«⌐  óÑαΦ¿¡«⌐.  éδß«Γá  ñÑαÑóá αáó¡á τ¿ß½π πα«ó¡Ñ⌐ óÑαΦ¿¡ ó
  3150.          ñÑαÑóÑ. é ñá½∞¡Ñ⌐ΦѼ »α¿ αáßß¼«ΓαÑ¡¿¿ ñÑαÑó∞Ñ󠼫ª¡« ßτ¿ΓáΓ∞, τΓ«
  3151.          ó »á¼∩Γ¿ «¡¿ αáß»«½áúáεΓß∩ ΓᬠªÑ,  ¬á¬ ¡á íπ¼áúÑ. Äñ¡á¬« ß½ÑñπÑΓ
  3152.          »«¼¡¿Γ∞, τΓ« ñÑαÑó∞∩ »αÑñßΓáó½∩εΓ ß«í«⌐ ½¿Φ∞ ß»«ß«í »αÑñßΓáó½Ñ¡¿∩
  3153.          ñá¡¡δσ ó »á¼∩Γ¿,  á »á¼∩Γ∞ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ¿¼ÑÑΓ ½¿¡Ñ⌐¡πε Σ«α-
  3154.          ¼π.
  3155.                                                 Root Node 1
  3156.  
  3157.                                  ┌───────┐
  3158.                                  │2 info │
  3159.                                  ├───┬───┤
  3160.                                  │   │   │
  3161.               3                  └───┴───┘                     4
  3162.           Left Subtree                                    Righl Subtree
  3163.  
  3164.                       ┌───────┐            ┌───────┐
  3165.                       │ 2 info│            │2 info │
  3166.                       ├───┬───┤            ├───┬───┤
  3167.                       │   │   │           5│nil│   │
  3168.                       └───┴───┘            └───┴───┘
  3169.  
  3170.              ┌───────┐           ┌───────┐          ┌───────┐
  3171.              │2 info │           │2 info │          │2 info │
  3172.              ├───┬───┤           ├───┬───┤          ├───┬───┤
  3173.             5│nil│nil│5         5│nil│nil│5        5│nil│nil│5
  3174.              └───┴───┘           └───┴───┘          └───┴───┘
  3175.  
  3176.                                   6
  3177.                             Terminal Nodes
  3178.  
  3179.               É¿ß.14. Åα¿¼Ñα ñó«¿τ¡«ú« ñÑαÑóá:
  3180.  
  3181.               1 - ¬«α¡Ñóá∩ óÑαΦ¿¡á;  2 - ¿¡Σ«α¼áµ¿«¡¡δÑ »«½∩;  3  -  ½Ñó«Ñ
  3182.          »«ññÑαÑó«;  5  - π¬áºáΓѽ∞ ßó∩º¿ ß ¡π½Ñóδ¼ º¡áτÑ¡¿Ñ¼;  6 - ΓÑନ-
  3183.  
  3184.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 69 =
  3185.  
  3186.          ¡á½∞¡δÑ óÑαΦ¿¡δ.
  3187.               äó«¿τ¡«Ñ ñÑαÑó« »αÑñßΓáó½∩ÑΓ ß«í«⌐ «ß«íπε  Σ«α¼π  ßó∩ºá¡¡«ú«
  3188.          ß»¿ß¬á.  ä«ßΓπ»  ¬ φ½Ñ¼Ñ¡Γá¼,  ¿σ óßΓáó¬á ¿ πñá½Ñ¡¿Ñ ¼«úπΓ óδ»«½-
  3189.          ¡∩Γ∞ß∩ ó ½εí«¼ »«α∩ñ¬Ñ. èα«¼Ñ Γ«ú«, «»Ñαᵿ∩ »«¿ß¬á ¡Ñ ¡«ß¿Γ αáº-
  3190.          απΦ¿Γѽ∞¡δ⌐ σáαá¬ΓÑα.  ò«Γ∩ ñÑαÑó∞∩ ½Ñú¬« »αÑñßΓáó½∩εΓß∩ «íαạ«,
  3191.          ñ½∩ »α«úαá¼¼¿α«óá¡¿∩ «¡¿ »αÑñßΓáó½∩εΓ ñ«ßΓáΓ«τ¡« ¡Ñ»α«ßΓπε  ºáñá-
  3192.          τπ. Å«φΓ«¼π «¡¿ ßΓ὿ αáßß¼áΓα¿óáΓ∞ß∩ ½¿Φ∞ ó φΓ«¼ αáºñѽÑ.
  3193.               ü«½∞Φ¿¡ßΓó« Σπ¡¬µ¿⌐ ¡áñ ñÑαÑó∞∩¼¿ ¡«ß∩Γ  αѬπαß¿ó¡δ⌐  σáαá¬-
  3194.          ΓÑα,  »«ß¬«½∞¬π ñÑαÑó« ßἫ »« ßÑíÑ ∩ó½∩ÑΓß∩ αѬπαß¿ó¡«⌐ ßΓαπ¬Γπ-
  3195.          α«⌐ ñá¡¡δσ. /Æ.Ñ. ¬áªñ«Ñ »«ññÑαÑó« ßἫ ∩ó½∩ÑΓß∩ ñÑαÑó«¼/. Å«φΓ«-
  3196.          ¼π »αÑñßΓáó½Ñ¡¡δÑ ó φΓ«¼ αáºñѽѠ»α«úαá¼¼δ ∩ó½∩εΓß∩, ¬á¬ »αá󿽫,
  3197.          αѬπαß¿ó¡δ¼¿.  ê¼ÑεΓß∩ ¡ÑαѬπαß¿ó¡δÑ óÑαß¿¿ φΓ¿σ Σπ¡¬µ¿⌐,  «ñ¡á¬«
  3198.          αẫíαáΓ∞ß∩ ó ¡¿σ º¡áτ¿Γѽ∞¡« Γαπñ¡ÑÑ.
  3199.               ô»«α∩ñ«τÑ¡¡«ßΓ∞ ñÑαÑóá ºáó¿ß¿Γ «Γ »«α∩ñ¬á ñ«ßΓπ»á  ¬ ñÑαÑóπ.
  3200.          Åα«µÑßß  ñ«ßΓπ»á ¬ ¬áªñ«⌐ óÑαΦ¿¡Ñ ñÑαÑóá ¡áºδóáÑΓß∩ «íσ«ñ«¼ ñÑαÑ-
  3201.          óá.
  3202.               ê¼ÑÑΓß∩ Γα¿ ß»«ß«íá «íσ«ñá ñÑαÑóá:  ó« ó¡πΓαÑ¡¡Ñ¼ »«α∩ñ¬Ñ, ó
  3203.          »α∩¼«¼ »«α∩ñ¬Ñ ¿ ó «íαáΓ¡«¼ »«α∩ñ¬Ñ.  Åα¿ »α«σ«ªñÑ¡¿¿  ñÑαÑóá  ó«
  3204.          ó¡πΓαÑ¡¡Ñ¼ »«α∩ñ¬Ñ ß¡áτá½á »«ßÑΘáÑΓß∩ ½Ñó«Ñ »«ññÑαÑó«,  ºáΓѼ ¬«-
  3205.          αÑ¡∞ ¿ ºáΓѼ »«ßÑΘáÑΓß∩ »αáó«Ñ ñÑαÑó«.  Åα¿ »α«σ«ªñÑ¡¿¿ ñÑαÑóá  ó
  3206.          »α∩¼«¼ »«α∩ñ¬Ñ ß¡áτá½á »«ßÑΘáÑΓß∩ ¬«αÑ¡∞, ºáΓѼ ½Ñó«Ñ »«ññÑαÑó« ¿
  3207.          ºáΓѼ »αáó«Ñ »«ññÑαÑó«. Åα¿ »α«σ«ªñÑ¡¿¿ ñÑαÑóá ó «íαáΓ¡«¼ »«α∩ñ¬Ñ
  3208.          ß¡áτá½á »«ßÑΘáÑΓß∩ ½Ñó«Ñ »«ññÑαÑó«,  ºáΓѼ »αáó«Ñ »«ññÑαÑó« ¿ ºá-
  3209.          ΓѼ ¬«αÑ¡∞.
  3210.               Å«α∩ñ«¬ »α«σ«ªñÑ¡¿∩ ds, óδíαá¡¡«ú« ó ¬áτÑßΓóÑ »α¿¼Ñαá ñÑαÑóá
  3211.          íπñÑΓ ß½ÑñπεΘ¿¼:
  3212.               - »α¿ »α«σ«ªñÑ¡¿¿ ó« ó¡πΓαÑ¡¡Ñ¼ »«α∩ñ¬Ñ: a b c d e f g;
  3213.               - »α¿ »α«σ«ªñÑ¡¿¿ ó »α∩¼«¼ »«α∩ñ¬Ñ:      d b a c f e g;
  3214.               - »α¿ »α«σ«ªñÑ¡¿¿ ó «íαáΓ¡«¼ »«α∩ñ¬Ñ:    a c b e g f d.
  3215.               ò«Γ∩ ñÑαÑó« ¡Ñ «í∩ºáΓѽ∞¡« ñ«½ª¡« íδΓ∞ π»«α∩ñ«τÑ¡«,  ó í«½∞-
  3216.          Φ¿¡ßΓóÑ ß½πτáÑó «¡« ñ«½ª¡« íδΓ∞ Γᬿ¼. ô»«α∩ñ«τÑ¡¡«ßΓ∞ ñÑαÑóá ºá-
  3217.          ó¿ß¿Γ «Γ Γ«ú«,  ¬á¬ óδ íπñÑΓÑ »α«σ«ñ¿Γ∞ ñÑαÑó«. é »α¿ó«ñ¿¼δσ ¡¿ªÑ
  3218.          »α¿¼Ñαáσ ¿ß»«½∞ºπÑΓß∩ ó¡πΓαÑ¡¡¿⌐ »«α∩ñ«¬ »α«σ«ñá »« ñÑαÑóπ. é «Γ-
  3219.          ß«αΓ¿α«óá¡¡«¼  ñó«¿τ¡«¼  ñÑαÑóÑ ½Ñó«Ñ »«ññÑαÑó« ß«ñÑαª¿Γ óÑαΦ¿¡δ,
  3220.          ¬«Γ«αδÑ ¼Ñ¡∞ΦÑ ¿½¿ αáó¡δ ¬«α¡ε, á óÑαΦ¿¡δ »αáó«ú« »«ññÑαÑóá í«½∞-
  3221.          ΦÑ  ¿½¿ αáó¡δ ¬«α¡ε.  ì¿ªÑ »α¿ó«ñ¿Γß∩ Σπ¡¬µ¿∩,  ¬«Γ«αá∩ óδ»«½¡∩ÑΓ
  3222.          »«ßΓα«Ñ¡¿Ñ «Γß«αΓ¿α«óá¡¡«ú« ñó«¿τ¡«ú« ñÑαÑóá:
  3223.  
  3224.               type
  3225.                 TreePointer = ^tree;
  3226.                 tree = record
  3227.                   data: char;
  3228.                   left: TreePointer;
  3229.                   right:TreePointer;
  3230.                 end;
  3231.  
  3232.               { ñ«íáó¿Γ∞ φ½Ñ¼Ñ¡Γ ó ñó«¿τ¡«Ñ ñÑαÑó« }
  3233.               function Stree(root,r:TreePointer;data:char);TreePointer;
  3234.  
  3235.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 70 =
  3236.  
  3237.               begin
  3238.                 if r=nil then
  3239.                 begin
  3240.                   new(r); { »«½πτ¿Γ∞ ¡«óπε óÑαΦ¿¡π }
  3241.                   r^.left:=nil;
  3242.                   r^right:=nil;
  3243.                   r^.data:=data;
  3244.                   if data<root^.data then root^.left:=r
  3245.                   else root^.right:=r;
  3246.                   STree:=r;
  3247.                 end else
  3248.                 begin
  3249.                   if data<r^.data then STree:=STree(r, r^.left, data)
  3250.                   else STree:=STree(r, r^.right, data);
  3251.                 end;
  3252.               end; { ¬«¡Ñµ Σπ¡¬µ¿¿ ñ«íáó½Ñ¡¿∩ φ½Ñ¼Ñ¡Γá ó ñó«¿τ¡«Ñ
  3253.                                   ñÑαÑó« }
  3254.  
  3255.  
  3256.               é φΓ«¼ á½ú«α¿Γ¼Ñ óδ»«½¡∩ÑΓß∩ »α«ßΓ«  »α«σ«ªñÑ¡¿Ñ  »«  ßó∩º∩¼
  3257.          ñÑαÑóá,  ñó¿úá∩ß∞  ó»αáó« ¿½¿ ó½Ñó« ó ºáó¿ß¿¼«ßΓ¿ «Γ »«½∩ ñá¡¡δσ.
  3258.          Åα¿ »α¿¼Ñ¡Ñ¡¿¿ φΓ«⌐ Σπ¡¬µ¿¿ ¡Ñ«íσ«ñ¿¼«  »αÑñπß¼«ΓαÑΓ∞  ú½«íá½∞¡πε
  3259.          »ÑαѼѡ¡πε  ñ½∩  ¬«α¡∩ ñÑαÑóá.  é¡áτá½Ñ φΓá ú½«íá½∞¡á∩ »ÑαѼѡ¡á∩
  3260.          ñ«½ª¡á íδΓ∞ πßΓá¡«ó½Ñ¡á ó ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ.  ô¬áºáΓѽ∞ ¡á  ¬«αÑ¡∞
  3261.          íπñÑΓ  πßΓá¡«ó½Ñ¡ »α¿ »Ñαó«¼ «íαáΘÑ¡¿¿ ¬ π¬áºá¡¡«⌐ Σπ¡¬µ¿¿.  Å«ß-
  3262.          ¬«½∞¬π »α¿ »«ß½ÑñπεΘ¿σ «íαáΘÑ¡¿∩σ ¬ φΓ«⌐ Σπ¡¬µ¿¿ ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ß-
  3263.          Γ¿ ñѽáΓ∞ ¡«óπε πßΓá¡«ó¬π ¬«α¡∩,  Γ« ¿ß»«½∞ºπÑΓß∩ Σ¿¬Γ¿ó¡á∩ »ÑαÑ-
  3264.          ¼Ñ¡¡á∩.  àß½¿ ú½«íá½∞¡«⌐ »ÑαѼѡ¡«⌐ íπñÑΓ "rt",  Γ«  «íαáΘÑ¡¿Ñ  ¬
  3265.          π¬áºá¡¡«⌐ Σπ¡¬µ¿¿ ¼«ªÑΓ ¿¼ÑΓ∞ ß½ÑñπεΘ¿⌐ ó¿ñ:
  3266.  
  3267.               {call STree}
  3268.               if rt=nil rt:=STree(rt, rt, info)
  3269.               else dummy := STree(rt, rt, info);
  3270.  
  3271.               Åα¿ Γᬫ¼  «íαáΘÑ¡¿¿ ¬ Σπ¡¬µ¿¿ óßΓáó¬á ¿ »Ñαó«ú« ¿ »«ß½Ññπε-
  3272.          Θ¿σ φ½Ñ¼Ñ¡Γ«ó íπñÑΓ óδ»«½¡∩Γ∞ß∩ ¬«ααÑ¬Γ¡«.
  3273.               ô¬áºá¡¡á∩ Σπ¡¬µ¿∩  ∩ó½∩ÑΓß∩  αѬπαß¿ó¡«⌐,  ¬á¬ ¿ í«½∞Φ¿¡ßΓó«
  3274.          ñαπú¿σ »α«µÑñπα ß ñÑαÑó∞∩¼¿.  àß½¿ φëà á½ú«α¿Γ¼  »αÑ«íαẫóáΓ∞,
  3275.          ¿ß»«½∞ºπ∩  »α∩¼«⌐  ¼ÑΓ«ñ »ÑαÑσ«ñá αѬπαß¿ó¡δσ á½ú«α¿Γ¼«ó ó µ¿¬½¿-
  3276.          τÑ߬πε Σ«α¼π,  Γ« »α«úαá¼¼á íπñÑΓ ó ¡Ñ߬«½∞¬« αẠñ½¿¡ÑÑ. Åα¿ «í-
  3277.          αáΘÑ¡¿¿  ¬  Σπ¡¬µ¿¿  ºáñáÑΓß∩  π¬áºáΓѽ∞ ¡á ¬«αÑ¡∞ ¿ π¬áºáΓѽ∞ ¡á
  3278.          »«ññÑαÑó«,  á ΓᬪѠ»«¼ÑΘáѼδÑ ó ñÑαÑó« ñá¡¡δÑ. çñÑß∞ ó ¬áτ¬ÑßΓóÑ
  3279.          óßΓáó½∩Ѽδσ ó ñÑαÑó« ñá¡¡δσ ¿ß»«½∞ºπÑΓß∩ ß¿¼ó«½∞¡«Ñ ñá¡¡«Ñ. Äñ¡á-
  3280.          ¬«,  ó ¬áτÑßΓóÑ Γᬫú« ñá¡¡«ú« ¼«ª¡« ¿ß»«½∞º«óáΓ∞  ñá¡¡«Ñ  ½εí«ú«
  3281.          Γ¿»á.
  3282.               ä½∩ «íσ«ñá ñÑαÑóá ß ¿ß»«½∞º«ó᡿Ѽ π¬áºá¡¡«⌐ Σπ¡¬µ¿¿ ¿ óδñá-
  3283.          τ¿ ¡á »ÑτáΓ∞ »«½∩ ñá¡¡δσ ¬áªñ«⌐ óÑαΦ¿¡δ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ß½Ññπ-
  3284.          εΘπε Σπ¡¬µ¿ε:
  3285.  
  3286.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 71 =
  3287.  
  3288.               procedure InOrder(root:TreePointer);
  3289.               begin
  3290.                 if root<>nil then
  3291.                 begin
  3292.                 InOrder(root^.left);
  3293.                 Write(root^.data);
  3294.                 InOrder(root^.right);
  3295.               end;
  3296.             end.
  3297.               ¥Γá Σπ¡¬µ¿∩ ñѽáÑΓ «íσ«ñ ñÑαÑóá ó« ó¡πΓαÑ¡¡Ñ¼ »«α∩ñ¬Ñ ¿  ºá-
  3298.          óÑαΦáÑΓß∩  »α¿ «í¡áαπªÑ¡¿¿ ΓÑନ¡á½∞¡«ú« ½¿ßΓá /π¬áºáΓѽ∩ « ¡π½Ñ-
  3299.          ó«¼ ºáóÑαΦÑ¡¿¿/.  ì¿ªÑ »«¬áºá¡δ Σπ¡¬µ¿¿ ñ½∩ »α«σ«ªñÑ¡¿∩ ñÑαÑóá  ó
  3300.          »α∩¼«¼ ¿ «íαáΓ¡«¼ »«α∩ñ¬Ñ:
  3301.               procedure PreOrder(root:TreePointer);
  3302.               begin
  3303.                 if root<>nil then
  3304.                 begin
  3305.                   write(root^.data);
  3306.                   preorder(root^.left);
  3307.                   preorder(root^.right);
  3308.                 end;
  3309.               end.
  3310.  
  3311.               procedure PostOrder(root:TreePointer);
  3312.               begin
  3313.                 if root<>nil then
  3314.                 begin
  3315.                   postorder(root^.left);
  3316.                   postorder(root^.right);
  3317.                   Write(root^.data);
  3318.                 end;
  3319.               end.
  3320.               éδ ¼«ªÑΓÑ ß«ßΓáó¿Γ∞ ¬«α«Γ¬πε »α«úαá¼¼π,  ¬«Γ«αá∩ ßΓα«¿Γ π»«-
  3321.          α∩ñ«τÑ¡¡«Ñ ñó«¿τ¡«Ñ ñÑαÑó« ¿,  ¬α«¼Ñ Γ«ú«, »ÑτáΓáÑΓ Ñú« ¡á φ¬αá¡Ñ
  3322.          óáΦÑú«  ¬«¼»∞εΓÑαá.  ä½∩  φΓ«ú« ΓαÑíπÑΓß∩ óδ»«½¡¿Γ∞ ½¿Φ∞ ¡Ñº¡áτ¿-
  3323.          Γѽ∞¡δÑ ¿º¼Ñ¡Ñ¡¿∩ ó »α«µÑñπαÑ »α«σ«ñá ñÑαÑóá ó« ó¡πΓαÑ¡¡Ñ¼ »«α∩ñ-
  3324.          ¬Ñ.  ì¿ªÑ »α¿ó«ñ¿Γß∩ »α«úαá¼¼á,  ¬«Γ«αá∩ óδñáÑΓ óÑαΦ¿¡δ ñÑαÑóá ó«
  3325.          ó¡πΓαÑ¡¡Ñ¼ »«α∩ñ¬Ñ:
  3326.  
  3327.            { óδó«ñ ¡á φ¬αá¡ óÑαΦ¿¡ ñÑαÑóá /ß½Ñóá ¡á»αáó«/ }
  3328.                  programm DisplayTree;
  3329.  
  3330.                  uses Crt;
  3331.  
  3332.                  type
  3333.                    TreePointer = ^tree
  3334.                    tree = record
  3335.                      data: char;
  3336.  
  3337.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 72 =
  3338.  
  3339.                      left: TreePointer;
  3340.                      right: TreePointer;
  3341.                      end;
  3342.                  var
  3343.                    root, dummy: TreePointer;
  3344.                    ch:char;
  3345.  
  3346.                  function STree(root, r:TreePointer; data: char):
  3347.                           TreePointer;
  3348.                  begin
  3349.                    if r = nil then
  3350.                    begin
  3351.                      new(r); { »«½πτ¿Γ∞ ¡«óπε óÑαΦ¿¡π }
  3352.                      r^.left := nil;
  3353.                      r^.right := nil;
  3354.                      r^.data := data;
  3355.                      if data < root^.data then root^.left := r
  3356.                      else root^.right := r;
  3357.                     STree := r;
  3358.                   end else
  3359.                   begin
  3360.                     if data<r^.data then STree := STree(r, r^.left, data)
  3361.                     else STree := STree(r, r^.right, data)
  3362.                   end;
  3363.                  end; { ¬«¡Ñµ »α«µÑñπαδ STree }
  3364.  
  3365.                  procedure PrintTree(r: TreePointer; n: integer);
  3366.                  var
  3367.                    i:integer;
  3368.                  begin
  3369.                    if r<>nil then begin
  3370.                       PrintTree(r.^left, n+1);
  3371.                       for i := 1 to n do Write('   ');
  3372.                       Writeln(r^.data);
  3373.                       PrintTree(r^.right, n+1);
  3374.                     end;
  3375.                  end; { ¬«¡Ñµ »α«µÑñπαδ PrintTree }
  3376.  
  3377.                  begin
  3378.                    root := nil;
  3379.                    repeat
  3380.                      Write('enter a letter (Q to quit): ');
  3381.                      ch := ReadKey; Writeln(ch);
  3382.                      if root= nil then root := STree(root, root, ch)
  3383.                      else dummy := STree(root, root, ch);
  3384.                      ch := UpCase(ch);
  3385.                   until ch ='Q';
  3386.  
  3387.  
  3388.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 73 =
  3389.  
  3390.                  PrintTree(root, 0);
  3391.                end;
  3392.  
  3393.              é φΓ«⌐ »α«úαἼѠΣá¬Γ¿τÑ߬¿  ñѽáÑΓß∩  ß«αΓ¿α«ó¬á  »«½πτÑ¡¡«⌐
  3394.          ¿¡Σ«α¼áµ¿¿.  é  ñá¡¡«¼  ß½πτáÑ  ¿ß»«½∞ºπÑΓß∩  óáα¿á¡Γ  ß«αΓ¿α«ó¬¿
  3395.          óßΓáó¬«⌐,  ¬«Γ«αá∩ «»¿ßδóáÑΓß∩ ó »αÑñδñπΘÑ⌐ ú½áóÑ.  ä½∩  ßαÑñ¡Ñú«
  3396.          ß½πτá∩ ß«αΓ¿α«ó¬á óßΓáó¬«⌐ ¿¼ÑÑΓ ñ«ßΓáΓ«τ¡« σ«α«Φ¿Ñ σáαá¬ΓÑα¿ßΓ¿-
  3397.          ¬¿, «ñ¡á¬« íδßΓαá∩ ß«αΓ¿α«ó¬á óßÑ ªÑ ∩ó½∩ÑΓß∩ ½πτΦ¿¼ ¼ÑΓ«ñ«¼ ß«α-
  3398.          Γ¿α«ó¬¿, Γᬠ¬á¬ «¡á ΓαÑíπÑΓ ¼Ñ¡∞ΦÑ «»ÑαáΓ¿ó¡«⌐ »á¼∩Γ¿ ¿ óδ»«½¡∩-
  3399.          ÑΓß∩  íδßΓαÑÑ.   Äñ¡á¬«,   Ñß½¿   ñÑαÑó«   ßΓα«¿Γß∩   ¡á   «ß¡«óÑ
  3400.          ¿ß»«½∞º«óá¡¿∩  ñαπú¿σ  ñÑαÑó∞Ñó ¿½¿ Ñß½¿ óá¼ »α¿σ«ñ¿Γß∩ »«ññÑন-
  3401.          óáΓ∞ π»«α∩ñ«τÑ¡¡«Ñ ñÑαÑó«,  Γ« ¡«óδÑ φ½Ñ¼Ñ¡Γδ óßÑúñá íπñπΓ óßΓáó-
  3402.          ½∩Γ∞ß∩ ß ¿ß»«½∞º«ó᡿Ѽ Σπ¡¬µ¿¿ STree.
  3403.               àß½¿ óδ ó«ß»«½∞ºπÑΓÑß∞ »α«úαá¼¼«⌐ óδó«ñá ¡á  φ¬αá¡ ñó«¿τ¡«ú«
  3404.          ñÑαÑóá,  Γ« ó«º¼«ª¡« óδ ºá¼ÑΓ¿ΓÑ, τΓ« ¡Ñ¬«Γ«αδÑ ñÑαÑó∞∩ ßíá½á¡ß¿-
  3405.          α«óá¡δ /Γ.Ñ. óßÑ »«ññÑαÑó∞∩ ¿¼ÑεΓ «ñ¿¡á¬«óπε ¿½¿ »«τΓ¿ «ñ¿¡á¬«óπε
  3406.          óδß«Γπ/, á ñαπú¿Ñ ß¿½∞¡« ¡Ñßíá½á¡ß¿α«óá¡δ. àß½¿ óδ óóÑñÑΓÑ ñÑαÑó«
  3407.          "abcd", Γ« «¡« »α¿¼ÑΓ ß½ÑñπεΘ¿⌐ ó¿ñ:
  3408.                     a
  3409.                      \
  3410.                       \
  3411.                        b
  3412.                         \
  3413.                          \
  3414.                           c
  3415.                            \
  3416.                             \
  3417.                              d
  3418.               é φΓ«¼ ß½πτáÑ ½Ñóδσ »«ññÑαÑó∞Ñó ¡Ñ íπñÑΓ. ¥Γ« ñÑαÑó« ¡áºδóá-
  3419.          ÑΓß∩ óδ᫪ñÑ¡¡δ¼,  »«ß¬«½∞¬π «¡« óδα«ñ¿½«ß∞ ó ½¿¡Ñ⌐¡δ⌐ ß»¿ß«¬.  é
  3420.          «íΘѼ ß½πτáÑ,  Ñß½¿ ¿ß»«½∞ºπѼδÑ ñ½∩ »«ßΓα«Ñ¡¿∩ ñÑαÑóá ñá¡¡δÑ ∩ó-
  3421.          ½∩εΓß∩ ó ñ«ßΓáΓ«τ¡«⌐ ¼ÑαÑ ß½πτá⌐¡δ¼¿, ñÑαÑó« íπñÑΓ »α¿í½¿ªáΓ∞ß∩ ¬
  3422.          ßíá½á¡ß¿α«óá¡¡«¼π.  Äñ¡á¬«, Ñß½¿ ¿¡Σ«α¼áµ¿∩ πªÑ π»«α∩ñ«τÑ¡á, Γ« ó
  3423.          αѺπ½∞ΓáΓÑ íπñÑΓ »«½πτáΓ∞ß∩ óδ᫪ñÑ¡¡«Ñ ñÑαÑó«.  /ê¼ÑÑΓß∩ ó«º¼«ª-
  3424.          ¡«ßΓ∞ »ÑαÑπ»«α∩ñ«τ¿óáΓ∞ ñÑαÑó«,  ß«σαá¡∩∩ »α¿ ¬áªñ«⌐ óßΓáó¬Ñ  Ñú«
  3425.          íá½á¡ß¿α«ó¬π.  Äñ¡á¬«  Γᬫ⌐ á½ú«α¿Γ¼ ñ«ßΓáΓ«τ¡« ß½«ªÑ¡ ¿ Ñß½¿ «¡
  3426.          óáß ºá¿¡ΓÑαÑß«óá½,  Γ« ß½ÑñπÑΓ ó«ß»«½∞º«óáΓ∞ß∩ ¬¡¿úἿ »« πß«óÑα-
  3427.          ΦÑ¡ßΓó«óá¡¡δ¼ ¼ÑΓ«ñá¼ ß«ßΓáó½Ñ¡¿∩ á½ú«α¿Γ¼«ó »α«úαá¼¼/.
  3428.               öπ¡¬µ¿¿ »«¿ß¬á ñ½∩ ñó«¿τ¡δσ ñÑαÑó∞Ñó ß«ßΓáó½∩εΓß∩ ½Ñú¬«. ì¿-
  3429.          ªÑ »α¿ó«ñ¿Γß∩ Σπ¡¬µ¿∩,  αѺπ½∞ΓáΓ«¼ ¬«Γ«α«⌐ ∩ó½∩ÑΓß∩ π¬áºáΓѽ∞ ¡á
  3430.          óÑαΦ¿¡π ñÑαÑóá,  ¬«Γ«αá∩ ß«ó»áñáÑΓ ß ¬½ετѼ.  é »α«Γ¿ó¡«¼  ß½πτáÑ
  3431.          ó«ºóαáΘáÑΓß∩ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ.
  3432.  
  3433.               { »«¿ß¬ φ½Ñ¼Ñ¡Γá ó ñÑαÑóÑ }
  3434.              function Search(root:TreePointer;
  3435.                              key:DataItem):TreePointer;
  3436.  
  3437.              begin
  3438.  
  3439.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 74 =
  3440.  
  3441.                if root <> nil
  3442.                begin
  3443.                  while (root^.data <> key) and (root <> nil) do
  3444.                  begin
  3445.                    if key < root^.data then root := root^.left
  3446.                    else root := root^.right;
  3447.                  end;
  3448.                  end;
  3449.                 Search := root;
  3450.              end; { ¬«¡Ñµ »α«µÑñπαδ »«¿ß¬á φ½Ñ¼Ñ¡Γá }
  3451.  
  3452.  
  3453.               è ß«ªá½Ñ¡¿ε,  πñá½Ñ¡¿Ñ  óÑαΦ¿¡δ  ñÑαÑóá  óδ»«½¡∩ÑΓß∩  ¡Ñ Γá¬
  3454.          »α«ßΓ«,  ¬á¬ »«¿ß¬ óÑαΦ¿¡δ. ôñá½Ñ¡¡«⌐ óÑαΦ¿¡«⌐ ¼«ªÑΓ íδΓ∞ ¬«αÑ¡∞,
  3455.          ½Ñóá∩  óÑαΦ¿¡á  ¿½¿ »αáóá∩ óÑαΦ¿¡á.  éÑαΦ¿¡á ¼«ªÑΓ ΓᬪѠ¿¼ÑΓ∞ «Γ
  3456.          ¡π½∩ ñ« ñóπσ »«ññÑαÑó∞Ñó. ìÑ«íσ«ñ¿¼«ßΓ∞ ¿º¼Ñ¡Ñ¡¿∩ π¬áºáΓѽÑ⌐ »α¿-
  3457.          ó«ñ¿Γ, ¡á»α¿¼Ñα, ¬ ß½ÑñπεΘѼπ αѬπα߿󡫼π á½ú«α¿Γ¼π
  3458.  
  3459.                     { πñá½Ñ¡¿Ñ φ½Ñ¼Ñ¡Γá ¿º ñÑαÑóá }
  3460.                    function DTree(root:TreePointer;key:char):TreePointer;
  3461.                    var
  3462.                      temp,temp2:TreePointer;
  3463.  
  3464.                   begin
  3465.                     if root^.data = key then
  3466.                     begin
  3467.                       if root^.left=root^.right tnen
  3468.                       begin
  3469.                         dispose(root)
  3470.                         DTree := nil;
  3471.                       end
  3472.                       else  if root^.left=nil tnen
  3473.                       begin
  3474.                         temp := root^.right
  3475.                         dispose(root)
  3476.                         DTree := temp;
  3477.                       end
  3478.                       else  if root^.right=nil tnen
  3479.                       begin
  3480.                         temp := root^.left
  3481.                         dispose(root)
  3482.                         DTree := temp;
  3483.                       end
  3484.                       else
  3485.                       begin  { ¿¼ÑεΓß∩ ñóá ½¿ßΓá }
  3486.                         temp2 := root^.right
  3487.                         temp := root^.right
  3488.                         while temp^.left <> nil do temp := temp^.left;
  3489.  
  3490.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 75 =
  3491.  
  3492.                         temp^.left := root^.left
  3493.                         dispose(root);
  3494.                         DTree := temp2
  3495.                       end;
  3496.                       else
  3497.                       begin
  3498.                         if root^.data < key
  3499.                         then root^.right :=  DTree(root^.right, key)
  3500.                         else root^.left :=  DTree(root^.left, key)
  3501.                         DTree := root;
  3502.                       end;
  3503.                     end; { ¬«¡Ñµ Σπ¡¬µ¿¿ DTree }
  3504.  
  3505.              æ½ÑñπÑΓ »«¼¡¿Γ∞,  τΓ« ó «ß¡«ó¡«⌐ »α«úαἼѠ¡Ñ«íσ«ñ¿¼«  «í¡«ó-
  3506.          ½∩Γ∞ π¬áºáΓѽ∞ ¡á ¬«αÑ¡∞ ñÑαÑóá,  Γᬠ¬á¬ πñá½Ñ¡¡á∩ óÑαΦ¿¡á ¼«ªÑΓ
  3507.          «¬áºáΓ∞ß∩ ¬«α¡Ñ¼ ñÑαÑóá.
  3508.              êß»«½∞º«óá¡¿Ñ ñó«¿τ¡δσ  ñÑαÑó∞Ñó  »«ºó«½∩ÑΓ ß«ºñáóáΓ∞ ¼«Θ¡δÑ,
  3509.          ú¿í¬¿Ñ ¿ φΣΣÑ¬Γ¿ó¡δÑ »α«úαá¼¼δ »« π»αáó½Ñ¡¿ε íẠñá¡¡δσ. ê¡Σ«α¼á-
  3510.          µ¿∩ ó φΓ«¼ ß½πτáÑ ¼«ªÑΓ ¡áσ«ñ¿Γ∞ß∩ ¡á ñ¿ß¬Ñ ¿ »«φΓ«¼π ó᪡«Ñ º¡á-
  3511.          τÑ¡¿Ñ ¼«ªÑΓ ¿¼ÑΓ∞ óαѼ∩ ñ«ßΓπ»á.  ù¿ß½« ßαáó¡Ñ¡¿⌐ »α¿ ¿ß»«½∞º«óá-
  3512.          ¡¿¿  ßíá½á¡ß¿α«óá¡¡δσ  ñó«¿τ¡δσ ñÑαÑó∞Ñó ñ½∩ σπñΦÑú« ß½πτá∩ αáó¡«
  3513.          log2(n).  Å«φΓ«¼π ó φΓ«¼  ß½πτáÑ  »«¿ß¬  óδ»«½¡∩ÑΓß∩  º¡áτ¿Γѽ∞¡«
  3514.          íδßΓαÑÑ, τѼ »«¿ß¬ ó ßó∩ºá¡¡«¼ ß»¿ß¬Ñ, ¬«Γ«αδ⌐ »«ßπΘÑßΓóπ ∩ó½∩ÑΓ-
  3515.          ß∩ »«ß½Ññ«óáΓѽ∞¡δ¼ »«¿ß¬«¼.
  3516.  
  3517.  
  3518.  
  3519.  
  3520.  
  3521.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 76 =
  3522.  
  3523.                          âïÇéÇ 3. äêìÇîêùàæèÄà ÉÇæÅÉàäàïàìêà ÅÇîƒÆê            
  3524.          -----------------------------------------------------------------
  3525.  
  3526.               Éáºαáí«Γ¬á »α«úαá¼¼δ ñ½∩ ¬«¼»∞εΓÑαá ó ¡Ñ¬«Γ«α«¼ ß¼δ߽Ѡ¡á»«-
  3527.          ¼¿¡áÑΓ »α«µÑßß ß«ßΓáó½Ñ¡¿∩  »α«Ñ¬Γá  ºñá¡¿∩,  ó¬½ετáεΘ¿⌐  ó  ßÑí∩
  3528.          αáßß¼«ΓαÑ¡¿Ñ  ¼¡«ú«τ¿ß½Ñ¡¡δσ Σπ¡¬µ¿«¡á½∞¡δσ ¿ φßΓÑΓ¿τÑ߬¿σ ó«»α«-
  3529.          ß«ó,  ó½¿∩εΘ¿σ ¡á «¬«¡τáΓѽ∞¡δ⌐  αѺπ½∞ΓáΓ.  ìá»α¿¼Ñα,  ¡Ñ¬«Γ«αδÑ
  3530.          »α«úαá¼¼δ ¿¼ÑεΓ ßΓα«ú«Ñ Σπ¡¬µ¿«¡á½∞¡«Ñ ¡áº¡áτÑ¡¿Ñ ¬á¬ ñ«¼,  ¬«Γ«-
  3531.          αδ⌐ ¿¼ÑÑΓ «»αÑñѽѡ¡«Ñ τ¿ß½« ß»á½∞¡δ󠬫¼¡áΓ,  ¬πσ¡ε,  ñóÑ óá¡¡δÑ
  3532.          ¬«¼¡áΓδ ¿ Γ.ñ. äαπú¿Ñ »α«úαá¼¼δ ¡«ß∩Γ ¼Ñ¡ÑÑ ºáóÑαΦÑ¡¡δ⌐ σáαá¬ΓÑα,
  3533.          ¬á¬ µÑ¡Γαδ ñ½∩ »α«óÑñÑ¡¿∩  ß«íαá¡¿⌐,  ¬«Γ«αδÑ  ¿¼ÑεΓ  »ÑαÑñ󿪡δÑ
  3534.          ßΓÑ¡δ ¿ ¼«ñπ½∞¡δÑ »«½δ, »«ºó«½∩εΘ¿Ñ ½πτΦÑ »α¿ß»«ß«í¿Γ∞ ºñá¡¿Ñ ñ½∩
  3535.          ¬áªñ«ú« ¬«¡¬αÑΓ¡«ú« ß½πτá∩. é φΓ«⌐ ú½áóÑ «»¿ßδóáÑΓß∩ ¼Ñσá¡¿º¼ π»-
  3536.          αáó½Ñ¡¿∩ »á¼∩Γ∞ε, »«ºó«½∩εΘ¿⌐ αáºαáíáΓδóáΓ∞ ú¿í¬¿Ñ »α«úαá¼¼δ, ¬«-
  3537.          Γ«αδÑ ¼«úπΓ áñá»Γ¿α«óáΓ∞ß∩ ¬  ¬«¡¬αÑΓ¡δ¼  ¡πªñá¼  »«½∞º«óáΓѽ∩  ¿
  3538.          ó«º¼«ª¡«ßΓ∩¼ ¥éî.
  3539.               æ½ÑñπÑΓ «Γ¼ÑΓ¿Γ∞,  τΓ« ó φΓ«⌐ ú½áóÑ ¿ß»«½∞ºπÑΓß∩ ΓÑନ¡ "½«-
  3540.          ú¿τÑ߬¿⌐ ¼áßß¿ó" ¿ ΓÑନ¡ "Σ¿º¿τÑ߬¿⌐ ¼áßß¿ó".  ï«ú¿τÑ߬¿⌐ ¼áßß¿ó
  3541.          - φΓ« Γᬫ⌐ ¼áßß¿ó,  ¬«Γ«αδ⌐ »αÑñßΓáó½∩ÑΓß∩ ßπΘÑßΓóπεΘ¿¼ ó ß¿ßΓÑ-
  3542.          ¼Ñ.  ìá»α¿¼Ñα, ¼áΓα¿µá ¡á ½¿ßΓÑ íπ¼áú¿ ∩ó½∩ÑΓß∩ ½«ú¿τÑ߬¿¼ ¼áßß¿-
  3543.          ó«¼.  ö¿º¿τÑ߬¿⌐ ¼áßß¿ó - φΓ« ¼áßß¿ó,  ¬«Γ«αδ⌐ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿
  3544.          ¿¼ÑÑΓß∩ ó óδτ¿ß½¿Γѽ∞¡«⌐ ß¿ßΓѼÑ.  æó∩º∞ ¼Ñªñπ ñóπ¼∩ φΓ¿¼¿ ¼áßß¿-
  3545.          óἿ «íÑß»Ñτ¿óáÑΓß∩ »α«úαἼἿ »« »«ññÑαª¬Ñ  αáºαѪѡ¡δσ  ¼áßß¿-
  3546.          ó«ó.  é  φΓ«⌐ ú½áóÑ αáßß¼áΓα¿óáÑΓß∩ τÑΓδαÑ ¼ÑΓ«ñá ß«ºñá¡¿∩ αáºαÑ-
  3547.          ªÑ¡¡δσ ¼áßß¿ó«ó: »«ßαÑñßΓó«¼ ßó∩ºá¡¡«ú« ß»¿ß¬á, ñó«¿τ¡«ú« ñÑαÑóá,
  3548.          ¼áßß¿óá π¬áºáΓѽÑ⌐ ¿ σÑΦ¿α«óá¡¿∩.  çáΓѼ íπñπΓ ñá¡δ »α¿¼Ñαδ ñ¿¡á-
  3549.          ¼¿τÑ߬«ú« αáß»αÑñѽѡ¿∩ »á¼∩Γ¿, ¬«Γ«α«Ñ »«ºó«½∩ÑΓ »«óδß¿Γ∞ »α«¿º-
  3550.          ó«ñ¿Γѽ∞¡«ßΓ∞ »α«úαá¼¼δ.
  3551.               é »α«úαἼѠ¡á ∩ºδ¬Ñ Åá߬á½∞ ¿¡Σ«α¼áµ¿ε  ó  «ß¡«ó¡«⌐  »á¼∩Γ¿
  3552.          ¥éî  ¼«ª¡«  σαá¡¿Γ∞ ñóπ¼∩ ß»«ß«íἿ.  ÅÑαóδ⌐ ß»«ß«í ºá¬½ετáÑΓß∩ ó
  3553.          ¿ß»«½∞º«óá¡¿¿ ú½«íá½∞¡δσ ¿½¿ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ, ó¬½ετá∩ ¼áßß¿-
  3554.          óδ  ¿ ºá»¿ß¿,  ¬«Γ«αδÑ »αÑñπß¼«ΓαÑ¡δ ó ∩ºδ¬Ñ Åá߬á½∞.  â½«íá½∞¡δÑ
  3555.          »ÑαѼѡ¡δÑ ºá¡¿¼áεΓ »«ßΓ«∩¡¡«Ñ ¼ÑßΓ« ó »á¼∩Γ¿ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩
  3556.          »α«úαá¼¼δ.  ä½∩  ½«¬á½∞¡δσ  »ÑαѼѡ¡δσ »á¼∩Γ∞ óδñѽ∩ÑΓß∩ ¿º ßΓѬá
  3557.          ¥éî. ò«Γ∩ π»αáó½Ñ¡¿Ñ ú½«íá½∞¡δ¼¿ ¿ ½«¬á½∞¡δ¼¿ »ÑαѼѡ¡δ¼¿ ¡á Åáß-
  3558.          ¬á½Ñ  αÑ὿º«óá¡«  φΣΣÑ¬Γ¿ó¡«,  »α«úαá¼¼¿ßΓ  ñ«½ªÑ¡ º¡áΓ∞ ºáαá¡ÑÑ
  3559.          «íΩѼ ¡Ñ«íσ«ñ¿¼«⌐ »á¼∩Γ¿ ñ½∩ ¬áªñ«ú« ¬«¡¬αÑΓ¡«ú« ß½πτá∩. äαπú«⌐ ¿
  3560.          í«½ÑÑ  φΣΣÑ¬Γ¿ó¡δ⌐ ß»«ß«í π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε ¡á Åá߬á½Ñ «íÑß»Ñτ¿-
  3561.          óáÑΓß∩ »α¿¼Ñ¡Ñ¡¿Ñ¼ Σπ¡¬µ¿⌐ »« ñ¿¡á¼¿τÑ߬«¼π  π»αáó½Ñ¡¿ε  »á¼∩Γ∞ε.
  3562.          Æá¬¿¼ ∩ó½∩εΓß∩ Σπ¡¬µ¿¿ "New", "Dispose", "Mark" ¿ "Release".
  3563.               é «í«¿σ ¼ÑΓ«ñáσ ñ¿¡á¼¿τÑ߬«ú« π»αáó½Ñ¡¿ε »á¼∩Γ∞ε »á¼∩Γ∞  óδ-
  3564.          ñѽ∩ÑΓß∩  ¿º  ßó«í«ñ¡«ú« πτáßΓ¬á,  ¬«Γ«αδ⌐ ¡Ñ óσ«ñ¿Γ ó »«ßΓ«∩¡¡πε
  3565.          «í½áßΓ∞ »α«úαá¼¼δ,  ¿ ßΓѬá /¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó  Åá߬á½Ñ  ñ½∩
  3566.          σαá¡Ñ¡¿∩ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ/. ¥Γá «í½áßΓ∞ ¡áºδóáÑΓß∩ ñ¿¡á¼¿τÑß-
  3567.          ¬«⌐ (heap).
  3568.               É¿ß.15 ¿½½εßΓα¿απÑΓ  ßΓαπ¬Γπαπ »á¼∩Γ¿ ñ½∩ »α«úαá¼¼δ ¡á ∩ºδ¬Ñ
  3569.          Æπαí« Åá߬á½∞. æΓѬ πóѽ¿τ¿óáÑΓß∩ ó ¡¿ª¡Ñ¼ ¡á»αáó½Ñ¡¿¿. ÄíΩѼ »á-
  3570.          ¼∩Γ¿,  ¡Ñ«íσ«ñ¿¼«⌐ ßΓѬπ,  ºáó¿ß¿Γ «Γ σáαá¬ΓÑαá »α«úαá¼¼δ. ìá»α¿-
  3571.  
  3572.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 77 =
  3573.  
  3574.          ¼Ñα,  »α«úαá¼¼á ß« ¼¡«ú¿¼¿ αѬπαß¿ó¡δ¼¿ Σπ¡¬µ¿∩¼¿ íπñÑΓ ΓαÑí«óáΓ∞
  3575.          ¼¡«ú« ßΓѬ«ó«⌐ »á¼∩Γ¿, »«ß¬«½∞¬π »α¿ ¬áªñ«¼ αѬπα߿󡫼 «íαáΘÑ¡¿¿
  3576.          óδñѽ∩ÑΓß∩ πτáßΓ«¬ ßΓѬ«ó«⌐ »á¼∩Γ¿.  ôτáßΓ«¬ óδñѽ∩Ѽ«⌐ »«ñ »α«ú-
  3577.          αá¼¼π  ¿ ú½«íá½∞¡δÑ »ÑαѼѡ¡δÑ »á¼∩Γ¿ ¿¼ÑÑΓ »«ßΓ«∩¡¡πε óѽ¿τ¿¡π ¿
  3578.          ¡Ñ ¿º¼Ñ¡∩ÑΓß∩ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ.  Åá¼∩Γ∞ ñ½∩ ºá»α«ß«ó
  3579.          Σπ¡¬µ¿¿ "New" íÑαÑΓß∩ ¿º ßó«í«ñ¡«ú« πτáßΓ¬á »á¼∩Γ¿, ¬«Γ«αδ⌐ ¡áτ¿-
  3580.          ¡áÑΓß∩ ßαáºπ »«ß½Ñ ú½«íá½∞¡δσ »ÑαѼѡ¡δσ ¿ »α«ñ«½ªáÑΓß∩ ñ« ßΓѬá.
  3581.          é  ¿ß¬½ετ¿Γѽ∞¡δσ  ß½πτá∩σ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ßΓѬᠫí½áßΓ∞
  3582.          ñ¿¡á¼¿τÑ߬«⌐ »á¼∩Γ¿.
  3583.  
  3584.               æΓáαΦ¿Ñ áñαÑßá »á¼∩Γ¿┌──────────────────┐
  3585.                                    │       ò¿»        │
  3586.                                    │                  │
  3587.                                    ├──────────────────┤
  3588.                                    │                  │
  3589.                                    │                  │
  3590.                                    │      æΓѬ        │
  3591.                                    │                  │
  3592.                                    ├──────────────────┤
  3593.                                    │⽫íá½∞¡δÑ »ÑαѼѡ│
  3594.                                    ├──────────────────┤
  3595.                                    │                  │
  3596.                                    │                  │
  3597.                                    │     Åα«úαἼᠠ  │
  3598.                                    │                  │
  3599.               î½áñΦ¿Ñ áñαÑßá »á¼∩Γ¿└──────────────────┘
  3600.  
  3601.              É¿ß.15. êß»«½∞º«óá¡¿Ñ  »á¼∩Γ¿ ó »α«úαἼѠ¡á ∩ºδ¬Ñ Æπαí« Åáß-
  3602.          ¬á½∞.
  3603.  
  3604.               êß»«½∞º«óá¡¿Ñ ñ¿¡á¼¿τÑ߬«⌐ »á¼∩Γ¿  ºáó¿ß¿Γ  «Γ  Γ«ú«,  ¬á¬á∩
  3605.          Σπ¡¬µ¿∩ »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ «ßó«í«ªñÑ¡¿∩ »á¼∩Γ¿ ¿ ó«ºóαáΘÑ¡¿∩ ÑÑ ß¿ß-
  3606.          ΓѼÑ: Σπ¡¬µ¿∩ "Dispose" ¿½¿ »áαá »α«µÑñπα "Mark" ¿ "Release". èá¬
  3607.          π¬áºá¡« ó ß»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ »« ∩ºδ¬π Æπαí« Åá߬á½∞,  φΓ¿ ñóá
  3608.          ß»«ß«íᠡѽ∞º∩ ¡¿¬«úñá ß¼ÑΦ¿óáΓ∞ ó «ñ¡«⌐ »α«úαá¼¼Ñ.  æ½Ññ«óáΓѽ∞-
  3609.          ¡«,  óá¼ ºáαá¡ÑÑ ¡Ñ«íσ«ñ¿¼« αÑΦ¿Γ∞, ¬á¬¿¼ ¿º ß»«ß«í«ó »«½∞º«óáΓ∞-
  3610.          ß∩.  ä½∩ Γ«ú«,  τΓ«íδ »«¡∩Γ∞,  τѼ φΓ¿ ß»«ß«íδ «Γ½¿τáεΓß∩ ñαπú «Γ
  3611.          ñαπúá, ¡¿ªÑ ñáÑΓß∩ ¬αáΓ¬«Ñ «»¿ßá¡¿Ñ φΓ¿σ Σπ¡¬µ¿⌐.
  3612.  
  3613.  
  3614.  
  3615.  
  3616.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 78 =
  3617.  
  3618.                                               öôìèûꃠ New                     
  3619.          -----------------------------------------------------------------
  3620.  
  3621.               êß»«½∞º«óá¡¿Ñ φΓ«⌐ Σπ¡¬µ¿¿ »«ºó«½∩ÑΓ »«½πτ¿Γ∞ »á¼∩Γ∞ ¿º  ñ¿-
  3622.          ¡á¼¿τÑ߬«⌐ «í½áßΓ¿. ¥Γá óßΓα«Ñ¡¡á∩ »α«µÑñπαá ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γá
  3623.          ¿ß»«½∞ºπÑΓ π¬áºáΓѽ∞ ¡á Γπ »ÑαѼѡ¡πε, ¬«Γ«αá∩ ñ«½ª¡á αẼÑΘáΓ∞ß∩
  3624.          ó ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿.  Å«ß½Ñ «íαáΘÑ¡¿∩ º¡áτÑ¡¿Ñ áαúπ¼Ñ¡Γá íπñÑΓ
  3625.          π¬áºδóáΓ∞ ¡á óδñѽѡ¡δ⌐ πτáßΓ«¬ »á¼∩Γ¿.  ìá»α¿¼Ñα, ñ½∩ αẼÑΘÑ¡¿∩
  3626.          óÑΘÑßΓóÑ¡¡«ú« τ¿ß½á ó ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ ¼«ª¡« ºá»¿ßáΓ∞ ß½Ññπε-
  3627.          Θ¿⌐ ¬«ñ:
  3628.  
  3629.              type
  3630.                rpntr = real;
  3631.              var
  3632.                p:rpntr;
  3633.              begin
  3634.                New(p);
  3635.              . . .
  3636.  
  3637.               àß½¿ ó ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ ¡Ñ íπñÑΓ ßó«í«ñ¡«ú«  πτáßΓ¬á, Γ«
  3638.          íπñÑΓ  óδñá¡  ¬«ñ «Φ¿í¬¿ FF /¬«¡Σ½¿¬Γ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿
  3639.          ¿½¿ ßΓѬá/.  ä½∩ Γ«ú«, τΓ«íδ ¿ºíѪáΓ∞ φΓ«ú«, ¡Ñ«íσ«ñ¿¼« »ÑαÑñ óδ-
  3640.          º«ó«¼ π¬áºá¡¡«⌐ Σπ¡¬µ¿¿ ßñѽáΓ∞ ó맮ó Σπ¡¬µ¿¿ "Max-AvatI",  ¬«Γ«-
  3641.          αá∩ «»αÑñѽ∩ÑΓ αẼÑα ó íá⌐Γáσ *¡Ñºá¡∩Γ«⌐ τáßΓ¿ ñ¿¡á¼¿τÑ߬«⌐  «í-
  3642.          ½áßΓ¿ »á¼∩Γ¿.  /Å«½∞º«óáΓѽ¿ óÑαß¿¿ 3.0 ñ«½ª¡δ ¿¼ÑΓ∞ ó ó¿ñπ,  τΓ«
  3643.          π¬áºá¡¡á∩ Σπ¡¬µ¿∩ «»αÑñѽ∩ÑΓ τ¿ß½« ßó«í«ñ¡δσ í½«¬«ó,á ¡Ñ  íá⌐Γ/ é
  3644.          »α¿óÑñÑ¡¡«¼  óδΦÑ  »α¿¼ÑαÑ  φëàΦáú «ΓßπΓßΓóπÑΓ,  ¡« ó«º¼«ª¡« «¡
  3645.          »«ΓαÑíπÑΓß∩ »α¿ αÑΦÑ¡¿¿ óáΦ¿σ ºáñáτ.
  3646.  
  3647.  
  3648.  
  3649.  
  3650.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 79 =
  3651.  
  3652.                                             öôìèûꃠ Dispose                   
  3653.          -----------------------------------------------------------------
  3654.  
  3655.               Äñ¡á ¿º »α¿τ¿¡ ñ¿¡á¼¿τÑ߬«ú« αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ ºá¬½ετáÑΓ-
  3656.          ß∩ ó ó«º¼«ª¡«ßΓ¿ ÑÑ »«óΓ«α¡«ú« ¿ß»«½∞º«óá¡¿∩.  Äñ¿¡  ¿º  ß»«ß«í«ó
  3657.          ó«ºóαáΓá  »á¼∩Γ¿ ó ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ »αÑñπß¼áΓα¿óáÑΓ ¿ß»«½∞º«-
  3658.          óá¡¿Ñ Σπ¡¬µ¿¿ "Dispose".  é ¬áτÑßΓóÑ áαúπ¼Ñ¡Γá φΓ«⌐  Σπ¡¬µ¿¿  ¿ß-
  3659.          »«½∞ºπÑΓß∩  π¬áºáΓѽ∞,  ¬«Γ«αδ⌐  »α¿¼Ñ¡∩½ß∩  »α¿  ó맮óÑ  Σπ¡¬µ¿¿
  3660.          "New",  Γ.Ñ. φΓá Σπ¡¬µ¿∩ ¿ß»«½∞ºπÑΓ π¬áºáΓѽ∞ ¡á πτáßΓ«¬, ¬«Γ«αδ⌐
  3661.          ñÑ⌐ßΓó¿Γѽ∞¡« αáß»«½áúáÑΓß∩ ó ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿. Å«ß½Ñ «íαáΘÑ-
  3662.          ¡¿∩ ¬ φΓ«⌐ Σπ¡¬µ¿¿ »á¼∩Γ∞, ¬«Γ«αá∩ óδñѽ∩½áß∞ »« ºáñá¡¡«¼π π¬áºá-
  3663.          Γѽε, íπñÑΓ «ßó«í«ªñѡᠿ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ó ñá½∞¡Ñ⌐ΦѼ. ìá»-
  3664.          α¿¼Ñα,  ¡¿ªÑ »α¿ó«ñ¿Γß∩ ¬«α«Γ¬á∩ »α«úαá¼¼á,  ¬«Γ«αá∩  ñ¿¡á¼¿τÑ߬¿
  3665.          óδñѽ∩ÑΓ »á¼∩Γ∞ »«ñ ¼áß߿󠿺 ß«α«¬á µÑ½δσ τ¿ßѽ ¿ »ÑαÑñ ºáóÑαΦÑ-
  3666.          ¡¿Ñ¼ ó«ºóαáΘáÑΓ ºá¡∩Γπε »á¼∩Γ∞ ß¿ßΓѼÑ:
  3667.             {信ἿτÑ߬«Ñ óδñѽѡ¿Ñ »á¼∩Γ¿ ß ¿ß»«½∞º«ó᡿Ѽ Σπ¡¬µ¿⌐ New ¿
  3668.              Dispose.}
  3669.              program Sample;
  3670.  
  3671.              type
  3672.                pntr = ^RecType;
  3673.                RecType = array[1..40] of integer;
  3674.              var
  3675.                p: pntr;
  3676.                t: integer;
  3677.  
  3678.              begin
  3679.                New(p);
  3680.                for t: = 1 to 40 do p^[t]: = t*2;
  3681.                for t: = 1 to 40 do Write(p^[t], ' ');
  3682.                WriteLn;
  3683.                Dispose(p);
  3684.              end.
  3685.  
  3686.  
  3687.  
  3688.  
  3689.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 80 =
  3690.  
  3691.                                          öôìèûêê  Mark ¿ Release               
  3692.          -----------------------------------------------------------------
  3693.  
  3694.               Ç½∞ΓÑα¡áΓ¿ó«⌐ ¿ß»«½∞º«óá¡¿ε Σπ¡¬µ¿¿ Dispose ∩ó½∩ÑΓß∩  »α¿¼Ñ-
  3695.          ¡Ñ¡¿Ñ Σπ¡¬µ¿⌐ Mark ¿ Release,  ¬«Γ«αδÑ ß«ó¼ÑßΓ¡« «íÑß»Ñτ¿óáεΓ «ß-
  3696.          ó«í«ªñÑ¡¿Ñ ñ¿¡á¼¿τÑ߬«ú« πτáßΓ¬á »á¼∩Γ¿ »«ß½Ñ Ñú« ¿ß»«½∞º«óá¡¿∩ ó
  3697.          »α«úαá¼¼Ñ.  é ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ó맮ó Σπ¡¬µ¿¿ Mark ñ«½ªÑ¡ ñѽáΓ∞ß∩
  3698.          ñ« «íαáΘÑ¡¿∩ ¬ Σπ¡¬µ¿¿ New,  á ó맮ó Σπ¡¬µ¿¿ Release  ñ«½ªÑ¡  ñÑ-
  3699.          ½áΓ∞ß∩  »«ß½Ñ  Σπ¡¬µ¿¿ New,  ¬«úñá ΓαÑíπÑΓß∩ »ÑαÑαáß»αÑñѽ¿Γ∞ »á-
  3700.          ¼∩Γ∞. öπ¡¬µ¿∩ Release «ßó«í«ªñáÑΓ óßÑ πτáßΓ¬¿ »á¼∩Γ¿, ¬«Γ«αδÑ óδ-
  3701.          ñѽ∩½¿ß∞  ¼Ñªñπ  ó맮óἿ Σπ¡¬µ¿⌐ Mark ¿ Release.  Æá¬¿¼ ß»«ß«í«¼
  3702.          ß¿ßΓѼѠó«ºóαáΘáÑΓß∩ ¡Ñ߬«½∞¬« πτáßΓ¬«ó »á¼∩Γ¿, á »α¿ ¿ß»«½∞º«óá-
  3703.          ¡¿¿ Σπ¡¬µ¿¿ Dispose ó«ºóαáΘáÑΓß∩ Γ«½∞¬« «ñ¿¡ πτáßΓ«¬ »á¼∩Γ¿,  ºá-
  3704.          ñáóáѼδ⌐ ß««ΓóÑΓßΓóπεΘ¿¼ π¬áºáΓѽѼ.
  3705.               é Σπ¡¬µ¿¿ Mark ¿ß»«½∞ºπÑΓß∩ «ñ¿¡ áαúπ¼Ñ¡Γ. Ä¡ ñ«½ªÑ¡ ∩ó½∩Γ∞-
  3706.          ß∩ π¬áºáΓѽѼ »ÑαѼѡ¡«⌐ ½εí«ú« Γ¿»á, »«ß¬«½∞¬π Ññ¿¡ßΓóÑ¡¡δ¼ ¡áº-
  3707.          ¡áτÑ¡¿Ñ¼  φΓ«⌐ Σπ¡¬µ¿¿ ∩ó½∩ÑΓß∩ ß«σαá¡Ñ¡¿Ñ¼ ¡áτá½á «í½áßΓ¿ »á¼∩Γ¿
  3708.          ó ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿.  öπ¡¬µ¿∩ Release ñ«½ª¡á ¿ß»«½∞º«óáΓ∞  Γ«Γ
  3709.          ªÑ  π¬áºáΓѽ∞,  ¬«Γ«αδ⌐ ¡Ñ ñ«½ªÑ¡ ¼«ñ¿Σ¿µ¿α«óáΓ∞ß∩.  ìá»α¿¼Ñα,  ó
  3710.          »α¿óÑñÑ¡¡«⌐ ¡¿ªÑ »α«úαἼѠóδ»«½¡∩ÑΓß∩ ñ¿¡á¼¿τÑ߬«Ñ óδñѽѡ¿Ñ »á-
  3711.          ¼∩Γ¿ »«ñ ¼áß߿󠿺 ß«α«¬á µÑ½δσ τ¿ßѽ ¿ «ßó«í«ªñÑ¡¿Ñ ÑÑ »α¿ »«¼«-
  3712.          Θ¿ Σπ¡¬µ¿⌐ Mark ¿ Release:
  3713.  
  3714.          {信ἿτÑ߬«Ñ óδñѽѡ¿Ñ »á¼∩Γ¿ ß ¿ß»«½∞º«ó᡿Ѽ Mark ¿ Release.}
  3715.              program alloc;
  3716.  
  3717.              type
  3718.                pntr = ^RecType;
  3719.                RecType = array[1..40] of integer;
  3720.  
  3721.              var
  3722.                p: pntr;
  3723.                t: integer;
  3724.                q: ^integer;
  3725.  
  3726.              begin
  3727.                Mark(q);
  3728.                New(p);
  3729.                for t: = 1 to 40 do p^[t]:=t*2;
  3730.                for t:= 1 to 40 do Write(p^[t], ' ');
  3731.                WriteLn;
  3732.                Release(q);
  3733.               {é φΓ«¼ ¼ÑßΓÑ óß∩ »á¼∩Γ∞ πªÑ ó«ºóαáΘÑ¡á ß¿ßΓѼÑ}
  3734.              end.
  3735.  
  3736.               îÑΓ«ñ π»αáó½Ñ¡¿∩ ñ¿¡á¼¿τÑ߬¿¼ αáß»αÑñѽѡ¿Ñ¼  »á¼∩Γ¿ ºáó¿ß¿Γ
  3737.          «Γ Γ«ú«, ¬á¬ óδ σ«Γ¿ΓÑ ó«ºóαáΘáΓ∞ »á¼∩Γ∞ ß¿ßΓѼÑ. àß½¿ »á¼∩Γ∞ íπ-
  3738.          ñÑΓ  ó«ºóαáΘáΓ∞ß∩  τáßΓ¿τ¡«,  Γ«  ß½ÑñπÑΓ  ¿ß»«½∞º«óáΓ∞   Σπ¡¬µ¿ε
  3739.  
  3740.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 81 =
  3741.  
  3742.          Dispose.  àß½¿ óδ óßÑúñá »αÑñ»«½áúáÑΓÑ «ßó«í«ªñáΓ∞ óßε »á¼∩Γ∞, Γ«
  3743.          ½πτΦÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ Mark ¿ Release. é »α¿¼Ñαáσ ó φΓ«⌐ ¬¡¿-
  3744.          úÑ  ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ Dispose,  »«ß¬«½∞¬π Γᬫ⌐ ¼ÑΓ«ñ «í½áñáÑΓ
  3745.          í«½∞ΦÑ⌐ ú¿í¬«ßΓ∞ε. Äñ¡á¬« óδ ¼«ªÑΓÑ ßó«í«ñ¡« »«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿-
  3746.          ∩¼¿ Mark ¿ Release ñ½∩ «ßó«í«ªñÑ¡¿∩ »á¼∩Γ¿,  Ñß½¿ φΓ« í«½∞ΦÑ »«ñ-
  3747.          σ«ñ¿Γ ñ½∩ óáΦ¿σ ºáñáτ.
  3748.  
  3749.  
  3750.  
  3751.  
  3752.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 82 =
  3753.  
  3754.                                      ÄüÉÇüÄÆèÇ ÉÇçÉàåàìì¢ò îÇææêéÄé            
  3755.          -----------------------------------------------------------------
  3756.  
  3757.               Äíαáí«Γ¬á αáºαѪѡ¡δσ  ¼áßß¿ó«ó  ∩ó½∩ÑΓß∩  «ß¡«ó¡«⌐ «í½áßΓ∞ε
  3758.          »α¿¼Ñ¡Ñ¡¿∩ ñ¿¡á¼¿τÑ߬«ú« αáß»αÑñѽѡ¿∩ »á¼∩Γ¿. é αáºαѪѡ¡δσ ¼áß-
  3759.          ß¿óáσ Σá¬Γ¿τÑ߬¿ ¿¼ÑεΓß∩ ¡Ñ óßÑ φ½Ñ¼Ñ¡Γδ. Æá¬«⌐ ¼áß߿󠼫ªÑΓ »«Γ-
  3760.          αÑí«óáΓ∞ß∩ ó ΓÑσ ß½πτá∩σ,  ¬«úñá αẼÑαδ ¼áßß¿óá º¡áτ¿Γѽ∞¡« »αÑ-
  3761.          óδΦáεΓ αẼÑα »á¼∩Γ¿ óáΦÑ⌐ ¼áΦ¿¡δ ¿ ¬«úñá ¡Ñ óßÑ φ½Ñ¼Ñ¡Γδ ¼áßß¿óá
  3762.          íπñπΓ ¿ß»«½∞º«óáΓ∞ß∩. îáßß¿óδ í«½∞Φ«⌐ αẼÑα¡«ßΓ¿ ΓαÑíπεΓ í«½∞Φ«-
  3763.          ú« αáßσ«ñá »á¼∩Γ¿,  »«ß¬«½∞¬π ÑÑ «íΩѼ αáßΓÑΓ »« φ¬ß»«¡Ñ¡ΓÑ ó ºá-
  3764.          ó¿ß¿¼«ßΓ¿ «Γ αẼÑαá ¼áßß¿óá. ìá»α¿¼Ñα, ñ½∩ ß¿¼ó«½∞¡«⌐ ¼áΓα¿µδ 10
  3765.          σ10 ΓαÑíπÑΓß∩ Γ«½∞¬« 100 íá⌐Γ »á¼∩Γ¿,  á ñ½∩ ¼áΓα¿µδ 100σ100 ΓαÑ-
  3766.          íπÑΓß∩ 10 000 íá⌐Γ ¿ ñ½∩ ¼áΓα¿µδ 1000σ1000 ΓαÑíπÑΓß∩  πªÑ  1  000
  3767.          000 íá⌐Γ »á¼∩Γ¿.
  3768.               ¥½Ñ¬Γα«¡¡á∩ Γáí½¿µá ∩ó½∩ÑΓß∩  σ«α«Φ¿¼  »α¿¼Ñα«¼  αáºαѪѡ¡«⌐
  3769.          ¼áΓα¿µδ.  äáªÑ Ñß½¿ ¼áΓα¿µá íπñÑΓ í«½∞Φ«⌐,  ¡á»α¿¼Ñα,  999σ999, ó
  3770.          ¬áªñδ⌐ ¬«¡¬αÑΓ¡δ⌐ ¼«¼Ñ¡Γ óαѼѡ¿ íπñÑΓ ¿ß»«½∞º«óá¡á Γ«½∞¬«  ¡Ñ¬«-
  3771.          Γ«αá∩  ÑÑ τáßΓ∞.  èáªñ«¼π φ½Ñ¼Ñ¡Γπ φ½Ñ¬Γα«¡¡«⌐ ¼áΓα¿µδ ßΓáó¿Γß∩ ó
  3772.          ß««ΓóÑΓßΓó¿Ñ Σ«α¼π½á,  º¡áτÑ¡¿Ñ ¿½¿ ß¿¼ó«½∞¡δÑ ßΓ᫬¿. Åá¼∩Γ∞ »«ñ
  3773.          ¬áªñδ⌐  φ½Ñ¼Ñ¡Γ  αáºαѪѡ¡«⌐ ¼áΓα¿µδ óδñѽ∩ÑΓß∩ »« ¼ÑαÑ ¡Ñ«íσ«ñ¿-
  3774.          ¼«ßΓ¿.  ò«Γ∩ ¿ß»«½∞º«óáΓ∞ß∩ ¼«ªÑΓ ½¿Φ∞ ¡Ñí«½∞Φá∩ τáßΓ∞ φ½Ñ¼Ñ¡Γ«ó,
  3775.          óß∩ ¼áΓα¿µá ¼«ªÑΓ íδΓ∞ «τÑ¡∞ í«½∞Φ«⌐ - í«½∞ΦÑ τѼ «íδτ¡δÑ αẼÑαδ
  3776.          »á¼∩Γ¿ ¥éî.
  3777.               ê¼ÑÑΓß∩ Γα¿  αẽ¿τ¡δσ ¼ÑΓ«ñá ß«ºñá¡¿∩ αáºαѪѡ¡δσ ¼áßß¿ó«ó:
  3778.          ßó∩ºá¡¡δ⌐ ß»¿ß«¬,  ñó«¿τ¡«Ñ ñÑαÑó« ¿ ¼áßß¿ó π¬áºáΓѽÑ⌐. èáªñδ⌐ ¿º
  3779.          φΓ¿σ  ¼ÑΓ«ñ«ó »αÑñ»«½áúáÑΓ,  τΓ« φ½Ñ¬Γα«¡¡á∩ ¼áΓα¿µá ¿¼ÑÑΓ Σ«α¼π,
  3780.          »αÑñßΓáó½Ñ¡¡πε ¡á ß½ÑñπεΘÑ⌐ ßΓαá¡¿µÑ.
  3781.  
  3782.               é φΓ«¼ »α¿¼ÑαÑ ò αáß»«½áúáÑΓß∩ ó ∩τÑ⌐¬Ñ é2.
  3783.  
  3784.               ----Ç---- ----é---- ----æ---- ...
  3785.               1
  3786.               2                 ò
  3787.               3
  3788.               4
  3789.               5
  3790.                        . . .
  3791.  
  3792.  
  3793.  
  3794.  
  3795.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 83 =
  3796.  
  3797.                       êß»«½∞º«óá¡¿Ñ ßó∩ºá¡¡«ú« ß»¿ß¬á ñ½∩ «αúá¡¿ºáµ¿¿          
  3798.                        αáºαѪѡ¡«ú«  ¼áßß¿óá
  3799.          -----------------------------------------------------------------
  3800.  
  3801.               Åα¿ αÑ὿ºáµ¿¿  αáºαѪѡ¡«ú«  ¼áßß¿óá  ß  »«¼«Θ∞ε ßó∩ºá¡¡«ú«
  3802.          ß»¿ß¬á Σ«α¼¿απÑΓß∩ ºá»¿ß∞,  ¬«Γ«αá∩ ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿«¡¡δÑ  »«½∩
  3803.          ñ½∩ ¬áªñ«ú« φ½Ñ¼Ñ¡Γá ¼áßß¿óá ¿ »«½Ñ »«º¿µ¿¿ φ½Ñ¼Ñ¡Γá ó ¼áßß¿óÑ, á
  3804.          ΓᬪѠπ¬áºáΓѽ¿ ¡á »αÑñδñπΘ¿⌐ ¿ ß½ÑñπεΘ¿⌐  φ½Ñ¼Ñ¡Γδ  ß»¿ß¬á.  éßÑ
  3805.          ºá»¿ß¿ ó ß»¿ß¬Ñ π»«α∩ñ«τÑ¡δ »« ¿¡ñѬßπ ¼áßß¿óá.  ä«ßΓπ» ¬ φ½Ñ¼Ñ¡-
  3806.          Γá¼ ¼áßß¿óá «ßπΘÑßΓó½∩ÑΓß∩  »πΓѼ  »α«σ«ñá  »«  ßó∩º∩¼  φ½Ñ¼Ñ¡Γ«ó
  3807.          ß»¿ß¬á.
  3808.               ìá»α¿¼Ñα, ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ß½ÑñπεΘá∩ ºá»¿ß∞ ñ½∩ ß«ºñá¡¿∩
  3809.          αáºαѪѡ¡«ú« ¼áßß¿óá:
  3810.  
  3811.               str128 = string[128];
  3812.               str9 = string[9];
  3813.  
  3814.               CellPointer = ^cell;
  3815.  
  3816.               cell = record
  3817.                 CellName: str9; {ß«ñÑαª¿Γ ¡áºóá¡¿Ñ ∩τÑ⌐¬¿}
  3818.                 formula: str128; {ß«ñÑαª¿Γ Σ«α¼π½π}
  3819.                 next: CellPointer; {π¬áºáΓѽ∞ ¡á ß½ÑñπεΘπε ºá»¿ß∞}
  3820.                 prior: CellPointer; {π¬áºáΓѽ∞ ¡á »αÑñδñπΘπε ºá»¿ß∞}
  3821.               end;
  3822.  
  3823.               é φΓ«¼ »α¿¼ÑαÑ »«½Ñ "CellName" ß«ñÑαª¿Γ ßΓ᫬π  ß  ¡áºó᡿Ѽ
  3824.          ∩τÑ⌐¬¿, ¡á»α¿¼Ñα, Ç1, é34 ¿½¿ Z19. æΓ᫬á "formula" ß«ñÑαª¿Γ Σ«α-
  3825.          ¼π½π ñ½∩ ¬áªñ«⌐ ∩τÑ⌐¬¿ φ½Ñ¬Γα«¡¡«⌐ Γáí½¿µδ.  ì¿ªÑ »α¿ó«ñ∩Γß∩ ¡Ñß-
  3826.          ¬«½∞¬«  »α¿¼Ñα¡δσ  »α«úαá¼¼,  ¿ß»«½∞ºπεΘ¿σ αáºαѪѡ¡δÑ ¼áΓα¿µδ ¡á
  3827.          íáºÑ ßó∩ºá¡¡«ú« ß»¿ß¬á.  (æ½ÑñπÑΓ »«¼¡¿Γ∞, τΓ« ¿¼ÑÑΓß∩ ¼¡«ú« ß»«-
  3828.          ß«í«ó αÑ὿ºáµ¿¿ φ½Ñ¬Γα«¡¡δσ Γáí½¿µ. è »α¿ó«ñ¿¼δ¼ ¡¿ªÑ ßΓαπ¬Γπαá¼
  3829.          ñá¡¡δσ ¿ »α«úαἼἠ߽ÑñπÑΓ «Γ¡«ß¿Γ∞ß∩ Γ«½∞¬« ¬á¬ ¬ »α¿¼Ñαá¼  ¿ß-
  3830.          »«½∞º«óá¡¿∩ Γᬿσ ¼ÑΓ«ñ«ó). ä½∩ π¬áºáΓѽÑ⌐ ¡áτá½á ¿ ¬«¡µá ßó∩ºá¡-
  3831.          ¡«ú« ß»¿ß¬á ¿ß»«½∞ºπεΓß∩ ß½ÑñπεΘ¿Ñ ú½«íá½∞¡δÑ »ÑαѼѡ¡δÑ:
  3832.  
  3833.               start, last: CellPointer;
  3834.  
  3835.               è«úñá óδ  óó«ñ¿ΓÑ Σ«α¼π½π ó ∩τÑ⌐¬π Γ¿»¿τ¡«⌐ φ½Ñ¬Γα«¡¡«⌐ Γáí-
  3836.          ½¿µδ,  óδ Σá¬Γ¿τÑ߬¿ ß«ºñáÑΓÑ ¡«óδ⌐ φ½Ñ¼Ñ¡Γ αáºαѪѡ¡«⌐  ¼áΓα¿µδ.
  3837.          àß½¿  φ½Ñ¬Γα«¡¡á∩ Γáí½¿µá ßΓα«¿Γß∩ ¡á íáºÑ ßó∩ºá¡¡«ú« ß»¿ß¬á,  Γ«
  3838.          óßΓáó¬á ¡«ó«ú« φ½Ñ¼Ñ¡Γá íπñÑΓ »α«¿ºó«ñ¿Γß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ "DLS
  3839.          _Store",  ¬«Γ«αá∩  αáßß¼áΓα¿óáÑΓß∩ ó ú½áóÑ 2.  (ū߬«½∞¬π Åá߬á½∞
  3840.          »«ºó«½∩ÑΓ ß«ºñáóáΓ∞ ¡Ñºáó¿ß¿¼δÑ Σπ¡¬µ¿¿ π¬áºá¡¡á∩  Σπ¡¬µ¿∩  ¼«ªÑΓ
  3841.          ¿ß»«½∞º«óáΓ∞ß∩  Σá¬Γ¿τÑ߬¿  íѺ  óß∩¬¿σ ¿º¼Ñ¡Ñ¡¿⌐).  é »α¿ó«ñ¿¼«¼
  3842.          »α¿¼ÑαÑ ß»¿ß«¬ ß«αΓ¿απÑΓß∩ »« ¡áºóá¡¿ε ∩τÑ⌐¬¿ (Γ.Ñ. Ç12 »αÑñΦÑßΓ-
  3843.          óπÑΓ Ç13 ¿ Γ.ñ.)
  3844.  
  3845.  
  3846.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 84 =
  3847.  
  3848.  
  3849.          { π»«α∩ñ«τÑ¡¡á∩ óßΓáó¬á φ½Ñ¼Ñ¡Γ«ó ó ß»¿ß«¬ ¿ πßΓá¡«ó¬á π¬áºáΓѽ∩
  3850.                    ¡á ¡áτὫ ß»¿ß¬á }
  3851.                    function DLS_Store(info, start: CellPointer;
  3852.                                     var last: CellPointer): CellPointer;
  3853.                    var
  3854.                      old, top: CellPointer;
  3855.                      done: boolean;
  3856.                    begin
  3857.                      top := start;
  3858.                      old := nil;
  3859.                      done := FALSE;
  3860.  
  3861.                      if start = nil then begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á }
  3862.                        info^.next := nil;
  3863.                        last := info;
  3864.                        info^.prior :=nil;
  3865.                        DLS_Store := info;
  3866.                      end else
  3867.                      begin
  3868.                        while (start<>nil) and (not done) do
  3869.                        begin
  3870.                         if start^.CellName < info^.CellName then
  3871.                         begin
  3872.                           old := start;
  3873.                           start := start^.next;
  3874.                         end else
  3875.                         begin { óßΓáó¬á ó ßÑαÑñ¿¡π }
  3876.                           if old <>nil then
  3877.                             begin
  3878.                             old^.next := info;
  3879.                             info^.next := start;
  3880.                             start^.prior := info;
  3881.                             info^.prior := old;
  3882.                             DLS_Store := top; { ß«σαá¡Ñ¡¿Ñ ¡áτá½á }
  3883.                             done := TRUE;
  3884.                           end else
  3885.                           begin
  3886.                             info^.next := start;{¡«óδ⌐ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ }
  3887.                             info^.prior := nil;
  3888.                             DLS_Store := info;
  3889.                             done := TRUE;
  3890.                           end;
  3891.                         end;
  3892.                        end;  { ¬«¡Ñµ µ¿¬½á }
  3893.                        if not done then begin
  3894.                         last^.next := info;
  3895.                         info^.next := nil;
  3896.  
  3897.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 85 =
  3898.  
  3899.                         info^.prior := last;
  3900.                         last := info;
  3901.                         DLS_Store := top; { ß«σαá¡Ñ¡¿Ñ ¡áτá½á }
  3902.                        end;
  3903.                      end;
  3904.                    end;  { ¬«¡Ñµ Σπ¡¬µ¿¿ DLS_Store }
  3905.  
  3906.               ä½∩ πñá½Ñ¡¿∩ φ½Ñ¼Ñ¡Γá ¿º φ½Ñ¬Γα«¡¡«⌐ Γáí½¿µδ ¡Ñ«íσ«ñ¿¼« πñá-
  3907.          ½¿Γ∞ ß««ΓóÑΓßΓóπεΘπε ºá»¿ß∞ ¿º ß»¿ß¬á ¿ ó«ºóαáΓ¿Γ∞  ºá¡¿¼áѼπε ¿¼
  3908.          »á¼∩Γ∞ ß¿ßΓѼѠߠ»«¼«Θ∞ε Σπ¡¬µ¿¿ Dispose.  öπ¡¬µ¿∩ DL_Delete πñá-
  3909.          ½∩ÑΓ ∩τÑ⌐¬π ¿º ß»¿ß¬á »« ºáñá¡¡«¼π ¡áºóá¡¿ε:
  3910.  
  3911.              { πñá½Ñ¡¿Ñ ∩τÑ⌐¬¿ ¿º ß»¿ß¬á }
  3912.               function DL_Delete(start: CellPointer;
  3913.                               key str9): CellPointer;
  3914.               var
  3915.                 temp, temp2: CellPointer;
  3916.                 done: boolean;
  3917.               begin
  3918.                 if start^.CellName=key then
  3919.                 begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ó ß»¿ß¬Ñ }
  3920.                  DL_Delete := start^.next;
  3921.                  if temp^.next <> nil then
  3922.                  begin
  3923.                    temp :=  start^.next;
  3924.                    temp^.prior :=  nil;
  3925.                  end;
  3926.                  Dispose(start);
  3927.                 end else
  3928.                 begin
  3929.                  done :=  FALSE;
  3930.                  temp :=  start^.next;
  3931.                  temp2 :=  start;
  3932.                  while (temp<>nil) and (not done) do
  3933.                  begin
  3934.                    if temp^.CellName=key then
  3935.                    begin
  3936.                      temp2^.next :=  temp^.next;
  3937.                      if temp^.next<>nil then
  3938.                        temp^.next^.prior :=  temp2;
  3939.  
  3940.                    done :=  TRUE;
  3941.                    last :=  temp^.prior;
  3942.                    Dispose(temp);
  3943.                  end else
  3944.                  begin
  3945.                    temp2 :=  temp;
  3946.                    temp :=  temp^.next;
  3947.  
  3948.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 86 =
  3949.  
  3950.                  end;
  3951.                 end;
  3952.                 DL_Delete :=  start; { ¡áτὫ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩ }
  3953.                 if not done then WriteLn('not found');
  3954.               end;
  3955.             end; { ¬«¡Ñµ »α«µÑñπαδ πñá½Ñ¡¿∩ φ½Ñ¼Ñ¡Γá ¿º ß»¿ß¬á }
  3956.  
  3957.               öπ¡¬µ¿∩ Find »«ºó«½∩ÑΓ «íαáΓ¿Γ∞ß∩ ¬ ½εí«⌐ ¬«¡¬αÑΓ¡«⌐ ∩τÑ⌐¬Ñ.
  3958.          ¥Γá Σπ¡¬µ¿∩ ¿¼ÑÑΓ ó᪡«Ñ º¡áτÑ¡¿Ñ,  Γᬠ¬á¬ ¼¡«ú¿Ñ Σ«α¼π½δ φ½Ñ¬Γ-
  3959.          α«¡¡«⌐  Γáí½¿µδ  ¿¼ÑεΓ ßß佬¿ ¡á ñαπú¿Ñ ∩τÑ⌐¬¿ ¿ ¡πª¡« φΓ¿ ∩τÑ⌐¬¿
  3960.          ¡á⌐Γ¿,  τΓ«íδ «í¡«ó¿Γ∞ ¿σ º¡áτÑ¡¿∩.  é φΓ«⌐ Σπ¡¬µ¿¿  ¿ß»«½∞ºπÑΓß∩
  3961.          ½¿¡Ñ⌐¡δ⌐ »«¿ß¬ ¿,  ¬á¬ »«¬áºá¡« ó ú½áóÑ 2, ßαÑñ¡ÑÑ τ¿ß½« «»Ñαᵿ⌐
  3962.          »α¿ ½¿¡Ñ⌐¡«¼ »«¿ß¬Ñ αáó¡« n/2,  úñÑ n ∩ó½∩ÑΓß∩ τ¿ß½«¼ φ½Ñ¼Ñ¡Γ«ó ó
  3963.          ß»¿ß¬Ñ.  èα«¼Ñ  Γ«ú«,  º¡áτ¿Γѽ∞¡δÑ »«ΓÑα¿ íπñπΓ ¿º-ºá Γ«ú«,  τΓ«
  3964.          ¬áªñá∩ ∩τÑ⌐¬á ¼«ªÑΓ ß«ñÑαªáΓ∞ ßß佬¿ ¡á  ñαπú¿Ñ  ∩τÑ⌐¬¿  ¿  Γ«úñá
  3965.          »«ΓαÑíπÑΓß∩ óδ»«½¡¿Γ∞ »«¿ß¬ φΓ¿σ ∩τÑѬ.  ì¿ªÑ ñáÑΓß∩ »α¿¼Ñα Σπ¡¬-
  3966.          µ¿¿ Find (ß¼.ß½Ññ.ßΓα.).
  3967.  
  3968.               æ«ºñá¡¿Ñ, »«ññÑαª¬á  ¿  «íαáí«Γ¬á αáºα∩ªÑ¡¡δσ ¼áßß¿ó«ó ¿¼ÑÑΓ
  3969.          «ñ¿¡ í«½∞Φ«⌐ ¡Ññ«ßΓáΓ«¬, ¬«úñá Γᬫ⌐ ¼áßß¿ó ßΓα«¿Γß∩ ¡á íáºÑ ßó∩-
  3970.          ºá¡¡«ú«  ß»¿ß¬á.  ¥Γ«Γ ¡Ññ«ßΓáΓ«¬ ºá¬½ετáÑΓß∩ ó ¡Ñ«íσ«ñ¿¼«ßΓ¿ ¿ß-
  3971.          »«½∞º«óáΓ∞ ½¿¡Ñ⌐¡δ⌐ »«¿ß¬ ¬áªñ«⌐ ∩τÑ⌐¬¿ ß»¿ß¬á. üѺ
  3972.  
  3973.               { ¡á⌐Γ¿ ¬«¡¬αÑΓ¡πε ∩τÑ⌐¬π ¿ πßΓá¡«ó¿Γ∞ π¬áºáΓѽ∞ ¡á ¡ÑÑ }
  3974.               function Find(cell: CellPointer): CellPointer;
  3975.               var
  3976.                 c: CellPointer;
  3977.               begin
  3978.                 c :=  start;
  3979.                 while c<>nil do
  3980.                 begin
  3981.                  if c^.CellName=cell^.CellName then find:=c
  3982.                  else c :=  c^.next;
  3983.                 end;
  3984.                 WriteLn('cell not found');
  3985.                 Find:=nil;
  3986.               end; { ¬«¡Ñµ »α«µÑñπαδ »«¿ß¬á }
  3987.  
  3988.  
  3989.          ñ«»«½¡¿Γѽ∞¡«⌐ ¿¡Σ«α¼áµ¿¿, ¬«Γ«αá∩ ΓαÑíπÑΓ ñ«»«½¡¿Γѽ∞¡«ú« αáßσ«-
  3990.          ñá »á¼∩Γ¿, ¡Ñ½∞º∩ «íÑß»Ñτ¿Γ∞ ñó«¿τ¡δ⌐ »«¿ß¬ ∩τÑ⌐¬¿. äáªÑ »α«µÑñπ-
  3991.          αá óßΓá󬿠¿ß»«½∞ºπÑΓ ½¿¡Ñ⌐¡δ⌐ »«¿ß¬ ñ½∩ ¡áσ«ªñÑ¡¿∩ ß««ΓóÑΓßΓóπε-
  3992.          ΘÑú« ¼ÑßΓá ñ½∩ óßΓá󬿠¡«ó«⌐ ∩τÑ⌐¬¿ ó «Γß«αΓ¿α«óá¡¡δ⌐ ß»¿ß«¬. ¥Γ¿
  3993.          »α«í½Ñ¼δ ¼«ª¡« αÑΦ¿Γ∞, ¿ß»«½∞ºπ∩ ñ½∩ »«ßΓα«Ñ¡¿∩ αáºαѪѡ¡«ú« ¼áß-
  3994.          ß¿óá ñó«¿τ¡«Ñ ñÑαÑó«.
  3995.  
  3996.  
  3997.  
  3998.  
  3999.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 87 =
  4000.  
  4001.                        êß»«½∞º«óá¡¿Ñ ñó«¿τ¡«ú« ñÑαÑóá ñ½∩ «αúá¡¿ºáµ¿¿          
  4002.                         αáºαѪѡ¡δσ ¼áßß¿ó«ó
  4003.          -----------------------------------------------------------------
  4004.  
  4005.               äó«¿τ¡«Ñ ñÑαÑó«  ∩ó½∩ÑΓß∩ »« ßπΘÑßΓóπ ¼«ñ¿Σ¿µ¿α«óá¡¡δ¼ ß»¿ß-
  4006.          ¬«¼ ß ñó«⌐¡«⌐ ßó∩º∞ε. Äß¡«ó¡«Ñ Ñú« »αÑ¿¼πΘÑßΓó« ¡áñ «íδτ¡δ¼ ß»¿ß-
  4007.          ¬«¼ ∩ó½∩ÑΓß∩ íδßΓα«Γá »«¿ß¬á φ½Ñ¼Ñ¡Γá,  ¿ ¬á¬ ß½ÑñßΓó¿Ñ, íδßΓα«Γá
  4008.          óßΓá󫬠¿ »α«ß¼«Γα«ó.  é ΓÑσ ß½πτá∩σ,  ¬«úñá ΓαÑíπÑΓß∩ «íÑß»Ñτ¿Γ∞
  4009.          íδßΓαδ⌐ »«¿ß¬ ó ßó∩ºá¡¡«¼ ß»¿ß¬Ñ ºá»¿ßÑ⌐, »α¿¼Ñ¡Ñ¡¿Ñ ñó«¿τ¡δσ ñÑ-
  4010.          αÑó∞Ñó ñáÑΓ «τÑ¡∞ σ«α«Φ¿Ñ αѺπ½∞ΓáΓδ.
  4011.               Åα¿ ¿ß»«½∞º«óá¡¿¿  ñó«¿τ¡«ú« ñÑαÑóá ñ½∩ αÑ὿ºáµ¿¿ φ½Ñ¬Γα«¡-
  4012.          ¡«⌐ Γáí½¿µδ, ºá»¿ß∞ "cell" ß½ÑñπÑΓ ¿º¼Ñ¡¿Γ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
  4013.               CellPointer = ^cell;
  4014.               str9 = string[9];
  4015.               str128 = string[128];
  4016.  
  4017.               cell = record
  4018.                 CellName: str9;
  4019.                 formula: str128;
  4020.                 left: CellPointer;
  4021.                 right: CellPointer;
  4022.               end;
  4023.  
  4024.               öπ¡¬µ¿ε "Stree", »α¿óÑñÑ¡¡πε ó ú½áóÑ 2, ¼«ª¡« ¼«ñ¿Σ¿µ¿α«óáΓ∞
  4025.          Γá¬, τΓ« ñÑαÑó« íπñÑΓ ßΓα«¿Γ∞ß∩ »« ¡áºóá¡¿ε ∩τÑ⌐¬¿. æ½ÑñπÑΓ «Γ¼Ñ-
  4026.          Γ¿Γ∞, τΓ« »áαá¼ÑΓα "New" ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á ¡«óδ⌐ φ½Ñ¼Ñ¡Γ ñÑ-
  4027.          αÑóá.
  4028.               Åα¿ ó맮óÑ φΓ«⌐ Σπ¡¬µ¿¿ ó ¬áτÑßΓóÑ  »Ñαóδσ  ñóπσ  áαúπ¼Ñ¡Γ«ó
  4029.          ñ«½ªÑ¡ ºáñáóáΓ∞ß∩ π¬áºáΓѽ∞ ¬«α¡Ñó«⌐ óÑαΦ¿¡δ, á ó ¬áτÑßΓóÑ ΓαÑΓ∞-
  4030.          Ñú« áαúπ¼Ñ¡Γá ñ«½ªÑ¡ ºáñáóáΓ∞ß∩ π¬áºáΓѽ∞ ¡á ¡«óπε ∩τÑ⌐¬π.
  4031.               é ¬áτÑßΓóÑ αѺπ½∞ΓáΓá óδñáÑΓß∩ π¬áºáΓѽ∞ ¬«α¡Ñó«⌐ óÑαΦ¿¡δ.
  4032.  
  4033.                    { óßΓáó¬á ∩τÑ⌐¬¿ ó ñÑαÑó« }
  4034.  
  4035.                 function STree(root, r, New:CellPointer; data: char):
  4036.                         CellPointer;
  4037.                 begin
  4038.                   if r = nil then
  4039.                   begin
  4040.                     New^.left := nil;
  4041.                     New^.right := nil;
  4042.                     if New^.Cellname < root^.Cellname
  4043.                       then root^.left := New
  4044.                       else root^.right := New;
  4045.                       STree := New;
  4046.                  end else
  4047.                  begin
  4048.                    if New^.Cellname<r^.Cellname then
  4049.  
  4050.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 88 =
  4051.  
  4052.                    STree := STree(r,r^.left, New)
  4053.                     else STree := STree(r, r^.right, New)
  4054.                  end;
  4055.                  Stree := root
  4056.                 end; { ¬«¡Ñµ »α«µÑñπαδ STree }
  4057.  
  4058.               ä½∩ πñá½Ñ¡¿∩ ∩τÑ⌐¬¿ ¿º φ½Ñ¬Γα«¡¡«⌐ Γáí½¿µδ ß½ÑñπÑΓ ¼«ñ¿Σ¿µ¿-
  4059.          α«óáΓ∞ Σπ¡¬µ¿ε Dtree, ó ¬áτÑßΓóÑ ¬½ετá ¿ß»«½∞ºπ∩ ¡áºóá¡¿Ñ ∩τÑ⌐¬¿:
  4060.  
  4061.                    { πñá½Ñ¡¿Ñ φ½Ñ¼Ñ¡Γá ¿º ñÑαÑóá }
  4062.                   function DTree(root:Cellpointer;key:str9):Cellpointer;
  4063.                   var
  4064.                     temp,temp2:Cellpointer;
  4065.  
  4066.                  begin
  4067.                    if root^.CellName = key then
  4068.                    begin
  4069.                      if root^.left=root^.right tnen
  4070.                      begin
  4071.                        dispose(root)
  4072.                        DTree := nil;
  4073.                      end
  4074.                      else  if root^.left=nil tnen
  4075.                      begin
  4076.                        temp := root^.right
  4077.                        dispose(root)
  4078.                        DTree := temp;
  4079.                      end
  4080.                      else  if root^.right=nil tnen
  4081.                      begin
  4082.                        temp := root^.left
  4083.                        dispose(root)
  4084.                        DTree := temp;
  4085.                      end
  4086.                      else
  4087.                      begin  { ¿¼ÑεΓß∩ ñóá ½¿ßΓá }
  4088.                        temp2 := root^.right
  4089.                        temp := root^.right
  4090.                        while temp^.left <> nil do temp := temp^.left;
  4091.                        temp^.left := root^.left
  4092.                        dispose(root);
  4093.                        DTree := temp2
  4094.                      end;
  4095.                      else
  4096.                      begin
  4097.                        if root^.CellName < key
  4098.                        then root^.right :=  DTree(root^.right, key)
  4099.                        else root^.left :=  DTree(root^.left, key)
  4100.  
  4101.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 89 =
  4102.  
  4103.                        DTree := root;
  4104.                      end;
  4105.                    end; { ¬«¡Ñµ Σπ¡¬µ¿¿ DTree }
  4106.  
  4107.               ê ¡á¬«¡Ñµ,  ¼«ª¡« ¼«ñ¿Σ¿µ¿α«óáΓ∞ Σπ¡¬µ¿ε »«¿ß¬á ñ½∩ íδßΓα«ú«
  4108.          ¡áσ«ªñÑ¡¿∩ ∩τÑ⌐¬¿ »« ÑÑ ¡áºóá¡¿ε:
  4109.  
  4110.               { ¡á⌐Γ¿ ºáñá¡¡πε ∩τÑ⌐¬π ¿ πßΓá¡«ó¿Γ∞ π¬áºáΓѽ∞ ¡á ¡ÑÑ }
  4111.               function Search(root: CellPointer; key str9): CellPointer
  4112.               begin
  4113.                 if root:=nil then Search :=  nil
  4114.                 else begin
  4115.                  while (root^.CellName<>key) and (root<>nil) do
  4116.                  begin
  4117.                    if root^.CellName<>key then root:=root^.left
  4118.                    else root:=root^.right;
  4119.                  end;
  4120.                  Search :=  root;
  4121.               end; { ¬«¡Ñµ »α«µÑñπαδ »«¿ß¬á }
  4122.  
  4123.  
  4124.               æá¼δ¼ óáª¡δ¼ »αÑ¿¼πΘÑßΓó«¼  ñó«¿τ¡δσ  ñÑαÑó∞Ñó  ¡áñ  «íδτ¡δ¼
  4125.          ßó∩ºá¡¡δ¼ ß»¿ß¬«¼ ∩ó½∩ÑΓß∩ º¡áτ¿Γѽ∞¡« ¼Ñ¡∞ΦÑÑ óαѼ∩ »«¿ß¬á. æ½Ñ-
  4126.          ñπÑΓ »«¼¡¿Γ∞, τΓ« »α¿ »«ß½Ññ«óáΓѽ∞¡«¼ »«¿ß¬Ñ ó ßαÑñ¡Ñ¼ ΓαÑíπÑΓß∩
  4127.          óδ»«½¡¿Γ∞ n/2 «»Ñαᵿ⌐ ßαáó¡Ñ¡¿∩, úñÑ n ∩ó½∩ÑΓß∩ τ¿ß½«¼ φ½Ñ¼Ñ¡Γ«ó
  4128.          ó ß»¿ß¬Ñ,  á »α¿ ñó«¿τ¡«¼ »«¿ß¬Ñ ΓαÑíπÑΓß∩ óδ»«½¡¿Γ∞ Γ«½∞¬« log n
  4129.          «»Ñαᵿ⌐ ßαáó¡Ñ¡¿⌐.
  4130.  
  4131.  
  4132.  
  4133.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 90 =
  4134.  
  4135.                        Åα¿¼Ñ¡Ñ¡¿Ñ ¼áßß¿óá π¬áºáΓѽÑ⌐ ñ½∩ «αúá¡¿ºáµ¿¿           
  4136.                          αáºαѪѡ¡δσ ¼áßß¿ó«ó
  4137.          -----------------------------------------------------------------
  4138.  
  4139.               ÅαÑñ»«½«ª¿¼, τΓ« φ½Ñ¬Γα«¡¡á∩ ¼áΓα¿µá ¿¼ÑÑΓ αẼÑαδ 26σ100 /ß
  4140.          Ç1 »« Z100/ ¿ ß«ßΓ«¿Γ óßÑú« ¿º 2 600 φ½Ñ¼Ñ¡Γ«ó. ÆÑ«αÑΓ¿τÑ߬¿ ¼«ª-
  4141.          ¡« ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿⌐ ¼áßß¿ó ºá»¿ßÑ⌐:
  4142.                 str9 = string[9];
  4143.                 str128 = string[128];
  4144.  
  4145.                 CellPointer = CellPointer;
  4146.  
  4147.                 cell = record
  4148.                   CellName:str9;
  4149.                   formula:str128;
  4150.                 end;
  4151.               var
  4152.                 pa:array[1..2600] of cell;
  4153.  
  4154.               Äñ¡á¬«, 2 600 ∩τÑѬ,  »«¼¡«ªÑ¡¡δÑ ¡á 128 (αẼÑα «ñ¡«ú« »«½∩
  4155.          ñ½∩ Σ«α¼π½δ),  »«ΓαÑíπÑΓ 332 800 íá⌐Γ »á¼∩Γ¿ »«ñ ñ«ó«½∞¡« ¡Ñí«½∞-
  4156.          Φπε φ½Ñ¬Γα«¡¡πε Γáí½¿µπ. Æá¬«⌐ »«ñσ«ñ, «τÑó¿ñ¡«, ¡Ñ½∞º∩ ¿ß»«½∞º«-
  4157.          óáΓ∞ ¡á »αá¬Γ¿¬Ñ. é ¬áτÑßΓóÑ á½∞ΓÑα¡áΓ¿óδ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ¼áß-
  4158.          ß¿ó  π¬áºáΓѽÑ⌐  ºá»¿ßÑ⌐.  é  φΓ«¼ ß½πτáÑ »«ΓαÑíπÑΓß∩ º¡áτ¿Γѽ∞¡«
  4159.          ¼Ñ¡∞ΦÑ »á¼∩Γ¿, τѼ »α¿ ß«ºñá¡¿¿ óßÑú« ¼áßß¿óá. èα«¼Ñ Γ«ú«, »α«¿º-
  4160.          ó«ñ¿Γѽ∞¡«ßΓ∞ íπñÑΓ º¡áτ¿Γѽ∞¡« óδΦÑ,  τѼ »α¿ ¿ß»«½∞º«óá¡¿¿ ßó∩-
  4161.          ºá¡¡«ú« ß»¿ß¬á ¿½¿ ñÑαÑóá.  ä½∩ φΓ«ú« ¼ÑΓ«ñá  ñá¡¡δÑ  «»¿ßδóáεΓß∩
  4162.          ß½ÑñπεΘ¿¼ «íαẫ¼:
  4163.  
  4164.               type
  4165.                 str9 = string[9];
  4166.                 str128 = string[128];
  4167.  
  4168.                 cell = record
  4169.                   CellName:str9;
  4170.                   formula:str128;
  4171.                 end;
  4172.               var
  4173.                 sheettarray[1..10000] of CellPointer;
  4174.  
  4175.               ¥Γ«Γ ¼áßß¿ó ¼Ñ¡∞ΦÑú« αẼÑαá ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ ß«ñÑαªá-
  4176.          ¡¿∩ π¬áºáΓѽÑ⌐ ¡á ¿¡Σ«α¼áµ¿ε, óóÑñÑ¡¡πε »«½∞º«óáΓѽѼ ó φ½Ñ¬Γα«¡-
  4177.          ¡πε ¼áΓα¿µπ. Åα¿ óó«ñÑ ¬áªñ«ú« φ½Ñ¼Ñ¡Γá π¬áºáΓѽ∞ ¡á ¿¡Σ«α¼áµ¿«¡-
  4178.          ¡πε  ∩τÑ⌐¬π  »«¼ÑΘáÑΓß∩  ó ß««ΓóÑΓßΓóπεΘÑÑ ¼ÑßΓ« ¼áßß¿óá.  É¿ß.16
  4179.          ¿½½εßΓα¿απÑΓ ßΓαπ¬Γπαπ »á¼∩Γ¿,  ¬«úñá αáºαѪѡ¡δ⌐ ¼áßß¿ó ßΓα«¿Γß∩
  4180.          ¡á «ß¡«óÑ ¼áßß¿óá π¬áºáΓѽÑ⌐.
  4181.  
  4182.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 91 =
  4183.  
  4184.                                    a
  4185.               ┌───┬────┬───┬────┬───────────┬────┬───┐
  4186.               │   │1nil│   │1nil│           │1nil│   │
  4187.               └─┼─┴────┴─┼─┴────┴───────────┴────┴─┼─┘
  4188.                 │        │                         │   ┌──────────────┐
  4189.                 │        │                         └───│2info for A[n]│
  4190.                 │        │                             └──────────────┘
  4191.                 │        │
  4192.                 │        │   ┌───────────────┐
  4193.                 │        └── │2 info for A[a]│
  4194.                 │            └───────────────┘
  4195.                 │   ┌───────────────┐
  4196.                 └───│2 info for A[l]│
  4197.                     └───────────────┘
  4198.  
  4199.              É¿ß.16. êß»«½∞º«óá¡¿Ñ ¼áßß¿óá π¬áºáΓѽÑ⌐ ñ½∩ «αúá¡¿ºáµ¿¿ αáº-
  4200.          αѪѡ¡«ú« ¼áßß¿óá:
  4201.  
  4202.          1 - ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ π¬áºáΓѽ∩; 2 - ¿¡Σ«α¼áµ¿«¡¡δÑ »«½∩ ß««ΓóÑΓß-
  4203.          ΓóπεΘÑú« φ½Ñ¼Ñ¡Γá.
  4204.               ÅÑαÑñ »Ñαóδ¼ ¿ß»«½∞º«ó᡿Ѽ  ¼áßß¿óá  π¬áºáΓѽÑ⌐  ¡Ñ«íσ«ñ¿¼«
  4205.          ¬áªñδ⌐  φ½Ñ¼Ñ¡Γ  πßΓá¡«ó¿Γ∞ ó ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ,  τΓ« «º¡áτáÑΓ «Γ-
  4206.          ßπΓßΓó¿Ñ φ½Ñ¼Ñ¡Γá ó φΓ«⌐ »«º¿µ¿¿.  êß»«½∞ºπ⌐ΓÑ ß½ÑñπεΘπε Σπ¡¬µ¿ε:
  4207.              procedure InitSheet;
  4208.              var
  4209.                t:integer;
  4210.  
  4211.              begin
  4212.                for t :=       1 to 10000 do sheet[t] :=  nil;
  4213.              end; { ¬«¡Ñµ í½«¬á ¿¡¿µ¿á½¿ºáµ¿¿ }
  4214.  
  4215.               ÅÑαÑñ ¡á»¿ß᡿Ѽ »α«µÑñπαδ óßΓá󬿠߽ÑñπÑΓ ºá»α«úαá¼¼¿α«óáΓ∞
  4216.          Σπ¡¬µ¿ε »«¿ß¬á ¿¡ñѬßá.  ¥Γá Σπ¡¬µ¿∩ ¡áσ«ñ¿Γ ß««ΓóÑΓßΓóπεΘ¿⌐  ¿¡-
  4217.          ñѬߠ¼áßß¿óá π¬áºáΓѽÑ⌐ »« ºáñá¡¡«¼π ¡áºóá¡¿ε ∩τÑ⌐¬¿.  Åα¿ »«¿ß¬Ñ
  4218.          ¿¡ñѬßá »αÑñ»«½áúáÑΓß∩,  τΓ« óßÑ ¡áºóá¡¿∩  ¡áτ¿¡áεΓß∩  ß  í«½∞Φ«⌐
  4219.          íπ¬óδ, ºá ¬«Γ«α«⌐ ¿ñÑΓ ¡Ñ¬«Γ«α«Ñ τ¿ß½«, ¡á»α¿¼Ñα, é34, æ19 ¿ Γ.ñ.
  4220.          ¥Γá Σπ¡¬µ¿∩ »α¿ó«ñ¿Γß∩ ¡¿ªÑ ¡á ß½ÑñπεΘÑ⌐ ßΓαá¡¿µÑ.
  4221.  
  4222.               ¥Γá Σπ¡¬µ¿∩ »«ºó«½∩ÑΓ »α¿ αÑ὿ºáµ¿¿ »α«µÑñπαδ óßΓáó¬¿
  4223.              { φΓá Σπ¡¬µ¿∩  «»αÑñѽ∩ÑΓ  ¿¡ñѬߠ π¬áºá¡¡«⌐  ∩τÑ⌐¬¿   }
  4224.              function FindIndex(i: CellPointer): integer;
  4225.              var
  4226.                loc,temp,code:integer;
  4227.                t:str9;
  4228.  
  4229.              begin
  4230.                loc :=  ord(i^.CellName[1]);
  4231.                t :=  copy(i^.CellName,2,9);
  4232.  
  4233.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 92 =
  4234.  
  4235.                val(t,temp,code);
  4236.                loc :=  loc+(temp*20);
  4237.                find :=  loc;
  4238.              end; { ¬«¡Ñµ Σπ¡¬µ¿¿ »«¿ß¬á ¿¡ñѬßá }
  4239.  
  4240.  
  4241.          ß««ΓóÑΓßΓóπεΘπε »«º¿µ¿ε ¼áßß¿óá π¬áºáΓѽÑ⌐ ñ½∩ ¬áªñ«⌐ ∩τÑ⌐¬¿. èá¬
  4242.          ó¿ñ¡«, »«¿ß¬ ¡πª¡«ú« ¿¡ñѬßá óδ»«½¡∩ÑΓß∩ »α«ßΓ« ¿ íδßΓα«, Γᬠ¬á¬
  4243.          ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ óδ»«½¡∩Γ∞ »«ß½Ññ«óáΓѽ∞¡δ⌐ »α«ß¼«Γα. ¥Γ«Γ ¼ÑΓ«ñ
  4244.          ¿¡«úñá ¡áºδóáεΓ »α∩¼δ¼ σÑΦ¿α«ó᡿Ѽ,  »«ß¬«½∞¬π ¿¡ñѬߠ∩τÑ⌐¬¿ »á-
  4245.          ¼∩Γ¿ «»αÑñѽ∩ÑΓß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« »«  ºáñá¡¡«¼π  φ½Ñ¼Ñ¡Γπ.  è«úñá
  4246.          »«½∞º«óáΓѽ∞  óó«ñ¿Γ  Σ«α¼π½π ñ½∩ ∩τÑ⌐¬¿,  Γ« φΓá ∩τÑ⌐¬á /¬«Γ«αá∩
  4247.          ºáñáÑΓß∩ ßó«¿¼ «í«º¡áτÑ¡¿Ñ¼/  ºáñáÑΓ  ¿¡ñѬߠ ¼áßß¿óá  π¬áºáΓѽÑ⌐
  4248.          "sheet". ê¡ñѬߠ«»αÑñѽ∩ÑΓß∩ »« «í«º¡áτÑ¡¿ε ∩τÑ⌐¬¿ »πΓѼ Ñú« »αÑ-
  4249.          «íαẫóá¡¿∩ ó τ¿ß½« ß »«¼«Θ∞ε Σπ¡¬µ¿¿ FindIndex. éßΓáó¬á «ßπΘÑßΓ-
  4250.          ó½∩ÑΓß∩ ß »«¼«Θ∞ε ß½ÑñπεΘÑ⌐ »α«µÑñπαδ:
  4251.  
  4252.              procedure Store(New: CellPointer);
  4253.              var
  4254.                loc:integer;
  4255.  
  4256.              begin
  4257.                loc :=  FindIndex(New);
  4258.                if loc>10000 then WriteLn('Location out of bounds')
  4259.                else sheet[loc] :=  New;
  4260.              end; { ¬«¡Ñµ »α«µÑñπαδ óßΓá󬿠}
  4261.  
  4262.               Å«ß¬«½∞¬π ¬áªñá∩  ∩τÑ⌐¬á  ¿¼ÑÑΓ π¡¿¬á½∞¡«Ñ «í«º¡áτÑ¡¿Ñ,  «¡á
  4263.          íπñÑΓ ¿¼ÑΓ∞ Γá¬ªÑ π¡¿¬á½∞¡δ⌐ ¿¡ñѬß. Å«ß¬«½∞¬π ¿ß»«½∞ºπÑΓß∩ ßΓá¡-
  4264.          ñáαΓ¡á∩ ¬«ñ¿α«ó¬á ß¿¼ó«½«ó, π¬áºáΓѽ∞ ¬áªñ«ú« φ½Ñ¼Ñ¡Γá íπñÑΓ »αá-
  4265.          ó¿½∞¡« »«¼ÑΘÑ¡ ó ¼áßß¿ó. àß½¿ óδ ßαáó¡¿ΓÑ φΓπ »α«µÑñπαπ ß óáα¿á¡-
  4266.          Γ«¼ ñ½∩ ßó∩ºá¡¡«ú« ß»¿ß¬á,  Γ« óδ «í¡áαπª¿ΓÑ, τΓ« «¡á º¡áτ¿Γѽ∞¡«
  4267.          ¬«α«τÑ ¿ »α«ΘÑ.
  4268.               öπ¡¬µ¿∩ πñá½Ñ¡¿∩  ΓᬪѠ óδú½∩ñ¿Γ  ¬«α«τÑ.  Åα¿  ó맮óÑ φΓ«⌐
  4269.          Σπ¡¬µ¿¿ ºáñáÑΓß∩ ¿¡ñѬߠ∩τÑ⌐¬¿ ¿ ó«ºóαáΘáÑΓß∩ π¬áºáΓѽ∞ φ½Ñ¼Ñ¡Γá.
  4270.          èα«¼Ñ Γ«ú«, «ßó«í«ªñáѼá∩ »á¼∩Γ∞ ó«ºóαáΘáÑΓß∩ ß¿ßΓѼÑ:
  4271.              { πñá½Ñ¡¿Ñ ∩τÑ⌐¬¿ ¿º ¼áßß¿óá }
  4272.              procedure Delete(r_cell: CellPointer);
  4273.              var
  4274.                loc:integer;
  4275.              begin
  4276.                loc :=  FindIndex(r_cell);
  4277.                if loc>10000 then WriteLn('Cell out of bounds')
  4278.                else
  4279.                begin
  4280.                 Dispose(r_cell);
  4281.                 sheet[loc]:=nil;
  4282.                end;
  4283.  
  4284.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 93 =
  4285.  
  4286.              end; { ¬«¡Ñµ »α«µÑñπαδ πñá½Ñ¡¿∩ }
  4287.  
  4288.               àß½¿ óδ ßαáó¡¿ΓÑ φΓπ »α«µÑñπαπ ß óÑαß¿Ñ⌐,  ¿ß»«½∞ºπεΘÑ⌐ ßó∩-
  4289.          ºá¡¡δ⌐ ß»¿ß«¬ ¿½¿ ñÑαÑó«, Γ« «í¡áαπª¿ΓÑ, τΓ« «¡á º¡áτ¿Γѽ∞¡« »α«-
  4290.          ΘÑ ¿ óδ»«½¡∩ÑΓß∩ íδßΓαÑÑ.
  4291.               æ½ÑñπÑΓ »«¼¡¿Γ∞, τΓ« ßá¼ ¼áßß¿ó π¬áºáΓѽÑ⌐ ΓαÑíπÑΓ ¡Ñ¬«Γ«α«-
  4292.          ú« ñ«»«½¡¿Γѽ∞¡«ú« αáßσ«ñá »á¼∩Γ¿ »«ñ ¬áªñπε ∩τÑ⌐¬π.  é ¡Ñ¬«Γ«αδσ
  4293.          ß½πτá∩σ φΓ« ∩ó½∩ÑΓß∩ ßÑα∞Ѻ¡δ¼ «úαá¡¿τÑ¡¿Ñ¼.
  4294.  
  4295.  
  4296.  
  4297.  
  4298.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 94 =
  4299.  
  4300.                                                òàÿêÉÄéÇìêà                     
  4301.          -----------------------------------------------------------------
  4302.  
  4303.               òÑΦ¿α«ó᡿Ѽ ¡áºδóáÑΓß∩ »α«µÑßß óδñѽѡ¿∩ φ½Ñ¼Ñ¡Γá ¿¡ñѬߡ«-
  4304.          ú«  ¼áßß¿óá  ¡Ñ»«ßαÑñßΓóÑ¡¡« »« ¿¡Σ«α¼áµ¿¿,  ¬«Γ«αá∩ ß«ñÑনΓß∩ ó
  4305.          ¼áßß¿óÑ.  Å«½πτÑ¡¡δ⌐ ¿¡ñѬߠ¡áºδóáÑΓß∩  σÑΦ-áñαÑß«¼.  òÑΦ¿α«óá¡¿Ñ
  4306.          «íδτ¡«  ¿ß»«½∞ºπÑΓß∩  ñ½∩  π¼Ñ¡∞ΦÑ¡¿∩  óαѼѡ¿ ñ«ßΓπ»á ¬ ñ¿ß¬«óδ¼
  4307.          Σá⌐½á¼.  Äñ¡á¬«,  Γ«Γ ªÑ ¼ÑΓ«ñ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩  αÑ὿ºáµ¿¿
  4308.          αáºαѪѡ¡δσ ¼áΓα¿µ. é »α¿ó«ñ¿¼«¼ ¡¿ªÑ »α¿¼ÑαÑ ¿ß»«½∞ºπÑΓß∩ »α«µÑ-
  4309.          ñπαá,  úñÑ »α¿¼Ñ¡∩ÑΓß∩ ß»Ñµ¿á½∞¡á∩ Σ«α¼á σÑΦ¿α«óá¡¿∩,  ¡áºδóáѼá∩
  4310.          »α∩¼δ¼  ¿¡ñѬ߿α«ó᡿Ѽ.  Åα¿ »α∩¼«¼ ¿¡ñѬ߿α«óá¡¿¿ ¬áªñ«¼π ¬½ετπ
  4311.          ß««ΓóÑΓßΓóπÑΓ «ñ¡á ¿ Γ«½∞¬« «ñ¡á ∩τÑ⌐¬á.  (Æ.Ñ.  σÑΦ¿α«óá¡¿Ñ ñáÑΓ
  4312.          π¡¿¬á½∞¡δ⌐  ¿¡ñѬߠñ½∩ ¬áªñ«ú« ¬½ετá.  Äñ¡á¬«,  ß½ÑñπÑΓ ºá¼ÑΓ¿Γ∞,
  4313.          τΓ« »α¿¼Ñ¡Ñ¡¿Ñ ¼áßß¿óá π¬áºáΓѽÑ⌐ ¡Ñ «í∩ºáΓѽ∞¡« ΓαÑíπÑΓ  ¿ß»«½∞-
  4314.          º«óá¡¿∩ »α∩¼«⌐ ¿¡ñѬßᵿ¿; »α«ßΓ« ñ½∩ αÑΦÑ¡¿∩ ñá¡¡«⌐ ºáñáτ¿ Γᬫ⌐
  4315.          »«ñσ«ñ ∩ó½∩ÑΓß∩ «τÑó¿ñ¡δ¼). ìá »αá¬Γ¿¬Ñ Γá¬á∩ ßσѼᠻα∩¼«ú« σÑΦ¿-
  4316.          α«óá¡¿∩ ¿ß»«½∞ºπÑΓß∩ ¡Ñ «τÑ¡∞ τáßΓ« ¿ τáΘÑ ΓαÑíπÑΓß∩ í«½ÑÑ ú¿í¬¿⌐
  4317.          ¼ÑΓ«ñ.  é φΓ«¼ αáºñѽѠíπñπΓ αáßß¼«ΓαÑ¡δ í«½ÑÑ «íΘ¿Ñ ¼ÑΓ«ñδ σÑΦ¿-
  4318.          α«óá¡¿∩, í«½ÑÑ ¼«Θ¡δÑ ¿ í«½ÑÑ ú¿í¬¿Ñ.
  4319.               êº »αÑñδñπΘÑú« »α¿¼Ñαá »« φ½Ñ¬Γα«¡¡«⌐ ¼áΓα¿µÑ ∩ß¡«, τΓ« ñáªÑ
  4320.          ó  «ß«íδσ ß½πτá∩σ ¡Ñ óßÑ ∩τÑ⌐¬¿ íπñπΓ ¿ß»«½∞º«óá¡δ.  ÅαÑñ»«½«ª¿¼,
  4321.          τΓ« ó í«½∞Φ¿¡ßΓóÑ ß½πτáÑó ¡Ñ í«½ÑÑ ñÑß∩Γ¿ »α«µÑ¡Γ«ó »«ΓÑ¡µ¿á½∞¡δσ
  4322.          ∩τÑѬ íπñÑΓ ñÑ⌐ßΓó¿Γѽ∞¡« ¿ß»«½∞º«óá¡«.  ¥Γ« º¡áτ¿Γ, τΓ« ½«ú¿τÑß-
  4323.          ¬¿⌐ ¼áßß¿ó ß αẼÑαἿ 26σ100 (2600 ∩τÑѬ) »«ΓαÑíπÑΓ  ó  ñÑ⌐ßΓó¿-
  4324.          Γѽ∞¡«ßΓ¿  ¿¼ÑΓ∞ »á¼∩Γ∞ Γ«½∞¬« »«ñ 260 φ½Ñ¼Ñ¡Γ«ó.  æ½Ññ«óáΓѽ∞¡«,
  4325.          »«ΓαÑíπÑΓß∩ ¿¼ÑΓ∞ Σ¿º¿τÑ߬¿⌐ ¼áßß¿ó ¬á¬ ¼á¬ß¿¼π¼ ¡á  260  φ½Ñ¼Ñ¡-
  4326.          Γ«ó. Æ«úñá óßΓáÑΓ ß½ÑñπεΘá∩ ºáñáτá: ¬á¬ ½«ú¿τÑ߬¿⌐ ¼áßß¿ó «Γ«íαá-
  4327.          º¿Γ∞ ¡á Σ¿º¿τÑ߬¿⌐ ¼áß߿󠿠¬á¬ «ßπΘÑßΓó½∩Γ∞ ¬ ¡Ñ¼π ñ«ßΓπ»? ÄΓóÑΓ
  4328.          ºá¬½ετáÑΓß∩ ó ¿ß»«½∞º«óá¡¿¿ ß»¿ß¬á ¿¡ñѬ߫ó σÑΦ¿α«óá¡¿∩.
  4329.               è«úñá »«½∞º«óáΓѽ∞ óó«ñ¿Γ Σ«α¼π½π ó φ½Ñ¬Γα«¡¡πε ¼áΓα¿µπ (½«-
  4330.          ú¿τÑ߬¿⌐ ¼áßß¿ó),  áñαÑß ∩τÑ⌐¬¿,  ºáñáóáѼδ⌐ ÑÑ «í«º¡áτÑ¡¿Ñ¼, ¿ß-
  4331.          »«½∞ºπÑΓß∩ ñ½∩ »«απτÑ¡¿∩ ¿¡ñѬßá ¡Ñí«½∞Φ«ú«  Σ¿º¿τÑ߬«ú« ¼áßß¿óá.
  4332.          ÅαÑñ»«½«ª¿¼, τΓ« »ÑαѼѡ¡á∩ "sheet" ∩ó½∩ÑΓß∩ Σ¿º¿τÑ߬¿¼ ¼áßß¿ó«¼.
  4333.          ê¡ñѬߠ«»αÑñѽ∩ÑΓß∩ ¡á «ß¡«óÑ «í«º¡áτÑ¡¿∩ ∩τÑ⌐¬¿ »πΓѼ Ñú« »αÑ«í-
  4334.          αẫóá¡¿∩ ó τ¿ß½«, ¬á¬ í佫 ßñѽᡫ ó »α¿¼ÑαÑ ß ¼áß߿󫼠π¬áºáΓÑ-
  4335.          ½Ñ⌐.  çáΓѼ φΓ« τ¿ß½« ñѽ¿Γß∩ ¡á ñÑß∩Γ∞ ñ½∩  »«½πτÑ¡¿∩  ¡áτá½∞¡«⌐
  4336.          Γ«τ¬¿  óσ«ñá ó ¼áßß¿ó.  (æ½ÑñπÑΓ »«¼¡¿Γ∞,  τΓ« ñ½∩ óáΦÑú« »α¿¼Ñαá
  4337.          Σ¿º¿τÑ߬¿⌐ ¼áßß¿ó ß«ßΓáó½∩ÑΓ Γ«½∞¬« ñÑß∩Γ∞ »α«µÑ¡Γ«ó «Γ  ½«ú¿τÑß-
  4338.          ¬«ú« ¼áßß¿óá). àß½¿ ∩τÑ⌐¬á ß φΓ¿¼ ¿¡ñѬ߫¼ ßó«í«ñ¡á, Γ« ó ¡ÑÑ »«-
  4339.          ¼ÑΘáÑΓß∩ ½«ú¿τÑ߬¿⌐ ¿¡ñѬߠ¿ º¡áτÑ¡¿Ñ.  é »α«Γ¿ó¡«¼ ß½πτáѠ󫺡¿-
  4340.          ¬áÑΓ   ¬«¡Σ½¿¬Γ.   è«¡Σ½¿¬Γ  ß½πτáÑΓß∩  »α¿  »«½πτÑ¡¿¿  ó«  óαѼ∩
  4341.          σÑΦ¿α«óá¡¿∩ ñóπσ «ñ¿¡á¬«óδ󠬽ετÑ⌐.  é φΓ«¼ ß½πτáÑ »«½πτÑ¡¡δ⌐ ¿¡-
  4342.          ñѬߠ íπñÑΓ  ß««ΓóÑΓßΓó«óáΓ∞ «ñ¡«¼π φ½Ñ¼Ñ¡Γπ Σ¿º¿τÑ߬«ú« ¼áßß¿óá.
  4343.          æ½Ññ«óáΓѽ∞¡«,  ó ¼áßß¿óÑ "sheet" ñѽáÑΓß∩ »«¿ß¬ ßó«í«ñ¡«ú«  φ½Ñ-
  4344.          ¼Ñ¡Γá. è«úñá ßó«í«ñ¡δ⌐ φ½Ñ¼Ñ¡Γ ¡á⌐ñÑ¡, ó ¡Ñú« »«¼ÑΘáÑΓß∩ ¿¡Σ«α¼á-
  4345.          µ¿∩,  á π¬áºáΓѽ∞ ¡á φΓ« ¼ÑßΓ« íπñÑΓ »«¼ÑΘÑ¡ ó ¿ßσ«ñ¡δ⌐  φ½Ñ¼Ñ¡Γ.
  4346.          ¥Γ« ¿½½εßΓα¿απÑΓß∩ ¡á α¿ß.17.
  4347.               ä½∩ »«¿ß¬á φ½Ñ¼Ñ¡Γá ó Σ¿º¿τÑ߬«¼ ¼áßß¿óÑ »α¿ ºáñá¡¡«¼ ¿¡ñѬ-
  4348.  
  4349.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 95 =
  4350.  
  4351.          ßÑ ½«ú¿τÑ߬«ú« ¼áßß¿óá ß¡áτá½á ñѽáÑΓß∩ »αÑ«íαẫóá¡¿Ñ ½«ú¿τÑ߬«-
  4352.          ú« ¿¡ñѬßá ó áñαÑß,  »«½πτÑ¡¡δ⌐ »«ßαÑñßΓó«¼ σÑΦ¿α«óá¡¿∩,  ¿ ºáΓѼ
  4353.          ñѽáÑΓß∩  »α«óÑα¬á  Σ¿º¿τÑ߬«ú«  ¼áßß¿óá  ¡á ¡á½¿τ¿Ñ ó φ½Ñ¼Ñ¡ΓÑ ß
  4354.          φΓ¿¼ ¿¡ñѬ߫¼ ΓαÑíπѼ«ú«  º¡áτÑ¡¿∩.  àß½¿  ßαáó¡Ñ¡¿Ñ  óδ»«½¡∩ÑΓß∩
  4355.          πñáτ¡«,  Γ« ¿¡Σ«α¼áµ¿∩ ¡á⌐ñÑ¡á. é »α«Γ¿ó¡«¼ ß½πτáÑ ß½ÑñπÑΓ »α«⌐Γ¿
  4356.          »« µÑ»«τ¬Ñ ¿¡ñѬ߫ó ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ ¡á⌐ñÑ¡« ¡πª¡«Ñ º¡á-
  4357.          τÑ¡¿Ñ ¿½¿ »«¬á ¡Ñ íπñÑΓ «í¡áαπªÑ¡ ¬«¡Ñµ µÑ»«τ¬¿.
  4358.               ä½∩ Γ«ú«,  τΓ«íδ »«¡∩Γ∞, ¬á¬ φΓπ »α«µÑñπαπ ¼«ª¡« »α¿¼Ñ¡¿Γ∞ ¬
  4359.          »α«úαἼѠ φ½Ñ¬Γα«¡¡«⌐ Γáí½¿µδ ß¡áτá½á «»αÑñѽ¿¼ ó ¬áτÑßΓóÑ Σ¿º¿-
  4360.          τÑ߬«ú« ¼áßß¿óá ß½ÑñπεΘ¿⌐ ¼áßß¿ó ºá»¿ßÑ⌐:
  4361.  
  4362.              const
  4363.                SIZE = 260;
  4364.  
  4365.              type
  4366.                str9 = string[9];
  4367.                str128 = string[128];
  4368.  
  4369.                cell = record
  4370.                 CellName: str9;
  4371.                 formula: str128;
  4372.                 next: integer;
  4373.                end;
  4374.  
  4375.              var
  4376.                sheet:array[0..SIZE] of cell;
  4377.                name: cell;
  4378.  
  4379.  
  4380.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 96 =
  4381.  
  4382.  
  4383.                            Æáí½¿µá
  4384.                     ê¡ñѬߠç¡áτ.  æ½Ññ.  ê¡ñѬߠó Γáí½¿µÑ
  4385.                    ┌──────┬──────┬──────┐
  4386.            A1      │ A1   │ 100  │   1  │0
  4387.                    ├──────┼──────┼──────┤
  4388.            A2      │ A2   │ 200  │   3  │1
  4389.                    ├──────┼──────┼──────┤
  4390.            B19     │ B19  │  50  │  -1  │2
  4391.                    ├──────┼──────┼──────┤
  4392.            A3      │ A3   │ 300  │  -1  │3
  4393.                    ├──────┼──────┼──────┤
  4394.                    │ -1   │  0   │  -1  │4
  4395.                    ├──────┼──────┼──────┤
  4396.                    │ -1   │  0   │  -1  │5
  4397.                    ├──────┼──────┼──────┤
  4398.            D2      │ D2   │  99  │  -1  │6
  4399.                    ├──────┼──────┼──────┤
  4400.                    │ -1   │  0   │  -1  │7
  4401.                    ├──────┼──────┼──────┤
  4402.                    │      │      │
  4403.                    │      │
  4404.                    │                    │
  4405.                                  │      │
  4406.                           │      │      │
  4407.                    ├──────┼──────┼──────┤
  4408.                    │ -1   │  0   │ -1   │2597
  4409.                    ├──────┼──────┼──────┤
  4410.                    │ -1   │  0   │ -1   │2598
  4411.                    ├──────┼──────┼──────┤
  4412.                    │ -1   │  0   │ -1   │2599
  4413.                    └──────┴──────┴──────┘
  4414.  
  4415.               ÅαÑñ»«½áúáÑΓß∩, τΓ« ó ∩τÑ⌐¬Ñ A1 º¡áτÑ¡¿Ñ 100,  ó A2 º¡áτÑ¡¿Ñ
  4416.          200, ó A3 - 300, ó B19 - 50, á ó D2 - 99.
  4417.  
  4418.                    É¿ß.17. Åα¿¼Ñα σÑΦ¿α«óá¡¿∩.
  4419.  
  4420.               ÅÑαÑñ ¿ß»«½∞º«ó᡿Ѽ φëà¼áßß¿ó ñ«½ªÑ¡  íδΓ∞  ¿¡¿µ¿á½¿º¿α«-
  4421.          óá¡.  Åα¿ó«ñ¿¼á∩  ¡¿ªÑ  »α«µÑñπαá ¿ß»«½∞ºπÑΓß∩ ñ½∩ πßΓᡫ󬿠»«½∩
  4422.          «í«º¡áτÑ¡¿∩ ∩τÑ⌐¬¿ ¡á º¡áτÑ¡¿Ñ "empty" (»πßΓ«)  ñ½∩  π¬áºá¡¿∩  ¡á
  4423.          «ΓßπΓßΓó¿Ñ φ½Ñ¼Ñ¡Γá.  ç¡áτÑ¡¿Ñ -1 ó »«½Ñ ß½ÑñπεΘÑú« ¿¡ñѬßá «º¡á-
  4424.          τáÑΓ ¬«¡Ñµ µÑ»«τ¬¿ ¿¡ñѬ߫ó σÑΦ¿α«óá¡¿∩.
  4425.  
  4426.              { ¿¡¿µ¿á½¿ºáµ¿∩ Σ¿º¿τÑ߬«ú« ¼áßß¿óá }
  4427.              procedure InitSheet;
  4428.              var
  4429.                t:integer;
  4430.  
  4431.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 97 =
  4432.  
  4433.  
  4434.              begin
  4435.                for t :=       0 to SIZE do
  4436.                begin
  4437.                 sheet[t].CellName :=  'empty';
  4438.                 sheet[t].next:= -1;
  4439.                end;
  4440.              end; { ¬«¡Ñµ »α«µÑñπαδ ¿¡¿µ¿á½¿ºáµ¿¿ Σ¿º¿τÑ߬«ú« ¼áßß¿óá }
  4441.  
  4442.  
  4443.               é »α«µÑñπαÑ  óßΓá󬿠 ñѽáÑΓß∩ «íαáΘÑ¡¿Ñ ¬ Σπ¡¬µ¿¿ HashIndex
  4444.          ñ½∩ óδτ¿ß½Ñ¡¿∩ ¿¡ñѬßá  σÑΦ¿α«óá¡¿∩  ¿  »«¼ÑΘÑ¡¿∩  Ñú«  ó  ¼áßß¿ó
  4445.          "sheet".  æ½ÑñπÑΓ  «Γ¼ÑΓ¿Γ∞,  τΓ« Ñß½¿ ¡Ñ»«ßαÑñßΓóÑ¡¡« »«½πτÑ¡¡«Ñ
  4446.          º¡áτÑ¡¿Ñ ¿¡ñѬßá σÑΦ¿α«óá¡¿∩ π¬áºδóáÑΓ ¡á ºá¡∩Γπε  ∩τÑ⌐¬π,  Γ«  ó
  4447.          »α«µÑñπαÑ óδ»«½¡∩ÑΓß∩ »«¿ß¬ »Ñαó«ú« ßó«í«ñ¡«ú« ¼ÑßΓá. ¥Γ« ñѽáÑΓ-
  4448.          ß∩ »πΓѼ »α«ß¼«Γαᠵѻ«τ¬¿ ¿¡ñѬ߫ó σÑΦ¿α«óá¡¿∩ ñ« ΓÑσ  »«α  »«¬á
  4449.          ¡Ñ  íπñÑΓ  «í¡áαπªÑ¡á  »Ñαóá∩  ßó«í«ñ¡á∩ ∩τÑ⌐¬á.  è«úñá ßó«í«ñ¡á∩
  4450.          ∩τÑ⌐¬á ¡á⌐ñÑ¡á,  Γ« ñѽáÑΓß∩ ºá»«¼¿¡á¡¿Ñ º¡áτÑ¡¿∩ ½«ú¿τÑ߬«ú« ¿¡-
  4451.          ñѬßá  ¿ º¡áτÑ¡¿∩ φ½Ñ¼Ñ¡Γá ¼áßß¿óá.  ç¡áτÑ¡¿Ñ ½«ú¿τÑ߬«ú« ¿¡ñѬßá
  4452.          ΓαÑíπÑΓß∩ ß«σαá¡¿Γ∞, »«ß¬«½∞¬π «¡ ΓαÑíπÑΓß∩ »α¿ ¡«ó«¼ «íαáΘÑ¡¿¿ ¬
  4453.          φΓ«¼π φ½Ñ¼Ñ¡Γπ.
  4454.  
  4455.            { óδτ¿ß½Ñ¡¿Ñ ¿¡ñѬßá σÑΦ¿α«óá¡¿∩ ¿ óßΓáó¬á º¡áτÑ¡¿∩ φ½Ñ¼Ñ¡Γá }
  4456.  
  4457.                    function HashIndex(i:str9):integer;
  4458.                    var
  4459.                      loc, temp, code:integer
  4460.                      t :str9;
  4461.  
  4462.                    begin
  4463.                      loc := ord(i[1]-ord('A');
  4464.                      t := copy(i,2,9)
  4465.                      val(t, temp, code)
  4466.                      HashIndex := (loc*26+temp) div 10;
  4467.                    end;
  4468.  
  4469.            { óδ»«½¡Ñ¡¿Ñ ñÑ⌐ßΓó¿Γѽ∞¡«⌐ óßΓá󬿠º¡áτÑ¡¿∩ φ½Ñ¼Ñ¡Γá }
  4470.  
  4471.                    procedure Store(New:Cell);
  4472.                    var
  4473.                      loc, i:integer;
  4474.                    begin
  4475.                      loc := HashIndex(New.Cellname);
  4476.                      if loc>SIZE then Writeln('Location out of bounds')
  4477.                      else
  4478.                      begin
  4479.                        if ((sheet[loc].Cellname = 'empty') or
  4480.                           (sheet[loc].Cellname = New.Cellname)) then
  4481.  
  4482.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 98 =
  4483.  
  4484.                        begin
  4485.                         sheet[loc].Cellname = New.Cellname;
  4486.                         sheet[loc].formula = New.formula;
  4487.                        end else { »«¿ß¬ ßó«í«ñ¡«⌐ ∩τÑ⌐¬¿ }
  4488.                        begin
  4489.  
  4490.          { ß¡áτá½á »α«ß¼«Γα ñ« ¬«¡µá óßÑ⌐ µÑ»«τ¬¿ ßπΘÑßΓóπεΘ¿σ ¿¡ñѬ߫ó}
  4491.  
  4492.                        while(sheet[loc].next <>-1) do
  4493.                            loc := sheet[loc].next;
  4494.                        { ΓÑ»Ñα∞ »«¿ß¬ ßó«í«ñ¡«⌐ ∩τÑ⌐¬¿ }
  4495.                        i := loc;
  4496.                       while ((i<SIZE) and (sheet[loc].Cellname='empty'))
  4497.                        do i := i+1;
  4498.                       if(i = SIZE) then
  4499.                       begin
  4500.                        Writeln('cannot plase in hash array');
  4501.                       end else
  4502.                       begin { »«¼ÑßΓ¿Γ∞ º¡áτÑ¡¿Ñ ó ßó«í«ñ¡πε ∩τÑ⌐¬π ¿
  4503.                               «í¡«ó¿Γ∞ µÑ»«τ¬π }
  4504.                         sheet[i].Cellname = New.Cellname;
  4505.                         sheet[i].formula = New.formula;
  4506.  
  4507.                         sheet[loc].next := i; { «íÑß»ÑτÑ¡¿Ñ ßó∩º¿ ó
  4508.                                                  µÑ»«τ¬Ñ }
  4509.                        end;
  4510.                      end;
  4511.                    end;
  4512.                  end; { ¬«¡Ñµ »α«µÑñπαδ óßΓá󬿠}
  4513.  
  4514.               Åα¿ »«¿ß¬Ñ  º¡áτÑ¡¿∩ φ½Ñ¼Ñ¡Γá ß¡áτá½á óδτ¿ß½∩ÑΓß∩ ¿¡ñѬߠσÑ-
  4515.          Φ¿α«óá¡¿∩ ¿ ñѽáÑΓß∩ »α«óÑα¬á ¡á αáóÑ¡ßΓó«  ½«ú¿τÑ߬«ú«  ¿¡ñѬßá,
  4516.          ¬«Γ«αδ⌐  ß«ñÑনΓß∩ ó Σ¿º¿τÑ߬«¼ ¼áßß¿óÑ,  ¿ ¿ß¬«¼«ú« ½«ú¿τÑ߬«ú«
  4517.          ¿¡ñѬßá. àß½¿ «¡¿ ß«ó»áñáεΓ, Γ« ó αѺπ½∞ΓáΓÑ óδñáÑΓß∩ φëà¿¡ñѬß
  4518.          σÑΦ¿α«óá¡¿∩.  é »α«Γ¿ó¡«¼ ß½πτáÑ ñѽáÑΓß∩ »α«ß¼«Γα µÑ»«τ¬¿ ¿¡ñѬ-
  4519.          ß«ó ñ« «í¡áαπªÑ¡¿∩ ΓαÑíπѼ«ú« º¡áτÑ¡¿∩ ¿½¿ ñ« «í¡áαπªÑ¡¿∩  º¡áτÑ-
  4520.          ¡¿∩  -1  ó  »«½Ñ ßß佬¿ ¡á ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ.  Å«ß½Ññ¡∩∩ ß¿Γπᵿ∩
  4521.          ó«º¡¿¬áÑΓ »α¿ «ΓßπΓßΓó¿¿ ΓαÑíπѼ«ú« φ½Ñ¼Ñ¡Γá ó Σ¿º¿τÑ߬«¼  ¼áßß¿-
  4522.          óÑ. ì¿ªÑ »α¿ó«ñ¿Γß∩ Σπ¡¬µ¿∩, óδ»«½¡∩εΘá∩ φΓ¿ ñÑ⌐ßΓó¿∩:
  4523.  
  4524.              { »«¿ß¬ Σ¿º¿τÑ߬«ú« áñαÑßá ∩τÑ⌐¬¿ }
  4525.              function Find(cname:cell):integer;
  4526.              var
  4527.                loc:integer;
  4528.              begin
  4529.                loc :=  FindIndex(cname.CellName);
  4530.                while((sheet[loc].CellName<>cname.CellName) and
  4531.                    (loc <> -1)) do loc:=sheet[loc].next;
  4532.  
  4533.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                               = 99 =
  4534.  
  4535.                if(loc = -1) then
  4536.                begin
  4537.                 WriteLn('Not found');
  4538.                 Find :=  -1;
  4539.                end else Find :=       loc;
  4540.                write('loc is'); writeLn(loc);
  4541.              end; { ¬«¡Ñµ Σπ¡¬µ¿¿ »«¿ß¬á }
  4542.  
  4543.               æ½ÑñπÑΓ ¿¼ÑΓ∞ ó ó¿ñπ, τΓ« «»¿ßá¡¡á∩ ó φΓ«¼ αáºñѽѠßσѼá σÑ-
  4544.          Φ¿α«óá¡¿∩ «τÑ¡∞ »α«ßΓá ¿ ¡á »αá¬Γ¿¬Ñ »α¿σ«ñ¿Γß∩  »α¿¼Ñ¡∩Γ∞  í«½ÑÑ
  4545.          ß½«ª¡δÑ ßσѼδ σÑΦ¿α«óá¡¿∩.  ìá»α¿¼Ñα, »α¿ ó«º¡¿¬¡«óÑ¡¿¿ ¬«¡Σ½¿¬Γá
  4546.          «τÑ¡∞ τáßΓ« ¿ß»«½∞ºπεΓ óΓ«α¿τ¡«Ñ ¿ ΓαÑΓ¿τ¡«Ñ  σÑΦ¿α«óá¡¿Ñ »αѪñÑ,
  4547.          τѼ ó«ß»«½∞º«óáΓ∞ß∩ »α«ß¼«Γα«¼ µÑ»«τ¬¿ ¿¡ñѬ߫ó σÑΦ¿α«óá¡¿∩.  Äñ-
  4548.          ¡á¬«, «ß¡«ó¡δÑ »α¿¡µ¿»δ σÑΦ¿α«óá¡¿∩ «ßΓáεΓß∩ ¡Ñ¿º¼Ñ¡¡δ¼¿.
  4549.  
  4550.  
  4551.  
  4552.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 100 =
  4553.  
  4554.                                      Ç¡á½¿º σÑΦ¿α«óá¡¿∩                        
  4555.          -----------------------------------------------------------------
  4556.  
  4557.               Åα¿ σÑΦ¿α«óá¡¿¿  ó ½πτΦѼ ß½πτáÑ (¬«Γ«αδ⌐ óßΓαÑτáÑΓß∩ ñ«ßΓá-
  4558.          Γ«τ¡« αÑñ¬«) ¬áªñδ⌐ »«½πτÑ¡¡δ⌐ σÑΦ-Σπ¡¬µ¿Ñ⌐ Σ¿º¿τÑ߬¿⌐ ¿¡ñѬߠ∩ó-
  4559.          ½∩ÑΓß∩  π¡¿¬á½∞¡δ¼ ¿ óαѼ∩ ñ«ßΓπ»á »α¿í½¿ªáÑΓß∩ ¬ óαѼѡ¿ »α∩¼«ú«
  4560.          ¿¡ñѬ߿α«óá¡¿∩.  ¥Γ« º¡áτ¿Γ,  τΓ« µÑ»«τ¬á ¿¡ñѬ߫ó σÑΦ¿α«óá¡¿∩ ¡Ñ
  4561.          ß«ºñáÑΓß∩  ¿  óßÑ «»Ñαᵿ¿ »«¿ß¬á »« ßπΘÑßΓóπ ∩ó½∩εΓß∩ «»Ñαᵿ∩¼¿
  4562.          »α∩¼«ú« »«¿ß¬á. Äñ¡á¬«, φΓ« ß½πτáÑΓß∩ αÑñ¬«, »«ß¬«½∞¬π ΓαÑíπÑΓß∩,
  4563.          τΓ«íδ  ½«ú¿τÑ߬¿⌐  ¿¡ñѬߠαáó¡«¼Ñα¡« αáß»αÑñѽ∩½ß∩ ó »α«ßΓαá¡ßΓóÑ
  4564.          ½«ú¿τÑ߬¿σ ¿¡ñѬ߫ó.  é σπñΦѼ ß½πτáÑ (¬«Γ«αδ⌐ ΓᬪѠαÑñ«¬) ßσѼá
  4565.          σÑΦ¿α«óá¡¿∩  óδ᫪ñáÑΓß∩  ó ßσÑ¼π »«¿ß¬á ó ßó∩ºá¡¡«¼ ß»¿ß¬Ñ.  ¥Γ«
  4566.          íπñÑΓ ó Γ«¼ ß½πτáÑ,  ¬«úñá óßÑ »«½πτÑ¡¡δÑ ß  »«¼«Θ∞ε  σÑΦ-Σπ¡¬µ¿¿
  4567.          º¡áτÑ¡¿∩ ½«ú¿τÑ߬¿σ ¿¡ñѬ߫ó íπñπΓ αáó¡δ. é ßαÑñ¡Ñ¼ ß½πτáÑ, ¬«Γ«-
  4568.          αδ⌐ ¡á »αá¬Γ¿¬Ñ óßΓαÑτáÑΓß∩ τáΘÑ óßÑú«, óαѼ∩ »«¿ß¬á ½εí«ú« ¬«¡¬-
  4569.          αÑΓ¡«ú«  φ½Ñ¼Ñ¡Γá  »«ßαÑñßΓó«¼  σÑΦ¿α«óá¡¿∩ ß««ΓóÑΓßΓóπÑΓ óαѼѡ¿
  4570.          »α∩¼«ú« ¿¡ñѬ߿α«óá¡¿∩, »«ñѽѡ¡«ú« ¡á ¡Ñ¬«Γ«απε ¬«¡ßΓá¡Γπ, ¬«Γ«-
  4571.          αá∩  »α«»«αµ¿«¡á½∞¡á  ßαÑñ¡Ñ⌐ ñ½¿¡Ñ µÑ»«τ¬¿ ¿¡ñѬ߫ó σÑΦ¿α«óá¡¿∩.
  4572.          æá¼δ¼ ßπΘÑßΓóÑ¡¡δ¼ »α¿ ¿ß»«½∞º«óá¡¿¿ ¼ÑΓ«ñá σÑΦ¿α«óá¡¿∩ ñ½∩  αÑá-
  4573.          ½¿ºáµ¿¿  αáºα∩ªÑ¡¡«⌐  ¼áΓα¿µδ  ∩ó½∩ÑΓß∩ «íÑß»ÑτÑ¡¿Ñ αáó¡«¼Ñα¡«ßΓ¿
  4574.          αáß»αÑñѽѡ¿∩ Σ¿º¿τÑ߬¿σ ¿¡ñѬ߫ó, τΓ«íδ ¡Ñ ó«º¡¿¬á½« ñ½¿¡¡δσ µÑ-
  4575.          »«τѬ.  èα«¼Ñ Γ«ú«, ¼ÑΓ«ñ σÑΦ¿α«óá¡¿∩ «τÑ¡∞ σ«α«Φ« ¿ß»«½∞º«óáΓ∞ ó
  4576.          ΓÑσ ß½πτá∩σ,  ¬«úñá ¿ºóÑßΓ¡« ¬á¬«Ñ ¼á¬ß¿¼á½∞¡«Ñ  τ¿ß½«  φ½Ñ¼Ñ¡Γ«ó
  4577.          ñÑ⌐ßΓó¿Γѽ∞¡« »«ΓαÑíπÑΓß∩.
  4578.  
  4579.                          éδí«α ¼ÑΓ«ñá αÑ὿ºáµ¿¿ αáºα∩ªÑ¡¡δσ ¼áΓα¿µ            
  4580.          -----------------------------------------------------------------
  4581.  
  4582.               Åα¿ óδí«αÑ ßó∩ºá¡¡«ú« ß»¿ß¬á,  ñó«¿τ¡«ú« ñÑαÑóá ¿½¿  ¼áßß¿óá
  4583.          π¬áºáΓѽÑ⌐  ó ¬áτÑßΓóÑ «ß¡«óδ αÑ὿ºáµ¿¿ αáºα∩ªÑ¡¡«Ñ ¼áΓα¿µδ ß½Ñ-
  4584.          ñπÑΓ πτ¿ΓδóáΓ∞ φΣΣÑ¬Γ¿ó¡«ßΓ∞ ¿ß»«½∞º«óá¡¿∩ «»ÑαáΓ¿ó¡«⌐  »á¼∩Γ¿  ¿
  4585.          óαѼ∩ ñ«ßΓπ»á.
  4586.               àß½¿ αáºα∩ªÑ¡¡«ßΓ∞ «τÑ¡∞ í«½∞Φá∩,  Γ« »á¼∩Γ∞ ¡á¿í«½ÑÑ φΣΣѬ-
  4587.          Γ¿ó¡«  íπñÑΓ  ¿ß»«½∞º«óáΓ∞ß∩  »α¿  »α¿¼Ñ¡Ñ¡¿¿ ßó∩ºá¡¡«ú« ß»¿ß¬á ¿
  4588.          ñó«¿τ¡«ú« ñÑαÑóá, »«ß¬«½∞¬π ó ñá¡¡«¼ ß½πτáÑ ó »á¼∩Γ¿ íπñπΓ αáß»«-
  4589.          ½áúáΓ∞ß∩ Γ«½∞¬« ΓαÑíπѼδÑ φ½Ñ¼Ñ¡Γδ.  æó∩º¿ ΓαÑíπεΓ ¡Ñí«½∞Φ«ú« ñ«-
  4590.          »«½¡¿Γѽ∞¡«ú« αáßσ«ñá »á¼∩Γ¿ ¿ «íδτ¡«  ¡á  αáßσ«ñ  »á¼∩Γ¿  ó½¿∩εΓ
  4591.          ¡Ñº¡áτ¿Γѽ∞¡«.  Åα¿  ¿ß»«½∞º«óá¡¿¿  ¼áßß¿óá π¬áºáΓѽÑ⌐ ¡Ñ«íσ«ñ¿¼«
  4592.          »αÑñπß¼«ΓαÑΓ∞ ¼ÑßΓ« ñ½∩ π¬áºáΓѽ∩ ó¡Ñ ºáó¿ß¿¼«ßΓ¿ «Γ ¡á½¿τ¿∩ φ½Ñ-
  4593.          ¼Ñ¡Γá.  çñÑß∞ ¡Ñ«íσ«ñ¿¼« »αÑñπß¼«ΓαÑΓ∞ ¡Ñ Γ«½∞¬« αẼÑΘÑ¡¿Ñ ó »á-
  4594.          ¼∩Γ¿ óßÑú« ¼áßß¿óá π¬áºáΓѽÑ⌐,  ¡« «íÑß»Ñτ¿Γ∞ »á¼∩Γ∞  ñ½∩  ñαπú¿σ
  4595.          µÑ½Ñ⌐, «»αÑñѽ∩Ѽδ󠬫¡¬αÑΓ¡«⌐ ºáñáτÑ⌐. é «ñ¡¿σ ß½πτá∩σ φΓ« ó맮-
  4596.          óÑΓ ßÑα∞Ѻ¡δÑ Γαπñ¡«ßΓ¿,  σ«Γ∩ ó ñαπú¿σ ß½πτá∩σ  φΓ¿σ  Γαπñ¡«ßΓÑ⌐
  4597.          ¼«ªÑΓ ¡Ñ íδΓ∞.  Äíδτ¡« »α¿σ«ñ¿Γß∩ ñѽáΓ∞ αáßτÑΓ ΓαÑíπѼ«⌐ »á¼∩Γ¿,
  4598.          τΓ«íδ »«¡∩Γ∞, ñ«ßΓáΓ«τ¡« ½¿ ÑÑ íπñÑΓ ñ½∩ óáΦÑ⌐ »α«úαá¼¼δ.
  4599.  
  4600.               îÑΓ«ñ σÑΦ¿α«óá¡¿∩  ºá¡¿¼áÑΓ  »α«¼ÑªπΓ«τ¡«Ñ ¼ÑßΓ« ¼Ñªñπ ¼ÑΓ«-
  4601.  
  4602.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 101 =
  4603.  
  4604.          ñ«¼, »«ßΓα«Ñ¡¡δ¼ ¡á íáºÑ ¼áßß¿óá π¬áºáΓѽÑ⌐, ¿ ¼ÑΓ«ñ«¼, »«ßΓα«Ñ¡-
  4605.          ¡δ¼ ¡á íáºÑ ßó∩ºá¡¡«ú« ß»¿ß¬á ¿½¿ ñó«¿τ¡«ú« ñÑαÑóá. ò«Γ∩ ó ñá¡¡«¼
  4606.          ß½πτáÑ ΓαÑíπÑΓß∩ αẼÑΘÑ¡¿Ñ ó »á¼∩Γ¿  óßÑú«  Σ¿º¿τÑ߬«ú«  ¼áßß¿óá
  4607.          ¡Ñß¼«Γα∩  ¡á Γ«,  τΓ« τáßΓ∞ φ½Ñ¼Ñ¡Γ«ó ¡Ñ íπñÑΓ ¿ß»«½∞º«óá¡á,  Ñú«
  4608.          αẼÑαδ óßÑ -ªÑ íπñπΓ ¼Ñ¡∞ΦÑ αẼÑα«ó ¼áßß¿óá π¬áºáΓѽÑ⌐, ñ½∩ ¬«-
  4609.          Γ«α«ú« ΓαÑíπÑΓß∩ »αÑñπß¼«ΓαÑΓ∞ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¿¡ π¬áºáΓѽ∞ ñ½∩
  4610.          ¬áªñ«ú« ½«ú¿τÑ߬«ú« φ½Ñ¼Ñ¡Γá.
  4611.               Äñ¡á¬« »α¿  »«τΓ¿ »«½¡«¼ ºá»«½¡Ñ¡¿¿ ¼áßß¿óá »á¼∩Γ∞ íπñÑΓ ¿ß-
  4612.          »«½∞º«óáΓ∞ß∩ í«½ÑÑ φΣΣÑ¬Γ¿ó¡«,  ¬«úñá »α¿¼Ñ¡∩ÑΓß∩ ¼áßß¿ó π¬áºáΓÑ-
  4613.          ½Ñ⌐.  é ßó∩ºá¡¡δσ ß»¿ß¬áσ ó ñó«¿τ¡δσ ñÑαÑó∞∩σ ¬á¬ »αá󿽫 ¿ß»«½∞-
  4614.          ºπÑΓß∩ ñóá π¬áºáΓѽ∩,  ó Γ« óαѼ∩ ¬á¬ ¼áßß¿ó  π¬áºáΓѽÑ⌐  ΓαÑíπÑΓ
  4615.          Γ«½∞¬« «ñ¡«ú« π¬áºáΓѽ∩ ¡á ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ.  ìá»α¿¼Ñα, »«½¡δ⌐ ¼áß-
  4616.          ß¿ó ¿º Γδß∩τ¿ φ½Ñ¼Ñ¡Γ«ó, ¬«úñá ¬áªñδ⌐ π¬áºáΓѽ∞ ºá¡¿¼áÑΓ ñóá íá⌐-
  4617.          Γá,  »«ΓαÑíπÑΓ ñ½∩ αÑ὿ºáµ¿¿ ßó∩ºá¡¡«ú« ß»¿ß¬á ¿½¿ ñó«¿τ¡«ú« ñÑ-
  4618.          αÑóá 4000 íá⌐Γ ñ½∩ σαá¡Ñ¡¿∩ π¬áºáΓѽÑ⌐.  ä½∩ ¼áßß¿óá π¬áºáΓѽÑ⌐ ó
  4619.          φΓ«¼ ß½πτáÑ »«ΓαÑíπÑΓß∩ 2000 íá⌐Γ,  Γ.Ñ. φ¬«¡«¼¿∩ ß«ßΓáó½∩ÑΓ 2000
  4620.          íá⌐Γ.
  4621.               ìῼѡ∞ΦÑÑ óαѼ∩  ñ«ßΓπ»á  «íÑß»Ñτ¿óáÑΓ »«ñσ«ñ ß »α¿¼Ñ¡Ñ¡¿Ñ¼
  4622.          ¼áßß¿óá π¬áºáΓѽÑ⌐. èᬠó »α¿¼ÑαÑ ß φ½Ñ¬Γα«¡¡«⌐ Γáí½¿µÑ⌐ φëà¼Ñ-
  4623.          Γ«ñ  τáßΓ«  «íÑß»Ñτ¿óáÑΓ  »α«ßΓ«⌐  ñ«ßΓπ»  ¬ ¼áßß¿óπ π¬áºáΓѽÑ⌐ ¿
  4624.          »α«ßΓ« «íÑß»Ñτ¿óáÑΓß∩ ßó∩º∞ ß αáºαѪѡ¡«⌐  ¼áΓα¿µÑ⌐.  ¥Γ«Γ  ¼ÑΓ«ñ
  4625.          «íÑß»Ñτ¿óáÑΓ ñ«ßΓπ» ¬ φ½Ñ¼Ñ¡Γá¼ αáºαѪѡ¡«⌐ ¼áΓα¿µδ »«τΓ¿ ß« ß¬«-
  4626.          α«ßΓ∞ε αáí«Γδ «íδτ¡«ú« ¼áßß¿óá. Å«¿ß¬ ó ßó∩ºá¡¡«¼ ß»¿ß¬Ñ «ßπΘÑßΓ-
  4627.          ó½∩ÑΓß∩  «τÑ¡∞  ¼Ññ½Ñ¡¡«,  »«ß¬«½∞¬π ºñÑß∞ óδ»«½¡∩ÑΓß∩ »«ß½Ññ«óá-
  4628.          Γѽ∞¡δ⌐ »α«ß¼«Γα φ½Ñ¼Ñ¡Γ«ó ß»¿ß¬á.  äáªÑ »α¿ ñ«íáó½Ñ¡¿¿ ñá¡¡δσ  ó
  4629.          ßó∩ºá¡¡δ⌐  ß»¿ß«¬,  «íÑß»Ñτ¿óáεΘ¿σ í«½ÑÑ íδßΓαδ⌐ »«¿ß¬ φ½Ñ¼Ñ¡Γ«ó,
  4630.          »«¿ß¬ íπñÑΓ óδ»«½¡∩Γ∞ß∩ ¼Ññ½Ñ¡¡Ñ⌐,  τѼ »α∩¼«⌐ ñ«ßΓπ» ¬ φ½Ñ¼Ñ¡Γá¼
  4631.          ¼áßß¿óá  π¬áºáΓѽÑ⌐.  Åα¿  ¿ß»«½∞º«óá¡¿¿ ñó«¿τ¡«ú« ñÑαÑóá íδßΓα«-
  4632.          ñÑ⌐ßΓó¿Ñ »«óδΦáÑΓß∩, ¡« óßÑ-ªÑ «¡« ¼Ñ¡∞ΦÑ, τѼ »α¿ »α∩¼«¼ ñ«ßΓπ»Ñ
  4633.          ¬ φ½Ñ¼Ñ¡Γá¼ ¼áßß¿óá π¬áºáΓѽÑ⌐.
  4634.               Åα¿ »αáó¿½∞¡«¼ óδí«αÑ á½ú«α¿Γ¼á σÑΦ¿α«óá¡¿∩ φëà¼ÑΓ«ñ τáßΓ«
  4635.          ñáÑΓ  ½πτΦÑÑ  óαѼ∩ ñ«ßΓπ»á,  τѼ óαѼ∩ ñ«ßΓπ»á »α¿ ¿ß»«½∞º«óá¡¿¿
  4636.          ñó«¿τ¡δσ ñÑαÑó∞Ñó.  Äñ¡á¬« «¡ ¡¿¬«úñá ¡Ñ ñ«ßΓ¿ú¡ÑΓ íδßΓα«ñÑ⌐ßΓó¿∩
  4637.          ¼ÑΓ«ñá ¼áßß¿óá π¬áºáΓѽÑ⌐.
  4638.               àß½¿ ó«º¼«ª¡« »α¿¼Ñ¡Ñ¡¿Ñ ¼ÑΓ«ñá ¼áßß¿óá π¬áºáΓѽÑ⌐,  Γ« φΓ«Γ
  4639.          ¼ÑΓ«ñ ∩ó½∩ÑΓß∩ ¡á¿½πτΦ¿¼ ¿º-ºá «τÑ¡∞ σ«α«ΦÑú« íδßΓα«ñÑ⌐ßΓó¿∩. Äñ-
  4640.          ¡á¬«,  Ñß½¿ αÑΦáεΘÑÑ º¡áτÑ¡¿Ñ ¿¼ÑÑΓ  φΣΣÑ¬Γ¿ó¡«ßΓ∞  ¿ß»«½∞º«óá¡¿∩
  4641.          »á¼∩Γ¿, Γ« «ßΓáÑΓß∩ ¿ß»«½∞º«óáΓ∞ ½¿Φ∞ ßó∩ºá¡¡δ⌐ ß»¿ß«¬ ¿½¿ ñó«¿τ-
  4642.          ¡«Ñ ñÑαÑó«.
  4643.  
  4644.  
  4645.  
  4646.  
  4647.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 102 =
  4648.  
  4649.                                                üôöàÉêçÇûꃠ                    
  4650.          -----------------------------------------------------------------
  4651.  
  4652.               Åα¿ ¿ß»«½∞º«óá¡¿¿  αáºα∩ªÑ¡¡«⌐  ¼áΓα¿µδ ó¼ÑßΓ« «íδτ¡δσ »ÑαÑ-
  4653.          ¼Ñ¡¡δσ ¼«ª¡« »α¿¼Ñ¡∩Γ∞ ñ¿¡á¼¿τÑ߬«Ñ óδñѽѡ¿Ñ »á¼∩Γ¿ »«ñ ¼áΓα¿µπ.
  4654.          ÅπßΓ∞,  ¡á»α¿¼Ñα, ¿¼ÑÑΓß∩ ñóá »α«µÑßßá Ç ¿ é, óδ»«½¡∩εΘ¿Ñß∩ ó «ñ-
  4655.          ¡«⌐ »α«úαá¼¼Ñ.  ÅαÑñ»«½«ª¿¼, τΓ« »α«µÑßß Ç ΓαÑíπÑΓ »α¿ αáí«ΓÑ 60%
  4656.          ñ«ßΓπ»¡«⌐ »á¼∩Γ¿,  á »α¿ αáí«ΓÑ »α«µÑßßá é ΓαÑíπÑΓß∩ 55%  »á¼∩Γ¿.
  4657.          àß½¿ ó »α«µÑßßÑ Ç ¿ ó »α«µÑßßÑ é »á¼∩Γ∞ íπñÑΓ  óδñѽ∩Γ∞ß∩  ß  »«-
  4658.          ¼«Θ∞ε  ½«¬á½∞¡δσ »ÑαѼѡ¡δσ,  Γ« »α«µÑßß Ç ¡Ñ ß¼«ªÑΓ «íαáΓ¿Γ∞ß∩ ¬
  4659.          »α«µÑßßπ é,  á »α«µÑßß é ¡Ñ ß¼«ªÑΓ «íαáΓ¿Γ∞ß∩ ¬ »α«µÑßßπ Ç,  »«ß-
  4660.          ¬«½∞¬π »«ΓαÑíπÑΓß∩ í«½ÑÑ 100% »á¼∩Γ¿. àß½¿ »α«µÑßß Ç ¡Ñ «íαáΘáÑΓ-
  4661.          ß∩ ¬ »α«µÑßßπ é,  Γ« ¡¿¬á¬¿σ Γαπñ¡«ßΓÑ⌐ ¡Ñ íπñÑΓ.  Æαπñ¡«ßΓ¿ »«∩-
  4662.          ó∩Γß∩  »α¿  »«»δΓ¬Ñ »α«µÑßßá Ç «íαáΓ¿Γ∞ß∩ ¬ »α«µÑßßπ é.  éδσ«ñ ¿º
  4663.          φΓ«ú« »«½«ªÑ¡¿∩ ºá¬½ετáÑΓß∩ ó ñ¿¡á¼¿τÑ߬«¼ óδñѽѡ¿¿ »á¼∩Γ¿ ¿ ñ½∩
  4664.          »α«µÑßßá  Ç ¿ ñ½∩ »α«µÑßßá é ß «ßó«í«ªñÑ¡¿Ñ¼ »á¼∩Γ¿ »ÑαÑñ «íαáΘÑ-
  4665.          ¡¿Ñ¼ «ñ¡«ú« »α«µÑßßá ¬ ñαπú«¼π »α«µÑßßπ.  äαπú¿¼¿  ß½«óἿ,  Ñß½¿
  4666.          »α¿ óδ»«½¡Ñ¡¿¿ ¬áªñ«ú« »α«µÑßßá,  Ç ¿ é, ΓαÑíπÑΓß∩ í«½ÑÑ »«½«ó¿¡δ
  4667.          ¿¼ÑεΘÑ⌐ß∩ ñ«ßΓπ»¡«⌐ »á¼∩Γ¿ ¿ »α«µÑßß Ç «íαáΘáÑΓß∩ ¬  »α«µÑßßπ  é,
  4668.          Γ«  ñ«½ª¡«  ¿ß»«½∞º«óáΓ∞ß∩  ñ¿¡á¼¿τÑ߬«Ñ αáß»αÑñѽѡ¿Ñ »á¼∩Γ¿.  é
  4669.          φΓ«¼ ß½πτáÑ »α«µÑßßδ Ç ¿ é íπñπΓ »«½πτáΓ∞ ó ßó«Ñ αáß»«α∩ªÑ¡¿Ñ »á-
  4670.          ¼∩Γ∞, ¬«úñá «¡á ¿¼ ñÑ⌐ßΓó¿Γѽ∞¡« »«ΓαÑíπÑΓß∩.
  4671.  
  4672.               ÅαÑñ»«½«ª¿¼, τΓ« »α¿ óδ»«½¡Ñ¡¿¿ ¡Ñ¬«Γ«α«⌐ »α«úαá¼¼δ, ¿ß»«½∞-
  4673.          ºπεΘÑ⌐  ñóÑ  π¬áºá¡¡δÑ ¡¿ªÑ Σπ¡¬µ¿¿,  «ßΓáÑΓß∩ 100 000 íá⌐Γ ¡Ñ¿ß-
  4674.          »«½∞º«óá¡¡«⌐ »á¼∩Γ¿.
  4675.  
  4676.              procedure B; forward;
  4677.              procedure A;
  4678.              var
  4679.                a:array[1..600000] of char;
  4680.                      .
  4681.                      .
  4682.                      .
  4683.              begin
  4684.                      .
  4685.                      .
  4686.                      .
  4687.                      B;
  4688.                      .
  4689.                      .
  4690.                      .
  4691.              end;
  4692.              procedure B;
  4693.              var
  4694.                b:array[1..55000] of char;
  4695.              begin
  4696.                      .
  4697.  
  4698.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 103 =
  4699.  
  4700.                      .
  4701.                      .
  4702.              end;
  4703.  
  4704.               çñÑß∞ ¬áªñδ⌐  ¿º »α«µÑßß«ó Ç ¿ é ¿¼ÑÑΓ ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ,
  4705.          ¡á ¬«Γ«αδÑ αáßσ«ñπÑΓß∩ í«½ÑÑ »«½«ó¿¡δ ¿¼ÑεΘÑ⌐ß∩ ñ«ßΓπ»¡«⌐ »á¼∩Γ¿.
  4706.          é ñá¡¡«¼ ß½πτáÑ ¡Ñ½∞º∩ íπñÑΓ óδ»«½¡¿Γ∞ »α«µÑßß é, »«ß¬«½∞¬π »á¼∩-
  4707.          Γ¿ ¡Ññ«ßΓáΓ«τ¡« ñ½∩ óδñѽѡ¿∩ 55 000 íá⌐Γ  »«ñ  ½«¬á½∞¡δ⌐  ¼áßß¿ó
  4708.          "ó".
  4709.               é »«ñ«í¡δσ ß½πτá∩σ Γαπñ¡«ßΓ¿ τáßΓ« «¬áºδóáεΓß∩ ¡Ñ»αÑ«ñ«½¿¼δ-
  4710.          ¼¿,  ¡« ó ¡Ñ¬«Γ«αδσ ß½πτá∩󠬫Ñ-τΓ« ßñѽáΓ∞ ¼«ª¡«. àß½¿ »α«µÑßß Ç
  4711.          ¡Ñ ΓαÑíπÑΓ ß«σαá¡Ñ¡¿∩ ß«ñÑন¼«ú« ¼áßß¿óá "á" »α¿ óδ»«½¡Ñ¡¿¿ »α«-
  4712.          µÑßßá  é,  Γ«  »α«µÑßßδ  Ç  ¿ é ¼«úπΓ ß«ó¼ÑßΓ¡« ¿ß»«½∞º«óáΓ∞ «ñ¿¡
  4713.          πτáßΓ«¬ »á¼∩Γ¿.  ¥Γ« ¼«ª¡« «íÑß»Ñτ¿Γ∞ ñ¿¡á¼¿τÑ߬¿¼ óδñѽѡ¿Ñ¼ »á-
  4714.          ¼∩Γ¿  »«ñ ¼áßß¿óδ Ç ¿ é.  Åα«µÑßß Ç »ÑαÑñ «íαáΘÑ¡¿Ñ¼ ¬ »α«µÑßßπ é
  4715.          ñ«½ªÑ¡ «ßó«í«ñ¿Γ∞ »á¼∩Γ∞ ¿ ºáΓѼ ó¡«ó∞ ÑÑ »«½πτ¿Γ∞ »«ß½Ñ ºáóÑαΦÑ-
  4716.          ¡¿∩ »α«µÑßßá é. Åα«úαá¼¼á ñ«½ª¡á ¿¼ÑΓ∞ ß½ÑñπεΘπε ßΓαπ¬Γπαπ:
  4717.  
  4718.              procedure B; forward;
  4719.              procedure A;
  4720.              var
  4721.                     a:^array[1..600000] of char;
  4722.              begin
  4723.                     New(a);
  4724.                     .
  4725.                     .
  4726.                     .
  4727.                     Dispose(a); { «ßó«í«ªñÑ¡¿Ñ »á¼∩Γ¿ ñ½∩ »α«µÑßßá é }
  4728.                     B;
  4729.                     New(a); { ¡«ó«Ñ óδñѽѡ¿Ñ »á¼∩Γ¿ }
  4730.                     .
  4731.                     .
  4732.                     .
  4733.                     Dispose;
  4734.              end;
  4735.  
  4736.              procedure B;
  4737.              var
  4738.                b:^array[1..55000] of char;
  4739.              begin
  4740.                     New(b);
  4741.                     .
  4742.                     .
  4743.                     .
  4744.                     Dispose(b);
  4745.              end;
  4746.  
  4747.  
  4748.  
  4749.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 104 =
  4750.  
  4751.               Åα¿ óδ»«½¡Ñ¡¿¿ »α«µÑßßá é ßπΘÑßΓóπÑΓ Γ«½∞¬«  π¬áºáΓѽ∞  "á".
  4752.          ò«Γ∩ φΓ¿¼ ¼ÑΓ«ñ«¼ óδ íπñÑΓÑ »«½∞º«óáΓ∞ß∩ ¡ÑτáßΓ«, Ñú« ß½ÑñπÑΓ σ«-
  4753.          α«Φ« º¡áΓ∞, »«ß¬«½∞¬π «¡ τáßΓ« ∩ó½∩ÑΓß∩ Ññ¿¡ßΓóÑ¡¡δ¼ ß»«ß«í«¼ αÑ-
  4754.          ΦÑ¡¿∩ »«ñ«í¡δσ »α«í½Ñ¼.
  4755.                        Ä»Γ¿¼á½∞¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ñ«ßΓπ»¡«⌐ »á¼∩Γ¿              
  4756.          -----------------------------------------------------------------
  4757.  
  4758.               àß½¿ óδ ∩ó½∩ÑΓÑß∞  »α«ΣÑßß¿«¡á½∞¡δ¼  »α«úαá¼¼¿ßΓ«¼,  Γ«  óá¼
  4759.          ó«º¼«ª¡«  »α¿σ«ñ¿½«ß∞  ßΓὬ¿óáΓ∞ß∩  ß Γαπñ¡«ßΓ∩¼¿,  ó«º¡¿¬áεΘ¿¼¿
  4760.          ¬«úñá αẼÑα ñ«ßΓπ»¡«⌐ »á¼∩Γ¿ ºáαá¡ÑÑ ¡Ñ¿ºóÑßΓÑ¡.  ¥Γ¿  Γαπñ¡«ßΓ¿
  4761.          ó«º¡¿¬áεΓ  »α¿ αáºαáí«Γ¬Ñ »α«úαá¼¼δ,  «»αÑñѽѡ¡δÑ σáαá¬ΓÑα¿ßΓ¿¬¿
  4762.          ¬«Γ«α«⌐ ºáó¿ß∩Γ «Γ αẼÑαá »á¼∩Γ¿ ¡Ñ¬«Γ«αδσ ¿½¿ óßÑσ ¥éî, úñÑ «¡á
  4763.          íπñÑΓ  óδ»«½¡∩Γ∞ß∩.  Åα¿¼ÑαἿ  Γᬿσ »α«úαá¼¼ ∩ó½∩εΓß∩ »α«úαá¼¼δ
  4764.          π»αáó½Ñ¡¿∩ φ½Ñ¬Γα«¡¡δ¼¿ Γáí½¿µá¼¿,  »α«úαá¼¼δ  «íαáí«Γ¬¿  ß»¿ß¬«ó
  4765.          »«τΓ«óδ󠬫ααÑß»«¡ñÑ¡µ¿⌐ ¿ »α«úαá¼¼δ ß«αΓ¿α«ó¬¿.  ìá»α¿¼Ñα, »α«ú-
  4766.          αá¼¼á ó¡πΓαÑ¡¡Ñ⌐ ß«αΓ¿α«ó¬¿, ß»«ß«í¡á∩ «Γß«αΓ¿α«óáΓ∞ 10 000 áñαÑ-
  4767.          ß«ó ó ¥éî ß »á¼∩Γ∞ε 256è, ß¼«ªÑΓ «Γß«αΓ¿α«óáΓ∞ ½¿Φ∞ 5 000 áñαÑß«ó
  4768.          ó ¥éî ß »á¼∩Γ∞ε 128è. àß½¿ φΓπ »α«úαá¼¼π »αÑñ»«½áúáÑΓß∩ ¿ß»«½∞º«-
  4769.          óáΓ∞ ¡á ¥éî,  αẼÑα »á¼∩Γ¿ ¬«Γ«α«⌐ ºáαá¡ÑÑ ¡Ñ¿ºóÑßΓÑ¡, Γ« Γαπñ¡«
  4770.          óδíαáΓ∞ «»Γ¿¼á½∞¡δ⌐ αẼÑα Σ¿¬ß¿α«óá¡¡«ú«  ¼áßß¿óá  ñ½∩  σαá¡Ñ¡¿∩
  4771.          ß«αΓ¿απѼ«⌐  ¿¡Σ«α¼áµ¿¿:  ½¿í«  »α«úαἼᠡѠíπñÑΓ αáí«Γ«ß»«ß«í¡á
  4772.          ñ½∩ ¥éî ß ¼á½«⌐ »á¼∩Γ∞ε,  ½¿í« »α«úαá¼¼á íπñÑΓ αáßßτ¿Γá¡á ¡á σπñ-
  4773.          Φ¿⌐ ß½πτá⌐ ¿ ¡Ñ½∞º∩ íπñÑΓ ó«ß»«½∞º«óáΓ∞ß∩ ñ«»«½¡¿Γѽ∞¡«⌐ »á¼∩Γ∞ε,
  4774.          ¬«úñá «¡á ¿¼ÑÑΓß∩. éδσ«ñ ¿º φΓ«ú« »«½«ªÑ¡¿∩ ºá¬½ετáÑΓß∩ ó ñ¿¡á¼¿-
  4775.          τÑ߬«¼ óδñѽѡ¿¿ »á¼∩Γ¿.
  4776.               Å«ñ«í¡δÑ Γαπñ¡«ßΓ¿ ¿ ¿σ αÑΦÑ¡¿Ñ σ«α«Φ« ¼«ª¡«  »α«¿½½εßΓα¿α«-
  4777.          óáΓ∞  ¡á  »α¿¼ÑαÑ  »α«úαá¼¼δ  αÑñá¬Γ¿α«óá¡¿∩ ΓѬßΓá.  ü«½∞Φ¿¡ßΓó«
  4778.          ΓѬßΓ«óδσ αÑñá¬Γ«α«ó ¡Ñ αáßßτ¿Γá¡δ ¡á ¿ß»«½∞º«óá¡¿Ñ Σ¿¬ß¿α«óá¡¡«-
  4779.          ú« τ¿ß½á ß¿¼ó«½«ó. ìá»α«Γ¿ó, «¡¿ ¿ß»«½∞ºπεΓ óßε »á¼∩Γ∞ ¥éî, ¬«Γ«-
  4780.          αá∩ ¿ñÑΓ ¡á σαá¡Ñ¡¿Ñ ΓѬßΓá,  óóÑñÑ¡¡«ú« »«½∞º«óáΓѽѼ. ìá»α¿¼Ñα,
  4781.          »α¿ óó«ñÑ ¬áªñ«⌐ ßΓ᫬¿ ñѽáÑΓß∩ óδñѽѡ¿Ñ »á¼∩Γ¿ ¿ ñ«ßΓαá¿óáÑΓß∩
  4782.          ß»¿ß«¬ ßΓ᫬.  Åα¿ πñá½Ñ¡¿¿ ßΓ᫬¿ »á¼∩Γ∞  ó«ºóαáΘáÑΓß∩  ß¿ßΓѼÑ.
  4783.          ä½∩  αÑ὿ºáµ¿¿  Γᬫú« ΓѬßΓ«ó«ú« αÑñá¬Γ«αá ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩
  4784.          ß½ÑñπεΘá∩ ºá»¿ß∞ ñ½∩ ¬áªñ«⌐ ßΓ᫬¿:
  4785.              LinePointer = ^Line;
  4786.              str80 = string[80];
  4787.  
  4788.              Line = record
  4789.                next: str80;  { ñ½∩ σαá¡Ñ¡¿∩ ¬áªñ«⌐  ßΓ᫬¿ }
  4790.                num: integer;
  4791.                next: LinePointer;  {π¬áºáΓѽ∞  ¡á  ß½ÑñπεΘπε ßΓ᫬π}
  4792.                prior: LinePointer; {π¬áºáΓѽ∞ ¡á »αÑñδñπΘπε ºá»¿ß∞ }
  4793.              end;
  4794.  
  4795.               ä½∩ »α«ßΓ«Γδ  ó φΓ«¼ ß½πτáÑ ñ½∩ ¬áªñ«⌐ ßΓ᫬¿ óδñѽ∩ÑΓß∩ »á-
  4796.          ¼∩Γ∞ »«ñ 80 ß¿¼ó«½«ó.  ìá »αá¬Γ¿¬Ñ íπñÑΓ  óδñѽ∩Γ∞ß∩  »á¼∩Γ∞  »«ñ
  4797.          Γ«τ¡«Ñ  τ¿ß½«  ß¿¼ó«½«ó ó ßΓα«¬Ñ ¿ ¿º¼Ñ¡Ñ¡¿Ñ ßΓ᫬¿ »«ΓαÑíπÑΓ ñ«-
  4798.  
  4799.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 105 =
  4800.  
  4801.          »«½¡¿Γѽ∞¡δσ ºáΓαáΓ.  é φ½Ñ¼Ñ¡ΓÑ "num"  ß«ñÑনΓß∩  ¡«¼Ñα  ¬áªñ«⌐
  4802.          ßΓ᫬¿  ΓѬßΓá.  ¥Γ«  »«ºó«½∩ÑΓ  ¿ß»«½∞º«óáΓ∞ ßΓá¡ñáαΓ¡πε Σπ¡¬µ¿ε
  4803.          "DLS_Store" ñ½∩ ß«ºñá¡¿∩ ¿ »«ññÑ᪬¿ ΓѬßΓ«ó«ú« Σá⌐½á ó ó¿ñÑ π»«-
  4804.          α∩ñ«τÑ¡¡«ú« ß»¿ß¬á ß ñó«⌐¡«⌐ ßó∩º∞ε.
  4805.               ì¿ªÑ »α¿ó«ñ¿Γß∩ »«½¡á∩ »α«úαá¼¼á ñ½∩ »α«ßΓ«ú« ΓѬßΓ«ó«ú« αÑ-
  4806.          ñá¬Γ«αá.  Ä¡ «íÑß»Ñτ¿óáÑΓ óßΓáó¬π ¿ πñá½Ñ¡¿Ñ ½εíδσ ßΓ᫬ ß π¬áºá-
  4807.          ¡¿Ñ¼ ¡«¼Ñαá ßΓ᫬¿.  Ä¡ »«ºó«½∩ÑΓ ΓᬪѠ»α«ß¼áΓα¿óáΓ∞ ΓѬßΓ ¿ »«-
  4808.          ¼ÑΘáΓ∞ Ñú« ¡á ñ¿ß¬.
  4809.               é µÑ½«¼ αáí«Γá ΓѬßΓ«ó«ú« αÑñá¬Γ«αá ßΓα«¿Γß∩ ¡á íáºÑ  »α¿¼Ñ-
  4810.          ¡Ñ¡¿∩  π»«α∩ñ«τÑ¡¡«ú« ßó∩ºá¡¡«ú« ß»¿ß¬á ßΓ᫬ ΓѬßΓá.  é ¬áτÑßΓóÑ
  4811.          ¬½ετá ß«αΓ¿α«ó¬¿ ¿ß»«½∞ºπÑΓß∩ ¡«¼Ñα  ßΓ᫬¿.  ô¬áºδóá∩  ¡áτá½∞¡δ⌐
  4812.          ¡«¼Ñα ßΓ᫬¿ ¼«ª¡« ¡Ñ Γ«½∞¬« ½Ñú¬« ñѽáΓ∞ ¡πª¡δÑ óßΓá󬿠ó ΓѬßΓ,
  4813.          ¡« ΓᬪѠ½Ñú¬« ¼«ª¡« πñ὿Γ∞ ΓѬßΓ.  àñ¿¡ßΓóÑ¡¡«⌐ ¡Ñ«íδτ¡«⌐ Σπ¡¬-
  4814.          µ¿Ñ⌐ ∩ó½∩ÑΓß∩ Σπ¡¬µ¿∩ "Patchup",  ¬«Γ«αá∩ »ÑαÑ¡π¼Ñα«óδóáÑΓ ßΓ᫬¿
  4815.          ΓѬßΓá, ¬«úñá φΓ«ú« ΓαÑíπεΓ «»Ñαᵿ¿ óßΓá󬿠¿ πñá½Ñ¡¿∩.
  4816.               é φΓ«¼  »α¿¼ÑαÑ  αẼÑα ΓѬßΓá,  ¬«Γ«αδ⌐ ¼«ªÑΓ αẼÑΘáΓ∞ß∩ ó
  4817.          αÑñá¬Γ«αÑ,  ºáó¿ß¿Γ «Γ ñ«ßΓπ»¡«⌐ »«½∞º«óáΓÑ½ε »á¼∩Γ¿. Æá¬¿¼ «íαá-
  4818.          º«¼,  φëàαÑñá¬Γ«α íπñÑΓ áóΓ«¼áΓ¿τÑ߬¿ ¿ß»«½∞º«óáΓ∞ ñ«»«½¡¿Γѽ∞-
  4819.          ¡πε »á¼∩Γ∞ ¿ ¡Ñ »«ΓαÑíπÑΓ »ÑαÑ»α«úαá¼¼¿α«óá¡¿∩.  é«º¼«ª¡« φΓ« ∩ó-
  4820.          ½∩ÑΓß∩  ßá¼δ¼  óáª¡δ¼  ñ«ßΓ«¿¡ßΓó«¼  ñ¿¡á¼¿τÑ߬«ú«  αáß»αÑñѽѡ¿∩
  4821.          »á¼∩Γ¿.
  4822.               é«º¼«ª¡«ßΓ¿ »α¿ó«ñ¿¼«⌐ »α«úαá¼¼δ  «τÑ¡∞  «úαá¡¿τÑ¡δ,  «ñ¡á¬«
  4823.          «¡á «íÑß»Ñτ¿óáÑΓ «ß¡«ó¡δÑ Σπ¡¬µ¿¿ ΓѬßΓ«ó«ú« αÑñá¬Γ«αá. ¥Γπ »α«ú-
  4824.          αá¼¼π ¼«ª¡« πß«óÑαΦÑ¡ßΓó«óáΓ∞ ¿  »«½πτ¿Γ∞  ΓѬßΓ«óδ⌐  αÑñá¬Γ«α  ß
  4825.          ΓαÑíπÑ¼δ¼¿ ó«º¼«ª¡«ßΓ∩¼¿.
  4826.  
  4827.              { «τÑ¡∞ »α«ßΓ«⌐ ΓѬßΓ«óδ⌐ αÑñá¬Γ«α }
  4828.              program TextEd;
  4829.              type
  4830.                str80 = string[80];
  4831.                LinePointer = ^Line;
  4832.                line = record
  4833.                 text: str80;
  4834.                 num: integer;
  4835.                 next: LinePointer;  {π¬áºáΓѽ∞       ¡á  ß½ÑñπεΘπε ßΓ᫬π}
  4836.                 prior: LinePointer; {π¬áºáΓѽ∞ ¡á »αÑñδñπΘπε ºá»¿ß∞ }
  4837.                end;
  4838.                DataItem = line;
  4839.                filType = file of line;
  4840.  
  4841.              var
  4842.                text: filtype;
  4843.                start, last: LinePointer;
  4844.                done: boolean;
  4845.                iname: str80;
  4846.  
  4847.              { ó«ºóαáΘáÑΓ óδíαá¡¡πε »«½∞º«óáΓѽѼ Σπ¡¬µ¿ε }
  4848.              function MenuSelect: char;
  4849.  
  4850.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 106 =
  4851.  
  4852.              var
  4853.                ch: char;
  4854.              begin
  4855.                WriteLn('1. Enter text');
  4856.                WriteLN('2. Delete a line');
  4857.                WriteLn('3. Display the file');
  4858.                WriteLn('4. Save the file');
  4859.                WriteLn('5. Load the file');
  4860.                WriteLn('6. Quit');
  4861.                repeat
  4862.                 WriteLn;
  4863.                 Write('Enter your choice: ');
  4864.                 ReadLn(ch); ch :=  UpCase(ch);
  4865.                      until (ch>='1') and (ch<='6')
  4866.                      MenuSelect := ch;
  4867.                      end;{ ¬«¡Ñµ óδí«αá »« ¼Ñ¡ε }
  4868.  
  4869.            { »«¿ß¬ ºáñá¡¡«⌐ ßΓ᫬¿ ¿ óδñáτá π¬áºáΓѽ∩ ¡á ¡ÑÑ }
  4870.                    function Find(num: integer): LinePointer;
  4871.                    var
  4872.                      i: LinePointer;
  4873.                    begin i:= start;
  4874.                      find := nil;
  4875.                      while (i<>nil) do begin
  4876.                        if lnum=i^.num then find :=i;
  4877.                        i := i^.next;
  4878.                      end;
  4879.                    end;
  4880.  
  4881.               { Σ«α¼¿α«óá¡¿Ñ ¡«¼Ñα«ó ßΓ᫬ »α¿ óßΓáó¬Ñ ¿½¿ πñá½Ñ¡¿∩ ¿º
  4882.                    ΓѬßΓá }
  4883.                    procedure PatchUp(lnum, incr: integer);
  4884.                    var
  4885.                      i:LinePointer;
  4886.                    begin
  4887.                      i := Find(lnum)
  4888.                      while (i<>nil) do begin
  4889.                        i^.num := i^.num +incr;
  4890.                        i := i^.next
  4891.                      end:
  4892.                    end;
  4893.  
  4894.                     { π»«α∩ñ«τÑ¡¡á∩ óßΓáó¬á ßΓ᫬ ó ΓѬßΓ }
  4895.                    function DLS_Store(info, start: LinePointer;
  4896.                                     var last: LinePointer): LinePointer;
  4897.                    var
  4898.                      old, top: LinePointer;
  4899.                      done: boolean;
  4900.  
  4901.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 107 =
  4902.  
  4903.                    begin
  4904.                      top := start;
  4905.                      old := nil;
  4906.                      done := FALSE;
  4907.  
  4908.                      if start = nil then begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á }
  4909.                        info^.next := nil;
  4910.                        last := info;
  4911.                        info^.prior :=nil;
  4912.                        DLS_Store := info;
  4913.                      end else
  4914.                      begin
  4915.                        while (start<>nil) and (not done) do
  4916.                        begin
  4917.                         if start^.num < info^.num then
  4918.                         begin
  4919.                           old := start;
  4920.                           start := start^.next;
  4921.                         end else
  4922.                         begin { óßΓáó¬á ó ßÑαÑñ¿¡π }
  4923.                           if old <>nil then
  4924.                             begin
  4925.                             old^.next := info;
  4926.                             info^.next := start;
  4927.                             start^.prior := info;
  4928.                             info^.prior := old;
  4929.                             DLS_Store := top; { ß«σαá¡Ñ¡¿Ñ ¡áτá½á }
  4930.                             done := TRUE;
  4931.                           end else
  4932.                           begin
  4933.                             info^.next := start;{¡«óδ⌐ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ }
  4934.                             info^.prior := nil;
  4935.                             DLS_Store := info;
  4936.                             done := TRUE;
  4937.                           end;
  4938.                         end;
  4939.                        end;  { ¬«¡Ñµ µ¿¬½á }
  4940.                        if not done then begin
  4941.                         last^.next := info;
  4942.                         info^.next := nil;
  4943.                         info^.prior := last;
  4944.                         last := info;
  4945.                         DLS_Store := top; { ß«σαá¡Ñ¡¿Ñ ¡áτá½á }
  4946.                        end;
  4947.                      end;
  4948.                    end;  { ¬«¡Ñµ Σπ¡¬µ¿¿ DLS_Store }
  4949.  
  4950.  
  4951.  
  4952.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 108 =
  4953.  
  4954.                { πñá½Ñ¡¿Ñ ßΓ᫬¿ ΓѬßΓá }
  4955.                    function DL_Delete(start: LinePointer
  4956.                                     key: str[80]:) LinePointer
  4957.                    var
  4958.                      temp, temp2: LinePointer
  4959.                      done: boolean;
  4960.                    begin
  4961.                      if star^.num = key then begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ
  4962.                    ß»¿ß¬á }
  4963.                       DL_Delete := start^.next;
  4964.                       if temp^.next <> nil then
  4965.                       begin
  4966.                        temp := start^.next;
  4967.                        temp^.prior := nil;
  4968.                       end;
  4969.                       dispose(start);
  4970.                    end else
  4971.                    begin
  4972.                      done := FALSE;
  4973.                      temp := start^.next;
  4974.                      temp2 := start;
  4975.                      while (temp <> nil) and (not done) do
  4976.                      begin
  4977.                        if temp^.num = key then
  4978.                        begin
  4979.                         temp2^.next := temp^.next;
  4980.                         if temp^.next = <> nil then
  4981.                            temp^.next^.prior := temp2
  4982.                            done := TRUE
  4983.                            last := temp^.prior
  4984.                            dispose(temp);
  4985.                        end else
  4986.                           temp2 := temp;
  4987.                           temp := temp^.next;
  4988.                         end;
  4989.                      end;
  4990.                      DL_Delete := start; { ¡áτὫ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩ }
  4991.                      if not done then Writeln('not found');
  4992.                      else PatchUp(key+1,-1);
  4993.                    end;
  4994.                  end; { ¬«¡Ñµ Σπ¡¬µ¿¿ DL_Delete }
  4995.  
  4996.          { »«ñ߬Ậᠻ«½∞º«óáΓѽε ñ½∩ óó«ñá ¡«¼Ñαá πñá½∩Ѽ«⌐ ßΓ᫬¿ }
  4997.                    procedure Remove;
  4998.                    var
  4999.                      num:integer;
  5000.                    begin
  5001.                      Writeln('Enter line to delete: ');
  5002.  
  5003.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 109 =
  5004.  
  5005.                      Readln(num);
  5006.                      start := DL_Delete(start,num);
  5007.                    end;  { ¬«¡Ñµ »α«µÑñπαδ πñá½Ñ¡¿∩ }
  5008.  
  5009.                             { óó«ñ ßΓ᫬ ΓѬßΓá }
  5010.                    procedure Enter;
  5011.                    var
  5012.                      info: LinePointer;
  5013.                      done: boolean;
  5014.                    begin
  5015.                      done := FALSE;
  5016.                      Write('Enter starting lnie number: ');
  5017.                      Readln(num);
  5018.                      repeat
  5019.                      new(info)       { »«½πτ¿Γ∞ ¡«óπε ºá»¿ß∞ }
  5020.                      info^.num := num;
  5021.                      Write(info^.num,':')
  5022.                      Readln(info^.text);
  5023.                      if Length(info^.text = 0 then done := TRUE
  5024.                      else begin
  5025.                      if Find(num)<> nil then PatchUp(num,1);
  5026.                        start := DLS_Store(info, start, last);
  5027.                      end;
  5028.                      num := num +1;
  5029.                    until done;
  5030.                  end;  { ¬«¡Ñµ óó«ñá }
  5031.  
  5032.                    { óδó«ñ Σá⌐½á ¡á φ¬αá¡ }
  5033.                    procrdure Display(start: LinePointer);
  5034.                    begin
  5035.                      while start <> nil do begin
  5036.                        Write(start^.num,':');
  5037.                        Writeln(start^.text);
  5038.                        start := start^.next
  5039.                      end;
  5040.                      Writeln;
  5041.                    end;
  5042.  
  5043.                    { ºá»¿ßáΓ∞ Σá⌐½ ¡á ñ¿ß¬ }
  5044.                    procedure Save(var f:FilType; start: LinePointer):
  5045.                    begin
  5046.                      Writeln('saving file');
  5047.                      rewrite(f);
  5048.                      while start <> nil do begin
  5049.                      write(f,start);
  5050.                      start := start^.next;
  5051.                      end;
  5052.                   end;
  5053.  
  5054.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 110 =
  5055.  
  5056.  
  5057.  
  5058.               { ºáúαπºτ¿¬á Σá⌐½á ß ñ¿ß¬á ¿ »«½πτÑ¡¿Ñ π¬áºáΓѽ∩ ¡á ¡áτὫ
  5059.                                   ß»¿ß¬á }
  5060.                    procedure Load(var f:FilType; start: LinePointer):
  5061.                               LinePointer;
  5062.                    var
  5063.                      temp: LinePointer
  5064.                    begin
  5065.                      Writeln('load file');
  5066.                      reset(f);
  5067.                      while start <> nil do begin
  5068.                        temp := start^.next
  5069.                        dispose(start);
  5070.                        start := temp;
  5071.                      end;
  5072.  
  5073.                      start := nil; last := nil;
  5074.                      if not eof(f) then begin
  5075.                      begin
  5076.                        New(temp);
  5077.                        Read(f,temp^);
  5078.                        start := DLS_Store(temp, start, last);
  5079.                    end;
  5080.  
  5081.                    begin
  5082.                      start := nil; { ß¡áτá½á ß»¿ß«¬ »πßΓ«⌐ }
  5083.                      last := nil;
  5084.                      done := FALSE;
  5085.  
  5086.                      Write('Enter Filename: ');
  5087.                      Readln(filename);
  5088.                      Assign(text,filename);
  5089.  
  5090.                      repeat
  5091.                        case MenuSelect of
  5092.                        '1': Enter;
  5093.                        '2': Remove;
  5094.                        '3': Display(start);
  5095.                        '4': Save(text,start);
  5096.                        '5': start := Load(text);
  5097.                        '6': done := TRUE;
  5098.                        end;
  5099.                      until done = TRUE;
  5100.                    end.
  5101.  
  5102.  
  5103.  
  5104.  
  5105.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 111 =
  5106.  
  5107.                                           öÉÇâîàìÆÇûꃠ                        
  5108.          -----------------------------------------------------------------
  5109.  
  5110.               è«úñá í½«¬¿  ñ«ßΓπ»¡«⌐  »á¼∩Γ¿ αáß»«½áúáεΓß∩ ¼Ñªñπ πτáßΓ¬á¼¿
  5111.          αáß»αÑñѽѡ¡«⌐ »á¼∩Γ¿,  Γ« ú«ó«α∩Γ,  τΓ« »α«¿ßσ«ñ¿Γ  Σαáú¼Ñ¡Γᵿ∩
  5112.          »á¼∩Γ¿. ò«Γ∩ ßó«í«ñ¡«⌐ »á¼∩Γ¿ ¬á¬ »αá󿽫 íδóáÑΓ ñ«ßΓáΓ«τ¡«, τΓ«-
  5113.          íδ πñ«ó½ÑΓó«α¿Γ∞ ºá»α«ß »á¼∩Γ¿,  «ñ¡á¬« Γαπñ¡«ßΓ∞  ºá¬½ετáÑΓß∩  ó
  5114.          Γ«¼, τΓ« αẼÑαδ «Γñѽ∞¡δσ πτáßΓ¬«ó ßó«í«ñ¡«⌐ »á¼∩Γ¿ ¡Ññ«ßΓáΓ«τ¡δ
  5115.          ñ½∩ φΓ«ú«,  ¡Ñß¼«Γα∩ ¡á Γ«, τΓ« »α¿ ¿σ «íΩÑñ¿¡Ñ¡¿¿ »«½πτ¿Γß∩ ñ«ß-
  5116.          ΓáΓ«τ¡δ⌐ «íΩѼ »á¼∩Γ¿.  ìá α¿ß.18 »«¬áºá¡«,  ¬á¬ »α¿ «»αÑñѽѡ¡«⌐
  5117.          »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ «íαáΘÑ¡¿∩ ¬ »α«µÑñπαá¼ "New" ¿ "Dispose" ¼«ªÑΓ
  5118.          ó«º¡¿¬¡πΓ∞ Γá¬á∩ ß¿Γπᵿ∩.
  5119.               è«úñá í½«¬¿ ñ«ßΓπ»¡«⌐ »á¼∩Γ¿ αáß»«½áúáεΓß∩  ¼Ñªñπ  πτáßΓ¬á¼¿
  5120.          αáß»αÑñѽѡ¡«⌐  »á¼∩Γ¿,  Γ« ú«ó«α∩Γ,  τΓ« »α«¿ßσ«ñ¿Γ Σαáú¼Ñ¡Γᵿ∩
  5121.          »á¼∩Γ¿. ò«Γ∩ ßó«í«ñ¡«⌐ »á¼∩Γ¿ ¬á¬ »αá󿽫 íδóáÑΓ ñ«ßΓáΓ«τ¡«, τΓ«-
  5122.          íδ  πñ«ó½ÑΓó«α¿Γ∞  ºá»α«ß »á¼∩Γ¿,  «ñ¡á¬« Γαπñ¡«ßΓ∞ ºá¬½ετáÑΓß∩ ó
  5123.          Γ«¼, τΓ« αẼÑαδ «Γñѽ∞¡δσ πτáßΓ¬«ó ßó«í«ñ¡«⌐ »á¼∩Γ¿ ¡Ññ«ßΓáΓ«τ¡δ
  5124.          ñ½∩ φΓ«ú«,  ¡Ñß¼«Γα∩ ¡á Γ«, τΓ« »α¿ ¿σ «íΩÑñ¿¡Ñ¡¿¿ »«½πτ¿Γß∩ ñ«ß-
  5125.          ΓáΓ«τ¡δ⌐ «íΩѼ »á¼∩Γ¿.  ìá α¿ß.18 »«¬áºá¡«,  ¬á¬ »α¿ «»αÑñѽѡ¡«⌐
  5126.          »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ «íαáΘÑ¡¿∩ ¬ »α«µÑñπαá¼ "New" ¿ "Dispose" ¼«ªÑΓ
  5127.          ó«º¡¿¬¡πΓ∞ Γá¬á∩ ß¿Γπᵿ∩.
  5128.  
  5129.                         A,B,C,D:^integer
  5130.                         W,X,Y,Z:^real;
  5131.  
  5132.  
  5133.                          ┌────┬────────────────────────────────────┐
  5134.                new(A)    │ A  │                                    │
  5135.                          └────┴────────────────────────────────────┘
  5136.                          ┌────┬───────┬────────────────────────────┐
  5137.                new(W)    │ A  │   W   │                            │
  5138.                          └────┴───────┴────────────────────────────┘
  5139.                          ┌────┬───────┬────┬───────────────────────┐
  5140.                new(B)    │ A  │   W   │ B  │                       │
  5141.                          └────┴───────┴────┴───────────────────────┘
  5142.                          ┌────┬───────┬────┬────┬──────────────────┐
  5143.                new(C)    │ A  │   W   │ B  │ C  │                  │
  5144.                          └────┴───────┴────┴────┴──────────────────┘
  5145.                          ┌────┬───────┬────┬────┬───────┬──────────┐
  5146.                new(X)    │ A  │   W   │ B  │ C  │   X   │          │
  5147.                          └────┴───────┴────┴────┴───────┴──────────┘
  5148.                          ┌────┬───────┬────┬────┬───────┬──────┬───┐
  5149.                new(Y)    │ A  │   W   │ B  │ C  │   X   │   Y  │   │
  5150.                          └────┴───────┴────┴────┴───────┴──────┴───┘
  5151.                          ┌────┬───────┬────┬────┬───────┬──────┬───┐
  5152.                dispose(B)│ A  │   W   │    │ C  │   X   │   Y  │   │
  5153.                          └────┴───────┴────┴────┴───────┴──────┴───┘
  5154.                new(Z)         çá»α«ß ¡Ñ ¼«ªÑΓ íδΓ∞ πñ«ó½ÑΓó«αÑ¡, »«ß¬«½∞¬π
  5155.  
  5156.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 112 =
  5157.  
  5158.                          ¡ÑΓ πτáßΓ¬á  ¡Ñ»αÑαδó¡«⌐  ßó«í«ñ¡«⌐ »á¼∩Γ¿ ñ«ßΓá-
  5159.                          Γ«τ¡«ú« αẼÑαá
  5160.  
  5161.               é ¡Ñ¬«Γ«αδσ ß½πτá∩σ Σαáú¼Ñ¡Γᵿ∩ π¼Ñ¡∞ΦáÑΓß∩,  Γᬠ¬á¬ Σπ¡¬-
  5162.          µ¿¿ ñ¿¡á¼¿τÑ߬«ú« αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ «íΩÑñ¿¡∩εΓ ß«ßÑñ¡¿Ñ πτáßΓ-
  5163.          ¬¿ »á¼∩Γ¿. ìá»α¿¼Ñα, »πßΓ∞ í뫨 óδñѽѡδ πτáßΓ¬¿ »á¼∩Γ¿ A,B,C,¿ D
  5164.          /ß¼. ¡¿ªÑ/.  çáΓѼ «ßó«í«ªñáεΓß∩ πτáßΓ¬¿ B ¿ C. ¥Γ¿ πτáßΓ¬¿ ¼«ª¡«
  5165.          «íΩÑñ¿¡¿Γ∞, »«ß¬«½∞¬π «¡¿ αáß»«½áúáεΓß∩ α∩ñ«¼. Äñ¡á¬«, Ñß½¿ «ßó«-
  5166.          í«ªñáεΓß∩ πτáßΓ¬¿ B ¿ D, Γ« «íΩÑñ¿¡¿Γ∞ ¿σ ¡Ñ½∞º∩ íπñÑΓ, »«ß¬«½∞¬π
  5167.          ¼Ñªñπ ¡¿¼¿ ¡áσ«ñ¿Γß∩ πτáßΓ«¬ C ¬«Γ«αδ⌐ ÑΘÑ ¡Ñ «ßó«í«ªñÑ¡:
  5168.                          ________________________
  5169.                         │     │     │     │     │
  5170.                         │  A  │  B  │  C  │  D  │
  5171.                         │_____│_____│_____│_____│
  5172.  
  5173.               Æá¬ ¬á¬  B ¿ D «ßó«í«ªñÑ¡δ,  á C ºá¡∩Γ,  Γ« ¼«ªÑΓ ó«º¡¿¬¡πΓ∞
  5174.          ó«»α«ß: "Å«τѼπ íδ Æπαí« Åá߬á½ε ¡Ñ »ÑαÑß½áΓ∞ ß«ñÑন¼«Ñ C ó  D ¿
  5175.          ºáΓѼ «íΩÑñ¿¡¿Γ∞  B  ¿ C?" Æαπñ¡«ßΓ∞ ºá¬½ετáÑΓß∩ ó Γ«¼,  τΓ« óáΦá
  5176.          »α«úαἼᠡѠíπñÑΓ "º¡áΓ∞", τΓ« φΓ« »ÑαÑßδ½¬á »α«¿º«Φ½á.
  5177.               Äñ¿¡ ¿º  ß»«ß«í«ó »αÑñ«ΓóαáΘÑ¡¿∩ í«½∞Φ«⌐ Σαáú¼Ñ¡Γᵿ¿ ºá¬½ε-
  5178.          τáÑΓß∩ ó Γ«¼,  τΓ«íδ óßÑúñá óδñѽ∩Γ∞ «ñ¿¡á¬«óδÑ πτáßΓ¬¿ »á¼∩Γ¿. é
  5179.          φΓ«¼ ß½πτáÑ  óßÑ  «ßó«í«ªñÑ¡¡δÑ  πτáßΓ¬¿ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ »α¿
  5180.          ½εíδσ »«ß½ÑñπεΘ¿σ ºá»α«ßáσ ¡á óδñѽѡ¿Ñ »á¼∩Γ¿  ¿  Γᬿ¼  «íαẫ¼
  5181.          íπñÑΓ ¿ß»«½∞º«óá¡á óß∩ ßó«í«ñ¡á∩ »á¼∩Γ∞. àß½¿ ¡Ñ½∞º∩ ¿ß»«½∞º«óáΓ∞
  5182.          óßÑúñá «ñ¿¡á¬«óδ⌐ αẼÑα óδñѽ∩Ѽδσ πτáßΓ¬«ó,  Γ« ß½ÑñπÑΓ «úαá¡¿-
  5183.          τ¿Γ∞ß∩ Γ«½∞¬«  ¡Ñ߬«½∞¬¿¼¿ αẼÑαἿ.  ê¡«úñá φΓ«ú« ¼«ª¡« ñ«ßΓ¿ú-
  5184.          ¡πΓ∞ »πΓѼ «íΩÑñ¿¡Ñ¡¿∩ ¡Ñ߬«½∞¬¿σ ºá»α«ß«ó ¡á óδñѽѡ¿Ñ ¡Ñí«½∞Φ¿σ
  5185.          πτáßΓ¬«ó ó «ñ¿¡ ºá»α«ß ¡á óδñѽѡ¿Ñ «ñ¡«ú« í«½∞Φ«ú« πτáßΓ¬á »á¼∩-
  5186.          Γ¿. ìÑ ß½ÑñπÑΓ ñ½∩ »αÑñ«ΓóαáΘÑ¡¿∩  Σαáú¼Ñ¡Γᵿ¿  óδñѽ∩Γ∞  í«½∞ΦÑ
  5187.          »á¼∩Γ¿, τѼ ñÑ⌐ßΓó¿Γѽ∞¡« ΓαÑíπÑΓß∩,  »«ß¬«½∞¬π »«½πτáѼá∩ óδú«ñá
  5188.          ¡Ñ «¬π»¿Γ »«ΓÑα∞ «Γ ¡Ñ¿ß»«½∞º«óá¡¡«⌐ »á¼∩Γ¿.  î«ª¡«  ¿ß»«½∞º«óáΓ∞
  5189.          ñαπú«⌐ »«ñσ«ñ ¬ αÑΦÑ¡¿ε φΓ«⌐ »α«í½Ñ¼δ: »α¿ αáí«ΓÑ »α«úαá¼¼δ ¼«ª¡«
  5190.          ºá»¿ßδóáΓ∞ ¿¡Σ«α¼áµ¿ε ó« óαѼѡ¡δ⌐ ñ¿ß¬«óδ⌐ Σá⌐½,  «ßó«í«ñ¿Γ∞ óßε
  5191.          »á¼∩Γ∞ ¿ ºáΓѼ ßτ¿ΓáΓ∞ ¿¡Σ«α¼áµ¿ε ß ñ¿ß¬á ó »á¼∩Γ∞.  Åα¿ ßτ¿Γδóá-
  5192.          ¡¿¿ ¿¡Σ«α¼áµ¿¿ ¡Ñ íπñÑΓ ß«ºñáóáΓ∞ß∩ ¡¿¬á¬¿σ »α«¼ÑªπΓ¬«ó.
  5193.  
  5194.  
  5195.  
  5196.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 113 =
  5197.  
  5198.                          ä¿¡á¼¿τÑ߬«Ñ αáß»αÑñѽѡ¿Ñ »á¼∩Γ¿ ¿ ºáñáτ¿            
  5199.                       ¿ß¬πßßΓóÑ¡¡«ú« ¿¡Γѽ½Ñ¬Γá
  5200.          -----------------------------------------------------------------
  5201.  
  5202.               ò«Γ∩ Åá߬á½∞ ¡Ñ ∩ó½∩ÑΓß∩ «ß¡«ó¡δ¼ ∩ºδ¬«¼,  ¬«Γ«αδ⌐ ¿ß»«½∞ºπ-
  5203.          ÑΓß∩ »α¿  αÑΦÑ¡¿¿ ºáñáτ ¿ß¬πßßΓóÑ¡¡«ú« ¿¡Γѽ½Ñ¬Γá,  Ñú« ¼«ª¡« ¿ß-
  5204.          »«½∞º«óáΓ∞ ¿ ó φΓ«⌐ «í½áßΓ¿.  Äß¡«ó¡«⌐ τÑαΓ«⌐ ¼¡«ú¿σ »α«úαá¼¼  ¿º
  5205.          «í½áßΓ¿ ¿ß¬πßßΓóÑ¡¡«ú«  ¿¡Γѽ½Ñ¬Γá ∩ó½∩ÑΓß∩ ¡á½¿τ¿Ñ ß»¿ß¬á ¿¡Σ«α-
  5206.          ¼áµ¿«¡¡δσ φ½Ñ¼Ñ¡Γ«ó, ¬«Γ«αδ⌐ ¼«ªÑΓ αáßΦ¿α∩Γ∞ß∩ »α«úαá¼¼«⌐ áóΓ«¼á-
  5207.          Γ¿τÑ߬¿ »« ¼ÑαÑ ÑÑ "«íπτÑ¡¿∩".  é Γᬫ¼ ∩ºδ¬Ñ ¬á¬ Åα«½«ú, ¬«Γ«αδ⌐
  5208.          ßτ¿ΓáÑΓß∩ «ß¡«ó¡δ¼ ∩ºδ¬«¼  ¿ß¬πßßΓóÑ¡¡«ú«  ¿¡Γѽ½Ñ¬Γá,  »«ññÑ᪬á
  5209.          ß»¿ß¬á «íÑß»Ñτ¿óáÑΓß∩ áóΓ«¼áΓ¿τÑ߬¿.  ìá ∩ºδ¬Ñ Åá߬á½∞ ΓᬿѠ»α«-
  5210.          µÑñπαδ ñ«½ª¡δ »α«úαá¼¼¿α«óáΓ∞ß∩ ß »α¿¼Ñ¡Ñ¡¿Ñ¼ ßó∩ºá¡¡δσ ß»¿ß¬«ó ¿
  5211.          ¼Ñσá¡¿º¼á ñ¿¡á¼¿τÑ߬«ú«  αáß»αÑñѽѡ¿∩  »á¼∩Γ¿.  ò«Γ∩  »α¿ó«ñ¿¼δ⌐
  5212.          »α¿¼Ñα ∩ó½∩ÑΓß∩ «τÑ¡∞ »α«ßΓδ¼,  ΓÑ ªÑ »α¿¡µ¿»δ »α¿¼Ñ¡¿¼δ ñ½∩ αáº-
  5213.          αáí«Γ¬¿ í«½ÑÑ ß½«ª¡δσ "αáºπ¼¡δσ" »α«úαá¼¼.
  5214.               Äñ¡π ¿¡ΓÑαÑß¡πε «í½áßΓ∞ ¿ß¬πßßΓóÑ¡¡«ú« ¿¡Γѽ½Ñ¬Γá ß«ßΓáó½∩εΓ
  5215.          »α«úαá¼¼δ, αáí«Γá  ¬«Γ«αδσ ¡á»«¼¿¡áÑΓ »«óÑñÑ¡¿Ñ ½εñÑ⌐. ç¡á¼Ñ¡¿Γá∩
  5216.          »α«úαá¼¼á "¥½¿ºá", ¡á»α¿¼Ñα, óÑñÑΓ ßÑí∩ ¬á¬ »ß¿σ¿áΓα. æ«óßѼ ¡Ñ»-
  5217.          ½«σ« ¿¼ÑΓ∞ »α«úαá¼¼π, ¬«Γ«αá∩ ¼«ªÑΓ "αáºú«óáα¿óáΓ∞" ¡á ½εíπε ΓѼπ
  5218.          - ¬á¬ í佫 íδ σ«α«Φ« ºá»πßΓ¿Γ∞ Γá¬πε »α«úαá¼¼π, ¬«úñá óδ πßΓá¡ÑΓÑ
  5219.          «Γ »α«úαá¼¼¿α«óá¡¿∩ ¿ »«τπóßΓóπÑΓÑ ßÑí∩ «ñ¿¡«¬¿¼! ì¿ªÑ »α¿ó«ñ¿Γ∞-
  5220.          ß∩ «τÑ¡∞ »α«ßΓá∩ óÑαß¿∩ Γᬫ⌐ »α«úαá¼¼δ. é ¡Ñ⌐ ¿ß»«½∞ºπεΓß∩ ß½«óá
  5221.          ¿ ¿σ  «»αÑñѽѡ¿∩  ñ½∩  óÑñÑ¡¿∩ »α«ßΓ«ú« ñ¿á½«úá ß »«½∞º«óáΓѽѼ.
  5222.          Äñ¡«⌐ «íΘÑ⌐ τÑαΓ«⌐ óßÑσ »α«úαá¼¼ ¿ß¬πßßΓóÑ¡¡«ú« ¿¡Γѽ½Ñ¬Γá  ∩ó½∩-
  5223.          ÑΓß∩ ßó∩º∞ ¿¡Σ«α¼áµ¿«¡¡«ú« φ½Ñ¼Ñ¡Γá ß Ñú« ß¼δß½«¼. é φΓ«¼ »α¿¼ÑαÑ
  5224.          ß½«óá ßó∩ºδóáεΓß∩ ß ¿σ ß¼δß½«¼. ì¿ªÑ «»¿ßδóáÑΓß∩ ºá»¿ß∞, »αÑñ¡áº-
  5225.          ¡áτÑ¡¡á∩ ñ½∩ ß«ñÑαªá¡¿∩ ¬áªñ«ú« ß½«óá, Ñú« «»αÑñѽѡ¿∩, τáßΓ¿ αÑ-
  5226.          τ¿ ¿ Ñú« ñ«»«½¡Ñ¡¿∩:
  5227.  
  5228.                  type
  5229.                    str80 = string[80];
  5230.                    str30 = string[30];
  5231.                    VocabPointer = "Γ¿½∞ñá"vocab;
  5232.                    vocab = record
  5233.                      typ:       char; { τáßΓ∞ αÑτ¿ }
  5234.                      connotate: char; { ñ«»«½¡Ñ¡¿Ñ }
  5235.  
  5236.                    word:      str30;  { ßἫ ß½«ó« }
  5237.                    def:       str80;  { «»αÑñѽѡ¿Ñ }
  5238.                    next:      VocabPointer; { π¬áºáΓѽ∞ ¡á ß½ÑñπεΘπε
  5239.                                                              ºá»¿ß∞ }
  5240.                    prior:     VocabPointer; { π¬áºáΓѽ∞ ¡á »αÑñδñπΘπε
  5241.                                                              ºá»¿ß∞ }
  5242.                  end
  5243.  
  5244.               é »α¿ó«ñ¿¼«⌐ ¡¿ªÑ »α«úαἼѠñѽáÑΓß∩ óó«ñ ß½«óá, Ñú« «»αÑñÑ-
  5245.          ½Ñ¡¿∩, Γ¿»á  ß½«óá  ¿  Ñú«  ñ«»«½¡Ñ¡¿∩  Γ¿»á "σ«α«Φ«",  "»½«σ«" ¿
  5246.  
  5247.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 114 =
  5248.  
  5249.          "íѺαẽ¿τ¡«". ä½∩ »«ññÑ᪬¿ Γᬫú«  ß½«óáα∩  ßΓα«¿Γß∩  ßó∩ºá¡¡δ⌐
  5250.          ß»¿ß«¬ ß ¿ß»«½∞º«ó᡿Ѽ ¼Ñσá¡¿º¼á ñ¿¡á¼¿τÑ߬«ú« óδñѽѡ¿∩ »á¼∩Γ¿.
  5251.          öπ¡¬µ¿∩ "DLS_Store" ß«ºñáÑΓ ¿ »«ññÑনóáÑΓ  π»«α∩ñ«τÑ¡¡δ⌐  ß»¿ß«¬
  5252.          ß½«ó ß½«óáα∩.  Å«ß½Ñ óó«ñá ¡Ñ߬«½∞¬¿σ ß½«ó ó ß½«óáα∞ ¼«ª¡« ¡áτáΓ∞
  5253.          ñ¿á½«ú ß ¥éî.  ìá»α¿¼Ñα,  óδ ¼«ªÑΓÑ óóÑßΓ¿ ΓᬫѠ»αÑñ½«ªÑ¡¿Ñ, ¬á¬
  5254.          "æÑú«ñ¡∩ σ«α«Φ¿⌐ ñÑ¡∞". Åα«úαá¼¼á íπñÑΓ »α«ß¼áΓα¿óáΓ∞ »αÑñ½«ªÑ¡¿∩
  5255.          ñ½∩ »«¿ß¬á ¿¼Ñ¡¿ ßπΘÑßΓó¿Γѽ∞¡«ú«,  ¬«Γ«α«Ñ ¡áσ«ñ¿Γß∩ ó  ß½«óáαÑ.
  5256.          àß½¿ «¡« ¡á⌐ñÑ¡«, Γ« íπñÑΓ óδñá¡« ºá¼Ñτá¡¿Ñ «í φΓ«¼ ¿¼Ñ¡¿ ßπΘÑßΓ-
  5257.          ó¿Γѽ∞¡«¼, ºáó¿ß∩ΘÑÑ «Γ Ñú« ß¼δß½á.  àß½¿ »α«úαἼᠠóßΓαÑΓ¿Γ  Ñ⌐
  5258.          "¡Ñ¿ºóÑßΓ¡δÑ" ß½«óá,  Γ« «¡á »«»α«ß¿Γ óóÑßΓ¿ Ñú« ¿ «»αÑñѽ¿Γ∞ Ñú«
  5259.          σáαá¬ΓÑα¿ßΓ¿¬¿. ä½∩ ºáóÑαΦÑ¡¿∩ ñ¿á½«úá óó«ñ¿Γß∩ ß½«ó« "quit".
  5260.               Åα«µÑñπαá "Talk" ∩ó½∩ÑΓß∩ τáßΓ∞ε »α«úαá¼¼δ,  ¬«Γ«αá∩ »«ññÑα-
  5261.          ª¿óáÑΓ  ñ¿á½«ú.  éß»«¼«úáΓѽ∞¡á∩  Σπ¡¬µ¿∩  "Dissect"  óδñѽ∩ÑΓ ¿º
  5262.          »αÑñ½«ªÑ¡¿∩ ß½«óá.  é »ÑαѼѡ¡«⌐ "sentence" ß«ñÑনΓß∩  óóÑñÑ¡¡«Ñ
  5263.          óἿ  »αÑñ½«ªÑ¡¿Ñ.  éδñѽѡ¡«Ñ  ¿º »αÑñ½«ªÑ¡¿∩ ß½«ó« »«¼ÑΘáÑΓß∩ ó
  5264.          »ÑαѼѡ¡πε "word". ì¿ªÑ »α¿ó«ñ∩Γß∩ Σπ¡¬µ¿¿ "Talk" ¿ "Dissect":
  5265.  
  5266.               { »««τÑαÑñ¡«Ñ óδñѽѡ¿Ñ ß½«ó ¿º »αÑñ½«ªÑ¡¿∩ }
  5267.                  procedure Dissect(var s:str80;var w:str30);
  5268.                  var
  5269.                    t, x:integer;
  5270.                    temp:str80;
  5271.                  begin
  5272.                    t :=1;
  5273.                    while(s[t]=' ') do t := t+1;
  5274.                    x := t;
  5275.                    while(s[t]=' ') and (t<=Length(s)) do t := t+1;
  5276.                    if t<=Length(s) then t := t-1;
  5277.                    w := copy(s, x, t-x+1);
  5278.                    temp := s;
  5279.                    s := copy(temp,t+1,Length(s))
  5280.                  end;
  5281.  
  5282.          { Σ«α¼¿α«óá¡¿Ñ «ΓóÑΓ«ó ¡á «ß¡«óá¡¿¿ óóÑñÑ¡¡«ú« »«½∞º«óáΓѽѼ
  5283.                    »αÑñ½«ªÑ¡¿∩ }
  5284.                  procedure Talk;
  5285.                  var
  5286.                    sentence: str80
  5287.                    word: str30
  5288.                    w: VocabPointer;
  5289.                  begin
  5290.                    Writeln('Conversation mode (quit to exit)');
  5291.                    repeat
  5292.                      Write(': ')
  5293.                      Readln(sentence)
  5294.                      repeat
  5295.                        Dissect(sentence,word);
  5296.                        w := Search(start, word);
  5297.  
  5298.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 115 =
  5299.  
  5300.                        if w <> nil then begin
  5301.                         if w^.type = 'n' then
  5302.                         begin
  5303.                           case w^.connotate of
  5304.                            'g': Write('I like ');
  5305.                            'b': Write('I do not like ');
  5306.                           end;
  5307.                           Writeln(w^.def);
  5308.                         end;
  5309.                         else Writeln(w^.def);
  5310.                        end;
  5311.                        else if word <>'quit' then
  5312.                        begin
  5313.                         Writeln(word,'is unknown.');
  5314.                         enter(TRUE);
  5315.                        end;
  5316.                      until Length(sentence) = 0;
  5317.                     until word = 'quit';
  5318.                    end;
  5319.  
  5320.               ì¿ªÑ »α¿ó«ñ¿Γß∩ óß∩ »α«úαá¼¼á:
  5321.  
  5322.               { »α«úαá¼¼á, ¬«Γ«αá∩ »«ºó«½∩ÑΓ óÑßΓ¿ «τÑ¡∞ »α«ßΓ«⌐ ñ¿á½«ú }
  5323.  
  5324.                    program SmartAlec;
  5325.  
  5326.                    type
  5327.                      str80 = string[80];
  5328.                      str30 = string[30];
  5329.                      VocabPointer = ^vocab
  5330.                      vocab = record;
  5331.                        typ:         char; { τáßΓ∞ αÑτ¿ }
  5332.                        connotate: char; { ñ«»«½¡Ñ¡¿Ñ }
  5333.                        word:         str80; { ßἫ ß½«ó« }
  5334.                        def:         str30; { «»αÑñѽѡ¿Ñ }
  5335.                        next: VocabPointer; { π¬áºáΓѽ∞ ¡á ß½ÑñπεΘπε
  5336.                                      ºá»¿ß∞ }
  5337.                        prior: VocabPointer; { π¬áºáΓѽ∞ ¡á »αÑñδñπΘπε
  5338.                                      ºá»¿ß∞ }
  5339.                        DataItem = vocab;
  5340.                        DataArray = array [1..100] of VocabPointer
  5341.                        filtype = file of vocab;
  5342.                    var
  5343.                      test: DataArray;
  5344.                      smart: filtype;
  5345.                      start, last:VocabPointer;
  5346.                      done: boolean;
  5347.  
  5348.  
  5349.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 116 =
  5350.  
  5351.                 { ó«ºóαáΘáÑΓ Σπ¡¬µ¿ε, óδíαá¡¡πε »«½∞º«óáΓѽѼ }
  5352.  
  5353.                    function MenuSelect:char;
  5354.                    var
  5355.                     ch: char;
  5356.  
  5357.                    begin
  5358.                      Writeln('1. Enter words');
  5359.                      Writeln('2. Delete a word');
  5360.                      Writeln('3. Display the list');
  5361.                      Writeln('4. Search for a word');
  5362.                      Writeln('5. Save the list');
  5363.                      Writeln('6. Load the list');
  5364.                      Writeln('7. Converse');
  5365.                      Writeln('8. Quit');
  5366.                      repeat
  5367.                        Writeln;
  5368.                        Write('Enter your choice: ');
  5369.                        Readln(ch);
  5370.                        ch := UpCase(ch);
  5371.                      until (ch>='1') and (ch<='8')
  5372.                      MenuSelect := ch;
  5373.                      end;{ ¬«¡Ñµ óδí«αá »« ¼Ñ¡ε }
  5374.  
  5375.                       { ñ«íáó½Ñ¡¿Ñ φ½Ñ¼Ñ¡Γ«ó ó ß½«óáα∞ }
  5376.                    function DLS_Store(info, start: VocabPointer;
  5377.                                     var last: VocabPointer): VocabPointer;
  5378.                    var
  5379.                      old, top: VocabPointer;
  5380.                      done: boolean;
  5381.                    begin
  5382.                      top := start;
  5383.                      old := nil;
  5384.                      done := FALSE;
  5385.  
  5386.                      if start = nil then begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ ß»¿ß¬á }
  5387.                        info^.next := nil;
  5388.                        last := info;
  5389.                        info^.prior :=nil;
  5390.                        DLS_Store := info;
  5391.                      end else
  5392.                      begin
  5393.                        while (start<>nil) and (not cone) do
  5394.                        begin
  5395.                         if start^.word < info^.word then
  5396.                         begin
  5397.                           old := start;
  5398.                           start := start^.next;
  5399.  
  5400.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 117 =
  5401.  
  5402.                         end else
  5403.                         begin { óßΓáó¬á ó ßÑαÑñ¿¡π }
  5404.                           if old <>nil then
  5405.                             begin
  5406.                             old^.next := info;
  5407.                             info^.next := start;
  5408.                             start^.prior := info;
  5409.                             info^.prior := old;
  5410.                             DLS_Store := top; { ß«σαá¡Ñ¡¿Ñ ¡áτá½á }
  5411.                             done := TRUE;
  5412.                           end else
  5413.                           begin
  5414.                             info^.next := start;{¡«óδ⌐ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ }
  5415.                             info^.prior := nil;
  5416.                             DLS_Store := info;
  5417.                             done := TRUE;
  5418.                           end;
  5419.                         end;
  5420.                        end;  { ¬«¡Ñµ µ¿¬½á }
  5421.                        if not done then begin
  5422.                         last^.next := info;
  5423.                         info^.next := nil;
  5424.                         info^.prior := last;
  5425.                         last := info;
  5426.                         DLS_Store := top; { ß«σαá¡Ñ¡¿Ñ ¡áτá½á }
  5427.                        end;
  5428.                      end;
  5429.                    end;  { ¬«¡Ñµ Σπ¡¬µ¿¿ DLS_Store }
  5430.  
  5431.                            { πñá½Ñ¡¿Ñ ß½«óá }
  5432.                    function DL_Delete(start: VocabPointer
  5433.                                     key: str[80]:) VocabPointer
  5434.                    var
  5435.                      temp, temp2: VocabPointer
  5436.                      done: boolean;
  5437.                    begin
  5438.                      if star^.num = key then begin { »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ
  5439.                    ß»¿ß¬á }
  5440.                       DL_Delete := start^.next;
  5441.                       if temp^.next <> nil then
  5442.                       begin
  5443.                        temp := start^.next;
  5444.                        temp^.prior := nil;
  5445.                       end;
  5446.                       dispose(start);
  5447.                    end else
  5448.                    begin
  5449.                      done := FALSE;
  5450.  
  5451.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 118 =
  5452.  
  5453.                      temp := start^.next;
  5454.                      temp2 := start;
  5455.                      while (temp <> nil) and (not done) do
  5456.                      begin
  5457.                        if temp^.word = key then
  5458.                        begin
  5459.                         temp2^.next := temp^.next;
  5460.                         if temp^.next = <> nil then
  5461.                            temp^.next^.prior := temp2
  5462.                            done := TRUE;
  5463.                         if last := temp then last := last^.prior
  5464.                            dispose(temp);
  5465.                        end else
  5466.                        begin
  5467.                           temp2 := temp;
  5468.                           temp := temp^.next;
  5469.                         end;
  5470.                      end;
  5471.                      DL_Delete := start; { ¡áτὫ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩ }
  5472.                      if not done then Writeln('not found');
  5473.                    end;
  5474.                  end; { ¬«¡Ñµ Σπ¡¬µ¿¿ DL_Delete }
  5475.  
  5476.                   { πñá½Ñ¡¿Ñ ß½«óá, ºáñá¡¡«ú« »«½∞º«óáΓѽѼ }
  5477.                    procedure remove;
  5478.                    var
  5479.                      name:str80;
  5480.                    begin
  5481.                      Writeln('Enter word to delete: ');
  5482.                      Readln(name);
  5483.                      start := DL_Delete(start,name);
  5484.                    end;  { ¬«¡Ñµ »α«µÑñπαδ πñá½Ñ¡¿∩ ß½«óá, ºáñá¡¡«ú«
  5485.                    »«½∞º«óáΓѽѼ}
  5486.  
  5487.                  { óó«ñ ß½«ó ó íáºπ ñá¡¡δσ }
  5488.                    procedure Enter;
  5489.                    var
  5490.                      info: VocabPointer;
  5491.                      done: boolean;
  5492.                    begin
  5493.                      done := FALSE;
  5494.                      repeat
  5495.                      new(info)       { »«½πτ¿Γ∞ ¡«óπε ºá»¿ß∞ }
  5496.                      Write('Enter word: ');
  5497.                      Readln(info^.word);
  5498.                      if Length(info^.word)=0 then done := TRUE
  5499.                      else
  5500.                      begin
  5501.  
  5502.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 119 =
  5503.  
  5504.                        Write(Enter type(n,v,a): ');
  5505.                        Readln(info.typ);
  5506.                        Write(Enter connotation (g,b,n): ');
  5507.                        Readln(info.connotation);
  5508.                        Write(Enter difinition: ');
  5509.                        Readln(info.dif);
  5510.                        start := DLS_Store(info, start, last); { óßΓáó¿Γ∞
  5511.                    ºá»¿ß∞ }
  5512.                      end;
  5513.                    until done or one;
  5514.                  end;  { ¬«¡Ñµ óó«ñá }
  5515.  
  5516.  
  5517.                    { óδó«ñ ß½«ó ¿º íáºδ ñá¡¡δσ }
  5518.                    procrdure Display(start: VocabPointer);
  5519.                    begin
  5520.                      while start <> nil do begin
  5521.                        Writeln('word',start^.word);
  5522.                        Writeln('type',start^.typ);
  5523.                        Writeln('connotation',start^.connotation);
  5524.                        Writeln('difinition',start^.def);
  5525.                        Writeln;
  5526.                        start := start^.next
  5527.                      end;
  5528.                    end;  {¬«¡Ñµ »α«µÑñπαδ óδó«ñá }
  5529.  
  5530.  
  5531.                   { »«¿ß¬ ºáñá¡¡«ú« ß½«óá }
  5532.                    function Search(start: VocabPointer; name: str80):
  5533.                                 VocabPointer;
  5534.                    var
  5535.                      done: boolean;
  5536.                    begin
  5537.                      done := FALSE
  5538.                      while (start <> nil) and (not done) do begin
  5539.                        if word = start^.word then begin
  5540.                         search := start;
  5541.                         done := TRUE;
  5542.                        end else
  5543.                        start := star^.next;
  5544.                      end;
  5545.                      if start = nil then search := nil; { ¡ÑΓ ó ß»¿ß¬Ñ }
  5546.                    end; { ¬«¡Ñµ »«¿ß¬á }
  5547.  
  5548.  
  5549.                    { »«¿ß¬ ß½«óá,ºáñá¡¡«ú« »«½∞º«óáΓѽѼ }
  5550.                    procedure Find;
  5551.                    var
  5552.  
  5553.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 120 =
  5554.  
  5555.                      loc: VocabPointer;
  5556.                      word: str80;
  5557.                    begin
  5558.                      Write('Enter word to find: ');
  5559.                      Readln(word);
  5560.                      loc := Search(start, word);
  5561.                      if loc <> nil then
  5562.                      begin
  5563.                        Writeln('word',loc^.word);
  5564.                        Writeln('type',loc^.typ);
  5565.                        Writeln('connotation',loc^.connotation);
  5566.                        Writeln('difinition',loc^.def);
  5567.                        Writeln;
  5568.                      end;
  5569.                      else Writeln('not in list')
  5570.                       Writeln;
  5571.                    end; { Find }
  5572.  
  5573.                    { ºá»¿ßáΓ∞ ß½«óáα∞ ¡á ñ¿ß¬ }
  5574.                    procedure Save(var f:FilType; start: VocabPointer):
  5575.                    begin
  5576.                      Writeln('saving file');
  5577.                      rewrite(f);
  5578.                      while start <> nil do begin
  5579.                      write(f,start);
  5580.                      start := start^.next;
  5581.                      end;
  5582.                   end;
  5583.  
  5584.  
  5585.                    { ºáúαπº¿Γ∞ ß½«óáα∞ ß ñ¿ß¬á }
  5586.                    procedure Load(var f:FilType; start: VocabPointer):
  5587.                               VocabPointer;
  5588.                    var
  5589.                      temp, temp2: VocabPointer
  5590.                      first: boolean;
  5591.                    begin
  5592.                      Writeln('load file');
  5593.                      reset(f);
  5594.                      while start <> nil do begin
  5595.                        temp := start^.next
  5596.                        dispose(start);
  5597.                        start := temp;
  5598.                      end;
  5599.  
  5600.                      start := nil; last := nil;
  5601.                      if not eof(f) then begin
  5602.                        New(temp);
  5603.  
  5604.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 121 =
  5605.  
  5606.                        Read(f,^temp)
  5607.                        start := DLS_Store(temp,start,last);
  5608.                      end;
  5609.                      Load := start;
  5610.                    end; { Load }
  5611.  
  5612.  
  5613.               { »««τÑαÑñ¡«Ñ óδñѽѡ¿Ñ ß½«ó ¿º »αÑñ½«ªÑ¡¿∩ }
  5614.                  procedure Dissect(var s:str80;var w:str30);
  5615.                  var
  5616.                    t, x:integer;
  5617.                    temp:str80;
  5618.                  begin
  5619.                    t :=1;
  5620.                    while(s[t]=' ') do t := t+1;
  5621.                    x := t;
  5622.                    while(s[t]=' ') and (t<=Length(s)) do t := t+1;
  5623.                    if t<=Length(s) then t := t-1;
  5624.                    w := copy(s, x, t-x+1);
  5625.                    temp := s;
  5626.                    s := copy(temp,t+1,Length(s))
  5627.                  end;
  5628.  
  5629.              { Σ«α¼¿α«óá¡¿Ñ «ΓóÑΓ«ó ¡á «ß¡«óá¡¿¿ óóÑñÑ¡¡«ú« »«½∞º«óáΓѽѼ
  5630.                    »αÑñ½«ªÑ¡¿∩ }
  5631.                  procedure Talk;
  5632.                  var
  5633.                    sentence: str80
  5634.                    word: str30
  5635.                    w: VocabPointer;
  5636.                  begin
  5637.                    Writeln('Conversation mode (quit to exit)');
  5638.                    repeat
  5639.                      Write(': ')
  5640.                      Readln(sentence)
  5641.                      repeat
  5642.                        Dissect(sentence,wort);
  5643.                        w := Search(start, word);
  5644.                        if w <> nil then begin
  5645.                         if w^.type = 'n' then
  5646.                         begin
  5647.                           case w^.connotate of
  5648.                            'g': Write('I like ');
  5649.                            'b': Write('I do not like ');
  5650.                           end;
  5651.                           Writeln(w^.def);
  5652.                         end;
  5653.                         else Writeln(w^.def);
  5654.  
  5655.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 122 =
  5656.  
  5657.                        end;
  5658.                        else if word <>'quit' then
  5659.                        begin
  5660.                         Writeln(word,'is unknown.');
  5661.                         enter(TRUE);
  5662.                        end;
  5663.                      until Length(sentence) = 0;
  5664.                     until word = 'quit';
  5665.                    end;
  5666.  
  5667.                    begin
  5668.                      start := nil;
  5669.                      last := nil;
  5670.                      done := FALSE;
  5671.  
  5672.                      Assign(smart,'smart.dfd')
  5673.                      repeat
  5674.                        case MenuSelect of
  5675.                         '1': Enter(FALSE);
  5676.                         '2': Remove;
  5677.                         '3': Display(start);
  5678.                         '4': Find;
  5679.                         '5': Save(smart,start);
  5680.                         '6': start := Load(smart,start);
  5681.                         '7': Talk;
  5682.                         '8': done := TRUE;
  5683.                        end;
  5684.                      until done=TRUE;
  5685.                    end.
  5686.  
  5687.               ¥Γá »α«úαá¼¼á ß«ßΓáó½∩ÑΓß∩ ¡Ñß½«ª¡«.  éδ ¼«ªÑΓÑ ÑÑ ¡Ñ߬«½∞¬«
  5688.          πß«óÑαΦÑ¡ßΓó«óáΓ∞.  î«ª¡«, ¡á»α¿¼Ñα, óδñѽ¿Γ∞ ¿º »αÑñ½«ªÑ¡¿∩ ú½á-
  5689.          ú«½δ ¿ ºá¼Ñ¡¿Γ∞ ¿σ ¡á á½∞ΓÑα¡áΓ¿ó¡δÑ  ó  ¬«¼¼Ñ¡Γáα¿¿.  éδ  ¼«ªÑΓÑ
  5690.          ΓᬪѠ»αÑñπß¼«ΓαÑΓ∞ ó«º¼«ª¡«ßΓ∞ ºáñáóáΓ∞ ó«»α«ßδ.
  5691.  
  5692.  
  5693.  
  5694.  
  5695.  
  5696.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 123 =
  5697.  
  5698.                                                                                
  5699.              âïÇéÇ 4.  êìÆàÉöàëæ æ ÅÉÄâÉÇîîÇîê ìÇ ÇææàîüïàÉà ê æéƒç£
  5700.                                 æ ÄÅàÉÇûêÄììÄë æêæÆàîÄë
  5701.          -----------------------------------------------------------------
  5702.  
  5703.               ê¼Ñ∩ Γᬫ⌐    ¼«Θ¡δ⌐    ¿¡ßΓαπ¼Ñ¡Γ   »α«úαá¼¼¿α«óá¡¿∩,   ¬á¬
  5704.          Æπαí« Åá߬á½∞,  ¿¡«úñá óá¼ »«ΓαÑíπÑΓß∩ ß«ßΓáó¿Γ∞ »α«úαá¼¼π ¡á áß-
  5705.          ßѼí½ÑαÑ ¿½¿ ßñѽáΓ∞ ó맮ó ß¿ßΓѼ¡«⌐ »α«úαá¼¼δ.  ¥Γ« ¼«ªÑΓ »«ΓαÑ-
  5706.          í«óáΓ∞ß∩ ñ½∩ π߬«αÑ¡¿∩ óáΦÑ⌐ »α«úαá¼¼δ ¿½¿ ñ½∩ «íÑß»ÑτÑ¡¿∩ ñ«ßΓπ-
  5707.          »á  ¬  ¡Ñ¬«Γ«α«¼π ß»Ñµ¿á½∞¡«¼π «í«απñ«óá¡¿ε,  »α¿¼Ñ¡Ñ¡¿Ñ ¬«Γ«α«ú«
  5708.          ¡Ñ»«ßαÑñßΓóÑ¡¡« ó Æπαí« Åá߬á½Ñ ¡Ñ »αÑñπß¼«ΓαÑ¡«.  èᬿ¼¿ íδ »α¿-
  5709.          τ¿¡á¼¿ ¡Ñ «íΩ∩ß¡∩½«ß∞ »α¿¼Ñ¡Ñ¡¿Ñ áßßѼí½Ñαá, «¡« »αÑñπß¼áΓα¿óáÑΓ-
  5710.          ß∩ ó αἬáσ ∩ºδ¬á Æπαí« Åá߬á½∞.
  5711.               Åα¿ó«ñ¿¼δÑ ó  φΓ«⌐  ú½áóÑ  »α¿¼Ñαδ  αáßßτ¿Γá¡δ ¡á »α¿¼Ñ¡Ñ¡¿Ñ
  5712.          óÑαß¿¿ êüî ∩ºδ¬á Æπαí« Åá߬á½∞ ó αἬáσ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ äÄæ.
  5713.          ü«½ÑÑ  Γ«ú«,  φΓ¿ »α¿¼Ñαδ αáßßτ¿Γá¡δ ¡á »α¿¼Ñ¡Ñ¡¿Ñ óÑαß¿¿ 4 ∩ºδ¬á
  5714.          Æπαí« Åá߬á½∞.  æ½ÑñπÑΓ ¿¼ÑΓ∞  ó  ó¿ñπ,  τΓ«  ó  óÑαß¿¿  4  ∩ºδ¬á
  5715.          Æπαí« Åá߬á½∞ ¿¡ΓÑαΣÑ⌐ß ß áßßѼí½Ñα«¼ «Γ½¿τáÑΓß∩ «Γ Γᬫú« ¿¡ΓÑα-
  5716.          ΣÑ⌐ßá ñ½∩ í«½ÑÑ αá¡¡¿σ óÑαß¿⌐.  àß½¿ óδ ¿¼ÑÑΓÑ »αÑñδñπΘπε  óÑαß¿ε
  5717.          ¿½¿ óÑαß¿ε ñ½∩ ñαπú«⌐ ¥éî,  Γ« »«ñα«í¡πε ¿¡Σ«α¼áµ¿ε «í ¿¡ΓÑαΣÑ⌐ßÑ
  5718.          ß áßßѼí½Ñα«¼ ¼«ª¡« ¡á⌐Γ¿ ó απ¬«ó«ñßΓóÑ »«½∞º«óáΓѽ∩.
  5719.                                          êìÆàÉöàëæ æ ÇææàîüïàÉÄî               
  5720.          -----------------------------------------------------------------
  5721.  
  5722.               ê¼ÑÑΓß∩ ¡Ñ߬«½∞¬«  »α¿τ¿¡,  »«  ¬«Γ«αδ¼ ΓαÑíπÑΓß∩ ß«ßΓáó½∩Γ∞
  5723.          »α«úαá¼¼π ¡á áßßѼí½ÑαÑ:
  5724.               - ñ½∩  »«óδΦÑ¡¿∩ ß¬«α«ßΓ¿ αáí«Γδ ¿ φΣΣÑ¬Γ¿ó¡«ßΓ¿ ¿ß»«½∞º«óá-
  5725.          ¡¿∩ »á¼∩Γ¿;
  5726.               - ñ½∩ óδ»«½¡Ñ¡¿∩ ¼áΦ¿¡¡«-ºáó¿ß¿¼δσ Σπ¡¬µ¿⌐,  ¬«Γ«αδÑ «ΓßπΓß-
  5727.          ΓóπεΓ ó Æπαí« Åá߬á½Ñ;
  5728.               - ñ½∩  Γ«ú«,  τΓ«íδ ¼«ª¡« í佫 ó«ß»«½∞º«óáΓ∞ß∩ »á¬ÑΓ«¼ »α«ú-
  5729.          αá¼¼ «íΘÑú« ¡áº¡áτÑ¡¿∩, ¡á»¿ßá¡¡δσ ¡á áßßѼí½ÑαÑ.
  5730.               ò«Γ∩ ¬«¼»¿½∩Γ«α ∩ºδ¬á Æπαí« Åá߬á½∞ ß«ºñáÑΓ φΣΣÑ¬Γ¿ó¡δ⌐ ¬«¼-
  5731.          »á¬Γ¡δ⌐ «íΩÑ¬Γ¡δ⌐ ¬«ñ,  ¡¿¬á¬«⌐ ¬«¼»¿½∩Γ«α  ¡Ñ  ß¼«ªÑΓ  »«ßΓ«∩¡¡«
  5732.          ß«ºñáóáΓ∞ í«½ÑÑ φΣΣÑ¬Γ¿ó¡δ⌐ ¿ ¬«¼»á¬Γ¡δ⌐ ¬«ñ, τѼ ¬«ñ, ¡á»¿ßá¡¡δ⌐
  5733.          ¬«¼»ÑΓÑ¡Γ¡δ¼ »α«úαá¼¼¿ßΓ«¼.  ìÑí«½∞Φ«Ñ αẽ¿τ¿Ñ «íδτ¡« ¡Ñ «º¡áτá-
  5734.          ÑΓ, τΓ« »α¿ ¡á»¿ßá¡¿¿ »α«úαá¼¼δ ¡á áßßѼí½ÑαÑ ¡Ñ »«ΓαÑíπÑΓß∩ ºáΓ-
  5735.          αáΓ¿Γ∞ ºá¼ÑΓ¡« í«½∞ΦÑ óαѼѡ¿.  Äñ¡á¬« ó «ß«íδσ ß½πτá∩σ ΓαÑíπÑΓß∩
  5736.          ß«ßΓáó½∩Γ∞ »α«úαá¼¼δ ¿ »α«µÑñπαδ ¡á áßßѼí½ÑαÑ,  τΓ«íδ «íÑß»Ñτ¿Γ∞
  5737.          íδßΓαπε αáí«Γπ »α«úαá¼¼δ.  ¥Γ« ΓαÑíπÑΓß∩ ñѽáΓ∞ ñ½∩ τáßΓ« ¿ß»«½∞-
  5738.          ºπѼδσ »α«úαá¼¼ ¿ »α«µÑñπα, ßπΘÑßΓóÑ¡¡« ó½¿∩εΘ¿σ ¡á «íΘÑÑ íδßΓα«-
  5739.          ñÑ⌐ßΓó¿Ñ »α«úαá¼¼δ. ò«α«Φ¿¼ »α¿¼Ñα«¼ Γᬫú« »α¿¼Ñ¡Ñ¡¿∩ áßßѼí½Ñαá
  5740.          ∩ó½∩ÑΓß∩  »á¬ÑΓ  »«ñ»α«úαá¼¼,  óδ»«½¡∩εΘ¿σ «»Ñαᵿ¿ ¡áñ τ¿ß½á¼¿ ß
  5741.          »½áóáεΘÑ⌐ ºá»∩Γ«⌐.  èα«¼Ñ Γ«ú«,  ß»Ñµ¿á½∞¡«Ñ «í«απñ«óá¡¿Ñ  ¿¡«úñá
  5742.          ΓαÑíπÑΓ  Γ«τ¡«⌐  ß¿¡σα«¡¿ºáµ¿¿  ó αáí«ΓÑ,  ¬«Γ«αá∩ «íÑß»Ñτ¿óáÑΓß∩
  5743.          Γ«½∞¬« »α«úαá¼¼¿α«ó᡿Ѽ ¡á áßßѼí½ÑαÑ.
  5744.               î¡«ú¿Ñ Å¥éî, ó¬½ετá∩ ¼áΦ¿¡δ, »«ßΓα«Ñ¡¡δÑ ¡á íáºÑ »α«µÑßß«α«ó
  5745.          8086 ¿ 8088,  «í½áñáεΓ ó«º¼«ª¡«ßΓ∩¼¿,  ¬«Γ«α묨 ¡Ñ½∞º∩ ó«ß»«½∞º«-
  5746.  
  5747.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 124 =
  5748.  
  5749.          óáΓ∞ß∩  ¡Ñ»«ßαÑñßΓóÑ¡¡«  ¡á  Æπαí« Åá߬á½Ñ.  ìá»α¿¼Ñα,  ¿ß»«½∞ºπ∩
  5750.          Æπαí« Åá߬á½∞ ¡Ñ½∞º∩ ¿º¼Ñ¡¿Γ∞ ßÑú¼Ñ¡Γδ ñá¡¡δσ ¿  ó«º¡¿¬áεΓ  Γαπñ-
  5751.          ¡«ßΓ¿ »α¿ ñ«ßΓπ»Ñ ¬ ß»Ñµ¿á½∞¡δ¼ αÑú¿ßΓαá¼.
  5752.               ìá »αá¬Γ¿¬Ñ τáßΓ« »α¿«íαÑΓáεΓß∩  í¿í½¿«ΓѬ¿  »«ñ»α«úαá¼¼.  é
  5753.          ¬áτÑßΓóÑ  Γᬿσ  í¿í½¿«ΓѬ »«ñ»α«úαá¼¼ ¼«ª¡« ¡áºóáΓ∞ Φ¿α«¬« αáß»-
  5754.          α«ßΓαá¡Ñ¡¡δÑ í¿í½¿«ΓѬ¿ »«ñ»α«úαá¼¼ ñ½∩ αáí«Γδ ß τ¿ß½á¼¿ ß »½áóá-
  5755.          εΘÑ⌐ ºá»∩Γ«⌐ ¿ »á¬ÑΓδ úαáΣ¿τÑ߬¿σ »α«úαá¼¼. ê¡«úñá ¿¼ÑεΓß∩ Γ«½∞¬«
  5756.          «íΩÑ¬Γ¡δÑ ¬«ñδ φΓ¿σ »«ñ»α«úαá¼¼, »«ß¬«½∞¬π αáºαáí«Γτ¿¬ ¡Ñ »«ßΓáó-
  5757.          ½∩ÑΓ  ¿ßσ«ñ¡δÑ  ΓѬßΓδ.  é  «ñ¡¿σ  ß½πτá∩σ φΓ¿ »«ñ»α«úαá¼¼δ ¼«úπΓ
  5758.          »α«ßΓ« óδºδóáΓ∞ß∩ ó »α«úαἼѠ¡á Åá߬á½Ñ. é ñαπú¿σ ß½πτá∩σ »α¿σ«-
  5759.          ñ¿Γß∩  ß«ßΓáó½∩Γ∞ ¿¡ΓÑαΣÑ⌐ß¡δ⌐ ¼«ñπ½∞ ñ½∩ «íÑß»ÑτÑ¡¿∩ ßó∩º¿ Æπαí«
  5760.          Åá߬á½∩ ß »α¿«íαÑΓÑ¡¡δ¼¿ »«ñ»α«úαἼἿ.
  5761.               ê¼ÑÑΓß∩ ñóá  ß»«ß«íá  »α¿¼Ñ¡Ñ¡¿∩  áßßѼí½Ñαá  ó »α«úαἼѠ¡á
  5762.          Æπαí« Åá߬á½Ñ. é«-»Ñαóδσ, ¼«ª¡« ¡á»¿ßáΓ∞ «Γñѽ∞¡πε »α«úαá¼¼π, áß-
  5763.          ßÑ¼í½¿α«óáΓ∞ ÑÑ ¿ ºáΓѼ »«ñß«Ññ¿¡¿Γ∞ ÑÑ ¬ «ß¡«ó¡«⌐ »α«úαá¼¼Ñ, ¿ß-
  5764.          »«½∞ºπ∩ ¬«¼á¡ñπ "external". é«-óΓ«αδσ, ó »α«úαἼѠ¡á ∩ºδ¬Ñ TURBO
  5765.          -Åá߬á½∞ ¼«ª¡« ¡Ñ»«ßαÑñßΓóÑ¡¡« ºá»¿ßδóáΓ∞ ¬«ñ ¡á áßßѼí½ÑαÑ.
  5766.               ÄíπτÑ¡¿Ñ »α«úαá¼¼¿α«óá¡¿ε ¡á  ∩ºδ¬Ñ  áßßѼí½Ñαá  óδσ«ñ¿Γ  ºá
  5767.          αἬ¿ φΓ«⌐ ¬¡¿ú¿. é φΓ«⌐ ú½áóÑ »«ñαáºπ¼ÑóáÑΓß∩, τΓ« óδ πªÑ º¡á¬«-
  5768.          ¼δ ß ∩ºδ¬«¼ áßßѼí½Ñαá,  ¬«Γ«αδ⌐ ¿¼ÑÑΓß∩ ¡á óáΦÑ⌐ ¥éî. Åα¿ó«ñ¿¼δÑ
  5769.          »α¿¼Ñαδ Γ«½∞¬« ¿½½εßΓα¿απεΓ »α¿¼Ñ¡Ñ¡¿Ñ áßßѼí½Ñαá.
  5770.  
  5771.  
  5772.  
  5773.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 125 =
  5774.  
  5775.                   éìôÆÉàììêà öÄÉîÇÆ¢ äÇìì¢ò ê æÄâïÇÿàìꃠĠæéƒçƒò é ƒç¢èà      
  5776.                                 ÆôÉüÄ ÅÇæèÇï£
  5777.          -----------------------------------------------------------------
  5778.  
  5779.               ÅαѪñÑ τѼ »¿ßáΓ∞ »«ñ»α«úαá¼¼π ¡á áßßѼí½ÑαÑ ñ½∩ ¿ß»«½∞º«óá-
  5780.          ¡¿∩ ÑÑ ó »α«úαἼѠ¡á ∩ºδ¬Ñ Æπαí« Åá߬á½∞ ¡Ñ«íσ«ñ¿¼« »«¡∩Γ∞ , ¬á¬
  5781.          ñá¡¡δÑ  »αÑñßΓáó½∩εΓß∩  ó  »α«úαἼѠ ¿  ¬á¬ «¡¿ »ÑαÑñáεΓß∩ ¼Ñªñπ
  5782.          »«ñ»α«úαἼἿ.  ä½∩ óÑαß¿¿ êüî óßÑ ú½«íá½∞¡δÑ »ÑαѼѡ¡δÑ ¿ ¬«¡ß-
  5783.          Γá¡Γδ  σαá¡∩Γß∩ ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ ¿ ñ«ßΓπ» ¬ ¡¿¼ «ßπΘÑßΓó½∩ÑΓß∩ ß
  5784.          ¿ß»«½∞º«ó᡿Ѽ αÑú¿ßΓαá DS. éßÑ ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ »«¼ÑΘáεΓß∩ ó
  5785.          ßΓѬ ¿ ñ«ßΓπ» ¬ ¡¿¼ «ßπΘÑßΓó½∩ÑΓß∩ ß »α¿¼Ñ¡Ñ¡¿Ñ¼ αÑú¿ßΓαá éÉ, ¬«-
  5786.          Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¿¡ñѬßᵿ¿ ßΓѬá. É¿ß.19 »«¬áºδóáÑΓ ß»«ß«í
  5787.          σαá¡Ñ¡¿∩ ñ½∩ ñá¡¡δσ ¬áªñ«ú« Γ¿»á. æ½ÑñπÑΓ ¿¼ÑΓ∞ ó ó¿ñπ, τΓ« íá⌐Γδ
  5788.          π¬áºáΓѽÑ⌐ ºáñáεΓß∩ ó «íαáΓ¡«¼ »«α∩ñ¬Ñ. æ½Ññ«óáΓѽ∞¡«, π¬áºáΓѽ∞,
  5789.          ¿¼ÑεΘ¿⌐ ß¼ÑΘÑ¡¿Ñ é000 ¿ ßÑú¼Ñ¡Γ 0010, íπñπΓ σαá¡¿Γ∞ß∩ ó ß½ÑñπεΘѼ
  5790.          ó¿ñÑ:
  5791.  
  5792.              ┌──────┐   ┌──────┐   ┌──────┐   ┌──────┐
  5793.              │  10  │   │  00  │   │  00  │   │  B0  │
  5794.              └──────┘   └──────┘   └──────┘   └──────┘
  5795.                  æÑú¼Ñ¡Γ                 æ¼ÑΘÑ¡¿Ñ
  5796.  
  5797.               æ«ú½áΦÑ¡¿∩ «  ßó∩º∩σ  »αÑñßΓáó½∩εΓ ß«í«⌐ ¼ÑΓ«ñ,  ¬«Γ«αδ⌐ ¿ß-
  5798.          »«½∞ºπÑΓß∩ ¬«¼»∞εΓÑα«¼ ∩ºδ¬á Æπαí« Åá߬á½∞ ñ½∩ »ÑαÑñáτ¿  ¿¡Σ«α¼á-
  5799.          µ¿¿ »«ñ»α«úαá¼¼ ¿ »ÑαÑñáτ¿ αѺπ½∞ΓáΓ«ó. é ∩ºδ¬Ñ Æπαí« Åá߬á½∞ ñ½∩
  5800.          »ÑαÑñáτ¿ »áαá¼ÑΓα«ó ó »«ñ»α«úαá¼¼π ¿ß»«½∞ºπÑΓß∩  ßΓѬ  /«¡  ΓᬪÑ
  5801.          ¿ß»«½∞ºπÑΓß∩  ñ½∩  »ÑαÑñáτ¿ αѺπ½∞ΓáΓ«ó Σπ¡¬µ¿¿/.  Åα¿ φΓ«¼ ó αÑ-
  5802.          ú¿ßΓαÑ Çò »ÑαÑñáÑΓß∩ αѺπ½∞ΓáΓ «ñ¡«íá⌐Γ«ó«⌐ ¿½¿ «ñ¡«ß½«ó¡«⌐ Σπ¡¬-
  5803.          µ¿¿.  Æ«τ¡«Ñ ß«ñÑন¼«Ñ ßΓÑ¬á »α¿ ó맮óÑ »«ñ»α«úαá¼¼δ ºá»ó¿ß¿Γ «Γ
  5804.          Γ¿»á »ÑαÑñáóáѼδσ »ÑαѼѡ¡δσ ¿ «Γ Γ¿»á »ÑαÑñáτ¿ »áαá¼ÑΓαá.
  5805.  
  5806.  
  5807.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 126 =
  5808.  
  5809.  
  5810.          ────────────────────────────────────────────────────────────────
  5811.            Æ¿»       ä½¿¡á                     è«¼¼Ñ¡Γáα¿¿
  5812.          ñá¡¡«ú«    ñá¡¡«ú«
  5813.          ────────────────────────────────────────────────────────────────
  5814.          ñó«¿τ¡δ⌐   1 íá⌐Γ
  5815.          «ñ¡«íá⌐-   1 íá⌐Γ
  5816.          Γ«óδ⌐
  5817.          ß¿¼ó«½∞¡δ⌐ 1 íá⌐Γ
  5818.          µÑ½δ⌐      2 íá⌐Γá
  5819.          µÑ½δ⌐ ¬«-  1 íá⌐Γ
  5820.          α«Γ¬¿⌐
  5821.          µÑ½δ⌐      4 íá⌐Γá
  5822.          ñ½¿¡¡δ⌐
  5823.          ß½«ó«      2 íá⌐Γá
  5824.          óÑΘÑßΓ-    6 íá⌐Γ    ÅÑαóδ⌐ íá⌐Γ ß«ñÑαª¿Γ ¼á¡Γ¿ßßπ, ß½ÑñπεΘ¿⌐
  5825.          óÑ¡¡δ⌐               íá⌐Γ ∩ó½∩ÑΓß∩ ¼½áñΦ¿¼ ¿ »«ß½Ññ¡¿⌐ íá⌐Γ
  5826.                               ∩ó½∩ÑΓß∩ ßΓáαΦ¿¼
  5827.          «ñ¿¡«τ¡δ⌐  4 íá⌐Γá   æΓá¡ñáαΓ¡δ⌐ Σ«α¼áΓ τ¿ß½á ß »½áóáεΘÑ⌐
  5828.                               ºá»∩Γ«⌐
  5829.          ñó«⌐¡«⌐    8 íá⌐Γ    æΓá¡ñáαΓ¡δ⌐ Σ«α¼áΓ τ¿ß½á ß »½áóáεΘÑ⌐
  5830.                               ºá»∩Γ«⌐ ¿ ß ñó«⌐¡«⌐ Γ«τ¡«ßΓ∞ε
  5831.          αáßΦ¿αÑ¡-  10 íá⌐Γ   æΓá¡ñáαΓ¡δ⌐ Σ«α¼áΓ τ¿ß½á ß »½áóáεΘÑ⌐
  5832.          ¡δ⌐                  ºá»∩Γ«⌐ ¿ »«óδΦÑ¡¡«⌐ Γ«τ¡«ßΓ∞ε
  5833.          ñ½∩ óδ-    3 íá⌐Γ    ä«»«½¡¿Γѽ∞¡δ⌐ ¬«ñ τ¿ß½á ß »½áóáεΘÑ⌐
  5834.          τ¿ß½Ñ¡¿⌐             ºá»∩Γ«⌐
  5835.          ßΓα«¬á     »ÑαѼѡ-  ÅÑαóδ⌐ íá⌐Γ ß«ñÑαª¿Γ ΓѬπΘπε ñ½¿¡π ßΓ᫬¿;
  5836.                     ¡á∩       ß½ÑñπεΘ¿⌐ íá⌐Γ ∩ó½∩ÑΓß∩ »Ñαóδ¼ ß¿¼ó«½«¼
  5837.                               ßΓ᫬¿
  5838.          ¼¡«ªÑßΓó«  »ÑαѼѡ-  Å«ß¬«½∞¬π ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ ¿ß»«½∞ºπÑΓ «ñ¿¡
  5839.                     ¡á∩       í¿Γ ¿ ¼á¬ß¿¼á½∞¡«Ñ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó αáó¡«
  5840.                               256, Γ« ¼á¬ß¿¼á½∞¡á∩ ñ½¿¡á ¼¡«ªÑßΓóá αáó¡á
  5841.                               32 íá⌐Γá
  5842.          ô¬áºáΓѽ∞  4 íá⌐Γá   äóá ¼½áñΦ¿σ íá⌐Γá ß«ñÑαªáΓ ß¼ÑΘÑ¡¿Ñ, á
  5843.                               ßΓáαΦ¿Ñ íá⌐Γδ ß«ñÑαªáΓ ßÑú¼Ñ¡Γ. üá⌐Γδ
  5844.                               σαá¡∩Γß∩ ó «íαáΓ¡«¼ »«α∩ñ¬Ñ. ìπ½Ñó«Ñ
  5845.                               º¡áτÑ¡¿Ñ ºá¡¿¼áÑΓ 4 íá⌐Γá
  5846.          îáßß¿óδ    »ÑαѼѡ-  ç¡áτÑ¡¿∩ ß ¼Ñ¡∞Φ¿¼ ¿¡ñѬ߫¼ ¿¼ÑεΓ ¼Ñ¡∞Φ¿⌐
  5847.                     ¡á∩       áñαÑß »á¼∩Γ¿
  5848.          çỿ߿     »ÑαѼѡ-  ÅÑαó«Ñ »«½Ñ ¿¼ÑÑΓ ¡á¿¼Ñ¡∞Φ¿⌐ áñαÑß,
  5849.                     ¡á∩       »«ß½Ññ¡ÑÑ »«½Ñ ¿¼ÑÑΓ ßá¼δ⌐ ßΓáαΦ¿⌐ áñαÑß
  5850.          ───────────────────────────────────────────────────────────────
  5851.  
  5852.                       É¿ß.19. ÅαÑñßΓáó½Ñ¡¿Ñ ñá¡¡δσ ó »á¼∩Γ¿
  5853.  
  5854.                                      Åáαá¼ÑΓαδ-º¡áτÑ¡¿∩                        
  5855.          -----------------------------------------------------------------
  5856.  
  5857.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 127 =
  5858.  
  5859.  
  5860.               Åáαá¼ÑΓαδ-º¡áτÑ¡¿∩ »ÑαÑñáεΓß∩  ó «ñ¡«¼ ¡á»αáó½Ñ¡¿¿:  ó »«ñ»-
  5861.          α«úαá¼¼π »ÑαÑñáÑΓß∩ º¡áτÑ¡¿Ñ »áαá¼ÑΓαá,  ¡« ½εíδÑ ¿º¼Ñ¡Ñ¡¿∩ φΓ«ú«
  5862.          »áαá¼ÑΓαá ¡Ñ «¬áºδóáεΓ ó½¿∩¡¿∩ ¡á ñÑ⌐ßΓó¿Γѽ∞¡πε »ÑαѼѡ¡πε,  ¬«-
  5863.          Γ«αá∩ ¿ß»«½∞º«óá½áß∞ »α¿ ó맮óÑ »«ñ»α«úαá¼¼δ.  Å«ñ»α«úαἼѠ»ÑαÑ-
  5864.          ñáÑΓß∩  ¡Ñ  áñαÑß φΓ«⌐ »ÑαѼѡ¡«⌐,  á ¬«»¿∩ ÑÑ º¡áτÑ¡¿∩ ¿ »«φΓ«¼π
  5865.          ßá¼á »ÑαѼѡ¡á∩ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩.  Å« ßπΘÑßΓóπ »α«µÑñπαÑ  ¿  Σπ¡¬µ¿¿
  5866.          »ÑαÑñáÑΓß∩ ½¿Φ∞ ¡Ñ¬«Γ«α«Ñ º¡áτÑ¡¿Ñ.
  5867.               ç¡áτÑ¡¿∩ íπñπΓ »«¼ÑΘáΓ∞ß∩ ó  ßΓѬ  »α¿  »ÑαÑñáτÑ  »áαá¼ÑΓα«ó
  5868.          ß½ÑñπεΘ¿σ Γ¿»«ó:
  5869.               - ñó«¿τ¡«ú« /íπ½Ñó߬«ú«/;
  5870.               - ß¿¼ó«½∞¡«ú«;
  5871.               - µÑ½«ú«;
  5872.               - µÑ½«ú« ñ½¿¡¡«ú«;
  5873.               - µÑ½«ú« ¬«α«Γ¬«ú«;
  5874.               - íá⌐Γá;
  5875.               - ß½«óá;
  5876.               - óÑΘÑßΓóÑ¡¡«ú«;
  5877.               - π¬áºáΓѽ∩;
  5878.               - »ÑαÑτ¿ß½Ñ¡¿∩.
  5879.  
  5880.               ä½∩ ñó«⌐¡δσ ß½«ó ß¡áτá½á ó  ßΓѬ  »«¼ÑΘáÑΓß∩  ßΓáαΦá∩  τáßΓ∞
  5881.          º¡áτÑ¡¿∩ ¿ ºáΓѼ ¼½áñΦá∩ τáßΓ∞.
  5882.               îáßß¿óδ ¿ ºá»¿ß¿,  αẼÑα ¬«Γ«αδσ »αÑóδΦáÑΓ τÑΓδαÑ íá⌐Γá,  ó
  5883.          ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ¡Ñ »ÑαÑñáεΓß∩ Σπ¡¬µ¿¿. ÅÑαÑñáÑΓß∩ áñαÑß /ßÑú¼Ñ¡Γ
  5884.          ¿ ß¼ÑΘÑ¡¿Ñ/ »ÑαѼѡ¡«⌐. æ¡áτá½á ó ßΓѬ »«¼ÑΘáÑΓß∩ ßÑú¼Ñ¡Γ ¿ ºáΓѼ
  5885.          ß¼ÑΘÑ¡¿Ñ.  /îáßß¿óδ,  αẼÑα  ¬«Γ«αδσ ¼Ñ¡∞ΦÑ »∩Γ¿ íá⌐Γ ¡Ñ»«ßαÑñß-
  5886.          ΓóÑ¡¡« »«¼ÑΘáεΓß∩ ó ßΓѬ/.  î¡«ªÑßΓóá ¿ ßΓ᫬¿ Γ«ªÑ »ÑαÑñáεΓß∩  ß
  5887.          ¿ß»«½∞º«ó᡿Ѽ π¬áºáΓѽÑ⌐ ¡á ñÑ⌐ßΓó¿Γѽ∞¡δÑ »ÑαѼѡ¡δÑ. Å«ß¬«½∞¬π
  5888.          ñ½∩ ñá¡¡δσ φΓ¿σ Γ¿»«ó ó Σπ¡¬µ¿¿ »ÑαÑñáεΓß∩ áñαÑßá, ¡Ñ«íσ«ñ¿¼« ñÑ-
  5889.          ½áΓ∞ ¬«»¿¿ ñÑ⌐ßΓó¿Γѽ∞¡δσ ñá¡¡δσ,  τΓ«íδ ¿º¼Ñ¡Ñ¡¿∩ ñá¡¡δσ, »α«¿º-
  5890.          óÑñÑ¡¡δÑ ó¡πΓα¿ Σπ¡¬µ¿¿,  ¡Ñ »«ó½¿∩½¿ ¡á φΓ¿ »ÑαѼѡ¡δÑ ó¡Ñ Σπ¡¬-
  5891.          µ¿¿.
  5892.  
  5893.                                                                                
  5894.              Åáαá¼ÑΓαδ-»ÑαѼѡ¡δÑ
  5895.          -----------------------------------------------------------------
  5896.  
  5897.               é «Γ½¿τ¿¿ «Γ »áαá¼ÑΓα«ó-º¡áτÑ¡¿⌐ »áαá¼ÑΓαδ-»ÑαѼѡ¡δÑ  »ÑαÑ-
  5898.          ñáεΓß∩  »«ßαÑñßΓó«¼  »«¼ÑΘÑ¡¿∩  ó ßΓѬ áñαÑß«ó.  ¥Γ« º¡áτ¿Γ,  τΓ«
  5899.          »«ñ»α«úαá¼¼á αáí«ΓáÑΓ ¡Ñ»«ßαÑñßΓóÑ¡¡« ß φΓ¿¼¿ »ÑαѼѡ¡δ¼¿.  Åáαá-
  5900.          ¼ÑΓαδ»ÑαѼѡ¡δÑ »ÑαÑñáεΓß∩ ó «í«¿σ ¡á»αáó½Ñ¡¿∩σ,  Γ.Ñ. ¿¡Σ«α¼áµ¿∩
  5901.          »ÑαÑñáÑΓß∩ ó »«ñ»α«úαá¼¼π ¿ ¼«ªÑΓ ΓᬪѠ »ÑαÑñáóáΓ∞ß∩  «íαáΓ¡«  ó
  5902.          óδºδóáεΘπε »α«úαá¼¼π, »«ß¬«½∞¬π º¡áτÑ¡¿Ñ »áαá¼ÑΓα«ó ¼«ªÑΓ ¼Ñ¡∩Γ∞-
  5903.          ß∩.  ä½∩ »ÑαÑñáτ¿ ßÑú¼Ñ¡Γá ¿ ß¼ÑΘÑ¡¿∩ »áαá¼ÑΓαá-»ÑαѼѡ¡«⌐ ó ßΓѬ
  5904.          »«¼ÑΘáÑΓß∩ ñóá ß½«óá ó¡Ñ ºáó¿ß¿¼«ßΓ¿ «Γ Γ¿»á »ÑαѼѡ¡«⌐.
  5905.  
  5906.  
  5907.  
  5908.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 128 =
  5909.  
  5910.                                 ÅÑαÑñáτá αѺπ½∞ΓáΓá Σπ¡¬µ¿¿                    
  5911.          -----------------------------------------------------------------
  5912.  
  5913.               è«úñᠡỿßá¡¡á∩ ¡á ∩ºδ¬Ñ  Æπαí« Åá߬á½∞  Σπ¡¬µ¿∩  ºáóÑαΦáÑΓ
  5914.          ßó«ε αáí«Γπ,  «¡á »ÑαÑñáÑΓ º¡áτÑ¡¿Ñ αѺπ½∞ΓáΓá «íαáΓ¡« ó óδºδóáε-
  5915.          Θπε »α«úαá¼¼π.  ä½∩ óßÑσ ß¬á½∩α¡δσ Γ¿»«ó ¬α«¼Ñ óÑΘÑßΓóÑ¡¡«ú« º¡á-
  5916.          τÑ¡¿Ñ »ÑαÑñáÑΓß∩ τÑαѺ αÑú¿ßΓα Çò.  ä½∩ íπ½Ñó߬«⌐ »ÑαѼѡ¡«⌐ ñ«½-
  5917.          ªÑ¡  ΓᬪѠ πßΓá¡áó½¿óáΓ∞ß∩  Σ½áª«¬  ¡π½∩:   Ññ¿¡¿τ¡«Ñ   º¡áτÑ¡¿Ñ
  5918.          «º¡áτáÑΓ íπ½Ñó߬«Ñ º¡áτÑ¡¿Ñ "¿ßΓ¿¡á", á ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ «º¡áτáÑΓ
  5919.          íπ½Ñó߬«Ñ º¡áτÑ¡¿Ñ "½«ª∞".  Åα¿ »ÑαÑñáτ¿ π¬áºáΓѽÑ⌐ ßÑú¼Ñ¡Γ »ÑαÑ-
  5920.          ñáÑΓß∩ ó αÑú¿ßΓα DX,  á ß¼ÑΘÑ¡¿Ñ »ÑαÑñáÑΓß∩ ó αÑú¿ßΓα Çò. éÑΘÑßΓ-
  5921.          óÑ¡¡δÑ »ÑαѼѡ¡δÑ »ÑαÑñáεΓß∩ ó ó¿ñÑ DX:BX:AX, »α¿τѼ ó αÑú¿ßΓα DX
  5922.          »«¼ÑΘáÑΓß∩ ßΓáαΦÑÑ ß½«ó«,  á ó αÑú¿ßΓα Çò »«¼ÑΘáÑΓß∩ ¼½áñΦÑÑ ß½«-
  5923.          ó«.
  5924.               Åα¿ »ÑαÑñáτÑ ó ¬áτÑßΓóÑ αѺπ½∞ΓáΓá ß¿¼ó«½∞¡δσ ßΓ᫬,  ¼áßß¿-
  5925.          ó«ó ¿ ºá»¿ßÑ⌐ áñαÑß º¡áτÑ¡¿∩ »ÑαÑñáÑΓß∩ ó ó¿ñÑ  DX:AX.  ÉѺπ½∞ΓáΓ
  5926.          Σπ¡¬µ¿¿  »«¼ÑΘáÑΓß∩ ßαáºπ ºá áñαÑß«¼ ó«ºóαáΓá.  ìá α¿ß.20 »«¬áºá¡
  5927.          ó¿ñ ßΓÑ¬á »α¿ ó맮óÑ Σπ¡¬µ¿¿.
  5928.  
  5929.                                      ┌──────────────────────┐
  5930.                                      │     Åáαá¼ÑΓαδ        │
  5931.                                      │        . . .         │
  5932.                                      ├──────────────────────┤
  5933.                   éÑαΦ¿¡á ßΓѬá ──── │  ÇñαÑß ó«ºóαáΓá      │
  5934.                                      ├──────────────────────┤
  5935.                                      │                      │
  5936.                                      │                      │
  5937.                                      └──────────────────────┘
  5938.  
  5939.                        É¿ß.20. é¿ñ ßΓÑ¬á »α¿ ó맮óÑ Σπ¡¬µ¿¿
  5940.                                                                                
  5941.              æ«σαá¡Ñ¡¿Ñ αÑú¿ßΓα«ó
  5942.          -----------------------------------------------------------------
  5943.  
  5944.               é« óßÑσ »«ñ»α«úαá¼¼áσ ¡á áßßѼí½ÑαÑ ¡Ñ«íσ«ñ¿¼« »αÑñπß¼«ΓαÑΓ∞
  5945.          ß«σαá¡Ñ¡¿Ñ αÑú¿ßΓα«ó BP,  DS ¿ SS. Äíδτ¡« φΓ« ñѽáÑΓß∩ »α¿ »«¼«Θ¿
  5946.          ¿¡ßΓαπ¬µ¿⌐ "push" ¿ "pop".
  5947.               àß½¿ ß«ßΓáó½∩ÑΓß∩ »α«úαἼᠡá áßßѼí½ÑαÑ, ¬«Γ«αá∩ íπñÑΓ «í-
  5948.          αáΘáΓ∞ß∩ ¬ »«ñ»α«úαἼѠ¡á ∩ºδ¬Ñ Æπαí« Åá߬á½∞,  Γ« ¡πª¡«  ß½Ññ«-
  5949.          óáΓ∞  óßѼ  ß«ú½áΦÑ¡¿∩¼ « ßó∩º∩σ,  ¬«Γ«αδÑ αáßß¼áΓα¿ó὿ß∞ αá¡ÑÑ.
  5950.          Æ«½∞¬« »α¿ ß«í½εñÑ¡¿¿ φΓ¿σ ß«ú½áΦÑ¡¿⌐ ¼«ª¡« «íÑß»Ñτ¿Γ∞ »αáó¿½∞¡δ⌐
  5951.          óδº«ó  »α«úαá¼¼δ ¡á ∩ºδ¬Ñ Æπαí« Åá߬á½∞ ¿º ¼«ñπ½∩,  ¡á»¿ßá¡¡«¼ ¡á
  5952.          áßßѼí½ÑαÑ.
  5953.  
  5954.                           æ«ºñá¡¿Ñ ó¡ÑΦ¡Ñ⌐ »α«úαá¼¼δ ¡á áßßѼí½ÑαÑ             
  5955.          -----------------------------------------------------------------
  5956.  
  5957.  
  5958.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 129 =
  5959.  
  5960.               ÆÑ»Ñα∞, ¬«úñá αáßß¼«ΓαÑ¡δ ß«ú½áΦÑ¡¿∩ « ßó∩º∩σ,  »α¿óÑñѼ ¬«ñ
  5961.          ñÑ⌐ßΓó¿Γѽ∞¡«⌐ »α«úαá¼¼δ ¡á áßßѼí½ÑαÑ. ÅαÑñ»«½«ª¿¼, τΓ« ΓαÑíπÑΓ-
  5962.          ß∩ ß«ßΓáó¿Γ∞ »α«úαá¼¼π ¡á áßßѼí½ÑαÑ ñ½∩ ß½ÑñπεΘÑ⌐ Σπ¡¬µ¿¿:
  5963.                 function Xmul(a, b: integer): integer; begin
  5964.                 a: = a*b;
  5965.                 Xnul: = a;
  5966.               end;
  5967.               Å«ß¬«½∞¬π φΓá Σπ¡¬µ¿∩ íπñÑΓ óδºδóáΓ∞ß∩ ¿º »α«úαá¼¼δ ¡á TURBO
  5968.          -Åá߬á½Ñ,  Γ« ñóá áαúπ¼Ñ¡Γᠵѽ«ú« Γ¿»á íπñÑΓ »«¼ÑΘáΓ∞ß∩ ó  ßΓѬ,
  5969.          ºá¡¿¼á∩ ñóá ß½«óá. Å«φΓ«¼π »α¿ ß½ÑñπεΘѼ ó맮óÑ Σπ¡¬µ¿¿
  5970.               xmu(10,20);
  5971.          »Ñαóδ¼ íπñÑΓ  »«¼ÑΘáΓ∞ß∩  ó ßΓѬ º¡áτÑ¡¿Ñ 20 ¿ ºáΓѼ º¡áτÑ¡¿Ñ 10.
  5972.              æ½ÑñπÑΓ »«¼¡¿Γ∞, τΓ« ñ½∩ ß¬á½∩α¡δσ »ÑαѼѡ¡δσ º¡áτÑ¡¿∩ »« ¼Ñ-
  5973.          ΘáεΓß∩ ó ßΓѬ. ä½∩ ¼áßß¿óá ¿ ºá»¿ß¿ ó ßΓѬ »«¼ÑΘáÑΓß∩ áñαÑß.
  5974.               ÉѺπ½∞ΓáΓ φΓ«⌐ Σπ¡¬µ¿¿ íπñÑΓ »«¼ÑΘÑ¡ ó αÑú¿ßΓα Çò. ì¿ªÑ »α¿-
  5975.          ó«ñ¿Γß∩ ¬«ñ φΓ«⌐ Σπ¡¬µ¿¿ ¡á áßßѼí½ÑαÑ:
  5976.               code    segment 'code'
  5977.                       assume cs:code
  5978.               public  xmul
  5979.               xmul    proc near
  5980.  
  5981.               ;ß«σαá¡¿Γ∞ π¬áºáΓѽ∞ ßΓѬá
  5982.                       push bp
  5983.                       mov bp,sp
  5984.  
  5985.               ;»«½πτ¿Γ∞ »Ñαóδ⌐ »áαá¼ÑΓα
  5986.                       mov ax,[bp]+4
  5987.               ;π¼¡«ª¿Γ∞ ¡á óΓ«α«⌐ »áαá¼ÑΓα
  5988.                       mul word ptr [bp]+6
  5989.               ;ó«ßßΓá¡«ó¿Γ∞ "óα" ¿  «τ¿ßΓ¿Γ∞ ßΓѬ
  5990.               ;αѺπ½∞ΓáΓ πªÑ ¡áσ«ñ¿Γß∩ ó αÑú¿ßΓαÑ Çò
  5991.                       pop bp
  5992.                       ret 4
  5993.               xmul    endp
  5994.               code    ends
  5995.                       end
  5996.  
  5997.               æ½ÑñπÑΓ «Γ¼ÑΓ¿Γ∞,  τΓ«  óßÑ  αÑú¿ßΓαδ ß«σαá¡∩εΓß∩ »α¿ »«¼«Θ¿
  5998.          ¿¡ßΓαπ¬µ¿⌐ "push" ¿ "α«α" ¿ ñ«ßΓπ»  ¬  áαúπ¼Ñ¡Γá¼  «ßπΘÑßΓó½∩ÑΓß∩
  5999.          τÑαѺ  ßΓѬ.  èα«¼Ñ Γ«ú«,  Σπ¡¬µ¿∩ "xmul" «íΩ∩ó½Ñ¡á ¬á¬ "public".
  6000.          ¥Γ« ¡Ñ«íσ«ñ¿¼« ñ½∩ «íÑß»ÑτÑ¡¿∩ Æπαí« Åá߬á½Ñ¼ ÑÑ »αáó¿½∞¡«⌐ ßó∩º¿
  6001.          ß «ßΓá½∞¡«⌐ »α«úαá¼¼«⌐. àß½¿ óδ ¡Ñº¡á¬«¼δ ß áßßѼí½Ñα«¼ »α«µÑßß«-
  6002.          α«ó 8086 ¿ 8088,  Γ« óá¼ ¼«úπΓ »«¼«τ∞ ß½ÑñπεΘ¿Ñ »«∩ߡѡ¿∩.  Éáßß-
  6003.          ¼«Γα¿¼ ß½ÑñπεΘ¿⌐ ¬«ñ:
  6004.               mov  bp,sp
  6005.               mov  ax,[bp]+4.
  6006.               ¥Γ¿ ¿¡ßΓαπ¬µ¿¿ »«¼ÑΘáεΓ áñαÑß óÑαΦ¿¡δ ßΓѬá ó αÑú¿ßΓα  éÉ  ¿
  6007.          ºáΓѼ  ßñó¿úáεΓ  τÑΓóÑαΓδ⌐ íá⌐Γ ñá½∞ΦÑ ó ßΓѬ /Γ.Ñ.  »áαá¼ÑΓα "á"
  6008.  
  6009.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 130 =
  6010.  
  6011.          »«¼ÑΘáÑΓß∩ ó αÑú¿ßΓα Çò/.  Åáαá¼ÑΓαδ ºá¡¿¼áεΓ τÑΓóÑαΓδ⌐ ¿  ΦÑßΓ«⌐
  6012.          íá⌐Γδ,  »«ß¬«½∞¬π  áñαÑß ó«ºóαáΓá ¿ ¿¡ßΓαπ¬µ¿∩ "push bp" ºá¡¿¼áεΓ
  6013.          τÑΓδαÑ íá⌐Γá. æ½Ññ«óáΓѽ∞¡«, »áαá¼ÑΓαδ ¡áτ¿¡áεΓß∩ ¡á τÑΓδαÑ íá⌐Γá
  6014.          ¡¿ªÑ óÑαΦ¿¡δ ßΓѬá.
  6015.               é¡ÑΦ¡∩∩ Σπ¡¬µ¿∩ "xmul" ∩ó½∩ÑΓß∩ "í½¿º¬«⌐"  »α«µÑñπα«⌐.  àß½¿
  6016.          »α«µÑñπαá «íΩ∩ó½∩ÑΓß∩ ó »α«úαἼѠ¿½¿ ó αáºñѽѠαÑ὿ºáµ¿¿ í½«¬á,
  6017.          «¡á ñ«½ª¡á «íΩ∩ó½∩Γ∞ß∩ ß »áαá¼ÑΓα«¼ "near".  àß½¿ ó¡ÑΦ¡∩∩ Σπ¡¬µ¿∩
  6018.          «íΩ∩ó½∩ÑΓß∩ ó ßѬµ¿¿ ¿¡ΓÑαΣÑ⌐ßá í½«¬á, Γ« «¡á ñ«½ª¡á íπñÑΓ «íΩ∩ó-
  6019.          ½∩Γ∞ß∩ ß »áαá¼ÑΓα«¼ "far".
  6020.               ÅÑαÑñ ¿ß»«½∞º«ó᡿Ѽ  φΓ«⌐  ó¡ÑΦ¡Ñ⌐  Σπ¡¬µ¿¿ «¡á ñ«½ª¡á íδΓ∞
  6021.          áßßÑ¼í½¿α«óá¡á ß »α¿¼Ñ¡Ñ¡¿Ñ¼ ¼á¬α«áßßѼí½Ñαá Σ¿α¼δ "îá⌐¬α«πß«ΣΓ".
  6022.          æ½ÑñπÑΓ »«¼¡¿Γ∞, τΓ« óßÑ »α«µÑñπαδ, Σπ¡¬µ¿¿ ¿ »ÑαѼѡ¡δÑ, ¬ ¬«Γ«-
  6023.          αδ¼ ¡Ñ«íσ«ñ¿¼« «íÑß»Ñτ¿Γ∞ ñ«ßΓπ» ó óáΦÑ⌐ »α«úαá¼¼Ñ, ñ«½ª¡δ «íΩ∩ó-
  6024.          ½∩Γ∞ß∩ ß »áαá¼ÑΓα«¼ "public".
  6025.               é óáΦÑ⌐ »α«úαἼѠ¡á Æπαí« Åá߬á½Ñ ¼«ª¡«  ¿ß»«½∞º«óáΓ∞  π¬á-
  6026.          ºá¡¡πε ó¡ÑΦ¡εε Σπ¡¬µ¿ε ß½ÑñπεΘ¿¼ «íαẫ¼:
  6027.               {»α«úαá¼¼á,  ¬«Γ«αá∩ «íÑß»Ñτ¿óáÑΓ ßó∩º∞ ß ó¡ÑΦ¡Ñ⌐ »«ñ»α«ú-
  6028.                αá¼¼«⌐, ¡á»¿ßá¡¡«⌐ ¡á áßßѼí½ÑαÑ
  6029.               }
  6030.               program asmtest;
  6031.  
  6032.               {SL XMUL}
  6033.  
  6034.               var
  6035.                 a, b, c: integer;
  6036.  
  6037.               function xmul(x, y: integer): integer; external;
  6038.  
  6039.               begin
  6040.                 a: = 40;
  6041.                 b: = 20;
  6042.                 c: = xmul(a,b); {π¼¡«ªÑ¡¿Ñ "á" ¡á "ó" ¿ »«½πτÑ¡¿Ñ
  6043.                            αѺπ½∞ΓáΓá}
  6044.                 WriteLn(c);
  6045.               end.
  6046.  
  6047.               ä¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá $L ¿ß»«½∞ºπÑΓß∩ ñ½∩ π¬áºá¡¿∩ ¡á  ¡Ñ«í-
  6048.          σ«ñ¿¼«ßΓ∞   »«ñß«Ññ¿¡Ñ¡¿∩  ¬  »α«úαἼѠ «íΩÑ¬Γ¡«ú«  ¬«ñá  ¼«ñπ½∩
  6049.          "xmul".
  6050.               æ½ÑñπÑΓ »«¼¡¿Γ∞,  τΓ« óßÑ »α¿¼Ñαδ ñáεΓß∩ ñ½∩ áßßѼí½Ñαá »α«-
  6051.          µÑßß«α«ó 8086 ¿  8088.  àß½¿  ¿ß»«½∞ºπÑΓß∩  Æπαí« Åá߬á½∞  óÑαß¿¿
  6052.          æÉ/î,  Γ« »α¿¼Ñαδ ñ«½ª¡δ íδΓ∞ ¿º¼Ñ¡Ñ¡δ ó ß««ΓóÑΓßΓó¿¿ ß απ¬«ó«ñß-
  6053.          Γó«¼ »«½∞º«óáΓѽ∩ »« Æπαí« Åá߬á½ε.  èα«¼Ñ Γ«ú«, ßó∩º∞ ß »«ñ»α«ú-
  6054.          αἼἿ  ¡á  ∩ºδ¬Ñ  áßßѼí½Ñαá  íπñÑΓ «Γ½¿τáΓ∞ß∩ ñ½∩ TURBOÅá߬á½∩
  6055.          óÑαß¿⌐ í«½ÑÑ αá¡¡¿σ, τѼ óÑαß¿∩ 4.0.
  6056.  
  6057.                                  éßΓα«Ñ¡¡δ⌐ ¬«ñ áßßѼí½Ñαá                     
  6058.  
  6059.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 131 =
  6060.  
  6061.          -----------------------------------------------------------------
  6062.  
  6063.               é «Γ½¿τ¿Ñ «Γ ßΓá¡ñáαΓ¡«ú« Åá߬á½∩ ó Æπαí« Åá߬á½Ñ »αÑñπß¼áΓ-
  6064.          α¿óáÑΓß∩ ó«º¼«ª¡«ßΓ∞ ¡Ñ»«ßαÑñßΓóÑ¡¡«ú« ó¬½ετÑ¡¿∩ ¬«ñá ¡á  áßßѼí-
  6065.          ½ÑαÑ. Æá¬¿¼ «íαẫ¼, ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ß«ßΓáó½∩Γ∞ «Γñѽ∞¡πε ó¡ÑΦ-
  6066.          ¡εε »«ñ»α«úαá¼¼π. Æá¬«⌐ »«ñσ«ñ ¿¼ÑÑΓ ñóá »αÑ¿¼πΘÑßΓóá: ó«-»Ñαóδσ,
  6067.          »α«úαá¼¼¿ßΓ  ¡Ñ ñ«½ªÑ¡ »¿ßáΓ∞ ¬«ñ,  αÑ὿ºπεΘ¿⌐ ßó∩º∞ ¼Ñªñπ »α«ú-
  6068.          αἼἿ; ó«-óΓ«αδσ, óÑß∞ ¬«ñ αáß»«½«ªÑ¡ ó «ñ¡«¼ ¼ÑßΓÑ, τΓ« ñѽáÑΓ
  6069.          »α«ßΓ«⌐ ß«»α«ó«ªñÑ¡¿Ñ »α«úαá¼¼δ. àñ¿¡ßΓóÑ¡¡δ⌐ ¡Ññ«ßΓáΓ«¬ ºá¬½ετá-
  6070.          ÑΓß∩ ó Γ«¼, τΓ« óßΓα«Ñ¡¡δ⌐ ¬«ñ áßßѼí½Ñαá ¿¼ÑÑΓ ¡Ñπñ«í¡δ⌐ Σ«α¼áΓ.
  6071.               Ä»ÑαáΓ«α "inline" »«ºó«½∩ÑΓ ó¡πΓα¿ »α«úαá¼¼δ ¡á Æπαí« Åá߬á-
  6072.          ½Ñ ¿ß»«½∞º«óáΓ∞ ¬«ñ ¡á áßßѼí½ÑαÑ.  ÄíΘá∩ Σ«α¼á  φΓ«ú«  «»ÑαáΓ«αá
  6073.          íπñÑΓ ß½ÑñπεΘÑ⌐:
  6074.               inline (º¡áτÑ¡¿Ñ/.../º¡áτÑ¡¿Ñ);  úñÑ "º¡áτÑ¡¿Ñ" »αÑñßΓáó½∩ÑΓ
  6075.          ß«í«⌐  ½εíπε  »αáó¿½∞¡πε  ¿¡ßΓαπ¬µ¿ε  áßßѼí½Ñαá ¿½¿ ñá¡¡δÑ.  ä½∩
  6076.          ßß佬¿ ¡á ßτÑΓτ¿¬ áñαÑßá ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ºóѺñ«τ¬á.  (é  áß-
  6077.          ßѼí½ÑαÑ  »α«µÑßß«αá  8088  ñ½∩  φΓ«⌐  µÑ½¿ ¿ß»«½∞ºπÑΓß∩ óá½εΓ¡δ⌐
  6078.          º¡á¬.  Å«ß¬«½∞¬π ó Æπαí« Åá߬á½Ñ óá½εΓ¡δ⌐ º¡á¬  ¿ß»«½∞ºπÑΓß∩  ñ½∩
  6079.          ΦÑßΓ¡áñµáΓ¿α¿τ¡δσ  τ¿ßѽ,  Γ« ñ½∩ «í«º¡áτÑ¡¿∩ ßτÑΓτ¿¬á áñαÑßá ¿ß-
  6080.          »«½∞ºπÑΓß∩ ºóѺñ«τ¬á).
  6081.               ä½∩ ¼á½δσ º¡áτÑ¡¿⌐,  ¬«Γ«αδÑ ¼«úπΓ αẼÑßΓ¿Γ∞ß∩ ó «ñ¡«¼ íá⌐-
  6082.          ΓÑ,  ¿ß»«½∞ºπÑΓß∩ Γ«½∞¬« «ñ¿¡ íá⌐Γ. é »α«Γ¿ó¡«¼ ß½πτáÑ ñ½∩ σαá¡Ñ-
  6083.          ¡¿∩  »ÑαѼѡ¡«⌐ ¿ß»«½∞ºπεΓß∩ ñóá íá⌐Γá.  àß½¿ óδ σ«Γ¿ΓÑ »«ßΓπ»¿Γ∞
  6084.          ¿¡áτÑ, Γ« ß½ÑñπÑΓ ó«ß»«½∞º«óáΓ∞ß∩ ñ¿αÑ¬Γ¿óἿ ">" ¿ "<". àß½¿ »Ñ-
  6085.          αÑñ  º¡áτÑ¡¿Ñ¼  ßΓ«¿Γ  º¡á¬  ¼Ñ¡∞ΦÑ,  Γ« íπñÑΓ ¿ß»«½∞º«óá¡ Γ«½∞¬«
  6086.          ¼½áñΦ¿⌐ íá⌐Γ.  àß½¿ »ÑαÑñ º¡áτÑ¡¿Ñ¼ ßΓ«¿Γ º¡á¬ í«½∞ΦÑ,  Γ«  íπñÑΓ
  6087.          ßΣ«α¼¿α«óá¡«  ñóπíá⌐Γ«ó«Ñ ß½«ó« ß ¡π½Ñóδ¼ ßΓáαΦ¿¼ íá⌐Γ«¼.  ìá»α¿-
  6088.          ¼Ñα, <$1234 »α¿óÑñÑΓ ¬ Σ«α¼¿α«óá¡¿ε Γ«½∞¬« «ñ¡«ú« íá⌐Γá ß« º¡áτÑ-
  6089.          ¡¿Ñ¼ $34, a >$12 »α¿óÑñÑΓ ¬ Σ«α¼¿α«óá¡¿ε ñóπσ íá⌐Γ ß« º¡áτÑ¡¿Ñ¼ $
  6090.          0012.
  6091.               æ½ÑñπεΘá∩ ¬«α«Γ¬á∩  »α«úαἼᠠ»ÑαѼ¡«ªáÑΓ  ñóᠵѽδσ τ¿ß½á,
  6092.          ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε "Mul", ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ ¬«ñ ¡á áßßѼí½ÑαÑ ñ½∩
  6093.          óδ»«½¡Ñ¡¿∩  ñÑ⌐ßΓó¿Γѽ∞¡«ú«  π¼¡«ªÑ¡¿∩.  æαáó¡¿ΓÑ φΓπ »α«úαá¼¼π ß
  6094.          ó¡ÑΦ¡Ñ⌐ »«ñ»α«úαá¼¼«⌐ "xmul",  ¬«Γ«αá∩ αáßß¼áΓα¿óá½áß∞ ó »αÑñδñπ-
  6095.          ΘѼ αáºñѽÑ.
  6096.  
  6097.               { »α¿¼Ñα óßΓα«Ñ¡¡«ú« ¬«ñá áßßѼí½Ñαá }
  6098.               program asm_inline;
  6099.  
  6100.               var
  6101.                 a, b, c: integer;
  6102.  
  6103.               function Mul(x, y: integer): integer;
  6104.               begin
  6105.                 inline($80/$46/$04/   {mov ax,[bp]+4}
  6106.                        $F6/366/$06/   {mul [bp]+6   }
  6107.                        $89/$EC/       {mov sp,bp}
  6108.                        $56/           {pop bp}
  6109.  
  6110.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 132 =
  6111.  
  6112.                        $02/$06/$00/   {ret 6}
  6113.  
  6114.                 end;
  6115.  
  6116.               begin
  6117.                 a: = 10;
  6118.                 b: = 20;
  6119.                 c: = Mul(a,b);
  6120.                 WriteLn(c);
  6121.               end.
  6122.  
  6123.               é ñá¡¡«¼ ß½πτáÑ ¬«¼»¿½∩Γ«α Æπαí« Åá߬á½∩ áóΓ«¼áΓ¿τÑ߬¿ úÑ¡Ñ-
  6124.          α¿απÑΓ  ¬«ñ  ñ½∩ ó«ºóαáΓá ¿º Σπ¡¬µ¿¿.  è«úñá ¬«¼»¿½∩Γ«α óßΓαÑτáÑΓ
  6125.          «»ÑαáΓ«α "inline",  ó φΓ«¼ ¼ÑßΓÑ «¡ úÑ¡Ñα¿απÑΓ π¬áºá¡¡δÑ «»ÑαáΓ«-
  6126.          α«¼ ¼áΦ¿¡¡δÑ ¿¡ßΓαπ¬µ¿¿.
  6127.               ùáßΓ« óßΓα«Ñ¡¡δ⌐ ¬«ñ áßßѼí½Ñαá ¿ß»«½∞ºπÑΓß∩ ñ½∩ «íÑß»ÑτÑ¡¿∩
  6128.          ßó∩º¿ ß «í«απñ«ó᡿Ѽ,  ¬«Γ«α«Ñ ¡Ñ »«ññÑনóáÑΓß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡«
  6129.          ó ∩ºδ¬Ñ Æπαí« Åá߬á½∞. ìá»α¿¼Ñα, »α¿ó«ñ¿¼á∩ ¡¿ªÑ »«ñ»α«úαἼᠼ«-
  6130.          ªÑΓ  ¿ß»«½∞º«óáΓ∞ß∩  ñ½∩  ó¬½ετÑ¡¿∩ óÑ¡Γ¿½∩Γ«αá,  ¬«úñá »«¬áºá¡¿Ñ
  6131.          ñáΓτ¿¬á ΓѼ»ÑαáΓπαδ ñ«ßΓ¿ú¡ÑΓ  «»αÑñѽѡ¡«⌐  óѽ¿τ¿¡δ.  é  ñá¡¡«¼
  6132.          ß½πτáÑ  »αÑñ»«½áúáÑΓß∩,  τΓ« πßΓá¡«ó¬á ó Ññ¿¡¿τ¡«Ñ º¡áτÑ¡¿Ñ »«αΓá
  6133.          200 »α¿ó«ñ¿Γ ¬ ó¬½ετÑ¡¿ε óÑ¡Γ¿½∩Γ«αá:
  6134.  
  6135.               procedure fan(temp:integer);
  6136.              {óÑ¡Γ¿½∩Γ«α  ó¬½ετáÑΓß∩,  ¬«úñá  ΓѼ»ÑαáΓπαá ñ«ßΓ¿ú¡ÑΓ 100
  6137.                        úαáñπß«ó }
  6138.               begin
  6139.                 if temp>=100 then
  6140.                   inline(100/00/01/  {mov AX,1}
  6141.                          $E7/$C8);   {out 200,AX}
  6142.               end;
  6143.  
  6144.               æ½ÑñπÑΓ »«¼¡¿Γ∞,  τΓ« ¬«¼»¿½∩Γ«α Æπαí« Åá߬á½∩  «íÑß»Ñτ¿óáÑΓ
  6145.          ¡Ñ«íσ«ñ¿¼δ⌐ ¬«ñ ñ½∩ óσ«ñá ¿ óδσ«ñá ¿º Σπ¡¬µ¿¿. Å«½∞º«óáΓÑ½ε ¡Ñ«í-
  6146.          σ«ñ¿¼« ½¿Φ∞ «íÑß»Ñτ¿Γ∞ Γѽ« Σπ¡¬µ¿¿ ¿ »α¿ñÑনóáΓ∞ß∩ ß«ú½áΦÑ¡¿⌐ «
  6147.          ßó∩º∩σ »α¿ ñ«ßΓπ»Ñ ¬ áαúπ¼Ñ¡Γá¼.
  6148.               Åα¿ ¿ß»«½∞º«óá¡¿¿ π¬áºá¡¡«ú« ¼ÑΓ«ñá ß«ºñáÑΓß∩  ¼áΦ¿¡¡«-ºáó¿-
  6149.          ß¿¼δ⌐ ¬«ñ, τΓ« ºáΓαπñ¡∩ÑΓ »ÑαÑ¡«ß »α«úαá¼¼δ ¡á ¡«óπε ¼áΦ¿¡π ¿½¿ ó
  6150.          ßαÑñπ ¡«ó«⌐ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ.  Äñ¡á¬« ó  ΓÑσ  ß½πτá∩σ,  ¬«úñá
  6151.          ¡Ñ½∞º∩ «í«⌐Γ¿ß∞ íѺ ¬«ñá áßßѼí½Ñαá, »α¿¼Ñ¡Ñ¡¿Ñ π¬áºá¡¡«ú« ¼ÑΓ«ñá
  6152.          «»αáóñá¡«.
  6153.  
  6154.                              è«úñá ß½ÑñπÑΓ »α¿¼Ñ¡∩Γ∞ áßßѼí½Ñα                 
  6155.          -----------------------------------------------------------------
  6156.  
  6157.               ü«½∞Φ¿¡ßΓó« »α«úαá¼¼¿ßΓ«ó  ¿ß»«½∞ºπεΓ  áßßѼí½Ñα  Γ«½∞¬« »α¿
  6158.          ¬αá⌐¡Ñ⌐ ¡Ñ«íσ«ñ¿¼«ßΓ¿,  »«ß¬«½∞¬π »α«úαá¼¼¿α«óáΓ∞  ¡á  áßßѼí½ÑαÑ
  6159.  
  6160.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 133 =
  6161.  
  6162.          ñ«ßΓáΓ«τ¡« ß½«ª¡«. ÄíΘÑÑ »αá󿽫 ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ« ó««íΘÑ ¡Ñ
  6163.          ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ áßßѼí½Ñα - «¡ ß«ºñáÑΓ ß½¿Φ¬«¼  ¼¡«ú«  »α«í-
  6164.          ½Ñ¼. Äñ¡á¬« ¼«ª¡« π¬áºáΓ∞ ñóá ß½πτá∩ »αá¬Γ¿τÑ߬«ú« »α¿¼Ñ¡Ñ¡¿∩ áß-
  6165.          ßѼí½Ñαá. ÅÑαóδ⌐ ó«º¡¿¬áÑΓ ¬«úñá ¡ÑΓ ñαπú«ú« »πΓ¿ αÑΦÑ¡¿∩ ºáñáτ¿.
  6166.          ìá»α¿¼Ñα,  ¬«úñá  ΓαÑíπÑΓß∩  «íÑß»Ñτ¿Γ∞  ¡Ñ»«ßαÑñßΓóÑ¡¡πε ßó∩º∞ ß
  6167.          «í«απñ«ó᡿Ѽ,  π»αáó½Ñ¡¿Ñ ¬«Γ«αδ¼ ¡Ñ »αÑñπß¼«ΓαÑ¡« ó ∩ºδ¬Ñ Æπαí«
  6168.          Åá߬á½∞.
  6169.               é«-óΓ«αδσ, Γá¬á∩ ß¿Γπᵿ∩ ó«º¡¿¬áÑΓ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ π¼Ñ¡∞-
  6170.          ΦÑ¡¿∩  óαѼѡ¿  óδ»«½¡Ñ¡¿∩ »α«úαá¼¼ ¿ óßѠ󫺼«ª¡«ßΓ¿ «»Γ¿¼¿ºáµ¿¿
  6171.          ¬«ñá Æπαí« Åá߬á½∩ ¿ßτÑα»á¡δ.  é ñá¡¡«¼ ß½πτáÑ ¡Ñ«íσ«ñ¿¼«  ñѽáΓ∞
  6172.          ΓΘáΓѽ∞¡δ⌐  óδí«α Σπ¡¬µ¿⌐ ñ½∩ ¿σ ¬«ñ¿α«óá¡¿∩ ¡á áßßѼí½ÑαÑ.  àß½¿
  6173.          óδí«α íπñÑΓ ßñѽᡠ¡Ñ»αáó¿½∞¡«,  Γ« φΣΣÑ¬Γ íπñÑΓ  ¡Ñº¡áτ¿Γѽ∞¡δ⌐.
  6174.          Åα¿ »αáó¿½∞¡«¼ óδí«αÑ φΣΣÑ¬Γ ¼«ªÑΓ íδΓ∞ «τÑ¡∞ í«½∞Φ¿¼.  ä½∩ Γ«ú«,
  6175.          τΓ«íδ «»αÑñѽ¿Γ∞ ¬á¬¿Ñ »«ñ»α«úαá¼¼δ ΓαÑíπεΓ »ÑαѬ«ñ¿α«ó¬¿,  ¡Ñ«í-
  6176.          σ«ñ¿¼« «»αÑñѽ¿Γ∞ «»Ñαᵿ«¡¡πε í½«¬-ßσѼπ óáΦÑ⌐ »α«úαá¼¼δ. Äíδτ¡«
  6177.          ñ½∩ αÑ὿ºáµ¿¿ ¡á áßßѼí½ÑαÑ óδí¿αáεΓß∩ »«ñ»α«úαá¼¼δ, ¬«Γ«αδÑ ¿ß-
  6178.          »«½∞ºπεΓß∩  ó¡πΓα¿  µ¿¬½«ó,  »«ß¬«½∞¬π «¡¿ óδ»«½¡∩εΓß∩ ¼¡«ú« αáº.
  6179.          è«ñ¿α«óá¡¿Ñ ¡á áßßѼí½ÑαÑ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, ¬«Γ«αδÑ óδ»«½¡∩-
  6180.          εΓß∩ «ñ¿¡ ¿½¿ ñóá αáºá,  ¼«ªÑΓ ¡Ñ ñáΓ∞ ºá¼ÑΓ¡«ú« φΣΣѬΓá, á ¬«ñ¿-
  6181.          α«óá¡¿Ñ ¡á áßßѼí½ÑαÑ Σπ¡¬µ¿¿, ¬«Γ«αá∩ óδ»«½¡∩ÑΓß∩ ¼¡«ú« αáº, ¼«-
  6182.          ªÑΓ ñáΓ∞ Γᬫ⌐ φΣΣѬΓ.  ìá»α¿¼Ñα, αáßß¼«Γα¿¼ ß½ÑñπεΘπε »α«µÑñπαπ:
  6183.               procedure ABC;
  6184.               var
  6185.                 t: integer;
  6186.  
  6187.               begin
  6188.                 init;
  6189.                 for t:=0 to 1000 do begin
  6190.                   phase1;
  6191.                   phase2;
  6192.                   if t=10 then phase3;
  6193.                 end;
  6194.                 byebye;
  6195.               end;
  6196.               ÅÑαѬ«ñ¿α«ó¬á »α«µÑñπα "init" ¿ "byebye" ¼«ªÑΓ  ¡Ñ  »«ó½¿∩Γ∞
  6197.          ºá¼ÑΓ¡« ¡á ß¬«α«ßΓ∞ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ,  »«ß¬«½∞¬π «¡¿ óδ»«½¡∩-
  6198.          εΓß∩ Γ«½∞¬« «ñ¿¡ αáº.  Åα«µÑñπαδ "phase1" ¿ "phase2"  óδ»«½¡∩εΓß∩
  6199.          1000 αẠ¿ ¿σ »ÑαѬ«ñ¿α«ó¬á ¡Ñß«¼¡Ñ¡¡« ñáßΓ ºá¼ÑΓ¡δ⌐ φΣΣѬΓ. ìÑß-
  6200.          ¼«Γα∩ ¡á Γ«, τΓ« »α«µÑñπαá "phase3" αáß»«½«ªÑ¡á ó¡πΓα¿ µ¿¬½á, «¡á
  6201.          óδ»«½¡∩ÑΓß∩  ½¿Φ∞ «ñ¿¡ αẠ¿ »«φΓ«¼π ÑÑ »ÑαѬ«ñ¿α«ó¬á ¡Ñ ñáßΓ φΣ-
  6202.          ΣѬΓá.
  6203.               Åα¿ ΓΘáΓѽ∞¡«¼ óδí«αÑ »α«µÑñπα ñ½∩ ¿σ ¬«ñ¿α«ó¬¿ ¡á áßßѼí½Ñ-
  6204.          αÑ ¼«ª¡« ñ«í¿Γ∞ß∩ π½πτΦÑ¡¿∩ íδßΓα«ñÑ⌐ßΓó¿∩ »α«úαá¼¼δ ºá ßτÑΓ  »Ñ-
  6205.          αѬ«ñ¿α«ó¬¿ ½¿Φ∞ ¡Ñí«½∞Φ«ú« τ¿ß½á »«ñ»α«úαá¼¼.
  6206.  
  6207.  
  6208.  
  6209.  
  6210.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 134 =
  6211.  
  6212.                                       æéƒç£ æ ÄÅàÉÇûêÄììÄë æêæÆàîÄë            
  6213.          -----------------------------------------------------------------
  6214.  
  6215.               Å«ß¬«½∞¬π τáßΓ«  ß¿ßΓѼ¡δÑ  »α«úαá¼¼δ   »¿ΦπΓß∩   ¡á   ∩ºδ¬Ñ
  6216.          Æπαí« Åá߬á½∞,  ¡Ñ«íσ«ñ¿¼«  «íÑß»Ñτ¿Γ∞  ¡Ñ»«ßαÑñßΓóÑ¡¡πε  ßó∩º∞ ß
  6217.          «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼ«⌐ ñ½∩ óδ»«½¡Ñ¡¿∩ «»αÑñѽѡ¡δσ «»Ñαᵿ⌐ ó  «í-
  6218.          σ«ñ ßΓá¡ñáαΓ¡«ú« ¿¡ΓÑαΣÑ⌐ßá Æπαí« Åá߬á½∩. î«ªÑΓ ó«º¡¿¬¡πΓ∞ ΓᬪÑ
  6219.          »«ΓαÑí¡«ßΓ∞ ó ß»Ñµ¿á½∞¡δσ ß¿ßΓѼ¡δσ Σπ¡¬µ¿∩σ, ¬«Γ«αδÑ «ΓßπΓßΓóπεΓ
  6220.          ó  Æπαí« Åá߬á½Ñ.  Å« φΓ«⌐ »α¿τ¿¡Ñ »α¿¼Ñ¡Ñ¡¿Ñ ß»Ñµ¿á½∞¡δσ ßαÑñßΓó
  6221.          «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ ∩ó½∩ÑΓß∩  «íδτ¡δ¼  »α¿  »α«úαá¼¼¿α«óá¡¿¿  ¡á
  6222.          Æπαí« Åá߬á½Ñ.
  6223.               é ¡áßΓ«∩ΘÑÑ óαѼ∩ ¡Ñ߬«½∞¬« «»Ñαᵿ«¡¡δσ ß¿ßΓѼ »«ññÑনóáÑΓ
  6224.          Æπαí« Åá߬á½∞:
  6225.               - PC-DOS ¿½¿ MS-DOS;
  6226.               - æÉ/î;
  6227.               - æÉ/î-86.  éßÑ «»Ñαᵿ«¡¡δÑ ß¿ßΓÑ¼δ »αÑñπß¼áΓα¿óáεΓ ó«º¼«ª-
  6228.               ¡«ßΓ∞
  6229.          »α¿¼Ñ¡Ñ¡¿∩ ó »α«úαá¼¼áσ Γᬿσ Σπ¡¬µ¿⌐, ¬á¬ «Γ¬αδΓ¿Ñ ñ¿ß¬«óδσ Σá⌐-
  6230.          ½«ó, óó«ñ ß¿¼ó«½«ó ß ¬«¡ß«½¿ ¿ óδó«ñ ß¿¼ó«½«ó ¡á ¬«¡ß«½∞, óδñѽÑ-
  6231.          ¡¿Ñ »á¼∩Γ¿ ñ½∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ. æ»«ß«í »α¿¼Ñ¡Ñ¡¿∩ φΓ¿σ Σπ¡¬-
  6232.          µ¿⌐   ºáó¿ß¿Γ   «Γ  «»Ñαᵿ«¡¡«⌐  ß¿ßΓѼδ,  ¡«  ó«  óßÑσ  ß½πτá∩σ
  6233.          ¿ß»«½∞ºπÑΓß∩ Γáí½¿µá »ÑαÑσ«ñ«ó.  é Γᬫ⌐ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼѠ¬á¬
  6234.          æÉ/î  ó맮ó  ß¿ßΓѼ¡«⌐  Σπ¡¬µ¿¿ «ßπΘÑßΓó½∩ÑΓß∩ ¿¡ßΓαπ¬µ¿Ñ⌐ CALL ß
  6235.          »ÑαÑñáτÑ⌐ π»αáó½Ñ¡¿∩ ó «»αÑñѽѡ¡δ⌐ πτáßΓ«¬ »á¼∩Γ¿, ¬«úñá αÑú¿ßΓα
  6236.          ß«ñÑαª¿Γ  ΓαÑíπѼδ⌐  ¬«ñ  Σπ¡¬µ¿¿.  é «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼѠPC-DOS
  6237.          »α¿¼Ñ¡∩ÑΓß∩ »α«úαá¼¼¡«Ñ »αÑαδóá¡¿Ñ.  é «í«¿σ  ß½πτá∩σ  ñ½∩  ßó∩º¿
  6238.          ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ ß óáΦÑ⌐ »α«úαá¼¼«⌐ ¿ß»«½∞ºπÑΓß∩ Γáí½¿µá »ÑαÑσ«-
  6239.          ñ«ó.  ìá α¿ß.21 »«¬áºá¡« αáß»«½«ªÑ¡¿Ñ «»Ñαᵿ«¡¡«⌐ ß¿ßΓÑ¼δ ¿ Γáí-
  6240.          ½¿µδ »ÑαÑσ«ñ«ó ó »á¼∩Γ¿.
  6241.                            ┌─────────────────────┐
  6242.                            │  Ä»Ñαᵿ«¡¡á∩       │ ───────┐
  6243.                    ┌────── │    ß¿ßΓѼᠠ        │ ────┐  │
  6244.                    │       │                     │     │  │
  6245.                    │       │                     │     │  │
  6246.                    │   ┌── │                     │     │  │
  6247.                    │   │   ├─────────────────────┤     │  │
  6248.                    │   │   │   . . .             │     │  │
  6249.                    │   │   ├─────────────────────┤     │  │
  6250.                    │   │   │  öπ¡¬µ¿∩ 4        ──┼─────┼──┘
  6251.                    │   │   ├─────────────────────┤     │
  6252.                    │   │   │  öπ¡¬µ¿∩ 3        ──┼─────┘
  6253.                    │   │   ├─────────────────────┤
  6254.                    │   └───┼─ öπ¡¬µ¿∩ 2          │
  6255.                    │       ├─────────────────────┤
  6256.                    └───────┼─ öπ¡¬µ¿∩ 1          │
  6257.                            └─────────────────────┘
  6258.               É¿ß.21. Éáß»«½«ªÑ¡¿Ñ ó »á¼∩Γ¿ «»Ñαᵿ«¡¡«⌐ ß¿ßΓÑ¼δ ¿ Γáí½¿µδ
  6259.          »ÑαÑσ«ñ«ó
  6260.  
  6261.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 135 =
  6262.  
  6263.               é φΓ«⌐ ¬¡¿úÑ ¡ÑΓ ó«º¼«ª¡«ßΓ¿  αáßß¼«ΓαÑΓ∞  óßÑ  «»Ñαᵿ«¡¡δÑ
  6264.          ß¿ßΓѼδ.  é  φΓ«⌐ ú½áóÑ íπñÑΓ αáßß¼áΓα¿óáΓ∞ß∩ Γ«½∞¬« «»Ñαᵿ«¡¡á∩
  6265.          ß¿ßΓѼá PC-DOS,  »«½πτ¿óΦá∩  ¡á¿í«½∞ΦÑÑ  αáß»α«ßΓαá¡Ñ¡¿Ñ.  Äñ¡á¬«
  6266.          αáßß¼áΓα¿óáѼδÑ  ºñÑß∞ «íΘ¿Ñ ¼ÑΓ«ñδ »α¿¼Ñ¡¿¼δ ¿ ñ½∩ ñαπú¿σ «»Ñαá-
  6267.          µ¿«¡¡δσ ß¿ßΓѼ.
  6268.  
  6269.                  ä«ßΓπ» ¬ ß¿ßΓѼ¡δ¼ αÑßπαßá¼ ó «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼѠPC-DOS     
  6270.          -----------------------------------------------------------------
  6271.  
  6272.               é «»Ñαᵿ«¡¡«⌐  ß¿ßΓѼѠ PC-DOS  ñ«ßΓπ» ¬ ß¿ßΓѼ¡δ¼ Σπ¡¬µ¿∩¼
  6273.          «ßπΘÑßΓó½∩ÑΓß∩ »«ßαÑñßΓó«¼ »α«úαá¼¼¡δσ »αÑαδóá¡¿⌐.  èáªñ«Ñ »αÑαδ-
  6274.          óá¡¿Ñ »«ºó«½∩ÑΓ ßñѽáΓ∞ «íαáΘÑ¡¿Ñ ¬ Σπ¡¬µ¿∩¼ «»αÑñѽѡ¡«⌐ ¬áΓÑú«-
  6275.          α¿¿. Æ¿» Σπ¡¬µ¿¿ «»αÑñѽ∩ÑΓß∩ º¡áτÑ¡¿Ñ¼ αÑú¿ßΓαá Çì. ä«»«½¡¿Γѽ∞-
  6276.          ¡á∩  ¿¡Σ«α¼áµ¿∩  »α¿  ¡Ñ«íσ«ñ¿¼«ßΓ¿ »ÑαÑñáÑΓß∩ τÑαѺ αÑú¿ßΓαδ AL,
  6277.          BX,  CX ¿ DX. Ä»Ñαᵿ«¡¡á∩ ß¿ßΓѼá PC-DOS ß«ßΓ«¿Γ ¿º íẫó«⌐ ß¿ß-
  6278.          ΓѼδ óó«ñá-óδó«ñá ¿ äÄæ /ñ¿ß¬«ó«⌐ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼ«⌐/. üẫóá∩
  6279.          ß¿ßΓѼá óó«ñá-óδó«ñá «íÑß»Ñτ¿óáÑΓ »α«µÑñπαδ  óó«ñá-óδó«ñá  ßἫú«
  6280.          ¡¿º¬«ú« πα«ó¡∩,  ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩ ó äÄæ ñ½∩ αÑ὿ºáµ¿¿ »α«µÑ-
  6281.          ñπα óó«ñá-óδó«ñá í«½ÑÑ óδß«¬«ú«  πα«ó¡∩.  é«º¼«ª¡«ßΓ¿  φΓ¿σ  ñóπσ
  6282.          ß¿ßΓѼ »ÑαѬαδóáεΓß∩,  «ñ¡á¬« ó «ß¡«ó¡«¼ ñ«ßΓπ» ¬ ¡¿¼ «ßπΘÑßΓó½∩-
  6283.          ÑΓß∩ «ñ¿¡á¬«ó«. ì¿ªÑ ñáÑΓß∩ ß»¿ß«¬ Γᬿσ »αÑαδóá¡¿⌐:
  6284.  
  6285.           ÅαÑαδóá¡¿Ñ               öπ¡¬µ¿∩
  6286.               5        ôΓ¿½¿Γá óδó«ñá φ¬αá¡á
  6287.               10       éó«ñ-óδó«ñ ¡á ñ¿ß»½Ñ⌐
  6288.               11       æ»¿ß«¬ «í«απñ«óá¡¿∩
  6289.               12       ÉẼÑα »á¼∩Γ¿
  6290.               13       éó«ñ-óδó«ñ ¡á ñ¿ß¬
  6291.               14       éó«ñ-óδó«ñ ¡á »«ß½Ññ«óáΓѽ∞¡δ⌐ »«αΓ
  6292.               15       ô»αáó½Ñ¡¿Ñ ¬áßßÑΓ«⌐
  6293.               16       éó«ñ-óδó«ñ ß »«¼«Θ∞ε ¬½áó¿áΓπαδ
  6294.               17       éó«ñ-óδó«ñ ¡á »ÑτáΓ∞
  6295.               18       é맮ó üÑ⌐ß¿¬á, αáß»«½«ªÑ¡¡«ú« ó Åçô
  6296.               19       éδ»«½¡¿Γ∞ ¡áτá½∞¡πε ºáúαπº¬π
  6297.               21       é맮ó »α«µÑñπαδ äÄæ óδß«¬«ú« πα«ó¡∩
  6298.               IA       éαѼ∩ ¿ ñáΓá
  6299.               Å«½¡δ⌐ ß»¿ß«¬ »αÑαδóá¡¿⌐ ¿ ¿σ »«ñα«í¡«Ñ «»¿ßá¡¿Ñ ¼«ª¡« ¡á⌐Γ¿
  6300.          ó ΓÑσ¡¿τÑ߬«¼ ß»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ Σ¿α¼δ êüî.
  6301.               èáªñ«Ñ ¿º φΓ¿σ »αÑαδóá¡¿⌐  »αÑñ«ßΓáó½∩ÑΓ  α∩ñ  ó«º¼«ª¡«ßΓÑ⌐,
  6302.          ¬«Γ«αδÑ ºáó¿ß∩Γ «Γ º¡áτÑ¡¿∩ αÑú¿ßΓαá Çì. é Γáí½.1 ñáÑΓß∩ ¡Ñ»«½¡δ⌐
  6303.          ß»¿ß«¬ ó«º¼«ª¡«ßΓÑ⌐ ñ½∩ ¬áªñ«ú« »αÑαδóá¡¿∩.  è Σπ¡¬µ¿∩¼,  ¬«Γ«αδÑ
  6304.          »α¿ó«ñ∩Γß∩  ó Γáí½.1 ¼«ª¡« «íαáΘáΓ∞ß∩ ñóπ¼∩ ß»«ß«íἿ. é«-»Ñαóδσ,
  6305.          »«ßαÑñßΓó«¼ »αÑñπß¼«ΓαÑ¡¡«⌐ ó  Æπαí« Åá߬á½Ñ  óßΓα«Ñ¡¡«⌐  Σπ¡¬µ¿¿
  6306.          MsDos /ñ½∩ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ PC-DOS/.  é«-óΓ«αδσ, τÑαѺ ¿¡ΓÑα-
  6307.          ΣÑ⌐ß ß áßßѼí½Ñαá.
  6308.  
  6309.  
  6310.  
  6311.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 136 =
  6312.  
  6313.                                  Åα¿¼Ñ¡Ñ¡¿Ñ »α«µÑñπαδ MsDos                    
  6314.          -----------------------------------------------------------------
  6315.  
  6316.               Åα«µÑñπαá MsDos  «ßπΘÑßΓó½∩ÑΓ  »αÑαδóá¡¿Ñ  2In ñ½∩ ñ«ßΓπ»á ¬
  6317.          «ñ¡«⌐ ¿º Σπ¡¬µ¿⌐ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ óδß«¬«ú«  πα«ó¡∩. ÄíαáΘÑ¡¿Ñ
  6318.          ¬ φΓ«⌐ »α«µÑñπαÑ ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ «íΘ¿⌐ ó¿ñ:
  6319.               MsDos(αÑú¿ßΓαδ); úñÑ "αÑú¿ßΓαδ"  »αÑñßΓáó½∩ÑΓ  ß«í«⌐  ºá»¿ß∞
  6320.          Γ¿»á  "registrs",  ¬«Γ«αá∩ «»αÑñѽ∩ÑΓß∩ ó í½«¬Ñ äÄæ.  ÉÑú¿ßΓα«óδ⌐
  6321.          Γ¿» «»αÑñѽ∩ÑΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
  6322.               regisrers = record
  6323.                 Case integer of
  6324.                   0: (AX, BX, CX, DX, BP, SI, DI,
  6325.                       DS, ES, FLAGS: word);
  6326.                   1: (AL, AH,BL, BH, CL, CH, DL, DH: byte);
  6327.               end;
  6328.               Æá¬«Ñ «»αÑñѽѡ¿Ñ  »«ºó«½∩ÑΓ  óá¼  ß¼ÑΦ¿óáΓ∞  º¡áτÑ¡¿∩  Γ¿»á
  6329.          "íá⌐Γ"  ¿ "ß½«ó«".  é ¬áªñ«⌐ ¬«¡¬αÑΓ¡«⌐ ß¿Γπᵿ¿ óδ ñ«½ª¡δ αÑΦ¿Γ∞
  6330.          ¬á¬«⌐ Γ¿» »«ñσ«ñ¿Γ ½πτΦÑ.
  6331.               Åα¿ó«ñ¿¼δÑ ¡¿ªÑ ó φΓ«⌐ ú½áóÑ »α¿¼Ñαδ «ΓτáßΓ¿ ñπí½¿απεΓ ßΓá¡-
  6332.          ñáαΓ¡δÑ »α«µÑñπαδ, ¬«Γ«αδÑ πªÑ αÑ὿º«óá¡δ ó Æπαí« Åá߬á½Ñ. Æá¬«⌐
  6333.          óδí«α  ßñѽᡠ »« ΓαѼ »α¿τ¿¡á¼.  é«-»Ñαóδσ,  Æπαí« Åá߬á½∞ ¿¼ÑÑΓ
  6334.          »«τΓ¿ óßÑ,  τΓ« ΓαÑíπÑΓß∩ ó í«½∞Φ¿¡ßΓóÑ ß½πτá∩σ. é«óΓ«αδσ, ΓαÑíπ-
  6335.          ÑΓß∩ ó«º¼«ª¡« »«½¡ÑÑ »α«¿½½εßΓα¿α«óáΓ∞ »α¿¡µ¿»δ »«ßΓα«Ñ¡¿∩ ¿¡ΓÑα-
  6336.          ΣÑ⌐ßá,  τΓ«íδ ¼«ª¡« í佫 ¿σ  »α¿¼Ñ¡¿Γ∞  ó  ¬«¡¬αÑΓ¡δσ  ß¿Γπᵿ∩σ.
  6337.          é-ΓαÑΓ∞¿σ,  »α¿ó«ñ¿¼δÑ  »α¿¼Ñαδ ó ¡Ñ¬«Γ«α«⌐ ¼ÑαÑ »α«∩ß¡∩εΓ ß»«ß«í
  6338.          αÑ὿ºáµ¿¿ »α«µÑñπα ¿ Σπ¡¬µ¿⌐ ó Æπαí« Åá߬á½Ñ.
  6339.               ì¿ªÑ »α¿ó«ñ¿Γß∩ »α«ßΓ«⌐ »α¿¼Ñα.  ¥Γá Σπ¡¬µ¿∩ «»αÑñѽ∩ÑΓ í佫
  6340.          ½¿ ¡áªáΓ¿Ñ ¬½áó¿Φ¿.  Ä¡á á¡á½«ú¿τ¡á Σπ¡¬µ¿¿ "keyressed", óßΓα«Ñ¡-
  6341.          ¡«⌐  ó  ∩ºδ¬ Æπαí« Åá߬á½∞.  ÉѺπ½∞ΓáΓ φΓ«⌐ Σπ¡¬µ¿¿ "KbHrt" íπñÑΓ
  6342.          "¿ßΓ¿¡á",  Ñß½¿ ¡áªáΓᠡѬ«Γ«αá∩ ¬½áó¿Φá,  ¿½¿ "½«ª∞" ó »α«Γ¿ó¡«¼
  6343.          ß½πτáÑ. Ä¡á ¿ß»«½∞ºπÑΓ »αÑαδóá¡¿Ñ 21n ß ΦÑßΓ¡áñµáΓ¿α¿τ¡δ¼ ¡«¼Ñα«¼
  6344.          $B.  æ½ÑñπÑΓ »«¼¡¿Γ∞,  τΓ« »ÑαÑñ ΦÑßΓ¡áñµáΓ¿α¿τ¡δ¼ τ¿ß½«¼  ñ«½ªÑ¡
  6345.          ßΓ«∩Γ∞ óá½εΓ¡δ⌐ º¡á¬, ¬«Γ«αδ⌐ ñ½∩ ¬«¼»¿½∩Γ«αá ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ
  6346.          ΦÑßΓ¡áñµáΓ¿α¿τ¡«ú« τ¿ß½á.  æá¼á »α«úαá¼¼á íπñÑΓ óδó«ñ¿Γ∞ ¡á φ¬αá¡
  6347.          Γ«τ¬¿ ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ ¡áªáΓá ¬á¬á∩-¡¿íπñ∞ ¬½áó¿Φá:
  6348.             { ñѼ«¡ßΓαᵿ∩ »α«µÑñπαδ  MsDos }
  6349.              program kb;
  6350.  
  6351.              uses Dos;
  6352.  
  6353.              function KbHit:boolean; { Σπ¡¬µ¿∩  ß»Ñµ¿Σ¿τ¡á  ñ½∩ DOS }
  6354.              var
  6355.                regs: registers;
  6356.              begin
  6357.                regs.AY:=SB;
  6358.                MsDos(regs);
  6359.                if regs.AL=0 then KbHit:=FALSE
  6360.                else KbHit:=TRUE;
  6361.  
  6362.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 137 =
  6363.  
  6364.              end;
  6365.  
  6366.              begin
  6367.                repeat
  6368.                  Write('.');
  6369.                until KbHit;
  6370.              end.
  6371.  
  6372.               æ½ÑñπÑΓ «Γ¼ÑΓ¿Γ∞,  τΓ« ó φΓ«¼ ó맮óÑ ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ºáñá-
  6373.          óáΓ∞  º¡áτÑ¡¿∩  «ßΓá½∞¡δ¼  αÑú¿ßΓαá¼,  »«ß¬«½∞¬π  ºñÑß∞ ΓαÑíπÑΓß∩
  6374.          Σπ¡¬µ¿∩ ß Ññ¿¡ßΓóÑ¡¡δ¼ ¡«¼Ñα«¼ $B.  é «íΘѼ ß½πτáÑ Ñß½¿  ¬á¬«⌐-Γ«
  6375.          αÑú¿ßΓα ¡Ñ ¿ß»«½∞ºπÑΓß∩ »α¿ ó맮óÑ,  Γ« Ñú« º¡áτÑ¡¿Ñ ¼«ªÑΓ ¡Ñ πß-
  6376.          Γá¡áó½¿óáΓ∞ß∩.
  6377.  
  6378.  
  6379.  
  6380.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 138 =
  6381.  
  6382.                                         Æáí½¿µá 1                              
  6383.              æ¿ßΓѼ¡δÑ »«ñ»α«úαá¼¼δ, óδºδóáѼδÑ »«ßαÑñßΓó«¼ »αÑαδóá¡¿⌐
  6384.          ────────────────────────────────────────────────────────────────
  6385.          ÉÑú¿ßΓα Çì                     öπ¡¬µ¿∩
  6386.          ────────────────────────────────────────────────────────────────
  6387.              öπ¡¬µ¿¿ óó«ñá-óδó«ñá ¡á ñ¿ß»½Ñ⌐ - »αÑαδóá¡¿Ñ 10h
  6388.  
  6389.              0         ôßΓá¡«ó¬á αѪ¿¼á φ¬αá¡á
  6390.                         àß½¿ AL=0: 40σ25 τÑα¡«-íѽδ⌐;
  6391.                                 1: 40σ25 µóÑΓ¡«⌐;
  6392.                                 2: 80σ25 τÑα¡«-íѽδ⌐;
  6393.                                 3: 80σ25 µóÑΓ¡«⌐;
  6394.                                 4: 320σ200 µóÑΓ¡«⌐ úαáΣ¿τÑ߬¿⌐;
  6395.                                 5: 320σ200 τÑα¡«-íѽδ⌐ úαáΣ¿τÑ߬¿⌐;
  6396.                                 6: 340σ200 τÑα¡«-íѽδ⌐ úαáΣ¿τÑ߬¿⌐
  6397.              1         ôßΓá¡«ó¬á ßΓ᫬ ¬παß«αá
  6398.                         ü¿Γδ 0-4 æì ß«ñÑαªáΓ ¡áτὫ ßΓ᫬¿,
  6399.                         í¿Γδ 5-7 ¡π½ÑóδÑ;
  6400.                         í¿Γδ 0-4 CL ß«ñÑαªáΓ ¬«¡Ñµ ßΓ᫬¿,
  6401.                         í¿Γδ 5-7 ¡π½ÑóδÑ
  6402.              2         ôßΓá¡«ó¬á »«º¿µ¿¿ ¬παß«αá
  6403.                         DH: ßΓ᫬á,
  6404.                         DL: ßΓ«½íѵ,
  6405.                         éì: ¡«¼Ñα ßΓαá¡¿µδ φ¬αá¡á
  6406.              3         ù¿ΓáΓ∞ »«º¿µ¿ε ¬παß«αá
  6407.                         éì: ¡«¼Ñα ßΓαá¡¿µδ φ¬αá¡á
  6408.                        ÉѺπ½∞ΓáΓ:
  6409.                         DH: ßΓ᫬á,
  6410.                         DL: ßΓ«½íѵ,
  6411.                         æò: αѪ¿¼
  6412.              4         ù¿ΓáΓ∞ »«º¿µ¿ε ßóÑΓ«ó«ú« »Ñαá
  6413.                        ÉѺπ½∞ΓáΓ:
  6414.                         Ñß½¿ Çì=0, Γ« ßóÑΓ«ó«Ñ »Ñα« ¡Ñ ¿¡¿µ¿¿α«óá¡«;
  6415.                         Ñß½¿ Çì=1, Γ« ßóÑΓ«ó«Ñ »Ñα« ¿¡¿µ¿¿α«óá¡«;
  6416.                         DH: ßΓ᫬á,
  6417.                         DL: ßΓ«½íѵ,
  6418.                         æì: ßΓ᫬á αáßΓαá (0-199)
  6419.                         éò: ßΓ«½íѵ φ½Ñ¼Ñ¡Γá ¿º«íαáªÑ¡¿∩ (0-319 ¿½¿
  6420.                                                           0-639)
  6421.              5         ôßΓá¡«ó¬á á¬Γ¿ó¡«⌐ ßΓαá¡¿µδ φ¬αá¡á
  6422.                         AL ¼«ªÑΓ »α¿¡¿¼áΓ∞ º¡áτÑ¡¿Ñ «Γ 0 ñ« 7
  6423.  
  6424.              öπ¡¬µ¿¿ óó«ñá-óδó«ñá ¡á ñ¿ß»½Ñ⌐ - »αÑαδóá¡¿Ñ 10h
  6425.  
  6426.              6         Åα«ß¼«Γα ßΓαá¡¿µδ óóÑασ
  6427.                         AL: τ¿ß½« ßñó¿úáѼδσ ßΓ᫬ («Γ ¡π½∩ ñ« óßÑσ)
  6428.                         æì: ßΓ᫬á óÑασ¡Ñú« ½Ñó«ú« πú½á,
  6429.                         CL: ßΓ«½íѵ óÑασ¡Ñú« ½Ñó«ú« πú½á,
  6430.  
  6431.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 139 =
  6432.  
  6433.                         DH: ßΓα«¬á ¡¿ª¡Ñú« »αáó«ú« πú½á,
  6434.                         DL: ßΓ«½íѵ ¡¿ª¡Ñú« »αáó«ú« πú½á,
  6435.                         éì: áΓα¿íπΓδ »πßΓ«⌐ ßΓ᫬¿
  6436.              7         Åα«ß¼«Γα ßΓαá¡¿µδ ó¡¿º
  6437.                         ß¼. »αÑñδñπΘπε Σπ¡¬µ¿ε
  6438.              8         ùΓÑ¡¿Ñ ß¿¼ó«½á ó »«º¿µ¿¿ ¬παß«αá
  6439.                         éì: ßΓαá¡¿µá φ¬αá¡á,
  6440.                        ÉѺπ½∞ΓáΓ:
  6441.                         AL: ßτ¿Γá¡¡δ⌐ ß¿¼ó«½,
  6442.                         Çì: áΓα¿íπΓ
  6443.              9         çỿßáΓ∞ ß¿¼ó«½ ¿ áΓα¿íπΓ ó »«º¿µ¿ε ¬παß«αá
  6444.                         éì: ßΓαá¡¿µá φ¬αá¡á,
  6445.                         BL: áΓα¿íπΓ,
  6446.                         æò: τ¿ß½« ß¿¼ó«½«ó ºá»¿ß¿,
  6447.                         AL: ß¿¼ó«½
  6448.             10         çỿßáΓ∞ ß¿¼ó«½ ó ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá
  6449.                         éì: ßΓαá¡¿µá ¬παß«αá,
  6450.                         æò: τ¿ß½« ß¿¼ó«½«ó ºá»¿ß¿,
  6451.                         AL: ß¿¼ó«½
  6452.             11          ôßΓá¡«ó¿Γ∞ »á½¿Γαπ µóÑΓá
  6453.                          éì: ¡«¼Ñα »á½¿Γαδ,
  6454.                          BL: µóÑΓ
  6455.             12          çỿßáΓ∞ Γ«τ¬π
  6456.                          DX: ¡«¼Ñα ßΓ᫬¿,
  6457.                          æò: ¡«¼Ñα ßΓ«½íµá,
  6458.                          AL: µóÑΓ
  6459.             13          ù¿ΓáΓ∞ Γ«τ¬π
  6460.                          DX: ¡«¼Ñα ßΓ᫬¿,
  6461.                          æò: ¡«¼Ñα ßΓ«½íµá
  6462.                         ÉѺπ½∞ΓáΓ:
  6463.                          AL: ßτ¿Γá¡¡á∩ Γ«τ¬á
  6464.             14          çỿßáΓ∞ ß¿¼ó«½ ¡á φ¬αá¡ ¿ »α«ñó¿¡πΓ∞ ¬παß«α
  6465.                          AL: ß¿¼ó«½,
  6466.                          BL: µóÑΓ,
  6467.                          éì: ßΓαá¡¿µá φ¬αá¡á
  6468.             15          ù¿ΓáΓ∞ ß«ßΓ«∩¡¿Ñ φ¬αá¡á
  6469.                         ÉѺπ½∞ΓáΓ:
  6470.                          AL: ΓѬπΘ¿⌐ αѪ¿¼,
  6471.                          Çì: τ¿ß½« ßΓ«½íµ«ó ¡á φ¬αá¡Ñ,
  6472.                          éì: ΓѬπΘá∩ á¬Γ¿ó¡á∩ ßΓαá¡¿µá φ¬αá¡á
  6473.  
  6474.              æ»¿ß«¬ «í«απñ«óá¡¿∩ - »αÑαδóá¡¿Ñ 11h
  6475.  
  6476.                         ù¿ΓáΓ∞ ß»¿ß«¬ «í«απñ«óá¡¿∩
  6477.                         ÉѺπ½∞ΓáΓ:
  6478.                          Çò: ß»¿ß«¬ πßΓá¡«ó½Ñ¡¡«ú« «í«απñ«óá¡¿∩:
  6479.                           í¿Γ 0: ¿¼ÑÑΓß∩ «ñ¡á ¿º ñ¿ß¬ÑΓ,
  6480.                           í¿Γ 1: ¡Ñ ¿ß»«½∞ºπÑΓß∩,
  6481.  
  6482.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 140 =
  6483.  
  6484.                           í¿Γ 2,3: çô ß¿ßΓѼ¡«⌐ »½áΓδ, 11=64è,
  6485.                           í¿Γ 4,5: ¡áτá½∞¡δ⌐ αѪ¿¼ φ¬αá¡á:
  6486.                            10: 80 ßΓ«½íµ«ó, µóÑΓ¡«⌐,
  6487.                            11: ¼«¡«σα«¼¡δ⌐,
  6488.                            01: 40 ßΓ«½íµ«ó, µóÑΓ¡«⌐,
  6489.                           í¿Γ 6,7: τ¿ß½« ñ¿ß¬«óδσ ¡á¬«»¿ΓѽÑ⌐, 0=1
  6490.                           í¿Γ 8: πßΓá¡«ó¬á ¼¿¬α«ßσÑ¼δ »α∩¼«ú« ñ«ßΓπ»á ó
  6491.                                  »á¼∩Γ∞, 0 - πßΓá¡«ó½Ñ¡á
  6492.                           í¿Γ 9,10,11: τ¿ß½« »«αΓ«ó ¿¡ΓÑαΣÑ⌐ßá RS-232
  6493.                           í¿Γ 12: 1 - πßΓá¡«ó½Ñ¡ ¿úα«ó«⌐ áñá»ΓÑα,
  6494.                           í¿Γ 13: 1 - »«ß½Ññ«óáΓѽ∞¡«Ñ »ÑτáΓáεΘÑÑ
  6495.                                       πßΓα«⌐ßΓó« /Γ«½∞¬« Γ¿»á PCir/
  6496.                           í¿Γ 14,15: τ¿ß½« »ÑτáΓáεΘ¿σ πßΓα«⌐ßΓó
  6497.  
  6498.              ÉẼÑα »á¼∩Γ¿ - »αÑαδóá¡¿Ñ 12h
  6499.  
  6500.                          ÉѺπ½∞ΓáΓ »αÑñßΓáó½∩ÑΓ ß«í«⌐ τ¿ß½« ¬¿½«íá⌐Γ
  6501.                          «»ÑαáΓ¿ó¡«⌐ »á¼∩Γ¿, ¿¼ÑεΘÑ⌐ß∩ ó ß¿ßΓѼÑ
  6502.                          ÉѺπ½∞ΓáΓ:
  6503.                           Çò: τ¿ß½« ¬¿½«íá⌐Γ Äçô
  6504.  
  6505.              öπ¡¬µ¿¿ óó«ñá-óδó«ñá ¡á ñ¿ß¬ - »αÑαδóá¡¿Ñ 13h
  6506.  
  6507.              0           æíα«ß ñ¿ß¬«ó«⌐ ß¿ßΓѼδ
  6508.              1           ùΓÑ¡¿Ñ ß«ßΓ«∩¡¿∩ ñ¿ß¬á
  6509.                          ÉѺπ½∞ΓáΓ:
  6510.                           AL: ß«ßΓ«∩¡¿Ñ/ß¼.ΓÑσ¡¿τÑ߬«Ñ ß»αáó«τ¡«Ñ
  6511.                               απ¬«ó«ñßΓó« Σ¿α¼δ êüî/
  6512.              2           ùΓÑ¡¿Ñ ßÑ¬Γ«α«ó ó »á¼∩Γ∞
  6513.                           DL: ¡«¼Ñα ñαá⌐óÑαá,
  6514.                           DH: ¡«¼Ñα ú«½«ó¬¿,
  6515.                           æì: ¡«¼Ñα ñ«α«ª¬¿,
  6516.                           CL: ¡«¼Ñα ßÑ¬Γ«αá,
  6517.                           AL: τ¿ß½« ßτ¿ΓδóáѼδσ ßÑ¬Γ«α«ó,
  6518.                           ES:BX: áñαÑß íπΣÑαá
  6519.                          ÉѺπ½∞ΓáΓ:
  6520.                           AL: τ¿ß½« ßτ¿Γá¡¡δσ ßÑ¬Γ«α«ó,
  6521.                           Çì: ¡π½∞ »α¿ πß»ÑΦ¡«¼ τΓÑ¡¿¿, ó »α«Γ¿ó¡«¼
  6522.                               ß½πτáÑ óδñáÑΓß∩ ß«ßΓ«∩¡¿Ñ
  6523.              3           çỿß∞ ßÑ¬Γ«α«ó ¡á ñ¿ß¬
  6524.                           /¬á¬ ñ½∩ «»Ñαᵿ¿ τΓÑ¡¿∩/
  6525.              4           Åα«óÑα¿Γ∞
  6526.                           /¬á¬ ñ½∩ «»Ñαᵿ¿ τΓÑ¡¿∩/
  6527.              5           ö«α¼áΓ ñ«α«ª¬¿
  6528.                           DL: ¡«¼Ñα ñαá⌐óÑαá,
  6529.                           DH: ¡«¼Ñα ú«½«ó¬¿,
  6530.                           æì: ¡«¼Ñα ñ«α«ª¬¿,
  6531.                           EL:BX: ¿¡Σ«α¼áµ¿∩ ßÑ¬Γ«αá
  6532.  
  6533.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 141 =
  6534.  
  6535.  
  6536.              öπ¡¬µ¿¿ óó«ñá-óδó«ñá »«ßαÑñßΓó«¼ ¬½áó¿áΓπαδ - »αÑαδóá¡¿Ñ 16h
  6537.  
  6538.              0           ùΓÑ¡¿Ñ ¬«ñá ß¬á¡¿α«óá¡¿∩
  6539.                          ÉѺπ½∞ΓáΓ:
  6540.                           Çì: ¬«ñ ß¬á¡¿α«óá¡¿∩,
  6541.                           AL: ¬«ñ ß¿¼ó«½á
  6542.              1           Å«½πτ¿Γ∞ ß«ßΓ«∩¡¿Ñ íπΣÑαá
  6543.                          ÉѺπ½∞ΓáΓ:
  6544.                           ZE: 1 »α¿ »πßΓ«¼ íπΣÑαÑ,
  6545.                               0 »α¿ ¡á½¿τ¿¿ ß¿¼ó«½«ó ¿ ß½ÑñπεΘ¿¼
  6546.                               ß¿¼ó«½«¼ ó αÑú¿ßΓαÑ Çò
  6547.              2           Å«½πτ¿Γ∞ ß«ßΓ«∩¡¿Ñ ¬½áó¿áΓπαδ
  6548.                          (ß¼.ΓÑσ¡¿τÑ߬«Ñ ß»αáó«τ¡«Ñ απ¬«ó«ñßΓó«
  6549.                           Σ¿α¼δ IBM)
  6550.  
  6551.              öπ¡¬µ¿¿ óó«ñá-óδó«ñá ¡á »ÑτáΓáεΘÑÑ πßΓα«⌐ßΓó« - »αÑαδóá¡¿Ñ
  6552.                                   17h
  6553.  
  6554.              0           ÅÑτáΓáΓ∞ ß¿¼ó«½
  6555.                           AL: ß¿¼ó«½,
  6556.                           DX: ¡«¼Ñα »ÑτáΓáεΘÑú« πßΓα«⌐ßΓóá
  6557.                          ÉѺπ½∞ΓáΓ:
  6558.                           Çì: ß«ßΓ«∩¡¿Ñ
  6559.              1           ê¡¿µ¿á½¿º¿α«óáΓ∞ »ÑτáΓáεΘÑÑ πßΓα«⌐ßΓó«
  6560.                           DX: ¡«¼Ñα »ÑτáΓáεΘÑú« πßΓα«⌐ßΓóá
  6561.                          ÉѺπ½∞ΓáΓ:
  6562.                           Çì: ß«ßΓ«∩¡¿Ñ
  6563.              2           ù¿ΓáΓ∞ ß«ßΓ«∩¡¿Ñ
  6564.                           DX: ¡«¼Ñα »ÑτáΓáεΘÑú« πßΓα«⌐ßΓóá
  6565.                          ÉѺπ½∞ΓáΓ:
  6566.                           Çì: ß«ßΓ«∩¡¿Ñ
  6567.  
  6568.              öπ¡¬µ¿¿ äÄæ óδß«¬«ú« πα«ó¡∩ - »αÑαδóá¡¿Ñ 21h (¡Ñ»«½¡δ⌐
  6569.                                ß»¿ß«¬)
  6570.  
  6571.              1           ùΓÑ¡¿Ñ ß¿¼ó«½á ß ¬½áó¿áΓπαδ
  6572.                          ÉѺπ½∞ΓáΓ:
  6573.                           AL: ß¿¼ó«½
  6574.              2           éδó«ñ ß¿¼ó«½á ¡á φ¬αá¡
  6575.                           DL: ß¿¼ó«½
  6576.              3           ùΓÑ¡¿Ñ ß¿¼ó«½á ß áß¿¡σα«¡¡«ú« »«αΓá
  6577.                          ÉѺπ½∞ΓáΓ:
  6578.                           AL: ß¿¼ó«½
  6579.              4           çỿß∞ ß¿¼ó«½á »« áß¿¡σα«¡¡«¼π »«αΓπ
  6580.                           DL: ß¿¼ó«½
  6581.              5           éδñáΓ∞ ß¿¼ó«½ ¡á πßΓα«⌐ßΓó« ¿º ß»¿ß¬á
  6582.                           DL: ß¿¼ó«½
  6583.  
  6584.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 142 =
  6585.  
  6586.              7           ùΓÑ¡¿Ñ ß¿¼ó«½á ß ¬½áó¿áΓπαδ íѺ óδó«ñá ¡á φ¬αá¡
  6587.                          ÉѺπ½∞ΓáΓ:
  6588.                           AL: ß¿¼ó«½
  6589.              é           Åα«óÑα¿Γ∞ ß«ßΓ«∩¡¿Ñ ¬½áó¿áΓπαδ
  6590.                          ÉѺπ½∞ΓáΓ:
  6591.                           AL: OFFH »α¿ ¡áªáΓ¿¿ ¬½áó¿Φ¿; 0 ó »α«Γ¿ó¡«¼
  6592.                               ß½πτáÑ
  6593.              D           æíα«ß¿Γ∞ ñ¿ß¬
  6594.              E           ôßΓá¡«ó¿Γ∞ ßΓá¡ñáαΓ¡δ⌐ ñαá⌐óÑα
  6595.                           DL: ¡«¼Ñα ñαá⌐óÑαá /0-Ç, 1-é,.../
  6596.             11           Å«¿ß¬ ¿¼Ñ¡¿ Σá⌐½á
  6597.             /4à »«ñ 2.σ/  DX: áñαÑß í½«¬á FCB
  6598.  
  6599.              öπ¡¬µ¿¿ óó«ñá-óδó«ñá ¡á φ¬αá¡ - »αÑαδóá¡¿Ñ 10h
  6600.  
  6601.                          ÉѺπ½∞ΓáΓ:
  6602.                           AL: 0, Ñß½¿ ¡á⌐ñÑ¡, FFh, Ñß½¿ ¡Ñ ¡á⌐ñÑ¡
  6603.             12           ìá⌐Γ¿ ß½ÑñπεΘÑÑ ¿¼∩ Σá⌐½á
  6604.             /4F »«ñ 2.σ/  /¬á¬ ó »αÑñδñπΘѼ ß½πτáÑ/
  6605.             1Ç           ôßΓá¡«ó¿Γ∞ áñαÑß »ÑαÑñáτ¿ ñ¿ß¬á
  6606.                           DX: áñαÑß »ÑαÑñáτ¿ ñ¿ß¬á
  6607.             2Ç           Å«½πτ¿Γ∞ ñáΓπ ß¿ßΓѼδ
  6608.                          ÉѺπ½∞ΓáΓ:
  6609.                           æò: ú«ñ /1980-2099/,
  6610.                           DX: ¼Ñß∩µ /1-12/,
  6611.                           DL: ñÑ¡∞ /1-31/
  6612.             2é           ôßΓá¡«ó¿Γ∞ ß¿ßΓѼ¡πε ñáΓπ
  6613.                           æò: ú«ñ /1980-2099/,
  6614.                           DH: ¼Ñß∩µ /1-12/,
  6615.                           DL: ñÑ¡∞ /1-31/
  6616.             2æ           Å«½πτ¿Γ∞ ß¿ßΓѼ¡«Ñ óαѼ∩
  6617.                          ÉѺπ½∞ΓáΓ:
  6618.                           æì: τáßδ /0-23/,
  6619.                           CL: ¼¿¡πΓδ /0-59/,
  6620.                           DH: ßѬπ¡ñδ /0-59/,
  6621.                           DL: ß«ΓδÑ ßѬπ¡ñδ /0-99/
  6622.             2D           ôßΓá¡«ó¿Γ∞ ß¿ßΓѼ¡«Ñ óαѼ∩
  6623.                           æì: τáßδ /0-23/,
  6624.                           CL: ¼¿¡πΓδ /0-59/,
  6625.                           DH: ßѬπ¡ñδ /0-59/,
  6626.                           DL: ß«ΓδÑ ßѬπ¡ñδ /0-99/
  6627.          ───────────────────────────────────────────────────────────────
  6628.  
  6629.               êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ íẫó«⌐ ß¿ßΓѼδ óó«ñá-óδó«ñá ¿ äÄæ
  6630.          -----------------------------------------------------------------
  6631.  
  6632.               é ¡Ñ¬«Γ«αδσ  ß½πτá∩σ  ªÑ½áΓѽ∞¡« ¿¼ÑΓ∞ ó«º¼«ª¡«ßΓ∞ ¿ß»«½∞º«-
  6633.          óáΓ∞ ó¡ÑΦ¡¿Ñ »α«úαá¼¼δ,  ¡á»¿ßá¡¡δÑ ¡á áßßѼí½ÑαÑ,  ñ½∩ ñ«ßΓπ»á ¬
  6634.  
  6635.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 143 =
  6636.  
  6637.          ß¿ßΓѼ¡δ¼ Σπ¡¬µ¿∩¼. Éáßß¼«Γα¿¼ ¡Ñ߬«½∞¬« »α¿¼Ñα«ó. ÅπßΓ∞ ó« óαѼ∩
  6638.          αáí«Γδ »α«úαá¼¼δ ΓαÑíπÑΓß∩ ¿º¼Ñ¡¿Γ∞ αѪ¿¼ φ¬αá¡á. ì¿ªÑ »α¿ó«ñ∩Γß∩
  6639.          ßѼ∞ αѪ¿¼«ó φ¬αá¡á »α¿ ¿ß»«½∞º«óá¡¿¿ µóÑΓ¡«ú« úαáΣ¿τÑ߬«ú« áñá»-
  6640.          ΓÑαá ó «»Ñαᵿ«¡¡«⌐ ßαÑñÑ PC-DOS:
  6641.  
  6642.          ÉѪ¿¼ Æ¿»            ÉẼÑαδ            Çñá»ΓÑαδ
  6643.  
  6644.          0     ÆÑ¬ßΓ, τÑα¡«-  40 σ 25            CGA, EGA
  6645.                íѽδ⌐
  6646.  
  6647.          1     ÆÑ¬ßΓ, 16      40 σ 25            CGA, EGA
  6648.                µóÑΓ«ó
  6649.  
  6650.          2     ÆÑ¬ßΓ, τÑα¡«-  80 σ 25            CGA, EGA
  6651.                íѽδ⌐
  6652.  
  6653.          3     ÆÑ¬ßΓ, 16      80 σ 25            CGA, EGA
  6654.                µóÑΓ«ó
  6655.  
  6656.          4     âαáΣ¿¬á, 4     320 σ 200          CGA, EGA
  6657.                µóÑΓá
  6658.  
  6659.          5     âαáΣ¿¬á, 4     320 σ 200          CGA, EGA
  6660.                τÑα¡«-íѽδσ
  6661.                Γ«¡á
  6662.  
  6663.          6     âαáΣ¿¬á        640 σ 200          CGA, EGA
  6664.                τÑα¡«-íѽá∩
  6665.  
  6666.          7     ÆÑ¬ßΓ, τÑα¡«-  80 σ 25            î«¡«σα«¼áΓ¿τÑ߬¿⌐
  6667.                íѽδ⌐
  6668.  
  6669.          8     âαáΣ¿¬á, 16    160 σ 200          PCjr
  6670.                µóÑΓ«ó
  6671.  
  6672.          9     âαáΣ¿¬á, 16    320 σ 200          PCjr
  6673.                µóÑΓ«ó
  6674.  
  6675.          10    âαáΣ¿¬á        320 σ 200          PCjr, EGA
  6676.                PCjr - 4 µóÑΓá
  6677.                EGA - 16 µóÑΓ«ó
  6678.  
  6679.          13    âαáΣ¿¬á, 16    320 σ 200          EGA
  6680.                µóÑΓ«ó
  6681.  
  6682.          14    âαáΣ¿¬á, 16    640 σ 200          EGA
  6683.                µóÑΓ«ó
  6684.  
  6685.  
  6686.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 144 =
  6687.  
  6688.          15    âαáΣ¿¬á, 4     640 σ 350          EGA
  6689.                µóÑΓá
  6690.  
  6691.               Åα¿ó«ñ¿¼á∩ ¡¿ªÑ »α«µÑñπαá "mode" óδ»«½¡∩ÑΓ «íαáΘÑ¡¿Ñ ¬ Σπ¡¬-
  6692.          µ¿¿ 1 íẫó«⌐ ß¿ßΓѼδ óó«ñá-óδó«ñá (Σπ¡¬µ¿∩ πßΓᡫ󬿠αѪ¿¼á) ñ½∩
  6693.          »ÑαÑó«ñá φ¬αá¡á ó úαáΣ¿τÑ߬¿⌐ αѪ¿¼ 640σ200,  óδñáτ¿ ¡á φ¬αá¡ ß«-
  6694.          «íΘÑ¡¿∩-»α¿óÑΓßΓó¿∩ "HI" ¿ «ª¿ñá¡¿∩ ¡áªáΓ¿∩ »«½∞º«óáΓѽѼ ¬½áó¿Φ¿
  6695.          "RETURN".  Åα¿ ¡áªáΓ¿¿ π¬áºá¡¡«⌐ ¬½áó¿Φ¿ íπñÑΓ ßñѽᡠ ó«ºóαáΓ  ó
  6696.          αѪ¿¼ µóÑΓ¡«ú« φ¬αá¡á ß αẼÑαἿ 80σ25 (»α¿ó«ñ¿¼á∩ »α«úαá¼¼á íπ-
  6697.          ñÑΓ αáí«ΓáΓ∞ Γ«½∞¬« ó «»Ñαᵿ«¡¡«⌐  ß¿ßΓѼѠ PC-DOS  »α¿  ¡á½¿τ¿¿
  6698.          µóÑΓ¡«ú« úαáΣ¿τÑ߬«ú« áñá»ΓÑαá):
  6699.               program modetest;
  6700.  
  6701.               {SL MODE}
  6702.  
  6703.               procedure Mode(ModeSet:integer):external;
  6704.  
  6705.               begin
  6706.                 Mode(6);
  6707.                 WriteLn('hi'); read;
  6708.                 Mode(3);
  6709.               end.
  6710.  
  6711.               ì¿ªÑ »α¿ó«ñ¿Γß∩  ó¡ÑΦ¡∩∩  Σπ¡¬µ¿∩ "mode",  ¡á»¿ßá¡¡á∩ ¡á áß-
  6712.          ßѼí½ÑαÑ:
  6713.  
  6714.               ; ¥Γá »α«µÑñπαá ñѽáÑΓ πßΓá¡«ó¬π αѪ¿¼á φ¬αá¡á, ¿ß»«½∞ºπ∩
  6715.               ; 1 µÑ½«τ¿ß½Ñ¡¡δ⌐ »áαá¼ÑΓα.
  6716.               code    segment 'code'
  6717.                       assume cs:code
  6718.               public  mode
  6719.               mode    proc near
  6720.  
  6721.              ; ß«σαá¡¿Γ∞ ßΓѬ
  6722.                       push bp
  6723.                       mov bp,sp
  6724.              ; »«½πτ¿Γ∞ αѪ¿¼
  6725.                       mov ax,[bp]+4
  6726.                       mov ah,0    ; ¬«¼á¡ñá ñ½∩ »ÑαѬ½ετÑ¡¿∩ αѪ¿¼á
  6727.                       int 010h    ; ó맮ó íẫó«⌐ ß¿ßΓѼδ óó«ñá-óδó«ñá
  6728.              ; ó«ßßΓá¡«ó½Ñ¡¿Ñ ¿ óδσ«ñ
  6729.                       pop bp
  6730.                       ret 2
  6731.               mode    endp
  6732.               code    ends
  6733.                       end
  6734.  
  6735.               ì¿ªÑ »α¿ó«ñ¿Γß∩  Σπ¡¬µ¿∩,  ¬«Γ«αá∩ «τ¿ΘáÑΓ φ¬αá¡ »«ßαÑñßΓó«¼
  6736.  
  6737.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 145 =
  6738.  
  6739.          »α«µÑñπαδ "clr":
  6740.  
  6741.               program clr_screen;
  6742.  
  6743.               {SL CLR}
  6744.  
  6745.               procedure Clr; external;
  6746.  
  6747.               begin
  6748.                 WriteLn('¡áª¼¿ΓÑ ééÄä ñ½∩ τ¿ßΓ¬¿ φ¬αá¡á');
  6749.                 ReadLn;
  6750.                 Clr;
  6751.                 WriteLn('φ¬αá¡ »«½¡«ßΓ∞ε «τ¿ΘÑ¡');
  6752.               end.
  6753.  
  6754.               ì¿ªÑ »α¿ó«ñ¿Γß∩  ó¡ÑΦ¡∩∩ »α«µÑñπαá "clr",  ¡á»¿ßá¡¡á∩ ¡á áß-
  6755.          ßѼí½ÑαÑ.
  6756.  
  6757.                  ; »αÑαδóá¡¿Ñ ß ¡«¼Ñα«¼ 6
  6758.                    cseq segment 'code'
  6759.                    assume cs:cseq
  6760.  
  6761.                    public clr
  6762.  
  6763.                    clr proc near
  6764.                  ; ß«σαá¡¿Γ∞ ¿ß»«½∞ºπѼδÑ αÑú¿ßΓαδ
  6765.                           push ax
  6766.                           push bx
  6767.                           push cx
  6768.                           push dx
  6769.                           mov cx, 0  ; ¡áτáΓ∞ ß ¡áτá½á ¬««αñ¿¡áΓ
  6770.                           mov dh, 24 ; ¬«¡Ñµ ó ßΓα«¬Ñ 24
  6771.                           mov dl, 79 ; ßΓ«½íѵ 79
  6772.                           mov ah, 0  ; πßΓá¡«ó¿Γ∞ αѪ¿¼ »α«ß¼«Γαá
  6773.                           mov al, 0  ; «τ¿ßΓ¿Γ∞ φ¬αá¡
  6774.                           mov bh, 7
  6775.                           int 10h
  6776.  
  6777.                   ; ó«ßßΓá¡«ó½Ñ¡¿Ñ ¿ óδσ«ñ
  6778.                           pop ax
  6779.                           pop bx
  6780.                           pop cx
  6781.                           pop dx
  6782.                    clr endp
  6783.                    cseq ends
  6784.                           enu
  6785.  
  6786.               äαπú¿¼ »α¿¼Ñα«¼   ßó∩º¿   ß  íẫó«⌐  ß¿ßΓѼ«⌐  óó«ñá-óδó«ñá
  6787.  
  6788.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 146 =
  6789.  
  6790.          »«ßαÑñßΓó«¼ »α¿¼Ñ¡Ñ¡¿∩ áßßѼí½Ñαá ∩ó½∩ÑΓß∩ Σπ¡¬µ¿∩ "xy",  ¬«Γ«αá∩
  6791.          πßΓá¡áó½¿óáÑΓ  ¬παß«α ó ¬««αñ¿¡áΓδ ò ¿ Y.  ¥Γá Σπ¡¬µ¿∩ á¡á½«ú¿τ¡á
  6792.          »α«µÑñπαe "GotoXY", »αÑñπß¼«ΓαÑ¡¡«⌐ ó ∩ºδ¬Ñ Æπαí« Åá߬á½∞. é Å¥éî
  6793.          Σ¿α¼δ IBM ½Ñóδ⌐ óÑασ¡¿⌐ πú«½ φ¬αá¡á ¿¼ÑÑΓ ¬««αñ¿¡áΓδ (0,0)
  6794.  
  6795.                     program gotoxy;
  6796.  
  6797.                     {$l XY}
  6798.  
  6799.                     var
  6800.                       t: integer;
  6801.  
  6802.                     procedure xy(x, y): integer); external ;
  6803.  
  6804.                     begin
  6805.                       for t := 0 to 24 do begin
  6806.                         xy(t,t);
  6807.                         write(t);
  6808.                       end;
  6809.                     end.
  6810.  
  6811.               ì¿ªÑ »α¿ó«ñ¿Γß∩ ó¡ÑΦ¡∩∩ »α«µÑñπαá "xy",  ¡á»¿ßá¡¡á∩  ¡á  áß-
  6812.          ßѼí½ÑαÑ:
  6813.  
  6814.  
  6815.               ; φΓá Σπ¡¬µ¿∩  πßΓá¡áó½¿óáÑΓ ¬παß«α ó ¬««αñ¿¡áΓδ (ò,Y)
  6816.               ßode       cseq segment 'code'
  6817.                          assume cs:cseq
  6818.  
  6819.               public     xy
  6820.               xy         proc near
  6821.  
  6822.               ; ß«σαá¡Ñ¡¿Ñ π¬áºáΓѽ∩ ßΓѬá
  6823.                          puch bp
  6824.                          mov bp,sp
  6825.  
  6826.               ; »«½πτ¿Γ∞ »Ñαóδ⌐ »áαá¼ÑΓα
  6827.                          mov dh,[up]+4  ; »«½πτ¿Γ∞ ò
  6828.                          mov dl,[up]+8  ; »«½πτ¿Γ∞ Y
  6829.                          mov ah,2       ; π¬áºáΓѽ∞ Γ«τ¬¿ »ÑαÑσ«ñá ñ½∩
  6830.                                         ; BIOS
  6831.                          mov bh,0       ; ¡«¼Ñα ßΓαá¡¿µδ
  6832.                          int 10h
  6833.  
  6834.                          pop bp
  6835.                          ret 4
  6836.  
  6837.               xy         endp
  6838.  
  6839.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 147 =
  6840.  
  6841.               code       ends
  6842.                          end
  6843.  
  6844.  
  6845.  
  6846.  
  6847.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 148 =
  6848.  
  6849.                           êß»«½∞º«óá¡¿Ñ ¬«ñ«ó ¬½áó¿Φ ß¬á¡¿α«óá¡¿∩              
  6850.          -----------------------------------------------------------------
  6851.  
  6852.               Åα¿ αáí«ΓÑ ¡á Å¥éî Σ¿α¼δ êüî  ¡á¿í«½ÑÑ  ß½«ª¡«  «íαáíáΓδóáΓ∞
  6853.          »α«úαá¼¼¡« ¬«ñδ Σπ¡¬µ¿«¡á½∞¡δ󠬽áó¿Φ ¿ ¬½áó¿Φ ß« ßΓαѽ¬á¼¿ /Γá¬-
  6854.          ªÑ ¬½áó¿Φ INS,  DEL,  PGOP,  PGDN, END ¿ HOME/. Åα¿ ¡áªáΓ¿¿ Γᬫ⌐
  6855.          ¬½áó¿Φ¿ úÑ¡Ñα¿απÑΓß∩ ¡Ñ ó«ß∞¼¿í¿Γ«óδ⌐ /«ñ¡«íá⌐Γ«óδ⌐/ ¬«ñ, ¬á¬ ñÑ-
  6856.          ½áÑΓß∩ »α¿ ¡áªáΓ¿¿ ñαπú¿σ ¬½áó¿Φ.  Åα¿ ¡áªáΓ¿¿  Γᬫ⌐  ¬½áó¿Φ¿  ó
  6857.          ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿  úÑ¡Ñα¿απÑΓß∩ ΦÑßΓ¡áñµáΓ¿í¿Γ«óδ⌐ ¬«ñ, ¡áºδóáѼδ⌐
  6858.          ¬«ñ«¼ ß¬á¡¿α«óá¡¿∩.  è«ñ ß¬á¡¿α«óá¡¿∩ ß«ßΓ«¿Γ ¿º ¼½áñΦÑú«  íá⌐Γá,
  6859.          ¬«Γ«αδ⌐ »α¿ ¡áªáΓ¿¿ «íδτ¡«⌐ ¬½áó¿Φ¿ íπñÑΓ ß«ñÑαªáΓ∞ ¬«ñ ASCII ñ½∩
  6860.          φΓ«⌐ ¬½áó¿Φ¿,  ¿ ßΓáαΦÑú« íá⌐Γá, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ »«º¿µ¿ε ¬½áó¿Φ¿
  6861.          ¡á ¬½áó¿áΓπαÑ.
  6862.               ä½∩ í«½∞Φ¿¡ßΓóá ¬½áó¿Φ «»Ñαᵿ«¡¡á∩ ß¿ßΓѼᠻαÑ«íαáºπÑΓ  ¬«ñ
  6863.          ß¬á¡¿α«óá¡¿∩  ó  ß««ΓóÑΓßΓóπεΘ¿⌐ ó«ß∞¼¿í¿Γ«óδ⌐ ¬«ñ ASCII.  ì« ñ½∩
  6864.          Σπ¡¬µ¿«¡á½∞¡δ󠬽áó¿Φ ¿ ¬½áó¿Φ ß« ßΓαѽ¬á¼¿ φΓ« »αÑ«íαẫóá¡¿Ñ ¡Ñ
  6865.          ñѽáÑΓß∩,  »«ß¬«½∞¬π  ¬«ñ  ß¿¼ó«½á  ñ½∩ ß»Ñµ¿á½∞¡«⌐ ¬½áó¿Φ¿ íπñÑΓ
  6866.          ¿¼ÑΓ∞ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ. ¥Γ« «º¡áτáÑΓ, τΓ« ñ½∩ «»αÑñѽѡ¿∩ ¡áªáΓ«⌐
  6867.          ¬½áó¿Φ¿ ¡Ñ«íσ«ñ¿¼« ó«ß»«½∞º«óáΓ∞ß∩ ¬«ñ«¼ »«º¿µ¿¿.  Åα«úαá¼¼π τΓÑ-
  6868.          ¡¿∩ ß¿¼ó«½á ß ¬½áó¿áΓπαδ »«ßαÑñßΓó«¼ «íαáΘÑ¡¿∩ ¬  Σπ¡¬µ¿¿  äÄæ  ß
  6869.          ¡«¼Ñα«¼ I ¡Ñ½∞º∩ ¿ß»«½∞º«óáΓ∞ ñ½∩ τΓÑ¡¿∩ ß»Ñµ¿á½∞¡δ󠬽áó¿Φ. ¥Γ«,
  6870.          «τÑó¿ñ¡«,  »α¿ó«ñ¿Γ ¬ Γαπñ¡«ßΓ∩¼,  ¬«úñá ó  »α«úαἼѠ ¡Ñ«íσ«ñ¿¼«
  6871.          ¿ß»«½∞º«óáΓ∞  ß»Ñµ¿á½∞¡δÑ ¬½áó¿Φ¿.  é Æπαí« Åá߬á½Ñ óÑαß¿¿ 4 »αÑ-
  6872.          ñπß¼áΓα¿óáÑΓß∩ Σπ¡¬µ¿∩ "Readkey",  »αÑñ¡áº¡áτÑ¡¡á∩ ñ½∩  τΓÑ¡¿∩  ¿
  6873.          ß¿¼ó«½«ó ¿ ¬«ñ«ó. Äñ¡á¬« ó »α¿ó«ñ¿¼«⌐ ¡¿ªÑ »α«µÑñπαÑ ¿ß»«½∞ºπÑΓß∩
  6874.          ñαπú«⌐ »«ñσ«ñ. çñÑß∞ ñѽáÑΓß∩ »αÑαδóá¡¿Ñ $16 ñ½∩ »«½πτÑ¡¿∩ »«½¡«-
  6875.          ú« ΦÑßΓ¡áñµáΓ¿í¿Γ«ó«ú« ¬«ñá ¬½áó¿Φ¿.
  6876.  
  6877.               ; φΓá »α«µÑñπαá óδñáÑΓ ΦÑßΓ¡áñµáΓ¿í¿Γ«óδ⌐ ¬«ñ,  ¼½áñΦ¿⌐ íá⌐Γ
  6878.               ; ¬«Γ«α«ú« ß«ñÑαª¿Γ ½¿í« ß¿¼ó«½ ASCII,  ½¿í« ¡π½Ñó«Ñ  º¡áτÑ-
  6879.               ; ¡¿Ñ. é »«ß½Ññ¡Ñ¼ ß½πτáÑ ßΓáαΦ¿⌐ íá⌐Γ ß«ñÑαª¿Γ ¬«ñ ß¬á¡¿α«-
  6880.               ; óá¡¿∩
  6881.  
  6882.               code    segment 'code'
  6883.                       assume cs:code
  6884.  
  6885.               public  scan
  6886.               scan    proc near
  6887.  
  6888.               ; ß«σαá¡¿Γ∞ π¬áºáΓѽ∞  ßΓѬá
  6889.                       push bp
  6890.                       mov bp,sp
  6891.  
  6892.               ; »«½πτ¿Γ∞ »Ñαóδ⌐ »áαá¼ÑΓα
  6893.                      mov ah,0
  6894.                      int 16h
  6895.                      mov [bx+2],ax; ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ
  6896.               ; ó«ßßΓá¡«ó½Ñ¡¿Ñ ¿ óδσ«ñ
  6897.  
  6898.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 149 =
  6899.  
  6900.                      pop bp
  6901.                      ret 2
  6902.               scan   endp
  6903.               code   endx
  6904.                      end
  6905.  
  6906.               Å«ß½Ñ ó맮óá  ¬«ñ ß¬á¡¿α«óá¡¿∩ ¿ ¬«ñ ß¿¼ó«½á πªÑ íπñπΓ ¡áσ«-
  6907.          ñ¿Γ∞ß∩ ó αÑú¿ßΓαÑ Çò,  ¬«Γ«αδ⌐ ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ ñ½∩  »ÑαÑñáτ¿
  6908.          ¿¡Σ«α¼áµ¿¿ ó óδºδóáεΘπε »α«µÑñπαπ. Å«ß½Ñ »αÑαδóá¡¿∩ 16n ß ¡π½Ñóδ¼
  6909.          Σπ¡¬µ¿«¡á½∞¡δ¼ ¡«¼Ñα«¼ ¬«ñ »«º¿µ¿¿ íπñÑΓ  ¡áσ«ñ¿Γ∞ß∩  ó  αÑú¿ßΓαÑ
  6910.          Çì,  á  ¬«ñ  ß¿¼ó«½á  íπñÑΓ  ¡áσ«ñ¿Γ∞ß∩ ó αÑú¿ßΓαÑ AL.  Åα«µÑñπαá
  6911.          "scan" ¡á»¿ßá¡á ß πτÑΓ«¼ Γ«ú«, τΓ« »α¿ ¡áªáΓ¿¿ ß»Ñµ¿á½∞¡«⌐ ¬½áó¿-
  6912.          Φ¿ ¬«ñ ß¿¼ó«½á ¿¼ÑÑΓ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ.
  6913.  
  6914.               àß½¿ ¬«ñ ß¿¼ó«½á ¿¼ÑÑΓ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ, Γ« ñѬ«ñ¿απÑΓß∩ ¬«ñ
  6915.          »«º¿µ¿¿ ñ½∩ «»αÑñѽѡ¿∩,  ¬á¬á∩ ¬½áó¿Φá íδ½á ¡πª¡á. ä½∩ «íαáí«Γ¬¿
  6916.          óß∩¬«ú«  óó«ñá ß ¬½áó¿áΓπαδ »«ßαÑñßΓó«¼ π¬áºá¡¡«⌐ Σπ¡¬µ¿¿ αÑΦÑ¡¿∩
  6917.          ß½ÑñπÑΓ »α¿¡¿¼áΓ∞ ¡á «ß¡«óÑ ß«ñÑন¼«ú« αÑú¿ßΓα«ó Çì ¿  AL.  Äñ¿¡
  6918.          ¿º Γᬿσ ß»«ß«í«ó ¿½½εßΓα¿απÑΓß∩ ¡¿ªÑ ó ¬«α«Γ¬«⌐ »α«úαá¼¼Ñ:
  6919.  
  6920.               program special_keys;
  6921.  
  6922.               {SL SCAN}
  6923.  
  6924.               var
  6925.                 t: integer;
  6926.  
  6927.               function Scan:integer; external;
  6928.  
  6929.               begin
  6930.                 repeat
  6931.                   t: = Scan;
  6932.                   if lo(t)=0 then WriteLn('scan code is', hi(t))
  6933.                   else WriteLn(chr(lo(t)));
  6934.                 until chr(lo(t))='q';
  6935.               end.
  6936.  
  6937.               ä½∩ ñ«ßΓπ»á ¬ «íÑ¿¼ »«½«ó¿¡á¼  ΦÑßΓ¡áñµáΓ¿αáºα∩ñ¡«ú«  º¡áτÑ-
  6938.          ¡¿∩, »«½πτÑ¡¡«ú« »α«µÑñπα«⌐ "scan", ¼«ª¡« ó«ß»«½∞º«óáΓ∞ß∩ »αÑñπß-
  6939.          ¼«ΓαÑ¡¡δ¼¿ ó Æπαí« Åá߬á½Ñ ßΓá¡ñáαΓ¡δ¼¿ Σπ¡¬µ¿∩¼¿  "Ht"  ¿  "Lo".
  6940.          èα«¼Ñ Γ«ú«,  ñ½∩ »αÑ«íαẫóá¡¿∩ µÑ½«ú« τ¿ß½á ó ß¿¼ó«½ »«ΓαÑíπÑΓß∩
  6941.          Σπ¡¬µ¿∩ "Chr".
  6942.               ä½∩ ñѬ«ñ¿α«óá¡¿∩ ¬«ñá ß¬á¡¿α«óá¡¿∩ óδ ¼«ªÑΓÑ ó«ß»«½∞º«óáΓ∞-
  6943.          ß∩ ΓÑσ¡¿τÑ߬¿¼ ß»αáó«τ¡δ¼ απ¬«ó«ñßΓó«¼ Σ¿α¼δ êüî.  äαπú«⌐,  í«½ÑÑ
  6944.          ¿¡ΓÑαÑß¡δ⌐  ß»«ß«í,  ºá¬½ετáÑΓß∩  ó ¡á»¿ßá¡¿¿ ¬«α«Γ¬«⌐ »α«úαá¼¼δ,
  6945.          Ññ¿¡ßΓóÑ¡¡δ¼ ¡áº¡áτÑ¡¿Ñ¼ ¬«Γ«α«⌐ ∩ó½∩ÑΓß∩  ½¿Φ∞ φ¬ß»Ñα¿¼Ñ¡Γá½∞¡á∩
  6946.          óδñáτá ¬«ñ«ó ¡áªáΓδ󠬽áó¿Φ.  ä½∩ ¡áτá½á »α¿óÑñѼ ¬«ñδ ß¬á¡¿α«óá-
  6947.          ¡¿∩ ñ½∩ ¬½áó¿Φ ß« ßΓαѽ¬á¼¿:
  6948.  
  6949.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 150 =
  6950.  
  6951.  
  6952.               ïÑóá∩ ßΓαѽ¬á - 75, Åαáóá∩ ßΓαѽ¬á - 77, æΓαѽ¬á óóÑασ - 72,
  6953.               æΓαѽ¬á ó¡¿º - 80.
  6954.  
  6955.               ä½∩ »«½¡«ú« ß«ó¼ÑΘÑ¡¿∩ ß»Ñµ¿á½∞¡δ󠬽áó¿Φ ß «íδτ¡δ¼¿ ¬½á ó¿-
  6956.          ΦἿ ¡Ñ«íσ«ñ¿¼«  ¡á»¿ßáΓ∞  ß»Ñµ¿á½∞¡δÑ  Σπ¡¬µ¿¿  óó«ñá  ñá¡¡δσ  ¿
  6957.          ¿ß»«½∞º«óáΓ∞ ¿σ ó¼ÑßΓ« «íδτ¡δσ Σπ¡¬µ¿⌐ "read" ¿ "readln". è ß«ªá-
  6958.          ½Ñ¡¿ε φëà»πΓ∞ ∩ó½∩ÑΓß∩  Ññ¿¡ßΓóÑ¡¡δ¼.  Äñ¡á¬«,  ¡áúαáñ«⌐  íπñÑΓ
  6959.          ó«º¼«ª¡«ßΓ∞  αáí«ΓáΓ∞  ó  óáΦÑ⌐ »α«úαἼѠߠ»«½¡δ¼ ¡áí«α«¼ ¬½áó¿Φ
  6960.          Å¥éî Σ¿α¼δ êüî.
  6961.  
  6962.  
  6963.  
  6964.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 151 =
  6965.  
  6966.                         çᬽετ¿Γѽ∞¡δÑ ºá¼Ñτá¡¿∩ «Γ¡«ß¿Γѽ∞¡« ßó∩º¿            
  6967.                        ß «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼ«⌐
  6968.          -----------------------------------------------------------------
  6969.  
  6970.               é φΓ«⌐ ú½áóÑ ½¿Φ∞ ¬αáΓ¬« αáßß¼«ΓαÑ¡δ  ó«º¼«ª¡«ßΓ¿ »α¿¼Ñ¡Ñ¡¿∩
  6971.          ß¿ßΓѼ¡δσ αÑßπαß«ó. ä½∩ »«½¡«ú« ¿ß»«½∞º«óá¡¿∩ ó«º¼«ª¡«ßΓÑ⌐ «»Ñαá-
  6972.          µ¿«¡¡«⌐ ß¿ßΓÑ¼δ »«ΓαÑíπÑΓß∩  »«ñα«í¡á∩  ¿¡Σ«α¼áµ¿∩  »«  ß¿ßΓѼ¡δ¼
  6973.          Σπ¡¬µ¿∩¼.
  6974.               Åα¿¼Ñ¡Ñ¡¿Ñ ß¿ßΓѼ¡δσ Σπ¡¬µ¿⌐ ñáÑΓ ¡Ñ߬«½∞¬« »αÑ¿¼πΘÑßΓó. é«-
  6975.          »Ñαóδσ,  φΓ«  »«ºó«½∩ÑΓ ½πτΦÑ ¿ß»«½∞º«óáΓ∞ «ß«íÑ¡¡«ßΓ¿ ¬«¡¬αÑΓ¡«⌐
  6976.          Å¥éî ¿ ßñѽáΓ∞ »α«úαá¼¼π í«½ÑÑ  »α«ΣÑßß¿«¡á½∞¡«.  é«-óΓ«αδσ,  ¿ß-
  6977.          »«½∞º«óá¡¿Ñ  ß¿ßΓѼ¡δσ Σπ¡¬µ¿⌐ ó¼ÑßΓ« óßΓα«Ñ¡¡δσ ó TURBO -Åá߬á½∞
  6978.          ¿¡«úñá »«ºó«½∩ÑΓ ß«ºñáóáΓ∞  í«½ÑÑ  íδßΓαδÑ  ¿  í«½ÑÑ  φΣΣÑ¬Γ¿ó¡δÑ
  6979.          »α«úαá¼¼δ. é-ΓαÑΓ∞¿σ, φΓ« »«ºó«½∩ÑΓ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿, ¬«Γ«αδÑ
  6980.          «ΓßπΓßΓóπεΓ ó Æπαí« Åá߬á½Ñ.
  6981.               Äñ¡á¬«, »α¿¼Ñ¡Ñ¡¿Ñ ß¿ßΓѼ¡δσ Σπ¡¬µ¿⌐ «íÑß»Ñτ¿óáÑΓß∩ ¡Ñ íÑß»-
  6982.          ½áΓ¡«.  êß»«½∞ºπ∩ ß¿ßΓѼ¡δÑ Σπ¡¬µ¿¿ ó¼ÑßΓ« ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐  ¿
  6983.          »α«µÑñπα,  óδ  ß«ºñáÑΓÑ ßÑíÑ ñ«»«½¡¿Γѽ∞¡δÑ Γαπñ¡«ßΓ¿,  »«ß¬«½∞¬π
  6984.          óáΦá »α«úαá¼¼á ΓÑ»Ñα∞ ¡Ñ íπñÑΓ ¼«í¿½∞¡«⌐.  éáΦá  »α«úαἼᠠ¼«ªÑΓ
  6985.          ΓᬪѠºáó¿ßÑΓ∞ «Γ ¬«¡¬αÑΓ¡«⌐ óÑαß¿¿ ñá¡¡«⌐ «»Ñαᵿ«¡¡«⌐ ß¿ßΓÑ¼δ ¿
  6986.          ¬«¼»¿½∩Γ«αá Æπαí« Åá߬á½∩, τΓ« ß«ºñáÑΓ »α«í½Ñ¼δ ß«ó¼ÑßΓ¿¼«ßΓ¿ »α¿
  6987.          αáß»α«ßΓαá¡Ñ¡¿¿  óáΦ¿σ  »α«úαá¼¼.  Æ«½∞¬«  óδ ßἿ ñ«½ª¡δ αÑΦáΓ∞,
  6988.          ¬«úñá ß½ÑñπÑΓ ó »α«úαἼѠ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿,  ºáó¿ß¿¼δÑ «Γ ¼á-
  6989.          Φ¿¡δ ¿½¿ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ.
  6990.  
  6991.  
  6992.  
  6993.  
  6994.  
  6995.  
  6996.  
  6997.  
  6998.  
  6999.  
  7000.  
  7001.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 152 =
  7002.  
  7003.                                âïÇéÇ 5. æÆÇÆêæÆêùàæèêë ÇìÇïêç                  
  7004.          -----------------------------------------------------------------
  7005.  
  7006.               ü«½∞Φ¿¡ßΓó« ½εñÑ⌐, »«½∞ºπεΘ¿σß∩ ¥éî, ó ¬á¬«⌐-Γ« ¼ÑαÑ ¿ß»«½∞-
  7007.          ºπεΓ ¿σ ñ½∩ ßΓáΓ¿ßΓ¿τÑ߬«ú« á¡á½¿ºá. Æá¬«⌐ á¡á½¿º ¼«ªÑΓ »α¿¡¿¼áΓ∞
  7008.          Σ«α¼π »αÑñ߬áºá¡¿∩ ¿º¼Ñ¡Ñ¡¿⌐ ¬παßá á¬µ¿⌐,  óδ»«½¡Ñ¡¿∩ ¬½¿¡¿τÑ߬¿σ
  7009.          ΓÑßΓ«ó ñ½∩ «»αÑñѽѡ¿∩ úαá¡¿µ »α¿¼Ñ¡Ñ¡¿∩ ¡«ó«ú« ½Ñ¬áαßΓóá ¿½¿ ñá-
  7010.          ªÑ «»αÑñѽѡ¿∩ ßαÑñ¡¿σ αѺπ½∞ΓáΓ«ó ¬«¼á¡ñ ¿º î½áñΦÑ⌐  ï¿ú¿. éÑΓó∞
  7011.          ¼áΓѼáΓ¿¬¿, ¬«Γ«αá∩ ºá¡¿¼áÑΓß∩ «í«íΘÑ¡¿Ñ¼, «íαáí«Γ¬«⌐ ¿ φ¬ßΓαừ-
  7012.          ½∩µ¿Ñ⌐ ñá¡¡δσ, ¡áºδóáÑΓß∩ ßΓáΓ¿ßΓ¿τÑ߬¿¼ á¡á½¿º«¼.
  7013.               èᬠ«Γñѽ∞¡á∩ ñ¿ßµ¿»½¿¡á ßΓáΓ¿ßΓ¿τÑ߬¿⌐ á¡á½¿º ßΓá½ αáßß¼áΓ-
  7014.          α¿óáΓ∞ß∩ ¡Ñ Γᬠñáó¡«.  Ä¡ »«∩ó¿½ß∩ ó 1700-Ñ  ú«ñδ  ó  αѺπ½∞ΓáΓÑ
  7015.          ¿ºπτÑ¡¿∩ ¿úα ß« ß½πτá⌐¡δ¼¿ ß«íδΓ¿∩¼¿. æΓáΓ¿ßΓ¿τÑ߬¿⌐ á¡á½¿º ¿ ΓÑ-
  7016.          «α¿∩ óÑα«∩Γ¡«ßΓ¿ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ß¿½∞¡« ßó∩ºá¡δ ñαπú ß ñαπú«¼.
  7017.          æ«óαѼѡ¡δÑ »«ñσ«ñδ ¬ ßΓáΓ¿ßΓ¿τÑ߬«¼π á¡á½¿ºπ ß½«ª¿½¿ß∞ ¡á απíѪÑ
  7018.          ¡δ¡ÑΦ¡Ñú« ßΓ«½ÑΓ¿∩,  ¬«úñá ßΓ὿ ñ«ßΓπ»¡δ ñ½∩  «íαáí«Γ¬¿  í«½∞Φ¿Ñ
  7019.          ¡áí«αδ  ñá¡¡δσ.  Åα¿¼Ñ¡Ñ¡¿Ñ ¥éî »«ºó«½∩ÑΓ íδßΓα« ¡áσ«ñ¿Γ∞ ßó∩º∞ ¿
  7020.          «íαáíáΓδóáΓ∞ «τÑ¡∞ í«½∞Φ¿Ñ ¡áí«αδ ñá¡¡δσ, á ΓᬪѠ»αÑñßΓáó½∩Γ∞ ¿σ
  7021.          ó πñ«í¡«⌐ ñ½∩ τѽ«óѬá Σ«α¼Ñ. ÆÑ»Ñα∞, ¬«úñá óßÑ í«½∞ΦÑ ¿¡Σ«α¼áµ¿¿
  7022.          ß«ºñáÑΓß∩ ¿ ¿ß»«½∞ºπÑΓß∩ »αáó¿Γѽ∞ßΓó«¼ ¿ ßαÑñßΓóἿ ¼áßß«ó«⌐ ¿¡-
  7023.          Σ«α¼áµ¿¿,  »«τΓ¿  ¬áªñδ⌐ áß»Ñ¬Γ ª¿º¡¿ »«ñóÑαúáÑΓß∩ ßΓáΓ¿ßΓ¿τÑ߬«⌐
  7024.          «íαáí«Γ¬Ñ.  Åαá¬Γ¿τÑ߬¿ ¡Ñ½∞º∩ ß½πΦá∩ αáñ¿«, ß¼«Γα∩ ΓѽÑó¿º«α ¿½¿
  7025.          τ¿Γá∩ úáºÑΓδ ¡Ñ »«½πτ¿Γ∞ ¡Ñ¬«Γ«απε ßΓáΓ¿ßΓ¿τÑ߬πε ¿¡Σ«α¼áµ¿ε.
  7026.               ò«Γ∩ Æπαí« Åá߬á½∞ ¡Ñ αáºαáíáΓδóá½ß∩ ß»Ñµ¿á½∞¡« ñ½∩ »α«úαá¼-
  7027.          ¼¿α«óá¡¿∩ ºáñáτ »« ßΓáΓ¿ßΓ¿τÑ߬«¼π á¡á½¿ºπ,  «¡ ñ«ßΓáΓ«τ¡« σ«α«Φ«
  7028.          »«ñσ«ñ¿Γ ñ½∩ φΓ«⌐ µÑ½¿.  é ¡Ñ¬«Γ«αδσ  ß½πτá∩σ  «¡  «í½áñáÑΓ  ñáªÑ
  7029.          í«½∞ΦÑ⌐ ú¿í¬«ßΓ∞ε,  τѼ ¡Ñ¬«Γ«αδÑ ∩ºδ¬¿ φ¬«¡«¼¿τÑ߬«⌐ «α¿Ñ¡Γᵿ¿,
  7030.          ¡á»α¿¼Ñα,  è«í«½ ¿ üÑ⌐ß¿¬. Äñ¡¿¼ ¿º »αÑ¿¼πΘÑßΓó Æπαí« Åá߬á½∩ ¡áñ
  7031.          è«í«½«¼  ∩ó½∩ÑΓß∩  »α«ßΓ«Γá ¿ß»«½∞º«óá¡¿∩ úαáΣ¿τÑ߬«ú« ¿¡ΓÑαΣÑ⌐ßá
  7032.          ñ½∩ óδñáτ¿ úαáΣ¿¬«ó ñá¡¡δσ.  èα«¼Ñ Γ«ú«,  ¼áΓѼáΓ¿τÑ߬¿Ñ »«ñ»α«ú-
  7033.          αá¼¼δ Æπαí« Åá߬á½∩ αáí«ΓáεΓ º¡áτ¿Γѽ∞¡« íδßΓαÑÑ, τѼ í«½∞Φ¿¡ßΓó«
  7034.          Γá¬¿σ »«ñ»α«úαá¼¼ ó ñαπú¿σ ∩ºδ¬áσ.
  7035.               é φΓ«⌐  ú½áóÑ αáßß¼áΓα¿óáÑΓß∩ αáßτÑΓ ß½ÑñπεΘ¿σ óѽ¿τ¿¡,  ¿ß-
  7036.          »«½∞ºπѼδσ ó ßΓáΓ¿ßΓ¿τÑ߬«¼ á¡á½¿ºÑ:
  7037.               - ßαÑñ¡Ñú« º¡áτÑ¡¿∩;
  7038.               - ¼Ññ¿á¡δ;
  7039.               - ¼«ñδ;
  7040.               - ßΓá¡ñáαΓ¡«ú« «Γ¬½«¡Ñ¡¿∩;
  7041.               - ¬«φΣΣ¿µ¿Ñ¡Γá αÑúαÑßß¿¿;
  7042.               - ¬«φΣΣ¿µ¿Ñ¡Γá ¬«ααѽ∩µ¿¿.
  7043.               èα«¼Ñ Γ«ú«,  ñáÑΓß∩  ¡Ñ߬«½∞¬«  »α«ßΓδσ ¼ÑΓ«ñ«ó úαáΣ¿τÑ߬«ú«
  7044.          óδó«ñá.
  7045.  
  7046.  
  7047.  
  7048.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 153 =
  7049.  
  7050.                                    é¢üÄÉèê, âàìàÉÇï£ì¢à æÄéÄèôÅìÄæÆê,          
  7051.                         ÉÇæÅÉàäàïàìꃠéàÉăÆìÄæÆàë ê ÅàÉàîàìì¢à
  7052.          -----------------------------------------------------------------
  7053.  
  7054.               ÅαѪñÑ τѼ »ÑαÑ⌐Γ¿ ¬ ßΓáΓ¿ßΓ¿τÑ߬«¼π á¡á½¿ºπ, ß½ÑñπÑΓ »«º¡á-
  7055.          ¬«¼¿Γ∞ß∩ ß ¡Ñ¬«Γ«α묨 ¬½ετÑó묨 »«¡∩Γ¿∩¼¿.  ä½∩ »«½πτÑ¡¿∩ ßΓáΓ¿ß-
  7056.          Γ¿τÑ߬¿σ ñá¡¡δσ ß¡áτá½á  íÑαÑΓß∩  óδí«α¬á  «»αÑñѽѡ¡δσ  º¡áτÑ¡¿⌐
  7057.          ñá¡¡δσ,  ¡á  «ß¡«óá¡¿¿  ¬«Γ«α«⌐ ºáΓѼ ñѽáεΓß∩ «í«íΘáεΘ¿Ñ óδó«ñδ.
  7058.          èáªñá∩ óδí«α¬á íÑαÑΓß∩ ¿º úÑ¡Ñαá½∞¡«⌐ ß«ó«¬π»¡«ßΓ¿,  »αÑñßΓáó½∩ε-
  7059.          ΘÑ⌐ ß«í«⌐ óßѠ󫺼«ª¡δÑ º¡áτÑ¡¿∩,  ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ ó ¿ßß½ÑñπÑ-
  7060.          ¼«⌐ ß¿Γπᵿ¿. ìá»α¿¼Ñα, Ñß½¿ «µÑ¡¿óáΓ∞ αѺπ½∞ΓáΓδ αáí«Γδ Σáíਪ¿,
  7061.          óδ»π߬áεΘÑ⌐ ∩Θ¿¬¿, »« ñá¡¡δ¼ óδ»π߬á Γ«½∞¬« ºá ¬áªñπε ßαÑñπ ¿ ñÑ-
  7062.          ½á∩ »« ¡¿¼ óδó«ñ « óδ»π߬Ѡºá óÑß∞ ú«ñ,  Γ« ºñÑß∞ óδí«α¬á  »αÑñß-
  7063.          Γáó½∩ÑΓ  ß«í«⌐  ñá¡¡δÑ  «  óδ»π߬Ѡ»« óßѼ ßαÑñá¼ ú«ñá ¿ ∩ó½∩ÑΓß∩
  7064.          τáßΓ∞ε úÑ¡Ñαá½∞¡«⌐ ß«ó«¬π»¡«ßΓ¿ ñá¡¡δσ «  ÑªÑñ¡Ñó¡«¼  óδ»π߬Ѡ ºá
  7065.          ú«ñ.
  7066.               éδí«α¬á ¼«ªÑΓ ß«ó»áñáΓ∞ ß úÑ¡Ñαá½∞¡«⌐ ß«ó«¬π»¡«ßΓ∞ε ¿ ó φΓ«¼
  7067.          ß½πτáÑ «¡á íπñÑΓ ¿ßτÑα»δóáεΘÑ⌐.  ä½∩ »α¿óÑñÑ¡¡«ú« »α¿¼Ñαá óδí«α¬á
  7068.          íπñÑΓ ß«ó»áñáΓ∞ ß úÑ¡Ñαá½∞¡«⌐ ß«ó«¬π»¡«ßΓ∞ε ó Γ«¼  ß½πτáÑ,  ¬«úñá
  7069.          íπñπΓ  ¿ß»«½∞º«óáΓ∞ß∩ ñá¡¡δÑ « óδ»π߬Ѡ»« óßѼ »∩Γ¿ ñ¡∩¼ ó ¡Ññѽε
  7070.          ó ΓÑτÑ¡¿Ñ ú«ñá.  àß½¿ óδí«α¬á ¼Ñ¡∞ΦÑ úÑ¡Ñαá½∞¡«⌐ ß«ó«¬π»¡«ßΓ¿, Γ«
  7071.          óßÑúñá αѺπ½∞ΓáΓ ¼«ªÑΓ ¿¼ÑΓ∞ «Φ¿í¬π. Äñ¡á¬«, ó í«½∞Φ¿¡ßΓóÑ ß½πτá-
  7072.          Ñ󠼫ª¡« «»αÑñѽ¿Γ∞ óÑα«∩Γ¡«ßΓ∞ φΓ«⌐ «Φ¿í¬¿. é φΓ«⌐ ú½áóÑ »αÑñ»«-
  7073.          ½áúáÑΓß∩,  τΓ«  óδí«α¬á ß«ó»áñáÑΓ ß úÑ¡Ñαá½∞¡«⌐ ß«ó«¬π»¡«ßΓ∞ε,  ¿
  7074.          ß½Ññ«óáΓѽ∞¡«, ΓᬿѠ«Φ¿í¬¿ ¡Ñ αáßß¼áΓα¿óáεΓß∩.
  7075.               Åα¿ «µÑ¡¬Ñ  αѺπ½∞ΓáΓ«ó óδí«α«ó ¿ »α«óÑñÑ¡¿¿ «»α«ß«ó «íΘÑßΓ-
  7076.          óÑ¡¡«ú« ¼¡Ñ¡¿∩ αѺπ½∞ΓáΓδ «Γ¡«ß¿Γѽ∞¡«  ¡Ñí«½∞Φ«⌐  óδí«α¬¿  αáß»-
  7077.          α«ßΓαá¡∩εΓß∩ ¡á óßÑ ¡áßѽѡ¿Ñ.  ìá»α¿¼Ñα, ßΓáΓ¿ßΓ¿τÑ߬πε ¿¡Σ«α¼á-
  7078.          µ¿ε « ¬παßѠᬵ¿⌐ äáπ äª«¡ßá ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩  «µÑ¡¬¿ ¬παßá
  7079.          á¬µ¿⌐ ¡á óßѼ α뭪Ñ.  è«¡Ñτ¡«,  ñ«ßΓ«óÑα¡«ßΓ∞ Γᬿσ óδó«ñ«ó ¼«ªÑΓ
  7080.          ¼Ñ¡∩Γ∞ß∩ ó Φ¿α«¬«¼ ñ¿á»áº«¡Ñ. é ñαπú¿σ ß½πτá∩σ óδí«α¬á, ß«ó»áñáε-
  7081.          Θá∩ ¿½¿ »«τΓ¿ ß«ó»áñáεΘá∩ ß úÑ¡Ñαá½∞¡«⌐ ß«ó«¬π»¡«ßΓ∞ε,  ¿ß»«½∞ºπ-
  7082.          ÑΓß∩ ñ½∩ ßπ¼¼¿α«óá¡¿∩ í«½∞Φ«ú« ¡áí«αá τ¿ßѽ ¿ π»α«ΘÑ¡¿∩  «íαáí«Γ-
  7083.          ¬¿.  ìá»α¿¼Ñα,  ó  «ΓτÑΓáσ  «αúá¡«ó «íαẫóá¡¿∩ «íδτ¡« »α¿ó«ñ∩Γß∩
  7084.          ßαÑñ¡¿Ñ «µÑ¡¬¿ ñ½∩ ¬½áßßá ó¼ÑßΓ« ¿¡ñ¿ó¿ñπá½∞¡δσ  «µÑ¡«¬ πτáΘ¿σß∩.
  7085.               æΓáΓ¿ßΓ¿¬á ºáó¿ß¿Γ  «Γ αáß»αÑñѽѡ¿∩ ß½πτá⌐¡δσ ß«íδΓ¿⌐ ó úÑ-
  7086.          ¡Ñαá½∞¡«⌐ ß«ó«¬π»¡«ßΓ¿.  êº ¡Ñ߬«½∞¬¿σ Φ¿α«¬« αáß»α«ßΓαá¡Ñ¡¡δσ  ó
  7087.          »α¿α«ñÑ  ¡á¿í«½ÑÑ  óáª¡δ¼  (¿ Ññ¿¡ßΓóÑ¡¡δ¼ αáßß¼áΓα¿óáÑ¼δ¼ ó φΓ«⌐
  7088.          ú½áóÑ) ∩ó½∩ÑΓß∩  ¡«α¼á½∞¡«Ñ  αáß»αÑñѽѡ¿Ñ.  ìá¿í«½ÑÑ  óÑα«∩Γ¡δ¼¿
  7089.          º¡áτÑ¡¿∩¼¿  ∩ó½∩εΓß∩  ßαÑñ¡¿Ñ º¡áτÑ¡¿∩.  ê ñÑ⌐ßΓó¿Γѽ∞¡«,  úαáΣ¿¬
  7090.          φΓ«ú« αáß»αÑñѽѡ¿∩ »«½¡«ßΓ∞ε ß¿¼¼ÑΓα¿τÑ¡ «Γ¡«ß¿Γѽ∞¡« ßó«Ñ⌐ óÑα-
  7091.          Φ¿¡δ,  ¬«Γ«αá∩  »αÑñßΓáó½∩ÑΓ  ΓᬪѠßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ.  ùѼ ñá½∞ΦÑ
  7092.          αáßßΓ«∩¡¿Ñ «Γ ßαÑñ¡Ñú« º¡áτÑ¡¿∩,  ΓѼ ¼Ñ¡∞ΦÑ óÑα«∩Γ¡«ßΓ∞ ß«íδΓ¿∩.
  7093.          î¡«ú¿Ñ ß¿Γπᵿ¿ ó αÑá½∞¡«⌐ ª¿º¡¿ «»¿ßδóáεΓß∩ ¡«α¼á½∞¡δ¼ αáß»αÑñÑ-
  7094.          ½Ñ¡¿Ñ¼.
  7095.               é ½εí«¼ ßΓáΓ¿ßΓ¿τÑ߬«¼ »α«µÑßßÑ ¿¼ÑÑΓß∩ ¡Ñºáó¿ß¿¼á∩ »ÑαѼѡ-
  7096.          ¡á∩, ¬«Γ«αá∩ ∩ó½∩ÑΓß∩ »αÑñ¼ÑΓ«¼ ¿ºπτÑ¡¿∩, ¿ ºáó¿ß¿¼á∩ »ÑαѼѡ¡á∩,
  7097.          ¬«Γ«αá∩ ∩ó½∩ÑΓß∩ Σá¬Γ«α«¼,  ó½¿∩εΘ¿¼ ¡á ¡Ñºáó¿ß¿¼πε »ÑαѼѡ¡πε. é
  7098.  
  7099.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 154 =
  7100.  
  7101.          φΓ«⌐  ú½áóÑ  ó  ¬áτÑßΓóÑ  ºáó¿ß¿¼«⌐ »ÑαѼѡ¡«⌐ ¿ß»«½∞ºπÑΓß∩ óαѼ∩
  7102.          (¬á¬ »α«¼ÑªπΓ«¬ ¼Ñªñπ ß«ßÑñ¡¿¼¿  ß«íδΓ¿∩¼¿).  ìá»α¿¼Ñα,  ¿ßß½Ññπ∩
  7103.          ¬παßδ á¬µ¿⌐,  óδ ¼«ªÑΓÑ ºáσ«ΓÑΓ∞ αáßß¼«ΓαÑΓ∞ ¿σ ¿º¼Ñ¡Ñ¡¿∩ ó ΓÑτÑ-
  7104.          ¡¿Ñ ñ¡∩.  éá¼ »«φΓ«¼π »«ΓαÑíπÑΓß∩ ¿ºπτ¿Γ∞ ¿º¼Ñ¡Ñ¡¿∩ ¬παßá á¬µ¿⌐ ó
  7105.          ΓÑτÑ¡¿Ñ  ºáñá¡¡«ú«  »Ñα¿«ñá íѺ «Γ¡«ß¿Γѽ∞¡« ¬ ñÑ⌐ßΓó¿Γѽ∞¡«⌐ ¬á-
  7106.          ½Ñ¡ñáα¡«⌐ ñáΓÑ.
  7107.               é φΓ«⌐  ú½áóÑ  íπñπΓ  αáºαáí«Γá¡δ  «Γñѽ∞¡δÑ  ßΓáΓ¿ßΓ¿τÑ߬¿Ñ
  7108.          Σπ¡¬µ¿¿ ¿ ºáΓѼ «¡¿ íπñπΓ «íΩÑñ¿¡Ñ¡δ ó  «ñ¡π  »α«úαá¼¼π,  ¬«Γ«αá∩
  7109.          αáí«ΓáÑΓ  ß »«¼«Θ∞ε ¼Ñ¡ε.  ¥Γá »α«úαἼᠼ«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩
  7110.          αạ««íαạ«ú« ßΓáΓ¿ßΓ¿τÑ߬«ú« á¡á½¿ºá. Ä¡á ΓᬪѠ¼«ªÑΓ ¿ß»«½∞º«-
  7111.          óáΓ∞ß∩ ñ½∩ óδó«ñá úαáΣ¿¬«ó ¡á φ¬αá¡.
  7112.               ¥½Ñ¼Ñ¡Γδ óδí«α¬¿ ó ñá½∞¡Ñ⌐ΦѼ íπñπΓ «í«º¡áτáΓ∞ß∩ íπ¬ó«⌐  D ß
  7113.          ¿¡ñѬ߫¼ «Γ I ñ« N, úñÑ N ∩ó½∩ÑΓß∩ ¡«¼Ñα«¼ »«ß½Ññ¡Ñú« φ½Ñ¼Ñ¡Γá.
  7114.                                                                                
  7115.              Äß¡«ó¡δÑ ßΓáΓ¿ßΓ¿τÑ߬¿Ñ «µÑ¡¬¿
  7116.          -----------------------------------------------------------------
  7117.  
  7118.               æΓáΓ¿ßΓ¿τÑ߬¿⌐ á¡á½¿º  ó« ¼¡«ú¿σ ß½πτá∩σ «ß¡«óδóáÑΓß∩ ¡á »«-
  7119.          ½πτÑ¡¿¿ ΓαÑσ ó᪡δσ óѽ¿τ¿¡,  ¬«Γ«αδÑ ¿¼ÑεΓ ΓᬪѠßἫßΓ«∩Γѽ∞¡«Ñ
  7120.          º¡áτÑ¡¿Ñ.  ¥Γ¿¼¿ óѽ¿τ¿¡á¼¿ ∩ó½∩εΓß∩ ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ,  ¼Ññ¿á¡á ¿
  7121.          ¼«ñá.
  7122.                                       æαÑñ¡ÑÑ º¡áτÑ¡¿Ñ                         
  7123.          -----------------------------------------------------------------
  7124.  
  7125.               æαÑñ¡ÑÑ º¡áτÑ¡¿Ñ  ¿½¿ áα¿Σ¼ÑΓ¿τÑ߬«Ñ ßαÑñ¡ÑÑ ¡á¿í«½ÑÑ Φ¿α«¬«
  7126.          ¿ß»«½∞ºπÑΓß∩ ó ßΓáΓ¿ßΓ¿¬Ñ. ¥Γ« «ñ¡« º¡áτÑ¡¿Ñ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩
  7127.          ñ½∩ »αÑñßΓáó½Ñ¡¿∩ ¡Ñ¬«Γ«α«ú« ¡áí«αá ñá¡¡δσ. é φΓ«¼ ß½πτáÑ ßαÑñ¡ÑÑ
  7128.          º¡áτÑ¡¿Ñ ¼«ª¡« ¡áºóáΓ∞ "µÑ¡Γα«¼ Γ∩ªÑßΓ¿"  φΓ«ú«  ¡áí«αá.  æαÑñ¡ÑÑ
  7129.          º¡áτÑ¡¿Ñ óδτ¿ß½∩ÑΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼: ß¬½áñδóáεΓß∩ óßÑ º¡áτÑ¡¿∩
  7130.          óδí«α¬¿ ¿ αѺπ½∞ΓáΓ ñѽ¿Γß∩ ¡á «íΘÑÑ  τ¿ß½«  º¡áτÑ¡¿⌐.  ìá»α¿¼Ñα,
  7131.          ßπ¼¼á ¡áí«αá º¡áτÑ¡¿⌐
  7132.  
  7133.                              1 2 3 4 5 6 7 8 9 10
  7134.  
  7135.          αáó¡á 55. àß½¿ φΓ« º¡áτÑ¡¿Ñ αáºñѽ¿Γ∞ ¡á τ¿ß½« φ½Ñ¼Ñ¡Γ«ó óδí«α¬¿,
  7136.          αáó¡«Ñ ñÑß∩Γ¿, Γ« »«½πτ¿¼ ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ 5,5.
  7137.  
  7138.               Åα¿ αáºαáí«Γ¬Ñ ßΓáΓ¿ßΓ¿τÑ߬¿σ Σπ¡¬µ¿⌐ ¡á Æπαí« Åá߬á½Ñ íπñѼ
  7139.          ßτ¿ΓáΓ∞,  τΓ« óßÑ ñá¡¡δÑ σαá¡∩Γß∩ ó ¼áßß¿óÑ τ¿ßѽ ß »½áóáεΘÑ⌐ ºá-
  7140.          »∩Γ«⌐ ß ¡áºó᡿Ѽ "DataArray",  Γ¿» ¬«Γ«α«ú« «»αÑñѽ∩ÑΓß∩ »«½∞º«-
  7141.          óáΓѽѼ. üπñѼ ßτ¿ΓáΓ∞, τΓ« τ¿ß½« φ½Ñ¼Ñ¡Γ«ó óδí«α¬¿ ¿ºóÑßΓ¡«. éßÑ
  7142.          Σπ¡¬µ¿¿ ¿ »α«µÑñπαδ íπñπΓ ¿ß»«½∞º«óáΓ∞ ¼áßß¿ó "data" ñ½∩ σαá¡Ñ¡¿∩
  7143.          óδí«α¬¿ ¿ »ÑαѼѡ¡πε "num" ñ½∩ σαá¡Ñ¡¿∩ τ¿ß½á φ½Ñ¼Ñ¡Γ«ó. Åα¿ó«ñ¿-
  7144.          ¼á∩ ¡¿ªÑ Σπ¡¬µ¿∩ óδτ¿ß½∩ÑΓ ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ ñ½∩ ¼áßß¿óá  ¿º "num"
  7145.          τ¿ßѽ  ß  »½áóáεΘÑ⌐ ºá»∩Γ«⌐.  ÉѺπ½∞ΓáΓ »«½πτáÑΓß∩ ó ó¿ñÑ ñá¡¡«ú«
  7146.          Γ¿»á τ¿ß½á ß »½áóáεΘÑ⌐ ºá»∩Γ«⌐:
  7147.  
  7148.  
  7149.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 155 =
  7150.  
  7151.              {  óδτ¿ß½Ñ¡¿Ñ ßαÑñ¡Ñú« º¡áτÑ¡¿∩ }
  7152.              function mean(data: DataArray; num: integer): real;
  7153.              var
  7154.                t: integer;
  7155.                avg: real;
  7156.  
  7157.              begin
  7158.                avg:=0;
  7159.                for t:= 1 to num do avg:=avg+data[t];
  7160.                mean:= avg/num;
  7161.              end; {  ¬«¡Ñµ óδτ¿ß½Ñ¡¿∩ ßαÑñ¡Ñú« º¡áτÑ¡¿∩ }
  7162.  
  7163.               ìá»α¿¼Ñα, Ñß½¿ óδ ó맮óÑΓÑ Σπ¡¬µ¿¿ "Mean" ß ñÑß∩Γ¿φ½Ñ¼Ñ¡Γ¡δ¼
  7164.          ¼áßß¿ó«¼,  ß«ñÑαªáΘ¿¼ τ¿ß½á «Γ 1 ñ« 10,  Γ« ó αѺπ½∞ΓáΓÑ »«½πτ¿ΓÑ
  7165.          5,5.
  7166.  
  7167.                                           îÑñ¿á¡δ                              
  7168.          -----------------------------------------------------------------
  7169.  
  7170.               îÑñ¿á¡«⌐ óδí«α¬¿ ∩ó½∩ÑΓß∩ ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ ¿º óßÑú« π»«α∩ñ«-
  7171.          τÑ¡¡«ú« ¡áí«αá º¡áτÑ¡¿⌐. ìá»α¿¼Ñα, ñ½∩ óδí«α¬¿
  7172.  
  7173.              1 2 3 4 5 6 7 8 9
  7174.  
  7175.          ¼Ññ¿á¡«⌐ íπñÑΓ 5, »«ß¬«½∞¬π φΓ« τ¿ß½« ¡áσ«ñ¿Γß∩ ó ßÑαÑñ¿¡Ñ. é ¡á-
  7176.          í«αÑ º¡áτÑ¡¿⌐
  7177.  
  7178.              1 2 3 4 5 6 7 8 9 10
  7179.  
  7180.          ó ¬áτÑßΓóÑ ¼Ññ¿á¡δ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ 5 ¿½¿ 6.  é σ«α«Φ« π»«α∩-
  7181.          ñ«τÑ¡¡«⌐ óδí«α¬Ñ, ¬á¬«⌐ ∩ó½∩ÑΓß∩ óδí«α¬á ß ¡«α¼á½∞¡δ¼ αáß»αÑñѽÑ-
  7182.          ¡¿Ñ¼,  ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ ¿ ¼Ññ¿á¡á ¿¼ÑεΓ «τÑ¡∞  í½¿º¬¿Ñ  º¡áτÑ¡¿∩.
  7183.          Äñ¡á¬« »« ¼ÑαÑ πóѽ¿τÑ¡¿∩ «Γ¬½«¡Ñ¡¿∩ ºá¬«¡á αáß»αÑñѽѡ¿∩ óδí«α¬¿
  7184.          «Γ ¡«α¼á½∞¡«ú« πóѽ¿τ¿óáÑΓß∩ αạ¿µá  ¼Ñªñπ  ¼Ññ¿á¡«⌐  ¿  ßαÑñ¡¿¼
  7185.          º¡áτÑ¡¿Ñ¼. îÑñ¿á¡á óδτ¿ß½∩ÑΓß∩ »πΓѼ ß«αΓ¿α«ó¬¿ óδí«α¬¿ ó »«α∩ñ¬Ñ
  7186.          ó«ºαáßΓá¡¿∩ º¡áτÑ¡¿⌐ ¿ óδí«αá ßαÑñ¡Ñú« º¡áτÑ¡¿∩ ß ¿¡ñѬ߫¼  N/ 2.
  7187.               ÉѺπ½∞ΓáΓ«¼ »α¿ó«ñ¿¼«⌐ ¡¿ªÑ Σπ¡¬µ¿¿ "Median" ∩ó½∩ÑΓß∩ º¡áτÑ-
  7188.          ¡¿Ñ ßαÑñ¡Ñú« φ½Ñ¼Ñ¡Γá óδí«α¬¿.  ä½∩ ß«αΓ¿α«ó¬¿ ¼áßß¿óá ñá¡¡δσ ¿ß-
  7189.          »«½∞ºπÑΓß∩  ¼«ñ¿Σ¿µ¿α«óá¡¡á∩ óÑαß¿∩ »α«µÑñπαδ íδßΓα«⌐ ß«αΓ¿α«ó¬¿,
  7190.          αáºαáí«Γá¡¡«⌐ ó ú½áóÑ 1:
  7191.  
  7192.          { óÑαß¿∩ »α«µÑñπαδ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ ñ½∩  π»«α∩ñ«τÑ¡¿∩  µÑ½δσ
  7193.                               τ¿ßѽ }
  7194.  
  7195.              procedure QuickSort(var item: DataArray; count: integer);
  7196.                procedure qs(l, r: integer; var it: DataArray);
  7197.                 var
  7198.  
  7199.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 156 =
  7200.  
  7201.                 i, j: integer;
  7202.                 x, y: DataItem;
  7203.                 begin
  7204.                   i: = l; j: = r;
  7205.                   x: = it[(l+r) div 2];
  7206.  
  7207.                 repeat
  7208.                   while it[i] < x do i:= i+1;
  7209.                     while x < it[j] do j:= j-1;
  7210.                       if i<=j then
  7211.                       begin
  7212.                        y:= it[i];
  7213.                        it[i]:= it[j];
  7214.                        it[j]:= y;
  7215.                        i: = i+1; j:= j-1;
  7216.                       end;
  7217.                  until i>j;
  7218.                  if l<j then qs(l, j, it);
  7219.                  if l<r then qs(i, r, it)
  7220.                 end;
  7221.  
  7222.              begin
  7223.                qs(1, count, item);
  7224.              end; {QuickSorte}
  7225.  
  7226.              { »«¿ß¬ ¼Ññ¿á¡δ }
  7227.              function median(data: DataArray; num: integer): real;
  7228.              var
  7229.                dtemp: DataArray;
  7230.                t: integer;
  7231.  
  7232.              begin
  7233.               for t:=1 to num do dtemp[t]:=data[t];
  7234.               QuickSort(dtemp, num);
  7235.               median: = dtemp[num div 2];
  7236.              end;
  7237.  
  7238.                                             î«ñá                               
  7239.          -----------------------------------------------------------------
  7240.  
  7241.               î«ñ«⌐ óδí«α¬¿ ¡áºδóáÑΓß∩ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ óßΓαÑτáÑΓß∩ í«½∞-
  7242.          ΦÑÑ τ¿ß½« αẠó óδí«α¬Ñ. ìá»α¿¼Ñα, ó ¡áí«αÑ º¡áτÑ¡¿⌐
  7243.              1 2 3 4 5 6 7 8 9 3 6 6
  7244.          ¼«ñ«⌐ ∩ó½∩ÑΓß∩ τ¿ß½« 6,  »«ß¬«½∞¬π «¡« óßΓαÑτáÑΓß∩ Γα¿ αáºá. î«ñá
  7245.          ¼«ªÑΓ ¿¼ÑΓ∞ ¡Ñ߬«½∞¬« º¡áτÑ¡¿⌐. ìá»α¿¼Ñα, ó óδí«α¬Ñ º¡áτÑ¡¿⌐
  7246.  
  7247.              10 20 30 40 50 60 70
  7248.  
  7249.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 157 =
  7250.  
  7251.  
  7252.          ¿¼ÑÑΓß∩ ñóÑ ¼«ñδ (30 ¿ 60),  »«ß¬«½∞¬π ¬áªñá∩ ¿º ¡¿σ  óßΓαÑτáÑΓß∩
  7253.          »« ñóá αáºá.
  7254.               ÉѺπ½∞ΓáΓ«¼ Σπ¡¬µ¿¿ "FindMode" ∩ó½∩ÑΓß∩ ¼«ñá  óδí«α¬¿.  àß½¿
  7255.          ¿¼ÑÑΓß∩  ¡Ñ߬«½∞¬« º¡áτÑ¡¿⌐ ¼«ñδ,  Γ« ó αѺπ½∞ΓáΓÑ íπñÑΓ »«½πτÑ¡«
  7256.          »«ß½Ññ¡ÑÑ º¡áτÑ¡¿Ñ.
  7257.  
  7258.              { »«¿ß¬ ¼«ñδ }
  7259.              function FindMode(data: DataArray; num: integer); real;
  7260.              var
  7261.                t, w, count, oldcount: integer;
  7262.                md, oldmd: real;
  7263.  
  7264.              begin
  7265.                oldmd := 0; oldcount := 0;
  7266.                for t := 1 to num do
  7267.                begin
  7268.                 md := data[t];
  7269.                 count := 1;
  7270.                 for w := t+1 to num do
  7271.                   if md=data[w] then count := count+1;
  7272.                   if count>oldcount then
  7273.                   begin
  7274.                     oldmd := md;
  7275.                     oldcount := count;
  7276.                   end;
  7277.                 end;
  7278.                 FindMode := oldmd;
  7279.              end; {  ¬«¡Ñµ »α«µÑñπαδ »«¿ß¬á ¼«ñδ }
  7280.  
  7281.  
  7282.  
  7283.  
  7284.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 158 =
  7285.  
  7286.                         Åα¿¼Ñ¡Ñ¡¿Ñ ßαÑñ¡Ñú« º¡áτÑ¡¿∩, ¼Ññ¿á¡δ ¿ ¼«ñδ           
  7287.          -----------------------------------------------------------------
  7288.  
  7289.               æαÑñ¡ÑÑ º¡áτÑ¡¿Ñ,  ¼Ññ¿á¡á ¿ ¼«ñá ß½πªáΓ «ñ¡«⌐ µÑ½¿, á ¿¼Ñ¡-
  7290.          ¡«,  «íÑß»ÑτÑ¡¿ε «ñ¡«ú« º¡áτÑ¡¿∩, «í«íΘáεΘÑú« óßÑ º¡áτÑ¡¿∩ óδí«α-
  7291.          ¬¿. Äñ¡á¬«, ¬áªñ«Ñ ¿º ¡¿σ »αÑñßΓáó½∩ÑΓ óδí«α¬π »« αạ«¼π. Äíδτ¡«
  7292.          τáΘÑ  óßÑú« ¿ß»«½∞ºπÑΓß∩ ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ óδí«α¬¿.  Å«ß¬«½∞¬π »α¿
  7293.          óδτ¿ß½Ñ¡¿¿ ßαÑñ¡Ñú« º¡áτÑ¡¿∩ ñѽáÑΓß∩ ßπ¼¼¿α«óá¡¿Ñ  óßÑσ º¡áτÑ¡¿⌐
  7294.          óδí«α¬¿, «¡« ∩ó½∩ÑΓß∩ ñÑ⌐ßΓó¿Γѽ∞¡« «ΓαáªÑ¡¿Ñ¼ óßÑσ φ½Ñ¼Ñ¡Γ«ó óδ-
  7295.          í«α¬¿.  Äß¡«ó¡δ¼ ¡Ññ«ßΓáΓ¬«¼ ßαÑñ¡Ñú« º¡áτÑ¡¿∩ ∩ó½∩ÑΓß∩  τπóßΓó¿-
  7296.          Γѽ∞¡«ßΓ∞ ¬ «ñ¡«¼π φ¬ßΓαѼá½∞¡«¼π º¡áτÑ¡¿ε. ìá»α¿¼Ñα, »πßΓ∞ ó ¡Ñ-
  7297.          ¬«⌐ Σ¿α¼Ñ "ô¿ñúeΓ" ºáαáí«Γ«¬ ó½áñѽ∞µá ß«ßΓáó½∩ÑΓ 100000 ñ«½½áα«ó
  7298.          ó  ú«ñ,  á  ºáαáí«Γ«¬ ¬áªñ«ú« ¿º ñÑó∩Γ¿ αáí«τ¿σ ß«ßΓáó½∩ÑΓ 10 000
  7299.          ñ«½½áα«ó ó ú«ñ. æαÑñ¡¿⌐ ºáαáí«Γ«¬ ó φΓ«⌐ Σ¿α¼Ñ íπñÑΓ αáóÑ¡ 19 000
  7300.          ñ«½½áα«ó ó ú«ñ, «ñ¡á¬« φΓá µ¿Σαá ¡Ññ«ßΓáΓ«τ¡« »αáó¿½∞¡« «»¿ßδóáÑΓ
  7301.          ß¿Γπᵿε ó Σ¿α¼Ñ.
  7302.               é ß½πτá∩σ,  á¡á½«ú¿τ¡δσ  «»¿ßá¡¡«¼π,  ¿¡«úñá ó¼ÑßΓ« ßαÑñ¡Ñú«
  7303.          º¡áτÑ¡¿∩ ¿ß»«½∞ºπÑΓß∩ ¼«ñá. î«ñá ºáαáí«Γ¬«ó ó Σ¿α¼Ñ "ô¿ñúeΓ" αáó-
  7304.          ¡á 10 000 ñ«½½áα«ó ó ú«ñ ¿ φΓá µ¿Σαá í«½ÑÑ »αáó¿½∞¡« «ΓαáªáÑΓ αÑ-
  7305.          á½∞¡πε ß¿Γπᵿε ó Σ¿α¼Ñ.  Äñ¡á¬«, ¼«ñá ΓᬪѠ¼«ªÑΓ óó«ñ¿Γ∞ ó ºáí-
  7306.          ½πªñÑ¡¿Ñ.   ÅπßΓ∞   ¡Ñ¬«Γ«αá∩   áóΓ«¼«í¿½∞¡á∩   Σ¿α¼á  »α«¿ºó«ñ¿Γ
  7307.          áóΓ«¼«í¿½¿ »∩Γ¿ αẽ¿τ¡δσ µóÑΓ«ó.  çᠡѬ«Γ«απε ¡Ññѽε í佫 »«½π-
  7308.          τÑ¡«
  7309.               - 100 ºÑ½Ñ¡δσ áóΓ«¼«í¿½Ñ⌐;
  7310.               - 100 «αᡪÑóδσ áóΓ«¼«í¿½Ñ⌐;
  7311.               - 150 ß¿¡¿σ áóΓ«¼«í¿½Ñ⌐;
  7312.               - 200 τÑα¡δσ áóΓ«¼«í¿½Ñ⌐;
  7313.               - 190 íѽδσ áóΓ«¼«í¿½Ñ⌐.
  7314.  
  7315.               çñÑß∞ ¼«ñ«⌐  óδí«α¬¿  ∩ó½∩εΓß∩ τÑα¡δÑ áóΓ«¼«í¿½¿,  »«ß¬«½∞¬π
  7316.          í佫 »α«¿ºóÑñÑ¡« 200 τÑα¡δσ áóΓ«¼«í¿½Ñ⌐,  τΓ« »αÑóδΦáÑΓ τ¿ß½« áó-
  7317.          Γ«¼«í¿½Ñ⌐ ½εí«ú« ñαπú«ú« µóÑΓá.  Äñ¡á¬«, ¡Ñ»αáó¿½∞¡« ñѽáΓ∞ óδó«ñ
  7318.          « Γ«¼,  τΓ« áóΓ«¼«í¿½∞¡á∩ Σ¿α¼á »α«¿ºó«ñ¿Γ ó «ß¡«ó¡«¼  áóΓ«¼«í¿½¿
  7319.          τÑα¡«ú« µóÑΓá.
  7320.               îÑñ¿á¡á »αÑñßΓáó½∩ÑΓ ¿¡ΓÑαÑß ñ½∩ ΓÑσ ß½πτáÑó, ¬«úñá «»αáóñá-
  7321.          ¡« »αÑñ»«½«ªÑ¡¿Ñ « ¡«α¼á½∞¡«¼ αáß»αÑñѽѡ¿¿.  ìá»α¿¼Ñα,  Ñß½¿ óδ-
  7322.          í«α¬á »αÑñßΓáó½∩ÑΓ ß«í«⌐ ß½ÑñπεΘ¿⌐ ¡áí«α:
  7323.  
  7324.               1 2 3 4 5 6 7 8 9 10
  7325.  
  7326.          Γ« ¼Ññ¿á¡«⌐ íπñÑΓ 5 ¿½¿ 6,  á ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ 5,5. é φΓ«¼ ß½πτáÑ
  7327.          ¼Ññ¿á¡á í½¿º¬á ¬ ßαÑñ¡Ñ¼π º¡áτÑ¡¿ε. Äñ¡á¬«, ó ß½ÑñπεΘÑ⌐ óδí«α¬Ñ
  7328.  
  7329.              1 1 1 1 5 100 100 100 100
  7330.  
  7331.          ¼Ññ¿á¡á »«-»αѪ¡Ñ¼π  αáó¡á  5,  á ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ »α¿í½¿º¿Γѽ∞¡«
  7332.          αáó¡« 46.
  7333.               é «»αÑñѽѡ¡δσ ß½πτá∩σ ¡¿ ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ,  ¡¿ ¼Ññ¿á¡á,  ¡¿
  7334.  
  7335.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 159 =
  7336.  
  7337.          ¼«ñá ¡Ñ ¼«úπΓ ñáΓ∞ ñ«ßΓ«óÑα¡πε ¬áαΓ¿¡π.  ¥Γ« »α¿ó«ñ¿Γ ¬ ¿ß»«½∞º«-
  7338.          óá¡¿ε  ñóπσ  ¡á¿í«½ÑÑ ó᪡δσ ßΓáΓ¿ßΓ¿τÑ߬¿σ óѽ¿τ¿¡ - ñ¿ß»Ñαß¿¿ ¿
  7339.          ßΓá¡ñáαΓ¡«ú« «Γ¬½«¡Ñ¡¿∩.
  7340.  
  7341.  
  7342.  
  7343.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 160 =
  7344.  
  7345.                              ä¿ß»Ñαß¿∩ ¿ ßΓá¡ñáαΓ¡«Ñ «Γ¬½«¡Ñ¡¿Ñ                
  7346.          -----------------------------------------------------------------
  7347.  
  7348.               ò«Γ∩ ñ½∩  «µÑ¡¬¿ óßÑ⌐ óδí«α¬¿ «τÑ¡∞ πñ«í¡« ¿ß»«½∞º«óáΓ∞ ½¿Φ∞
  7349.          «ñ¡« º¡áτÑ¡¿Ñ /ΓᬫѠ¬á¬ ßαÑñ¡ÑÑ  º¡áτÑ¡¿Ñ,  ¼«ñá  ¿½¿  ¼Ññ¿á¡á/,
  7350.          φë໫ñσ«ñ ½Ñú¬« ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ¡Ñ»αáó¿½∞¡δ¼ óδó«ñá¼. ìÑΓαπñ¡«
  7351.          »«¡∩Γ∞, τΓ« »α¿τ¿¡á Γᬫú« »«½«ªÑ¡¿∩ ½Ñª¿Γ ¡Ñ ó ßἫ⌐ óѽ¿τ¿¡Ñ, á
  7352.          ó Γ«¼,  τΓ« «ñ¡á óѽ¿τ¿¡á ¡¿¬á¬ ¡Ñ «ΓαáªáÑΓ αáºíα«ß º¡áτÑ¡¿⌐ ñá¡-
  7353.          ¡δσ. ìá»α¿¼Ñα, ó óδí«α¬Ñ
  7354.  
  7355.                   1 1 1 1 9 9 9 9
  7356.  
  7357.          ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ αáó¡« 5.  Äñ¡á¬«,  ó ßἫ⌐ óδí«α¬Ñ ¡ÑΓ ¡¿ «ñ¡«ú«
  7358.          φ½Ñ¼Ñ¡Γá  ß« º¡áτÑ¡¿Ñ¼ 5.  é«º¼«ª¡« óá¼ »«ΓαÑíπÑΓß∩ º¡áΓ∞ ßΓѻѡ∞
  7359.          í½¿º«ßΓ¿ ¬áªñ«ú« φ½Ñ¼Ñ¡Γá óδí«α¬¿ ¬ ÑÑ  ßαÑñ¡Ñ¼π  º¡áτÑ¡¿ε.  ê½¿,
  7360.          ñαπú¿¼¿ ß½«óἿ,  óá¼ »«ΓαÑíπÑΓß∩ º¡áΓ∞ ñ¿ß»Ñαß¿ε º¡áτÑ¡¿⌐.  ç¡á∩
  7361.          ßΓѻѡ∞ ¿º¼Ñ¡Ñ¡¿∩ ñá¡¡δσ óδ ¼«ªÑΓÑ ½πτΦÑ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ ßαÑñ¡ÑÑ
  7362.          º¡áτÑ¡¿Ñ,  ¼Ññ¿á¡π ¿ ¼«ñπ. æΓѻѡ∞ ¿º¼Ñ¡Ñ¡¿∩ º¡áτÑ¡¿⌐ óδí«α¬¿ «»-
  7363.          αÑñѽ∩ÑΓß∩ »πΓѼ óδτ¿ß½Ñ¡¿∩ ¿σ ñ¿ß»Ñαß¿¿ ¿ ßΓá¡ñáαΓ¡«ú«  «Γ¬½«¡Ñ-
  7364.          ¡¿∩.
  7365.               ä¿ß»Ñαß¿∩ ¿ ¬óáñαáΓ¡δ⌐ ¬«αÑ¡∞ ¿º ñ¿ß»Ñαß¿¿, ¡áºδóáѼδ⌐ ßΓá¡-
  7366.          ñáαΓ¡δ¼ «Γ¬½«¡Ñ¡¿Ñ¼, σáαá¬ΓÑਧπεΓ ßαÑñ¡ÑÑ «Γ¬½«¡Ñ¡¿Ñ «Γ ßαÑñ¡Ñú«
  7367.          º¡áτÑ¡¿∩ óδí«α¬¿.  æαÑñ¿ φΓ¿σ ñóπσ óѽ¿τ¿¡ ¡á¿í«½ÑÑ ó᪡«Ñ º¡áτÑ-
  7368.          ¡¿Ñ ¿¼ÑÑΓ ßΓá¡ñáαΓ¡«Ñ «Γ¬½«¡Ñ¡¿Ñ.  ¥Γ« º¡áτÑ¡¿Ñ ¼«ª¡« »αÑñßΓáó¿Γ∞
  7369.          ¬á¬ ßαÑñ¡ÑÑ αáßßΓ«∩¡¿Ñ, ¡á ¬«Γ«α«¼ ¡áσ«ñ∩Γß∩ φ½Ñ¼Ñ¡Γδ «Γ ßαÑñ¡Ñú«
  7370.          φ½Ñ¼Ñ¡Γá óδí«α¬¿.
  7371.               ä¿ß»Ñαß¿ε Γαπñ¡«   ¿¡ΓÑα»αÑΓ¿α«óáΓ∞  ß«ñÑαªáΓѽ∞¡«.  Äñ¡á¬«,
  7372.          ¬óáñαáΓ¡δ⌐ ¬«αÑ¡∞ ¿º φΓ«ú« º¡áτÑ¡¿∩ ∩ó½∩ÑΓß∩ ßΓá¡ñáαΓ¡δ¼ «Γ¬½«¡Ñ-
  7373.          ¡¿Ñ¼ ¿ σ«α«Φ« »«ññáÑΓß∩ ¿¡ΓÑα»αÑΓᵿ¿. æΓá¡ñáαΓ¡«Ñ «Γ¬½«¡Ñ¡¿Ñ óδ-
  7374.          τ¿ß½∩ÑΓß∩ »πΓѼ «»αÑñѽѡ¿∩ ß¡áτá½á ñ¿ß»Ñαß¿¿ ¿ ºáΓѼ  óδτ¿ß½Ñ¡¿∩
  7375.          ¬óáñαáΓ¡«ú« ¬«α¡∩ ¿º ñ¿ß»Ñαß¿¿.
  7376.               ìá»α¿¼Ñα, ñ½∩ óδí«α¬¿
  7377.  
  7378.               11 20 40 30 99 30 50
  7379.  
  7380.          íπñπΓ »«½πτÑ¡δ ß½ÑñπεΘ¿Ñ º¡áτÑ¡¿∩:
  7381.  
  7382.                      D             D-M          (D-M)
  7383.                     11             -29           841
  7384.                     20             -20           400
  7385.                     40              0            0
  7386.                     30             -10           100
  7387.                     99              59           3491
  7388.                     30             -10           100
  7389.                     50              10           100
  7390.          æπ¼¼á      280              0           5022
  7391.          æαÑñ¡ÑÑ
  7392.          º¡áτÑ¡¿Ñ    40              0           717,42
  7393.  
  7394.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 161 =
  7395.  
  7396.  
  7397.               çñÑß∞ ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ ¬óáñαáΓ«ó αạ«ßΓÑ⌐ αáó¡« 717,42. ä½∩
  7398.          »«½πτÑ¡¿∩ ßΓá¡ñáαΓ¡«ú« «Γ¬½«¡Ñ¡¿∩ «ßΓὫß∞ ½¿Φ∞  óº∩Γ∞ ¬óáñαáΓ¡δ⌐
  7399.          ¬«αÑ¡∞  ¿º φΓ«ú« τ¿ß½á.  ÉѺπ½∞ΓáΓ ß«ßΓáó¿Γ »α¿í½¿º¿Γѽ∞¡« 26,78.
  7400.          æ½ÑñπÑΓ »«¼¡¿Γ∞,  τΓ« ßΓá¡ñáαΓ¡«Ñ «Γ¬½«¡Ñ¡¿Ñ ¿¡ΓÑα»αÑΓ¿απÑΓß∩ ¬á¬
  7401.          ßαÑñ¡ÑÑ  αáßßΓ«∩¡¿Ñ,  ¡á  ¬«Γ«α«¼  ¡áσ«ñ∩Γß∩ φ½Ñ¼Ñ¡Γδ «Γ ßαÑñ¡Ñú«
  7402.          º¡áτÑ¡¿∩ óδí«α¬¿.
  7403.               æΓá¡ñáαΓ¡«Ñ «Γ¬½«¡Ñ¡¿Ñ »«¬áºδóáÑΓ,  ¡á߬«½∞¬« σ«α«Φ« ßαÑñ¡ÑÑ
  7404.          º¡áτÑ¡¿Ñ «»¿ßδóáÑΓ óßε óδí«α¬π. àß½¿ óδ ∩ó½∩ÑΓÑß∞ ó½áñѽ∞µÑ¼ ¬«¡-
  7405.          ΣÑΓ¡«⌐  Σáíਪ¿ ¿ ó »«½πτÑ¡¡«¼ «ΓτÑΓÑ ú«ó«α¿Γß∩,  τΓ« ñ¡Ñó¡«⌐ óδ-
  7406.          »π߬ ºá »«ß½Ññ¡¿⌐ ¼Ñß∩µ ß«ßΓáó¿½ 2500 π»á¬«ó«¬,  ¡« »α¿ ßΓá¡ñáαΓ-
  7407.          ¡«¼ «Γ¬½«¡Ñ¡¿¿ ó 2000,  Γ« óδ íπñÑΓÑ º¡áΓ∞,  τΓ« »α«¿ºó«ñßΓóÑ¡¡á∩
  7408.          ½¿¡¿∩ ΓαÑíπÑΓ ½πτΦÑú« π»αáó½Ñ¡¿∩.
  7409.               àß½¿ óáΦá óδí«α¬á »«ñτ¿¡∩ÑΓß∩ ßΓá¡ñáαΓ¡«¼π ¡«α¼á½∞¡«¼π ºá¬«-
  7410.          ¡π αáß»αÑñѽѡ¿∩,  Γ« «¬«½« 68% º¡áτÑ¡¿⌐ óδí«α¬¿ íπñπΓ ¡áσ«ñ¿Γ∞ß∩
  7411.          ó αἬáσ «ñ¡«ú« ßΓá¡ñáαΓ¡«ú« «Γ¬½«¡Ñ¡¿∩ «Γ  ßαÑñ¡Ñú«  º¡áτÑ¡¿∩  ¿
  7412.          «¬«½« 95% íπñπΓ ¡áσ«ñ¿Γ∞ß∩ ó αἬáσ ñóπσ ßΓá¡ñáαΓ¡δσ «Γ¬½«¡Ñ¡¿⌐.
  7413.               ì¿ªÑ »α¿ó«ñ¿Γß∩ Σπ¡¬µ¿∩,  ¬«Γ«αá∩ óδτ¿ß½∩ÑΓ ßΓá¡ñáαΓ¡«Ñ «Γ¬-
  7414.          ½«¡Ñ¡¿Ñ ñ½∩ ºáñá¡¡«⌐ óδí«α¬¿:
  7415.  
  7416.              { óδτ¿ß½¿Γ∞ ßΓá¡ñáαΓ¡«Ñ «Γ¬½«¡Ñ¡¿Ñ }
  7417.              function StdDev(data: DataArray; num: integer):real;
  7418.              var
  7419.                t: integer;
  7420.                std, avg: real;
  7421.  
  7422.              begin
  7423.                avg:= mean(data, num);
  7424.                std := 0;
  7425.                for t := 1 to num do
  7426.                 std := std+(data[t]-avg)*(data[t]-avg));
  7427.  
  7428.                std := std/num;
  7429.                StdDev := sqrt(std);
  7430.              end; { ¬«¡Ñµ Σπ¡¬µ¿¿ óδτ¿ß½Ñ¡¿∩ ßΓá¡ñáαΓ¡«ú« «Γ¬½«¡Ñ¡¿∩ }
  7431.  
  7432.  
  7433.  
  7434.  
  7435.  
  7436.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 162 =
  7437.  
  7438.                               éδó«ñ ¡á φ¬αá¡ »α«ßΓδσ úαáΣ¿¬«ó                  
  7439.          -----------------------------------------------------------------
  7440.  
  7441.               Åα¿¼Ñ¡Ñ¡¿Ñ úαáΣ¿¬«ó ó ßΓáΓ¿ßΓ¿¬Ñ »«ºó«½∩ÑΓ  »α«ßΓ«  ¿  Γ«τ¡«
  7442.          »ÑαÑñáΓ∞  ß¼δß½  ñá¡¡δσ.  âαáΣ¿¬  »«ºó«½∩ÑΓ ßαáºπ ªÑ »«¡∩Γ∞,  ¬á¬
  7443.          αáß»αÑñѽѡδ ñá¡¡δÑ ¿ ¬á¬ ¿º¼Ñ¡∩εΓß∩ ¿σ º¡áτÑ¡¿∩.  çñÑß∞ αáßß¼áΓ-
  7444.          α¿óáεΓß∩ Γ«½∞¬« ñóπ¼Ñα¡δÑ úαáΣ¿¬¿, ¿ß»«½∞ºπεΘ¿Ñ ñóπ¼Ñα¡πε ß¿ßΓѼπ
  7445.          ¬««αñ¿¡áΓ X-Y.  /Å«½πτÑ¡¿Ñ ΓαÑσ¼Ñα¡δσ úαáΣ¿¬«ó ∩ó½∩ÑΓß∩ «Γñѽ∞¡«⌐
  7446.          ñ¿ßµ¿»½¿¡«⌐ ¿ óδσ«ñ¿Γ ºá αἬ¿ ñá¡¡«⌐ ¬¡¿ú¿/.
  7447.               ê¼ÑÑΓß∩ ñóÑ αáß»α«ßΓαá¡Ñ¡¡δÑ Σ«α¼δ ñóπ¼Ñα¡δσ úαáΣ¿¬«ó: ßΓ«½-
  7448.          í¿¬«óδÑ  ñ¿áúαá¼¼δ  ¿  Γ«τÑτ¡δÑ úαáΣ¿¬¿.  é ßΓ«½í¿¬«ó«⌐ ñ¿áúαá¼¼Ñ
  7449.          ¬áªñ«Ñ º¡áτÑ¡¿Ñ »αÑñßΓáó½∩ÑΓß∩ ºáΦΓα¿{«óá¡¡δ¼ ßΓ«½í¿¬«¼.  ìá  Γ«-
  7450.          τÑτ¡«¼  úαáΣ¿¬Ñ ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ ¿º«íαáªáÑΓß∩ Γ«τ¬«⌐ ß ¬««αñ¿¡áΓἿ
  7451.          X ¿ Y. Åα¿¼Ñαδ úαáΣ¿¬«ó »«¬áºá¡δ ¡á α¿ß.23.
  7452.  
  7453.                   │                   │
  7454.                   │          ┌┐       │
  7455.                   │    ┌┐    ││       │
  7456.                   │ ┌┐ ││    ││       │
  7457.                   │ ││ ││ ┌┐ ││       │
  7458.                   │ ││ ││ ││ ││       │
  7459.                   └─┴┴─┴┴─┴┴─┴┴────   └─────────────────
  7460.                   a                    í
  7461.              É¿ß.23. Åα¿¼Ñαδ ßΓ«½í¿¬«ó«⌐ ñ¿áúαá¼¼δ (á) ¿ Γ«τÑτ¡«ú« úαáΣ¿¬á
  7462.          (í)
  7463.  
  7464.               æΓ«½í¿¬«óá∩ ñ¿áúαἼᠠ«íδτ¡«  ¿ß»«½∞ºπÑΓß∩ »α¿ «Γ¡«ß¿Γѽ∞¡«
  7465.          ¡Ñí«½∞Φ«¼ ¬«½¿τÑßΓóÑ ñá¡¡δσ, ¡á»α¿¼Ñα, »α¿ »αÑñßΓáó½Ñ¡¿¿ óὫó«ú«
  7466.          ¡áµ¿«¡á½∞¡«ú«  »α«ñπ¬Γá  ºá »«ß½Ññ¡¿Ñ ñÑß∩Γ∞ ½ÑΓ ¿½¿ ÑªÑ¼Ñß∩τ¡«ú«
  7467.          óδ»π߬ᠡᠻαÑñ»α¿∩Γ¿¿ ó »α«µÑ¡Γ¡«¼ «Γ¡«ΦÑ¡¿¿.  Æ«τÑτ¡δÑ  úαáΣ¿¬¿
  7468.          «íδτ¡«  ¿ß»«½∞ºπεΓß∩ »α¿ óδó«ñÑ í«½∞Φ«ú« τ¿ß½á ñá¡¡δσ,  ¡á»α¿¼Ñα,
  7469.          ñ½∩ óδó«ñá ÑªÑñ¡Ñó¡«ú« ¬παßá á¬µ¿⌐ ¡Ñ¬«Γ«α«⌐ Σ¿α¼δ ó ΓÑτÑ¡¿Ñ  ú«-
  7470.          ñá. Åα¿¼Ñ¡Ñ¡¿Ñ »«½πτ¿½á ΓᬪѠ¼«ñ¿Σ¿¬áµ¿∩ Γ«τÑτ¡«ú« úαáΣ¿¬á, ¬«ú-
  7471.          ñá ß«ßÑñ¡¿Ñ Γ«τ¬¿ ß«Ññ¿¡∩εΓ ½¿¡¿Ñ⌐.
  7472.               Éáºαáí«Γá¡¡δÑ ó  φΓ«⌐ ú½áóÑ úαáΣ¿τÑ߬¿Ñ Σπ¡¬µ¿¿ ΓαÑíπεΓ »α¿-
  7473.          ¼Ñ¡Ñ¡¿∩ Å¥éî Σ¿α¼δ IBM (¿½¿ ß«ó¼ÑßΓ¿¼δσ ß ¡¿¼¿ Å¥éî) ß  úαáΣ¿τÑß-
  7474.          ¬¿¼ áñá»ΓÑα«¼ CGA ¿½¿ EGA.  ¥Γ¿ »«ñ»α«úαá¼¼δ αáßßτ¿Γá¡δ ¡á »α¿¼Ñ-
  7475.          ¡Ñ¡¿¿ τÑΓóÑαΓ«ú« αѪ¿¼á óδó«ñá úαáΣ¿¬«ó. âαáΣ¿τÑ߬¿Ñ »«ñ»α«úαá¼¼δ
  7476.          ¿ß»«½∞ºπεΓ  úαáΣ¿τÑ߬¿Ñ  Σπ¡¬µ¿¿ Æπαí« Åá߬á½∩ óÑαß¿¿ 4,  ¬«Γ«αδÑ
  7477.          «Γ½¿τáεΓß∩ «Γ úαáΣ¿τÑ߬¿σ Σπ¡¬µ¿⌐ »αÑñδñπΘ¿σ óÑαß¿⌐.  àß½¿ óδ ¿ß-
  7478.          »«½∞ºπÑΓÑ  »αÑñδñπΘπε  óÑαß¿ε  Æπαí« Åá߬á½∩,  Γ« óá¼ »«ΓαÑíπÑΓß∩
  7479.          ßñѽáΓ∞ ß««ΓóÑΓßΓóπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩.
  7480.               êß»«½∞ºπεΓß∩ ß½ÑñπεΘ¿Ñ úαáΣ¿τÑ߬¿Ñ Σπ¡¬µ¿¿:
  7481.  
  7482.          ìáºóá¡¿Ñ                 ìạáτÑ¡¿Ñ
  7483.          ----------------   ----------------------------------------------
  7484.          InitGraph          ê¡¿µ¿¿απÑΓ úαáΣ¿τÑ߬«Ñ «í«απñ«óá¡¿Ñ
  7485.          SetColor           ôßΓá¡áó½¿óáÑΓ µóÑΓ α¿ßπ¡¬á ñ½∩ í«½∞Φ¿¡ßΓóá
  7486.  
  7487.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 163 =
  7488.  
  7489.                             úαáΣ¿τÑ߬¿σ »α«úαá¼¼
  7490.          SetLine            Ä»αÑñѽ∩ÑΓ Γ¿» ½¿¡¿⌐, óδó«ñ¿¼δσ »«ßαÑñßΓó«¼
  7491.                             »α«µÑñπαδ "Line"
  7492.          Line               éδó«ñ¿Γ ½¿¡¿¿ ¡á φ¬αá¡ ß ΓѬπΘ¿¼ µóÑΓ«¼
  7493.          PupPixel           éδó«ñ¿Γ φ½Ñ¼Ñ¡Γ ¿º«íαáªÑ¡¿∩ ó ºáñá¡¡«¼ µóÑΓÑ
  7494.          RestoreCrtMode     é«ßßΓá¡áó½¿óáÑΓ αѪ¿¼ αáí«Γδ ó¿ñÑ«ΓÑନ¡á½á
  7495.                             ó ß«ßΓ«∩¡¿Ñ ñ« ó맮óá "InitGraph"
  7496.          OutTextXY          çỿßδóáÑΓ ßΓ᫬π ó ºáñá¡¡πε »«º¿µ¿ε,
  7497.                             ¡áσoñ∩ß∞ ó úαáΣ¿τÑ߬«¼ αѪ¿¼Ñ αáí«Γδ
  7498.  
  7499.               ¥Γ¿ »«ñ»α«úαá¼¼δ ¿ß»«½∞ºπεΓ í½«¬ "Graph". Å«ñα«í¡«Ñ «»¿ßá¡¿Ñ
  7500.          φΓ¿σ ¿ ñαπú¿σ úαáΣ¿τÑ߬¿σ Σπ¡¬µ¿⌐ ñáÑΓß∩ ó ß»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ
  7501.          »« ∩ºδ¬π Æπαí« Åá߬á½∞ óÑαß¿¿ 4.
  7502.               ì¿ªÑ »α¿ó«ñ¿Γß∩  »α«ßΓá∩  úαáΣ¿τÑ߬á∩  Σπ¡¬µ¿∩,  Σ«α¼¿απεΘá∩
  7503.          ßΓ«½í¿¬«óπε ñ¿áúαá¼¼π ¡á Å¥éî Σ¿α¼δ IBM:
  7504.  
  7505.                    uses
  7506.                      crt, graph;
  7507.  
  7508.                    const
  7509.                      MAX = 100;
  7510.  
  7511.                    type
  7512.                      DataItem = real;
  7513.                      DataArray = array [1..MAX] of DataItem;
  7514.                    var
  7515.                      data: DataArray;
  7516.  
  7517.                    procedure Simpleplot(data: DataArray; num: integer);
  7518.  
  7519.                    var
  7520.                      t, incr:integer;
  7521.                      a: real;
  7522.                      ch: char;
  7523.                      GraphDriver, Craphmode : ineger;
  7524.                      x, y : integer;
  7525.  
  7526.                    begin
  7527.                      { πßΓá¡«ó¬á αѪ¿¼á 4 ñ½∩ áñá»ΓÑα«ó EGA ¿ CGA }
  7528.                      GraphDriver := CGA ;
  7529.                      Craphmode := CGAC1 ;
  7530.                      InitGraph(GraphDriver, Craphmode, '');
  7531.                      SetColor(1);
  7532.                      SetLineStyle(Solid, 0, NormWidth);
  7533.  
  7534.                     { óδτÑατ¿óá¡¿Ñ ßÑΓ¬¿ }
  7535.                       OutTextXY(0, 191, '0'); { ¼¿¡¿¼π¼ }
  7536.                       OutTextXY(0, 0, '190'); { ¼á¬ß¿¼π¼ }
  7537.  
  7538.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 164 =
  7539.  
  7540.                       OutTextXY(290, 191, '300'); { τ¿ß½« }
  7541.                       for t := 1 to 19 do PutPixel(0, t*10, 1);
  7542.                       SetColor(3);
  7543.                       Line(x, 190, x, 190-y);
  7544.                       SetColor(2);
  7545.                       for t := 1 to num do
  7546.                        begin
  7547.                          a := data[t];
  7548.                          y := trunc(a);
  7549.                          incr := 10;
  7550.                          x := ((t-1)*incr)+20
  7551.                          Line(x, 190, x, 190-y);
  7552.                        end;
  7553.                        ch:= ReadKey;
  7554.                        RestoreCrtMode;
  7555.                      end; { ¬«¡Ñµ »α«µÑñπαδ óδóδó«ñá »α«ßΓ«ú« úαáΣ¿¬á }
  7556.  
  7557.               ä½∩ Å¥éî Σ¿α¼δ IBM αѪ¿¼ ß ¼á¬ß¿¼á½∞¡«⌐ αáºαÑΦáεΘÑ⌐  ß»«ß«í-
  7558.          ¡«ßΓ∞ε  ó  320σ200  Γ«τѬ  πßΓá¡áó½¿óáÑΓß∩  ß  »«¼«Θ∞ε  »α«µÑñπαδ
  7559.          "InitGraph". Åα«µÑñπαá "OutTextXy" πßΓá¡áó½¿óáÑΓ ¬παß«α ó »«º¿µ¿ε
  7560.          ß  ΓαÑíπÑ¼δ¼¿  ¬««αñ¿¡áΓἿ ò ¿ Y ¿ ñѽáÑΓ óδó«ñ ºáñá¡¡«⌐ ßΓ᫬¿.
  7561.          Åα«µÑñπαá "Line" ¿¼ÑÑΓ ß½ÑñπεΘπε «íΘπε Σ«α¼π:
  7562.                Line (¡áτὫ_ò, ¡áτὫ_Y, ¬«¡Ñµ_ò, ¬«¡Ñµ_Y), úñÑ óßÑ º¡áτÑ-
  7563.          ¡¿∩ ºáñáεΓß∩ µÑ½δ¼¿ τ¿ß½á¼¿. Åα¿ óδó«ñÑ ßΓ᫬¿ ¿ß»«½∞ºπÑΓß∩ ΓѬπ-
  7564.          Θ¿⌐ µóÑΓ,  «»αÑñѽѡ¡δ⌐ »α¿ ó맮óÑ »α«µÑñπαδ "SetColor". ä«»«½¡¿-
  7565.          Γѽ∞¡δÑ ßóÑñÑ¡¿∩ óδ ¼«ªÑΓÑ  ¡á⌐Γ¿  ó  ß»αáó«τ¡«¼  απ¬«ó«ñßΓóÑ  »«
  7566.          ∩ºδ¬π Æπαí« Åá߬á½∞.
  7567.               é φΓ«¼ »α¿¼ÑαÑ »α«µÑñπαá óδó«ñá úαáΣ¿¬á  «í½áñáÑΓ  ßÑα∞Ѻ¡δ¼
  7568.          ¡Ññ«ßΓáΓ¬«¼. ÅαÑñ»«½áúáÑΓß∩, τΓ« óßÑ ñá¡¡δÑ ¡áσ«ñ∩Γß∩ ó ñ¿á»áº«¡Ñ
  7569.          «Γ ¡π½∩ ñ« 190,  »«ß¬«½∞¬π Γ«½∞¬« φΓ¿ º¡áτÑ¡¿∩ ¼«ª¡« ºáñáóáΓ∞ »α¿
  7570.          ó맮óÑ úαáΣ¿τÑ߬«⌐ Σπ¡¬µ¿¿ "Line".  ¥Γ« »αÑñ»«½«ªÑ¡¿Ñ σ«α«Φ« ßαá-
  7571.          í«ΓáÑΓ ó ¼á½«óÑα«∩Γ¡«¼ ß½πτáÑ,  ¬«úñá óáΦ¿ ñá¡¡δÑ Γ«τ¡« íπñπΓ ½Ñ-
  7572.          ªáΓ∞ ó φΓ«¼ ñ¿á»áº«¡Ñ. ä½∩ óδó«ñá ñá¡¡δσ ó ½εí«¼ ñ¿á»áº«¡Ñ º¡áτÑ-
  7573.          ¡¿⌐ φΓ¿ ñá¡¡δÑ ñ«½ª¡δ íδΓ∞ ¡«α¼á½¿º«óá¡δ »ÑαÑñ óδó«ñ«¼ Γá¬, τΓ«íδ
  7574.          ¡Ñ óδσ«ñ¿Γ∞ ºá ñ«»πßΓ¿¼δ⌐ ñ¿á»áº«¡ º¡áτÑ¡¿⌐.  ì«α¼á½¿ºáµ¿∩ ºá¬½ε-
  7575.          τáÑΓß∩ ó »«¿ß¬Ñ ¬«φΣΣ¿µ¿Ñ¡Γá «Γ¡«ΦÑ¡¿∩  ñÑ⌐ßΓó¿Γѽ∞¡«ú« ñ¿á»áº«¡á
  7576.          º¡áτÑ¡¿⌐  ñá¡¡δσ  ¿ Σ¿º¿τÑ߬«ú« ñ¿á»áº«¡á αáºαÑΦáεΘÑ⌐ ß»«ß«í¡«ßΓ¿
  7577.          φ¬αá¡á.  ç¡áτÑ¡¿Ñ ¬áªñ«ú« ñá¡¡«ú« ºáΓѼ ñ«½ª¡« íδΓ∞  π¼¡«ªÑ¡«  ¡á
  7578.          φëଫφΣΣ¿µ¿Ñ¡Γ ¿ »«½πτÑ¡« τ¿ß½«,  »«»áñáεΘÑÑ ó ñ¿á»áº«¡ φ¬αá¡á.
  7579.          ì«α¼á½¿ºáµ¿∩ »« «ß¿ Y ñ«½ª¡á ñѽáΓ∞ß∩ »« ß½ÑñπεΘÑ⌐ Σ«α¼π½Ñ:
  7580.                           250
  7581.                  Y = Y* ─────────
  7582.                        (max-min)
  7583.          úñÑ Y ∩ó½∩ÑΓß∩ ΓѼ º¡áτÑ¡¿Ñ¼, ¬«Γ«α«Ñ »ÑαÑñáÑΓß∩ »α«µÑñπαÑ óδó«ñá
  7584.          úαáΣ¿¬á.  Æá ªÑ Σ«α¼π½á ñ«½ª¡á ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ αáßΦ¿αÑ¡¿∩ Φ¬á-
  7585.          ½δ,  ¬«úñá ñ¿á»áº«¡ º¡áτÑ¡¿⌐ ñá¡¡δσ «τÑ¡∞ ¼á½Ñ¡∞¬¿⌐. é Γᬫ¼ ß½π-
  7586.          τáÑ φ¬αá¡ ñ¿ß»½Ñ∩ íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ¡á¿í«½ÑÑ αᵿ«¡á½∞¡«.
  7587.               öπ¡¬µ¿∩ "BarPlot" ¼áßΦΓáí¿απÑΓ «ß¿ ò ¿ Y ¿ óδó«ñ¿Γ ßΓ«½í¿¬«-
  7588.  
  7589.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 165 =
  7590.  
  7591.          óδ⌐ úαáΣ¿¬ ñ½∩ 300 φ½Ñ¼Ñ¡Γ«ó.  ÅαÑñ»«½áúáÑΓß∩, τΓ« »« «ß¿ ò ºáñá-
  7592.          ÑΓß∩ óαѼ∩ ß Ññ¿¡¿τ¡δ¼ Φáú«¼.  Åα«µÑñπαá ¡«α¼á½¿ºáµ¿¿ ¡áσ«ñ¿Γ ¼¿-
  7593.          ¡¿¼á½∞¡«Ñ  ¿ ¼á¬ß¿¼á½∞¡«Ñ º¡áτÑ¡¿Ñ ó óδí«α¬Ñ ¿ ºáΓѼ óδ - τ¿ß½∩ÑΓ
  7594.          ¿σ αạ¿µπ.  ¥Γ« τ¿ß½«,  ¬«Γ«α«Ñ »αÑñßΓáó½∩ÑΓ αáºíα«ß ¼Ñªñπ ¼¿¡¿-
  7595.          ¼á½∞¡δ¼  ¿ ¼á¬ß¿¼á½∞¡δ¼ º¡áτÑ¡¿∩¼¿,  ºáΓѼ ñѽ¿Γß∩ ¡á αáºαÑΦáεΘπε
  7596.          ß»«ß«í¡«ßΓ∞ φ¬αá¡á,.  ä½∩ úαáΣ¿τÑ߬«ú« αѪ¿¼á 4 φΓ«  τ¿ß½«  αáó¡«
  7597.          190 ñ½∩ «ß¿ Y ¿ 300 ñ½∩ «ß¿ ò /»«ß¬«½∞¬π ΓαÑíπÑΓß∩ ¼ÑßΓ« ñ½∩ úαá-
  7598.          ¡¿τ¡δσ »«½Ñ⌐ ¿ «ß¡«ó¡«⌐ ßΓ᫬¿/. Å«½πτÑ¡¡δ⌐ ¬«φΣΣ¿µ¿Ñ¡Γ ºáΓѼ ¿ß-
  7599.          »«½∞ºπÑΓß∩ ñ½∩ ¼áßΦΓáí¿α«óá¡¿∩ ñá¡¡δσ óδí«α¬¿.
  7600.  
  7601.                    { óδó«ñ ßΓ«½í¿¬«ó«⌐ ñ¿áúαá¼¼δ }
  7602.  
  7603.                    procedure BarPlot(data: DataArray; num: integer);
  7604.                    var
  7605.                      x, y, max, min, incr, t:integer;
  7606.                      a, norm, spread: real;
  7607.                      ch: char;
  7608.                      value: string[80];
  7609.  
  7610.                    begin
  7611.                      { πßΓá¡«ó¬á αѪ¿¼á 4 ñ½∩ áñá»ΓÑα«ó EGA ¿ CGA }
  7612.                      GraphDriver := CGA ;
  7613.                      Craphmode := CGAC1 ;
  7614.                      InitGraph(GraphDriver, Craphmode, '');
  7615.                      SetColor(1);
  7616.                      SetLineStyle(Solid, 0, NormWidth);
  7617.  
  7618.                      { ß¡áτá½á ñ½∩ ¡«α¼á½¿ºáµ¿¿ ¡áσ«ñ¿Γß∩ ¼¿¡¿¼á½∞¡«Ñ ¿
  7619.                        ¼á¬ß¿¼á½∞¡«Ñ º¡áτÑ¡¿Ñ }
  7620.                      max := getmax(data, num)
  7621.                      min := getmin(data, num)
  7622.                      if min>0 then min := 0;
  7623.                      spread := max - min;
  7624.                      norm := 190/spread;
  7625.  
  7626.                     { óδτÑατ¿óá¡¿Ñ ßÑΓ¬¿ }
  7627.                       str(min, value);
  7628.                       OutTextXY(0, 191, value); { ¼¿¡¿¼π¼ }
  7629.                       str(max, value);
  7630.                       OutTextXY(0, 0, value); { ¼á¬ß¿¼π¼ }
  7631.                       str(num, value);
  7632.                       OutTextXY(300, 191, value); { τ¿ß½« }
  7633.                       for t := 1 to 19 do PupPixel(0, t*10, 1);
  7634.                       SetColor(3);
  7635.                       Line(0, 190, 320, 190);
  7636.                       SetColor(2);
  7637.  
  7638.                     { óδó«ñ ñá¡¡δσ }
  7639.  
  7640.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 166 =
  7641.  
  7642.                       for t := 1 to num do
  7643.                        begin
  7644.                          a := data[t]-min;
  7645.                          a := a*norm;
  7646.                          y := trunc(a);
  7647.                          incr := 300 div num;
  7648.                          x := ((t-1)*incr)+20
  7649.                          Line(x, 190, x, 190-y);
  7650.                        end;
  7651.                        ch := Readkey;
  7652.                        RestoreCrtMode;
  7653.                    end; { BarPlot }
  7654.  
  7655.               ¥Γá óÑαß¿∩ »α«úαá¼¼δ ¬α«¼Ñ Γ«ú« ñѽáÑΓ óδó«ñ Γ«τѬ »« «ß¿ Y.
  7656.          ÉáßßΓ«∩¡¿Ñ ¼Ñªñπ Γ«τ¬á¼¿ αáó¡« 1/20 αạ¿µÑ ¼Ñªñπ  ¼á¬ß¿¼á½∞¡δ¼ ¿
  7657.          ¼¿¡¿¼á½∞¡δ¼  º¡áτÑ¡¿Ñ¼.  ìá  α¿ß.24 »α¿ó«ñ¿Γß∩ »α¿¼Ñα ßΓ«½í¿¬«ó«⌐
  7658.          ñ¿áúαá¼¼δ ñ½∩ ñóáñµáΓ¿ φ½Ñ¼Ñ¡Γ«ó,  »«½πτÑ¡¡«⌐ ß »«¼«Θ∞ε »α«µÑñπαδ
  7659.          "BarPlot".  è«¡Ñτ¡«, φΓá »α«µÑñπαá ¡Ñ «í½áñáÑΓ óßѼ¿ ªÑ½áΓѽ∞¡δ¼¿
  7660.          ßó«⌐ßΓóἿ, ¡« «¡á ñáÑΓ σ«α«Φ¿⌐ óδó«ñ «ñ¡«⌐ óδí«α¬¿. ¥Γπ »α«µÑñπ-
  7661.          απ  ¼«ª¡«  ½Ñú¬« πß«óÑαΦÑ¡ßΓó«óáΓ∞ ¿ ßñѽáΓ∞ ÑÑ í«½ÑÑ πñ«í¡«⌐ ñ½∩
  7662.          ¬«¡¬αÑΓ¡«ú« ß½πτá∩.
  7663.  
  7664.             .95                                         |
  7665.             .                                           |              |
  7666.             .             |                             |              |
  7667.             .       |     |                             |     |        |
  7668.             .       |     |        |                    |  |  |        |
  7669.             .       |     |        |                    |  |  |        |
  7670.             .    |  |     |     |  |                    |  |  |        |
  7671.             .    |  |     |     |  |                    |  |  |        |
  7672.             .    |  |     |     |  |        |           |  |  |        |
  7673.             .    |  |     |     |  |        |           |  |  |     |  |
  7674.             .    |  |     |  |  |  |        |  |  |     |  |  |     |  |
  7675.             .    |  |     |  |  |  |        |  |  |     |  |  |     |  |
  7676.             .    |  |     |  |  |  |     |  |  |  |     |  |  |  |  |  |
  7677.             .    |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  7678.             . |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  7679.             . |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  7680.             . |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  7681.             __|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
  7682.                                                                20
  7683.  
  7684.                É¿ß 24. Åα¿¼Ñα ßΓ«½í¿¬«ó«⌐ ñ¿áúαá¼¼δ, »«½πτÑ¡¡«⌐ ß »«¼«Θ∞ε
  7685.                        »α«µÑñπαδ "BarPlot"
  7686.  
  7687.               ä½∩ »«½πτÑ¡¿∩ »α«µÑñπαδ »« óδó«ñπ Γ«τÑτ¡δσ úαáΣ¿¬«ó ΓαÑíπÑΓ-
  7688.          ß∩ ßñѽáΓ∞ Γ«½∞¬« ¡Ñí«½∞Φ¿Ñ ¿º¼Ñ¡Ñ¡¿∩ ó »α«µÑñπαÑ  "BarPlot"  Äß-
  7689.          ¡«ó¡«Ñ  ¿º¼Ñ¡Ñ¡¿Ñ ßó∩ºá¡« ß ºá¼Ñ¡«⌐ Σπ¡¬µ¿¿ "Line" ¡á Σπ¡¬µ¿ε óδ-
  7690.  
  7691.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 167 =
  7692.  
  7693.          ó«ñá «ñ¡«⌐ Γ«τ¬¿.  ä½∩ φΓ«ú« ¿ß»«½∞ºπÑΓß∩  Σπ¡¬µ¿∩  "PutPixel"  é
  7694.          «íΘѼ ó¿ñÑ «¡á ºá»¿ßδóáÑΓß∩ ó ß½ÑñπεΘÑ⌐ Σ«α¼Ñ:
  7695.  
  7696.                    PutPixel(x,y,µóÑΓ)
  7697.  
  7698.          úñÑ óßÑ áαúπ¼Ñ¡Γδ ∩ó½∩εΓß∩ µÑ½δ¼¿ τ¿ß½á¼¿.  ûóÑΓ ¬áªñ«⌐ óδó«ñ¿¼«⌐
  7699.          Γ«τ¬¿ ºáñáÑΓß∩ »áαá¼ÑΓα«¼ "µóÑΓ".  ä½∩ αѪ¿¼á 4 «¡ ñ«½ªÑ¡  »α¿¡¿-
  7700.          ¼áΓ∞ º¡áτÑ¡¿∩ «Γ 0 ñ« 3. ì¿ªÑ »α¿ó«ñ¿Γß∩ Σπ¡¬µ¿∩ "ScatterPlot":
  7701.  
  7702.                    { óδó«ñ Γ«τÑτ¡«ú« úαáΣ¿¬á }
  7703.  
  7704.                    procedure ScatterPlot(data: DataArray; num, ymin,
  7705.                    ymax, xmax, xmin: integer);
  7706.                    var
  7707.                      x, y, incr, t:integer;
  7708.                      a, norm, spread: real;
  7709.                      ch: char;
  7710.                      value: string[80];
  7711.                    begin
  7712.  
  7713.                      { ß¡áτá½á ñ½∩ ¡«α¼á½¿ºáµ¿¿ ¡áσ«ñ¿Γß∩ ¼¿¡¿¼á½∞¡«Ñ ¿
  7714.                        ¼á¬ß¿¼á½∞¡«Ñ º¡áτÑ¡¿Ñ }
  7715.  
  7716.                      if ymin>0 then ymin := 0;
  7717.                      spread := ymax - ymin;
  7718.                      norm := 190/spread;
  7719.  
  7720.                     { óδτÑατ¿óá¡¿Ñ ßÑΓ¬¿ }
  7721.                       str(ymin, value);
  7722.                       OutTextXY(0, 191, value); { ¼¿¡¿¼π¼ }
  7723.                       str(ymax, value);
  7724.                       OutTextXY(0, 0, value); { ¼á¬ß¿¼π¼ }
  7725.                       str(xmax, value);
  7726.                       OutTextXY(300, 191, value); { τ¿ß½« }
  7727.                       SetColor(3);
  7728.                       for t := 1 to 19 do PutPixel(0, t*10, 1);
  7729.                       Line(0, 190, 320, 190);
  7730.                       SetColor(2);
  7731.  
  7732.                     { óδó«ñ ñá¡¡δσ }
  7733.                       for t := 1 to num do
  7734.                        begin
  7735.                          a := data[t]-ymin;
  7736.                          a := a*norm;
  7737.                          y := trunc(s);
  7738.                          incr := 300 div xmax;
  7739.                            x := ((t-1)*incr)+20;
  7740.                            PutPixel(x, 190-y, 2);
  7741.  
  7742.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 168 =
  7743.  
  7744.                         end;
  7745.                       end; { ¬«¡Ñµ »α«µÑñπαδ óδó«ñá Γ«τÑτ¡«ú« úαáΣ¿¬á}
  7746.  
  7747.               é »α«µÑñπαÑ "BarPlot" ¼¿¡¿¼á½∞¡«Ñ  ¿  ¼á¬ß¿¼á½∞¡«Ñ  º¡áτÑ¡¿Ñ
  7748.          óδτ¿ß½∩ÑΓß∩ ó¡πΓα¿ »α«µÑñπαδ.  é «Γ½¿τ¿Ñ «Γ φΓ«⌐ »α«µÑñπαδ ó »α«-
  7749.          µÑñπαÑ "ScatterPlon" ¡Ñ ñѽáÑΓß∩ φΓ¿σ óδτ¿ß½Ñ¡¿⌐, á ¼¿¡¿¼á½∞¡«Ñ ¿
  7750.          ¼á¬ß¿¼á½∞¡«Ñ  º¡áτÑ¡¿∩ »ÑαÑñáεΓß∩ ßἫ⌐ »α«µÑñπαÑ.  ¥Γ« »«ºó«½∩ÑΓ
  7751.          óδó«ñ¿Γ∞ ßαáºπ ¡Ñ߬«½∞¬« úαáΣ¿¬«ó ¡á  «ñ¿¡  φ¬αá¡  íѺ  ¿º¼Ñ¡Ñ¡¿∩
  7752.          ¼áßΦΓáíá, ¡á¬½áñδóá∩ Γᬿ¼ «íαẫ¼ «ñ¿¡ úαáΣ¿¬ ¡á ñαπú«⌐.
  7753.  
  7754.                            Åα«ú¡«º¿α«óá¡¿Ñ ¿ παáó¡Ñ¡¿Ñ αÑúαÑßß¿¿               
  7755.          -----------------------------------------------------------------
  7756.  
  7757.               æΓáΓ¿ßΓ¿τÑ߬á∩ ¿¡Σ«α¼áµ¿∩  τáßΓ«  ¿ß»«½∞ºπÑΓß∩  ñ½∩   óδó«ñá
  7758.          "«í«ß¡«óá¡¡δσ  »αÑñ»«½«ªÑ¡¿⌐"  « íπñπΘѼ.  ò«Γ∩ ¬áªñ«¼π ¿ºóÑßΓ¡«,
  7759.          τΓ« ¡á «ß¡«óÑ »α«Φ½«ú« «»δΓá ¡Ñ «í∩ºáΓѽ∞¡« ¼«ª¡« »αÑñ߬áºáΓ∞ íπ-
  7760.          ñπΘÑÑ  ¿  τΓ«  ¬áªñ«Ñ  »αá󿽫 ¿¼ÑÑΓ ¿ß¬½ετÑ¡¿Ñ,  óßÑ ªÑ ñá¡¡δÑ «
  7761.          »α«Φ½«¼ ¿ß»«½∞ºπεΓß∩ ñ½∩ φΓ«ú«.  ÄτÑ¡∞ τáßΓ«  ΓÑ¡ñÑ¡µ¿¿,  ¿¼ÑóΦ¿Ñ
  7762.          ¼ÑßΓ« ó »α«Φ½«¼ ¿ ¡áßΓ«∩ΘѼ, ß«σαá¡∩εΓß∩ ¿ ó íπñπΘѼ. é φΓ¿σ ß½π-
  7763.          τá∩σ óδ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞ ¬«¡¬αÑΓ¡δÑ º¡áτÑ¡¿∩ ñ½∩ ¡Ñ¬«Γ«α«ú« óαÑ-
  7764.          ¼Ñ¡¿ ó íπñπΘѼ. ¥Γ«Γ »α«µÑßß ¡áºδóáÑΓß∩ »α«ú¡«º¿α«ó᡿Ѽ ¿½¿ á¡á-
  7765.          ½¿º«¼ ΓÑ¡ñÑ¡µ¿⌐.
  7766.               ìá»α¿¼Ñα, αáßß¼«Γα¿¼  ¡Ñ¬«Ñ  ¿ßß½Ññ«óá¡¿Ñ  »α«ñ«½ª¿Γѽ∞¡«ßΓ¿
  7767.          ª¿º¡¿ ºá ñÑß∩Γ¿½ÑΓ¡¿⌐ »Ñα¿«ñ. ÅπßΓ∞ »«½πτÑ¡δ ß½ÑñπεΘ¿Ñ ñá¡¡δÑ:
  7768.  
  7769.              â«ñ             Åα«ñ«½ª¿Γѽ∞¡«ßΓ∞ ª¿º¡¿
  7770.              1980                   69
  7771.              1981                   70
  7772.              1982                   72
  7773.              1983                   68
  7774.              1984                   73
  7775.              1985                   71
  7776.              1986                   75
  7777.              1987                   74
  7778.              1988                   78
  7779.              1989                   77
  7780.  
  7781.               æ¡áτá½á ß½ÑñπÑΓ »«¡∩Γ∞,  Ñß½¿ ºñÑß∞ ¬á¬á∩-¡¿íπñ∞  ΓÑ¡ñÑ¡µ¿∩?
  7782.          àß½¿  «¡á ñÑ⌐ßΓó¿Γѽ∞¡« ¿¼ÑÑΓß∩,  Γ« ¼«ª¡« πº¡áΓ∞ ¬á¬«⌐ «¡á ¿¼ÑÑΓ
  7783.          σáαá¬ΓÑα.  ê,  ¡á¬«¡Ñµ,  Ñß½¿ ¡áí½εñáÑΓß∩ ñÑ⌐ßΓó¿Γѽ∞¡«  ºá¼ÑΓ¡á∩
  7784.          ΓÑ¡ñÑ¡µ¿∩,  Γ« ¼«ª¡« »αÑñ߬áºáΓ∞, ¡á»α¿¼Ñα, ßαÑñ¡εε »α«ñ«½ª¿Γѽ∞-
  7785.          ¡«ßΓ∞ ó 1995 ú«ñπ.
  7786.               æ¡áτá½á αáßß¼«Γα¿¼  ßΓ«½í¿¬«óπε  ñ¿áúαá¼¼π ¿ Γ«τÑτ¡δ⌐ úαáΣ¿¬
  7787.          ñ½∩ φΓ¿σ ñá¡¡δσ,  »αÑñßΓáó½Ñ¡¡δÑ ¡á α¿ß.26.  êßß½Ññπ∩  ¿σ,  ¼«ª¡«
  7788.          ßñѽáΓ∞ óδó«ñ, τΓ« ßαÑñ¡∩∩ »α«ñ«½ª¿Γѽ∞¡«ßΓ∞ ª¿º¡¿ ó µÑ½«¼ πóѽ¿-
  7789.          τ¿óáÑΓß∩. àß½¿ »α¿½«ª¿Γ∞ ½¿¡Ñ⌐¬π Γá¬, τΓ«íδ ¡á¿½πτΦ¿¼ «íαẫ¼ ½¿-
  7790.          ¡¿∩ ß««ΓóÑΓßΓó«óá½á úαáΣ¿¬π,  ¿ »α«ñ«½ª¿Γ∞ ½¿¡¿ε ñ« 1995 ú«ñá, Γ«
  7791.  
  7792.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 169 =
  7793.  
  7794.          «¬áªÑΓß∩,  τΓ« »α«ñ«½ª¿Γѽ∞¡«ßΓ∞ ª¿º¡¿ íπñÑΓ ó αá⌐«¡Ñ 82. Äñ¡á¬«,
  7795.          ¡á߬«½∞¬«  ¼«ª¡«  íδΓ∞  πóÑαÑ¡¡δ¼  ó ñ«ßΓ«óÑα¡«ßΓ¿ Γᬫú« óδó«ñá?
  7796.          ìÑß¼«Γα∩ ¡á ¿¡Γπ¿Γ¿ó¡«Ñ «ΘπΘÑ¡¿Ñ »αáó¿½∞¡«ßΓ¿  Γᬫú«  óδó«ñá  óδ
  7797.          ¼«ªÑΓÑ  ºáσ«ΓÑΓ∞ ¿ß»«½∞º«óáΓ∞ í«½ÑÑ Σ«α¼á½∞¡δÑ ¿ Γ«τ¡δÑ ¼ÑΓ«ñδ »«
  7798.          »α«ú¡«º¿α«óá¡¿ε ΓÑ¡ñÑ¡µ¿¿ ßαÑñ¡Ñ⌐ »α«ñ«½ª¿Γѽ∞¡«ßΓ¿ ª¿º¡¿.
  7799.               ê¼Ñ∩ ¡áí«α  ¿º¼Ñ¡∩εΘ¿σß∩ ó« óαѼѡ¿ ñá¡¡δσ ½πτΦÑ óßÑú« »«½π-
  7800.          τáΓ∞ »α«ú¡«º »πΓѼ »«¿ß¬á ½¿¡¿¿ ¡á¿½πτΦÑú« ß««ΓóÑΓßΓó¿∩ »«  «Γ¡«-
  7801.          ΦÑ¡¿ε  ¬ ¿¼ÑεΘ¿¼ß∩ ñá¡¡δ¼.  ê¼Ñ¡¡« φΓ« ñѽὫß∞ ß »α¿¼Ñ¡Ñ¡¿Ñ¼ ½¿-
  7802.          ¡Ñ⌐¬¿.  ï¿¡¿∩  ¡á¿½πτΦÑú«  ß««ΓóÑΓßΓó¿∩  αáß»«½áúáÑΓß∩   ¡á¿í«½ÑÑ
  7803.          í½¿º¬«  ¬« óßѼ Γ«τ¬á¼ ¿ ½πτΦÑ óßÑú« «ΓαáªáÑΓ ¿σ ΓÑ¡ñÑ¡µ¿ε.  ò«Γ∩
  7804.          ¡Ñ¬«Γ«αδÑ ¿½¿ ñáªÑ óßÑ ñá¡¡δÑ ¡Ñ íπñπΓ ¡áσ«ñ¿Γ∞ß∩ ¡á  ½¿¡¿¿, ßá¼á
  7805.          ½¿¡¿∩ σ«α«Φ« »αÑñßΓáó½∩ÑΓ ¿σ. ä«ßΓ«óÑα¡«ßΓ∞ ½¿¡¿¿ ºáó¿ß¿Γ «Γ í½¿-
  7806.          º«ßΓ¿ Γ«τѬ óδí«α¬¿.
  7807.               ï¿¡¿∩ ó  ñóπ¼Ñα¡«¼  »α«ßΓαá¡ßΓóÑ ºáñáÑΓß∩ ß½ÑñπεΘ¿¼ «ß¡«ó¡δ¼
  7808.          παáó¡Ñ¡¿Ñ¼:
  7809.  
  7810.                                  Y = a + bX,
  7811.  
  7812.          úñÑ Y ∩ó½∩ÑΓß∩ ¡Ñºáó¿ß¿¼«⌐ »ÑαѼѡ¡«⌐, ò ∩ó½∩ÑΓß∩ ºáó¿ß¿¼«⌐ »ÑαÑ-
  7813.          ¼Ñ¡¡«⌐,  "á" ∩ó½∩ÑΓß∩ Γ«τ¬«⌐ »ÑαÑßÑτÑ¡¿∩ «ß¿ Y, á "ó" ºáñáÑΓ ¡á¬-
  7814.          ½«¡ ½¿¡¿¿.  Æá¬¿¼ «íαẫ¼, ñ½∩ «»αÑñѽѡ¿∩ ½¿¡¿¿ ¡á¿½πτΦÑú« ß««Γ-
  7815.          óÑΓßΓó¿∩ óδí«α¬¿ ΓαÑíπÑΓß∩ «»αÑñѽ¿Γ∞ "á" ¿ "ó".
  7816.  
  7817.              78                                  │
  7818.              .                           │       │   │
  7819.              .           │       │       │   │   │   │
  7820.              .   │   │   │   │   │   │   │   │   │   │
  7821.              .   │   │   │   │   │   │   │   │   │   │
  7822.              .   │   │   │   │   │   │   │   │   │   │
  7823.              .   │   │   │   │   │   │   │   │   │   │
  7824.              .   │   │   │   │   │   │   │   │   │   │
  7825.              .   │   │   │   │   │   │   │   │   │   │
  7826.              .   │   │   │   │   │   │   │   │   │   │
  7827.              .   │   │   │   │   │   │   │   │   │   │
  7828.              .   │   │   │   │   │   │   │   │   │   │
  7829.              .   │   │   │   │   │   │   │   │   │   │
  7830.              .   │   │   │   │   │   │   │   │   │   │
  7831.            a ────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────
  7832.              0                                         10
  7833.  
  7834.               É¿ß.26. æΓ«½í¿¬«óá∩ ñ¿áúαá¼¼á /á/ ñ½∩ »α«ú¡«ºá ßαÑñ¡Ñ⌐  »α«-
  7835.                       ñ«½ª¿Γѽ∞¡«ßΓ¿ ª¿º¡¿
  7836.  
  7837.               ä½∩ «»αÑñѽѡ¿∩ º¡áτÑ¡¿⌐ φΓ¿σ »áαá¼ÑΓα«ó  ¼«ª¡« ¿ß»«½∞º«óáΓ∞
  7838.          ¡Ñ߬«½∞¬«  ¼ÑΓ«ñ«ó,  ¡«  ¡á¿í«½ÑÑ αáß»α«ßΓαá¡Ñ¡¡δ¼ (¿ ¬á¬ »αá󿽫
  7839.          ¡á¿½πτΦ¿¼) ∩ó½∩ÑΓß∩ ¼ÑΓ«ñ ¡á¿¼Ñ¡∞Φ¿σ ¬óáñαáΓ«ó.  ¥Γ«Γ ¼ÑΓ«ñ »«ßΓ-
  7840.          α«Ñ¡  ¡á ¼¿¡¿¼¿ºáµ¿¿ αáßßΓ«∩¡¿∩ «Γ ñÑ⌐ßΓó¿Γѽ∞¡δσ º¡áτÑ¡¿⌐ ñá¡¡δσ
  7841.          ñ« ½¿¡¿¿.  ¥Γ«Γ ¼ÑΓ«ñ ß«ßΓ«¿Γ ¿º ñóπσ Φáú«ó:  ß¡áτá½á óδτ¿ß½∩ÑΓß∩
  7842.  
  7843.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 170 =
  7844.  
  7845.          "ó"  (¡á¬½«¡  ½¿¡¿¿) ¿ ºáΓѼ óδτ¿ß½∩ÑΓß∩ "á" (»ÑαÑßÑτÑ¡¿Ñ «ß¿ Y).
  7846.               éδó«ñ φΓ«⌐ Σ«α¼π½δ óδσ«ñ¿Γ ºá αἬ¿ φΓ«⌐ ¬¡¿ú¿.  Å«½πτ¿ó "ó"
  7847.          óδ ¼«ªÑΓÑ, ¿ß»«½∞ºπ∩ φëà»áαá¼ÑΓα, óδτ¿ß½¿Γ∞ "á":
  7848.               Ä»αÑñѽ¿ó º¡áτÑ¡¿∩ »áαá¼ÑΓα«ó "á" ¿ "ó" óδ ¼«ªÑΓÑ, ºáñáó ½ε-
  7849.          í«Ñ º¡áτÑ¡¿Ñ ò,  ¡á⌐Γ¿ ß««ΓóÑΓßΓóπεΘÑÑ º¡áτÑ¡¿Ñ Y.  ìá»α¿¼Ñα, ¿ß-
  7850.          »«½∞ºπ∩ »α¿óÑñÑ¡¡δÑ óδΦÑ ñá¡¡δÑ »« ßαÑñ¡Ñ⌐ »α«ñ«½ª¿Γѽ∞¡«ßΓ¿ ª¿º-
  7851.          ¡¿, ¼«ª¡« »«½πτ¿Γ∞ ß½ÑñπεΘÑÑ παáó¡Ñ¡¿Ñ αÑúαÑßß¿¿:
  7852.  
  7853.                        Y = 67,46 + 0,95 * X.
  7854.  
  7855.               æ½Ññ«óáΓѽ∞¡«, ñ½∩  ¡áσ«ªñÑ¡¿∩  «ª¿ñáѼ«⌐  »α«ñ«½ª¿Γѽ∞¡«ßΓ¿
  7856.          ª¿º¡¿ ó 1995 ú«ñπ (15 ½ÑΓ «Γ 1980 ú«ñá) ñѽáεΓß∩ ß½ÑñπεΘ¿Ñ óδτ¿ß-
  7857.          ½Ñ¡¿∩:
  7858.  
  7859.                        67,46 + 0,95*15 = 82.
  7860.  
  7861.               Äñ¡á¬«, ñáªÑ  ¿¼Ñ∩  ñ½∩ ñá¡¡δσ ½¿¡¿ε ¡á¿½πτΦÑú« ß««ΓóÑΓßΓó¿∩
  7862.          óá¼ ¼«ªÑΓ »«ΓαÑí«óáΓ∞ß∩ º¡á¡¿Ñ ñÑ⌐ßΓó¿Γѽ∞¡«⌐ ¬«ααѽ∩µ¿¿ ñá¡¡δσ ß
  7863.          φΓ«⌐ ½¿¡¿¿. àß½¿ ½¿¡¿∩ ¿ ñá¡¡δÑ ß½áí« ¬«ααѽ¿α«óá¡δ, Γ« íπñÑΓ ¼á-
  7864.          ½« »«½∞ºδ «Γ ½¿¡¿¿ αÑúαÑßß¿¿. Äñ¡á¬«, Ñß½¿ ½¿¡¿∩ σ«α«Φ« ß««ΓóÑΓß-
  7865.          ΓóπÑΓ  ñá¡¡δ¼,  Γ« »« ¡Ñ⌐ ¼«ª¡« ñѽáΓ∞ «τÑ¡∞ ñ«ßΓ«óÑα¡δ⌐ »α«ú¡«º.
  7866.          ìá¿í«½ÑÑ αáß»α«ßΓαá¡Ñ¡¡δ¼ ß»«ß«í«¼  «»αÑñѽѡ¿∩  ¿  »αÑñßΓáó½Ñ¡¿∩
  7867.          ¬«ααѽ∩µ¿¿ ñá¡¡δσ ¿ ½¿¡¿¿ αÑúαÑßß¿¿ ∩ó½∩ÑΓß∩ óδτ¿ß½Ñ¡¿Ñ ¬«φΣΣ¿µ¿-
  7868.          Ñ¡Γ«ó ¬«ααѽ∩µ¿¿,  ¬«Γ«αδÑ ¼«úπΓ »α¿¡¿¼áΓ∞ º¡áτÑ¡¿∩  «Γ  ¡π½∩  ñ«
  7869.          Ññ¿¡¿µδ.  è«φΣΣ¿µ¿Ñ¡Γδ  ¬«ααѽ∩µ¿¿ »« ßπΘÑßΓóπ «»αÑñѽ∩ÑΓ ßΓѻѡ∞
  7870.          í½¿º«ßΓ¿ ¬áªñ«⌐ Γ«τ¬¿ ¬ ½¿¡¿¿.  àß½¿ ¬«φΣΣ¿µ¿Ñ¡Γ ¬«ααѽ∩µ¿¿ ¿¼ÑÑΓ
  7871.          Ññ¿¡¿τ¡«Ñ  º¡áτÑ¡¿Ñ,  Γ«  ñá¡¡δÑ σ«α«Φ« ß««ΓóÑΓßΓóπεΓ ½¿¡¿¿ /Γ.Ñ.
  7872.          ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ óδí«α¬¿ ΓᬪѠ¡áσ«ñ¿Γß∩ ¡á ½¿¡¿¿  αÑúαÑßß¿¿/. àß½¿
  7873.          ¬«φΣΣ¿µ¿Ñ¡Γ ¬«ααѽ∩µ¿¿ ¿¼ÑÑΓ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ,  Γ« ¡¿¬á¬«Ñ º¡áτÑ-
  7874.          ¡¿Ñ ¿º óδí«α¬¿ ¡Ñ αáß»«½áúáÑΓß∩ ¡á ½¿¡¿¿. é ñÑ⌐ßΓóΓ¿Γѽ∞¡«ßΓ¿ ¬«-
  7875.          φΣΣ¿µ¿Ñ¡Γ  ¬«ααѽ∩µ¿¿ ¼«ªÑΓ »α¿¡¿¼áΓ∞ ½εí«Ñ º¡áτÑ¡¿Ñ ¿º ñ¿á»áº«¡á
  7876.          «Γ ¡π½∩ ñ« Ññ¿¡¿µδ.  è«φΣΣ¿µ¿Ñ¡Γ ¬«ααѽ∩µ¿¿ óδτ¿ß½∩ÑΓß∩ »« Σ«α¼π-
  7877.          ½Ñ, »α¿óÑñÑ¡¡«⌐ ¡á ß½ÑñπεΘÑ⌐ ßΓαá¡¿µÑ.
  7878.               çñÑß∞ î ∩ó½∩ÑΓß∩ ßαÑñ¡¿¼ º¡áτÑ¡¿Ñ¼ ¬««αñ¿¡áΓδ ò ¿ î ∩ó½∩ÑΓß∩
  7879.          ßαÑñ¡¿¼ º¡áτÑ¡¿Ñ¼ ¬««αñ¿¡áΓδ Y.  Äíδτ¡« ó ¬áτÑßΓóÑ ß¿½∞¡«⌐ ¬«ααÑ-
  7880.          ½∩µ¿¿ αáßß¼áΓα¿óáÑΓß∩ º¡áτÑ¡¿Ñ 0,81. é φΓ«¼ ß½πτáÑ 66% ñá¡¡δσ ß«-
  7881.          «ΓóÑΓßΓóπÑΓ ½¿¡¿¿ αÑúαÑßß¿¿.  ä½∩ »«½πτÑ¡¿∩ »α«µÑ¡Γ¡«ú« ß««Γ¡«ΦÑ-
  7882.          ¡¿∩ ¡Ñ«íσ«ñ¿¼« »α«ßΓ« ó«ºóÑßΓ¿ ó  ¬óáñαáΓ  º¡áτÑ¡¿Ñ  ¬«φΣΣ¿µ¿Ñ¡Γá
  7883.          ¬«ααѽ∩µ¿¿.
  7884.               ì¿ªÑ »α¿ó«ñ¿Γß∩ Σπ¡¬µ¿∩ "Regress".  é ¡Ñ⌐ ¿ß»«½∞ºπÑΓß∩  «»¿-
  7885.          ßá¡¡δ⌐  óδΦÑ ¼ÑΓ«ñ »«¿ß¬á ¬«φΣΣ¿µ¿Ñ¡Γ«ó αÑúαÑßß¿¿ ¿ ¬«φΣΣ¿µ¿Ñ¡Γ«ó
  7886.          ¬«ααѽ∩µ¿¿:
  7887.  
  7888.          { óδτ¿ß½Ñ¡¿Ñ ¬«φΣΣ¿µ¿Ñ¡Γ«ó αÑúαÑßß¿¿ ¿ óδó«ñ ½¿¡¿¿ αÑúαÑßß¿¿ }
  7889.  
  7890.                    procedure Regress(data: DataArray; num: integer);
  7891.  
  7892.                    var
  7893.  
  7894.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 171 =
  7895.  
  7896.                      a, b, x_avg, y_avg, temp, temp2, cor: real;
  7897.                      data2: DataArray
  7898.                      t, min, max: integer;
  7899.                      ch: char;
  7900.  
  7901.                    begin
  7902.                      { »«¿ß¬ ßαÑñ¡Ñú« º¡áτÑ¡¿∩ ò ¿ ô }
  7903.                      y_avg := 0; x_avg := 0;
  7904.                      for t := 1 to num do
  7905.                      begin
  7906.                        y_avg := y_avg + data[t];
  7907.                        x_avg := x_avg + t; { »«ß¬«½∞¬π ò »αÑñßΓáó½∩ÑΓ
  7908.                                           ß«í«⌐ óαѼ∩ }
  7909.                      end;
  7910.                      x_avg := x_avg/num;
  7911.                      y_avg := y_avg/num;
  7912.  
  7913.                      { »«¿ß¬ ¬«φΣΣ¿µ¿Ñ¡Γá 'ó' παáó¡Ñ¡¿∩ αÑúαÑßß¿¿ }
  7914.                      temp := 0; temp2 := 0;
  7915.                      for t := 1 to num do
  7916.                      begin
  7917.                        temp := temp +(data[t] - y_avg)*(t-x_avg);
  7918.                        temp2 := temp2 +(t - x_avg)*(t-x_avg);
  7919.                      end;
  7920.                      b := temp/temp2;
  7921.  
  7922.                      { »«¿ß¬ ¬«φΣΣ¿µ¿Ñ¡Γá 'a' παáó¡Ñ¡¿∩ αÑúαÑßß¿¿ }
  7923.                      a := y_avg-(b*x_avg);
  7924.  
  7925.                       { óδτ¿ß½Ñ¡¿Ñ ¬«φΣΣ¿µ¿Ñ¡Γá ¬«ααѽ∩µ¿¿ }
  7926.                    for t := 1 to num do data2[t] := t;
  7927.                    cor := temp/num;
  7928.                    cor := cor/(StdDev(data, num)*StdDev(data2,num);
  7929.                    Writeln('ôαáó¡Ñ¡¿Ñ αÑúαÑß¿¿ : Y = ',
  7930.                    a: 15: 5, '+',b: 15: 5, '* X');
  7931.                    Writeln('è«φΣΣ¿µ¿Ñ¡Γ ¬«ααѽ∩µ¿¿ :  ', cor: 15:5);
  7932.                    Writeln('éδóÑßΓ¿ ñá¡¡δÑ ¿ ½¿¡¿ε αÑúαÑßß¿¿ ? (y/n)');
  7933.                    Readln(ch);
  7934.                    ch := upcase(ch);
  7935.                    if ch <> 'N' then
  7936.  
  7937.                    begin
  7938.                      { πßΓá¡«ó¬á αѪ¿¼á 4 ñ½∩ áñá»ΓÑα«ó EGA ¿ CGA }
  7939.                      GraphDriver := CGA ;
  7940.                      Craphmode := CGAC1 ;
  7941.                      InitGraph(GraphDriver, Craphmode, '');
  7942.                      SetColor(1);
  7943.                      SetLineStyle(Solid, 0, NormWidth);
  7944.  
  7945.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 172 =
  7946.  
  7947.  
  7948.                   { óδó«ñ úαáΣ¿¬«ó }
  7949.                   for t := 1 to num*2 do data2[t] := a+(b*t);
  7950.                   { ¼áßß¿ó αÑúαÑßß¿ }
  7951.                   min:= getmin(data, num)*2;
  7952.                   max:= getmax(data, num)*2;
  7953.                   ScatterPlot(data, num, min, max. num*2);
  7954.                   ScatterPlot(data2, num*2, min, max, num*2);
  7955.                   ch := ReadKey;
  7956.                   RestoreCrtMode;
  7957.                 end;
  7958.                end; { ¬«¡Ñµ  »α«µÑñπαδ óδτ¿ß½Ñ¡¿∩ ¬«φΣΣ¿µ¿Ñ¡Γ«ó αÑúαÑßß¿¿
  7959.                       ¿ ¬«ααѽ∩µ¿¿ }
  7960.  
  7961.  
  7962.               Åα¿ »α«óÑñÑ¡¿¿  »α«ú¡«º¿α«óá¡¿∩ »«ñ«í¡« «»¿ßá¡¡«¼π óδΦÑ ß½Ñ-
  7963.          ñπÑΓ »«¼¡¿Γ∞, τΓ« »« ñá¡¡δ¼ « »α«Φ½«¼ ¡Ñ óßÑúñá ¼«ª¡« »αÑñ߬áºáΓ∞
  7964.          íπñπΘÑÑ. Äñ¡á¬« ó ΓÑσ ß½πτá∩σ, ¬«úñá φΓ« ¼«ª¡« ßñѽáΓ∞, ¼«úπΓ »«-
  7965.          ½πτ¿Γ∞ «τÑ¡∞ ¿¡ΓÑαÑß¡δÑ αѺπ½∞ΓáΓδ.
  7966.  
  7967.  
  7968.  
  7969.  
  7970.  
  7971.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 173 =
  7972.  
  7973.                             ÅÄïìǃ ÅÉÄâÉÇîîÇ ÅÄ æÆÇÆêæÆêùàæèÄîô ÇìÇïêçô        
  7974.          -----------------------------------------------------------------
  7975.  
  7976.               è φΓ«¼π  ¼«¼Ñ¡Γπ  ó  φΓ«⌐  ú½áóÑ  í뫨 αáºαáí«Γá¡δ ¡Ñ߬«½∞¬«
  7977.          Σπ¡¬µ¿⌐ »« óδ»«½¡Ñ¡¿ε ßΓáΓ¿ßΓ¿τÑ߬¿σ óδτ¿ß½Ñ¡¿⌐  ñ½∩  úÑ¡Ñαá½∞¡δσ
  7978.          ß«ó«¬π»¡«ßΓÑ⌐ ß «ñ¡«⌐ »ÑαѼѡ¡«⌐.  é φΓ«¼ αáºñѽѠφΓ¿ Σπ¡¬µ¿¿ íπ-
  7979.          ñπΓ ß«íαá¡δ ó «ñ¡π »α«úαá¼¼π »« á¡á½¿ºπ ñá¡¡δσ, óδó«ñπ ßΓ«½ - í¿-
  7980.          ¬«óδσ ñ¿áúαá¼¼ ,  Γ«τÑτ¡δσ úαáΣ¿¬«ó ¿ »α«ú¡«º¿α«óá¡¿∩. ÅÑαÑñ »α«-
  7981.          Ñ¬Γ¿α«ó᡿Ѽ Γᬫ⌐ »α«úαá¼¼δ  ¡Ñ«íσ«ñ¿¼«  «»αÑñѽ¿Γ∞  ºá»¿ß∞  ñ½∩
  7982.          σαá¡Ñ¡¿∩  »ÑαѼѡ¡δσ ñá¡¡δσ ¿ ¡Ñ߬«½∞¬« ¡Ñ«íσ«ñ¿¼δσ óß»«¼«úáΓѽ∞-
  7983.          ¡δσ »«ñ»α«úαá¼¼.
  7984.               ÅαѪñÑ óßÑú«  ¡á¼  »«ΓαÑíπÑΓß∩  ¼áßß¿ó ñ½∩ σαá¡Ñ¡¿∩ º¡áτÑ¡¿⌐
  7985.          óδí«α¬¿.  î«ª¡« ¿ß»«½∞º«óáΓ∞ «ñ¡«¼Ñα¡δ⌐ ¼áßß¿ó τ¿ßѽ ß  »½áóáεΘÑ⌐
  7986.          Γ«τ¬«⌐ 'data' ß αẼÑα«¼ îÇò.  îá¬ß¿¼á½∞¡«Ñ º¡áτÑ¡¿Ñ ñ«½ª¡« óδí¿-
  7987.          αáΓ∞ß∩ Γᬿ¼, τΓ«íδ ó¼ÑßΓ¿Γ∞ ¼á¬ß¿¼á½∞¡πε óδí«α¬π. é ¡áΦѼ ß½πτáÑ
  7988.          φΓ« τ¿ß½« αáó¡« 100.  ì¿ªÑ ñáÑΓß∩ «»αÑñѽѡ¿Ñ ¬«¡ßΓá¡Γ ¿ Γ¿»«ó, á
  7989.          ΓᬪѠú½«íá½∞¡δσ »ÑαѼѡ¡δσ:
  7990.  
  7991.                    Uses
  7992.                      Crt, Graph;
  7993.  
  7994.                    const
  7995.                      MAX = 100;
  7996.  
  7997.                    type
  7998.                      str80 = string[80];
  7999.                      DataItem = real;
  8000.                      DataArray = array [1..80] of DataItem;
  8001.  
  8002.                    var
  8003.                      data: DataArray;
  8004.                      a, m, md, std: real;
  8005.                      num: integer;
  8006.                      ch: char;
  8007.                      datafile: file of DataItem;
  8008.                      GraphDriver, Craphmode : ineger;
  8009.  
  8010.               èα«¼Ñ πªÑ  αáºαáí«Γá¡¡δσ ßΓáΓ¿ßΓ¿τÑ߬¿σ Σπ¡¬µ¿⌐ óá¼ »«ΓαÑíπ-
  8011.          ÑΓß∩ ÑΣ¬ªÑ »«ñ»α«úαá¼¼δ »« ß«σαá¡Ñ¡¿ε ¿ ºáúαπº¬Ñ ñá¡¡δσ. Å«ñ»α«ú-
  8012.          αἼᠠ"Save"  ñ«½ª¡á  ΓᬪѠ߫σαá¡¿Γ∞ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó ñá¡¡δσ,  á
  8013.          »«ñ»α«úαá¼¼á "Load" ñ«½ª¡á ßτ¿ΓδóáΓ∞ φΓ« τ¿ß½«.
  8014.  
  8015.  
  8016.                    { ß«σαá¡¿Γ∞ ñá¡¡δÑ }
  8017.                    procedure Save(data: DataArrary; num: integer):
  8018.                    var
  8019.                      t: integer;
  8020.                      fname: string[80];
  8021.  
  8022.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 174 =
  8023.  
  8024.                      temp: real;
  8025.                    begin
  8026.                      Write('Enter Filename: ');
  8027.                      Readln(fname);
  8028.                      Assign(datafile,fname);
  8029.                      rewrite(datafile);
  8030.                      temp := num;
  8031.                      write(datafile,temp);
  8032.                      for t := 1 to num do write(datafile,data[t]);
  8033.                      close(datafile);
  8034.                      end;
  8035.  
  8036.               { ºáúαπº¿Γ∞ ñá¡¡δÑ }
  8037.                    procedure Load;
  8038.                    var
  8039.                      t: integer;
  8040.                      fname: string[80];
  8041.                      temp: real;
  8042.                    begin
  8043.                      Write('Enter Filename: ');
  8044.                      Readln(fname);
  8045.                      Assign(datafile,fname);
  8046.                      reset(datafile);
  8047.                      Read(datafile,temp);
  8048.                      num := trunc(temp);
  8049.                      for t := 1 to num do Read(datafile,data[t]);
  8050.                      close(datafile);
  8051.                      end;
  8052.  
  8053.              ì¿ªÑ »α¿ó«ñ¿Γß∩ »«½¡á∩ »α«úαἼᠻ«  ßΓáΓ¿ßΓ¿τÑ߬«¼π á¡á½¿ºπ:
  8054.  
  8055.  
  8056.          program stats;
  8057.  
  8058.                 Uses
  8059.                   Crt, Graph;
  8060.  
  8061.                 const
  8062.                   MAX = 100;
  8063.  
  8064.                 type
  8065.                   str80 = string[80];
  8066.                   DataItem = real;
  8067.                   DataArray = array [1..80] of DataItem;
  8068.  
  8069.                 var
  8070.                   data: DataArray;
  8071.                   a, m, md, std: real;
  8072.  
  8073.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 175 =
  8074.  
  8075.                   num: integer;
  8076.                   ch: char;
  8077.                   datafile: file of DataItem;
  8078.                   GraphDriver, Craphmode : integer;
  8079.  
  8080.          { óÑαß¿∩ íδßΓα«⌐ ß«αΓ¿α«ó¬¿ ñ½∩ τѽδσ τ¿ßѽ }
  8081.                procedure QuickSort(var item: DataArray; count: integer);
  8082.                 procedure qs(l, r:integer; var it: DataArray);
  8083.                 var
  8084.                   i, j: integer;
  8085.                   x, y: DataItem;
  8086.                 begin
  8087.                   i := l; j := r;
  8088.                   x := it[(l+r) div 2];
  8089.                   repeat
  8090.                     while it[i] < x do i := i+1;
  8091.                        while x < it[j] do j := j-1;
  8092.                        if i <= j then
  8093.                        begin
  8094.                          y := it[i];
  8095.                          it[i] := it[j];
  8096.                          it[j] := y;
  8097.                          i := i+1; j := j-1;
  8098.                        end;
  8099.                       until i>j;
  8100.                       if l<j then qs(l, j, it);
  8101.                       if l<r then qs(i, r, it );
  8102.                     end;
  8103.                   begin
  8104.                     qs(1, count, item)
  8105.                   end; { QuickSort }
  8106.  
  8107.          {φΓá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ "¿ßΓ¿¡á", Ñß½¿ ó ßΓα«¬Ñ "s"
  8108.                 ¡áσ«ñ¿Γß∩ ß¿¼ó«½ "ßh"   }
  8109.                 function is_in(ch: char; s: str80): boolean;
  8110.                 var
  8111.                   t: integer;
  8112.  
  8113.                 begin
  8114.                   is_in := FALSE;
  8115.                   for t:=1 to length(s) do
  8116.                    if s[t]=ch then is_in := TRUE;
  8117.                 end; { is_in }
  8118.  
  8119.          { ó«ºóαáΘáÑΓ ¬«ñ Σπ¡¬µ¿¿, óδíαá¡¡«⌐ »«½∞º«óáΓѽѼ ¿º ¼Ñ¡ε }
  8120.                 function menu:char;
  8121.                 var
  8122.                   ch: char;
  8123.  
  8124.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 176 =
  8125.  
  8126.  
  8127.                 begin
  8128.                   Writeln;
  8129.                   repeat
  8130.                     Writeln('Enter data');
  8131.                     Writeln('Display data');
  8132.                     Writeln('Basic statistics');
  8133.                     Writeln('Regression line and scatter plot');
  8134.                     Writeln('Plot a bar graph');
  8135.                     Writeln('Save');
  8136.                     Writeln('Load');
  8137.                     Writeln('Quit');
  8138.                     Writeln;
  8139.                     Write('choose one (E, D, B, R, P, S, L, Q): ');
  8140.                   Readln(ch);
  8141.                   ch := upcase(ch);
  8142.                 until is_in(ch,'EDBRPSLQ');
  8143.                 menu := ch;
  8144.                end; { menu }
  8145.  
  8146.                 { óδó«ñ ΓѬπΘÑú« ¡áí«αá ñá¡¡δσ }
  8147.                procedure Display(data: DataArray; num: integer);
  8148.                var
  8149.                 t: integer;
  8150.                begin
  8151.                 for t := 1 to num do Writeln(t, ':  ',data[t]);
  8152.                 Writeln;
  8153.                end; { Display }
  8154.  
  8155.                 { óó«ñ ñá¡¡δσ »«½∞º«óáΓѽ∩ }
  8156.                procedure Enter(var data: DataArray);
  8157.                var
  8158.                 t: integer;
  8159.                begin
  8160.                Writeln('number of items?:  ');
  8161.                Readln(num);
  8162.                 for t := 1 to num do begin
  8163.                   Writeln('enter item ',t, ': ');
  8164.                 Readln(data[t]);
  8165.                 end;
  8166.                end;  { enter }
  8167.  
  8168.                 { óδτ¿ß½Ñ¡¿Ñ ßαÑñ¡Ñú« º¡áτÑ¡¿∩ }
  8169.                function mean(data: DataArray; num: integer): real;
  8170.                var
  8171.                 t: integer;
  8172.                 avg: real;
  8173.                begin
  8174.  
  8175.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 177 =
  8176.  
  8177.                 avg := 0;
  8178.                 for t := 1 to num do avg := avg+data[t];
  8179.                 mean := avg/num;
  8180.                end; { mean }
  8181.  
  8182.                 { óδτ¿ß½Ñ¡¿Ñ ßΓá¡ñáαΓ¡«ú« «Γ¬½«¡Ñ¡¿∩ }
  8183.                function StdDev(data: DataArray; num: integer): real;
  8184.                var
  8185.                 t: integer;
  8186.                 std, avg: real;
  8187.                begin
  8188.                 avg := mean(data,num);
  8189.                 std := 0;
  8190.                 for t := 1 to num do
  8191.                   std := std +((data[t]-avg)*(data[t]-avg));
  8192.                 std := std/num;
  8193.                 StdDev := sqrt(std);
  8194.                end; { StdDev }
  8195.  
  8196.                 { »«¿ß¬ ¼«ñδ }
  8197.                function FindMode(data: DataArray; num: integer): real;
  8198.                var
  8199.                 t, w, count, oldcount: integer;
  8200.                 md, oldmd: real;
  8201.                begin
  8202.                 oldmd := 0; oldcount := 0;
  8203.                 for t := 1 to num do
  8204.                 begin
  8205.                   md := data[t];
  8206.                   count := 1;
  8207.                   for w := t+1 to num do
  8208.                     if md=data[w] then count := count +1;
  8209.                     if count > oldcount then
  8210.                     begin
  8211.                       oldmd := md;
  8212.                       oldcount := count;
  8213.                     end;
  8214.                   end;
  8215.                   FindMode := oldmd;
  8216.                 end; { FindMode }
  8217.  
  8218.                 { »«¿ß¬ ¼Ññ¿á¡δ }
  8219.                function median(data: DataArray; num: integer): real;
  8220.                var
  8221.                 dtemp: DataArray;
  8222.                     t: integer;
  8223.  
  8224.                begin
  8225.  
  8226.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 178 =
  8227.  
  8228.                 for t := 1 to num do dtemp[t] := data[t];
  8229.                 QuickSort(dtemp,num);
  8230.                 median := dtemp[num div 2];
  8231.                end; { median }
  8232.  
  8233.                 { »«¿ß¬ ¼á¬ß¿¼á½∞¡«ú« º¡áτÑ¡¿∩ ñá¡¡δσ }
  8234.                function getmax(data: DataArray; num: integer):integer;
  8235.                var
  8236.                 t: integer;
  8237.                 max: real;
  8238.                begin
  8239.                 max := data[1];
  8240.                 for t := 2 to num do
  8241.                   if data[t]>max then max := data[t];
  8242.                   getmax := trunc(max);
  8243.                 end; { getmax }
  8244.  
  8245.                 { »«¿ß¬ ¼¿¡¿¼á½∞¡«ú« º¡áτÑ¡¿∩ ñá¡¡δσ }
  8246.                function getmin(data: DataArray; num: integer):integer;
  8247.                var
  8248.                 t: integer;
  8249.                 min: real;
  8250.                begin
  8251.                 min := data[1];
  8252.                 for t := 2 to num do
  8253.                   if data[t]<min then min := data[t];
  8254.                   getmin := trunc(min);
  8255.                 end; { getmin }
  8256.  
  8257.                 { óδó«ñ ßΓ«½í¿¬«ó«⌐ ñ¿áúαá¼¼δ }
  8258.                 procedure BarPlot(data: DataArray; num: integer);
  8259.                 var
  8260.                   x, y, max, min, incr, t:integer;
  8261.                   a, norm, spread: real;
  8262.                   ch: char;
  8263.                   value: string[80];
  8264.  
  8265.                 begin
  8266.                   { πßΓá¡«ó¬á αѪ¿¼á 4 ñ½∩ áñá»ΓÑα«ó EGA ¿ CGA }
  8267.                   GraphDriver := CGA ;
  8268.                   Craphmode := CGAC1 ;
  8269.                   InitGraph(GraphDriver, Craphmode, '');
  8270.                   SetColor(1);
  8271.                   SetLineStyle(Solidln, 0, NormWidth);
  8272.  
  8273.                   { ß¡áτá½á ñ½∩ ¡«α¼á½¿ºáµ¿¿ ¡áσ«ñ¿Γß∩ ¼¿¡¿¼á½∞¡«Ñ ¿
  8274.                      ¼á¬ß¿¼á½∞¡«Ñ º¡áτÑ¡¿Ñ }
  8275.                   max := getmax(data, num);
  8276.  
  8277.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 179 =
  8278.  
  8279.                   min := getmin(data, num);
  8280.                   if min>0 then min := 0;
  8281.                   spread := max - min;
  8282.                   norm := 190/spread;
  8283.  
  8284.                  { óδτÑατ¿óá¡¿Ñ ßÑΓ¬¿ }
  8285.                    str(min, value);
  8286.                    OutTextXY(0, 191, value); { ¼¿¡¿¼π¼ }
  8287.                    str(max, value);
  8288.                    OutTextXY(0, 0, value); { ¼á¬ß¿¼π¼ }
  8289.                    str(num, value);
  8290.                    OutTextXY(300, 191, value); { τ¿ß½« }
  8291.                    for t := 1 to 19 do PutPixel(0, t*10, 1);
  8292.                    SetColor(3);
  8293.                    Line(0, 190, 320, 190);
  8294.                    SetColor(2);
  8295.                  { óδó«ñ ñá¡¡δσ }
  8296.                    for t := 1 to num do
  8297.                      begin
  8298.                        a := data[t]-min;
  8299.                        a := a*norm;
  8300.                        y := trunc(a);
  8301.                        incr := 300 div num;
  8302.                        x := ((t-1)*incr)+20;
  8303.                        Line(x, 190, x, 190-y);
  8304.                      end;
  8305.                      ch := Readkey;
  8306.                      RestoreCrtMode;
  8307.                 end; { BarPlot }
  8308.  
  8309.  
  8310.                 { óδó«ñ Γ«τÑτ¡«ú« úαáΣ¿¬á }
  8311.                 procedure ScatterPlot(data: DataArray; num, ymin,
  8312.                 ymax, xmax: integer);
  8313.                 var
  8314.                   x, y, incr, t:integer;
  8315.                   a, norm, spread: real;
  8316.                   ch: char;
  8317.                   value: string[80];
  8318.                 begin
  8319.  
  8320.                   { ß¡áτá½á ñ½∩ ¡«α¼á½¿ºáµ¿¿ ¡áσ«ñ¿Γß∩ ¼¿¡¿¼á½∞¡«Ñ ¿
  8321.                      ¼á¬ß¿¼á½∞¡«Ñ º¡áτÑ¡¿Ñ }
  8322.  
  8323.                   if ymin>0 then ymin := 0;
  8324.                   spread := ymax - ymin;
  8325.            norm := 190/spread;
  8326.  
  8327.  
  8328.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 180 =
  8329.  
  8330.                  { óδτÑατ¿óá¡¿Ñ ßÑΓ¬¿ }
  8331.                    str(ymin, value);
  8332.                    OutTextXY(0, 191, value); { ¼¿¡¿¼π¼ }
  8333.                    str(ymax, value);
  8334.                    OutTextXY(0, 0, value); { ¼á¬ß¿¼π¼ }
  8335.                    str(xmax, value);
  8336.                    OutTextXY(300, 191, value); { τ¿ß½« }
  8337.                    SetColor(3);
  8338.                    for t := 1 to 19 do PutPixel(0, t*10, 1);
  8339.                    Line(0, 190, 320, 190);
  8340.                    SetColor(2);
  8341.  
  8342.                  { óδó«ñ ñá¡¡δσ }
  8343.                    for t := 1 to num do
  8344.                      begin
  8345.                        a := data[t]-ymin;
  8346.                        a := a*norm;
  8347.                        y := trunc(a);
  8348.                        incr := 300 div xmax;
  8349.                        x := ((t-1)*incr)+20;
  8350.                        Putpixel(x, 190-y, 2);
  8351.                      end;
  8352.                 end; { ScatterPlot }
  8353.  
  8354.                 procedure Regress(data: DataArray; num: integer);
  8355.  
  8356.                 var
  8357.                   a, b, x_avg, y_avg, temp, temp2, cor: real;
  8358.                   data2: DataArray;
  8359.                   t, min, max: integer;
  8360.                   ch: char;
  8361.  
  8362.                 begin
  8363.                   { »«¿ß¬ ßαÑñ¡Ñú« º¡áτÑ¡¿∩ ò ¿ ô }
  8364.                   y_avg := 0; x_avg := 0;
  8365.                   for t := 1 to num do
  8366.                   begin
  8367.                     y_avg := y_avg + data[t];
  8368.                     x_avg := x_avg + t; { »«ß¬«½∞¬π ò »αÑñßΓáó½∩ÑΓ
  8369.                                        ß«í«⌐ óαѼ∩ }
  8370.                   end;
  8371.                   x_avg := x_avg/num;
  8372.                   y_avg := y_avg/num;
  8373.                   { »«¿ß¬ ¬«φΣΣ¿µ¿Ñ¡Γá 'ó' παáó¡Ñ¡¿∩ αÑúαÑßß¿¿ }
  8374.                   temp := 0; temp2 := 0;
  8375.                   for t := 1 to num do
  8376.                   begin
  8377.                     temp := temp +(data[t] - y_avg)*(t-x_avg);
  8378.  
  8379.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 181 =
  8380.  
  8381.                     temp2 := temp2 +(t - x_avg)*(t-x_avg);
  8382.                   end;
  8383.                   b := temp/temp2;
  8384.  
  8385.                   { »«¿ß¬ ¬«φΣΣ¿µ¿Ñ¡Γá 'a' παáó¡Ñ¡¿∩ αÑúαÑßß¿¿ }
  8386.                   a := y_avg-(b*x_avg);
  8387.  
  8388.                    { óδτ¿ß½Ñ¡¿Ñ ¬«φΣΣ¿µ¿Ñ¡Γá ¬«ααѽ∩µ¿¿ }
  8389.                 for t := 1 to num do data2[t] := t;
  8390.                 cor := temp/num;
  8391.                 cor := cor/(StdDev(data, num)*StdDev(data2,num));
  8392.                 Writeln('ôαáó¡Ñ¡¿Ñ αÑúαÑß¿¿ : Y = ',
  8393.                 a: 15: 5, '+',b: 15: 5, '* X');
  8394.                 Writeln('è«φΣΣ¿µ¿Ñ¡Γ ¬«ααѽ∩µ¿¿ :  ', cor: 15:5);
  8395.                 Writeln('éδóÑßΓ¿ ñá¡¡δÑ ¿ ½¿¡¿ε αÑúαÑßß¿¿ ? (y/n)');
  8396.                 Readln(ch);
  8397.                 ch := upcase(ch);
  8398.                 if ch <> 'N' then
  8399.  
  8400.                 begin
  8401.                   { πßΓá¡«ó¬á αѪ¿¼á 4 ñ½∩ áñá»ΓÑα«ó EGA ¿ CGA }
  8402.                   GraphDriver := CGA ;
  8403.                   Craphmode := CGAC1 ;
  8404.                   InitGraph(GraphDriver, Craphmode, '');
  8405.                   SetColor(1);
  8406.                   SetLineStyle(Solidln, 0, NormWidth);
  8407.  
  8408.                   { »«½πτÑ¡¿Ñ úαáΣ¿¬«ó }
  8409.                 for t := 1 to num*2 do data2[t] := a+(b*t);
  8410.                 min := getmin(data, num)*2;
  8411.                 max := getmax(data, num)*2;
  8412.                 ScatterPlot(data, num, min,max, num*2);
  8413.                 ScatterPlot(data2, num*2, min,max, num*2);
  8414.                 ch := Readkey;
  8415.                 RestoreCrtMode;
  8416.                 end;
  8417.                end; { regress }
  8418.  
  8419.                 { ß«σαá¡¿Γ∞ ñá¡¡δÑ }
  8420.                 procedure Save(data: DataArray; num: integer);
  8421.                 var
  8422.                   t: integer;
  8423.                   fname: string[80];
  8424.                   temp: real;
  8425.                 begin
  8426.                   Write('Enter Filename: ');
  8427.                   Readln(fname);
  8428.                   Assign(datafile,fname);
  8429.  
  8430.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 182 =
  8431.  
  8432.                   rewrite(datafile);
  8433.                   temp := num;
  8434.                   write(datafile,temp);
  8435.                   for t := 1 to num do write(datafile,data[t]);
  8436.                   close(datafile);
  8437.                   end;
  8438.  
  8439.            { ºáúαπº¿Γ∞ ñá¡¡δÑ }
  8440.                 procedure Load;
  8441.                 var
  8442.                   t: integer;
  8443.                   fname: string[80];
  8444.                   temp: real;
  8445.                 begin
  8446.                   Write('Enter Filename: ');
  8447.                   Readln(fname);
  8448.                   Assign(datafile,fname);
  8449.                   reset(datafile);
  8450.                   Read(datafile,temp);
  8451.                   num := trunc(temp);
  8452.                   for t := 1 to num do Read(datafile,data[t]);
  8453.                   close(datafile);
  8454.                   end; { Load }
  8455.  
  8456.                   begin
  8457.                     repeat
  8458.                       ch := upcase(menu);
  8459.                       case ch of
  8460.                        'E': Enter(data);
  8461.                        'B': begin
  8462.                               a := mean(data, num);
  8463.                               m := median(data, num);
  8464.                               std := StdDev(data,num);
  8465.                               md := FindMode(data,num);
  8466.                               Writeln('mean:   ',a: 15: 5);
  8467.                               Writeln('median:  ',m: 15: 5);
  8468.                               Writeln('standart deviation:  ',std: 15: 5);
  8469.                               Writeln('mode:  ',md: 15: 5);
  8470.                               Writeln;
  8471.                             end;
  8472.                         'D': Display(data,num);
  8473.                         'P': BarPlot(data,num);
  8474.                         'R': Regress(data,num);
  8475.                         'S': Save(data,num);
  8476.                         'L': Load;
  8477.                        end;
  8478.                     until ch='Q'
  8479.                  end.
  8480.  
  8481.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 183 =
  8482.  
  8483.  
  8484.                         Åα¿¼Ñ¡Ñ¡¿Ñ »α«úαá¼¼δ ßΓáΓ¿ßΓ¿τÑ߬«ú« á¡á½¿ºá           
  8485.          -----------------------------------------------------------------
  8486.  
  8487.               ä½∩ Γ«ú«, τΓ«íδ »«¬áºáΓ∞, ¬á¬ ¼«ª¡« »«½∞º«óáΓ∞ß∩ αáºαáí«Γá¡-
  8488.          ¡«⌐  ó  φΓ«⌐ ú½áóÑ »α«úαá¼¼«⌐ »« ßΓáΓ¿ßΓ¿τÑ߬«¼π á¡á½¿ºπ,  »α«óÑ-
  8489.          ñѼ»α«ßΓ«⌐ á¡á½¿º á¬µ¿⌐ Σ¿α¼δ "ô¿ñúÑΓ". èᬠó¬½áñτ¿¬ óδ »δΓáÑΓÑß∞
  8490.          «»αÑñѽ¿Γ∞ µÑ½Ñß««íαạ«ßΓ∞ ó¬½áñá ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ ¬á»¿Γá½á ó ñÑ-
  8491.          ½« Σ¿α¼δ "ô¿ñúÑΓ" »«ßαÑñßΓó«¼ »«¬π»¬¿ ÑѠᬵ¿⌐ ¿½¿  »α«ñᪿ á¬µ¿⌐
  8492.          íѺ ¡áñѪñ ¡á íδßΓα«Ñ ß¡¿ªÑ¡¿Ñ ¬παßá ß ó«º¼«ª¡«ßΓ∞ε ¿σ »«¬π»¬¿ »«
  8493.          í«½ÑÑ ¡¿º¬«⌐ µÑ¡Ñ ¿½¿ ó¬½áñ ó ñαπú«Ñ »αÑñ»α¿∩Γ¿Ñ.
  8494.               ì¿ªÑ »α¿ó«ñ¿Γß∩  ¬παß  á¬µ¿⌐  Σ¿α¼δ "ô¿ñúÑΓ" ºá »«ß½Ññ¡¿Ñ 24
  8495.          ¼Ñß∩µá:
  8496.  
  8497.               îÑß∩µ       èπαߠᬵ¿⌐ /ó ñ«½½áαáσ/
  8498.               1              10
  8499.               2              10
  8500.               3              11
  8501.               4              9
  8502.               5              8
  8503.               6              8
  8504.               7              9
  8505.               8              10
  8506.               9              10
  8507.               10             13
  8508.               11             11
  8509.               12             11
  8510.               13             11
  8511.               14             11
  8512.               15             12
  8513.               16             13
  8514.               17             14
  8515.               18             16
  8516.               19             17
  8517.               20             15
  8518.               21             15
  8519.               22             16
  8520.               23             14
  8521.               24             18
  8522.  
  8523.               æ¡áτá½á ß½ÑñπÑΓ «»αÑñѽ¿Γ∞ ºáñáεΓ ½¿ φΓ¿ ñá¡¡δÑ ¬á¬πε-¡¿íπñ∞
  8524.          ΓÑ¡ñÑ¡µ¿ε. Äß¡«ó¡δÑ ßΓáΓ¿ßΓ¿τÑ߬¿Ñ «µÑ¡¬¿ íπñπΓ ß½ÑñπεΘ¿¼¿:
  8525.  
  8526.                 - ßαÑñ¡ÑÑ º¡áτÑ¡¿Ñ: 12.08;
  8527.                 - ¼Ññ¿á¡á: 11;
  8528.                 - ßΓá¡ñáαΓ¡«Ñ «Γ¬½«¡Ñ¡¿Ñ: 2.68;
  8529.                 - ¼«ñá: 11.
  8530.  
  8531.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 184 =
  8532.  
  8533.               çáΓѼ »«½πτ¿¼  ßΓ«½í¿¬«óπε  ñ¿áúαá¼¼π  ñ½∩ ¬παßá á¬µ¿⌐ (α¿ß.
  8534.          28).  âαáΣ¿¬ ú«ó«α¿Γ « ¡á½¿τ¿¿ ΓÑ¡ñÑ¡µ¿¿, «ñ¡á¬« ß½ÑñπÑΓ »α«óÑßΓ¿
  8535.          αÑúαÑßß¿«¡¡δ⌐ á¡á½¿º. ôαáó¡Ñ¡¿Ñ αÑúαÑßß¿¿ íπñÑΓ ß½ÑñπεΘ¿¼:
  8536.  
  8537.                   Y = 7.90 + 0.33*X
  8538.  
  8539.  
  8540.             .17
  8541.             .                                   |
  8542.             .                                 | |     |   |
  8543.             .                                 | | | | |   |
  8544.             .                 |             | | | | | | | |
  8545.             .                 |           | | | | | | | | |
  8546.             .     |           |         | | | | | | | | | |
  8547.             . | | |       | | | | | | | | | | | | | | | | |
  8548.             . | | | |     | | | | | | | | | | | | | | | | |
  8549.             . | | | |     | | | | | | | | | | | | | | | | |
  8550.             . | | | | | | | | | | | | | | | | | | | | | | |
  8551.             . | | | | | | | | | | | | | | | | | | | | | | |
  8552.             . | | | | | | | | | | | | | | | | | | | | | | |
  8553.             . | | | | | | | | | | | | | | | | | | | | | | |
  8554.             . | | | | | | | | | | | | | | | | | | | | | | |
  8555.             . | | | | | | | | | | | | | | | | | | | | | | |
  8556.             . | | | | | | | | | | | | | | | | | | | | | | |
  8557.             . | | | | | | | | | | | | | | | | | | | | | | |
  8558.             __|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|__
  8559.                                                       24
  8560.  
  8561.             É¿ß. 28. âαáΣ¿¬ ¬παßá á¬µ¿⌐ Σ¿α¼δ "ô¿ñúÑΓ" ºá »«ß½Ññ¡¿Ñ 24 ¼Ñ-
  8562.                      ß∩µá.
  8563.  
  8564.               è«φΣΣ¿µ¿Ñ¡Γ ¬«ααѽ∩µ¿¿  íπñÑΓ αáóÑ¡ 0,85,  τΓ« ß««ΓóÑΓßΓóπÑΓ
  8565.          74%.  ¥Γ« º¡áτÑ¡¿Ñ ∩ó½∩ÑΓß∩ ñ«ßΓáΓ«τ¡« σ«α«Φ¿¼, ßó¿ñÑΓѽ∞ßΓóπεΘ¿¼
  8566.          « ¡á½¿τ¿¿  ºá¼ÑΓ¡«⌐ ΓÑ¡ñÑ¡µ¿¿.  ÄτÑó¿ñÑ¡ α«ßΓ ¬παßá á¬µ¿⌐.  Æá¬«⌐
  8567.          αѺπ½∞ΓáΓ ºáßΓáó¿Γ ó¬½áñτ¿¬á «Γíα«ß¿Γ∞  »«ñ«ºαÑ¡¿∩  ¿  »α¿«íαÑßΓ¿
  8568.          ¬á¬ ¼«ª¡« ß¬«αÑÑ 1000 á¬µ¿⌐.
  8569.  
  8570.                                                                                
  8571.                           çÇèï₧ùêÆàï£ì¢à çÇîàùÇìêƒ
  8572.          -----------------------------------------------------------------
  8573.  
  8574.               Åαáó¿½∞¡«Ñ »α¿¼Ñ¡Ñ¡¿Ñ  αѺπ½∞ΓáΓ«ó  ßΓáΓ¿ßΓ¿τÑ߬«ú«  á¡á½¿ºá
  8575.          ΓαÑíπÑΓ  «íΘÑú« »«¡¿¼á¡¿∩ ¼ÑΓ«ñá »«½πτÑ¡¿∩ αѺπ½∞ΓáΓ«ó ¿ ¿σ ß¼δß-
  8576.          ½á.  èᬠó »α¿¼ÑαÑ ß Σ¿α¼«⌐ "ô¿ñúÑΓ" ½Ñú¬«  ¼«ª¡«  »«ºáíδΓ∞,  τΓ«
  8577.          »α«Φ½δÑ ß«íδΓ¿∩ ¡Ñ ¼«úπΓ πτÑßΓ∞ «íßΓ«∩Γѽ∞ßΓó,  ß»«ß«í¡δσ ßπΘÑßΓ-
  8578.          óÑ¡¡« »«ó½¿∩Γ∞ ¡á «¬«¡τáΓѽ∞¡δ⌐ αѺπ½∞ΓáΓ. æ½Ñ»«Ñ »α¿¼Ñ¡Ñ¡¿Ñ ßΓá-
  8579.          Γ¿ßΓ¿τÑ߬¿σ  «µÑ¡«¬ ó ¡Ñ¬«Γ«αδσ ß½πτá∩σ ¼«ªÑΓ ñáΓ∞ «τÑ¡∞ ¡Ñ»α¿∩Γ-
  8580.          ¡δÑ  αѺπ½∞ΓáΓδ.  æ½ÑñπÑΓ  »«¼¡¿Γ∞,   τΓ«   ßΓáΓ¿ßΓ¿¬á   ∩ó½∩ÑΓß∩
  8581.  
  8582.          Éáí«Γá ß Æπαí« Åá߬á½Ñ¼ #1/2                              = 185 =
  8583.  
  8584.          «ΓαáªÑ¡¿Ñ¼ αÑá½∞¡«ßΓ¿, ¡« ¡Ñ½∞º∩ ßτ¿ΓáΓ∞, τΓ« αÑá½∞¡«ßΓ∞ ∩ó½∩ÑΓß∩
  8585.          «ΓαáªÑ¡¿Ñ¼ ßΓáΓ¿ßΓ¿¬¿.
  8586.  
  8587.  
  8588.  
  8589.