Analysieren Sie die folgende Methode. Der Algorithmus implementiert das Multiplizieren zweier Zahlen durch fortgesetztes Addieren. Ignorieren Sie potentielle Probleme mit endlichen Wertebereichen in der Java-arithmetik:
 public static int multipliziere(int a, int b) {
   int i = 0; // Laufvariable
   int result = 0; // Ergebnis
   while (i<b) { //Mache weiter bis Laufvariable b erreicht
      result = result+a; // addiere a zu Ergebnis
      i++; // Inkrementiere die Laufvariable
    }
   return result;
 }
Die folgende Aussage ist zu vage formuliert um der Methode die Eigenschaften eines gültigen Algorithmus zu zugestehen.
„Diese Methode multipliziert zwei beliebige ganze Zahlen a und b und gibt das Ergebnis zurück“
Welche Eigenschaft eines Algorithmus ist nicht erfüllt?
Wie muss die Aussage präzisiert werden, damit Sie einen gültigen Algorithmus beschreibt?
| Niveau | 1 | 
| Schwierigkeitsgrad | mittel | 
| Zeit | 2+2 Minuten | 
Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)
Antwort zu Frage 6: Algorithmen erkennen
Die Schleife terminiert nicht. Mehr Informationen zu diesem Thema finden Sie hier.
- Printer-friendly version
- Log in to post comments
- 3748 views
"<<" ?
Hallo Herr Schneider,
wollten Sie wirklich den binary left shift operator benutzen?
Nach meinem Wissensstand würde Ihre Schleife dann nicht terminieren. ( Die Bits von i um b Stellen nach links verschoben ist immer größer Null, also -> True. )
Und eine Anfrage bezüglich der Lesbarkeit des Codes: Ist es möglich die Kommentare alle bündig weiter rechts auszurichten? ( Betrifft vlt allen Code von Ihnen, doch hier fällt es mir besonders auf. )
Viele Grüße!
Stimmt
Gut beobachtet. Danke.
Ich habe den Fehler korrigiert.