Funktionen:
Methoden mit Rückgabewerten
ggT-Funktion
import JavaKaraProgram;
public class ggTFunktion extends JavaKaraProgram
{ // Vereinbarung der ggt-Funktion
int ggT(int a, int b)
{ int d,h;
int ergebnis;
if (a<0)
a=-a;
if (b<0)
b=-b;
do
{ if (a<b)
{ // a und b vertauschen
h = a;
a = b;
b = h;
}
d=a-b;
a=b; // für den nächsten Schleifendurchgang
b=d;
} while (d>0);
ergebnis = a;
return ergebnis; // einfacher: return a;
} // Ende von ggT
public void myProgram()
{ int zähler;
int nenner;
zähler=tools.intInput("Geben Sie den Zähler eines Bruchs ein.");
nenner=tools.intInput("Geben Sie den Nenner eines Bruchs ein.");
tools.showMessage("Die ggT von "+zähler+" und "+nenner+" ist "
+ggT(zähler,nenner)+".");
} // von myProgram
KaraRueck1a
/* Kara steht auf dem ersten von mehreren Kleeblättern. Sie zählt die Kleeblätter.
*/
import JavaKaraProgram;
public class KaraRueck1a extends JavaKaraProgram
{ // Anfang von KaraRueck1a
// Funktionsvereinbarung
int zaehleBlätter ()
{// Anfang von zaehleBlätter
int anz = 0;
while (kara.onLeaf())
{ kara.removeLeaf();
kara.move();
anz = anz + 1;
}
return anz;
}// Ende von zaehleBlätter
public void myProgram()
{ // Anfang von myProgram();
tools.showMessage("Ich habe "+this.zaehleBlätter()+" Blätter gezählt.");
} // Ende von myProgram
} // Ende von KaraRueck1a KaraRueck1b
import JavaKaraProgram;
public class KaraRueck1b extends JavaKaraProgram
{ // Anfang von KaraRueck1b
// Funktionsvereinbarung
int zaehleBlätter ()
{// Anfang von zaehleBlätter
int anz = 0;
while (kara.onLeaf())
{ kara.removeLeaf();
kara.move();
anz = anz + 1;
}
return anz;
}// Ende von zaehleBlätter
void legeKleeblattZeile(int anz)
{ // Anfang von legeKleeblattZeile
for (int i = 1; i <= anz; i++ )
{ kara.putLeaf();
kara.move();
}
} // Ende von legeKleeblattZeile
public void myProgram()
{ // Anfang von myProgram
int blatt_anz;
blatt_anz = this.zaehleBlätter();
tools.showMessage("Ich habe " + blatt_anz+ " Kleeblätter gefunden"+
" und lege so viele wieder hin.");
this.legeKleeblattZeile(blatt_anz);
} // Ende von myProgram
} // Ende von KaraRueck1b
Quersumme
Es soll ein Programm geschrieben werden, das die Quersumme zweier
Zahlen und ihrer Summe berechnet. Man kann damit testen, ob die
Quersumme einer Summe gleich der Summe der Quersummen ist oder nicht.
import JavaKaraProgram;
/* Berechnung der Quersummme einer Zahl
*/
public class QuersummenFunktion extends JavaKaraProgram
{ //Vereinbarung der Quersummenfunktion
public int QuerSumme(int z)
{ int qs=0; //Summenwert auf Null setzen
while (z>0)
{ qs=qs+z%10; //Einerziffer zur Summe addieren
z=z/10; //Einerziffer wegdividieren
}
return qs;
} // von QuerSumme
public void myProgram()
{ int zahl1;
int zahl2;
zahl1=tools.intInput("Geben Sie eine ganze Zahl ein.");
zahl2=tools.intInput("Geben Sie eine zweite Zahl ein.");
tools.showMessage("Die Quersumme von "+zahl1+" ist "+QuerSumme(zahl1)+"."+"\n"+
"Die Quersumme von "+zahl2+" ist "+QuerSumme(zahl2)+"."+"\n"+
"Die Quersumme von "+zahl1+"+"+zahl2+" ist "
+QuerSumme(zahl1+zahl2)+"."+"\n");
}
}
1. Verwende die ggT-Funktion, um einen Bruch zu kürzen.
Lösung
2. Schreibe eine Funktion, die den Betrag
einer Zahl berechnet. Lösung
3. Schreibe eine Funktion, die die Fakultät
einer Zahl berechnet. Lösung
4. Schreibe eine Funktion, die die Zahl
der Würfe eines Würfels bis Sechs gefallen ist bestimmt.
5. Ergänze die Funktion leafFront so, dass auch
ein Baum vor Kara stehen darf.
6. Schreibe für das Pacman-Problem, bei dem Kara
eine Kleeblattspur bis zu einem Baum verfolgt, ein JavaKaraProgramm.
Verwende dabei neben der Funktion leafFront
auch die neu zu programmierenden Funktion leafLeft und leafRight.
7. Schreibe eine Funktion, die eine Temperaturangabe
in Grad Celsius in Grad Fahrenheit umrechnet.
8. Schreibe eine Funktion, die eine Zahl
in Dezimaldarstellung ins Zweiersystem (String) umrechnet.
9. Schreibe eine Funktion, die eine Zahl
(String) im Dualsystem ins Dezimalsystem umwandelt.
|