您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > VFP6-综合程序设计(Y)
计算机教研室数据库应用(VFP6.0)jmxy.zjgsu.edu.cnJmxy.zjgsu.edu.cnCompanyLogo第四章程序设计控制结构程序设计基本结构1与表文件相关的程序设计2子程序与参数传递3综合程序设计4第三节综合程序设计第四章程序设计控制结构Jmxy.zjgsu.edu.cn杭商院计算机教研室Jmxy.zjgsu.edu.cnCompanyLogo综合程序设计•字符比较•字符转换•字符串拆合•整除•求余数•累加•累乘记录指针的定位数值字符表数值整除算法:求余数算法累加累乘涉及的主要函数及运算符:MOD(),INT(),%INT(X/Y)=X/YMOD(X,Y)=0X%Y=0X-Y*INT(X/Y)=0X-INT(X/Y)*YMOD(X,Y)X%YS=初值(0)循环开始(DOWHILE或FOR)S=S+A循环结束输出累加和S=初值(1)循环开始(DOWHILE或FOR)S=S*A循环结束输出累乘积DEMO-整除1给定正整数的所有因子FORI=2TON-1IFN%I=0?IENDIFENDFOR1.求因子的和?2.求因子的积?3.求因子的平方和?4.因子连乘式?P199T5-135.判断是否是完数?输出给定正整数的质数因子I=2DOWHILEI=NIFN%I=0??STR(I,6)N=INT(N/I)LOOPENDIFI=I+1ENDDO求质数因子!!DEMO-整除2最大公约数最小公倍数X=MIN(M,N)FORI=XTO1STEP-1IFM/I=INT(M/I)andN%I=0GYS=IEXITENDIFENDFOR既能被M整除又能被N整除的最大值Y=MAX(M,N)FORJ=1TOMIN(M,N)GBS=J*YIFGBS%X=0EXITENDIFENDFOR既能整除M又能整除N的最小值如何既求最大公约数又求最小公倍数?GBS=M*N/GYSDEMO-求余数1典型算法——求数值型数据的每个数字;书P178例题4.30数值末位包含5的个数去掉已取出的数2345105512345102345100123451234511123452345522342344223233222220R=MOD(N,10)N=INT(N/10)结束DEMO-求余数2如求给定正整数的每个数字之和,如1234:1+2+3+4=10算法:如果给定的不是正整数而是实数?如1234.567?解题思路:把实数变成正整数算法:DOWHILEN0R=MOD(N,10)S=S+RN=INT(N/10)ENDDO先求余数,再取整抛个位INPUTM=TOMN=MDOWHILEINT(N)NN=N*10ENDDO如果求的不是和,而是最大、最小数?包含指定数码的个数?DEMO-求极值问题求最大最小值给定一组数;(程序填空题DEMO1)从键盘输入n个数;(程序填空题DEMO1)2维数组;(程序填空题DEMO2)排序2个数的排序;3个数的排序;(P199T5-10)DEMO-累加、累乘累加、累乘的基本算法功能初值表达式数学表达式统计计数S=0S=S+1求和S=0S=S+X∑X累乘n!S=1S=S*In!累乘XnS=1S=S*XXn•典型例题:①偶数个数P199T5-8;②P193T3-3(讲)、P196T4-5、P199T5-10字符常用算法及函数字符比较•包含比较:$或AT()•精确比较:==或SETEXACTON字符转换•大小写:UPPER()、LOWER()•类型:VAL()、ASC()、CTOD()•取子串:LEFT()、RIGHT()、SUBSTR()•字符截取空格:TRIM()、ALLTRIM()字符连接:+-其他相关函数:LEN()DEMO-倒置字符串P181例题4.31,如ABCD--DCBA从字符由后向前一个一个取后连接;原字符串L第L个字符倒置后字符串ABCD4DDABCD3CDCABCD2BDCBABCD1ADCBA从字符由前向后一个一个取后连接;•S=R+Sp=len(ch)R=Substr(ch,L,1)S=S+RDEMO-数字字符转换P183例题4.33数字中文大写金额1023.44--1023.45--102345零壹贰叁肆伍陆柒捌玖分角元拾佰仟万拾佰仟亿数字末位金额单位中文大写1023455111伍分10234493肆角伍分1023375叁元肆角伍分102257贰拾叁元肆角伍分10019零贰拾叁元肆角伍分11311壹仟零贰拾叁元肆角伍分DEMO-其他字符密码翻译P194T4-1。读程序写结果DEMO日期转换成中文大写形式P200T5-12(上机已讲)图形输出问题图形的形状输出的内容(转换为字符型数据输出)九九乘法表P200T5-7、星花输出P202③、机考题一题表相关知识点表文件操作:USE表内容处理:REPLACE查询LOCATEFOR、SEEK统计COUNTSUMAVERAGE表内容浏览SCAN、DOWHILE!EOF()典型例题记录指针移动P80例题2.23查询P154例题4.7、P155例题4.8-4.9、P159例题4.15、4.16、4.17统计•P185例题4.33显示输出学生表中每个班级的男女同学的奖学金总额(经济09甲、国贸09甲讲)。其他4.3.3宏替换&、名表达式()和EVALUATE()的运用(P194T3-4)P186例4.34。显示指定表中的全部字段名,并由用户输入显示表信息的条件,最后列表显示满足条件的记录(字段数可以用函数FCOUNT()得到)。……ACCEPT请输入表名(扩展名略):TOTBNIFFILE(&TBN..DBF)USE(TBN)ELSEWAIT指定的表不存在!TIMEOUT5RETURNENDIF……ACCEPT请输入显示表信息的条件表达式:TOEXPRLISTFOREVALUATE(EXPR)程序填空题DEMO1SETTALKOFFCLEARINPUT“N=“TONINPUT“A=“TOASTOREATOX,Y(1)P=N-2(2)INPUT“B=“TOBS=S+B(3)X=BENDIF(4)Y=BENDIFENDFORR=S-X-Y?R/PSETTALKONA.S=AB.S=0C.S=ND.I=1A.FORI=1TONB.FORI=2TONC.DOWHILEI=ND.FORI=1TOAA.IFXBB.IFXYC.IFYBD.IFYXA.IFXBB.IFXYC.IFYBD.IFYX输入n个数,去掉最大、最小数,然后求平均值(练习P147-8)Refs:1.从键盘输入n个数,并输出最大和最小值;P204-3-12.从键盘输入3行4列的矩阵,查找并显示其中最大的元素及其下标。程序填空题DEMO219SETTALKOFFCLEARDIMEA(3,4)FORL=1TO3FORJ=1TO4INPUT“P=”TOA(L,J)ENDFORENDFORSTORE1TOX,Y(1)FORL=1TO3FORJ=1TO4IF(2)M=A(L,J)X=(3)Y=(4)ENDIFENDFORENDFORA.M=0B.M=A(X,Y)C.M=1D.M=A(L,J)A.A(L,J)MB.MA(L,J)C.A(X,Y)MD.MA(X,Y)A.X+1B.LC.Y+1D.JA.X+1B.LC.Y+1D.J从键盘输入3行4列的矩阵,查找并显示其中最大的元素及其下标。读程序写结果DEMO20********主程序*********ACCEPT'请输入字符串:'TOstr1?'原来的字符串为:',str1str2=convert(str1)?'倒置后字符串为:',str2*****字符串倒置函数******FUNCconvertPARAcon_str1ch=SPACE(0)&&附初值k=LEN(con_str1)&&取字符串长度DOWHILEk0ch1=SUBSTR(con_str1,k,1)ch=ch+ch1k=k-1ENDDOcon_str1=chRETURNcon_str1ENDFUNC提示:如果要将一个字符串改为另一个通常使用字符串的ASCII码实现如:对字符串加密,算法ASCII码+2E.g.Iamastudents.KcocuvwfgvuP153三-1(1)计算机教研室jmxy.zjgsu.edu.cn
本文标题:VFP6-综合程序设计(Y)
链接地址:https://www.777doc.com/doc-3804640 .html