Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi p-g Formel rechner (https://www.delphipraxis.net/53343-p-g-formel-rechner.html)

DaHui 14. Sep 2005 14:58


p-g Formel rechner
 
ka ob das hier rein passt gab hier schonmal so was ähnliches desshalb habs ich ma hier rein gemacht!

mein Problem:

möchte einen p-q Formel rechner machen
klappt aba mit dem code so wie ich ihn hab schon ganz am Anfang nich =)

Bin noch absoluter Anfänger also nich so hart sein und nich in totalem Fach chinesisch antworten plz =)( hoffe Prog sprach erichtig angegeben wenn nich dürfts ruhig sagen xD)
der Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if (edit1.text='') or (edit2.text='') then
Application.MessageBox('Kein Wert angegeben', 'Fehler', MB_OK+MB_ICONERROR)
else
Label2.caption:=Floattostr(strtofloat(-1*(1/2*edit1.text))+strtofloat((edit1.text/2)^1/2)-strtofloat((edit2.text)*-1));
end;
soll so sein das nachher in 2 labels jeweils ein X wert angegeben werden in 2 edit fenster können die p und q Werte eingesetzt werden......

thx im Vorraus :)

ibp 14. Sep 2005 15:04

Re: p-g Formel rechner
 
schau dir mal genau das an ...
Delphi-Quellcode:
...strtofloat(-1*(1/2*edit1.text))...
du rechnest mit einem text! du solltest erst den text in eine zahl umwandeln und dann rechnen!

...und herzlich willkommen bei dp! :dp:

hanselmansel 14. Sep 2005 15:05

Re: p-g Formel rechner
 
HiHo,

Wenn dein teures Leben nicht davon abhängt, dann würde ich dir mal stark raten, SpinEdit-Felder (TSpinEdit) zu benutzen. Deren Eigenschaft Value ist praktischerweise schon ein Integer (Ganzzahl). Des weiteren gibt es den Exponenten-Operator ^ meines wissens unter Delphi nicht.

greez

hanselmansel

ibp 14. Sep 2005 15:07

Re: p-g Formel rechner
 
@hanselmansel: wer sagt denn dass man mit der pq-formel nur mit ganze zahlen rechnen kann?

DaHui 14. Sep 2005 15:08

Re: p-g Formel rechner
 
klar bin ich blöd hätte man auch alleine drauf kommen können....

danke!!!!

hanselmansel 14. Sep 2005 15:10

Re: p-g Formel rechner
 
Zitat:

Zitat von ibp
@hanselmansel: wer sagt denn dass man mit der pq-formel nur mit ganze zahlen rechnen kann?

Jau, ist mir aufgefallen, als ich in der OH geguckt habe, ob es SQRT() gibt... Ich benutze das Ding (die PQ-Formel) einfach zu selten! :wall:

DaHui 14. Sep 2005 15:12

Re: p-g Formel rechner
 
hehe is auch kagge pq...^^ mach ich gar nich gerne ;)

so nun siehts so aus
Delphi-Quellcode:
Label2.caption:=Floattostr(-1*strtofloat(edit1.text)/2+(strtofloat(edit1.text)^2)^0.5-strtofloat(edit2.text)*-1);
jezz meldet er bei den ^0.5
[Error] Unit1.pas(37): Pointer type required

ka was die Fehler meldung heissen soll also was isn Pointer type??? und was muss ich amchen damits geht =)

hanselmansel 14. Sep 2005 15:13

Re: p-g Formel rechner
 
Das ^ ist unter Delphi keine Rechenoperation. Benutze für Quadratwurzeln die funktion Sqrt().

DaHui 14. Sep 2005 15:15

Re: p-g Formel rechner
 
also sprich

sqrt(strtofloat(edit1.text)....)

jezz hab ich die wurzel wie quadrier ich jezz edit1??

hanselmansel 14. Sep 2005 15:16

Re: p-g Formel rechner
 
Mit dem englischen Square:

Sqr()

BrunoT 14. Sep 2005 15:18

Re: p-g Formel rechner
 
Hi DaHui,

Willkommen

Ich denke Du wolltest es so haben: :mrgreen:

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var
  p, q, x: double;
begin

  if (edit1.text = '') or (edit2.text = '') then
    Application.MessageBox('Kein Wert angegeben', 'Fehler', MB_OK + MB_ICONERROR)
  else
  begin
    p := strtofloatdef(edit1.Text, 0);
    q := strtofloatdef(edit2.Text, 0);
    x := -1 * (1 / 2 * p) - sqrt(sqr(p / 2) - q);
    Label1.caption := Floattostr(x);
    x := -1 * (1 / 2 * p) + sqrt(sqr(p / 2) - q);
    Label2.caption := Floattostr(x);

  end;
