様々な図形の面積

ホームC#入門講座第3章:ものづくり技術論 > 様々な図形の面積

様々な図形の面積

いろいろな図形

最終的にオブジェクト指向の基本を学び、かなりの技能を身につけることができました。なので、最後に、Mensekiクラスにほかの図形の面積を求める機能を持たせてみます。

扱うのは円・球・長方形・直方体です。

class Menseki
{
	// フィールド
	private double r = 0;
	
	// 半径プロパティ
	public double R 
	{
		get { return this.r; }
		set
		{
			if(value > 0)
				this.r = value;
			else
				Console.WriteLine("負の値は入力できません");
		}
	}

	// 円メソッド
	public double Circle()
	{
		return Math.Pow(this.R, 2) * Math.PI;
	}
	// 球メソッド
	public double Sphere()
	{
		return 4 * Math.PI * Math.Pow(this.R, 2);
	
	}
	// 長方形メソッド
	public double Rectangle(double x, double y)
	{
		if(x > 0 && y > 0)
			return x * y;
		else
			return -1;
	}
	// 直方体メソッド
	public double Box(double x, double y, double z)
	{
		if(x > 0 && y > 0 && z > 0)
			return 2 * (x * y + y * z + z * x);
		else
			return -1;
	}
}

円と球以外の図形は、面倒なのでメソッドで処理しています。円と球は半径を与える点で同じなので、Rプロパティを流用しました。

長方形と直方体に出てくる「&&」は「かつ」です。また、負の値が含まれる場合は、-1を返しています。値を返すメソッド(voidでないメソッド)では、必ずなんらかの値を返さなくてはならないので、やむを得ずエラーとしてよく使われる-1を返しました。

なお、変数にはマイナスのない型もあります。それを使えば扱える数値は2倍になります。興味があれば自分で調べてみてください。また、このプログラムは検算を行っていません。自分で使うときは十分注意してください。

配列

今回はあっさりしているので、配列も一気に学びます。配列とは以前に少し紹介したので分かると思いますが、同じ名前を持った変数です。識別するための index が付いています。

int[] i = new int[6];

配列を宣言する基本形は上のようになります。型のあとにかぎかっこを付けます。配列は「値型」ではなくオブジェクトの「参照型」です。newを使って配列を生成しなければなりません。ちょうど、整理に便利なカラーボックスに似ています。

i[0] = 12;

配列名とかぎかっこを使い、index を指定して value を代入します。(配列名[index] = value;)

int[] i = {12, 24, 36, 48, 60, 72};

配列には上のような初期化方法もあります。これは宣言と代入を同時に行う方法で、value があらかじめ決まっている場合は便利です。

配列はオブジェクトですから、プロパティやメソッドが備わっています。オブジェクト指向を学んだみなさんはこれらのメンバを自分で使う技能をすでに習得しているはずです。ここを参考にして、配列の検索をしたり要素数の取得をしたりしてください。