# JavaKara: Addieren von 2 Binärzahlen



## Orac90 (4. Nov 2012)

Hey Leute,

ich hab vor kurzem mein Studium zur Informatik begonnen und das wirklich ohne Vorwissen zur Informatik. Wir haben in  Programmierung mit JavaKara angefangen und ich bin völlig überfordert mit einer Hausaufgabe, die wir bis morgen abend abgeben sollen. Unser Prof schafft es irgendwie jedes Mal, dass er mit uns etwas durchnimmt uns dann aber Hausaufgaben gibt zu Themen, die wir so gar nicht gelernt haben. Ich habe auch wie eine Blöde gegoogelt und finde keine Lösungsansätze zu dieser Aufgabe. Die Methode, die er uns gegeben hat, verstehe ich nur teilweise. 
Ich hoffe, dass mir irgendjemand etwas helfen kann. Nicht die komplette Lösung, das ist kla. Aber ich weiß nichtmal, ob ich innerhalb der Methode ergänzen muss oder erst unter myProgram. Vielleicht kann mir jemand mal ein paar Denkanstöße sagen bzw. auch mal kurz die den Inhalt der Methode erklären. Wie gesagt, der Prof hat das so nie behandelt mit uns. Danke schonmal !

Die Aufgabe: 
Kara addiert zwei Binärzahlen

Schreiben Sie ein Kara-Programm DritteUebung

 Darin soll Kara zwei Binärzahlen addieren und das Ergebnis ausgeben

 Laden Sie die Datei DritteUebung.java aus Moodle herunter. 
Rufen Sie die Methode initialisiere(zahl1, zahl2) auf die erste Zahl wird in der ersten Zeile unter den Bäumen dargestellt (Blatt = 1, kein Blatt =0), die zweite Zahl in der zweiten Zeile (Blatt=1, kein Blatt=0)

Kara soll das Ergebnis durch Legen von Blättern in der dritten Zeile ausgeben



Die Datei DritteUebung.java:

```
import javakara.JavaKaraProgram;

// author: Hier sollte Ihr Name stehen
        
public class DritteUebung extends JavaKaraProgram {
  
  // die folgende Methode dient der Unterst�tzung, um nicht immer
  // einen Ausgangszustand selbst basteln zu m�ssen
  // parameter zahl1 : erste Zahl, die mit zahl2 addiert werden soll
  // parameter zahl2 : zweite Zahl, die mit zahl1 addiert werden soll
  // Beispiel Aufruf in myProgram(): initialisiere(63,31);
  public void initialisiere(int zahl1, int zahl2)
  {
    world.clearAll();
    int l1=1, l2=1;
    int bz1=zahl1, bz2=zahl2;
    while(bz1/2>0)
    {
      bz1=bz1/2;
      l1++;
    }
    while(bz2/2>0)
    {
      bz2=bz2/2;
      l2++;
    }
    int dimension = l1>l2 ? l1+4 : l2+4;
    world.setSize(dimension,5);
    for(int i=0; i<dimension; i++)
    {
      world.setTree(i,0,true);
      world.setTree(i,4,true);
    }
    for(int i=1; i<5; i++)
    {
      world.setTree(0, i, true);
      world.setTree(dimension-1,i,true);
    }
    bz1=zahl1; 
    bz2=zahl2;
    l1=dimension-2;
    l2=dimension-2;
    while(bz1/2>0)
    {
      if(bz1%2==1)
      {
        world.setLeaf(l1,1,true);
      }
      l1--;
      bz1=bz1/2;
    }
    world.setLeaf(l1,1,true);
    while(bz2/2>0)
    {
      if(bz2%2==1)
      {
        world.setLeaf(l2,2,true);
      }
      l2--;
      bz2=bz2/2;
    }
    world.setLeaf(l2,2,true);
    kara.setPosition(dimension-2,3);
    kara.turnLeft();
  }

  public void myProgram() 
  {
    initialisiere(63,21); // Parameter geben die zu addierenden Zahlen an
  }
}
```


----------



## Marcinek (5. Nov 2012)

1. Googeln, wie man Binärzahlen addiert.
 - Ich denke, dass man das schon mal gemacht hat.

2. Imho macht es sinn die Methode zu erweitern, oder dort enie neue aufzurufen, weil diese die beiden zu addierenden Zahlen hat.

3. Über der Methode steht, was die Methode macht.

4. Hast du schon mal das Programm ausgeführt? - Ich denke das +3. wird zeigen, was sie macht.

---

Niemand von uns kann das ausführen, weil keiner hier KARA hat.


----------



## RawBit (6. Nov 2012)

Im Informatikstudium spielt man mit JavaKara ?  </offtopic>


----------

