sábado, 5 de junio de 2010

Eliminar un carácter de una cadena con Java.

Esta es una tarea que le dejaron a una amiga., es un código sencillo que busca un caracter, en este caso la letra “a” para eliminarla de la cadena introducida.

Clase: Fundamentos de Programación.

public class nombre
{
     public nombre()
    {
    }
    public void re(String Nombre1){
        int c= Nombre1.length();
        System.out.println ("Nombre Original:  "+Nombre1);
          for (int contador =0; contador<c; contador++){
            if (Nombre1.charAt(contador)=='a'){
                Nombre1.replace('a',' ');
            }
            else{
                System.out.print(Nombre1.charAt(contador)+ "");
            }
        }
}

    public static void main (String [] arguments){
        nombre n = new nombre();
        n.re("Javier Martinez");

    }

}

viernes, 4 de junio de 2010

Rombo con Java.

Escribir un programa que visualice el siguiente dibujo:

image

public class rombo
{

   public static void main (String [] arguments){
    char espacio = ' ';
    char asterisco = '*';
    for (int i= 1; i<=5; i++){
           for (int espacios = 5 - i; espacios >0; espacios--)      
                System.out.print(espacio);
                 for (int lineas = 1; lineas < 2 * i; lineas++)
                   System.out.print(asterisco);
                    System.out.println("");
        }
        for (int i= 4; i>=1; i--){
           for (int espacios = 5 - i; espacios >0; espacios--)      
                System.out.print(espacio);
                 for (int lineas = 1; lineas < 2 * i; lineas++)
                   System.out.print(asterisco);
                    System.out.println("");
        }
    }
}

domingo, 23 de mayo de 2010

Como crear un Hola Mundo con Silverlight 2a Parte

En el post anterior, vimos como escribir el mensaje “Hola Mundo”, cuando el usuario presiona el botón saludar, se dispara el evento de saludo, pero ahora ¿cómo le hacemos si queremos que nuestra aplicación pida también el nombre del usuario para saludarlo?

En este post aprenderemos a utilizar el TextBox, un componente que nos permitirá introducir información en una aplicación.

Paso 2: En la barra de Herramientas (Como anteriormente habiamos dicho la que esta al lado izquierdo) buscamos el "objeto” llamado TextBox, el cual arrastraremos a nuestra área de programación, de igual forma arrastramos una “Label” y lo colocamos delante del TextBox que ya hemos colocado en nuestra área de desarrollo.

En el área de programación XAML buscamos la nueva etiqueta y cambiamos Name: label1 por Name= “dNombre”, y agregamos un Content con la siguiente frase: Content= “Escriba su nombre”, el nuevo código del label quedará de la siguiente manera:

<dataInput:Label Height="23" HorizontalAlignment="Left" Margin="114,12,0,0" Name="dNombre" VerticalAlignment="Top" Width="114" Content="Escriba su nombre:"/>

También el TextBox lo tendremos que editar, en este caso solo cambiaremos el Name=”TextBox1” por Name=”leeNombre”, de forma que el nuevo código queda:

<TextBox Height="23" HorizontalAlignment="Left" Margin="234,12,0,0" Name="leeNombre" VerticalAlignment="Top" Width="120" />

Abrimos de nuevo el archivo MainPage.xaml.cs, buscamos la línea de código correspondiente al botón (Evento de Botón). En mi caso fue

private void SaludarUsuario(object sender, RoutedEventArgs e) {

       saludo.Content = "Hola Mundo";

   }

En este método agregaremos nuevas lineas de código para que nuestra aplicación Silverlight ahora salude al usuario.

creamos una variable String llamada nombre, ahora asignaremos el contenido del TextBox1 (al cual le pusimos leeNombre) a esta variable de la siguiente manera:

nombre = leenombre.Text;

Ahora solo falta desplegar el mensaje al usuario:

saludar.Content = "Hola "+nombre+" un gusto tenerte aquí.";

los símbolos de + significa que estamos concatenando cadenas y que el contenido que este antes y después de estos símbolos serán mostrados también.

