一级程序(沙老师)vfp

上传人:第*** 文档编号:34618665 上传时间:2018-02-26 格式:DOC 页数:15 大小:91.50KB
返回 下载 相关 举报
一级程序(沙老师)vfp_第1页
第1页 / 共15页
一级程序(沙老师)vfp_第2页
第2页 / 共15页
一级程序(沙老师)vfp_第3页
第3页 / 共15页
一级程序(沙老师)vfp_第4页
第4页 / 共15页
一级程序(沙老师)vfp_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《一级程序(沙老师)vfp》由会员分享,可在线阅读,更多相关《一级程序(沙老师)vfp(15页珍藏版)》请在金锄头文库上搜索。

1、1第一部分:程序入门一级一、选择结构( IF- ELSE - ENDIF)语句格式:IF条件语句序列 1 ELSE语句序列 2ENDIF说明:IF 和 ENDIF 必须配对使用,而 ELSE 可选。三个语句应各占一行。若省略 ELSE 子句,条件为真时,则执行语句序列 1 ,然后再执行 ENDIF 后的语句;否则,若条件为假,即执行 ENDIF 后的语句。二、循环结构1、条件循环:语句格式:DO WHILE 条件表达式语句序列 1LOOP语句序列 2 EXIT 语句序列 3 ENDDO说明:系统执行该语句时,先测试条件表达式的值,若为真,则执行循环体,在循环体中修改循环条件,直到条件为假时,脱

2、离循环,执行循环体 ENDDO 后的语句。若遇到LOOP 语句,则直接返回执行 DO 语句,测试条件以决定是否继续循环。若执行循环体时遇到 EXIT 语句,则不执行下面的语句,直接跳出循环,执行 ENDDO 后面的语句。注意:DOWHILE必须和 ENDDO 配合使用,两者缺一不可,DO WHILE 语句前一定要有条件变量的初始值。2、计数循环FOR 循环变量 =循环初值 TO循环终值STEP步长语句序列 1LOOP语句序列 2EXIT语句序列 3ENDFOR/NEXT说明:使用和 DO WHILE 基本一致,注意步长和 ENDFOR 语句。三、程序举例:A. 简单整除,求和求个数。Eg:求出

3、10,100 内所有能被 2 整除的整数的和(2530),个数 (46)set talk offclearn=0 &设置计数变量s=0 &设置求和变量for i=10 to 100if mod(i,2)=0 n=n+1 &满足条件计数变量加 1 s=s+i &满足条件,求和变量增加endif2endfor? n,sset talk onreturn A1.求出10,100 内所有能被 7 和 9 中至少一个数整除的整数的个数(22),和(1250).A2.求出10,100 内所有能被 7 但不能被 9 整除的整数的个数(12), (665)A3.求出10,100 内所有能被 7 和 9 中的一

4、个且只有一个数整除的整数的个数(21),(1187)A4.编写程序,求出 17000 以内能被 3 或者 7 整除的数的个数(3000) 。A5. 编写程序,求1,500既能被 6 整除又能被 7 整除的数之和。(2772)A6.求前1,100 内能被 6 或 8 整除的所有自然数的平方根的和(将第 1 位小数四舍五入,结果只保留整数) 。 (162)*A7.分子分母为正整数,分子小于分母的分数称为真分数。对于分数的分子分母取值范围为 50,90 且分母能被 3 整除、分子能被 5 整除的真分数共有多少个 . (63)A8.将大于 1000 且能被 3 和 5 中至少一个数整除的所有整数按从小

5、到大顺序排列后,求前面 20 个数之和。 (20465)set talk off clear k=1 s=0 &设置求和变量x=1000 do while k650ExitEndifEndf?sC1: 编写程序,求出 1 到 5000 之间的能被 7 整除的前若干个数之和,当和值大于等于1500 时退出并输出和值。1617C2: 编写程序,已知:S=2+4+8+16+32+ ,求 S 不大于 980 的最大值。510Set talk offS=0For I =1 to 1000X=2*iS=s+x?x,sIf s980Exit EndifEndf?s-xC3: 编写程序,已知:S=1+3+5+

6、7+9+ ,求 S 不大于 1000 的最大值。961C4: 编写程序,已知:S=2+4+8+16+32+ ,求 S 不大于 9000 的最大值。8190C5 . 已知数列: 1,2,4,7,11,16,,其规律是相邻两项之差依次是 1,2,3,4,5,。试求出此数列中大于 5000 的最小的项。5051C6求出 50 以内最大的自然数 n,使得从 1 开始的连续 n 个自然数的倒数之和小于3.5。 (18)set talk offclears=0for n=1 to 50s=s+1/n &先求倒数再求和if s=3.5exit &退出循环endifendfor? n-1 &为什么?retur

