miércoles, 29 de agosto de 2012

Javascript ... uso de getElementById

Calcular tasa de interés



Versión con jQuery


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
    <title>::Uso de getElementById con jQuery::</title>
<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<!-- jQuery -->
    <script type="text/javascript" language="javascript">
    <!--
    console.log('aqui se crea la función')
    function calculo(){  
           
           // aqui hago uso de la propiedad getElementById("")
          var vi=$('#valor_inicial').val();
          var vf=$('#valor_final').val();
          var n=$('#periodo').val();
         
  
     
          // esta es la variable que mostrará el resultado
          var result=$('#result').val((Math.pow(vf/vi,1/n)- 1)*100);
     
           
        }
     
// $('#test-table'); equivale a document.getElementById('test-table');

function limpia(){
$('#valor_final').val("");
$('#valor_inicial').val("");
$('#periodo').val("");
$('#result').val("");
}

-->
</script>

    </head>
    <body>
    <h1>Calcular tasa de interés</h1>
        <div>
       
      valor final:
            <input id="valor_final" type="text" value=""/><br/>
        valor inicial:<input id="valor_inicial"  type="text" value=""/><br/>
      periodo:<input id="periodo"  type="text" value=""/><br/>
            <button onclick="calculo()">Calcular</button>
        Tasa de interés generado:<b><input id="result"  type="text" value=""/></b>
        <button onclick="limpia()">Borrar</button>
        </div>
    </body>
    </html>

domingo, 12 de agosto de 2012

SMSLib ... inicio

SMSLib en Java ... inicio


Al leer este post servidor smtp tuve la curiosidad si se puede crear una app (web o swing todavía no lo decido) para el envío y recepción de SMS.

SMSLib

Lo que necesitamos

  • SUN JDK 1.5 o más nuevo
  • Java Communications Library.
  • Apache ANT for building the sources.
  • Apache log4j.
  • Apache Jakarta Commons - NET.
  • JSMPP Library
  • http://www.kannel.org/
      Kannel is a compact and very powerful open source WAP and SMS gateway, used widely across the globe both for serving trillions of short messages (SMS), WAP Push service indications and mobile internet connectivity.
    
Todavía son ideas, en cuanto tenga tiempo publicaré algo más. 

sábado, 11 de agosto de 2012

Programación en VBA ... ejemplo no. 1


Este es un ejemplo de como programar con Visual Basic para Aplicaciones  (VBA).


1. Calcular el valor futuro de una inversión dado un valor presente, una tasa de interés y un periodo de pago.

Controles a usar:

- 3 Label
- 3 TextBox
- 3 CommandButton

Para abrir el editor de macros (en Microsoft Excel) presionas alt + F11.


La fórmula es:
valorFuturo= valorPresente*pow(1+tasa_interés/100,periodo)

Al dar clic sobre el formulario se abre el editor de código de VB. Para declarar una variable debes usar Dim algo As TipoVariable. Puedes usar ventanas tipo "alert" (MsgBox) para mostrar el resultado o algún aviso al usuario.




Para ejecutar debes presionar F5.


Código completo:

Option Explicit
'esto es un comentario
Dim res As String ' aqui almaceno el resultado
'botón calcular
Private Sub CommandButton1_Click()
'valorFuturo=valorPresente*pow(1+tasa/100,periodo)
If TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" Then
res = "No hay nada que evaluar"
MsgBox res, vbCritical, "Alerta"
Else
res = Val(TextBox1.Value) * Val(1 + TextBox2.Value / 100) ^ Val(TextBox3.Value)
MsgBox "Valor presente: " & TextBox1.Value & vbCrLf & "Tasa de interés: " & TextBox2.Value & vbCrLf & "Periodo: " & TextBox3.Value & vbCrLf & "Valor futuro:" & res, vbDefaultButton1, "Resultado"
End If
End Sub

'botón limpiar
Private Sub CommandButton2_Click()
TextBox1.Text = "": TextBox2.Text = "": TextBox3.Text = ""
End Sub

'botón finalizar
Private Sub CommandButton3_Click()
End
End Sub


Se puede activar/aparecer el formulario desde una hoja, para eso puedes ocupar un botón.

Sub Botón1_Haga_clic_en()
UserForm1.Show ' esto activa el formulario
End Sub


martes, 7 de agosto de 2012

Python ... ejemplos prácticos no. 7







Una forma de ejecutar programas Python.

Archivos *.bat (Windows), creamos un archivo llamado "ejecuta.bat" y colocamos:
@echo off
python programa.py

Al dar clic sobre el se ejecuta.

