# Noch eine Hausübung mit einer Fehlermeldung



## Tomek_N (14. Dez 2008)

Hallo,

da mir eben so toll geholfen wurde wollte ich Euch noch dieses Programm vorstellen. Was habe ich da nur gemacht?  :shock: 

Aufgabenstellung:

```
Schreiben Sie eine Klasse Vektoren mit einer Methode main, welche mit Hilfe einer do-while-
Schleife solange Vektoren beliebiger Dimension von der Tastatur einliest, bis ein Einheitsvektor
eingegeben wird.
Deklarieren Sie die notwendigen Variablen:
- Dimension des Vektors
- Feld zur Aufnahme der Komponenten
- Betrag des Vektors
- boolesche Variable zur Erfassung, ob es sich um einen Einheitsvektor handelt
- Anzahl der eingegebenen Vektoren
Wählen Sie für diese geeignete Datentypen, die Java zur Verfügung stellt.
Lesen Sie innerhalb der Schleife ein, welche Dimension der aktuelle Vektor haben soll und erzeugen
Sie ein entsprechendes Feld zur Erfassung der Vektorkomponenten. Lesen Sie mit Hilfe einer
Zählschleife diese Komponenten ein. Berechnen Sie anschließend den Betrag des Vektors ebenfalls
mit Hilfe einer Zählschleife über alle Komponenten. Danach soll ermittelt werden, ob es sich um
einen Einheitsvektor handelt. In diesem Fall wird eine entsprechende Meldung ausgegeben und die
boolesche Variable erhält den Wert true. Anderenfalls wird der Betrag ausgegeben und die
boolesche Variable erhält den Wert false. Diese Variable wird in der Abbruchbedingung der dowhile-
Schleife verwendet.
Zählen Sie die Anzahl der eingegebenen Vektoren (wie oft die Schleife durchlaufen wird) und geben
Sie die Anzahl nach Beendigung der Schleife aus.
```

Mein Programmcode


```
public class Vektoren
{
public static void main (String[]args)
{
int dimension;
int anzahl=0;
double aufnahme[];
double betragVektor;
boolean einheitsvektor;

do{
System.out.println("Dimension eingeben");
dimension = Keyboard.readInt();
double aufnahme = new double[dimension];

for(int i=0; i<dimension; i++){
System.out.println((i+1)+"Komponente eingeben");
aufnahme[i] = Keyboard.readDouble();
}

betragVektor = 0.0;

for(int i=0; i<dimension; i++){
betrag = Math.sqrt(aufnahme[i]*aufnahme[i]);
}

if(betragVektor == 1.0){
einheitsvektor=true;
System.out.println("Einheitsvektor");
}
else{
einheitsvektor=false;
System.out.println("Betrag"+betrag);
}

anzahl++;

}while(einheitsvektor=false);

System.out.println("Anzahl Vektoren"+anzahl);

}
}
```

Die Fehlermeldung:


```
Vektoren.java:22:8: aufnahme is already defined in main(java.lang.String[])
double aufnahme = new double[dimension];
       ^
Vektoren.java:22:19: incompatible types
found   : double[]
required: double
double aufnahme = new double[dimension];
                  ^
Vektoren.java:26:9: array required, but double found
aufnahme[i] = Keyboard.readDouble();
        ^
Vektoren.java:32:1: cannot find symbol
symbol  : variable betrag
location: class Vektoren
betrag = Math.sqrt(aufnahme[i]*aufnahme[i]);
^
Vektoren.java:32:28: array required, but double found
betrag = Math.sqrt(aufnahme[i]*aufnahme[i]);
                           ^
Vektoren.java:32:40: array required, but double found
betrag = Math.sqrt(aufnahme[i]*aufnahme[i]);
                                       ^
Vektoren.java:41:29: cannot find symbol
symbol  : variable betrag
location: class Vektoren
System.out.println("Betrag"+betrag);
                            ^
7 errors
```

Danke im voraus.
Gruß 
Thomas


----------



## Marco13 (14. Dez 2008)

Ein bißchen Eigeninitiative.... 
 Vektoren.java:22:8: aufnahme is already defined in main(java.lang.String[])
double aufnahme = new double[dimension]; 
ändern in
aufnahme = new double[dimension];


----------

