2013-03-08 74 views
0

我正在爲我的編程類做好資源,它的實際上非常基本的腳本,我發現這個網站,並通過它看到有真正的腳本很多有用的東西,但我尋找的東西不是在列表上或我沒有使用正確的關鍵字 無論如何,我的問題是 我的老師問我寫一個VBS打印乘法表,我做了研究,這是我現在的位置;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 

,你可以看到他們是不是在一條直線和我不是能與輸入我的意思是需要一個輸入和顯示乘法表,要做到這一點,我希望我自己很清楚,如果它不太多問,我怎麼能把他們之間的邊界,或者是可能的。

回答

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 
+0

Thanks for answer @AutomatedChaos 不,我不會複製粘貼它,而是嘗試改進我的腳本。我做了一些更多的研究,我現在真的很接近,但仍然有錯誤,我不能做出一條直線我試圖做左填充,但每次拋出一個錯誤,這是我現在的位置 'Dim MaxNum Dim x ,Y,SUM2,總和 MaxNum來=輸入框( 「請輸入乘數範圍:」) X = 1個 Y = 1個 SUM2 = 1 對於y = 1要MaxNum來 對於x = 1至MaxNum來 REDIM保存arraynum( SUM2) arraynum(SUM2)=總和 SUM2 = SUM2 + 1個 總和= X * Y 接着 接着 Wscript.Echo加入(arraynum,CHR(5)&VBtab)' – Elessear 2013-03-09 05:17:04