Sponsor-Board.de

Normale Version: Java Syntaxfehler
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey,

habe zur Vorbereitung auf eine Java-Klausur eine Probeklausur bekommen, bei der die erste Aufgabe lautet, Syntaxfehler zu finden.

Zitat:
1. Der folgende Quellcode enthält 10 Syntax-Fehler. Finden und korrigieren Sie diese.
( / 7 Punkte)
class SiebDesEratosthenes {

public static main(String[] args) {

int[] zahlenfeld = int[100];

// Feldelementen Werte zuweisen
for (int i = 0; m<zahlenfeld.length; i++)
zahlenfeld[i] = i+1;

// Ausgabe Feldelemente in 10er Blöcken
for (int j = 0; j < 10Wink{
for (int k = 0 ; k < 9; k++){
System.out.print(zahlenfeld[j*10+k]);
System.out.print(", ");
}
System.out.println(zahlenfeld[j*10+9]);


// Bestimmung der Primzahlen mit dem Sieb des Eratosthenes
zahlenfeld[0] = 0;
for (int i = 2; i < 51; i++){
for (int k = 2; k < (zahlenfeld.length/i+1); k++){
zahlenfeld[i*k-1] = 0
}
}

/ Ausgabe der Primzahlen
System.out.println();
System.out.println( Die Primzahlen zwischen 1 und 100: );
for (int j = 0; j < 10; j++){
for (int k = 0 , k < 9; k++){
if (zahlenfeld[j*10+k] != 0){
System.out.print(zahlenfeld[j*10+k]);
System.out.print(", ");
}
}
System.out.println;
}

}

}


Leider bin ich damit nicht ganz so wirklich vertraut und habe in der Eile auch nichts auf Anhieb im Internet dazu gefunden.

Könnte mir nochmal jemand die Regeln von Java, also wann kommt bspw. ein ;, aufzeigen?

Danke!

Wo zum Teufel bekommt man solche Idiotenaufgaben als Klausur...(das würde mich jetzt ernsthaft mal interessieren)? Und wenn es eben eine Klausur ist, musst du es schon alleine lösen. Du bekommst ja schließlich die Note und zum anderen hast du bestimmt bestätigt, dass alle Lösungen von deinen Arbeiten eigenständig erarbeitet wurden, was dann ja nicht der Fall wäre.

Edit Ich möchte jetzt nun kein Unmensch sein und helfe dir und falle mir damit selber in den Rücken bei meiner obigen Aussage.

Code:
for (int j = 0; j < 10; j++){
for (int k = 0 , k < 9; k++){

Müsste eig. heißen:

Code:
for (int j = 0; j < 10; j++){
for (int k = 0; k < 9; k++){


Dann wäre da noch:

Code:
for (int i = 0; m<zahlenfeld.length; i++)
zahlenfeld[i] = i+1;

Was sein müsste:

Code:
for (int i = 0; m < zahlenfeld.length; i++)
zahlenfeld[i] = i++;


Und das hier:

Code:
System.out.println( Die Primzahlen zwischen 1 und 100: );

...verpackste mal besser anders:

Code:
System.out.println("Die Primzahlen zwischen 1 und 100: ");

Naja, es ist ja nur eine Probleklausur, also nichts was Punkte gibt oder so. Aber im Ernst, die Fehler sind größtenteils so offensichtlich, wenn Du die nicht findest würde ich mir für die Klausur Sorgen machen. Zeile 3, 5, ...

webcraft schrieb:
Wo zum Teufel bekommt man solche Idiotenaufgaben als Klausur...(das würde mich jetzt ernsthaft mal interessieren)? Und wenn es eben eine Klausur ist, musst du es schon alleine lösen. Du bekommst ja schließlich die Note und zum anderen hast du bestimmt bestätigt, dass alle Lösungen von deinen Arbeiten eigenständig erarbeitet wurden, was dann ja nicht der Fall wäre.


Vielen Dank für deine Hilfe! Wie gesagt, ist eine "Probeklausur" - Gymnasium in Hessen =D

Finde exakt 9 Syntaxfehler, sicher dass dort 10 drin sein sollen?

Code:
class SiebDesEratosthenes {

    public static main(String[] args) {                                                    //VOID

        int[] zahlenfeld = int[100];                                                    //new int[100]

        // Feldelementen Werte zuweisen
        for (int i = 0; m<zahlenfeld.length; i++)                                        //m -> i
            zahlenfeld[i] = i+1;

        // Ausgabe Feldelemente in 10er Blöcken
        for (int j = 0; j < 10;){
            for (int k = 0 ; k < 9; k++){
                System.out.print(zahlenfeld[j*10+k]);
                System.out.print(", ");
            }
            System.out.println(zahlenfeld[j*10+9]);
                                                                                        // }

            // Bestimmung der Primzahlen mit dem Sieb des Eratosthenes
            zahlenfeld[0] = 0;
            for (int i = 2; i < 51; i++){
                for (int k = 2; k < (zahlenfeld.length/i+1); k++){
                    zahlenfeld[i*k-1] = 0                                                // ;
                }
            }

            / Ausgabe der Primzahlen                                                    // //
            System.out.println();
            System.out.println( Die Primzahlen zwischen 1 und 100: );                    // "
            for (int j = 0; j < 10; j++){
                for (int k = 0 , k < 9; k++){                                            // , -> ;
                    if (zahlenfeld[j*10+k] != 0){
                        System.out.print(zahlenfeld[j*10+k]);
                        System.out.print(", ");
                    }
                }
                System.out.println;                                                        // ()
        }

    }

}


E: Sieht hier etwas komisch aus, kopier es dir in einen Editor, zieh ihn breit genug, dann sind die Kommentare auch in der richtigen Zeile.

tkausl schrieb:
Finde exakt 9 Syntaxfehler, sicher dass dort 10 drin sein sollen?

Code:
class SiebDesEratosthenes {

    public static main(String[] args) {                                                    //VOID

        int[] zahlenfeld = int[100];                                                    //new int[100]

        // Feldelementen Werte zuweisen
        for (int i = 0; m<zahlenfeld.length; i++)                                        //m -> i
            zahlenfeld[i] = i+1;

        // Ausgabe Feldelemente in 10er Blöcken
        for (int j = 0; j < 10;){
            for (int k = 0 ; k < 9; k++){
                System.out.print(zahlenfeld[j*10+k]);
                System.out.print(", ");
            }
            System.out.println(zahlenfeld[j*10+9]);
                                                                                        // }

            // Bestimmung der Primzahlen mit dem Sieb des Eratosthenes
            zahlenfeld[0] = 0;
            for (int i = 2; i < 51; i++){
                for (int k = 2; k < (zahlenfeld.length/i+1); k++){
                    zahlenfeld[i*k-1] = 0                                                // ;
                }
            }

            / Ausgabe der Primzahlen                                                    // //
            System.out.println();
            System.out.println( Die Primzahlen zwischen 1 und 100: );                    // "
            for (int j = 0; j < 10; j++){
                for (int k = 0 , k < 9; k++){                                            // , -> ;
                    if (zahlenfeld[j*10+k] != 0){
                        System.out.print(zahlenfeld[j*10+k]);
                        System.out.print(", ");
                    }
                }
                System.out.println;                                                        // ()
        }

    }

}


E: Sieht hier etwas komisch aus, kopier es dir in einen Editor, zieh ihn breit genug, dann sind die Kommentare auch in der richtigen Zeile.


ja, ganz sicher =D

krayyzn schrieb:
ja, ganz sicher =D

Ich bin da anderer Meinung. Kompiliert und startet ohne Beanstandung, nachdem diese 9 Fehler korrigiert sind.

tkausl schrieb:

krayyzn schrieb:
ja, ganz sicher =D

Ich bin da anderer Meinung. Kompiliert und startet ohne Beanstandung, nachdem diese 9 Fehler korrigiert sind.


Dann ist die Aufgabenstellung wohl falsch, sry.

tkausl schrieb:
Ich bin da anderer Meinung. Kompiliert und startet ohne Beanstandung, nachdem diese 9 Fehler korrigiert sind.


Liegt wohl daran, dass dies hier eher ein Logik Fehler ist:

Code:
for (int j = 0; j < 10;){

Referenz-URLs