Heyyyyyyyyyyyyyyy

Aprende a programar microcontroladores en C... http://tecdigitaldelbajio.com/software-tarjeta.html

jueves, 2 de julio de 2009

Ejemplo #7 Programa que calcula el área de un rectángulo



Ahora si por fin se tienen todos los elementos para realizar un programa más completo que simplemente interfaces de usuario, veamos el ejemplo.

Ejemplo #7

Realizar un programa que calcule el área de un rectángulo.

Solución

Siempre es altamente recomendable “analizar antes de programar”, yo simplemente hare una serie de pasos como mi análisis, hay por supuesto muchas técnicas para el análisis como el pseudocódigo, diagramas de flujo, hablando de la POO el lenguaje UML etc. No me meteré con esas cuestiones, simplemente se hará, un análisis sencillo del problema y pues a programar.

Análisis

Me piden que calcule el área de un rectángulo, que hacemos si lo vemos desde el punto de vista de las matemáticas: debemos saber los datos, en este caso la base y la altura, después debo aplicar la formula: A = base * altura, hago la operación y listo calculo el área del rectángulo usando una calculadora o si es fácil lo hago mentalmente y ya.

¿Qué pasos lógicos tenemos que hacer para realizar el programa que me piden? A continuación se enumeran:

1. Diseñar la interfaz de usuario.
2. Declarar las variables necesarias
3. Obtener los datos ingresados a la interfaz de usuario
4. Aplicar la formula
5. Mostrar el resultado

Veamos cada paso con más detalle.

1. Diseñar la Interfaz de usuario

Ya se mencionó en el párrafo anterior, yo necesito de la base y la altura para poder obtener el área, entonces hago la interfaz de usuario para que se puedan ingresar los datos ¿que elemento debo colocar para realizar la interfaz de usuario?, la respuesta es sencilla objetos TextField, debo crear uno para capturar la base, otro para capturar la altura y finalmente un último para mostrar el resultado del área, haaa y pues obviamente un comando para ejecutar la acción, que es la de calcular el área.

La figura siguiente muestra la interfaz de usuario para el cálculo del área de un rectángulo:


Recuerde que NetBeans automáticamente le asigna los nombres de textField, textField1 y textField2 a cada uno de los TextField de la interfaz, esto hay que tomarlo en cuenta ya que más adelante lo necesitaremos.

2. Declarar las variables necesarias

¿Cuántas variables se necesitan? Quizá se puede pensar que dos variables, una para el TextField de la base y otro para el TextField de la altura, pero no, se requiere otras tres variables, para cambiar los tipos de datos, recuerde que el TextField me da una variable String, pero la base y la altura de un rectángulo deben ser solo números, por lo que se necesitan más variables para convertirlas de String a entero (en este caso se va a restringir el problema a puros números enteros). Bueno entonces el código para crear las dos variables de tipo String es el siguiente:

String base;
String altura;

Claro que también se puede escribir así:

String Base, altura;

Después declaro otras tres variables de tipo entero, para poder realizar las conversiones de tipo y el cálculo del área de esta forma:

int intBase;
int intAltura;
int intArea;

También se puede escribir así:

int intBase, intAltura, intArea;

Recuerde que para la creación de las variables el programador se inventa los nombres, yo me invente esos nombres, quizá alguien simplemente escribe:

int b, h, a;

Lo cual también es correcto, eso de la creación de variables depende de cada quien.

3. Obtener los datos ingresados por medio de la interfaz

Esto ya se vio en el post anterior, se utiliza el método getString(), siguiendo la asignación de nombres de instancia de Netbeans, la base es el textField y la altura es el textField1, esto se logra con el código siguiente:

base = textField.getString();
altura = textField1.getString();

Con lo anterior se captura en las variables los valores que el usuario ingreso, pero como se mencionaba esté método nos da como resultado un valor String, aun que se haya teclado un solo número, por eso se debe realizar una conversión de tipo de String a int, esto se vio en el post anterior el código para realizarlo es el siguiente:

intBase = Integer.parseInt(base);
intAltura = Integer.parseInt(altura);

4. Aplicar la formula

Ahora si ya se tienen los valores de la base y la altura de tipo entero, simplemente aplicamos la formula, el operador para multiplicar en Java es el *, el código para calcular el área es el siguiente:

intArea = intBase * intAltura;

5. Mostrar el resultado

Ahora se debe mostrar el resultado del área que está en la variable intArea, dentro de la memoria del teléfono, ¿Cómo se puede enviar ese valor hacia el tercer TextField?. Para realizarlo se usa un método, el método se llama setString(), la figura siguiente muestra el método setString de la clase TextField, tal y como se muestra en la ayuda de Java.

Este método coloca el valor que se ingresa entre paréntesis dentro del TextField, remplazando el contenido previo, por ejemplo esta sentencia envía “Hola Mundo” a un TextField3:

textField3.setString(“Hola Mundo”);

En Java un String debe colocarse ente “ “, lo que va entre paréntesis es llamado parámetro, el otro método que conocemos el getString(), no lleva parámetro, este sí.
También es posible mandar directamente el valor de una variable de tipo String como parámetro, el siguiente código envía también “Hola Mundo” al TextField:
String letras;
letras = “Hola Mundo”
textField3.setString(letras);

Siguiendo el problema del área de un rectángulo, nos encontramos que el valor del área que está en la variable intArea, es de tipo entero (int) y el método setString() requiere de un valor String, ahora el problema es el contrario del que se tenía.

La solución es bien simple, agregando el operador + se pueden “juntar” dos cadenas, comúnmente a esto se le llama concatenar, aunque aquí no son dos string los que se unirán es una cadena vacía y un entero, veamos el código, para enviar el valor de la variable intArea al TextField2 usando el método setString():

textField3.setString(“” + intArea);

El operador + concatena la cadena vacía “” con el valor que está en la variable intArea y todo eso Java lo cambia a String, y listo se despliega el valor del área en el TextField.

Código completo

Enseguida se muestra una animación donde se muestra la interfaz de usuario y todo el código visto anteriormente, se usan dos valores 9 y 7 como datos, se debe dar clic en el botón, para que se vea el código y lo que va pasando en la memoria del teléfono hasta que se muestra el resultado del área.



¿Dónde va el código?

Para terminar con este post, veamos donde debe ir el código creado para el cálculo del área de un rectángulo. Como se menciono al iniciar, la interfaz de usuario cuenta con tres TextField y un objeto tipo Command, ya se vio en un post anterior, que un objeto Command es como un botón, cuando le dé clic tiene que ejecutar el código que ya conocemos. NetBeans de una forma intuitiva me “dice” donde va a ir el código cuando se dé clic al botón, para ello se da clic derecho encima del Command, y se elige “Go To Source” tal y como se observa en la figura siguiente:

Al hacer lo anterior NetBeans nos lleva justo a donde debemos insertar el código visto anteriormente, ahí lo tecleamos, ejecutamos el proyecto y probamos en el emulador que todo salga como era de esperarse.

Existe mucho código creado por NetBeans, para nuestro ejemplo #7, por lo pronto no me interesa analizar el código que se genera, me importa más realizar ejemplos parecidos al que se vio en este post, en su momento se explicara mucho del código que crea NetBeans.

Video-Tutorial

Finalmente, si todavía quedaron dudas en cómo hacer el programa explicado en este post, presento la solución completa en el siguiente video tutorial.




8 comentarios:

  1. oie, esto es un prodigio... yo soy Ingeniero de la vieja escuela, y quería hacer un quirquincho programas dfe celulares... oie con esto ya puedo empezar a hacer mis aplicaciones para clase media en celular! increible lo que un electróniko puee hacer

    saludos y suerrte!

    ResponderEliminar
  2. Gracias que les gusta el blog y pues que bueno que la información les sirve, eso me anima a seguir creando más video tutoriales y explicando codigo.

    saludos

    ResponderEliminar
  3. Gracias A Dios por la gente que no envidia sus conocimientos,, como diría alguien, enseñar es aprender dos veces....

    ResponderEliminar
  4. sigo avanzando en los ejercicios y me sorprendo cada vez mas, sigue adelante man

    ResponderEliminar
  5. Muy buen pots lo felicito espero siga adelante construyendo ejercicios enriquecedores, hasta ahora voy en la segunda parte pero cuando termine subieré mis dudas y de nuevo Mil gracias desde Colombia

    ResponderEliminar
  6. do u help me? I can't change source code when I choose "go to source"

    ResponderEliminar
  7. muy bueno ... sos muy bueno explicando

    Me sirve de mucho tu blog lo estoy leyendo desde el principio

    Saludos

    ResponderEliminar