

                           N -7

             ᮢ ஥஢  樯
             "᪮  ணࠬ஢" 㤥
         祭 ᠭ ஢ . -1-95.

    1. :
       ࠧࠡ⪠  ଠ樮-ࠢ筮 ⥬.

    2. 室 :
       ࠡ ଠ樮-ࠢ ⥬, ᯥ稢-
        ࠡ    Bit 饩  :
   ͻ
                                         
   ͹
                             No  業   
   No ͹  .͹
      ﺈﺎ⢮    ⠺ 1  2  3 
   ͹

      Bit ᮧ  stud  ﬨ :

   ͻ
                                            
   ͹
                                           No  㬬 
    No ͹ .  
                      ⢮  ⠺       
   ͹

     ⥬   ० ४஢,  㭨⮦-
     ᬮ, 㧪,  ࠭.
      ணࠬ஢ ஫.

    3. 祭 ᮢ,  ࠧࠡ⪥:

       3.1 ࠡ⪠ , ᯥ稢饥 ⢨ 짮-
           ⥫  ⥬,  ᮮ⢥⢨  ,  ।-
           ॢ ०:
            - ४஢ ,
            - 㭨⮦ ,
            - ᬮ ,
            - 㧪 ,
            - ࠭ ,
            - ᮧ  .
       3.2 ࠡ⪠ 楤:
            - ४஢ ,
            - 㭨⮦ ,
            - ᬮ ,
            - 㧪 ,
            - ࠭ ,
            - ᮧ  .

    4. 祭 ᪨ ਠ:

       4.1 ୠ 奬 
       4.2 ୠ 奬 ணࠬ.

    5.  -䨪 ࠡ  ᮢ ࠡ⮩:

       1. 祭 
                            4.10.96
       2.  , ⠭ ,      祭
          
                            18.10.96
       3. ࠡ⪠    ணࠬ
                            25.10.96
       4. ࠡ⪠ 楤 ଠ樮-ࠢ筮 ⥬
                            15.11.96
       5. ⫠ ணࠬ
                            29.11.96
       6. ଫ ᭨⥫쭮 ᪨  ᤠ ࠡ  -
          
                            24.12.96
       7.  ᮢ ࠡ
                            25.12.96























                              㪮⥫          / ../
                              㤥   /祭 .., -1-95/









                            aঠ
                                                        @.
           .................................... 4
          1. ⨥  ଠ樮 ⥬  
             ணࠬ ॠ樨 ................... 4
          2.    ᯮᮡ  ।⠢ ... 4
          3. ࠡ⪠ ⥬  ............... 5
          4. ࠡ⪠  ணࠬ ........... 7
          5. ࠡ⪠ 楤:
             5.1 ᭮ 楤 Begin ............. 8
             5.2 뢮   Main_menu ....... 8
             5.3 ⮬᪮ 㧪  Autoload .. 9
             5.4 뢮 ଠ樨  ⥬
                 Working(0) ........................... 9
             5.5 뢮  ४஢ Working(1) . 9
             5.6  ᥩ Working(2) .......... 9
             5.7 뢮  ᬮ Working(3) ..... 9
             5.8 뢮  㧪 Working(4) ..... 10
             5.9 뢮  ࠭ Working(5) ... 10
             5.10    Working(6) ....... 10
             5.11 室  ணࠬ Working(7) ..... 10
             5.12 ࠡ⪨ 訡 짮⥫
                  Working(_) ......................... 10
             5.13 ४஢  Correct(1) .... 10
             5.14   ᥩ Correct(2). 11
             5.15 ᬮ  View .................. 11
             5.16 ᯮ⥫쭮 Accept ............. 11
             5.17 ᯮ⥫ Skip  Skip1 ....... 11
             5.18 㧪   ᪠ Bd_load ........ 12
             5.19 ࠭   ᪥ Bd_save ..... 12
             5.20 ᯮ⥫쭮 Ask ................ 12
             5.21 Mesage ............................. 12
             5.22 Error  Io_error ................... 12
             5.23 Ok ................................. 12
          6. ⨭ ணࠬ ....................... 13
          7. ⫠ ணࠬ ....................... 24
          8.  짮⥫  襭
             ஫ ਬ஢: ................... 25
          祭 ................................. 28
          ᮪  .......................... 29











                             @

     ᮢ ᠭ  몥 ஫  । Turbo Prolog
v 2.0 (஢ ).   몠   -
 ⮩  १砩 䥪⨢ ࠡ    -
,     ᭮ ᮧ ࠧ筮 த -
樮 - ࠢ ⥬.   몠  ஫  ᮮ⢥-
  ५樮   .    ⭮襭    
ᮮ⢥ ।  ஫,  - 䠪, ਡ ⭮-
襭 - 㬥 ।  .. ஥   ஫  ।
ࠡ    ᮧ 㦥⢥ 䥩  -
 짮⥫  ଠ樮 - ࠢ筮 ⥬.

             @ 1. ⨥  ଠ樮-ࠢ
               @⥬      @ ணࠬ ॠ樨

     ଠ樮-ࠢ ⥬ -    ணࠬ-窨,
㦠騥  ࠢ ᨢ     .      
᥮饩 ਧ樨 ଠ樮-ࠢ ⥬  -
⥫쭮   祫    த  宧-
⢠. ⥫쭮 ⨫ ࠡ ᪮᪮ 樨   -
㦥 㣭 ࠭ᯮ ᫥ ᮧ  ᪢  
   㣭 ⮬. 壠ࠬ ।⨩  
⥯  㦭 ॡ  㬠, ⮡    
 㤭: 筮 㧨 ଠ樮-ࠢ  -
⥬    㤮 ଥ 뤠  室 ଠ.
      ਬ ଠ樮-ࠢ ⥬  ⨭
࠭:   ⨪ 㤮 ᪮  ଥ,  ⠢-
 ⠫   ⥪  ந ⢠  -
, ᡮ   稨 ࠡ ᨩ    ॣ  
 㣨.
       ᯮᮡ ணࠬ ॠ樨  ଠ樮--
筮 ⥬  ᯮ짮   ᮧ 몠 -
᪮ ணࠬ஢ ஫.   ॠ樨 몠 ᮤ-
 ⢮ ஥  ।⮢,  ⢥  
ᠭ ⠪ ⥬.

             @2.    ᯮᮡ  ।⠢

        ⥩襬 砥  -  㯮冷祭  
   ⠡,     ன    ꥤ
ࠧ⨯ , 祬        -
 .     ।⠢    :
᪠, ⥢  ५樮.  ᨫ  ᮡ⥩  몠
஫,      ॠ  ५樮  .  
ப    뢠 ⮬ ⭮襭,    -
 - ਡ⮬ ⭮襭, ⢮   -  ୮,  
⢮ ப - 魮.   몥  ணࠬ஢  ஫
ਡ ⭮襭 ᮮ⢥ 㬥  ।,  ୮  -
⢮ 㬥⮢  ।, ⭮襭 - ।, -
 - 䠪,  魮 - ᫮ 䠪⮢. 室    襯᫥-
 ᮮ⢥⢨ ஫  ४ ।⢮   ॠ-
樨 ५樮  .

                   @3. ࠡ⪠ ⥬ 

      ० ணࠬ ⨢   ,  ஥
ॠ   楤 main_menu.  ⨢樨  -
  ०  짮⥫  ᫥    ஢  ,
ᮮ⢥ ࠭ 㭪 .
        ணࠬ  ⮨   ᥬ 㭪⮢:

     0 -  ⥬...           - 뢮   ⥬
     1 - ४஢    - ० ४஢ 
     2 - ⮦      - ० 㤠 
     3 - ᬮ           - ० ᬮ 
     4 - 㧪           - ० 㧪 
     5 - ࠭         - ० ࠭ 
     6 -       - ० ᮧ  
     7 - 室  ணࠬ     - 室  ணࠬ

   ᫥饩 ࠭ ।⠢ ᪠  .


























































































                 @4. ࠡ⪠  ணࠬ


           A ணࠬ  "᮪ 쥭⮢":

                      ͻ
                             begin       
                      ĺ
                      ᭮  楤࠺
                      ͼ
               ͻ
       ͻ               ͻ
           autoload                      main_manu   
       ĺ               ĺ
        ⮧㧪                    
       ͼ               ͼ
                                                
      ͻ
                                                  
  ͻ  ͻ  ͻ  ͻ
  working(0)   working(1)    working(2)  working(3)
  ĺ  ĺ  ĺ  ĺ
  ଠ  ४஢       ᬮ 
    ⥬                       
  ͼ  ͼ  ͼ  ͼ
 ͹       ɼ               Ȼ            ͻ
                                           ͻ           
        ͻ   ͻ  ͻ      
         working(4)     working(5)   working(6)      
        ĺ   ĺ  ĺ      
         楤      楤            
        㧪    ࠭            
        ͼ   ͼ  ͼ      
                              ͻ                    
              Ȼ      ͻ  ͻ       
  ͻ                     ͻ              
  working(7)  ͻ  ͻ  ͻ 
 ͹ĺ  correct(1)  correct(2)   accept(N)  
    室     ĺ  ĺ  ĺ 
  ͼ        । 
  ͻ               㤠塞  
  working(_)  ͼ  ͼ        
 ͹ĺ       ͻ      ͼ 
    ࠡ⪠          correct(_)                       
     訡         ĺ                    
   ͼ        室                  ͼ
                                                  
                      ͼ                
                                                        
                                                        
               (1)                           (2)         (3)



               (1)                            (2)        (3)
                                                        
                                                        ͻ
                                              ͻ 
        ͻ       
  ͻ ͻ ͻ ͻ  
   load_bd(1)   load_bd(2)  load_bd(3)  load_bd(4)  
  ĺ ĺ ĺ ĺ  
    㧪    㧪     㧪    㧪   
  ᭮   ᭮             
     䠩     䠩      䠩     䠩   
  짮⥫   bit.dat   짮⥫  bstud.dat  
  ͼ ͼ ͼ ͼ  
                                                            
        ͼ 
  ͻ ͻ ͻ ͻ   
   save_bd(1)   save_bd(2)  save_bd(3)  save_bd(4)   
  ĺ ĺ ĺ ĺ   
   ࠭   ࠭  ࠭  ࠭   
  ᭮   ᭮              
     䠩       䠩      䠩       䠩    
  짮⥫   bit.dat   짮⥫  bstud.dat   
  ͼ ͼ ͼ ͼ   
                                                             
           ͼ
    ͻ     ͻ     ͻ
       view(1)           view(2)           view(_)   
    ĺ     ĺ     ĺ
      ᬮ           ᬮ           室    
     ᭮                          
    ͼ     ͼ     ͼ


                      @5. ࠡ⪠ 楤

     楤 ᮧ  ᭮ ॡ,   -
  ᮢ ࠡ.


                  @ 5.1 ᭮ 楤 Begin.

       楤 Begin  ࠧ GOAL 樨  -
 믮 ணࠬ.  楤  ᪠  楤  -
砫쭮 㧪   Autoload, ᫥ 祣 । ࠢ-
 楤 뢮   Main_menu.

          @ 5.2 楤 뢮   Main_menu.

      楤 뢮 ᯨ᮪ 㭪⮢       -
  짮⥫  ᫠, ஥ 㤥 ᥭ   -
 C. ᫥ ⮣ 뢠 楤 ࠡ⪨ ᭮ -
 Working,   ६ C ।  ⢥ -
