Verständnisproblem Aufgabe

Hallo ihr Lieben,

ich habe ein kleines Verständnisproblem mit einer Aufgabe aus dem Studium. Der Prof nutzt leider auch keine englischen Begriffe sondern "deutscht" sie ein wodurch es teilweise noch komplizierter wird.

Erstellen Sie eine Klasse MyExceptionHandling. Diese Klasse hat eine Methode
main und eine Methode dividiere.

Die Methode void dividiere(int [ ] a, int i) hat 2 Argumente: die Reihung a und den Parameter i, der den Index eines Elementes in a angibt. Es wird folgende Division vorgenommen:



a[i+1] = a[i+2] / a;

main hat als lokale Variable eine Reihung a mit den Elementen 2,8,32, 0,11.
main gibt als erstes die Reihung a aus. Dann ruft main die Methode dividiere in einer Laufanweisung von 0 bis 5 auf, wobei die Laufvariable den Parameter i von
dividiere darstellt. Danach wird die Reihung wieder ausgegeben. Hat
sich die Reihung a verändert? Warum?


Beachten Sie, dass in dieser Aufgabe mehrere Ausnahmen (welche?) auftreten können, dieaufgefangen werden sollen.

Überlegen Sie sich verschiedene Strategien zum Auffangen der in der Methode
dividiere verursachten Ausnahmen (z.B. das Auffangen innerhalb der Methode
dividiere oder beim Aufruf von dividiere in der Methode main).

Wäre jemand hier so freundlich mir nur die Formel zu erklären Array ausgeben kein Problem. Das mit den Exceptions kriege ich auch hin und habe es verstanden. Aber soll ich nun die Elemente des Array durch die einzelnen Elemente des Array dividieren? Sollen die 5 Zahlen einfach nur oben in die Formel eingeboxt und ausgerechnet werden? Ich habe anscheinend ein Verständnisproblem...

Vielen lieben Dank an euch alle!
 
Nein. Du sollst die Methode dividiere in einer Schleife aufrufen die von 0..5 läuft.
Die Methode dividiere(int[] a, int i) soll nur die Formel ausführen
Java:
a[i+1] = a[i+2] / a[i];
Im Endeffekt sollst du also die Methode 6 mal mit folgenden Parametern aufrufen:
Code:
dividiere(a, 0);
dividiere(a, 1);
dividiere(a, 2);
dividiere(a, 3);
dividiere(a, 4);
dividiere(a, 5);
Nur eben in einer Schleife und nicht händisch 😉
 
public void dividiere (int [] a, int i){ for (int i;i < 5;i++) { a[i+1] = a[i+2] / a[i]; } public static void main(String[] args) { int[] a = {2,8,32,0,11}; int i = 0; System.out.println(Arrays.toString(a)); dividiere(a); }

Warum bekomme ich diese Fehlermeldung The method dividiere(int[], int) in the type Exc is not applicable for the arguments (int[])...

2 Wochen nix in Java gemacht und ich fühle mich wie der letzte Idiot... Ich verstehe die Fehlermeldung so, dass das Array aus der Main Methode nicht in dividiere verarbeitet werden kann.

Wie übergebe ich nun denn die erste Zahl aus dem Array (2) und teile sie durch Null? Ich weiß, dass da ein Fehler rumkommt den ich dann mit Exception Handling fangen und verarbeiten muss... aber es passiert ja garnix bei mir außer Fehlermeldungen... 🙁[/i]
 
Hallo.

Na ja, deine Methode sieht so aus: dividiere (int [] a, int i)

Und so rufst du die auf: dividiere(a);

Und die Variable i von (int [] a, int i) wird nicht funktionieren wenn du in der Methode eine Schleife hast wie du sieht Implementiert hast.

Es gibt dann zwei Variablen mit dem namen i und das sollte die deine IDE auch zeigen.
Die deklaration von i in der Schleife ist nicht notwendig. Mache also das int weg.


Grüße
 
Zuletzt bearbeitet:
Schau auch nochmal was @Robat da oben geschrieben hat und mach das mal genau so.

Edit: in der Methode dividiere sollst du keine Schleife einbauen sondern nur die angegebene Berechnung ausführen !
 
Vielleicht hilft dir ja ein wenig Prosa
Code:
main:
    erstelle ein Array und fülle es mit zahlen

    für jedes i von 0 bis 5
        rufe dividiere mit dem array und i auf

    gib das array auf der Konsole aus

dividiere:
    für a an der Stelle i+1:
        berechne a an der Stelle i+2 DURCH a an der Stelle i

PS: Nutze bitte Code-Tags [code=Java]DEIN CODE[/code]
 

Zurück
Oben