En Linux usamos un archivo *.sh, creamos un archivo llamado "ejecuta.sh" y colocamos:
python programa.py

Debemos otorgarle un permiso de ejecución:
chmod u+x ejecuta.sh

Y lo ejecutamos:
./ejecuta.sh

Groovy vs Java vs Python

Los lenguajes de scripting como Groovy o Python permiten escribir pequeños programas y así ahorrar varias líneas de código (en comparación con otros lenguajes como Java). Ejemplo. Creamos una clase llamada "Futbol" en estos tres distintos lenguajes con las siguientes propiedades:
  • nombreEquipo: String
  • victorias: int
  • derrotas: int
  • empates: int
  • golesAFavor: int
  • golesEnContra: int
  • golesGoleador
  • goleador: String
En Groovy no es necesario colocar ";" al final de una instrucción, además se puede definir variables con "def" o como se hace en Java (String, int, double,etc.). Al ser de tipo dinámico no es necesario definir el tipo de dato de una variable.
Futbol.groovy
class Futbol{ def nombreEquipo, goleador def victorias, derrotas,empates def golesAFavor, golesEnContra, golesGoleador // ... // ... }

Creamos una función que nos muestre los datos: def verDatos(){ println("Nombre del equipo: "+nombreEquipo) println("Nombre del goleador: "+goleador) println("No. de victorias: "+victorias) println("No. de derrotas: "+derrotas) println("No. empates: "+empates) println("No. goles a favor: "+golesAFavor) println("No. en contra: "+golesEnContra) println("Goles del goleador: "+golesGoleador) } 

Ahora definimos el método principal main, definimos un objeto llamado "miJugador" e invocamos el método verDatos()

//main static void main (String[] args){ def miJugador= new Futbol(nombreEquipo:'Real Madrid',goleador: 'Hugo Sánchez',victorias:12,derrotas:0,empates:0,golesAFavor:35,golesEnContra:6,golesGoleador:32) miJugador.verDatos() } 

Con Java evidentemente escribimos mucho más líneas de código (además las clases deben ser nombradas igual que el archivo):

  Futbol.java

public class Futbol{ 

/*En Java si es necesario declarar el tipo de dato de las variables*/ 


public String nombreEquipo, goleador; public int victorias, derrotas,empates; public int golesAFavor, golesEnContra, golesGoleador; /*constructor*/ 

 public Futbol(String nombreEquipo, String goleador,int victorias,int derrotas,int empates, int golesAFavor, int golesEnContra, int golesGoleador){ this.nombreEquipo=nombreEquipo; this.goleador=goleador; this.victorias=victorias; this.derrotas=derrotas; this.empates=empates; this.golesAFavor=golesAFavor; this.golesEnContra=golesEnContra; this.golesGoleador=golesGoleador; }

 // ... // aqui definimos los setters y getters public void setNombreEquipo(String nombreEquipo){this.nombreEquipo=nombreEquipo;} public String getNombreEquipo(){return this.nombreEquipo;} 

// ... 

 public void verDatos(){ System.out.println("Nombre del equipo: "+nombreEquipo); //... //... } 

 public static void main(String ... args){ Futbol miJugador=new Futbol("Real Madrid","Hugo Sánchez",12,0,0,35,6,32); miJugador.verDatos(); } } 

Finalmente tenemos el siguiente código en Python:

Futbol.py

class Futbol: def __init__(self,nombreEquipo,goleador,victorias,derrotas,empates,goleasAfavor, golesEnContra, golesGoleador): 

 self.nombreEquipo=nombreEquipo self.goleador=goleador self.victorias=victorias    self.derrotas=derrotas self.empates=empates self.golesAFavor=golesAFavor self.golesEnContra=golesEnContra self.golesGoleador=golesGoleador 

 def verDatos(self): 
  print "Nombre del equipo: ",self.nombreEquipo #... #...

 #main miJugador= Futbol("Real Madrid","Hugo Sánchez",12,0,0,35,6,32) miJugador.verDatos()

¿Cómo ejecutar los programas?

Groovy Compilar: groovyc Futbol.groovy Ejecutar: groovy Futbol.groovy Java Compilar: javac -g Futbol.java Ejecutar: java Futbol Python Compilar/ejecutar: python Futbol.py

Conclusiones

Java al ser un lenguaje fuertemente tipado obliga al programador a declarar tipos de datos a usar, además posee una gran cantidad de clases que lo hacen bastante robusto. Groovy es un lenguaje de tipo dinámico bastante fácil de aprender, puedes escribir código Java y funciona correctamente. Python posee características de tipo dinámico y estático.

  Códigos: Futbol.groovy Futbol.py Futbol.java