.PN31

8.     

          :
-  
-  
-  
-    
          :

        I         I    
----------------------I-----------------I--------------
                      I                 I
          +           I         I    A%+B%
                      I                 I
          -           I        I    A%-B%
                      I                 I   
          *           I        I    A%*B%
                      I                 I
          /           I          I    A%/B%
                      I                 I
          \           I    I    A%\B%
                      I          I 
                      I                 I
          ^           I      I    A%^2
                      I          I
                      I                 I
          -           I        I    -A%
                      I                 I
          MOD         I       I    A! MOD B!   
                      I           I    
                          
                 

 .

:        10 %=19/8
               20 PRINT A%
               RUN
               2
               OK

.
            INTEGER-    

         -32768   32767.   

INTEGER-      .

:       10\4=2
               36.99\6.99=6

               INTEGER-, 

    . 

:       10 MOD4=2
               36.99 MOD 6.=0
                                                       
                    

          :

          I              I      
------------------------I----------------------I----------------- 

                        I                      I
          =             I                 I    A%=B%
                        I                      I
         <>             I               I    A%<>B%
                        I                      I
          <             I                I    A%<B%
                        I                      I
          >             I                I    A%>B%
                        I                      I
          <=            I        I    A%<=B%
                        I                      I
          >=            I        I    A%>=B%

  ,   -1,    0.  

,         ,        

.      ,     

      .

               10Z!=5.1
               20 X!=3.5
               30 MINWERT!=-(Z! > X!)*X!-(Z! <= X!)*Z!
               40 MAXWERT!=-(Z! < X!)*X!-(Z! >= X!)*Z! 
               50 PRINT MINWERT!; MAXWERT!
               60 END
               RUN
               3.5  5.1

               :

           I                   I     
-------------------------I---------------------------I-------------------
                         I                           I
          NOT            I                  I     NOT A
                         I                           I
          AND            I        I   A AND B
                         I                           I
          OR             I         I   A OR  B
                         I                           I
          XOR            I             I   A XOR B
                         I                           I
          IMP            I                 I   A IMP B
                         I                           I
          EQV            I            I   A EQV B

   ""   ,   

,     ""- .

                                                                      
:        20 IF NOT EOF(I) GOTO 80
               90 IF BE% > 70 AND HA! < 80 GOTO 100

                   

(INTEGER-   ),      

.     :


        I   1    I   2    I  
----------------I---------------I---------------I-------------
                I        1      I       1       I      1
     END        I        1      I       0       I      0
                I        0      I       1       I      0
                I        0      I       0       I      0

----------------I---------------I---------------I-------------
                I        1      I       1       I      1
      OR        I        1      I       0       I      1
                I        0      I       1       I      1
                I        0      I       0       I      0
----------------I---------------I---------------I-------------
                I        1      I       1       I      0
     XOR        I        1      I       0       I      1
                I        0      I       1       I      1
                I        0      I       0       I      0
----------------I---------------I---------------I-------------
                I        1      I       1       I      1
    IMP         I        1      I       0       I      0
                I        0      I       1       I      1
                I        0      I       0       I      1
----------------I---------------I---------------I-------------
                I        1      I       1       I      1
     EQV        I        1      I       0       I      0
                I        0      I       1       I      0
                I        0      I       0       I      1
----------------I---------------I---------------I-------------
     NOT        I        1      I               I      0
                I        0      I               I      1
----------------I---------------I---------------I-------------

:        A%=63 AND 16
               A%  16 ..
               63   : 111111
               16   : 010000
                                            -------
               A%   : 010000

               %=4 OR 2
               A%  6 ..
               4   : 0100
               2   : 0010
                                          ------
               A%    0110

.CP13
     ,   INTEGER-  

    (  1:     ,   0:      ) 

    .

               10 BF$=" "
               20 INPUT "INTEGERZAHL"; IZ%
               30 FOR I%=15 TO 0 STEP -1
               40 BF$=BF$+STR$(ABS((IZ% AND 2^I%) -2^I%))
               50 NEXT I%
               60 PRINT BF$
               70 END                                                       
               RUN
               INTEGERZAHL:? (EINGEGEBEN WIRD 143)        *
               0000000010001111                    *  143
                 .. 

      .               "+". 

         255 .

     :  10 $="' "
              20 B$=" "
              30 C$=""
              40 D$=A$+B$+C$

              50 PRINT D$
              RUN
              '  
              

              .    

 ,      SII.

:       "AA" ,  "AB"
               ""  ""
               "DB" ,  "CB"
               "PS" ,  "P#"
.PA

9.   (ARRAY)   

9.1.   DIM  

         DIM  ,     

 .
:  DIM <  "
          (<  >) [,<  >
          (<   >)]...
         ,      

 .         

255,  ..        255- . 

            .   

  BASE1 (.   9.2.)       

  1.

:        10 DIM SI$(12), A%(5,5)
               20 DIM X5#(5,3,3,5)

:
                       

       0  9        

,  ..              

  .       

         .    ,  

       ,   

     .     -,   

         .   

   .



9.2   OPTION BASE         

       .

         OPTION BASE      

      0  1.

: OPTION BASE N  
 N    0  1.

:        10 FOR I%=0 TO 4
               20 A(I%)=2*I%
               30 PRINT A(I%)
               40 NEXT
               RUN
                0  2  4  6  8
               OK
               5 OPTION BASE 1
               10 FOR I%=0 TO 4
               20 A(I%)=2*I%
               30 PRINT A(I%)
               40 NEXT
               RUN
               SUBSCRIPT OUT OF RANGE IN 20
               OK
.CP6

:
       OPTION BASE   0.    

     -,  ..     

-  (  )       

    1.


.CP15
9.3.  ERASE    ,  .

         ERASE        

  ,    .
:  ERASE <  >
          [,<  >]...

:        10 DIM A! (20,20,20)
                    .
                    .                   
                    .
               80 ERASE A!
                    .
                    .
               100 DIM A!(40,5)

:   -    .



10.     
10.1.   FOR,  TO, STEP  NEXT      

        .

          FOR,  TO,  STEP  NEXT      

  .
:  FOR < >=< > TO < >
              [<STEP <>]
                    .
                    . <>
                    .
               NEXT [< >] [,< >]...


< >      INTEGER  REAL  
.
<   >,<  >    <>       

,              

INTEGER   REAL    .      ,   
  1.         

         .     

  ,          (    - 

  ,          , 

   FOR    NEXT,     

  ,    FOR).        

    NEXT.
         ,      .       

  :      

     .           

,    ,    NEXT.      

             NEXT             

,  ,       

,   -  .
             ,       

    ,      

 .        . 

       .    

       ,     - 

 .        , 

       (  ),    

  (  )  .
	              
:        10 FOR I%=10 TO 0 STEP -1
               20 PRINT I%
               30 NEXT
               40 NED
               RUN
                10  9  8  7  6  5  4  3  2  1  0 
               OK
               10 J%=6
               20 FOR I%=1 TO J%+4
               30 PRINT I%
               40 NEXT
               50 END
               RUN
                1  2  3  4  5  6  7  8  9  10
               OK


:
        ,        

INTEGER-.                

.             

    ,  ..  -         

     .         

             

.        ,     FOR-NEXT-       

 ,       

       ,         

 .
     ,               100  . 

       :



                    .
                    .
                    .
               110 OPEN "I", 1, "BEISPIEL"
               120 FOR I%=1 TO 100
               130 INPUT# 1, Z%, X1%, Y2!
               140 IF EOF(1) THEN I%=101
                    .
                    .
                    .
               180 NEXT I%
                    .
                    .
.CP7                    
:
                           

   ,              

,           ( 

 -     ).   

    ,               

  REAL   .



.CP15
10.2.    WHILE   WEND         

        ( ).

         WHILE  WEND       

 .
: WHILE <>
               .
               .<>
               .
        WEND
      ,   <>,      

,     0,    ""     

.   ,   <>   0  

 "".   WHILE  WEND     

   .   WHILE-     

,  ,     WHILE-.

:        5 REM EINFACHSTES SORTIEREN
               10 DBL%=9
               20 DIM DB%(DBL%)
               30 FOR I%==0 TO DBL%
               40 DB%(I%)=INT(RND(1)*100)
               50 NEXT
               60 GOSUB 200 'DRUCK DER AUSGANGSDATENFOLGE
               70 REM SORTIERUNG AM PLATZ
               80 DBH%=DBL%
               90 FLAG%=1
               100 WWHILE FLAG%
               110 FOR I%=DBH%-1 TO 0 STEP -1
               120 IF DB%(I%) > DB%(DBH%) THEN SWAP DB%(I%), DB%(DBH%)
               130 NEXT
               140 DBH%=DBH%-1
               150 IF DBH%=0 THEN FLAG%=0
               160 WEND
               170 PRINT
               180 GOSUB 200 'DRUCK DER SORTIERFOLGE
               190 END
               200 REM UNTERPROGRAMM
               210 FOR I%=0 TO DBL%
               220 PRINT DB%(I%);
               230 NEXT
               240 RETURN
               RUN
                24  30  31  51  5  78  49  36  98  90
                5  24  30  31  36  49  51  78  90  98
               OK

:
                

  WHILE-WEND,  ..     WHILE     

 WEND.


.CP15

11.        .
11.1.  GOTO    
      (  )

               GOTO              

   .
:  GOTO < > 
  GOTO    ,      

< >.

:        10 DATA 2,4,6
               20 READ Z%
               30 PRINT "Z%="; Z%
               40 GOTO 10
               RUN
               Z%=2
               Z%=4
               Z%=6
               OUT OF DATA IN 10

