» »

vsota vrste

vsota vrste

IronMan01 ::

Zdravo rabim pomoc, imam problem z naslednjim programom, napisati bi moral program, ki izračuna vsoto vrste na 5 decimalk natančno???

Splošni člen je 1/ n^2 - n ; n={2,3,4....}

Vem da moral k vsoti prištevati člene, ampak ne vem kako jih generirati, saj ni omejitve naprimer, da bi uporabnik vpisal neko število????

Lp

KaRkY ::

Koliko tu vidim nerabi uporabnik kaj vpisati saj je n naravno število. Ne razumem pa 5 decimalk natančno mogoče 5 členov vrste?
When you look long into an abyss, the abyss looks into you

PaX_MaN ::

Izračunati moraš tako vsoto vrste, da je razlika med vsoto vrste od 2 do (n + 1) členov in vsoto vrste členov od 2 do n manjša od 10^-6.

Se mi zdi.

Utk ::

Ti povečuješ n, seštevaš člene, in ko se ti 5. decimalka več ne spreminja, si končal. Uporabnik nima kaj vnašat. Kdaj točno se ne spreminja več...hja, verjetno se bi dalo iz splošnega člena videt, samo meni se ne da. Lahko pa sprogramiraš in boš videl iz rezultatov programa.

tx-z ::

Js bi če bi zdle u tem trenutku mgou narest bi naredu tkole:
naredu bi funkcijo k ti vrne za določn n nek odgovor..pač enostavno

double funkcija(int n){
return (1/(((double)n*(double)n) - (double)n));
}

pol pa bi meu recmo
int i=0;
int double=0;
for(i=2; i < 9999; i++){
vsota = vsota + funkcija(i);
}

//vsota je potem rezultat
tx-z

Zgodovina sprememb…

  • spremenilo: tx-z ()

Matek ::

Uporabnik zigam ti je napisal precej normalno resitev problema. Edina, sprememba, ki je glede na zahtevane pogoje potrebna, je sprotno preverjanje, ali je vrednost člena, ki ga prištevaš, dovolj majhna, da ne vpliva na peto decimalko. To lahko precej šolsko narediš z while zanko namesto tiste for zanke, pri preverjanju morda velja delati primerjavo z absolutno vrednostjo člena, če se slučajno predznak spreminja.
Bolje ispasti glup nego iz aviona.

PaX_MaN ::

Mislim, da v enačbi manjkata oklepaj ter zaklepaj:
1/(n^2 - n)
ker gredo n-ji od 2 naprej. To je, 1 je izpuščena, da ne pride do deljenja z 0, sicer bi v zgoraj napisani enačbi vse skupaj šlo v minus.

IronMan01 ::

Zdaj vem za kaj se gre, ampak ne vem če lahko uporabim funkcije, ker jih še nismo jemali, kako vi to naredil brez klica funkcije??????????

tx-z ::

ja isto


int i=0;
double vsota=0;
for(i=2; i < 9999; i++){
vsota = vsota + (1/((double)(i*i)) - (double)i));
}

edit: ampak tle sm pač si zmislu da 9999x ponovi, to nima nč veze z uno natančnostjo, probi tist sam narest :P
tx-z

Zgodovina sprememb…

  • spremenilo: tx-z ()

IronMan01 ::

Naredil sem takole, ampak zdaj mi izpise vsoto, kot neskoncno??

int i=2;
double vsota=0;
double staravsota=0;

do {
vsota=vsota + funkcija(i);
staravsota=vsota;
i+=i;
}while ((vsota - staravsota) < 0.000001);

Lp

PaX_MaN ::

Zamenjaj vrstici:

vsota = vsota + funkcija(i);
staravsota = vsota;

Popravi:
i+=i;
v
i++;


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Naloga] Eulerjevo število

Oddelek: Programiranje
233006 (2358) gani-med
»

[algoritem] računanje vsote

Oddelek: Programiranje
182364 (1946) vres.ales
»

[Naloga][C++] vsota vrste

Oddelek: Programiranje
71890 (1730) bozjak
»

[C++][Naloga] največje in najmanjše vpisano število

Oddelek: Programiranje
72179 (2073) @LOL
»

Problemi pri C++ programiranju...

Oddelek: Programiranje
363792 (3267) George

Več podobnih tem