![]() |
Re: Rechner machen mit Brüche
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 :D edit3.: das nächste problem... hatte das vorher in neues unit gemacht nu möchte ich es in das des rechners!
Delphi-Quellcode:
so! nun muss ja das neue darunter, hab ich gemacht nun sieht das so aus:
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;
Delphi-Quellcode:
da soll er jetz aus TFe (ergebniss von der division) den bruch machen, also Decimal := strtofloat(TFe.text);
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. sollte stimmen aber nun sagt er: [Fehler] Unit1.pas(87): ';' erwartet, aber 'IMPLEMENTATION' gefunden wieso? mfg |
Re: Rechner machen mit Brüche
Die vielen Edits des obigen Beitrags machen meinen Kommentar überflüssig - gelöscht
|
Re: Rechner machen mit Brüche
Kann es sein, dass du zweimal "Implementation" in deinem Programm hast? :mrgreen:
Du hast also einen Implemenatation-Abschnitt IN einem selbigen gemacht... Tipp: Kopiere nicht nur Quelltexte, sondern lies sie, und wende sie an. Du wirst sehen, dass Matzes Implementation-Abschnitt den einer gesamten Unit darstellt. Also diese beiden Codezeilen löschen:
Delphi-Quellcode:
Und zwar die, die weiter unten sind (aus dem reinkopierten Bereich) :zwinker:
implementation
{$R *.dfm} |
Re: Rechner machen mit Brüche
hab ich gemacht nu kommen diese fehler:
[Fehler] Unit1.pas(137): Deklaration erwartet, aber Dateiende gefunden [Fehler] Unit1.pas(135): ';' erwartet, aber '.' gefunden [Fehler] Unit1.pas(118): ';' erwartet, aber '.' gefunden :/ mfg |
Re: Rechner machen mit Brüche
Zitat:
Delphi-Quellcode:
(nicht zu verwechseln mit
end.
Delphi-Quellcode:
) gehört ganz ans Ende des Codes.
end;
Zitat:
|
Re: Rechner machen mit Brüche
am ende is ein end.
Delphi-Quellcode:
mfg
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Rechnen: TButton; TFx: TEdit; TFy: TEdit; TFs: TEdit; TFa: TEdit; TFb: TEdit; TFe: TEdit; Rechnen2: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Edit1: TEdit; Button1: TButton; procedure RechnenClick(Sender: TObject); procedure Rechnen2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.RechnenClick(Sender: TObject); VAR x, y, s : REAL; begin x:= strtofloat (TFx.text); y:= strtofloat (TFy.text); s:= x*y; TFs.Text := floattostr (s); showmessage ('kannste haben :>'); end; 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. |
Re: Rechner machen mit Brüche
Und immer noch 2 mal implementation :roll: ...
Will sagen: lösche das zweite
Delphi-Quellcode:
raus und verschiebe das
implementation
{$R *.dfm}
Delphi-Quellcode:
hinter
type
TFraction = record Numerator: Integer; Denominator: Integer; end;
Delphi-Quellcode:
.
uses
Windows, ... Gruß, ManuMF |
Re: Rechner machen mit Brüche
so, wurde gemacht un wieder 3 fehler :/
[Fehler] Unit1.pas(117): ';' erwartet, aber '.' gefunden [Fehler] Unit1.pas(134): ';' erwartet, aber '.' gefunden [Fehler] Unit1.pas(136): Deklaration erwartet, aber Dateiende gefunden sieht nu folgender masen aus die sachen wo ich machen sollte
Delphi-Quellcode:
das
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFraction = record Numerator: Integer; Denominator: Integer; end;
Delphi-Quellcode:
hab ich rausgelöscht.
implementation
{$R *.dfm} mfg |
Re: Rechner machen mit Brüche
Zeig doch mal etwas Eigeninitiative :roll: .
Delphi-Quellcode:
Mit einer halben Prozedur im Code kann das ja nichts werden.
procedure TForm1.Button1Click(Sender: TObject);
var Form1: TForm1; |
Re: Rechner machen mit Brüche
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz