C++ でダイヤモンドパターンを作成する

C++C++Beginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、アスタリスク (*) を使用してダイヤモンドパターンを出力する C++ プログラムの作成方法を学びます。このプログラムを段階的に作成していきます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp/BasicsGroup -.-> cpp/variables("Variables") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") subgraph Lab Skills cpp/variables -.-> lab-96205{{"C++ でダイヤモンドパターンを作成する"}} cpp/for_loop -.-> lab-96205{{"C++ でダイヤモンドパターンを作成する"}} cpp/output -.-> lab-96205{{"C++ でダイヤモンドパターンを作成する"}} cpp/user_input -.-> lab-96205{{"C++ でダイヤモンドパターンを作成する"}} end

ユーザーからの入力の取得

以下のコマンドを使用して、~/project ディレクトリに main.cpp という名前の新しいファイルを作成します。

touch ~/project/main.cpp

ユーザーから行数を入力として取得します。

int rows;

cout << "Enter Diamond Star Pattern Row = ";
cin >> rows;

パターンの表示

パターンを表示するために、ネストされたループを使用します。外側のループは行数を制御し、内側のループはアスタリスク記号と空白を出力します。

cout << "Diamond Star Pattern\n";

for (int i = 1; i <= rows; i++) {
    for (int j = 1; j <= rows - i; j++) {
        cout << " ";
    }

    for (int k = 1; k <= i * 2 - 1; k++) {
        cout << "*";
    }

    cout << "\n";
}

for (int i = rows - 1; i > 0; i--) {
    for (int j = 1; j <= rows - i; j++) {
        cout << " ";
    }

    for (int k = 1; k <= i * 2 - 1; k++) {
        cout << "*";
    }

    cout << "\n";
}

ダイヤモンドを描画するために 2 つのループを使用します。まず、ダイヤモンドの上半分を描画します。

外側のループ(最初の for ループ)は、ダイヤモンドの各行をループします。外側のループの中にネストされたループを使用します。

内側のループ(2 つの for ループ)は、ダイヤモンドの各行の空白とアスタリスクを出力します。

  • 最初の内側のループは、アスタリスクの前に適切な数の空白を出力します。
  • 2 番目の内側のループは、アスタリスクを出力します。

次に、ダイヤモンドの下半分を描画します。ダイヤモンドの上半分で使用したのと同様のループを使用します。外側のループは 0 まで逆順にカウントダウンします。

コードをコンパイルして実行するには、ターミナルで以下のコマンドを使用します。

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

完全なコード

これがダイヤモンドパターンプログラムの完全なコードです。

#include <iostream>
using namespace std;

int main()
{
    int rows;

    cout << "Enter Diamond Star Pattern Row = ";
    cin >> rows;

    cout << "Diamond Star Pattern\n";

    for (int i = 1; i <= rows; i++) {
        for (int j = 1; j <= rows - i; j++) {
            cout << " ";
        }

        for (int k = 1; k <= i * 2 - 1; k++) {
            cout << "*";
        }

        cout << "\n";
    }

    for (int i = rows - 1; i > 0; i--) {
        for (int j = 1; j <= rows - i; j++) {
            cout << " ";
        }

        for (int k = 1; k <= i * 2 - 1; k++) {
            cout << "*";
        }

        cout << "\n";
    }

    return 0;
}

まとめ

この実験では、アスタリスク (*) を使用してダイヤモンドパターンを出力する C++ プログラムの作成方法を学びました。パターンを表示するためにネストされたループを使用しました。簡単な入力から始め、段階的にアスタリスクを使ってダイヤモンドを出力できる C++ プログラムを作成しました。