Practica Dos Delphi

5,570 views
5,419 views

Published on

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

Published in: Education, Technology
3 Comments
2 Likes
Statistics
Notes
No Downloads
Views
Total views
5,570
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
390
Comments
3
Likes
2
Embeds 0
No embeds

No notes for slide

Practica Dos Delphi

  1. 1. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente GUÍA DE LABORATORIO N° 02 OBJETIVOS: • Manejo de diferentes controles. • Programar objetos en diferentes eventos. • Utilización de variables de memoria. • Estructuras de control: Decisión, Repetitivas 1.1 CONSIDERACIONES INICIALES Debe abrir su proyecto de la guía de laboratorio Nº 01, y deberá agregar formularios para las aplicaciones siguientes: 1.2 CREACIÓN DE LA UNIDAD DE CÓDIGO DELPHI “MÓDULO” FORMULARIO (Calificaciones.pas) Se pide: Se pide hallar el promedio y la puntuación de un alumno, según cuatro notas entre 0 y 20 ya que estas representan las calificaciones de un estudiante del curso de Programación Distribuida y Concurrente. Promedio Puntuación 19 – 20 A 16 – 18 B 11 – 15 C 06 – 10 D 00 – 05 E Diseño del formulario: a) En el formulario inserte los controles necesarios para obtener la siguiente apariencia: 7 Label 7 Edit 4 UpDown 3 BitBtn b) Ahora procedemos a establecer la Propiedades a los objetos, principalmente la propiedad (Name): Objeto Propiedad Valor Asignado Form1 Name FrmCalificaciones Edit1 Name edAlumno Edit2 Name edN1 Edit3 Name edN2 Edit4 Name edN3 Edit5 Name edN4 Edit6 Name edPromedio Edit7 Name edPuntuacion UpDown1 Associate edN1 Max 20 Min 0 UpDown2 Associate edN2 Max 20 Min 0 Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac02 (1 de 6)
  2. 2. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente UpDown3 Associate edN3 Max 20 Min 0 UpDown4 Associate edN4 Max 20 Min 0 Button1 Name btnCalcular Button2 Name btnNuevo Button3 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: frmCalificaciones Evento: OnCreate procedure TfrmCalificaciones.FormCreate(Sender: TObject); begin edn1.ReadOnly:=true; edn2.ReadOnly:=true; edn3.ReadOnly:=true; edn4.ReadOnly:=true; edpromedio.ReadOnly:=true; edpuntuacion.ReadOnly:=true; end; Objeto: edAlumno Evento: OnExit procedure TfrmCalificaciones.edAlumnoExit(Sender: TObject); begin edalumno.Text:=UpperCase(edalumno.text); end; Objeto: btnCalcular Evento: OnClick procedure TfrmCalificaciones.btnCalcularClick(Sender: TObject); var n1,n2,n3,n4:integer; prom:double; puntos:string; begin // Entrada n1:=strtoint(edn1.text); n2:=strtoint(edn2.text); n3:=strtoint(edn3.text); n4:=strtoint(edn4.text); // Proceso prom:=round((n1+n2+n3+n4)/4); If (prom >=19) And (prom <=20) Then begin puntos:= 'A'; end Else If (prom >= 16) And (prom <= 18) Then begin puntos:= 'B'; end Else If (prom >= 11) And (prom <= 15) Then begin puntos:= 'C'; end Else If (prom >= 6) And (prom <= 10) Then begin puntos:= 'D'; end Else If (prom >= 0) And (prom <= 5) Then Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac02 (2 de 6)
  3. 3. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente begin puntos:= 'E'; end Else begin Showmessage('Error de datos'); End; //Salida edpromedio.text:=floattostr(prom); edpuntuacion.text:=puntos; end; Objeto: btnNuevo Evento: OnClick procedure TfrmCalificaciones.btnNuevoClick(Sender: TObject); begin edalumno.clear; edn1.clear; edn2.clear; edn3.clear; edn4.clear; edpromedio.clear; edalumno.SetFocus; 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” (Empleados.pas) Se pide: Desarrollar una aplicación que permita calcular las boletas de pagos de los trabajadores de una constructora. Debe ingresar el código del trabajador, apellidos, nombres, seleccionar la cargo (Gerente, Administrador, Contador), luego de seleccionar el cargo deberá mostrar el sueldo respectivo, así mismo deberá preguntar si desea adelanto Si ó No, Si responde Sí, procederá a ingresar el adelanto respectivo, considerando que éste no debe superar el 25% del Sueldo; luego denerá seleccionar Categoría (A1, A2, A3), según la categoría selccionada se calculará su bonificación; luego seleccionar las aportaciones (Fonavi, Imp. Renta), según las aportaciones seleccionadas se calculará el monto correspondiente; finalizado ello nos deberá calcular el Total Neto a Pagar al trabajador. Para el Sueldo, Bonificación y aportaciones deberá guiarse de la siguiente tabla: Cargo Sueldo Categoría Bonificación Aportaciones Retención Administrador 1600.00 A1 10% Sueldo Fonavi 7% Total Hon. Gerente 1200.00 A2 15% Sueldo Imp. Renta 10% Total Hon. Contador 900.00 A3 20% Sueldo Diseño del formulario: a) En el formulario inserte los controles necesarios desde el cuadro de Herramientas de Windows Form para obtener la siguiente apariencia: Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac02 (3 de 6)
  4. 4. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente b) Ahora procedemos a establecer la Propiedad (Name) a los siguientes objetos: Objeto Propiedad Valor Asignado Form1 Name FrmEmpleados Edit1 Name edCodigo Edit2 Name edApellidos Edit3 Name edNombres ComboBox1 Name cboCargo Edit4 Name edSueldo Edit5 Name edAdelanto Edit6 Name edBonificacion Edit7 Name edHonorarios Edit8 Name edFonavi Edit9 Name edRenta Edit10 Name edNeto Radiobutton1 Name rbtCatA1 Radiobutton2 Name rbtCatA2 Radiobutton3 Name rbtCatA3 checkBox1 Name chkFonavi checkBox2 Name chkRenta Button1 Name btnCalcular Button2 Name btnNuevo Button3 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: frmEmpleados Evento: OnCreate procedure TfrmEmpleados.FormCreate(Sender: TObject); begin cbocargo.items.add('Gerente'); cbocargo.items.add('Administrador'); cbocargo.items.add('Contador'); end; Objeto: cboCargo Evento: Onchange procedure TfrmEmpleados.cboCargoChange(Sender: TObject); var suel:double; begin Case cbocargo.itemindex of 0: suel:=1600.00; 1: suel:=1200.00; 2: suel:=900.00; end; edsueldo.Text:=floattostr(suel); If MessageDlg ('¿Solicitará Adelanto?', mtConfirmation ,[mbyes,mbno],0)= mrYes Then begin edadelanto.Enabled:=true; edadelanto.SetFocus; end else begin edadelanto.Enabled:=false; end; end; Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac02 (4 de 6)
  5. 5. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente Objeto: edAdelanto Evento: Onchange procedure TfrmEmpleados.edAdelantoChange(Sender: TObject); var max,adel:double; begin max:=strtofloat(edsueldo.text) * 0.25; adel:=strtofloat(edadelanto.Text); if adel > max then begin showmessage('El adelanto no es permitido…'); edadelanto.text:='0'; edadelanto.SetFocus; end; end; Objeto: rbtCatA1 Evento: OnClick procedure TfrmEmpleados.rbtCatA1Click(Sender: TObject); begin edbonificacion.Text := floattostr(strtofloat(edSueldo.Text) * 0.1); end; Objeto: rbtCatA2 Evento: Onclick procedure TfrmEmpleados.rbtCatA2Click(Sender: TObject); begin edbonificacion.Text := floattostr(strtofloat(edSueldo.Text) * 0.15); end; Objeto: rbtCatA3 Evento: Onclick procedure TfrmEmpleados.rbtCatA3Click(Sender: TObject); begin edbonificacion.Text := floattostr(strtofloat(edSueldo.Text) * 0.2); end; Objeto: edBonificacion Evento: OnChange procedure TfrmEmpleados.edBonificacionChange(Sender: TObject); begin edhonorarios.text:=floattostr(strtofloat(edsueldo.Text)+strtofloat(edbonificacion.Text)); end; Objeto: chkFonavi Evento: Onclick procedure TfrmEmpleados.chkFonaviClick(Sender: TObject); begin if chkfonavi.Checked = true Then begin edfonavi.Text:= floattostr(strtofloat(edhonorarios.Text) * 0.07); end else begin edfonavi.Text:='0'; end; end; Objeto: chkRenta Evento: Onclick procedure TfrmEmpleados.chkRentaClick(Sender: TObject); begin if chkrenta.Checked = true Then begin edrenta.Text:= floattostr(strtofloat(edhonorarios.Text) * 0.1); end else begin edrenta.Text:='0'; end; end; Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac02 (5 de 6)
  6. 6. I.S.T. “F.P.G.V.” Computación e Informática Programación Distribuida y Concurrente Objeto: btnCalcular Evento: Onclick procedure TfrmEmpleados.btnCalcularClick(Sender: TObject); var desc:double; begin desc:=strtofloat(edadelanto.Text) + strtofloat(edfonavi.Text) + strtofloat(edrenta.Text); edneto.Text:= floattostr(strtofloat(edhonorarios.Text) - desc); end; TAREA ENCARGADA: Desarrolle las siguientes aplicaciones según los siguientes enunciados: 1. Hacer un Programa que permita calcular la propina de un niño, si se toma en cuenta el siguiente cuadro: Edad condición Propina Comportamiento 2 – 14 Niño 28.50 B(Bueno)100 % 15 – 25 Joven 45.00 R(Regular) 60 % Más de 26 Adulto 00.00 M (Malo) 12 % Ejemplo: Ing. la Edad .................................... : 5 Ing. su Comportamiento .................. : R El Niño Recibe 17.10 soles de Propina. 2. Desarolle una aplicación el cual nos permita realizar un diagnóstico para un paciente considerando los siguientes síntomas: TOS PERSISTENTE SUDORACIÓN Y TEMPERATURA CATARRO De acuerdo a los síntomas que presenta se determionará el diasnóstico considernado que: Si tiene los tres síntomas entonces el paciente tiene PRINCIPIOS DE TUBERCULSIS. Si de los tres síntomas solo presente dos entonces tiene CATARRO CRONICO Si de los tres síntomas sólo presenta uno entonces tiene RESFRIO COMÚN. Mediante una aplicación se debe mostrar el diagnóstico del paciente. 3. La compañía de teléfonos necesita la siguiente información por cada cliente para emitir su recibo de pago correspondiente: nombre, dirección, número telefónico y cantidad de llamadas realizadas al mes; para lo cual se debe considerar que si la cantidad de llamadas no excede a 50, la tarifa por llamada es de S/. 0.50 y si fuera mayor a 50 pero no exceda a 150, la tarifa por llamada adicional es de S/. 0.30; finalmente si la cantidad de las llamadas fuera mayor a 150, la tarifa por llamada adicional es de S/. 0.60. Se pide realizar el programa correspondiente que permita mostrar los datos del cliente, así como el importe a pagar detallando los cálculos efectuados. Docente: Lic. José Luis Ponce Segura www.vigilvirtual.com Prac02 (6 de 6)

×