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

PHPでピラミッド状のパターンを出力するプログラムの書き方

PHPでは、ループ処理を組み合わせることで、アスタリスク(*)を使ったピラミッド状のパターンを簡単に出力できます。ここでは、関数を定義して指定した行数分のピラミッドを表示するサンプルコードを紹介します。

サンプルコード

<?php
function print_pattern($val)
{
   $num = 2 * $val - 2;
   for ($i = 0; $i < $val; $i++)
   {
      for ($j = 0; $j < $num; $j++)
      echo " ";
      $num = $num - 1;
      for ($j = 0; $j <= $i; $j++ )
      {
         echo "* ";
      }
      echo "\n";
   }
}
$val = 7;
print_pattern($val);
?>

実行結果

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

プログラムの解説

このプログラムでは、print_pattern という名前の関数を定義しています。この関数は、ピラミッドを生成する行数を受け取り、その行数だけ繰り返し処理を行います。

処理の流れは以下のとおりです。

  • 変数 $num の初期化: $num = 2 * $val - 2 により、最初の行に必要な空白(スペース)の数を計算します。行が進むごとにこの値は1ずつ減らしていきます。
  • 外側のforループ: 行数($val)の回数だけ繰り返し、各行の出力を制御します。
  • 内側の1つ目のforループ: 各行の先頭に出力する空白を表示します。これにより、ピラミッドが中央に寄った形になります。
  • 内側の2つ目のforループ: 現在の行番号に応じた数のアスタリスク(*)とスペースを出力します。
  • 改行の出力: 各行の終わりに echo "\n"; を使って改行を挿入し、次の行へ移ります。

最後に、出力したい行数(ここでは7)を引数として print_pattern($val) を呼び出すことで、7段のピラミッドがコンソール上に表示されます。

このように、二重ループ(ネストされたループ)を使うことで、行ごとの空白と記号の数を制御し、さまざまな図形パターンを自由に生成できます。行数を変更すれば、任意の大きさのピラミッドを出力することも可能です。

  1. Cプログラムで行列を対角パターンに沿って数値出力する方法

    この課題は、n×nの行列を対角パターンで出力することです。 例えば n が 3 の場合、対角パターンに従って行列を出力すると、次のような配置になります。 そして、実際の出力結果は以下の通りです。 実行例 Input: 3 Output: 1 2 4 3 5 7 6 8 9 Input: 4 Output: 1 2 4 7 3 5 8 11 6 9 12 14 10 13 15 16 考え方 一見すると、「数値 n を受け取り n×n の行列を生成し、それを対角方向に走査しながら別の行列へ値を格納する」というアプローチが思い浮かびます

  2. C++で中空ピラミッドとダイヤモンドパターンを出力するプログラムの作り方

    この記事では、C++を使って中空(ホロー)のピラミッドとダイヤモンドのパターンを生成する方法を解説します。塗りつぶし(ソリッド)のピラミッドパターンは比較的簡単に作成できますが、中空にするにはいくつかの工夫が必要です。ポイントは、ループと条件分岐を組み合わせて「星を出す位置」と「空白を入れる位置」を制御することです。 中空ピラミッドの出力 ピラミッドでは、1行目に星(*)を1つだけ出力し、最終行にはn個の星を連続して出力します。それ以外の行では、行頭と行末にちょうど2つの星を出力し、その間は空白で埋めます。これにより、輪郭だけの中空ピラミッドが完成します。 サンプルコード #include &