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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

程序设计基础专题一.docx

1、程序设计基础专题一程序设计基础专题(一)第一部 分 数学问题一、基本算法:数学数值问题的基本运算主要涉及到的算法有:累加、累乘、整除和求余数。1、 累加主要是通过循环变量来控制循环结构,一般有两个变量,一是循环变量I和累加值变量S。主要语句有:S=0 & 为累加合值初始化FOR I=初始值 TO 终止值 STEP 步长 & 或DO WHILE 循环体内语句系列S=S+F(I) ENDFOR & 或ENDDO ?S &输出累加合值S2、 累乘主要是通过循环变量来控制循环结构,一般有两个变量,一是循环变量I和累乘值变量S。T=1 & 为累乘值初始化FOR I=初始值 TO 终止值 STEP 步长

2、& 或DO WHILE 循环体内语句系列T=T*F(I) ENDFOR & 或ENDDO ?T &输出累加合值S3、 整除主要采用取整函数INT()、求余函数MOD()和求余运算符%。设X,Y均为整型数值表达式,判断X是否被Y整除的表达式的常用方法有:(1)INT(X/Y)=X/Y(2)MOD(X,Y)=0(3)X%Y=0(4)X-Y*INT(X/Y)=04、 求余数主要采用取整函数INT()、求余函数MOD()和求余运算符%。设X,Y均为整型数值表达式,求X被Y整除后余数的表达式的常用方法有: (1)X-INT(X/Y) (2)MOD(X,Y) (3)X%Y5、 两个变量值的置换对两个数的置

3、换,主要处理的是将两个变量的值进行互换。设有两个变量X,Y,通过中间变量T和赋值语句后,将X和Y变量值互换。T=XX=YY=T6、 求一组数的最大值和最小值设在数组A有10个元素,且都已赋值,现要求这10个元素中的最大值,可采用两两相互比较后再使用两变量值置换的语句来完成。其主要算法有:MAX=A(1) & 创建最大值变量MAX,并将A(1)赋值给MAXMIN=A(1) & 创建最大值变量MAX,并将A(1)赋值给MAXFOR I=2 TO 10 &将数组的每一个变量与MAX或MIN比较后,改变MAX和MIN的值 IF A(I)MAXMAX=A(I) ENDIF IF A(I)0 P=MOD(

4、N,10) 取某位的数码 ?”该数值从右往左第”+STR(I)+”位的数码为:”,P N=INT(N/10)IF N=0EXIT ENDIFENDDO10、判断一个数是否是一个正整数、奇数或偶数(1)正整数 IF INT(X)=X AND ABS(X)=X ?X,“是一个正整数!” ELSE ?X,“不是一个正整数!” ENDIF(2)奇、偶数 IF INT(X)=X AND INT(X/2)=X/2 ?X,“是一个偶数!” ESLE?X,“是一个奇数!” ENDIF二、 典型例题1、 求1到10所有自然数之和(程序运行后的结果是否是55)SET TALK OFFS=0FOR I=1 TO 1

5、0 S=S+IENDFOR?1到10之和为:,S &改成 ?1到10之和为:,S 行吗?请说明理由CLEARSET TALK ON问题:(1)求从1到100的所有奇数(或偶数)之和 (2)求从1到X的所有自然数之和,其中X的值可由用户通过键盘输入。 (3)求出从1到N之间所有整数的平方和并输出结果。 (4)上述程序采用DO WHILE ENDDO应如何编写?2、 求10!SET TALK OFFCLEART=0FOR I=1 TO 10 T=T*IENDFOR?10!为:,TSET TALK ON3、 求从正整数K到M值的阶乘之和,其中K和M值均由用户通过键盘输入。SET TALK OFFCL

6、EARINPUT K= TO K & 改成 ACCEPT K= TO K 行吗,请说明理由S=0FOR I=K TO M T=1 FOR J=1 TO I T=T*J ENDFOR S=S+TENDFORINPUT M= TO M? STR(K,2)+!+STR(M,2)+!=,SSET TALK ON 4、 给定程序:Y=X-X3/3!+X5/5!-X7/7!+其中表达式的项目有10项X值由用户通过键盘中输入,请求出Y的值SET TALK OFFS=0P=1FOR I=1 TO 10 K=2*I-1 FZ=XKFM=1 FOR J=1 TO K FM=FM*J ENDFORS=S+P*FZ/

