Hilfe bei einer Übungsaufgabe

jonathanpizza

Mitglied
Hey ich arbeite gerade an einer Aufgabe aber komme bei einer Teilaufgabe nicht weiter. Sollten Lotto simulieren, was ich auch hingekriegt habe (siehe Code unten). Das wären dann die Teilaufgaben 2 und 3.Ü.JPG


Das ist mein Code:
import java.util.Arrays;
import java.util.Random; //Importanweisung um auf die Random Klasse zuzugreifen

public class Lotto
{
private java.util.Random zufall;
private int obereGrenze, superzahl;

public Lotto()
{
Random r = new Random(); // neues Random Objekt
obereGrenze = 50;
}

public int lottoZahl()
{
return (zufall.nextInt(obereGrenze)+1);
}

/** In der folgenden Methode werden aus 49 Zahlen 6 zufällige Ganzzahlen
* als Lottozahlen ausgegeben, dabei doppeln sich keine Zahlen.
*/
public void arrayFuellen()
{
String [] zahl = new String [6];
int doppelt;
int zfl;
do {
doppelt = 0;
for(int i = 0; i<6; i++) {
zfl = (int)(Math.random() * 49); // Eine zufäällige Zahl wird gezogen
zfl = zfl++;
zahl = String.valueOf(zfl);
}
for(int i = 0; i<6; i++) {
for(int j=0; j<6; j++) {
if (zahl.equals(zahl [j])&&(i!=j)) { //Vergleich wenn zwei mal die selbe Zahl gezogen wird, wird neu gezogen.
doppelt++;
}
}
}
} while (doppelt != 0);
System.out.println("Die Lottozahlen lauten: " + Arrays.toString(zahl));

}

public void booleschesLotto(){



}

/** keine Ahnung
*
*/
public double collectionLotto() // Kein double zwingend nötig
{
return 0;
}

/**
* Diese Methode wird die Superzahl, eine Zahl zwischen 0 und 9 ausgegeben.
*/
public void superZahl()
{
superzahl = zufall.nextInt(9); // zufällige Zahl zwischen 0 und 9 wird generiert.

System.out.println("Die heutige Superzahl lautet: " + superzahl); // Hier wird die zufällig generierte Zahl ausgegeben.
}
}



Danke schonmal!
 
Dann nehmen wir erst einmal Teilaufgabe 2:
Hast Du verstanden, was da gefordert wird? Was besagt die Aufgabe (in eigenen Worten)? Siehst Du ein Vorgehen (in eigenen Worten, nicht in Java formuliert)?
 
Ansonsten fällt mir auf, dass im Text zahlen von 1...49 gefordert sind, aber das scheint mir bei Deinem Code nicht der Fall zu sein. Du setzt obereGrenze auf 50 und nutzt diese um Zahlen von 0...49 zu bekommen um dieser Zahl 1 dazu zu addieren...

Ich habe mir nicht alles im Detail angesehen - evtl. habe ich etwas in der Aufgabenstellung oder Deinem Code übersehen. Aber Du kannst diesem Verdacht ja einmal nachgehen ...
 
Mal was Grundsätzliches: Ich finde es sehr löblich daß du Codetags benutzt, aber Einrückungen wären auch nicht schlecht. Denn:
Java:
public method(int a, int b){
//macht
//irgendwas
//seltsames
}
public yetAnotherMethod(){
//machts
//nicht
//besser
}

//Ist weitaus schlechter zu lesen als:

public method(int a, int b){
    //macht
    //irgendwas
    //seltsames
}
public yetAnotherMethod(){
    //machts
    //nicht
    //besser
}

Ich hätte mal noch eine Frage zu deiner Lösung: Hat es einen tieferen Sinn, warum dein Zielarray ein String[] und nicht z.B. ein int[] ist?

Ansonsten als Tipp für Aufgabe 2:
Ein Array hast du in Aufgabe 1 ja erfolgreich erstellt. Zufallszahlen kannst du auch erzeugen. Damit hast du eigentlich alles, um Aufgabe 2 zu lösen. An was hängt es genau?
 
[CODE lang="java" title="Random"]public class Lotto
{
private java.util.Random zufall;
private int obereGrenze;

public Lotto()
{
Random r = new Random(); // neues Random Objekt ... aber wozu? Es wird nie verwendet.
obereGrenze = 50; //sehr viel besser.
}
}[/CODE]
 

Zurück
Oben