Seite 1 von 1

Fragen zur neuen PB Version ...

Verfasst: 07.08.2005 16:46
von PureLust
Hallo zusammen ...

ich bin ja noch relativ neu in PB.

Mir sind jedoch sehr schnell so einige Schwachstellen aufgefallen, die ich so von keiner anderen Spache her kenne.

So ist z.B. die fehlende Rechengenauigkeit bei Fließkommazahlen sowie die Beschränkung auf Integerzahlen bei einigen Befehlen (z.B. bei FOR/NEXT-Schleifen) doch recht ... ähm ... sagen wir mal ... ungewöhnlich.

Und da ja an PB noch fleißig weiterentwickelt wird, wollte ich mal nachfragen ob sich in dieser Richtung evtl. irgend etwas tut?
(Zumindest bei der Rechengenauigkeit. Die For/Next-Geschichte kann man ja zur Not noch selber z.B. mit einer Repeat/Until nachbilden.)

Gruß, P.L.

Re: Fragen zur neuen PB Version ...

Verfasst: 07.08.2005 16:51
von DarkDragon
PureLust hat geschrieben:Hallo zusammen ...

ich bin ja noch relativ neu in PB.

Mir sind jedoch sehr schnell so einige Schwachstellen aufgefallen, die ich so von keiner anderen Spache her kenne.

So ist z.B. die fehlende Rechengenauigkeit bei Fließkommazahlen sowie die Beschränkung auf Integerzahlen bei einigen Befehlen (z.B. bei FOR/NEXT-Schleifen) doch recht ... ähm ... sagen wir mal ... ungewöhnlich.

Und da ja an PB noch fleißig weiterentwickelt wird, wollte ich mal nachfragen ob sich in dieser Richtung evtl. irgend etwas tut?
(Zumindest bei der Rechengenauigkeit. Die For/Next-Geschichte kann man ja zur Not noch selber z.B. mit einer Repeat/Until nachbilden.)

Gruß, P.L.
Floats sind und bleiben ungenau(das ist überall so), allerdings kommen in PB 4.0 Doubles hinzu. Beim For Next etc. mit Integerbeschränkung gibt es Umwege.

Verfasst: 07.08.2005 16:51
von Deeem2031
Doubles (höhere Rechengenauigkeit) sind meines Wissens für 4.0 geplant. Wenn du willst kannst du aber auf Userlibs dafür nutzen. Auf PureArea findest du bestimmt welche.

[Edit] Drängel dich nicht immer vor DD /:->

Verfasst: 07.08.2005 17:04
von Green Snake
>>[Edit] Drängel dich nicht immer vor DD
:lol:

zum thema.
wie meint ihr das mit integer zahlen?
kann man in for schleifen den float sprich, flieskomma zahlen nutzen?
(bei anderen sprachen?)

edit:
ja kann man :mrgreen:

edit2:
sorry, meine info quelle hat die frage falsch verstanden :lol:
geht seiner meinung nach auch nicht :wink:

edit3:
hab nochmal nachgeschaut, sollte in c++ gehen...

Verfasst: 07.08.2005 17:59
von Zaphod
floats sind in jeder imperativen programmiersprache ungenau. das liegt daran, wie floats im prozessor realisiert sind. wenn du genaue fließkomma zahlen haben willst, mußt du auf funktionale programmiersprachen zurückgreifen, die oft nicht die fpu benutzen. dann läuft das ganze aber mit einem tausendstel der geschwindigkeit.


in c und java ging es auf jeden fall nicht. ich bin mir ziemlich sicher dass das in den meisten sprachen nicht geht. es ist auch keine sonderlich gute idee, denn das verlockt zu konstruckten wie

Code: Alles auswählen

solange(floatvariable1 ungleich floatvariable2)
    mache irgendwas
und das ist eine potentielle endlosschleife. auf die genauigkeit von fließkommazahlen kann man sich niemals verlassen, in keiner sprache die in akzeptierbarer geschwindigkeit mit floats und doubles arbeitet.

in welchen sprachen außer c++ soll denn das gehen?

Verfasst: 07.08.2005 18:15
von Zaphod
ich habe es grade nochmal probiert... es funktioniert tatsächlich auch in java!

naja, ist auch egal, das ist ja eine einschränkung, die leicht zu umgehen ist und wie gesagt ist es auch programmieranfänger freundlicher wenn das nicht funktioniert, denn dass floats und doubles ungenau sind, scheint ja selten bis zu anfängern durchzudringen.