O
Orac90
Gast
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:
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:
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
}
}