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 展开
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 展开
2个回答
展开全部
先说下你的程序有几处错误:
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
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
展开全部
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
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最右边两个字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询