Está en la página 1de 16

Ejercicios de Visual Fox Pro 9.

0 0

2015

Ejercicios de Visual Fox


Pro 9.0
Docente: Alcalá Molina Félix Andrés

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 1

Aplicación Nº 2
Este ejercicio consiste en desarrollar una aplicación
que permita ingresar el nombre de un curso, el cual pasa a
formar parte de una lista de espera antes de ser programado
para su dictado. Los cursos deben ser seleccionados de la
lista de espera y trasladados a la lista de cursos
programados y viceversa. El diseño de la interfaz debe ser
similar a la figura mostrada:

Para el desarrollo de esta aplicación proceda a ubicar


los siguientes controles en el formulario:

3 etiquetas
1 cuadro de texto
2 listas
5 botones de comando

En seguida proceda a establecer las propiedades según


se indica:

Form1

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 2

Name FrmCursos
Caption Cursos
MaxButton .F.-Falso
MinButton .F.-Falso

Label1
Name LblCurso
Caption Ingrese nuevo curso:

Label2
Name LblSeleccionar
Caption Seleccione un curso:

Label3
Name LblProgramado
Caption Curso programado:

Text1
Name TxtCurso

List1
Name LstSeleccionar

List2
Name LstProgramado

Command1
Name CmdAgregar
Caption
Picture C:\FundVFP\Bitmaps\AddItem.Bmp

Command2
Name CmdAgregarTodo

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 3

Caption
Picture C:\FundVFP\Bitmaps\AddAll.Bmp

Command3
Name CmdQuitar
Caption
Picture C:\FundVFP\Bitmaps\Remove.Bmp

Command4
Name CmdQuitarTodo
Caption
Picture C:\FundVFP\Bitmaps\RemoveAll.Bmp

Command5
Name CmdAnnadir
Caption \<Añadir

En seguida proceda a ingresar el código que se indica:

Objeto: CmdAnnadir Procedimiento: Click

Thisform.LstSeleccionar.Additem(Thisform.TxtCurso.Value)
Thisform.TxtCurso.Value = “”
Thisform.TxtCurso.SetFocus

Objeto: LstSeleccionar Procedimiento: Click

If Thisform.LstSeleccionar.ListIndex != 0 Then
Thisform.CmdAgregar.Enabled = .T.
Thisform.CmdAgregarTodo.Enabled = .T.
EndIf
Thisform.Refresh
Objeto: LstProgramado Procedimiento: Click

If Thisform.LstProgramado.ListIndex != 0 Then
Thisform.CmdQuitar.Enabled = .T.

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 4

Thisform.CmdQuitarTodo.Enabled = .T.
EndIf
Thisform.Refresh

Objeto: CmdAgregar Procedimiento: Click

cCurso = Thisform.LstSeleccionar.Value
nCurso = Thisform.LstSeleccionar.ListIndex
If Thisform.LstSeleccionar.ListCount > 0 Then
Thisform.LstProgramado.AddItem(cCurso)
Thisform.LstSeleccionar.RemoveItem(nCurso)
Thisform.LstSeleccionar.ListIndex = 0
Thisform.CmdAgregar.Enabled = .F.
Thisform.CmdAgregarTodo.Enabled = .F.
EndIf
Thisform.Refresh

Objeto: CmdQuitar Procedimiento: Click

cCurso = Thisform.LstProgramado.Value
nCurso = Thisform.LstProgramado.ListIndex
If Thisform.LstProgramado.ListCount > 0 Then
Thisform.LstSeleccionar.AddItem(cCurso)
Thisform.LstProgramado.RemoveItem(nCurso)
Thisform.LstProgramado.ListIndex = 0
Thisform.CmdQuitar.Enabled = .F.
Thisform.CmdQuitarTodo.Enabled = .F.
EndIf
Thisform.Refresh

Objeto: CmdAgregarTodo Procedimiento: Click

For nI = 1 To Thisform.LstSeleccionar.ListCount
Thisform.LstProgramado.AddItem;
(Thisform.LstSeleccionar.List(nI))

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 5

Next
Thisform.LstSeleccionar.Clear
Thisform.CmdAgregar.Enabled = .F.
Thisform.CmdAgregarTodo.Enabled = .F.
Thisform.Refresh

Objeto: CmdQuitarTodo Procedimiento: Click

