For_Next nicht mit Float möglich?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

For_Next nicht mit Float möglich?

Beitrag von Kukulkan »

Hallo,

Folgenden Code möchte ich zum laufen bringen:

Code: Alles auswählen

For j.l = 1 To 400
    Correction.f = j.l / 100   ; Ergibt 0.01 bis 4
    Debug "Correction mit " + Str(j.l) + ": " + Str(Correction.f)
    For i.l = 0 To 255
      Val1.f = Pow((i.l / 255),(1 / Correction.f))
      lValue.l = (255 * (Val1.f)) + 0.5
      If lValue.l > 255: lValue.l = 255: EndIf
      m_red(i.l, j.l) = lValue.l
      m_green(i.l, j.l) = lValue.l
      m_blue(i.l, j.l) = lValue.l
    Next
  Next
Leider ergibt die Debug-Zeile, dass in Correction.f immer nur Ganzzahlen stehen. Ich bin zwar der Meinung dass zB 80 / 100 = 0.8 sein sollte, aber PB ist das nicht. Dann habe ich versucht den Wert j.l durch einen Float-Wert zu ersetzen:

Code: Alles auswählen

k.f = j.l
Correction.f = k.f / 100
Das hat PB aber nicht interessiert und es bleibt bei Ganzzahlen in Correction.f.
Dann wollte ich j.l als Zähler ganz auf Float umstellen (kann ja auch sein dass mal jemand STEP 0.5 benötigt) und nun meldet PB:

An integer assignment is expected after 'For'

Ich finde aber Threads im PB-Forum die eine For-Next-Schleife mit Float durchführen (http://www.robsite.de/php/pureboard/vie ... php?t=1181 der Code ganz unten) und in der Doku steht auch nix davon drinnen dass For-Next nur mit Integer gehen soll.

Wie kann ich meine Berechnung schaffen?

Grüsse,

Volker
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Nim StrF(...)

Code: Alles auswählen

...
Debug "Correction mit " + Str(j.l) + ": " + StrF(Correction.f) 
...
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Antworten