Ejercicios resueltos

   <div >
            <h1 >Validar número de teléfono</h1>
            <p>Introduzca el teléfono</p>
            <input type="text" id="telefono" >

            <input type="button" id="botonvalidar" value="Validar">
            <div id="resultado"></div>
        </div>

        <script>

            document.getElementById("botonvalidar").addEventListener("click", validar);
            
            function validar(){
                var telefono=document.getElementById('telefono').value;
                var mensaje;
                if (telefonoValido(telefono)){
                    mensaje="El teléfono es válido: "+formatTelefono(telefono);
                } else{
                    mensaje="Hay algún error con el número de teléfono";
                }
                document.getElementById('resultado').innerHTML=mensaje;
            }
            
            function telefonoValido(telefono) {
                if (telefono.length !== 9) {
                    return false;
                }
                for (var i = 0; i < telefono.length; i++) {
                    var cifra = telefono.charAt(i);
                    if (!esCifra(cifra)) {
                        return false;
                    }
                }
                return true;
            }
            function esCifra(letra) {
                var cifras = "0123456789";
                var pos = cifras.indexOf(letra);
                return pos !== -1 && letra.length === 1;
            }
            function esCifra2(letra) {
                if (letra >= "0" && letra <= "9" && letra.length == 1) {
                    return true;
                } else {
                    return false;
                }
            }
            function esCifra3(letra) {
                return !isNaN(letra) && letra.length == 1;
            }

            function buscar() {
                var cadena = document.getElementById("cadena").value;
                document.getElementById("resultado").innerHTML = invertir(cadena);
            }
            function formatTelefono(telefono) {
                return telefono.substr(0, 3) + "-" + telefono.substr(3, 3) + "-" + telefono.substr(6, 3);
            }
            function formatTelefono2(telefono) {
                return telefono.slice(0, 3) + "-" + telefono.slice(3, 6) + "-" + telefono.slice(6, 9);
            }
            function invertir(cadena) {
                var res = "";
                for (var i = cadena.length - 1; i >= 0; i--) {
                    res += cadena.substr(i, 1);
                }
                return res;
            }
            function cifValido(cif) {
                var letra = cif.charAt(0);
                var numeros = cif.slice(1);
                if (esLetra(letra) && digitosValido(numeros)) {
                    return true;
                } else {
                    return false;
                }
            }
            function esLetra(letra) {
                letra = letra.toLowerCase();
                if (letra >= "a" && letra <= "z" && letra.length == 1) {
                    return true;
                } else {
                    return false;
                }
            }
            function digitosValido(numero) {
                if (numero.length !== 8) {
                    return false;
                }
                for (var i = 0; i < numero.length; i++) {
                    var cifra = numero.charAt(i);
                    if (!esCifra(cifra)) {
                        return false;
                    }
                }
                return true;
            }
            function masLarga(cadena1, cadena2) {
                if (cadena1.length > cadena2.length) {
                    return cadena1;
                } else {
                    return cadena2;
                }
            }
            function quitaVocales(cadena) {
                var res = "";
                for (var i = 0; i < cadena.length; i++) {
                    var letra = cadena.charAt(i); //cadena.substr(i,1) cadena.slice(i,i+1)
                    //Si esa letra no es vocal la añado a res y si no no hago nada
                    if (!esVocal(letra)) {
                        res += letra;
                    }
                }
                return res;
            }

            function contarVocales(cadena) {
                var res = 0;
                for (var i = 0; i < cadena.length; i++) {
                    var letra = cadena.charAt(i);
                    if (esVocal(letra)) {
                        res++;
                    }
                }
                return res;
            }

            function esVocal(letra) {
                letra = letra.toLowerCase();
                if (letra == "a" || letra == "e" || letra == "i" || letra == "o" || letra == "u") {
                    return true;
                } else {
                    return false;
                }
            }
            function esVocalGuay(letra) {
                var vocales = "aeiouáéíóúàèìòùäëïöü";
                var pos = vocales.indexOf(letra.toLowerCase());
                /* if (pos === -1) {
                 return false;
                 } else {
                 return true;
                 }*/
                return pos !== -1;
            }
            function esVocalApretao(letra) {
                return "aeiouáéíóúàèìòùäëïöü".indexOf(letra.toLowerCase()) !== -1 && letra.length === 1;
            }

Ejercicios javascript

Función que dado un número de teléfono nos diga si es válido (true) o no (false). Un número de teléfono es válido si tiene una longitud de nueve cifras y todas son números. Ejemplo: telefonoValido(«666999666»)->true telefonoValido(«33666999666»)->false

Función que dado un número de teléfono válido nos lo muestre en formato xxx-xxx-xxx. Ejemplo: formatTelefono(«666999666»)-> «666-999-666»

Función que nos diga si un cif es válido o no. Los cifs válidos con una letra+8 caracteres. Ejemplo: cifValido(‘B12345678’)->true

Escribe una función a la que le pasemos dos cadenas y nos devuelva la más larga. Ejemplo: masLarga(«hola,»,»adios»)->»adios»

