Java Programmierung

Von: , Frage gestellt am Sa, 19. Jan 2008

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

6 Antworten zu dieser Frage

  1. Antwort von nach 5 Minuten 0 hilfreich
    Re: Java Programmierung

    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

  2. Antwort von nach 2 Tagen 0 hilfreich
    Re: Java Programmierung

    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

  3. Antwort von nach 4 Tagen 0 hilfreich
    Re: Java Programmierung

    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<=zahl; count++){
    summe = summe * count;
    }
    return summe;
    }

    alternativ geht auch folgendes:

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

    biddeschöN [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

    • Antwort von nach 4 Tagen 0 hilfreich
      Re^2: Java Programmierung

      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<=zahl; count++){
      summe = summe * count;
      }
      return summe;
      }
      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?

      • Antwort von nach 4 Tagen 0 hilfreich
        Re^3: Java Programmierung

        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 :-) (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

        • Antwort von nach 4 Tagen 0 hilfreich
          Re^4: Java Programmierung

          Hallo Frank.

          Danke für die einleutende Erklärung :-) Viel Spass beim weitern optimieren von Software.
          Dir auch.

          Gruß

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!