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
- 3672 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.