6 Simulador de Hipotecas

alt simulador hipotecas en javascript

Cambio el formato un poco. Primero pongo los links por si quereis mirar el código directamente en github

Muestra: http://javascript.kennyming.com/code/6-Simulador de hipoteca/

Codigo: https://github.com/kennymingt/javascript/tree/master/code/6-Simulador de hipoteca

file: index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Simulador de hipoteca</title>
</head>
<body>
    <h1>Simulador de hipoteca</h1>
    <div>Importe total del prestamo: <input type="number" id="importe"></div>
    <div>Interés anual en %: <input type="number" id="interes"></div>
    <div>Número de meses a pagar: <input type="number" id="meses"></div>

    <!-- 
        span, crea un elemento apartado pero en linea
        Lo usaremos para poner la cantidad una vez calculada
     -->
    <div>Cuota mensual: <span id="cuota"></span></div>
    <div>Total pagado: <span id="pagado"></span></div>
    <div>Intereses pagados: <span id="interesesPagados"></span></div>

    <div>
        <button id="calcular">Calcular</button>
    </div>

    <script src="main.js"></script>
</body>
</html>

file: main.js

/**
 * Simulador de hipotecas.
 * 
 * 
 * Nota:
 * Esto es sólo una applicación ejemplo para ilustrar codigo en Javascript.
 * Seguramente los resultados no coincidan con los pagos reales del banco.
 * Consulta con tu banco antes de pedir una hipoteca y asegurate de que puedes pagarla.
 * 
 * 
 * Después de leer y enteder el código, intenta escribir la applicación desde cero, sin usar "copia y pega"
 */


/*
Nuestra pequeña applicación de simular hipotecas toma la siguiente información por parte del usuario:
    * Importe total del prestamo
    * El interés anual (para simplificar suponemos que el interes no varia)
    * El número de meses en los que queremos pagar la hipoteca

Para calcular la cuota usamos una formaula que hemos encontrado en internet:


                     importe
    cuota =    _______________________
                                 -meses            
                1 - (1 + interés)
                _________________
                    interés

    
    O como lo escribiriamos en el ordenador:
    cuota = importe del préstamo / ( (1 - ( 1 + tipo interés)) ^ -número de meses ) / tipo de interés)

    El interés se calcula tomando el interés anual y dividiendo entre 12 meses

Una vez tenemos la cuota mostramos al usuario lo que paga cada mes, y el total pagado una vez que termine la hipoteca

Operadores aritmeticos en JS
        suma            +
        resta           -
        multiplicación  *
        división        /
        Exponencial     **

*/



// Vamos a ello
// Para tomar valores y colocar valores en el navegador tomamos referencias a los elementos html que necesitamos

// Entradas de texto
const elementoImporte = document.getElementById('importe')
const elementoInteres = document.getElementById('interes')
const elementoMeses = document.getElementById('meses')

// Elementos para mostrar info
const elementoCuota = document.getElementById('cuota')
const elementoPagado = document.getElementById('pagado')
const elementoInteresesPagados = document.getElementById('interesesPagados')

// El botón
const botonCalcular = document.getElementById('calcular')


// Asignamos la función calcular al click del raton en el botón
botonCalcular.addEventListener('click', calcular)


// Creamos la funcion calcular hipoteca
function calcular(){
    // Asumimos que esta función solo se ejecuta una vez están todos los campos rellenos correctamente
    // y el usuario pulsa el botón calcular

    // Tomamos los valores introducdos por el usuario y los convertimos a números
    // ParseFloat convierte de cadena de texto a número con decimales
    const importe = parseInt(elementoImporte.value)
    const interesAnual = parseFloat(elementoInteres.value)
    const meses = parseInt(elementoMeses.value)

    // Comenzamos los calculos

    // El interes anual vienen dado en %, asi que dividimos por 100
    // Ademas lo divimos por los 12 mese para tener el interes por cuota
    const interes = (interesAnual/100) /12



    // Calculamos la cuota mensual

    const cuota = importe / (( (1 - ( 1 + interes) ** -meses)) / interes)
    // Nota en Javascript (ECMAScript 2016) ** eleva a la potencia de
    // ejemplo:
    //  dos al cuadrado , 2 ** 2
    // 5 elevado a la décima potencia, 5 ** 10


    // Calculamos el total pagado
    // Esto es la cuota por el número de meses
    const pagado = cuota * meses

    // Intereses pagados al final de al hipoteca, que alegría
    // Esto es el total pagado menos lo que habíamos pedido de préstamo (el importe)
    const interesesPagados = pagado - importe



    // Ahora ya podemos mostrarlo todo al usuario
    // tofixed() limita el numero de decimales, en nuestro case 2 decimales
    elementoCuota.textContent = cuota.toFixed(2)
    elementoPagado.textContent = pagado.toFixed(2)
    elementoInteresesPagados.textContent = interesesPagados.toFixed(2)

}
Read More

Calculadora simple 2

alt buttons in javascript archivo: index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Calculadora Simple</title>
</head>
<body>
    <!-- Un poco de html -->
    <!-- Esto es un comentario y no aparece en el navegador -->
    <!-- 
        El elemento html h1 es un partado. Cualquier cosa despues de un element h1 aparece en una nueva linea.
        Este tipo d elementos se llaman de bloque, "block"
    -->
    <!--
        El elemento input no es de bloque,
        con lo cual aparece en la misma linea que el resto del texto.
        Este tipo de elementos html se les llaman "en linea", "in-line"
    -->
    
    <!-- 
        El elemento div es de bloque,
        aqui lo usamos para que cada entrada de texto en una linea y colocar los botones tambien en su propia linea
    -->
    <!--
        El elemento "button" es en linea, in-line
    -->

    <h1>Calculadora Simple</h1>
    <div>
        Introduce el primer número: <input type="number" id="numero1">
    </div>
    <div>
        Introduce el segundo número: <input type="number" id="numero2">
    </div>

    <!-- El elemento div crea un apartado -->
    <div>
        <button id='suma'>Suma</button>
        <button id='resta'>Resta</button>
        <button id='multiplica'>Multiplica</button>
        <button id='divide'>Divide</button>
    </div>
    <div id="resultado"></div>
    
    <script src="main.js"></script>
    
</body>
</html>

archivo: main.js

/**
 * Applicación calculadora simple 2.
 * 
 * Ya nuestro progrmas empiezan a ser largos
 * 
 * Después de leer y enteder el código, intenta escribir la applicación desde cero, sin usar "copia y pega"
 */

console.log('Arrancando la app')


// Cogemos una referencia a los elemetos del documento html, DOM
// Las dos entradas de texto, y la sección para mostrar el resultado
const entradaTexto1 = document.getElementById('numero1')
const entradaTexto2 = document.getElementById('numero2')
const elementoResultado = document.getElementById('resultado')


// Y los 4 botones
const botonSuma =document.getElementById('suma')
const botonResta =document.getElementById('resta')
const botonMultiplica =document.getElementById('multiplica')
const botonDivide =document.getElementById('divide')

// Assignamos una función al evento 'click' de cada boton.
// En esta ocasión assignamos una función que definimos separadamente.
// Vuelve al ejemplo anterior para ver la diferencia
botonSuma.addEventListener('click', suma)
botonResta.addEventListener('click', resta)
botonMultiplica.addEventListener('click', multiplica)
botonDivide.addEventListener('click', divide)


// Creamos cada una de las funciones para realizar la operación correspondiente
function suma(){
    // parseInt convierte de texto(String) a numero(Number)
    const valor1 = parseInt(entradaTexto1.value)
    const valor2 = parseInt(entradaTexto2.value)

    // Calculamos el resultado, suma +
    const resultado = valor1 + valor2

    // Mostramos el resultado en la pantalla
    elementoResultado.textContent = 'El resultado es: ' + resultado
}

function resta(){
    // parseInt convierte de texto(String) a numero(Number)
    const valor1 = parseInt(entradaTexto1.value)
    const valor2 = parseInt(entradaTexto2.value)

    // Calculamos el resultado, resta -
    const resultado = valor1 - valor2

    // Mostramos el resultado en la pantalla
    elementoResultado.textContent = 'El resultado es: ' + resultado
}

function multiplica(){
    // parseInt convierte de texto(String) a numero(Number)
    const valor1 = parseInt(entradaTexto1.value)
    const valor2 = parseInt(entradaTexto2.value)

    // Calculamos el resultado, multiplicación *
    const resultado = valor1 * valor2

    // Mostramos el resultado en la pantalla
    elementoResultado.textContent = 'El resultado es: ' + resultado
}

function divide(){
    // parseInt convierte de texto(String) a numero(Number)
    const valor1 = parseInt(entradaTexto1.value)
    const valor2 = parseInt(entradaTexto2.value)

    // Calculamos el resultado, devisión /
    const resultado = valor1 / valor2

    // Mostramos el resultado en la pantalla
    elementoResultado.textContent = 'El resultado es: ' + resultado
}

Ejemplo: http://javascript.kennyming.com/code/5-calculadora-simple-2/

Codigo: https://github.com/kennymingt/javascript/tree/master/code/5-calculadora-simple-2

Read More

Calculadora simple 1

archivo: index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Calculadora Simple 1</title>
</head>
<body>

    <!-- Esto es un comentario y no aparece en el navegador -->
    
    <h1>Calculadora Simple 1</h1>
    <div>
        Introduce el primer número: <input type="number" id="numero1">
    </div>
    <div>
        Introduce el segundo número: <input type="number" id="numero2">
    </div>

    <!-- El elemento div crea un apartado -->
    <div>
        <button id='suma'>Suma</button>
    </div>

    <div id="resultado"></div>
    
    <script src="main.js"></script>
    
</body>
</html>

archivo: main.js

/**
 * Applicación calculadora simple 1.
 * 
 * Después de leer y enteder el código, intenta escribir la applicación desde cero, sin usar "copia y pega"
 */

console.log('Arrancando la app')


