Algorithmen und Programmierung II

 


SS 2002 Dr. Hannes Federrath
Übung 3 Natalie Ardet
Abgabe bis zum Di. 21.05.02

Die Lösung der Aufgaben und die Abgabe der Lösungen erfolgt in Zweiergruppen!
Hinweis: Benutze die Ressourcen der ALP2 Webseite.

Aufgabe 1 (6 P.)

Wir nehmen an, für die Multiplikation natürlicher Zahlen stehe der Operator * nicht zur Verfügung. Man kann dann zwar naiv durch wiederholtes Addieren multiplizieren, geschickter ist es aber, die Shift-Operatoren << und >> einzusetzen. 

  1. Entwickle den Algorithmus als Pseudocode.
  2. Implementiere ein entsprechendes Programm in Java, dem die Operanden als Kommandozeilenparameter übergeben werden.

Aufgabe 2 (5 P.)

Eine natürliche Zahl t heißt Teiler einer natürlichen Zahl n, wenn n durch t ohne Rest teilbar ist. Eine natürliche Zahl n heißt vollkommene Zahl, wenn sie gleich der Summe ihrer Teiler ist (1 eingeschlossen, n ausgeschlossen). Die kleinste vollkommene Zahl ist 6 = 1+2+3.

Implementiere ein Java-Programm, das möglichst viele vollkommene Zahlen ausgibt.

Aufgabe 3 (7 P.)

Wieviele rechtwinklige Dreiecke mit ganzzahligen Kathetenlängen (größer Null) gibt es, deren Fläche einen vorgegebenen ganzzahligen Wert nicht übersteigt?

  1. Beschreibe die Überlegungen zur Lösung des Problems und skizziere die Arbeitsweise des vorgeschlagenen Algorithmus.
  2. Verfasse ein entsprechendes Java-Programm, das nach Eingabe der Fläche die Kantenlängen ausgibt, und teste es mit geeignet gewählten Flächen-Werten. Berücksichtige auch ausgefallene Werte.

03.06.2002