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
Red 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
Tino: 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
Red 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
Allesquarks 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
Allesquarks das angedeutet hat, nur natürlich als Funktion statt Prozedur.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!