Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi >= bei real? (https://www.delphipraxis.net/38870-%3D-bei-real.html)

Airblader 25. Jan 2005 13:06


>= bei real?
 
hi ;)

muss ein kleines programm für mathe schreiben (Heron-Verfahren) und ich bau es etwas aus (nur checks oder so)

Jetzt will ich prüfen, ob x² >= a ist.
wenn nicht, soll eine fehlermeldung erscheinen.

aber das geht nicht:

Delphi-Quellcode:
if (x * x) >= a then
Er bricht mit der Meldung ab, dass der Operator nicht auf diesen Operandentyp anwendbar ist.

Aber wie prüfe ich nun, ob x² größergleich a ist?

x und a sind beides real zahlen

air

sakura 25. Jan 2005 13:07

Re: >= bei real?
 
Wie sind X und A deklariert? Mit normalen Float-Zahlen geht das.

...:cat:...

toms 25. Jan 2005 13:07

Re: >= bei real?
 
Compiliert bei mir problemlos:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  x,a: real;
begin
  if (x * x) >= a then
  begin
    //...
  end;
end;

Aenogym 25. Jan 2005 13:08

Re: >= bei real?
 
Delphi-Quellcode:
if ((x * x) > a) or ((x * x) = a) then
//...
:thumb: Aenogym

Airblader 25. Jan 2005 13:14

Re: >= bei real?
 
Habs nun ganz anders gemacht ;)

Delphi-Quellcode:
if (x * x) < a then
So erspar ich mir sowal >= als auch ein "not" oder die "lange" Lösung von Aenogym.

Trotzdem nochmal Danke :)

@toms: Bei mir geht (ging) es aber nicht :gruebel:

air

Ultimator 25. Jan 2005 13:15

Re: >= bei real?
 
Dann hast du aber ein Problem, wenn x² genau so groß is wie a ;-)

Chegga 25. Jan 2005 13:16

Re: >= bei real?
 
Hi,

Delphi-Quellcode:
if ((x * x) > a) or ((x * x) = a) then
//...
:roll: Umständlicher geht es auch nicht mehr... :wink:
So geht es bei mir auch problemlos:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  x,a: real;
begin
  if (x * x) >= a then
  //...
end;
MfG Marc

Wuaegner 25. Jan 2005 13:17

Re: >= bei real?
 
Da hat er Recht, und
Zitat:

if ((x * x) > a) or ((x * x) = a) then
das is doch nicht wirklich lang :gruebel:

Airblader 25. Jan 2005 13:18

Re: >= bei real?
 
Zitat:

Zitat von Ultimator
Dann hast du aber ein Problem, wenn x² genau so groß is wie a ;-)

Was erlaubt ist.
Wir haben heron zwar noch nicht (Vorarbeiter :angel: )

aber im buch steht "für x² >= a"

d.h. gleichgroß ist erlaubt (erzeugt dann nur einen rechenschritt).

Ich will ja nur x² > a abfangen, um Fehleingaben zu verhindern :)

air

Wuaegner 25. Jan 2005 13:20

Re: >= bei real?
 
Zitat:

Jetzt will ich prüfen, ob x² >= a ist.
wenn nicht, soll eine fehlermeldung erscheinen.
Zitat:

Ich will ja nur x² > a abfangen, um Fehleingaben zu verhindern
:spin2:

Aenogym 25. Jan 2005 13:23

Re: >= bei real?
 
Zitat:

Zitat von Chegga
Hi,

Delphi-Quellcode:
if ((x * x) > a) or ((x * x) = a) then
//...
:roll: Umständlicher geht es auch nicht mehr... :wink:

ich hab das gleiche komische problem, wie air. bei mir geht obiges, aber nicht >=...


Zitat:

Zitat von Chegga
So geht es bei mir auch problemlos:
[...]

du glücklicher ;)

Aenogym

Wuaegner 25. Jan 2005 13:26

Re: >= bei real?
 
