Wie erzeugt man zufällige Kommazahlen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Travis
Beiträge: 35
Registriert: 09.03.2010 19:21

Wie erzeugt man zufällige Kommazahlen?

Beitrag von Travis »

Habe mal wieder ein Brett vorm Kopf. Ich möchte Zufällige Kommazahlen z.B. von 0 bis 5 erzeugen. Ich bekomme aber nur Ganzzahlen heraus. Kann PureBasic das nicht von Haus aus, so dass man eine extra Funktion schreiben müsste, oder habe ich da was übersehen. An die Definition der Variable als Float habe ich gedacht.

Code: Alles auswählen

InitSprite()
InitKeyboard()

Global ResX = 1024
Global ResY = 768

OpenScreen(ResX,ResY,32,"",0)

Dim Value.f(9)

; >>>>> --------------------------- hier werden die Zahlen erzeugt ------------------------------- <<<<<<<
For i = 0 To 9
 Value(i) = Random(5)
Next
; >>>>> --------------------------- hier werden die Zahlen erzeugt ------------------------------- <<<<<<<

Repeat
ClearScreen(0)

 ExamineKeyboard()

 StartDrawing(ScreenOutput())
  For i = 0 To 9
   DrawText(x,i*15, "Testzahl " + StrF(value(i),3))
  Next
 StopDrawing()

FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Man kann alles sagen, man muss es nur vernünftig begründen können.
Ich hasse WASD-Steuerung | Ohne Pix saug ich nix | www.travis.bplaced.net
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Re: Wie erzeugt man zufällige Kommazahlen?

Beitrag von a14xerus »

lass dir halt nen random zwischen 0 und 5000 geben und teil durch 1000 und du hast ne zahl zwischen 0 und 5 mit 3 nachkommastellen ;)

oder halt random 0 -> 500000 und durch 100000 teilen => zahl mit 5 nachkommastellen etc ;)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wie erzeugt man zufällige Kommazahlen?

Beitrag von STARGÅTE »

Hier n Macro-Variante von mir:

Code: Alles auswählen

; Zufallszahl zwischen Start und Ende in einem Intervall 
Macro RandomArea(StartValue, EndValue, StepValue=1) 
  ( Random(Int(((EndValue)-(StartValue))/(StepValue)))*(StepValue)+(StartValue) ) 
EndMacro
Anwendung:

Code: Alles auswählen

RandomArea(0, 5, 0.01) ; erzeugt Zufallszahlen zwischen 0 und 5 in 0.01er schritten
Genauso kannst du/man auch ganz anderes erzeugeN

Code: Alles auswählen

RandomArea(-9, 7, 4) ; erzeugt Zufallszahlen zwischen -9 und 7 in 4er schritten (also etweder: -9,-5,-1,3,7)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Travis
Beiträge: 35
Registriert: 09.03.2010 19:21

Re: Wie erzeugt man zufällige Kommazahlen?

Beitrag von Travis »

Ah, danke für die Hilfe. Muss mann also doch selbst machen. Das Beispiel ist wirklich gut. So eine Funktion hätte man doch gleich in Pure Basic integrieren können - die braucht sowieso fast jeder mal.
Jetzt weiss ich aber auch über die Macros bescheid. Sowas gibt's in meiner Muttersprache (Blitz Basic) z.B. nicht.
Man kann alles sagen, man muss es nur vernünftig begründen können.
Ich hasse WASD-Steuerung | Ohne Pix saug ich nix | www.travis.bplaced.net
Antworten