.  楤 ᯮ짮 । Repeat,   裡    ⨬
᫥   楤 Working  砥, ᫨ C   ࠢ  7
ந室  뢮 㭪⮢     ᫠.

        @5.3 楤 ⮬᪮ 㧪  Autoload.

     楤 Autoload ।祭  ⮬᪮  -
 ᭮    ᪥  ணࠬ.    ⥫쭮
砥 ࠡ  ⥬, ⠪     ॡ    ᪥
ணࠬ 㦠 ᭮   ० "㧪".  楤
Autoload ஢ ⢮  ᪥  䠩  bit.dat    -
 ஥ । existfile  㦠     
 । consult.   砥  ⢨  䠩  뤠
ᮮ饭  訡.

       @5.4 楤 뢮 ଠ樨  ⥬ Working(0).

      楤 뢮 ଠ  몥,  ஬  -
ᠭ ⥬    ᮧ⥫.

      @5.5 楤 뢮  ४樨  Working(1).

     楤 Working(1) 㦨  뢮   ०  ४-
樨 , 室  ,  ᥭ  ᥩ. ᫥ -
⨢樨 楤 뢮   ஬  ०: "-
 ", " "  "室  ".  ⨢
० ந室 筮         
ᮮ⢥饩 ஢ . ⠭      ᫮
    ६  X,  ᫥  祣  뢠   楤
Correct,  㬥⮬  ன  㦨  X.        楤
Correct(1)  Correct(2), ᠭ , ᮡ⢥   ॠ-
 ० ४樨  .   楤  Working(1)  ⠪
ਬ । Repeat,   ண  ॠ  -
 뢮   砥 訡 .

            @5.6 楤 㤠 ᥩ Working(2).

      楤 ।祭  㤠 ᥩ   
.  ணࠬ ।ᬮ७     -
 㤠塞 ,   䠬  쥭,  ᮤঠ饩  
 .     ॠ  楤ன  Accept,
ᠭ . 楤 Accept 頥  ࠭ -
    ஥ । retract  㤠  
  .   砥  訡  (⢨  ,   ࠭
짮⥫  㤠) 뢮  ᮮ⢥饥  ᮮ饭
(楤 Error).

        @5.7 楤 뢮  ᬮ  Working(3).

     楤 Working(3) 뢮 , ᮤঠ饥 㭪: "-
 ᭮ ", "ᬮ  BSTUD"  "室   -
". ⢥ ᬮ ᮤন    ⢫  楤
View(1)  View(2), ᬮ७ . 楤 Working(3)  ॠ-
  ⨫ 楤 Main_menu   Working(1)    ਬ
楤 Repeat.


         @5.8 楤 뢮  㧪  Working(4).

      楤 뢮 , ᮤঠ饥 ᫥騥  㭪:
"㧨 ᭮   ࠭ 䠩", " 㧨 ᭮-
   䠩 bit.dat", " 㧨  BSTUD   ࠭
䠩"," 㧨  BSTUD   䠩  bstud.dat"    "室  
 ". ⢥ 㧪   ⢫ -
楤ன Load_bd, 㬥⮬ ன 㦨 ६ C,  ⠭-
     짮⥫    㭪
.  楤 Working(4) ⠪ ਬ 楤 Repeat.

        @5.9 楤 뢮  ࠭  Working(5).

     楤 Working(5) 筠 Working(4).    ࠭
  ਬ 楤 Save_bd, ᬮ७ , -
㬥⮬ ன  ६ I.

           @5.10 楤 ᮧ   Working(6).

      楤 㦨  ᮧ   . -
楤 ࠡ⠥ ᫥騬 ࠧ:  , 饩    "-
쥭" ,  㦭 ,  ந  㬬஢
業        । assertz -
    ⪮ "㤥".  ⮣, ⮡ 뫨 ࠡ-
⠭  , ᯮ fail. ᫥ ᮧ     -
 ᮮ⢥饥 ᮮ饭  ।०    ⮬,  ⮡
짮⥫   ࠭  ᮧ .

          @5.11 楤 室  ணࠬ Working(7).

      楤 ⮨    祭,  ஥  頥
쭥訩 ॡ. 楤 稢 ᯥ宬    ந室
  楤 Main_menu,  ன 믮 ᫮ C=7,
 祬 ந室 室  ணࠬ.


     @5.12 楤 ࠡ⪨ 訡 짮⥫ Working(_).

     楤 Working(_) 뢮 ᮮ饭  訡   -
  ᪠  ⮬,  ᫥  ᫮  0   7.  뢮
ᮮ饭 ᮯ஢ 祩 㪮  ᨣ,  ॠ-
   ஥ । sound. ᫥   
ந室    .


          @5.13 楤 ४஢  Correct(1).

       楤  ந  ४      .
     ४஢    -
,   䠬 쥭.    ।⠢-
 楤 Accept, ᠭ ,   뢠  ᫥
ᮧ  " ". 楤 Accept  ।  -
 ࠭   ६ N, ᫥ 祣 ᮤন  -
 ᯥ뢠  ࠭. ᫥ ⮣ 짮⥫ ।⠢-
    ; ᫨    室-
  - ,     <Enter>.
 ,  ⮬ ᫥  ᫠, 뢠  ଠ ப. 
室  ⢫  ⪠   -
 ⨥  <Enter>.  ⠭    ।
楤ࠬ Skip ( ப 室 )  Skip1 (  -
᫥ 室 ).  楤  ᨬ   -
,  뫠        <Enter>      楤
Correct(1)  ஥ 祭,  ,    祬  楤
Skip1 ८ࠧ   ஥ । str_int  ப-
   楫᫥.   㤠    -
 ।⮬ retract,     ।⮬  assertz.
 砭 뢮 ।०  ⮬,   ᫥  -
   (楤 Mesage).


        @5.14 楤   ᥩ Correct(2).

      楤 Correct(2) 㦨    ᥩ    .
짮⥫ ।    , ⢥  
 ⥬.   । assertz   
, ᫥ 祣 뢠 ।  Ask,  ନ騩    
த    ᥩ.  ᫨    짮⥫
㤥 祭 ⢥न⥫ ⢥,   楤 Repeat
横   ,  祭 ⥫쭮  ⢥-
 ⥬ 뤠 ।०  室 ࠭ 
  (楤 Mesage)  ந    -
楤 Correct(2).

             @5.15 楤 ᬮ   View.

       楤 㦨  뢮  ࠭ ᮤন -
 ( View(1) )   ᮧ ( View(2) )  . -
  楤 뢮  ⠡, ᫥ 祣 ᯥ-
뢠 ᮤন  .  ॡ  ᥩ    ਬ
। fail. ᫥ 뢮  ᥩ  뢮  졠  -
    த.

              @5.16 ᯮ⥫쭠 楤 Accept.

        楤    ᯮ⥫쭮    楤ࠬ
Correct(1)  Working(2).      ᯮ⥫쭮  楤-
ன Acp ।    ᫥   짮-
  ᮡ⢥  ⮩ ,  ᫥   䠬
쥭 ( 㭪   , 뢮  -
ன Accept)  頥    뢠 楤.

           @5.17 ᯮ⥫ 楤 Skip  Skip1.

      楤 Skip  Skip1  ᯮ⥫묨  楤-
 Correct(1).     ।,  ᫥    
騩       (᫨ 뫠   -
 <Enter>).  楤 ஢,    -
 ⮩ ப. ᫨  ⠪,  쥬 㬥  ᢠ-
 ன. ᫨   㬥    ⮩  -
,   ᢠ 쥬 㬥 (  Skip1  ந室
।⥫쭮 ८ࠧ ப ६  楫᫥-
).

            @5.18 楤 㧪   ᪠ Bd_load.

       楤 ⢫ 㧪      䠩-
  ᪥   ਧ,  騬    㬥  楤:
Bd_load(1) 㦠 ᭮   䠩,   짮-
, Bd_load(2) -  䠩 bit.dat, Bd_load(3) -    BSTUD  
䠩,  짮⥫  BD_load(4) -  BSTUD   䠩-
 bstud.dat.   楤 ஢  稥  䠩  
᪥   । existfile  㧪      -
 । consult.  砥 ⢨ 䠩  ᪥,  -
 ᮮ⢥饥 ᮮ饭 (楤  Io_error).


          @5.19    @楤 ࠭   ᪥ Bd_save.

       楤 ⢫ ࠭     䠩-
  ᪥   ਧ,  騬    㬥  楤:
Bd_save(1) ࠭ ᭮   䠩,  짮⥫,
Bd_save(2) -  䠩 bit.dat, Bd_save(3) -   BSTUD    䠩,
  짮⥫    BD_save(4)  -    BSTUD     䠩
bstud.dat. ࠭   ⢫      ஥
। save.  砥 訡 뤠 ᮮ⢥饥  ᮮ-
 (楤 Error).


                @5.20 ᯮ⥫쭠 楤 Ask.

      楤  Ask    ᯮ⥫쭮        楤
Correct(2).  訢 짮⥫,       த-
  .


                      @5.21 楤 Mesage.

        楤 뢮  ।०    室
࠭   .


                 @5.22 楤 Error  Io_error.

        楤 뢮 ᮮ饭  訡.


                        @5.23 楤 Ok.

        楤 뢮 ᮮ饭  ᯥ譮  믮
樨.

                       @6. ⨭ ணࠬ.

domains
        Str=string
        Int=integer
        =䨮(Str,Str,Str)
        =業(Int,Int,Int)

database - 㤥
           㤥(Int,,Int,Int),
database - 쥭
           쥭(Int,,Str,Int,)

predicates

        begin
        main_menu
        autoload
        accept(Int)
        acp(Int,Int)
        working(Int)
        correct(Int)
        view(Int)
        skip(Str,Str,Str)
        skip1(Str,Int,Int)
        ask
        mesage
        error
        io_error
        ok
        save_bd(Int)
        load_bd(Int)
        repeat

goal
        begin.



clauses


/* ᭮ 楤, .8 */

      begin:-
           makewindow(1,26,94," ",0,0,25,80),
            clearwindow,
            autoload,
            main_menu.




/*  , .8 */

      main_menu:-
            repeat,
            cursor(7,0),
            write("                    0 -  ⥬...  "),nl,
            write("                    1 - ४஢ "),nl,
            write("                    2 - ⮦ ᥩ"),nl,
            write("                    3 - ᬮ "),nl,
            write("                    4 - 㧪 "),nl,
            write("                    5 - ࠭ "),nl,
            write("                    6 -   "),nl,
            write("                    7 - 室  ணࠬ"),nl,
            write("                    =>"),
            readint(C),
            clearwindow,
            working(C),
            clearwindow,
            C = 7,
            retractall(_),
            removewindow.


/* 楤 ⮬᪮ 㧪  , .9 */

      autoload:-
            retractall(_,쥭),
            existfile("bit.dat"),
            consult("bit.dat",쥭),
            cursor(21,30),
            write("* 㦥*").

      autoload:-
            makewindow(2,74,79,"",6,18,8,40),
            cursor(2,10),
            write("   ᪥"),
            sound(70,294),
            removewindow,
            !.