hm
bei mir geht's auch so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  x,a: real;
begin
  if (x * x) >= a then
  //...
end;

Airblader 25. Jan 2005 13:26

Re: >= bei real?
 
Zitat:

Zitat von Wuaegner
Zitat:

Jetzt will ich prüfen, ob x² >= a ist.
wenn nicht, soll eine fehlermeldung erscheinen.
Zitat:

Ich will ja nur x² > a abfangen, um Fehleingaben zu verhindern
:spin2:

Sorry, im 2. sollte es "<" und nicht ">" sein :lol:

Naja, jetzt geht alles :)

Es sei denn, die Wurzel aus 16 ist nicht 4 :mrgreen:
(jaja, +- 4, aber bei uns nur nicht negative Zahlen)

air

Matze 25. Jan 2005 13:28

Re: >= bei real?
 
Zitat:

Zitat von Airblader
Es sei denn, die Wurzel aus 16 ist nicht 4 :mrgreen:
(jaja, +- 4, aber bei uns nur nicht negative Zahlen)

Wurzel 16 ist definitiv 4, nicht +/- 4 *klugsch...*

Chegga 25. Jan 2005 13:30

Re: >= bei real?
 
Hi,
Zitat:

Zitat von Airblader
(jaja, +- 4, aber bei uns nur nicht negative Zahlen)

Es gibt nur positive Zahlen unter der Wurzel.
Alles andere ist Sinnlos. :zwinker:

MfG Marc

[Edit] Mein "Stadtsnachbar" war mal wieder schneller! :wall: [/Edit]

Ultimator 25. Jan 2005 13:31

Re: >= bei real?
 
Nö, denn...
Code:
sqr(x)=a <=> sqrt(a)=x
Dann kannst du ja, wenn a 16 sein soll, für x sowohl +4 als auch -4 einsetzen ;-)
Weil das Vorzeichen bei geradem Exponenten wegfällt ;-)

*auch mal klugsch...en will* :mrgreen:

Wuaegner 25. Jan 2005 13:31

Re: >= bei real?
 
Aber:

x² = 16 |wurzel( )
x = +/- 4 <= das is dann aber schon die Lösungsmenge gell?

st-matze 25. Jan 2005 13:32

Re: >= bei real?
 
Ich würde ja zum Vergleich von float/double and so on
grundsätzlich folgendes empfehlen

Delphi-Quellcode:
uses
  Math,
  Types;
{..}
  if CompareValue(x*x,a) = LesserThanValue then

SubData 25. Jan 2005 13:32

Re: >= bei real?
 
√ aus ± 16 = 4 ...

Steve 25. Jan 2005 13:35

Re: >= bei real?
 
Wurzel von -16 ist die leere Menge (außer bei komplexe Zahlen glaub ich)

Wurzel 16 = +-4 stimmt.


Ist ja aber hier auch wurscht -g-

Gruß
Stephan :dance:

Aenogym 25. Jan 2005 13:35

Re: >= bei real?
 
Zitat:

Zitat von SubData
√ aus ± 16 = 4 ...

nö. wurzel aus -16 gibts net :tongue:

edit: oder hat meine lehrerin mal wieder blödsinn gelabert, um uns nicht zu verwirren? (ich kann mich noch daran erinner: "es gibt keine zahlen, die kleiner als 0 sind" oder "mehr als 360° gibts nicht")

Aenogym

SubData 25. Jan 2005 13:39

Re: >= bei real?
 
-Ankopphau- ... Denkfehler :mrgreen:

Nee .. Quark .. garnich Denkfehler... der Taschenrechner sagt Wurzel aus -16 = 4 -hm-

Dax 25. Jan 2005 13:39

Re: >= bei real?
 
Wurzel von -16 = 4i :tongue:

[-edit-]
Die Wurzel aus -1 ist einfach als i definiert. Deshalb ist 16i² 4²*i² = -16*1 = -16 :mrgreen:

st-matze 25. Jan 2005 13:39

Re: >= bei real?
 
[klugscheisser]

√ aus -16 = 4i mit i² = -1 //imaginäre Zahlen halt

[/klugscheisser] :mrgreen:

Chegga 25. Jan 2005 13:39

Re: >= bei real?
 
Zitat:

Zitat von Wuaegner
Aber:

x² = 16 |wurzel( )
x = +/- 4 <= das is dann aber schon die Lösungsmenge gell?

Das tut ja meinen Augen weh! :(
Wurzel bedeutet immer die Seitenlänge eines Quadrates!
Deshalb ist z.B. Wurzel 16 = 4 :!:
Mathematisch gesehen würde -4 x -4 (=) 16 geben.
Aber welches Quadrat hat die Seitenlägne -4??

MfG Marc

Aenogym 25. Jan 2005 13:42

Re: >= bei real?
 
wir werden off-topic :zwinker:

Dax 25. Jan 2005 13:43

Re: >= bei real?
 
Der Zahlenraum I nennt sich nicht umsonst imaginär ;)

Sharky 25. Jan 2005 13:49

Re: >= bei real?
 
Zitat:

Zitat von Aenogym
wir werden off-topic

Genau. Darum bitte ich euch zum Thema zurück zu kommen :stupid:

Matze 25. Jan 2005 13:52

Re: >= bei real?
 
Was ist denn nun mit dem Problem? Geht es jetzt oder nicht? Es muss eigentlich gehen.



Sorry, muss ich nur kurz klarstellen. :roll:

Zitat:

Zitat von Steve
Wurzel 16 = +-4 stimmt.

definitiv nicht!

Wuaegner 25. Jan 2005 13:53

Re: >= bei real?
 
Sorry,
Zitat:

Aber:

x² = 16 |wurzel( )
x = +/- 4 <= das is dann aber schon die Lösungsmenge gell?


Das tut ja meinen Augen weh!
Das stimmt so.. warum deine Augen wehtun muss einen anderen Grund haben.

:duck: back to topic

dizzy 26. Jan 2005 03:30

Re: >= bei real?
 
Zitat:

Zitat von Matze
Sorry, muss ich nur kurz klarstellen. :roll:

Zitat:

Zitat von Steve
Wurzel 16 = +-4 stimmt.

definitiv nicht!

Sorry, aber dazu will ich jetzt mal eine Erklärung... Hat deine Parabel mit f(x)=x²-5 auch nur eine Nullstelle!?

Airblader 26. Jan 2005 05:22

Re: >= bei real?
 
Bei uns ist sqrt(16) != [+-] 4

denn unsere Wurzeldefinition ist:

Zitat:

Die Wurzel aus a ist diejenige nicht negative Zahl deren Quadrat a ergibt.

mirage228 26. Jan 2005 05:53

Re: >= bei real?
 
Zitat:

Zitat von Airblader
Bei uns ist sqrt(16) != [+-] 4

denn unsere Wurzeldefinition ist:

Zitat:

Die Wurzel aus a ist diejenige nicht negative Zahl deren Quadrat a ergibt.

Sorry,

dann ist eure Definition falsch.

-4 * -4 ist genauso 16, wie 4 * 4 :!:

(Wenn Du mir nicht glaubst, tippe es mal in den Taschenrechner ein z.B.)
Oder schau Dir mal dizzy's Beispiel an, das macht es auch gut deutlich.

mfG
mirage228

Shaman 26. Jan 2005 07:17

Re: >= bei real?
 
Hallo zusammen

Code:
&#8730;(a²) = |a|
Mein alter Mathelehrer bekäme ja Zustände, wenn er diesen Thread lesen würde... :roll:

Gruss
Shaman

Chegga 26. Jan 2005 11:57

Re: >= bei real?
 
Zitat:

Zitat von Shaman

Code:
&#8730;(a²) = |a|
Mein alter Mathelehrer bekäme ja Zustände, wenn er diesen Thread lesen würde... :roll:

Toll. Ich glaube, dass jeder hier weiß, dass Wurzel(a²), Betrag a gibt.
Es geht hier um etwas anderes. :wink:
Zitat:

Die Wurzel aus a ist diejenige nicht negative Zahl deren Quadrat a ergibt.
Das ist vollkommen korrekt!
Mein Mathelehrer (Prof. Titel und hat 2 Mathematik Bücher geschrieben),
hat mir/uns genau dieses Zitat beigebracht, was absolut logisch ist.
Übrigens:
Wenn ich in meinen Taschenrechner (Casio fx-82 Solar)
Wurzel-16 eintippe, dann kommt das heraus:
-E- (Was so viel wie Error bedeutet :zwinker: )

MfG Marc

P.S.: Hiermit entschuldige ich mich bei den Mods, dass ich leider OT geworden bin.

Airblader 26. Jan 2005 12:08

Re: >= bei real?
 
@mirage

ich sagte dass ist unsere definition!
klar ist -4 * -4 = 16, aber deswegen muss man es nicht zu quadratwurzeln zählen.

was wäre, wenn du 5x in einer gleichung Wurzel 16 hast?

Viel Spaß, dann darfst du die Gleichung in allen Varianten durchrechnen

air

Airblader 26. Jan 2005 19:40

Re: >= bei real?
 
Zitat:

Zitat von SubData
-Ankopphau- ... Denkfehler :mrgreen:

Nee .. Quark .. garnich Denkfehler... der Taschenrechner sagt Wurzel aus -16 = 4 -hm-

Meiner sagt da "ERROR" :shock:

aus -16 kann man keine Wurzel bilden.

angenommen:
Wurzel 16 = 4:

4² = 16
16 <> -16

Wurzel 16 = -4
(-4)² = 16
16 <> -16


denn alles gibt quadriert etwas nich negatives

air

edit:
oh sry 4 doppelpost..hab gar nich aufgepasst

dizzy 27. Jan 2005 00:55

Re: >= bei real?
 
Ach Leute... ihr vermischt doch hier wieder zwei Dinge.

Das eine ist es eine Wurzel aus einer negativen Zahl zu ziehen. Und wie oben schon oft geschrieben geht das sehrwohl. Dass euer TR da nur "-E-" schreibt liegt daran, dass das Teil wohl nicht mit komplexen Zahlen kann. Bei mir ist sqrt(-16) = +/-4i. (Das +/- steht nicht drauf, aber schaut euch mal dazu ein paar Bücher o.ä. an...)

Das andere ist ist eben dass es beim Wurzel ziehen IMMER 2 Lösungen gibt, AUSSER bei sqrt(0) :!:
Die negative Lösung ist genau so eine Lösung wie die positive. Sie sind gleichwertig. Deshalb hat eine Gleichung 4. Grades nunmal auch bis zu 4 Nullstellen. (Edit: Unter Berücksichtigung der komplexen Zahlen hat sie sogar IMMER 4 Nullstellen, im Zweifelsfall sind sie auch alle gleich. Dann ist dies eine sog. vierfache Nullstelle.) Ich erinnere mich an eine Aufgabe in meiner Abiklausur in der man 2 Mal eine Gleichung 4. Grades substituieren musste, und bei der Rückführung trat eine Doppelwurzel auf. Diese Doppelwurzel hatte insgesamt 4 Lösungen. Ich habe für die Aufgabe volle Punktzahl bekommen. Und nu?


Ich bringe hier jetzt einen Spruch den ich eigentlich nicht mag. Aber wenn ich sehe was hier mit Halbwissen rumgeschleudert wird, wird mir übel.
"Wenn man keine Ahnung hat, einfach mal....." (ihr wisst schon ;))

Mit 14/15/whatever hatte ich auch noch null Plan von komplexen Zahlen und dergleichen, und uns wurde auch gesagt: "Ja, sqrt(-1) geht nicht.", einfach um uns damit nicht zu belasten. Das dahinter stehende Konstrukt ist etwas heftiger, und auch ich habe es erst in der FH voll verstanden. Bitte behauptet nicht, dass etwas wovon ihr nichts wisst, nicht existiert.

