home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 101.img / QB45-1.ZIP / CHECK.BAS < prev    next >
BASIC Source File  |  1987-09-23  |  2KB  |  61 lines

  1. DIM Amount(1 TO 100)
  2. CONST FALSE = 0, TRUE = NOT FALSE
  3.  
  4. ' Get account's starting balance:
  5. CLS
  6. INPUT "Type starting balance, then press <ENTER>: ", Balance
  7.  
  8. ' Get transactions. Continue accepting input until the
  9. ' input is zero for a transaction, or until 100
  10. ' transactions have been entered:
  11. FOR TransacNum% = 1 TO 100
  12.    PRINT TransacNum%;
  13.    PRINT ") Enter transaction amount (0 to end): ";
  14.    INPUT "", Amount(TransacNum%)
  15.    IF Amount(TransacNum%) = 0 THEN
  16.       TransacNum% = TransacNum% - 1
  17.       EXIT FOR
  18.    END IF
  19. NEXT
  20.  
  21. ' Sort transactions in ascending order,
  22. ' using a "bubble sort":
  23. Limit% = TransacNum%
  24. DO
  25.    Swaps% = FALSE
  26.    FOR I% = 1 TO (Limit% - 1)
  27.  
  28.       ' If two adjacent elements are out of order, switch
  29.       ' those elements:
  30.       IF Amount(I%) < Amount(I% + 1) THEN
  31.          SWAP Amount(I%), Amount(I% + 1)
  32.          Swaps% = I%
  33.       END IF
  34.    NEXT I%
  35.  
  36.    ' Sort on next pass only to where the last switch was made:
  37.    IF Swaps% THEN Limit% = Swaps%
  38.  
  39. ' Sort until no elements are exchanged:
  40. LOOP WHILE Swaps%
  41.  
  42. ' Print the sorted transaction array. If a transaction
  43. ' is greater than zero, print it as a "CREDIT"; if a
  44. ' transaction is less than zero, print it as a "DEBIT":
  45. FOR I% = 1 TO TransacNum%
  46.    IF Amount(I%) > 0 THEN
  47.       PRINT USING "CREDIT: $$#####.##"; Amount(I%)
  48.    ELSEIF Amount(I%) < 0 THEN
  49.       PRINT USING "DEBIT:  $$#####.##"; Amount(I%)
  50.    END IF
  51.  
  52.    ' Update balance:
  53.    Balance = Balance + Amount(I%)
  54. NEXT I%
  55.  
  56. ' Print the final balance:
  57. PRINT
  58. PRINT "--------------------------"
  59. PRINT USING "Final Total: $$######.##"; Balance
  60. END
  61.