Autor Beitrag
steffi1980
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 24.03.09 17:08 
Hallo,

Bin gerade dabei eine Prozedur zu erzeugen, die 10 Zufallszahlen im Bereich 0<=x<=100 erzeugt und in einem Array abspeichert. Gleichzeitig sollen Maximum und Durchschnitt der erzeugten Zufallszahlen berechnet und mit Hilfe von SHOWMESSAGE Anweisungen ausgegeben werden!

Kann mir jemand diese Prozedur schreiben? Wäre echt lieb!
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 24.03.09 17:09 
Was zahlst Du?

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 24.03.09 17:10 
Wie sehen denn deine Ansätze aus? Was hast du bereits, wo kommst du nicht weiter?

Ansonsten wäre das ein Fall für die Jobbörse, bei dem sich jemand schnell ein paar Euro verdienen kann...

_________________
We are, we were and will not be.
steffi1980 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 24.03.09 17:17 
Ok, sorry hab das blöd formuliert. Aber ich versteh nicht viel von Delphi, brauchs aber dringend für ne Klausur.
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 24.03.09 17:21 
Dann zeig doch mal Deine Ansätze!

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
steffi1980 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 24.03.09 17:25 
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
Dann zeig doch mal Deine Ansätze!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
begin
procedure Zufallszahlen (const zahl1, zahl2 : INTEGER);
  VAR a: Array[1..10of INTEGER;
      m: INTEGER;
      d: REAL;
      BEGIN
        RANDOMIZE;
        FOR i:= 1 TO 10 DO
          BEGIN
            a[i]:= RandomRange (1,10);
            m:=

Wie weiter weiß ich nicht und ob das richtig ist bezweifel ich auch stark!

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 24.03.09 17:29 
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
Dann zeig doch mal Deine Ansätze!
Und wenn du keine hast, dann wenigstens einen Preis! :mrgreen:
Hausaufgaben macht dir hier niemand (umsonst :mrgreen: ). Aber wir helfen dir mit dem größten Vergnügen zu lernen, was du dazu wissen musst :zustimm:
Ein Aufruf von randomize; (z.B. im onCreate der Form, bitte nur 1 Mal pro Programm) initialisiert den Pseudo-Zufallsgenerator von Delphi. Mit der Funktion random(range: Integer): Integer erhälst du eine Zufallszahl zwischen 0 und (range-1) (iirc). Damit solltest du schon mal ein paar Schritte weiter sein :zustimm:

Ich seh grad erst deinen aktuellsten Post: Gewöhn dir mal Capslock im Code ab, das sieht doch nix gleich und widerspricht dem Styleguide ;)
RandomRange kannte ich jetzt nicht, wenn die funktioniert, dann ist ja gut. Aber sollen die Zahlen nicht zwischen 1 und 100 liegen? Deine liegen zwischen 1 und 10.
Das Abspeichern im Array funktioniert ja schon ziemlich gut. Das Maximum bekommst du mit einer if-Abfrage in der Schleife: Du fragst, ob die aktuell als Maximum gespeicherte Zufallszahl kleiner ist als die gerade erzeugte, und falls ja, speicherst du die neue, sonst tust du nix. Den Durchschnitt errechnet man (das solltest du wissen, oder? ;) ) indem man über alle Zahlen summiert und dann durch die Anzahl an Zahlen teilt.

edit: Delphi-Code kannst du in <span class="inlineSyntax"><span class="codecomment">{PROTECTTAGd66a386d5c560f97752dc570d8947955}</span></span>-Tags schreiben, dann sieht der viel schöner aus :zustimm:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
steffi1980 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 24.03.09 19:20 
Das wäre jetzt mein nächster Ansatz, kann das Maximum aber nicht beschreiben, weil ichs leider immernoch nicht verstehe.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Zufallszahlen;
  VAR a: Array[1..10of INTEGER;
      m,i: INTEGER;
      d: REAL;
      BEGIN
        RANDOMIZE;
        FOR i:= 1 TO 10 DO
          BEGIN
            a[i]:= Random(100)+1;
            m:= a[1];
            IF a[i]>a[1then showmessage (INTTOSTR(i));


Moderiert von user profile iconKha: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 24.03.09 19:27 
user profile iconsteffi1980 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,

Bin gerade dabei eine Prozedur zu erzeugen, die 10 Zufallszahlen im Bereich 0<=x<=100 erzeugt und in einem Array abspeichert. Gleichzeitig sollen Maximum und Durchschnitt der erzeugten Zufallszahlen berechnet und mit Hilfe von SHOWMESSAGE Anweisungen ausgegeben werden!

Kann mir jemand diese Prozedur schreiben? Wäre echt lieb!


Wenn du gerade eine Prozedur machst, warum sollen wir dir dann einen fertigen Code liefern? :roll:

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
steffi1980 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 24.03.09 19:32 
user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconsteffi1980 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,

Bin gerade dabei eine Prozedur zu erzeugen, die 10 Zufallszahlen im Bereich 0<=x<=100 erzeugt und in einem Array abspeichert. Gleichzeitig sollen Maximum und Durchschnitt der erzeugten Zufallszahlen berechnet und mit Hilfe von SHOWMESSAGE Anweisungen ausgegeben werden!

Kann mir jemand diese Prozedur schreiben? Wäre echt lieb!


Wenn du gerade eine Prozedur machst, warum sollen wir dir dann einen fertigen Code liefern? :roll:


Hatte mich bereits für die unglückliche Formulierung entschuldigt und auch nen Ansatz geliefert, falls du nicht lesen kannst ;-)
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 24.03.09 20:28 
Ich kann sehr wohl lesen, nur sehe es nicht ein mir die Mühe zu machen alles zu lesen wenn der Thread nicht gleich richtig ausformuliert wird. :mahn:

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 24.03.09 20:29 
Moin!

Bitte beim Thema bleiben - oder einfach raushalten, danke. :)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
andras
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 460

Win XP, Win Vista Home Premium, Ubuntu Dapper Drake
Delphi 2005 Pers
BeitragVerfasst: Di 24.03.09 20:40 
Zum Maximum:
Du gehst alle Zahlen im Array durch. Mit der 1. Zahl beginnst du. Diese wird automatisch als Maximum angenenommen. Daran werden alle folgenden Zahlen gemessen. Ist eine größer wird sie als neuer Maximum genommen und die nächsten Zahlen werden an ihr gemessen. Das machst du so lange bis du am Ende des Arrays angekommen bist.

Der Durchschnitt ist dir klar?
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 24.03.09 20:50 
Zu dem Maximum:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
max : integer;

procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
  array : array of integer;
begin
  for i := Low(arrayto High(arraydo
    if max < array[i] then max := array[i];
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  max := 0;
end;


Durchschnitt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
  array : integer;
  summe : integer;
  schnitt : integer;
begin
   for i := low(arrayto high(array)
    do summe := summe + array[i];
   schnitt := summe div length(array);
end;

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.


Zuletzt bearbeitet von Dude566 am Di 24.03.09 21:13, insgesamt 2-mal bearbeitet
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 24.03.09 21:00 
Maximum wird nix, weil array ein reservierter Bezeichner ist. umbenennen der Variable in etwas anderes sollte helfen.
Durchschnitt wird nix, weill der /-Operator eine Kommazahl liefert. Entweder div nehmen, welches iirc abrundet, oder den Typ der Ergebnisvariable als Floatingpoint-Typen wählen, z.B. Extended. Ausserdem gleicher Fehler wie bei Maximum, bezüglich array-Variable.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 24.03.09 21:05 
Außerdem berechnet die Maximum-Funktion das Minimum, und das nur, wenn das Array auch negative Werte enthält. :zwinker:

Besser so (plusminus ein paar Syntaxfehler :angel:)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
type
  TIntArray = Array of Integer;

function Maximum(aArray: TIntArray);
var i, tmpmax: Integer;
begin
  if length(aArray) > 1 then
  begin
    tmpmax := aArray[0];
    for i := 1 to length(aArray)-1 do
      if tmpmax < aArray[i] then
        tmpmax := aArray[i];
    result := tmpmax;
  end else
    result := -42// Fehler !!
end;

_________________
We are, we were and will not be.
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 24.03.09 21:11 
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Außerdem berechnet die Maximum-Funktion das Minimum, und das nur, wenn das Array auch negative Werte enthält. :zwinker:


Bei meinem Code?

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 24.03.09 21:15 
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Außerdem berechnet die Maximum-Funktion das Minimum, und das nur, wenn das Array auch negative Werte enthält. :zwinker:
:gruebel: bitte, was? Meinst du damit, das "<" ist falschrum? Ich denke nicht...?

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
  for i := Low(arrayto High(arraydo
    if max < array[i] then max := array[i]; //wenn das vorige max kleiner ist als die aktuelle zahl, 
                                            //ist die aktuelle zahl natürlich größer als das vorige maximum, passt doch?
end;


PS: Oha, Bug im DF gefunden, mal sehen ob's den schon gibt ... Ah, oder vllt nicht... Jetzt bin ich verwirrt :gruebel:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 24.03.09 21:18 
Hm. Hab ich mich da eben verguckt? :gruebel: Kann sein. :oops:

Trotzdem ist es besser, das Maximum mit dem ersten Array-Eintrag zu initialisieren, nicht mit 0.

_________________
We are, we were and will not be.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 24.03.09 21:19 
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Trotzdem ist es besser, das Maximum mit dem ersten Array-Eintrag zu initialisieren, nicht mit 0.
Definitiv, denn sonst wird 0 als Maximum angegeben, wenn das Array nur negative Zahlen enthält :mahn:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.