C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で作るさまざまなスターパターン(星形パターン)プログラム

CやC++、Javaなどの他のプログラミング言語と同じように、C#でも星形パターン(スターパターン)を表示するプログラムを簡単に作成できます。基本となるのはネストされたループ(二重ループ)です。外側のループで行数を制御し、内側のループで各行に表示する「*」の個数や空白の数を制御します。

それでは、代表的なパターンの例をひとつずつ見ていきましょう。

例1:左揃えの直角三角形

using System.IO;
using System;
class Program {
   static void Main() {
      for (int i = 1; i <= 6; ++i) {
         for (int j = 1; j <= i; ++j) {
            Console.Write("*");
         }
         Console.WriteLine();
      }
   }
}

出力

*
**
***
****
*****
******

このプログラムでは、外側のループ変数 i が行番号を表し、内側のループがその行番号と同じ回数だけ「*」を出力します。その結果、行が進むごとに星が1個ずつ増えていく、もっとも基本的な三角形パターンが描かれます。

例2:右揃えの直角三角形

using System.IO;
using System;
class Program {
   static void Main() {
      int i, j, k;
      int n = 6;
      // パターンを出力するループ
      for (i = 1; i <= n; i++) {
         for (j = 1; j <= n - i; j++) {
            Console.Write(" ");
         }
         for (k = 1; k <= i; k++) {
            Console.Write("*");
         }
         Console.WriteLine("");
      }
      Console.ReadLine();
   }
}

出力

     *
    **
   ***
  ****
 *****
******

こちらは、星の前に空白を出力することでパターンを右揃えにした例です。まず n - i 個の空白を表示してから星を出力するため、行が進むにつれて星が右側へ積み上がっていく形になります。

例3:逆さの直角三角形

using System.IO;
using System;
class Program {
   static void Main() {
      for (int i = 6; i >= 1; --i) {
         for (int j = 1; j <= i; ++j) {
            Console.Write("*");
         }
         Console.WriteLine();
      }
   }
}

出力

******
*****
****
***
**
*

今度は外側のループを逆方向(6から1へ)に回すことで、行が進むごとに星が1個ずつ減っていく逆三角形を作っています。ループの初期値と条件を変えるだけで、図形の向きを自由に反転できるのがポイントです。

例4:ひし形(ダイヤモンド)パターン

using System.IO;
using System;
class Demo {
   static void Main() {
      int a = 1, spaces, k = 6, i = 0, j = 0;
      spaces = k - 1;
      for(i = 1; i < k * 2; i++) {
         for(j = 1; j <= spaces; j++) {
            Console.Write(" ");
         }
         for(j = 1; j < a * 2; j++) {
            Console.Write("*");
         }
         Console.WriteLine("");
         if(i < k) {
            spaces--;
            a++;
         } else {
            spaces++;
            a--;
         }
      }
   }
}

出力

     *
    ***
   *****
  *******
 *********
***********
 *********
  *******
   *****
    ***
     *

最後はひし形のパターンです。前半では空白を減らしながら星を奇数個ずつ増やしてピラミッドを作り、中間点を過ぎたら if 文による条件分岐で逆に空白を増やしながら星を減らしていきます。このように変数の増減を組み合わせることで、上下対称の美しい図形を描くことができます。

まとめ

スターパターンのプログラムは、ループ処理の基礎を身につけるのに最適な練習問題です。「外側のループで行、内側のループで列(星と空白の数)を制御する」という考え方をつかめば、ピラミッド型やひし形など、より複雑なパターンにも応用できます。ぜひ行数や表示する記号を変えて、オリジナルのパターン作りに挑戦してみてください。

  1. 【Java入門】中空の直角三角形の星形パターンを出力するプログラムの書き方

    この記事では、Javaを使って中空の直角三角形の星形パターンを出力する方法を解説します。このパターンは、複数のforループとprint文を組み合わせることで作成できます。 出力される図形の特徴は以下のとおりです。 1行目には星(*)を1つだけ出力する 最終行には n 個の星をすべて並べて出力する それ以外の行では、行頭と行末にのみ星を出力し、間は空白で埋める 実行例:入力と出力 入力 ユーザーから次のようなサイズを入力するとします。 Enter the size : 8 出力 期待される出力は次のとおりです。 中空の直角三角形 : * * * * * * * * * *

  2. Pythonで逆三角形の星形パターン(*)を出力するプログラム

    Pythonで星(アスタリスク)のパターンを逆順、つまり逆三角形の形に出力したい場合、「for」ループを使用するのが最もシンプルな方法です。forループを使えば、指定した範囲の数値を順番に繰り返し処理しながら、必要な文字を必要な回数だけ出力できます。ポイントは、ループが1回回るごとにカウント値を減算していくことです。以下に具体的な実装例を示します。サンプルコードN=6 print(変数Nを + str(N) + に初期化しました) print(逆順の星形パターンを表示します) for i in range(N, 0, -1): print((N-i) * + i * *)実行結果変