Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Bruch einlesen (https://www.delphipraxis.net/93732-bruch-einlesen.html)

mkinzler 10. Jun 2007 17:06

Re: Bruch einlesen
 
Einfach nach '/' suchen wenn nicht vorhanden Quotient auf 1 setzen.

PetBurki 10. Jun 2007 17:07

Re: Bruch einlesen
 
und wie geht das? Kannst du einfach den oben angegebenen Quelltext so verändern?

Matze 10. Jun 2007 17:09

Re: Bruch einlesen
 
Hier mal schnell runtergetippt eine mögliche Lösung:

Delphi-Quellcode:
var
  PosBruchstrich: Integer;
  EditText: string;

  Zaehler, Nenner: Double;
begin
  EditText := Edit4.Text;
  PosBruchstrich := Pos('/', EditText);

  if PosBruchstrich > 0 then
  begin
    Zaehler := StrToFloat(Copy(EditText, 1, PosBruchstrich - 1));
    Nenner := StrToFloat(Copy(EditText, PosBruchstrich + 1,
      Length(EditText) - PosBruchstrich));
  end else
  begin
    Zaehler := StrToFloat(EditText);
    Nenner := 1;
  end;

  ShowMessage('Zähler: ' + FloatToStr(Zaehler) + #13#10 +
    'Nenner: ' + FloatToStr(Nenner));
end;
Aber Fehleingaben darfst du selbst abfangen. Versuche aber den Code zu verstehen (die OH hilft), sonst lernst du nichts und hast später massive Probleme beim Programmieren.

mkinzler 10. Jun 2007 17:09

Re: Bruch einlesen
 
Einfach mit Pos() die Position des Bruchstriches ermitteln.

r2c2 10. Jun 2007 17:17

Re: Bruch einlesen
 
http://r2c2.weingut-rehn.de/content3...mit_Delphi.htm

mfg

Christian

PetBurki 10. Jun 2007 17:25

Re: Bruch einlesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das ist jetzt der Komplette Quelltext:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button2: TButton;
    Label5: TLabel;
    Image1: TImage;
    Label6: TLabel;
    Image2: TImage;
    Label7: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  F, H: integer ;

implementation


{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
H:=random(9)+1;
F:=random(9)+1;
label2.Caption:=IntToStr(H);
label3.Caption:=IntToStr(F);

end;

procedure TForm1.Button2Click(Sender: TObject);
var
  PosBruchstrich: Integer;
  EditText: string;

  Zaehler, Nenner: Double;
begin
  EditText := Edit2.Text;
  PosBruchstrich := Pos('/', EditText);

  if PosBruchstrich > 0 then
  begin
    Zaehler := StrToFloat(Copy(EditText, 1, PosBruchstrich - 1));
    Nenner := StrToFloat(Copy(EditText, PosBruchstrich + 1,
      Length(EditText) - PosBruchstrich));
  end else
  begin
    Zaehler := StrToFloat(EditText);
    Nenner := 1;
  end;

  ShowMessage('Zähler: ' + FloatToStr(Zaehler) + #13#10 + 
    'Nenner: ' + FloatToStr(Nenner));
end;


end.
Jetzt öffnet er mir ein Fenster und gibt den Zähler und nenner aus. Das Programm sollte aber eigentlich überprüfen, ob die zufällig erstellte funktion richtig rückwärts abgeleitet worden si (=Stammfunktion erstellen). Wie änder ich es ab, damit es das tut?

Fals es hilft: Ich habe einen screenshot vom Aufbau (Buttons, etc) angehängt

[edit=Matze][delphi]-Tags gesetzt und den doppelten Anhang entfernt. Mfg, Matze[/edit]

Matze 10. Jun 2007 17:35

Re: Bruch einlesen
 
Dann musst du meinen Code natürlich anpassen. Ich habe dir gezeigt, wie man den Zähler und Nenner ermitteln kann, nun bist du dran. Überlege mal, wie es lauten muss. Alles einfach zusammenkopieren bringt nichts, versuche den Code zu verstehen.

PS: Setze zukünftig bitte selbst die [delphi]-Tags.
PPS: Ein 1.75 MB großes Bitmap ist als Anhang auch gänzlich ungeeignet. Ein vielleicht 200 KB kleines JPG- oder GIF-Bild wäre besser.

Edit: Randomize solle nur einmal aufgerufen werden, daher ist dies am Besten im OnCreate des Formulars aufgehoben.

PetBurki 10. Jun 2007 17:44

Re: Bruch einlesen
 
Mein Problem ist, dass ich erst seit anfang de schuljahres (ca3/4 Jahr) Unterricht habe und der Lehrer sehr langsam ist, so dass wir fast nichts lernen. Deßwegen versteh ich manche Ausdrücke noch nicht

r2c2 10. Jun 2007 17:49

Re: Bruch einlesen
 
Sry, aber welche Ausdrücke verstehst du nicht(das kann man normalerweise ändern)?

Ich sehe nicht, was man an den Ausdrücken "Überlege mal", "nur einmal", "versuchen zu verstehen", etc. nicht verstehen kann...

Wenn du konkrete Fragen hast, dann stelle sie. Deine Hausaufgaben werden wir aber nicht machen...

mfg

Christian

PetBurki 10. Jun 2007 17:50

Re: Bruch einlesen
 
das sind keine Hausaufgaben. Das mache ich nur für mich, in der Hoffnung ein bischen mehr zu können als uns der Lehrer beibringt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 Uhr.
Seite 2 von 3     12 3      

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