Announcement

Collapse
No announcement yet.

Problem mit "Random-Aufgabe"

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit "Random-Aufgabe"

    Hallo Zusammen,
    ich habe ein Problem mit folgender Aufgabe:

    (1)Definieren Sie eine Klasse Zufall mit den Instanzvariablen maximum vom Typ int und zgenerator vom Typ java.util.Random. Ein Wert maximum soll dem Konstruktor als Parameter übergeben werden.
    (2) Definieren Sie in dieser Klasse eine Methode zeigeGeradeZufallszahlen ihne Rückgabewert, die einen int Parameter namens anzahl übergeben bekommt und dann anzahl gerade Zufallszahlen zwischen 0 (einschließlich) und maximum (ausschließlich) auf der Konsole ausgibt. Wird der Methode ein negativer int-Wert übergeben, so soll sie das negative Vorzeichen ignorieren und mit dem positiven Wert weiterarbeiten.

    Bei Teil (1) ist mir nicht ganz verständlich wie ich eine Instanzvariable vom Typ java.util.Random definieren soll und Teil (2) komme ich überhaupt nicht voran, habe es zuerst mit einer for-Schleife probiert, funktioniert leider nicht.

    Vlt. kann mit jemand von euch weiterhelfen, bin für jede Hilfe dankbar.

    Gruß

  • #2
    http://download.oracle.com/javase/6/...il/Random.html

    private Random myrandom=new Random();

    zu 2)

    was funktioniert nicht
    Christian

    Comment


    • #3
      Die Prüfung solltest du hinkriegen??

      Code:
      public class Zufall
      {
      private Random zgeneratorv=new Random();
      private int maximum;
       
      public Zufall(int maximum)
          {
          this.maximum=maximum;
          }
       
      public void zeigeGeradeZufallszahlen(int anzahl)
          {
          int treffer=0;
          anzahl=Math.abs(anzahl);
          while(treffer!=anzahl)
              {
              int zufallsZahl=zgeneratorv.nextInt(maximum);
              if(wie könnte ein Prüfung aussehen, die prüft,ob es eine gerade Zahl ist)
                  {
                  System.out.println("Zahl Nr."+(treffer+1)+" ist "+zufallsZahl);
                  treffer++;
                  }
              }
          }
      }
      Zuletzt editiert von Christian Marquardt; 01.09.2010, 16:08.
      Christian

      Comment


      • #4
        Ich denke das wird mit dem Modulator klappen also:
        zufallsZahl % 2 == 0

        vielen Dank für die Hilfe

        Comment


        • #5
          joo, und wenn du 0 ausschließen willst, noch &&zufallsZahl!=0 ranhängen
          Christian

          Comment


          • #6
            Hallo nochmal,
            vielen Dank für die Hilfe.
            Die Aufgabe geht noch weiter:

            Definieren Sie in dieser Klasse eine zweite Methode generiereArray, die einen int-Parameter namens anzahl übergeben bekommt und ein int-Array mit anzahl Zufallszahlen zwischen 0 (einschließlich) und maximum (ausschließlich) als Rückgabewert liefert.
            Nun der komplette Quellcode:
            import java.util.Random;

            public class Zufall
            {
            private Random zgenerator = new Random();
            private int maximum;

            public Zufall (int maximum)
            {
            this.maximum = maximum;
            }

            public void zeigeGeradeZufallszahlen( int anzahl )
            {
            int treffer = 0;
            anzahl = Math.abs(anzahl);

            while(treffer != anzahl)
            {
            int zufallsZahl = zgenerator.nextInt(maximum);
            if(zufallsZahl %2 == 0)
            {
            System.out.println("Zahl Nr. " + (treffer+1) + " ist " + zufallsZahl);
            treffer++;
            }
            }
            }

            public int[] generiereArray( int anzahl)
            {
            int[] zufallsArray = new int[anzahl];

            for (int i = 0; i<zufallsArray.length; i++)
            {
            int Zufall = zgenerator.nextInt(maximum);
            zufallsArray[i] = Zufall;
            }
            return zufallsArray;
            }
            }

            Meine Frage ist nun, ob der letzte Teil auch korrekt ist?
            Für eine Antwort wäre ich sehr dankbar.

            Comment


            • #7
              Sieht gut aus

              Hallo Anfänger12,

              wenn Du die Methode "public int[] generiereArray( int anzahl)" meinst. Die sieht gut aus.

              Gruß ngomo
              http://www.winfonet.eu

              Comment


              • #8
                weiterführende Aufgabe

                vielen Dank für die Hilfe.
                Anbei noch eine weiterführende Aufgabe, die auch soweit funktioniert.Schreibe Sie trotzdem hierein, um den Sinn des Anfänger Forums zu unterstützen(vlt. kann ja der ein oder andere hiervon profitieren..) :

                Schreiben Sie ein Programm Zufalltest, das ein Zufall-Objekt [siehe vorige Aufgaben] mit dem Konstruktor-Parameter 21 erzeugt und bei ihm die Methode zeigeGeradeZufallszahlen mit dem Parameter 7 aufruft.

                Anschließend soll dessen Methode gereriereArray mit dem Parameter 5 aufgerufen werden und der Rückgabewert in einer Variablen namens resultat abgespeichert werden.

                Abschließend sollen alle in resultat enthaltenen Zufallszahlen mittels einer Schleife ausgelesen und auf der Konsole angezeigt werden.

                Und hier der Code:
                public class Zufalltest
                {
                public Zufalltest()
                {

                }

                public static void main (String[]args)
                {
                Zufall zufall1 = new Zufall(21);
                zufall1.zeigeGeradeZufallszahlen(7);
                int[] resultat = new int[5];
                resultat = zufall1.generiereArray(5);

                for(int a= 0; a < resultat.length; a++)
                {
                System.out.println("Stelle " +a +" : " +resultat[a] );
                }


                }
                }

                hoffe das ist soweit richtig..

                Comment


                • #9
                  Und nutze bitte die Codeformatierung
                  Christian

                  Comment

                  Working...
                  X