Presentation is loading. Please wait.

Presentation is loading. Please wait.

VB程序设计语言 主讲教师:王 杨.

Similar presentations


Presentation on theme: "VB程序设计语言 主讲教师:王 杨."— Presentation transcript:

1 VB程序设计语言 主讲教师:王 杨

2 列表框和组合框 重要属性 重要方法 Text List(i) ListCount ListIndex Additem RemoveItem
Clear 重要方法

3 思考题 List Additem For Listcount text

4 思考:找出200~1000范围内的所有素数 For n =200 to 1000 Next i
For a = 2 to n-1 if n mod a =0 then Exit For Next a If a > n-1 then Print n

5 For i = 1 to 10 Next i Print “*” ;

6 在窗体上输出5行10列星号 For i = 1 to 5 For j = 1 to 10 Print “*” Next j Print
输出1行10列星号 ; Print “*” For  j = 1 to 10 Next j Print Next i

7 在窗体上输出5行10列星号 For i = 1 to 5 For j = 1 to 10 Print “*” Next j Print
; Print “*” For  j = 1 to 10 Next j Print Next i

8 多重循环 For i = 1 to 5 For j = 1 to 10 2*i-1 Print “*” Next j Print
思考 For i = 1 to 5 1.i,j分别表示什么? ; Print “*” For  j = 1 to 10 Next j 2*i-1 Print Next i

9 多重循环 For i = 1 to 5 For j = 1 to 10 Print “*” Next j 外循环执行一次 Print
思考 For i = 1 to 5 1.i,j分别表示什么? 1.共产生了多少个星号? ; Print “*” For  j = 1 to 10 Next j 2.i取1时,j取了那些值 3.i为1时,j取了那些值 外循环执行一次 内循环执行一遍 Print Next i

10 窗体上打印出由数码1、2、3构成的所有3位数 思考 思考 为什么ATM取款机要限制输入密码次数? 为什么密码越长、各种符号都有更安全?
For a = 0 to 9 for b = 0 to 9 for c = 0 to 9 for d= 0 to 9 for e = 0 to 9 for f = 0 to 9 next f next e next d next c next b Next a For a = 1 To 3 Next a a b c 1 2 3 For b = 1 To 3 Next b For c = 1 To 3 Next c x = 100 * a + 10 * b + c

11 穷举法 a b c a+b+c=100 5×a+b+0.5×c=100 1~18 1~94 100-a-b 真题
将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?  真题 穷举法 a+b+c=100 5×a+b+0.5×c=100 1~18 a 1~94 b 100-a-b c 建立适当的数学模型; 构造穷举的框架(确定穷举范围,合理使用循环语句来实现算法); 通过逐步求精的过程,改善算法,使穷举过程变得更恰当。

12 思考 求一个班25个学生的平均成绩,统计高于平均分的人数 For i = 1 To 25
Next i mark = val(InputBox("输入成绩")) sum = sum + mark aver = sum / 25 For i = 1 to 25 mark = val(InputBox("输入成绩“)) If mark > aver Then n = n + 1 Next i

13 方法二 Dim mark1%, mark2%, • • • ,mark99%,mark25%
Mark1 = InputBox(“输入第1个学生的成绩”) • • • Mark25 = InputBox(“输入第25个学生的成绩”) aver = (mark1 + mark2 + • •+ mark100)/25 If mark1 > aver Then n = n + 1 • • • If mark25 > aver Then n = n + 1 Dim Mark(1 to 25) as integer Mark(1) Mark(2) …… Mark(i) Mark(25)

14 求一个班25个学生的平均成绩,统计高于平均分的人数
Dim mark(1 To 25) As integer For i = 1 To 25 mark(i) = val(InputBox("输入学生的成绩")) sum = sum + mark(i) Next i aver = aver /25 For i = 1 To 25 if mark(i) > aver Then n = n + 1 Next i

15 Dim a(1 to 5,1 to 5) as integer 多维数组的大小是每一维元素的乘积 a(1,1) a(1,2) a(1,3)
For i = 1 to 5 For j = 1 to 5 a(i,j) = val(InputBox("输入学生的成绩")) Next j Next i 多维数组的大小是每一维元素的乘积

16 如何将这25个成绩输出成5行5列? 如何输出对角线上的数? 如何输出四周围的数?

17 静态数组的定义 Dim mark(1 To 100) As Single Option base 1
下标的范围 数组名 Mark(1) Mark(2) …… Mark(i) Mark(100) 数组元素 Option base 1 Private sub Command1_click( ) Dim mark(100) as integer …… End sub

18 二维静态数组 Dim a(5, 5)As Integer,b%(4,4) Dim a(1 to 5, 1 to 5)As Integer
数组名与变量名命名规则相同 数组必须先定义后使用,并且静态数组的上下届必须是常量 若省略下标下界,则默认下界从零开始 Dim a%(1 to 5) 在同一个过程中,数组名不能与变量名同名 每一维的大小:上界-下界+1

19 对 比 Dim m(1 to 9) as integer Dim a(1 to 3,1 to 3) as integer a(1,1)
b% …… f% i% Dim m(1 to 9) as integer m(1) m(2) …… m(5) m(9) Dim a(1 to 3,1 to 3) as integer a(1,1) a(1,2) a(1,3) a(2,1) a(2,2) a(2,3) a(3,1) a(3,2) a(3,3)

20 程序运行时,通过Rnd函数产生25个0~100之间的随机整数,要求显示在窗体上。
之间的随机整数,要求5行5列显示在窗体上。 程序运行时,通过Rnd函数产生25个0~100之间的随机整数,要求显示在窗体上。 Dim a(1to5,1 to5) as integer Dim a(1 to 25) as integer For i = 1 to 5 for j = 1 to 5 a (i,j) = int (rnd*100) next j Next i For i = 1 to 25 a (i) = int (rnd*100) Next i For i = 1 to 5 for j = 1 to 5 print a(i,j); next j print Next i For i = 1 to 25 Print a(i) Next i

21 小结 什么时候需要使用循环? 有哪些循环结构? 列表框和组合框 多重循环 静态数组 素数算法 最大公约数 穷举法

22 作业1 if option1.value=true then m=3 Elseif option2.value=true then m=5
End if n= text1.text n=n+1 If n mod m<>0 then For i = 1 to 5 Next i Do Loop While n mod m <>0 Picture1.print n

23 作业2 List Additem For Listcount text

24 思 考 求一个班全体学生的平均成绩,统计高于平均分的人数。


Download ppt "VB程序设计语言 主讲教师:王 杨."

Similar presentations


Ads by Google