判断某个数是否素数:
1.定义为一个function函数过程
第一种方法:
Function prime(ByVal x As Integer) As Boolean 注1
For i = 2 To x – 1 注2
If x Mod i = 0 Then Exit For
Next i
If i > x - 1 Then prime = True 注3
End Function
注1:这里注意形参前面有ByVal,不要ByVal也是可以的,为什么?
因为在function中并未改变x的值,所以加不加ByVal都正确
注2:此句也可以这样写:For i = 2 To x/2 或 For i = 2 To sqr(x)
注3:此句也可以这样写:If i > x - 1 Then prime = True Else prime = False 思考:为什么不要Else prime = False 程序运行也是正确的
另外注意此处的条件i > x – 1的实际含义
调用的时候(调用函数时,最好不要用带call关键字的调用方法)
If prime(x) then………
第二种方法:
Function prime(ByVal x As Integer) As Boolean
Prime=false 注1
For i = 2 To x – 1
If x Mod i = 0 Then Exit Function注2
Next i
prime = True 注3
End Function
注1 此句要不要都可以,思考为什么
注2和注3两条语句与第一种方法的区别
调用的时候
If prime(x) then………
第三种方法:
Function prime(ByVal x As Integer) As integer
Prime=0
For i = 2 To x – 1
If x Mod i = 0 Then Exit Function
Next i
prime = 1
End Function
此方法与上述方法的区别
调用的时候
If prime(x)=1 then………
第四种方法:
Function prime(ByVal x As Integer) As Boolean
Prime=true 注1
For i = 2 To x – 1
If x Mod i = 0 Then
Prime=false 注2
Exit Function 或 Exit For 注3
End if
Next i
End Function
注1 注意此语句的位置
注2 注意此语句的位置
注3 此语句的写法
2.定义为一个sub过程
第一种方法:
Sub prime(ByVal x As Integer, f as boolean)
f=false
For i = 2 To x – 1
If x Mod i = 0 Then Exit For
Next i
If i > x - 1 Then f = True
End Sub
调用的时候(调用Sub过程时,调用语句要作为单独的一条语句)Call prime(x,f) 或者 prime x,f
If f then………
第二种方法:
Sub prime(ByVal x As Integer, f as boolean)
f=false
For i = 2 To x – 1
If x Mod i = 0 Then Exit Sub
Next i
f = True
End Sub
调用的时候
Call prime(x,f) 或者 prime x,f
If f then………
第三种方法:
Sub prime(ByVal x As Integer, f as boolean) For i = 2 To x – 1
If x Mod i = 0 Then Exit Sub
Next i
f = True
End Sub
调用的时候
f=false
Call prime(x,f) 或者 prime x,f
If f then………
分析第三种和前面两种方法的区别
分析sub过程与function函数过程的区别。