Funciones javascript cadena

 function invertir(cadena) {
                var res = "";
                for (var i = cadena.length - 1; i >= 0; i--) {
                    res += cadena.substr(i, 1);
                }
                return res;
            }

            function quitaVocales(cadena) {
                var res = "";
                for (var i = 0; i < cadena.length; i++) {
                    var letra = cadena.charAt(i); //cadena.substr(i,1) cadena.slice(i,i+1)
                    //Si esa letra no es vocal la añado a res y si no no hago nada
                    if (!esVocal(letra)) {
                        res += letra;
                    }
                }
                return res;
            }
            function esVocal(letra) {
                letra = letra.toLowerCase();
                if (letra == "a" || letra == "e" || letra == "i" || letra == "o" || letra == "u") {
                    return true;
                } else {
                    return false;
                }
            }
            function esVocalGuay(letra) {
                var vocales = "aeiouáéíóúàèìòùäëïöü";
                var pos = vocales.indexOf(letra.toLowerCase());
               /* if (pos === -1) {
                    return false;
                } else {
                    return true;
                }*/
                return pos!==-1;
            }
            function esVocalApretao(letra){
                return "aeiouáéíóúàèìòùäëïöü".indexOf(letra.toLowerCase())!==-1 && letra.length===1;
            }

Chat

 <div >
            <h1 >Búsqueda</h1>
            <p>La cadena y la cadena a buscar</p>
            <input type="text" id="pajar" >
            
            <input type="button" id="botonbuscar" value="¿Válido?">
            <div id="resultado"></div>
        </div>

        <script>

            document.getElementById("botonbuscar").addEventListener("click", buscar);

            function buscar() {
                var pajar = document.getElementById("pajar").value;
                
                var pos = pajar.indexOf("cacahuete");
                
                if (pos===-1){
                    document.getElementById("resultado").innerHTML += pajar+"<br/>";
                }
                


            }


        </script>

Búsqueda de palabras

 <div >
            <h1 >Búsqueda</h1>
            <p>La cadena y la cadena a buscar</p>
            <input type="text" id="pajar" >
            <input type="text" id="aguja" >
            <input type="button" id="botonbuscar" value="Buscar">
            <div id="resultado"></div>
        </div>

        <script>

            document.getElementById("botonbuscar").addEventListener("click", buscar);

            function buscar() {
                var pajar = document.getElementById("pajar").value;
                var aguja = document.getElementById("aguja").value;
                document.getElementById("resultado").innerHTML = "";
                var pos = pajar.indexOf(aguja);
                while (pos !== -1) {
                    document.getElementById("resultado").innerHTML += pos + " ";
                    pos = pajar.indexOf(aguja,pos+1);
                }


            }


        </script>

Ejemplo variables globales

<div >
            <h1 >Almacen de sumas</h1>
            <p>Introduce el número del que quieres sumar</p>
            <input type="number" id="numero" >
            <input type="button" id="botoncalcular" value="Sumar">
            <input type="button" id="botondeshacer" value="Deshacer" style="display:none">
            <div id="resultado"></div>
        </div>

        <script>

            document.getElementById("botoncalcular").addEventListener("click", calcular);
            document.getElementById("botondeshacer").addEventListener("click", deshacer);
            var total = 0;
            var numero;
            function calcular() {
                numero = parseInt(document.getElementById("numero").value)
                total += numero;
                document.getElementById("resultado").innerHTML = total;
                document.getElementById("botondeshacer").style.display="";
            }
            function deshacer() {
                total -= numero;
                document.getElementById("resultado").innerHTML = total;
                document.getElementById("botondeshacer").style.display="none";
            }


        </script>

Tabla de multiplicar

<div >
            <h1 >Tabla de multiplicar</h1>
            <p>Introduce el número del que quieres la tabla</p>
            <input type="number" id="numero" >
            <input type="button" id="botoncalcular" value="Calcular">
            <div id="resultado"></div>
        </div>

        <script>

            document.getElementById("botoncalcular").addEventListener("click", calcular);

            function calcular() {
                var numero = parseInt(document.getElementById("numero").value);
                var res = tabla(numero);
                document.getElementById("resultado").innerHTML = res;
            }
            function tabla(numero) {
                var res = "<table>";
                for (var i = 1; i <= 10; i++) {
                    res += "<tr><td>" + i + "</td><td>x</td><td>" + numero +
                            "</td><td>=</td><td>" + (i * numero) + "</td></tr>";
                }
                res += "</table>";
                return res;
            }

        </script>

