visualbasic程序设计教程第四版刘炳文编著清华大学.docx

上传人:b****7 文档编号:9915055 上传时间:2023-02-07 格式:DOCX 页数:16 大小:19.83KB
下载 相关 举报
visualbasic程序设计教程第四版刘炳文编著清华大学.docx_第1页
第1页 / 共16页
visualbasic程序设计教程第四版刘炳文编著清华大学.docx_第2页
第2页 / 共16页
visualbasic程序设计教程第四版刘炳文编著清华大学.docx_第3页
第3页 / 共16页
visualbasic程序设计教程第四版刘炳文编著清华大学.docx_第4页
第4页 / 共16页
visualbasic程序设计教程第四版刘炳文编著清华大学.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

visualbasic程序设计教程第四版刘炳文编著清华大学.docx

《visualbasic程序设计教程第四版刘炳文编著清华大学.docx》由会员分享,可在线阅读,更多相关《visualbasic程序设计教程第四版刘炳文编著清华大学.docx(16页珍藏版)》请在冰豆网上搜索。

visualbasic程序设计教程第四版刘炳文编著清华大学.docx

visualbasic程序设计教程第四版刘炳文编著清华大学

VisualBasic程序设计教程

部分习题参考

第四版刘炳文编著清华大学出版社

第五章

、从键盘上输入4个数,编写程序,计算并输出这4个数的和及平均值。

通过inputbox函数输入数据,在窗体上显示和及平均值。

Dimaassingle

Fori=1to4

a=inputbox(“请输入一个数:

”,“数据输入”)

sum=sum+a

n=n+1

avg=sum/n

nexti

print“和是:

”,sum

print“平均值是:

”,avg

、编写程序,要求用户输入下列信息:

姓名、年龄、通信地址、邮政编码、电话,然后将输入的数据用适当的格式在窗体上显示出来。

Dimaasvariant

Fontsize=20

a=inputbox(“请输入姓名:

”,“数据输入”)

print“姓名:

”;a

a=inputbox(“请输入年龄:

”,“数据输入”)

print“年龄:

”;a

a=inputbox(“请输入通信地址:

”,“数据输入”)

print“通信地址:

”;a

a=inputbox(“请输入邮政编码:

”,“数据输入”)

print“邮政编码:

”;a

a=inputbox(“请输入电话:

”,“数据输入”)

print“电话:

”;a

.设a=5,b=,c=,编程序计算:

y=(πab)/(a+bc)

程序:

Dimaassingle,bassingle,cassingle

a=5

b=

c=

pi=

y=(pi*a*b)/(a+b*c)

print“结果是:

”;y

、输入以秒为单位表示的时间,编写程序,将其转换为几日几时几秒。

Dimaaslong,dasinteger,hasinteger,sasinteger

a=inputbox(“请输入秒数:

”,“数据输入”)

d=int(a/86400)

h=int((a-d*86400)/3600)

s=a-d*86400-h*3600

printd;“日”;h;“时”;s;“秒”

、自由落体位移公式为:

s=gt2/2+v0t

其中v0为初始速度,g为重力加速度,t为经历的时间,编写程序,求位移量s。

设v0=s,t=,g=s2,在程序中把g定义为符号常量,用inputbox函数输入v0和t两个变量的值。

Dimvassingle,tassingle,sassingle

g=

v=inputbox(“请输入初始速度:

”,“数据输入”)

v=val(v)

t=inputbox(“请输入经历的时间:

”,“数据输入”)

t=val(t)

s=g*t*t/2+v*t

print“位移量是:

”;s

第七章

.编程计算并输出S的值:

s=2+4+6+8+…+100

dimi,sasinteger

s=0

fori=2to100step2

s=s+i

next

prints

、我国现有人口为13亿,设年增长率为1%,编写程序,计算多少年后增加到20亿。

PrivateSubForm_click()

DimpAsDouble

DimrAsSingle

DimnAsInteger

p=0

r=

n=0

DoWhilep<=0

p=p*(1+r)

n=n+1

Loop

Printn;"年后";"中国人口增加到";p

EndSub

、给定三角形的3条边长,计算三角形的面积。

编写程序:

首先判断给出的3条边能否构成三角形,如可以构成,则计算并输出三角形的面积,否则要求重新输入。

当输入-1时结束程序。

Dimaassingle;bassingle;cassingle

Start:

a=inputbox(“请输入第一条边长-1结束:

”,”数据输入”)

a=val(a)

ifa=-1then

end

endif

b=inputbox(“请输入第二条边长”,“数据输入”)

b=val(b)

c=inputbox(“请输入第三条边长”,“数据输入”)

c=val(c)

ifa+b<=cora+c<=borb+c<=athen

msgbox(“您输入的三条边长不能构成三角形,请重新输入!

”)

gotostart

else

l=(a+b+c)/2

s=sqr(l*(l-a)*(l-b)*(l-c))

endif

print“三角形的面积为:

”;s

、编写程序,打印如下所示的“数字金字塔”

