专升本VF程序设计复习资料CH2算法.docx
- 文档编号:1615830
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:34
- 大小:23.09KB
专升本VF程序设计复习资料CH2算法.docx
《专升本VF程序设计复习资料CH2算法.docx》由会员分享,可在线阅读,更多相关《专升本VF程序设计复习资料CH2算法.docx(34页珍藏版)》请在冰点文库上搜索。
专升本VF程序设计复习资料CH2算法
CH2结构化程序设计语句和算法
一、顺序结构
1.求园的面积
Clear
Input“请输入园的半径:
”tor
S=pi()*r^2
?
”园的面积是:
”,s
2.鸡兔同笼问题
二、选择结构
2.1if
1.判断闰年
Clear
Input“请输入年份:
”toy
If(y%4=0andy%100<>0)ory%400=0
?
y,”是闰年!
”
Else
?
y,”是闰年!
”
endif
cancel
2.2docase
2.判断学生成绩等级
clear
input"请输入学生成绩:
"tox
ifx>100orx<0then
?
"输入成绩必须位于0-100之间"
else
docase
casex>=90
?
"等级为A"
casex>=80
?
"等级为B"
casex>=70
?
"等级为C"
casex>=60
?
"等级为D"
other
?
"等级为E"
endcase
endif
cancel
3.判断一个数是否是水仙花数。
clear
input"m="tom
x=int(m/100)
y=int((m%100)/10)
z=m%10
ifx^3+y^3+z^3=m
?
m,"是水仙花数"
else
?
m,"不是水仙花数"
endif
cancel
三、循环结构
3.1Dowhile循环
1.s=1+2+3….+100
Clear
I=1
S=0
Dowhilei<=100
S=s+i
I=i+1
Enddo
?
”s=”,s
cancel
3.2FOR循环
1.将上例用for语句实现
Clear
S=0
Fori=1to100
S=s+i
Next
?
”s=”,s
Cancel
2.求1-100奇数的和。
Clear
S=0
Fori=1to100step2
S=s+i
Next
?
”s=”,s
Cancel
3.求1-100偶数的和。
Clear
S=0
Fori=2to100step2
S=s+i
Next
?
”s=”,s
Cancel
4.求N!
=1×2×3×4…×N
Clear
Input“请输入n:
”ton
f=1
Fori=1ton
f=f*i
Next
?
”f=”,f
Cancel
5.求级数s=1+1/2-1/3+1/4+....
clear
s=1
d=1
input"输入N:
"ton
fori=2ton
s=s+d*1/i
d=-d
nexti
?
"s=",s
cancel
6.输出整数1-100,要求数据以5个为一组输出。
clear
fori=1to100
?
?
i
ifi%5=0
?
endif
next
cancel
7.求fibnocsi数列。
1,1,2,3,5,8,13,21。
。
。
,要求以5个位一组输出前20个数。
clear
f1=1
f2=1
*首先显示前两个数1,1
?
?
f1,f2
fori=3to20
f=f2+f1
?
?
f
f1=f2
f2=f
*以5个为一组显示
ifi%5=0
?
endif
nexti
cancel
8.求两个数(m,n,其中m>n)的最大公倍数和最小公约数。
采用辗转相除法:
m除以n,得余数r;如果r不等于0,则将n赋予m,r赋予n,再用m除以n,得余数r;依次类推,直到r=0为止,此时的n就是最大公约数。
M和n的乘积除以最大公约数就是最小公倍数。
Cancel
input"输入M:
"tom
input"输入N"ton
x=m
y=n
ifn=0then
?
"数据有错,不能为0!
"
exit
endif
r=mod(m,n)
dowhiler>0
m=n
n=r
r=mod(m,n)
enddo
?
"最大公约数是:
",n
?
"最小公倍数是:
",x*y/n
cancel
9.判断某个数是否是素数。
(除了1和它本身之外不能被任何一个整数所整除的自然数叫质数,除去2之外,其它质数都是奇数,又称为素数)
在程序设计中,经常要记录一些状态,作为判断的条件。
因此需要在程序中设置一些标志,通常标志是整型变量。
如:
设置变量f用于记录是否为素数,
f=0是素数;
f=1不是素数。
程序:
clear
input"m="tom
f=.T.
fori=2tom-1
ifm%i=0
f=.F.
exit
endif
next
iff=.T.
?
"yes"
else
?
"no"
endif
cancel
10.输出100-1000以内的所有素数,并计算这些素数之和。
(输出时按照每行5个数据方式输出)。
(在3.2中6题的基础上进行扩充)
clear
count=0
s=0
form=100to1000
f=.T.
fori=2tom-1
ifm%i=0
f=.F.
exit
endif
next
iff=.T.
?
?
m
count=count+1
ifcount%5=0
?
endif
endif
s=s+m
next
?
"s=",s
cancel
12、显示所有的水仙花数。
clear
form=100to999
x=int(m/100)
y=int((m%100)/10)
z=m%10
ifx^3+y^3+z^3=m
?
m,"yes"
endif
next
cancel
12、猴子摘桃问题。
已知猴子第一天摘了2个桃子,第二天摘的桃子是第一天的2倍多一个;以此类推,第n天摘了多少个桃子?
clear
input"请输入第几天:
"ton
x=2
fori=2ton
x=x*2+1
next
?
"共摘了:
",x
cancel
13、计算t=1!
+2!
+……+n!
(即求阶乘之和)
clear
input"n="ton
sum=0
fori=1ton
f=1
forj=1toi
f=f*j
next
sum=sum+f
next
?
"sum=",sum
Cancel
14、计算t=1!
+1/2!
+1/3!
……+1/n!
(即求阶乘之和)
clear
input"n="ton
sum=0
fori=1ton
f=1
forj=1toi
f=f*j
next
sum=sum+1/f
next
?
"sum=",sum
Cancel
15、穷举法:
百钱买百鸡问题。
clear
forx=1to19
fory=1to33
z=100-x-y
ifz%3=0
if5*x+3*y+z/3=100
?
x,y,z
endif
endif
next
next
cancel
16、设计1个程序,要求是:
(查找算法、统计、求和、找素数或质数)
(1)在键盘上输入1个不小于3的自然数N(例输入10),求出其不到第N个自然数中奇数之和,并输出结果
(2)输出1到第N自然数中所有质数的个数
clear
input"n="ton
s=0
x=0
ifn<3then
?
"请输入大于等于3的数"
else
fori=3tonstep2
s=s+i
next
form=2ton
f=.T.
fori=2tom/2
ifm%i=0
f=.F.
exit
endif
next
iff=.T.
x=x+1
endif
next
endif
?
"奇数和为:
",s
?
"质数个数为:
",x
cancel
17、从键盘随机输入一字符串,统计该字符串中字母字符,数字字符和其他字符出现的次数。
clear
input"请输入字符串:
"toa
x=0
y=0
z=0
fori=1tolen(a)
b=substr(a,i,1)
docase
caseupper(b)>="A"andupper(b)<="Z"
x=x+1
caseb>="0"a_ndb<="9"
y=y+1
otherwise
z=z+1
endcase
next
?
"字母:
",x
?
"数字:
",y
?
"其他字符",z
cancel
四、数组
1.1一维数组
1)定义:
Dimensionarr(n)
下标从1开始,
2)一维数组的赋值和输出
*利用键盘输入数据值
dimena(10)
fori=1to10
input"输入数据:
"toa(i)
next
fori=1to10
?
?
a(i)
next
cancel
*利用rand()函数随机产生10-99的随机整数
dimena(10)
fori=1to10
a(i)=int(rand()*(99-10+1)+10)
?
?
a(i)
next
1.将具有n个元素的一维数组的值按逆序重新存放。
clear
input"请输入元素个数:
"ton
dimena(n)
*数组元素赋初值
fori=1ton
input"输入数据:
"toa(i)
next
*输出数组元素值
fori=1ton
?
?
a(i)
next
fori=1toint(n/2)
temp=a(i)
a(i)=a(n-i+1)
a(n-i+1)=temp
next
*换行
?
fori=1ton
?
?
a(i)
next
cancel
2.从键盘输入10个数,从中找出最大和最小的数,以及它们的位置。
求最小数和其位置:
clear
dimena(10)
fori=1to10
input"输入数据:
"toa(i)
next
minx=a
(1)
minp=1
fori=2to10
ifminx>a(i)
minx=a(i)
minp=i
endif
next
?
"min=",minx
?
"position=",minp
cancel
求最大数和其位置:
clear
dimena(10)
fori=1to10
input"输入数据:
"toa(i)
next
maxx=a
(1)
maxp=1
fori=2to10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VF 程序设计 复习资料 CH2 算法