Javascript: Sintaxis ==================== .. _ej-js-basicos: Mínimos ------- Realice los siguientes ejercicios en Javascript, atendiendo a los siguientes principios: .. rst-class:: simple a. Son *scripts* que no están asociados a ningún documento HTML. #. Los datos iniciales se almacenan en variables sin pedirlos al usuario, ya que es un poco engorroso implementar la entrada de datos por teclado en este lenguaje. #. Aunque el enunciado no lo explicite, haga que el programa informe de la entrada y la salida. #. Resueltos los ejercicios, vuelva a resolverlos permitiendo que los datos de entrada, en vez de estar fijados en el código, se generen automáticamente entre dos valores que resulten lógicos. No haga un código aparte: mejore el código ya escrito para que se utilicen números prefijados o números aleatorios dependiendo del valor de una variable inicial. .. note:: Si es capaz de resolver de primeras los ejercicios de esta forma, no es necesario que escriba la versión simple. #. Los ejercicios pueden resolverse solamente con datos simples y sentencias condicionales. Una vez completada la relación, dele una vuelta a los ejercicios introduciendo conceptos más avanzados (arrays, objetos, funciones), en aquellos en que sea pertinente para mejorar su estructuración y simplificar su resolución. 1. A partir de dos números que simbolizan los lados de un rectángulo, calcule su área y su perímetro. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. A partir de dos números que simbolizan los catetos de un triángulo rectángulo, calcule la hipotenusa (`teorema de Pitágoras `_). .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Pase una cantidad expresada en segundos a horas, minutos y segundos. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Dada la edad en años de una persona, haga un programa que determine si es o no mayor de edad. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. A partir de un monedero en el que se tienen monedas de 1 euro y billetes de 5, 10, 20 y 50 euros, calcule el dinero total a partir de la cantidad de monedas de cada tipo que almacena. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Dada una cantidad en euros, fracciónela en billetes de 5, 10, 20 y 50, y monedas de 1, sabiendo que se pretende minimizar su número. En conclusión, que este ejercicio es el inverso al anterior. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. A partir de dos números calcule o la suma o la resta o la multiplicación o la división. La operación se debe escoger al azar. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Determinar si un año es bisiesto. Son bisiestos los años múltiples de 4, excepto los de comienzo de siglo que no son múltiplos de 400: 1994 es bisiesto, 1900 no lo es, pero 2000, sí. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Dada una nota numérica entre 0 y 10, devuelva la nota descriptiva, sabiendo las equivalencias: ========== ========== ================== Inferior Superior Nota descriptiva ========== ========== ================== 0 <3 Muy deficiente 3 <5 Insuficiente 5 <6 Suficiente 6 <7 Bien 7 <9 Notable 9 10 Sobresaliente ========== ========== ================== #. Dados dos puntos del plano a modo de centros y sendos radios, que definen dos circunferencias, determinar si ambas circunferencias son: + Exteriores + Tangentes exteriores. + Secantes. + Tangentes interiores. + Una interior a la otra. + Concéntricas. .. rst-class:: sol-oculta :download:`Solución propuesta ` .. _ej-js-medios: Medios ------ 1. `Math.random() `_ es un método que devuelve un número aleatorio entre 0 y 10. Escriba una función que devuelva un número entero aleatorio entre un mínimo y un máximo. .. rst-class:: sol-oculta **Solución**: *La función está incluida en muchas de las soluciones a los ejercicios de la tanda anterior*. #. Simular tandas de dos tiradas de dados y parar en la tanda en que el resultado de ambas tiradas coincida. En ese momento, indicar cuántas tandas han sido necesarias y cuál fue el resultado (1-1, 2-2, etc.). .. rst-class:: sol-oculta | :download:`Solución propuesta `. | :download:`Solución propuesta (POO con Class) `. | :download:`Solución propuesta (POO con herencia prototípica) `. | :download:`Solución propuesta (POO con funciones de fábrica) `. #. A partir de un número, obtenga otro número que sea la inversión de sus cifras. Por ejemplo, si el número inicial es 321, deberá resultar 123. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Cree una función llamada ``indexOf_N`` que busque en un array la aparición n-ésima de un determinado valor. Por ejemplo, para el array :code:`[ "a", "b", "a", "c", "d", "a", "e"]`, si se busca la tercera aparición de "a" debe devolver 5. El primer argumento de la función debe ser el array, el segundo el valor a buscar y el tercero el número de aparición. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Escriba un función que determine si un número es capicúa. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Una cooperativa de viticultores paga el precio de la uva dependiendo del tipo de uva (tempranillo, palomino, etc) y de su calibre (1, 2 ó 3). Escriba un algoritmo para determinar el pago que debe recibir un agricultor dependiendo de cuáles sean las uvas que entregue. Discuta: * El formato o método para pasar al algoritmo los precios unitarios de la uva según tipo y tamaño. * El formato o método para pasar al programa las cantidades recolectadas por un agricultor. En base a lo anterior, escriba el código para hacer el cálculo. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Estudie las fechas en Javascript (`Date `_) y, dada la fecha de nacimiento de una persona, haga un programa que determine si es o no mayor de edad. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Dada una lista de números, devuelva otra que excluya los números mayores al último. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Tome diez números naturales entre 1 y 40 al azar y calcule la suma y el producto de todos ellos. .. rst-class:: sol-oculta :download:`Solución propuesta ` #. Dado un número natural N, construya una pirámide de N niveles. Por ejemplo, para 4: .. code-block:: none x xxx xxxxx xxxxxxx .. rst-class:: sol-oculta :download:`Solución propuesta `