Hey guys,
Im writing a program for my BASIC class and have suddenly gotten an "Illegal Function Call" error on one of the lines and I really dont know why
The error occurs at the "PRINT USING T1$; PageCt 'Print title line" line
' MINITEST 2
' Variables Used:
' T1$, H1$, H2$, D1$ Print images
' TL$ Print images
' Nam$ Names
' Num Number of people
' Rate Hourly Rate
' AmountOwed Amount Owed
' NumTot Number Totals
' AmountTot Amount Total
' **********************************************
' * PROGRAM MAINLINE *
' **********************************************
CLS
GOSUB InitializeVariables
GOSUB PrintHeadings
GOSUB ProcessDetail
GOSUB PrintTotals
END
' *********************************************
' * Initialize Variables *
' *********************************************
InitializeVariables:
LET Rate = 0
LET Num = 0
LET NumTot = 0
LET AmountTot = 0
' ***********************************************
' Initialize Images
' ************************************************
InitializeImages:
' T1$ Title Outputs
' H1$, H2$ Column Headings
' D1$ Detail (names, # of people, amount owed>
' TL$ Totals
' ****************************************************
' LPRINT HEADINGS *
' ****************************************************
PrintHeadings:
PRINT USING T1$; PageCt 'Print title line
PRINT
PRINT H1$ 'Print column headings, line 1
PRINT H2$ 'Print column headings, line 2
PRINT
RETURN
' *******************************************************
' * PROCESS DETAIL *
' *******************************************************
ProcessDetail:
GOSUB ReadData 'Prime Nam$, Num
LET Names$ = Nam$
DO UNTIL Nam$ = "END"
RateLookup:
IF Num <1>= 1 AND Num <4> 11 THEN
LET Rate = 100
END IF
LOOP
RETURN
' *************************************************
' * READ DATA *
' *************************************************
ReadData:
READ Nam$, Num, AmountOwed
DATA ABC company, 5, $80.00
DATA NBC Corporation, 7, $80.00
DATA XLR company,8, $80.00
DATA Lucent corp, 12, $60.00
DATA Ameritech, 3, $100.00
DATA Rambo Mart, 0, $0
DATA END, 0,0,0
RETURN
' **************************************************
' * Calculate Amount Owed *
' **************************************************
AmountOwed:
LET AmountOwed = Rate * Num
RETURN
' **************************************************
' * CALCULATE TOTALS *
' **************************************************
CalculateTotals:
LET NumTot = NumTot + Num 'Add to number total
LET AmountTot = AmountTot + AmountOwed 'Add to amount total
RETURN
' **************************************************
' * LPRINT DETAILS *
' ***************************************************
PrintDetail:
LPRINT USING D1$; Nam$; Num; AmountOwed 'Print details
RETURN
' ******************************************************
' * LPRINT TOTALS *
' *******************************************************
PrintTotals:
LPRINT
LPRINT USING TL$; NumTot; AmountTot ' Print totals line
RETURN
' *****************************************************************
' * END OF PROGRAM *
' *****************************************************************
Anyone have any ideas?
Thanks for the help!
Illegal Function Call?
- burger2227
- Veteran
- Posts: 2466
- Joined: Mon Aug 21, 2006 12:40 am
- Location: Pittsburgh, PA
String T1$ needs to be defined with numerical ## digit positions in the string to reflect the numerical variable using the template.
PRINT USING "Value:###.##"; variable
PRINT USING "Value:###.##"; variable
Please acknowledge and thank members who answer your questions!
QB64 is a FREE QBasic compiler for WIN, MAC(OSX) and LINUX : https://www.qb64.org/forum/index.php
Get my Q-Basics demonstrator: https://www.dropbox.com/s/fdmgp91d6h8ps ... s.zip?dl=0
QB64 is a FREE QBasic compiler for WIN, MAC(OSX) and LINUX : https://www.qb64.org/forum/index.php
Get my Q-Basics demonstrator: https://www.dropbox.com/s/fdmgp91d6h8ps ... s.zip?dl=0
-
- Coder
- Posts: 42
- Joined: Mon Sep 03, 2012 4:32 pm
- burger2227
- Veteran
- Posts: 2466
- Joined: Mon Aug 21, 2006 12:40 am
- Location: Pittsburgh, PA
DATA can be placed anywhere. You can label it to RESTORE MyData to the beginning of DATA so it doesn't error.
If you want the dollar sign value change AmountOwed to a string.
Code: Select all
FOR i = 1 TO 6 'reads 6 lines of data
GOSUB ReadData
PRINT Nam$, Num, "$"; AmountOwed
NEXT
END
ReadData:
READ Nam$, Num, AmountOwed
RETURN
MyData:
DATA ABC company, 5, 80.00
DATA NBC Corporation, 7, 80.00
DATA XLR company,8, 80.00
DATA Lucent corp, 12, 60.00
DATA Ameritech, 3, 100.00
DATA Rambo Mart, 0, 0
DATA END, 0,0,0
Please acknowledge and thank members who answer your questions!
QB64 is a FREE QBasic compiler for WIN, MAC(OSX) and LINUX : https://www.qb64.org/forum/index.php
Get my Q-Basics demonstrator: https://www.dropbox.com/s/fdmgp91d6h8ps ... s.zip?dl=0
QB64 is a FREE QBasic compiler for WIN, MAC(OSX) and LINUX : https://www.qb64.org/forum/index.php
Get my Q-Basics demonstrator: https://www.dropbox.com/s/fdmgp91d6h8ps ... s.zip?dl=0
-
- Coder
- Posts: 42
- Joined: Mon Sep 03, 2012 4:32 pm