7、FM P=-PENDFOR? Y的值为:,SINPUT X= TO XSET TALK ON问题:(1)利用公式SIN(X)= X-X3/3!+X5/5!-X7/7!+,直到最后一项的绝对值小于等于10-5为止。(2)利用公式ex=1+x+x2/2!+x3/3!+xn/n!,输入x和N,计算ex的近似值5、 素数问题输出从3到10以内的自然数中所有素数SET TALK OFFM=3DO WHILE M10 N=2 FOR N=2 TO M-1 DO WHILE NM IF IF INT(M/N)=M/N IF INT(M/N)=M/N EXIT EXIT ENDIF ENDIF ENDFOR

8、N=N+1 IF N=M ENDDO ?M IF N=M ENDIF ?M ENDIF M=M+1ENDDOSET TALK ON问题:(1)求出从1到100的所有素数的个数。 (2)求出从1到100的所有素数之和。 6、对输入的正整数,判别其中包含指定数码的个数(如2312132中包含数码2的个数为3)。SET TALK OFFINPUT “M=” TO M &输入正整数INPUT “N=” TO N &输入在正整数中包含的数码S=0 &采用累加DO WHILE .T. &采用永真循环方式 Y=MOD(M,10) IF Y=N S=S+1 ENDIF M=INT(M/10) IF M=0 E

9、XIT ENDIFENDDO?SSET TALK ON 7、从键盘中输入10个数,去掉一个最大数和最小数,然后求平均值SET TALK OFFCLEARINPUT “N=” TO NSTORE N TO MAX,MIN,SFOR I=1 TO 9 INPUT “N=” TO NIF MAXN MIN=N ENDIFS=S+NENDFOR?”平均值=”,(S-MAX-MIN)/8SET TALK ON问题:(1)从键盘中输入A,B,C3个数值,将它们从小到大排列后输出。 (2)对任意输入20个数,按从小到大进行排列。8、数组问题: 该程序主要实现对矩阵的转置 SET TALK OFF INPUT

10、 “N=” TO N DIME A(N,N) FOR I=1 TO NFOR J=1 TO N INPUT “A(“+STR(I,1)+”,”+STR(J,1)+”)=” TO A(I,J)ENDFOR ENDFOR FOR I=1 TO NFOR J=1 TO I T=A(I,J) A(I,J)=A(J,I) A(J,I)=TENDFOR ENDFOR SET TALK ON 问题:(1)课本P155页的程序阅读题第4题 (2)第二部分 字符信息处理一、 基本算法:1、 常用的字符处理函数(1) SPACE(N)(2) LEN(S)(3) SUBSTR(S,N1,N2)(4) C=C+P &

