jueves, 15 de octubre de 2009

Conferencia de HCI

what_hci

Bueno hoy en la UMSA tuvimos una breve  conferencia sobre HCI, aunque fue breve, fue muy interesante, el exponente trato de explicar como funciona esta tecnología y como nos puede ayudar en el mejoramiento del diseño de nuestra interfaz en un programa.

Aquí dejo el archivo, que consiste en una presentación PowerPoint de 121 diapositivas, pesa 8 megas, esta bastante interesante.

Descargar

miércoles, 14 de octubre de 2009

Uso del Ciclo For.

El ciclo for es aquel que nos permite repetir una instrucción dentro de nuestro programa, este ciclo presenta la siguiente característica:

  1. Tiene un inicio: En el cual se define de donde queremos que comience
  2. Tiene un Fin: En el cual se indica hasta donde queremos que llegue.

La manera de representarlo en pseudocódigo o algoritmo es la siguiente:

hacer desde variable hasta variable

instrucciones

fin_del_ciclo

Por ejemplo:

Hacer desde contador = 1 hasta contador <= 15
   Imprime “Hola Mundo”;
fin_hacer_para

La estructura en los lenguajes de programación tales como C++ o Java es la siguiente:

for ( variable; condición de iteración; incremento
{
  sentencias.
}

Explicado de una manera más eficiente

 

Java C++

for (int i=1; i<=15; i++)
{
  System.out.println (“Hola Mundo”);  //Java
}

for (int i=1, i<=15; i++)
{
cout << “Hola Mundo”<<endl;
}

 

Ambas instrucciones nos imprimen 15 veces el mensaje hola mundo en pantalla.

Un ejemplo práctico:

Se desea obtener la suma de 5 números introducidos por el usuario.

Java C++

import java.io.*;

public class suma
{

public static void main (String [] args) throws IOException
{
  int contador, result=0;
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

for(contador=1; contador <=5; contador++)
{
System.out.println ("Escriba un número: ");
result +=Integer.parseInt(br.readLine());

}
System.out.println ("La suma de los cinco números es:  "+result+"");
}
}

#include <conio.h>
#include <iostream.h>
void main ()
{

int contador, dato, result;

   for (contador = 1; contador <=5; contador++)
   {
     cout << "Escriba un número: ";
     cin >> contador;

     result+=contador;

   }

    cout << "La suma de los cinco números es :"<< result;

   getch();
}


}

 

Algo que hay que notar es que, el ciclo for puede llevar dentro de su sintaxis la declaración de la variable contador o esta puede ser declarada previamente a su uso, es decir que podemos tener esto

for (int contador<1; contador<=5; contador++)

o

int contador;

for (contador <1; contador <=15; contador++)

Será lo mismo para ambos casos, también hay que dejar en claro que la palabra contador es un artilugio manejado por el escritor, en su lugar podemos usar i, conta… cualquier otra palabra que se nos ocurra y nos sirva como contador.

Recuerda que si tienes duda, puedes dejar un post en el foro para que se te responda y tus dudas sean despejadas.

lunes, 12 de octubre de 2009

Modulo para graficar una pendiente

El siguiente modulo fue escrito en Mathematica, es básico pero sirve para graficar una pendiente dada ax+b para utilizarlo primero debemos de definir los valores máximos y después los mínimos, posteriormente debemos de introducir el termino que tenga consigo la “x” por ejemplo

2x+4 –> introducimos 2x y posteriormente 4

Al finalizarla obtendremos la gráfica de la pendiente

image

Para ejecutarlo al final de la línea escribimos pendiente y luego shift + enter

Introducimos por ejemplo 2x+4 y obtenemos su gráfico:

image

Básico pero funcional (y)

sábado, 10 de octubre de 2009

Descargar algunas canciones de Final Fantasy

No he tenido la maravillosa dicha de jugar este juego, me imagino que ha de ser de los mejores con saga jamás programados, pero eso no me ha quitado el disfrutar de las maravillosas melodías que le acompañan.

Soy amante de la música instrumental en cualquier sub-genero en que esta se divida si es que tiene división.

La música de final fantasy me llena de mucha alegría, pero también de mucha tristeza, pues, es muy hermosa.

Navegando por Internet pude dar con todos los discos “originales” de esta maravillosa producción del Game ^0^

En esta página encontraremos de todo un poco http://www.ffdream.com/ D: es muy linda bueno, para mí.

jueves, 8 de octubre de 2009

Post de prueba enlazando Blogspot con Facebook

Prueba prueba prueba

Errores con Borland C++ Builder vcl60.bpl

Hoy decidí aprender un “nuevo” lenguaje de programación, bueno no lenguaje de programación, si no algún otro programa alternativo para solucionar problemas, en este caso me decidí por C++ Builder 6, por no tener dependencias de Frameworks algo que básicamente no me gusta, por eso no me decidí por Delphy, Visual C++ o C# (aunque en este último ya había programado).

 

Bien al hacer pruebas de distribuir una aplicación, mi usuario se encuentra con el siguiente problema.

Error: No se puede encontrar el archivo vcl60.bpl

 

 

Y yo así de joder no puede ser, aunque señalo, apenas comencé a usar este IDE no más de 1 hora, entonces navegando por la internet logre encontrar un buen foro donde pude leer los siguiente pasos para evitar este y otros errores de ejecución.

Pasos

  1. Ir a la barra de menú –> Project –> Options (Shift+ctrl+f11)
  2. En el cuadro de opciones seleccionar la pestaña Linker –> Desmarcar “Use dynamic RTL”.
  3. En el mismo cuadro de opciones seleccionar la pestaña Packages –> Desmarcar la opción “Build With runtime packages”

 

Con esto podremos solucionar los errores de pendencia de nuestra aplicación, aunque los exes tienden a aumentar de tamaño, nos ayuda más no tener que estar distribuyendo los paquetes junto con la aplicación (que al final es lo mismo).

Fuente: http://www.psicofxp.com/forums/programacion.313/244694-error-con-aplicacion.html

sábado, 26 de septiembre de 2009

If anidados y JAVAFX

En este ejemplo se requiere lo siguiente:

Leer dos números si son iguales deben de multiplicarse, si el primero es mayor que el segundo debe de restar el segundo al primero y si no se cumple ninguna de las dos condiciones anteriores deben de sumarse.


Nota: Este ejemplo ha sido desarrollado usando NetBeans 6.7.1 y JavaFX Script.
Primero comenzamos con definir las librerías que vamos a necesitar.


import javafx.scene.Scene;
import javafx.ext.swing.*;
import javax.swing.JOptionPane;
import javafx.stage.AppletStageExtension;
import javafx.stage.Stage;
import javafx.scene.input.MouseEvent;


En segunda instancia definiremos las variables que utilizaremos en nuestro programa, yo las nombre x1 para el número 1 y y1 para el número 2, resultados es la variable que mostrará los resultados.


var x1;
var y1;
var resultados;


Ahora comenzamos a crear nuestros diálogos de Textos para que el usuario pueda escribir los números.


El primero lo llame texto1 y esta definido de la siguiente manera:


var texto1 = SwingTextField
{
columns: 10 //Establece el máximo de texto
editable: true; // Si es editable
translateX: 120; // Coordenada X donde estará ubicado
translateY: 10; // Coordenada Y donde estará ubicado.
}


Como segunda instancia tengo definido texto2 para que el usuario escriba el segundo número.


var texto2 = SwingTextField
{
columns: 10 //Establece el máximo de texto
editable: true; // Si es editable
translateX: 120; // Coordenada x
translateY: 30; // Coordenada Y
}


Por último cree otro campo de texto pero de solo lectura al cual llame resultado donde se ha de mostrar el resultado según lo que procesada del problema.


var resultado = SwingTextField
{
columns: 10; // Establece el máximo de texto
editable: false; // No es editable
translateX: 120; // Coordenada x
translateY: 60; // coordenada Y
}


Finalmente creare un botón el cual ha de contener una función para realizar la comparación que se me esta pidiendo en el problema.


var comparar = SwingButton
{
text: "Comparar"; // Nombre que mostrará el botón (Etiqueta=
translateX: 0; // Coordenada X
translateY: 100; // Coordenada Y
action: function () // El Botón tiene una función.
{
try // Atrapar excepciones producidas por errores
{
x1 = Integer.parseInt(texto1.getJTextField().getText()); // x1 toma el valor de texto1
y1 = Integer.parseInt(texto2.getJTextField().getText()); // y1 toma el valor de texto2
if ( x1 == y1) // Compara si ambas son iguales entonces
{
resultados = x1 * y1; // Multiplica
}
else // si no son iguales entonces
{
if (x1 > y1) // Si x1 es mayor que y1
{
resultados = x1 - y1; // hace una resta
}
else // si no es ninguna de las anteriores
{
resultados = y1 + x1; // suma valores
} // fin si
}// fin si
resultado.getJTextField().setText("{resultados}"); // resultado toma el valor de resultados
}
catch (e) //atrapar excepcion
{
JOptionPane.showMessageDialog(null,"Solo se aceptan valores tipo entero número.", "Error", JOptionPane.ERROR_MESSAGE); //mostrar este mensaje si se ha producido una excepción.
}
}// fin del método del botón.
}// fin de la variable botón

