/***************************  Methoden.java  **********************************/

import AlgoTools.IO;

/**  Klassen-Methoden 
 *   mit und ohne formale Parameter
 *   mit und ohne Rueckgabewert 
 */

public class Methoden {

                                             // Methode ohne Rueckgabewert
  public static void bitte() {               // und ohne Parameter         
    IO.println("Bitte Eingabe: "); 
  }

                                             // Methode ohne Rueckgabewert
  public static void sterne(int k) {         // mit einem Integer-Parameter
    int i;                                   // lokale Variable 
    for (i=0; i < k; i++)                    // zeichne k Sterne
        IO.print('*');
    IO.println();
  }

                                             // Methode mit Rueckgabewert
  public static int hoch(int a, int b) {     // und zwei Integer-Parametern  
    int i, h = 1;                            // lokale Variablen            
    for (i=0; i < b; i++) h *= a;            // berechne a hoch b
    return h;                                // liefere Ergebnis ab
  }

                                             // Methode mit Rueckgabewert
  public static int ggt(int a, int b) {      // zwei Integer-Parameter
    while (a != b)                           // solange Zahlen verschieden 
        if (a > b) a -= b; else b -= a;      // ziehe kleinere von groesserer ab
    return a;                                // liefere Ergebnis zurueck
  }                                          // aktuelle Parameter unveraendert

                                             // Methode ohne Rueckgabewert
  public static void main (String [] argv) {  // oeffentlich aufrufbar   
    bitte();                                 // rufe bitte auf
    sterne(3*5+7);                           // rufe sterne auf
    IO.println("3 hoch 7 ist " + hoch(3,7)); // rufe hoch auf
    IO.println("ggt(28,12) = " + ggt(28,12));// rufe ggt auf
  }
}
