SIGN IN SIGN UP

Algorithms and Data Structures implemented in JavaScript for beginners, following best practices.

0 0 0 JavaScript
/*
2021-07-20 12:38:47 +08:00
Calculate the volume of the shapes
Volume for Cuboid
Volume for Cube
Volume for Cone
Volume for Pyramid
Volume for Cylinder
Volume for Triangular Prism
Volume for Pentagonal Prism
Volume for Sphere
Volume for Hemisphere
*/
/*
Calculate the volume for a Cuboid
2021-07-20 00:07:27 +08:00
Reference: https://www.cuemath.com/measurement/volume-of-cuboid/
return width * length * height
*/
const volCuboid = (width, length, height) => {
isNumber(width, 'Width')
isNumber(length, 'Length')
isNumber(height, 'Height')
return width * length * height
}
/*
Calculate the volume for a Cube
2021-07-20 00:07:27 +08:00
Reference: https://www.cuemath.com/measurement/volume-of-cube/
return length * length * length
*/
const volCube = (length) => {
isNumber(length, 'Length')
return length ** 3
}
/*
Calculate the volume for a Cone
2021-07-20 00:07:27 +08:00
Reference: https://www.cuemath.com/measurement/volume-of-cone/
return PI * radius^2 * height/3
*/
const volCone = (radius, height) => {
isNumber(radius, 'Radius')
isNumber(height, 'Height')
return (Math.PI * radius ** 2 * height) / 3.0
}
/*
Calculate the volume for a Pyramid
2021-07-20 00:07:27 +08:00
Reference: https://www.cuemath.com/measurement/volume-of-pyramid/
return (baseLength * baseWidth * height) / 3
*/
const volPyramid = (baseLength, baseWidth, height) => {
isNumber(baseLength, 'BaseLength')
isNumber(baseWidth, 'BaseWidth')
isNumber(height, 'Height')
2021-07-20 12:38:47 +08:00
return (baseLength * baseWidth * height) / 3.0
}
/*
Calculate the volume for a Cylinder
2021-07-20 00:07:27 +08:00
Reference: https://www.cuemath.com/measurement/volume-of-cylinder/
return PI * radius^2 * height
*/
const volCylinder = (radius, height) => {
isNumber(radius, 'Radius')
isNumber(height, 'Height')
return Math.PI * radius ** 2 * height
}
/*
Calculate the volume for a Triangular Prism
2021-07-20 00:07:27 +08:00
Reference: http://lrd.kangan.edu.au/numbers/content/03_volume/04_page.htm
2021-07-20 12:38:47 +08:00
return 1 / 2 * baseLengthTriangle * heightTriangle * height
*/
const volTriangularPrism = (baseLengthTriangle, heightTriangle, height) => {
isNumber(baseLengthTriangle, 'BaseLengthTriangle')
isNumber(heightTriangle, 'HeightTriangle')
isNumber(height, 'Height')
return (1 / 2) * baseLengthTriangle * heightTriangle * height
}
/*
Calculate the volume for a Pentagonal Prism
2021-07-20 00:07:27 +08:00
Reference: https://www.cuemath.com/measurement/volume-of-pentagonal-prism/
return 5/2 * pentagonalLength * pentagonalBaseLength * height
*/
const volPentagonalPrism = (pentagonalLength, pentagonalBaseLength, height) => {
isNumber(pentagonalLength, 'PentagonalLength')
isNumber(pentagonalBaseLength, 'PentagonalBaseLength')
isNumber(height, 'Height')
return (5 / 2) * pentagonalLength * pentagonalBaseLength * height
}
/*
Calculate the volume for a Sphere
2021-07-20 00:07:27 +08:00
Reference: https://www.cuemath.com/measurement/volume-of-sphere/
return 4/3 * PI * radius^3
*/
const volSphere = (radius) => {
isNumber(radius, 'Radius')
return (4 / 3) * Math.PI * radius ** 3
}
/*
Calculate the volume for a Hemisphere
2021-07-20 00:07:27 +08:00
Reference: https://www.cuemath.com/measurement/volume-of-hemisphere/
return (2 * PI * radius^3)/3
*/
const volHemisphere = (radius) => {
isNumber(radius, 'Radius')
2021-07-20 12:38:47 +08:00
return (2.0 * Math.PI * radius ** 3) / 3.0
}
const isNumber = (number, noName = 'number') => {
if (typeof number !== 'number') {
throw new TypeError('The ' + noName + ' should be Number type')
} else if (number < 0 || !Number.isFinite(number)) {
throw new Error('The ' + noName + ' only accepts positive values')
}
}
export {
volCuboid,
volCube,
volCone,
volPyramid,
volCylinder,
volTriangularPrism,
volPentagonalPrism,
volSphere,
volHemisphere
}