Ahora creare un stage que será mi aplicación en si.
Stage {
title : "Comparación de Números" // Defino el título que tendrá la ventana
width: 250 // Ancho de la ventana
height: 200 // Alto de la ventana
/*Esto de aquí es opcional y sirve para que nuestro Applet pueda ser "sacado"
del navegador */
extensions: AppletStageExtension {
shouldDragStart: function(e: MouseEvent): Boolean {
e.primaryButtonDown;
}
}
//Creamos nuestra escena
scene: Scene {
//Contenido de la escena
content: [
//Inicialización de variables.
texto1,
texto2,
resultado,
comparar,
//Una etiqueta que pide al usuario introducir un número X
SwingLabel {
text: "Escribe un número X:";
translateX: 0;
translateY: 10;
}
//Una etiqueta que pide al usuario introducir un número Y
SwingLabel {
text: "Escribe un número Y: "
translateX: 0;
translateY: 30;
}
//Una etiqueta que muestra el resultado al usuario
SwingLabel
{
text: "Resultado";
translateX: 0;
translateY: 60;
}
] //Fin del contenido de la escena
} //Fin de la escena
} // Fin del Stage.


Realizar aplicaciones JavaFX representa una gran ventaja ya que los Applets desarrollados con esta tecnología ofrecen un grado más de interactividad con el usuario que los Applets comunes.


Este ejemplo fue tomado del curso de Fundamentos de Programación en el cual se maneja el lenguaje C++ para enseñanza de los Alumnos en la Universidad Mesoamericana de San Agustín. Sin embargo esto demuestra que teniendo un algoritmo ya fabricado y entendiendo los diversos paradigmas de programación la adaptación de las aplicaciones puede ser "rápida".

Baila Princesa

 

 

Baila muy lentamente mi amor,
siente como mis labios te besan,
entre las sombras de esta noche estoy,
buscando a la que fue mi princesa.

Muy lejos de ti ahora estoy,
soñando despierto que te vuelvo a ver,
entre tus brazos quiero estar,
sentir tus cálidos besos mi amor.

Baila princesa, baila mi amor,
que entre sueños caricias te doy.

Se que lejos de mi ahora estas,
pero nuestro amor es más fuerte,
di que me amas como yo a  ti amor,
solo en mi mente estas tú.

Baila princesa, baila mi amor,
que en mis sueños te veo yo,
di que me amas…

Baila princesa, baila mi amor,
que esta noche es eterna para los dos,
solo en la muerte podrá separarnos,
ni el tiempo, ni la distancia nuestro amor han borrado.

Baila princesa, baila mi amor,
que la luna brilla para los dos,
reflejando nuestro más puro amor,
y las estrellas cuidan nuestra pasión.

Solo en mi sueños princesas estas,
se que eres real y lejos de mi estas,
ni el tiempo ni la distancia nuestro amor han borrado
y al final el verdadero amor triunfará.

Ven princesa, de mis sueños escapa,
que mi corazón a gritos te llama,
y junto a ti quiere estar,
toda su vida.

Baila princesa, baila mi amor,
que la luna brilla para los dos,
reflejando nuestro más puro amor,
y las estrellas cuidan nuestra pasión.

martes, 8 de septiembre de 2009

Programando en Java de Nuevo

El día de hoy me entro la nostalgia por volver a programar (bueno aclaro que sigo estudiando solo que ahora C++), bien pues me propuse hacer un pequeño traductor usando el api de Google (Translate) y diseñar un Gadgets huy que ahora esta muy de modas logre hacerlo aunque algo rustico solo quería que funcionara ya con más tiempo espero darle o hacerlo más formal, jeje la verdad me gusto el desarrollo de Gadgets tanto para Google como para Hi5

image

Y si que funciona, después de probarlo en google jejeje al escribir la frase Quisiera ser tu sueño me sale la traducción: Je serais votre rêve

image

Ya veré que le puedo agregar y mejorar a este gadget que esta en pañales.

viernes, 10 de julio de 2009

Mechanic Skill Axe Training

Esta skill aumenta el daño y a base stats y los puntos de hit en stats

Por ejemplo

210 + 20 de Str

Por cada nivel de de la skill el jugador gana 5 puntos esto se traduce de la siguiente manera

Str  += (Skill Lvl * 5)

Por lo tanto el factor final queda de la siguiente manera:

Str Skill Lvl Factor Modificator
5 1 5
10 2 5
15 3 5
20 4 5
25 5 5
30 6 5
35 7 5
40 8 5
45 9 5
50 10 5

 

Tomado en Cuenta estas modificaciones nuestro ejemplo al Final quedará:

210 + 70 para Str.

Para el punto final de Hit es lo mismo con la diferencia de que el valor ganado es 3 multiplicado por el nivel de la skill de esta manera.

Hit += Skill Lvl * 3

Lo cual se traduce de la siguiente manera:

Hit Nivel Skill Valor Multiplicador
3 1 3
6 2 3
9 3 3
12 4 3
15 5 3
18 6 3
21 7 3
24 8 3
27 9 3
30 10 3

 

Entonces si un sujeto tiene Hit + 80 tomando en cuenta La skill en nivel 10, esto se traduce Hit + 110.

De forma que gana más Hit de acuerdo a su base.