Está en la página 1de 14

Gua terica programacin en Foxpro. 2do lapso.

Conceptos iniciales.
Variable: Espacio de memoria que permite almacenar informacin que puede cambiar o variar
durante la ejecucin de un programa. Las variables pueden ser dos tipos: numricas y alfanumricas.
El nombre de una variable puede contener hasta 8 caracteres: letras y nmeros. Debe comenzar con
una letra.
Constante: Valor que no cambia o varia durante la ejecucin de un programa. Ejemplo de una
constante es el nmero Pi que siempre vale 3,1416
Comandos de Edicin y Ejecucin
Modify Command: Permite entrar al editor de programas del foxpro. Puede escribirse como Modi
Comm. Los programas en foxpro se reconocen o identifican porque poseen la extensin .Prg. Para
almacenar un programa se utiliza la combinacin Ctrol + W
Formato: Modi Comm [unidad: ] [Nombre del programa]
Ejemplos: Modi comm A:Programa Almacena el programa en la unidad de
Modi comm Sueldos disco por defecto
Do: El comando Do ejecuta un programa en foxpro.
Formato: Do [unidad: ] [Nombre del programa]
Ejemplos: Do A:Programa
Do Sueldos
Comandos de Programacin
Clear: Borra / Limpia pantalla
* Note: El asterisco o Note permite al usuario hacer un comentario o breve descripcin del
programa.
Set Talk Off / On: Desactiva/activa la visualizacin de mensajes e inicializaciones propios del
foxpro.
Set Bell Off / On: Activa/ desactiva la emisin de sonidos (pitido) al momento de rellenar campos o
variables.
Set Stat On/Off: Activa / desactiva la visualizacin de la lnea de status en el foxpro.
@ Fila, Col to Fil,Col: Permite generar o imprimir un cuadro en pantalla, donde el usuario indica las
coordenadas del extremo superior izquierdo y el extremo inferior derecho.

Formato: @ Fil,Col to Fil,Col


Ejemplo:
@ 5,10 to 9,70
Explicacin:
Genera un cuadro con lnea simple desde la fila 5 columna 10 hasta la fila 9 columna 70
@ F,C clear to F,C: El comando Clear to, da la posibilidad al programador de borrar sectores o
partes de la pantalla.
Formato: @ Fila, Col clear to Fila,Col
Ejemplo:
@ 5,10 clear to 15,30
Explicacin:
Borra la pantalla desde la fila 5 columna 10 hasta la fila 15 columna 30.
Store: Permite asignar un valor o expresin a una variable o lista de variables.
Formato: Store [valor/expresin] to Var1, Var2, ..., Var n
Ejemplos:
Store 0 to V1,V2,V3
Store Space(20) to Nomb, Dire
Store V1+V2 to V3
Explicacin:
Asigna 0 a las variables V1,V2 y V3 con lo que pasan a ser variables numricas.
Da una longitud de 20 espacios a las variables Nomb y Dire
Efecta la suma de V1 y V2 , y el resultado se almacena en V3
@ Fil,Col Say: El Comando Say le proporciona al usuario la posibilidad de imprimir un literal, dato o
variable en una coordenada especfica de pantalla. Se debe indicar la fila (024) y despus la columna
(079). Si se indica un valor mayor el programa enva un mensaje de error.
Formato: @ Fila,Columna Say [ Literal , Variable]
Ejemplos:
@ 10,10 Say Incluya su nombre
@ 15,20 Say Sueldo
Explicacin:

Imprime en la fila 10 columna 10 el literal Incluya su nombre


Imprime la variable Sueldo en la fila 15 columna 20
GetRead: El comando Get permite aceptar valores desde el teclado, el comando Read asigna los
valores ledos a la variable o variables especificadas. Todo Get o grupo de Gets debe tener su
correspondiente Read. Esto dos comandos se usan en la mayora de los casos en combinacin con el
@ Say.
Formato : @ Fil, Col Say [Literal] get Variable
Read
Ejemplos:
@ 10,10 say Introduzca su nombre Get Nombre
Read
@ 10,10 say Incluya el monto de la venta Get Venta
@ 12,10 say Indique el % de descuento Get Desc
Read
Picture: El comando Picture permite establecer un formato (mscara) bien sea de entrada o de salida
de los datos. El picture maneja distintas plantillas relacionadas con los diferentes tipos de datos que
pueden ser incluidos.
Plantilla

Accin

Acepta solamente letras

Acepta exclusivamente dgitos y signos

Transforma todos los caracteres en maysculas

En los nmeros indica la representa los miles

En los nmeros indica la posicin del punto decimal


Se pueden usar combinaciones de estas plantillas en un mismo picture.
Formato: Picture plantilla(s)
Ejemplos:
@ 5,10 say Incluya el promedio get Prom Pict 99.99
@ 7,10 say Nombre del alumno get Nom Pict @A!
Explicacin.

En la variable Prom se pueden almacenar solo dgitos y se ha establecido la posibilidad de especificar dos
decimales.
En la variable Nom se puede escribir letras y se visualizan en maysculas.
Range: El comando range permite establecer o definir un rango de valores vlidos para una variable
numrica al momento de introducir datos por medio del teclado. Si el valor incluido sobrepasa o es
menor al rango especificado, la ejecucin del programa se detiene.
Formato: Range valor inicial, valor final
Ejemplos:
@ 5,25 say Introduzca una calificacin (de 1 a 20) get Nota Pict 99 range 1,20
@ 7,25 say Introduzca edad del alumno get Edad Pict 99 range 6,18
Read
Explicacin.
El valor que puede ser asignado a la variable Nota va de 1 a 20
El valor que toma la variable Edad va de 6 a 18
Valid: El comando Valid permite validar / definir la entrada de datos a una variable character.
Formato: Valid Variable$items o datos vlidos
Ejemplo:
@ 5,5 say Continua la ejecucin del programa (S/N) get Ru Pict ! Valid Ru$SN
Explicacin:
La variable Ru slo acepta como posible contenido una S o una N, en caso que el usuario coloque otro
carcter la ejecucin del programa no continua.
Comando Set Color To : Permite cambiar o modificar los atributos de color de pantalla.
Formato :
Set Color To estandar, resaltado
Estandar : Color de visualizacin de los SAY.
Resaltado : Color de la visualizacin de las variables o campos
editados con GET .
Para desactivar una combinacin de colores basta colocar Set Color to
Colores :
B=Azul R= Rojo

N=Negro Bg = Cian

W=Blanco Gr = Marrn

G=Verde RB= Magenta


4

+ = Resalta color * = Parpadeo


Ejemplos :
Set Color To W+/B+, Gr+/N Letra blanca sobre fondo
Azul (Say) y letra Amarilla
sobre fondo Negro
Set Color to R+/B+ Letra Roja sobre Fondo Azul
Replicate: Permite repetir un carcter la cantidad de veces que se requiera. Se utiliza en la parte de
impresin.
Formato: Replicate (signo, cantidad de veces)
Ejemplo.
@ 10,10 say Repl (*,20)
Explicacin:
Imprime 20 veces el signo * a partir de las coordenadas fila 10 y columna 10.
Condiciones.
En foxpro el comando que permite establecer condiciones es el If Else Endif, en el cual si la condicin
verificada es cierta; se ejecutan las rdenes ubicadas despus del If; si es falsa va a ejecutar las instrucciones
ubicadas despus del Else.
Formato:
If [Condicin]
Instrucciones
Else
Instrucciones
Endif
El Endif establece el final de las instrucciones que se ejecutan dependiendo de la condicin que se est
verificando.
Ejemplo:
@ 10,20 say Introduzca el sueldo del empleado get Suel
Read

If Suel > 50000


Comision = Suel * 4 /100
Vacacion = Suel / 30 * 45
else
Comision = Suel * 10 /100
Vacacion = Suel / 30 * 90
Endif
Explicacin:
En este ejemplo se evala el contenido de la variable Suel; si sta almacena un valor mayor de 50000, el
programa procede a calcular una variable llamada comisin como el 4 % de Suel y Vacacion como 45 das
de sueldo, de lo contrario, en caso de almacenar 50000 o menos, el programa procede a calcular Comision
como el 10 % de Suel y Vacacion como 90 das de sueldo.
Otra forma de desarrollar el caso anterior es el siguiente:
@ 10,20 say Introduzca el sueldo del empleado get Suel
Read
If Suel > 50000
Comision = Suel * 4 /100
Vacacion = Suel / 30 * 45
Endif
If Suel <= 50000
Comision = Suel * 10 /100
Vacacion = Suel / 30 * 90
Endif
Aqu se utilizan dos If o condiciones independientes. Al momento de transcribir un programa, el programador
debe estar pendiente de cerrar cada uno de los If que haya utilizado dentro del programa. Asimismo, puede
establecer If dentro de otros If, generando lo que se denomina If anidados.
Operadores lgicos
Los operadores lgicos son estructuras que permite desarrollar o establecer varias condiciones en un mismo if;
establece condiciones lgicas. Los operadores lgicos son:

Operador Lgico

Explicacin

.And.

Todas las condiciones parciales evaluadas en el If deben cumplirse, para que


la condicin final sea cierta.

.Or.

Basta que una de las condiciones parciales se cumpla, para que la condicin
final sea cierta

.Not.

La condicin evaluada debe ser falsa para que la condicin final sea cierta

