Fragen zur neuen PB Version ...

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Fragen zur neuen PB Version ...

Beitrag 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.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Fragen zur neuen PB Version ...

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag 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 /:->
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag 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...
Zuletzt geändert von Green Snake am 07.08.2005 18:20, insgesamt 2-mal geändert.
-.-"
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag 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?
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag 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.
Antworten