/* 뢮   ᮧ⥫ ணࠬ, .9 */

      working(0):-
            makewindow(3,27,30," ⥬...",0,0,25,80),
            nl,nl,
write("                     p樮-p筠 ⥬"),
            nl,nl,
write("                            ᮪ 쥭⮢     "),
            nl,nl,nl,nl,
write("                        ணࠬ ⠢  ।      "),
            nl,
write("                             TURBO-PROLOG v.2.0."),
            nl,nl,nl,
write("                            p: 祭 .."),
            nl,nl,
write("                       , p.-1-95  () 1996 . "),
            nl,
            sound(5,220),
            cursor(22,26),
            write("   "),
            readchar(_),
            removewindow,!.



/* 楤 뢮  ४஢ , .9 */

      working(1):-
            makewindow(4,26,48,"pp஢ ",0,0,25,80),
            sound(5,220),
            repeat,
            nl,
            nl,
            cursor(9,0),
            write("        1 -  "),nl,
            write("        2 -  "),nl,
            write("        3 - 室   " ),nl,
            write("        =>"),
            readint(X),
            clearwindow,
            X>0,X<=3,
            correct(X),
            clearwindow,
            X=3,!,
            removewindow.


/* 楤 㭨⮦ , .9 */

      working(2):-
            makewindow(5,48,107,"⮦ ᥩ",0,0,25,80),
            sound(5,220),
            nl,
            accept(N),
            X=N,
            쥭(X,䨮(Fm,Nm,Ot),Pl,Ls,業(E1,E2,E3)),
            retract(쥭(X,䨮(Fm,Nm,Ot),Pl,Ls,業(E1,E2,E3))),
            ok,
            !,
            removewindow.

      working(2):-
            error,
            removewindow,!.



/* 楤 뢮  ᬮ   , .9 */

      working(3):-
            makewindow(6,30,26,"ᬮp ",0,0,25,80),
            sound(5,220),
            repeat,
            nl,
            nl,
            cursor(10,0),
            write("            1 - ᬮ ᭮ "),nl,
            write("            2 - ᬮ  BSTUD"),nl,
            write("            3 - 室   " ),nl,
            write("            =>"),
            readint(X),
            clearwindow,
            X>0,X<=3,
            view(X),
            clearwindow,
            X=3,!,
            removewindow.



/* 楤 㧪   , .10 */

      working(4):-
            makewindow(7,62,120,"㧪",5,10,15,60),
            sound(5,220),
            repeat,
            nl,nl,
            write("1 - 㧨 ᭮   ࠭ 䠩"),nl,
            write("2 - 㧨 ᭮   䠩 bit.dat"),nl,
            write("3 - 㧨  BSTUD  ࠭ 䠩"),nl,
            write("4 - 㧨  BSTUD  䠩 bstud.dat"),nl,
            write("5 - 室  ᭮ "),nl,
            write("=>"),
            readint(C),
            clearwindow,
            C>0,C<=5,
            load_bd(C),
            clearwindow,
            C = 5,!,
            removewindow.



/* 楤 ࠭  , .10 */

      working(5):-
            makewindow(8,62,120,"࠭",5,10,15,60),
            sound(5,220),
            repeat,
            nl,nl,
            write("1 - ࠭ ᭮   㪠 䠩"),nl,
            write("2 - ࠭ ᭮   䠩 bit.dat"),nl,
            write("3 - ࠭  BSTUD  㪠 䠩"),nl,
            write("4 - ࠭  BSTUD  䠩 bstud.dat"),nl,
            write("5 - 室  ᭮ "),nl,
            write("=>"),
            readint(I),
            clearwindow,
            I>0,I<=5,
            save_bd(I),
            clearwindow,!,
            removewindow.


/* 楤 ᮧ   , .10 */

   working(6):-
         makewindow(10,43,120,"   BSTUD",6,18,8,40),
         sound(5,220),
         nl,
         retractall(_,㤥),
         쥭(N,䨮(Fam,Nam,Otch),Pol,List,業(E1,E2,E3)),
         N=N1, Fam1=Fam, Nam1=Nam,
         Otch1=Otch, List1=List, Sum=E1+E2+E3,
         assertz(㤥(N1,䨮(Fam1,Nam1,Otch1),List,Sum)),
         fail.

   working(6):-
         write("           BSTUD ᮧ."),
         nl,
         write("         ࠭ !"),
         nl,nl,
         write("           "),
         readchar(_),
         removewindow,!.

/* 楤 室, .10 */

   working(7):-!.


/* ࠡ⪠ 訡 짮⥫, .10 */

   working(_):-
         makewindow(16,74,79," ",6,18,8,40),
         nl,
         write("         ᫮  0  7,"),nl,
         write("  ᮮ⢥饥 ࠭ 㭪"),nl,nl,nl,
         write("           "),
         sound(20,494),
         sound(30,392),
         readchar(_),
         removewindow.


