View Full Version : [Frage] HILFEEE, bitte ganz dringend, 2te Runde
ich bekomm folgende fehlermeldung:
./Testen.java:9: missing return statement
{
^
1 error
aber alle klammern sind eigenltich da!
bitte um schnelle hilfe, muss das am 6. mai abgeben
bitte und ganz viel danke!!
beeblebro
30-04-2003, 21:14
ich bekomm folgende fehlermeldung:
./Testen.java:9: missing return statement
{
^
1 error
Wie wärs mit einem return wenn er schon nach einem schreit?
Wie wärs mit einem return wenn er schon nach einem schreit?
hab eins reingeschmissen, habs sogar mit 2 versucht,
nutzt nix
finyfunny
30-04-2003, 21:37
wenn du das ganze programm postest oder so -hatte das selbe problem letztes sem auch- kann ichs mir anschauen . so kann ichs nicht wirklich was sagen. ist meistens schon was mit der klammer setzung noch ein return bringt normaler weise glaub ich nix hab ich damal beim der gleichen fehler meldung auch probiert dan wollrs nich eins gleich drauf lg finyfunny
wenn du das ganze programm postest oder so -hatte das selbe problem letztes sem auch- kann ichs mir anschauen . so kann ichs nicht wirklich was sagen. ist meistens schon was mit der klammer setzung noch ein return bringt normaler weise glaub ich nix hab ich damal beim der gleichen fehler meldung auch probiert dan wollrs nich eins gleich drauf lg finyfunny
//Autor: Pera Kölndorfer
//MatrNr: 0126687
//Beschreibung: Die Seitenlängen eines Dreickes werden eingelesen. Das Programm überprüft, ob es sich um ein rechtwinkeliges Dreieck handelt (mit einer Toleranz von 0.3 zu (|c² - a² - b²| <= 0.3 )) falls es sich um kein Rechtwinkliges Dreieck handelt soll das Program "KEIN RECHTER WINKEL"ausgeben. Weiters soll überprüft werden ob eine oder mehrere Seitenlänge fehlen, sollte eine fehlen wird die Seitenlänge vom Program mittels pythagoräischem Lehrsatz ermittelt, wenn mehr als eine Seite fehlen gibt das Programm "FALSCHE EINGABE" aus. Am ende soll noch die Fläche ausgerechnet werden.
import eprog.*;
public class Testen extends EprogIO
{
public static String perform()
{
float a;
float b;
float c;
try
{
a=Float.parseFloat(readWord());
b=Float.parseFloat(readWord());
c=Float.parseFloat(readWord());
if (a==0)
// Es wird überprüft ob a=0 ist. Wenn nicht geht es zu else if(b==0)
{
if (b==0||c==0)
//Es wird Überprüft ob mehr als 2 Seiten Null ergeben.
{
errorexit();
//Wenn ja wird das Program abgebrochen und "Falsche Eingabe" wird ausgegeben.
}
else
{
a=(float)Math.sqrt(Math.pow(c,2)-Math.pow(b,2));
//Hier wird auf die Class Math zugegriffen sqrt iniziert ein Wurzel zeichen, pow ermöglich das rechenen mit Hochzahlen.
printFixed(a);
//pirntFixed rundet das ergebnis auf 3 Nachkommer Zeichen
print(" ");
printFixed(a*b/2);
//Die Fläche wird errechnet und ausgegeben
println();
}
}
else if (b==0)
//Es wird überprüft ob b=0 ist.
{
if (c==0)
//Wenn c=0 => errorexit
{
errorexit();
}
{
b=(float)Math.sqrt(Math.pow(c,2)-Math.pow(a,2));
printFixed(b);
print(" ");
printFixed(a*b/2);
println();
}
}
else if (c==0)
//Es wird überprüft ob c=0 ist
{
c=(float)Math.sqrt(Math.pow(a,2)+Math.pow(b,2));
printFixed(c);
print(" ");
printFixed(a*b/2);
println();
}
else if(rechterWinkel(a, b, c))
//Wenn weder a,b oder c 0 ist wird der Winkel überprüft wenn es sich um ein rechtwinkliges Dreieck handelt wir die Fläche ausgerechnet
{
printFixed(a*b/2);
println();
}
else
{
println("KEIN RECHTER WINKEL");
}
}
catch (NumberFormatException e)
{
println("?");
}
}
private static boolean rechterWinkel(float a, float b, float c)
{
if( ( (Math.pow(a,2)+Math.pow(b,2))-Math.pow(c,2)>0.3)||( (Math.pow(a,2)+Math.pow(b,2))-Math.pow(c,2)<-0.3))
//Wieder wird die Class Math benuetzt und es wird überprüft ob es sich um ein Rechtwinkliges Dreieck handelt mit einer Toleranz von 0.3
return false;
else
return true;
}
private static void errorexit()
{
println("Falsche Eingabe");
System.exit(0);
}
}
./Testen.java:9: missing return statement
... daß er den fehler schon in zeile 9 findet, find ich interessant - ist ein bisserl früh, für ein return! Wär echt nicht schlecht, wennst das ganze prog posten könntest.
[edit] okay, schaus mir gleich an [edit]
Bruno
beeblebro
30-04-2003, 21:46
public static String perform()
{
[viel zeug aber kein return]
}
Also ich bleib bei meiner ersten Aussage...
Also ich bleib bei meiner ersten Aussage...
dann erklärs mir, so als wär ich ein dummie!
soll ich das wort "return" schreiben?
finyfunny
30-04-2003, 21:50
ich seh deinen fehlern schon du solltst ja mit einem return die ausgabe zurückgeben was bedeutet dass man alle println() in return umwandeln muss wie man das bei dem prog gescheit machen kann muss ich mir anschauen aber das ist auf alle fälle der fehler... schau gleich nochmal lg finyfunny
ich seh deinen fehlern schon du solltst ja mit einem return die ausgabe zurückgeben was bedeutet dass man alle println() in return umwandeln muss wie man das bei dem prog gescheit machen kann muss ich mir anschauen aber das ist auf alle fälle der fehler... schau gleich nochmal lg finyfunny
muss ich da statt println()
return()
oder sowas ähnliches schreiben?
beeblebro
30-04-2003, 21:55
dann erklärs mir, so als wär ich ein dummie!
soll ich das wort "return" schreiben?
Da wo du ein Return Statement haben willst. Die Frage ist ob du überhaupt eins willst/brauchst. Weil wenn nicht, dann solltest du dir vielleicht die Zeile "public static String perform()" noch einmal überlegen.
Da wo du ein Return Statement haben willst. Die Frage ist ob du überhaupt eins willst/brauchst. Weil wenn nicht, dann solltest du dir vielleicht die Zeile "public static String perform()" noch einmal überlegen.
es is die 2. runde
wir sollen ein programm testen
und wir müssen dieses public static String perform()
hinschreiben, steht in der Angabe
ich würds so machn: mach eine string variable ganz am anfang, auf die du vom ganzen programm aus zugreifen kannst (z.b.: String ausgabe; ). dann schreib dort, wo dein programm jetzt mit println das ergebnis schreibt, statt z.b.: println ("?"); ausgane="?";. dadurch hast du am ende von deinem programm eine variable, die das ergebnis beinhaltet. und die schickst du dann an der stelle
ausgane=("KEIN RECHTER WINKEL");
}
}
catch (NumberFormatException e)
{
ausgabe="?";
}
return ("ausgabe");
}
private static boolean rechterWinkel(float a, float b, float c)
mit dem return, das ich eingefügt hab, an main zurück. es sollte in deinem programm nämlich keine print-befehle geben.
Bruno
es is die 2. runde
wir sollen ein programm testen
und wir müssen dieses public static String perform()
hinschreiben, steht in der Angabe
jaja, den kopf mußt du genauso schreiben, wies in der angabe steht, sonst kann main das programm ja nicht finden ;)
ah ja, ich würd mich an deiner stelle auch noch um die system.exit kümmern, die da in deinem programm sind- die können,wenn ich mich richtig erinnere auf kriegsfuß mit dem lab-rechner stehen, der die abgabe korrigiert. :p
Bruno
ich würds so machn: mach eine string variable ganz am anfang, auf die du vom ganzen programm aus zugreifen kannst (z.b.: String ausgabe; ). dann schreib dort, wo dein programm jetzt mit println das ergebnis schreibt, statt z.b.: println ("?"); ausgane="?";. dadurch hast du am ende von deinem programm eine variable, die das ergebnis beinhaltet. und die schickst du dann an der stelle
ausgane=("KEIN RECHTER WINKEL");
}
}
catch (NumberFormatException e)
{
ausgabe="?";
}
return ("ausgabe");
}
private static boolean rechterWinkel(float a, float b, float c)
mit dem return, das ich eingefügt hab, an main zurück. es sollte in deinem programm nämlich keine print-befehle geben.
Bruno
und wie mach ich das mit printFixed(a*b/2) ?
jaja, den kopf mußt du genauso schreiben, wies in der angabe steht, sonst kann main das programm ja nicht finden ;)
ah ja, ich würd mich an deiner stelle auch noch um die system.exit kümmern, die da in deinem programm sind- die können,wenn ich mich richtig erinnere auf kriegsfuß mit dem lab-rechner stehen, der die abgabe korrigiert. :p
Bruno
in der angabe steht nix, dass man system.exit nicht verwenden darf
aber ich wüsst auch nicht wie ich mich drum kümmern soll
ich würds mit einer zwischenvariablen machen. bei der du erst mal das a*b/2 als float ausrechnest, dann mal 1000 nimmst, dir dann mit abs(variable) (ich glaub, abs hieß der befehl) die kommazahlen wegschneiden lässt, und dann wieder mit 1000 dividierst. damit hast du deine 3 kommastellen und kannst das float in den string übertragen.
ah ja, ich hab gesehen, daß du deine ausgabe teils aus mehreren print-befehlen zusammenstückelst! in dem fall darfst du klarerweise deinen string nicht immer überschreiben sonder mußt ihn erweitern. also z.b.: statt
print (a);
println();
ausgabe= (a + \n);
in der angabe steht nix, dass man system.exit nicht verwenden darf
aber ich wüsst auch nicht wie ich mich drum kümmern soll
okay. vielleicht habens das jetzt schon behoben.
ich bekomm folgende fehlermeldung:
./Testen.java:9: missing return statement
{
^
1 error
aber alle klammern sind eigenltich da!
bitte um schnelle hilfe, muss das am 6. mai abgeben
bitte und ganz viel danke!!
danke, ich habe es mit hilfe von euch gelöst!
Hey leute das ist ja mein 1 Runde Program.
aber ich heisse sicher nicht Pera Kölndorfer???
Das ist ganz sicher meins !!!
Hey Cool das du meines genommen hast hahaha
Hey Cool war gerade auf meiner Eprog seite hab 7 Punkte bekommen(man das ist mehr als mein Program wert war hahaha) Yeahhh :D Ich bin gluecklich.
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.