Napisz funkcję w C++, która pobiera dwa argumenty typu całkowitego a,b, takie, że a < b, oraz zawraca wartość sumy wszystkich liczb całkowitych z przedziału obustronnie domkniętego <a, b>
Potrzebna nam jest funkcja pobierająca dwa argumenty typu int i zwracająca wynik typu całkowitoliczbowego - może to być int ale zważywszy na to, że wynik może być duży lepiej skorzystać z typu long int.
Prototyp funkcji wygląda tak:
long int sumuj(int a, int b);
Teraz zabieramy się za utworzenie ciała funkcji.
Najpierw musimy sprawdzić czy przekazane argumenty są poprawne, czyli czy zmienna a jest mniejsza od zmiennej b. W przeciwnym razie musimy wyjść z funkcji. Trzeba jednak coś zwrócić - niech będzie to 0.
if ( !(a < b) )
{
return 0;
}
Jeżeli warunek nie jest spełniony (czyli a jest mniejsze od b) możemy zająć się zsumowaniem wszystkich liczb z zakresu obustronnie domkniętego <a, b>, czyli od a do b włącznie:
else
{
long int suma = 0;
for ( int i = a; i <= b; i++ )
{
suma += i;
}
return suma;
}
A oto wykorzystanie funkcji w praktyce:
int a, b;
do {
cout << "Podaj zakres dolny: ";
cin >> a;
cout << "Podaj zakres gorny: ";
cin >> b;
cout << endl;
if ( b <= a )
cout << "Zakres dolny musi byc mniejszy niz gorny!" << endl;
} while ( b <= a );
cout << endl;
cout << "Suma liczb z zakresu " << a << " - " << b << " wynosi ";
cout << sumuj(a, b);