LINE UP 0 Odesláno: 13. Listopad, 2017 Share Odesláno: 13. Listopad, 2017 Zdravím je tu niekto zbehlý v c++? Dostal som na VŠ zadanie a c++ zatial moc neviem. Vedeli by ste mi s tým pomôcť? Musím spraviť konzolovu aplikáciu a napísať zdrojový kód no a ešte si potom musím spraviť vývojový diagram. Vytvorte program a vývojový diagram, ktorý vypočíta súčet číselného radu S = 1 + 1/2 + 1/4 + 1/8 + 1/16 ... + 1/(2^N). Link to comment Share on other sites More sharing options...
0 DuFF 81 Odesláno: 13. Listopad, 2017 Share Odesláno: 13. Listopad, 2017 Zdravím, to "N" je nejaký parameter, ktorý má zadať užívateľ? Ak áno, znie to ako úloha na precvičenie for cyklu, ktorý n-krát pripočíta k nejakej premennej (akumulátoru) hodnotu i-tého člena postupnosti (i je riadiaca premenná cyklu). Link to comment Share on other sites More sharing options...
0 LINE UP 0 Odesláno: 13. Listopad, 2017 Author Share Odesláno: 13. Listopad, 2017 Ano malo by to byť tak že ja zadam parameter n a následne program vypíše zvyšok. Takže to mám skúsiť for cyklom? Link to comment Share on other sites More sharing options...
0 DuFF 81 Odesláno: 13. Listopad, 2017 Share Odesláno: 13. Listopad, 2017 Určite for cyklom (počet opakovaní cyklu je známy - n). Ako hovorím, pred cyklom si inicializuješ nejakú premennú na 0, do ktorej budeš v cykle pripočítavať prvky postupnosti. Musíš už len vymyslieť, ako jednotlivé prvky postupnosti vypočítať. Hint: Existuje operátor << (bitový posun vľavo), x << y = x * 2y . Link to comment Share on other sites More sharing options...
0 Tanga 131 Odesláno: 13. Listopad, 2017 Share Odesláno: 13. Listopad, 2017 Zakladom je si tu postupnosť vypisať ako:1/20, 1/21, 1/22, 1/23, ... Hint2: "<<" nie je potrebné pre vyriešenie danej úlohy. Link to comment Share on other sites More sharing options...
0 Deleted User 295 Odesláno: 13. Listopad, 2017 Share Odesláno: 13. Listopad, 2017 int result = 0; for (int c = 0; c < n; c++) { result += 1 / (2 ^ c); } cout << result< " GG IZI"; Link to comment Share on other sites More sharing options...
0 DuFF 81 Odesláno: 13. Listopad, 2017 Share Odesláno: 13. Listopad, 2017 int result = 0; for (int c = 0; c < n; c++) { result += 1 / (2 ^ c); } cout << result< " GG IZI"; Mal som za to, že ^ je operátor pre XOR a nie pre mocninu. Aj keby vykonával mocninu, výsledok by bol na konci vždy 1. (Inty sa podelia celočíselne, 1/1 = 1, 1/2 = 0, 1/4 = 0...). Takže si nie som istý, či to bude najšťastnejšie riešenie. Možno sa mýlim. 2 Link to comment Share on other sites More sharing options...
0 Deleted User 295 Odesláno: 13. Listopad, 2017 Share Odesláno: 13. Listopad, 2017 (upraveno) // tu includni nejaky math bo co double result = 0; for (int c = 0; c < n; c++) { result += 1.0 / (double)(pow(2, c)); } cout << result << " GG IZI"; Edited 13. Listopad, 2017 by Asakura Yoh Link to comment Share on other sites More sharing options...
0 LINE UP 0 Odesláno: 15. Listopad, 2017 Author Share Odesláno: 15. Listopad, 2017 Pri tom pow mi vypisuje chybu ambiguous call to overloaded function Inak som ten cyklus vyskúšal a to funguje aj všetko ostatné. Hore som dal knižnicu math.h ale aj tak mi to nejde zatiaľ Link to comment Share on other sites More sharing options...
0 Deleted User 295 Odesláno: 15. Listopad, 2017 Share Odesláno: 15. Listopad, 2017 (upraveno) EDIT: mas tam using namespace std; ? ak n, tak miesto pow daj std::pow http://cpp.sh/5vos2 Edited 15. Listopad, 2017 by Asakura Yoh Link to comment Share on other sites More sharing options...
0 DuFF 81 Odesláno: 15. Listopad, 2017 Share Odesláno: 15. Listopad, 2017 Keď už chceme zverejňovať riešenia..Chcel som ťa nasmerovať na niečo takéto (vyhneš sa potrebe includovať math): #include <iostream> int main() { std::cout << "Zadaj počet členov, ktoré chceš sčítať." << std::endl; int n; std::cin >> n; double sum = 0.0; for (int i = 0; i < n; ++i) { sum += 1.0 / (1 << i); } std::cout << "Súčet prvých " << n << " členov postupnosti je: " << sum; return 0; } Prípadne na niečo takéto (vyhneš sa operátoru <<, ak mu nerozumieš): #include <iostream> int main() { std::cout << "Zadaj počet členov, ktoré chceš sčítať." << std::endl; int n; std::cin >> n; double sum = 0.0; double last = 1.0; for (int i = 0; i < n; ++i) { sum += last; last /= 2; } std::cout << "Súčet prvých " << n << " členov postupnosti je: " << sum; return 0; } 1 Link to comment Share on other sites More sharing options...
0 Hlavní moderátor vEnd 279 Odesláno: 15. Listopad, 2017 Hlavní moderátor Share Odesláno: 15. Listopad, 2017 Keď už chceme zverejňovať riešenia.. Chcel som ťa nasmerovať na niečo takéto (vyhneš sa potrebe includovať math): #include <iostream> int main() { std::cout << "Zadaj počet členov, ktoré chceš sčítať." << std::endl; int n; std::cin >> n; double sum = 0.0; for (int i = 0; i < n; ++i) { sum += 1.0 / (1 << i); } std::cout << "Súčet prvých " << n << " členov postupnosti je: " << sum; return 0; } Prípadne na niečo takéto (vyhneš sa operátoru #include <iostream> int main() { std::cout << "Zadaj počet členov, ktoré chceš sčítať." << std::endl; int n; std::cin >> n; double sum = 0.0; double last = 1.0; for (int i = 0; i < n; ++i) { sum += last; last /= 2; } std::cout << "Súčet prvých " << n << " členov postupnosti je: " << sum; return 0; } Tvůj záměr nikdo nezpochybňuje, řešení přes ten bitový operátor se mi (a nejen mně) líbí, ale řeknu ti 2 důvody, proč je to nevhodné: 1. Jestli to zadali jako domácí úlohu či projekt začátečníkovi, asi budou předpokládat použití pow. Když tam uvidí tohle, mohli by se začít ptát, zda tomu rozumí, jinými slovy by mohli zpochybnit, zda to byl jeho nápad. Záleží to na škole, na počtu studentů i na tom, jak moc studují zdrojáky, ale stát se to může. 2. NEOX s tím očividně začíná a vzhledem k tomu, že se operátory >> a 2 Link to comment Share on other sites More sharing options...
Dotaz
LINE UP 0
Zdravím je tu niekto zbehlý v c++? Dostal som na VŠ zadanie a c++ zatial moc neviem. Vedeli by ste mi s tým pomôcť?
Musím spraviť konzolovu aplikáciu a napísať zdrojový kód no a ešte si potom musím spraviť vývojový diagram.
Vytvorte program a vývojový diagram, ktorý vypočíta súčet číselného radu S = 1 + 1/2 + 1/4 + 1/8 + 1/16 ... + 1/(2^N).
Link to comment
Share on other sites
11 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now