1  REM  ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  ********************
2  REM
3  REM          TRCK.1:  CALCULATES TRUCK FREIGHT RATES
4  REM
5  REM          36174 (A718) REV A -- 8/71
6  REM
7  REM  ***  CONTRIBUTED PROGRAM  *************************************
8  REM
10  REM**TRCK.1**CALCULATE TRUCK FREIGHT RATES**VERSION 1**30JUL1
20  DIM A$[64],R$[14],D$[64],S$[64],C$[64],X$[3],Y$[3]
30  PRINT "DO YOU REQUIRE INSTRUCTIONS";
40  INPUT Y$
50  IF Y$="NO" THEN 210
60  PRINT "TRCK.1 CALCULATES BREAKPOINT WEIGHTS BASED ON DATA"
70  PRINT "SUPPLIED BY THE USER AND THEN PRINTS A TABLE FOR USE IN"
80  PRINT "PREPARING,RATING AN@ CHECKING TRUCK BILL OF LADINGS."
90  PRINT "PLEASE LIMIT YOUR INPUT FOR FROM,TO,VIA AND FOR TO 64"
100  PRINT "CHARACTERS. INPUT THE RATES AS NORMALLY QUOTED IN TERMS"
110  PRINT "OF RATE/100 LBS.  THE COMPUTER WILL CHANGE THEM TO RATES/"
120  PRINT "LB FOR USE IN THE PROGRAM AND PRINTING OF THE FINAL TABLE."
130  IMAGE#,"RATE ",D,"= $"
140  IMAGE#,"WEIGHT ",D,"="
150  IMAGE"ACT GROSS WT",8X,"CHARGEABLE WT",5X,"RATE/LB",5X,"CHARGES"
160  IMAGE"--- ----- --",8X,"---------- --",5X,"-------",5X,"-------"
170  IMAGE 4X,"1 TO",5D,7X,"DECLARE AS MINIMUM",12X,"$",2X,2D.2D/
180  IMAGE 5D," TO",5D,7X,"ACTUAL",12X,"$",D.4D,5X,"AS EXTENDED"
190  IMAGE 5D," TO",5D,7X,5D,13X,"$",D.4D,5X,"$",4D.2D/
200  IMAGE 5D," TO",12X,"ACTUAL",12X,"$",D.4D,5X,"AS EXTENDED"
210  PRINT "FROM";
220  INPUT A$
230  PRINT "TO";
240  INPUT D$
250  PRINT "VIA";
260  INPUT S$
270  PRINT "FOR";
280  INPUT C$
290  REM**DATE IS USED FOR CONTROL PURPOSES TO INSURE OLD RATES ARE
300  REM**DISCARDED WHEN NEW RATES BECOME EFFECTIVE.
310  PRINT "ENTER EFFECTIVE DATE OF RATES";
320  INPUT R$
330  PRINT "ENTER MINIMUM CHARGE IN $";
340  INPUT R[1]
350  PRINT "HOW MANY RATE CLASSES IN THIS COMMODITY ARE THERE";
360  INPUT N
370  PRINT "PLEASE ENTER DATA AS REQUIRED:"
380  FOR I=1 TO N
390  PRINT  USING 130;I
400  INPUT X[I+1]
410  LET R[I+1]=X[I+1]/100
420  PRINT  USING 140;I
430  INPUT W[I+1]
440  NEXT I
450  PRINT "HOW MANY COPIES";
460  INPUT C
470  FOR K=1 TO C
480  PRINT '10'10'13"FROM....";A$
490  PRINT "TO......";D$
500  PRINT "VIA.....";S$
510  PRINT "FOR.....";C$'10'10'13
520  PRINT  USING 150
530  PRINT  USING 160
540  REM**CALCULATES FIRST BREAKPOINT
550  W[1]=INT(R[1]/R[2])
560  PRINT  USING 170;W[1],R[1]
570  REM**CALCULATES SECOND BREAKPOINT
580  F=R[3]*W[3]/R[2]
590  PRINT  USING 180;W[1]+1,INT(F),R[2]
600  PRINT  USING 190;INT(F)+1,W[3],W[3],R[3],R[3]*W[3]
610  FOR I=3 TO N
620  REM**CALCULATES REMAINING BREAKPOINTS
630  F=R[I+1]*W[I+1]/R[I]
640  PRINT  USING 180;W[I]+1,INT(F),R[I]
650  PRINT  USING 190;INT(F)+1,W[I+1],W[I+1],R[I+1],R[I+1]*W[I+1]
660  NEXT I
670  PRINT  USING 200;W[N+1]+1,R[N+1]
680  PRINT '10'10'13"EFFECTIVE DATE OF RATES..";R$
690  PRINT LIN(2)
700  NEXT K
710  PRINT "DO YOU HAVE MORE DATA";
720  INPUT X$
730  IF X$="YES" THEN 210
740  END 
