0

私はプログラミングクラスのリソースを作成していましたが、実際には非常に基本的なスクリプトであり、このサイトを見つけて調べてみると、スクリプトに関する有用な情報が本当にたくさんありましたが、探していたものがリストにないか、とにかく正しいキーワードを使用していませんでした質問は、私の先生が掛け算の九九を印刷するための 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

ご覧のとおり、それらは直線ではなく、入力でこれを行うことができませんでした。つまり、入力を取り、そのための乗算表を表示することを意味します。自分自身を十分に明確にしたことを願っています。それらの間に境界を置くか、それは可能ですか。

4

1 に答える 1

0

秘訣は、印刷する値に左パディングを適用することです。値に含まれる文字数を数え、固定量からそれらを差し引き、同じ量のスペースを値に追加します。これは、文字を置き換えて左パッドする例ですvbTabjoinデフォルトのスペースの代わりに配列を使用する場合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
于 2013-03-08T15:40:24.010 に答える