For nI = 1 To Thisform.LstProgramado.ListCount
Thisform.LstSeleccionar.AddItem;
(Thisform.LstProgramado.List(nI))
Next
Thisform.LstProgramado.Clear
Thisform.CmdQuitar.Enabled = .F.
Thisform.CmdQuitarTodo.Enabled = .F.
Thisform.Refresh

Objeto: FrmCursos Procedimiento: QueryUnload

#DEFINE vfpYesNo 4
#DEFINE vfpYes 6
#DEFINE vfpQuestion 32
If MessageBox(“¿Desea terminar la aplicación?”, ;
vfpQuestion + vfpYesNo, “Pregunta”) = vfpYes Then
Release Thisform
Else
NoDefault
EndIf

Aplicación Nº 3
El ejercicio consiste en elaborar una aplicación que
permita leer n números de tipo entero, y a continuación
los visualice ordenados en forma ascendente o descendente.
Utilice el método de la burbuja para realizar la
ordenación.

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 6

Para el desarrollo de esta aplicación, proceda a


ubicar los siguientes controles en el formulario:

3 etiquetas
1 caja de texto
1 lista
1 grupo de botones de opción
3 botones de comando

En seguida proceda a establecer las propiedades según


se indica:

Form1
Nombre FrmBurbuja
Caption Ordenación por burbuja
MaxButton .F.-Falso
MinButton .F.-Falso

Label1
Name LblNumero
Caption Ingrese un nuevo número:

Label2

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 7

Name LblOrden
Caption Orden:

Label3
Name LblLista
Caption Lista de números:

Text1
Name TxtNumero
Value 0

List1
Name LstNumero

Option1
Nombre OptAscendente
Caption Ascendente

Option2
Nombre OptDescendente
Caption Descendente

Command1
Nombre CmdAnnadir
Caption \<Añadir
Default True

Command2
Nombre CmdOrdenar
Caption \<Ordenar

Command3

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 8

Nombre CmdSalir
Cancel .T.-Verdadero
Caption \<Salir
Picture C:\Archivos de programa\Microsoft Visual
Studio\Common\Graphics\Icons\Arrows\
Point04.ico

Una vez establecidas las propiedades proceda a


ingresar el código que se indica a continuación:

Objeto: FrmBurbuja Procedimiento: QueryUnload

#DEFINE vfpYesNo 4
#DEFINE vfpYes 6
#DEFINE vfpQuestion 32
If MessageBox(“¿Desea terminar la aplicación?”, ;
vfpQuestion + vfpYesNo, “Pregunta”) = vfpYes Then
Release Thisform
Else
NoDefault
EndIf

Objeto: CmdAnnadir Procedimiento: Click

Thisform.LstNumero.AddItem(Thisform.TxtNumero.Value)
Thisform.TxtNumero.Value = “”
Thisform.TxtNumero.SetFocus
Objeto: CmdOrdenar Procedimiento: Click

nN = Thisform.LstNumero.ListCount
Dimension nA(nN) As Integer
For nI = 1 To nN
nA(nI) = Thisform.LstNumero.List(nI)
Next
If Thisform.OptionGroup1.OptAscendente.Value = 1 Then

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 9

For nI = 1 To nN - 1
For nJ = nI + 1 To nN
If nA(nI) > nA(nJ) Then
nT = nA(nI)
nA(nI) = nA(nJ)
nA(nJ) = nT
EndIf
Next
Next
EndIf
If Thisform.OptionGroup1.OptDescendente.Value = 1 Then
For nI = 1 To nN - 1
For nJ = nI + 1 To nN
If nA(nI) < nA(nJ) Then
nT = nA(nI)
nA(nI) = nA(nJ)
nA(nJ) = nT
EndIf
Next
Next
EndIf
Thisform.LstNumero.Clear
For nI = 1 To nN
Thisform.LstNumero.List(nI) = nA(nI)
Next
Objeto: CmdSalir Procedimiento: Click

Thisform.QueryUnload

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 10

GUÍA DE LABORATORIO Nº 5

Objetivos
Luego de completar este laboratorio, el estudiante
será capaz de:

 Crear métodos definidos por el usuario.


 Pasar correctamente los argumentos a un método.
 Ejecutar métodos desde un formulario.
 Implementar métodos que devuelvan múltiples valores.

Consideraciones
Para el desarrollo del presente laboratorio Ud. deberá
crear una carpeta C:\FundVFP\Lab5, para guardar sus
trabajos correspondientes a este laboratorio.

