Софтуерно Инженерство
Loading...
antonp1p2 avatar antonp1p2 17 Точки

Homework { Javascript Syntax [Problem05] } - Някой реши ли я ?

Някой реши ли я тази ? Аз почти я измислих, но нещо забих и мисля да се откажа. Някой ще пусне ли тук решение, за да видя все пак как се решава.

Ето какво измислих до тук - http://pastebin.com/TKqKcAD4

Логиката във фор-а ми не е много вярна. Идеята ми е да стигна до масив който да има в себе си полученото от разделените и умножените числа + числата, които само се събират и вадят  и до масива за знаци само с + и - .

Тагове:
0
Advanced Level: Front-End 13/01/2016 03:39:30
antonp1p2 avatar antonp1p2 17 Точки

Ето го и моето решение.  - http://pastebin.com/v9796CCX

 

Не работи напълно и дава недоизчислен израз при наличието на 4 или повече знака за умножение или за деление един след друг... Например израза 1*1*1*2*13 = 1 * 26 ... не знам защо. Проверих две домашни с решена тази задача без вградената функция и при тях подобен тип изрази не се изчислява до край. При boqnst също този израз не ми го смята до край... не мога да разбера какво точно бъркаме обаче не смята перфектно.

1
PetyaAngelova avatar PetyaAngelova 5 Точки

Използвах твоята идея за масивите и ето до къде стигнах: http://pastebin.com/PfDtnBGR

Смята и повече умножени числа едно след друго.

Взима входящия стринг и го разделя на два масива- единият А съдържа елементите на стринга между знаците + и -, а другият масив Б съдържа + и -.

След това взима А и отново разделя на масиви- числа и знаци *  /

Изчислява произведението на елементите, след което го поставя на мястото на съответния елемент в масив А. Прави изчисленията и за масив А.

п.с.Оправен е проблемът с умножение на двуцифрени.

Забележка- при въвеждане примерно 5*8/4*6 приема, че искате да разделите (5*8)/4, а не (5*8)/(4*6). За другият случай трябва да се направи още една вложена проверка за деление.

 

1
15/01/2016 11:46:02