11、 C,P均为字符型变量(5) CHR(ASC(C)+N)(6) ALLTRIM(STR(N1,N2,N3)(7) STR(N1,N2,N3)(8) IIF(条件表达式,C1,C2)2、 字符串的粘合C=”ABCDE”字符串 &由用户输入初始化的字符串S=” 或 S=SPACE(0)L=LEN(C)FOR I=1 TO L S=S+SUBSTR(C,I,1) &改成 S=SUBSTR(C,I,1)+S 有何不同,ENDFOR? C+”-”+S3、 阿拉伯数字转换为中文大写数字INPUT “N=” TO NL=LEN(ALLTRIM(STR(N)C=”一二三四五六七八九” &C=”零壹贰叁肆伍陆柒

12、捌玖”S=”FOR I=1 TO LP=MOD(N,10)S=SUBSTR(C,2*I+1,2)+SN=INT(N/10)ENDFOR? ALLTRIM(STR(N)+”-”+S4、 图案的输出主要采用SPACE(N)来控制每行中的首字符在屏幕中的位置和字符间的间隔。采用STR(N)函数将数值型数据转换为字符型;采用SUBSTR(C,N1,N2)函数对字符串进行取子串。特殊图案采用CHR(ASC(C)+N)进行不同字符的输出,尤其是英文字母的输出。例:采用正直角三角形的形式输入九九乘法表FOR I=1 TO 9?SPACE(6*(9-I)FOR J=1 TO I ?STR(I,1)+”*”+S

13、TR(J,1)+”=”+STR(I*J,2)ENDFOR ENDFOR二、 典型例题1、 编写一个程序,显示输出给定的字符串表达式倒置字符串(包含数字字符串、英文字母字符串和汉字字符串)。 SET TALK OFFCLEARACCEPT 请输入字符串 TO CS=L=LEN(C)FOR I=1 TO L S=SUBSTR(C,I,1)+SENDFOR?C+-+SSET TALK ON2、 编写一个口令验证程序,要求有三次输入口令的机会,输入正确,显示“欢迎使用本系统”,否则显示“你无权使用本系统”。口令可采用固定字符串,也可以采用在已有的表文件读取相关的字段值。SET TALK OFFCLEA

14、RI=1DO WHILE I3 ?你无权使用本系统! ENDIFENDDOSET TALK ON 3、 编写一个程序,将数字日期转换成中文大写形式 SET TALK OFFCLEARINPUT 请输入日期 to RIQIY=YEAR(RIQI)M=MONTH(RIQI)D=DAY(RIQI)C=一二三四五六七八九S=FOR I=1 TO 4 P=MOD(Y,10) S=SUBSTR(C,2*P+1,2)+S Y=INT(Y/10)ENDFORS=S+年S=S+IIF(M10,SUBSTR(C,2*M+1,2),十+SUBSTR(C,2*MOD(M,10)+1,2)S=S+月DO CASE CA

15、SE D10 S=S+SUBSTR(C,2*D+1,2) CASE D=10 S=S+十 CASE D+SSET TALK ON 4、 编写一个程序,将输入的金额采用中文大写形式输出。 SET TALK OFFCLEARINPUT 请输入金额 TO JINERP=JINER*100M=ROUND(P,0)C1=零壹贰叁肆伍陆柒捌玖C2=分角元拾佰仟万拾佰仟亿拾佰仟I=0C=SPACE(0)DO WHILE .T. N=MOD(M,10) C=SUBSTR(C1,2*N+1,2)+SUBSTR(C2,2*I+1,2)+C I=I+1 M=INT(M/10) IF M=0 EXIT ENDIFEN

16、DDO? STR(JINER,19,4)+-+CSET TALK ON 5、阅读程序,写出程序运行的结果:主要是图案的输出,(1) 数字图案的输出:采用数组形式。SET TALK OFFCLEARINPUT N= TO NDIME A(N,N)P=NDO WHILE N0 A(N,N)=1 A(N,1)=1 N=N-1ENDDOFOR I=3 TO P FOR J=2 TO I-1 A(I,J)=A(I-1,J-1)+A(I-1,J) ENDFORENDFORFOR I=1 TO P ?SPACE(3*(P-I+1) FOR J=1 TO I ?STR(A(I,J),3) ENDFOR ?EN

17、DFORSET TALK ON(2) 字母图案的输出:采用CHR(ASC(C)+N)函数。 SET TALK OFFCLEARINPUT N= TO NFOR I=1 TO N ?SPACE(N-I+1) FOR J=1 TO 2*I-1 ?CHR(ASC(A)+I-1) ENDFORENDFORFOR P=N-1 TO 1 STEP -1 ?SPACE(N-P+1) FOR K=1 TO 2*P-1 ?CHR(ASC(A)+P-1) ENDFORENDFORSET TALK ON第三部分 表文件信息处理一、 基本函数1、 宏替换:&2、 名称表达式:(变量名)3、 FILE(S):判断文件是

18、否存在,若存在,该函数返回.T.,否则返回.F.。4、 FOUND()函数一般与记录查找命令结合使用。5、 FCOUNT():表示当前表的字段数6、 FSIZE:表示当前表的字段总长度7、 RECNO():返回当前表的当前记录号8、 RECCOUNT():返回当前表的总记录数9、 DELETE():若当前记录已作删除标记,该函数返回.T.,否则返回.F.10、 BOF()或EOF():用来测试表文件开始状态或结束状态。11、 SET FILTER TO 逻辑表达式二、 基本算法与典型例题1、 文件的查询、打开、关闭和删除SET TALK OFFCLEARDO WHILE .T. ACCEPT

19、”请输入要删除的表文件名(扩展名略):” TO FILENAME FILENAME=TRIM(LTRIM(FILENAME)+”.DBF” IF !FILE(FILENAME) &判断文件是否存在 ACCEPT “该文件不存在!继续吗?(Y/N)” TO YN IF UPPER(YN)=”N” EXIT ENDIF ELSE USE (FILENAME) &打开表文件 LIST WAIT “是这个文件吗?(Y/N)” TO YN IF LOWER(YN)=”y” USE &关闭表文件 DELETE FILE &FILENAME &删除表文件 EXIT ELSE WAIT ”继续吗?(Y/N)”

20、 TO YN IF LOWER(Y/N)=”n” USE EXIT ENDIF ENDIF ENDIFENDDOSET TALK ON问题:阅读和理解课本P103中的程序2、 表文件内的字段的添加、删除和查询(1)添加新记录SET TALK OFFCLEARDO WHILE .T. ACCEPT 请输入学生学号: TO XH ACCEPT 请输入学生姓名: TO NAME INPUT 请输入性别(逻辑型): TO XB INPUT 请输入出生年月 TO DATE INPUT 请输入学生奖学金 TO JXJ USE 学生 APPEND BLANK REPLACE 学号 WITH XH,姓名 WI

21、TH NAME,性别 WITH XB,出生年月;WITH DATE,奖学金 WITH JXJ WAIT 是否继续输入学生信息(Y/N) TO YN IF UPPER(YN)=Y LOOP ELSE EXIT ENDIFENDDOSET TALK ON (2)删除指定的记录SET TALK OFFCLEARDO WHILE .T. ACCEPT 请输入要删除的学号 TO XH USE 学生 LOCA FOR 学号=XH IF !FOUND() ?你指定的学生并不存在! ELSE DELE SET DELETE ON ENDIF WAIT 是否继续(Y/N) TO YN IF LOWER(YN)=

22、Y LOOP ELSE EXIT ENDIFENDDOSET DELETE OFFUSESET TALK ON(3)查询记录SET TALK OFFCLEARACCEPT 请输入学生学号 TO XHUSE 成绩LOCA FOR 学号=XHDO WHILE !EOF() DISP CONTINUEENDDOSET TALK ON3、 统计字段数、显示字段名。SET TALK OFFCLEARACCEPT 请输入表文件名(扩展名略) TO FILENAMEFILENAME=FILENAME+.DBFIF !FILE(FILENAME) ?你所指定的表文件在当前文件夹内并不存在!ELSE USE (

23、FILENAME) FOR I=1 TO FCOUNT() ?FIELDS(I) ENDFOR ?”该表文件共有”+STR(RECCOUNT()+”条记录” ACCEPT 请输入查询条件 TO EXPR SET FILTER TO &EXPR DISP ALL COUNT TO P FOR !DELETE() ?”共查询到”+STR(P)+”到符合条件的记录” SET FILTER TO USEENDIFSET TALK ON4、 录中某字段值的改变(REPLACEWITH)为指定的学生的奖学金增加50元SET TALK OFFCLEARYN=YUSE 学生DO WHILE UPPER(YN)

24、=Y &采用永真循环结构 ACCEPT 请输入学生学号 TO XH LOCA FOR 学号=XH REPL 奖学金 WITH 奖学金+50 &使用REPLACEWITH语句 修改指定记录的字段。 DISP WAIT 是否继续(Y/N) TO YNENDDOSET TALK ON5、 制表结构、表内容的复制和大量数据追加SET TALK OFFCLEARUSE 学生 IN 1IF FILE(STUDENT.DBF) DELE FILE STUDENT.DBFENDIFCOPY STRU TO STUDENTUSE STUDENT IN 2SELE 2APPEN FROM 学生 FOR 性别DIS

25、P ALLUSE SELE 1USESET TALK ON6、 用SCATTER TO 和GATHER FROM命令对表进行操作。SET TALK OFFCLEARDIME A(7) &定义一个一维七元素的数组变量IF FILE(STUD.DBF) &判断文件是否存在,若存在则删除该文件 DELE FILE STUD.DBFENDIFUSE 学生 IN 1 &在第一个工作区打开表文件学生.DBFSELE 1LOCA FOR 奖学金=50 &查找奖学金在50元以上的记录COPY STRU TO STUD &将学生表结构复制到STUD.DBF中.USE STUD IN 2 &在第二个工作区中打开表文件STUD.DBFDO WHILE !EOF() SELE 1 SCATTER TO A &将学生.DBF中的记录读到数组A中. SELE 2 APPEND BLANK GATHER FROM A &将数组A中各元素的值写到STUD.DBF对应的字段中 SELE 1 CONTINUEENDDOSELE 2DISP ALLUSE SELE 1U

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

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