资源描述:
《专升本-计算机课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序设计教程VisualFoxproVisualFoxPro的数据、函数及其运算本章知识要点函数强化各种判断语句。各种循环语句计划课时:3课时。一、函数强化(1)取x的整数部分int(x)(2)取x的小数整数x-int(x)(3)取n的个位数y=n%10(4)取n的十位数Y=int(n/10)%10t=int(n/10)y=t%10推广(5)取n的百位数Y=int(n/100)%10t=int(n/100)y=t%10二、各种判断语句(1)判断N是否为偶数(即是2的倍数)Ifn%2=0?n,”是偶数”endif(2)判断N是否为奇数(即不是2的倍数)Ifn%2=1?n,”是奇数”e
2、ndifIfint(n/2)=n/2?n,”是偶数”endifIfint(n/2)<>n/2?n,”是奇数”endif或者或者(3)判断N是否为100的倍数Ifint(N/100)=N/100?n,”是100的倍数”endif推广(4)判断N是否为M的倍数Ifint(N/M)=N/M?n,”是M的倍数”endif推广(5)判断Y是否为闰年分析:闰年是4的倍数,但不是100的倍数;或者是400的倍数。Ifint(Y/4)=Y/4.and.int(Y/4)<>Y/4.or.int(Y/400)=Y/400?Y,”是闰年”Else?Y,”不是闰年”endif推广(6)判断三位数m是否为水
3、仙花数分析:水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如:153是一个3位数,1^3+5^3+3^3=153,四位数1634也是。P8,书上的写法不严谨。因为x=int(m/100)取百位数时,只对三位数有效。x=int(m/100)%10&&取百位数y=int((m/10)%10)&&取十位数z=m%10&&取个位数ifx^3+y^3+z^3=m?m,”是水仙花数”else?m,”不是水仙花数”endif判断三位数m是否为水仙花数的严谨写法(7)求自然数n(n>0)的位数个数*假如:n=123456789c=0&&用于记录位数个数dowhile
4、n<>0ifn/10<>0&&表明个位存在c=c+1n=int(n/10)endifenddo?c(8)输出自然数n(n>0)的位数clearinput"请输入n"tondowhilen<>0ifn/10<>0c=n%10&&取个位数?cn=int(n/10)&&去掉个位数endifenddocancel切记能用for——endfor循环,尽量用for——endfor实在不知道循环次数,才采用dowhile——enddo循环三、各种算法1、加法格式:s=0Fori=1to100s=s+iEndfor格式:s=0Fori=1toNs=s+iEndfor扩展到N(1)求1到100的和(
5、2)求1到100的奇数和(3)求1到100的偶数和(4)求级数s=1+1/2-1/3+1/4-1/5+…..clears=1input"输入n:"tonfori=2tons=s+(-1)^i*1/iendfor?"s=",scancel请补充在书上P9-5分析:从第二项开始用for循环求和,分母为奇数,前面的符号为负.2、乘法格式:s=1Fori=1to100s=s*iEndfor格式:s=1Fori=1toNs=s*iEndfor扩展到N(1)求1到100的积(即100的阶乘)(2)求1到100的奇数积(3)求1到100的偶数积3、斐波拉西(fibnocsi)数列斐波拉西数列的定
6、义如下:当n=1时,fin(n)=1当n=2时,fin(n)=1当n>=3时,fin(n)=fib(n-1)+fib(n-2)即后一项是前两项之和求斐波拉西数列,1,1,2,3,4,8,13,21,34……,要求以5个为一组输出前20个数。输出格式说明f(1)f(2)f(3)f(4)f(5)f(6)f(7)f(8)f(9)f(10)f(11)f(12)f(13)f(14)f(15)f(16)f(17)f(18)f(19)f(20)以5个为一组输出:每当输出5个元素后,就输出一个换行符。cleardimef(20)f(1)=1f(2)=1fori=3to20f(i)=f(i-1)+f
7、(i-2)endforfori=1to20??f(i)ifi%5=0&&判断是否为5的倍数?endifendforcancel4、求m和n的最大公约数采用辗转相除法:m除以n,得余数r;如果r不等于0,则将n赋予m,r赋予n,再用m除以n,得余数r;依次类推,直到r=0为止,此时的n就是最大公约数。clearinput"输入m:"tominput"输入n:"ton&&m,n的值会变化,先保存下来x=my=nifn=0?"数据有错,不能为0!"exitendifr=mo