lunes, 20 de julio de 2009

LENGUAJE DE ARCHIVOS .PRG EN FOXPRO 9.0 (PARTE2)

Nota: para aquellos que no han leido la parte 1 favor DAR CLICK AQUI o en el navegador de sitio del lado izquierdo.


=================================================================

Hola a todos!

En la ocacion pasada vimos como aplicar un FOR en un programa de FoxPro. Ahora ocuparemos algo mas basico que es el IF.

La estructura del IF es la siguiente:


IF (condicion)
[comandos]
ELSE
[comandos]
ENDIF


Dependiendo de nuestro programa podemos ocupar solo el IF con la condicion o el IF con la condicion y un proceso que haga si no se cumple la condicion.

Para poner multiples condiciones en una estructura If es:

IF (condicion)
[comandos]
ELSE
IF (condicion)
[comandos]
ElSE
[comandos]
ENDIF
ENDIF


Nosotros podemos poner n IF's que queramos solo que al final debemos indicar n ENDIF para los n IF que hemos ocupado (en el caso anterior solo ocupamos 2).

En otros lenguajes, las estructuras de condicion multiple IF se declaran ya sea con ELIF (condicion) o ELSE IF (condicion).

Ahora, haremos un pequeño programa que lea 2 números enteros y determinara cual es el mayor de los dos.

* Ingresemos los numeros:


n1=VAL(INPUTBOX("Introduzca el primer número"))
n2=VAL(INPUTBOX("Introduzca el segundo número"))


Muy bien, ahora tenemos que poner las condiciones correspondientes. En este caso solo pueden suceder dos cosas: que n1 sea mayor que n2 o viceversa.

Vemos que si una no se cumple entonces tendria que cumplirse la otra entonces pondremos:


IF n1 > n2
MESSAGEBOX(STR(n1) + " es mayor que " + STR(n2))
ELSE
MESSAGEBOX(STR(n2) + " es mayor que " + STR(n1))
ENDIF


Uniremos todo el codigo y prueba con 1 y 2, 3 y 5, 10 y 6, 5 y 5. Y mira lo que pasa.

==========================================

Como te daras cuenta con los numeros que puse arriba, ocurrio algo al poner 5 y 5. Eso es porque el programa solo esta evaluando quien de los dos es mayor, en ningun momento definimos que hacer si los dos numeros son iguales.

El codigo se puede corregir poniendo una condicion donde evalue si n1 es mayor que n2, luego sino se cumple poner que evalue si n2 es mayor que n1 y sino se cumple es porque los dos son iguales (no hay vuelta de hoja, es la unica posiblidad que nos queda o no?).

Entonces el codigo ya corregido podria ser asi:


n1=VAL(INPUTBOX("Introduzca el primer número"))
n2=VAL(INPUTBOX("Introduzca el segundo número"))
IF n1 > n2
MESSAGEBOX(STR(n1) + " es mayor que " + STR(n2))
ELSE *sino se cumple el primer IF evaluara el segundo IF
IF n2 > n1
MESSAGEBOX(STR(n2) + " es mayor que " + STR(n1))
ELSE *si el primer IF ni el segundo cumplen hara el ELSE (los 2 numeror son iguales)
MESSAGEBOX("Los dos numeros son iguales.")
ENDIF


Ya asi, se puede mostrar quien de los dos es mayor y si son iguales tambien mostrara su respectivo mensaje.

Eso es todo por hoy. Mañana les enseño a usar el DO CASE y tambien a empezar la estructura repetitiva DO WHILE combinado con IF y DO CASE.

Se cuidan y no te vayas sin tu comentario.

MaxxDJ

No hay comentarios: