NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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.

Aktivity
Avatar
Adam Dvořák:24.5.2016 17:33

Ahoj, jsem na střední škole na oboru IT, dostal jsem jako velkou práci z programování program na výpočet lineárních rovnic, mají zde být použity funkce, main, třídy, vstup musí bát od uživatele a jak string( tak zní zadání), ale jelikož mi programování vůbec nejde, doslova v tom tápu ( jsem spíš na weby), tak vás prosím o pomoc, vážně si s tím nevím rady:) děkuji:)

Editováno 24.5.2016 17:34
 
Odpovědět
24.5.2016 17:33
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Adam Dvořák
Jindřich Máca:24.5.2016 17:53

Ahoj, mám k tomu dva dotazy:

  1. Výpočet lineárních rovnic je sice pěkná definice, ale jde o rovnice v výchozím tvaru nebo se počítá i s jejich dalšími úpravami?
  2. S čím přesně potřebuješ pomoct? Chceš nějak nasměrovat nebo chceš, aby to za Tebe rovnou někdo napsal? Z tvého příspěvku to není vůbec jasné, protože v něm pouze popisuje problém, ale na nic se neptáš...
 
Nahoru Odpovědět
24.5.2016 17:53
Avatar
Odpovídá na Jindřich Máca
Adam Dvořák:25.5.2016 10:43

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

Editováno 25.5.2016 10:44
 
Nahoru Odpovědět
25.5.2016 10:43
Avatar
Odpovídá na Adam Dvořák
Vojtěch Janoušek:25.5.2016 12:18

Chapu spravne, ze rovnice bude dana napevno a promenne budou jenom A a B? Mas tu rovnici?

 
Nahoru Odpovědět
25.5.2016 12:18
Avatar
Neaktivní uživatel:25.5.2016 12:58

na gymplu jsem si na tohle a kvadratickou a vypocty s kruznicema/elip­sama/hyperbola­ma 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

Nahoru Odpovědět
25.5.2016 12:58
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Adam Dvořák:25.5.2016 15:50

díky moc, já právě jsem na tohle uplně hloupej:D , vážně děkuji

 
Nahoru Odpovědět
25.5.2016 15:50
Avatar
Odpovídá na Vojtěch Janoušek
Adam Dvořák:25.5.2016 15:55

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

 
Nahoru Odpovědět
25.5.2016 15:55
Avatar
Odpovídá na Adam Dvořák
Neaktivní uživatel:25.5.2016 16:51

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" ?

Nahoru Odpovědět
25.5.2016 16:51
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Adam Dvořák:25.5.2016 17:15

řekneš si o ně pak zvlášť:)

 
Nahoru Odpovědět
25.5.2016 17:15
Avatar
Neaktivní uživatel:25.5.2016 19:18

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...

Nahoru Odpovědět
25.5.2016 19:18
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.