Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » Ich brauche Hilfe » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
eulerscheZahl

Du hast offensichtlich einen Test, der deine Ausgabe mit der erwarteten vergleicht.

In der Aufgabenstellung heißt es: " Geben Sie "TRUE" aus falls die Division (sum/div) den Rest 0 ergibt,
anderenfalls "FALSE".".
Du gibst aber zusätzlich die Summe aus. Wenn die Testroutine davon ausgeht, dass du nur TRUE/FALSE ausgibst, ist deine Ausgabe falsch.
Entferne System.out.println(sum); //sum ausgeben und versuche es erneut.
Elya

ich verstehe bischen nicht traurig
Karlito

Bitte einfach mal die Ausgabe der Summe auskommentieren und schauen, ob es dann geht.

Gruß,

Karlito
Elya

Ja, das bekomme ich auch, aber...


229320
TRUE

org.junit.ComparisonFailure: <Click to see difference>


at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at Aufgabe3Test.testOutput(Aufgabe3Test.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:6
2)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
l.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod
.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.
java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.j
ava:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.ja
va:17)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(
FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(
FailOnTimeout.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.lang.Thread.run(Thread.java:745)


Process finished with exit code -1
eulerscheZahl

Und was soll der Fehler sein?
Ich kriege als Ausgabe
code:
1:
2:
229320
TRUE

Deckt sich mit meiner Rechnung: [latex]678\cdot(678+1)\cdot\frac 1 2 - 42\cdot(42-1)\cdot\frac 1 2 = 229320[/latex]
Elya

Ok, aber es gibt noch immer ein Fehler.


public class Aufgabe3{

public static void main(String[] args) {
int div = 14; //Variablen deklarieren
int start = 42; //Variablen deklarieren
int ende = 678; //Variablen deklarieren
int sum = 0; //Variablen deklarieren

while ( start <= ende) { //while-Schleife mit Bedingung schreiben
sum = sum + start; //alle Zahlen zwischen start und ende aufsummiert, in sum speichern
start++; //start um 1 erhöhen
}

System.out.println(sum); //sum ausgeben

if (sum % div == 0) {
System.out.println("TRUE"); //TRUE ausgeben
}
else {
System.out.println("FALSE"); //FALSE ausgeben
}
}
}
eulerscheZahl

Genau.
Elya

sum = sum + start?
eulerscheZahl

code:
1:
sum = end + start;

Damit überschreibst du jedes Mal das Ergebnis, sodass am Ende sum == 2 * end gilt.
Du sollst aber aufsummieren, das heißt das alte Ergebnis weiterverwenden. Also sum = sum + .... Und was musst du jetzt noch addieren?
Elya Ich brauche Hilfe

Meine Frage:
Erweitern Sie die main-Methode um folgende Funktionalität:
- Schreiben Sie eine while-Schleife, die alle Zahlen zwischen "start"
(inklusive) und "ende" (inklusive) aufsummiert und in einer Variablen "sum"
abspeichert.
- Nachdem Sie alle Zahlen innerhalb des beschriebenen Intervalls aufsummiert
haben, dividieren Sie die Summe "sum" durch den Divisor "div".
- Geben Sie "TRUE" aus falls die Division (sum/div) den Rest 0 ergibt,
anderenfalls "FALSE".
- Verwenden Sie für die Ausgabe "System.out.println()".

Meine Ideen:
public class Aufgabe3{

public static void main(String[] args) {
int div = 14; //Variablen deklarieren
int start = 42; //Variablen deklarieren
int end = 678; //Variablen deklarieren
int sum = 0; //Variablen deklarieren

while ( start <= end) {
sum = end + start;
start++;
}
System.out.println(sum); //sum ausgeben

if (sum % div == 0) {
System.out.println("TRUE"); //TRUE ausgeben
}
else {
System.out.println("FALSE"); //FALSE ausgeben
}
}