1

21

12321

……

12345678987654321

Private Sub Form_Click()

Dim a(1 To 5) As Integer

  For j = 1 To 5

  a(j) = j

  Next j

For i = 1 To 5

Print Tab(30 - i * 3);

  For j = 1 To 2 * i - 1

  If j > i Then

   Print a(2 * i - j);

  Else

  Print a(j);

  End If

  Next j

Next i

End Sub

.勾股定理中三个数的关系是a*a+b*b=c*c。

编写程序,输出30以内满足上述关系的整数组合。

例如3,4,5就是一个满足要求的整数组合

PrivateSubCommand1_Click()

DimMaxAsInteger,IAsInteger,JAsInteger,K

Max=30

ForI=3ToMax-2

ForJ=I+1ToMax-1

K=Sqr(I^2+J^2)

IfK=Int(K)AndK<=MaxThenPrintI,J,K

Next

Next

EndSub

.如果一个数的因子之和等于这个数的本身,则称这样的数为“完全数”。

例如,整数28的因子为1,2,4,7,14,其和1+2+4+7+14=28,因此28是一个完全数,编写一个程序,从键盘上输入整数M和N,求出M和N之间的所有的完全数

formload()

'inti,j,m,n,sum

m=inputbox("输入最小正整数")

n=inputbox("输入最大正整数")

forj=mton

sum=0

fori=1toj

if(jmodi=0)and(i<>j)thensum=sumi

next

ifj=sumthenprintsum&"是完全数"

next

print"查找完毕"

beep

endsub

.从键盘上输入一个学生的学号和考试成绩,然后输出该学生的学号和考试成绩,并根据成绩按下面的规定输出对该学生的评语:

成绩80~10060~7950~5940~490~39

评语verygoodgoodfairpoorfail

PrivateSubForm_Click()

n=InputBox("请输入学号")

s=InputBox("请输入分数")

Ifs>=80Then

Print"学号:

";n;",";"分数:

";s;",";"学生评语:

";"VeryGood"

ElseIfs>=60Ands<=79Then

Print"学号:

";n;",";"分数:

";s;",";"学生评语:

";"Good"

ElseIfs>=50Ands<=59Then

Print"学号:

";n;",";"分数:

";s;",";"学生评语:

";"Fair"

ElseIfs>=40Ands<=49Then

Print"学号:

";n;",";"分数:

";s;",";"学生评语:

";"Poor"

ElseIfs>=0Ands<=39Then

Print"学号:

";n;",";"分数:

";s;",";"学生评语:

";"Fail"

EndIf

EndSub

.一个两位的正整数,如将它的个位数字与十位数字对调,则产生另一个正整数,我们把后者叫做前者的对调数。

如给定一个两位的正整数,请找到另一个两位的正整数,值得这两个整数之和等于他们各自的对调数之和,例如,12+32=21+23.编写程序,输入一个两位的正整数,把具有这种特征的每一对两位正整数都找出来

Private Sub Command1_Click()

    Dim a As String

    Dim i As Long

    a = InputBox("输入一个两位的正整数:

")

    If Val(a) <= 0 Or Val(a) >= 100 Then

        MsgBox "输入不合法"

        Exit Sub

    End If

              

    For i = 1 To 99

        If Val(a) + i = Val(getDuiTiao(a)) + getDuiTiao(CStr(i)) Then

             i

        End If

    Next

End Sub

Private Function getDuiTiao(ByVal vStr As String) As String

    Dim strTmp As String

    strTmp = Right(CStr(vStr), 1) & Left(CStr(vStr), 1)

    getDuiTiao = strTmp

End Function

第八章

.从键盘上输入10个整数,并放入一个一维数组中,然后将其前5个元素与后5个元素对换,即:

第1个元素与第10个元素互换,第2个元素与第9个元素互换……第10个元素与第1个元素互换。

分别输出数组原来各元素的值和对换后各元素的值。

OptionBase1

PrivateSubForm_Click()

arr=Array(1,2,3,4,5,6,7,8,9,10)

Print"原来数组:

"

Fori=1To10

   Printarr(i);

Nexti

Print

Fori=1To5

   Forj=6To10

     t=arr(i)

     arr(i)=arr(j)

     arr(j)=t

   Nextj

Nexti

Print"对换后数组:

"

Fori=1To10

   Printarr(i);

Nexti

EndSub

.设有如下两组数据。

(1)2,8,7,6,4,28,70,25

(2)79,27,32,41,57,66,78,80

编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即2+79,8+27,……,25+80,并把相应的结果放入第三个数组中,最后输出第三个数组的值。

OptionBase1

PrivateSubForm_Click()

DimA,B,C(8)AsInteger

A=Array(2,8,7,6,4,28,70,25)

B=Array(79,27,32,41,57,66,78,80)

Fori=1To8

   C(i)=A(i)+B(i)

Nexti

Print"第一个数组为:

";

Fori=1To8

   PrintA(i);

Nexti

Print

Print"第二个数组为:

";

Fori=1To8

   PrintB(i);

Nexti

Print

Print"第三个数组为:

";

Fori=1To8

  PrintC(i);

Nexti

Print

EndSub

编写程序,把下面的数据输入到一个二维数组中:

25367813

12268893

75182232

56443658

然后执行以下操作:

1)输出矩阵两个对角线上的数;

