Forum » Programiranje » [C++] Harmonična sredina
[C++] Harmonična sredina
Ciklamen ::
Pozdrav fantje.
Delam eno vajo (ni vaja za šolo ali kar koli, zgolj za lasten gušt) in se mi je zataknilo pri enem delu, vbistvu najpomembnejšem, pa ga ne znam razrešit.
Stvar je takšna, navodilo: Izračunaj harmonično sredino vnesenih vrednosti uporabnika (čist posplošil sem navodilo).
Če se kdo ne spomni iz glave, kaj je harmonična vrsta, je obratno sorazmerna z aritmetično sredino (kar pomeni da so vrednosti pod ulomkom (1/1+1/2+1/3+1/4+1/5+...+1/n). V knjigi mi piše, da je har. sredina vrednosti 2,4 in 8 enaka 3.428571 (za izračun tega je tak: 1/((1/2+1/4+1/8)/3)). Zdaj ne vem, ali bi moral ustvarjati razne funkcije, da izračunam to, ampak po knjigi še do funkcij nismo prišli, zato verjamem da obstaja neka druga pot, ki je sam zaenkrat še ne najdem.
Anyways, tu je en snippet kode:
Delam eno vajo (ni vaja za šolo ali kar koli, zgolj za lasten gušt) in se mi je zataknilo pri enem delu, vbistvu najpomembnejšem, pa ga ne znam razrešit.
Stvar je takšna, navodilo: Izračunaj harmonično sredino vnesenih vrednosti uporabnika (čist posplošil sem navodilo).
Če se kdo ne spomni iz glave, kaj je harmonična vrsta, je obratno sorazmerna z aritmetično sredino (kar pomeni da so vrednosti pod ulomkom (1/1+1/2+1/3+1/4+1/5+...+1/n). V knjigi mi piše, da je har. sredina vrednosti 2,4 in 8 enaka 3.428571 (za izračun tega je tak: 1/((1/2+1/4+1/8)/3)). Zdaj ne vem, ali bi moral ustvarjati razne funkcije, da izračunam to, ampak po knjigi še do funkcij nismo prišli, zato verjamem da obstaja neka druga pot, ki je sam zaenkrat še ne najdem.
Anyways, tu je en snippet kode:
#include <iostream> #include <exception> int main() { try { double total(0.0); double value(0.0); double harSredina(0.0); int count(0); do { std::cout<<"Vnesite stevilo vrednosti: "; std::cin>>value; if(not std::cin) throw std::exception(); harSredina=harSredina+1.0/value; //Tu bi bilo treba popraviti kodo, pa ne vem kako, če ima kdo kak namig // kako naj nadaljujem bi lepo prosil (še bolje bi bilo, da samo zapiše odgovor brez kode, da se sam namučim) if(value>99) break; count++; } while(true); std::cout<<'\n'; if(count!=0) std::cout<<"Aritmeticna sredina je: "<<harSredina*count<<'\n'; else std::cout<<"NE SMEM DELITI Z 0! \n"; } catch(...) { std::cerr<<"***Prislo je do napake!***\n"; } system("PAUSE"); return 0; }
- End of the Post ->
- spremenil: Ciklamen ()
mallard ::
Se mi zdi, da si pomešal harmonično vrsto in harmonično sredino?
Harmonična vrsta: 1 + 1/2 + 1/3 + 1/4...
Harmonična sredina: H(a1, a2, ... an) = n / ( 1/a1 + 1/a2 + ... + 1/an )
Psevdokoda za harmonično sredino:
Harmonična vrsta: 1 + 1/2 + 1/3 + 1/4...
Harmonična sredina: H(a1, a2, ... an) = n / ( 1/a1 + 1/a2 + ... + 1/an )
Psevdokoda za harmonično sredino:
imenovalec = 0; n = 0; za vsak veljaven vnos integerja i && i > 0 { imenovalec += 1 / i; ++n; } if (n > 0) harmonična sredina = n / imenovalec
Ciklamen ::
Oh pa res, hvala da si me opozoril!
Sem sledil tvojemu nasvetu in sedaj deluje, hvala! :)
Sem sledil tvojemu nasvetu in sedaj deluje, hvala! :)
- End of the Post ->
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Matlab problemOddelek: Pomoč in nasveti | 1435 (859) | bluefish |
» | C (Izračun povprečja)Oddelek: Programiranje | 1618 (1252) | joze67 |
» | [java] problem z decimalkamiOddelek: Programiranje | 1591 (1265) | NeOman |
» | [C++] velikost matrikeOddelek: Programiranje | 1696 (1508) | Jean-Paul |
» | Problemi pri C++ programiranju...Oddelek: Programiranje | 3899 (3374) | George |