Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi random mit selbst definierten Zahlen (https://www.delphipraxis.net/110988-random-mit-selbst-definierten-zahlen.html)

baumi03 27. Mär 2008 19:02


random mit selbst definierten Zahlen
 
Ich möchte mit random aus bestimmten Zahlen wie zb. aus 4,7,8,17 eine zufällige Zahl erlangen.
Mit random(10) wird eine Zahl zwischen 1 und 9 ausgesucht.
Kann man auch selber Zahlen definieren aus denen eine Zahl zufällig herausgesucht wird??
Was muss ich da schreiben?

Danke im voraus!

Isabella


[edit=Matze]Sprache auf "Delphi Win32" geändert. MfG, Matze[/edit]

DeddyH 27. Mär 2008 19:04

Re: Dringend!
 
Erstelle Dir ein Array und ermittle eine zufälligen Index. Bist Du Dir übrigens sicher, dass es um .NET geht?

Die Muhkuh 27. Mär 2008 19:05

Re: Dringend!
 
Hi,

zuerst einmal willkommen!

Dann zwei Hinweise:

"Dringend" ist kein aussagekräftiger Threadtitel und bist Du Dir sicher, dass es Delphi.NET ist und nicht Delphi Win32?

Zitat:

Kann man auch selber Zahlen definieren aus denen eine Zahl zufällig herausgesucht wird??
Stichwort hier wäre: Delphi-Referenz durchsuchenArray

Klaus01 27. Mär 2008 19:05

Re: Dringend!
 
Hallo,

Du kannst die Zahlen in ein Array schreiben und die
Indizes mit random auswählen.

Grüße
Klaus

DeddyH 27. Mär 2008 19:07

Re: Dringend!
 
[OT] Ha! Endlich mal Erster :bouncing4: :D [/OT]

baumi03 27. Mär 2008 19:10

Re: Dringend!
 
Danke!

Nein, meinte eh WIN32!

LG

wido 27. Mär 2008 19:31

Re: Dringend!
 
Definiere "Selber Zahlen definieren". Wenn Du einfach einen "Von-Bis-Bereich" definieren willst, wäre ein Array overkill. Angenommen Du willst zufällig eine Zahl zw. 10 und 100 erzeugen, wäre folgendes deutlich schneller:

Delphi-Quellcode:
zufallszahl := random(90) + 10;
Wenn Du allerdings wirklich aus einer zufälligen Zahlenreihe wählen willst, wirst Du um die Verwendung von Arrays nicht drum rum kommen.

Der.Kaktus 27. Mär 2008 19:33

Re: Dringend!
 
Zitat:

Zitat von DeddyH
[OT] Ha! Endlich mal Erster :bouncing4: :D [/OT]

[OT]niemals :-D [/OT]

baumi03 27. Mär 2008 20:14

Re: Dringend!
 
Mit selber Zahlen definieren meini ich zb. 17, 36, 45 und von denen wiederum möchte ich eine Zahl zufällig auswählt haben.
Da bringt mir

Delphi-Quellcode:
zufallszahl := random(90) + 10;
nichts. Weil wiederum de Zahlen zwischen 17 und 36 genommen werden.
Verstehe auch nicht wie ich das mit array machen soll, hätte es probiert aber hat nicht funktioniert.

lg

DeddyH 27. Mär 2008 20:18

Re: Dringend!
 
Delphi-Quellcode:
const MeinArray: array[0..3] of integer = (17,23,67,89);
begin
  ShowMessage(IntToStr(MeinArray[Random(3)]));
end;

baumi03 27. Mär 2008 20:26

Re: Dringend!
 
ja super.. funktioniert...

danke vielmals!

rollstuhlfahrer 27. Mär 2008 20:29

Re: Dringend!
 
da gibts in der Unit Math aber noch was besseres. Das nennt sich RandomFrom und wird mit einem entsprechenden Array aufgerufen, also genau das was du willst.

rollstuhlfahrer

Matze 27. Mär 2008 20:32

Re: Dringend!
 
Hallo Isabella,

auch wenn das Problem erledigt ist, bitte ich dich, wie mehrfach genannt, den Titel anzupassen. Grund hierfür ist, dass das Thema über die Suchfunktion leichter gefunden werden kann.
Du änderst den Titel, indem du deinen ersten Beitrag über http://www.delphipraxis.net/template.../icon_edit.gif editierst und dann einen aussagekräftigen eingibst.

Desweiteren bitte ich dich, die offene Frage als "erledigt" zu markieren. Das geht über den http://www.delphipraxis.net/template...t_answered.gif-Button, den du oben rechts findest.

Danke und Grüße
Matze

jottkaerr 28. Mär 2008 07:40

Re: Dringend!
 
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
const MeinArray: array[0..3] of integer = (17,23,67,89);
begin
  ShowMessage(IntToStr(MeinArray[Random(3)]));
end;

Random(4) wäre besser. Und noch besser wäre Random(Length(MeinArray)) oder gar
Delphi-Quellcode:
MeinArray[Low(MeinArray) + Random(Length(MeinArray))]
Dann ist man unabhängig von den tatsächlichen Arraygrenzen.

jkr


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz