2011年12月25日日曜日

[ExcelVBA] ピラミッドを作る


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

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


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



実際にこんな感じで使う
  1. Option Explicit  
  2.   
  3. Sub Main()  
  4.     MakePyramid (10)  
  5. End Sub  


実行結果
  1.         *  
  2.        ***  
  3.       *****  
  4.      *******  
  5.     *********  
  6.    ***********  
  7.   *************  
  8.  ***************  
  9. *****************  
  10. ******************  

0 件のコメント: