第五章程序.docx

上传人:b****7 文档编号:8673551 上传时间:2023-02-01 格式:DOCX 页数:11 大小:53.55KB
下载 相关 举报
第五章程序.docx_第1页
第1页 / 共11页
第五章程序.docx_第2页
第2页 / 共11页
第五章程序.docx_第3页
第3页 / 共11页
第五章程序.docx_第4页
第4页 / 共11页
第五章程序.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

第五章程序.docx

《第五章程序.docx》由会员分享,可在线阅读,更多相关《第五章程序.docx(11页珍藏版)》请在冰豆网上搜索。

第五章程序.docx

第五章程序

第五章程序设计

一、程序及三大结构

1)程序:

命令的有序集合

2)三大结构:

顺序结构

分支结构(选择)

循环结构

二、程序文件(.prg)

1、新建程序文件:

modifycommand<文件名>

2、执行|运行程序文件Do<程序文件>

三、表单文件(.SCX)

1、新建表单文件Modifyform<文件名>

2、执行|运行表单文件Doform<表单文件>

注意:

程序分为:

数学程序和基于表的程序

数学程序总体由三部分组成:

1)输入

2)计算

3)输出

四、三大结构

1、顺序结构:

所有的程序总体上都是顺序结构

2、分支|选择结构

 

例如:

(1)判断文本框中输入数值的奇偶性。

n=thisform.text1.value

ifmod(n,2)=0

thisform.label1.caption=alltrim(str(n))+"是偶数"

else

thisform.label1.caption=alltrim(str(n))+"是奇数"

endif

补充:

字符输出函数messagebox()

messagebox("好得很!

","好吗?

")

例如

(2)输入一个数如果是-1关闭表单,如果不是-1,能被8整除,标签显示这个数是8的倍数;否则显示这个数不是8的倍数!

x=thisform.text1.value

docase

casex=-1

thisform.release

casex%8=0

thisform.label1.caption=alltrim(str(x))+"是8的倍数"

otherwise

thisform.label1.caption=alltrim(str(x))+"不是8的倍数"

endcase

3.循环结构

(1)for循环(步长循环)

for<循环变量>=<初值>to<终值>[step<步长>]

<语句序列>

Endfor|next(给循环变量加上步长)

例如:

1)5!

2)n!

3)1+2+3+….+100

4)1+2+3…+n

5)1+1/2+1/3+1/4+….+1/n

6)1+1/3-1/4+1/5-….+1/n

n=thisform.text1.value

s=1

fori=3ton

s=s+1/i*(-1)^i-1

endfor

thisform.text2.value=s

总结:

1)累乘器j=1

J=j*i

2)累加器s=0

S=s+i

3)计数器n=0

n=n+1

4)字符串累加连接c=””c=c+i

例如:

通过编辑框输出水仙花数,通过文本框输出水仙花数的个数。

n=0

fori=100to999

a=mod(i,10)

b=int(mod(i,100)/10)

c=int(i/100)

ifi=a**3+b**3+c**3

thisform.edit1.value=thisform.edit1.value+str(i,5)

n=n+1

endif

endfor

thisform.text1.value=n

例如:

文本框中输入任意一串字符,输出其中的数字串

n=allt(thisform.text1.value)

c=""

fori=1tolen(n)

a=substr(n,i,1)

ifasc(a)>=asc("0")andasc(a)<=asc("9")

c=c+”*”

else

c=c+a

endif

endfor

thisform.label1.caption=c

练习:

1)文本框中输入任意一串字符,统计数字、小写、大写、的个数

n=allt(thisform.text1.value)

m1=0

m2=0

m3=0

fori=1tolen(n)

a=substr(n,i,1)

DOCASE

CASEasc(a)>=asc("0")andasc(a)<=asc("9")

m1=m1+1

CASEasc(a)>=asc("a")andasc(a)<=asc("z")

m2=m2+1

CASEasc(a)>=asc("A")andasc(a)<=asc("Z")

m3=m3+1

ENDCASE

endfor

thisform.label1.caption=alltrim(str(m1))

thisform.label2.caption=alltrim(str(m2))

thisform.label3.caption=alltrim(str(m3))

2)文本框中输入任意一串字符,输出其中的数字、小写、大写字符串

例如:

读程序写结果。

Thisform.label1.caption=""

DIMENSIONS(6)

