[Übersicht] [Einführung] [Sequenzen] [Prozeduren] [Verzweigungen] [Ein-/Ausgabe] [Schleifen] [Zählschleifen] [Prozeduren mit Parametern] [Funktionen] [Rekursion] [Verschiedenes]

 

 Thema: Funktionen als Methoden mit Rückgabewerten


Arbeitsblätter
 Beispielprogramme Übungsaufgaben Kontrolltests Zusatzprogrammieraufgaben Zusatzinformationen/aufgaben
 

 

Arbeitsblätternach oben

   Funktionen: Methoden mit Rückgabewerten

Beispiele nach oben

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");
  }
}
 Übungsaufgabennach oben

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.

Kontrolltestsnach oben

 

nach oben

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.

Zusatzinformationen/aufgabennach oben