Practica Tres Delphi

4,380 views
4,218 views

Published on

Guías de Laboratorio de programación con Delphi, por José Luis Ponce Segura

Published in: Education
2 Comments
2 Likes
Statistics
Notes
No Downloads
Views
Total views
4,380
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
342
Comments
2
Likes
2
Embeds 0
No embeds

No notes for slide

Practica Tres Delphi

  1. 1. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac03 (1 de 7) GUÍA DE LABORATORIO N° 03 OBJETIVOS: • Manejo de diversos controles, sus propiedades, métodos y eventos • Estructuras de control: Decisión, Repetitivas • Uso de variables. 1.1 CONSIDERACIONES INICIALES Debe abrir su proyecto de la guía de laboratorio Nº 02, y deberá agregar formularios para las aplicaciones siguientes: 1.2 CREACIÓN DE LA UNIDAD DE CÓDIGO DELPHI “MÓDULO” FORMULARIO (Factorial.pas) a) En el formulario inserte los controles necesarios y establezca las propiedades necesarias para obtener la siguiente apariencia:==> b) Ahora procedemos a establecer la Propiedades a los objetos, principalmente la propiedad (Name): Objeto Propiedad Valor Asignado Form1 Name FrmFactorial Edit1 Name edNumero Edit2 Name edFactorial Edit3 Name edSuma Button1 Name btnCalcular Button2 Name btnSalir NOTA: establezca las demás propiedades que usted crea conveniente. c) Ahora proceda a escribir el código correspondiente a los objetos necesarios: Objeto: btnCalcular Evento: OnClick procedure TfrmFactorial.btnCalcularClick(Sender: TObject); var i,n:Integer; f,s:Double; begin //Entrada de datos n:=strtoint(ednumero.Text); //Proceso //calcular el factorial f:=1; for i:=1 to n do begin f:=f*i; end; //Calcular la suma de n pares i:=2; s:=0; while (i <= n) do begin s:=s+i; i:=i+2; end;
  2. 2. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac03 (2 de 7) // Imprimir resultados edfactorial.Text:=floattostr(f); edsuma.text:=floattostr(s); end; Objeto: btnSalir Evento: Onclick procedure TfrmCalificaciones.btnSalirClick(Sender: TObject); begin close; end; 1.3 CREACIÓN DE LA UNIDAD DE CÓDIGO DELPHI “MÓDULO” (Movimientos.pas) a) En el formulario inserte los controles necesarios y establezca las propiedades necesarias para obtener la siguiente apariencia: a) Ahora procedemos a establecer la Propiedad (Name) que se puede apreciar en a imagen para las cajas de texto y etiquetas: edCliente, edMonto, lblCantDeposito, lblTotalDeposito, lblCantRetiro, lblTotalRetiro, lblSaldo. Así también establezca el (Name) para los botones como son: BtnAceptar, BtnDeposito, BtnRetiro, BtnNuevo, BtnSalir. b) Ahora proceda a escribir el código correspondiente: Declare las variables cd, cr, td, tr, saldo según se observa a continuación: Objeto: frmMovimientos Evento: OnCreate procedure TfrmMovimientos.FormCreate(Sender: TObject); begin limpiar; end;
  3. 3. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac03 (3 de 7) Procedimiento creado por el Usuario Procedure TfrmMovimientos.limpiar; begin cd:= 0; cr:= 0; td:= 0; tr:= 0; saldo:=0; edCliente.clear; edMonto.Text := ''; lblCantDeposito.caption :=''; lblCantRetiro.caption := ''; lblSaldo.caption := ''; lblTotalDeposito.caption := ''; lblTotalRetiro.caption :=''; btnAceptar.Visible := True; btnDeposito.Enabled := False; btnRetiro.Enabled := False; edCliente.ReadOnly := False; edMonto.ReadOnly := True; end; Ahora deberá establecer el procedimiento recientemente creado en el Area Type Type TfrmMovimientos = class(TForm) YYYYYY; ZZZZZZ; procedure limpiar; // Sólo agregue ésta línea Objeto: btnAceptar Evento: OnClick procedure TfrmMovimientos.btnAceptarClick(Sender: TObject); begin edCliente.ReadOnly := True; edMonto.ReadOnly := False; btnAceptar.Visible := False; btnDeposito.Enabled := True; btnRetiro.Enabled := True; // ingresar el saldo inicial saldo := strtofloat(InputBox(‘Nueva Cuenta’,’Ingrese el Monto de Apertura: ‘, ‘350’)); lblSaldo.caption := floattostr(saldo); td := saldo; cd := 1; lblCantDeposito.caption := inttostr(cd); lblTotalDeposito.caption := floattostr(td); edMonto.setfocus; end; Objeto: btnDeposito Evento: Onclick procedure TfrmMovimientos.btnDepositoClick(Sender: Tobject); var deposito:Single; begin If edMonto.Text=’’ Then begin Showmessage(‘Ingrese monto del movimiento...’); Exit; end; deposito := strtofloat(edMonto.Text); td := td + deposito; cd := cd + 1; lblCantDeposito.caption := inttostr(cd); lblTotalDeposito.caption := floattostr(td); saldo := strtofloat(lblSaldo.caption); lblSaldo.caption:= floattostr(saldo + deposito); edMonto.text :=’’; edMonto.SetFocus;
  4. 4. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac03 (4 de 7) end; Objeto: btnRetiro Evento: Onclick procedure TfrmMovimientos.btnRetiroClick(Sender: Tobject); var retiro:Single; begin if edMonto.text=’’ Then begin showmessage(‘Ingrese monto del movimiento...’); Exit; end; retiro := strtofloat(edMonto.Text); saldo := strtofloat(lblSaldo.caption); If saldo < retiro Then begin Showmessage(‘La cantidad excede su saldo actual’); edMonto.Text:=’’; edMonto.setFocus; end Else begin tr := tr – retiro; cr := cr + 1 ; lblCantRetiro.caption := inttostr(cr) ; lblTotalRetiro.caption := floattostr(tr) ; lblSaldo.caption := floattostr(saldo – retiro) ; End; edMonto.clear; edMonto.setfocus; end; Objeto: btnNuevo Evento: OnClick procedure TfrmMovimientos.btnNuevoClick(Sender: Tobject); begin limpiar; edcliente.SetFocus; end; Objeto: btnSalir Evento: Onclick procedure TfrmMovimientos.btnSalirClick(Sender: Tobject); begin close; end; Objeto: frmMovimientos Evento: OnClose procedure TfrmMovimientos.FormClose(Sender: Tobject; var Action: TcloseAction); begin If MessageDlg (‘¿Desea Salir de la Aplicación?’, mtConfirmation ,[mbyes,mbno],0) = mrNo Then Begin // Si ha respondido No action:=caNone; end; end;
  5. 5. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac03 (5 de 7) 1.4 CREACIÓN DE LA UNIDAD DE CÓDIGO DELPHI “MÓDULO” (ListBox.pas) a) En el formulario inserte los controles necesarios y establezca las propiedades necesarias para obtener la siguiente apariencia: b) Ahora procedemos a establecer la Propiedad (Name) a los siguientes objetos: Objeto Propiedad Valor Asignado Form1 Name FrmListBox ListBox1 Name lstIzquierda ListBox2 Name lstDerecha Button1 Name btnTodoDerecha Button2 Name btnDerecha Button3 Name btnIzquierda Button4 Name btnTodoIzquierda Button5 Name btnAgregarIz Button6 Name btnBorrarIz Button7 Name btnBorrarTodoIz Button8 Name btnAgregarDe Button9 Name btnBorrarDe Button10 Name btnBorrarTodoDe NOTA: establezca las demás propiedades que usted crea conveniente. c) Ahora proceda a escribir el código correspondiente: Declare la variable op según se observa a continuación: Objeto: frmListBox Evento: OnCreate procedure TfrmListbox.FormCreate(Sender: Tobject); begin lstderecha.Sorted:=true; end;
  6. 6. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac03 (6 de 7) Procedimiento creado por el Usuario Procedure TfrmListbox.MoverItems; var i:Integer; m,t:String; Begin m:=’NO Items’; Case op of 1: Begin If lstizquierda.Items.Count = 0 Then begin Showmessage(m); Exit; end; For i:= 0 To lstIzquierda.Items.Count – 1 do begin lstDerecha.Items.Add(lstIzquierda.Items.Strings[i]); end; lstizquierda.items.clear; end; 2: Begin If lstIzquierda.itemindex=-1 then begin Showmessage(m); Exit; end; lstderecha.items.add(lstizquierda.items.strings[lstizquierda.itemindex]); lstizquierda.items.Delete(lstizquierda.itemindex); end; 3: Begin // ahora hágalo Usted end; 4: Begin // ahora hágalo Usted end; end; end; Ahora deberá establecer el procedimiento recientemente creado en el Area Type Type TfrmListBox = class(Tform) XXXXXX; YYYYYY; ZZZZZZ; procedure MoverItems; // Sólo agregue ésta línea Objeto: btnTodoDerecha Evento: OnClick procedure TfrmListbox.btnTodoDerechaClick(Sender: Tobject); begin op:=1; MoverItems; end; Objeto: btnDerecha Evento: Onclick procedure TfrmListbox.btnDerechaClick(Sender: Tobject); begin op:=2; MoverItems; end;
  7. 7. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac03 (7 de 7) Objeto: btnIzquierda Evento: Onclick procedure TfrmListbox.btnIzquierdaClick(Sender: TObject); begin op:=3; MoverItems; end; Objeto: btnTodoIzquierda Evento: OnClick procedure TfrmListbox.btnTodoIzquierdaClick(Sender: TObject); begin op:=4; MoverItems; end; Objeto: btnAgregarIz Evento: Onclick procedure TfrmListbox.btnAgregarIzClick(Sender: TObject); var valor:String; begin valor:=InputBox('Item Izquierda','Ingrese Item valor para la Izquierda: ', 'Valor de ejemplo'); lstizquierda.Items.add(valor); end; Objeto: btnBorrarIz Evento: Onclick procedure TfrmListbox.btnBorrarIzClick(Sender: TObject); begin If lstIzquierda.itemindex=-1 then begin Showmessage('Seleccione un item'); Exit; end; lstizquierda.Items.Delete(lstizquierda.itemindex); end; Objeto: btnBorrarTodoIz Evento: OnClick procedure TfrmListbox.btnBorrarTodoIzClick(Sender: TObject); begin lstizquierda.items.Clear; end; TAREA ENCARGADA: • Para el formulario FrmMovimientos, haga los cambios necesarios para que muestre un resumen de los depósitos y retiros (número y cantidad). • Para el formulario frmListBox, realice el procedimiento respectivo para que compare las dos listas y muestre los ítems repetidos (índice y texto). • Realice una aplicación que permita ingresar código, apellidos, nombres, edad, colegio (A, B, C), sexo, edad, nota. Luego deberá calcular los siguiente: Número de Alumnos por Sexo Masculino y Femenino. Número de alumnos por Colegio A, B y C. Promedio de Edad General, por Colegio y por Sexo Promedio de Notas General, por Colegio y por Sexo. • En función a los ejercicios de la presente práctica donde se utiliza la estructura repetitiva FOR, Usted deberá reemplazarlos por WHILE DO y REPEAT UNTIL según corresponda.

×