![]() |
Array mit Zufallszahlen
Dieses einfache Programm soll 10 Zufallszahlen erzeugen und anschließend ausgeben. Als Ausgabe erhalte ich jedoch 0 0 0... Was mache ich falsch?
Delphi-Quellcode:
program min_array;
uses crt; const LENGTH = 10; var zufall: array[0..LENGTH] of integer; procedure fillArray(a: array of integer); var i: integer; begin for i := 0 to LENGTH - 1 do a[i] := random(100) + 1; end; procedure printArray(a: array of integer); var i: integer; begin for i := 0 to LENGTH - 1 do writeln(a[i]); end; begin randomize; clrscr; fillArray(zufall); printArray(zufall); readln; end. |
Re: Array mit Zufallszahlen
Ersetze in den Prozedurköpfen 'a : Array ...' durch 'Var a : Array'.
|
Re: Array mit Zufallszahlen
Und ruf
Delphi-Quellcode:
nur einmal auf - nicht jedesmal
randomize;
Am Besten im OnCreate |
Re: Array mit Zufallszahlen
Zitat:
|
Re: Array mit Zufallszahlen
Versuch es mal mit Typisieren und Übergabe by Reference (ungetestet).
Delphi-Quellcode:
program min_array;
uses crt; const LENGTH = 10; type TZufall = array[0..LENGTH - 1] of integer; var zufall: TZufall; procedure fillArray(var a: TZufall); var i: integer; begin for i := 0 to LENGTH - 1 do a[i] := random(100) + 1; end; procedure printArray(var a: TZufall); var i: integer; begin for i := 0 to LENGTH - 1 do writeln(a[i]); end; begin randomize; clrscr; fillArray(zufall); printArray(zufall); readln; end. |
Re: Array mit Zufallszahlen
Zitat:
Zitat:
|
Re: Array mit Zufallszahlen
Da bin ich mir bei TP eben nicht mehr so sicher, deshalb hab ich das so gemacht, sollte immer gehen ;)
[edit] Durch das Var wird das eben zur Übergabe by Reference, oder nicht? Außerdem war sein Ursprungsarray ein Element zu groß, da typisiere ich lieber und arbeite mit dem Typen weiter, der hat dann immer die gleiche Größe. [/edit] [edit2] Zitat:
|
Re: Array mit Zufallszahlen
Delphi-Quellcode:
Kein so dramatischer Fehler, aber du reservierst ein Integer mehr, als du benutzt, da du in den Schleifen nur bis LENGTH-1 durchläufst. Also da noch -1 hin und die Namensgebung der Konstante macht Sinn. :wink:
zufall: array[0..LENGTH] of integer;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 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-2025 by Thomas Breitkreuz