40 lines
1.3 KiB
Plaintext
40 lines
1.3 KiB
Plaintext
INSTALL @lib$+"SORTSALIB"
|
|
Sort% = FN_sortSAinit(1, 0) : REM Descending
|
|
|
|
nItems% = 9
|
|
maxWeight = 15.0
|
|
|
|
DIM items{(nItems%-1) name$, weight, price, worth}
|
|
FOR item% = 0 TO nItems%-1
|
|
READ items{(item%)}.name$, items{(item%)}.weight, items{(item%)}.price
|
|
items{(item%)}.worth = items{(item%)}.price / items{(item%)}.weight
|
|
NEXT
|
|
|
|
DATA "beef", 3.8, 36, "pork", 5.4, 43, "ham", 3.6, 90
|
|
DATA "greaves", 2.4, 45, "flitch", 4.0, 30, "brawn", 2.5, 56
|
|
DATA "welt", 3.7, 67, "salami", 3.0, 95, "sausage", 5.9, 98
|
|
|
|
C% = nItems% : D% = 0
|
|
CALL Sort%, items{()}, items{(0)}.worth
|
|
|
|
TotalWeight = 0
|
|
TotalPrice = 0
|
|
FOR i% = 0 TO nItems%-1
|
|
IF TotalWeight + items{(i%)}.weight < maxWeight THEN
|
|
TotalWeight += items{(i%)}.weight
|
|
TotalPrice += items{(i%)}.price
|
|
PRINT "Take all the " items{(i%)}.name$
|
|
ELSE
|
|
weight = maxWeight - TotalWeight
|
|
price = weight * items{(i%)}.worth
|
|
TotalWeight += weight
|
|
TotalPrice += price
|
|
PRINT "Take "; weight " kg of " items{(i%)}.name$
|
|
EXIT FOR
|
|
ENDIF
|
|
NEXT
|
|
|
|
PRINT '"Total weight = " ; TotalWeight " kg"
|
|
PRINT "Total price = " ; TotalPrice
|
|
END
|