FORI=1TO6

S(I)=2*I

ENDFOR

FORI=1TO3

T=S(I)

S(I)=S(7-I)

S(7-I)=T

ENDFOR

FORI=1TO6

Thisform.label1.caption=Thisform.label1.caption+str(s(i),4)

ENDFOR

7)前n个自然数中能被3整除的数的和

n=thisform.text1.value

s=0

fori=1ton

ifi%3=0&&mod(i,3)=0int(i/3)=i/3

s=s+i

endif

endfor

thisform.text2.value=s

7)前n个自然数中能被7整除的数(一行输出5个数)以及个数。

补充、编辑框(edit)作用:

输出长字符串(按照行的顺序)。

属性:

value

引用方式:

thisform.edit1.value=thisform.edit1.value+输出内容(字符型)

EG:

通过编辑框输出前N个自然数中能被7整除的数,一行显示5个数。

thisform.edit1.value=""

x=0

n=thisform.text1.value

fori=1ton

ifi%7=0

x=x+1

thisform.edit1.value=thisform.edit1.value+alltrim(str(i))+space(3)

ifx%5=0

thisform.edit1.value=thisform.edit1.value+chr(13)

endif

endif

endfor

thisform.text2.value=x

例如:

通过编辑框输出26个大写字母

n=0

fori=asc("A")toASC("Z")

n=n+1

M=chr(i)

thisform.edit1.value=thisform.edit1.value+m+space

(2)

ifn%5=0

thisform.edit1.value=thisform.edit1.value+chr(13)

endif

endfor

例如:

输出字符串中所有的数字字符

n=thisform.text1.value

c=""

fori=1tolen(n)

a=substr(n,i,1)

ifasc(a)>=asc("0")andasc(a)<=asc("9")

c=c+a

endif

endfor

thisform.label1.caption=c

练习:

1、输出字符串中所有的小写、大写字母

2、统计输入字符串中数字、小写、大写的个数

n=thisform.text1.value

n1=""

n2=""

n3=""

fori=1tolen(n)

a=substr(n,i,1)

docase

caseasc(a)>=asc("0")andasc(a)<=asc("9")

n1=n1+a

caseasc(a)>=asc("a")andasc(a)<=asc("z")

n2=n2+a

caseasc(a)>=asc("A")andasc(a)<=asc("Z")

n3=n3+a

endcase

endfor

thisform.label5.caption=n1

thisform.label6.caption=n2

thisform.label7.caption=n3

(2)dowhile<条件>

<语句序列>

Enddo

n=thisform.text1.value

s=1

fori=1ton

s=s*i

endfor

thisform.text2.value=s

例如:

n!

n=thisform.text1.value

s=1

i=1

dowhilei<=n

s=s*i

i=i+1

enddo

thisform.text2.value=s

 

例如2)前n个自然数中的偶数|奇数和

n=thisform.text1.value

s=0

i=2

dowhilei<=n

s=s+i

i=i+2

enddo

thisform.text2.value=s

n=thisform.text1.value

s=0

fori=2tonstep2

s=s+i

enddo

thisform.text2.value=s

 

2.读如下程序,写出运行结果:

CLEAR

DIMEW1(5)

X='A'

W1=""

FORI=5TO1step-1

FORJ=1TOI

W1(I)=W1(I)+X

ENDFOR

X=CHR(ASC(X)+1)

?

6-I,W1(I)

ENDFOR

 

法二

N=thisform.text1.value

c=""

fori=1tolen(n)

a=substr(n,i,1)

c=a+c

endfor

thisform.label1.caption=c

例如:

字符逆序输出

N=thisform.text1.value

c=""

fori=len(n)to1step-1

a=substr(n,i,1)

c=c+a

endfor

thisform.label1.caption=c

 

补充:

循环中的特殊语句

1)loop结束本次循环

2)exit结束本层循环

DOWHILE.t.

If

Exit

endif

enddo

例如:

读程序写结果:

DIMENSIONA(3,3)

FORI=1TO3

FORJ=1TO3

IFI<>J

A(I,J)=0

ELSE

A(I,J)=9

ENDIF

Thisform.edit1.value=thisform.edit1.value+allt(str(A(I,J)))

ENDFOR

Thisform.edit1.value=thisform.edit1.value+chr(13)

ENDFOR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

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

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