Zufallsexperiement mit Anzahl der geraden Zahlen !

Hallo Leute;

bitte ich brauch eure hilfe. Ich weis echt nicht weiter. Ich hab hier eine Aufgabe und die verstehe ich nicht vielleicht könntet ihr mir helfen oder mir sagen wie ich vorgehen soll das ist die Frage:

Im Mathematikunterricht wird das Zufallsexperiment „Würfeln mit einem Würfel“ mit 1000 Durchführungen untersucht.
Dabei interessiert, wie oft eine gerade Zahl gewürfelt wurde.

Das habe ich bereits weis aber nicht ob das stimmt:

program Project2;
//Felix Schmidt,17.10.2012
{$APPTYPE CONSOLE}
uses
sysutils;

var z, i, anzahl :integer;

begin
// Hier Anwender-Code

writeln;
writeln;

randomize;

For i:= 1 To 1000 DO
Begin
z:=random(6);
End;

Write('Anzahl der geraden Zahlen: ',anzahl);
readln;
end.

Bitte ich brauch echt hilfe… Bitte… Bitte

Den Code solltest du schon selber schreiben - immerhin ist das hier keine Hausaufgaben-Hilfe…

Lösungsansatz:

  1. 1000 Berechnungen einer Zufallszahl
    -> ist mit deiner for-Schleife korrekt

  2. Zufallszahl 1 bis 6
    -> sieh dir die Hilfe zu Random() an - so geht das noch nicht

  3. Gerade Zahlen
    -> mit dem Modulo-Operator („mod“) kannst du prüfen ob eine Zahl glatt durch eine andere teilbar, also gerade ist

Sollte doch eigentlich fluppen.
Du startest den Zufallsgenerator (ganz so zufällig der nun auch wieder nicht)

und Du machst ein Random.
Was geht denn nicht ?

naja bis jetzt hab ich ja alles alleine gemacht weis jetzt nur nicht wie ich es mache das mir angezeigt wird wie viele gerade Zahlen unter den 1000 sind.

Entschuldigen Sie die direkte Frage aber wie lange programmieren Sie schon?

Tipp 4: Anzahl gerade Zahlen
-> Wie wäre es mit einem Merker dafür?

Sind Ihnen If-Statements bekannt?

Klingt schwer nach Hausaufgaben :wink:

anzahl := 0;

For i:= 1 To 1000 DO
Begin
z:=random(6);
// prüfen, ob z durch 2 teilbar ist (gerade Zahl)
if (z mod 2) = 0 then
Inc(anzahl);
End;

ist nicht getestet, sollte aber klappen, evtl Syntax prüfen.

Hallo,

dein Delphi-Programm erzeugt ja schonmal 1000 Zufallszahlen (zwischen 0 und 5). Du musst jetzt also nur noch die geraden Zahlen zählen. Schau dir dazu mal die Funktionsweise des Modulo-Operators (MOD) an. Damit ist das Problem mit einer Codezeile gelöst.

Wobei genau brauchst du denn Hilfe? Ob das Programm funktioniert oder nicht, kannst du durch Ausführen feststellen.

Was du derzeit machst, ist eine Zufallszahl zu generieren, und zwar 1000mal. Mit dieser Zahl passiert nichts, sie wird nicht ausgegeben, sie wird nicht überprüft, ob sie gerade oder ungerade ist. (Tipp: Prüfung für gerade: wenn eine Zahl durch 2 Teilbar ist ohne Rest, dann ist sie gerade - so funktioniert auch der Testalgorithmus).

Zum Schluss gibst du die Variable „anzahl“ aus, doch diese Variable wurde außer in der Definition bisher nicht verwendet, es wurde nichts gespeichert, nichts damit berechnet. An der Stelle der Ausgabe dürfte da einfach nichts stehen.

Hey, kauf Dir ein Buch über Programmieren mit Pascal.
Überleg mal: wo wird ‚anzahl‘ initialisiert (anzahl:=0)?
Wo wird ‚anzahl‘ inkrementiert?
Die wichtigsten Stellen des Programms fehlen.

Du Vogel…

vor DREI Tagen hast du wegen nem anderen Problem gefragt,ich hab dir ne Gegenfrage gestellt und du hast dich nicht mehr gemeldet…

Wenn du das nächste Problem hast, sorg am Besten irgendwie dafür, dass ich deine Fragen nicht mehr bekomme.

Und generell… deine Fragen kannst du dir mit Onkel Google und ein bisschen Nachdenken selber beantworten. Wir sind doch hier nicht deine Männlein für Alles!

Das was du bis jetzt geschrieben hast ist beim besten Willen ein erbärmlicher Anfang. Streng dein Hirn an und frag uns, wenn du FEHLER suchst, aber nicht, damit wir dir deine Programme schreiben…

Hallo, was genau verstehst du denn nicht, bzw. was genau ist die Frage?

Der Code den du da hast, erzeugt 1000 mal eine Zufallszahl z zwischen 1 und 6. Jetzt musst du doch nur noch auswerten ob z gerade ist (odd(z)) und demnentsprechend anzahl inkrementieren (inc(anzahl)).
Vor Beginn der Schleife musst du natürlich anzahl initialiseren (anzahl:=0:wink:.

Tschüss

  • Ulli -

Die Zufallszahl „z“ durch 2 teilen und prüfen ob ein Rest übrig bzw. 0 ist! Bei 0 ist sie geradzahlig, bei größer 0 ist sie ungeradzahlig!