Diskuze: Potřebuji pomoct( pro někoho jednoduché)
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, mám k tomu dva dotazy:
já to upřesním, vůbec nevím jak to napsat(ani trochu), no učitel mi řekl, že uživatel má napsat rovnici např : 2a+b*x=2a+b uživatel zadá a;b a já musím vypočítat x, díky za odpovědi
Chapu spravne, ze rovnice bude dana napevno a promenne budou jenom A a B? Mas tu rovnici?
na gymplu jsem si na tohle a kvadratickou a vypocty s kruznicema/elipsama/hyperbolama a dalsi... udelal JSappku do mobilu .. pokud po tom programu chces jenom tohle sfoukne to i < 5 metod v Mainu ... v zasade jde o to rozparsovat ten stringovej vstup ... pak spravne naplnit promenne a pak uz jenom pocitas .. jestli ti nikdo neporadi driv, nez skoncim v praci, hodim sem v pseudokodu ten svuj zdrojacek
díky moc, já právě jsem na tohle uplně hloupej:D , vážně děkuji
a rovnice má být taková, že uživatel zadá string např. 2b+4a*x=3b+a+x , ale může to být zadáno libovolně, tak zní moje úloha, takže to může zadat i jako 2b+4a*x=a+x+3b , ale mají tam být jen ty 2 proměnné, které si uživatel sám naplní tj. a,b
nez se do toho pustim, chtel bych vedet jeste jednu vec ohledne zadani ... promenne a/b ti uzivatel zada v ramci rovnice? nebo rovnici zada tim zpusobem vyse a pak zvlast si reknes o "a" a o "b" ?
planoval jsem podrobnejsi navod, ale nestiham do skoly a neobjevil jsem ten starej zdrojak, takze to musim zestrucnit ...
existuje vice moznych postupu, ja zkusim popsat ten co me napadl jako prvni ... pres parsovani .. nechas si nacist zadani rovnice a nechas si rict hodnotu A a B ... pak pujdes a budes redukovat rovnici ... jdes vlastne od vyrazu k vyrazu a cisla davas na jednu stranu rovnitka a X davas na druhou ... takze pred rovna se (tedy na leve strane rovnice) je znamenko u cisel a Acek a Becek stale stejne ... u Xek se otaci, tedy presouvas X na druhou stranu rovnice ... pak se preklopis pres znamenko a obratis tohle pravidlo ... cisla na prave strane od tech vlevo odecitas a Xka pricitas...
samotna operace parsovani a redukce stoji asi na tehle logice:
jdu znak po znaku dokud je co cist.. kdyz jsem nacetl cislo pridam ho do
docasneho stringu (zretezim .. proste ho jen prilepim k tomu co uz v tom
docasnem prekladisti bylo) v okamziku kdyz narazim na pismeno A nebo B prevedu
ten docasny string na cislo (v jave jsou na to metody) a vynasobim ho hodnotou v
A nebo B (o jejich hodnoty jsem si uz rekl, zejo) vysledek ma nejake znamenko,
ale to me nezajima protoze tohle znamenko ( + nebo - ) jsem nacetl spolu s
cislem a prevedl spolu s cislem na ciselnou hodnotu ... tuhle ciselnou hodnotu
si stale udrzuju nekde schovanou, zatim ji nepoustim ven ... kouknu se na dalsi
znak v zadani .. pokud je to totiz pismeno X ... tak vim, ze to je v ramci
nezname a prehodim to na levou stranu rovnice .. takze pokud jsem pred rovna se
(to se muze nastavit jako jedinej boolean .. proste pred rovna se true / false )
tak prenasobim tu docasnou ciselnou hodnotu -1 a PRICTU ji k hlavni Xkove
hromadce (proste nejaka globalni promenna, ktera udrzuje hodnotu X) ... vycistim
docasne promenne a parsuju na novo ... zase ..cisla pismenka Xka .. pokud se mi
stane, ze nactu cislo a k nemu treba prinasobuju A nebo B, nebo treba oboje to
je fuk a hned potom nasleduje znamenko + - = tak to znamena, ze to co ted mam
proste vezmu a hodim na tu druhou neXovou hromadu (do druhe promenne, ktera
vyjadruje levou stranu rovnice) opet si musim dat pozor na znamenka plus a minus
v ramci leve a prave strany rovnice ... v zasade kdyz dojdu na konec parsovani
tak mam dve promenne ... jedna je ciste cislo a druha je take ciste cislo ...
jedna reprezentuje hodnotu na leve strane rovnice .. druha na prave strane
rovnice ... tedy Xovej nasobek .. abych zjistil hodnotu X musim vzit tu levou
hodnotu a vydelit ji pravou hodnotou .. tim zjistim, kolik je rovno 1X ... no a
vypsat na screen ... to je banalita uz ...
zduvodnim, proc bych si nejdriv nacetl obe dve informace a pak az pocital/parsoval ... v zasade je to extremne jednoducha uloha ... jediny na co to je komplikovany je to parsovani .. kdyz se ale nenechas zmast, tak mas vystarano... protoze je to ve skutecnosti rovnice s jednou neznamou, tak staci prehazet cisla na jednu a Xka na druhou stranu .. proto bych to pocital az v okamziku, kdy budu mit informaci o A a B ..
samozrejme do toho jdou zaplest tridy a OOP a pak to bude nejen funkcni, ale i krasny ... ale to je uz jina kapitolka ...
jak na to tak koukam, trochu se bojim, ze jsem te do toho totalne zamotal ... ale snad ne ... poradne si to procti ... sedni si s papirem a tuzkou a kresli si to... opchopis ten princip toho pohybu cisel v tom priklade .. pomaha si nejakou takovou rovnici vzit a pocitat ji tak jak jsi zvyklej....uvidis co delas za kroky a ze jsou to v podstate ty same kroky jako popisuju .. a kdyby ti prece jenom neco nebylo uplne jasne, tak se zeptej,... ja, nebo kdokoliv jiny k tomu popisu neco prilepim...
Zobrazeno 10 zpráv z 10.