CENTRO DE BACHILLERATO TECNOLÓGICO industrial y de servicios No. 130 MICROSOFT MICROSOFT VISUAL VISUAL FOXPRO FOXPRO
APLICAR LOS PRINCIPIOS DE PROGRAMACIÓN PARA LA SOLUCIÓN DE PROBLEMAS
GUÍA DE PRÁCTICAS PERIODO No. 3
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 1
Microsoft
GUÍA DE LABORATORIO Nº 1 Objetivos Luego Luego de complet completar ar este este labora laborator torio, io, el estudi estudiant ante e será será capaz de: •
Imple Impleme ment ntar ar
soluc solucio ione nes s
medi median ante te
prog progra rama maci ción ón
orien orienta tada da
a
objetos. •
Manejar las diferentes propiedades y eventos del formulario.
•
Añadir controles a un formulario.
•
Establecer las propiedades de los controles.
•
Trabajar con procedimientos de eventos.
Consideraciones Para Para el desa desarr rrol ollo lo del del crear crear
una una
carp carpet eta a
pres presen ente te labo labora rato tori rio o
Ud. Ud.
debe deberá rá
para guar guardar dar sus sus trab trabaj ajos os C:\Unidad3_nl\ para
correspondientes a este laboratorio.
Práctica Nº 1 El ejercicio consiste en elaborar una Práctica que permita leer un número real de la forma “eee.ddd” e imprima el mayor valor entre la parte entera y la parte decimal.
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 2
Para el desarrollo de esta Práctica, en primer lugar debe crear un nuevo formulario. Para ello digite lo siguiente en la Ventana de Comandos: Create Form A continuación seleccione del Menú Ver, la opción Barra de herr herram amie ient ntas as
Cont Contro role les s
de
Form Formul ular ario ios. s.
Se
pres presen enta tará rá
una una
ventana similar a la siguiente figura:
En seguida de la barra de herramientas mostrada ubicar los siguientes controles al formulario: 2 etiquetas 2 cajas de texto 3 botones de comando Para ubicar un control en el formulario, simplemente dar click en el control deseado y luego dar click en el formulario Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 3
en la posici posición ón que se le desea desea ubicar ubicar. . Adicion Adicionalm alment ente e puede puede utilizar la barra de herramientas Diseño para obtener una mejor presentación. A continuación proceda a establecer las propiedades de los objetos según se indica, para ello dar click derecho sobre el control y del menú emergente que se presenta elegir la opción Propiedades.
Form1 Name Caption MaxButton MinButton
FrmAplica01 Mayor valor de un número real .F.-Falso .F.-Falso
Label1 Name Caption
LblX Ingrese un real de la forma eee.ddd?
Label2 Name Caption
LblMay Mayor:
Name InputMask Value
TxtX 999.999 0
Name InputMask Value
TxtMay 999 0
Text1
Text2
Command1 Name Caption Default
CmdAceptar \
Command2 Name
CmdLimpiar
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 4
Caption
\
Command3 Name Cancel Caption
CmdSalir .T.-Verdadero \
A continuación dar doble click sobre el control CmdAceptar y proceda a ingresar el código que se muestra:
Obj eto : CmdAcepta r
P r o c e d i m i en to : C l i c k
nX = Thisform.TxtX.Value nA = Int(Thisform.TxtX.Value) nX = nX - nA nB = 1000 * nX If nA > nB Then nMay = nA Else nMay = nB EndIf Thisform.TxtMay.Value = nMay Thisform.Refresh De mane manera ra anál análog oga a ingre ingresa sar r el sigui siguien ente te códig código o para para el control CmdLimpiar:
Obj eto : CmdLimpia r
P r o c e d i m i en to : C l i c k
Thisform.TxtX.Value = 0 Thisform.TxtMay.Value = 0 Thisform.TxtX.Setfocus Thisform.Refresh
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 5
Finalmente proceder a ingresar el siguiente código para el control CmdSalir:
Obj eto : CmdSali r
P r o c ed i m i e n t o : C l i c k
Release Thisform A continuación guarde su Práctica como FrmAplica01, luego proce proceda da a ejec ejecut utar arla la. . Para Para ello ello ingre ingrese se lo sigu siguie ient nte e en la Ventana de Comandos: Do Form FrmAplica01 Debe funcionar sin problemas. Pruebe ingresando diferentes valores. En caso que falle revise y corrija.
Práctica Nº 2 En calc calcul ular ar
este este la
ejer ejerci cici cio o edad edad
de
vamo vamos s
una una
a
pers person ona a
crea crear r a
un
part partir ir
form formul ular ario io de
su
para para
fech fecha a
de
nacimiento.
Para el desarrollo de esta Práctica, proceda a ubicar los siguientes controles en el formulario: 2 etiquetas 2 cajas de texto Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 6
3 botones de comando Lueg Luego, o,
proc proced eda a
a
esta establ blec ecer er
las las
prop propie ieda dade des s
segú según n
se
indica a continuación:
Form1 Name Caption MaxButton MinButton
FrmEdad .F.-Falso .F.-Falso
Label1 Name Caption
LblFecNac Fecha de nacimiento:
Label2 Name Caption
LblEdad Su edad es:
Name Enabled
TxtFecNac .T.-Verdadero
Name Enabled
TxtEdad .F.-Falso
Text1
Text2
Command1 Name Caption
CmdAceptar \
Command2 Name Caption
CmdLimpiar \
Command3 Name CmdSalir Caption \
Pág. 7
Obj eto : FrmEda d
P r o c e d im ie n t o : L o a d
Set Date French Set Century On
Obj eto : FrmEda d
P r o c e d im ie n t o : I n i t
cNomDia = Cdow(Date()) cDia = Str(Day(Date()), 2) cMes = Cmonth(Date()) cAnno = Str(Year(Date()), 4) cFecha = cNomDia + “ ” + cDia + “ de ” + cMes + “ del ” + cAnno Thisform.Caption = cFecha Thisform.TxtFecNac.Setfocus Thisform.Refresh
Obj eto : CmdAcepta r
P r o c e d i m i en to : C l i c k
dFecNac = Ctod(Thisform.TxtFecNac.Value) nEdad = Int ((Date() - dFecNac) / 365) Thisform.TxtEdad.Value = Str(nEdad) + “ años” Thisform.Refresh
Obj eto : CmdLimpia r
P r o c e d i m i en to : C l i c k
Thisform.TxtFecNac.Value = “” Thisform.TxtEdad.Value = “” Thisform.TxtFecNac.Setfocus Thisform.Refresh
Obj eto : CmdSali r
P r o c ed i m i e n t o : C l i c k
Release Thisform
Práctica Nº 3 Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 8
Se tiene un cajero automático el cual permite manipular ciert erta
cantida idad
de
dinero
para
lo
cual ual
dispone
de
los
siguientes billetes: $10.00, $20.00, $50.00, $100.00 y $200.00. Elaborar una Práctica que permita la lectura de la cantidad a retirar la cual debe ser múltiplo de 10 (caso contrario debe solicit solicitar ar al usuari usuario o que ingrese ingrese un valor valor correc correcto, to, no debe aceptar la lectura de valores que no cumplan esta condición). La
Práctica
debe
indicar
el
menor
número
utili utiliza zar. r. El diseñ diseño o de la inter interfa faz z debe debe
de
billetes
a
ser ser simil similar ar a la
siguiente figura:
Microsoft
GUÍA DE LABORATORIO Nº 2 Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 9
Objetivos Luego Luego de complet completar ar este este labora laborator torio, io, el estudi estudiant ante e será será capaz de: •
Manejar las diferentes propiedades y métodos del conjunto de formularios.
•
Identificar y utilizar los controles estándar adicionales.
•
Util Utiliz izar ar
caja cajas s
de
diál diálog ogo o
pred predef efin inid idas as
para para
visu visual aliz izar ar
mensajes.
Consideraciones Para Para el desa desarr rrol ollo lo del del crear crear
una una
carp carpet eta a
pres presen ente te labo labora rato tori rio o
Ud. Ud.
debe deberá rá
C:\Unidad3_nl, para para guar guardar dar sus sus trab trabaj ajos os
correspondientes a este laboratorio.
Práctica Nº 4 El ejercicio consiste en crear una Práctica que permita leer una fracción y de como resultado la fracción simplificada. Esto es, que halle la fracción irreductible equivalente. Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 10
Para Para el desar desarro roll llo o de esta esta Prác Prácti tica ca proce proceda da a crea crear r un nuevo formulario y luego vaya al Menú Formulario y elija la opción Crear conjunto de formularios (no se preocupe, pues no se
apre apreci ciar ará á
Form Formul ular ario io
y
nada nada
en
espe especi cial al). ).
elij elija a
la
opci opción ón
Nuev Nuevam amen ente te
Agre Agrega gar r
nuev nuevo o
vaya vaya
al
Menú Menú
form formul ular ario io. .
El
Diseñador de formularios debe presentar una apariencia similar a la figura mostrada:
A continuación proceda a ubicar los siguientes controles sobre el primer formulario (Form1): 2 etiquetas Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 11
2 cajas de texto 2 botones de comando Segu Seguid idam amen ente te
debe debe
esta establ blec ecer er
las las
prop propie ieda dade des s
de
los los
objetos según se indica:
Form1 Name Caption MaxButton MinButton
FrmIngreso Ingreso de datos .F.-Falso .F.-Falso
Label1 Name Caption
LblNumerador Numerador?
Label2 Name Caption
LblDenominador Denominador?
Name Value
TxtNumerador 0
Name Value
TxtDenominador 0
Text1
Text2
Command1 Name Caption Default
CmdSimplificar Simplificar .T.-Verdadero
Command2 Name Cancel Caption
CmdSalir .T.-Verdadero Salir
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 12
A
cont contin inua uaci ción ón
proc proced eda a
a
ingr ingres esar ar
el
códi código go
que que
se
muestra:
Obje jet to: CmdSimplifica car r
Proc oce e d i mi e n t o : C l i c k
nNumerador = Thisformset.FrmIngreso.TxtNumerador.Value nDenominador = Thisformset.FrmIngreso.TxtDenominador.Value If nNumerador < nDenominador Then nC = nNumerador Else nC = nDenominador EndIf Do While (nNumerador % nC != 0) Or (nDenominador % nC != 0) nC = nC - 1 EndDo nNumerador = nNumerador / nC nDenominador = nDenominador / nC Thisformset.FrmIngreso.Hide Thisformset.FrmSalida.Show Thisformset.Refresh
Obj eto : CmdSali r
P r o c ed i m i e n t o : C l i c k
Release Thisformset Luego proceda a ubicar los siguientes controles sobre el segundo formulario (Form2): 1 etiqueta 1 caja de texto 1 botón de comando
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 13
Segu Seguid idam amen ente te
debe debe
esta establ blec ecer er
las las
prop propie ieda dade des s
de
los los
objetos según se indica:
Form2 Name Caption MaxButton MinButton
FrmSalida Salida .F.-Falso .F.-Falso
Label1 Name Caption
LblFraccion Fracción simplificada:
Name Alignment
TxtFraccion 2-Centro
Text1
Command1 Name Caption A
cont contin inua uaci ción ón
CmdVolver Volver proc proced eda a
a
ingr ingres esar ar
el
códi código go
que que
se
muestra:
Obj eto : FrmSalid a
P ro c e d i m i e n t o : A c t i v a t e
cNumerador = Str(nNumerador) cDenominador = Str(nDenominador) cFraccion = cNumerador + “ / ” + cDenominador Thisformset.FrmSalida.TxtFraccion.Value = cFraccion Thisformset.Refresh
Obj eto : CmdVolve r
P ro c e d i m i e n t o : C l i c k
Thisformset.FrmSalida.Hide Thisformset.FrmIngreso.Show Thisformset.Refresh Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 14
Finalmente proceda a ingresar el código que se indica a continuación:
Obj eto : Formset 1
P r o c ed i m i e n t o : L o a d
Public nNumerador Public nDenominador Public nC
Obj eto : Formset 1
P r o c ed i m i e n t o : I n i t
Thisformset.FrmSalida.Hide Thisformset.Refresh
Práctica Nº 5 Este Este
ejer ejerci cici cio o
cons consis iste te
en
elab elabor orar ar
una una
Prác Prácti tica ca
que que
acepte fechas como tres números (dd, mm, aaaa) y las visualice del modo usual. A manera de ejemplo considere lo siguiente:
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 15
Cuando el usuario haga click en el botón Salir o en el botón botón Cerr Cerrar ar de la barr barra a de títu título lo del formu formula lari rio, o, se debe debe confirmar si desea terminar la Práctica, tal como se observa en la figura siguiente:
En caso de que el usuario elija la opción Si, la Práctica debe terminar. Caso contrario, es decir si el usuario elige la opción No, se debe proseguir con la Práctica. Para el desarrollo de esta Práctica, proceda a ubicar los siguientes controles en el formulario: 4 etiquetas 3 controles numéricos 1 caja de texto 3 botones de comando Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 16
En seguida proceda a establecer las propiedades según se indica:
Form1 Name Caption MaxButton MinButton
FrmFecha Fecha en letras .F.-Falso .F.-Falso
Label1 Name AutoSize Caption
LblDia .T.-Verdadero Día:
Label2 Name AutoSize Caption
LblMes .T.-Verdadero Mes:
Label3 Name AutoSize Caption
LblAnno .T.-Verdadero Año:
Label4 Name AutoSize Caption
LblEnLetras .T.-Verdadero En letras:
Spinner1 Name SpinnerHighValue SpinnerLowValue
SpnDia 31 1
Spinner2 Name SpinnerHighValue SpinnerLowValue
SpnMes 12 1
Spinner3 Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 17
Name SpinnerHighValue SpinnerLowValue
SpnAnno 9999 0
Text1 Name Alignment
TxtEnLetras 2-Centro
Command1 Name Caption Default
CmdAceptar \
Command2 Name Caption
CmdLimpiar \
Command3 Name Cancel Caption
CmdSalir .T.-Verdadero \
Una vez establecidas las propiedades proceda a ingresar el código que se indica a continuación:
Obj eto : FrmFech a
P r o c ed i m i e n t o : L o a d
Set Date French Set Century On
Obj eto : FrmFech a
Procedimiento: QueryUnload
#DEFINE
vfpYesNo
4
#DEFINE
vfpYes
6
DEFINE NE #DEFI
vfpQu vfpQues estio tion n 32
If MessageBox(“¿Desea terminar la Práctica?”, ; vfpQuestion + vfpYesNo, “Pregunta”) = vfpYes Then Release Thisform Else Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 18
NoDefault EndIf
Obj eto : CmdAcepta r
P r o c e d i m i en to : C l i c k
cBarra = “/” cFecha = Thisform.SpnDia.Text + cBarra + Thisform.SpnMes.Text ; + cBarra + Thisform.SpnAnno.Text dFecha = Ctod(cFecha) cNomDia = Cdow(dFecha) cDia = Str(Day(dFecha), 2) cMes = Cmonth(dFecha) cAnno = Str(Year(dFecha), 4) cFecha = cNomDia + “ ” + cDia + “ de ” + cMes + “ de ” + cAnno Thisform.TxtEnLetras.Value = cFecha Thisform.Refresh
Obj eto : CmdLimpia r
P r o c e d i m i en to : C l i c k
Thisform.SpnDia.Value = 0 Thisform.SpnMes.Value = 0 Thisform.SpnAnno.Value = 0 Thisform.TxtEnLetras.Value = “” Thisform.SpnDia.Setfocus Thisform.Refresh
Obj eto : CmdSali r
P r o c ed i m i e n t o : C l i c k
Thisform.QueryUnload
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 19
Práctica Nº 6 Este Este permi rmita
ejer ejerci cicio cio leer
un
cons consis iste te
núm número
en
entero
elab elabora orar r y
un
form formul ular ario io
visual ualice
su
tabla
que que se
multipl multiplica icar. r. Para Para constr construir uir la tabla tabla de multipl multiplica icar r vamos vamos a utilizar
un
prop propie ieda dade des s
control simi simila lare res s
cuadro a
un
de cuad cuadro ro
edición, de
el
text texto, o,
cual pero pero
tiene perm permit ite e
escribir texto en líneas diferentes.
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 20
Para el desarrollo de esta Práctica, proceda a ubicar los siguientes controles en el formulario: 1 etiqueta 1 caja de texto 1 cuadro de edición 1 botón de comandos En seguida proceda a establecer las propiedades según se indica:
Form1 Name Caption MaxButton MinButton
FrmTabla Tabla de multiplicar .F.-Falso .F.-Falso
Label1 Name Caption
LblNumero Ingrese un número:
Name Alignment
TxtNumero 2-Centro
Name
EdtTabla
Text1
Edit1 Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 21
ScrollBars
2-Vertical
Command1 Name Caption Default
CmdLimpiar \
Una vez diseñada la interfaz, proceda a ingresar el código que se indica a continuación:
Obj eto : TxtNumer o
P r o c ed i m i e n t o : I n t e r ac t i v e C h a n g e
nN = Val(Thisform.TxtNumero.Value) cS = “” For nI = 0 To 12 nP = nN * nI cS = cS + Str(nN) + “ * ” + Str(nI) + “ = ” + Str(nP) ; + Chr(13) Next Thisform.EdtTabla.Value = cS Thisform.Refresh
Obj eto : CmdLimpia r
P r o c e d i m i e n t o : C li ck
Thisform.TxtNumero.Value = “” Thisform.EdtTabla.Value = “” Thisform.Refresh
Práctica Nº 7 Elaborar una Práctica que acepte como entrada la reserva de agua agua de un depó depósi sito to y los los litr litros os que que se cons consum umen en a la semana. La Práctica debe dar como resultado las cantidades de agua que quedan al final de cada semana. El proceso finalizará cuando no quede agua suficiente para una semana. Utilizar otro Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 22
formula formulario rio para mostrar mostrar la salida salida. . El diseño diseño de la interfa interfaz z debe ser similar a la figura mostrada:
Microsoft
GUÍA DE LABORATORIO Nº 3 Objetivos Luego Luego de complet completar ar este este labora laborator torio, io, el estudi estudiant ante e será será capaz de: •
Usar Usar
casi casill llas as
de
veri verifi fica caci ción ón
y
boto botone nes s
de
opci opción ón
para para
alternar entre uno o más valores. •
Esta Establ blec ecer er
las las
prin princi cipa pale les s
prop propie ieda dade des s
y
méto método dos s
de
las las
listas desplegables y cuadros combinados. Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 23
Consideraciones Para Para el desa desarr rrol ollo lo del del crear crear
una una
carp carpet eta a
pres presen ente te labo labora rato tori rio o
Ud. Ud.
debe deberá rá
C:\Unidad3_nl, para para guar guardar dar sus sus trab trabaj ajos os
correspondientes a este laboratorio.
Práctica Nº 8 Este Este
ejer ejerci cici cio o
cons consis iste te
en
elab elabor orar ar
una una
Prác Prácti tica ca
que que
permita cambiar el aspecto de una caja de texto. El usuario debe elegir el tipo de fuente a utilizar, el estilo, el color y el tamaño. El diseño de la interfaz debe ser similar a:
Para el desarrollo de esta Práctica, proceda a ubicar los siguientes controles en el formulario: 5 etiquetas 1 caja de texto 1 cuadro combinado 1 lista 3 casillas de verificación 1 grupo de botones de opción 1 botón de comando
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 24
En seguida proceda a establecer las propiedades según se indica:
Form1 Name AutoCenter Caption MaxButton MinButton
FrmEditor .T.-Verdadero Editor .F.-Falso .F.-Falso
Label1 Name Caption
LblTexto Texto
Label2 Name Caption
LblFuente Fuente
Label3 Name Caption
LblTamaño Tamaño
Label4 Name Caption
LblEstilo Estilo
Label5 Name Caption
LblColor Color
Combo1 Name
CboFuente
Name
LstTamaño
Name ForeColor
TxtTexto 255, 0, 0
List1
Text1
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 25
Check1 Name Caption FontBold
ChkNegrita Negrita .T.-Verdadero
Check2 Name Caption FontItalic
ChkCursiva Cursiva .T.-Verdadero
Check3 Name Caption FontUnderline
ChkSubrayado Subrayado .T.-Verdadero
OptionGroup1 ButtonCount
3
Option1 Name ForeColor
OptRojo 255, 0, 0
Option2 Name ForeColor
OptVerde 0, 255, 0
Option3 Name ForeColor
OptAzul 0, 0, 255
Command1 Name Caption Default Una Una
vez vez
CmdSalir \
las las
prop propie ieda dade des s
de
la
inte interf rfaz az, ,
proceda a ingresar el código que se muestra a continuación:
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 26
Obj eto : FrmEdito r
P ro c e d i m i e n t o : I n i t
Thisform.CboFuente.AddItem(“Arial”) Thisform.CboFuente.AddItem(“Arial Black”) Thisform.CboFuente.AddItem(“Courier New”) Thisform.CboFuente.AddItem(“Garamond”) Thisform.CboFuente.AddItem(“Impact”) Thisform.CboFuente.AddItem(“MS Sans Serif”) Thisform.CboFuente.AddItem(“Technical”) Thisform.CboFuente.AddItem(“Times New Roman”)
For nI = 8 To 20 Step 2 Thisform.LstTamaño.AddItem(Alltrim(Str(nI))) Next
Obj eto : FrmEdito r
Procedimiento: QueryUnload
#DEFINE
vfpYesNo
4
#DEFINE
vfpYes
6
DEFINE NE #DEFI
vfpQu vfpQues estio tion n 32
If MessageBox(“¿Desea terminar la Práctica?”, ; vfpQuestion + vfpYesNo, “Pregunta”) = vfpYes Then Release Thisform Else NoDefault EndIf
Obj eto : CboFuent e
P ro c e d i m i e n t o : C l i c k
Thisform.TxtTexto.FontName = Thisform.CboFuente.Value Thisform.Refresh
Obj eto : LstTamañ o
P ro c e d i m i e n t o : C l i c k
nTamaño = Val(Thisform.LstTamaño.Value) Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 27
Thisform.TxtTexto.FontSize = nTamaño Thisform.Refresh
Obj eto : ChkNegrit a
P r o c e d i m i en to : C l i c k
If Thisform.ChkNegrita.Value = 1 Then Thisform.TxtTexto.FontBold = .T. Else Thisform.TxtTexto.FontBold = .F. EndIf Thisform.Refresh
Obj eto : ChkCursiv a
P r o c e d i m i en to : C l i c k
If Thisform.ChkCursiva.Value = 1 Then Thisform.TxtTexto.FontItalic = .T. Else Thisform.TxtTexto.FontItalic = .F. EndIf Thisform.Refresh
Obj eto : ChkSubrayad o
P r o c e d i m i e n t o : C l i ck
If Thisform.ChkSubrayado.Value = 1 Then Thisform.TxtTexto.FontUnderline = .T. Else Thisform.TxtTexto.FontUnderline = .F. EndIf Thisform.Refresh
Obj eto : OptRoj o
P r o c e d im ie n t o : C l i c k
Thisform.TxtTexto.ForeColor = RGB(255, 0, 0) Thisform.Refresh
Obj eto : OptVerd e Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
P r o c ed i m i e n t o : C l i c k Pág. 28
Thisform.TxtTexto.ForeColor = RGB(0, 255, 0) Thisform.Refresh
Obj eto : OptAzu l
P r o c e d im ie n t o : C l i c k
Thisform.TxtTexto.ForeColor = RGB(0, 0, 255) Thisform.Refresh
Obj eto : CmdSali r
P r o c ed i m i e n t o : C l i c k
Thisform.QueryUnload
Práctica Nº 9 Este Este ejercic ejercicio io consis consiste te en desarr desarrolla ollar r una Prácti Práctica ca 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 dicta dictado do. . Los Los curs cursos os debe deben n ser ser selec selecci cion onad ados os de la list lista a de espe espera ra
y
tras trasla lada dado dos s
a
la
list lista a
de
curs cursos os
vice viceve vers rsa. a. El dise diseño ño de la inte interf rfaz az debe debe ser ser
prog progra rama mado dos s
y
simi simila lar r a
la
figura mostrada:
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 29
Para el desarrollo de esta Práctica 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 Name Caption MaxButton MinButton
FrmCursos Cursos .F.-Falso .F.-Falso
Label1 Name Caption
LblCurso Ingrese nuevo curso:
Label2 Name Caption
LblSeleccionar Seleccione un curso:
Label3 Name Caption
LblProgramado Curso programado:
Name
TxtCurso
Name
LstSeleccionar
Name
LstProgramado
Text1
List1
List2
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 30
Command1 Name Caption Picture
CmdAgregar C:\Unidad3_nl\Bitmaps\AddItem.Bm p
Command2 Name Caption Picture
CmdAgregarTodo C:\Unidad3_nl\Bitmaps\AddAll.Bmp
Command3 Name Caption Picture
CmdQuitar C:\Unidad3_nl\Bitmaps\Remove.Bmp
Command4 Name Caption Picture
CmdQuitarTodo C:\Unidad3_nl\Bitmaps\RemoveAll. Bmp
Command5 Name Caption
CmdAnnadir \
En seguida proceda a ingresar el código que se indica:
Obj eto : CmdAnnadi r
P r o c e d i m i en to : C l i c k
Thisform.LstSeleccionar.Additem(Thisform.TxtCurso.Value) Thisform.TxtCurso.Value = “” Thisform.TxtCurso.SetFocus
Obje jet to: LstSelecciona nar r
Proc oce e d i mi e n t o : C l i c k
If Thisform.LstSeleccionar.ListIndex != 0 Then Thisform.CmdAgregar.Enabled = .T. Thisform.CmdAgregarTodo.Enabled = .T. Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 31
EndIf Thisform.Refresh
Obj eto : LstPrograma d o
P r o c e d i m i e n t o : C li c k
If Thisform.LstProgramado.ListIndex != 0 Then Thisform.CmdQuitar.Enabled = .T. Thisform.CmdQuitarTodo.Enabled = .T. EndIf Thisform.Refresh
Obj eto : CmdAgrega r
P r o c e d i m i en to : C l i c k
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
Obj eto : CmdQuita r
P ro c e d i m i e n t o : C l i c k
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 Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 32
Thisform.Refresh
Obje jet to: CmdAgregarTod odo o
Proc oce e d i mi e n t o : C l i c k
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
Obj eto : CmdQuitarTo d o
P r o c e d i m i e n t o : C li c k
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
Obj eto : FrmCurso s
Procedimiento: QueryUnload
#DEFINE
vfpYesNo
4
#DEFINE
vfpYes
6
DEFINE NE #DEFI
vfpQu vfpQues estio tion n 32
If MessageBox(“¿Desea terminar la Práctica?”, ; vfpQuestion + vfpYesNo, “Pregunta”) = vfpYes Then Release Thisform Else NoDefault Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 33
EndIf
Práctica Nº 10 El ejercicio consiste en elaborar una Práctica 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.
Para el desarrollo de esta Práctica, 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 Caption MaxButton MinButton
FrmBurbuja Ordenación por burbuja .F.-Falso .F.-Falso
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 34
Label1 Name Caption
LblNumero Ingrese un nuevo número:
Label2 Name Caption
LblOrden Orden:
Label3 Name Caption
LblLista Lista de números:
Name Value
TxtNumero 0
Name
LstNumero
Text1
List1
Option1 Nombre Caption
OptAscendente Ascendente
Option2 Nombre Caption
OptDescendente Descendente
Command1 Nombre Caption Default
CmdAnnadir \
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 35
Command2 Nombre Caption
CmdOrdenar \
Command3 Nombre Cancel Caption Picture
CmdSalir .T.-Verdadero \
Una vez establecidas las propiedades proceda a ingresar el código que se indica a continuación:
Obj eto : FrmBurbuj a
Procedimiento: QueryUnload
#DEFINE
vfpYesNo
4
#DEFINE
vfpYes
6
DEFINE NE #DEFI
vfpQu vfpQues estio tion n 32
If MessageBox(“¿Desea terminar la Práctica?”, ; vfpQuestion + vfpYesNo, “Pregunta”) = vfpYes Then Release Thisform Else NoDefault EndIf
Obj eto : CmdAnnadi r
P r o c e d i m i en to : C l i c k
Thisform.LstNumero.AddItem(Thisform.TxtNumero.Value) Thisform.TxtNumero.Value = “” Thisform.TxtNumero.SetFocus
Obj eto : CmdOrdena r
P r o c e d i m i en to : C l i c k
nN = Thisform.LstNumero.ListCount Dimension nA(nN) As Integer Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 36
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
Obj eto : CmdSali r
P r o c ed i m i e n t o : C l i c k
Thisform.QueryUnload Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 37
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 38
Microsoft
GUÍA DE LABORATORIO Nº 4 Objetivos Luego Luego de complet completar ar este este labora laborator torio, io, el estudi estudiant ante e será 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 Para el desa desarr rrol ollo lo del del crear crear
una una
carp carpet eta a
pres presen ente te labo labora rato tori rio o
Ud. Ud.
debe deberá rá
C:\Unidad3_nl, para para guar guarda dar r sus sus trab trabaj ajos os
correspondientes a este laboratorio.
Práctica Nº 11 Este primer ejercicio consiste en escribir un método que reciba como argumento una cadena de caracteres y la devuelva en forma forma inve invers rsa. a. Por Por ejem ejempl plo o si se ingr ingres esa a la caden cadena a CORA CORAZO ZON N deberá retornar NOZAROC.
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 39
Para el desarrollo de esta Práctica, proceda a ubicar los siguientes controles en el formulario: 2 etiquetas 2 cajas de texto 3 botones de comando En seguida proceda a establecer las propiedades según se indica:
Form1 Nombre Caption MaxButton MinButton
FrmPrueba_Cadena Cadena invertida .F.-Falso .F.-Falso
Label1 Nombre Caption
LblCadena Ingrese una cadena:
Label2 Nombre Caption
LblInvertida Cadena invertida:
Nombre Enabled
TxtCadena .T.-Verdadero
Nombre Enabled
TxtInvertida .F.-Falso
Text1
Text2
Command1 Nombre Caption Default
CmdAceptar \
Command2 Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 40
Nombre Caption
CmdLimpiar \
Command3 Nombre Cancel Caption Una Una
vez vez
CmdSalir .T.-Verdadero \
las las
prop propie ieda dade des s
de
la
inte interf rfaz az, ,
proceda a crear un nuevo método, denominado CadInvertida. Para ello ello vaya vaya al Menú Menú Form Formul ular ario io y elij elija a la opció opción n Crea Crear r nuev nuevo o méto método do. .
Se debe debe pres presen enta tar r
una una
vent ventan ana a
simi simila lar r
a
la figu figura ra
siguiente:
Ingr Ingrese ese los los dato datos s que que se mues muestr tran an y a cont contin inuac uació ión n dar dar click click en el botó botón n Agre Agrega gar. r. Lueg Luego, o, dar dobl doble e clic click k sobr sobre e el formulario y transcriba el siguiente código:
Obje Ob jeto to: : Fr FrmP mPru rueb eba_ a_Ca Cade dena na
Proc Pr oced edim imie ient nto: o: Ca CadI dInv nver erti tida da
Parameters cCadena nN = Len(Alltrim(cCadena)) Dimension cTemporal(nN) For nI = 1 To nN cTemporal(nI) = SubStr(cCadena, nI, 1) Next Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 41
cCadena = “” For nJ = nN To 1 Step -1 cInvertida = cInvertida + cTemporal(nJ) Next Return cInvertida
Obj eto : CmdAcepta r
P r o c e d i m i en to : C l i c k
cCadena = Thisform.TxtCadena.Value Thisform.TxtInvertida.Value = Thisform.CadInvertida(cCadena) Thisform.Refresh
Práctica Nº 12 Escriba un método que reciba como parámetro la fecha de nacimiento del usuario. Debe retornar el signo zodiacal, el día de nacim nacimie ient nto o y la cant cantid idad ad de días días vivid vividos os hast hasta a la fech fecha a actu actual al. .
Util Utilic ice e
un
form formul ular ario io
de
prue prueba ba
para para
veri verifi fica car r
la
funcionalidad del método creado. Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 42
Sugerencia Retorne un único valor como una cadena de caracteres, en la cual estén incluidos los valores que se piden. A manera de ejemplo considere lo siguiente: cRpta = cZodiaco + cDiaNacimiento + cDiasVividos + cFechaHoy Return cRpta
Aportación de: Carlos Castillo Peralta Abel Olivas Martínez
Pág. 43