Java Programmierung

Kann mir jemand zu folgender Aufgabe weiterhelfen?
Ich habe keine Ahnung, wie ich anfangen soll.
Gesucht ist eine Funktion (summe_bis), die einer natürlichen (nichtnegativen) Zahl a die Summe
aller natürlichen Zahlen kleiner oder gleich dieser Zahl zuordnet.
Entwickeln Sie unter Eclipse ein Java-Programm, das eine Methode (summe_bis) enthält, welches o.g. Problem löst. Das Hauptprogramme
enthält die Eingabe per Tastatur und den Aufruf der Methode.
Beispiel: summe_bis(7) = 1+2+3+4+5+6+7 = 28

Vielen DanK

Hallo!

Kann mir jemand zu folgender Aufgabe weiterhelfen?
Ich habe keine Ahnung, wie ich anfangen soll.

Wo hapert es denn? Umgang mit Eclipse? Schreiben eines Java-Programms ganz allgemein? Problem mit dem geforderten Algorithmus?
Schreib mal, was Du schon hast und wo Du konkret nicht weiterkommst.

Major

Mach dir zuerst Gedanken über den Algorithmus.

Kannst du die Summenfunktion durch eine Folge von Anweisungen beschreiben, die du nur einmal von „oben nach unten“ durchgehen musst, oder ist dort eine Schleife ?

Sehr hilfreich ist es sich den Algorithmus selbst auf dem Papier als Pseudocode aufzuschreiben und auszuprobieren.

Tipp: Mach dich mit der for-Schleife vertraut

probier mal das hier, ist aber nicht getestet. machst du das für einen programmierkurs? es ist wichtig, dass du verstehst, was hier passiert und so eine aufgabe beim nächsten mal selber lösen kannst. sonnst wirst du den kurs nicht schaffen…

public int summe_bis(int zahl){
int summe = 1;
for (int count=1; count[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Sorry, aber das dürfte nicht stimmen.

Da du summe bereits mit 1 vorbelegst, müsste count mit 2 starten. Ausserdem müsste es

 summe = summe + count;

heißen, da eben die Summe und nicht das Produkt gesucht wird.

public int summe_bis(int zahl){
int summe = 1;
for (int count=1; count

Hallo Chris,

alternativ geht auch folgendes:

public int summe_bis(int zahl){
int summe = (zahl-1) * (zahl/2);
return summe;
}

Versteh ich net! Bei zahl = 7 kommt dann 18 raus… Und nu?

hier ist auch ein Fehler. Es müsste eigentlich (zahl+1) * (zahl / 2.0) heißen. Wichtig ist hierbei das bei „/2“ eine Floating Point Zahl herauskommt.
Das ganze hat der kleine Gauss mal herausgefunden (angeblich).
Schauen wir uns das Beispiel doch einfach mal für die Zahl 7 an.
Dann müssen wir 1+2+3+4+5+6+7 = 28 berechnen. Das kann man natürlich auch anders aufschreiben: 1+7 + 2+6 + 3+5 + 4 = 28. Also einfach die oberste Zahl und die unterste Zahl addieren. Das gibt 8. Es gibt insgesamt 3 Paare die eine solche Summe ergeben. Also (7+1)*3 = 24. Da 7 eine ungerade Zahl ist, bleibt die 4 übrig (sozusagen die Mitte). Man kann jetzt mit Induktion beweisen, dass die Summer von 1 bis n auch durch (n+1)*(n*0.5) zu berechnen ist - das aber überlass ich dem geneigten Leser :smile: (Hinweis: Man kann eine Fallunterscheidung für ungerade und gerade Zahlen machen; und für n=1 ist das trivial).

Viel Spass beim weitern optimieren von Software,
Frank

Hallo Frank.

Danke für die einleutende Erklärung :smile:

Viel Spass beim weitern optimieren von Software.

Dir auch.

Gruß