您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A versatile word problem calculator that handles various equations and unknowns
// ==UserScript== // @name Comprehensive Word Problem Calculator // @namespace http://tampermonkey.net/ // @version 4.5 // @description A versatile word problem calculator that handles various equations and unknowns // @author Your Name // @match https://easybridge-dashboard-web.savvaseasybridge.com/dashboard/student?ssoLogin=true // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; function wordProblemCalculator() { const problem = prompt("Enter a word problem (e.g., 'What number is 100 less than 765?'). You can also type 'div' for division:").toLowerCase(); let result; // Normalize "div" to "divided by" const normalizedProblem = problem.replace(/\bdiv\b/g, 'divided by'); // Handle "What number is X less than Y" if (problem.includes("what number is") && problem.includes("less than")) { const numbers = problem.match(/\d+/g); if (numbers && numbers.length >= 2) { const lessAmount = parseFloat(numbers[0]); // The amount to subtract const total = parseFloat(numbers[1]); // The number to subtract from result = total - lessAmount; // Perform the subtraction } else { alert("Could not find enough numbers."); return; } } // Handle missing value (e.g., 10 + 30 = ?) else if (normalizedProblem.includes("=") || normalizedProblem.includes("?")) { const parts = normalizedProblem.split('='); const leftSide = parts[0].trim(); const rightSide = parts[1] ? parts[1].trim() : ''; // Check for unknown value on the left side if (rightSide === '?' || rightSide === '') { const matches = leftSide.match(/(\d+)\s*([-+x*/]|divided by)\s*(\d+)/); if (matches) { const num1 = parseFloat(matches[1]); const operation = matches[2]; const num2 = parseFloat(matches[3]); switch (operation) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "x": case "*": result = num1 * num2; break; case "divided by": case "/": if (num2 !== 0) { result = num1 / num2; } else { alert("Cannot divide by zero."); return; } break; default: alert("Could not understand the operation."); return; } } else { alert("Could not understand the equation."); return; } } // Check for unknown value on the right side else if (leftSide.includes("?")) { const matches = rightSide.match(/(\d+)/); if (matches) { const total = parseFloat(matches[1]); const operation = leftSide.includes('+') ? '+' : leftSide.includes('-') ? '-' : leftSide.includes('*') ? '*' : leftSide.includes('/') ? '/' : leftSide.includes('divided by') ? 'divided by' : null; const numMatches = leftSide.match(/(\d+)/g); if (numMatches && numMatches.length === 2) { const num1 = parseFloat(numMatches[0]); const num2 = parseFloat(numMatches[1]); switch (operation) { case "+": result = total - num1; // Solve for "?" break; case "-": result = num1 - total; // Solve for "?" break; case "*": result = total / num1; // Solve for "?" break; case "/": case "divided by": result = num1 * total; // Solve for "?" break; default: alert("Could not understand the operation for unknown value."); return; } } } else { alert("Could not find enough numbers for the equation."); return; } } else { alert("Could not understand the equation format."); return; } } // Handle standard operations (basic arithmetic) else { const matches = normalizedProblem.match(/(\d+)\s*([-+x*/]|divided by)\s*(\d+)/); if (matches) { const num1 = parseFloat(matches[1]); const operation = matches[2]; const num2 = parseFloat(matches[3]); switch (operation) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "x": case "*": result = num1 * num2; break; case "divided by": case "/": if (num2 !== 0) { result = num1 / num2; } else { alert("Cannot divide by zero."); return; } break; default: alert("Could not understand the operation."); return; } } else { alert("Could not understand the word problem."); return; } } alert(`The result of the problem is: ${result}`); } // Run the calculator wordProblemCalculator(); })();