0 0
2015
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:
3 etiquetas
1 cuadro de texto
2 listas
5 botones de comando
Form1
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
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
Thisform.LstSeleccionar.Additem(Thisform.TxtCurso.Value)
Thisform.TxtCurso.Value = “”
Thisform.TxtCurso.SetFocus
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.
Thisform.CmdQuitarTodo.Enabled = .T.
EndIf
Thisform.Refresh
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
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
For nI = 1 To Thisform.LstSeleccionar.ListCount
Thisform.LstProgramado.AddItem;
(Thisform.LstSeleccionar.List(nI))
Next
Thisform.LstSeleccionar.Clear
Thisform.CmdAgregar.Enabled = .F.
Thisform.CmdAgregarTodo.Enabled = .F.
Thisform.Refresh
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
#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.
3 etiquetas
1 caja de texto
1 lista
1 grupo de botones de opción
3 botones de comando
Form1
Nombre FrmBurbuja
Caption Ordenación por burbuja
MaxButton .F.-Falso
MinButton .F.-Falso
Label1
Name LblNumero
Caption Ingrese un nuevo número:
Label2
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
Nombre CmdSalir
Cancel .T.-Verdadero
Caption \<Salir
Picture C:\Archivos de programa\Microsoft Visual
Studio\Common\Graphics\Icons\Arrows\
Point04.ico
#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
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
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
GUÍA DE LABORATORIO Nº 5
Objetivos
Luego de completar este laboratorio, el estudiante
será capaz de:
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.
2 etiquetas
2 cajas de texto
3 botones de comando
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
Caption \<Limpiar
Command3
Nombre CmdSalir
Cancel .T.-Verdadero
Caption \<Salir
Parameters cCadena
nN = Len(Alltrim(cCadena))
Dimension cTemporal(nN)
For nI = 1 To nN
cTemporal(nI) = SubStr(cCadena, nI, 1)
Next
cCadena = “”
For nJ = nN To 1 Step -1
cInvertida = cInvertida + cTemporal(nJ)
Next
Return cInvertida
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.
Parameters cApeNom
nN = Len(Alltrim(cApeNom))
Dimension cNom(nN)
Dimension cApe(nN)
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
nMasa1 = Val(Thisform.TxtMasa1.Value)
nMasa2 = Val(Thisform.TxtMasa2.Value)
nHumedad = Thisform.Humedad(nMasa1, nMasa2)
Thisform.TxtHumedad.Value = Str(nHumedad, 10, 4)
Thisform.Refresh