素数案例-高职考VB技能提升

简介: 素数案例-高职考VB技能提升

素数其实就是我们平时说的质数。

在一般领域,对正整数n,如果用2到n(根号n)之间的所有整数去除,均无法整除,则n为质数。


做一个案例吧!

案例~根据题意来填空:


根据这个题目,我们来设计并制作一下这个案例。

首先来按照题目意思来设计一下:




文本框相关设置:

–1multiline  选择 true代表可以多行写。

–2scrollbar2代表打开纵向滚动条。


相关属性:



求解按钮随意设计一下,题目中没有要求,那就没有关系。




双击“求解”按钮,下面开始码代码:

首先,在点击求解的时候,我们让文本框清空。使用如下代码:

Text1.Text = ""

然后,我们解释题目中出现的几个函数的意思。

Sqr函数:求平方根

Chr(13)\r回车键

Chr(10):   \n换行

Int函数:向下取整


题目分析:

这个题目是要输出3至100之间所有的为素数的数字有哪些。

K = Int(Sqr(n))表示获取当前这个数的平方根,并进行向下取整后返回值存放到K变量。

i = 2是因为判断一个数为素数,只要从2开始除就可以了。

flag = 0   '标记0默认为素数,1表示非素数

内部循环:

Do While i <= K And flag = 0

       If n Mod i = 0 Then flag = 1 Else i = i + 1

Loop

这个循环是核心部分,是判断是否为素数的核心,如果这个数是素数,那么将flag赋值为1。其实这里的代码我们也可以优化的,就是在标记为1后,我们就可以马上退出while循环就可以了,使用exit do。

判断是否为素数,使用if n Mod i=0 用来判断是否能够整除,mod表示取余数,如果没有余数,意味着就是可以整除的。只要是n能被整除的这个数,那它就不是素数。



最后,总结一下本题解题,由于在理论题中需要思考,我们按照如下思路。

–1、阅读题意

–2、看关键代码

–3、难题可以通过调试来掌握


本案例所有源代码:

Dim n As Integer
Dim K As Integer
Private Sub Command1_Click()
Text1.Text = ""
For n = 3 To 100
    K = Int(Sqr(n))
    i = 2
    flag = 0   '标记0默认为素数,1表示非素数
    '循环作用,验证这个数不是素数,标记为1
    Do While i <= K And flag = 0
        If n Mod i = 0 Then flag = 1 Else i = i + 1
    Loop
    If flag = 0 Then
        Text1.Text = Text1.Text & n & Chr(13) & Chr(10)
    End If
Next n
End Sub
相关文章
|
算法
高职考VB技能提升教程003期 杨辉三角 高考信息技术必备
高职考VB技能提升教程003期 杨辉三角 高考信息技术必备
140 0
高职考VB技能提升教程002期 listindex深入理解
高职考VB技能提升教程002期 listindex深入理解
154 0
高职考技能提升教程008期 掷骰子与冒泡排序 VB语言 刘金玉编程
高职考技能提升教程008期 掷骰子与冒泡排序 VB语言 刘金玉编程
高职考技能提升教程005期 字母菱形案例 VB语言 刘金玉编程 高考必备信息技术
高职考技能提升教程005期 字母菱形案例 VB语言 刘金玉编程 高考必备信息技术
高职考技能提升教程009期 求最值与平均值 VB语言 刘金玉编程
高职考技能提升教程009期 求最值与平均值 VB语言 刘金玉编程
高职考技能提升教程010期 回文数(对称数)
高职考技能提升教程010期 回文数(对称数)
高职考技能提升教程004期 字符串查找与替换 高考信息技术必备 刘金玉编程
高职考技能提升教程004期 字符串查找与替换 高考信息技术必备 刘金玉编程
高职考技能提升教程007期 timer定时器综合运用 VB语言 刘金玉
高职考技能提升教程007期 timer定时器综合运用 VB语言 刘金玉
101 0
高职考技能提升教程006期 textbox文本框综合运用 VB语言 高考信息技术必备
高职考技能提升教程006期 textbox文本框综合运用 VB语言 高考信息技术必备
|
索引
高职考技能提升教程011期 生成随机颜色的综合运用
高职考技能提升教程011期 生成随机颜色的综合运用
105 0