Curso JavaScript: 38. Ejercicios de Lógica de Programación ( 5 / 10 ) - #jonmircha

preview_player
Показать описание
En este video resuelvo los ejercicios propuestos en la sesión 37 (ejercicios del 12 al 14 ) ademas te he preparado un par de ejercicios de lógica de programación en #JavaScript para que pongas en práctica tus conocimientos, los ejercicios a resolver son:

15) Programa una función para convertir números de base binaria a decimal y viceversa, pe. miFuncion(100,2) devolverá 4 base 10.
16) Programa una función que devuelva el monto final después de aplicar un descuento a una cantidad dada, pe. miFuncion(1000, 20) devolverá 800.
17) Programa una función que dada una fecha válida determine cuantos años han pasado hasta el día de hoy, pe. miFuncion(new Date(1984,4,23)) devolverá 35 años (en 2020).

En el video 39 te daré mi solución, antes de verlo trata de resolver los ejercicios, y comparte tus resultados en alguna plataforma como GitHub o CodePen y comparte el enlace de tus soluciones en los comentarios de este video.

Рекомендации по теме
Комментарии
Автор

Recuerden no frustrarse chicos, estamos APRENDIENDO.
Lo importante es que hagamos todo lo posible para resolver los ejercicios, leer la documentacion, repasar los videos anteriores..., pero si no lo logras, puedes venir aqui y aprender la solucion que Jon nos enseña, de esa manera seguimos aprendiendo y avanzando.
🙃🙂

timawid
Автор

el ejercicio de hacer una función que determine si un número es primo o no me dejó la cabeza un poco dañada jajaja. Pero eso porque no sabía, o no recordaba que era un número primo. Busqué por internet y conseguí teorías y trucos para encontrar los números primos siguiendo ciertas reglas. A partir de allí creé mi función pero lo hice con un while, e if dentro de ese while. Dentro de uno de los if puse otro if y me dijeron que era mala práctica entonces lo borré): sí funcionaba, pero igual! Después de ver funciones en internet que determinaban si un número era primo o no, lo entendí mejor. Fui capaz de entender las funciones que es lo importante, solo que no supe como implementarlo en el momento de resolver el ejercicio de una manera más simple y eficiente. Muchas gracias por compartir tus conocimientos maestro Jon!

pazispeace
Автор

sept 11 1969**sept 23 2023
gracias excelente curso
felicidades John Mircha

nikolahs
Автор

Para el 14 de tipo de grados lo que hice para no usar una expresion regular es:

switch(unidad) {
case "F": console.info(`La conversion de ${grados} Celcious a Fahrenheit es ${(grados * 9/5) + 32} `);
break;
case "C": console.info(`La conversion de ${grados} Fahrenheit a Celcious es ${(grados - 32) * 5/9} `);
break;
default: console.error("Escriba C para convertir a Celcious o F para convertir a Fahrenheit");
}

dkippes
Автор

Para los que necesitan los decimales pueden utilizar .toFixed() y le pasan como parámetro la cantidad de decimales que requieran.

Por ejemplo: let numero = 10.464675476575;
numero = numero.toFixed(2);

console.info(numero) //Resultado = 10.46

cenidj
Автор

Excelente Jon, al final yo lo hice con switch y quedo super!!

14)
const convertirGrados = (grados = undefined, unidad = undefined) => {
  if (grados === undefined)
    return console.log('No ingresaste grados a convertir');

  if (typeof grados !== 'number')
    return console.log(`El valor ${grados} ingresado, No es un numero`);

  if (unidad === undefined)
    return console.log('No ingresaste el tipo de grado a convertir');

  if (typeof unidad !== 'string')
    return console.log(
      `El valor ${grados} ingresado, No es una cadena de texto`
    );
  if (unidad.length !== 1 || !/(C|F)/.test(unidad))
    return console.log('Valor de unidad no reconocido');

  switch (unidad) {
    case 'C':
      return console.log(`${grados}C = ${Math.round(grados * (9 / 5)) + 32}F `);
    case 'F':
      return console.log(`${grados}F = ${Math.round(grados - 32) * (5 / 9)}C `);
    default:
      return console.log('El tipo de grados a convertir no es valido');
  }
};

convertirGrados(1, 'F');

d-landjs
Автор

Aun no puedo caminar solito jeje pero me disfruto cada clase de este gran maestro, es como si mas alla de conocimiento te transmite una paz increible!! JONCITO nunca te vayas de youtube❤❤

chrisvaling
Автор

Sublime el desarrollo de este video. 👏👏👏 🧔

helipalacio
Автор

Despues de repetir los videos estos ya los pude resolver solo, me siento victorioso. Estoy muy agradecido Jon, graciass

julianpinzon
Автор

Alucine con el ejercicio de la temperatura! No me cansare de agradecerte Maestro por todo lo que haces por nosotros. Este contenido vale oro....

chrisvaling
Автор

Muchísimas gracias @jonmircha por sus buenos videos. Realmente he ido aprendiendo y puliendo mi lógica en este nuevo lenguaje; tanto así que, pude resolver con facilidad el ejercicio de Binario a Decimal y viceversa... Saludos desde Rep. Dominicana.

luismontero
Автор

Buenas profe les dejo los problemas resueltos, muchas gracias por este grandioso curso!!! saludos desde Argentina


/! Video 37

// 12) Programa una función que determine si un número es primo (aquel que solo es divisible por sí mismo y 1) o no, pe. miFuncion(7) devolverá true.

function esPrimo(num) {
try {
if (typeof num !== "number" || !Number.isInteger(num)) {
throw new Error("El dato ingresado no es valido");
}
if (num < 2) {
return false;
}
if (num === 2) {
return true;
}
for (let i = 2; i < num; i++) {
if (num % i === 0) {
return false;
}
}
return true;
} catch (error) {
return error.message;
}
}

console.log(esPrimo(7));
console.log(esPrimo(6));

// 13) Programa una función que determine si un número es par o impar, pe. miFuncion(29) devolverá Impar.

function esPar(num) {
try {
if (typeof num !== "number" || !Number.isInteger(num)) {
throw new Error("El dato ingresado no es un numero");
}

if (num % 2 === 0) {
return "El numero es PAR";
} else {
return "El numero es IMPAR";
}
} catch (error) {
return error.message;
}
}

console.log(esPar(29));
console.group(esPar(20));

// 14) Programa una función para convertir grados Celsius a Fahrenheit y viceversa, pe. miFuncion(0, "C") devolverá 32°F.

function convertidorDeTemperatura(temp, medida) {
try {
if (typeof temp !== "number") {
throw new Error("El dato ingresado no es un numero");
}
if (medida.toLowerCase() !== "c" && medida.toLowerCase() !== "f") {
throw new Error("Unidad de medicion no valida");
}

if (medida.toLowerCase() === "c") {
let resultado = temp * 1.8 + 32;
return `${resultado.toFixed(2)}º F`
}
if (medida.toLowerCase() === "f") {
let resultado = (temp - 32) * (5 / 9);
return `${resultado.toFixed(2)}º C`
}
} catch (error) {
return error.message;
}
}

console.log(convertidorDeTemperatura(0, "f"));
console.log(convertidorDeTemperatura(0, "c"));

Nicolas-jpyq
Автор

La cara y la reacción de Jon al ver que la expresión regular funcionó es toda una poesía jajajjajaja. Profe, usted es el mejor. Le mado un fuerte abrazo y saludo desde Madrid.

j.b.
Автор

Buenos ejercicios!! El de los números primos me has matado, que genial la programación!!!

gsalazarmusic
Автор

woow imprecionante Jon mi logica se deciso en segundos jaja pero hay que seguir..
por momentos pienso uh que lejos estoy y cada vez que miro los videos me da mas ganas de aprender y seguir...

DavidEclipse
Автор

Ejercicio 14: en 1 sóla línea
const farenheitCelsius=(n, t)=>
(n==undefined)
?"Ingrese un número"
:(typeof(n)!="number")
?"Ingrese un número válido"
:(t==undefined)
?"Ingrese una cadena"
:(typeof(t)!="string")
?"Ingrese una cadena válida"
:!(t.toUpperCase()=="F" || t.toUpperCase()=="C")
?"Ingrese un tipo válido"
:(t.toUpperCase()=="F")

:(n*9%5+32).toString()+"°C"

console.info(farenheitCelsius(3, "c"));

GerentedeSistemas
Автор

Mi solución a los ejercicios (15-16-17)

La verdad es que no me daba la cabeza para resolver el de las fechas, me toco ver el vídeo donde lo resolvías para entender (Empece a hacer tantas anotaciones y observaciones importantes que literalmente lo tome por un clase mas "Operaciones con fechas" le titule XD, logre entender todo perfectamente, incluso el porque es que usábamos el ! para decir si algún dato existe o no) en resumidas cuentas, eres todo un crack Maestro Jon

dvesc
Автор

Hola Jon! Eternamente agradecida por tus videos, he vuelto al ruedo gracias a tí!! En el ejercicio 12 evité hacer varias validaciones (números negativos, cero y uno) al comienzo usando sólo esta:

if (n<=1) return console.warn("Por favor ingrese un número positivo y mayor a 1");

Mi algoritmo para la obtención de n° primos es:

let contador=0;
for (let i=1; i<=n;i++) {
if (n%i===0) {
contador++;
}

};
if (contador===2) return console.log(`El número "${n}" es primo`)
else return console.log(`El número "${n}" no es primo`)
}
Aunque luego de ver tu resolución comprendí que se ejecuta todo el ciclo y no sería lo mejor...
Saludos cordiales desde Argentina🧉

marianitaarb
Автор

Buenas tardes maestro JonMircha, adjunto el ejercico de los numeros primos, estuvo dificil tuve que salir a caminar y pensar hasta que pude lograrlo, dejo mi codigo muchas gracias..

let numero12 = (valor="") => {
parseInt(valor);
contador = 0;

if(!valor) return console.log("No has ingresado un numero")

if(valor<0) return console.log("Ingresa un numero mayor a 0")

//en el for indicara enla division el residuo es 0 y cada ves que encuentre division exacta lo guarde en la variable contador

for (let i = 1; i <= valor; i++)

{if (valor % i == 0) contador = contador + 1;}

// Usaremos if para preguntar, si contador es mayor que 3 no es un numero primo, porque un numero primo solo debe tener 2 divisores

if (contador > 0 && contador <= 2) {
console.log(`El numero ${valor} si es primo TRUE`);
} else {
console.log(`El numero ${valor} no primo FALSE`);
}
}

numero12(12);
numero12(5);
numero12(11);

miguelantonioescuderoperal
Автор

Gracias Jon, sos un gran profesor, de a poquito se van esclareciendo las cosas...

tongastonga