Katzenstreu
Enthusiast
Hallo,
wir lernen gerade in der Schule die Grundkenntnisse von Delphi.
Wir sollen einen "Strom-Spannungs-Widerstands-Rechner" erstellen.
Man soll aus 2 beliebigen Angaben den dritten Wert berechnen.
=>
U=R*I
I=U/R
R=U/I
Außerdem sollen die möglichen Fehler (z.B: Division durch 0) mit EConvertError (try, except on, do begin) abgefangen werden.
Wünsche:
Ich möchte, dass der Wert, der nicht eingegeben wurde berechnet wird und in diesem Feld keine 0 drin stehen muss.
Hier erst ein Mal das Programm:
http://bp-freax.de/katzenstreu/Temp/Project1.exe
MfG
Tim
wir lernen gerade in der Schule die Grundkenntnisse von Delphi.
Wir sollen einen "Strom-Spannungs-Widerstands-Rechner" erstellen.
Man soll aus 2 beliebigen Angaben den dritten Wert berechnen.
=>
U=R*I
I=U/R
R=U/I
Außerdem sollen die möglichen Fehler (z.B: Division durch 0) mit EConvertError (try, except on, do begin) abgefangen werden.
Wünsche:
Ich möchte, dass der Wert, der nicht eingegeben wurde berechnet wird und in diesem Feld keine 0 drin stehen muss.
Hier erst ein Mal das Programm:
PHP:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
U_Eingabe_Ausgabe: TEdit;
I_Eingabe_Ausgabe: TEdit;
R_Eingabe_Ausgabe: TEdit;
Beschriftung_Spannung: TLabel;
Beschriftung_Stromstaerke: TLabel;
Beschriftung_Widerstand_Leistung: TLabel;
OK_Button: TButton;
procedure OK_ButtonClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
U,I,R : real;
implementation
{$R *.dfm}
procedure TForm1.OK_ButtonClick(Sender: TObject);
begin
try U:=StrToFloat(U_Eingabe_Ausgabe.Text);
except on EConvertError do begin
ShowMessage ('Bitte geben Sie in das angezeige Feld eine reelle Zahl ein!');
U_Eingabe_Ausgabe.SetFocus;
end;
end;
try I:=StrToFloat(I_Eingabe_Ausgabe.Text);
except on EConvertError do begin
ShowMessage ('Bitte geben Sie in das angezeige Feld eine reelle Zahl ein!');
I_Eingabe_Ausgabe.SetFocus;
end;
end;
try R:=StrToFloat(R_Eingabe_Ausgabe.Text);
except on EConvertError do begin
ShowMessage ('Bitte geben Sie in das angezeige Feld eine reelle Zahl ein!');
R_Eingabe_Ausgabe.SetFocus;
end;
end;
if (U=0) then U:=R*I; // Wenn U=0 ist oder nichts ins Feld eingetragen ist, dann soll U:=R*I gerechnet werden. Wie geht das?
if (I=0) then I:=U/R;
if (R=0) then R:=U/I;
{Erweiterungen:}
if (U=0) and (I=0) and (R=0) then ShowMessage ('Bitte geben sie 2 Werte ungleich 0 an');
U_Eingabe_Ausgabe.Text:=FloatToStr(U);
I_Eingabe_Ausgabe.Text:=FloatToStr(I);
R_Eingabe_Ausgabe.Text:=FloatToStr(R);
end;
end.
http://bp-freax.de/katzenstreu/Temp/Project1.exe
MfG
Tim