VB问题,求大虾帮忙写下详细解答过程,求第一行与第二行的内容 10

optionexplictprivatesubcommand1_click()dimsasstrings="ABC"backsPicture1.printPicture1... option explict
private sub command1_click()
dim s as string
s="ABC"
back s
Picture1.print
Picture1.Prints
end sub
private sub back(st as string)
if len(st)>1 then
back(right(st,len(st)-1))
end if
picture1.print left(st,1)
end sub
展开
 我来答
huohua66zhaobo
2011-08-17 · TA获得超过8353个赞
知道大有可为答主
回答量:2555
采纳率:0%
帮助的人:683万
展开全部
先说下你的程序有几处错误:
1, Option Explicit 程序里少了个i
2, Picture1.Print s S与那应该有个空格
下面来说说这个程序
这个程序关键是你没有理解递归函数的过程: 逐层调用,逐层返回
建议看下递归函数的执行过程 递归将导致你的输出是从最后一次调用函数输出,逐层向外输出
back(right(st,len(st)-1)) 导致这个函数被调用三次 详细你可以自己想
第一次传的是 ABC 第二次传的是 BC 第三次传的是 C
因此输出是逆过来的 即
C
B
A
ABC
答案就是C B
关于递归函数执行的过程你可以看下这里
http://zhidao.baidu.com/question/307271648.html
fangfang0im
2011-08-03 · TA获得超过177个赞
知道小有建树答主
回答量:207
采纳率:100%
帮助的人:117万
展开全部
Option Explicit '要求变量声明
Private Sub command1_click()
Dim s As String '定义S为字符串型
s = "ABC" 's="ABC"
back s '调用BACK 函数
Picture1.Print '空打印
Picture1.Print s '打印S 结果
End Sub
Private Sub back(st As String)
If Len(st) > 1 Then '如果ST的长度大于1 (ST=S="ABC") len(ABC)=3
back (Right(st, Len(st) - 1)) ' 再次调用调用BACK 函数 执行后变成 back BC
End If
Picture1.Print Left(st, 1) '打印ST最左边的一个字符
End Sub

'所以最后显示结果为:
C
B
A

ABC
追问
back函数是什么意思的?    back (Right(st, Len(st) - 1))  ' 再次调用调用BACK 函数   执行后变成 back BC
End If
Picture1.Print Left(st, 1) '打印ST最左边的一个字符
就能得到最后结果了,还是不懂,能不能在详细点
追答
Private Sub back(st As String)
这里面的内容就是BACK 函数。
如出现 BACK S 就表示要调用这个函数,S=“ABC” 那么就是调用BACK ABC
而ABC又用ST 来表示,ST就是BACK后面要调用的参数。

Picture1.Print Left(st, 1)
1、Picture1.Print 的意思就是在图片控件中显示
2、Left(st, 1) 这是需要显示的内容,内容的结果是Left(st, 1)
3、left 也是一个函数,是VB的专用函数,意思用是ST 最左边一字符
4、如果写成 Left(st, 2) 表示结果是st最左边两个字符 right(st, 2) 表示结果是st最右边两个字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式