Sourcecodes - Taschenrechner mit Sonderfunktionen

Sprachenübersicht/Delphi

Taschenrechner mit Sonderfunktionen

Diese Seite wurde 3511 mal aufgerufen.

Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.

Editieren Versionen Linkpartnerschaft Bottom Printversion

Keywords: Sinus Cosinus Tangens p/q-Formel Kehrwert 4 Grundrechenarten Prozentsatz Grundwert Prozentwert Potenz Quadratwurzel Quadratzahl Flächeninhalt und Umfang von Kreis/Quadrat/Rechteck

[code]
//****************************************************************************//
//Programmierer : Hussein El Allali //
//****************************************************************************//
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls, Math, ExtCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
SpeedButton13: TSpeedButton;
SpeedButton14: TSpeedButton;
SpeedButton15: TSpeedButton;
SpeedButton16: TSpeedButton;
SpeedButton17: TSpeedButton;
SpeedButton18: TSpeedButton;
SpeedButton19: TSpeedButton;
SpeedButton20: TSpeedButton;
SpeedButton21: TSpeedButton;
SpeedButton22: TSpeedButton;
SpeedButton23: TSpeedButton;
SpeedButton27: TSpeedButton;
SpeedButton28: TSpeedButton;
SpeedButton29: TSpeedButton;
SpeedButton30: TSpeedButton;
SpeedButton31: TSpeedButton;
SpeedButton32: TSpeedButton;
SpeedButton33: TSpeedButton;
SpeedButton34: TSpeedButton;
SpeedButton35: TSpeedButton;
SpeedButton36: TSpeedButton;
SpeedButton37: TSpeedButton;
SpeedButton38: TSpeedButton;
SpeedButton24: TSpeedButton;
SpeedButton25: TSpeedButton;
SpeedButton26: TSpeedButton;
SpeedButton39: TSpeedButton;
SpeedButton40: TSpeedButton;
SpeedButton41: TSpeedButton;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Timer1: TTimer;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure SpeedButton13Click(Sender: TObject);
procedure SpeedButton14Click(Sender: TObject);
procedure SpeedButton15Click(Sender: TObject);
procedure SpeedButton16Click(Sender: TObject);
procedure SpeedButton17Click(Sender: TObject);
procedure SpeedButton20Click(Sender: TObject);
procedure SpeedButton18Click(Sender: TObject);
procedure SpeedButton19Click(Sender: TObject);
procedure SpeedButton21Click(Sender: TObject);
procedure SpeedButton22Click(Sender: TObject);
procedure SpeedButton23Click(Sender: TObject);
procedure SpeedButton30Click(Sender: TObject);
procedure SpeedButton27Click(Sender: TObject);
procedure SpeedButton37Click(Sender: TObject);
procedure SpeedButton28Click(Sender: TObject);
procedure SpeedButton29Click(Sender: TObject);
procedure SpeedButton38Click(Sender: TObject);
procedure SpeedButton31Click(Sender: TObject);
procedure SpeedButton32Click(Sender: TObject);
procedure SpeedButton33Click(Sender: TObject);
procedure SpeedButton34Click(Sender: TObject);
procedure SpeedButton35Click(Sender: TObject);
procedure SpeedButton36Click(Sender: TObject);
procedure SpeedButton24Click(Sender: TObject);
procedure SpeedButton25Click(Sender: TObject);
procedure SpeedButton26Click(Sender: TObject);
procedure SpeedButton39Click(Sender: TObject);
procedure SpeedButton40Click(Sender: TObject);
procedure SpeedButton41Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);

private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
// Hier deklariere ich gloable Variablen, also Variablen, die
// überall im Quellcode verwenden kann.
implementation
var Zahl: String;
X, X_1: real; // Die Variable X_1 fungiert als ein
Y: Integer; // Zwischenresultat.
{$R *.DFM}


//***************************************************//
// START DER ZIFFERTASTEN-DEFINITION //
//***************************************************//
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + SpeedButton1.Caption;
Zahl := Edit1.Text;
X := StrToFloat(Zahl);
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + SpeedButton2.Caption;
Zahl := Edit1.Text;
X := StrToFloat(Zahl);
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + SpeedButton3.Caption;
Zahl := Edit1.Text;
X := StrToFloat(Zahl);
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + SpeedButton4.Caption;
Zahl := Edit1.Text;
X := StrToFloat(Zahl);
end;

procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + SpeedButton5.Caption;
Zahl := Edit1.Text;
X := StrToFloat(Zahl);
end;

procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + SpeedButton6.Caption;
Zahl := Edit1.Text;
X := StrToFloat(Zahl);
end;

procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + SpeedButton7.Caption;
Zahl := Edit1.Text;
X := StrToFloat(Zahl);
end;

procedure TForm1.SpeedButton8Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + SpeedButton8.Caption;
Zahl := Edit1.Text;
X := StrToFloat(Zahl);
end;

procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + SpeedButton9.Caption;
Zahl := Edit1.Text;
X := StrToFloat(Zahl);
end;

