home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / sigisoft / kaufmann / pk1.bas < prev    next >
BASIC Source File  |  1997-10-09  |  9KB  |  160 lines

  1. 1 WIDTH 80: COLOR 15,0,0
  2. 2 DIM AR$(10),NETTO(10),BRUTTO(10),NETTO$(10),BRUTTO$(10)
  3. 10 GOTO 100
  4. 15 LOCATE 20,1: PRINT STRING$(79,205)
  5. 16 LOCATE 21,1: COLOR 0,15: PRINT SPACE$(79)
  6. 17 LOCATE 21,25: PRINT "PROGRAMM WIRD GELADEN.BITTE WARTEN": COLOR 15,0
  7. 18 LOCATE 22,1: PRINT STRING$(79,205): RETURN
  8. 19 GOSUB 15: RUN "MENUE"
  9. 20 ZZ$=LEFT$(ZZ$,L):ZZ$=ZZ$+STRING$(L-LEN(ZZ$),95):Z2=0:Y=1
  10. 21 LOCATE R,S,O:PRINT ZZ$;
  11. 22 LOCATE R,S+Y-1,1
  12. 23 Z$=INKEY$: IF Z$="" THEN 23 ELSE Z=ASC(Z$): Z1=0: IF Z=0 THEN Z1=ASC(RIGHT$(Z$,1))
  13. 24 IF Z<>13 THEN 28 ELSE IF Z2 >0 THEN 23
  14. 25 IF Y=1 THEN ZZ$=CHR$(13):RETURN
  15. 26 IF RIGHT$(ZZ$,1)="_" THEN ZZ$=LEFT$(ZZ$,INSTR(ZZ$,"_")-1)
  16. 27 RETURN
  17. 28 IF Z<>0 THEN 48
  18. 29 IF Z1<>71 THEN 31 ELSE IF Y=1 OR Z2 THEN 23
  19. 30 Y=1:GOTO 22
  20. 31 IF Z1<>75 THEN 33 ELSE IF Y=1 OR Z2 THEN 23
  21. 32 Y=Y-1:GOTO 22
  22. 33 IF Z1<>77 THEN GOTO 35 ELSE IF MID$(ZZ$,Y,1)="_" OR Y>L THEN GOTO 23
  23. 34 Y=Y+1:GOTO 22
  24. 35 IF Z1<>79 THEN 39 ELSE IF Y>L OR Z2 THEN 23
  25. 36 IF MID$(ZZ$,Y,1)="_" THEN 23
  26. 37 Y=Y+1
  27. 38 IF MID$(ZZ$,Y,1)="_" THEN 22 ELSE 37
  28. 39 IF Z1<>82 THEN 42 ELSE IF RIGHT$(ZZ$,1)<>"_" THEN 23
  29. 40 IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
  30. 41 ZZ$=LEFT$(ZZ$,Y-1)+"_"+MID$(ZZ$,Y,L-Y):Z2=Z2+1:GOTO 21
  31. 42 IF Z1<>83 THEN 44 ELSE IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
  32. 43 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+MID$(ZZ$,Y+1)+"_":GOTO 21
  33. 44 IF Z1<>117 THEN 46 ELSE IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
  34. 45 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+STRING$(L-Y+1,95):GOTO 21
  35. 46 IF Z1<>119 THEN 23 ELSE IF Y=1 THEN 23
  36. 47 ZZ$=MID$(ZZ$,Y)+STRING$(Y-1,95):Y=1:GOTO 21
  37. 48 IF Z<>8 THEN 50 ELSE IF Y=1 THEN 23
  38. 49 ZZ$=LEFT$(ZZ$,Y-2)+MID$(ZZ$,Y)+"_":Y=Y-1:GOTO 21
  39. 50 IF Z<>27 THEN 51 ELSE ZZ$=STRING$(L,95):Y=1:Z2=0: GOTO 21
  40. 51 IF Z=95 OR Y>L THEN 23
  41. 52 ON PK% GOTO 55,53,54
  42. 53 IF Z<46 OR Z>58 THEN 23 ELSE 55
  43. 54 IF Z<>106 AND Z<>110 THEN 23
  44. 55 IF Z=44 THEN 23 ELSE GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+Z$+MID$(ZZ$,Y+1):PRINT Z$;:Y=Y+1:GOTO 22
  45. 56 IF Z2 THEN Z2=Z2-1
  46. 57 RETURN
  47. 60 CLS: LOCATE 2,1: PRINT STRING$(79,205)
  48. 61 LOCATE 3,1: COLOR 0,15: PRINT SPACE$(79): LOCATE 3,30: PRINT "KAUFMÄNNISCHES  RECHNEN": LOCATE 4,1: PRINT SPACE$(79)
  49. 62 LOCATE 4,30: PRINT "(C) BY SIEGFRIED HÜBNER       ESC =LADE MENÜ": LOCATE 5,1: PRINT SPACE$(79)
  50. 63 LOCATE 5,28: PRINT "P R O Z E N T R E C H N E N"
  51. 64 COLOR 15,0: LOCATE 6,1: PRINT STRING$(79,205): RETURN
  52. 70 LOCATE 20,1: PRINT STRING$(79,205)
  53. 71 LOCATE 21,1: COLOR 0,15: PRINT SPACE$(79)
  54. 72 LOCATE 21,29: PRINT "BELIEBIGE TASTE DRÜCKEN": COLOR 15,0
  55. 73 LOCATE 22,1: PRINT STRING$(79,205)
  56. 75 E$=INKEY$: IF E$="" THEN 75
  57. 76 IF E$=CHR$(27) THEN 19
  58. 77 RETURN
  59. 90 LOCATE 20,1: PRINT STRING$(79,205)
  60. 91 LOCATE 21,1: COLOR 0,15: PRINT SPACE$(79)
  61. 92 LOCATE 21,34: PRINT "FALSCHE EINGABE": COLOR 15,0
  62. 93 LOCATE 22,1: PRINT STRING$(79,205): RETURN
  63. 95 FOR T=1 TO 4: LOCATE 19+T,1: PRINT SPACE$(79): NEXT: RETURN
  64. 100 GOSUB 60
  65. 101 LOCATE 7,2: PRINT "PROZENT kommt aus dem Lateinischen 'per centrum', was bedeutet: von 100"
  66. 102 LOCATE 8,2: PRINT "Im kaufmännischen Bereich wird die Prozentrechnung vielfältig eingesetzt,"
  67. 103 LOCATE 9,2: PRINT "da sie einen raschen Vergleich rechnerischer Größen durch Bezug auf den"
  68. 104 LOCATE 10,2: PRINT "Maßstab 100 erlaubt."
  69. 105 LOCATE 12,2: PRINT "DIE MEHRWERTSTEUER"
  70. 106 LOCATE 14,2: PRINT "Wenn Sie sich im Computerladen einen Drucker kaufen, dann treten Sie"
  71. 107 LOCATE 15,2: PRINT "dort als Endverbraucher auf. Der Ihnen genannte Preis enthält bereits"
  72. 108 LOCATE 16,2: PRINT "die gesetzliche Mehrwertsteuer. Der Verkäufer ist gehalten, seinem kal-"
  73. 109 LOCATE 17,2: PRINT "kulierten Abgabepreis die Mehrwertsteuer zuzuschlagen.": GOSUB 70
  74. 110 GOSUB 60
  75. 111 LOCATE 7,2: PRINT "Somit haben wir vier Begriffe:"
  76. 112 LOCATE 8,2: PRINT "den ABGABEPREIS des Händlers"
  77. 113 LOCATE 9,2: PRINT "den BETRAG DER MEHRWERTSTEUER in DM, den der Händler seinem Abgabepreis"
  78. 114 LOCATE 10,2: PRINT "zuzuschlagen hat"
  79. 115 LOCATE 11,2: PRINT "diesen Zuschlag berechnet er als PROZENTSATZ des Abgabepreises"
  80. 116 LOCATE 12,2: PRINT "den ENDVERBRAUCHERPREIS, den Sie als Kunde bezahlen müssen"
  81. 117 LOCATE 14,2: PRINT "Für unsere Berechnungen verwenden wir nun folgende Variablen:"
  82. 118 LOCATE 16,2: PRINT "BRUTTO     = Preis mit  Mehrwertsteuer"
  83. 119 LOCATE 17,2: PRINT "NETTO      = Preis ohne Mehrwertsteuer"
  84. 120 LOCATE 18,2: PRINT "MWST       = Mehrwertsteuer-Satz in % "
  85. 121 LOCATE 19,2: PRINT "BETRAG     = Mehrwertsteuer-Betrag ": GOSUB 70
  86. 130 GOSUB 60
  87. 131 LOCATE 7,2: PRINT "Die Prozentrechnung setzen wir ein, um aus NETTO und MWST den Preis"
  88. 132 LOCATE 8,2: PRINT "mit Mehrwertsteuer zu errechnen. "
  89. 133 LOCATE 9,2: PRINT "Wir setzen NETTO zu 100 %"
  90. 134 LOCATE 10,2: PRINT "1 % von NETTO sind dann NETTO/100"
  91. 135 LOCATE 11,2: PRINT "MWST % von NETTO sind dann NETTO/100*MWST"
  92. 136 LOCATE 13,2: PRINT "Damit wird:"
  93. 137 LOCATE 14,2: PRINT "BRUTTO = NETTO + (NETTO/100*MWST)"
  94. 138 LOCATE 16,2: PRINT "Die Mehrwertsteuer beträgt derzeit 14 %. Das vereinfacht unsere"
  95. 139 LOCATE 17,2: PRINT "weiteren Berechnungen:"
  96. 140 LOCATE 18,2: PRINT "BRUTTO = NETTO * 1.14           NETTO  = BRUTTO / 1.14"
  97. 141 LOCATE 19,2: PRINT "BETRAG = BRUTTO - NETTO         BETRAG = BRUTTO - (BRUTTO / 1.14)": GOSUB 70
  98. 150 GOSUB 60
  99. 151 LOCATE 7,2: PRINT "Unser erstes Programm zur Prozentrechnung. "
  100. 152 LOCATE 9,2: PRINT "Geben Sie den Mehrwersteuersatz ein (7/14%) :"
  101. 153 ZZ$="": R=9: S=50: L=2: PK%=2: GOSUB 20: MWST$=ZZ$
  102. 154 MWST=VAL(MWST$): IF MWST= 7 OR MWST = 14 THEN 155 ELSE BEEP: GOSUB 90: GOTO 153
  103. 155 GOSUB 95
  104. 156 LOCATE 11,2: PRINT "GEBEN SIE BIS ZU 9  ARTIKEL MIT DEM NETTO-PREIS"
  105. 157 LOCATE 12,2: PRINT "EIN. VORHER BEENDEN MIT ZEICHEN *             :": I=I+1
  106. 158 ZZ$="": R=12: S=50: L=10: PK%=1: GOSUB 20: AR$(I)=ZZ$: IF AR$(I)=CHR$(13) THEN BEEP: GOSUB 90: GOTO 158
  107. 159 IF AR$(I)="*" THEN I=I-1: GOTO 169
  108. 160 LOCATE 14,2: PRINT "EINZELPREIS NETTO-BETRAG                      :"
  109. 161 ZZ$="": R=14: S=50: L=5: PK%=2: GOSUB 20: NETTO$(I)=ZZ$
  110. 162 IF NETTO$(I)=CHR$(13) THEN BEEP: GOSUB 90: GOTO 161
  111. 163 NETTO(I)=VAL(NETTO$(I)): IF NETTO(I)<=0 THEN BEEP: GOSUB 90: GOTO 161
  112. 164 GOSUB 95
  113. 165 IF I=9 THEN 169
  114. 166 GOTO 157
  115. 169 GOSUB 70
  116. 170 GOSUB 60
  117. 171 LOCATE 7,50: PRINT "AUSGABE DER ERGEBNISSE"
  118. 172 LOCATE 8,2: PRINT "ARTIKEL     NETTO-PREIS  BRUTTO-PREIS"
  119. 173 LOCATE 9,2: PRINT "====================================="
  120. 174 LOCATE 10,2: FOR N=1 TO I
  121. 175 BRUTTO(N)=NETTO(N)+(NETTO(N)/100*MWST)
  122. 176 BRUTTO(N)=INT(BRUTTO(N)*100+.5)/100
  123. 177 PRINT TAB(2);AR$(N);TAB(14);USING"####.##";NETTO(N);: PRINT TAB(27);USING"####.##";BRUTTO(N)
  124. 178 NEXT: GOSUB 70
  125. 180 GOSUB 60
  126. 181 LOCATE 7,2: PRINT "DAS PROGRAMM-LISTING :"
  127. 182 LOCATE 9,2: PRINT " 10 CLS                          'BILDSCHIRM FREI"
  128. 183 LOCATE 10,2: PRINT " 20 DIM BRUTTO(9),NETTO(9)      'DIMENSIONIERUNG"
  129. 184 LOCATE 11,2: PRINT " 30 INPUT 'MEHRWERTSTEUER';MWST 'EINGABE DER MEHRWERTSTEUER"
  130. 185 LOCATE 12,2: PRINT " 40 I=I+1                       'ZÄHLER    "
  131. 186 LOCATE 13,2: PRINT " 50 INPUT 'ARTIKEL';AR$(I)      'EINGABE ARTIKEL"
  132. 187 LOCATE 14,2: PRINT " 60 INPUT 'PREIS';NETTO(I)      'EINGABE NETTO-PREIS"
  133. 188 LOCATE 15,2: PRINT " 70 IF AR$(I)='*' THEN 100       'WENN VORHER ENDE,DANN"
  134. 189 LOCATE 16,2: PRINT " 80 IF I=9 THEN 100             'WENN MAX. EINGABE ERREICHT"
  135. 190 LOCATE 17,2: PRINT " 90 GOTO 40                     'WEITERE EINGABEN"
  136. 200 LOCATE 17,2: PRINT "100 I=I-1                       '1 EINGABE ZURÜCK"
  137. 201 LOCATE 18,2: PRINT "100 CLS                         'BILDSCHIRM FREI": GOSUB 70
  138. 210 GOSUB 60
  139. 211 LOCATE 7,2: PRINT "110 PRINT 'AUSGABE ERGEBNISSE'"
  140. 212 LOCATE 8,2: PRINT "120 PRINT 'ARTIKEL',' NETTO ', 'BRUTTO '"
  141. 213 LOCATE 9,2: PRINT "130 FOR N=1 TO I                 'ZÄHLER ALS SCHLEIFE"
  142. 214 LOCATE 10,2: PRINT "140 BRUTTO(T)=NETTO(T)+NETTO(T)/100*MWST)"
  143. 215 LOCATE 11,2: PRINT "150 BRUTTO(T)=INT(BRUTTO(T)*100+.5)/100"
  144. 216 LOCATE 12,2: PRINT "160 PRINT AR$(T),NETTO(T),BRUTTO(T)"
  145. 217 LOCATE 13,2: PRINT "170 NEXT T                      'SCHLEIFENENDE"
  146. 218 LOCATE 14,2: PRINT "180 END                         'PROGRAMMENDE"
  147. 219 LOCATE 16,2: PRINT "zu Zeile 150..."
  148. 220 LOCATE 17,2: PRINT "Die kaufmännische Rundungsformel lautet:"
  149. 221 LOCATE 18,2: PRINT "VARIABLE = INT (VARIABLE * 100 + .5) / 100"
  150. 222 LOCATE 19,2: PRINT "So wird nach dem Komman auf 2 Stellen auf-/abgerundet."
  151. 230 LOCATE 20,1: PRINT STRING$(79,205)
  152. 231 LOCATE 21,1: COLOR 0,15: PRINT SPACE$(79)
  153. 232 LOCATE 21,10: PRINT "PROGRAMM ENDE   WIEDERHOLEN = W   HAUPTMENÜ LADEN = ESC ": COLOR 15,0
  154. 233 LOCATE 22,1: PRINT STRING$(79,205)
  155. 240 E$=INKEY$: IF E$="" THEN 240
  156. 241 IF E$="W" OR E$="w" THEN 100
  157. 242 IF E$=CHR$(27)  THEN 19
  158. 243 GOTO 240
  159.  
  160.