文字を使った C++ の逆半ピラミッドパターン

C++Beginner
オンラインで実践に進む

はじめに

この実験では、C++ で文字を使って逆半ピラミッド構造を表示する方法を学びます。このパターンは、C++ のネストされたループ構造を利用して生成できます。

新しい C++ ソースファイルを作成する

まず、新しい C++ ソース ファイルを作成しましょう。ターミナルを開き、~/project ディレクトリに移動します。次のコマンドを使用して、main.cpp という名前の新しい C++ ソース ファイルを作成します。

cd ~/project
touch main.cpp

main 関数を書く

プログラムの最初のステップは、main 関数を書くことです。この関数には、プログラムで使用するすべての他の関数とデータ構造が含まれます。まず、入出力操作に使用される iostream ライブラリをインクルードします。

#include <iostream>

int main() {
    // コードをここに記述します
    return 0;
}

行数をユーザーに尋ねる

次のステップは、ユーザーにピラミッドの行数を尋ねることです。これを行うには、cincout 関数を使用します。

std::cout << "Enter the number of rows in the pyramid: ";
int rows;
std::cin >> rows;

ネストされたループを使ってパターンを生成する

次に、文字を使って逆半ピラミッド パターンを生成しましょう。ここでのアプローチは、ネストされたループを使うことです。外側のループはピラミッドの行を通り、内側のループはその行の各列を通ります。ここにパターンを生成するコードを示します。

char c, first, last; // 変数を定義する
for(int i = rows; i >= 1; i--) { // 外側のループ
    first = 'A';
    last = first + i - 1; // 最後の要素を定義する
    c = 'A'; // 変数 `c` を `A` に定義する
    for(int j = 1; j <= i; j++) { // 内側のループ
        std::cout << c << " "; // 文字と空白を表示する
        c++; // 次の文字にシフトする
    }
    std::cout << std::endl;
}

このコード ブロックでは、ネストされたループのコードが特定の行の文字数を決定するために使用されます。それは c = 'A' から始まり、特定の行の最後の文字に達するまで増やし続けます。

プログラムをコンパイルして実行する

プログラムを書いたら、次のコマンドを使ってコンパイルします。

g++ main.cpp -o main &&./main

プログラムにエラーがなければ、出力は次のようになります。

Enter the number of rows in the pyramid: 6
F F F F F F
E E E E E
D D D D
C C C
B B
A

出力を検証する

出力を検証するには、プログラムによって生成された出力が期待される出力と比較して正しいかどうかを確認します。この場合、期待される出力は次のとおりです。

Enter the number of rows in the pyramid: 6

The required Reverse Pyramid pattern containing 6 rows is:

Row ## 1 contains characters from A to F : F F F F F F
Row ## 2 contains characters from A to E : E E E E E
Row ## 3 contains characters from A to D : D D D D
Row ## 4 contains characters from A to C : C C C
Row ## 5 contains characters from A to B : B B
Row ## 6 contains characters from A to A : A

まとめ

この実験では、C++ を使って文字を使って逆半ピラミッド構造を表示する方法を学びました。ネストされたループを使ってこのパターンを実現する方法を学び、ネストされた構造をどのように操作するかを理解しました。これらのパターンを練習することで、プログラミングにおけるネストされたループに慣れるようになります。