ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:31.14KB ,
资源ID:4714164      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4714164.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(安徽专升本冲刺班程序设计笔记整理.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

安徽专升本冲刺班程序设计笔记整理.docx

1、安徽专升本冲刺班程序设计笔记整理程序设计笔记:在VFP编程环境下,每个程序都以CLEAR(清屏)、 SET TALK OFF(对话关闭)两条语句打头,以SET TALK ON(对话打开)结尾。若题目没有明显要求的数据输入,可通过实例化添加具体输入数据得以验证(正式考试时可以忽略)。程序整体流程线索是:数据输入数据处理数据输出,三大部分组成。程序设计的解题思路: 分析题目确定输入内容(要处理的数据)和输出内容(处理后的数据)。(实例化验证) 将问题转换为数学问题或数学模型。 转换为计算机的解决方法。(算法)算法汇总:(算法实现中省略Clear等固定语句)1、两个变量值互换。设一个临时变量tem,

2、通过tem=x x=y y=tem完成。2、分段函数的判断,一般都是自变量和因变量的相互关系,对x的判断有相应的y取值与之对应。类似于初中方程式。(1)完成下面分段函数的计算,程序运行时用户从键盘输入一个数值X,在屏幕上输出Y值。 Input To XIf X0 Y=X2Else If X=0 Y=0 Else Y=-X2 EndIEndI?Y(2)某书店开展优惠售书活动,收费方法如下: 0.9x (x100) y= 0.8x (100x500) 其中:x表示原价,y表示实际收费。 0.7x (x500)试编写程序,要求从键盘输入x,计算输出y。Input To XIf X=100 Y=0.9

3、*XElse If X=500 Y=0.8*X Else Y=0.7*X EndIEndI?Y(3)计算分段函数 Input To XIf X0 Y=X+Sqrt(X2+1)Else Y=X-X3+3*XEndI?Y(4)假设邮费计算方法为:100克以内(含100克)收费5元,超过100克的部分每克加收0.2元。试编写程序,要求从键盘输入邮寄物品重量,并计算出邮费。Input To XIf X=100 Y=5Else Y=5+(X-100)*0.2EndI?Y(5)某商场为了促销,采用购物打折的办法。1) 在1000元以上者,按九五折优惠;2) 在2000元以上者,按九折优惠;3) 在3000

4、元以上者,按八五折优惠;4) 在5000元以上者,按八折优惠。 编写程序,输入购物款数,计算并输出优惠价。此处我们考虑隐含有1000元以下的情况,不打折Input To XIf X1000 Y=XElse If X2000 Y=0.95*X Else If X3000 Y=0.9*X Else If X=0 ? “在实数范围内有解”Else ? “在实数范围内无解”EndI3、累加计算。在循环体外对累加和变量初始化,在循环体内使用变量=变量+步长控制。 编程模板: CLEAR SET TALK OFF S=* &累加和变量开始值 P=* &累加和的通项式开始值 For I=* To * &循环

5、变量的范围,累加项个数 P=* &累加和的通项式或递推公式,难点! S=S+T &在其基础上累加 EndFor ?S &输出结果 SET TALK ON(1)求I=1+2+3+4+.+100 分析:循环变量 I:1 2 3 100 当前项值 P:1 2 3 100 通项公式 P=IS=0For I=1 To 100 S=S+IEndFor?S(2)试使用循环结构编程计算y=21+22+210,并求出结果 分析:循环变量 I:1 2 3 10 当前项值 P:21 22 23 210 通项公式 P=2IS=0For I=1 To 10 P=2IS=S+PEndFor?S(3)编程求s=1*2+3*

6、4+5*6+99*100的值,并输出结果。分析:循环变量 I:1 2 3 50 当前项值 P:1*2 3*4 5*6 99*100 通项公式 P=(2*I-1)*(2*I)S=0For I=1 To 10 P=(2*I-1)*(2*I)S=S+PEndFor?S (4)试使用循环结构编程计算y=21+22+210,并求出结果。分析:同题2(5)求 1+x+2x2+3x3+nxn分析:循环变量 I:1 2 3 n 当前项值 P:x 2x2 3x3 nxn (为了便于后面累加计算,我们从数列的第二个位置起认定为P的第一项,此时与循环变量的关系非常“完美”,但第一个位置的1必须先放到累加和变量中)

