AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit einem Rechner

Ein Thema von Patrick162 · begonnen am 4. Okt 2007 · letzter Beitrag vom 4. Okt 2007
Antwort Antwort
Seite 2 von 2     12   
Patrick162

Registriert seit: 24. Sep 2007
8 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Probleme mit einem Rechner

  Alt 4. Okt 2007, 12:51
Danke für alles, jetzt klappt es

Delphi-Quellcode:
ergebnis1 := Format('%.2f',[2* pi * r]);
Label2.Caption := ergebnis1;
Jetzt muss ich nur nochmal alles durchschaun wofür z.B. das Format('%.2f', gut ist.



BTW.:

Naja, wir haben keinen Informatikunterricht in der Schule
Habe mir auch schon das Buch: Delphi für Kids besorgt.

und mir hat auch shcon jmd verscuht zu helfen mit dem Rechner, aber owohl er eigentlich sehr gut ist, hat er es trotzdem nicht geschafft...
  Mit Zitat antworten Zitat
Benutzerbild von brinkee
brinkee

Registriert seit: 27. Aug 2004
60 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Probleme mit einem Rechner

  Alt 4. Okt 2007, 12:55
Hehe, 1,34 ist natürlich nicht so ganz passend Meine Monte-Carlo-Simulation versucht mir schon den ganzen Tag zu erklören, dass Pi 2.69 ist, aber hey...

LG, Markus
Markus Brinkmann
  Mit Zitat antworten Zitat
Patrick162

Registriert seit: 24. Sep 2007
8 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Probleme mit einem Rechner

  Alt 4. Okt 2007, 14:56
Nächstes Problem:


'' is not a valid floating point value



Habe jetzt schon diverse Sachen ausprobiert, aber wieder keinen Erfolg gehabt

Ich hoffe ihr könnt mir jetzt noch einmal helfen...

Hier die Source:


Delphi-Quellcode:
unit Kreisberechnung;

interface

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

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

var
  Form1: TForm1;
  r, u, d, A, r2: extended;
  ergebnis1, ergebnis2, ergebnis3, ergebnis4: string;
  pi: extended;
  lol: integer;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

r := strtofloat(Edit1.Text);
u := strtofloat(Edit2.text);
d := strtofloat(Edit3.Text);
A := strtofloat(Edit4.Text);
pi := 3.14159265358;

if lol = 1 then
ergebnis2 := Format('%.2f',[2* pi * r]);
Label2.Caption := ergebnis2;
ergebnis3 := Format('%.2f',[2* r]);
Label3.Caption := ergebnis3;
ergebnis4 := Format('%.2f',[pi* r * r]);
Label4.Caption := ergebnis4;

if lol = 2 then
ergebnis1 := Format('%.2f',[u / 2 * pi]);
Label1.Caption := ergebnis1;
r2 := strtoint(ergebnis1);
ergebnis3 := Format('%.2f',[r2 * 2]);
Label3.Caption := ergebnis3;
ergebnis4 := Format('%.2f',[pi* r2 *r2]);
Label4.Caption := ergebnis4;

if lol = 3 then
ergebnis1 := Format('%.2f',[d / 2]);
Label1.Caption := ergebnis1;
r2 := strtoint(ergebnis1);
ergebnis2 := Format('%.2f',[2* pi * r2]);
Label2.Caption := ergebnis2;
ergebnis4 := Format('%.2f',[pi* r2 * r2]);
Label4.Caption := ergebnis4;

if lol = 4 then
ergebnis1 := Format('%.2f',[pi * A / 2]);
Label1.Caption := ergebnis1;
r2 := strtoint(ergebnis1);
ergebnis2 := Format('%.2f',[2* pi * r]);
Label2.Caption := ergebnis2;
ergebnis3 := Format('%.2f',[r2* 2]);


end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin

case Combobox1.ItemIndex of
0: lol := 1;
1: lol := 2;
2: lol := 3;
3: lol := 4;
end;

if lol = 1 then
Edit1.Enabled := True;

if lol = 2 then
Edit2.Enabled := True;

if lol = 3 then
Edit3.enabled := true;

if lol = 4 then
Edit4.enabled := True


end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Enabled := False;
Edit2.Enabled := False;
Edit3.Enabled := False;
Edit4.Enabled := False;
end;

end.





Danke schön schonmal im voraus!
Greets
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Probleme mit einem Rechner

  Alt 4. Okt 2007, 14:59
Hast Du auch in alle Edits eine Fließkommazahl eingetragen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Probleme mit einem Rechner

  Alt 4. Okt 2007, 15:01
Kann es sein, dass in einem der Edits nichts steht? Das musst du noch überprüfen (bsp. mit Delphi-Referenz durchsuchenTryStrToFloat).

Des weiteren wäre es evtl. sinnvoll, wenn du Delphi-Referenz durchsuchencase of anstelle der vielen if nutzen würdest, wie du es an anderen Stellen im Code auch machst:

Delphi-Quellcode:
case lol of
  1: begin

     end;
  2: begin

     end;
  // ...
end;
Auch das könntest du vereinfachen:

Delphi-Quellcode:
case Combobox1.ItemIndex of
0: lol := 1;
1: lol := 2;
2: lol := 3;
3: lol := 4;
end;
und zwar so:

lol := Combobox1.ItemIndex + 1;
  Mit Zitat antworten Zitat
Benutzerbild von brinkee
brinkee

Registriert seit: 27. Aug 2004
60 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Probleme mit einem Rechner

  Alt 4. Okt 2007, 15:03
Hi,

erstmal nicht:

Delphi-Quellcode:
if lol = 1 then
ergebnis2 := Format('%.2f',[2* pi * r]);
Label2.Caption := ergebnis2;
ergebnis3 := Format('%.2f',[2* r]);
Label3.Caption := ergebnis3;
ergebnis4 := Format('%.2f',[pi* r * r]);
Label4.Caption := ergebnis4;
sondern: in deinem Fall wohl eher:

Delphi-Quellcode:
if lol = 1 then
begin
  ergebnis2 := Format('%.2f',[2* pi * r]);
  Label2.Caption := ergebnis2;
  ergebnis3 := Format('%.2f',[2* r]);
  Label3.Caption := ergebnis3;
  ergebnis4 := Format('%.2f',[pi* r * r]);
  Label4.Caption := ergebnis4;
end;
Aber das schlimmste ist, dass Du mit

r2 := strtoint(ergebnis1); Versuchst, einen String, in dem '1.45333' oder so (also ein Gleitkommawert in einen String konvertert), in ein Integer umzuwandeln, also eine Ganzzahl. Da meckert er mit Recht. Alo entweder runden, oder in Float konvertieren.

LG, Markus
Markus Brinkmann
  Mit Zitat antworten Zitat
Patrick162

Registriert seit: 24. Sep 2007
8 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Probleme mit einem Rechner

  Alt 4. Okt 2007, 15:12
Meinst du wenn ich die exe starte?

tschuldigung, bin noch ein anfänger xD

also, man wählt aus was vorgegeben ist und nur dieses edit wird freigegeben.
z.B edit 1 für r.
dann habe ich 3, 3,0 und 3.0 eingegeben und jedes mal kommt der error


Edit: ok danke, ich probiers mal!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Probleme mit einem Rechner

  Alt 4. Okt 2007, 15:14
Zitat von Patrick162:
also, man wählt aus was vorgegeben ist und nur dieses edit wird freigegeben.
Und die anderen Edits sind dann leer? Dann benutz TryStrToFloat statt StrToFloat.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von brinkee
brinkee

Registriert seit: 27. Aug 2004
60 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Probleme mit einem Rechner

  Alt 4. Okt 2007, 16:47
So, mit deinen Edits ist alles im Lot. Ich weiß zwar nicht genau, was Du damit vorhast, aber okay...

Delphi-Quellcode:
[..]

var
  Form1: TForm1;
  r, u, d, A, r2: extended;
  ergebnis1, ergebnis2, ergebnis3, ergebnis4: string;
  pi: extended;
  lol: integer;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

r := strtofloat(Edit1.Text);
u := strtofloat(Edit2.text);
d := strtofloat(Edit3.Text);
A := strtofloat(Edit4.Text);
pi := 3.14159265358;

if lol = 1 then
begin
  ergebnis2 := FloatToStr(2* pi * r);
  Label2.Caption := ergebnis2;
  ergebnis3 := FloatToStr(2* r);
  Label3.Caption := ergebnis3;
  ergebnis4 := FloatToStr(pi* r * r);
  Label4.Caption := ergebnis4;
end;

if lol = 2 then
begin
  ergebnis1 := FloatToStr(u / 2 * pi);
  Label1.Caption := ergebnis1;
  r2 := strtofloat(ergebnis1);// StrToFloat, statt StrToInt!!!
  ergebnis3 := FloatToStr(r2 * 2);
  Label3.Caption := ergebnis3;
  ergebnis4 := FloatToStr(pi* r2 *r2);
  Label4.Caption := ergebnis4;
end;

if lol = 3 then
begin
  ergebnis1 := FloatToStr(d / 2);
  Label1.Caption := ergebnis1;
  r2 := strtofloat(ergebnis1);// StrToFloat, statt StrToInt!!!
  ergebnis2 := FloatToStr(2* pi * r2);
  Label2.Caption := ergebnis2;
  ergebnis4 := FloatToStr(pi* r2 * r2);
  Label4.Caption := ergebnis4;
end;

if lol = 4 then
begin
  ergebnis1 := FloatToStr(pi * A / 2);
  Label1.Caption := ergebnis1;
  r2 := strtofloat(ergebnis1);// StrToFloat, statt StrToInt!!!
  ergebnis2 := FloatToStr(2* pi * r);
  Label2.Caption := ergebnis2;
  ergebnis3 := FloatToStr(r2* 2);
end;

end;
[...]
Wie gesagt: beschäftige Dich mal damit, was String, Integer, Float, Real usw. bedeuten und wie man sie ineinander umwandelt. Mir scheint, als hättest Du von Variablentypen noch nie etwas gehört...

LG, Markus
Markus Brinkmann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 10:11 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