guía de vfp nivel 1

56
 E lab orad o p or C arlos Cas ti llo Peralt a  cc_peralta @hotmail.com  Pág. 1  M I C R OSOF T V I SU A L F OXP R O NIVEL I   I NTRODUCCI ÓN A LA PROGRAMACI ÓN   Elaborado por CARLOS CASTI LLO PER ALTA cc_peralta@hotmail.com 

Upload: islasivan21

Post on 06-Oct-2015

35 views

Category:

Documents


0 download

DESCRIPTION

lribo

TRANSCRIPT

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 1

    MICROSOFT VISUAL FOXPRO

    NIVEL I

    INTRODUCCIN A LA PROGRAMACIN

    Elaborado por

    CARLOS CASTILLO PERALTA

    [email protected]

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 2

    INTRODUCCIN

    La presente Gua de Laboratorio, se elabor con la

    finalidad de complementar la parte terica con la parte

    prctica del curso. Contiene una gran variedad de ejemplos

    prcticos recopilados a lo largo de varios aos como docente y

    programador en diversas instituciones.

    Si desean compartirla con otros colegas, me agradara

    mucho que lo hicieran, con la nica condicin de que siempre se

    respete el derecho del autor.

    Desde ya les deseo la mejor de las suertes en el

    aprendizaje de Microsoft Visual FoxPro.

    Lima, Abril del 2001

    Carlos Castillo Peralta

    Profesor de

    Lenguajes de Programacin

    Microsoft Visual FoxPro

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 3

    GUA DE LABORATORIO N 1

    Objetivos

    Luego de completar este laboratorio, el estudiante ser

    capaz de:

    Identificar los elementos del entorno integrado de

    desarrollo de Microsoft Visual FoxPro 6.0.

    Implementar soluciones mediante programacin clsica.

    Declarar y asignar valores tanto a las variables de memoria

    como a los arreglos.

    Analizar como es el flujo de control de un programa.

    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.

    Aplicacin N 1

    En este primer ejercicio vamos a escribir un programa que

    lea tres nmeros enteros y determine el nmero mayor, el nmero

    central y el nmero menor. Debemos asumir que los tres nmeros

    son siempre distintos.

    Para el desarrollo de la presente aplicacin ingresar a

    Microsoft Visual FoxPro. En la Ventana de Comandos digite la

    siguiente orden:

    Modify Command Aplica01

    A continuacin se debe presentar el Editor de programas.

    En dicha ventana proceda a ingresar el cdigo que se indica:

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 4

    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 = + Str(nMay)

    ? Central = + Str(nCen)

    ? Menor = + Str(nMen)

    Para ejecutar su programa dar click en el botn Ejecutar

    ( ! ) de la Barra de herramientas Estndar.

    Para volver a ejecutar su programa digitar la siguiente

    orden desde la Ventana de Comandos:

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 5

    Do Aplica01

    Aplicacin N 2

    Un restaurante ofrece un descuento del 10% para consumos

    entre S/. 30.00 y S/. 50.00; un descuento del 20% para

    consumos mayores a S/. 50.00 nuevos soles; para todos los dems

    casos no se aplica ningn tipo de descuento. El ejercicio

    consiste en elaborar una programa que permita determinar el

    importe a pagar por el consumidor.

    Para el desarrollo de la presente aplicacin abrir una

    nueva ventana de edicin e ingresar el siguiente cdigo:

    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.8

    Otherwise

    nImporte = nConsumo

    EndCase

    ? Importe a pagar S/. + Str(nImporte)

    Aplicacin N 3

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 6

    El ejercicio consiste en escribir un programa que lea n

    enteros y calcule la suma total, la media aritmtica, el mximo

    y el mnimo de los datos.

    Para el desarrollo de la presente aplicacin, de manera

    anloga que para los casos anteriores abrir una nueva ventana

    de edicin e ingresar el siguiente cdigo:

    Close All

    Clear

    Input Ingrese cantidad de nmeros? To nN

    Declare aVector(nN)

    For nI = 1 To nN

    Input Nmero [ + 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, 2)

    ? Mximo= + Str(nMax)

    ? Mnimo= + Str(nMin)

    Aplicacin N 4

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 7

    A continuacin vamos a escribir una funcin que reciba

    como argumento de entrada 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 aplicacin proceda de manera

    similar a los casos anteriores e ingresar el cdigo 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, nI, 1)

    Next

    cInvertida =

    For nJ = nN To 1 Step -1

    cInvertida = cInvertida + cTemporal(nJ)

    Next J

    Return cInvertida

    Aplicacin 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:

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 8

    Creo que a estas alturas Ud. ya entendi como funciona

    esto. Por ello, esta aplicacin se deja como ejercicio para el

    estudiante.

    ABRIL

    D L M M J V S

    1 2 3 4 5 6 7

    8 9 10 11 12 13 14

    15 16 17 18 19 20 21

    22 23 24 25 26 27 28

    29 30

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 9

    Microsoft Visual FoxPro

    GUA DE LABORATORIO N 2

    Objetivos

    Luego de completar este laboratorio, el estudiante ser

    capaz de:

    Implementar soluciones mediante programacin orientada a

    objetos.

    Manejar las diferentes propiedades y eventos del formulario.

    Aadir controles a un formulario.

    Establecer las propiedades de los controles.

    Trabajar con procedimientos de eventos.

    Consideraciones

    Para el desarrollo del presente laboratorio Ud. deber

    crear una carpeta C:\FundVFP\Lab2, para guardar sus trabajos

    correspondientes a este laboratorio.

    Aplicacin N 1

    El ejercicio consiste en elaborar una aplicacin que

    permita leer un nmero real de la forma eee.ddd e imprima el

    mayor valor entre la parte entera y la parte decimal.

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 10

    Para el desarrollo de esta aplicacin, en primer lugar

    debe crear un nuevo formulario. Para ello digite lo siguiente

    en la Ventana de Comandos:

    Create Form

    A continuacin seleccione del Men Ver, la opcin Barra de

    herramientas Controles de Formularios. 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

    Para ubicar un control en el formulario, simplemente dar

    click en el control deseado y luego dar click en el formulario

    en la posicin que se le desea ubicar. Adicionalmente puede

    utilizar la barra de herramientas Diseo para obtener una mejor

    presentacin.

    A continuacin proceda a establecer las propiedades de los

    objetos segn se indica, para ello dar click derecho sobre el

    control y del men emergente que se presenta elegir la opcin

    Propiedades.

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 11

    Form1

    Name FrmAplica01

    Caption Mayor valor de un nmero real

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

    Name LblX

    Caption Ingrese un real de la forma eee.ddd?

    Label2

    Name LblMay

    Caption Mayor:

    Text1

    Name TxtX

    InputMask 999.999

    Value 0

    Text2

    Name TxtMay

    InputMask 999

    Value 0

    Command1

    Name CmdAceptar

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 12

    Name CmdSalir

    Cancel .T.-Verdadero

    Caption \ nB Then

    nMay = nA

    Else

    nMay = nB

    EndIf

    Thisform.TxtMay.Value = nMay

    Thisform.Refresh

    De manera anloga ingresar el siguiente cdigo para el

    control CmdLimpiar:

    Objeto: CmdLimpiar Procedimiento: Click

    Thisform.TxtX.Value = 0

    Thisform.TxtMay.Value = 0

    Thisform.TxtX.Setfocus

    Thisform.Refresh

    Finalmente proceder a ingresar el siguiente cdigo para el

    control CmdSalir:

    Objeto: CmdSalir Procedimiento: Click

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 13

    Release Thisform

    A continuacin guarde su aplicacin como FrmAplica01,

    luego proceda a ejecutarla. Para ello ingrese lo siguiente en

    la Ventana de Comandos:

    Do Form FrmAplica01

    Debe funcionar sin problemas. Pruebe ingresando diferentes

    valores. En caso que falle revise y corrija.

    Aplicacin N 2

    En este ejercicio vamos a crear un formulario para

    calcular la edad de una persona a partir de su fecha de

    nacimiento.

    Para el desarrollo de esta aplicacin, 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 segn se

    indica a continuacin:

    Form1

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 14

    Name FrmEdad

    Caption

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

    Name LblFecNac

    Caption Fecha de nacimiento:

    Label2

    Name LblEdad

    Caption Su edad es:

    Text1

    Name TxtFecNac

    Enabled .T.-Verdadero

    Text2

    Name TxtEdad

    Enabled .F.-Falso

    Command1

    Name CmdAceptar

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 15

    Objeto: FrmEdad Procedimiento: Load

    Set Date French

    Set Century On

    Objeto: FrmEdad Procedimiento: Init

    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

    Objeto: CmdAceptar Procedimiento: Click

    dFecNac = Ctod(Thisform.TxtFecNac.Value)

    nEdad = Int ((Date() - dFecNac) / 365)

    Thisform.TxtEdad.Value = Str(nEdad) + aos

    Thisform.Refresh

    Objeto: CmdLimpiar Procedimiento: Click

    Thisform.TxtFecNac.Value =

    Thisform.TxtEdad.Value =

    Thisform.TxtFecNac.Setfocus

    Thisform.Refresh

    Objeto: CmdSalir Procedimiento: Click

    Release Thisform

    Aplicacin N 3

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 16

    Este ejercicio consiste en elaborar un formulario que

    simule el funcionamiento de un reloj despertador digital. La

    aplicacin debe permitir al usuario ingresar la hora a la que

    desea ser avisado. El diseo de la interfaz debe ser similar a

    la figura siguiente:

    Para el desarrollo de esta aplicacin proceder a ubicar

    los siguientes controles en el formulario:

    2 etiquetas

    2 cajas de texto

    1 cronmetro

    2 botones de comandos

    En seguida establezca las propiedades segn se indica a

    continuacin:

    Form1

    Name FrmReloj

    Caption Reloj despertador digital

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 17

    Name LblHora

    Caption Hora

    Label2

    Name LblDespertador

    Caption Despertador

    Text1

    Name TxtHora

    FontBold .T.-Verdadero

    FontSize 24

    Text2

    Name TxtDespertador

    FontBold .T.-Verdadero

    FontSize 24

    Timer1

    Name Timer1

    Enabled .T.-Verdadero

    Interval 500

    Command1

    Name CmdOnOff

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 18

    Una vez establecidas las propiedades, proceda a ingresar

    el cdigo que se muestra:

    Objeto: FrmReloj Procedimiento: Load

    Public lOnOff

    Objeto: FrmReloj Procedimiento: Init

    lOnOff = .F.

    Thisform.TxtDespertador.Value = 00:00:00

    Thisform.Refresh

    Objeto: Timer1 Procedimiento: Timer

    If Thisform.TxtHora.Value != Time() Then

    Thisform.TxtHora.Value = Time()

    EndIf

    If (Thisform.TxtDespertador.Value < Time()) And lOnOff Then

    * Sonido acstico

    ?Chr(7)

    EndIf

    Thisform.Refresh

    Objeto: CmdOnOff Procedimiento: Click

    If lOnOff Then

    lOnOff = .F.

    Thisform.CmdOnOff.Caption = \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 19

    Objeto: CmdTerminar Procedimiento: Click

    Release Thisform

    Aplicacin N 4

    Se tiene un cajero automtico el cual permite manipular

    cierta cantidad de dinero para lo cual dispone de los

    siguientes billetes: S/. 10.00, S/. 20.00, S/. 50.00,

    S/. 100.00 y S/. 200.00. Elaborar una aplicacin que permita la

    lectura de la cantidad a retirar la cual debe ser mltiplo de

    10 (caso contrario debe solicitar al usuario que ingrese un

    valor correcto, no debe aceptar la lectura de valores que no

    cumplan esta condicin). La aplicacin debe indicar el menor

    nmero de billetes a utilizar. El diseo de la interfaz debe

    ser similar a la siguiente figura:

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 20

    Microsoft Visual FoxPro

    GUA DE LABORATORIO N 3

    Objetivos

    Luego de completar este laboratorio, el estudiante ser

    capaz de:

    Manejar las diferentes propiedades y mtodos del conjunto de

    formularios.

    Identificar y utilizar los controles estndar adicionales.

    Utilizar cajas de dilogo predefinidas para visualizar

    mensajes.

    Consideraciones

    Para el desarrollo del presente laboratorio Ud. deber

    crear una carpeta C:\FundVFP\Lab3, para guardar sus trabajos

    correspondientes a este laboratorio.

    Aplicacin N 1

    El ejercicio consiste en crear una aplicacin que permita

    leer una fraccin y de como resultado la fraccin simplificada.

    Esto es, que halle la fraccin irreductible equivalente.

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 21

    Para el desarrollo de esta aplicacin proceda a crear un

    nuevo formulario y luego vaya al Men Formulario y elija la

    opcin Crear conjunto de formularios (no se preocupe, pues no

    se apreciar nada en especial). Nuevamente vaya al Men

    Formulario y elija la opcin Agregar nuevo formulario. El

    Diseador de formularios debe presentar una apariencia similar

    a la figura mostrada:

    A continuacin 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 segn se indica:

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 22

    Form1

    Name FrmIngreso

    Caption Ingreso de datos

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

    Name LblNumerador

    Caption Numerador?

    Label2

    Name LblDenominador

    Caption Denominador?

    Text1

    Name TxtNumerador

    Value 0

    Text2

    Name TxtDenominador

    Value 0

    Command1

    Name CmdSimplificar

    Caption Simplificar

    Default .T.-Verdadero

    Command2

    Name CmdSalir

    Cancel .T.-Verdadero

    Caption Salir

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 23

    A continuacin proceda a ingresar el cdigo que se

    muestra:

    Objeto: CmdSimplificar Procedimiento: Click

    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

    Objeto: CmdSalir Procedimiento: Click

    Release Thisformset

    Luego proceda a ubicar los siguientes controles sobre el

    segundo formulario (Form2):

    1 etiqueta

    1 caja de texto

    1 botn de comando

    Seguidamente debe establecer las propiedades de los

    objetos segn se indica:

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 24

    Form2

    Name FrmSalida

    Caption Salida

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

    Name LblFraccion

    Caption Fraccin simplificada:

    Text1

    Name TxtFraccion

    Alignment 2-Centro

    Command1

    Name CmdVolver

    Caption Volver

    A continuacin proceda a ingresar el cdigo 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 Procedimiento: Click

    Thisformset.FrmSalida.Hide

    Thisformset.FrmIngreso.Show

    Thisformset.Refresh

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 25

    Finalmente proceda a ingresar el cdigo que se indica a

    continuacin:

    Objeto: Formset1 Procedimiento: Load

    Public nNumerador

    Public nDenominador

    Public nC

    Objeto: Formset1 Procedimiento: Init

    Thisformset.FrmSalida.Hide

    Thisformset.Refresh

    Aplicacin N 2

    Este ejercicio consiste en elaborar una aplicacin que

    acepte fechas como tres nmeros (dd, mm, aaaa) y las visualice

    del modo usual. A manera de ejemplo considere lo siguiente:

    Cuando el usuario haga click en el botn Salir o en el

    botn Cerrar de la barra de ttulo del formulario, se debe

    confirmar si desea terminar la aplicacin, tal como se observa

    en la figura siguiente:

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 26

    En caso de que el usuario elija la opcin Si, la

    aplicacin debe terminar. Caso contrario, es decir si el

    usuario elige la opcin No, se debe proseguir con la

    aplicacin.

    Para el desarrollo de esta aplicacin, proceda a ubicar

    los siguientes controles en el formulario:

    4 etiquetas

    3 controles numricos

    1 caja de texto

    3 botones de comando

    En seguida proceda a establecer las propiedades segn se

    indica:

    Form1

    Name FrmFecha

    Caption Fecha en letras

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

    Name LblDia

    AutoSize .T.-Verdadero

    Caption Da:

    Label2

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 27

    Name LblMes

    AutoSize .T.-Verdadero

    Caption Mes:

    Label3

    Name LblAnno

    AutoSize .T.-Verdadero

    Caption Ao:

    Label4

    Name LblEnLetras

    AutoSize .T.-Verdadero

    Caption En letras:

    Spinner1

    Name SpnDia

    SpinnerHighValue 31

    SpinnerLowValue 1

    Spinner2

    Name SpnMes

    SpinnerHighValue 12

    SpinnerLowValue 1

    Spinner3

    Name SpnAnno

    SpinnerHighValue 9999

    SpinnerLowValue 0

    Text1

    Name TxtEnLetras

    Alignment 2-Centro

    Command1

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 28

    Name CmdAceptar

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 29

    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 Procedimiento: Click

    Thisform.SpnDia.Value = 0

    Thisform.SpnMes.Value = 0

    Thisform.SpnAnno.Value = 0

    Thisform.TxtEnLetras.Value =

    Thisform.SpnDia.Setfocus

    Thisform.Refresh

    Objeto: CmdSalir Procedimiento: Click

    Thisform.QueryUnload

    Aplicacin N 3

    Este ejercicio consiste en elaborar un formulario que

    permita leer un nmero entero y visualice su tabla se

    multiplicar. Para construir la tabla de multiplicar vamos a

    utilizar un control cuadro de edicin, el cual tiene

    propiedades similares a un cuadro de texto, pero permite

    escribir texto en lneas diferentes.

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 30

    Para el desarrollo de esta aplicacin, proceda a ubicar

    los siguientes controles en el formulario:

    1 etiqueta

    1 caja de texto

    1 cuadro de edicin

    1 botn de comandos

    En seguida proceda a establecer las propiedades segn se

    indica:

    Form1

    Name FrmTabla

    Caption Tabla de multiplicar

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

    Name LblNumero

    Caption Ingrese un nmero:

    Text1

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 31

    Name TxtNumero

    Alignment 2-Centro

    Edit1

    Name EdtTabla

    ScrollBars 2-Vertical

    Command1

    Name CmdLimpiar

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 32

    Elaborar una aplicacin que acepte como entrada la reserva

    de agua de un depsito y los litros que se consumen a la

    semana. La aplicacin 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

    formulario para mostrar la salida. El diseo de la interfaz

    debe ser similar a la figura mostrada:

    Microsoft Visual FoxPro

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 33

    GUA DE LABORATORIO N 4

    Objetivos

    Luego de completar este laboratorio, el estudiante ser

    capaz de:

    Usar casillas de verificacin y botones de opcin para

    alternar entre uno o ms valores.

    Establecer las principales propiedades y mtodos de las

    listas desplegables y cuadros combinados.

    Consideraciones

    Para el desarrollo del presente laboratorio Ud. deber

    crear una carpeta C:\FundVFP\Lab4, para guardar sus trabajos

    correspondientes a este laboratorio.

    Aplicacin N 1

    Este ejercicio consiste en elaborar una aplicacin 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 tamao. El diseo de la interfaz debe ser similar a:

    Para el desarrollo de esta aplicacin, proceda a ubicar

    los siguientes controles en el formulario:

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 34

    5 etiquetas

    1 caja de texto

    1 cuadro combinado

    1 lista

    3 casillas de verificacin

    1 grupo de botones de opcin

    1 botn de comando

    En seguida proceda a establecer las propiedades segn se

    indica:

    Form1

    Name FrmEditor

    AutoCenter .T.-Verdadero

    Caption Editor

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

    Name LblTexto

    Caption Texto

    Label2

    Name LblFuente

    Caption Fuente

    Label3

    Name LblTamao

    Caption Tamao

    Label4

    Name LblEstilo

    Caption Estilo

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 35

    Label5

    Name LblColor

    Caption Color

    Combo1

    Name CboFuente

    List1

    Name LstTamao

    Text1

    Name TxtTexto

    ForeColor 255, 0, 0

    Check1

    Name ChkNegrita

    Caption Negrita

    FontBold .T.-Verdadero

    Check2

    Name ChkCursiva

    Caption Cursiva

    FontItalic .T.-Verdadero

    Check3

    Name ChkSubrayado

    Caption Subrayado

    FontUnderline .T.-Verdadero

    OptionGroup1

    ButtonCount 3

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 36

    Option1

    Name OptRojo

    ForeColor 255, 0, 0

    Option2

    Name OptVerde

    ForeColor 0, 255, 0

    Option3

    Name OptAzul

    ForeColor 0, 0, 255

    Command1

    Name CmdSalir

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 37

    Objeto: FrmEditor Procedimiento: QueryUnload

    #DEFINE vfpYesNo 4

    #DEFINE vfpYes 6

    #DEFINE vfpQuestion 32

    If MessageBox(Desea terminar la aplicacin?, ;

    vfpQuestion + vfpYesNo, Pregunta) = vfpYes Then

    Release Thisform

    Else

    NoDefault

    EndIf

    Objeto: CboFuente Procedimiento: Click

    Thisform.TxtTexto.FontName = Thisform.CboFuente.Value

    Thisform.Refresh

    Objeto: LstTamao Procedimiento: Click

    nTamao = Val(Thisform.LstTamao.Value)

    Thisform.TxtTexto.FontSize = nTamao

    Thisform.Refresh

    Objeto: ChkNegrita Procedimiento: Click

    If Thisform.ChkNegrita.Value = 1 Then

    Thisform.TxtTexto.FontBold = .T.

    Else

    Thisform.TxtTexto.FontBold = .F.

    EndIf

    Thisform.Refresh

    Objeto: ChkCursiva Procedimiento: Click

    If Thisform.ChkCursiva.Value = 1 Then

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 38

    Thisform.TxtTexto.FontItalic = .T.

    Else

    Thisform.TxtTexto.FontItalic = .F.

    EndIf

    Thisform.Refresh

    Objeto: ChkSubrayado Procedimiento: Click

    If Thisform.ChkSubrayado.Value = 1 Then

    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 Procedimiento: Click

    Thisform.QueryUnload

    Aplicacin N 2

    Este ejercicio consiste en desarrollar una aplicacin que

    permita ingresar el nombre de un curso, el cual pasa a formar

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 39

    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 diseo de la interfaz debe ser similar a la

    figura mostrada:

    Para el desarrollo de esta aplicacin 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 segn se

    indica:

    Form1

    Name FrmCursos

    Caption Cursos

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 40

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

    Name LblCurso

    Caption Ingrese nuevo curso:

    Label2

    Name LblSeleccionar

    Caption Seleccione un curso:

    Label3

    Name LblProgramado

    Caption Curso programado:

    Text1

    Name TxtCurso

    List1

    Name LstSeleccionar

    List2

    Name LstProgramado

    Command1

    Name CmdAgregar

    Caption

    Picture C:\FundVFP\Bitmaps\AddItem.Bmp

    Command2

    Name CmdAgregarTodo

    Caption

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 41

    Picture C:\FundVFP\Bitmaps\AddAll.Bmp

    Command3

    Name CmdQuitar

    Caption

    Picture C:\FundVFP\Bitmaps\Remove.Bmp

    Command4

    Name CmdQuitarTodo

    Caption

    Picture C:\FundVFP\Bitmaps\RemoveAll.Bmp

    Command5

    Name CmdAnnadir

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 42

    Thisform.CmdQuitarTodo.Enabled = .T.

    EndIf

    Thisform.Refresh

    Objeto: CmdAgregar Procedimiento: Click

    cCurso = Thisform.LstSeleccionar.Value

    nCurso = Thisform.LstSeleccionar.ListIndex

    If Thisform.LstSeleccionar.ListCount > 0 Then

    Thisform.LstProgramado.AddItem(cCurso)

    Thisform.LstSeleccionar.RemoveItem(nCurso)

    Thisform.LstSeleccionar.ListIndex = 0

    Thisform.CmdAgregar.Enabled = .F.

    Thisform.CmdAgregarTodo.Enabled = .F.

    EndIf

    Thisform.Refresh

    Objeto: CmdQuitar Procedimiento: Click

    cCurso = Thisform.LstProgramado.Value

    nCurso = Thisform.LstProgramado.ListIndex

    If Thisform.LstProgramado.ListCount > 0 Then

    Thisform.LstSeleccionar.AddItem(cCurso)

    Thisform.LstProgramado.RemoveItem(nCurso)

    Thisform.LstProgramado.ListIndex = 0

    Thisform.CmdQuitar.Enabled = .F.

    Thisform.CmdQuitarTodo.Enabled = .F.

    EndIf

    Thisform.Refresh

    Objeto: CmdAgregarTodo Procedimiento: Click

    For nI = 1 To Thisform.LstSeleccionar.ListCount

    Thisform.LstProgramado.AddItem;

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 43

    (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 aplicacin?, ;

    vfpQuestion + vfpYesNo, Pregunta) = vfpYes Then

    Release Thisform

    Else

    NoDefault

    EndIf

    Aplicacin N 3

    El ejercicio consiste en elaborar una aplicacin que

    permita leer n nmeros de tipo entero, y a continuacin los

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 44

    visualice ordenados en forma ascendente o descendente. Utilice

    el mtodo de la burbuja para realizar la ordenacin.

    Para el desarrollo de esta aplicacin, proceda a ubicar

    los siguientes controles en el formulario:

    3 etiquetas

    1 caja de texto

    1 lista

    1 grupo de botones de opcin

    3 botones de comando

    En seguida proceda a establecer las propiedades segn se

    indica:

    Form1

    Nombre FrmBurbuja

    Caption Ordenacin por burbuja

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

    Name LblNumero

    Caption Ingrese un nuevo nmero:

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 45

    Label2

    Name LblOrden

    Caption Orden:

    Label3

    Name LblLista

    Caption Lista de nmeros:

    Text1

    Name TxtNumero

    Value 0

    List1

    Name LstNumero

    Option1

    Nombre OptAscendente

    Caption Ascendente

    Option2

    Nombre OptDescendente

    Caption Descendente

    Command1

    Nombre CmdAnnadir

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 46

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 47

    For nI = 1 To nN

    nA(nI) = Thisform.LstNumero.List(nI)

    Next

    If Thisform.OptionGroup1.OptAscendente.Value = 1 Then

    For nI = 1 To nN - 1

    For nJ = nI + 1 To nN

    If nA(nI) > nA(nJ) Then

    nT = nA(nI)

    nA(nI) = nA(nJ)

    nA(nJ) = nT

    EndIf

    Next

    Next

    EndIf

    If Thisform.OptionGroup1.OptDescendente.Value = 1 Then

    For nI = 1 To nN - 1

    For nJ = nI + 1 To nN

    If nA(nI) < nA(nJ) Then

    nT = nA(nI)

    nA(nI) = nA(nJ)

    nA(nJ) = nT

    EndIf

    Next

    Next

    EndIf

    Thisform.LstNumero.Clear

    For nI = 1 To nN

    Thisform.LstNumero.List(nI) = nA(nI)

    Next

    Objeto: CmdSalir Procedimiento: Click

    Thisform.QueryUnload

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 48

    Aplicacin N 4

    Desarrollar una aplicacin 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

    (teora), el nombre del jefe de prctica (laboratorio), as

    como los horarios de teora y de laboratorio, respectivamente.

    El diseo de la interfaz debe ser similar a la figura que se

    muestra:

    Microsoft Visual FoxPro

    GUA DE LABORATORIO N 5

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 49

    Objetivos

    Luego de completar este laboratorio, el estudiante ser

    capaz de:

    Crear mtodos definidos por el usuario.

    Pasar correctamente los argumentos a un mtodo.

    Ejecutar mtodos desde un formulario.

    Implementar mtodos que devuelvan mltiples valores.

    Consideraciones

    Para el desarrollo del presente laboratorio Ud. deber

    crear una carpeta C:\FundVFP\Lab5, para guardar sus trabajos

    correspondientes a este laboratorio.

    Aplicacin N 1

    Este primer ejercicio consiste en escribir un mtodo 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 aplicacin, proceda a ubicar

    los siguientes controles en el formulario:

    2 etiquetas

    2 cajas de texto

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 50

    3 botones de comando

    En seguida proceda a establecer las propiedades segn se

    indica:

    Form1

    Nombre FrmPrueba_Cadena

    Caption Cadena invertida

    MaxButton .F.-Falso

    MinButton .F.-Falso

    Label1

    Nombre LblCadena

    Caption Ingrese una cadena:

    Label2

    Nombre LblInvertida

    Caption Cadena invertida:

    Text1

    Nombre TxtCadena

    Enabled .T.-Verdadero

    Text2

    Nombre TxtInvertida

    Enabled .F.-Falso

    Command1

    Nombre CmdAceptar

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 51

    Command2

    Nombre CmdLimpiar

    Caption \

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 52

    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

    Aplicacin N 2

    Este ejercicio consiste en crear un mtodo 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 aplicacin proceda a crear un

    nuevo mtodo denominado NomApe. Luego transcriba el siguiente

    cdigo:

    Objeto: FrmPrueba_NomApe Procedimiento: NomApe

    Parameters cApeNom

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 53

    nN = Len(Alltrim(cApeNom))

    Dimension cNom(nN)

    Dimension cApe(nN)

    For nI = 1 To nN

    If SubStr(cApeNom, nI, 1) = , Then

    Exit

    EndIf

    Next

    cApe = SubStr(cApeNom, 1, nI-1)

    cNom = SubStr(cApeNom, nI + 1, nN - nI)

    cNomApe = cNom + + cApe

    Return cNomApe

    Aplicacin N 3

    Para calcular el porcentaje de humedad de una muestra

    slida primero se pesa la muestra ( 1m ), luego se le lleva a la

    estufa de 120 a 150 C por un tiempo de 2 horas

    aproximadamente. A continuacin se deja enfriar la muestra y se

    pesa nuevamente ( 2m ). Finalmente se realiza el siguiente

    clculo:

    1

    21100%m

    mmHumedad

    Nuestro trabajo consiste en crear un mtodo que permita

    realizar el clculo anterior.

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 54

    Para el desarrollo de esta aplicacin proceder a cera un

    nuevo mtodo denominado Humedad. Luego ingrese el siguiente

    cdigo:

    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

    Aplicacin N 4

    Escriba un mtodo que reciba como parmetro la fecha de

    nacimiento del usuario. Debe retornar el signo zodiacal, el da

    de nacimiento y la cantidad de das vividos hasta la fecha

    actual. Utilice un formulario de prueba para verificar la

    funcionalidad del mtodo creado.

  • Elaborado por Carlos Castillo Peralta [email protected] Pg. 55

    Sugerencia

    Retorne un nico valor como una cadena de caracteres, en

    la cual estn incluidos los valores que se piden. A manera de

    ejemplo considere lo siguiente:

    cRpta = cZodiaco + cDiaNacimiento + cDiasVividos + cFechaHoy

    Return cRpta

    Fin del Nivel I

    Suerte

    Prximamente

    Nivel II : Programacin de aplicaciones de escritorio

    Nivel III : Programacin de aplicaciones Cliente-Servidor