AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Rechner machen mit Brüche

Ein Thema von OwNy · begonnen am 17. Dez 2005 · letzter Beitrag vom 18. Dez 2005
Antwort Antwort
Seite 2 von 3     12 3   
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, 14: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
Benutzerbild von blawen
blawen

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
675 Beiträge
 
Delphi 12 Athens
 
#12

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 14:23
Die vielen Edits des obigen Beitrags machen meinen Kommentar überflüssig - gelöscht
Roland
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#13

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 16:18
Kann es sein, dass du zweimal "Implementation" in deinem Programm hast?

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:
implementation

{$R *.dfm}
Und zwar die, die weiter unten sind (aus dem reinkopierten Bereich)
  Mit Zitat antworten Zitat
OwNy

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

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 17:40
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
Chris Lorenz
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#15

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 17:48
Zitat von OwNy:
hab ich gemacht nu kommen diese fehler:
[Fehler] Unit1.pas(137): Deklaration erwartet, aber Dateiende gefunden
Das

end. (nicht zu verwechseln mit end; ) gehört ganz ans Ende des Codes.
Zitat von OwNy:
[Fehler] Unit1.pas(135): ';' erwartet, aber '.' gefunden
[Fehler] Unit1.pas(118): ';' erwartet, aber '.' gefunden
:/
mfg
Ohne Quellcode kann ich dir nur das sagen, was da steht. In der Zeile befindet sich ein Punkt, der Compiler erwartet aber ein abschließendes Semikolon (;)
  Mit Zitat antworten Zitat
OwNy

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

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 18:05
am ende is ein end.

Delphi-Quellcode:
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.
mfg
Chris Lorenz
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#17

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 19:00
Und immer noch 2 mal implementation ...

Will sagen: lösche das zweite
Delphi-Quellcode:
implementation

{$R *.dfm}
raus und verschiebe das
Delphi-Quellcode:
type
  TFraction = record
    Numerator: Integer;
    Denominator: Integer;
  end;
hinter
Delphi-Quellcode:
uses
  Windows, ...
.

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
OwNy

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

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 19:42
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:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TFraction = record
    Numerator: Integer;
    Denominator: Integer;
  end;
das
Delphi-Quellcode:
implementation

{$R *.dfm}
hab ich rausgelöscht.
mfg
Chris Lorenz
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#19

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 20:00
Zeig doch mal etwas Eigeninitiative .
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var
  Form1: TForm1;
Mit einer halben Prozedur im Code kann das ja nichts werden.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#20

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 20:04
Lies dir am Besten mal die Grundlagen durch.

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz