PDA

View Full Version : [Frage] runde 3: einfügen des bsp


jay
25-05-2003, 19:33
wie genau muss ich das programm aus der 1. runde für mein bsp von der 3. runde einfügen, daß das ganze funktioniert.

ich hab schon mal alle print() in return() umgeändert
aber das reicht anscheinend nicht
der compiler beschwert sich, daß er zb bei return(erg);
(erg ist ein int) einen inkompatiblen typen findet

keine ahnung wie ich das richtig machen soll...

jay
25-05-2003, 20:11
bin inzwischen schon draufgekommen, daß ich die in werte zu string casten muss. aber dafür hab ich auch schon wieder ein neues problem:
der compiler sagt mir daß ganz am anfang des eingefügten progs - gleich nach der ersten geschwungenen klammer - ein return statement fehlt...
ich poste hier mal den code:


public static String notenfrq(String ton)

{
String NotenG[] = {"C","Cis","D","Dis","E","F","Fis","G","Gis","A","Ais","H"};
int FrequenzG[] = {65,69,73,78,82,87,92,98,104,110,117,123};
String NotenK[] = {"c","cis","d","dis","e","f","fis","g","gis","a","ais","h"};
int FrequenzK[] = {130,138,146,156,164,174,184,206,208,220,234,246};
String strEingabe = "";
int Striche = 0;
boolean Eingabefehler = true;
int i;

strEingabe = readWord();

while(strEingabe.endsWith("'"))
{
++Striche;
strEingabe = strEingabe.substring(0,strEingabe.length() - 1);
}

if (Striche > 3)
{
return("FALSCHE EINGABE");
}
for (i = 0; i < 12; i++)
{
if (strEingabe.equals(NotenG[i]) == true)
{
if (Striche == 0)
{
Eingabefehler = false;
return(Integer.toString(FrequenzG[i]));
}
else
{
Eingabefehler = true;
break;
}
}

}
for (i = 0; i < 12; i++)
{
if (strEingabe.equals(NotenK[i]) == true)
{
Eingabefehler = false;
if (Striche == 0)
{
return(Integer.toString(FrequenzK[i]));
}
else
{
int Erg = FrequenzK[i] * (int)Math.pow(2,Striche);
return(Integer.toString(Erg));
}
}
}
if (Eingabefehler == true)
{
return("FALSCHE EINGABE");
}
}
}

wäre toll wenn mir jemand sagen könnte, worans da scheitert

Filz
25-05-2003, 20:30
Java braucht auf jeden Fall am Ende einer Funktion ein return, egal ob es erreicht werden kann oder nicht...

ein return in einem if-Statement zählt nicht, es muss zum schluss noch einmal explizit dastehen...

{
...

if (bool_var)
return "1";

if (!bool_var)
return "2";

//trotzdem:
return "never happens";
}

jay
25-05-2003, 21:41
danke, jetzt funktionierts einwandfrei :)

Mr. Zet
31-05-2003, 22:43
wichtige frage dazu:

muss man in runde 3 zwingend eine der erhaltenen lösungen verwenden?

oder kann man auch "from scratch" neu anfangen und alles selber machen.... meine 2 lösungen sind a) ned wirklich verwendbar und b) helfens mir gar ned wirklich bei meiner aufgabenstellung.

bitte um info :)

Bruno
31-05-2003, 23:15
nein, du darfst sie ofiziell verwenden,wennst magst, aber müssen tutst du nicht. beim abgeben mußt du dich aber wieder für eins entscheiden, das dann zusatzpunkte bekommt.

Mr. Zet
31-05-2003, 23:46
thx für schnelle info :thumb:

das ich mich trotzdem für eins entscheiden muss, war mir schon klar.
Ich war mir halt nur nicht sicher ob ich eines verwenden muss ;)

nochmal thx