Vbs乘法表

时间:2013-03-08 13:30:48

标签: vbscript

我正在为我的编程类创建资源,实际上是非常基本的脚本,我找到了这个网站,并通过它查看有很多关于脚本的有用的东西,但我正在搜索的东西不在列表上或我没有使用正确关键词 无论如何我的问题是 我的老师让我写一个Vbs打印乘法表,我做了研究,这就是我现在的位置;

dim sum, arraynum(), arrayline1, count, arraynum2(), arrayline2, arraynum3(), arrayline3, arraynum4(), arrayline4, arraynum5(), arrayline5

count=1
sum=1
arrayline1=1

for count=1 to 5
    redim preserve arraynum(arrayline1)
    redim preserve arraynum2(arrayline2)
    redim preserve arraynum3(arrayline3)
    redim preserve arraynum4(arrayline4)
    redim preserve arraynum5(arrayline5)
    arraynum(arrayline1)=sum
    arraynum2(arrayline2)=sum*2
    arrayline2=arrayline2+1
    arraynum3(arrayline3)=sum*3
    arrayline3=arrayline3+1
    arraynum4(arrayline4)=sum*4
    arrayline4=arrayline3+1
    arraynum5(arrayline5)=sum*5
    arrayline5=arrayline5+1
    sum=sum+1
    arrayline1=arrayline1+1
next

wscript.echo join(arraynum) & vbcrlf & join(arraynum2) & vbcrlf & join(arraynum3) & vbcrlf & join
(arraynum4) & vbcrlf & join(arraynum5)

' Its printing like;
'   1 2 3 4 5
'   2 4 6 8 10
'   3 6 8 12 15
'   4 8 12 16 20
'   5 10 15 20 25

你可以看到他们不是一条直线而且我不能用输入来做这个我的意思是拿一个输入并显示乘法表我希望我让自己足够清楚,如果它不是太多要求我怎么能在他们之间设置边界或者是否可能。

1 个答案:

答案 0 :(得分:0)

诀窍是将leftpadding应用于您正在打印的值:计算值包含的字符数,从固定数量中减去它们,并为该值添加相同数量的空格。 这是一个替换和左键垫vbTab字符的示例。如果您使用join而不是默认空格vbTab数组,则可以使用此类函数。

因为这是一个家庭作业,我还添加了一些代码,递归地得到一个数字的倍数,从0开始。只是为了触发一些好奇心。我不建议只复制粘贴它,它不符合您的要求:“从1开始。”

dim multiple

' Get the numbers 0 to 5
for each multiple in split(getMultiples(1,5), vbTab)
    ' print the multiplication table for each of this numbers
    wscript.echo trim(TabToLpad(getMultiples(multiple, 5), 10))
next

' Does the calculation and returns a Tab delimited string of all multiples
function getMultiples(nr, amount)
    getMultiples = 0
     ' As long as the amount is larger then 0, get the next multiple
    if amount > getMultiples then getMultiples = getMultiples(nr, amount-1) & vbTab & (nr * amount)
End function

' Pads each value in a tab delimited string with the nrPadChars spaces. Returns a string.
function tabToLpad(str, nrPadChars)
    dim part
    for each part in split(str, vbTab)
        tabToLpad = tabToLpad & string(nrPadChars - len(part), " ") & part
    next
End Function