Autor Beitrag
meraya
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mi 20.05.09 00:11 
hallo,
ich schreibe morgen eine informatik klasur und behandeln das thema delphi, ich weiß das wir eine aufgabe bekommen, in der wir per zufall 50 zahlen erzeugen sollen und nach einem weiteren klick auf den button sollen sich diese addieren, da ich aber leider 2 mal gefehlt habe im unterricht hab ich viel verpasst und weiß nicht wie ich es machen soll, wäre voll nett, wenn du mir helfen könntest =) ich bin erst soweit gekommen... =(

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var a: integer;

begin
randomize;
For a :=0 to 49 do


label1.caption:= (IntToStr (random(49) ));


aber wir sollen ja 50 zufällige zahlen auf einmal angezeigt bekommen, aber ich bekomme das einfach nicht hin =(

gruß meraya

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Mi 20.05.09 00:23 
Hallo und :welcome: hier in der EE,

Für den Anfang würde ich dir den Crashkurs von Christian S. empfehlen.
Für dein Problem würde ich eine ListBox nehmen. Dort kannst du alle Einträge hinzufügen. Und danach liest du alle wieder ein und addierst sie.
Dann nimm bitte beim nächsten mal [delphi]-Tags für deinen Quelltext. Das macht ihn übersichtlicher.
Und: Ist morgen heute oder morgen?

MfG
Regan
Dunkel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: Mi 20.05.09 00:23 
Hallo und willkommen im Forum!

So schlecht ist Dein Ansatz doch schon mal nicht! :D
Das Problem ist nur, dass Du hier
ausblenden Delphi-Quelltext
1:
  label1.caption:= (IntToStr (random(49) ));					

immer die letzte Zufallszahl mir der neuen überschreibst. Entweder Du machst es ähnlich wie
ausblenden Delphi-Quelltext
1:
  label1.caption:= label1.caption + '-' + (IntToStr (random(49) ));					

so werden alle Zufallszahlen im Label nacheinander, mit einem Minus getrennt, ausgeben, oder Du nimmst eine visuelle Komponente welche auch mehrzeilig ausgeben kann; TMemo (OH, Google oder Foren-Suchfunktion benutzen um zu erfahren, wie man neue Zeilen zum TMemo hinzufügen kann) z.B..

btw. sollte Randomize; nur ein mal pro Programmstart aufgerufen werden; das ist aber nur ein Schönheitsfehler.

_________________
Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Mi 20.05.09 08:18 
Also ich denke, es würde so am einfachsten gehen
(Wenn Du [ganze] Zahlen zwischen 0 und 50 haben möchtest - sonst nur die 50 [also die maximum-Angabe] verändern):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure ZufallsZahlenErzeugen();
var i,maximum:int;
begin
randomize; //Diese Zeile ist wichtig, damit das Programm weiß, das es gleich Zufallszahlen generieren soll und somit den Generator schon einmal bereitstellt.
maximum:=50;
for i:=0 to 49 do
    zufallsZahlen[i]:=random(maximum);
end;

Wenn Du die zufallszahlen zusammenzählen möchtest:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure ZufallsZahlenZusammenzaehlen(); //Wenn Du die Summe aller 50 generierten Zahlen haben möchtest:
var summe:int;
begin
summe:=0//Diese Zeile ist sinnvoll, damit die Variable auf jeden Fall erst mal 0 ist.
for i:=0 to 49 do
    summe:=summe+zufallsZahlen[i]
//und wenn Du diese Summe ausgeben lassen möchtest, dann z.B. so:
LabelSumme.Caption:=IntToStr(summe);
end;


...wobei Du dieses hier oben unter die var-Definition des Formulars schreiben musst:
ausblenden Delphi-Quelltext
1:
var zufallsZahlen:array[49of int;					


...oder Du könntest natürlich auch die maximale Zahl durch den User bestimmen lassen, indem Du ein Textfeld (z.B. mit dem Namen EditMaximum) anlegst, in das er die maximale Zahl schreiben kann. Das wäre dann so möglich, indem Du nur die maximum-Zuweisung veränderst:
ausblenden Delphi-Quelltext
1:
maximum:=StrToInt(EditMaximum.Text)					


Ich hoffe, das hilft Dir weiter - ist aber noch nicht zu viel auf einmal...