home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / sigisoft / bruch / bruch.lst next >
File List  |  1987-04-21  |  8KB  |  344 lines

  1. IF XBIOS(4)<>2
  2.   ALERT 3,"Dieses Programm|läuft leider nur|auf einen sw|Monitor",1,"Schade",d%
  3.   END
  4. ENDIF
  5. VOID XBIOS(33,4)
  6. ON ERROR GOSUB fehler
  7. HIDEM
  8. @titel
  9. @inhalt
  10. @auswahl
  11. PROCEDURE titel
  12.   ' *******************************************
  13.   DEFFILL 1,2,3
  14.   PBOX 20,20,620,60
  15.   LINE 30,10,630,10
  16.   LINE 30,10,20,20
  17.   LINE 630,10,620,20
  18.   LINE 630,10,630,50
  19.   LINE 630,50,620,60
  20.   DEFTEXT 16,5,1,32
  21.   TEXT 27,52," »»» Siegfried's Bruchrechnen I ««« "
  22.   ' *****************************************
  23.   PBOX 460,100,610,300
  24.   LINE 470,90,620,90
  25.   LINE 460,100,470,90
  26.   LINE 610,100,620,90
  27.   LINE 620,90,620,290
  28.   LINE 610,300,620,290
  29.   ' *****************************************
  30.   PBOX 20,330,620,380
  31.   LINE 630,320,630,370
  32.   LINE 30,320,630,320
  33.   LINE 30,320,20,330
  34.   LINE 630,320,620,330
  35.   LINE 630,370,620,380
  36.   ' *****************************************
  37.   PBOX 30,100,400,300
  38.   LINE 410,90,410,290
  39.   LINE 40,90,410,90
  40.   LINE 40,90,30,100
  41.   LINE 410,90,400,100
  42.   LINE 410,290,400,300
  43.   ' **************** FILL  ********************+
  44.   DEFFILL 1,2,6
  45.   FILL 30,19
  46.   FILL 35,99
  47.   FILL 580,99
  48.   FILL 35,322
  49.   DEFFILL 1,2,7
  50.   FILL 625,30
  51.   FILL 402,102
  52.   FILL 611,105
  53.   FILL 622,335
  54.   PRINT CHR$(27)+"p";
  55.   PRINT AT(5,22);" >>>                Public Domain Version Nr. 009                  <<< "
  56.   PRINT CHR$(27)+"q";
  57.   PRINT AT(5,23);" >>> ╜ 1989 by Siegfried Hübner, Obere Vorstadt 21, 8812 Windsbach <<< "
  58.   PRINT AT(59,8);" Dieses Programm "
  59.   PRINT AT(59,9);" ist frei kopier-"
  60.   PRINT AT(59,10);" bar und sollte  "
  61.   PRINT AT(59,11);" so oft wie mög- "
  62.   PRINT AT(59,12);" lich weiter-    "
  63.   PRINT AT(59,13);" kopiert werden. "
  64.   PRINT AT(59,15);" Dieses Programm "
  65.   PRINT AT(59,16);" wurde in GFA    "
  66.   PRINT AT(59,17);" Basic V 2.0     "
  67.   PRINT AT(59,18);" geschrieben.    "
  68. RETURN
  69. PROCEDURE inhalt
  70.   PRINT AT(6,8);STRING$(44,32)
  71.   PRINT AT(6,9);" ";CHR$(27)+"p";" A ";CHR$(27);"q";" = Addition                             "
  72.   PRINT AT(6,10);STRING$(44,32)
  73.   PRINT AT(6,11);" ";CHR$(27)+"p";" S ";CHR$(27);"q";" = Subtraktion                          "
  74.   PRINT AT(6,12);STRING$(44,32)
  75.   PRINT AT(6,13);" ";CHR$(27)+"p";" M ";CHR$(27);"q";" = Multiplikation                       "
  76.   PRINT AT(6,14);STRING$(44,32)
  77.   PRINT AT(6,15);" ";CHR$(27)+"p";" D ";CHR$(27);"q";" = Division                             "
  78.   PRINT AT(6,16);STRING$(44,32)
  79.   PRINT AT(6,17);" ";CHR$(27)+"p";" E ";CHR$(27);"q";" = Programmende                         "
  80.   PRINT AT(6,18);STRING$(44,32)
  81. RETURN
  82. PROCEDURE auswahl
  83.   DO
  84.     a$=INKEY$
  85.     a$=UPPER$(a$)
  86.     IF a$="A"
  87.       GOSUB addition
  88.     ENDIF
  89.     IF a$="S"
  90.       GOSUB subtraktion
  91.     ENDIF
  92.     IF a$="M"
  93.       GOSUB multiplikation
  94.     ENDIF
  95.     IF a$="D"
  96.       GOSUB division
  97.     ENDIF
  98.     IF a$="E"
  99.       ALERT 3,"Wollen Sie dieses|Programm verlassen ?",2,"Ja|Nein",d%
  100.       IF d%=1
  101.         END
  102.       ENDIF
  103.     ENDIF
  104.     GOSUB inhalt
  105.   LOOP
  106. RETURN
  107. PROCEDURE arbeit
  108.   DEFFILL 1,2,3
  109.   PBOX 30,100,400,300
  110.   LINE 410,90,410,290
  111.   LINE 40,90,410,90
  112.   LINE 40,90,30,100
  113.   LINE 410,90,400,100
  114.   LINE 410,290,400,300
  115. RETURN
  116. PROCEDURE addition
  117.   GOSUB arbeit
  118.   PRINT CHR$(27)+"p";
  119.   PRINT AT(6,8);" >>>>>      Addition von Brüchen      <<<<< "
  120.   PRINT CHR$(27)+"q";
  121.   IF w$="J"
  122.     GOSUB alt1
  123.   ELSE
  124.     GOSUB neu1
  125.   ENDIF
  126.   PRINT CHR$(27)+"p";"             +             =                ";CHR$(27)+"q";
  127.   IF w$="J"
  128.     GOSUB alt2
  129.   ELSE
  130.     GOSUB neu2
  131.   ENDIF
  132.   PRINT AT(20,10);" Z2 ";
  133.   FORM INPUT 7,z3$
  134.   z3=VAL(z3$)
  135.   PRINT AT(20,12);" N2 ";
  136.   FORM INPUT 7,z4$
  137.   z4=VAL(z4$)
  138.   PRINT AT(34,10);
  139.   z5=(z1*z4)+(z3*z2)
  140.   IF z2=z4
  141.     z5=z1+z3
  142.   ENDIF
  143.   PRINT USING "################",z5
  144.   PRINT AT(34,12);
  145.   z6=(z2*z4)
  146.   IF z2=z4
  147.     z6=z2
  148.   ENDIF
  149.   PRINT USING "################",z6
  150.   z7=z5/z6
  151.   PRINT AT(6,14);" Dezimalzahl davon         =";
  152.   PRINT USING "############.###",z7
  153.   PRINT CHR$(27)+"p";
  154.   PRINT AT(6,16);" Wollen Sie mit diesem  Bruch "
  155.   PRINT AT(6,17);" weiterrechnen. (J/N)       ? "
  156.   PRINT CHR$(27)+"q";
  157.   PRINT AT(40,17);
  158.   FORM INPUT 1,w$
  159.   w$=UPPER$(w$)
  160.   IF w$="J"
  161.     GOSUB arbeit
  162.     GOSUB inhalt
  163.   ENDIF
  164.   IF w$="N"
  165.     GOSUB arbeit
  166.     GOSUB inhalt
  167.   ENDIF
  168. RETURN
  169. PROCEDURE subtraktion
  170.   GOSUB arbeit
  171.   PRINT CHR$(27)+"p";
  172.   PRINT AT(6,8);" >>>>>    Subtraktion von Brüchen     <<<<< "
  173.   PRINT CHR$(27)+"q";
  174.   IF w$="J"
  175.     GOSUB alt1
  176.   ELSE
  177.     GOSUB neu1
  178.   ENDIF
  179.   PRINT CHR$(27)+"p";"             -             =                ";CHR$(27)+"q";
  180.   IF w$="J"
  181.     GOSUB alt2
  182.   ELSE
  183.     GOSUB neu2
  184.   ENDIF
  185.   PRINT AT(20,10);" Z2 ";
  186.   FORM INPUT 7,z3$
  187.   z3=VAL(z3$)
  188.   PRINT AT(20,12);" N2 ";
  189.   FORM INPUT 7,z4$
  190.   z4=VAL(z4$)
  191.   PRINT AT(34,10);
  192.   z5=(z1*z4)-(z3*z2)
  193.   IF z2=z4
  194.     z5=z1-z3
  195.   ENDIF
  196.   PRINT USING "################",z5
  197.   PRINT AT(34,12);
  198.   z6=(z2*z4)
  199.   IF z2=z4
  200.     z6=z2
  201.   ENDIF
  202.   PRINT USING "################",z6
  203.   z7=z5/z6
  204.   PRINT AT(6,14);" Dezimalzahl davon         =";
  205.   PRINT USING "############.###",z7
  206.   PRINT CHR$(27)+"p";
  207.   PRINT AT(6,16);" Wollen Sie mit diesem  Bruch "
  208.   PRINT AT(6,17);" weiterrechnen. (J/N)       ? "
  209.   PRINT CHR$(27)+"q";
  210.   PRINT AT(40,17);
  211.   FORM INPUT 1,w$
  212.   w$=UPPER$(w$)
  213.   IF w$="J"
  214.     GOSUB arbeit
  215.     GOSUB inhalt
  216.   ENDIF
  217.   IF w$="N"
  218.     GOSUB arbeit
  219.     GOSUB inhalt
  220.   ENDIF
  221. RETURN
  222. PROCEDURE multiplikation
  223.   GOSUB arbeit
  224.   PRINT CHR$(27)+"p";
  225.   PRINT AT(6,8);" >>>>>   Multiplikation von Brüchen   <<<<< "
  226.   PRINT CHR$(27)+"q";
  227.   IF w$="J"
  228.     GOSUB alt1
  229.   ELSE
  230.     GOSUB neu1
  231.   ENDIF
  232.   PRINT CHR$(27)+"p";"             *             =                ";CHR$(27)+"q";
  233.   IF w$="J"
  234.     GOSUB alt2
  235.   ELSE
  236.     GOSUB neu2
  237.   ENDIF
  238.   PRINT AT(20,10);" Z2 ";
  239.   FORM INPUT 7,z3$
  240.   z3=VAL(z3$)
  241.   PRINT AT(20,12);" N2 ";
  242.   FORM INPUT 7,z4$
  243.   z4=VAL(z4$)
  244.   PRINT AT(34,10);
  245.   z5=(z1*z3)
  246.   PRINT USING "################",z5
  247.   PRINT AT(34,12);
  248.   z6=(z2*z4)
  249.   PRINT USING "################",z6
  250.   z7=z5/z6
  251.   PRINT AT(6,14);" Dezimalzahl davon         =";
  252.   PRINT USING "############.###",z7
  253.   PRINT CHR$(27)+"p";
  254.   PRINT AT(6,16);" Wollen Sie mit diesem  Bruch "
  255.   PRINT AT(6,17);" weiterrechnen. (J/N)       ? "
  256.   PRINT CHR$(27)+"q";
  257.   PRINT AT(40,17);
  258.   FORM INPUT 1,w$
  259.   w$=UPPER$(w$)
  260.   IF w$="J"
  261.     GOSUB arbeit
  262.     GOSUB inhalt
  263.   ENDIF
  264.   IF w$="N"
  265.     GOSUB arbeit
  266.     GOSUB inhalt
  267.   ENDIF
  268. RETURN
  269. PROCEDURE division
  270.   GOSUB arbeit
  271.   PRINT CHR$(27)+"p";
  272.   PRINT AT(6,8);" >>>>>      Division von Brüchen      <<<<< "
  273.   PRINT CHR$(27)+"q";
  274.   IF w$="J"
  275.     GOSUB alt1
  276.   ELSE
  277.     GOSUB neu1
  278.   ENDIF
  279.   PRINT CHR$(27)+"p";"             :             =                ";CHR$(27)+"q";
  280.   IF w$="J"
  281.     GOSUB alt2
  282.   ELSE
  283.     GOSUB neu2
  284.   ENDIF
  285.   PRINT AT(20,10);" Z2 ";
  286.   FORM INPUT 7,z3$
  287.   z3=VAL(z3$)
  288.   PRINT AT(20,12);" N2 ";
  289.   FORM INPUT 7,z4$
  290.   z4=VAL(z4$)
  291.   PRINT AT(34,10);
  292.   z5=(z1/z3)
  293.   PRINT USING "############.###",z5
  294.   PRINT AT(34,12);
  295.   z6=(z2/z4)
  296.   PRINT USING "############.###",z6
  297.   z7=z5/z6
  298.   PRINT AT(6,14);" Dezimalzahl davon         =";
  299.   PRINT USING "############.###",z7
  300.   PRINT CHR$(27)+"p";
  301.   PRINT AT(6,16);" Wollen Sie mit diesem  Bruch "
  302.   PRINT AT(6,17);" weiterrechnen. (J/N)       ? "
  303.   PRINT CHR$(27)+"q";
  304.   PRINT AT(40,17);
  305.   FORM INPUT 1,w$
  306.   w$=UPPER$(w$)
  307.   IF w$="J"
  308.     GOSUB arbeit
  309.     GOSUB inhalt
  310.   ENDIF
  311.   IF w$="N"
  312.     GOSUB arbeit
  313.     GOSUB inhalt
  314.   ENDIF
  315. RETURN
  316. PROCEDURE neu1
  317.   PRINT AT(6,10);" Z1 ";
  318.   FORM INPUT 7,z1$
  319.   z1=VAL(z1$)
  320.   PRINT AT(6,11);
  321. RETURN
  322. PROCEDURE neu2
  323.   PRINT AT(6,12);" N1 ";
  324.   FORM INPUT 7,z2$
  325.   z2=VAL(z2$)
  326. RETURN
  327. PROCEDURE alt1
  328.   PRINT AT(6,10);" Z1 ";
  329.   er=z5
  330.   PRINT USING "#######",er
  331.   PRINT AT(6,11);
  332.   z1=er
  333. RETURN
  334. PROCEDURE alt2
  335.   PRINT AT(6,12);" N1 ";
  336.   er1=z6
  337.   PRINT USING "#######",er1
  338.   z2=er1
  339. RETURN
  340. PROCEDURE fehler
  341.   ALERT 3,"Bediener - Fehler|Division durch null|oder anderer Fehler",1,">> OK <<",d%
  342.   RUN
  343. RETURN
  344.