Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Geometrische Körper ausrechnen (https://www.delphipraxis.net/49035-geometrische-koerper-ausrechnen.html)

Coolnes 4. Jul 2005 17:08


Geometrische Körper ausrechnen
 
Hallo. Ich Programmiere gerade ein Programm mit dem ich Körper ausrechnen kann.
Das wären dann bei mir Quader, Pyramide, Kegel und Zylinder. Die ersten beiden Körper hab ich ja noch hinbekommen, doch beim Kegel weiss ich nicht mehr weiter, wenn ich es Kompiliere, dann steht bei denn Warnungen: "[Warnung] Unit1.pas(105): W1036 Variable 'PI' ist möglicherweise nicht initialisiert worden"

Könnt ihr mir einen kleinen Code-Schnippsel aufschreiben!
Hier ist der Quellcode, welches ich geschrieben habe, ist nur der kleine Teil:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var r, h, PI, v: Real;
begin
r :=strtofloat(Edit11.Text);
h :=strtofloat(Edit12.Text);
v :=((1/3)*(PI)*r*r*h);
Edit13.Text :=floattostr(v);
end;

JasonDX 4. Jul 2005 17:10

Re: Geometrische Körper ausrechnen
 
nach dem Begin kommt noch
Delphi-Quellcode:
Pi := 3.1415926; //ect.
oder du lässt die deklaration von PI weg und bindest die unit Math mit ein

Coolnes 4. Jul 2005 17:20

Re: Geometrische Körper ausrechnen
 
Danke hat geklappt!
Und wie würde ich das mit dem "normalem" Pi von Delphi aus hinbekommen?

JasonDX 4. Jul 2005 17:24

Re: Geometrische Körper ausrechnen
 
PI ist in der Unit Math deklariert, also diese Unit einbinden und deine Variablendeklaration rausschmeißen ;)

Thanatos81 4. Jul 2005 17:31

Re: Geometrische Körper ausrechnen
 
Lass einfach deine Deklaration weg. Und schreibst ganz normal Pi in deinen Code.

Die Unit math musste auch nicht einbinden, da Pi auch in der System.pas ist. Kannst ja mal ein leeres Projekt mit nem Button anlegen und das hier ausprobieren:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var A,r : Real;
begin
  r := 2.3;
  A := pi * r*r;
  showMessage(FloatToStr(a));
end;
edit:
Fehler im Code beseitigt. Hate r² stat r*r geschrieben. Danke für den Hinweis, Ultimator.

Ultimator 4. Jul 2005 17:32

Re: Geometrische Körper ausrechnen
 
Zitat:

und das hier ausprobieren
Dann musst du aber pi * r * r schreiben, weil Delphi r² eher nicht mögen wird ;)

Thanatos81 4. Jul 2005 17:39

Re: Geometrische Körper ausrechnen
 
Verdammt, das kommt davon, wenn man es direkt ins Forum tippt, ohne was auszuprobieren :wall:

Danke für den Hinweis, Ultimator!

Coolnes 4. Jul 2005 17:39

Re: Geometrische Körper ausrechnen
 
Das habe ich ja bis jetzt aber jetzt will er nicht richtig rechnen:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var r, h, PI, v, o, s: Real;
begin
Pi :=3.1415926;
r :=strtofloat(Edit11.Text);
h :=strtofloat(Edit12.Text);
v :=((1/3)*(PI)*r*r*h);
s :=(sqrt(h*h)+(r*r));
o :=PI*r*(r + s);
Edit13.Text :=floattostr(v);
Edit14.Text :=floattostr(o);
end;
die oberfläche wird nicht richtig ausgerechnet, ich glaube der zieht die Wurzel nicht?
Bitte um Hilfe.

Thanatos81 4. Jul 2005 17:41

Re: Geometrische Körper ausrechnen
 
Du hast auch immernoch das PI drin. das muss weg. Sonst nimmt er nicht das "Delphi-Pi". Also so:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var r, h, v, o, s: Real;
begin
  r :=strtofloat(Edit11.Text);
  h :=strtofloat(Edit12.Text);
  v :=((1/3)*(PI)*r*r*h);
  s :=(sqrt(h*h)+(r*r));
  o :=PI*r*(r + s);
  Edit13.Text :=floattostr(v);
  Edit14.Text :=floattostr(o);
end;

Khabarakh 4. Jul 2005 17:45

Re: Geometrische Körper ausrechnen
 
Der Fehler liegt meistens beim Programmierer :wink: .
Das hier:
Delphi-Quellcode:
s :=(sqrt(h*h)+(r*r));
sollte wohl eher
Delphi-Quellcode:
s := Sqrt(h * h + r * r);
heißen, oder :wink:² ?

@Thanatos81: Müssen nicht, aber es bietet sich natürlich an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.
Seite 1 von 2  1 2      

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