El nuevo método del botón saludar luce así:

private void SaludarUsuario(object sender, RoutedEventArgs e) {

        String nombre;
        nombre = leeNombre.Text;

        saludo.Content = "Hola "+nombre+" un gusto.";
    }

Ahora solo falta probar nuestra aplicación, para ello presionamos F5 para comprobar que nuestra aplicación funciona.

image

Efectivamente nuestra aplicación esta funcionando

Hasta ahorita ya aprendimos como leer datos, como mostrar información y como programar eventos, en post posteriores iremos profundizando con el tema de la programación con silverlight.

viernes, 21 de mayo de 2010

Como crear un hola mundo con SilverLight + C#

En este tutorial mostraremos el funcionamiento básico de los eventos en Silverlight utilizando C# para crearlos, para poder seguir este tutorial necesitaremos tener instalado Visual Studio 2008 o Visual Studio 2010, Microsoft Silverlight versión 3 o 4.

Paso 1

Comenzaremos por ejecutar VisualStudio, una vez que tengamos cargada la interfaz de proyecto, crearemos un nuevo proyecto, para ello, nos dirigimos al Menú Archivo –> Luego Nuevo y seleccionaremos –> “Nuevo Proyecto”.

Nos aparecerá la ventana de proyectos:

 image

Figura 1.

Del lado izquierdo nos aparecerá los tipos de proyectos que podemos desarrollar (plantillas) y los lenguajes de programación que tenemos instalado en Visual Studio en el momento. Seleccionamos C# –> Nos dirigimos a Silverlight de lado derecho tenemos las “plantillas” con las que podemos trabajar, seleccionaremos “Silverlight Application”

image

Más a la derecha tenemos la descripción de la plantilla y el tipo de lenguaje con el que se trabajará.

En la parte inferior de la ventana tenemos Name: está opción hace referencia al nombre que llevará el proyecto.

Le pondremos “holamundo”

Paso 2: Interfaz de Programación

imageUna vez que ya completamos de llenar los campos de la ventana anterior, nos aparecerá el área de trabajo, la cual esta constituida de la siguiente manera:

  1. Herramientas (ToolBox), al lado izquierdo, que no son más que una serie de “objetos” que nos permitirán desarrollar nuestra aplicación Silverlight
  2. Área de programación (medio). Es el área donde se ubica la aplicación a ser desarrollada y las plantillas a ser programadas.
  3. Explorador de Soluciones ( lado derecho) Contiene los proyectos que tengamos abiertos al momento, en nuestro caso notaremos que tenemos un holamundo con el icono de C# (está es la aplicación en si), y un holamundo.web, este último genera un sitio web para que la aplicación silverlight sea cargada en tiempo de ejecución.

Paso 4: Programando

Para ello buscaremos un botón en nuestra área de Herramientas (barra izquierda), y seleccionamos el botón, posteriormente lo “arrastramos” a nuestra área de trabajo, lo mismo hacemos con un componente de tipo Label.

Buscamos un código similar al siguiente en el XAML

<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" Name="button1" VerticalAlignment="Top" Width="75" />

En el cual sustituiremos el Content=”Button” por Content=”Saludo” y Name=”button1” por Name=”saludar”

Lo mismo haremos con el componente Label

<dataInput:Label Height="37" HorizontalAlignment="Left" Margin="63,88,0,0" Name="label1" VerticalAlignment="Top" Width="215" />

Nada más que en este caso cambiamos Name=”label1” por Name=””saludo” y agregamos Content=””

Hora de codificar.

Boton: Seguido de Name=”saludar” agregamos un nuevo evento con la siguiente propiedad. Click="SaludarUsuario"

En nuestro explorador de soluciones buscamos el siguiente archivo: MainPage.xaml.cs, en el cual programaremos todos los eventos que nuestra aplicación realizará.

image

Abrimos dicho archivo,  después de la inicialización de componentes crearemos un nuevo evento como se muestra a continuación.

