[JavaScript] 사각형의 대각선 길이 구하기

Haneul Choi·2021년 5월 21일
0

JavaScript

목록 보기
2/3
post-thumbnail

주어진 사각형의 대각선 길이를 구하는 프로그램을 작성하려고 합니다.
수학시간에 배웠었던 피타고라스 정리를 적용하여 프로그램 구조를 짤 것입니다.

pythagorean theorem : c^2 = a^2 + b^2 <=> c = sqrt(a^2 + b^2)

사각형을 대각선으로 자르게 되면 두개의 일치하는 삼각형이 만들어집니다. 그래서 사각형의 대각선은 바로 피타고라스 정리를 이용한 가장 긴 변이라는 것을 알수 있죠.

Program psuedoCode :
사각형의 두 변의 길이를 각 a 와 b 라고 부른다.
위의 공식처럼 대각선길이는 각 변의 제곱의 합에 루트를 씌운 것이기에 그것을 출력해낸다.

이번 프로그램에서는 생산자로 불리는 컨스트럭터 (constructor) 함수를 이용할 것이다.

JavaScript Functional Code

function Pythagorean(a, b) {
	this.a = a;
	this.b = b;
   	this.length = () => Math.sqrt((this.a)*(this.a) + (this.b)*(this.b));
}
// now test

let rectangle1 = new Pythagorean(1,2) // 변의 길이가 각 1과 2인 사각형
let rectangle2 = new Pythagorean(1,1) // 변의 길이가 1일 정사각형

console.log(rectangle1.length().toFixed(2)) // 대각선 길이를 2.24 로 반올림해서 출력
console.log(reactnalge2.length().toFixed(2)) // 대각선 길이를 1.41 로 반올림해서 출력

이제는 이 함수를 이용하여서 무작위로 사각형을 만들고 그것의 따른 대각선 길이를 구하여서 오브젝트로 데이터를 저장시키는 프로그램을 만들어보겠습니다.

Application Code

function pythagorean(a, b) {
  this.a = a;
  this.b = b;
  this.length = () => Math.sqrt(this.a * this.a + this.b * this.b);
}

function reactangle(a, b) {
  return {
    width: a,
    height: b
  };
}

let randomWidth = [1, 5, 8, 12];
let randomHeight = [2, 5, 11, 12];
let w_index = Math.floor(Math.random()* randomWidth.length);
let h_index = Math.floor(Math.random()* randomHeight.length);
let REC = reactangle(randomWidth[w_index], randomHeight[h_index]);
console.log(REC);

const REC1 = new pythagorean(REC.width, REC.height);
console.log(`A rectangle has width : ${REC.width} and height : ${REC.height}.\n The diagonal length is ${REC1.length().toFixed(2)}`);

written by @han-choi
date written 5/20/2021
Personal website
Github
Linkedin

profile
Web Developer 웹 개발 공부하는 사람

0개의 댓글