:
              ,         

         ,       

      GOTO.            

        "  ".      

    ,        

 .

       GOTO       ,     

      .  , 

   ,        
,  ,    :

               60000 SAVE "B:TESTPROG.BAS"

,            

(  ),     60000:

               GOTO 60000

    SAVE.


.CP15
11.2.  IF, THEN,  ELSE    .

       IF    (  ).
:  IF <> GOTO < > [ELSE <
             >]
         
         IF <> THEN < >
            [[,] ELSE < >
         < > = <>=[:<>]
            
         < > = < >
     () -,.. 
     255 .
       <>      .
      "",      

  ,   ,     GOTO    THEN. 

         ,         

  ELSE   (   ),     

  .
<   >            

  ,      ":",   . 

   .

:       10 IF A%=3 THEN PRINT B%
               20 IF (A%=0) OR NOT (B%=4)
                  THEN C%=5 ELSE GOTO 50
               30 IF A% THEN A%=A%+100 : B%=200 : PRINT C%:
                  GOTO 100 ELSE A%=A%-100 : B%=C%*5+D% : PRINT B%

:
        :
               10 IF X! > Y! THEN A!=3*X!+Y! ELSE B!=3*Y!+X!/2
               20 C%=0


.CP15
11.3.   ON        

        ON   CASE     

  .
:  ON <>  GOTO <  >
         
         ON <> GOSUB <  >
         <  > =  < >[,< >]...
<>     ,     

 1  255 .          

     .     ,    N, 

   :    N-  ,  

            

GOTO    GOSUB.     0         

,       .    

 ,     255,    :  

ILLEGAL FUNCTION CALL.

:       10 ON I%-I% GOTO 100, 200, 300
               50 ON G% GOSUB 500,700
                    .
                    .                   .
                    .
               500 REM G%=1 : 1

                    .
                    .
                    .
               590 RETURN
               700 REM G%=2 : 2
                    .              
                    .
                    .
               870 RETURN
.PA


12.      

12.1.  GOSUB  RETURN     

             GOSUB          , 

  .
:  GOSUB   
           .
           .
         RETURN
,       ,       

     ,   

  RETURN.              

  RETURN.          

 <       RETURN.    

    .      

  GOSUB.           ,   

    .      , 

         ,     

 .         

    (   !).
       RETURN   ,     

  ,      

GOSUB.

:        10 F%=I
               20 FOR I%=1 TO 6
               30 GOSUB 100
               40 NEXT
               50 END
               100 REM ,   
               110 F%=F%*F%
               120 PRINT F%
               130 RETURN
               RUN
                1  2  6  24  120  720
               OK

:
     ,     ,     

     ,    -     

           .


.CP15
12.2.     CALL          

         

       CALL    -   

       ,      

       -      

.               

  -   .
:  CALL <     >
         /(<>/, <>/...)/
           <>          

   (     ).
     (     .)

:        100 RUTIN%=&H7000
               110 CALL RUTIN%(Z!, 15%, AI$)


:
                  

  ,     ,       

 SCPX.

:
               

16 .      ,       

      ,       

      .
     ..              

,           

(   100  ).
              -    - 

     -  , 

   6 .      

       '    PUBLIC.       

,                  

  COMMON ( 12.6.).


.CP15
12.3.  VARPTR    

       VARPTR          

     - ( ) -

  .
:   VARPTR  (<>)
          
          VARPTR (#<  >)
                

- .      ,     

.      <>           

                  

       .    

    -32768  32767.      ,   

   ,     '  -   

.    ,           

    .
     <    >          

    OPEN (  15.4.).    <   

>     -.
          '   - 

  ..   .

:        30 ADDR%=VARPTR(#3)


.CP15

12.4.    DEF USR      

        

           DEF  USR      -  -

     .
:   : DEFUSR (<>) = <     

                            >
          :     <  >=USR (<>  (< 

                      >)
       10    

   ,    0  9.    ,  

   0.         

     INTEGER,  INTEGER-  INTEGER-

.      - ,     

        .   

             

   -.
(     .).

:        10 DEF USR 5=32763
                    .
                    . 
                    .
               90 !=USR 5(A!-B!*C%)

:
        -        

DEF USR   .   -    

  .
         -     ,   

  USR-      .       

  POKE  (   13.9.)       - 

   ,           

      .       

      .  

        PEEK (   14.4.)   

-    .    

             

 -.       

    CALL (  12.2.)


.CP15
12.5.  CHAIN      -.

        CHAIN    .
:  CHAIN  /MERGE/<   >/,
                /,<    >//,ALL//,DELETE<      

                  >//
<      >      - 

       SCPX     .   

     ,       

       ,      

.               -

.      SAVE (  5.11.).   

  ,     ".BAS".
        MERGE,      

 .       ,   

      MERGE  (  5.14.).      MERGE   

,                    

      LOAD.          , 

       LOAD (  5.12.)     

   R.       ,       

      (  7.2.),       

 OPTION BASE (  9.2.).   