domingo, 18 de abril de 2010
Hace un año lanzaron Sensucht ahora conmemorando su 20 aniversario Lacrimosa nos presenta su nuevo álbum
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
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)
#/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.
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
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:
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 una región acotada por los puntos [0,4], el área de la región se presenta con la integral definida
Integramos.
El resultado de la integración viene dado por:
Ahora sustituimos los máximos y mínimos en este caso el Máximo es = 4 y el mínimo es = 0
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.
Si queremos sombrear el área bajo la curva agregamos el parámetro Filling –> Bottom
de modo que la función queda
y el gráfico queda.
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
domingo, 31 de enero de 2010
Trabajo (Vectores)
El trabajo W realizado por una fuerza constante F cuando su punto de aplicación se desplaza a lo largo del vector PQ viene dada por una de estas expresiones:
1. W = ||proy pq F|| ||PQ||
2. W = F * PQ.
Realizar a continuación los siguientes ejercicios:
Se arrastra 10 pies por el suelo un objeto aplicando una fuerza de 85 libras. Calcular el trabajo realizado si la dirección de la fuerza forma un ángulo de 60° con la horizontal.
Datos:
Fuerza = 85 libras
ángulo = 60°
Desplazamiento: –> : 10 Pies
Usando la formula 1 se tiene:
W=cos(60) *||F|| ||PQ||
W=cos(60)*||85|| ||10||W= 425 libras-pies
Un vagón de juguete es arrastrado por un niño que tira con una fuerza de 15 libras de una varilla que forma 30° con la horizontal. Calcular el trabajo realizado al arrastrarlo 50 pies.
Datos:
Fuerza = 15 libras
ángulo = 30°
Desplazamiento: 50 pies.
Usando 1
W = cos (30) * ||F|| ||PQ||
W = cos(30)*(15)(50)W=649.5191 libras-pies
Escribir un Script dinámico en Mathematica que permita calcular esta formula conociendo los datos Fuerza, Ángulo, Desplazamiento.
Panel[DynamicModule[{v = ((fuerza)*(desplazamiento))* Cos [angulo],
fuerza = 1, desplazamiento = 1, angulo = 0},
Panel[Grid[{{Style["Calculadora de Fuerza", Bold],
SpanFromLeft}, {"Escribe la Fuerza:",
InputField[Dynamic[fuerza], FieldSize -> 10],
"Escribe Desplazamiento:",
InputField[Dynamic[desplazamiento],
FieldSize -> 10]}, {"Escribe Ángulo:",
InputField[Dynamic[angulo],
FieldSize -> 5]}, {"Trabajo Realizado:",
InputField[Dynamic[v], Enabled -> False]}}]]]]
miércoles, 20 de enero de 2010
Creando mapas con Bing Maps y Silverlight
Recientemente he tenido la necesidad de aprender a manejar un poco más el uso de los mapas que ofrece Google, Microsoft o Yahoo!.
Uno de los principales objetivos que estoy buscando es el diseñar una aplicación sencilla para la búsqueda de productos en una determinada zona del usuario.
Por ejemplo yo vivo en las coordenadas: 20.958705,-89.632247 y me gustaría saber que servicios (entiéndase tiendas, escuelas, etc) hay cerca de donde yo vivo y el tiempo estimado que puedo hacer caminando o viajando en coche para llegar a ese servicio.
En este post realizaremos un mapa básico (Mostrar un mapa en una página web) utilizando silverlight.
Lo que necesitamos:
- Microsoft Visual Studio 2008 con Service Pack 1 (También funciona la versión Express).
- Las herramientas de desarrollo de Silverlight para C#.
- El SDK de Bing Maps que podemos descargar de aquí.
- Una cuenta .NET (Windows Live o Hotmail)
- Una Key para poder utilizar los mapas en nuestras aplicaciones Silverlight la cual podemos crear aquí.
Creando una cuenta Maps Account para Bing.
Primero hay que ir a: https://www.bingmapsportal.com/
Seguidamente si disponemos de una cuenta @live. @msn, @hotmail.com, si no es nuestro caso, tendremos que crear una.
Buscamos en la parte superior derecha la opción que dice Log On, aparecerá la opción de logueo con la cuenta Live / hotmail.
Si es la primera vez que no damos de alta en el servicio, tendremos que llenar una serie de información, como dato adicional no es necesario colocar el nombre de la compañía o un número de teléfono si vamos a utilizar las id con fines educativos.
Cuando vayamos a crear una Key tendremos que rellenar dos campos. El primero define el nombre de la aplicación y el segundo la URL, como yo trabajare en localhost (utilizando Apache) colocare http://localhost como URL.
Una vez que hayamos colocado los datos que se nos pide, se nos generara una KEY que necesitaremos para la ejecución del API de BING MAPS.
CREANDO NUESTRO PRIMER MAPA BÁSICO.
Ejecutamos Visual Studio 2008
Creamos un nuevo proyecto Visual C# Silverlight de tipo Silverlight Application.
El tipo de Selección para el proyecto lo pondré como Automatically, ya que tenemos la aplicación cargada, agregaremos una nueva referencia dándole clic con el botón derecho del mouse al Folder References y a la opción del menú contextual “Add Reference”.
En el cuadro de diálogo que nos aparece, seleccionamos la pantalla Browse (Explorar), buscamos la dll. Microsoft.Maps.MapControl que esta instalada en C:\Archivos de Programas\Bing Maps Silverlight Control\V1\Libraries\ Esta ruta es opcional ya que depende donde la hayas instalado tu.
Cuando la librería este cargada deberá de aparecer en el árbol de referencias.
Ahora nos dirigimos a nuestra aplicación silverlight agregando el siguiente código en la parte xmlns:
xmlns:mapa="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"
Donde mapa es una variable
A continuación agregamos la siguiente línea de código dentro del Grid
<mapa:Map CredentialsProvider="TU KEY"/>
Recuerda que “mapa” es el nombre de mi variable. y TU KEY es el número generado en la página de BING MAPS.
Al compilar la aplicación y colocarla en el directorio httdocs de Apache podemos genera el resultado:
Si quieres agregar más zoom puedes utilizar la función ZoomLevel =”valor” dentro de la etiqueta del mapa que colocamos en el GRID y si quieres que el mapa tenga una determinada coordenada o este centrado en un punto utilizamos la función center =”puntoX,PuntoY”
De forma que quedaría así:
<mapa:Map CredentialsProvider="TU KEY" ZoomLevel="17" Center="20.958705,-89.632247"/>
Y así por ejemplo se genera una nueva vista, en la imagen superior se muestran las calles o manzanas de la colonia en la que vivo en Mérida, Yucatán México. xD.
domingo, 17 de enero de 2010
Experimentando con HP 9G
Pues como trae el modo de programación, he empezado a usarlo, aunque es muy rustico aparte de que los programas no los puedo salvar en un disco o memoria xD, de más al menos servirá para algunas cosas rutinarias que se ocupe hacer un determinado número de veces.
Este modelo de programación me recuerda a las primeras computadoras, bueno en mi ociosidad como siempre haremos el mismo programa del post anterior.
Hacer un programa que calcule una distancia dado el tiempo en minutos y la rapidez en Km/h.
Bien, lo primero que hay que hacer es lógico, encender la calculadora si esta no se encuentra encendida.
Después seleccionar el modo programación, posteriormente el tipo de programa en modo MAIN, luego seleccionar el área de programación, yo trabajare en la 0.
INPUT R;
INPUT T;
D = ((R/60)*T);
PRINT “Distancia: “, D;
END;
Y esto es un programa xD.

