/***************************************************************/
/* Prof. Dr. Carsten Vogt                                      */
/* FH Koeln, Fak. 07 / Nachrichtentechnik                      */
/* http://www.nt.fh-koeln.de/vogt                              */
/*                                                             */
/* Das Programm berechnet ein Anfangsstueck der Folge der Fibo-*/
/* nacci-Zahlen, speichert sie in einem Array ab und ermoeg-   */
/* licht dem Benutzer, eine der Zahlen ausgeben zu lassen.     */
/***************************************************************/

import java.io.*;

public class Fibo {

 public static void main(String[] args) throws IOException  {

  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

  int groesse = 10;              /* Groesse des Felds */ 
  int[] fibo = new int[groesse]; /* Feld zur Aufnahme der Fibonacci-Zahlen */
  int i;  /* Schleifenzaehler */

  /* Berechnen der Fibonacci-Zahlen und Speicherung im Feld */

  fibo[0]=0; fibo[1]=1;
  for (i=2;i<fibo.length;i++)
   fibo[i]=fibo[i-2]+fibo[i-1];
 
  /* Ausgabe des gesamten Felds */

  System.out.println();
  System.out.println("Die ersten " + fibo.length + " Fibonacci-Zahlen in Feld fibo[]:");
  for (i=0;i<fibo.length;i++)
   System.out.println(fibo[i]);
  System.out.println();

  /* Ausgabe eines Feldeintrags. Ausnahmeereignis, wenn Arraygrenzen nicht eingehalten. */

  try {
   System.out.println("Die wievielte Zahl soll ausgegeben werden? (erste = 0)");
   i = Integer.parseInt(in.readLine());
   System.out.println("fibo["+i+"] = "+fibo[i]);
  } catch (IndexOutOfBoundsException E)
          { System.out.println("FEHLER: Index ausserhalb des Bereichs!"); }
 
 }

}