procedure TForm1.SpeedButton10Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + SpeedButton10.Caption;
Zahl := Edit1.Text;
X := StrToFloat(Zahl);
end;
//***************************************************//
// ENDE DER ZIFFERTASTEN-DEFINITION //
//***************************************************//
procedure TForm1.SpeedButton11Click(Sender: TObject);
begin // Addition.
If Y = 0 Then X_1 := X;
Edit1.Text := '' ;
X := 0 ;
Y := 1 ;
end;

procedure TForm1.SpeedButton12Click(Sender: TObject);
begin // Löscht Variablenwerte und das Eingabefeld.
X_1 := 0 ;
Edit1.Text := '' ;
X := 0 ;
Label1.Visible := False ;
Label2.Visible := False ;
Edit2.Visible := False ;
end;

procedure TForm1.SpeedButton13Click(Sender: TObject);
begin // Subtraktion.
If Y = 0 Then X_1 := X;
Edit1.Text := '' ;
X := 0 ;
Y := 2 ;
end;

procedure TForm1.SpeedButton14Click(Sender: TObject);
begin // Multiplikation.
If Y = 0 Then X_1 := X;
Edit1.Text := '' ;
X := 0 ;
Y := 3 ;
end;

procedure TForm1.SpeedButton15Click(Sender: TObject);
begin // Division.
If Y = 0 Then X_1 := X;
Edit1.Text := '' ;
X := 0 ;
Y := 4 ;
end;

procedure TForm1.SpeedButton16Click(Sender: TObject);
var Y_1 : real;
var pi : real;
var X_Y : real;
begin // Berechnet das Endergebnis, das im Eingabefeld angezeigt wird.
pi := 3.14159265 ;//Konstante wird deklariert!!
If Y = 0 Then X_1 := X ;
If Y = 1 Then X_1 := X_1 + X;
If Y = 2 Then X_1 := X_1 - X;
If Y = 3 Then X_1 := X_1 * X;
If Y = 4 Then
begin
If X <> 0
Then X_1 := X_1 / X
end;
If Y = 5 Then X_1 := X * X ; //Quadratzahl
If Y = 6 Then X_1 := sqrt (X) ; //Quadratwurzel

If Y = 7 Then
Begin
Y_1 := DegToRad (X); //Bogenmaß
X_1 := sin (Y_1) ; //Sinus
end;

If Y = 8 Then
Begin
Y_1 := DegToRad (X);
X_1 := cos (Y_1) ; //Cosinus
end;

If Y = 9 Then
Begin
Y_1 := DegToRad (X);
X_1 := tan (Y_1) ; //Tangens
end;



If Y = 12 Then X_1 := 1 / X ; //Kehrwert

If Y = 13 Then X_1 := (X_1*X_1) + (2*X*X_1) + (X*X);
// 1.Binomische Formel:
// (a+b)² = a² + 2*a*b + b*b

If Y = 14 Then X_1 := (X_1*X_1) - (2*X*X_1) + (X*X);
// 2.Binomische Formel:
// (a-b)² = a² - 2*a*b + b*b

If Y = 15 Then X_1 := (X_1*X_1) - (X*X) ;
// 3.Binomische Formel:
// (a+b) * (a-b) = a² - b²

If Y = 16 Then X_1 := ln (X) ; // Natürliche Logarithmus

If Y = 17 Then X_1 := ln(X)/ln(10) ; // Logarithmus zur Basis 10

If Y = 18 Then X_1 := X_1 * X ; // Flächeninhalt eines Rechteckes

If Y = 19 Then X_1 := X_1 * X_1 ; // Flächeninhalt eines Quadrates

If Y = 20 Then X_1 := (X_1*X_1) * pi ; // Flächeninhalt eines Kreises

If Y = 21 Then X_1 := (X_1 + X) * 2 ; // Umfang eines Rechteckes

If Y = 22 Then X_1 := 4 * X_1 ; // Umfang eines Quadrates

If Y = 23 Then X_1 := 2 * X_1 * pi ; // Umfang eines Kreises

If Y = 24 Then X_1 := (X_1*X) / 100 ; // Prozentwert

If Y = 25 Then X_1 := 100 * (X_1/X) ; // Prozentsatz

If Y = 26 Then X_1 := (X_1*100) / X ; // Grundwert

If Y = 27 Then X_1 := power (X_1 , X) ; // Potenz

If Y = 28 Then
Begin
X_Y := (-0.5 * X_1) - sqrt ( ((0.5*X_1)*(0.5*X_1)) - X); // P/Q-Formel
X_1 := (-0.5 * X_1) + sqrt ( ((0.5*X_1)*(0.5*X_1)) - X);

Label1.Visible := True ;
Label2.Visible := True ;
Edit2.Visible := True ;
Edit2.Text := FloatToStr (X_Y) ;
end;

Y := 0 ;
X := X_1;
Edit1.Text := FloatToStr(X_1);
end;

procedure TForm1.SpeedButton17Click(Sender: TObject);
begin // Fügt ein Kommata in das Eingabefeld hinzu.
Edit1.Text := Edit1.Text + ',' ;
end;

procedure TForm1.SpeedButton20Click(Sender: TObject);
begin // Beendet das Programm.
Close () ;
end;

procedure TForm1.SpeedButton18Click(Sender: TObject);
begin
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 5 ;
end;

procedure TForm1.SpeedButton19Click(Sender: TObject);
begin
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 6 ;
end;

procedure TForm1.SpeedButton21Click(Sender: TObject);
begin // Sinus.
//Bogenmaß-Berechnung notwendig!!
//Gilt für alle trigonometrischen Funktionen.
//Wird in Speedbutton16 durchgeführt.
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 7 ;
end;

procedure TForm1.SpeedButton22Click(Sender: TObject);
begin // Kosinus.
//Bogenmaß-Berechnung notwendig!!
//Gilt für alle trigonometrischen Funktionen.
//Wird in Speedbutton16 durchgeführt.
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 8 ;
end;
procedure TForm1.SpeedButton23Click(Sender: TObject);
begin // Tangens.
//Bogenmaß-Berechnung notwendig!!
//Gilt für alle trigonometrischen Funktionen.
//Wird in Speedbutton16 durchgeführt.
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 9 ;
end;
procedure TForm1.SpeedButton30Click(Sender: TObject);
begin // Kehrwert.
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 12 ;
end;

procedure TForm1.SpeedButton27Click(Sender: TObject);
begin // 1. Binomische Formel
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 13 ;
end;

procedure TForm1.SpeedButton37Click(Sender: TObject);
begin // Logarithmus zur Basis 10.
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 16 ;
end;

procedure TForm1.SpeedButton28Click(Sender: TObject);
begin // 2. Binomische Formel
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 14 ;
end;

procedure TForm1.SpeedButton29Click(Sender: TObject);
begin // 3. Binomische Formel
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 15 ;

end;

procedure TForm1.SpeedButton38Click(Sender: TObject);
begin // Logarithmus berechnen.
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 17 ;

end;

procedure TForm1.SpeedButton31Click(Sender: TObject);
begin // Diese Prozedur berechnet den Flächeninhalt eines
// Rechtecks mit den Seitenlängen a und b.
// A = a*b
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 18 ;
end;

procedure TForm1.SpeedButton32Click(Sender: TObject);
begin // Diese Prozedur berechnet den Flächeninhalt eines
// Quadrates mit der Seitenlänge a .
// A = a*a = a²
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 19 ;
end;

procedure TForm1.SpeedButton33Click(Sender: TObject);
begin
// Diese Prozedur berechnet den Flächeninhalt eines
// Kreises mit der Seitenlänge a .
// A = r*r * pi = r² * pi
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 20 ;
end;

procedure TForm1.SpeedButton34Click(Sender: TObject);
begin // Diese Prozedur berechnet den Umfang eines
// Rechtecks mit den Seitenlängen a und b.
// U = a+b
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 21 ;
end;

procedure TForm1.SpeedButton35Click(Sender: TObject);
begin // Diese Prozedur berechnet den Umfang eines
// Quadrates mit der Seitenlänge a .
// U = 2*a
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 22 ;
end;

procedure TForm1.SpeedButton36Click(Sender: TObject);
begin
// Diese Prozedur berechnet den Flächeninhalt eines
// Kreises mit der Seitenlänge a .
// U = 2 * r * pi
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 23 ;
end;

procedure TForm1.SpeedButton24Click(Sender: TObject);
begin
// Berechnet den Prozentwert W.
// W = (p% * G) / 100
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 24 ;
end;

procedure TForm1.SpeedButton25Click(Sender: TObject);
begin
// Berechnet den Prozentsatz p%.
// p% = 100 * (W/G)
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 25 ;
end;

procedure TForm1.SpeedButton26Click(Sender: TObject);
begin
// Berechnet den Grundwert G.
// G = (W * 100) / p%
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 26 ;
end;

procedure TForm1.SpeedButton39Click(Sender: TObject);
begin
// Berechnet einer Potenz x mit dem Exponenten y.
// z = x^y
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 27 ;
end;

procedure TForm1.SpeedButton40Click(Sender: TObject);
begin
Showmessage ('Dieses Programm wurde von Hussein El Allali (18) entwickelt und programmiert.');
end;

procedure TForm1.SpeedButton41Click(Sender: TObject);
begin
// Berechnet die p/q-Formel.
// x² + b*x + c = 0
// <=>
// x = -0.5 + sqrt ((0.5*p)² - q) und x = -0.5 + sqrt ((0.5*p) - q)
If Y = 0 Then X_1 := X ;
Edit1.Text := '' ;
Y := 28 ;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var DateTime : TDateTime;
begin
DateTime := Time ; // Aktuelles Datum und Uhrzeit speichern
Label3.Caption := TimeToStr(Time);
end;

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Editieren Versionen Linkpartnerschaft Top Printversion

Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, der Artikel kann wiederhergestellt werden.

Sprachenübersicht/Delphi/Taschenrechner mit Sonderfunktionen