7、通项公式 P=I*xIS=1For I=1 To n P=I*xIS=S+PEndFor?S注:此题中变量n和x都是未知量,若需要验证可在程序头部添加对x和n的输入语句,但在考试时卷面只需要书写上述代码即可。(6)求1,-1/2,1/3,-1/4,1/5,-1/6。数列的前20项和分析:循环变量 I:1 2 3 20 当前项值 P:(+1)/1 (-1)/2 (+1)/3 (-1)/20 通项公式 P=(-1)*(I+1)/IS=0For I=1 To 20 P=(-1)*(I+1)/IS=S+PEndFor?S注:此题关键是找到正负号的变化与当前值的关系(-1)*(I+1)。(7)某班有45

8、名同学参加“专升本”考试。现要求从键盘输入全班一门课的成绩,并输出该课程的平均分、及格人数和及格率。分析:输入语句需要重复多次,放循环体内部,此时循环变量只起到控制循环次数的作用;求平均分前提是先求出总分;及格人数需要通过循环体内部的条件判断进行计数。S=0N=0For I=1 To 45 Input To XS=S+XIf X=60 N=N+1EndIEndFor?S/45,N,N/45(8)求S=1+(1+2)+ (1+2+3)+(1+2+3+10)分析:循环变量 I:1 2 3 10 当前项值 P:1 1+2 1+2+3 1+2+3+10 此时P的递推公式 P=P+I,我们所说的递推公式

9、是从前一项得到后一项,那么第二项由第一项得到,第三项由第二项得到,第一项的值应该由第零项得到,但没有所谓的第零项,我们只能通过公式P=P+I来反推当右边的P取什么开始值时,能得到第一项的值并赋给P,I为1,结果为1,所以P开始值取0S=0P=0 &这条语句是反推过来的For I=1 To 10 P= P+IS=S+PEndFor?S(9)求Sn=a+aa+aaa+aaaa 其中a是一个数字,a的个数为n,a和n由键盘输入分析:此类题目要先实例化,假设a是2,n是3,先将题目理解循环变量 I:1 2 3 当前项值 P:2 22 222 递推公式是 P=P*10+2那么不失一般性循环变量 I:1

10、2 3 n 当前项值 P:a aa aaa aaa(n个a)递推公式是 P=P*10+a和上题一样,我们通过公式P=P+I来反推当右边的P取什么开始值时,能得到第一项的值并赋给P,I为1,结果为a,所以P开始值取0Input To aInput To nS=0P=0 &这条语句是反推过来的For I=1 To n P=P*10+aS=S+PEndFor?S(10)求E的值(E=1+1/1!+1/2!+1/3!+1/N! 精确到1E-6)分析:首先确定循环类型,因为不知道要计算多少项值,我们一般使用条件型Do While循环,循环终止条件是当前项的大小要小于1E-6,此为计算机中精确的概念。循环

11、变量 I:1 2 3 当前项值 P:1/1! 1/2! 1/3! 递推公式是 P=P/I(为了便于后面累加计算,我们从数列的第二个位置起认定为P的第一项,此时与循环变量的关系非常“完美”,但第一个位置的1必须先放到累加和变量中)和上题一样,我们通过公式P=P/I来反推当右边的P取什么开始值时,能得到第一项的值并赋给P,I为1,结果为1,所以P开始值取1S=1P=1 &这条语句是反推过来的I=1 &Do While中循环变量的初值Do While P=1E-6 &终止条件是小于1E-6,那么进入循环的条件就是大于等于1E-6 P=P/IS=S+PI=I+1EndDo?S累加中通项公式的确定。一种

12、是与循环变量的关系如2*i-1,第二中是前后数的层级关系如Pn=Pn-1*10+2(数学公式),在计算机中实现就是P=P*10+2。4、判断条件的多样化。对应题目:字符判断(转换为ASCII值后进行)大写字母字符,小写字母字符,数字字符,字符串逐个字符判断键入一串字符(换行符结束),用循环语句将其中的大小写英文字母互换后输出分析:字符串中字符的剥离需使用函数SubStr,如SubStr(“Hello”,2,1)指从字符串“Hello”第二个位置取一个字符,那么结果就是字符e了。通过和循环变量结合使用SubStr(“Hello”,I,1)可以依次剥离出每个字符字符的链接操作类似于累加,字符串变量

13、S=S+P可以将当前字符P和之前的S串链接后赋值给S,形成一个新串Input To C &变量C为输入的字符串S=” &字符串初始化For I=1 To Len(C) W= SubStr(C,I,1) &变量W为当前剥离出来的字符If ASC(W)=65 .And. ASC(W)=97 .And. ASC(W)=122 P=Upper(W)EndIS=S+PEndFor?S输入一字符串,检查是否回文(回文是指正反序相同,如,LeveL)分析:设定标志变量,假设开始时标志为.T.,当不是回文的判断条件成立时就修改标志变量为.F.,最后依据标志变量的值来判断是否回文Input To C &变量C为

14、输入的字符串Flag=.T. &标志变量假设为.T.N=Len(C)For I=1 To Int(N/2) &回文比较次数是字符个数的一半 W= SubStr(C,I,1) &变量W为从前往后剥离出来的字符P= SubStr(C,N+1-I,1) &变量P为从后往前剥离出来的字符If WP Flag=.F. &当条件满足时意味着不是回文,修改标志变量 ExitEndIEndForIf Flag=.T. ?”YES”Else ?”NO”EndI输入一个字符串,将左边数字字符串转化为数值分析:从左边开始剥离字符串字符,判断为数字字符时,进行链接操作,最后通过Val函数来转换为数值Input To

15、C &变量C为输入的字符串S=” &字符串初始化For I=1 To Len(C) W= SubStr(C,I,1) If ASC(W)=48 .And. ASC(W)=57 S=S+WElse Exit & 若条件不满足,则当前字符是非数字字符,退出EndIEndForIf Flag=.T. ?”YES”Else ?”NO”EndI奇偶数,某数的倍数,整除(对该数进行取余运算)能被7整除的奇数,个位数字为6且能被3整除水仙花数(各位数字的立方和等于该数本身,如:153=13+53+33) 分析:数字剥离是通过X%10剥离出个位数字,Int((X/10))%10剥离出十位数字,Int((X/1

16、00))%10剥离出百位数字,依此递推。判断一个数是水仙花数并输出的代码是: Input To Xa=X%10b=Int(X/10)%10c=Int(X/100)%10If X=a3+b3+c3 ?XEndI那么,对一批数据的判断就是在上述程序上加上循环语句就可以了,For I=100 To 999 a=I%10b=Int(I/10)%10c=Int(I/100)%10If I=a3+b3+c3 ?IEndIEndFor素数(从1到自身之间的数一旦可以整除,则判断非素数,强行退出)200-300间素数分析:设定标志变量,假设开始时即为素数,标志为.T.,当不是素数的判断条件成立时就修改标志变量

