2011年12月25日日曜日

[ExcelVBA] ピラミッドを作る


■お題
ピラミッドを作る(問題出典:どう書く?org)
- 問題詳細 -
正の整数nが与えられたときに、高さnのピラミッドを出力するプログラムを作ってください。
n=4の時の出力は下のようになります。
 
   *
  ***
 *****
*******

■解答例
第一引数:繰り返す回数を指定します。
第二引数:繰り返す文字を指定します。
String関数


では、コードです。
Option Explicit

Sub MakePyramid(ByVal n As Integer)
    Dim temp() As String
    ReDim temp(n - 1)
    
    Dim i As Integer
    For i = 1 To n
        temp(i - 1) = String(n - i, " ") & String(2 * i - 1, "*")
    Next
    
    Debug.Print Join(temp, vbLf)
End Sub
3行目:引数に段数を表す値nを受取ります
4行目:変数tempには、各段で表示する*マークを格納するのに使います。最後にJoinで改行を間に挟みます。
5行目:要素の数を再定義します。
7行目:変数i For文で繰り返し回数のカウントに使います
8行目:For文開始。最初は1で最後はn段のn
9行目:temp配列に各段の文字列を格納。String関数を2回使い
最初は、空白を生成し、次に*を生成しています。
10行目:繰り返し
12行目:表示



実際にこんな感じで使う
Option Explicit

Sub Main()
    MakePyramid (10)
End Sub


実行結果
 
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************

0 件のコメント: