Algorithm/JAVA

[자바/JAVA] 원의 넓이와 둘레 구하기, 두 점 사이의 거리 구하기

바오밥 하단 2020. 5. 1. 01:10

 

1. 원의 넓이와 둘레 구하기

 

package practice3;

class Circle {

    private double radius;

    private final static double PI = 3.141592;

    // main 메소드를 보고 Circle 클래스의 생성자와 메소드들을 완성한다.

    

    Circle(){}

    

    Circle(double r){

        this.radius = r;

    }

    

    double getRadius() {

        return radius;

    }

    void setRadius(double radius) {

        this.radius = radius;

    }

    

    double getArea(){

        return radius * radius * PI;

    }

    

    double getPerimeter() {

        return 2 * radius * PI;

    }

    void incRadius(double r) {

        this.radius = radius + r;

    }

}

public class P3_1 {

    public static void main(String[] args) {

        Circle c1 = new Circle(2.5); // 반지름을 2.5로 하여 c1을 초기화한다.

        Circle c2 = new Circle();

        System.out.println("c1 반지름: " + c1.getRadius());

        c2.setRadius(1.7); // c2 반지름을 1.7로 저장한다.

        System.out.println("c2 반지름 : " + c2.getRadius());

        double c1Area = c1.getArea(); // c1의 면적을 반환한다.

        double c1Perimeter = c1.getPerimeter(); // c1의둘레를 반환한다.

        System.out.println("c1 면적 : " + c1Area + ", c1 둘레 : " + c1Perimeter);

        

        c2.incRadius(2.0); // c2의 반지름을 2만큼 증가시킨다. 즉, 3.7이 된다.

        System.out.println("c2 반지름 : " + c2.getRadius());

        System.out.println("c2 면적 : " + c2.getArea() + ", c2 둘레 : " + c2.getPerimeter());

    }

}

Colored by Color Scripter

 

 

출력결과

c1 반지름: 2.5

c2 반지름 : 1.7

c1 면적 : 19.63495, c1 둘레 : 15.70796

c2 반지름 : 3.7

c2 면적 : 43.00839448000001, c2 둘레 : 23.2477808

 

 

 

 

 

2. 두 점 사이의 거리 구하기

math를 import해서 제곱해주는 pow와 제곱근으로 만들어주는 sqrt를 사용했다.

Point 클래스에 있는 수이기 때문에 getx()함수를 만들어주고 호출해서 사용한다.

 

 

package practice3;

import java.lang.Math;

class Point {

    private double x;

    private double y;

    // Point 클래스의 메소드들을 완성한다.

    Point(){}

    Point(double x1, double y1){

        this.x = x1;

        this.y = y1;

    }

    

    double getx() {

        return x;

    }

    void setx(double x1) {

        this.x = x1;

    }

    

    double gety() {

        return y;

    }

    void sety(double y1) {

        this.y = y1;

    }

    

    String info() {

        String a = "("+Double.toString(x)+", "+Double.toString(y)+")";

        return a;

    }

}

public class P3_2 {

    

    static double getDistance(Point p1, Point p2){

        double d = Math.sqrt(Math.pow(p1.getx() - p2.getx(), 2) + Math.pow(p1.gety() - p2.gety(), 2));

        return d;

    }

    

    public static void main(String[] args) {

        Point p1 = new Point(1.2, 3.5);

        Point p2 = new Point(2.5, 1.0);

        double dist = 0.0;

        dist = getDistance(p1, p2);

        System.out.println("p1 : " + p1.info());

        System.out.println("p2 : " + p2.info());

        System.out.println("distance : " + dist);

    }

}

Colored by Color Scripter

 

 

출력결과

 

p1 : (1.2, 3.5)

p2 : (2.5, 1.0)

distance : 2.817800560721074