Interaccionar con la página


  <div id="seccion">
            <h1 id="cabecera">Formulario</h1>
            <input type="text" id="texto">
            <input type="button" onclick="cambiar()" value="pincha">
        </div>

        <script>

            function cambiar() {
                var texto=document.getElementById("texto").value;
                
                document.getElementById("cabecera").innerHTML=texto;
            }

        </script>
		
		    <div id="seccion">
            <h1 id="cabecera">Formulario</h1>
            <input type="text" id="nombre" onkeyup="cambiar()">
            <input type="text" id="apellidos" onkeyup="cambiar()">
            <p id="resultado"></p>
        </div>

        <script>

            function cambiar() {
                var nombre = document.getElementById("nombre").value;
                var apellidos = document.getElementById("apellidos").value;

                document.getElementById("resultado").innerHTML = nombre + " " + apellidos;
            }

        </script>
		
		 <div id="seccion">
            <h1 id="cabecera">Formulario</h1>
            <input type="text" id="nombre" onchange="cambiar()" onfocus="aviso('nombre')">
            <input type="text" id="apellidos" onchange="cambiar()" onfocus="aviso('apellido')">

            <p id="resultado"></p>
            <p id="ayuda"></p>
        </div>

        <script>
            function aviso(texto){
                document.getElementById("ayuda").innerHTML="Introduzca el "+texto;
            }
            function cambiar() {
                var nombre = document.getElementById("nombre").value;
                var apellidos = document.getElementById("apellidos").value;

                document.getElementById("resultado").innerHTML += nombre + " " + apellidos+"<br/>";
            }

        </script>
		
		 <div id="seccion">
            <h1 id="cabecera">Formulario</h1>
            <input type="text" id="nombre" >
            <input type="text" id="apellidos" >

            <p id="resultado"></p>
            <p id="ayuda"></p>
        </div>

        <script>

            document.getElementById("nombre").addEventListener("change", cambiar);

            document.getElementById("apellidos").addEventListener("change", cambiar);

            function cambiar() {
                var nombre = document.getElementById("nombre").value;
                var apellidos = document.getElementById("apellidos").value;

                document.getElementById("resultado").innerHTML += nombre + " " + apellidos + "<br/>";
            }

        </script>
	 <div >
            <h1 >Fibonacci</h1>
            <p>Introduce el número que quieres calcular</p>
            <input type="number" id="numero" >
            <input type="button" id="botoncalcular" value="Calcular">
            <p id="resultado"></p>
        </div>

        <script>
            document.getElementById("botoncalcular").addEventListener("click", calcular);

            function calcular(){
                var numero=parseInt(document.getElementById('numero').value);
                var f=fibonacci(numero);
                document.getElementById('resultado').innerHTML=f.toLocaleString();
            }

            function fibonacci(numero) {
                var a = 0, b = 1, c = 1;
                for (var i = 2; i <= numero; i++) {
                    c = a + b;
                    a = b;
                    b = c;
                }
                return c;
            }
        </script>

Ejercicios while for javascript

Quiz Khanacademy

función fibonacci(numero) -> nos devuelve la funciónd e fibonacci de un número.


Hacer un bucle con una variable a que puede valer cualquier número.

Vamos a realizar las siguientes operaciones:

Mientras a sea mayor que uno

Si a es impar le sumamos uno.

Si a es par lo dividimos por dos.


Crear un bucle for que nos muestre la tabla de multiplicar del 5.

Modificarlo para hacer una función que nos muestre la tabla de multiplicar del número que le pasemos.

Modificarlo para que en vez de mostrarlo nos devuelva una cadena.


función que nos pinte un arbol inverso, justo al revés del que ya tenemos.


Hay una conjetura matemática que dice que lo siguiente:

Sea la siguiente operación, aplicable a cualquier número entero positivo:

  • Si el número es par, se divide entre 2.
  • Si el número es impar, se multiplica por 3 y se suma 1.

Al final siempre obtenemos uno.

Ejemplo:  13, 40, 20, 10, 5, 16, 8, 4, 2, 1.

Crear un bucle que, partiendo de una variable a con un valor cualquiera, vaya haciendo los pasos (y mostrándolos por consola) y que acabe cuando valga uno.

Después haremos una función que haga lo mismo y que nos devuelva una cadena con los pasos.

 

Ejemplos funciones


function saludo(nombre, numero) {
console.log("Hola " + nombre + " que tal");
console.log("Yo estoy muy bien");
console.log("La raiz cuadrada de " + numero + " es " + Math.sqrt(numero) + " ¿Lo sabías?");
}

saludo("Ana", 2);
saludo("Juan", 4);
saludo("Eva", 25);

function suma(numero) {
var s = 0;
for (var i = 1; i <= numero; i++) {
s += i;
}
return s;
}

function mayor(a, b) {
if (a > b) {
return a;
} else {
return b;
}
}

console.log(mayor(1, 8));
console.log(mayor(111, 8));

var c = mayor(3, 6);
console.log(c);

function repetir(caracter, numero) {
var res = "";
for (var i = 0; i < numero; i++) {
res += caracter;
}
return res;
}
console.log(repetir("*", 6));
console.log(repetir("#", 12));

function arbol(longitud) {
for (var i = 0; i < longitud; i++) {
console.log(repetir("*",i));
}
}
function arbol2(longitud) {
for (var i = 0; i < longitud; i++) {
console.log(repetir(" ",longitud-i)+repetir("*",i*2+1));
}
}
arbol2(8);