Inicio Práctica: Ejercicios de JavaScript de Mouredev
Artículo
Cancelar

Práctica: Ejercicios de JavaScript de Mouredev

Objetivo y duración

El objetivo de esta práctica es aprender a programar con JavaScript a un nivel básico.

Esta práctica se recomienda realizarla por parejas. El trabajo en parejas (pair-programming) es una técnica muy popular con varias ventajas:

  • Ayuda a mantener la concentración.
  • Es una excelente oportunidad para aprender y/o enseñar.
  • Puedes conocer personas que también están aprendiendo!

La idea del trabajo en parejas es que haya una persona que dicta y otra que escribe. Idealmente la persona que dicta sabe cómo hacer el ejercicio y la persona que escribe va aprendiendo y ayuda a corregir.

Duración: 14 h

Entrega y presentación

La entrega será en formato ZIP. Leer Entrega y presentación de prácticas.

Actividades

Realizar las siguientes actividades. Cada actividad debe contar con un comentario donde este escrito el enunciado de la actividad.

Decimal a binario

Dificultad: FÁCIL

Crea un programa se encargue de transformar un número decimal a binario sin utilizar funciones propias del lenguaje que lo hagan directamente.

Invierte cadenas

Dificultad: FÁCIL

Crea un programa que invierta el orden de una cadena de texto sin usar funciones propias del lenguaje que lo hagan de forma automática.

  • Si le pasamos “Hola mundo” nos retornaría “odnum aloH”

Anagrama

Dificultad: MEDIA

Escribe una función que reciba dos palabras (String) y retorne verdadero o falso (Boolean) según sean o no anagramas.

  • Un Anagrama consiste en formar una palabra reordenando TODAS las letras de otra palabra inicial.
  • NO hace falta comprobar que ambas palabras existan.
  • Dos palabras exactamente iguales no son anagrama.

¿Es un número primo?

Dificultad: MEDIA

Escribe un programa que se encargue de comprobar si un número es o no primo.

Hecho esto, imprime los números primos entre 1 y 100.

Aspect ratio de una imagen

Dificultad: DIFÍCIL

Crea un programa que se encargue de calcular el aspect ratio de una imagen a partir de una url.

  • Url de ejemplo: https://avatars.githubusercontent.com/u/7647613?v=4
  • Por ratio hacemos referencia por ejemplo a los “16:9” de una imagen de 1920*1080px.

Cuenta palabras

Dificultad: MEDIA

Crea un programa que cuente cuantas veces se repite cada palabra y que muestre el recuento final de todas ellas.

  • Los signos de puntuación no forman parte de la palabra.
  • Una palabra es la misma aunque aparezca en mayúsculas y minúsculas.
  • No se pueden utilizar funciones propias del lenguaje que lo resuelvan automáticamente.

Código morse

Dificultad: MEDIA

Crea un programa que sea capaz de transformar texto natural a código morse y viceversa.

  • Debe detectar automáticamente de qué tipo se trata y realizar la conversión.
  • En morse se soporta raya “—”, punto “.”, un espacio “ “ entre letras o símbolos y dos espacios entre palabras “ “.
  • El alfabeto morse soportado será el mostrado en https://es.wikipedia.org/wiki/Código_morse.

Expresiones equilibradas

Dificultad: MEDIA

Crea un programa que comprueba si los paréntesis, llaves y corchetes de una expresión están equilibrados.

  • Equilibrado significa que estos delimitadores se abren y cierran en orden y de forma correcta.
  • Paréntesis, llaves y corchetes son igual de prioritarios. No hay uno más importante que otro.
  • Expresión balanceada: { [ a * ( c + d ) ] - 5 }
  • Expresión no balanceada: { a * ( c + d ) ] - 5 }

La sucesión de Fibonacci

Dificultad: DIFÍCIL

Escribe un programa que imprima los 50 primeros números de la sucesión de Fibonacci empezando en 0.

  • La serie Fibonacci se compone por una sucesión de números en la que el siguiente siempre es la suma de los dos anteriores.
  • 0, 1, 1, 2, 3, 5, 8, 13…

Vocal más común

Dificultad: FÁCIL

Crea un función que reciba un texto y retorne la vocal que más veces se repita.

  • Ten cuidado con algunos casos especiales.
  • Si no hay vocales podrá devolver vacío.

La encriptación de Karaca

Dificultad: FÁCIL

Crea una función que sea capaz de encriptar y desencriptar texto utilizando el algoritmo de encriptación de Karaca (debes buscar información sobre él).

Bumeranes

Dificultad: FÁCIL

Crea una función que retorne el número total de bumeranes de un array de números enteros e imprima cada uno de ellos.

  • Un bumerán (búmeran, boomerang) es una secuencia formada por 3 números seguidos, en el que el primero y el último son iguales, y el segundo es diferente. Por ejemplo [2, 1, 2].
  • En el array [2, 1, 2, 3, 3, 4, 2, 4] hay 2 bumeranes ([2, 1, 2] y [4, 2, 4]).

Conversor de temperatura

Dificultad: FÁCIL

Crea una función que transforme grados Celsius en Fahrenheit y viceversa.

  • Para que un dato de entrada sea correcto debe poseer un símbolo “°” y su unidad (“C” o “F”).
  • En caso contrario retornará un error.

La ley de Ohm

Dificultad: FÁCIL

Crea una función que calcule el valor del parámetro perdido correspondiente a la ley de Ohm.

  • Enviaremos a la función 2 de los 3 parámetros (V, R, I), y retornará el valor del tercero (redondeado a 2 decimales).
  • Si los parámetros son incorrectos o insuficientes, la función retornará la cadena de texto “Invalid values”.

Binario a decimal

Dificultad: MEDIA

Crea un programa se encargue de transformar un número binario a decimal sin utilizar funciones propias del lenguaje que lo hagan directamente.

Los números perdidos

Dificultad: FÁCIL

Dado un array de enteros ordenado y sin repetidos, crea una función que calcule y retorne todos los que faltan entre el mayor y el menor.

  • Lanza un error si el array de entrada no es correcto.

El segundo más grande

Dificultad: FÁCIL

Dado un listado de números, encuentra el SEGUNDO más grande.

Años bisiestos

Dificultad: FÁCIL

Crea una función que imprima los 30 próximos años bisiestos siguientes a uno dado.

  • Utiliza el menor número de líneas para resolver el ejercicio.

Marco de palabras

Dificultad: FÁCIL

Crea una función que reciba un texto y muestre cada palabra en una línea, formando un marco rectangular de asteriscos.

  • ¿Qué te parece el reto? Se vería así:
1
2
3
4
5
6
7
**********
* ¿Qué   *
* te     *
* parece *
* el     *
* reto?  *
**********

Ordena la lista

Dificultad: FÁCIL

Crea una función que ordene y retorne una matriz de números.

  • La función recibirá un listado (por ejemplo [2, 4, 6, 8, 9]) y un parámetro adicional “Asc” o “Desc” para indicar si debe ordenarse de menor a mayor o de mayor a menor.
  • No se pueden utilizar funciones propias del lenguaje que lo resuelvan automáticamente.

Vectores ortogonales

Dificultad: FÁCIL

Crea un programa que determine si dos vectores son ortogonales.

  • Los dos array deben tener la misma longitud.
  • Cada vector se podría representar como un array. Ejemplo: [1, -2]

¿Es un palíndromo?

Dificultad: MEDIA

Escribe una función que reciba un texto y retorne verdadero o falso (Boolean) según sean o no palíndromos.

Un Palíndromo es una palabra o expresión que es igual si se lee de izquierda a derecha que de derecha a izquierda.

NO se tienen en cuenta los espacios, signos de puntuación y tildes.

Ejemplo: Ana lleva al oso la avellana.

MCD y MCM

Dificultad: MEDIA

Crea dos funciones, una que calcule el máximo común divisor (MCD) y otra que calcule el mínimo común múltiplo (mcm) de dos números enteros. No se pueden utilizar operaciones del lenguaje que lo resuelvan directamente.

Conjuntos

Dificultad: FÁCIL

Crea una función que reciba dos array, un booleano y retorne un array.

    • Si el booleano es verdadero buscará y retornará los elementos comunes de los dos array.
    • Si el booleano es falso buscará y retornará los elementos no comunes de los dos array.
    • No se pueden utilizar operaciones del lenguaje que lo resuelvan directamente.

Conversor tiempo

Dificultad: FÁCIL

Crea una función que reciba días, horas, minutos y segundos (como enteros) y retorne su resultado en milisegundos.

En mayúscula

Dificultad: FÁCIL

Crea una función que reciba un String de cualquier tipo y se encargue de poner en mayúscula la primera letra de cada palabra.

  • No se pueden utilizar operaciones del lenguaje que lo resuelvan directamente.

¿Es un número de Armstrong?

Dificultad: FÁCIL

Escribe una función que calcule si un número dado es un número de Amstrong (o también llamado narcisista).

Si no conoces qué es un número de Armstrong, debes buscar información al respecto.

Factorial recursivo

Dificultad: FÁCIL

Escribe una función que calcule y retorne el factorial de un número dado de forma recursiva.

Eliminando caracteres

Dificultad: FÁCIL

Crea una función que reciba dos cadenas como parámetro (str1, str2) e imprima otras dos cadenas como salida (out1, out2).

  • out1 contendrá todos los caracteres presentes en la str1 pero NO estén presentes en str2.
  • out2 contendrá todos los caracteres presentes en la str2 pero NO estén presentes en str1.

Bibliografía

Este artículo está licenciado bajo CC BY 4.0 por el autor.

Práctica: Introducción a JavaScript 2

Práctica: Ejercicios de JavaScript de Victor Robles