Věděcký kalkulátor – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Věděcký kalkulátor – C / C++ – Fórum – Programujte.comVěděcký kalkulátor – C / C++ – Fórum – Programujte.com

 

loop
~ Anonymní uživatel
10 příspěvků
22. 7. 2009   #1
-
0
-

Ahoj, potřeboval bych pomoct. Potřebuju udělat v c++ vědecký kalkulátor s fcemi sin, con, tg, sqrt atd. Měl by fungovat tak, že se zadá výraz na řádku (např.: 15+6*(1+sin85)). A já bych potřeboval poradit jaké fce použít pro rozkódování toho výrazu, kterej byl zadán... Byl byste prosím někdo tak hodný a poradil mi (popřípadě sem postnul kód)?

Nahlásit jako SPAM
IP: 90.177.115.–
joudicek0
Návštěvník
22. 7. 2009   #2
-
0
-

Poradil nebo udelal.....? Delat se mi to teda nechce...

Nahlásit jako SPAM
IP: 212.20.106.–
loop
~ Anonymní uživatel
10 příspěvků
22. 7. 2009   #3
-
0
-

To joudicek : No tak rád bych to samozřejmě udělal sám, takže poradit a kdybych nějak stále nevěděl tak dál konzultovat :)

Nahlásit jako SPAM
IP: 90.177.115.–
joudicek0
Návštěvník
22. 7. 2009   #4
-
0
-

tak v prvni rade zalezi co pouzijes za typ pro ten vstupni retezec, pokud pouzijes klasicky ceckovy retezec, pak pouzijest funkce s prefixem str... (strcpy,strcmp...), lepsi varianta je pouzit stl string, ktery uz obsahuje potrebne metody a pokud delas v builderu nebo turbu, tak pak by prichazel jeste v uvahu ansistring....

Nahlásit jako SPAM
IP: 212.20.106.–
bukaj_0010
Věrný člen
22. 7. 2009   #5
-
0
-
Nahlásit jako SPAM
IP: 88.101.128.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
loop
~ Anonymní uživatel
10 příspěvků
22. 7. 2009   #6
-
0
-

ok tak já zkusim udělat tu postfixovou metodu, uvidíme jak to půjde... čím jednodušší algoritmus tím líp, páč programování neni moje hobby, spíš nutný zlo :)

Nahlásit jako SPAM
IP: 90.177.115.–
don_Dominique0
Super člen
22. 7. 2009   #7
-
0
-

Rozhodně doporučuju postfixovou notaci, je to naprosto jednoduché a krásně se s tim pracuje ;-)

Nahlásit jako SPAM
IP: 88.146.211.–
loop
~ Anonymní uživatel
10 příspěvků
23. 7. 2009   #8
-
0
-

tak mi to nějak nejde, nemůžu se hnout z místa... mohli byste sem teda hodit nějakej kód, kterej by mi pomohl... chtěl jsem to udělat tak, že bych ten výraz dal do pole charů a pak se v tom poli pohyboval pomocí indexu, bral bych to znak po znaku, ale nevim jak z toho získat číslo, aby bylo číslem, zvlášť když je to třebas číslo s desetinou čárkou... chtěl jsem pomužít atof a to mi taky nejde tak to zkouším od nuly, ale furt nic... :(

Nahlásit jako SPAM
IP: 90.177.115.–
joudicek0
Návštěvník
23. 7. 2009   #9
-
0
-

To loop : Dej sem ten kod co ti nefunguje......s atof by nemel byt problem.....

Nahlásit jako SPAM
IP: 212.20.106.–
loop
~ Anonymní uživatel
10 příspěvků
23. 7. 2009   #10
-
0
-

vyraz=(char*)malloc(100*sizeof(char));

cin >> vyraz;

char cteni;
double cislo;
int i=0, j=0,kon=0;
cteni=vyraz[i];
char *cis;

cis=(char*)malloc(1*sizeof(char));

while(cteni!=NULL){
cislo=0;
while((cteni>='0' && cteni <='9') || (kon>0 && (cteni=='.' || cteni==','))){
kon++;
cis=(char*)realloc(cis, kon*sizeof(char));
cis[j]=cteni;
cteni=vyraz[i++];
j++;
}
cislo=atof(cis);
}


je to určitě blbost já vím, to je tim, že se jinak programováním nezabývám...

Nahlásit jako SPAM
IP: 90.177.115.–
loop
~ Anonymní uživatel
10 příspěvků
23. 7. 2009   #11
-
0
-

tak jsem o malinko pokročil, už mi to jde jenže s malou chybou... je tam na jedno číslo navíc, např zadám 1.25 a ono mi to napíše 11.25...

Nahlásit jako SPAM
IP: 90.177.115.–
joudicek0
Návštěvník
23. 7. 2009   #12
-
0
-

To loop : budu tu tak za 2 hodky, zkus neco vymyslet a kouknem na to...

Nahlásit jako SPAM
IP: 212.20.106.–
loop
~ Anonymní uživatel
10 příspěvků
23. 7. 2009   #13
-
0
-

jj hele už mi to funguje... mám v tom kódu i++ a tak mi to zapsalo dvakrát to samý, mělo tam být ++i... no tak to by bylo jen je blbý, že se ty čísla zaokrouhlej, když zadám nějaký dlouhý a poměrně velký číslo i s desetinejma tak ty desetinný odpadnou :( to se mi moc nelíbí, ale nevim jestli to jde nějak udělat aby se to nezaokrouhlovalo... no jdu dál... :)

Nahlásit jako SPAM
IP: 90.177.115.–
joudicek0
Návštěvník
23. 7. 2009   #14
-
0
-

To loop : Jak zjistujes ze odpadnou desetiny? Vypsani na obrazovku nebo v debuggeru (krokovanim)?
Pokud vypsanim, tak je mozny ze nemas spravne nastaveny vypis na obrazovku. Pokud pouzivas k vypsani printf, tak zkus tento zapis..... printf("%5.5f", promenna); Pokud pouzivas cout, tak tam to z hlavy nevim, ale myslim ze tam je metoda nejak setPrecision nebo tak neco.... Pokud se zaokrouhleni provede drive nez pri vypisu, pak bude chyba nekde jinde a bez kodu asi neporadim....

Nahlásit jako SPAM
IP: 85.132.159.–
loop
~ Anonymní uživatel
10 příspěvků
24. 7. 2009   #15
-
0
-

To joudicek : už je to v cajku díky za zmínku o setprecision... až zas budu mít problém ozvu se, ale zatim to jde...

Nahlásit jako SPAM
IP: 90.177.115.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý