Autor Beitrag
theSonGoku
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 29



BeitragVerfasst: Sa 03.10.09 17:24 
Hallo,

unzwar möchte ich, in einem Array, Zufallszahlen zwischen 0 und 10 generieren.

Z.B:
ausblenden Quelltext
1:
2:
3:
1,00121
0,24121
8,21480

Also eben Nachkommerzahlen zwischen 0 und 10.

Ich bekomme auch Zufallszahlen. Aber keine Nachkommazahlen. Wie mache ich das? Mein Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.btn_generierenClick(Sender: TObject);
var   werte: array[0..40..1of extended;
      i, k: integer;
begin
randomize;
for i := 0 to 4 do
  begin
  werte[i,0] := randomrange(010);
  end;

for k := 0 to 4 do
  begin
  werte[k,1] := randomrange(030);
  end;

lbl_1.Caption := FloatToStr(werte[0,0]) + ' * ' + FloatToStr(werte[0,1]);
lbl_2.Caption := FloatToStr(werte[1,0]) + ' * ' + FloatToStr(werte[1,1]);
lbl_3.Caption := FloatToStr(werte[2,0]) + ' * ' + FloatToStr(werte[2,1]);
lbl_4.Caption := FloatToStr(werte[3,0]) + ' * ' + FloatToStr(werte[3,1]);
lbl_5.Caption := FloatToStr(werte[4,0]) + ' * ' + FloatToStr(werte[4,1]);
end;

mfG
theSonGoku

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Sa 03.10.09 17:59 
Random ohne Parameter liefert Kommazahlen zwischen 0 und 1, das mit 10 multipliziert ist das was du willst.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Sa 03.10.09 18:02 
ausblenden Delphi-Quelltext
1:
zahl:= random(99999)/10000;					


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
theSonGoku Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 29



BeitragVerfasst: Sa 03.10.09 20:51 
user profile iconplatzwart hat folgendes geschrieben Zum zitierten Posting springen:
zahl:= random(99999)/10000;


Danke für die Antwort. :)

Funktioniert prima. :)

Kannst du mir allerdings erklären, wieso du 99999 und 10000 geschrieben hast?
Was haben die Zahlen zu bedeuten?


mfG
theSonGoku
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Sa 03.10.09 21:31 
random(99999) erzeugt eine ganzzahlige Zufallszahl zwischen 0 und 99999. Weil der Wert nun aber kleiner 10 und größer gleich Null sein soll, wird der Wert durch 10000 geteilt ;)

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 03.10.09 22:53 
user profile iconplatzwart hat folgendes geschrieben Zum zitierten Posting springen:
random(99999) erzeugt eine ganzzahlige Zufallszahl zwischen 0 und 99999.
Nope, zwischen 0 und 99998 - ein großer Unterschied :D .
user profile iconplatzwart hat folgendes geschrieben Zum zitierten Posting springen:
Weil der Wert nun aber kleiner 10 und größer gleich Null sein soll[...]
Weshalb die untere Schranke ein-, aber die obere einschließen :nixweiss: ?

Anstatt deinen Code zu korrigieren, wäre es mir allerdings lieber, wenn wir uns darauf einigen könnten, dass user profile iconjakobwenzels Vorschlag eindeutig der bessere ist :zwinker: .

_________________
>λ=
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: So 04.10.09 11:53 
Nein, der funktioniert so nicht. Der liefert nämlich keine Zahl mit 5 Nachkommastellen ;) Aber dessen Ansatz ein wenig überarbeitet wäre sicherlich die beste Lösung ;)

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 04.10.09 23:41 
Von 5 Nachkommastellen hattest du oben nichts geschrieben ... Von daher ist Jakobs Vorschlag durchaus valide ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.