/* Polígonos regulares Un polígono regular es aquella figura que tiene todos sus lados iguales y sus ángulos congruentes (De igual medida). Para determinar el área de un polígono regular se tiene la fórmula A=P*a2 Donde: P: Perímetro del polígono a: Apotema (Segmento que une el centro del polígono con el punto medio de cualquiera de sus lados) Crea un programa que modele el objeto de un polígono regular. Debe calcular el perímetro de la figura, así como el área de la misma. Datos: Lados, apotema Donde: Lados: Variable numérica que indica el número de lados del polígono Apotema: Variable numérica que representa la distancia del centro al punto medio de cualquier lado */ let poligono = { lados: 0, apotema: 0, inicializar: function(lados, apotema){ poligono.lados = lados; poligono.apotema = apotema; }, perimetro: function(){ let angulo = ( 360 / (2 * poligono.lados) ); let medidaX = poligono.apotema * ( Math.tan( angulo * Math.PI / 180) ); let medidaL = medidaX * 2; let perimetro = medidaL * poligono.lados; return perimetro; }, area: function(){ let area = ( poligono.perimetro() * poligono.apotema ) / 2; return area; } }; poligono.inicializar(5, 5); console.log( "El perimetro del poligono es " + poligono.perimetro() + " centimetros"); console.log( "El area del poligono es " + poligono.area() + " unidades cuadradas"); /********************************************************************************************/ /* Reto 2: Objetos La esfera Una esfera es un conjunto de puntos en el espacio que están a una distancia dada r del centro. El volumen de una esfera se obtiene mediante la siguiente fórmula V= (4/3) * Pi * (r*r*r) Crea un programa que modele el objeto esfera. El modelo debe tener un método que calcule el volumen de la esfera. Si una esfera es cortada por la mitad, la base de este nuevo sólido es un círculo. Añade métodos que nos permitan calcular el perímetro y el área de este círculo. Datos: Radio Donde: Variable numérica que representa el valor del radio de la esfera Considerar: Pi = 3.1415 */ // let esfera = { // radio: 0, // inicializar: function(radio){ // esfera.radio = radio; // }, // volumen: function(){ // let v = ((4/3) * Math.PI) * (Math.pow(esfera.radio,3)); // return v; // }, // perimetroCirculo: function(){ // let perimetro = (2 * Math.PI) * esfera.radio; // return perimetro; // }, // areaCirculo: function(){ // let area = (esfera.perimetroCirculo() * esfera.radio ) / 2; // return area; // } // }; // esfera.inicializar(9); // let vEsfera = esfera.volumen(); // console.log("El volumen de la esfera es: " + vEsfera + " unidades cubicas"); // let perimetro = esfera.perimetroCirculo(); // console.log("El perimetro del circulo es " + perimetro + " unidades"); // let area = esfera.areaCirculo(); // console.log("El area del circulo es " + area + " unidades cuadradas"); /********************************************************************************************/ /* Reto 3: Objetos Bienes raíces Una empresa de bienes raíces en Nueva York lleva la información sobre las propiedades que tiene disponibles tanto para venta como para renta. La estructura de sus registros está modelada por el siguiente objeto Clave de la propiedad (Numérico) Superficie total (Numérico) Características (Cadena de texto) Ubicación Geográfica Zona (Cadena de texto) Calle (Cadena de texto) Numero (Numérico) Código postal (Numérico) Precio en Dólares (Numérico) Disponibilidad (Carácter. V= Venta y R= Renta) Escribe un programa que realice lo siguiente: Una función que enlista las propiedades disponibles para venta en la zona de Central Park cuyo valor oscile entre 500,000 y 2.8M USD Al recibir una zona geográfica, un precio máximo y un precio mínimo, nos enlista todas las propiedades disponibles para rentar Nota: El listado debe mostrar lo siguiente: Clave de la propiedad, superficie total, c aracterísticas, calle y número, código postal y precio. Datos: Propiedades: Variable de tipo array de objetos tipo Propiedad Inmuebles: Variable numérica que representa el total de propiedades registradas */ // let propiedades = [ // propiedad1 = { // clavePropiedad: 1, // superficie: 350, // caracteristicas: "casa", // ubicacion: { // zona: "Central Park", // calle: "Maspeth", // numero: 265, // cp: 59789, // precioD: 2750000, // }, // disponibilidad: { // v: "venta", // r: "", // } // }, // propiedad2 = { // clavePropiedad: 2, // superficie: 120, // caracteristicas: "Departamento", // ubicacion: { // zona: "Lower East Side", // calle: "Eldridge", // numero: 698, // cp: 45987, // precioD: 135000, // }, // disponibilidad: { // v: "", // r: "renta", // }, // }, // propiedad3 = { // clavePropiedad: 3, // superficie: 100, // caracteristicas: "Departamento", // ubicacion: { // zona: "Lower East Side", // calle: "Chinatown", // numero: 129, // cp: 45987, // precioD: 125000, // }, // disponibilidad: { // v: "", // r: "renta", // }, // }, // propiedad4 = { // clavePropiedad: 4, // superficie: 289, // caracteristicas: "Casa", // ubicacion: { // zona: "Central Park", // calle: "Huron St", // numero: 387, // cp: 45987, // precioD: 550000, // }, // disponibilidad: { // v: "venta", // r: "", // }, // }, // propiedad5 = { // clavePropiedad: 5, // superficie: 250, // caracteristicas: "Casa", // ubicacion: { // zona: "Lower East Side", // calle: "E. Houston", // numero: 205, // cp: 45987, // precioD: 500000, // }, // disponibilidad: { // v: "", // r: "renta", // }, // }, // ]; // let buscador = (listado) => { // let objeto = { // listado: listado, // mostrarPropiedades: function(){ // for(i = 0; i < this.listado.length; i++){ // console.log(`Clave de la propiedad: ${this.listado[i].clavePropiedad}`); // console.log(`Superficie: ${this.listado[i].superficie}`); // console.log(`Caracteristicas: ${this.listado[i].caracteristicas}`); // console.log(`Zona: ${this.listado[i].ubicacion.zona}`); // console.log(`Calle: ${this.listado[i].ubicacion.calle}`); // console.log(`Numero: ${this.listado[i].ubicacion.numero}`); // console.log(`Codigo Postal: ${this.listado[i].ubicacion.cp}`); // console.log(`Precio: US$ ${this.listado[i].ubicacion.precioD}`); // if(this.listado[i].disponibilidad.v == "venta"){ // console.log(`En Venta \n\r`); // }else{ // console.log(`En Renta \n\r`); // } // } // }, // inmuebles: function(){ // let contador = 0; // for(i = 0; i < this.listado.length; i++){ // contador++; // } // console.log("Total de inmuebles " + contador); // }, // busqueda: function(){ // for( i = 0; i < this.listado.length; i++ ){ // if( this.listado[i].ubicacion.zona == "Central Park" && this.listado[i].ubicacion.precioD >= 500000 && this.listado[i].ubicacion.precioD <= 2800000 && this.listado[i].disponibilidad.v === "venta" ){ // console.log(`Propiedad disponible: Clave: ${this.listado[i].clavePropiedad}\n\rSuperficiel Total: ${this.listado[i].superficie}\n\rCaracteristicas: ${this.listado[i].caracteristicas}\n\rCalle: ${this.listado[i].ubicacion.calle}\n\rNumero: ${this.listado[i].ubicacion.numero}\n\rCodigo postal: ${this.listado[i].ubicacion.cp}\n\rPrecio USD$ ${this.listado[i].ubicacion.precioD}\n\rPropiedad en 'VENTA' Zona: CENTRAL PARK `); // } // } // }, // busqueda2: function(zona,pmaximo,pminimo){ // for(i = 0; i < this.listado.length; i ++ ){ // if( this.listado[i].ubicacion.zona == zona && this.listado[i].disponibilidad.r && this.listado[i].ubicacion.precioD >= pminimo && this.listado[i].ubicacion.precioD <= pmaximo ){ // console.log(`Propiedad disponible: Clave: ${this.listado[i].clavePropiedad}\n\rSuperficiel Total: ${this.listado[i].superficie}\n\rCaracteristicas: ${this.listado[i].caracteristicas}\n\rCalle: ${this.listado[i].ubicacion.calle}\n\rNumero: ${this.listado[i].ubicacion.numero}\n\rCodigo postal: ${this.listado[i].ubicacion.cp}\n\rPrecio USD$ ${this.listado[i].ubicacion.precioD}\n\rPropiedad en 'RENTA' Zona: ${zona}`); // } // } // } // } // return objeto; // }; // let mostrar = buscador(propiedades); // mostrar.mostrarPropiedades(); // mostrar.inmuebles(); // mostrar.busqueda(); // mostrar.busqueda2("Lower East Side", 600000, 120000);