个vb经典例题
- 格式:doc
- 大小:78.50 KB
- 文档页数:9
VB经典案例1输入3个数,输出最大的数X=val(text1)y=val(text2)z=val(text3)if x>=y thenif x>=z then print xelse print zend ifelse if y>=z then print yend if2有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根a=val(text1)b=val(text2)c=val(text3)If b*b-4*a*c>=0 then print “有实根”else print “无实根”end if3输入一个成绩,若大于等于60,则用消息框显示“恭喜!成绩通过!”,若小于60,则弹出消息框显示“抱歉!成绩没有通过!”N=val (text1)if n>=60 then msgbox”恭喜!成绩通过!”else msgbox “抱歉!成绩没有通过!”end if4输入一年份,判断它是否为闰年,并显示有关信息(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)y=val(text 1)if y mod 4 =0 and y mod 100 = 0 then print “y是闰年”else print y “不是闰年’”end if5输入学生的百分制成绩,转换输出为五级制成绩,90~100分转换为优秀,80~89转换为良好,70~79转换为中等,60~69转换为及格,0~60转换为不及格。
If mark >=90 then grade= ‘优’else If mark >=80 then grade =‘良’else If mark >=70 then grade =‘中’else If mark >=60 then grade =‘及格’else grade=”不及格”6随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。
vb三种基本结构练习题1、计算圆的面积(顺序结构)dim r,s,c as singler=inputbox("输入r的值")s=3.14*r*rc=2*3.14*rprint sprint c2、小明去买电池,2.5元一节,买电池超过10节,超出的部分按八折出售。
输入小明买电池的数量,输出小明应付的钱数。
(选择语句)dim a as integerdim q as singlea=inputbox("输入小明买的电池数")if a>10 thenb=25+(a-10)*2.5*0.8elseb=a*2.5end ifprint b3、求1+2+3+4+……+100的和。
(循环语句)dim i,sum as integerfor i=1 to 100sum=sum+inext iprint sum4、输入数字n,求n!(n!=1*2*3*……*n)(循环语句)dim i,sum,n as longn=inputbox("输入n的值")sum=1for i=1 to nsum=sum*inext iprint sumVB上机练习汇总1、在窗体上任意位置画一个文本框和一个命令按钮,编写程序,当用户单击命令按钮时,文本框移动到窗体的左上角,并且文本框的大小是原来的2倍。
2、在窗体上任意位置画一个文本框和一个命令按钮,设置窗体的标题属性为“信息窗口”;命令按钮的标题属性为“确定”。
编写程序,当用户单击命令按钮时,在文本框中显示“包头师范学院”,要求字体为隶书、加粗、加下划线、字号为20、颜色为红色。
3、在窗体上任意位置画两个命令按钮,分别设置它们的标题属性为:加载图片、显示信息。
编写程序,当用户单击第一个命令按钮时,在窗体上加载一幅图片(图片自定)。
当用户单击第二个命令按钮时,在窗体上打印信息“包头师范学院“。
4、例1:在窗体上部设置一个文本框,文本框的下面设置3 个命令按钮,其中左边按钮中标有“单击此按钮”,中间按钮中标有“清除”,右边按钮中标有“程序结束”。
1.日期Private Sub Form_Click()FontSize = 12MyTime = #9:21:30 PM#MyDate = #7/21/1997#Print Tab(2); Format(MyDate, "m/d/yy")Print Tab(2); Format(MyDate, "mmmm-yy")Print Tab(2); Format(MyTime, "h-m-s AM/PM")Print Tab(2); Format(MyTime, "hh:mm:ss A/P")Print Tab(2); Format(Date, "dddd,mmmm,dd,yyyy") ' 显示系统当前日期Print Tab(2); Format(Now, "yyyy年m月dd日hh:mm") ' 显示系统当前日期和时间Print FormatDateTime(Now) ' vb6.0新提供的函数End Sub2.输入的内容是否为数字Private Sub Text1_LostFocus()Dim i As IntegerIf Not IsDate(Text1) ThenText2.Text = "错误,再输入!"ElseText1.SetFocusText2.Text = "正确"End IfEnd Sub3.记事本Option ExplicitPrivate Sub Form_Click()Dim intvalintval = Shell("c:\windows\notepad.exe", vbNormalFocus)End Sub4.帐号密码Private Sub Form_Load()txtPas.PasswordChar = "*"txtPas.Text = ""txtNo = ""End SubPrivate Sub txtNo_LostFocus()If Not IsNumeric(txtNo) ThenMsgBox "帐号有非数字字符错误"txtNo.Text = ""txtNo.SetFocusEnd IfEnd SubPrivate Sub cmdOk_Click()Dim I As IntegerIf txtPas.Text <> "Gong" ThenI = MsgBox("密码错误", 5 + vbExclamation, "输入密码")If I <> 4 ThenEndElsetxtPas.Text = ""txtPas.SetFocusEnd IfElsePrint "输入密码正确"End IfEnd Sub5.计算机考试Option ExplicitDim Num1 As Integer, Num2 As Integer '两个操作数Dim SExp As StringDim Result As Single '计算结果Dim NOk As Integer, NError As Integer '统计计算正确与错误数Private Sub CmdMark_Click()Picture1.Print "----------------------------------"Picture1.Print "一共计算" & (NOk + NError) & " 道题";Picture1.Print "得分" & Int(NOk / (NOk + NError) * 100)End SubPrivate Sub cmdOk_Click()6. '在文本框输入计算结果,按“确定”按钮,在图形框显示正确与否If Val(txtInput) = Result ThenPicture1.Print SExp; txtInput; Tab(10); "√" '计算正确NOk = NOk + 1ElsePicture1.Print SExp; txtInput; Tab(10); "×" '计算错误NError = NError + 1End IftxtInput = "" '下一个表达式生成txtInput.SetFocusForm_LoadEnd SubPrivate Sub Form_Load()'7.通过产生随机数生成表达式Dim NOp As Integer, Op As String * 1 '操作符Randomize '初始化随机数生成器Num1 = Int(10 * Rnd + 1) '产生1-10之间的操作数Num2 = Int(10 * Rnd + 1) '产生1-10之间的操作数NOp = Int(4 * Rnd + 1) '产生1-4之间的操作代码Select Case NOpCase 1Op = "+"Result = Num1 + Num2Case 2Op = "-"Result = Num1 - Num2Case 3Op = "×"Result = Num1 * Num2Case 4Op = "÷"Result = Num1 / Num2End SelectSExp = Num1 & Op & Num2 & "="lblExp = SExpEnd Sub8.ACS码Private Sub Picture1_Click()Dim asc As Integer, i As IntegerPicture1.Print " ASC码对照表"For asc = 32 To 126Picture1.Print Tab(7 * i + 2); Chr(asc); "="; asc;i = i + 1If i = 7 Then i = 0: Picture1.Print '换行Next ascEnd Sub9.统计字母Private Sub Command1_Click()Dim a(1 To 26) As Integer, c As String * 1le = Len(Text1) '求字符串的长度For I = 1 To lec = UCase(Mid(Text1, I, 1)) '取一个字符,转换成大写If c >= "A" And c <= "Z" Thenj = Asc(c) - 65 + 1 '将A~Z大写字母转换成1~26的下标a(j) = a(j) + 1 '对应数组元素加1End IfNext IFor j = 1 To 26 '输出字母及其出现的次数If a(j) > 0 Then Picture1.Print " "; Chr$(j + 64); "="; a(j);Next jEnd Sub10.计算一元二次方程的根Private Sub Command1_Click()Dim a As Single, b As Single, c As SingleDim D As SingleDim x1 As Single, x2 As Singlea = Text1.Text '输入系数a、b、cb = Text2.Textc = Text3.TextD = b * b - 4 * a * c '计算x1 = (-b + Sqr(D)) / (2 * a)x2 = (-b - Sqr(D)) / (2 * a)Label4.Caption = "x1=" + Str(x1) '输出方程的两个根x1和x2Label5.Caption = "x2=" + Str(x2)End Sub11.另一种求根方式Private Sub Form_Click()Dim a As Single, b As Single, c As SingleDim D As SingleDim x1 As Single, x2 As Singlea = InputBox("输入系数a:") '输入系数a、b、cb = InputBox("输入系数b:")c = InputBox("输入系数c:")Print Tab(10); "方程"; a; "x^2+"; b; "x+"; c; "的根:"D = b * b - 4 * a * c '计算x1 = (-b + Sqr(D)) / (2 * a)x2 = (-b - Sqr(D)) / (2 * a)Print Tab(10); "x1="; Str(x1); '输出方程的两个根x1和x2Print Tab(10); "x2="; Str(x2)End Sub12.IF else求根Private Sub Form_Click()Dim a As Single, b As Single, c As SingleDim D As SingleDim x1 As Single, x2 As Singlea = InputBox("输入系数a:") '输入系数a、b、cb = InputBox("输入系数b:")c = InputBox("输入系数c:")Print Tab(10); "方程"; a; "x^2+"; b; "x+"; c; "的根:"D = b * b - 4 * a * c '计算If D < 0 ThenPrint "此方程无实根!"Elsex1 = (-b + Sqr(D)) / (2 * a)x2 = (-b - Sqr(D)) / (2 * a)Print Tab(10); "x1="; Str(x1); '输出方程的两个根x1和x2 Print Tab(10); "x2="; Str(x2)End IfEnd Sub13.排星星Private Sub Form_Click()n = InputBox("请输入n的值(给第一行*定位)")Print Tab(n); "*"Print Tab(n - 1); "***"Print Tab(n - 2); "*****"Print Tab(n - 3); "*******"End Sub14.另一种排星星Private Sub Form_Click()n = InputBox("请输入n的值(给第一行*定位)")Print Tab(n); "*"Print Tab(n - 1); "*"; Spc(1); "*"Print Tab(n - 2); "*"; Spc(3); "*"Print Tab(n - 3); "*"; Spc(5); "*"End Sub15.确定取消Option ExplicitPrivate Sub Form_Click()ClsDim Response As String, a As Integera = MsgBox("Do you want to continue?", vbOKCancel + vbQuestion, "Msgbox 定义")If a = 1 ThenResponse = "确定"ElseResponse = "取消"End IfPrint "你刚才按的是:" & Response & " 键"End Sub16.工作日周末Private Sub Form_Click()Dim d As Integerd = InputBox("input a number:")Select Case dCase 1 To 5Print "今天是:工作日"Case 6, 7Print "今天是:周未"Case Is < 1, Is >= 8MsgBox "输入数据错误"End SelectEnd Sub17.已知k求XPrivate Sub Form_Click()Dim k As Integerk = InputBox("请输入K的值")If k <= 10 And k > 0 ThenSelect Case kCase Is <= 2: x = 4Case Is <= 5: x = 3Case Is < 8: x = 0Case Elsex = 1End SelectPrint "k="; k, "x="; xEnd IfEnd Sub18.四个do-while 选择Private Sub Command1_Click()Dim s As Integers = 0: i = 0Do While i < 100i = i + 1: s = s + iLoopPrint "用Do While-Loop:"; "i="; i, "s="; s End SubPrivate Sub Command2_Click()Dim s As Integers = 0: i = 0Doi = i + 1: s = s + iLoop While i < 100Print "用Do-Loop While:"; "i="; i, "s="; s End SubPrivate Sub Command3_Click()Dim s As Integers = 0: i = 0Do Until i >= 100i = i + 1: s = s + iLoopPrint "用Do Until-Loop:"; "i="; i, "s="; s End Sub19.DO-WHILEPrivate Sub Command4_Click()Dim s As Integers = 0: i = 0Doi = i + 1: s = s + iLoop Until i >= 100Print "用Do-Loop Until:"; "i="; i, "s="; s End Sub20.循环嵌套九九乘法表Private Sub Command5_Click()Form1.ClsEnd SubPrivate Sub Command6_Click()EndEnd SubPrivate Sub Picture1_Click()Dim se As StringPicture1.Print Tab(35); "九九乘法表"Picture1.Print Tab(35); "-----------"For i = 1 To 9For j = 1 To 9se = i & "×" & j & "=" & i * jPicture1.Print Tab((j - 1) * 9 + 1); se;Next jPicture1.PrintNext iEnd Sub21.求阶乘Private Sub Form_Click()Dim n As Integer, p As Long, i As Integern = InputBox("输入n:")p = 1For i = 1 To np = p * iNext iPrint Str(n) & "!="; pEnd Sub'Private Sub Form_Click()'Rem 用While-Wend循环实现' Dim n As Integer, p As Long, i As Integer' n = InputBox("输入n:")' p = 1: i = 1' While i <= n' p = p * i' i = i + 1' Wend' Print Str(n) & "!="; p''End Sub22.求阶乘和Private Sub Form_Click()Dim n As Integer, s As Long, k As Integer, j As Integer, p As Long n = InputBox("输入项数n:")s = 0For k = 1 To np = 1For j = 1 To kp = p * jNext js = s + pNext kPrint "s="; sEnd Sub23.求三个数中的最大数Private Sub Form_Click()Dim a As Integer, b As Integer, c As Integer, Amax As Integera = InputBox("输入第一个数")b = InputBox("输入第二个数")c = InputBox("输入第三个数")Amax = aIf b > Amax Then Amax = bIf c > Amax Then Amax = cPrint a; ","; b; ","; c; "三个数中最大的数是"; AmaxEnd Sub24.求四个数中的最小数Private Sub Form_Click()Dim c1 As Integer, c2 As Integer, c3 As Integer, Cmin As Integer, Nmin As Integerc1 = InputBox("输入第一个成绩:")c2 = InputBox("输入第二个成绩:")c3 = InputBox("输入第三个成绩:")c4 = InputBox("输入第四个成绩:")Print "四个同学的成绩分别是:"; c1; c2; c3; c4PrintCmin = c1: Nmin = 1If c2 < Cmin Then Cmin = c2: Nmin = 2If c3 < Cmin Then Cmin = c3: Nmin = 3If c4 < Cmin Then Cmin = c4: Nmin = 4Print "被淘汰的是第"; Nmin; "号选手,其成绩是"; Cmin; "分"End Sub25.求两个自然数的最大公约数和最小公倍数Private Sub Form_Click()Dim m As Integer, n As Integer, m1 As Integer, r As Integer, DYS As Integer, XBS As Integerm = InputBox("输入第一个自然数:")n = InputBox("输入第二个自然数:")m1 = m: n1 = nPrint "自然数"; m; "和"; n; "的"If n1 > m1 Thentemp = n1: n1 = m1: m1 = tempEnd Ifr = m1 Mod n1Do Until r = 0m1 = n1: n1 = rr = m1 Mod n1LoopDYS = n1XBS = m * n / DYSPrint "最大公约数是:"; DYSPrint "最小公倍数是:"; XBSEnd Sub26.找出100以内所有素数Private Sub Form_Click()Dim i As Integer, m As Integer, n As IntegerFor m = 2 To 100For i = 2 To m - 1If m Mod i = 0 Then Exit ForNextIf i >= m ThenPrint m,n = n + 1 'n是找到素数的计数器If n Mod 5 = 0 Then Print ' 当n是5的倍数时换行End IfNext mEnd Sub27.求正弦函数值Private Sub Form_Click()Dim x As Single, s As SingleDim p As Single, f As Single, t As SingleDim i As Integer, j As Integerx = InputBox("输入x:")i = 1: s = xDop = 1: f = 1: t = 1i = i + 1: j = 1Dop = p * xf = f * jj = j + 1Loop Until j > 2 * i - 1t = p / fs = s + (-1) ^ (i - 1) * tLoop Until Abs(t) < 0.00001Print "sin("; x; ")="; sEnd Sub28.求N个学生的平均成绩Private Sub Form_Click()Dim G As Single, Ave As SingleDim N As Integer, TotalG As SingleN = 0: TotalG = 0100G = InputBox("请输入一个成绩(-1结束)")If G = -1 Then GoTo qeIf G >= 0 And G <= 100 ThenTotalG = TotalG + GN = N + 1ElseMsgBox "输入数据错误!请重新输入。
VB编程题代码43例1、求100以内的素数。
Private Sub Form_Click()Dim i%, j%For i = 2 To 100For j = 2 To i - 1If i Mod j = 0 Then Exit ForNext jIf j = i Then Print iNext iEnd Sub2、从键盘输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。
Private Sub Command1_Click()Dim a$, I%, c$, d$, n%a = InputBox$("输入字符串")n = Len(a)For I = 1 To Int(n \ 2)c = Mid(a, I, 1)Mid(a, I, 1) = Mid(a, n - I + 1, 1)Mid(a, n - I + 1, 1) = cNext IPrint aEnd Sub3、计算0~200之间所有能被11或5整除的数之和Private Sub Form_Click()Dim n%, i%n = 0For i = 1 To 200If i Mod 11 = 0 Or i Mod 5 = 0 Thenn = n + iEnd IfNext iPrint nEnd Sub4、输入一年份,判断它是否为闰年,并显示有关信息。
(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)Private Sub Command1_Click()Dim y%y = InputBox("请输入年数")If y Mod 4 = 0 And y Mod 100 <> 0 Or y Mod 400 = 0 ThenMsgBox (y & "年是闰年")ElseMsgBox (y & "年是平年")End If5、已知x,y,z 3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得x<y<z。
VB循环程序例题附答案1. [100,999]X围内同时满足以下两个条件的十进制数. ⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数; 求有多少个这样的数?15n = 0For i = 100 To 999a = i \ 100b = i \ 10 Mod 10c = i Mod 10If (c + b) Mod 10 = a Thenx = 0For j = 2 To i - 1If i Mod j = 0 Then x = 1: Exit ForNext jIf x = 0 Then n = n + 1End IfNext iPrint n2. [300,800]X围内同时满足以下两个条件的十进制数. ⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数;求满足上述条件的最大的三位十进制数。
761For i = 300 To 800a = i \ 100b = i \ 10 Mod 10c = i Mod 10If (c + b) Mod 10 = a Thenx = 0For j = 2 To i - 1If i Mod j = 0 Then x = 1: Exit ForNext jIf x = 0 Then s = iEnd IfNext iPrint s3.除1和它本身外,不能被其它整数整除的正整数称为素数〔注:1不是素数,2是素数〕。
假如两素数之差为2 ,如此称两素数为双胞胎数,问[31,601]之间有多少对双胞胎数。
22n = 0For i = 31 To 601 - 2x = 0If i Mod j = 0 Then x = 1: Exit ForNext jIf x = 0 Theny = 0For j = 2 To Sqr(i + 2)If (i + 2) Mod j = 0 Then y = 1: Exit ForNext jIf y = 0 Then n = n + 1End IfNext iPrint n4.数学家哥德巴赫曾猜想:任何大于6的偶数都可以分解成两个素数〔素数对〕的和。
1、随机产生三个100-300之间的整数,判断这三个整数是否能构成三角形,如果可以,求三角形的面积。
Dim x As Integer, y As Integer, z As IntegerDim c As Single, s As Singlex = Int(Rnd * 201 + 100)y = Int(Rnd * 201 + 100)z = Int(Rnd * 201 + 100)If x + y > z And x + z > y And y + z > x Thenc = (x + y + z) / 2s = Sqr(c * (c - x) * (c - y) * (c - z))Print "三角形面积是:" & sElsePrint "构不成三角形"End If2、随机产生0-100之间的60名学生的数学分数,分别统计分数在[)10,0、[)20,10、[)30,20、[)40,30、[)50,40、[)60,50、[)70,60、[)80,70、[)90,80、[]90、之间的学生人数。
100,Dim a%, b%, c%, d%, e%, f%, g%, h%, i%, j%Dim x As SingleFor m = 1 To 60 '产生60名学生的分数x = Rnd * 101 '产生0-100的分数Print x;If x >= 90 Thena = a + 1ElseIf x >= 80 Thenb = b + 1ElseIf x >= 70 Thenc = c + 1ElseIf x >= 60 Thend = d + 1ElseIf x >= 50 Thene = e + 1ElseIf x >= 40 Thenf = f + 1ElseIf x >= 30 Theng = g + 1ElseIf x >= 20 Thenh = h + 1ElseIf x >= 10 Theni = i + 1Elsej = j + 1End IfNext mPrint a, b, c, d, e, f, g, h, i, j3、我国有13亿人口,按照人口年增长0.8%计算,多少年以后我国人口超过26亿。
实验报告11实验报告2:实验题目1:设计窗体。
参考界面如下:运行前运行后要求:1)在窗体上添加一个标签,通过属性窗囗设置标签格式:Caption:字体格式Alignment:2—Center(居中)BorderStyle :1—Fixed Single(有边框)Backstyle:0—Tansparent(背景透明)2)运行时,单击“字号”,将标签内容的字号设置为30;单击“加粗”,将标签内容加粗;单击“下划线”,则在标签内容下加下划线。
提示:字号FontSize、加粗FontBold、下划线FontUnderline实验题目1源程序代码:Private Sub Command1_Click()Label1.FontSize = 30End SubPrivate Sub Command2_Click()Label1.FontBold = trueEnd SubPrivate Sub Command3_Click()Label1.FontUnderline = TrueEnd Sub实验题目2:设计一个计算器。
参考界面如下:要求:1)实现算术运算(+、-、*、/)的功能;2)实现清除和结束的功能;3)实现清除后,将焦点移到第一个文本框中。
实验题目2源程序代码:Private Sub Command1_Click()Text3.Text = Val(Text1.Text) + Val(Text2.Text)End SubPrivate Sub Command2_Click()Text3.Text = Val(Text1.Text) - Val(Text2.Text)End SubPrivate Sub Command3_Click()Text3.Text = Val(Text1.Text) * Val(Text2.Text)End SubPrivate Sub Command4_Click()Text3.Text = Val(Text1.Text) / Val(Text2.Text)End Sub实验题目3:设计一个能够统计某学生三门课程成绩总分和平均分的程序。
.1.一串字符求有多少字母,有多少量字,有多少其余PrivateSubButton1_Click(ByValsenderAsSystem.Object,By ValeAsSystem.EventArgs)HandlesDims,c,q,w,rs=Fori=1ToLen(s)c=Mid(s,i,1)IfUCase(c)>="A"AndUCase(c)<="Z"Thenq=q+1ElseIfc>="0"Andc<="9"Thenw=w+1Elser=r+1EndIfNext="字母有"&q&"个数字有"&w&"个其余有"&r&"个"EndSub2.一串字符以?结尾,求有多少字母,有多少量字,有多少其余PrivateSubButton1_Click(ByValsenderAsSystem.Object,By ValeAsSystem.EventArgs)HandlesDims,a,z,x,c,is=a=Mid(s,1,1)i=1DoWhilea<>"?"IfUCase(a)>="A"AndUCase(a)<="Z"Thenz=z+1ElseIfa>="0"Anda<="9"Thenx=x+1Elsec=c+1EndIfi=i+1a=Mid(s,i,1)Loop=z&x&cEndSub3.给定一个数字求它是几位数字,如(1).12345(2).-12345PrivateSubButton1_Click(ByValsenderAsSystem.Object,By ValeAsSystem.EventArgs)HandlesDims,c,js=c=Trim(Str(s))IfInt(c)=cThen...Ifc>=0Then="是"&Len(c)&"位数"Else="是"&Len(c)-1&"位数"EndIfElseIfc>=0ThenFori=1ToLen(c)IfMid(c,i,1)="."ThenExitForj=j+1Next="小数点前有"&j&"位数"&" 小数点后有"&Len(c)-j-1&"位数"ElseFori=1ToLen(c)IfMid(c,i,1)="."ThenExitForj=j+1Next="小数点前有"&j-1&"位数"&" 小数点后有"&Len(c)-j-1&"位数"EndIfEndIfEndSub4.求周率公式PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.Even tArgs)HandlesDima,s,n,pia=1n=1WhileMath.Abs(1/n)>pi=pi+a*(1/n)n=n+2a=-aEndWhile=4*piEndSub5.求自然数 e 公式e=1+1+1/2!+1/3!+⋯+1/n!+⋯.PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.Even tArgs)HandlesDimn,e1,ln=1e1=1While1/n>...l=1Fori=1Tonl=l*iNextn=n+1e1=e1+1/lEndWhile=e1EndSub6.右直角三角形PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.E ventArgs)HandlesDimn,s=""n=Val(TextBox1.Text)Fori=1Tons=""&=Space(n-i)Forj=1Tois&="*"Next&=s&vbCrLfNextEndSub7.等腰三角形PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.E ventArgs)HandlesDimn,s=""n=Val(TextBox1.Text)Fori=1Tons=""&=Space(n-i)Forj=1To2*i-1s&="*"Next&=s&vbCrLfNextEndSub8.倒等腰三角形PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.E ventArgs)HandlesDimn,s=""...n=Val(TextBox1.Text)Fori=nTo1Step-1s=""&=Space(n-i)Forj=2*i-1To1Step-1s&="*"Next&=s&vbCrLfNextEndSub9.右上角的直角三角形PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.E ventArgs)HandlesDimn,s=""n=Val(TextBox1.Text)Fori=nTo1Step-1s=""&=Space(n-i)Forj=iTo1Step-1s&="*"Next&=s&vbCrLfNextEndSub10.菱形PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.E ventArgs)HandlesDimn,s=""Fori=1To6s=""&=Space(i-1)Forj=1To12s&="*"Next&=s&vbCrLfNextEndSub11.水仙花数字三位数字的个位数字的立方和等于该数字自己(1).判断输入的数字是不是水仙花数PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.E ventArgs)HandlesDims,a,b,c...s=Val(TextBox1.Text)=""a=s\100b=(s-a*100)\10c=sMod10Ifa^3+b^3+c^3=sThen&=s&"是水仙花数"Else&=s&"不是水仙花数"EndIfEndSub(2).找出全部的水仙花数PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.E ventArgs)HandlesDims,a,b,c="水仙花数是"&vbCrLfFors=100To999a=s\100b=(s-a*100)\10c=sMod10Ifa^3+b^3+c^3=sThen&=s&vbCrLfEndIfNextEndSub12.完整数正整数的因数之和等于这个数(1).判断输入的数字是不是完整数PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.E ventArgs)HandlesDims,j,l,a(100)s=Val(TextBox1.Text)j=1Fori=1Tos-1IfsModi=0Thena(j)=ij=j+1EndIfNextFori=1Tojl=l+a(i)NextIfl=sThen=s&"是完整数"Else...=s&"不是完整数"EndIfEndSub(2).找出1到n内的完整数,n由用入PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.Even tArgs)HandlesDimn,jn=Val(TextBox1.Text)=""Forp=2Tonj=0Fori=1Top-1IfpModi=0Thenj=j+iEndIfNextIfj=pThen&=p&" "EndIfNextEndSub13.示1,1,2,3,5,8,13,21⋯⋯ F(i)=f(i-1)+f(i-2)PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.Even tArgs)HandlesDimf(30)f(1)=1f(2)=1Fori=3To30f(i)=f(i-1)+f(i-2)Next=""Fori=1To30&=f(i)&","IfiMod6=0Then&=vbCrLfNextEndSub ..。
索引一、在窗体上画一个文本框,其名称为Text1,Text属性为空白。
再画一个命令按钮,其名称为C1,Visible属性为False。
编写适当的事件过程。
程序运行后,如果在文本框中输入字符,则命令按钮出现。
二、计算圆的周长和面积:在窗体中添加一个文本框(Text1)和一个对应的标签(Label1),再添加两个命令按钮(Command1和Command2)和一个图片框(Picture1)。
程序运行时,当单击Command1按钮后,计算圆的周长;当单击Command2按钮后,计算圆的面积;计算结果输出在图片框中。
(要求在未输入半径前两个按钮呈灰色不可用。
)三、在窗体上添加三个文本框和对应的三个标签,标签的标题分别是“个位”、“十位”、“百位”。
程序运行时,当单击窗体后,随机产生一个【100,999】区间内的整数,将它的个位、十位、百位数字分别显示在对应的文本框中。
四、设计一个计算程序:在窗体上添加四个文本框和四个对应的标签,标签的标题分别是“语文”、“数学”、“外语”、“平均成绩”,三个命令按钮,标题分别为“清除”、“计算”、“退出”。
程序运行后,用户按“清除”按钮,则清除文本框中显示的内容,按“计算”按钮,则计算三科平均成绩,将计算结果显示在第四个文本框中(计算结果保留小数点后一位)。
单击退出按钮则程序退出。
五、某税务部门征收所得税,规定如下:(1)收入200元以内,免征。
(2)收入在200~400元,超过200元的部分纳税3%。
(3)收入超过400元的部分,纳税4%。
(4)当收入达5000元或超过时,将4%税金改为5%。
编程序实现上述操作。
六、给定三角形的三条边的边长,计算三角形的面积。
编写程序,首选判断给出的三条边能否构成三角形,如可以构成,则计算并输出该三角形的面积,否则要求重新输入。
当输入-1时结束程序。
七、编程求100以内的全部素数。
八、编程打印钻石图案。
九、输出杨辉三角形。
十、有一个数组,包含了10个不同的随机整数(20~90),要求计算出它们的平均值,并输出这个数组中最接近于平均值的数。
1、随机产生三个100-300之间的整数,判断这三个整数是否能构成三角形,如果可以,求三角形的面积。
Dim x As Integer, y As Integer, z As IntegerDim c As Single, s As Singlex = Int(Rnd * 201 + 100)y = Int(Rnd * 201 + 100)z = Int(Rnd * 201 + 100)If x + y > z And x + z > y And y + z > x Thenc = (x + y + z) / 2s = Sqr(c * (c - x) * (c - y) * (c - z))Print "三角形面积是:" & sElsePrint "构不成三角形"End If2、随机产生0-100之间的60名学生的数学分数,分别统计分数在[)10,0、[)20,10、[)30,20、[)40,30、[)50,40、[)60,50、[)70,60、[)80,70、[)90,80、[]10090、之间的学生人数。
,Dim a%, b%, c%, d%, e%, f%, g%, h%, i%, j%Dim x As SingleFor m = 1 To 60 '产生60名学生的分数x = Rnd * 101 '产生0-100的分数Print x;If x >= 90 Thena = a + 1ElseIf x >= 80 Thenb = b + 1ElseIf x >= 70 Thenc = c + 1ElseIf x >= 60 Thend = d + 1ElseIf x >= 50 Thene = e + 1ElseIf x >= 40 Thenf = f + 1ElseIf x >= 30 Theng = g + 1ElseIf x >= 20 Thenh = h + 1ElseIf x >= 10 Theni = i + 1Elsej = j + 1End IfNext mPrint a, b, c, d, e, f, g, h, i, j3、我国有13亿人口,按照人口年增长0.8%计算,多少年以后我国人口超过26亿。
Dim x As Double '人数一定要定义成双精度的Dim n As Integerx = 1300000000n = 0Do While x <= 2600000000#x = x * 1.008n = n + 1LoopPrint n; "年以后,我国人口将超过26亿"4、编写一个程序求一元二次方程的根,要求对输入系数的合法性进行验证,并规范输出结果(保留两位小数)。
(上机指导P44)Dim a!, b!, c!, d!, x1!, x2!a = Text1.Textb = Text2.Textc = Text3.Textd = b * b - 4 * a * cIf a = 0 ThenMsgBox "a不能为0" '判断是否能构成一元二次方程ElseIf d >= 0 Thenx1 = (-b + Sqr(d)) / (2 * a) '求方程的两个根x2 = (b + Sqr(d)) / (2 * a)x1 = Format(x1, ".##") '对根规范化输出x2 = Format(x2, ".##")End IfPrint x1, x25、某次歌手大奖赛,共有10名选手,有10名评委打分。
要求评委给10位选手打分,去掉一个最高分,去掉一个最低分,求出该选手的平均分。
Dim i As IntegerDim j As IntegerDim max As Single, min As Single, sum As Single, aver As SingleFor i = 1 To 10 '十个选手的成绩max = 0min = 100sum = 0For j = 1 To 10 '十个评委的分数x = Rnd * 101 '产生0-100的分数If x > max Then max = xIf x < min Then min = xsum = sum + xNext javer = (sum - max - min) / 8Print aver;Next i6、求1到100以内的素数。
Dim i As Integer, j As Integer, prime As BooleanFor i = 1 To 100prime = TrueFor j = 2 To Sqr(i) '判断一个数是否是素数If i Mod j = 0 Thenprime = FalseEnd IfNext jIf prime Then '如果prime = True则i是素数Print i & "是素数"ElsePrint i & "不是素数" '如果prime = False则i不是素数End IfNext i7、求出100以内的所有勾股数(勾股数为a2+b2=c2,c为自然数,且a<>b)Dim a As Integer, b As Integer, c As IntegerFor a = 1 To 100For b = 1 To 100For c = 1 To 100If c * c = a * a + b * b And a <> b ThenPrint a; b; c;PrintEnd IfNext cNext bNext a8、把输入的字符串逆序输出。
Dim str As String, strRe As StringDim i As Integerstr = Text1.Text '原字符串For i = 1 To Len(str)strRe = Mid(str, i, 1) & strRe '字符串逆序Next iText2.Text = strRe '逆序后的字符串9、随机产生0-100之间的60名学生的数学分数,分别统计分数在[)10,0、[)20,10、[)30,20、[)40,30、[)50,40、[)60,50、[)70,60、[)80,70、[)90,80、[]90、之间的学生人数。
,100(用数组实现)Dim i As Integer, s(1 To 10) As Integer, mark(1 To 60) As Integer,For i = 1 To 60mark(i) =int( Rnd * 101) '随机产生0-100之间的分数Print mark(i); '输出60个分数Select Case mark(i)Case Is < 10s(1) = s(1) + 1Case Is < 20s(2) = s(2) + 1Case Is < 30s(3) = s(3) + 1Case Is < 40s(4) = s(4) + 1Case Is < 50s(5) = s(5) + 1Case Is < 60s(6) = s(6) + 1Case Is < 70s(7) = s(7) + 1Case Is < 80s(8) = s(8) + 1Case Is < 90s(9) = s(9) + 1Case Is < 100s(10) = s(10) + 1End SelectNext iPrint '换行For i = 1 To 10Print s(i); '输出各个分数段的人数Next i10、随机产生10个同学的成绩[]100,60随机整数存入数组,求出数组中的最高分,最低分。
Dim i As Integer, mark(10) As Integer, min As Integer, max As IntegerFor i = 1 To 10mark(i) = Int(Rnd * 41 + 60) '随机产生60-100之间的分数Print mark(i); '输出分数Next imin = mark(1)max = mark(1)For i = 2 To 10If mark(i) > max Then max = mark(i) '找出最大数If mark(i) < min Then min = mark(i) '找出最小数Next iPrint '换行Print "min="; min; "max="; max11、在上一题的基础上,采用动态数组随机生成N 个同学的成绩[]100,60,求平均分,并统计高于平均分的人数。
Dim mark() As Integer, i As Integer, n As Integer, aver As Singlen = InputBox("请输入学生人数")ReDim mark(1 To n) '重新定义数组aver = 0For i = 1 To nmark(i) = Int(Rnd * 41 + 60)aver = aver + mark(i)Next iReDim Preserve mark(1 To n + 2) '数组保留以前的数制不变mark(n + 1) = aver / nmark(2) = 0For i = 1 To nIf mark(i) > mark(n + 1) Then mark(n + 2) = mark(n + 2) + 1Print mark(i); '输出学生成绩Next iPrint mark(n + 1); mark(n + 2) '输出平均分与高于平均分的人数12、随机生成包含10个数组元素的有序数组,然后第一个与第六个进行交换,第二个与第七个进行交换。
,并把原数组以及交换后的数组分别在窗体上显示出来。
Dim s(1 To 10) As IntegerFor i = 1 To 10 '产生10个数s(i) = Int(Rnd * 101)Print s(i); '输出交换前的数值Next iPrintFor i = 1 To 5 '实现交换t = s(i)s(i) = s(5 + i)s(5+ i) = tNext iFor i = 1 To 10Print s(i); '输出交换后的数值Next i13、已知数组a=Array(1,4,8,5,10),b(6),通过数组a 给数组b 赋值;用选择法按照升序对数组b 排序,对排序后的数组插入元素6,使b 数组有序;删除元素5,并使数组元素个数减1。