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

  1. 1 WIDTH 80: COLOR 15,0,0
  2. 2 DIM M(10),NR(10),EP(10),U(10),Z1(10),NR$(10),M$(10),EP$(10),B(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 35 ELSE IF MID$(ZZ$,Y,1)="_" OR Y>L THEN 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,31: PRINT "A B C - A N A L Y S E"
  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 "Wenn Sie mit Ihrem Unternehmen ein paar Jahre gut gefahren sind, werden"
  66. 102 LOCATE 8,2: PRINT "Sie anläßlich der jährlichen Inventur ein beinahe Naturgesetz entdecken."
  67. 103 LOCATE 9,2: PRINT "Wenn Sie die Anzahl der Produkte,die sich in Ihrem Lager herumdrücken,zu"
  68. 104 LOCATE 10,2: PRINT "100 % setzen, dann machen Sie ca. 75 % Ihres Umsatzes mit nur 5 % Ihrer"
  69. 105 LOCATE 11,2: PRINT "Artikel; 20 % mit 20 % der Artikel und mit dem gigantischen Rest von"
  70. 106 LOCATE 12,2: PRINT "75 % der Palette machen Sie kümmerliche 5 % des Umsatzes. Woran das "
  71. 107 LOCATE 13,2: PRINT "liegt ? Sie analysieren Ihr Geschäft nicht genug. Sobald ein Kunde "
  72. 108 LOCATE 14,2: PRINT "etwas nachfragt, was Sie noch nicht im Angebot haben, werden mal   "
  73. 109 LOCATE 15,2: PRINT "5 Stück bestellt. Und so türmen sich im Laufe der Zeit eine Menge  "
  74. 110 LOCATE 16,2: PRINT "unverkäiflicher Ladenhüter. Das Programm ermittelt Ihre Bestseller "
  75. 111 LOCATE 17,2: PRINT "und zeigt Ihnen die Artikel auf, die unter ferner liefen am Ergebnis"
  76. 112 LOCATE 18,2: PRINT "Ihres Unternehmens beteiligt sind.": GOSUB 70
  77. 120 GOSUB 60
  78. 121 S=0: Z2=0: Z3=0:
  79. 122 N=N+1: LOCATE 7,40: PRINT "ARTIKEL # ";N
  80. 123 LOCATE 8,2: PRINT "ARTIKEL-NUMMER     :"
  81. 124 ZZ$="": R=8: S=24: L=5: PK%=2: GOSUB 20: NR$(N)=ZZ$
  82. 125 NR(N)=VAL(NR$(N)): IF NR$(N)=CHR$(13) OR NR(N)<=0 THEN BEEP: GOSUB 90: GOTO 124
  83. 126 GOSUB 95
  84. 127 LOCATE 9,2: PRINT "VERKAUFTE MENGE    :"
  85. 128 ZZ$="": R=9: S=24: L=3: PK%=2: GOSUB 20: M$(N)=ZZ$
  86. 129 M(N)=VAL(M$(N)): IF M$(N)=CHR$(13) OR M(N)<=0 THEN BEEP: GOSUB 90: GOTO 128
  87. 130 GOSUB 95
  88. 131 LOCATE 10,2: PRINT "EINZELPREIS        :"
  89. 132 ZZ$="": R=10: S=24: L=6: PK%=2: GOSUB 20: EP$(N)=ZZ$
  90. 133 EP(N)=VAL(EP$(N)): IF EP$(N)=CHR$(13) OR EP(N)<=0 THEN BEEP: GOSUB 90: GOTO 132
  91. 134 GOSUB 95
  92. 135 U(N)=M(N)*EP(N): S=S+U(N): F=100/S
  93. 136 IF N= 9 THEN GOSUB 70: GOTO 140
  94. 137 GOTO 122
  95. 140 GOSUB 60: LOCATE 7,2: PRINT "RANG","BEST.-NR","UMSATZ","% V.GES.","SUMME": GOTO 159
  96. 141 Z=1: B(1)=1: B(2)=N
  97. 142 LI=B(Z): RE=B(Z+1): Z=Z-2
  98. 143 I=LI: J=RE: M=INT((LI+RE)/2): GW=U(M)
  99. 144 IF U(I)>=GW THEN 146
  100. 145 I=I+1: GOTO 151
  101. 146 IF U(J)<=GW THEN 148
  102. 147 J=J-1: GOTO 151
  103. 148 IF I>J THEN 151
  104. 149 H=U(I): H1=NR(I): U(I)=U(J): NR(I)=NR(J): U(J)=H: NR(J)=H1
  105. 150 I=I+1: J=J-1
  106. 151 IF I<=J THEN 144
  107. 152 IF I>=RE THEN 154
  108. 153 Z=Z+2: B(Z)=I: B(Z+1)=RE
  109. 154 RE=J
  110. 155 IF LI<RE THEN 143
  111. 156 IF Z<>-1 THEN 142
  112. 157 RETURN
  113. 159 GOSUB 141
  114. 160 FOR I=N TO 1 STEP -1
  115. 161 Z3=Z3+1: Z1(I)=U(I)*F: Z1(I)=INT(Z1(I)*100+.5)/100: Z2=Z2+Z1(I): Z2=INT(Z2*100+.5)/100
  116. 162 PRINT TAB(2)Z3,NR(I),U(I),Z1(I),Z2
  117. 163 NEXT
  118. 164 GOSUB 70
  119. 170 GOSUB 60
  120. 171 LOCATE 7,2: PRINT "DAS PROGRAMM-LISTING"
  121. 172 LOCATE 9,2: PRINT " 10 CLS                                            'BILDSCHIRM FREI"
  122. 173 LOCATE 10,2: PRINT " 20 DIM M(10),NR(10),EP(10),U(10),Z1(10)           'DIMENSIONIERUNG"
  123. 174 LOCATE 11,2: PRINT " 30 N=N+1                                          'ZÄHLER "
  124. 175 LOCATE 12,2: PRINT " 40 INPUT 'ARTIKEL-NUMMER';NR(N)                   'EINGABE ARTIKEL"
  125. 176 LOCATE 13,2: PRINT " 50 INPUT 'VERKAUFTE MENGE';M(N)                   'EINGABE MENGE"
  126. 177 LOCATE 14,2: PRINT " 60 INPUT 'EINZELPREIS    ';EP(N)                  'EINGABE PREIS"
  127. 178 LOCATE 15,2: PRINT " 70 U(N)=M(N)*EP(N)                                'MENGE MAL PREIS"
  128. 179 LOCATE 16,2: PRINT " 80 S=S+U(N)                                       'GESAMTPREIS"
  129. 180 LOCATE 17,2: PRINT " 90 F=100/S                                        'DURCH 100 %"
  130. 181 LOCATE 18,2: PRINT "100 IF N=9 THEN 120                                'ABFRAGE "
  131. 182 LOCATE 19,2: PRINT "110 GOTO 30                                        'RÜCKSPRUNG": GOSUB 70
  132. 190 GOSUB 60
  133. 191 LOCATE 7,2:  PRINT "120 PRINT 'RANG','BEST','UMSATZ','%GES','SUMME'    'AUSGABE TEXT"
  134. 192 LOCATE 8,2:  PRINT "130 Z=1: B(1)=1: B(2)=N                            'BERECHNUNG"
  135. 193 LOCATE 9,2:  PRINT "140 LI=B(Z) : RE=B(Z+1) : Z=Z-2                    'BERECHNUNG"
  136. 194 LOCATE 10,2: PRINT "150 I=LI : J=RE                                    'BERECHNUNG"
  137. 195 LOCATE 11,2: PRINT "160 M=INT((LI+RE)/2): GW=U(M)                      'BERECHNUNG"
  138. 196 LOCATE 12,2: PRINT "170 IF U(I)>=GW THEN 190                           'VERGLEICH"
  139. 197 LOCATE 13,2: PRINT "180 I=I+1: GOTO 270                                'ZÄHLER,SPRUNG"
  140. 198 LOCATE 14,2: PRINT "190 IF U(J)<=GW THEN 210                           'VERGLEICH"
  141. 199 LOCATE 15,2: PRINT "200 J=J-1: GOTO 270                                'EINS WENIGER"
  142. 200 LOCATE 16,2: PRINT "210 IF I>J THEN 270                                'VERGLEICH"
  143. 201 LOCATE 17,2: PRINT "220 H=U(I): H1=NR(I)                               'BERECHNUNG"
  144. 202 LOCATE 18,2: PRINT "230 U(I)=U(J): NR(I)=NR(J)                         'BERECHNUNG"
  145. 203 LOCATE 19,2: PRINT "240 U(J)=H: NR(J)=H1                               'BERECHNUNG": GOSUB 70
  146. 210 GOSUB 60
  147. 211 LOCATE 7,2:  PRINT "250 I=I+1                                          'ZÄHLER"
  148. 212 LOCATE 8,2:  PRINT "260 J=J-1                                          'EINS WENIGER"
  149. 213 LOCATE 9,2:  PRINT "270 IF I<=J THEN 170                               'VERGLEICH"
  150. 214 LOCATE 10,2: PRINT "280 IF I>=RE THEN 300                              'VERGLEICH"
  151. 215 LOCATE 11,2: PRINT "290 Z=Z+2: B(Z)=I: B(Z+1)=RE                       'BERECHNUNG"
  152. 216 LOCATE 12,2: PRINT "300 RE=J                                           'WERTZUWEISUNG"
  153. 217 LOCATE 13,2: PRINT "310 IF LI<RE THEN  150                             'VERGLEICH"
  154. 218 LOCATE 14,2: PRINT "320 IF Z<>-1 THEN  140                             'VERGLEICH"
  155. 219 LOCATE 15,2: PRINT "330 FOR I=N TO 1 STEP -1                           'SCHLEIFE"
  156. 220 LOCATE 16,2: PRINT "340 Z3=Z3+1                                        'WERTZUWEISUNG"
  157. 221 LOCATE 17,2: PRINT "350 Z1(I)=U(I)*F                                   'BERECHNUNG"
  158. 222 LOCATE 18,2: PRINT "360 Z1(I)=INT(Z1(I)*100+.5)/100                    'AUFRUNDEN"
  159. 223 LOCATE 19,2: PRINT "370 Z2=Z2+Z1(I)                                    'BERECHNUNG": GOSUB 70
  160. 230 GOSUB 60
  161. 233 LOCATE 7,2:  PRINT "380 Z2=INT(Z2*100.5)/100                           'AUFRUNDEN"
  162. 234 LOCATE 8,2:  PRINT "390 PRINT Z3,NR(I),U(I),Z1(I),Z2                   'AUSGABE WERTE"
  163. 235 LOCATE 9,2:  PRINT "400 NEXT I                                         'SCHLEIFENENDE"
  164. 236 LOCATE 10,2: PRINT "410 END                                            'PROGRAMMENDE"
  165. 240 LOCATE 20,1: PRINT STRING$(79,205)
  166. 241 LOCATE 21,1: COLOR 0,15: PRINT SPACE$(79)
  167. 242 LOCATE 21,1: PRINT " ENDE DES TEILS   WIEDERHOLEN = W    BEENDEN = E    PROGRAMM-MENÜ LADEN = ESC ": COLOR 15,0
  168. 243 LOCATE 22,1: PRINT STRING$(79,205)
  169. 245 E$=INKEY$: IF E$="" THEN 245
  170. 246 IF E$=CHR$(27) THEN 19
  171. 247 IF E$="W" OR E$="w" THEN 100
  172. 248 IF E$="E" OR E$="e" THEN CLS: END
  173. 249 GOTO 245
  174.  
  175.