Dim chicken As Integer Dim foot As Integer
- Slides: 16
Dim chicken As Integer Dim foot As Integer For chicken = 1 To 78 foot = chicken * 2 + (79 - chicken) * 4 If foot = 200 Then Exit For End If Next chicken 问题:如果找不到答案,如 何输出“err”的提示? If chicken = 79 Then s = "err" Else s = "鸡: " & chicken & "; 兔子:" & 79 - chicken End If
另一种方案 Dim chicken As Integer Dim foot As Integer Dim find As Boolean find = False For chicken = 1 To 78 foot = chicken * 2 + (79 - chicken) * 4 If foot = 200 Then find = True Exit For End If Next chicken 下面表达式,哪些可以使用? 1)find = True 2)find = False 3)Not find 4)find If ________ Then s = "err" Else s = "鸡: " & chicken & "; 兔子:" & 79 - chicken End If
00 01 99 03 02 01 98 00 02 03 …… 98 99 J 让变量J依次取 0到 99这 100个不同的值, 同时对于 J的每个确定的值乘以 10加上25006这样就能形成 一个可能解. J 0 1 2 …… 乘以 10 00 10 20 加上25006 25016 25026 98 980 25986 99 990 25996 验证条件: N MOD 37=0 OR N MOD 67=0
Do循环与for循环互换 • j = 0 • Do While j<=99 • n = 25006 +j*10 For j=0 to 99 • If n Mod 37 = 0 Or n Mod 67 = 0 Then • List 1. Add. Item Str(n) • c = c + 1 • End If • j =j+1 • Loop Next j
多种方案 For i = 0 To 9 For n = 0 To 9 x = 25006 + i * 100 + n * 10 If x Mod 37 = 0 Or x Mod 67 = 0 Then List 1. Add. Item x c=c+1 End If Next n Next i For i = 0 To 9 For n = 0 To 9 x = Val("25" & i & n & "6") If x Mod 37 = 0 Or x Mod 67 = 0 Then List 1. Add. Item x c=c+1 End If Next n Next i
例2:辗转相除法求最大公约数 Dim a As Integer, b As Integer a = 6 b = 9 If a < b Then t = a: a = b: b = t A=9 B=6 R=3 ------A=6 B=3 R=0 ‘交换a,b End If r = a Mod b Do While r <> 0 a = b b = r r = a Mod b Loop Label 1. Caption = "最大公约数:" + Str(b) 迭代法
例3:找出 2到 1000的所有素数。 Dim n As Integer, i As Integer, j As Integer Dim flag As Boolean For j = 2 To 1000 n = j flag = True i = 2 Do While i <= Int(Sqr(n)) And flag If j Mod i = 0 Then flag = False Else i = i + 1 End If Loop If flag = True Then List 1. Add. Item Str(j) + "是素数!" End If Next j 关键: 1. 枚举要优化算法,减 少无用的循环。 2. Flag的作用很大。
Dim result As String, s As String, c As String Dim n As Integer, i As Integer, j As Integer s = Text 1. Text 2. Text = " " For i = 1 To Len(s) n = Asc(Mid(s, i, 1)) If n >= 65 And n <= 90 Or n >= 97 And n <= 122 Then result = result + Mid(s, i, 1) Text 2. Text = result End If Next i 为什么j要从2开始? j = 2 c = Mid(result, 1, 1) j = 2 Do While j <= Len(result) If Mid(result, j, 1) > c Then c = Mid(reuslt, j, 1) jj == jj ++ 11 Loopj = j + 1 Text 3. Text = c 问:
Dim s 1 As String, s 2 As String, st As String Dim len 1 As Integer, len 2 As Integer, i As Integer, m As Integer s 1 = Text 1. Text: s 2 = Text 2. Text len 1 = Len(s 1): len 2 = Len(s 2) i = 1: m = 0 i <= len 1 Do While i <= i, len 1 Mid(s 1, len 2) = s 2 If Mid(s 1, i, len 2) = s 2 Then i = i + len 2 关键:如果找到相同的单词, i = i + len 2 就要跳过这个位置。 m = m + 1 Elsest = st + Mid(s 1, i, 1) i = i + 1 End If Loop Text 3. Text = st m是删除的单词数量 Label 1. Caption = Str(m)
- Integer operations
- Dim n as integer
- Dim a as integer
- Dim s as integer=10 , text1=s
- Dim integer
- Chicken foot dbq
- You put your right hand in
- Kind of triangle
- The cheetah is the fastest animal positive degree
- Dim sub
- Pengertian mad ta'zim
- Access vba bof
- Ha gow siu mai
- Dim a %
- Dim man
- Mini asocijacije
- Is dim an adjective