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

Informatiker Board » Themengebiete » Informatik in der Schule » Ich brauche Hilfe » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Ich brauche Hilfe
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Elya
Grünschnabel


Dabei seit: 12.10.2016
Beiträge: 6

Ich brauche Hilfe Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
}
}
12.10.2016 21:09 Elya ist offline E-Mail an Elya senden Beiträge von Elya suchen Nehmen Sie Elya in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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?

__________________
Syntax Highlighting fürs Board (Link)
13.10.2016 07:44 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Elya
Grünschnabel


Dabei seit: 12.10.2016
Beiträge: 6

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

sum = sum + start?
13.10.2016 11:57 Elya ist offline E-Mail an Elya senden Beiträge von Elya suchen Nehmen Sie Elya in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Genau.

__________________
Syntax Highlighting fürs Board (Link)
13.10.2016 11:59 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Elya
Grünschnabel


Dabei seit: 12.10.2016
Beiträge: 6

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
}
}
}
13.10.2016 12:00 Elya ist offline E-Mail an Elya senden Beiträge von Elya suchen Nehmen Sie Elya in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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]

__________________
Syntax Highlighting fürs Board (Link)
13.10.2016 12:07 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Elya
Grünschnabel


Dabei seit: 12.10.2016
Beiträge: 6

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
13.10.2016 12:09 Elya ist offline E-Mail an Elya senden Beiträge von Elya suchen Nehmen Sie Elya in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

Gruß,

Karlito
13.10.2016 12:21 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Elya
Grünschnabel


Dabei seit: 12.10.2016
Beiträge: 6

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ich verstehe bischen nicht traurig
13.10.2016 16:33 Elya ist offline E-Mail an Elya senden Beiträge von Elya suchen Nehmen Sie Elya in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
13.10.2016 17:21 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Informatik in der Schule » Ich brauche Hilfe