17、为.F.,最后依据标志变量的值来判断是否素数素数的判定是从2开始到其自身-1,依次判断是否能被该数整除,条件成立时修改标志变量判断一个数是素数并输出的代码是: Input To X Flag=.T.For I=2 To X-1If X%I=0 Flag=.F.EndI EndFor If Flag=.T. ?X &输出该数 EndI那么,对一批数据的判断就是在上述程序上加上循环语句就可以了,输出200-300间素数For I=200 To 300 For J=2 To I-1If I%J=0 Flag=.F.EndI EndFor If Flag=.T. ?I EndIEndFor完全数(完数

18、指该数等于其不含本身的因子之和,如6=1+2+3)分析:完全数的判定是从1开始到其自身-1,依次判断是否能被该数整除,条件成立时求累加和,最后用判断该数是否和累加和相等。题目:求出输出1-100间完全数For I=1 To 100 S=0 For J=1 To I-1If I%J=0 S=S+JEndI EndFor If I=S ?I EndIEndFor同构数(恰好出现在其平方数的右端。如:376*376=141376,6*6=36)分析:将数转换为字符分离出来,先得到该数的数字位数,再通过对其平方数的右边取子串,判断后得出结果。如:Len(Str(376)结果为3;Right(Str(1

19、41376),3)从右边取三位就是”376”Input To X &X是数值变量W=X*X N=Len(Str(X)C=Right(Str(W),N) &C是字符串变量 If X=Val(C) ?XEndI 最大公约数(如:36和24的最大公约数为12)分析:承认其算法 X(较大数变量) Y(较小数变量) T(余数变量) 36 28 8 将较小数赋给X,余数赋给Y 28 8 4 8 4 0当余数为零时,此时较小数变量就是最大公约数的值Input To MInput To NX=Max(M,N)Y=Min(M,N) Do While X%Y 0 T=X%YX=Y Y=T EndDo ?Y注:若求

20、最小公倍数,只在这个基础上通过公式(M*N)/Y即可Fibonacci数(1,1,2,3,5,8)分析:递推公式的应用,每个值由前两个数来确定。f1=1f2=1?f1?f2 &先将第一个数和第二个数输出For I=3 To 20 f=f1+f2 f1=f2 f2=f ?f &不换行输出当前值 if I%4=0 &每输出四个数换行 ? endiEndFor5、最值计算(最大数/最小数)。方法一:当数的个数比较少时运用函数MAX或者MIN;(1)从键盘输入三个整数x、y、z,输出其中最小的数。Input To x Input To yInput To z ?Min(x,y,z)(2)整型变量a,b

21、,c中分别存放各不相同的数值。编写程序,实现a,b,c从大到小排序,并以此顺序输出排序后的三个数。m=an=bk=c a=Max(m,n,k)b=(m+n+k)-Max(m,n,k)- Min(m,n,k)c= Min(m,n,k) ?a,b,c方法二:求数组中最值(及下标),一般假设第一个元素为最值,(其下标也对应为最值元素下标),然后将该数与数组中其他元素逐一比较,若有比最值大或小的元素,马上就赋值,(同时也交换最值下标)。(1)在一个10元素的数组中,找到最大值及其下标。Dime a(10)nMax=a(1) &假设第一个数为最大数iMax=1For I=2 To 10 If a(I)n

22、Max &条件为真则赋值给nMax nMax=a(I) iMax=I EndI EndFor ?nMax,I(2)有一个35的矩阵,试编写程序,要求从键盘上输入数据,求其中数值最大的那个元素Dime a(3,5)For I=1 To 3 For J=1 To 5 Input To a(I,J) EndForEndFornMax=a(1,1) &假设第一个数为最大数For I=1 To 3 For J=1 To 5 If a(I,J)nMax &条件为真则赋值给nMax nMax=a(I,J) EndI EndForEndFor ?nMax(3)设有十位评委给某位选手打分,以去掉一个最高分和一个

23、最低分后的平均分作为该选手的成绩。试编写程序,要求从键盘输入评委的评分并存入到数组中,计算并输出选手成绩。Dime a(10)For I=1 To 10 Input To a(I)EndFornMax=a(1) &假设第一个数既为最大数也为最小数nMin=a(1)S=0For I=1 To 10 S=S+a(I) If a(I)nMax nMax=a(I) EndI If a(I)a(J-1) T=a(J) a(J)=a(J-1) a(J-1)=T EndI EndFEndF7、数组的应用。数组下标和循环变量的结合使用。数组类型编程模板: CLEARSET TALK OFF DIME A(N)

24、 &数组定义FOR I=1 TO N A(I)=* &数组输入ENDFORFOR I=1 TO N * * &数组处理ENDFORFOR I=1 TO N ?A(I) &数组输出ENDFOR(1)已有按从小到大的顺序排列的10 个数,现输入一个数,要求插入到数列中。插入后数列仍然按从小到大顺序排列。分析:数组插入一般都是从后往前进行INPUT “输入一个数:” TO XFOR i=10 TO 1 STEP -1 IF A(i)X A(i+1)=A(i) ELSE A(i+1)=X EXITENDIFENDF(2)有一个35的矩阵,试编写程序,要求从键盘上输入数据,求其中数值最大的那个元素,然后

25、输出该元素值及其所在的行号和列号FOR i=1 TO 3 FOR j=1 TO 5INPUT TO A(i,j)ENDFENDFnMAX=A(1,1)iMAX=1jMAX=1FOR i=1 TO 3 FOR j=1 TO 5IF A(i,j)nMAX nMAX=A(i,j) iMAX=i jMAX=jENDI ENDFENDF?”最大数及其行列号为:”, nMAX,iMAX,jMAX(3)数组a中存放10个由小到大排列的数,现从键盘输入一个数x,要求删除a数组中与其相同的数,并将后续的数依次前移,最后输出剩余的数分析:数组删除元素从前往后进行INPUT “输入一个数:” TO Xj=1 &数组

26、B的下标变量FOR i=1 TO 10 IF A(i)XB(j)=A(i) j=j+1 ENDIENDFFOR i=1 TO j-1 ?B(i)ENDF(4)编程求一个3*4数组的所有元素的平均值及最大值,并输出结果S=0FOR i=1 TO 3FOR j=1 TO 4 INPUT TO A(i,j)ENDFENDFnMAX=A(1,1)FOR i=1 TO 3FOR j=1 TO 4 IF A(i,j)nMAX nMAX=A(i,j) ENDIS=S+A(i,j)ENDFENDF?”计算结果为:”,S/12,nMAX(5)删除一维数组中重复元素。cleardime a(n),b(n),c(n)for i=1 to n b(n)=0endf &设置每个变量的标志位for i=1 to n-1 if a(i)=a(i+1) b(i+1)=1 &对标志位进行修改 endifendfj=1for i=1 to n if b(i

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1