第六章函数和子程序独立模块的子程序独立模块的函数局部变量与全局变量STATIC选项和说明过程的递归调用块内子程序和块内函数模块化程序实际的思想根据软件工程学的原理和结构化程序设计的要求,应该将程序分成若干个模块,每一个模块完成一个或几个功能,并给它定义一个唯一的名字,以便调用,这就是所谓的“模块化”
一个程序就包含一个主模块和若干个子模块
程序的每一个模块可以是子程序或函数
模块又称过程,“执行一个过程”就是调有一个子程序或函数模块
这种做法使程序结构清晰,具有良好的可读性和易维护性
独立模块的子程序(引例引例)DECLARESUBstar(nASINTEGER)‘说明在程序中要调用一个名为Star的子程序REMmainprogramDIMIASINTEGERFORI=1TO3CALLStar(I)‘调用子程序,并将I的值传递给nNEXTIPRINTENDSUBStar(nASINTEGER)DIMIASINTEGERFORI=1TOnPRINT“*”NEXTIPRINTENDSUB独立模块的子程序QBASIC提供独立模块的子程序和函数,这种子程序和主程序不在同一个模块中
它以SUB语句开头,以ENDSUB结束;SUB子程序名(形式参数)子程序体ENDSUB子程序名最长可为40个字符
我们约定子程序名第一个字母用大写,子程序后可以没有形参,此时必须省略括号,变为:SUB子程序名形参的类型说明如下:变量名1AS类型名,变量名2AS类型名,…注:如果形参是实型,则AS语可以省略
SUB和ENDSUB之间的语句行称为子程序体,在子程序体内不可出现DATA语句,子程序体中的READ语句会到主程序体中的DATA语句中读取数据;子程序不能嵌套定义,即在子程序体内不能再出现SUB语句
子程序的调用(CALL语句)子程序调用的两种形式:CALL子程序名(实际参数)子程序名实际参