lunes, 1 de noviembre de 2010
No es lo mismo estudiar para un examen de cálculo que programar.
lunes, 23 de agosto de 2010
Customizando algunas skills de Ninja (eAthena)
Esta vez, liberare algunas skills que edite para el servidor Stille-RO, el cual es un servidor elemental de Rates /30/30/ en desarrollo con las terceras class.
Las skills que se editaron fueron las siguientes:
Skill: Throw Shuriken
Formula: Skill * 4
Formula Stille: Skill * 200
Incrementa el daño de un shuriken (Ítem no arma 13250) acorde al nivel de la skill por 200.
El código fuente de esta skill queda de la siguiente manera:
En el archivo battle.c del emulador buscaremos la siguiente línea:
case NJ_SYURIKEN:
ATK_ADD(4*skill_lv);
break;El ATK_ADD se edita por el valor que queramos que el ninja pegue con está skill, si nuestro servidor es custom, en el caso de Stille-RO se estableció en valor 100*skill_lv que es un valor justo para el player en un pvp.
Skill: Thow Kunai
Formula: Agrega un 60% de Atk por skill Level.
Formula Stille: Agrega 100% de Atk Por Skill Level.
En el archivo battle.c del emulador buscaremos la siguiente línea:
if (skill_num == NJ_KUNAI)
ATK_ADD(60);El ATK_ADD se editar por el valor que queremos que el ninja pegue con está skill, si nuestro servidor es custom, en el caso de Stille-RO se estableció en valor 100, que es un valor justo para el player en un pvp/woe de manera que el ATK_ADD queda ATK_ADD(100);
Skill: Soul.
Formula: Skill Level * 1
Formula Stille: Skill Level * 2
Descripción: Incrementa Status Str/Int en 2*Skill Level
Está skill incrementa los valores de Str e Int en 1 * Skill Level, o sea que en nivel 5 de esta skill nosotros obtenemos str +5 e int +5, pero si queremos modificar este valor, editaremos la siguiente línea en el archivo status.c
if(sc->data[SC_NEN]) //Esto es para editar el valor de STR.
str += sc->data[SC_NEN]->val1;cambiamos str+=sc->data[SC_NEN->val1*2; // El 2 indica el multiplicador para los nuevos status, es decir que ese 2 se ira multiplicando por el nivel de la skill para obtener el nuevo valor de Str que en 5 sería STR + 10 y no 5 como anteriormente estaba configurado, el 2 puede ser cambiado por cualquier otro multiplicador que se adecue a nuestro servidor.
Para cambiar el valor de INT buscamos la siguiente línea de código que también esta en status.c
if(sc->data[SC_NEN])
int_ += sc->data[SC_NEN]->val1De igual forma agregamos un *2 en el val1 de manera que quedará int_ += sc->data[SC_NEN]->val1*2
Skill: Final Strike:
Descripción: Consume todo el hp del usuario en un solo ataque.
Descripción 2 Stille: Consume todo el SP del usuario en un solo ataque.
Está skill es muy conocida porque sacrifica todo el HP del ninja, nosotros en el servidor decidimos hacer un cambio sacrificando el SP del Ninja, para ello solamente editamos la siguiente línea de código que se localiza en el archivo battle.c
case NJ_ISSEN:
wd.damage = 40*sstatus->str +skill_lv*(sstatus->hp/10 + 35);
wd.damage2 = 0;
status_set_hp(src, 1, 0);
break;Y la dejamos de la siguiente manera:
case NJ_ISSEN:
wd.damage = 40*sstatus->str +skill_lv*(sstatus->hp/10 + 35);
wd.damage2 = 0;
//Está modificación fué realizada por remmi para Stille-RO
status_set_sp(src, 1,0); //Convertir el SP a 0
break;De forma q’ ahora se consume todo el SP del jugador en lugar de su HP.
Es importante recalcar que estas customizaciones son en base a nuestro servidor :) pero igual pueden servir para otros.
Saludos
miércoles, 28 de julio de 2010
Mathematica: Sumar dos números
Una de las potencialidades de las cuales disfrutas de programar en Wolfram Mathematica, es la posibilidad de, construir pequeños módulos (scripts) que te permitan hacer cálculos repetitivos y tediosos, en esta ocasión y por ociosidad haremos un pequeño script en Mathematica, que dado dos números A y B introducidos por el usuario realice la condición de suma.
Para poder realizar está operación, nos valdremos del uso de un Panel y de la condición de un modulo dinámico (DynamicModule) que, cuando el usuario digite los dos números estos, automáticamente realicen la suma.
Veamos el código de la aplicación:
Panel[DynamicModule[{resultado = valora + valorb, valora = 0,
valorb = 0},
Panel[Grid[{{"Número A:",
InputField[Dynamic[valora], FieldSize -> 3]}, {"Número B:",
InputField[Dynamic[valorb], FieldSize -> 3]}, {"Resultado:",
InputField[Dynamic[resultado], Enabled -> False,
FieldSize -> 5]}}]]]]
Está es una forma sencilla y rápida de resolver un problema en el cual la velocidad de procesamiento para un resultado eficaz, Wolfram Mathematica podrá servir.
Y este es el resultado del Script:
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:
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.
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:
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”
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
Una 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:
- Herramientas (ToolBox), al lado izquierdo, que no son más que una serie de “objetos” que nos permitirán desarrollar nuestra aplicación Silverlight
- Área de programación (medio). Es el área donde se ubica la aplicación a ser desarrollada y las plantillas a ser programadas.
- 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á.
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
Cuando el usuario haga clic en el botón Saludo, automáticamente se desplegará el mensaje de Hola Mundo.
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
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.
jueves, 14 de enero de 2010
Minizando el MSN en la barra de Notificación del Sistema.
lunes, 11 de enero de 2010
Programación, Lógica y Adaptación.
Mucho se habla de programar, de que somos buenos en X, Y o Z lenguaje, sin embargo ¿Realmente sabemos programar?
Para mí el programar no es nada más sentarme frente al ordenador y empezar a escribir código en un lenguaje de programación en concreto, la programación va más haya de un simple lenguaje en concreto en el que nos especializamos: Java, C#, F#, Perl, Python, entre otros, tiende a ser un vinculo entre el pensamiento del programador y el lenguaje.
La lógica, es algo que desarrollas con la práctica, es la motivación que tienes para resolver los problemas.
La adaptación viene después, adaptar nuestras ideas a diferentes lenguajes nos abre un camino de oportunidades en un campo tan competitivo, explorar y aprender, el ver hasta donde somos capaces de llegar con nuestra creatividad puede conducirnos por senderos inexplorados abriéndonos nuevas puertas y un nuevo conocimiento que nos enriquece como personas y profesionales.
La adaptación es algo a lo que tenemos que estar acostumbrados en este campo, en las corporaciones se tienden a desarrollar proyectos no solo en un lenguaje en concreto, siempre se busca el mejor lenguaje para solventar el proyecto, un buen programador se caracteriza por poder resolver un problema sin gastar tantos recursos de la corporación, si es que trabajamos en una.
La adaptación es algo que va acompañada de los cambios, si no eres capaz de asumir un rápido cambio y adaptarte a las exigencias, seras por el resto de tu vida un retrasado informático.
Cuando llegues a una empresa nunca le digas a tu superior “Eso no lo aprendí en la escuela”, si tienes suerte tal vez te enseñen, si no te darán calle. Recuerda que a veces de nada sirve un 100 y no saber hacer las cosas (no practicar) a un 75 pero sabes como adaptar lo que aprendisteis al mundo real.
Para finalizar.
El mejor lenguaje de programación será aquel que te permita resolver un problema en concreto en menos tiempo y que se adapte al proyecto que este llevando acabo ;)
Un ejemplo de todo este artículo:
Hacer un programa que calcule una distancia dado el tiempo en minutos y la rapidez en Km/h.
El programa usando Mathematica 7.
Pane[DynamicModule[{d = ((tiempo/60)*distancia), distancia = 0,
tiempo = 0},
Panel[Grid[{{"Distancia:",
InputField[Dynamic[tiempo], FieldSize -> 5]}, {"Tiempo:",
InputField[Dynamic[distancia],
FieldSize -> 5]}, {"Distancia Recorrida:" InputField[
Dynamic[d], FieldSize -> 5]}}]]]]
El programa usando lenguaje D:
import std.conv;
import std.cstream;
import std.stdio;void main ()
{
double distancia, tiempo, rapidez;
string n;
writef("Escriba la Rapidez en Km/h: ");
n = din.readLine();
rapidez = toFloat(n);
writef("Escribe el tiempo en Minutos: ");
n = din.readLine();
tiempo = toFloat(n);
//Formula
distancia=((tiempo/60)*rapidez);
writef("La distancia recorrida es: ",distancia," Km");
}
lunes, 4 de enero de 2010
Hasta donde te puede llevar tu imaginación
No conforme con los lenguajes de programación, me he dado un brinco al uso del Software Mathematica (aunque la verdad llevo algo más de 2 meses usándolo), a nivel programador.
Mathematica para los que no sepan, se trata de un software de Cálculo matemático utilizado a nivel ingeniería, economía y en los sectores donde se pueda aplicar el cálculo y la matemática. Potente software utilizando en el campo de la investigación de nuevas tecnologías, este software me ha dejado maravillado con el potencial de cálculo que ofrece y con la variedad de Scripts que se pueden programar en él.
Fanático de Ragnarok OnLine y de cualquier juego en línea que utilice matemática (aplicación del cálculo al juego xD), adapte la Formula de la popular skill Acid Demostration de manera básica y primitiva, esto debido a que le hacen falta cierto modificadores ^^, pero para mí es un pequeño logro en lo que a programación de Scripts utilizando el Software Mathematica refiere
Figura del Script Funcionando.
No es la gran cosa comparado con algunas calculadoras que circulan por la red, aunque si es más preciso, y espero con más tiempo poder hacer más mejoras que las calculadoras actuales ofrecen. Para hacer funcionar este Script lógico, se requiere el software Mathematica