/* 楤 ४樨   , .10 */

   correct(1):-
         makewindow(4,26,48," ",0,0,25,80),
         nl,
         accept(N),
         X=N,
         쥭(X,䨮(Fam,Nam,Otch),Pol,List,業(E1,E2,E3)),
         clearwindow,nl,
         write("浪  쥭 : "),write(N),nl,
         write("                      : "),write(Fam),nl,
         write("                          : "),write(Nam),nl,
         write("⢮                     : "),write(Otch),nl,
         write("                          : "),write(Pol),nl,
         write(" 樮  : "),write(List),nl,nl,
         write("業    -          "),nl,nl,
         write(" :  "),write(E1),write("   "),
         write(" ன:  "),write(E2),write("   "),
         write(" ⨩:  "),write(E3),
         nl,nl,nl,
         write(" 䠬                   : "),readln(Fam1),
         write("                        : "),readln(Nam1),
         write(" ⢮                  : "),readln(Otch1),
         write("                        : "),readln(Pol1),
         write("  樮 : "),readln(List1),
         write(" 業    -       "),nl,
         write("                          : "),readln(Ekz1),
         write(" ன                         : "),readln(Ekz2),
         write(" ⨩                         : "),readln(Ekz3),nl,
         X1=X,
         retract(쥭(X,䨮(Fam,Nam,Otch),Pol,List,業(E1,E2,E3))),
         skip(Fam1,Fam,Fam2),
         skip(Nam1,Nam,Nam2),
         skip(Otch1,Otch,Otch2),
         skip(Pol1,Pol,Pol2),
         skip1(List1,List,List2),
         skip1(Ekz1,E1,E11),
         skip1(Ekz2,E2,E22),
         skip1(Ekz3,E3,E33),
assertz(쥭(X1,䨮(Fam2,Nam2,Otch2),Pol2,List2,業(E11,E22,E33))),
         !,
         mesage,
         removewindow.

/* 楤   ᥩ, .11 */

   correct(2):-
         makewindow(9,26,48,"  ",0,0,25,80),
         repeat,
         nl,
         write(" 浪  쥭: "),readint(K),nl,
         write(" 䠬                     : "),readln(F),nl,
         write("                          : "),readln(N),nl,
         write(" ⢮                    : "),readln(O),nl,
         write("                          : "),readln(P),nl,
         write("  樮 : "), readint(L),nl,
         write(" 業    -"),nl,nl,
         write("                            : "),readint(E1),nl,
         write("           ன                 : "),readint(E2),nl,
         write("           ⨩                 : "),readint(E3),nl,
         N1=K,
         Fam=F,Nam=N,Otch=O,
         Pol=P,List=L,
         Ekz1=E1,Ekz2=E2,Ekz3=E3,
assertz(쥭(N1,䨮(Fam,Nam,Otch),Pol,List,業(Ekz1,Ekz2,Ekz3))),
         ask,!,
         mesage,
         removewindow.

   correct(_).

/* 楤 ᬮ , .11 */

   view(1):-
         makewindow(16,31,26,"ᬮp ᭮ ",0,0,25,80),
         nl,nl,
write("ͻ"),nl,
write("                                     "),nl,
write("͹"),nl,
write("                           No 業  "),nl,
write(" No ͹ .͹"),nl,
write("    ﺈ ⢮   ⠺1  2 3 "),nl,
write("͹"),nl,
         쥭(N,䨮(Fam,Nam,Otch),Pol,List,業(E1,E2,E3)),
         cursor(Z,_),
         cursor(Z,2),write(N),
         cursor(Z,5),write("",Fam),
         cursor(Z,18),write("",Nam),
         cursor(Z,30),write("",Otch),
         cursor(Z,43),write("  ",Pol),
         cursor(Z,49),write("  ",List),
         cursor(Z,55),write("   ",E1),
         cursor(Z,62),write("   ",E2),
         cursor(Z,69),write("   ",E3),
         cursor(Z,0),write(""),
         cursor(Z,76),write(""),
         nl,
         fail.

   view(1):-
write("ͼ"),
         nl,
         cursor(22,26),
         write("   "),
         readchar(_),
         removewindow.


   view(2):-
         nl,
         makewindow(13,31,26,"ᬮ   ",0,0,25,80),
write("ͻ"),nl,
write("                                        "),nl,
write("͹"),nl,
write("                                       No  㬬 "),nl,
write(" No ͹ .  "),nl,
write("                   ⢮ ⠺       "),nl,
write("͹"),nl,
         㤥(N,䨮(Fam,Nam,Otch),List,Sum),
         cursor(Z,_),
         cursor(Z,11),write(N),
         cursor(Z,14),write("",Fam),
         cursor(Z,27),write("",Nam),
         cursor(Z,39),write("",Otch),
         cursor(Z,52),write("  ",List),
         cursor(Z,58),write("   ",Sum),
         cursor(Z,9),write(""),
         cursor(Z,66),write(""),
         nl,
         fail.

   view(2):-
write("ͼ"),
         nl,
         cursor(22,26),
         write("   "),
         readchar(_),
         removewindow.

   view(_).

/* ᯮ⥫쭠 楤  楤 */
/*   correct(1)   working(2), .11    */

   accept(N):-
         nl,
         cursor(10,0),
         write("     1 - ⥭  쥭"),nl,
         write("     2 - ⭠  䠬"),nl,
         write("     =>"),
         readint(X),
         acp(X,N).

   acp(1,N):-
         nl,
         write("       쥭: "),nl,
         write("     >"),
         readint(N),
         쥭(P,_,_,_,_),
         P=N.


      acp(1,N):-
            N=0.

      acp(2,N):-
            nl,
            write("   䠬 쥭: "),nl,
            write("  >"),
            readln(L),
            쥭(Y,䨮(L,_,_),_,_,_),
            N=Y.

      acp(2,N):-
            N=0.


/* ᯮ⥫쭠 楤  correct(1), .11 */

      skip("",Fam,Fam2):-
            Fam2=Fam,
            !.

      skip(Fam1,_,Fam2):-
            Fam2=Fam1,
            !.


      skip1("",Fam,Fam2):-
            Fam2=Fam,
            !.

      skip1(Fam1,_,Fam2):-
            str_int(Fam1,Fam3),
            Fam2=Fam3,
            !.


