# Hmm schwer von capè?



## Bierhumpen (8. Jan 2006)

Ich weiss nicht obs an mir liegt oder an der beschi??enen Aufgabe...... Ich steig einfach nicht durch was die von mir wollen.
Ich krieg nen Vogel.


In dieser Aufgabe sollen Sie eine Lottoziehung in Java simulieren. Schreiben Sie eine Klasse
Lotto, die auf Listen (und Arrays) operiert und dafür auf die Klasse Node (befindet sich
auf der Vorlesungsseite) zugreift. Für die Bearbeitung dieser Aufgabe dürfen Sie nicht die
Java-Klasse Sequence verwenden! Die Klasse soll folgenden Inhalt besitzen:


a) Implementieren Sie eine Funktion static int[] constructArray49(int n). Diese be-
kommt eine int-Zahl n zwischen 1 und 49, die Lange des Arrays, übergeben und erzeugt
ein int-Array mit n paarweise verschiedenen Zahlen zwischen 1 und 49. Falls n nicht
zwischen 1 und 49 liegt, so soll eine IllegalArgumentException geworfen werden, die
den Fehler sinnvoll dokumentiert!

So erste Problem: Warum ein Array mit einer variablen Länge (zwischen 1-49)? wieso sollte der benutzer das eingeben können. Und wie ist das gemeint dass ein int-Array mit "paarweise" verschiedene Zahlen erzeugt wird???


b) Schreiben Sie nun eine Funktion static Node convertAndSort(int[] arr). Diese wan-
delt ein Array von int in eine aufsteigend sortierte Liste um.

Wenn sich das mit dem "paarweise" geklärt hat werd ich sicherlich daraus schlauer


c) Um die in b) erzeugte Liste auszugeben, sollen Sie in dieser Teilaufgabe eine Methode
static void printList(Node n) schreiben. Diese zeigt die int-Werte der übergebenen
Liste mit Hilfe der Standardausgabe an.

Wenn sich das mit dem "paarweise" geklärt hat werd ich sicherlich daraus schlauer


d) Zum Abschluß der Aufgaben spielen Sie nun Lotto: Schreiben Sie dazu eine Funktion
static void playIt(). Diese erzeugt mit den Funktionen aus a) und b) zwei Listen mit
jeweils 6 paarweise verschiedenen Zufallszahlen zwischen 1 und 49: Die Liste der gezogenen
Zahlen und die Liste der angekreuzten Zahlen. Vergleichen Sie die Listen auf gleiche Ele-
mente. Nutzen Sie dabei aus, dass die Listen sortiert sind! Erzeugen Sie eine neue Liste,
die alle Treffer speichert. Geben Sie die Zahl der ” Richtigen“ und die Zahlenwerte dieser
Treffer in geeigneter Weise auf der Standardausgabe aus.

Also, hier sollen 2 Listen erzeugt werden wobei es wieder um 6 paarweise verschiedene Zufallszahlen handelt. Heisst hier paarweise dass beispielsweise der erste Wert aus der ersten Liste und der erste Wert aus der zweiten liste (also das "paar") unterschiedlich sein sollen?! Wenn aber die Listen doch sortiert sind kann es doch vorkommen dass die ersten beiden, die zweiten beiden...., usw. gleich sind.



Ich hoffe ihr könnt mir weiterhelfen.. ich steh da irgendwie auf dem Schlauch.


----------



## Beni (8. Jan 2006)

a) Keine zwei Zahlen dürfen gleich sein. Dass der Array verschiedene Längen haben darf: das wird später benötigt.

b) Naja, sortieren halt, nix besonderes dabei.

c) Liste ausgeben

d) Innerhalb der einzelnen Listen dürfen keine Zahlen mehrfach vorkommen, aber eine Zahl darf in mehreren Listen vorkommen (sonst könnte man ja nie etwas gewinnen).


----------



## Bierhumpen (8. Jan 2006)

wie kann ich mir a) dann vorstellen?! Ich steig da mit dem "paarweise" nicht durch?? für mich heißt dass, die ersten beiden einträge erstellen dann die zweiten beiden usw. aber dass ist doch unnötig. man kann doch einfach jedes einzeln erstellen und dann schauen ob es bereits vorhanden ist.

Ich hab irgendwie ein brett vorm kopf

okay c) hab ich


----------



## Lim_Dul (8. Jan 2006)

paarweise verschiedene heißt nur, dass alle Zahlen unterschiedlich sind. Es dürfen keine 2 Zahlen gleich sein.


----------



## Bierhumpen (8. Jan 2006)

achso..... 

okay soweit bin ich jetzt. einziges problem.... er gibt die liste falsch herum aus. also er gibt die höchste zuerst aus.


```
import java.util.*;

class Lotto{

    static Node convertAndSort(int [] arr){
        Arrays.sort(arr);
        Node list = null;
        
        for (int i=0; i<arr.length; i++){
            list = new Node (new Integer (arr[i]), list);
        }
        
        return list;
            
    }
    
    
    static void printList(Node n){   
      while (n != null){
        System.out.print(n.data+" "); n = n.link; }
      System.out.println();
    }
    
    
    static void playIt(){
        
    }
    
    
    public static void main (String [] args) throws Exception{
    
        int [] a = {1,3,5,6,4,4};
        printList(convertAndSort(a));
        
    }
}
```


----------



## Bierhumpen (8. Jan 2006)

okay.. das problem wurde "umgangen" aber wie ist das mit dem array zu verstehen...

ich komm da einfach nciht weiter


----------