private void SaludarUsuario(object sender, RoutedEventArgs e)
      {

              saludo.Content = “Hola Mundo”;

      }

Finalizamos la edición de código, precionamos la tecla F5

image

Cuando el usuario haga clic en el botón Saludo, automáticamente se desplegará el mensaje de Hola Mundo.

image

Y así es como hemos desarrollado una aplicación rápida y sencilla con Silverlight, en el siguiente artículo continuaremos con la lectura de datos.

Para ver este ejemplo en ejecución visita: http://ghalis.net/javier/silver/practica1/

domingo, 18 de abril de 2010

Hace un año lanzaron Sensucht ahora conmemorando su 20 aniversario Lacrimosa nos presenta su nuevo álbum



Casi a cumplirse un año de haber lanzado el álbum Sensucht, que en lo personal no fue mucho de mi agrado, desde el día 17 de Abril, la banda de música ¿Gothica?, Lacrimosa nos ira presentando en su página oficial  fragmento de las nuevas canciones que integran este álbum conmemorativo que sale a su venta en México el próximo 7 de mayo, canciones ineditas jamás lanzadas estarán presente en este álbum, destacando la versión extendida de CopyCat, y dos nuevas producciones Sellador y Onhe Dich Ist  alles nichts, esperando con ansías escuchar los experimentos musicales de esta banda :), que se convirtió en una de mis favoritas por las mezclas instrumentales y orquestales que realizan. 

sábado, 20 de marzo de 2010

Un problema puede tener varias soluciones.

Cuando te sientas a programar sueles pensar ¿Cómo resuelvo el problema?. En ocasiones podemos tener problemas tan sencillos como calcular la suma de los números pares del 0 hasta el 20 o un problema tan complejo que implique la sumatoria de N números.

Pero en realidad piensas ¿Qué secuencia de código o instrucción utilizar para ahorrar líneas de código y memoria?

Si nunca lo has hecho, deberías de reconsiderarlo, a veces la solución más sencilla solo lleva dos líneas.

 

“Calcular la sumatoria de todos los números pares del 0 hasta el 20”;

Código 1:

int x = 0;
           for (int i = 0; i <= 20; i+=2)
           {
               x += i;                      
           }
           Console.WriteLine(x);

Apenas 6 líneas de código, cabe de señalar que puedes quitar las { } del for, obteniendo así hasta 4 líneas de código.

Código 2:

int x = 0;
         for (int i = 0; i <= 20; ++i )
         {
             if (i % 2 == 0)
             {
                 x += i;
             }
         }
         Console.WriteLine(x);
         Console.ReadKey();

El mismo problema con otra solución alternativa, ¿Se puede programar de otra  manera?. La respuesta es sí, si se puede programar de otra manera utilizando las técnicas de recursión o por medio de un while

jueves, 11 de marzo de 2010

Calculadora Binomial

Un simple script en Mathematica que calcula la "Distribución Binomial", básica la sumatoria aún no esta terminada. 



Panel[DynamicModule[{r = (n1!/(x1! (n1 - x1)!)*(p1^x1) (q1^(n1 - x1))),
   n1 = 1, x1 = 1, p1 = 1, q1 = 1},
  Panel[Grid[{{Style["Distribución Binomial", Bold],
      SpanFromLeft}, {Grid[{{"Escribe N:",
         InputField[Dynamic[n1], FieldSize -> 4], "Escribe X",
         InputField[Dynamic[x1], FieldSize -> 4]}, {"Valor de P:",
         InputField[Dynamic[p1], FieldSize -> 4], "Valor de Q:",
         InputField[Dynamic[q1], FieldSize -> 4]}, {"Resultado:",
         InputField[Dynamic[r], FieldSize -> 6]}}]}}]]]]

jueves, 18 de febrero de 2010

Otro ejemplo de Bash (Case)

Ahora otro ejemplo de Bash Scripting en Linux usando CASE.


