您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > PowerBASIC入门教程(第二部分)
1PowerBASIC入门教程(第二部分)第二章:PowerBASIC的基本语法1.PowerBASIC中的基本数据类型2.PowerBASIC中的变量和常量a)PowerBASIC的变量b)PowerBASIC的常量3.变量和常量的作用域a)定义全局变量和常量b)定义函数和过程的变量和常量c)使用不同作用域的变量和常量4.PowerBASIC中的操作符和表达式a)算术操作符和表达式b)字符串操作符c)关系操作符d)逻辑操作符e)操作符的优先级5.PowerBASIC中的控制结构a)条件语句b)分支语句c)跳转语句d)循环语句6.PowerBASIC的示例代码PowerBASIC中的基本数据类型2指针类型指针类型PTR,POINTER整型整型INTEGER长整型LONG四倍字长整型QUAD无符号整型字节类型BYTE字节型WORD双字节型DWORD浮点类型单精度类型SINGLE双精度类型DOUBLE扩展精度类型EXT,EXTENDED货币类型货币类型CUR,CURRENCY扩展货币类型CUX,CURRENCYX字符串类型字符串类型STRING定长字符串STRING*XASCIIZ字符串类型ASCIIZ,ASCIZ字段类型FIELDCOM变量变体类型VARIANTGUID类型GUID对象类型DISPATCHPowerBASIC中的变量和常量a)PowerBASIC的变量在程序执行过程中,需要将数据存储在内存中,以便进行计算,这些存储数据的内存位置称为变量,每个变量都有一个:1.名称–变量包含的用于引用值的单词2.数据类型–确定变量可以存储的数据类型变量可以不断地创建和清除,在定义它们的程序结束后,它们便不再包含任何值,并且可以在不同的时期保持不同的值。在PB中,使用DIM语句声明变量,同时要提供一个变量名:DIMVariablenameASTYPE例如,要将变量num1声明为Integer,PowerBASIC中的声明应如下所示:Dimnum1ASIntger要给变量赋值,可以使用赋值操作符“=”,例如,要给变量strVB赋值PowerBASIC,可以编写以下语句:DimstrVBASSTRINGstrVB=“PowerBASIC”3b)PowerBASIC的常量常量也可以用于存储值,在程序执行过程中,这些值恒定不变。PowerBASIC中许多内置常量,也可以创建自己的常量,在程序中定义了常量之后,便不能使用赋值语句更改或修改常量的值,如果试图这样做,运行程序时将出现错误。通常,常量用于代替一些经常被使用的常数,常量常被用作转换因子。由于常量不允许用户在执行程序时更改值,因此对于希望保持不变的数据,是最安全的存储之处,使用常量的另一个好处在于长来年感的处理速度比变量快。例如,如果应用程序执行算术计算,pi(3.1459)值可能会在计算中多次出现,pi值最好使用一个常量来表示,如果不愿意一次又一次输入3.14159这个值,可以定义一个名为pi的常量并使用pi值初始化它。在PowerBASIC中,使用以%开头的关键符号来声明变量,声明时,需要提供常量的名称和值。声明常量的语句示例如下所示:%CONST=100除用户定义的常量外,PowerBASIC还支持预定义的常量值,这些常量值称为“系统常量”,这些常量的常见示例有使用MSGBOX函数时出现在消息框中的按钮,例如,%MB_OK表示“确定”按钮,%MB_CANCEL表示“取消”按钮,%MB_RETRY表示“重试”按钮等等。变量和常量的作用域a)定义全局变量和常量全局变量是使用关键字Global在函数或过程外的通用声明部分创建的,赋给全局变量的值可在程序生命周期内供整个代码区域内的任何过程或函数使用,使用Global声明的变量在应用程序的任一部分都可见,分配给全局变量的内存在程序结束后才会被释放。例如,要声明数据类型为INTEGER的全局变量COUNTER,可以在函数声明部分前编写以下语句:GlobalCounterASInteger这样就将变量Counter声明为了全局变量。b)定义函数和过程的变量和常量函数和过程级变量是使用LOCAL或DIM语句在实际要使用该变量的过程中创建的,在过程和函数级变量仅可用于定义它们的过程或函数,其他过程或函数不能访问这些变量的值,在该过程或函数结束后,变量将被清除,并释放分配给该变量的内存。下面给2个例子:LOCALCounterASINTEGERDIMCounterASINTEGERc)使用不同作用域的变量和常量理想的状态是,一个应用程序中的任意两个变量或常量都能不具有相同的名称,但是,如果需要使用2个同名的变量或常量,则需要注册不要在同一级或同一作用域内声明同名的2个变量。PowerBASIC中的操作符和表达式1.算术操作符和表达式算术运算进行普通的数学运算。有几个操作符值得一说。斜线表示整除。整除将操作数四舍五入为整数,结果为没有余数的商。例如,5\2的值为2,9\10的值为0。当使用整数类型的变量或表达式时,整除比浮点除的速度要快得多。整除的余数可用取模操作MOD(取模操作对所有的数字类型都有效)得到。取模操作与整除相似,不同的是返回值为余数,而不是商。例如:5MOD2返回值1,9MOD10返回值9。ISTRUE操作只有在操作数为真(非零值)时返回真值。如果ISTRUE的值为零,保证返回-1,但是运算可以返回任意非零值。ISFALSE操作只有在操作数为假(零)的情况下返回真值。如果ISFALSE的值为零,ISFALSE保证返回值为-1,但是运算可以返回任意非零值。4在进行运算和赋值的时候,PowerBASIC不检测数字溢出或溢出错误,请参阅错误和错误捕获的相关章节以获得更多信息。操作符说明示例^求幂10^4-求反-16*乘45*19/浮点除45/19\整除45\19MOD求模45MOD19+加45+19-减45-192.字符串操作符串字符VB表示语法含义--------------------------------------------------------------------$NULCHR$(0)vbNullCharNull$BELCHR$(7)BellBEEP$BSCHR$(8)vbBack退格符$TABCHR$(9)vbTab水平Tab符$LFCHR$(10)vbLf换行符(无回车);$VTCHR$(11)vbVerticalTab垂直Tab符$FFCHR$(12)vbFormFeed换页符$CRCHR$(13)vbCr回车符(无换行)$CRLFCHR$(13,10)vbCrLf回车/换行符组合$EOFCHR$(26)End-of-File$ESCCHR$(27)Escape$SPCCHR$(32)空格$DQCHR$(34)双引号STRREVERSE$function-STRREVERSE$函数用途:颠倒字符串表达式中的内容。语法:s$=STRREVERSE$(sMain$)示例:a$=STRREVERSE$(powerbasic)返回:cisabrewopSTRINSERT$function-STRINSERT$函数5用途:将一个字符串插入到另一个字符串中的指定位置。语法:a$=STRINSERT$(sMain$,sNew$,position&)备注:返回一个包含sMain$的字符串,并且sNew$插入到新字符串中position$指定的位置。如果position&大于sMain&的长度,sNew&将附加到sMain$的尾部。字符串中第一个字符的位置为1。示例:a$=STRINSERT$(PowerBASIC,ful,6)返回:PowerfulBASICSTRDELETE$function-STRDELETE$语句用途:从字符串表达式中删除指定数量的字符。语法:s$=STRDELETE$(string_expression,start&,count&)备注:返回字符串表达式string_expression的一份拷贝,但是从start&位置开始的count&个字符已被删除。字符串表达式中的第一个字符的位置为1。参见:STRINSERT$,STRREVERSE$示例:a$=STRDELETE$(PowerBASIC,4,2)此时,变量a$中包含的字符为PowBASIC。MID$函数用途:返回文本的某个部分。语法:s$=MID$(string_expression,start&[,length&])备注:a$=MID$(PowerBASIC,4,2)'returnsera$=MID$(PowerBASIC,4)'returnserBASICa$=MID$(PowerBASIC,4,20)'returnserBASICa$=MID$(PowerBASIC,20)'returnsanullstringa$=MID$(1234567890,3,-4)'returns345678UCASE$函数用途:返回文本的大写字母。语法:s$=UCASE$(string_expression)备注:x$=UCASE$(Bewareofcats!)ResultBEWAREOFCATS!FORMAT$函数用途:返回格式化文本。6语法:x$=FORMAT$(num_expression[,[digits&|fmt$]])备注:A$=FORMAT$/FONT(123456,00\:00\:00)'12:34:56USING$函数用途:返回格式化文本。语法:sResult$=USING$(fmtmask$掩码,expr表达式[,expr[,...]])备注:a$=USING$(!,abc)'returnsaa$=USING$(Youowe$$#,.##,12345.67@)'returnsYouowe$12,345.67DIMpASBYTEPTRHOSTADDRlocalhostTOip&p=VARPTR(ip&)a$=USING$(#_.#_.#_.#,@p,@p[1],@p[2],@p[3])'returns127.0.0.1a$=USING$(&=#.##############,Pi,ATN(1)*4)'returnsPi=3.14159265358979a$=USING$(!,AX,BX,CX)'returnsABCa$=USING$($#.##_,,1,20,300,4)'returns$1.00,$20.00,$300.00,$4.00,a$=USING$($*=#####.##_,,1,20)'returns$======1.00,$=====20.00,BIN$函数用途:返回一个整数的二进制文本。语法:s$=BIN$(numeric_expression[,digits])备注:a$=BIN$(65535)'=1111111111111111STR$function-STR$函数用途:将数字转换成可以用来显示的字符串形式。语法:s$=STR$(数字表达式,[,位数])注释:STR$函数返回数字变量或表达式的字符串表现形式。位数是个可选的整型表达式,用来指示出现在结果中的数字的最大数。如果数字表达式大于等于0,STR$将添加空格前导符;如果数字表达式小于0,STR$将添加-前导符。句个例子,STR$(14)返回包含三个字符的字符串,第一个字符是空格,第二个是1,第三个是4。可以使用LTRIM$去掉字符串前边的空格。位数指定结果中数字的最大位数(1-18)。示例:如下代码可以显示变量a&的值,直接使用MSGBOXa&则在编译时会提示错误。FUNCTIONPBMAIN()ASLONGa&=2MSGBOXSTR$(a&)ENDFUNCTIONOCT$函数7用途:返回一个数值的八进制文本。语法:s$=OCT$(numeric_expression[,digits])备注:a$=OCT$(65535)'a$contains177777x&=VAL(&Q+a$)'Signedresult(-1)y&=VAL(&Q0+a$)'U
本文标题:PowerBASIC入门教程(第二部分)
链接地址:https://www.777doc.com/doc-5086462 .html