7、n C7: 求出 50 以内最小的自然数 n,使得从 1 开始的连续 n 个自然数的倒数之和大于 3.6 (21)C8: 求出 50 以内最小的自然数 n,使得从 1 开始的连续 n 个自然数的立方和小于 20000 (16)4C9.求出 50 以内最大的自然数 n,使得从 101 开始的连续 n 个奇数之和小于 2000。(17)set talk offclears=0for n=1 to 50a=99+2*ns=s+aif s2000exitendifendfor? n-1 return C10. 求出 100 以内使得算式 1/(1*2)+1/(2*3)+1/(n*(n+1)的值小于 0

8、.952 的最大的自然数 n。 19C11. 某国在 2000 年时人口总数为 1 亿,若以每年 3%的速度递增,试求出至少要到哪一年该国人口总数才会翻一翻。2024set talk offclears=1for n=2001 to 2100s=s*1.03if s=2 &应改为 if s=2loop &应改为 exitendifendfor? nset talk onreturnC12. 某国今年的人口总数为 1 亿,若以每年 4%的速度递增,试求出至少要再过几年该国人口总数才会翻一翻。18C13.一球从 100 米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一高度的 3

9、/4 倍,试求出最小的自然数 n,使得此球从开始下落至第 n 次着地时在垂直方向所经过的总路程超过 678 米。13set talk offclearh=100s=0 应改为: s=100for n=2 to 100h=h*3/4s=s+h 应改为: s=s+2*hif s678exitendif endfor? nset talk onreturnC14 . 一球从 100 米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一高度的 3/4 倍,试求出最大的自然数 n,使得此球从开始下落至第 n 次着地时在垂直方向所经过的总路程不超过 590 米。65第二部分:算法举例D 类

10、:多循环控制穷举法:穷举法就是将所有可能的方案都一一测试,找出其中符合指定要求的。Eg.把一张一元钞票,换成一分、二分和五分硬币,每种至少 1 枚,问有多少种方案?(461)set talk offclean=0for yi=1 to 100 & 1 分的最少 1 枚,最多 100 枚。for er=1 to 50 for wu=1 to 20if yi+er*2+wu*5=100n=n+1endifendforendforendfor? nset talk onreturnd1.把一张一元钞票,换成一分、二分和五分硬币,每种至少 1 枚,问兑换后硬币总数最多的与硬币总数最少的枚数之差是多少?

11、(73)d2.把一张一元钞票,换成一分、二分和五分硬币,每种至少 1 枚,问兑换后其中二分的硬币恰有 20 枚的方案共有多少种? (11)d3.有 60 个学生一起买小吃,共花钱 100 元,其中每个大学生花 3 元,每个中学生花 2 元,每个小学生花 1 元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为 0 的)? 19D4.有 5 羊 4 犬 3 鸡 2 兔值钱 1496,4 羊 2 犬 6 鸡 3 兔值钱 1175,3 羊 1 犬 7 鸡 5 兔值钱958,2 羊 3 犬 5 鸡 1 兔值钱 861,求兔值多少钱?(鸡 13, 兔 29 犬 121, 羊 177)(修改并

12、调试下列程序)set talk offfor y=1 to 300for c=1 to 400for j=1 to 500for t=1 to 400if 5*y+4*c+3*j+2*t=1496 and 4*y+2*c+6*j+3*t=1175;3*y+1*c+7*j+5*t=958 and 2*y+3*c+5*j+1*t=861? y,c,j,tendifendfendfendfendfset talk onE 类:简单位数运算Eg:编写程序,求三位数的奇数中,所有各位数字之和是 15 的倍数的数的和。19731Set talk off6S=0For I=100 to 999A=int(I

13、/100)B=int(mod(I,100)/10)C=mod(I,10)If mod(I,2)=1 and mod(a+b+c,15)=0S=s+IEndifEndf?se1: 编写程序,求三位数的奇数中,所有各位数字之和是 12 的倍数的数的个数。38e2: 编写程序,求三位数的偶数中,所有各位数字之和是 15 的倍数的数的个数。34e3: 编写程序,计算在 050 的范围内有多少个数,其每位数的乘积小于每位数的和。26e4: 编写程序,计算 1000 以内有多少个这样的数,其个位数为 6 且该数能被 9 整除。11e5: 编写程序,统计 200400 之间的所有满足三个数字之积为 42,三

14、个数字之和为 12 的数的个数 4e6: 编写程序,求四位数的偶数中,所有各位数字之和是 24 的倍数的数的个数。187set talk offn=0for I=1000 to 9999a=int(i/1000)b=int(mod(I,1000)/100)c=int(mod(I,100)/10)d=mod(I,10)if mod(I,2)=0 and mod(a+b+c+d,24)=0n=n+1endifendf?ne7: 编写程序,求四位数的奇数中,所有各位数字之积(且不为 0)是 125 的倍数的数的和。161095e8: 编写程序,求在四位数的偶数中,所有各位数字之积(且不为 0)是 1

15、8 的倍数的数的和。8638596e9: 编写程序,计算 10010000 以内个位上的数小于百位上的数的所有数之和。23314500(改错并调试下列程序)set talk offclean=100for i=100 to 10000bw=mod(i,1000)gw=mod(i,10)if gwxmin1=xendifendifendfor? max1+min1set talk onreturnH 类:位数及多条件运算Eg: 编写程序,求满足下列条件的所有四位数 ABCD 的个数,该四位数是 8 的倍数,且A+B=B+C,即第 1 位数加上第 2 位数等于第 2 位数加上第 3 位数。110s

16、et talk offn=0for I=1000 to 9999a=int(i/1000)b=int(mod(I,1000)/100)c=int(mod(I,100)/10)d=mod(I,10)if mod(I,8)=0 and a+b=b+c n=n+1endifendf?nh1: 编写程序,求满足下列条件的所有四位数 ABCD 的个数,该四位数是 18 的倍数,且C=7,A+B=C+D,即第 1 位数加上第 2 位数等于第 3 位数加上第 4 位数。9h2: 编写程序,统计 10009999 之间的所有满足以下条件的四位数的个数。该四位数是一个完全平方数,且其第 1 位与第 3 位数字之和为 10,第 2 位与第 4

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号