/* 楤 ⥭  ᪠, .12 */

      load_bd(1):-
            retractall(_,쥭),nl,nl,
            write("    䠩 :"),
            readln(N),
            existfile(N),
            consult(N,쥭),
            ok,
            !.

      load_bd(1):-
            io_error,
            !.

      load_bd(2):-
            retractall(_,쥭),
            existfile("bit.dat"),
            consult("bit.dat",쥭),
            ok,
            !.

      load_bd(2):-
            io_error,
            !.

      load_bd(3):-
            retractall(_,㤥),nl,nl,
            write("    䠩 :"),
            readln(N),
            existfile(N),
            consult(N,㤥),
            ok,
            !.

      load_bd(3):-
            io_error,
            !.

      load_bd(4):-
            retractall(_,㤥),
            existfile("bstud.dat"),
            consult("bstud.dat",㤥),
            ok,
            !.

      load_bd(4):-
            io_error,
            !.

      load_bd(_).


/* 楤   , .12 */

      save_bd(1):-
            nl,nl,
            write("    䠩 : "),
            readln(N),
            save(N,쥭),nl,
            ok,
            !.

      save_bd(1):-
            error.

      save_bd(2):-
            save("bit.dat",쥭),
            ok,
            !.


      save_bd(2):-
            error.

      save_bd(3):-
            nl,nl,
            write("    䠩 : "),
            readln(N),
            save(N,㤥),nl,
            ok,
            !.

      save_bd(3):-
            error.

      save_bd(4):-
            save("bstud.dat",㤥),
            ok,
            !.

      save_bd(4):-
            error.

      save_bd(_).

/* 楤   砭   correct(2), .12 */

      ask:-
            makewindow(10,43,120,"",6,18,8,40),nl,nl,
            write("  த   ? "),nl,nl,
            write("             []/[]"),
            readchar(Ch),
            removewindow,
            clearwindow,
            Ch='',!.

/* 뢮 ।०  室 ࠭ , .12 */

     mesage:-
            makewindow(17,74,79,"।०",6,18,8,40),nl,
            write("          ࠭ "),nl,
            write("          !"),nl,nl,
            write("          "),
            readchar(Ch),
            removewindow.


/* 楤 뢮 ᮮ饭  訡, .12 */

      error:-
            makewindow(15,74,79,"",6,18,8,40),
            cursor(2,16),
            write(""),nl,nl,
            write("           "),
            sound(70,294),
            readchar(_),
            removewindow,
            !.

      io_error:-
            makewindow(16,74,79,"",6,18,8,40),
            cursor(2,7),
            write(" 䠩   ᪥"),nl,nl,
            write("           "),
            sound(70,294),
            readchar(_),
            removewindow.


/* 楤 뢮 ᮮ饭  ᯥ譮 襭 */
/*                樨, .12             */

      ok:-
            makewindow(17,27,90,"",6,18,8,40),
            cursor(2,7),
            write("    "),nl,nl,
            write("           "),
            readchar(_),
            removewindow.

/* 楤 repeat */

      repeat.
      repeat:- repeat.


                       @7. ⫠ ணࠬ

         ⫠ ணࠬ 訡 ࠭﫨   ⠯.  
ࢮ ⠯  몠 ஫ ᠬ 㪠뢠  ᨭ⠪-
᪨ 訡.  訡   ࠢ쭮  ᠭ
 ஥ ।⮢,   뢠    ।-
  ࠧ predicates  .. ᫨  諠  ᯥ譮,
 ணࠬ ࠡ⠫ ४⭮, 室 室  -
஬ ⠯ - ᬮ ⥪ ணࠬ  ᪮  ᫥
訡.  ⮬ ⠯ 뫨 ࠭ ⠪ 訡,  뢮 -
      ० ᬮ . 稭  -
 뫮 ⢨   楤 । fail. 訡  뫠
࠭. ᫨   ன ⠯, 室 室  
쥬 - ஢.  뫠  ⠭  ᫥  訡:
 室  楤 Working(4)   뢮    
 "᮪ 쥭⮢",    "㧪" (..    㤠-
   "㧪"). ᫥ ஢ 뫮 ᭥,  
楤   ⮬  ⮨ । Repeat (    -
  楤,      ᫥  ⠢   ᫥    ।
makewindow), - 祣 ந室  ⭮  ᮧ  
"㧪"  ⮫쪮 ⭮  㤠. 訡 뫠 ࠢ-
.   筮 ⫠  襭 ஫  ਬ஢
訡  ணࠬ 㦥  뫮.


     @8.  짮⥫  襭 ஫ ਬ஢


        ணࠬ "᮪ 쥭⮢" ।⠢ ᮡ -
樮-ࠢ ⥬.   ணࠬ    -
 ᮧ   , 饩 ᯨ᪮  ᫥
㤥⮢.  ᭮     䠬,    
⢥ 쥭,  ,  樮    
業   .  ୥         
᪫祭   ⮣,  業      -
.

         ᪥ ணࠬ  ࠭ 뢮  :

                    0 -  ⥬...
                    1 - ४஢ 
                    2 - ⮦ 
                    3 - ᬮ 
                    4 - 㧪 
                    5 - ࠭ 
                    6 -   
                    7 - 室  ணࠬ


         롮 -  㭪  ᫥    ᮮ⢥-
 ஢ . 室   㭪 ᮯ஢ -
⪨ 㪮 ᨣ.  ⨨ ୮     ࠭
뢮   ᮮ饭  訡  ᪠,     -
ࢠ ᫥  ᫮.  ਢ  ᠭ  
 㭪⮢.

                         @8.1  ⥬...

         롮  㭪   ࠭  뢮    
⥬   . ᫥        ந室
室   .

                     @8.2 ४஢ .

         室   㭪  ࠭ 뢮 :

                      1 -  
                      2 -  
                      3 - 室   

        㭪 1 ।祭     .  
室   ⠪   :

                      1 - ⥭  쥭
                      2 - ⭠ 䠬


        ᫨ ⥭  쥭,  ᫥   
