Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script type="text/javascript">
- String.prototype.change = function(what, forW) {
- return this.split(what).join(forW)
- }
- function getMaxOfArray(numArray) {
- return Math.max.apply(null, numArray);
- }
- function getMinOfArray(numArray) {
- return Math.min.apply(null, numArray);
- }
- Array.prototype.swap = function(k, j) {
- var temp = this[k]
- this[k] = this[j];
- this[j] = temp
- }
- var evaluateConj = function(str) {
- var result = [];
- for(var i = 0; i < str.length; i += 2)
- result.push(str[i])
- return getMaxOfArray(result)
- }
- var s = prompt("Enter variables present in the formula:")
- var obj = {};
- for(var i = 0; i < s.length; i++) {
- obj[s[i]] = +prompt("Enter the value of " + s[i] + " : ")
- }
- var formula = prompt("Enter the formula :")
- function braces(formula, obj) {
- if(formula.indexOf("(") != -1) {
- var index = formula.indexOf("(")
- var temp = 1;
- var eindex;
- for(var i = index + 1; i < formula.length; i++) {
- if(formula[i] == "(")
- temp++;
- if(formula[i] == ")")
- temp--
- if(temp == 0) {
- eindex = i
- break;
- }
- }
- var form = formula.substr(index, eindex);
- var temp = form.substr(2, form.length - 3);
- formula = formula.replace(form, evaluate(temp, obj))
- if(formula.indexOf("(") != -1) {
- formula = braces(formula, obj)
- }
- return formula;
- } else {
- return formula;
- }
- }
- var evaluate = function(formula, obj) {
- formula = braces(formula, obj)
- for(var i = 0; i < formula.length; i++) {
- if(obj[formula[i]] != undefined) {
- formula = formula.replace(formula[i], obj[formula[i]])
- }
- }
- formula = formula
- .change("!1", "0")
- .change("!0", "1")
- .split(" ")
- .join("")
- .split("+");
- var temp;
- var result = -1;
- for(var i = 0; i < formula.length; i++) {
- temp = formula[i].split("*")
- result = Math.max(result, getMinOfArray(temp))
- }
- return result;
- }
- alert("The answer is" + " " + evaluate(formula, obj))
- </script>>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement