Elemente quadrieren

Status
Nicht offen für weitere Antworten.

Roy_killer

Mitglied
Schreibe eine iterative Methode, die alle Elemente einer Reihung quadriert!


Code:
int quadrat =0;
for (int i= 0; i<array. length; i ++)
{
    quadrat i² = array [i];
}


Schreibe eine rekursive Methode, die alle Elemente einer Reihung quadriert!!


Code:
int quadrat =0;
for (int i; :array )
{
    quadrat i² =i;
}




irgendwas falsch dann bitte bitte hilfe mir weiter :roll:


danke im Voraus ???:L

[Edit by Beni: aussagekräftigeren Titel gewählt, Codetags hinzugefügt, den Thread verschoben, sich eine bissige Bemerkung verkniffen]
 

Illuvatar

Top Contributor
3 Tips.

Erstens: ² ist in Variablennamen nicht zugelassen.
Zweitens: for (int i; :array ) ist Müll, vielleicht meinst du for (int i : array)? Dann ist das aber nur eine andere Schleife, und hat nichts mit Rekursiv zu tun. -> Forensuche
Drittens: Wenn du das einfachmal kompilieren würdest, dann hättest du das auch selber rausgefunden.
 

Leroy42

Top Contributor
Roy_killer hat gesagt.:
Schreibe eine iterative Methode, die alle Elemente einer Reihung quadriert!
Schreibe eine rekursive Methode, die alle Elemente einer Reihung quadriert!!

Die Aufgabenstellung ist nicht ganz klar ???:L
Du sollst die Elemente einer Reihung (eines Arrays) quadrieren. Schön, aber was
soll dann damit geschehen?
- Einfach nur quadrieren und das Resultat nicht beachten?
- Die Ergebnisse auf der Konsole ausgeben?
- Die Ergebnisse irgendwo speichern? Wenn ja, direkt in den Originalarray?

Also ein einzelnes Element wird quadriert durch
Code:
array[i]*array[i];

Aber bei dieser Anweisung wird das Ergebnis sofort verworfen :(
falls ein schlauer Compiler nicht gleich die ganze Multiplikation wegoptimiert.

Beschreib mal genauer ???:L
 

Roy_killer

Mitglied
Einfach nur quadrieren und das Resultat nicht beachten genau das ist richtig!

kannst du bitte den ganz code schreiben das wäre lieb!
 

Leroy42

Top Contributor
Von mir aus :shock:

Iterativ
Code:
void quadrat(int[] array) {
    for (int i=0; i < array.length; ++i)
        array[i]*array[i];
}
oder auch
Code:
void quadrat(int[] array) {
    for (int elem : array)
        elem*elem;
}
Rekursiv
Code:
void quadrat(int[] array) {
    quadrat(array, 0);
}

void quadrat(int[] array, int i) {
    if (i < array.length) {
        array[i]*array[i];
        quadrat(array, i+1);
    }
}

Allerdings bleibt mir vollkommen schleierhaft was das Ganze
für einen Sinn haben soll. Vor allem ein Array rekursiv zu
bearbeiten ist doch nur noch daneben :autsch: Da gibt es 100 andere, sinnvolle Anwendungen für Rekursion.
War das eine Aufgabe?
Dann kann ich froh sein, einen solchen Lehrer nicht kennengelernt zu haben :cool:
 

Roy_killer

Mitglied
ja muss du echt froh sein ich weiß auch nicht was das soll lieber Bürger!

danke sehr dass du mir hilfst!

würdest mir auch hierbei hilfe?


Gegeben: class Elem {int value; Elem next;}
Schreibe eine rekursive Methode, die alle Elemente einer Liste quadriert!


danke im voraus
 

Leroy42

Top Contributor
Hier vermute ich mal, daß die Elemente nicht nur quadriert werden
sollen, sondern daß die Liste selbst auch geändert werden sollen.
Code:
class Elem {
    int value;
    Elem next;

    void quadriereAlle() {
        value *= value;
        if (next != null)
            next.quadriereAlle();
    }
}

Hier macht die Rekursion wenigstens Sinn :D
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben