Entwickler-Ecke

Sonstiges (Delphi) - Kurze Frage: pi


Red Eye - Do 01.09.05 13:43
Titel: Kurze Frage: pi
huhu,

habe schon gesucht, aber nix passendes gefunden. nun meine frage:

wie schreibt man pi(3,141..) in delphi, bzw. gibs das überhaupt ??

mfg florian


Martin1966 - Do 01.09.05 13:47
Titel: Re: Kurze Frage: pi
user profile iconRed Eye hat folgendes geschrieben:
wie schreibt man pi(3,141..) in delphi, bzw. gibs das überhaupt ??

Äh? Was meinst du mit "wie schreibt man pi"?


Allesquarks - Do 01.09.05 13:48

Was willst du denn machen? Wenn Du pi in deinem Programm als konstante haben willst dann

Delphi-Quelltext
1:
const pi:=3,1415.........;                    

ansonsten könntest Du es Dir auch über die FPU holen

Delphi-Quelltext
1:
2:
3:
4:
procedure pi(var pi:extended);
asm 
fldpi;
end;


Red Eye - Do 01.09.05 13:52

nen bissel leichter 8)

was is ne FPU ??

vllt. noch ma um zu erklären: es soll nur dafür da sein, um daten eines kreises auszurechnen..

also eher const..

aber es muss ja in ner rechnung stehen, geht das da dann ?


Martin1966 - Do 01.09.05 13:53

Wenn er nur den Wert von Pi haben möchte kann er auch direkt die passende Funktion benutzen:
Delphi Hilfe hat folgendes geschrieben:
Die Funktion gibt den Wert von Pi zurück (3,1415926535897932385).

Unit
System

Kategorie
Arithmetik

Delphi-Syntax:
function Pi: Extended;

Beschreibung
Verwenden Sie die Funktion Pi für den mathematischen Wert Pi in Delphi. Dieser Wert gibt das Verhältnis zwischen dem Umfang und dem Durchmesser eines Kreises an. Pi hat den Näherungswert 3,1415926535897932385.


Red Eye - Do 01.09.05 13:56

mmh, das hatte ich auch schon... aber das hilft mir nich im code... ich poste ma nen teil:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
begin
    radius := StrToFloat (EDT_radius.text);

    ergebnis := 3.141*(radius*radius);
    umfang := 2*3.141*radius;
    dia := 2*radius;

    EDT_ergebnis.Text := FloatToStr (ergebnis);
    EDT_umfang.Text := FloatToStr (umfang);
    EDT_dia.Text := FloatToStr (dia);
  end;


da muss anstatt 3,141 pi hin...

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.


uall@ogc - Do 01.09.05 13:58

für jede 3.141 setzt du einfach die beiden buchstaben "pi" ein


Martin1966 - Do 01.09.05 13:59

user profile iconRed Eye hat folgendes geschrieben:
da muss anstatt 3,141 pi hin...

Und wo liegt das Problem die Zahl durch die beiden Buchstaben zu ersetzen? Hast du meine Antwort oben gelesen?

Lg Martin


Allesquarks - Do 01.09.05 14:00

Ne FPU ist eine Floating Point Unit hat jeder normale Prozessor fest verdrahtet

Muss man für die Funktion Pi nicht gleich die ganze Math-unit einbinden? (Für das bissle)

@@Red Eye: Pi lässt sich ja nicht als Ganzzahl darstellen also wirst Du als Variable ein Fließkomma benutzt haben. Meine Procedure liefert das direkt zurück könntest aber statt extended auch noch double oder single nehmen.


Red Eye - Do 01.09.05 14:00

jo funtz.. so leicht.. dachte das geht nich, da zum beispiel es für die wurzel auch sqrt gibt..

funtz .. danke schön :D

PS. weis jezz warum es missverstädnisse gab.. :oops: pi wird so in delphi geschrieben, was ich nich wusste ... hätte ich da anders forumlieren müssen..


Martin1966 - Do 01.09.05 14:03

user profile iconAllesquarks hat folgendes geschrieben:
Muss man für die Funktion Pi nicht gleich die ganze Math-unit einbinden? (Für das bissle)

Muss man ja auch nicht. Siehe meine Antwort oben.

Lg Martin


TM - Do 01.09.05 14:04

Hallo,

Wenn du die unit math einbindest, kennt er Pi.
Also einfach in die Rechnung pi schreiben.



..


Martin1966 - Do 01.09.05 14:07

Leute, schaut doch bitte in die Delphi-Hilfe bevor ihr hier falsche Informationen veröffentlicht. Ich gehe einfach mal davon aus, dass das nicht nur in Delphi 7 so ist: Pi ist in System.pas implementiert und nicht in Math.pas!

Lg Martin


TM - Do 01.09.05 14:16

ups :oops:

OKOK, dann halt system.pas


LigH - Do 01.09.05 15:20

Soweit ich mich erinnere, war die Fließkomma-Konstante "Pi" schon in Turbo Pascal 3.0 für CP/M verfügbar - damals vermutlich noch im Typ "Real". Immerhin ist die Konstante "Pi" für die Mathematik mindestens so essenziell wie die "natürliche Basis e" (2,71828...).

Die function Pi: Extended; ist übrigens "Compiler Magic"; das bedeutet: Der Compiler kennt diese Funktion als "definiert in der Unit System", aber im Quelltext der System.pas ist sie nicht zu finden. Mit ziemlicher Sicherheit dürfte sie so implementiert sein, wie user profile iconAllesquarks das angedeutet hat, nur natürlich als Funktion statt Prozedur.