Problemas creando una calculadora en Delphi (Cos, Sin, Tan)
Publicado por Desadaptado (1 intervención) el 13/02/2021 10:58:32
Hola, estoy empezando a aprender a programar a través de este lenguaje. El profesor nos ha dicho que tengo que hacer una calculadora, he conseguido hacer las operaciones más fundamentales, pero tengo problemas con Sein, Cos y Tangent.
Los dos primeros no estoy seguro de si dan un resultado adecuado. Y el último le da directamente un error al programa.
Este es el resultado que me dio
y así es como debería verse mi programa según mi profesor (visualmente)
Os mostraré mi código.
Gracias, estoy bastante atascado con el tema
Los dos primeros no estoy seguro de si dan un resultado adecuado. Y el último le da directamente un error al programa.
Este es el resultado que me dio

Os mostraré mi código.
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
118
119
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls,
Vcl.Samples.Spin;
type
Tx = class(TForm)
PanelDos: TPanel;
calcular: TButton;
PanelTres: TPanel;
Memo1: TMemo;
ocultarhistorial: TButton;
PanelUno: TPanel;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
RadioGroup1: TRadioGroup;
edt1: TSpinEdit;
edt2: TSpinEdit;
Button1: TButton;
procedure calcularClick(Sender: TObject);
procedure ocultarhistorialClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
x: Tx;
implementation
{$R *.dfm}
procedure Tx.Button1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
end;
procedure Tx.calcularClick(Sender: TObject);
var
num1: real;
num2: real;
resultado: real;
text: string;
begin
num1:= strToFloat(edt1.Text);
num2:= strToFloat(edt2.Text);
case RadioGroup1.ItemIndex of
0:
begin
resultado:= num1+num2;
text:= 'la suma de ' + FloatToStr(num1) + ' + ' + FloatToStr(num2) + ' es ';
end;
1: resultado:= num1-num2;
2: resultado:= num1*num2;
3: resultado:= num1/num2;
4: resultado:= abs(num1);
5: resultado:= sqrt(num1);
6: resultado:= num1*num1;
7: resultado:= num1*num1*num1;
8: resultado:= Sin(num1);
9: resultado:= Cos(num1);
10: resultado:= Tan(num1);
end;
//showMessage('el resultado es ' + FloatToStr(resultado));
Label4.Caption := FloatToStr(resultado);
Memo1.Lines.Add(text+FloatToStr(resultado));
end;
procedure Tx.ocultarhistorialClick(Sender: TObject);
begin
if Memo1.Visible = true then
Memo1.visible := false
else Memo1.Visible := true;
{if Memo1.Visible = true then
begin
Memo1.Visible := false;
end else
begin
Memo1.Visible := true;
end;}
end;
end.
Gracias, estoy bastante atascado con el tema
Valora esta pregunta


0