#/bin/bash
#-----------------------------------------------------------#
# -Un programa que lea el sueldo del empleado y la categoría#
# a la que pertenece. Mandar imprimir el nuevo sueldo y la  #
# categoría.                                                #
# -----------------------------------------------------------
# Francisco Javier     #
# fjgm@aol.com.mx      #
# Bash Scripting Linux #
# ---------------------#

#Borrar pantalla
clear;

#Solicitar información al usuario.
echo -n "Escribe el sueldo del empleado: ";
read sueldo;
echo -n "Escribe la categoría del empleado. ";
read categoria;

#Menú de selección con case.

case $categoria in
 1)
   echo "Categoria: ${categoria}";
   echo "Sueldo del empleado: "
   echo "scale =4; ${sueldo}*1.15" | bc
   ;;
 2)
   echo "Categoria: ${categoria}";
   echo "Sueldo del empleado: ";
   echo "scale =4; ${sueldo}*1.10" | bc
   ;;
 3)
   echo "Categoría: ${categoria}";
   echo "Sueldo del empleado: ";
   echo "scale =4; ${sueldo}*1.08" | bc
  ;;
 4)
   echo "Categoría: ${categoria}";
   echo "Sueldo del empleado: ";
   echo "scale =4; ${sueldo}*1.07" | bc
  ;;
esac
#Termina la sección de cases#


Pantalla

lunes, 15 de febrero de 2010

Programa Bash - Aumentar el sueldo trabajador.

El potencial que ofrece el interprete de Comandos de los sistemas Unix, es similar a como si estubiesemos programando pequeñas aplicaciones funcionales para una tarea en especifica del sistema.

A continuación, una adaptación de un problema designado para programarse en C++ de la materia Taller de Programación I, de la UMSA.

#!/bin/bash
# Prog. 28. Escribir un programa tal que dado como dato el sueldo de
#un trabajador, le aplique un aumento del 15% si su sueldo es inferior a
#$ 1000.00 y 12% en caso contrario. Imprima el sueldo del trabajador.

clear
echo -n "Escriba el sueldo del empleado: ";
read sueldo;

if [ "$sueldo" -lt "1000" ]; then  # -lt indica <
  
    echo -n "El nuevo sueldo es : $ ";
    echo "scale = 4 ;  ${sueldo}+ ${sueldo}*0.15" |  bc
fi

if [ $sueldo  -ge "1000" ]; then  #-ge indica >= que

  echo -n "El nuevo sueldo con 12% es : $";
   echo "scale = 4; ${sueldo} + ${sueldo}*0.12" | bc
fi


Sencillo y funcional. 

martes, 2 de febrero de 2010

Integral definida como área de una región.

 

Si f es continua y no negativa en el intervalo cerrado [a,b], el área de la región limitada por la gráfica de f, l eje x y las rectas verticales x = a y x = b viene dada por:

Untitled-1_1

Para realizar el cálculo o mejor dicho la representación del área con el Software Mathematica debemos de declarar la integral para conocer su área, por ejemplo:

Sea Untitled-1_5 una región acotada por los puntos [0,4], el área de la región se presenta con la integral definidaUntitled-1_1

Integramos.

Untitled-1_5

El resultado de la integración viene dado por:

Untitled-1_5

Ahora sustituimos los máximos y mínimos en este caso el Máximo es = 4 y el mínimo es = 0

Untitled-1_5

El área bajo la curva de la parábola limitada en el intervalo [0,4] es 32/3, para graficar la función, utilizaremos el siguiente comando: Plot[ función,{variable, limite inferior, limite superior}]

De modo que obtendremos el siguiente gráfico.

Untitled-1_3

Untitled-1_4

Si queremos sombrear el área bajo la curva agregamos el parámetro Filling –> Bottom

de modo que la función queda

Untitled-1_3

y el gráfico queda. 

Untitled-1_4

En Derive6 esto se puede hacer con el siguiente parámetro AreaUnderCurve(función, variable, limite inferior, limite superior)

En un ejemplo práctico:

AreaUnderCurve(2x^2 - 3x + 2, x, 0, 4)

Luego se elige la ventana Grafico 2D en la barra de herramientas, graficamos y obtenemos

image