FORMULARIOS. EJERCICIOS Ejercicio Nº 1

Anuncio
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
FORMULARIOS. EJERCICIOS
Ejercicio Nº 1
En este ejemplo vamos a crear un
formulario para calcular la edad de una
persona a partir de su fecha de
nacimiento.
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
Luego, proceda a establecer las propiedades según se indica a continuación:
Form1
Name
Caption
MaxButton
MinButton
FrmEdad
Escriba la fecha actual
.F.-Falso
.F.-Falso
Label1
Name
Caption
LblFecNac
Fecha de nacimiento:
Label2
Name
Caption
LblEdad
Su edad es:
Text1
Name
Enabled
TxtFecNac
.T.-Verdadero
Name
Enabled
TxtEdad
.F.-Falso
Text2
Command1
Name
Caption
Command2
Name
Caption
Command3
Name
Caption
1
CmdAceptar
\<Aceptar
CmdLimpiar
\<Limpiar
CmdSalir
\<Salir
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
Luego de establecidas las propiedades de los controles, proceda a ingresar el siguiente código:
Objeto: FrmEdad
SET DATE FRENCH
SET CENTURY ON
Procedimiento: Load
&& formato dd/mm/aa
&& establece 4 dígitos para el año: dd/mm/aaaa
Objeto: FrmEdad
cNomDia
cDia
cMes
cAnno
cFecha
=
=
=
=
=
Procedimiento: INIT
Cdow(Date())
Str(Day(Date()), 2)
Cmonth(Date())
Str(Year(Date()), 4)
cNomDia + “ ” + cDia + “ de ” + cMes + “ del ” + cAnno
Thisform.Caption = cFecha
Thisform.TxtFecNac.Setfocus
Thisform.Refresh
Objeto: CmdAceptar
Procedimiento: Clic
dFecNac = Ctod(Thisform.TxtFecNac.Value)
nEdad
= Int ((Date() - dFecNac) / 365)
Thisform.TxtEdad.Value = Str(nEdad) + “ años”
Thisform.Refresh
Objeto: CmdLimpiar
Thisform.TxtFecNac.Value = “”
Thisform.TxtEdad.Value
= “”
Thisform.TxtFecNac.Setfocus
Thisform.Refresh
Objeto: CmdSalir
ThisForm.Release
2
Procedimiento: Clic
&& sin espacios entre comillas.!
Procedimiento: Clic
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
Ejercicio Nº 2
En este ejemplo se elaborará un formulario que simule
el funcionamiento de un reloj despertador digital. La
aplicación debe permitir al usuario ingresar la hora a la
que desea ser avisado. El diseño de la interfaz debe
ser similar a la figura siguiente:
Para el desarrollo de esta aplicación proceder a ubicar
los siguientes controles en el formulario:
• 2 etiquetas
• 2 cajas de texto
• 1 cronómetro
• 2 botones de comandos
Establezca las propiedades según se indica a continuación:
Form1
Name
Caption
MaxButton
MinButton
Label1
Name
Caption
Label2
Name
Caption
FrmReloj
Reloj despertador digital
.F.-Falso
.F.-Falso
LblHora
Hora
LblDespertador
Despertador
Text1
Name
FontBold
FontSize
TxtHora
.T.-Verdadero
24
Name
FontBold
FontSize
TxtDespertador
.T.-Verdadero
24
Text2
Timer1
Name
Enabled
Interval
Command1
Name
Caption
Default
Command2
Name
Cancel
Caption
3
Timer1
.T.-Verdadero
500
CmdOnOff
\<Desactivar
.T.-Verdadero
CmdTerminar
.T.-Verdadero
\<Terminar
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
Una vez establecidas las propiedades, proceda a ingresar el código que se muestra:
Objeto: FrmReloj
PUBLIC lOnOff
Procedimiento: Load
Objeto: FrmReloj
Procedimiento: INIT
lOnOff = .F.
Thisform.TxtDespertador.Value = “00:00:00”
Thisform.Refresh
Objeto: Timer1
Procedimiento: Timer
IF Thisform.TxtHora.Value != Time()
Thisform.TxtHora.Value = Time()
ENDIF
IF (Thisform.TxtDespertador.Value < Time()) .AND. lOnOff
? Chr(7) && emite sonido
ENDIF
Thisform.Refresh
Objeto: CmdOnOff
Procedimiento: Clic
IF lOnOff
lOnOff = .F.
Thisform.CmdOnOff.Caption = “\<Activar”
ELSE
lOnOff = .T.
Thisform.CmdOnOff.Caption = “\<Desactivar”
ENDIF
Thisform.Refresh
Objeto: CmdTerminar
ThisForm.Release
4
Procedimiento: Click
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio Nº 3
El ejercicio consiste en crear una aplicación que permita leer una fracción y de como resultado la
fracción simplificada. Esto es, que halle la fracción irreductible equivalente.
Para el desarrollo de esta aplicación proceda a crear un nuevo formulario y luego vaya al Menú
Formulario y elija la opción Crear conjunto de formularios (no se preocupe, pues no se apreciará nada
en especial). Nuevamente vaya al Menú Formulario y elija la opción Agregar nuevo formulario. 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
2 cajas de texto
2 botones de comando
Seguidamente debe establecer las propiedades de los objetos según se indica:
Form1
Name
Caption
MaxButton
5
FrmIngreso
Ingreso de datos
.F.-Falso
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
MinButton
Label1
Name
Caption
Label2
Name
Caption
.F.-Falso
LblNumerador
Numerador?
LblDenominador
Denominador?
Text1
Name
Value
TxtNumerador
0
Text2
Name
Value
Command1
Name
Caption
Default
TxtDenominador
0
CmdSimplificar
Simplificar
.T.-Verdadero
Command2
Name
Cancel
Caption
CmdSalir
.T.-Verdadero
Salir
A continuación proceda a ingresar el código que se muestra:
Objeto: CmdSimplificar
Procedimiento: Click
nNumerador
= Thisformset.FrmIngreso.TxtNumerador.Value
nDenominador = Thisformset.FrmIngreso.TxtDenominador.Value
IF nNumerador < nDenominador
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
Objeto: CmdSalir
Procedimiento: Click
Thisformset.Release
Luego proceda a ubicar los siguientes controles sobre el segundo formulario (Form2):
•
•
1 etiqueta
1 caja de texto
6
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
•
1 botón de comando
Seguidamente debe establecer las propiedades de los objetos según se indica:
Form2
Name
Caption
MaxButton
MinButton
Label1
Name
Caption
Text1
Name
Alignment
Command1
Name
Caption
FrmSalida
Salida
.F.-Falso
.F.-Falso
LblFraccion
Fracción simplificada:
TxtFraccion
2-Centro
CmdVolver
Volver
A continuación proceda a ingresar el código que se muestra:
Objeto: FrmSalida
Procedimiento: Activate
cNumerador
= Str(nNumerador)
cDenominador = Str(nDenominador)
cFraccion
= cNumerador + “ / ” + cDenominador
Thisformset.FrmSalida.TxtFraccion.Value = cFraccion
Thisformset.Refresh
Objeto: CmdVolver
Thisformset.FrmSalida.Hide
Thisformset.FrmIngreso.Show
Thisformset.Refresh
Procedimiento: Click
Finalmente proceda a ingresar el código que se indica a continuación:
Objeto: Formset1
Public nNumerador
Public nDenominador
Public nC
Objeto: Formset1
Thisformset.FrmSalida.Hide
Thisformset.Refresh
7
Procedimiento: Load
Procedimiento: Init
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio Nº 4
Este ejemplo consiste en elaborar una aplicación que
acepte fechas como tres números (dd, mm, aaaa) y
las visualice del modo usual. A manera de ejemplo
considere lo siguiente:
Cuando el usuario haga click en el botón Salir o en el botón
Cerrar de la barra de título del formulario, se debe confirmar si
desea terminar la aplicación, tal como se observa en la figura
siguiente:
En caso de que el usuario elija la opción Si, la aplicación debe terminar. Caso contrario, es decir si el
usuario elige la opción No, se debe proseguir con la aplicación.
Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario:
•
•
•
•
4 etiquetas
3 controles numéricos
1 caja de texto
3 botones de comando
En seguida proceda a establecer las propiedades según se indica:
Form1
Name
Caption
MaxButton
MinButton
Label1
Name
AutoSize
Caption
Label2
Name
AutoSize
Caption
Label3
Name
AutoSize
Caption
8
FrmFecha
Fecha en letras
.F.-Falso
.F.-Falso
LblDia
.T.-Verdadero
Día:
LblMes
.T.-Verdadero
Mes:
LblAnno
.T.-Verdadero
Año:
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
Label4
Name
AutoSize
Caption
Spinner1
Name
SpinnerHighValue
SpinnerLowValue
Spinner2
Name
SpinnerHighValue
SpinnerLowValue
Spinner3
Name
SpinnerHighValue
SpinnerLowValue
Text1
Name
Alignment
Command1
Name
Caption
Default
Command2
Name
Caption
Command3
Name
Cancel
Caption
2013
LblEnLetras
.T.-Verdadero
En letras:
SpnDia
31
1
SpnMes
12
1
SpnAnno
9999
0
TxtEnLetras
2-Centro
CmdAceptar
\<Aceptar
.T.-Verdadero
CmdLimpiar
\<Limpiar
CmdSalir
.T.-Verdadero
\<Salir
Una vez establecidas las propiedades proceda a ingresar el código que se indica a continuación:
Objeto: FrmFecha
Procedimiento: Load
SET DATE FRENCH
SET CENTURY ON
Objeto: FrmFecha
#DEFINE vfpYesNo
#DEFINE vfpYes
#DEFINE vfpQuestion
Procedimiento: QueryUnload
4
6
32
IF MessageBox(“¿Desea terminar la aplicación?”, ;
vfpQuestion + vfpYesNo, “Pregunta”) = vfpYes
ThisForm.Release
ELSE
NODEFAULT
ENDIF
9
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
Objeto: CmdAceptar
Procedimiento: Click
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
Objeto: CmdLimpiar
Thisform.SpnDia.Value
Thisform.SpnMes.Value
Thisform.SpnAnno.Value
Thisform.TxtEnLetras.Value
Thisform.SpnDia.Setfocus
Thisform.Refresh
Objeto: CmdSalir
Thisform.QueryUnload
10
Procedimiento: Click
=
=
=
=
0
0
0
“”
Procedimiento: Click
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio Nº 5
Este ejercicio consiste en elaborar un formulario
que permita leer un número entero y visualice
su tabla se multiplicar. Para construir la tabla de
multiplicar vamos a utilizar un control cuadro de
edición, el cual tiene propiedades similares a un
cuadro de texto, pero permite escribir texto en
líneas diferentes.
Para el desarrollo de esta aplicación, 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
Label1
Name
Caption
Text1
Name
Alignment
Edit1
Name
ScrollBars
Command1
Name
Caption
Default
FrmTabla
Tabla de multiplicar
.F.-Falso
.F.-Falso
LblNumero
Ingrese un número:
TxtNumero
2-Centro
EdtTabla
2-Vertical
CmdLimpiar
\<Limpiar
.T.-Verdadero
Una vez diseñada la interfaz, proceda a ingresar el código que se indica a continuación:
Objeto: TxtNumero
Procedimiento: InteractiveChange
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
Objeto: CmdLimpiar
Procedimiento: Click
Thisform.TxtNumero.Value = “”
Thisform.EdtTabla.Value = “”
Thisform.Refresh
11
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio Nº 6
Este ejemplo consiste en elaborar una aplicación 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 aplicación, 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
En seguida proceda a establecer las propiedades según se indica:
Form1
Name
AutoCenter
Caption
MaxButton
MinButton
Label1
Name
Caption
Label2
Name
Caption
Label3
Name
Caption
Label4
Name
Caption
12
FrmEditor
.T.-Verdadero
Editor
.F.-Falso
.F.-Falso
LblTexto
Texto
LblFuente
Fuente
LblTamaño
Tamaño
LblEstilo
Estilo
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
Label5
Name
Caption
Combo1
Name
List1
Name
2013
LblColor
Color
CboFuente
LstTamaño
Text1
Name
ForeColor
TxtTexto
255, 0, 0
Check1
Name
Caption
FontBold
Check2
Name
Caption
FontItalic
ChkCursiva
Cursiva
.T.-Verdadero
Check3
Name
Caption
FontUnderline
ChkSubrayado
Subrayado
.T.-Verdadero
OptionGroup1
ButtonCount
3
Option1
Name
ForeColor
Option2
Name
ForeColor
Option3
Name
ForeColor
Command1
Name
Caption
Default
ChkNegrita
Negrita
.T.-Verdadero
OptRojo
255, 0, 0
OptVerde
0, 255, 0
OptAzul
0, 0, 255
CmdSalir
\<Salir
.T.-Verdadero
Una vez establecidas las propiedades de la interfaz, proceda a ingresar el código que se muestra a continuación:
Objeto: FrmEditor
Procedimiento: Init
Thisform.CboFuente.AddItem(“Arial”)
Thisform.CboFuente.AddItem(“Arial Black”)
Thisform.CboFuente.AddItem(“Courier New”)
Thisform.CboFuente.AddItem(“Garamond”)
Thisform.CboFuente.AddItem(“Impact”)
13
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
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
Objeto: FrmEditor
Procedimiento: QueryUnload
#DEFINE vfpYesNo
4
#DEFINE vfpYes
6
#DEFINE vfpQuestion 32
IF MessageBox(“¿Desea terminar la aplicación?”, ;
vfpQuestion + vfpYesNo, “Pregunta”) = vfpYes
ThisForm.Release
ELSE
NODEFAULT
ENDIF
Objeto: CboFuente
Procedimiento: Click
Thisform.TxtTexto.FontName = Thisform.CboFuente.Value
Thisform.Refresh
Objeto: LstTamaño
Procedimiento: Click
nTamaño = Val(Thisform.LstTamaño.Value)
Thisform.TxtTexto.FontSize = nTamaño
Thisform.Refresh
Objeto: ChkNegrita
Procedimiento: Click
IF Thisform.ChkNegrita.Value = 1
Thisform.TxtTexto.FontBold = .T.
ELSE
Thisform.TxtTexto.FontBold = .F.
ENDIF
Thisform.Refresh
Objeto: ChkCursiva
Procedimiento: Click
IF Thisform.ChkCursiva.Value = 1
Thisform.TxtTexto.FontItalic = .T.
ELSE
Thisform.TxtTexto.FontItalic = .F.
ENDIF
Thisform.Refresh
14
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
Objeto: ChkSubrayado
Procedimiento: Click
IF Thisform.ChkSubrayado.Value = 1
Thisform.TxtTexto.FontUnderline = .T.
ELSE
Thisform.TxtTexto.FontUnderline = .F.
ENDIF
Thisform.Refresh
Objeto: OptRojo
Procedimiento: Click
Thisform.TxtTexto.ForeColor = RGB(255, 0, 0)
Thisform.Refresh
Objeto: OptVerde
Procedimiento: Click
Thisform.TxtTexto.ForeColor = RGB(0, 255, 0)
Thisform.Refresh
Objeto: OptAzul
Procedimiento: Click
Thisform.TxtTexto.ForeColor = RGB(0, 0, 255)
Thisform.Refresh
Objeto: CmdSalir
Thisform.QueryUnload
15
Procedimiento: Click
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio Nº 7
Este ejemplo 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
Name
Caption
MaxButton
MinButton
Label1
Name
Caption
Label2
Name
Caption
Label3
Name
Caption
Text1
Name
FrmCursos
Cursos
.F.-Falso
.F.-Falso
LblCurso
Ingrese nuevo curso:
LblSeleccionar
Seleccione un curso:
LblProgramado
Curso programado:
TxtCurso
List1
Name
16
LstSeleccionar
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
List2
Name
Command1
Name
Caption
Picture
Command2
Name
Caption
Picture
Command3
Name
Caption
Picture
Command4
Name
Caption
Picture
Command5
Name
Caption
LstProgramado
CmdAgregar
C:\TP\Bitmaps\AddItem.Bmp
CmdAgregarTodo
C:\TP\Bitmaps\AddAll.Bmp
CmdQuitar
C:\TP\Bitmaps\Remove.Bmp
CmdQuitarTodo
C:\TP\Bitmaps\RemoveAll.Bmp
CmdAnnadir
\<Añadir
Luego 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
Thisform.CmdAgregar.Enabled = .T.
Thisform.CmdAgregarTodo.Enabled = .T.
ENDIF
Thisform.Refresh
Objeto: LstProgramado
Procedimiento: Click
IF Thisform.LstProgramado.ListIndex != 0
Thisform.CmdQuitar.Enabled = .T.
Thisform.CmdQuitarTodo.Enabled = .T.
ENDIF
Thisform.Refresh
Objeto: CmdAgregar
Procedimiento: Click
cCurso = Thisform.LstSeleccionar.Value
nCurso = Thisform.LstSeleccionar.ListIndex
IF Thisform.LstSeleccionar.ListCount > 0
Thisform.LstProgramado.AddItem(cCurso)
Thisform.LstSeleccionar.RemoveItem(nCurso)
Thisform.LstSeleccionar.ListIndex = 0
Thisform.CmdAgregar.Enabled
= .F.
Thisform.CmdAgregarTodo.Enabled
= .F.
ENDIF
Thisform.Refresh
17
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
Objeto: CmdQuitar
Procedimiento: Click
cCurso = Thisform.LstProgramado.Value
nCurso = Thisform.LstProgramado.ListIndex
IF Thisform.LstProgramado.ListCount > 0
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))
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
ThisForm.Release
ELSE
NODEFAULT
ENDIF
18
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio Nº 8
El ejemplo 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.
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
Caption
MaxButton
MinButton
Label1
Name
Caption
Label2
Name
Caption
Label3
Name
Caption
Text1
Name
Value
List1
Name
Option1
Nombre
Caption
Option2
19
FrmBurbuja
Ordenación por burbuja
.F.-Falso
.F.-Falso
LblNumero
Ingrese
un
número:
nuevo
LblOrden
Orden:
LblLista
Lista de números:
TxtNumero
0
LstNumero
OptAscendente
Ascendente
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
Nombre
Caption
Command1
Nombre
Caption
Default
Command2
Nombre
Caption
Command3
Nombre
Cancel
Caption
Picture
OptDescendente
Descendente
CmdAnnadir
\<Añadir
True
CmdOrdenar
\<Ordenar
CmdSalir
.T.-Verdadero
\<Salir
C:\TP\ICONOS\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
ThisForm.Release
ELSE
NoDefault
ENDIF
Objeto: CmdAnnadir
Procedimiento: Clic
Thisform.LstNumero.AddItem(Thisform.TxtNumero.Value)
Thisform.TxtNumero.Value = “”
Thisform.TxtNumero.SetFocus
Objeto: CmdOrdenar
nN = Thisform.LstNumero.ListCount
Dimension nA(nN) As Integer
Procedimiento: Clic
FOR nI = 1 TO nN
nA(nI) = Thisform.LstNumero.List(nI)
NEXT
IF Thisform.OptionGroup1.OptAscendente.Value = 1
FOR nI = 1 TO nN - 1
FOR nJ = nI + 1 TO nN
IF nA(nI) > nA(nJ)
nT
= nA(nI)
nA(nI) = nA(nJ)
nA(nJ) = nT
ENDIF
NEXT
NEXT
ENDIF
20
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
IF Thisform.OptionGroup1.OptDescendente.Value = 1
FOR nI = 1 TO nN - 1
FOR nJ = nI + 1 TO nN
IF nA(nI) < nA(nJ)
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
Thisform.QueryUnload
21
Procedimiento: Clic
2013
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio Nº 9
Este ejemplo 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
En seguida proceda a establecer las propiedades según se indica:
Form1
Name
Caption
MaxButton
MinButton
FrmPrueba_Cadena
Cadena invertida
.F.-Falso
.F.-Falso
Label1
Name
Caption
LblCadena
Ingrese una cadena:
Label2
Name
Caption
LblInvertida
Cadena invertida:
Text1
Name
Enabled
TxtCadena
.T.-Verdadero
Name
Enabled
TxtInvertida
.F.-Falso
Text2
Command1
Name
Caption
Default
22
CmdAceptar
\<Aceptar
.T.-Verdadero
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
Command2
Name
Caption
Command3
Name
Cancel
Caption
2013
CmdLimpiar
\<Limpiar
CmdSalir
.T.-Verdadero
\<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 = “”
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
23
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio Nº 10
Este ejemplo 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)
FOR nI = 1 TO nN
IF SubStr(cApeNom, nI, 1) = “,”
EXIT
ENDIF
NEXT
cApe = SubStr(cApeNom, 1, nI-1)
cNom = SubStr(cApeNom, nI + 1, nN - nI)
cNomApe = cNom + “ ” + cApe
RETURN cNomApe
24
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio Nº 11
m
Para calcular el porcentaje de humedad de una muestra sólida primero se pesa la muestra ( 1 ),
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 (
siguiente cálculo:
 m − m2
% Humedad = 100  1
 m1
m2 ). Finalmente se realiza el



Nuestro trabajo consiste en crear un método que permita realizar el cálculo anterior.
Para el desarrollo de esta aplicación proceder a crear 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
25
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio de Autoevaluación Nº1
Desarrollar una aplicación que permita realizar consultas acerca de un determinado curso, los cuales
se mostraran en una lista. El usuario debe seleccionar un curso y en seguida se debe presentar el
nombre del profesor encargado del curso (teoría), el nombre del jefe de práctica (laboratorio), así
como los horarios de teoría y de laboratorio, respectivamente. El diseño de la interfaz debe ser similar
a la figura que se muestra:
26
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio de autoevaluación Nº 2
Escriba un método que reciba como parámetro la fecha de nacimiento del usuario. Debe retornar el
signo zodiacal, el día de nacimiento y la cantidad de días vividos hasta la fecha actual. Utilice un
formulario de prueba para verificar la funcionalidad del método creado.
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
27
Instituto Superior Jujuy
Tecnicatura Superior en Informática con orientación en Sistemas de Información
Asignatura: Técnicas de Programación
2013
Ejercicio de autoevaluación Nº 3
Elaborar una aplicación que acepte como entrada la reserva de agua de un depósito y los litros
se consumen a la semana. La aplicación debe dar como resultado las cantidades de agua
quedan al final de cada semana. El proceso finalizará cuando no quede agua suficiente para
semana. Utilizar otro formulario para mostrar la salida. El diseño de la interfaz debe ser similar
figura mostrada:
28
que
que
una
a la
Descargar