Aplicación Nº 1
Este primer ejercicio consiste en escribir un método
que reciba como argumento una cadena de caracteres y la
devuelva en forma inversa. Por ejemplo si se ingresa la
cadena CORAZON deberá retornar NOZAROC.

Para el desarrollo de esta aplicación, proceda a


ubicar los siguientes controles en el formulario:

2 etiquetas
2 cajas de texto
3 botones de comando

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 11

En seguida proceda a establecer las propiedades según


se indica:

Form1
Nombre FrmPrueba_Cadena
Caption Cadena invertida
MaxButton .F.-Falso
MinButton .F.-Falso

Label1
Nombre LblCadena
Caption Ingrese una cadena:

Label2
Nombre LblInvertida
Caption Cadena invertida:

Text1
Nombre TxtCadena
Enabled .T.-Verdadero

Text2
Nombre TxtInvertida
Enabled .F.-Falso

Command1
Nombre CmdAceptar
Caption \<Aceptar
Default .T.-Verdadero

Command2
Nombre CmdLimpiar

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 12

Caption \<Limpiar

Command3
Nombre CmdSalir
Cancel .T.-Verdadero
Caption \<Salir

Una vez establecidas las propiedades de la interfaz,


proceda a crear un nuevo método, denominado CadInvertida.
Para ello vaya al Menú Formulario y elija la opción Crear
nuevo método. Se debe presentar una ventana similar a la
figura siguiente:

Ingrese los datos que se muestran y a continuación dar


click en el botón Agregar. Luego, dar doble click sobre el
formulario y transcriba el siguiente código:
Objeto: FrmPrueba_Cadena Procedimiento: CadInvertida

Parameters cCadena
nN = Len(Alltrim(cCadena))
Dimension cTemporal(nN)
For nI = 1 To nN
cTemporal(nI) = SubStr(cCadena, nI, 1)
Next
cCadena = “”

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 13

For nJ = nN To 1 Step -1
cInvertida = cInvertida + cTemporal(nJ)
Next
Return cInvertida

Objeto: CmdAceptar Procedimiento: Click

cCadena = Thisform.TxtCadena.Value
Thisform.TxtInvertida.Value =
Thisform.CadInvertida(cCadena)
Thisform.Refresh

Aplicación Nº 2
Este ejercicio consiste en crear un método que reciba
como argumento los apellidos y nombres de un cliente (en
ese orden) y retorne los nombres y apellidos del mismo.

Para el desarrollo de esta aplicación proceda a crear


un nuevo método denominado NomApe. Luego transcriba el
siguiente código:

Objeto: FrmPrueba_NomApe Procedimiento: NomApe

Parameters cApeNom
nN = Len(Alltrim(cApeNom))
Dimension cNom(nN)
Dimension cApe(nN)

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 14

For nI = 1 To nN
If SubStr(cApeNom, nI, 1) = “,” Then
Exit
EndIf
Next
cApe = SubStr(cApeNom, 1, nI-1)
cNom = SubStr(cApeNom, nI + 1, nN - nI)
cNomApe = cNom + “ ” + cApe
Return cNomApe

Aplicación Nº 3
Para calcular el porcentaje de humedad de una muestra
sólida primero se pesa la muestra ( m1 ), luego se le lleva
a la estufa de 120 a 150 ºC por un tiempo de 2 horas
aproximadamente. A continuación se deja enfriar la muestra
y se pesa nuevamente ( m2 ). Finalmente se realiza el
siguiente cálculo:

 m  m2 
%Humedad  100  1 
 m1 

Nuestro trabajo consiste en crear un método que


permita realizar el cálculo anterior.

Docente: Alcalá Molina Félix Andrés


Ejercicios de Visual Fox Pro 9.0 15

Para el desarrollo de esta aplicación proceder a cera


un nuevo método denominado Humedad. Luego ingrese el
siguiente código:

Objeto: FrmPrueba_Humedad Procedimiento: Humedad

Parameters nM1, nM2


nH = 100 * (nM1 - nM2) / nM1
Return nH

Objeto: CmdAceptar Procedimiento: Click

nMasa1 = Val(Thisform.TxtMasa1.Value)
nMasa2 = Val(Thisform.TxtMasa2.Value)
nHumedad = Thisform.Humedad(nMasa1, nMasa2)
Thisform.TxtHumedad.Value = Str(nHumedad, 10, 4)
Thisform.Refresh

Docente: Alcalá Molina Félix Andrés