# QBASIC, Computers

posted by
**Jason** on
.

The following is a list of salaries of the six employees in a certain company:

Name Salary

T. Angel $43,000

F. Smith $31,000

K. Johnston $22,000

P. Miner $18,000

C. Altman $27,000

A. Lu $19,000

Read a single dimension array for name and another array for Salary. Calculate and output the average salary for the company as well as the names of all people whose salaries exceed the average.

How would I write this program?

Maybe something like this?

DIM EmployeeNam(1 TO 16), Salary(1 TO 6)

GOSUB InitializeVariables

GOSUB LoadTables

CLS

GOSUB PrintDetail

GOSUB PrintSubtotals

GOSUB PrintTotals

END

InitializeVariables:

LET PageCt = 0

LET Salary = 0

LET T1$ = " Salary for employees ##"

LET H1$ = ""

LET H2$ = " Name Salary "

LET D1$ = " \ / $###.## "

LET ST$ = " \ \ SUBTOTAL #"

LET TL$ = " TOTAL #"

LET MaxLines = 30

RETURN

'******************************

' Read numbers into the array

' *****************************

LoadTables:

FOR N = 1 TO 6

READ EmployeeNam(N), Salary(N)

LET AvgSalary = Salary + Salary(N)

NEXT N

DATA T. Angel, 43,000

DATA F. Smith, 31,000

DATA K. Johnston,22,000

DATA P. Miner, 18,000

DATA C. Altman, 27,000

DATA A. Lu, 19,000

DATA 0,0,0

DATA END

RETURN

PrintDetail:

PRINT H2$

FOR N = 1 TO 6

PRINT USING D1$; EmployeeNam(N); Salary(N); 'Print details

NEXT N

RETURN

PrintSubtotals:

LET AvgIncome = Salary / 6 'Calc average income

RETURN

PrintTotals:

PRINT USING "$##,###.## \ \"; AvgSalary; "is the average Salary"

GOSUB PrintAboveAverage

RETURN

PrintAboveAverage:

PRINT H2$

FOR N = 1 TO 6

IF Salary(N) > AvgSalary THEN

PRINT USING D1$; EmployeeNam(N); Salary(N)

END IF

NEXT N

RETURN

Can someone please help me