Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solution #205

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
119 changes: 113 additions & 6 deletions 02-JS-I/homework/homework.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
// En estas primeras 6 preguntas, reemplaza `null` por la respuesta

// Crea una variable "string", puede contener lo que quieras:
const nuevaString = null;
const nuevaString = 'Hola';

// Crea una variable numérica, puede ser cualquier número:
const nuevoNum = null;
const nuevoNum = 8;

// Crea una variable booleana:
const nuevoBool = null;
const nuevoBool = true;

// Resuelve el siguiente problema matemático:
const nuevaResta = 10 - null === 5;
const nuevaResta = 10 - 5 === 5;

// Resuelve el siguiente problema matemático:
const nuevaMultiplicacion = 10 * null === 40 ;
const nuevaMultiplicacion = 10 * 4 === 40 ;

// Resuelve el siguiente problema matemático:
const nuevoModulo = 21 % 5 === null;
const nuevoModulo = 21 % 5 === 1;


// En los próximos 22 problemas, deberás completar la función.
Expand All @@ -28,119 +28,220 @@ const nuevoModulo = 21 % 5 === null;
function devolverString(str) {
// "Return" la string provista: str
// Tu código:
return str;
}

function suma(x, y) {
// "x" e "y" son números
// Suma "x" e "y" juntos y devuelve el valor
// Tu código:
return x + y;
}

function resta(x, y) {
// Resta "x" de "y" y devuelve el valor
// Tu código:
return x - y;
}

function multiplica(x, y) {
// Multiplica "x" por "y" y devuelve el valor
// Tu código:
return x * y;
}

function divide(x, y) {
// Divide "x" entre "y" y devuelve el valor
// Tu código:
return x / y;
}

function sonIguales(x, y) {
// Devuelve "true" si "x" e "y" son iguales
// De lo contrario, devuelve "false"
// Tu código:
if (x === y) {
return true;
} else {
return false;
}
}

function tienenMismaLongitud(str1, str2) {
// Devuelve "true" si las dos strings tienen la misma longitud
// De lo contrario, devuelve "false"
// Tu código:
return str1.length === str2.length;
}

function menosQueNoventa(num) {
// Devuelve "true" si el argumento de la función "num" es menor que noventa
// De lo contrario, devuelve "false"
// Tu código:
if(num < 90) {
return true;
} else {
return false;
}
}

function mayorQueCincuenta(num) {
// Devuelve "true" si el argumento de la función "num" es mayor que cincuenta
// De lo contrario, devuelve "false"
// Tu código:
return num > 50;
}

function obtenerResto(x, y) {
// Obten el resto de la división de "x" entre "y"
// Tu código:
return x % y;
}

function esPar(num) {
// Devuelve "true" si "num" es par
// De lo contrario, devuelve "false"
// Tu código:
if( num % 2 === 0) {
return true;
} else {
return false;
}
}

function esImpar(num) {
// Devuelve "true" si "num" es impar
// De lo contrario, devuelve "false"
// Tu código:
if(num % 2 === 1) {
return true;
} else {
return false;
}
}

function elevarAlCuadrado(num) {
// Devuelve el valor de "num" elevado al cuadrado
// ojo: No es raiz cuadrada!
// Tu código:
return Math.pow(num, 2);
}

function elevarAlCubo(num) {
// Devuelve el valor de "num" elevado al cubo
// Tu código:
return num * num * num;
}

function elevar(num, exponent) {
// Devuelve el valor de "num" elevado al exponente dado en "exponent"
// Tu código:
return Math.pow(num, exponent);
}

function redondearNumero(num) {
// Redondea "num" y devuélvelo
// Tu código:
// var resto = num % 1;
// var entero = num - resto;
// if (resto >= 0.5) {
// return entero + 1;
// } else {
// return entero;
// }
return Math.round(num);
}

function redondearHaciaArriba(num) {
// Redondea "num" hacia arriba y devuélvelo
// Tu código:
return Math.ceil(num);
}

function numeroRandom() {
//Generar un número al azar entre 0 y 1 y devolverlo
//Pista: investigá qué hace el método Math.random()
return Math.random();
}

function esPositivo(numero) {
//La función va a recibir un entero. Devuelve como resultado una cadena de texto que indica si el número es positivo o negativo.
//Si el número es positivo, devolver ---> "Es positivo"
//Si el número es negativo, devolver ---> "Es negativo"
//Si el número es 0, devuelve false
if(numero === 0) {
return false;
}
else if(numero > 0) {
return "Es positivo";
}
else {
return "Es negativo";
}
}

function agregarSimboloExclamacion(str) {
// Agrega un símbolo de exclamación al final de la string "str" y devuelve una nueva string
// Ejemplo: "hello world" pasaría a ser "hello world!"
// Tu código:
return str + '!';
}

function combinarNombres(nombre, apellido) {
// Devuelve "nombre" y "apellido" combinados en una string y separados por un espacio.
// Ejemplo: "Soy", "Henry" -> "Soy Henry"
// Tu código:
var combinado = nombre + ' ' + apellido;
return combinado;
}

function obtenerSaludo(nombre) {
// Toma la string "nombre" y concatena otras string en la cadena para que tome la siguiente forma:
// "Martin" -> "Hola Martin!"
// Tu código:
return 'Hola ' + nombre + '!';
}

function obtenerAreaRectangulo(alto, ancho) {
// Retornar el area de un cuadrado teniendo su altura y ancho
// Tu código:
return alto * ancho;
}

function retornarPerimetro(lado){
//Escibe una función a la cual reciba el valor del lado de un cuadrado y retorne su perímetro.
//Escribe tu código aquí
return lado * 4
}

function areaDelTriangulo(base, altura){
//Desarrolle una función que calcule el área de un triángulo.
//Escribe tu código aquí
return (base * altura)/2

}

function deEuroAdolar(euro){
//Supongamos que 1 euro equivale a 1.20 dólares.
//Escribe un programa que pida al usuario un número de euros y calcule el cambio en dólares.
//Escribe tu código aquí
return euro * 1.2
}

function esVocal(letra){
//Escribe una función que reciba una letra y, si es una vocal, muestre el mensaje “Es vocal”.
//Verificar si el usuario ingresó un string de más de un carácter y, en ese caso, informarle
//que no se puede procesar el dato mediante el mensaje "Dato incorrecto".
//Escribe tu código aquí
if(letra.length > 1){
return "Dato incorrecto"
}
if(letra === "a" || letra === "e" || letra === "i" || letra === "o" || letra === "u"){
return "Es vocal"
}
return "Dato incorrecto"

}

// No modificar nada debajo de esta línea
// --------------------------------
Expand Down Expand Up @@ -169,8 +270,14 @@ module.exports = {
elevar,
redondearNumero,
redondearHaciaArriba,
numeroRandom,
esPositivo,
agregarSimboloExclamacion,
combinarNombres,
obtenerSaludo,
obtenerAreaRectangulo,
retornarPerimetro,
areaDelTriangulo,
deEuroAdolar,
esVocal,
};
61 changes: 61 additions & 0 deletions 02-JS-I/homework/tests/JSI.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,16 @@ const {
elevar,
redondearNumero,
redondearHaciaArriba,
numeroRandom,
esPositivo,
agregarSimboloExclamacion,
combinarNombres,
obtenerSaludo,
obtenerAreaRectangulo,
retornarPerimetro,
areaDelTriangulo,
deEuroAdolar,
esVocal,
} = require('../homework.js');

describe('nuevaString', function() {
Expand Down Expand Up @@ -202,6 +208,22 @@ describe('redondearHaciaArriba(num)', function() {
});
});

describe('numeroRandom()', function() {
it('Debería devolver un número entre 0 y 1', function() {
expect(typeof numeroRandom()).toBe('number');
expect(numeroRandom()).toBeGreaterThanOrEqual(0);
expect(numeroRandom()).toBeLessThan(1);
});
});

describe('esPositivo(numero)', function() {
it('Debería devolver el string \Es positivo ó Es negativo\ según corresponda', function() {
expect(esPositivo(0)).toBe(false);
expect(esPositivo(23)).toBe('Es positivo');
expect(esPositivo(-2)).toBe('Es negativo');
});
});

describe('agregarSimboloExclamacion(str)', function() {
it('Deberia agregar un signo de exclamacion al final del string', function() {
expect(agregarSimboloExclamacion('hello world')).toBe('hello world!');
Expand Down Expand Up @@ -230,3 +252,42 @@ describe('obtenerAreaRectangulo(alto, ancho)', function() {
expect(obtenerAreaRectangulo(0, 2)).toBe(0);
});
});

describe('retornarPerimetro(lado)', function() {
it('Deberia retornar el perímetro correcto del cuadrado', function() {
expect(retornarPerimetro(2)).toBe(8);
expect(retornarPerimetro(8)).toBe(32);
expect(retornarPerimetro(0)).toBe(0);
});
});


describe('areaDelTriangulo( base, altura)', function() {
it('Deberia retornar el area correcta del triángulo', function() {
expect(areaDelTriangulo(10, 5)).toBe(25);
expect(areaDelTriangulo(20, 10)).toBe(100);
expect(areaDelTriangulo(0, 10)).toBe(0);
});
});

describe('deEuroAdolar(euro)', function() {
it('Deberia retornar el valor correcto de euro a dolar', function() {
expect(deEuroAdolar(100)).toBe(120);
expect(deEuroAdolar(200)).toBe(240);
expect(deEuroAdolar(50)).toBe(60);
});
});

describe('esVocal(letra)', function() {
it('Deberia devolver el strings "Dato incorrecto", si el valor ingresado tiene más de una letra', function() {
expect(esVocal("la")).toBe("Dato incorrecto");
expect(esVocal("pero")).toBe("Dato incorrecto");
});
it('Deberia devolver el strings "Es vocal", si el valor ingresado lo es', function() {
expect(esVocal('a')).toBe('Es vocal');
expect(esVocal('e')).toBe('Es vocal');
expect(esVocal('i')).toBe('Es vocal');
expect(esVocal('o')).toBe('Es vocal');
expect(esVocal('u')).toBe('Es vocal');
});
});
Loading