きになったことブログ

読者です 読者をやめる 読者になる 読者になる

きになったことブログ

日々の生活の中で覚えておきたいことがあれば

長方形の面積を求めるjavaプログラム

今回も入力なしの簡単なもの。

二問続きで載せます。

 

幅と高さの組が(10,3)(4,12)(15,6)(5,6)(6,8)(9,10)

となる長方形を作成し、それぞれの面積を計算し、各長方形の幅、高さ、面積を下記の
ように画面表示するプログラムを作成しなさい。

ただし、プログラムは下記の条件を満たすこととする。


1: 幅 = 10 高さ = 3 面積 = 30
2: 幅 = 4 高さ = 12 面積 = 48
3: 幅 = 15 高さ = 6 面積 = 90

4: 幅 = 5 高さ = 6 面積 = 30
5: 幅 = 6 高さ = 8 面積 = 48
6: 幅 = 9 高さ = 10 面積 = 90


条件:
(1) クラスは長方形を表す Rectangle クラスと上記の計算を行うMainクラスの2つとする。
(2) 1つのファイルには 1 つのクラスのみ定義する。
(3) コンストラクタは 1 つ定義する。
(4) 長方形の面積を求めるメソッドは void getArea() とする。
(5) なるべくコード量を減らす。

 

Main.java

public class Main{

 public static void main(String args){

  Rectangle r = new Rectangle[6];
  r[0] = new Rectangle(10,3);
  r[1] = new Rectangle(4,12);
  r[2] = new Rectangle(15,6);
  r[3] = new Rectangle(5,6);
  r[4] = new Rectangle(6,8);
  r[5] = new Rectangle(9,10);

  for(int i=0;i<=5;i++){

   System.out.println( (i+1)+"   "+r[i]);
    }
  }

 }

 

Rectangle.java

class Rectangle{

 int width;
 int height;
 int area;

  Rectangle(int width, int height){
   this.width = width;
   this.height=height;
  }

 void getArea(){
  this.area=this.width*this.height;

  }


  public String toString(){

   this.getArea();
   return (":幅="+this.width+" 高さ="+this.height+" 面積="+this.area);
  }

 }

 

 

*voidでメソッドを作らなくてはいけない制限はちょっと面倒でした。

 

上で定義したプログラムでは面積が同じ長方形が存在している。長方形の面積が同じであるかを判定するメソッドを定義し、それが正しく動作していることを確認しなさい。

 

Main.java

public class Main{

 public static void main(String args){

  Rectangle r = new Rectangle[6];
  r[0] = new Rectangle(10,3);
  r[1] = new Rectangle(4,12);
  r[2] = new Rectangle(15,6);
  r[3] = new Rectangle(5,6);
  r[4] = new Rectangle(6,8);
  r[5] = new Rectangle(9,10);

  for(int i=0;i<=5;i++){
   for(int j=0;j<=2;j++){
    if(i!=j && r[i].equals(r[j])){
     System.out.println(r[i]+"と"+r[j]+"は等しい");
    }
   }
  }
 }
}

 

Rectangle.java

class Rectangle{

 int width;
 int height;
 int area;


 Rectangle(int width, int height){
  this.width = width;
  this.height=height;
 }

 void getArea(){

  this.area=this.width*this.height;
 }

 @Override
 public String toString(){
  this.getArea();
  return ("幅="+this.width+" 高さ="+this.height+" 面積="+this.area);
 }


 public boolean equals(Rectangle rect){
  rect.getArea();
  getArea();
  if(this.area == rect.area){
   return true;
     }else{
    return false;
   }
 }

}

 

 

 

*メソッドの追加主要なものは覚えなきゃですよね

*入れ子のループ汚くないかな?

 *誰かの役に立ちますように