Hallo...
Ich habe wieder mal ein Problem.
Wir haben eine Aufgabe gestellt bekommen, in der wir folgende Formel berechnen sollten:
Resultat der Berechnung = (Wurzel aus A) / B
Eigentlich keine schwierige Sache.
Aber wir haben ein paar Bedingungen:
Für die Eingabe der Zahlen sowie die Berechnung muss immer eine Funktion aufgerufen werden.
Weiter sollten Exceptions abgefangen werden
(in diesem Programm vorallen die Eingabe von Buchstaben, da Double ja nur Fliesskommazahlen akzeptiert.
Das Programm ist schon fertig geschrieben, bevor ich programmierte war ich sicher das mein Ansatz funktioniert.
Aber er funktioniert nicht.
Ich bekomme bei der Ausführung des Tools meine Ausgabeline: "Ihr Ergebnis lautet: NaN".
Kann mir jemand helfen?
Liebe Grüsse, Andy
Ich habe wieder mal ein Problem.
Wir haben eine Aufgabe gestellt bekommen, in der wir folgende Formel berechnen sollten:
Resultat der Berechnung = (Wurzel aus A) / B
Eigentlich keine schwierige Sache.
Aber wir haben ein paar Bedingungen:
Für die Eingabe der Zahlen sowie die Berechnung muss immer eine Funktion aufgerufen werden.
Weiter sollten Exceptions abgefangen werden
(in diesem Programm vorallen die Eingabe von Buchstaben, da Double ja nur Fliesskommazahlen akzeptiert.
Das Programm ist schon fertig geschrieben, bevor ich programmierte war ich sicher das mein Ansatz funktioniert.
Aber er funktioniert nicht.
Ich bekomme bei der Ausführung des Tools meine Ausgabeline: "Ihr Ergebnis lautet: NaN".
Kann mir jemand helfen?
Liebe Grüsse, Andy
Code:
*******************************************************************************
* Programm: Fehler
* Autor: André Rohrbach
* Datum: 10. Dezember 2004
* Version: 0.9
* File: fehler.java
* Beschreibung
* Das Programm führt die Berechung der in der Aufgabenstellung notierten
* Formel durch. Dabei wird für die Eingabe jedes Wertes und auch für die
* Berechung eine eigene Fuktion verwendet. Das Programm darf auf keinen Fall
* abstürzen.
* Aufgabenstellung:
* Aufgaben Fehlerbehandlung; Aufgabe 1
*******************************************************************************/
import java.io.*;
public class fehler {
/***************************************************************************
* Die nachfolgenden Zeilen machen die Eingabe von Zahlen durch den Benutzer
* möglich. Unterstützt werden Variablen des Datentyps Double.
***************************************************************************/
static BufferedReader din;
static void OpenInput()
{
din = new BufferedReader(new InputStreamReader(System.in));
}
static double ReadDouble()
{
double a=0.0;
try {
a = Double.parseDouble(din.readLine());
} catch (IOException e1) {
System.out.print ("Ungueltige Eingabe!!\n");
System.exit (-1);
} catch (NumberFormatException e2){
System.out.print ("Ungueltige Eingabe!!\n");
System.exit (-1);
}
return (a);
}
/***************************************************************************
* Die Funktion nimmt den Wert für die Variable a auf, überprüft auf eine
* korrekte Eingabe. Ist die Eingabe ungültig, wiederholt es diese, bis eine
* brauchbare Zahl eingegeben wird.
***************************************************************************/
static double Eingabe_a () {
// Datentypdefinition
double a=0; // Nimmt die Zahl auf
boolean test=false; // Testet ob eine gültige Zahl eingegeben wurde
while (test=false) {
// Versuchen die Zahl einzulesen
try {
System.out.println ("Geben Sie den Wert A ein: ");
a=ReadDouble();
test=true;
}
// Wenn ungültige Zahl, folgende Befehle ausführen
catch (Exception e) {
System.out.println ("Ungültige Zeichenfolge eingegeben.");
}
}
// a an Hauptprogramm übergeben
return(a);
}
/***************************************************************************
* Die Funktion nimmt den Wert für die Variable b auf, überprüft auf eine
* korrekte Eingabe. Ist die Eingabe ungültig, wiederholt es diese, bis eine
* brauchbare Zahl eingegeben wird.
***************************************************************************/
static double Eingabe_b () {
// Datentypdefinition
double b=0; // Nimmt die Zahl auf
boolean test=false; // Testet ob eine gültige Zahl eingegeben wurde
while (test=false) {
// Versuchen die Zahl einzulesen
try {
System.out.println ("Geben Sie den Wert B ein: ");
b=ReadDouble();
test=true;
}
// Wenn ungültige Zahl, folgende Befehle ausführen
catch (Exception e) {
System.out.println ("Ungültige Zeichenfolge eingegeben.");
}
}
// a an Hauptprogramm übergeben
return(b);
}
/***************************************************************************
* Diese Funktion berechnet das Ergebnis aus den beiden Variabeln a und b.
***************************************************************************/
static double Berechnung ( double a, // Wert a
double b) // Wert b
{
// Datentypdefinition
double temp=0; // Variable zur Zwischenspeicherung von Wurzel(a)
double result=0; // Speichert das Resultat der Berechung
// Berechung
temp=Math.sqrt(a);
result=temp/b;
// Resultat an Hauptprogramm übergeben
return(result);
}
/***************************************************************************
* Das Programm berechnet die in der Aufgabenstellung gestellte Formel
* durch den Aufruf der jeweiligen Funktionen.
**************************************************************************/
public static void main(String[] args) {
// Definition der Datentypen
double a=0; // Speichert den Wert a
double b=0; // Speichert den Wert b
double result=0; // Speichert das Resultat
// Aufrufen der Funktionen
a=Eingabe_a();
b=Eingabe_b();
result=Berechnung(a,b);
// Ausgabe des Resulatates
System.out.println ("Ihr Ergebnis lautet: "+result);
}
}