12.5.6. Napisati program koji će za učitanu vrijednost N izračunati vrijednost izraza i ispisati::
Opis rješenja: Može se koristiti knan := k; za početnu vrijednost i u ptelji knan := knan * k; II varijanta sadrži uvećanje proizvoda pri svakom prolazu za k: p=p*k*i.
Listing programa:
// 12510321
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int i, n, k;
double s, p, s1, s2; // vrijednost faktorijela brzo se uvecava i prelazi opseg predvidjen za cijele brojeve
cout << ("k = ");
cin >> k;
cout << ("n = ");
cin >> n;
s1 = 0; // pocetna vrijednost sume neparnih - pozitivni
s2 = 0; // pocetna vrijednost sume parnih - negativni
p = 1; // pocetna vrijednost proizvod
for(i=1; i<=n; i++){ // ponavljanje za i=1 do i=n - pocetak petlje
p = p * k * i; // proizvod - p *= k*i;
if (i % 2 == 0) // djeljivi sa 2 - parnin
s2 = s2 + p; // suma parnih - negativni
else
s1 = s1 + p; // suma neparnih - pozitivni
} // for - kraj petlje
s = s1 - s2; // razlika suma
cout << "s = " << s << endl;
return 0;
}
II Varijanta
// 12510321
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int i, k, n, znak;
double s, p, knan; // vrijednost faktorijela brzo se uvecava i prelazi opseg predvidjen za cijele brojeve
cout << ("k = ");
cin >> k;
cout << ("n = ");
cin >> n;
p = 1; // pocetna vrijednost proizvod
knan = 1;
s = 0;
znak = 1;
for(i=1; i<=n; i++){ // ponavljanje za i=1 do i=n - pocetak petlje
p = p * i; // faktorijel za i
knan = knan * k; // racuna k na n za svaki prolaz kroz petlju
s = s + znak * knan * p; // nova vrijednost sume
znak = -znak; // promjena vrijednosti predznaka
} // for - kraj petlje
cout << "s = " << s << endl;
return 0;
}
Ispis na ekranu:
Index
|
|