问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

二道vb编程题,代码什么意思,看不懂?详细解释一下,谢谢!!

发布网友 发布时间:2022-05-10 15:23

我来回答

5个回答

热心网友 时间:2023-10-13 11:49

Private Sub Command1_Click()
Dim a() '定义a为数组
a = Array(7, 8, 9, 10) '给数组添加四个值
For k = 0 To 2 Step 0.5 '循环中k的值按顺序为0,0.5,1,1.5,2
s = s + a(k) '累加a(k),但元素数不是小数,所以a(k)的值依次为a(0),a(0),a(1),a(2),a(2),即7+7+8+9+9=40 注意,只有大于1的时候,小数才使用四舍五入而变为整数,系统默认将0.5取整变为0
Next k
Print s '打印结果
End Sub

Dim j '定义变量j
For j = 1 To 13 Step 2 '本来j的值是1,3,5,...,13,但是……
j = j * 3 - 1 '赋j值为自身的三倍减一
Print j '打印结果
Next j '注意!此时j值已改变,见下面分析。

循环头 运算 打印 循环变量累加 下一个循环的j值
j=1 >>> j=j * 3 - 1 >>> j=2 >>>(Next) j=j + 2 >>> j=4
j=4 >>> j=j * 3 - 1 >>> j=11 >>>(Next) j=j + 2 >>> j=13
j=13 >>> j= j * 3 - 1 >>> j=38 >>>(Next) j=j + 2 >>> j= 40 此时j已大于13,退出循环

明白了吧,因为循环变量在循环里面值被改变,所以未能按照1,3,5,... ,13的顺序变化,而是跳跃了。

热心网友 时间:2023-10-13 11:50

Private Sub Command1_Click()
Dim a() //定义数组a
a = Array(7, 8, 9, 10) //给数组元素0到3赋值7到10
For k = 0 To 2 Step 0.5 //for循环,k从0到2,每次累加0.5,就是一共执行for里的语句5次
s = s + a(k) //这里,s是求和累加器,比如第一次k=0,s就取数组元素0的值7,第二次k=0.5(本应该是四舍五入得1,可因为这是整型数,vb到x.6才会进为1,另外k只有取1.5的时候会自动向前进为2,别的都不会,我也不知是什么原因...是不是叫bug呢呵呵,无语),s取数组元素1的值8。所以s的整个累加过程为7+7+8+9+9=40,对应了a(0)+a(0)+a(1)+a(2)+a(2)
Next k //下一个k值
Print s //最终打印s的值
End Sub

Dim j
For j = 1 To 13 Step 2 //for循环,从1开始到13结束,每轮j累加2
j = j * 3 - 1 //第一轮,j=1,计算后j=1*3-1=2。第二轮,j=2+2(由于开头的step2)=4,j=4*3-1=11。第三轮,j=11+2=13(也由于开头的step2,累加2的步长),j=13*3-1=38。(由于之前到了j的终值13,所以不会继续循环)
Print j //打印j的值
Next j

够详细了吧?

热心网友 时间:2023-10-13 11:50

就是For循环的应用,step就是步长,就是从1到3,3到5,5到7,以此类推
for 循环
for [变量]=[起始量] to [终止量]{step [步长]}
[中间代码]
.............
next [变量]
其中{}中是可以省略的,默认为1

热心网友 时间:2023-10-13 11:51

从0开始s=a(0)+a(0.5)+a(1)+a(1.5)+a(2)
因为a = Array(7, 8, 9, 10)
所以s=7+7+8+9+9=40

第二个注意了,他的循环变量是j,但在循环体中j又是在变的
第一次循环时j=1,那么输出j=1*3-1=2
第二次循环时j=4(之前2再加步长2),那么输出j=4*3-1=11
第三次循环时j=13(之前11再加步长2),那么输出j=13*3-1=38

推荐你在VB上下断点跟踪下就出来了

热心网友 时间:2023-10-13 11:52

从0开始s=a(0)+a(0.5)+a(1)+a(1.5)+a(2)
因为a = Array(7, 8, 9, 10)
所以s=7+7+8+9+9=40

第二个注意了,他的循环变量是j,但在循环体中j又是在变的
第一次循环时j=1,那么输出j=1*3-1=2
第二次循环时j=4(之前2再加步长2),那么输出j=4*3-1=11
第三次循环时j=13(之前11再加步长2),那么输出j=13*3-1=38
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么是Medical Literature Analysis and Retrieval System (NLM)的缩 ... 医学工作者的因特网内容简介 2002年的一篇文章英文摘要被《医学文献联机数据库》(MEDLINE)收录,是否... 医学器具medline啥意思 民国市与县的关系是怎样的,市与县分别又是什么? 历代兵制中国民国兵制 冰箱运行时有水流声怎么回事? ud牛郎眼影真假判断 爆闪/没有平替❌ 牛郎眼影真假鉴别方法 鉴别❗️衰败城市牛郎眼影真假,粉质肉眼差距 vb 写k^(1/3)报错 VB 代码里面的K=K+1 什么意思啊, 请把这段代码详解!谢谢 vb中的数值问题 vb中如何使数值转换为带单位的,例1.24K,723.56M 违反了权责利想一致原则可以采取哪些措施 责权对等 什么意思? ​权责一致是权力清单制度的基本原则,主旨题,选A,还是C 怎么自测象棋技术? 双卡手机怎么用两个? 玩象棋如何设置防沉迷 象棋游戏有哪些 下象棋时,要等对方走棋了自己才会想,并不像人家说的能算得很多步。这正常吗? 双卡双待手机如何能用2个? 为什么有的人玩象棋时可以在三十个回合之内绝杀对方? 为什么有的人在玩象棋时车马炮都不损失的情况下就能绝杀对方? 一个双卡双待手机怎样申请两个 双卡手机如何注册两个 一部双卡手机可以申请两个吗? 哪些是单一民族的独立国家 二战前世界有几个独立国家? 有什么网站可以免费不用注册下载压缩打包好的文件(视频,图片,文档)之类的, Vb程序看不懂 vb在数组a中k位置上插入一个元素b? VB中k<1000#什么意思? vb程序a(k)=-50+(100+50)*Rnd()怎么翻译?我不太理解 基本的底妆顺序是什么? vb中dim k(42)什么意思 VB程序选择排序法降序排序中i,j,k弄错了的问题 VB6.0,求两个变量和一个常数K相乘的代码,要按一个按钮键得出结果,而且结果要在文本框中显示。谢 vb 怎样声明一个有十几K字符的变量? 防爆配电箱到底是用什么材质好 vb中i,j,k分别表示什么,i表示行,j表示列,k是什么? 读书最好的方式有哪些? 抖音里没有日历 怎么回事 一道VB题目,求详解 红米10✘怎么没有日历? 求解vb题 vb题,求具体过程 手机日历日期没了怎么弄 vb二级考试范围