Einzelnen Beitrag anzeigen

OwNy

Registriert seit: 16. Dez 2005
Ort: Iffezheim
11 Beiträge
 
Delphi 6 Enterprise
 
#11

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 13:02
nun sagt es mir [Fehler] Unit10.pas(63): Undefinierter Bezeichner: 'stringtofloat'

edit: habs es hies Decimal := strtofloat(edit1.text)
edit2.: danke es geht ihr seit die besten
edit3.: das nächste problem... hatte das vorher in neues unit gemacht nu möchte ich es in das des rechners!

Delphi-Quellcode:
procedure TForm1.Rechnen2Click(Sender: TObject);

VAR
a, b, e : REAL;

begin
a:= strtofloat (TFa.text);
b:= strtofloat (TFb.text);

e:= a/b;
TFe.Text := floattostr (e);

showmessage ('kannste haben :>');
end;
so! nun muss ja das neue darunter, hab ich gemacht nun sieht das so aus:

Delphi-Quellcode:
procedure TForm1.Rechnen2Click(Sender: TObject);

VAR
a, b, e : REAL;

begin
a:= strtofloat (TFa.text);
b:= strtofloat (TFb.text);

e:= a/b;
TFe.Text := floattostr (e);

showmessage ('kannste haben :>');
end;


procedure TForm1.Button1Click(Sender: TObject);

var
  Form1: TForm1;


implementation

{$R *.dfm}

type
  TFraction = record
    Numerator: Integer;
    Denominator: Integer;
  end;

function Dec2Frac(const Decimal, Accuracy: Double): TFraction;
var
  tempd: Double;
  f: TFraction;
  neg: Shortint;
begin
  f.Numerator := 0;
  f.Denominator := 1;
  if Decimal < 0 then
    neg := -1
  else
    neg := 1;
  tempd := 0;
  while Abs(tempd - Decimal) > Accuracy do begin
    if Abs(tempd) > Abs(Decimal) then
      inc(f.Denominator)
    else
      f.Numerator := f.Numerator + neg;
    tempd := f.Numerator / f.Denominator;
  end;
  //tempi := gcd(f.Numerator,f.Denominator);
  Result := f;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Decimal: Double;
  Rational: TFraction;
begin

  Decimal := strtofloat(TFe.text);

  // Umwandlung in einen Bruch
  // je kleiner der 2. Parameter, desto genauer das Ergebnis und desto länger die Rechenzeit
  Rational := Dec2Frac(Decimal, 0.000001);

  // Ergebnis anzeigen (Ausgabe für 5.46: 273/50):
  ShowMessage('Numerator: ' + IntToStr(Rational.Numerator) + #13#10 +
              'Denumerator: ' + IntToStr(Rational.Denominator));
end;

end.
da soll er jetz aus TFe (ergebniss von der division) den bruch machen, also Decimal := strtofloat(TFe.text);

sollte stimmen aber nun sagt er: [Fehler] Unit1.pas(87): ';' erwartet, aber 'IMPLEMENTATION' gefunden

wieso?
mfg
Chris Lorenz
  Mit Zitat antworten Zitat