-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFrmPromedioAcademicoUnit1.pas
117 lines (95 loc) · 2.63 KB
/
FrmPromedioAcademicoUnit1.pas
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
unit FrmPromedioAcademicoUnit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TFrmPromedioAcademico = class(TForm)
Label1: TLabel;
Label2: TLabel;
EditCalificacion: TEdit;
ButtonAgregar: TButton;
ButtonLimpiar: TButton;
ListBoxCalificaciones: TListBox;
Label3: TLabel;
EditPromedioFinal: TEdit;
Label4: TLabel;
EditRegistroAgregado: TEdit;
procedure ButtonAgregarClick(Sender: TObject);
procedure ButtonLimpiarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmPromedioAcademico: TFrmPromedioAcademico;
implementation
{$R *.dfm}
//CUSTOM FUNCTION
function GetResultadoPromedio(calificacion: Double) : String;
var cal :Integer;
begin
cal := trunc(calificacion);
if(cal >= 90) and (cal <= 100) then
begin
Result := 'A';
end
else if (cal >= 80) and (cal <= 89) then
begin
Result := 'B';
end
else if (cal >= 70) and (cal <= 79) then
begin
Result := 'C';
end
else if (cal >= 60) and (cal <= 69) then
begin
Result := 'D';
end
else
begin
Result := 'F';
end
end;
procedure TFrmPromedioAcademico.ButtonAgregarClick(Sender: TObject);
var promedio:Integer;
var contador:Integer;
var promeNumerico:Double;
begin
promedio := StrToInt(EditCalificacion.Text);
if (promedio = 0) or (promedio > 100) then
begin
ShowMessage('Ingrese un valor mayor a cero y/o menor a 100');
end
else
begin
//Agregar el valor a listBox
if ListBoxCalificaciones.Items.Count < 100 then
begin
ListBoxCalificaciones.Items.Add(EditCalificacion.Text);
EditCalificacion.Text := '';
//Calcular el promedio
For contador:=0 to ListBoxCalificaciones.Items.Count - 1 do
begin
promeNumerico := promeNumerico + StrToFloat(ListBoxCalificaciones.Items[contador]);
end;
EditPromedioFinal.Text := GetResultadoPromedio(promeNumerico / ListBoxCalificaciones.Items.Count);
end
else
begin
ShowMessage('Llego al limite de calificaciones');
end
end;
EditCalificacion.SetFocus();
EditRegistroAgregado.Text := IntToStr(ListBoxCalificaciones.Items.Count)
end;
procedure TFrmPromedioAcademico.ButtonLimpiarClick(Sender: TObject);
begin
ListBoxCalificaciones.Items.Clear;
EditCalificacion.Text := '';
EditPromedioFinal.Text := '';
EditRegistroAgregado.Text := '';
EditCalificacion.SetFocus;
end;
end.