ダイヤモンド形プリントプログラム

Other

概要

本リポジトリは、C言語による入門書「C How to Program(第9版)」の4章練習問題4.31と4.32に対応したダイヤモンド形プリントプログラムをC++で実装したものです。問題4.31では、固定の行数でダイヤモンド形状をアスタリスク(*)と空白で描画し、4.32では1〜19の範囲の奇数をユーザー入力し、その数に応じてダイヤモンドの大きさを動的に変更可能にしています。ネストしたforループを用い、無駄の少ないコード設計を目指しており、コンソールでのパターン出力の基本を学べる教材的な内容となっています。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 6
  • ファイル数: 5
  • メインの言語: C++

主な特徴

  • ユーザー入力により1〜19の奇数を受け付け、ダイヤモンドのサイズを動的に調整可能
  • ネストしたforループで効率よくパターンを描画、printfステートメントを最小限に抑制
  • C言語教材の練習問題をC++環境で再現し、理解を深めることが可能
  • Visual Studioのソリューションファイルを含み、すぐにビルド・実行できる環境を提供

技術的なポイント

本プロジェクトは、C言語の基本的な制御構造であるforループのネストを活用して、コンソール上に図形を描画するという古典的な課題に取り組んでいます。特に注目すべきは、4.31の問題では固定の行数(例えば7行)でダイヤモンド形を出力し、4.32で入力された奇数の行数に対応できるようにプログラムを拡張している点です。

ダイヤモンド形は、上半分と下半分でパターンが対称になることを利用しており、行数に応じた空白の数とアスタリスクの数を計算しています。具体的には、上半分は行番号に応じて空白を減らしアスタリスクを増やし、下半分は逆に空白を増やしアスタリスクを減らす形でループを構成しています。このため、単純な加減算によるインデックス計算が中心となり、余計な条件分岐を減らせているのがポイントです。

また、printfを多用せず一つの制御構造内で出力処理を完結させる工夫により、コードの可読性と保守性を高めています。ユーザー入力の検証も行い、入力が1〜19の奇数かどうかをチェックし、不正な値が入力された場合は再入力を促す堅牢な設計となっています。

さらに、Visual Studioのソリューションファイルが含まれているため、Windows環境でのビルドとデバッグが容易です。C++の基本を体感しながら、制御構造や繰り返し処理の理解を深める教材としても適しています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitattributes: file
  • .gitignore: file
  • CHowToProgram_Ex.4.31_4.32_DiamondPrintingProgram.sln: file(Visual Studioソリューションファイル)
  • CHowToProgram_Ex.4.31_4.32_DiamondPrintingProgram: dir(ソースコードディレクトリ)
  • README.md: file(プロジェクト説明ファイル)

まとめ

C言語入門の基本課題をC++で再現し、制御構造理解に最適。

リポジトリ情報: