home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
M.u.C.S. Disc 2000
/
MUCS2000.iso
/
sigisoft
/
kaufmann
/
pk10.bas
< prev
next >
Wrap
BASIC Source File
|
1997-10-09
|
10KB
|
175 lines
1 WIDTH 80: COLOR 15,0,0
2 DIM M(10),NR(10),EP(10),U(10),Z1(10),NR$(10),M$(10),EP$(10),B(10)
10 GOTO 100
15 LOCATE 20,1: PRINT STRING$(79,205)
16 LOCATE 21,1: COLOR 0,15: PRINT SPACE$(79)
17 LOCATE 21,25: PRINT "PROGRAMM WIRD GELADEN.BITTE WARTEN": COLOR 15,0
18 LOCATE 22,1: PRINT STRING$(79,205): RETURN
19 GOSUB 15: RUN "MENUE"
20 ZZ$=LEFT$(ZZ$,L):ZZ$=ZZ$+STRING$(L-LEN(ZZ$),95):Z2=0:Y=1
21 LOCATE R,S,O:PRINT ZZ$;
22 LOCATE R,S+Y-1,1
23 Z$=INKEY$: IF Z$="" THEN 23 ELSE Z=ASC(Z$): Z1=0: IF Z=0 THEN Z1=ASC(RIGHT$(Z$,1))
24 IF Z<>13 THEN 28 ELSE IF Z2 >0 THEN 23
25 IF Y=1 THEN ZZ$=CHR$(13):RETURN
26 IF RIGHT$(ZZ$,1)="_" THEN ZZ$=LEFT$(ZZ$,INSTR(ZZ$,"_")-1)
27 RETURN
28 IF Z<>0 THEN 48
29 IF Z1<>71 THEN 31 ELSE IF Y=1 OR Z2 THEN 23
30 Y=1:GOTO 22
31 IF Z1<>75 THEN 33 ELSE IF Y=1 OR Z2 THEN 23
32 Y=Y-1:GOTO 22
33 IF Z1<>77 THEN 35 ELSE IF MID$(ZZ$,Y,1)="_" OR Y>L THEN 23
34 Y=Y+1:GOTO 22
35 IF Z1<>79 THEN 39 ELSE IF Y>L OR Z2 THEN 23
36 IF MID$(ZZ$,Y,1)="_" THEN 23
37 Y=Y+1
38 IF MID$(ZZ$,Y,1)="_" THEN 22 ELSE 37
39 IF Z1<>82 THEN 42 ELSE IF RIGHT$(ZZ$,1)<>"_" THEN 23
40 IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
41 ZZ$=LEFT$(ZZ$,Y-1)+"_"+MID$(ZZ$,Y,L-Y):Z2=Z2+1:GOTO 21
42 IF Z1<>83 THEN 44 ELSE IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
43 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+MID$(ZZ$,Y+1)+"_":GOTO 21
44 IF Z1<>117 THEN 46 ELSE IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
45 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+STRING$(L-Y+1,95):GOTO 21
46 IF Z1<>119 THEN 23 ELSE IF Y=1 THEN 23
47 ZZ$=MID$(ZZ$,Y)+STRING$(Y-1,95):Y=1:GOTO 21
48 IF Z<>8 THEN 50 ELSE IF Y=1 THEN 23
49 ZZ$=LEFT$(ZZ$,Y-2)+MID$(ZZ$,Y)+"_":Y=Y-1:GOTO 21
50 IF Z<>27 THEN 51 ELSE ZZ$=STRING$(L,95):Y=1:Z2=0: GOTO 21
51 IF Z=95 OR Y>L THEN 23
52 ON PK% GOTO 55,53,54
53 IF Z<46 OR Z>58 THEN 23 ELSE 55
54 IF Z<>106 AND Z<>110 THEN 23
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
56 IF Z2 THEN Z2=Z2-1
57 RETURN
60 CLS: LOCATE 2,1: PRINT STRING$(79,205)
61 LOCATE 3,1: COLOR 0,15: PRINT SPACE$(79): LOCATE 3,30: PRINT "KAUFMÄNNISCHES RECHNEN": LOCATE 4,1: PRINT SPACE$(79)
62 LOCATE 4,30: PRINT "(C) BY SIEGFRIED HÜBNER ESC =LADE MENÜ": LOCATE 5,1: PRINT SPACE$(79)
63 LOCATE 5,31: PRINT "A B C - A N A L Y S E"
64 COLOR 15,0: LOCATE 6,1: PRINT STRING$(79,205): RETURN
70 LOCATE 20,1: PRINT STRING$(79,205)
71 LOCATE 21,1: COLOR 0,15: PRINT SPACE$(79)
72 LOCATE 21,29: PRINT "BELIEBIGE TASTE DRÜCKEN": COLOR 15,0
73 LOCATE 22,1: PRINT STRING$(79,205)
75 E$=INKEY$: IF E$="" THEN 75
76 IF E$=CHR$(27) THEN 19
77 RETURN
90 LOCATE 20,1: PRINT STRING$(79,205)
91 LOCATE 21,1: COLOR 0,15: PRINT SPACE$(79)
92 LOCATE 21,34: PRINT "FALSCHE EINGABE": COLOR 15,0
93 LOCATE 22,1: PRINT STRING$(79,205): RETURN
95 FOR T=1 TO 4: LOCATE 19+T,1: PRINT SPACE$(79): NEXT: RETURN
100 GOSUB 60
101 LOCATE 7,2: PRINT "Wenn Sie mit Ihrem Unternehmen ein paar Jahre gut gefahren sind, werden"
102 LOCATE 8,2: PRINT "Sie anläßlich der jährlichen Inventur ein beinahe Naturgesetz entdecken."
103 LOCATE 9,2: PRINT "Wenn Sie die Anzahl der Produkte,die sich in Ihrem Lager herumdrücken,zu"
104 LOCATE 10,2: PRINT "100 % setzen, dann machen Sie ca. 75 % Ihres Umsatzes mit nur 5 % Ihrer"
105 LOCATE 11,2: PRINT "Artikel; 20 % mit 20 % der Artikel und mit dem gigantischen Rest von"
106 LOCATE 12,2: PRINT "75 % der Palette machen Sie kümmerliche 5 % des Umsatzes. Woran das "
107 LOCATE 13,2: PRINT "liegt ? Sie analysieren Ihr Geschäft nicht genug. Sobald ein Kunde "
108 LOCATE 14,2: PRINT "etwas nachfragt, was Sie noch nicht im Angebot haben, werden mal "
109 LOCATE 15,2: PRINT "5 Stück bestellt. Und so türmen sich im Laufe der Zeit eine Menge "
110 LOCATE 16,2: PRINT "unverkäiflicher Ladenhüter. Das Programm ermittelt Ihre Bestseller "
111 LOCATE 17,2: PRINT "und zeigt Ihnen die Artikel auf, die unter ferner liefen am Ergebnis"
112 LOCATE 18,2: PRINT "Ihres Unternehmens beteiligt sind.": GOSUB 70
120 GOSUB 60
121 S=0: Z2=0: Z3=0:
122 N=N+1: LOCATE 7,40: PRINT "ARTIKEL # ";N
123 LOCATE 8,2: PRINT "ARTIKEL-NUMMER :"
124 ZZ$="": R=8: S=24: L=5: PK%=2: GOSUB 20: NR$(N)=ZZ$
125 NR(N)=VAL(NR$(N)): IF NR$(N)=CHR$(13) OR NR(N)<=0 THEN BEEP: GOSUB 90: GOTO 124
126 GOSUB 95
127 LOCATE 9,2: PRINT "VERKAUFTE MENGE :"
128 ZZ$="": R=9: S=24: L=3: PK%=2: GOSUB 20: M$(N)=ZZ$
129 M(N)=VAL(M$(N)): IF M$(N)=CHR$(13) OR M(N)<=0 THEN BEEP: GOSUB 90: GOTO 128
130 GOSUB 95
131 LOCATE 10,2: PRINT "EINZELPREIS :"
132 ZZ$="": R=10: S=24: L=6: PK%=2: GOSUB 20: EP$(N)=ZZ$
133 EP(N)=VAL(EP$(N)): IF EP$(N)=CHR$(13) OR EP(N)<=0 THEN BEEP: GOSUB 90: GOTO 132
134 GOSUB 95
135 U(N)=M(N)*EP(N): S=S+U(N): F=100/S
136 IF N= 9 THEN GOSUB 70: GOTO 140
137 GOTO 122
140 GOSUB 60: LOCATE 7,2: PRINT "RANG","BEST.-NR","UMSATZ","% V.GES.","SUMME": GOTO 159
141 Z=1: B(1)=1: B(2)=N
142 LI=B(Z): RE=B(Z+1): Z=Z-2
143 I=LI: J=RE: M=INT((LI+RE)/2): GW=U(M)
144 IF U(I)>=GW THEN 146
145 I=I+1: GOTO 151
146 IF U(J)<=GW THEN 148
147 J=J-1: GOTO 151
148 IF I>J THEN 151
149 H=U(I): H1=NR(I): U(I)=U(J): NR(I)=NR(J): U(J)=H: NR(J)=H1
150 I=I+1: J=J-1
151 IF I<=J THEN 144
152 IF I>=RE THEN 154
153 Z=Z+2: B(Z)=I: B(Z+1)=RE
154 RE=J
155 IF LI<RE THEN 143
156 IF Z<>-1 THEN 142
157 RETURN
159 GOSUB 141
160 FOR I=N TO 1 STEP -1
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
162 PRINT TAB(2)Z3,NR(I),U(I),Z1(I),Z2
163 NEXT
164 GOSUB 70
170 GOSUB 60
171 LOCATE 7,2: PRINT "DAS PROGRAMM-LISTING"
172 LOCATE 9,2: PRINT " 10 CLS 'BILDSCHIRM FREI"
173 LOCATE 10,2: PRINT " 20 DIM M(10),NR(10),EP(10),U(10),Z1(10) 'DIMENSIONIERUNG"
174 LOCATE 11,2: PRINT " 30 N=N+1 'ZÄHLER "
175 LOCATE 12,2: PRINT " 40 INPUT 'ARTIKEL-NUMMER';NR(N) 'EINGABE ARTIKEL"
176 LOCATE 13,2: PRINT " 50 INPUT 'VERKAUFTE MENGE';M(N) 'EINGABE MENGE"
177 LOCATE 14,2: PRINT " 60 INPUT 'EINZELPREIS ';EP(N) 'EINGABE PREIS"
178 LOCATE 15,2: PRINT " 70 U(N)=M(N)*EP(N) 'MENGE MAL PREIS"
179 LOCATE 16,2: PRINT " 80 S=S+U(N) 'GESAMTPREIS"
180 LOCATE 17,2: PRINT " 90 F=100/S 'DURCH 100 %"
181 LOCATE 18,2: PRINT "100 IF N=9 THEN 120 'ABFRAGE "
182 LOCATE 19,2: PRINT "110 GOTO 30 'RÜCKSPRUNG": GOSUB 70
190 GOSUB 60
191 LOCATE 7,2: PRINT "120 PRINT 'RANG','BEST','UMSATZ','%GES','SUMME' 'AUSGABE TEXT"
192 LOCATE 8,2: PRINT "130 Z=1: B(1)=1: B(2)=N 'BERECHNUNG"
193 LOCATE 9,2: PRINT "140 LI=B(Z) : RE=B(Z+1) : Z=Z-2 'BERECHNUNG"
194 LOCATE 10,2: PRINT "150 I=LI : J=RE 'BERECHNUNG"
195 LOCATE 11,2: PRINT "160 M=INT((LI+RE)/2): GW=U(M) 'BERECHNUNG"
196 LOCATE 12,2: PRINT "170 IF U(I)>=GW THEN 190 'VERGLEICH"
197 LOCATE 13,2: PRINT "180 I=I+1: GOTO 270 'ZÄHLER,SPRUNG"
198 LOCATE 14,2: PRINT "190 IF U(J)<=GW THEN 210 'VERGLEICH"
199 LOCATE 15,2: PRINT "200 J=J-1: GOTO 270 'EINS WENIGER"
200 LOCATE 16,2: PRINT "210 IF I>J THEN 270 'VERGLEICH"
201 LOCATE 17,2: PRINT "220 H=U(I): H1=NR(I) 'BERECHNUNG"
202 LOCATE 18,2: PRINT "230 U(I)=U(J): NR(I)=NR(J) 'BERECHNUNG"
203 LOCATE 19,2: PRINT "240 U(J)=H: NR(J)=H1 'BERECHNUNG": GOSUB 70
210 GOSUB 60
211 LOCATE 7,2: PRINT "250 I=I+1 'ZÄHLER"
212 LOCATE 8,2: PRINT "260 J=J-1 'EINS WENIGER"
213 LOCATE 9,2: PRINT "270 IF I<=J THEN 170 'VERGLEICH"
214 LOCATE 10,2: PRINT "280 IF I>=RE THEN 300 'VERGLEICH"
215 LOCATE 11,2: PRINT "290 Z=Z+2: B(Z)=I: B(Z+1)=RE 'BERECHNUNG"
216 LOCATE 12,2: PRINT "300 RE=J 'WERTZUWEISUNG"
217 LOCATE 13,2: PRINT "310 IF LI<RE THEN 150 'VERGLEICH"
218 LOCATE 14,2: PRINT "320 IF Z<>-1 THEN 140 'VERGLEICH"
219 LOCATE 15,2: PRINT "330 FOR I=N TO 1 STEP -1 'SCHLEIFE"
220 LOCATE 16,2: PRINT "340 Z3=Z3+1 'WERTZUWEISUNG"
221 LOCATE 17,2: PRINT "350 Z1(I)=U(I)*F 'BERECHNUNG"
222 LOCATE 18,2: PRINT "360 Z1(I)=INT(Z1(I)*100+.5)/100 'AUFRUNDEN"
223 LOCATE 19,2: PRINT "370 Z2=Z2+Z1(I) 'BERECHNUNG": GOSUB 70
230 GOSUB 60
233 LOCATE 7,2: PRINT "380 Z2=INT(Z2*100.5)/100 'AUFRUNDEN"
234 LOCATE 8,2: PRINT "390 PRINT Z3,NR(I),U(I),Z1(I),Z2 'AUSGABE WERTE"
235 LOCATE 9,2: PRINT "400 NEXT I 'SCHLEIFENENDE"
236 LOCATE 10,2: PRINT "410 END 'PROGRAMMENDE"
240 LOCATE 20,1: PRINT STRING$(79,205)
241 LOCATE 21,1: COLOR 0,15: PRINT SPACE$(79)
242 LOCATE 21,1: PRINT " ENDE DES TEILS WIEDERHOLEN = W BEENDEN = E PROGRAMM-MENÜ LADEN = ESC ": COLOR 15,0
243 LOCATE 22,1: PRINT STRING$(79,205)
245 E$=INKEY$: IF E$="" THEN 245
246 IF E$=CHR$(27) THEN 19
247 IF E$="W" OR E$="w" THEN 100
248 IF E$="E" OR E$="e" THEN CLS: END
249 GOTO 245