1, ᫨ ⭠ 䠬 -  2. ᫥ ⮣ ⥬  
ᮮ⢥⢥   䠬.  ᫥     ⮬
  (⠭    㪢)     -
   . ᫥ । ४㥬   -
 뢮  ࠭    ⮬ 쥭   
।஢, ᫥⥫쭮 ᯥ뢠   .  ᫨
  ⥪饬  ࠢ    ॡ,  ᫥  
 <Enter>. ᫥ ४஢   ⥬ ।-
  室 ࠭     ᫥  -
   멤   "४஢ ".
        㭪 2  "४஢ " ।祭   -
  ᥩ. ᫥ 室   ० ⥬ ᫥-
⥫쭮 訢      쥭.    砭
 뢮 ,   짮⥫ த  
  ᥩ.  ⢥न⥫쭮 ⢥ (⨨  
 孥 ॣ) ணࠬ  ।⠢    
    쥭, ᫥ 祣    .
 ⥫쭮 ⢥ (⨨   (.)  孥 -
) 㤥 뤠  ।०    室  ࠭
    ᫥    멤  -
 "४஢ ".
        㭪 3 㦨  室  ᭮ .


                     @8.3 ⮦ ᥩ.

         ० 㦨  㤠 ᥩ    .
   㭪 " " ०  "४஢  -
" 짮⥫ ।⠢     ,
 䠬 㤠塞  쥭.  ᫥      
ந 㤠 ࠭   뢮 ᮮ饭,  ⢥-
饣 믮  樨.  砥   㤠-
  (ਬ     ஬    ),
뤠 ᮮ⢥饥 ᮮ饭  訡.


                        @8.4 ᬮ .

         ० ।祭  ᬮ ᮤন -
  .  室   ० 뢮 ᫥饥 -
:
                    1 - ᬮ ᭮ 
                    2 - ᬮ  BSTUD
                    3 - 室   

        㭪 1 ।祭  ᬮ ᭮   ,
ᮤন ன 㦠  ⮬᪨  (  稨  
᪥ 䠩 bit.dat)  ᪥ ଠ樮-ࠢ筮  -
. ᫥ 롮 ⮣ 㭪,  ࠭ 뢮    ᭮-
    ⠡.  饭   ᫥   -
 .
        㭪 2 ।祭  ᬮ ୥    
BSTUD.  ⫨稨  ᭮  ࠧ ᫥ 㧪  , 
⮡  ᬮ ᫥ ᮧ       㭪  6
 㧨   ᪠   㭪 4 ᭮ .  -
 ୥  ।⠢ ⠪   ⠡.
       㭪  3 㦨  室   .

                        @8.5 㧪 .

        ० ।祭  㧪     䠩-
.  室   㭪 뢮 :

          1 - 㧨 ᭮   ࠭ 䠩
          2 - 㧨 ᭮   䠩 bit.dat
          3 - 㧨  BSTUD  ࠭ 䠩
          4 - 㧨  BSTUD  䠩 bstud.dat
          5 - 室  ᭮ 

        롮 㭪⮢ 2  4 ந 㧪 ᮮ⢥⢥-
 ᭮  ୥      ⠭  䠩  bit.dat  
bstud.dat,  砥 㤠筮 㧪 㤥  뤠  ᮮ⢥-
饥 ᮮ饭. ᫥     ந 室  
 .
        롮 㭪⮢ 1  3 ⥬   䠩,  -
஬ ᮤন ᮮ⢥ .  ᯥ譮  㧪  -
 ᮮ⢥饥 ᮮ饭,  ᡮ   ᮮ饭  
訡.
       㭪 5 ।祭   室   .





                       @8.6 ࠭ .

        ० ।祭  ࠭   .  
室   ० 뢮 ᫥饥 :

          1 - ࠭ ᭮   㪠 䠩
          2 - ࠭ ᭮   䠩 bit.dat
          3 - ࠭  BSTUD  㪠 䠩
          4 - ࠭  BSTUD  䠩 bstud.dat
          5 - 室  ᭮ 

          㭪⠬  筠 ࠡ  -
 ० "㧪 ".


                     @8.7   .

         ० ।祭  ᮧ ୥  -
.  ᪥ ⮣ ०   ᮧ  ⮬-
,  祬 뢮 ᮮ⢥饥 ᮮ饭  ।०  
室 ࠭ ୥ . ᫥    -
 ந室 室   .


                      @8.8 室  ணࠬ.

         㭪  ।祭  室    ଠ樮-
-ࠢ筮 ⥬  .


                 @8.9 襭 ஫ ਬ஢.

         楫 筮 ⫠ ணࠬ   ࠭  
訡 뫮 襭 ᪮쪮 ஫  ਬ஢    ࠡ  
⥬   ०. 뫠 ᮧ   ।஢  ᭮-
  .    뫨  ஡  ०  㤠,
४஢, ᮧ  , 㧪  ࠭  .  
襭 ஫ ਬ஢ 訡  ணࠬ  㦥.


                            @祭

           ᮢ ࠡ  뫨  ᫥  
몠 ணࠬ஢ ஫  ᮧ ଠ樮-ࠢ-
 ⥬.  ᤥ 뢮,  ஫ ।⠢  
  ॠ樨 ⠪ ⥬  ᠭ 㦥⢥-
 䥩  饭  짮⥫  ணࠬ.












































                         @᮪ 

         .⪮   "ணࠬ஢  몥 ஫ 
                     ⢥ ⥫"

         .   "஫ -  ணࠬ஢ 饣"

         .宭  "஫ -  ᪮
                     ணࠬ஢.  2.3"
     ! )       A *.FRM                                        *.MAC                                                           <         A *.FRM   