Informatik Hausaufgabe?
Hallo, kann mir vielleicht jemand bei meiner Informatik Hausaufgabe helfen, ich habe echt keine Ahnung. (Die Aufgabe steht unter dem blauen Klassendiagramm)
Über Lösungen oder Lösungsansätze würde ich mich freuen😊
Die Befehle in dem grünen Kasten sollen beim Code selbstverständlich genutzt werden
2 Antworten
Naja du sollst die Klassen implementieren.
Dort sind deine Methoden gegeben und die musst du mit Code füllen, sodass am Ende eben Binärzahlen addiert/multipliziert werden können.
Kennst du dich denn mit Klassendiagrammen aus?
Also du hast eine Klasse "Binrechner", welche die vier Methoden addieren(), multiplizieren(), binInDez() und dezInBin() hat.
addieren() werden z.B. 2 Binärzahlen übergeben und die Summe soll dann als Binärzahl zurückgegeben werden.
Hier ist gewollt, dass die Binärzahlen dann zunächst in Dezimalzahlen umgewandelt werden (mit binInDez() ) und man dann mit denen rechnet und das ergebnis dann eben zurückumwandelt zu einer Binärzahl und wieder ausgibt.
Das ist eleganter als die Binärzahlen direkt irgendwie zu addieren, weil das aufwendiger umzusetzen ist.
Ein Teil von Binrechner könnte dann so aussehen:
public class Binrechner {
// ...
public static Binzahl addieren(Binzahl sum1, Binzahl sum2) {
// Binärzahlen in Dezimalzahlen umwandeln
int sum1Dez = binInDez(sum1);
int sum2Dez = binInDez(sum2);
// Ergebnis berechnen und dann in Binärzahl umwandeln
int ergebnisDez = sum1Dez + sum2Dez;
Binzahl ergebnisBin = dezInBin(ergebnisDez);
// Rückgabe des Ergebnis in binär
return ergebnisBin;
}
// ...
}
Mir ist noch ein kleiner Fehler aufgefallen. Die Variable ergebnisBin muss natürlich vom Typ Binzahl sein und nicht int
Ich glaube eher, dass charAt() dafür gedacht ist, die Binärzahlen in Dezimalzahlen umzurechnen. Weil du da für jede Stelle ja immer eine 2er Potenz dazu addieren musst.
111 wäre ja 2² + 2¹ + 2⁰
Und mit charAt() kann man das in der binInDez() ganz gut realisieren.
Natürlich könnte man die Binärzahlen auch direkt addieren. Bei deiner Aufgabe steht allerdings, dass du mit den Methoden zur Umwandlung das über normales Dezimalrechnen machen solltest.
ähm, Du weisst aber was ein String ist ?
Und du hast auch aufgepasst beim Klassenbau ?
Oder hast Du noch gar nichts gemacht und heute meinst Du alles zu tun ?
Sowas weiß ich schon... ich musste ja auch schon andere Sachen implementieren . Aber die Antwort von msmw 22 hat mir da schon gut geholfen😊. Ich wusste einfach nicht wie ich das umsetzen soll.
Dankeschön😊 Das hilft sehr