/*
 * "Grundkurs Programmieren in Java - Band 1 (4. Auflage, 2007)"
 * 2001-2007, Carl Hanser Verlag
 * Loesungsvorschlag zu Aufgabe 7.12 (Version 4.0)
 * (c) 2001-2007 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
 *
 */

import Prog1Tools.IOTools;

public class Anordnen {

  // a)
  public static double[] enter (double d, int k, double[] dFeld) {

    int i;
    double[] eFeld = new double[dFeld.length+1];

    if (k < 0)
      k = 0;
    else if (k > dFeld.length)
      k = dFeld.length;

    for (i=0; i < k; i++)
      eFeld[i] = dFeld[i];

    eFeld[k] = d;

    for (i=k+1; i < eFeld.length; i++)
      eFeld[i] = dFeld[i-1];

    return eFeld;
  }

  // b)
  public static int position (double d, double[] dFeld) {

    for (int i=0; i < dFeld.length; i++) {
      if (d == dFeld[i]) 
        return i;
    }
    if (d > 0) 
      return 0;
    else
      return dFeld.length;
  }

  // c)
  public static void main (String[] args) {
    double[] xF = new double[0];
    double x;
      
    do {
      x = IOTools.readDouble("double-Wert: ");
      xF = enter(x, position(x,xF), xF);
    } while (x != 0);
      
    System.out.println("Das Feld sieht folgendermassen aus:");
    for (int i=0; i < xF.length; i++)
      System.out.println(xF[i]);
  }

}
