Ejercicios Genéricos de Programación

Los siguientes ejercicios han sido pensados para practicar la programación en cualquier lenguaje, desde los conceptos más elementales hasta algunos más avanzados como expresiones regulares o programación orientada a objetos.

Puesto que no todos los lenguajes tienen las mismas características, es posible que algún ejercicio no pueda realizarse fácilmente en alguno de ellos. También hay que tener en cuenta que la implementación propuesta de las soluciones no es la única posible. Un mismo programa puede escribirse de muchas formas distintas y válidas.

Los ejercicios están ordenados por dificultad. Por esta razón, es posible que la numeración varíe según vaya añadiendo nuevos problemas.

Ejercicios

  1. Hi World

    Enunciado

    Implementa una función que escriba por pantalla 'Hola Mundo'.

    Soluciones

  2. Square Me

    Enunciado

    Implementa una función que devuelva el cuadrado de un número que le pasemos como parámetro. Utiliza el operador aritmético de multiplicación para obtener el resultado.

    Soluciones

  3. DNI Checker

    Enunciado

    Implementa una función para comprobar que un DNI es correcto. La función recibirá un parámetro para la parte numérica y otro para la letra, y devolverá verdadero o falso.

    Un DNI correcto debe cumplir lo siguiente:

    • La parte numérica debe ser un número entero positivo menor a cien millones.
    • La letra correcta se obtiene usando el resto de dividir el número entre 23 como índice de un array con los valores 'T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E','T'.

    Soluciones

  4. Date Checker

    Enunciado

    Implementa una función para comprobar que una fecha es correcta. Recibirá los parámetros día, mes y año; y devolverá verdadero o falso.

    Supongo que sabrás cuántos días tiene cada mes. Lo más complicado es calcular si el año es bisiesto: Un año es bisiesto si es divisible entre 4, excepto si es divisible entre 100 pero no entre 400. ¿Cómo se comprueba si un número es divisible por otro?

    Soluciones

  5. Time This

    Enunciado

    Implementa una función que, pasado un número entero que represente segundos, devuelva una cadena de texto desglosando a cuántos segundos, minutos, horas, días, meses y años corresponden.

    Por ejemplo, si pasamos el valor 121, el programa devolverá '1 segundo, 2 minutos, 0 horas, 0 días, 0 meses, 0 años.'

    Soluciones

  6. Countdown

    Enunciado

    Implementa una función que muestre por pantalla una cuenta atrás desde un número recibido por parámetros hasta cero.

    Soluciones

  7. Powerpuff

    Enunciado

    Implementa una función con dos parámetros que devuelva el resultado de elevar el primero por el segundo. Utiliza únicamente el operador multiplicación, y supón que el segundo siempre es mayor que cero.

    Soluciones

  8. Prime Checker

    Enunciado

    Implementa una función que, pasado un número cualquiera, devuelva verdadero si es primo o falso en caso contrario.

    Recuerda que sólo pueden ser primos los números naturales mayores a 0. Para comprobar si un número es entero puedes convertirlo a entero y compararlo con el original. Cada lenguaje tiene su propia sintaxis para la conversión de tipos, como la función parseInt() o simplemente (int).

    Procura que el bucle de la solución realice las mínimas iteraciones necesarias. Tal vez puedas usar un break.

    Soluciones

  9. Palindrome Checker

    Enunciado

    Implementa una función que, pasada una cadena de texto, devuelva verdadero si se trata de un palíndromo o falso en caso contrario.

    Una cadena de texto es palíndroma si su primera mitad es una imagen especular de su segunda mitad. Ejem. Por ejemplo, 'abba', 'otto', 'matam', etc.

    Para realizar este ejercicio tendrás que averiguar cómo leer un caracter concreto de una cadena en el lenguaje que vas a utilizar. En ocasiones puedes acceder al string con [] como si fuera un array, en otras necesitas una función del tipo charAt(), etc.

    Soluciones