MICROSOFT VISUAL FOXPRO

NIVEL I

INTRODUCCIÓN A LA PROGRAMACIÓN

Omar Valdovinos Cruz

Pág. 1

Microsoft
GUÍA DE LABORATORIO Nº 1 Objetivos

Visual FoxPro

Luego de completar este laboratorio, el estudiante será capaz de: y Identificar los elementos del entorno integrado de

desarrollo de Microsoft Visual FoxPro 6.0. y Implementar soluciones mediante programación clásica. y Declarar y asignar valores tanto a las variables de memoria como a los arreglos. y Analizar como es el flujo de control de un programa. y Crear funciones y procedimientos definidos por el usuario. Consideraciones Para el desarrollo del presente laboratorio Ud. deberá crear una carpeta C:\FundVFP\Lab1, para guardar sus trabajos correspondientes a este laboratorio. Aplicación Nº 1 En este primer ejercicio vamos a escribir un programa que lea tres números enteros y determine el número mayor, el número central y el número menor. Debemos asumir que los tres números son siempre distintos. Para el desarrollo de la presente aplicación ingresar a Microsoft Visual FoxPro. En la Ventana de Comandos digite la siguiente orden: Pág. 2

Omar Valdovinos Cruz

Modify Command Aplica01 A continuación se debe presentar el Editor de programas. En dicha ventana proceda a ingresar el código que se indica: Close All Clear Input ³Ingrese el valor de A?´ To nA Input ³Ingrese el valor de B?´ To nB Input ³Ingrese el valor de C?´ To nC If nA > nB Then nMay = nA nMen = nB Else nMay = nB nMen = nA EndIf If nC > nMay Then nCen = nMay nMay = nC Else If nC > nMen Then nCen = nC Else nCen = nMen nMen = nC EndIf EndIf ? ³Mayor ? ³Menor =´ + Str(nMay) =´ + Str(nMen) Pág. 3 ? ³Central =´ + Str(nCen)

Omar Valdovinos Cruz

Para ejecutar su programa dar click en el botón Ejecutar ( ! ) de la Barra de herramientas Estándar. Para volver a ejecutar su programa digitar la siguiente orden desde la Ventana de Comandos: Do Aplica01 Aplicación Nº 2 Un restaurante ofrece un descuento del 10% para consumos entre casos S/. no 30.00 se y S/. 50.00; tipo un de descuento descuento. del El 20% para

consumos mayores a S/. 50.00 nuevos soles; para todos los demás aplica ningún ejercicio consiste en elaborar una programa que permita determinar el importe a pagar por el consumidor. Para el desarrollo de la presente aplicación abrir una nueva ventana de edición e ingresar el siguiente código:

Omar Valdovinos Cruz

Pág. 4

Close All Clear Do While .T. Input ³Consumo S/.´ To nConsumo If Type (³nConsumo´) = ³N´ Exit EndIf EndDo Do Case Case nConsumo >= 30 And nConsumo <= 50 nImporte = nConsumo * 0.9 Case nConsumo > 50 nImporte = nConsumo * 0.8 Otherwise nImporte = nConsumo EndCase ? ³Importe a pagar S/.´ + Str(nImporte)

Aplicación Nº 3 El ejercicio consiste en escribir un programa que lea ³ n ´ enteros y calcule la suma total, la media aritmética, el máximo y el mínimo de los datos. Para el desarrollo de la presente aplicación, de manera análoga que para los casos anteriores abrir una nueva ventana de edición e ingresar el siguiente código:

Omar Valdovinos Cruz

Pág. 5

Close All Clear Input ³Ingrese cantidad de números?´ To nN Declare aVector(nN) For nI = 1 To nN Input ³Número [´ + Str(nI) + ³]?´ To aVector(nI) Next nMax = aVector[1] nMin = aVector[1] nSuma = 0 For nI = 1 To nN nSuma = nSuma + aVector[nI] If aVector[nI] > nMax Then nMax = aVector[nI] EndIf If aVector[nI] < nMin Then nMin = aVector[nI] EndIf Next nMedia = nSuma / nN ? ³Suma =´ + Str(nSuma) ? ³Media =´ + Str(nMedia. 10. por ejemplo si se ingresa la cadena CORAZON deberá retornar NOZAROC. Omar Valdovinos Cruz Pág. 2) ? ³Máximo=´ + Str(nMax) ? ³Mínimo=´ + Str(nMin) Aplicación Nº 4 A continuación vamos a escribir una función que reciba como argumento de entrada una cadena de caracteres y la devuelva en forma inversa. 6 .

Para el desarrollo de esta aplicación proceda de manera similar a los casos anteriores e ingresar el código que se muestra: Close All Clear Accept ³Ingrese una cadena?´ To cCadena ? ³Cadena invertida =´ + CadInv(cCadena) Function CadInv Parameters cCadena nN = Len(Alltrim(cCadena)) Declare cTemporal(nN) For nI = 1 To nN cTemporal(nI) = SubStr(cCadena. 1) Next cInvertida = ³´ For nJ = nN To 1 Step -1 cInvertida = cInvertida + cTemporal(nJ) Next J Return cInvertida Aplicación Nº 5 Este ejercicio consiste en escribir un programa que imprima el calendario correspondiente a un mes si se conoce una fecha del mismo. Por ejemplo si se ingresa la siguiente fecha MA 24 04 1973 (Martes 24 de Abril de 1973) se debe obtener: Omar Valdovinos Cruz Pág. 7 . nI.

esta aplicación se deja como ejercicio para el estudiante. Por ello. Omar Valdovinos Cruz Pág. ya entendió como funciona esto.ABRIL D L 2 9 16 23 30 M 3 10 17 24 M 4 11 18 25 J 5 12 19 26 V 6 13 20 27 S 7 14 21 28 1 8 15 22 29 Creo que a estas alturas Ud. 8 .

9 .ddd´ e imprima el mayor valor entre la parte entera y la parte decimal. soluciones mediante programación orientada a Omar Valdovinos Cruz Pág. el estudiante será capaz de: y Implementar objetos. y Añadir controles a un formulario. Consideraciones Para el desarrollo del presente laboratorio Ud. Aplicación Nº 1 El ejercicio consiste en elaborar una aplicación que permita leer un número real de la forma ³eee. para guardar sus trabajos correspondientes a este laboratorio. y Trabajar con procedimientos de eventos.Microsoft GUÍA DE LABORATORIO Nº 2 Objetivos Visual FoxPro Luego de completar este laboratorio. y Establecer las propiedades de los controles. deberá crear una carpeta C:\FundVFP\Lab2. y Manejar las diferentes propiedades y eventos del formulario.

Se presentará 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 Omar Valdovinos Cruz Pág.Para el desarrollo de esta aplicación. en primer lugar debe crear un nuevo formulario. 10 . Para ello digite lo siguiente en la Ventana de Comandos: Create Form A continuación seleccione del Menú Ver. la opción Barra de herramientas Controles de Formularios.

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 Label1 Name Caption Label2 Name Caption Text1 Name InputMask Value Text2 Name Omar Valdovinos Cruz TxtMay Pág.F.ddd? FrmAplica01 Mayor valor de un número real .-Falso . Adicionalmente puede utilizar la barra de herramientas Diseño para obtener una mejor presentación.-Falso .999 0 LblMay Mayor: LblX Ingrese un real de la forma eee.Para ubicar un control en el formulario. 11 TxtX 999. A continuación proceda a establecer las propiedades de los objetos según se indica. simplemente dar click en el control deseado y luego dar click en el formulario en la posición que se le desea ubicar.F.

TxtX.Value) nX = nX .T.T.Value nA = Int(Thisform. 12 Procedimiento: Click .TxtMay.Value = nMay Omar Valdovinos Cruz Pág.InputMask Value Command1 Name Caption Default Command2 Name Caption Command3 Name Cancel Caption 999 0 CmdAceptar \<Aceptar .TxtX.-Verdadero \<Salir A continuación dar doble click sobre el control CmdAceptar y proceda a ingresar el código que se muestra: Objeto: CmdAceptar nX = Thisform.-Verdadero CmdLimpiar \<Limpiar CmdSalir .nA nB = 1000 * nX If nA > nB Then nMay = nA Else nMay = nB EndIf Thisform.

Refresh De manera análoga ingresar el siguiente código para el control CmdLimpiar: Objeto: CmdLimpiar Thisform. Para ello ingrese lo siguiente en la Ventana de Comandos: Do Form FrmAplica01 Debe funcionar sin problemas. Aplicación Nº 2 En calcular este la ejercicio edad de una vamos a crear a un formulario de su para de persona partir fecha nacimiento.TxtX. Procedimiento: Click Procedimiento: Click luego proceda a ejecutarla. Omar Valdovinos Cruz Pág.Value = 0 Thisform.Refresh Finalmente proceder a ingresar el siguiente código para el control CmdSalir: Objeto: CmdSalir Release Thisform A continuación guarde su aplicación como FrmAplica01. 13 .Value = 0 Thisform.TxtMay.TxtX. Pruebe ingresando diferentes valores. En caso que falle revise y corrija.Setfocus Thisform.Thisform.

Form1 Name Caption MaxButton MinButton Label1 Name Caption Label2 Name Caption Text1 Omar Valdovinos Cruz Pág.F.-Falso .-Falso FrmEdad proceda a establecer las propiedades según se indica a continuación: . proceda a ubicar los siguientes controles en el formulario: 2 etiquetas 2 cajas de texto 3 botones de comando Luego.F.Para el desarrollo de esta aplicación. 14 LblEdad Su edad es: LblFecNac Fecha de nacimiento: .

F. 4) cFecha = cNomDia + ³ ´ + cDia + ³ de ´ + cMes + ³ del ´ + cAnno Omar Valdovinos Cruz Pág.T. proceda a ingresar el siguiente código: Objeto: FrmEdad Set Date French Set Century On Objeto: FrmEdad cNomDia = Cdow(Date()) cDia = Str(Day(Date()).-Verdadero TxtEdad .Name Enabled Text2 Name Enabled Command1 Name Caption Command2 Name Caption Command3 Name Caption TxtFecNac .-Falso CmdAceptar \<Aceptar CmdLimpiar \<Limpiar CmdSalir \<Salir Luego de establecidas las propiedades de los controles. 15 Procedimiento: Init Procedimiento: Load . 2) cMes = Cmonth(Date()) cAnno = Str(Year(Date()).

Refresh Objeto: CmdAceptar Procedimiento: Click dFecNac = Ctod(Thisform.Refresh Objeto: CmdSalir Release Thisform Aplicación Nº 3 Este ejercicio consiste en elaborar un formulario que simule el funcionamiento de un reloj despertador digital. El diseño de la interfaz debe ser similar a la figura siguiente: Procedimiento: Click Procedimiento: Click Omar Valdovinos Cruz Pág.dFecNac) / 365) Thisform.TxtEdad.TxtFecNac.TxtFecNac.Value = Str(nEdad) + ³ años´ Thisform. 16 .Setfocus Thisform.TxtFecNac.Refresh Objeto: CmdLimpiar Thisform.Thisform.Value = ³´ Thisform. La aplicación debe permitir al usuario ingresar la hora a la que desea ser avisado.Setfocus Thisform.Caption = cFecha Thisform.TxtFecNac.TxtEdad.Value = ³´ Thisform.Value) nEdad = Int ((Date() .

17 LblHora Hora FrmReloj Reloj despertador digital .F.-Falso .-Falso .F.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 En seguida establezca las propiedades según se indica a continuación: Form1 Name Caption MaxButton MinButton Label1 Name Caption Label2 Name Omar Valdovinos Cruz LblDespertador Pág.

-Verdadero 24 TxtDespertador .T. 18 .-Verdadero 24 Timer1 .-Verdadero \<Terminar Una vez establecidas las propiedades.-Verdadero CmdTerminar .T.T.Caption Text1 Name FontBold FontSize Text2 Name FontBold FontSize Timer1 Name Enabled Interval Command1 Name Caption Default Command2 Name Cancel Caption Despertador TxtHora . proceda a ingresar el código que se muestra: Objeto: FrmReloj Procedimiento: Load Omar Valdovinos Cruz Pág.-Verdadero 500 CmdOnOff \<Desactivar .T.T.

Public lOnOff Objeto: FrmReloj lOnOff = .Refresh Objeto: CmdOnOff If lOnOff Then lOnOff = .CmdOnOff. Thisform. Thisform.Caption = ³\<Activar´ Else lOnOff = .Value = ³00:00:00´ Thisform.CmdOnOff.TxtHora.TxtDespertador.T.Refresh Objeto: CmdTerminar Release Thisform Omar Valdovinos Cruz Pág.TxtDespertador.Value != Time() Then Thisform.F.Value = Time() EndIf If (Thisform.Refresh Objeto: Timer1 Procedimiento: Timer Procedimiento: Init If Thisform.F. Thisform.Caption = ³\<Desactivar´ EndIf Thisform.TxtHora.Value < Time()) And lOnOff Then * Sonido acústico ?Chr(7) EndIf Thisform. 19 Procedimiento: Click Procedimiento: Click .

00. 20. para 10.00. lo cual dispone S/. no debe aceptar la lectura de valores que no cumplan esta condición). S/. El diseño de la interfaz debe ser similar a la siguiente figura: Omar Valdovinos Cruz Pág.00.00. 100.00 y S/.Aplicación Nº 4 Se tiene un cajero automático el cual permite manipular cierta cantidad de dinero S/. 20 . 50. Elaborar una aplicación que permita la lectura de la cantidad a retirar la cual debe ser múltiplo de 10 (caso contrario debe solicitar al usuario que ingrese un valor correcto. La aplicación debe indicar el menor número de billetes a utilizar. de los siguientes billetes: S/. 200.

Esto es. deberá crear una carpeta C:\FundVFP\Lab3.Microsoft GUÍA DE LABORATORIO Nº 3 Objetivos Visual FoxPro Luego de completar este laboratorio. y Identificar y utilizar los controles estándar adicionales. y Utilizar mensajes. que halle la fracción irreductible equivalente. el estudiante será capaz de: y Manejar las diferentes propiedades y métodos del conjunto de formularios. Consideraciones Para el desarrollo del presente laboratorio Ud. Aplicación Nº 1 El ejercicio consiste en crear una aplicación que permita leer una fracción y de como resultado la fracción simplificada. para guardar sus trabajos correspondientes a este laboratorio. 21 . cajas de diálogo predefinidas para visualizar Omar Valdovinos Cruz Pág.

pues no se apreciará y nada elija en la especial).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. opción Nuevamente nuevo vaya al Menú El Formulario formulario. Agregar Diseñador de formularios debe presentar una apariencia similar a la figura mostrada: Omar Valdovinos Cruz Pág. 22 .

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 Form1 Name Caption MaxButton MinButton Label1 Name Caption Label2 Name Caption Text1 Name Value Text2 Name Value TxtDenominador 0 TxtNumerador 0 LblDenominador Denominador? LblNumerador Numerador? FrmIngreso Ingreso de datos .-Falso debe establecer las propiedades de los objetos según se indica: Omar Valdovinos Cruz Pág.F.F. 23 .-Falso .

-Verdadero A continuación proceda a ingresar el código que se muestra: Objeto: CmdSimplificar Procedimiento: Click nNumerador = Thisformset.FrmIngreso.-Verdadero Salir CmdSimplificar Simplificar .Show Thisformset.Value If nNumerador < nDenominador Then nC = nNumerador Else nC = nDenominador EndIf Do While (nNumerador % nC != 0) Or (nDenominador % nC != 0) nC = nC .TxtDenominador.1 EndDo nNumerador = nNumerador / nC nDenominador = nDenominador / nC Thisformset.Hide Thisformset.Refresh Omar Valdovinos Cruz Pág.T.T.Value nDenominador = Thisformset. 24 .Command1 Name Caption Default Command2 Name Cancel Caption CmdSalir .FrmSalida.FrmIngreso.TxtNumerador.FrmIngreso.

F. 25 .-Falso .-Falso Omar Valdovinos Cruz Pág.Objeto: CmdSalir Release Thisformset Procedimiento: Click Luego proceda a ubicar los siguientes controles sobre el segundo formulario (Form2): 1 etiqueta 1 caja de texto 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 CmdVolver Volver TxtFraccion 2-Centro LblFraccion Fracción simplificada: FrmSalida Salida .F.

FrmIngreso. 26 Procedimiento: Init Procedimiento: Load Procedimiento: Click Procedimiento: Activate . aaaa) y las visualice del modo usual.A continuación proceda a ingresar el código que se muestra: Objeto: FrmSalida cNumerador = Str(nNumerador) cDenominador = Str(nDenominador) cFraccion = cNumerador + ³ / ´ + cDenominador Thisformset.Show Thisformset. A manera de ejemplo considere lo siguiente: Omar Valdovinos Cruz Pág.Refresh Finalmente proceda a ingresar el código que se indica a continuación: Objeto: Formset1 Public nNumerador Public nDenominador Public nC Objeto: Formset1 Thisformset.Hide Thisformset.Value = cFraccion Thisformset.TxtFraccion. mm.FrmSalida.FrmSalida.Refresh Objeto: CmdVolver Thisformset.FrmSalida.Hide Thisformset.Refresh Aplicación Nº 2 Este ejercicio consiste en elaborar una aplicación que acepte fechas como tres números (dd.

se elija debe la opción es decir Si.Cuando el usuario haga click en el botón Salir o en el botón Cerrar de la barra de título del formulario. tal como se observa en la figura siguiente: En usuario caso elige de la que el usuario Caso No. debe terminar. 27 . proseguir Para el desarrollo de esta aplicación. opción contrario. si con la el la aplicación aplicación. proceda a ubicar los siguientes controles en el formulario: 4 etiquetas 3 controles numéricos Omar Valdovinos Cruz Pág. se debe confirmar si desea terminar la aplicación.

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 Label4 Name AutoSize Caption LblEnLetras .-Verdadero Mes: LblDia .T.F.T.F.T.-Verdadero Año: LblMes . 28 .-Verdadero En letras: LblAnno .T.-Falso Omar Valdovinos Cruz Pág.-Falso .-Verdadero Día: FrmFecha Fecha en letras .

T.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 CmdSalir .T.-Verdadero TxtEnLetras 2-Centro SpnAnno 9999 0 SpnMes 12 1 SpnDia 31 1 Omar Valdovinos Cruz .-Verdadero \<Salir Pág. 29 CmdLimpiar \<Limpiar CmdAceptar \<Aceptar .

³Pregunta´) = vfpYes Then Release Thisform Else NoDefault EndIf Objeto: CmdAceptar cBarra = ³/´ cFecha = Thisform. 4) cFecha = cNomDia + ³ ´ + cDia + ³ de ´ + cMes + ³ de ´ + cAnno Omar Valdovinos Cruz Pág. vfpQuestion + vfpYesNo. + cBarra + Thisform. 2) cMes = Cmonth(dFecha) cAnno = Str(Year(dFecha).Text + cBarra + Thisform.SpnDia.Una vez establecidas las propiedades proceda a ingresar el código que se indica a continuación: Objeto: FrmFecha Set Date French Set Century On Objeto: FrmFecha #DEFINE vfpYesNo #DEFINE vfpYes 4 6 Procedimiento: QueryUnload Procedimiento: Load #DEFINE vfpQuestion 32 If MessageBox(³¿Desea terminar la aplicación?´.Text . 30 Procedimiento: Click .SpnAnno.Text dFecha = Ctod(cFecha) cNomDia = Cdow(dFecha) cDia = Str(Day(dFecha). .SpnMes.

TxtEnLetras.Setfocus Thisform.Refresh Objeto: CmdLimpiar Thisform.Value = cFecha Thisform.TxtEnLetras.Refresh Objeto: CmdSalir Thisform. escribir texto en líneas diferentes.Value = ³´ Thisform.SpnDia. de el Procedimiento: Click Procedimiento: Click multiplicar.Thisform. Omar Valdovinos Cruz Pág. 31 .Value = 0 Thisform.Value = 0 Thisform.SpnAnno. Para construir la tabla de multiplicar vamos a control similares cuadro a un cual pero tiene permite propiedades texto.Value = 0 Thisform.SpnDia.QueryUnload Aplicación Nº 3 Este permita utilizar ejercicio leer un un consiste en elaborar y un formulario su tabla que se número entero de cuadro visualice edición.SpnMes.

32 .-Falso . 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 LblNumero Ingrese un número: FrmTabla Tabla de multiplicar .F.Para el desarrollo de esta aplicación.-Falso Omar Valdovinos Cruz Pág.F.

Text1 Name Alignment Edit1 Name ScrollBars Command1 Name Caption Default CmdLimpiar \<Limpiar .T. 33 Procedimiento: Click .TxtNumero.EdtTabla.Refresh Objeto: CmdLimpiar Thisform.Value = cS Thisform.Value) cS = ³´ For nI = 0 To 12 nP = nN * nI cS = cS + Str(nN) + ³ * ´ + Str(nI) + ³ = ´ + Str(nP) . proceda a ingresar el código que se indica a continuación: Objeto: TxtNumero Procedimiento: InteractiveChange nN = Val(Thisform. + Chr(13) Next Thisform.Value = ³´ Omar Valdovinos Cruz Pág.-Verdadero EdtTabla 2-Vertical TxtNumero 2-Centro Una vez diseñada la interfaz.TxtNumero.

Value = ³´ Thisform.EdtTabla.Refresh Aplicación Nº 4 Elaborar una aplicación que acepte como entrada la reserva de agua de un depósito y los litros que se consumen a la semana. La aplicación debe dar como resultado las cantidades de agua que quedan al final de cada semana. El diseño de la interfaz debe ser similar a la figura mostrada: Omar Valdovinos Cruz Pág. El proceso finalizará cuando no quede agua suficiente para una semana. 34 . Utilizar otro formulario para mostrar la salida.Thisform.

el estilo. y Establecer las principales propiedades y métodos de las listas desplegables y cuadros combinados. 35 . El usuario debe elegir el tipo de fuente a utilizar. El diseño de la interfaz debe ser similar a: Omar Valdovinos Cruz Pág. el estudiante será capaz de: y Usar casillas de verificación y botones de opción para alternar entre uno o más valores.Microsoft GUÍA DE LABORATORIO Nº 4 Objetivos Visual FoxPro Luego de completar este laboratorio. deberá crear una carpeta C:\FundVFP\Lab4. Aplicación Nº 1 Este ejercicio consiste en elaborar una aplicación que permita cambiar el aspecto de una caja de texto. para guardar sus trabajos correspondientes a este laboratorio. Consideraciones Para el desarrollo del presente laboratorio Ud. el color y el tamaño.

-Falso . 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 FrmEditor .Para el desarrollo de esta aplicación.F.F.T.-Falso Omar Valdovinos Cruz Pág.-Verdadero Editor . 36 .

Name Caption LblTexto Texto Label2 Name Caption LblFuente Fuente Label3 Name Caption Label4 Name Caption Label5 Name Caption Combo1 Name List1 Name Text1 Name ForeColor Check1 Name Caption ChkNegrita Negrita Pág. 37 TxtTexto 255. 0 LstTamaño CboFuente LblColor Color LblEstilo Estilo LblTamaño Tamaño Omar Valdovinos Cruz . 0.

0 3 Omar Valdovinos Cruz .T. 255 OptVerde 0.T. 0 OptRojo 255.-Verdadero ChkCursiva Cursiva .-Verdadero Pág. 0.T. 0.T.-Verdadero OptionGroup1 ButtonCount Option1 Name ForeColor Option2 Name ForeColor Option3 Name ForeColor Command1 Name Caption Default CmdSalir \<Salir .-Verdadero ChkSubrayado Subrayado . 38 OptAzul 0. 255.FontBold Check2 Name Caption FontItalic Check3 Name Caption FontUnderline .

CboFuente.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(³Courier New´) Thisform.AddItem(³Garamond´) Thisform. .CboFuente. vfpQuestion + vfpYesNo.AddItem(Alltrim(Str(nI))) Next Objeto: FrmEditor #DEFINE vfpYesNo #DEFINE vfpYes 4 6 Procedimiento: QueryUnload #DEFINE vfpQuestion 32 If MessageBox(³¿Desea terminar la aplicación?´.CboFuente.LstTamaño.AddItem(³MS Sans Serif´) Thisform.AddItem(³Impact´) Thisform. 39 .AddItem(³Arial Black´) Thisform.CboFuente.AddItem(³Technical´) Thisform.AddItem(³Times New Roman´) For nI = 8 To 20 Step 2 Thisform.CboFuente.CboFuente.CboFuente.AddItem(³Arial´) Thisform. ³Pregunta´) = vfpYes Then Release Thisform Else NoDefault EndIf Objeto: CboFuente Procedimiento: Click Omar Valdovinos Cruz Pág.

TxtTexto.Refresh Objeto: ChkSubrayado Procedimiento: Click If Thisform.Value = 1 Then Thisform.FontUnderline = . EndIf Thisform. 40 .Value = 1 Then Thisform.TxtTexto.Value Thisform. Else Thisform.Thisform.T.ChkCursiva.FontName = Thisform.ChkNegrita.Refresh Objeto: ChkCursiva Procedimiento: Click If Thisform.Refresh Objeto: ChkNegrita Procedimiento: Click If Thisform. EndIf Omar Valdovinos Cruz Pág.T.F.Value = 1 Then Thisform.TxtTexto.FontSize = nTamaño Thisform.TxtTexto.TxtTexto.FontItalic = .FontItalic = .TxtTexto.F.TxtTexto.TxtTexto.ChkSubrayado.F.Value) Thisform.LstTamaño.T. Else Thisform.FontBold = . EndIf Thisform.CboFuente. Else Thisform.FontUnderline = .Refresh Objeto: LstTamaño Procedimiento: Click nTamaño = Val(Thisform.FontBold = .

0.Refresh Objeto: OptAzul Procedimiento: Click Thisform.Thisform. 0.Refresh Objeto: OptVerde Procedimiento: Click Thisform.TxtTexto. 0) Thisform. el cual pasa a formar parte de una lista de espera antes de ser programado para su dictado.Refresh Objeto: OptRojo Procedimiento: Click Thisform. 255) Thisform. 255. Los cursos deben ser seleccionados de la lista de espera y trasladados a la lista de cursos programados y viceversa.ForeColor = RGB(255. 0) Thisform. 41 . El diseño de la interfaz debe ser similar a la figura mostrada: Procedimiento: Click Omar Valdovinos Cruz Pág.ForeColor = RGB(0.Refresh Objeto: CmdSalir Thisform.QueryUnload Aplicación Nº 2 Este ejercicio consiste en desarrollar una aplicación que permita ingresar el nombre de un curso.ForeColor = RGB(0.TxtTexto.TxtTexto.

-Falso .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 Pág.-Falso Omar Valdovinos Cruz .F. 42 FrmCursos Cursos .F.

43 C:\FundVFP\Bitmaps\AddAll.Name Caption Label2 Name Caption Label3 Name Caption Text1 Name List1 Name List2 Name Command1 Name Caption Picture LblCurso Ingrese nuevo curso: LblSeleccionar Seleccione un curso: LblProgramado Curso programado: TxtCurso LstSeleccionar LstProgramado CmdAgregar C:\FundVFP\Bitmaps\AddItem.Bmp Command2 Name Caption Picture Command3 Omar Valdovinos Cruz Pág.Bmp CmdAgregarTodo .

Omar Valdovinos Cruz Pág.Name Caption Picture Command4 Name Caption Picture Command5 Name Caption CmdQuitar C:\FundVFP\Bitmaps\Remove.CmdAgregarTodo.T.T.Bmp CmdQuitarTodo C:\FundVFP\Bitmaps\RemoveAll.SetFocus Objeto: LstSeleccionar Procedimiento: Click If Thisform. 44 .Enabled = .CmdQuitarTodo.T.Enabled = .Value) Thisform.CmdAgregar. EndIf Thisform. Thisform.LstProgramado.CmdQuitar.ListIndex != 0 Then Thisform.Value = ³´ Thisform.TxtCurso. Thisform.LstSeleccionar.Enabled = .Additem(Thisform.LstSeleccionar.Enabled = .TxtCurso.T.ListIndex != 0 Then Thisform.Bmp CmdAnnadir \<Añadir En seguida proceda a ingresar el código que se indica: Objeto: CmdAnnadir Procedimiento: Click Thisform.Refresh Objeto: LstProgramado Procedimiento: Click If Thisform.TxtCurso.

LstSeleccionar.LstProgramado. Thisform.Enabled = .CmdQuitarTodo. 45 .Refresh Objeto: CmdAgregarTodo Procedimiento: Click For nI = 1 To Thisform.AddItem(cCurso) Thisform.LstProgramado. Omar Valdovinos Cruz Pág.Refresh Objeto: CmdQuitar Procedimiento: Click cCurso = Thisform.CmdQuitar.RemoveItem(nCurso) Thisform.LstSeleccionar.CmdAgregarTodo.ListIndex If Thisform.LstSeleccionar.LstProgramado.Enabled = . EndIf Thisform.Enabled = .ListCount > 0 Then Thisform.AddItem.CmdAgregar.EndIf Thisform.LstProgramado.LstProgramado.Value nCurso = Thisform.F.ListIndex If Thisform.LstSeleccionar.AddItem(cCurso) Thisform.LstProgramado.ListIndex = 0 Thisform.Value nCurso = Thisform.ListIndex = 0 Thisform.F. EndIf Thisform.ListCount Thisform.LstSeleccionar.RemoveItem(nCurso) Thisform. Thisform.ListCount > 0 Then Thisform.LstSeleccionar.Enabled = .Refresh Objeto: CmdAgregar Procedimiento: Click cCurso = Thisform.LstProgramado.LstSeleccionar.F.F.

F.LstProgramado. vfpQuestion + vfpYesNo.F. 46 .CmdAgregarTodo.Enabled = . ³Pregunta´) = vfpYes Then Release Thisform Else NoDefault EndIf Aplicación Nº 3 Omar Valdovinos Cruz Pág.Refresh Objeto: FrmCursos #DEFINE vfpYesNo #DEFINE vfpYes 4 6 Procedimiento: QueryUnload #DEFINE vfpQuestion 32 If MessageBox(³¿Desea terminar la aplicación?´. Thisform.Enabled = .(Thisform. Thisform.List(nI)) Next Thisform.List(nI)) Next Thisform.LstProgramado.Refresh Objeto: CmdQuitarTodo Procedimiento: Click For nI = 1 To Thisform.AddItem. . (Thisform.ListCount Thisform.LstProgramado.Enabled = . Thisform.F.LstSeleccionar.Enabled = .F.Clear Thisform.CmdQuitarTodo. Thisform.CmdQuitar.CmdAgregar.LstSeleccionar.Clear Thisform.LstSeleccionar.

47 . y a continuación los visualice ordenados en forma ascendente o descendente.-Falso .F. Para el desarrollo de esta aplicación.-Falso Omar Valdovinos Cruz Pág.F.El ejercicio consiste en elaborar una aplicación que permita leer n números de tipo entero. Utilice el método de la burbuja para realizar la ordenació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 FrmBurbuja Ordenación por burbuja .

48 .Label1 Name Caption LblNumero Ingrese un nuevo número: Label2 Name Caption LblOrden Orden: Label3 Name Caption LblLista Lista de números: Text1 Name Value List1 Name Option1 Nombre Caption OptAscendente Ascendente LstNumero TxtNumero 0 Option2 Nombre Caption OptDescendente Descendente Command1 Nombre Omar Valdovinos Cruz CmdAnnadir Pág.

vfpQuestion + vfpYesNo. ³Pregunta´) = vfpYes Then Release Thisform Else NoDefault EndIf Objeto: CmdAnnadir Omar Valdovinos Cruz Procedimiento: Click Pág. .Caption Default \<Añadir True Command2 Nombre Caption Command3 Nombre Cancel Caption Picture CmdSalir .ico CmdOrdenar \<Ordenar Una vez establecidas las propiedades proceda a ingresar el código que se indica a continuación: Objeto: FrmBurbuja #DEFINE vfpYesNo #DEFINE vfpYes 4 6 Procedimiento: QueryUnload #DEFINE vfpQuestion 32 If MessageBox(³¿Desea terminar la aplicación?´.T. 49 .-Verdadero \<Salir C:\Archivos de programa\Microsoft Visual Studio\Common\Graphics\Icons\Arrows\ Point04.

List(nI) Next If Thisform.Value = 1 Then For nI = 1 To nN .OptionGroup1.LstNumero.Value = 1 Then For nI = 1 To nN .TxtNumero.OptAscendente.ListCount Dimension nA(nN) As Integer For nI = 1 To nN nA(nI) = Thisform. 50 .LstNumero.Value) Thisform.OptDescendente.Value = ³´ Thisform.LstNumero.AddItem(Thisform.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 Omar Valdovinos Cruz Pág.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.Thisform.SetFocus Objeto: CmdOrdenar Procedimiento: Click nN = Thisform.TxtNumero.OptionGroup1.TxtNumero.

Next EndIf Thisform. El usuario debe seleccionar un curso y en seguida se debe presentar el nombre del profesor encargado del curso (teoría).List(nI) = nA(nI) Next Objeto: CmdSalir Thisform. el nombre del jefe de práctica (laboratorio). El diseño de la interfaz debe ser similar a la figura que se muestra: Procedimiento: Click Omar Valdovinos Cruz Pág.LstNumero.Clear For nI = 1 To nN Thisform. 51 .QueryUnload Aplicación Nº 4 Desarrollar una aplicación que permita realizar consultas acerca de un determinado curso.LstNumero. respectivamente. así como los horarios de teoría y de laboratorio. los cuales se mostraran en una lista.

52 . y Pasar correctamente los argumentos a un método. y Ejecutar métodos desde un formulario. Omar Valdovinos Cruz Pág.Microsoft GUÍA DE LABORATORIO Nº 5 Objetivos Visual FoxPro Luego de completar este laboratorio. el estudiante será capaz de: y Crear métodos definidos por el usuario. y Implementar métodos que devuelvan múltiples valores.

para guardar sus trabajos correspondientes a este laboratorio. Para el desarrollo de esta aplicación. Por ejemplo si se ingresa la cadena CORAZON deberá retornar NOZAROC. 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 FrmPrueba_Cadena Cadena invertida Omar Valdovinos Cruz Pág. 53 . deberá crear una carpeta C:\FundVFP\Lab5.Consideraciones Para el desarrollo del presente laboratorio Ud. 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.

-Falso TxtCadena .T.T.-Falso LblCadena Ingrese una cadena: Label2 Nombre Caption LblInvertida Cadena invertida: Text1 Nombre Enabled Text2 Nombre Enabled TxtInvertida .-Verdadero Command1 Nombre Caption Default Command2 Nombre Caption Command3 Nombre Omar Valdovinos Cruz CmdSalir Pág.F. 54 CmdLimpiar \<Limpiar CmdAceptar \<Aceptar .F.-Verdadero .-Falso .MaxButton MinButton Label1 Nombre Caption .F.

Para ello vaya al Menú Formulario y elija la opción Crear nuevo método. 55 Procedimiento: CadInvertida . dar doble click sobre el formulario y transcriba el siguiente código: Objeto: FrmPrueba_Cadena Parameters cCadena nN = Len(Alltrim(cCadena)) Dimension cTemporal(nN) For nI = 1 To nN cTemporal(nI) = SubStr(cCadena.Cancel Caption . 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. 1) Next cCadena = ³´ For nJ = nN To 1 Step -1 Omar Valdovinos Cruz Pág. denominado CadInvertida.T. proceda a crear un nuevo método. nI.-Verdadero \<Salir Una vez establecidas las propiedades de la interfaz. Luego.

56 Procedimiento: NomApe .TxtCadena.TxtInvertida.Value Thisform.Value = Thisform.cInvertida = cInvertida + cTemporal(nJ) Next Return cInvertida Objeto: CmdAceptar Procedimiento: Click cCadena = 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. Luego transcriba el siguiente código: Objeto: FrmPrueba_NomApe Parameters cApeNom nN = Len(Alltrim(cApeNom)) Dimension cNom(nN) Omar Valdovinos Cruz Pág. Para el desarrollo de esta aplicación proceda a crear un nuevo método denominado NomApe.

Omar Valdovinos Cruz Pág. 57 . A continuación se deja enfriar la muestra y se pesa nuevamente ( m2 ).´ Then Exit EndIf Next cApe = SubStr(cApeNom. 1) = ³. nI-1) cNom = SubStr(cApeNom. luego se le lleva a la estufa de 120 a 150 ºC por un tiempo de 2 horas aproximadamente. nI + 1.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 ). 1. Finalmente se realiza el siguiente cálculo: ¨ m  m2 % Humedad ! 100 © 1 © m 1 ª ¸ ¹ ¹ º Nuestro trabajo consiste en crear un método que permita realizar el cálculo anterior.Dimension cApe(nN) For nI = 1 To nN If SubStr(cApeNom. nI. nN .

Value = Str(nHumedad. 4) Thisform. Luego ingrese el siguiente código: Objeto: FrmPrueba_Humedad Parameters nM1. 58 . 10. nM2 nH = 100 * (nM1 .TxtMasa2.Humedad(nMasa1.Value) nHumedad = Thisform.TxtMasa1.TxtHumedad.Para el desarrollo de esta aplicación proceder a cera un nuevo método denominado Humedad.nM2) / nM1 Return nH Objeto: CmdAceptar Procedimiento: Click Procedimiento: Humedad nMasa1 = Val(Thisform. nMasa2) Thisform. el día de nacimiento y la cantidad de días vividos hasta la fecha Omar Valdovinos Cruz Pág.Value) nMasa2 = Val(Thisform. Debe retornar el signo zodiacal.Refresh Aplicación Nº 4 Escriba un método que reciba como parámetro la fecha de nacimiento del usuario.

Utilice un formulario de prueba para verificar la funcionalidad del método creado. A manera de ejemplo considere lo siguiente: cRpta = cZodiaco + cDiaNacimiento + cDiasVividos + cFechaHoy Return cRpta Fin del Nivel I Suerte Próximamente Nivel II : Programación de aplicaciones de escritorio Nivel III : Programación de aplicaciones Cliente-Servidor Omar Valdovinos Cruz Pág. 59 . Sugerencia Retorne un único valor como una cadena de caracteres. en la cual estén incluidos los valores que se piden.actual.

Sign up to vote on this title
UsefulNot useful