// Cogemos una referencia a los elemetos del documento html, DOM
// Las dos entradas de texto, y la sección para mostrar el resultado
const entradaTexto1 = document.getElementById('numero1')
const entradaTexto2 = document.getElementById('numero2')
const elementoResultado = document.getElementById('resultado')

// Y al boton
const botonSuma =document.getElementById('suma')


// Assignamos una función al evento 'click' 
botonSuma.addEventListener('click', function() {

    // parseInt convierte de texto(String) a numero(Number)
    const valor1 = parseInt(entradaTexto1.value)
    const valor2 = parseInt(entradaTexto2.value)

    // Llamamos a la función suma, que creamos más abajo
    // Guardamos el valor que devuelve en la variable resultado
    const resultado = suma(valor1, valor2)

    // Mostramos el resultado en la pantalla
    elementoResultado.textContent = 'El resultado es: ' + resultado


})


// Creamos una función llamada suma
// esta funcion toma dos valores a y b
// Suma a y b, y devuelve el resultado
function suma(a, b){
    return a + b
}

Ejemplo: http://javascript.kennyming.com/code/4-calculadora-simple-1/

Codigo: https://github.com/kennymingt/javascript/tree/master/code/4-calculadora-simple-1

Read More

Entrada de texto en Javascript

  • Campo o casilla de entrada de texto en HTML (input tag)
  • Leer el valor del campo de entrada de texto
  • Encadenar cadenas de texto

Vamos a mostrar un campo de entrada de texto para que el usuario introduzca su nombre. Cuando pusemos sobre el botón mostraremos un mensaje con el nombre en un elemento html.

archivo: index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Input Text in Javascript</title>
</head>
<body>
    <h1>Input Text Application</h1>
    Input your name: 
    <input id="name" type="text" >
    <button id="myButton">Press Me</button>
    <div id="message"></div>
    
    <script src="main.js"></script>
</body>
</html>

archivo: main.js

/**
 * This application shows how to read the value from an input field.
 */

console.log('Starting App')

// Get a reference of the DOM elements
const nameInput = document.getElementById('name')
const button = document.getElementById('myButton')
const messageElement = document.getElementById('message')

// When the button is click it will execute a function.
// This function gets the value of the name input and displays it in the message div element.
button.addEventListener('click', function(){
    const name =nameInput.value
    messageElement.textContent = 'Hello ' + name
})

Ejemplo: http://javascript.kennyming.com/code/3-input-text-javascript/

Codigo: https://github.com/kennymingt/javascript/tree/master/code/3-input-text-javascript

Read More

Usando botones en JavaScript

  • Mensajes de consola para depurar
  • Constantes
  • Añadir escuchas a eventos del DOM
  • funciones

Vamos a mostrar un mensaje cuando pulsemos un botón.

Ponemos dos elementos con Id en el HTML, el botón y un div para mostrar el mensaje.

file: index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Botones en JavaScript</title>
</head>
<body>
    <h1>Aplicación Botones</h1>
    <div id="messageElement"></div>
    <button id="myButton">Press Me</button>
    <script src="main.js"></script>
</body>
</html>

En nuestro archivo JavaScript tomamos una referencia a los elementos HTML Luego añadimos una function al evento “click” del botón.

file: main.js

/**
 * Using Buttons in Javascript demo app
 */

console.log('Starting Application')

// Get a rerference to DOM elements: the div for the message, and the button
const messageElement = document.getElementById('messageElement')
const myButton = document.getElementById('myButton')

// Respond to click events
myButton.addEventListener('click', function(){
    console.log('Click en el botón!')
    messageElement.textContent = 'Click en el botón'
})

alt buttons in javascript Muestra: http://javascript.kennyming.com/code/2-buttons-in-javascript/

Codigo: https://github.com/kennymingt/javascript/tree/master/code/2-buttons-in-javascript

Read More

Cómo mostrar un texto usando javascript

Lo que vamos a ver:

  • Crear un archivo HTML básico
  • Ponerle título a la página
  • Mostrar un texto estático como cabecero “h1”
  • Incluir el archivo JavaScript en nuestro HTML
  • Tomar una referencia a un elemento HTML y cambiar su contenido de texto.

Este es el HTML de la applicación. Usaremos un “div” para mostrar un mensaje al usuario. Para ello necesitamos ponerle un nombre al campode identificacióm “id” en el HTML. A través del “id” podemos coger una referencia a este elemento desde nuestro archivo javascript. Por último incluimos el archivo javascript, llamado “main.js” Archivo: index.html

<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>Applicación: Mostrar información</title>
 </head>
 <body>
  <h1>Mostrar Información</h1>
  <div id="info"></div>
  <script src="main.js"></script>
 </body>
</html>

Archivo: main.js

/**
* Applicación principal
* */
const info = document.getElementById('info')
info.textContent('Hola mundo!")

Eso es todo. Si abrimos el archivo index.html en chrome, simplemente haz doble-click, veremos nuestro mensage “Hola mundo!” mostrado en la página web.

Ejemplo: http://javascript.kennyming.com/code/1-displaying-text/

Codigo: https://github.com/kennymingt/javascriptkenny/tree/master/code/1-displaying-text

Read More