Java Programm

  1. mike6996

    mike6996 Thread StarterMacUser Mitglied

    Mitglied seit:
    23.04.2005
    Beiträge:
    34
    Zustimmungen:
    0
    Hi,
    muss grad ein Programm für die Uni schreiben. Leider funktioniert es nur, wenn ich alles in die Main-Methode packe.
    Evtl. könnt ihr mir helfen...
    Stelle mal meinen Quellcode rein und die Aufgabenstellung.

    Danke schonmal für eure Mithilfe


    Aufgabenstellung:
    Schreiben Sie ein Java-Programm, das 16 Integerzahlen zeilenweise in ein 4x4-Array einliest und dann teste, ob irgendwo in einer Zeile oder Spalte an benachbarten Positionen gleiche Werte stehen!

    Mein bisheriges Ergebnis:

    import java.io.*;

    public class PropraUe294
    {
    static int Dimension = 4;

    public static void main(String[] argv)
    {
    int dreieck [][] = new int [Dimension][Dimension];
    einlesen();

    //Auswertung
    for (int i = 0; i < Dimension; i++){
    for (int j = 0; j <Dimension; j++){
    if (dreieck[j] == dreieck[j]){
    System.out.println("dies sind "+dreieck[j]+ "gleiche Zahlen");
    }
    }
    }

    }

    public void einlesen() throws IOException
    { int dreieck [][] = new int [Dimension][Dimension];
    BufferedReader tastatur = new BufferedReader(new InputStreamReader(System.in));
    //Eingabe von den verschiedenen Zahlen
    String eingabe;
    for(int i = 0; i < Dimension; i++){
    for(int j = 0; j < Dimension; j++){
    System.out.println("Bitte geben sie eine Zahl ein");
    eingabe = tastatur.readLine();
    dreieck[j] = Integer.parseInt(eingabe);
    }
    }
    }

    }
     
    mike6996, 13.07.2005
  2. FrediFredsen

    FrediFredsenMacUser Mitglied

    Mitglied seit:
    19.11.2004
    Beiträge:
    316
    Zustimmungen:
    2
    Ich habe es nur mal überflogen, aber static Variablen lassen sich auch nur aus static Methoden ansprechen.
    Schreib einfach eine Methode, die alles das macht, was in der main steht, entferne das static vor der Variablen und rufe die neu erstellte Methode aus der main aus...

    War das dein einziges Problem? ANsonsten müsste das doch eigentlich wie gewollt funktionieren...
     
    FrediFredsen, 13.07.2005
  3. mike6996

    mike6996 Thread StarterMacUser Mitglied

    Mitglied seit:
    23.04.2005
    Beiträge:
    34
    Zustimmungen:
    0
    Also wenn ich alles in die Main-Methode reinschreib dann funktioniert es ohne Probleme... Genau, das was du beschrieben hast war vorher schon möglich, aber ich wollte von der Main-Methode auf eine Methode zugreifen... Weiß nicht, ob es überhaupt funktioniert, aber es wäre schön, wenn es gehen würde, dass ich das Einlesen und das Vergleichen von der Main-Methode aus aufrufen könnte...
    Vielen dank aber schon für die Antworten
     
    mike6996, 13.07.2005
  4. FrediFredsen

    FrediFredsenMacUser Mitglied

    Mitglied seit:
    19.11.2004
    Beiträge:
    316
    Zustimmungen:
    2
    Das funktioniert und zwar genau so, wie ich geschrieben habe. Du erstellst eine Methode einlesen() und eine vergleiche().
    Dann rufst du die vergleiche() genau so auf wie die einlesen().
    Wenn wir aneinander vorbeireden, dann probiers mal genauer zu erklären...
    Gruß
     
    FrediFredsen, 13.07.2005
  5. matschex

    matschexMacUser Mitglied

    Mitglied seit:
    26.06.2005
    Beiträge:
    24
    Zustimmungen:
    0
    hiho

    wie wäre es den wenn du das array als klassenvariable deklarierst.
    dann kannst du sicher sein das das array in jeder methode die du aufrufst auch gleich ist.
    und das static vor dem deminsion weg.

    und viel glück ...

    wenn es nicht geht poste mal bitte die fehlermeldung von der vm ... da kann man mehr raus sehen!
     
    matschex, 13.07.2005
  6. FrediFredsen

    FrediFredsenMacUser Mitglied

    Mitglied seit:
    19.11.2004
    Beiträge:
    316
    Zustimmungen:
    2
    Ich bin jetzt hier weg.
    HIer sind mal ein paar SChritte, die du befolgen solltest:

    - Erstelle die beiden Methoden
    - Erstelle in der main ein Objekt von deiner Klasse und rufe darüber die Methoden auf
    - Dann solltest du dir noch mal deine AUswertung angucken, ob die denn Sinn macht... (IMHO relativ wenig...)
    - Du solltest dir dann mal in Ruhe geschachtelte Array angucken...
    - Ich empfehle: java ist ein Insel (online umsonst...) --> google

    Viel Spass noch...

    PS: Welche UNi?
     
    FrediFredsen, 13.07.2005
  7. mike6996

    mike6996 Thread StarterMacUser Mitglied

    Mitglied seit:
    23.04.2005
    Beiträge:
    34
    Zustimmungen:
    0
    Wie kann ich das Array als Klassenvariable deklarieren?
    @FrediFrenson
    Ich glaube wir reden nicht aneinader vorbei, aber ich weiß nicht, wie ich die static auflösen kann so dass keine Fehlermeldung kommt.
    Bin in der Uni Passau

    Fehlermeldung ist bis jetzt: non-static method einlesen() cannot be referenced from a static context
    einlesen();
     
    mike6996, 13.07.2005
  8. FrediFredsen

    FrediFredsenMacUser Mitglied

    Mitglied seit:
    19.11.2004
    Beiträge:
    316
    Zustimmungen:
    2
    import java.io.*;
    public class egal {

    int Dimension;


    public egal(int dim){
    this.Dimension =dim;
    }

    public static void main(String[] args) {
    egal e = new egal(4);

    try {
    e.auswerten(e.einlesen());
    } catch (IOException e1) {
    System.out.println(e1.getMessage());
    }

    }

    public void auswerten(int[][] dreieck){
    for (int i = 0; i < Dimension; i++){
    for (int j = 0; j <Dimension; j++){
    if (dreieck[j] == dreieck[j]){
    System.out.println("dies sind "+dreieck[j]+ "gleiche Zahlen");
    }
    }
    }
    }

    public int[][] einlesen() throws IOException{
    int[][] dreieck = new int [Dimension][Dimension];
    BufferedReader tastatur = new BufferedReader(new InputStreamReader(System.in));
    // Eingabe von den verschiedenen Zahlen
    String eingabe;
    for(int i = 0; i < Dimension; i++){
    for(int j = 0; j < Dimension; j++){
    System.out.println("Bitte geben sie eine Zahl ein");
    eingabe = tastatur.readLine();
    dreieck[j] = Integer.parseInt(eingabe);
    }
    }
    return dreieck;
    }

    }
     
    FrediFredsen, 13.07.2005
  9. FrediFredsen

    FrediFredsenMacUser Mitglied

    Mitglied seit:
    19.11.2004
    Beiträge:
    316
    Zustimmungen:
    2
    So, Formatierungen sind leider weg.

    So sieht das Grundgerüst aus. Wie gesagt, mach dir nochmal Gedanken, wie du den Vergleich anstellen willst. Es macht im Moment nicht viel Sinn. Du vergleichst (if (dreieck[j] == dreieck[j]) zwei gleiche Zahlen und gibst dann aus, dass sie gleich sind...
    Aber das ist glaube ich besser, dass du auf die Lösung kommst. Kopier dir mal das Gerüst in deine IDE und dann kannst du dich um das wesentliche kümmern...

    Die SChritte oben empfehle ich trotzdem...
     
    FrediFredsen, 13.07.2005
  10. mike6996

    mike6996 Thread StarterMacUser Mitglied

    Mitglied seit:
    23.04.2005
    Beiträge:
    34
    Zustimmungen:
    0
    Vielen Dank,
    der Vergleich ist leider während meiner Arbeit nur verrückt.
    Hast mir wirklich sehr geholfen. Der Rest klappt ohne Probleme.

    Mike
     
    mike6996, 13.07.2005
Die Seite wird geladen...
Ähnliche Themen - Java Programm
  1. macu13
    Antworten:
    20
    Aufrufe:
    4.627
    Mankind75
    28.12.2013
  2. xenon96
    Antworten:
    5
    Aufrufe:
    1.292
  3. tomasu
    Antworten:
    9
    Aufrufe:
    1.025
  4. boskoop3292
    Antworten:
    7
    Aufrufe:
    2.113
  5. Ronny77
    Antworten:
    14
    Aufrufe:
    916
    Ronny77
    11.10.2010