end;
mfg

BrunoT

DaHui 14. Sep 2005 15:20

Re: p-g Formel rechner
 
ok danke für die SUPER schnelle Hilfe hier bleib ich =)!!!


@ Bruno klar so is geil nur das ich ka hab wie dus gemaht hast hab das Prog seit montag und Info ind er schuel seit einer woche ;) trotzdem thx ich meine wenn du lsut und Zeit ahst darfst es mir gerne erklären !!!

hanselmansel 14. Sep 2005 15:26

Re: p-g Formel rechner
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  p, q, x: double; //Variablen, die Kommazahlen aufnehmen können
begin

  if (edit1.text = '') or (edit2.text = '') then
    Application.MessageBox('Kein Wert angegeben', 'Fehler', MB_OK + MB_ICONERROR)
  else
  begin
    p := strtofloatdef(edit1.Text, 0); //P und Q werden zugewiesen StrToFloatDef ist einfach die E-Klasse
    q := strtofloatdef(edit2.Text, 0); //wenn StrToFloat ein Polo ist.
    x := -1 * (1 / 2 * p) - sqrt(sqr(p / 2) - q); //X1 wird berechnet
    Label1.caption := Floattostr(x); //X1 wird ausgegeben
    x := -1 * (1 / 2 * p) + sqrt(sqr(p / 2) - q); //Die Variable, die X1 enthielt, kann weiterverwendet werden, und nimmt X2 auf
    Label2.caption := Floattostr(x);  //Hier wird X2 ausgegeben.

  end;
end;
Für deinen Lehrer anschaulicher (weil wir ja wissen, wie umständlich Lehrer sind) kannst du das Programm gestalten, indem du anstelle von "x" die variablen x1 und x2 verwendest.

DaHui 14. Sep 2005 15:30

Re: p-g Formel rechner
 
hey wow danke!!!!!!

sollte jezz klappen bis zum nächsten Problem ;)

hanselmansel 14. Sep 2005 15:32

Re: p-g Formel rechner
 
Zitat:

Zitat von DaHui
bis zum nächsten Problem ;)

Kein Problem. Meine erfahrung zeigt, dass die PRAXIS quasi around the clock besetzt ist.
[OT]
Gibt es eigentlich statistische Daten, auf denen zu sehen ist, zu welcher Uhrzeit sich durchschnittlich wieviele User in der DP tummeln?
[/OT]

ichbins 14. Sep 2005 16:07

Re: p-g Formel rechner
 
es gibt so ne Power-Funktion für ^.
Delphi-Quellcode:
uses
  math {oben hinzufügen}

[...]

x:=power(10,2); {x=10^2}
für Variablen, die Kommazahlen aufnehmen können (float-Variablen) würde ich IMMER den Typ extended nehmen (der ist 10 Byte genau (im gegensatz zu double, der nur 4 hat))

ibp 14. Sep 2005 16:28

Re: p-g Formel rechner
 
.. so würde ich das machen (ohne ausgabenformatierung)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  p,q,a,b: real;
begin
  if trystrtofloat(edit12.Text,p) and trystrtofloat(edit12.Text,q) then
  begin
    a:=-p/2;
    b:=sqrt(sqr(a)-q);
    label1.Caption:=floattostr(a+b);
    label2.Caption:=floattostr(a-b);
  end
  else
    Application.MessageBox('Kein Werte angegeben', 'Fehler', MB_OK + MB_ICONERROR)
end;

DaHui 14. Sep 2005 16:29

Re: p-g Formel rechner
 
jo thx sehs mir nachher mal an mach jezz aba erstmal ne Pause!

dizzy 14. Sep 2005 16:30

Re: p-g Formel rechner
 
Zitat:

Zitat von ichbins
für Variablen, die Kommazahlen aufnehmen können (float-Variablen) würde ich IMMER den Typ extended nehmen (der ist 10 Byte genau (im gegensatz zu double, der nur 4 hat))

Ich nicht. Ich würde Extended dort nehmen wo ich es so genau brauche. Extended ist erheblich langsamer als die anderen Float-Typen, und somit ist es wie so oft Abwägungssache welcher Typ geeignet ist. Ein kanonisches "immer" ist - sorry - Quatsch.

\\edit: Drüberhinaus solltest du deine Aussagen vor dem Absenden überprüfen. Double ist 64Bit (=8 Byte) lang. Single 32Bit (4 byte).
\\edit2: Ergänzender Link


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 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-2025 by Thomas Breitkreuz