Ejemplos:
@ 5,20 say Sueldo: get sue pict 99999
Read
If sue>50000 .and. sue <100000
Bono=sue *4 / 100
Endif
2. @ 5,20 say Calificacin: get Calif pict 99 range 1,20
Read
If calif>10 .or. Calif =10
@ 7,30 say Nota aprobatoria
Endif
Explicacin:
Si el valor que se incluye a la variable sue (sueldo) est comprendido entre 50000 y 100000, entonces el
programa procede a calcular Bono como el 4 % de sue.
Si la calificacin incluida a la variable calif es mayor a 10 o igual se imprime el mensaje de nota
aprobatoria.
Do Case Endcase: El Do case Endcase es un comando de seleccin mltiple, esto es, que verifica
multiples condiciones (2 o ms) y dependiendo de aquella que se cumpla ejecutar una serie de instrucciones.
Formato:
Do case
Case [Condicin 1]
Instrucciones
Case [Condicin 2]
7

Instrucciones
:
Case [Condicin N]
Instrucciones
Otherwise
Instrucciones
Endcase
El Otherwise es una instruccin que se ejecuta cuando ninguna de las opciones establecidas se cumple.
Cumple similar funcin que el Else en el If. En el Do Case se debe colocar Endcase una sola vez.
Ejemplo:
Clear
Nm=0
@ 10,10 say Introduzca el N del mes: get nm pict 99 range 1,12
Read
Do case
Case nm=1
@ 12,20 say Enero
Case nm=2
@ 12,20 say Febrero
Case nm=3
@ 12,20 say Marzo
:
Case nm=12
@ 12,20 say Diciembre
Endcase
Explicacin:
Dependiendo del valor que tome la variable nm se imprime el nombre del mes. Al usar el comando range
8

solo se aceptan valores que van de 1 a 12.


Contadores y acumuladores
Los contadores y acumuladores son variables numricas que permiten determinar informacin especfica
durante la ejecucin de un programa. A continuacin se presenta un cuadro con las caractersticas ms
importantes de estas variables.
Contador

Variable que controla o determina la cantidad de


veces que se repite un proceso o dato. Siempre se
incrementa en uno.
Formato:
Variable=variable+1
Ejemplos:
C=C+1
Valores=Valores+1

Acumulador
Variable que suma o acumula valores. Permite
determinar el total de los valores ledos o trabajados.
Se incrementa en cualquier valor.
Formato:
Valor
Variable= variable + Variable
Expresin
Ejemplos:
C=C+20
Suma=Suma+Valor
Total= Total + (N*E)

Los contadores y acumuladores son utilizados regularmente en combinacin con el If o con el Do While. La
persona que desarrolla el programa debe plantearse muy bien cual de los dos tipos de variables debe usar.
Comandos de iteracin o repeticin
Se denomina iteracin, al hecho de repetir varias veces una serie de instrucciones por medio de estructuras
cclicas. Estas estructuras en foxpro son el For Next y el Do While.
For Next: El fornext permite al usuario repetir una serie de instrucciones mientras que el valor indicado
como final, no sea excedido por el valor de la variable de control. Al momento en que la variable de control
exceda el valor final especificado, la ejecucin del programa pasa a la siguiente instruccin despus del next.
Formato:
For <VC> = VI to VF [step Inc]
Instrucciones
Next <VC>
En donde:
VC: Representa la variable de control del ciclo.
9

VI: Identifica el valor inicial que se asigna a la variable de control


VF: Representa el mayor valor que toma la variable de control
Step Inc: Indica el incremento, el valor en que aumenta la variable de control cada vez que pasa la
ejecucin del computador por el ciclo. Cuando no se especifica la clusula Step, el For se incrementa
por defecto de 1 en 1.
Nota: Todo For debe tener su next asociado.
Ejemplo 1.
Numero=0
Contador=1
For Numero=1 to 20
@ Contador,10 say Nmero:
@ Contador,20 say Numero pict 99
Contador= Contador+1
Next Numero
En el ejemplo anterior por medio del For, se imprimen los 20 primeros nmeros naturales. La variable
Contador tiene la funcin de sustituir el N de fila donde se imprimen los datos. Esto se denomina contador de
lneas. Tambin se observa que la variable nmero no sufre ningn incremento por medio de instruccin, sino
que se hace en forma automtica. La ejecucin del programa pasa a la siguiente instruccin despus del next,
cuando la variable Nmero llega al valor de 21 que excede el valor final especificado.
Ejemplo 2:
Sumapar=0
Contador=0
For contador= 2 to 20 step 2
Sumapar=Sumapar+contador
Next contador
@ 5,15 say La suma de los nmeros pares menores o iguales a 20 es:
@ 5,55 say Sumpar pict 999
En el ejemplo anterior se acumulan los nmeros pares comprendidos entre el 2 y el 20 ambos inclusive, es por
ello que el valor inicial que toma la variable contador es de 2 y el valor final 20, a la vez que sufre
incrementos de 2 en 2.
Ejemplo 3:

