Pomoc oko zadatka ...

ImmortalTech

Početnik
Poruka
1
Napisati program koji učitava string S koji se sastoji od cijelih brojeva (ne više od 3 cifre) i karaktera '+' i '*' koji redom označavaju sabiranje i množenje. Pretpostavka je da string predstavlja korektan matematički izraz (nije potrebno provjeravati njegovu ispravnost). Program treba da odredi i štampa vrijednost izraza definisanog stringom S vodeći računa o prioritetu matematičkih operacija. Na primjer, string "2+3*7*2+5" treba da rezultuje u 49, dok string "5*60+3*2" treba da rezultuje u 306. Pretpostaviti da string mora početi brojem... havala unaprijed...
 
Ладно ниси написао ни у ком програмском језику радиш.

Обично се при парсирању израза формира стабло оператора и вредности. Пошто имаш посла само са сабирањем и множењем, можеш у O(n = дужина стринга) проћи кроз стринг и израчунати. Нпр. кренеш од првог броја и њега одредиш. Ако следи множење, смешташ га у привремени бафер и узимаш наредни број за множење. Ако следи сабирање или ништа, акумулираш га у баферу за резултат. Почни код.
 

Back
Top