Informatik Hausaufgabe?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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;
    }

    // ...

}
Woher ich das weiß:Studium / Ausbildung – Studium Informatik / Softwaretechnik
Connor386 
Fragesteller
 21.05.2021, 00:59

Dankeschön😊 Das hilft sehr

0
msmw22  21.05.2021, 10:16
@Connor386

Mir ist noch ein kleiner Fehler aufgefallen. Die Variable ergebnisBin muss natürlich vom Typ Binzahl sein und nicht int

0
Connor386 
Fragesteller
 22.05.2021, 06:31
@msmw22

Ja, das habe ich auch schon gesehen. Ist es auch irgendwie möglich das zu rechnen, ohne die Umwandlungen? Also einfach 2 Binärzahlen miteinander verrechnen? Ich glaube dafür muss man irgendwie dieses CharAt benutzen...oder?

0
msmw22  22.05.2021, 11:42
@Connor386

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.

1

ä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 ?

Connor386 
Fragesteller
 21.05.2021, 00:59

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.

0