参数(形参)要一致。
2、多行自定义(DEF)函数
用多行语句来定义一个函数。
(1)、一般格式
DEF fn<名字>(<参数>)
......
fn<名字>=<表达式>
END DEF
例4、定义函数f(n)=1+2+...+n
DEF fns(n)
S=0
FOR i=1 t n
S=S+i
Next i
fns=S
END DEF
Fr n=1 t 100
Print fns(n)
NEXT n
END
(2)、说明
(i)形式参数——定义函数的自变量
实际参数——调用函数时的参数。
(ii)函数先定义后使用,即习惯把DEF语句
放在程序的开头。
二、块内子程序
1、gsub-return 语句
子程序定义:
<标号或行号>:
......
return
子程序调用:
GOSUB <标号或行号>
例5:求4!+5!+6!
S=0
n=4: gsub f:s=s+p
n=5: gsub f:s=s+p
n=6: gsub f:s=s+p
print “4!+5!+6!=”;s
end
f: p=1
fr i=1 t n
p=p*i
next i
return
2、n gsub-return 语句
(1).一般格式
子程序定义:
<标号>:
......
return
子程序调用:
ON <表达式> gsub <子程1>,<子程2>,…,<子程n>
例:“小学生算术练习”——轮流出一个二位数和一个一位数的加法、减法和乘法的题目,共出十题,每题 10分。
RANDOMIZE
fr i=1 t 10
a=int(90*RND)+10
b=int(9*RND)+1
p=i d 3 + 1
ON p GOSOB a1,a2,a3
Next i
Print "n=";n*10 END
a1: print a;"+";b;"=";
input c
if c=a+b then n=n+1
return
a2: print a;"-";b;"=";
input c
If c=a-b then n=n+1
Return
a3: print a;"*";b;"="
Input c
If c=a*b then n=n+1
Return.
(2)、说明:
<表达式>的值不是整数时,按四舍五入处理,值为0或大于n则不起作用,值为负时系统给出错误信息——“不正确的函数调用”。
3、ON E(n) GOSUB-RETURN 语句
(1)、调用格式
ON E(n) GOSUB <标号>
其中n是数值表达式,代表一个“陷阱键”。n的值与 设定键的对应关系如下:
n值键名
1~10 功能键F1~F10
11方向键↑
12方向键←
13方向键→
14方向键↓
例: 求和式:S=12+22+...+n2 n=100000
ON E(2) GOSUB pri
E(2) ON
S=0
Fr i=1 t 100000
S=S+i*i
NEXT i
pring “s=”;s
end
pri:print “n5