btw: Meine Mathe-LK-Lehrerin damals hatte auch keinn Plan als ich sie nach komplexen Zahlen fragte! Aber sie wusste zumindest von den zwei Lösungen einer Wurzel ^^



Schuldigung, musste ich an dieser Stelle einfach los werden :duck:

Nachti,
Fabian

Airblader 27. Jan 2005 05:20

Re: >= bei real?
 
Noch eins ;)

Aber dann müsste die Wurzel aus negativen Zahlen doch eine total (!) andere Methode sein.

Denn bei mir gibt sqrt(x) für x < 0 nicht, was quadriert x geben könnte

air

dizzy 27. Jan 2005 10:52

Re: >= bei real?
 
Man führte dazu die imaginäre Einheit ein, und ergänzt damit den Zahlenstrahl zur Gauss'schn Zahlenebene. Danach besteht jede Zahl aus zwei komponenten, nämlich Real- und Imaginärteil. Eine Zahl heisst dann nicht mehr "x", sondern quasi "x + yi". Das i ist nicht anders zu behandeln wie eine Variable die nie einen konkreten Wert zugewiesen bekommt, aber i² = -1.

Und dadurch allein lässt sich das ganze lösen: sqrt(x) mit x<0 ist "0 + sqrt(x)*i".
sqrt(-16) wäre also 0+4i. Das ganze zum Quadrat (die 0 kann man sich ja sparen): (4i)² = 4² * i² = 16 * -1 = -16

Kunstvoll gell!? Und was das ganze so irre macht ist, dass man mit diesen 2-komponentigen Zahlen ganz normal weiterhin addieren, subtrahieren, multiplizieren, dividieren, potenzieren... etc.pp. kann. Sämtliche Axiome sind erhalten. Somit ist die Einführung der imaginären Komponente ein absolut gültiger Vorgang, und in der Physik zeigt sich oftmals dass die gesamte Mathematik sehr oft komplexer Natur ist. Es ist eine natürliche Erweiterung die nicht nur gültig ist, sondern zwangsläufig dazu gehört.
Jede dir bekannte Zahl ist somit "x + 0*i", und beim Radizieren negativer Realanteile stößt man als erstes an den Punkt an dem der Imaginäranteil einen Wert <> 0 bekommt.
Man kann die Rechenweise mit diesen Zahlen sogar auf die Vektorrechnung zurückführen! Es ist wie mit anderen 2-dim. Vektoren, nur dass man noch eine weitere Multiplikation einführt - die komplexe Multiplikation (daher der Name "komplexe Zahlen").

Und jetzt der Hammer: Man kann's noch weiter treiben, mit den Quaternionen oder hyperkomplexen Zahlen. Diese haben 3 Imaginäranteile und einen Realanteil. Problem bei diesen: Bei Quaternionen geht die Kommutativität verloren, bei den hyperkomplexen Zahlen geht das inverse Element bez. der Multiplikation. Man muss also Einbußen hinnehmen beim Rechnen. Man kann sogar ein Gerüst spannen so dass eine einzige Zahl aus 8 Werten besteht, Octernionen. Eine 8-dimensionale Zahl! Hier gehen weitere Axiome flöten, und es gibt schon keine praktische Anwendung mehr für diese Zahlen. Aber es ist denkbar.

Wie du siehst sind die komplexen Zahlen die vollständigsten. Alle Regeln gelten, und alle Operationen sind ohne Einschränkung anwendbar. Die Wurzel aus -1 ist i; i² = -1
Man kann mit diesen Zahlen zum Teil wunderbar einfach rechnen, und ohne sie würdest du nicht ein mp3 zu hören bekommen. Die Fouriertransformation baut nämlich auf komplexe Zahlen.


:hi:,
Fabian


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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