10

Store 0 to Tnota, capla,capro,i,notapro


For I=1 to 15
Clear
Nota=0
@ 5,20 say Introduzca una nota: get Nota pict 99 range 1,20
read
If Nota<10
Capla=capla+1
Else
Capro=Capro+1
Endif
Tnota=Tnota + nota
Next i
Notapro=Tnota/15
@ 5,10 say Nota promedio:
@ 5,25 say notapro
En este ejemplo se pide la nota de 15 alumnos y posteriormente se halla o calcula el promedio de esas notas,
as como tambin la cantidad de alumnos aprobados y aplazados.
Do While Enddo: Permite repetir una serie de instrucciones mientras la condicin que se est
verificando es cierta. Al momento de dejarse de cumplir la condicin, el control del programa pasa a
la siguiente instruccin despus del Enddo. En caso de que se tengan que verificar dos o ms
condiciones se deben utilizar los operadores lgicos.
Formato:
Do While <Condicin> (And / or) <Condicin>
Instrucciones
Enddo
Ejemplos:
* Programa que calcula la suma de los 10 primeros nmeros naturales

11

Set talk off


Set bell off
Set stat off
Suma=0
Contador=1
Do While Contador <=10
Suma=Suma+Contador
Contador=Contador+1
Enddo
@ 5,20 say La suma es:
@ 5,40 say Suma Pict 99
En el ejemplo anterior por medio del Do while se han generado los nmeros del 1 al 10 y por medio del ciclo
se acumulan esos valores en la variable suma. Al imprimirla se imprime el valor de la suma total de los 10
primeros nmeros naturales.
* Programa que pide el sueldo de 20 empleados y calcula el total de sueldos y el *sueldo promedio
Tsueldo=0
Contador=1
Do While Contador <=20
Sueldo=0
Clear
@ 5,20 say Empleado N
@ 5, 32 say Contador pict 99
@ 8,20 say Introduzca el sueldo del empleado get Sueldo Pict 99999
range 120000,500000
read
Tsueldo=Tsueldo+sueldo
Contador=Contador+1

12

Enddo
Sueldop=Tsueldo / 20
Clear
@ 10,20 say El total de los sueldos es:
@ 10,40 say Tsueldo pict 9999999
@ 12,20 say El sueldo promedio es:
@ 12,40 say Sueldop pict 9999999
En el ejemplo anterior por medio del Do while se ha desarrollado un proceso que permite pedir el sueldo de
20 empleados y posteriormente hallar el total de los sueldos (por medio de un acumulador), mientras que la
variable contador controla la cantidad de empleados ledos. Al tener el total de los sueldos, se puede obtener
tambin el sueldo promedio al dividir el acumulador entre el nmero de empleados que es de 20.
Comando Col( ): El comando Col( ) devuelve el Nmero de columna en que se encuentra ubicado el
cursor.
Formato: Col( )
Ejemplo:
@ 5,20 say Monto vendido:
@ 5,col()+1 say Montov Pict 99
En el ejemplo la variable Montov ser impresa en la columna siguiente (columna 34).
Comando Row( ): El comando Row( ) devuelve el nmero de la fila en que se encuentra ubicado el
cursor.
Formato: Row( )
Ejemplo:
@ 5,20 say Monto vendido:
@ Row()+1,20 say Montov Pict 99
En el ejemplo la variable Montov ser impresa en la fila siguiente (fila 6).
Funciones
Funcin Int: La funcin Int (Integer), devuelve/toma la parte entera del argumento, desechando la
parte decimal. El argumento puede estar representado por un valor, una variable o una expresin
numrica.
Formato: INT (argumento)
13

Ejemplo:
B=0
A=7
B= Int(A/2)
@ 5,20 say Valor:
@ 5,col( )+2 say B Pict 9
La variable B toma como valor el 3 que es la parte entera que se genera al momento de aplicar la divisin
((7/2)= 3.5), desechando la parte decimal.
Funcin Round: La funcin Round (Rounded), redondea o aproxima un valor a su inmediato
superior o inferior, dependiendo de la cantidad de decimales que se especifiquen
Formato:
ROUND (argumento, N de decimales)
Ejemplo:
B=0
A=7
B= Round(A/2,0)
@ 5,20 say Valor:
@ 5,col( )+2 say B Pict 9
La variable B toma como valor 4 que es el resultado de aproximar a 0 decimales el resultado de la expresin
utilizada en el argumento. ((7/2)= 3.5).

14

También podría gustarte