#include
#include
#include
#include
#include
using namespace std;
// Headers
string toString (double);
int toInt (string);
double toDouble (string);
int main() {
// Für die Summe wird die Variable summe deklariert.
double summe;
summe = 0;
// Für den Funktionswert, also den Wert, den die Funktion an der Stelle k hat, wird die Variable funktionswert deklariert.
double funktionswert;
// Die Variable i wird als Hilfsvariable deklariert, sie wird als Zähler der Durchläufe im weiteren Verlauf des Programmes verwendet.
int i;
// Für den Startwert des Index wird die Variable startindex deklariert. Mit ihr wird der Startpunkt der Summation festgelegt.
int startindex;
cout << "Index des ersten Terms: " << endl;
cin >> startindex;
// Für den Endwert des Index wird die Variable stopindex deklariert. Mit ihr wird der Endpunkt der Summation, also das letzte Summenglied, festgelegt.
int stopindex;
cout << "Index des letzten Terms:" << endl;
cin >> stopindex;
for (i = startindex; i <= stopindex; i++) {
// Da die Funktion bezüglich der Laufvariable, im Fall der Summe der natürlichen Zahlen, gerade f(n) = n ist, ist für den Funktionswert keine Berechnung nötig. Der Funktionswert entspricht dem aktuellen Wert des Laufindex.
// Um später das Programm auch für andere Summen wie zum Beispiel n^2 oder 1/n verwenden zu können, wurde hier dennoch eine Zuweisung für den Funktionswert gesetzt. Im Fall der Summe von n^2 muss nur die nachfolgende Zeile zu funktionswert = startwert * startwert angepasst werden.
funktionswert = startindex;
summe = summe + funktionswert;
startindex = startindex + 1;
}
cout << summe << endl;
return 0;
}
// Im Folgenden werden Funktionen zur Typumwandlung implementiert.
string toString (double value) { //int auch
stringstream temp;
temp << value;
return temp.str();
}
int toInt (string text) {
return atoi(text.c_str());
}
double toDouble (string text) {
return atof(text.c_str());
}