程序设计基础专题一Word文件下载.docx
- 文档编号:16854033
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:21
- 大小:21.87KB
程序设计基础专题一Word文件下载.docx
《程序设计基础专题一Word文件下载.docx》由会员分享,可在线阅读,更多相关《程序设计基础专题一Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
MAX
MAX=A(I)
ENDIF
IFA(I)<
=MIN
MIN=A(I)
ENDFOR
?
MAX,MIN&
输出最大值和最小值
7、求两个数的最大公约数和最小公倍数
用2至这两个数的最小值之内任何一个数作为一个循环变量去除这两个数,若能找到一个数能同时被这两个数整除。
则这个数就是他们的最大公约数,而这两个的乘积除以最大公约数后得到的值就是这两个数的最小公倍数。
设有两个变量X,Y,中间变量I,主要的算法有:
N=MIN(X,Y)
FORI=NTO1STEP–1
IFX/I=INT(X/I)ANDINT(Y/I)=Y/I
GYS=I
EXIT
ENDIF
?
”最大公约数为:
”,GYS
”最小公倍数为:
”,X*Y/GYS
8、判断X是否是素数(质数、完数)
素数:
除被1和本身整除外不能被其他数整除。
用2至X之内的任一数去除X,若找到一个数能被X整除,则表示X不是素数,否则X是一个素数。
常用算法:
FORI=2TOX-1
IFX%I=0或INT(X/I)=X/I或MOD(X,I)=0
IFI=X
X,“是一个素数”
ELSE
X,“不是一个素数”
9、从十进制整数中取出数码
将该数值除10后取余数,可得到该数值中的个位数码,然后用该数值除以10后的商去替代该数值,再除以10取其余数,得到十位数数码,依次类推,直到得到的商为零为止。
设X是一个整数,其常用的得法有:
I=1
DOWHILEN>
P=MOD(N,10)取某位的数码
?
”该数值从右往左第”+STR(I)+”位的数码为:
”,P
N=INT(N/10)
IFN=0
EXIT
ENDDO
10、判断一个数是否是一个正整数、奇数或偶数
(1)正整数
IFINT(X)=XANDABS(X)=X
X,“是一个正整数!
”
ELSE
X,“不是一个正整数!
(2)奇、偶数
IFINT(X)=XANDINT(X/2)=X/2
X,“是一个偶数!
ESLE
X,“是一个奇数!
二、典型例题
1、求1到10所有自然数之和(程序运行后的结果是否是55)
SETTALKOFF
S=0
FORI=1TO10
S=S+I
"
1到10之和为:
S&
改成?
S行吗?
请说明理由
CLEAR
SETTALKON
问题:
(1)求从1到100的所有奇数(或偶数)之和
(2)求从1到X的所有自然数之和,其中X的值可由用户通过键盘输入。
(3)求出从1到N之间所有整数的平方和并输出结果。
(4)上述程序采用DOWHILE……ENDDO应如何编写?
2、求10!
T=0
T=T*I
10!
为:
T
3、求从正整数K到M值的阶乘之和,其中K和M值均由用户通过键盘输入。
INPUT"
K="
TOK&
改成ACCEPT"
TOK行吗,请说明理由
FORI=KTOM
T=1
FORJ=1TOI
T=T*J
ENDFOR
S=S+T
M="
TOM
STR(K,2)+"
!
+…"
+STR(M,2)+"
="
S
SETTALKON
4、给定程序:
Y=X-X3/3!
+X5/5!
-X7/7!
+……
其中表达式的项目有10项
X值由用户通过键盘中输入,请求出Y的值
P=1
K=2*I-1
FZ=X^K
FM=1
FORJ=1TOK
FM=FM*J
S=S+P*FZ/FM
P=-P
"
Y的值为:
X="
TOX
(1)利用公式SIN(X)=X-X3/3!
+……,直到最后一项的绝对值小于等于10-5为止。
(2)利用公式ex=1+x+x2/2!
+x3/3!
+……+xn/n!
,输入x和N,计算ex的近似值
5、素数问题
输出从3到10以内的自然数中所有素数
M=3
DOWHILEM<
10
N=2FORN=2TOM-1
DOWHILEN<
MIFIFINT(M/N)=M/N
IFINT(M/N)=M/NEXIT
EXITENDIF
ENDIFENDFOR
N=N+1IFN=M
ENDDO?
M
IFN=MENDIF
M=M+1
(1)求出从1到100的所有素数的个数。
(2)求出从1到100的所有素数之和。
6、对输入的正整数,判别其中包含指定数码的个数(如2312132中包含数码2的个数为3)。
INPUT“M=”TOM&
输入正整数
INPUT“N=”TON&
输入在正整数中包含的数码
采用累加
DOWHILE.T.&
采用永真循环方式
Y=MOD(M,10)
IFY=N
S=S+1
M=INT(M/10)
IFM=0
S
7、从键盘中输入10个数,去掉一个最大数和最小数,然后求平均值
INPUT“N=”TON
STORENTOMAX,MIN,S
FORI=1TO9
INPUT“N=”TON
IFMAX<
N
MAX=N
IFMIN>
MIN=N
S=S+N
”平均值=”,(S-MAX-MIN)/8
问题:
(1)从键盘中输入A,B,C3个数值,将它们从小到大排列后输出。
(2)对任意输入20个数,按从小到大进行排列。
8、数组问题:
该程序主要实现对矩阵的转置
SETTALKOFF
DIMEA(N,N)
FORI=1TON
FORJ=1TON
INPUT“A(“+STR(I,1)+”,”+STR(J,1)+”)=”TOA(I,J)
FORJ=1TOI
T=A(I,J)
A(I,J)=A(J,I)
A(J,I)=T
SETTALKON
问题:
(1)课本P155页的程序阅读题第4题
(2)
第二部分字符信息处理
一、基本算法:
1、常用的字符处理函数
(1)SPACE(N)
(2)LEN(S)
(3)SUBSTR(S,N1,N2)
(4)C=C+P&
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)
FORI=1TOL
S=S+SUBSTR(C,I,1)&
改成S=SUBSTR(C,I,1)+S有何不同,
C+”--”+S
3、阿拉伯数字转换为中文大写数字
L=LEN(ALLTRIM(STR(N)))
C=”o一二三四五六七八九”&
C=”零壹贰叁肆伍陆柒捌玖”
S=””
P=MOD(N,10)
S=SUBSTR(C,2*I+1,2)+S
ALLTRIM(STR(N))+”--”+S
4、图案的输出
主要采用SPACE(N)来控制每行中的首字符在屏幕中的位置和字符间的间隔。
采用STR(N)函数将数值型数据转换为字符型;
采用SUBSTR(C,N1,N2)函数对字符串进行取子串。
特殊图案采用CHR(ASC(C)+N)进行不同字符的输出,尤其是英文字母的输出。
例:
采用正直角三角形的形式输入九九乘法表
SPACE(6*(9-I))
STR(I,1)+”*”+STR(J,1)+”=”+STR(I*J,2)
1、编写一个程序,显示输出给定的字符串表达式倒置字符串(包含数字字符串、英文字母字符串和汉字字符串)。
ACCEPT"
请输入字符串"
TOC
S="
S=SUBSTR(C,I,1)+S
C+"
---->
+S
2、编写一个口令验证程序,要求有三次输入口令的机会,输入正确,显示“欢迎使用本系统”,否则显示“你无权使用本系统”。
口令可采用固定字符串,也可以采用在已有的表文件读取相关的字段值。
DOWHILEI<
=3
ACCEPT"
请输入口令"
topass
IFALLTRIM(PASS)=="
ABCD"
欢迎使用本系统!
口令错误!
请重输"
I=I+1
IFI>
3
你无权使用本系统!
3、编写一个程序,将数字日期转换成中文大写形式
请输入日期"
toRIQI
Y=YEAR(RIQI)
M=MONTH(RIQI)
D=DAY(RIQI)
C="
O一二三四五六七八九"
FORI=1TO4
P=MOD(Y,10)
S=SUBSTR(C,2*P+1,2)+S
Y=INT(Y/10)
S=S+"
年"
S=S+IIF(M<
10,SUBSTR(C,2*M+1,2),"
十"
+SUBSTR(C,2*MOD(M,10)+1,2))
月"
DOCASE
CASED<
S=S+SUBSTR(C,2*D+1,2)
CASED=10
S=S+"
=19
S=S+SUBSTR(C,2*MOD(D,10)+1,2)
OTHERWISE
S=S+SUBSTR(C,2*INT(D/10)+1,2)+"
+;
IIF(MOD(D,10)=0,"
SUBSTR(C,2*MOD(D,10)+1,2))
ENDCASE
日"
DTOC(RIQI)+"
4、编写一个程序,将输入的金额采用中文大写形式输出。
请输入金额"
TOJINER
P=JINER*100
M=ROUND(P,0)
C1="
零壹贰叁肆伍陆柒捌玖"
C2="
分角元拾佰仟万拾佰仟亿拾佰仟"
I=0
C=SPACE(0)
DOWHILE.T.
N=MOD(M,10)
C=SUBSTR(C1,2*N+1,2)+SUBSTR(C2,2*I+1,2)+C
STR(JINER,19,4)+"
+C
5、阅读程序,写出程序运行的结果:
主要是图案的输出,
(1)数字图案的输出:
采用数组形式。
N="
TON
DIMEA(N,N)
P=N
A(N,N)=1
A(N,1)=1
N=N-1
FORI=3TOP
FORJ=2TOI-1
A(I,J)=A(I-1,J-1)+A(I-1,J)
FORI=1TOP
SPACE(3*(P-I+1))
STR(A(I,J),3)
(2)字母图案的输出:
采用CHR(ASC(C)+N)函数。
FORI=1TON
SPACE(N-I+1)
FORJ=1TO2*I-1
CHR(ASC('
A'
)+I-1)
FORP=N-1TO1STEP-1
SPACE(N-P+1)
FORK=1TO2*P-1
)+P-1)
第三部分表文件信息处理
一、基本函数
1、宏替换:
2、名称表达式:
(变量名)
3、FILE(S):
判断文件是否存在,若存在,该函数返回.T.,否则返回.F.。
4、FOUND()函数一般与记录查找命令结合使用。
5、FCOUNT():
表示当前表的字段数
6、FSIZE:
表示当前表的字段总长度
7、RECNO():
返回当前表的当前记录号
8、RECCOUNT():
返回当前表的总记录数
9、DELETE():
若当前记录已作删除标记,该函数返回.T.,否则返回.F.
10、BOF()或EOF():
用来测试表文件开始状态或结束状态。
11、SETFILTERTO逻辑表达式
二、基本算法与典型例题
1、文件的查询、打开、关闭和删除
ACCEPT”请输入要删除的表文件名(扩展名略):
”TOFILENAME
FILENAME=TRIM(LTRIM(FILENAME))+”.DBF”
IF!
FILE(FILENAME)&
判断文件是否存在
ACCEPT“该文件不存在!
继续吗?
(Y/N)”TOYN
IFUPPER(YN)=”N”
EXIT
ENDIF
ELSE
USE(FILENAME)&
打开表文件
LIST
WAIT“是这个文件吗?
IFLOWER(YN)=”y”
USE&
关闭表文件
DELETEFILE&
FILENAME&
删除表文件
ELSE
WAIT”继续吗?
IFLOWER(Y/N)=”n”
USE
EXIT
ENDIF
ENDIF
阅读和理解课本P103中的程序
2、表文件内的字段的添加、删除和查询
(1)添加新记录
请输入学生学号:
TOXH
请输入学生姓名:
TONAME
INPUT"
请输入性别(逻辑型):
TOXB
请输入出生年月"
TODATE
请输入学生奖学金"
TOJXJ
USE学生
APPENDBLANK
REPLACE学号WITHXH,姓名WITHNAME,性别WITHXB,出生年月;
WITHDATE,奖学金WITHJXJ
WAIT"
是否继续输入学生信息(Y/N)"
TOYN
IFUPPER(YN)="
Y"
LOOP
(2)删除指定的记录
请输入要删除的学号"
LOCAFOR学号=XH
IF!
FOUND()
你指定的学生并不存在!
DELE
SETDELETEON
是否继续(Y/N)"
IFLOWER(YN)="
SETDELETEOFF
USE
(3)查询记录
请输入学生学号"
USE成绩
LOCAFOR学号=XH
DOWHILE!
EOF()
DISP
CONTINUE
3、统计字段数、显示字段名。
请输入表文件名(扩展名略)"
TOFILENAME
FILENAME=FILENAME+"
.DBF"
IF!
FILE(FILENAME)
你所指定的表文件在当前文件夹内并不存在!
USE(FILENAME)
FORI=1TOFCOUNT()
FIELDS(I)
”该表文件共有”+STR(RECCOUNT())+”条记录”
请输入查询条件"
TOEXPR
SETFILTERTO&
EXPR
DISPALL
COUNTTOPFOR!
DELETE()
”共查询到”+STR(P)+”到符合条件的记录”
SETFILTERTO
USE
4、录中某字段值的改变(REPLACE…WITH…)
为指定的学生的奖学金增加50元
YN="
USE学生
DOWHILEUPPER(YN)="
&
采用永真循环结构
REPL奖学金WITH奖学金+50&
使用REPLACE…WITH语句
修改指定记录的字段。
5、制表结构、表内容的复制和大量数据追加
USE学生IN1
IFFILE("
STUDENT.DBF"
)
DELEFILESTUDENT.DBF
COPYSTRUTOSTUDENT
USESTUDENTIN2
SELE2
APPENFROM学生FOR性别
DISPALL
USE
SELE1
6、用SCATTERTO和GATHERFROM命令对表进行操作。
DIMEA(7)&
定义一个一维七元素的数组变量
STUD.DBF"
)&
判断文件是否存在,若存在则删除该文件
DELEFILESTUD.DBF
USE学生IN1&
在第一个工作区打开表文件学生.DBF
LOCAFOR奖学金>
=50&
查找奖学金在50元以上的记录
COPYSTRUTOSTUD&
将学生表结构复制到STUD.DBF中.
USESTUDIN2&
在第二个工作区中打开表文件STUD.DBF
SELE1
SCATTERTOA&
将学生.DBF中的记录读到数组A中.
SELE2
GATHERFROMA&
将数组A中各元素的值写到STUD.DBF对应的字段中
U
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 专题