2)分别输出各行和各列的和。

3)交换第一行和第三行的位置。

4)交换第二行和第四行的位置。

5)输出处理后的数组。

Dima(4,4),b(4,4)AsInteger

Fori=0To3

Forj=0To3

a(i,j)=Val(InputBox("请输入第"&i+1&"行第"&j+1&"列的数"))

Nextj

Nexti

Print"原始数据"

Fori=0To3

Printa(i,0)&""&a(i,1)&""&a(i,2)&""&a(i,3)&"和"&Val(a(i,0)+a(i,1)+a(i,2)+a(i,3))

Nexti

Print"和和和和"

Forj=0To3

Print"";Val(a(0,j)+a(1,j)+a(2,j)+a(3,j));

Nextj

Print

'对角线

Fori=0To3

PrintTab(i*2);a(i,i)

Nexti

Print

Fori=0To3

PrintTab((3-i)*2);a(i,3-i)

Nexti

Print

'调整

Forj=0To3

b(2,j)=a(0,j)'第一行和第三行

b(0,j)=a(2,j)

b(1,j)=a(3,j)

b(3,j)=a(1,j)

Nextj

Print"调整后数据"

Fori=0To3

Printb(i,0)&""&b(i,1)&""&b(i,2)&""&b(i,3)

Nexti

.设有如下人员名册:

姓名性别年龄文化程度籍贯

张得功男24大学本科河北

李得胜男30高中毕业北京

王丽女25研究生山东

……

试编写一个程序,对该名册进行检索。

程序运行后,只要在键盘上输入一个人名,就可以在屏幕上显示出这个人的情况。

例如,输入“张得功”,则显示:

张得功男24大学本科河北

要求:

(1)使用动态数组,输入的人数可以根据实际情况改变。

(2)当检索名册中不存在的人名时,输出相应的信息。

(3)每次检索结束后,询问是否继续检索,根据输入的信息确定是否结束程序。

dimarr()'..........'单位开运动会,共有10人参加男子100米短跑,运动员和成绩如下:

207号秒077号秒

156号秒231号秒

453号秒276号秒

096号秒122号秒

339号秒302号秒

编写程序,按成绩排出名次,并按如下格式输出:

名次运动员成绩

1..........

2..........

3..........

............

10..........

在Form1中加入一个Command控件,粘贴入以下代码:

DimiAsInteger,jAsInteger

DimnAsInteger,mAsInteger

Dimw(9,1)AsDouble

PrivateSubCommand1_Click()

Dima1AsDouble,a2AsDouble

a1=0

a2=0

Fori=1To10

Forj=0To9-i

Ifw(j,1)>w(j+1,1)Then

a1=w(j,0)

a2=w(j,1)

w(j,0)=w(j+1,0)

w(j,1)=w(j+1,1)

w(j+1,0)=a1

w(j+1,1)=a2

EndIf

Nextj

Nexti

Fori=0To9

Printw(i,0)

Next

Print"名次"&"运动员"&"成绩"

Fori=0To9

Print""&i+1&""&Format(w(i,0),"000")&""&w(i,1)

Next

EndSub

PrivateSubForm_Load()

Fori=0To9

w(i,0)=InputBox("请输入第"&i+1&"运动员的编号")

w(i,1)=InputBox("请输入第"&i+1&"运动员的成绩")

Next

="名次排列"

EndSub

.VB编写程序,建立并输出一个10*10的矩阵,该矩阵两条对角线元素为1,其余元素均为0

PrivateSubForm_Click()

Dima(1To10,1To10)AsInteger

Fori=1To10

Forj=1To10

a(i,j)=0

Ifi=jThena(i,j)=1

Ifi+j=11Thena(i,j)=1

Printa(i,j);"";

Nextj

Print

Nexti

EndSub

.杨辉三角形每一行是(x+y)的n次方的展开式的各项系数。

例如第一行系数是1;第二行1,1;第三行1,2,1……请编写程序输出n=10的杨辉三角形

OptionBase1

PrivateSubCommand1_Click()

Dima()AsDouble

m=InputBox("请输入行数","输入",0)

ReDima(m,m)AsDouble

Fori=1Tom

  a(i,1)=1

  Forj=1Tom

   a(j,j)=1

   Ifj>=2Andj<=i-1Then

    a(i,j)=a(i-1,j-1)+a(i-1,j)

   EndIf

  Nextj

Nexti

Fori=1Tom

 Forj=1Tom

  Ifi>=jThen

 PrintTab(j*4);Str(a(i,j));

  EndIf

 Nextj

 Print

Nexti

EndSub

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

当前位置:首页 > 高等教育 > 文学

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

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