স্ট্রিং আকারে গাণিতিক এক্সপ্রেশন পার্স করে ফলাফল বের করার একটি সিম্পল ক্যালকুলেটর।
ইনপুট ফরম্যাট
"4 add 6" "6 divide 7" "23 modulo 8"
সমর্থিত অপারেশন
add- যোগ (+)subtract- বিয়োগ (-)multiply- গুণ (×)divide- ভাগ (÷)modulo- মডুলো (%)
সমাধান
const calculate = (expression) => {
const [num1Str, operation, num2Str] = expression.split(' ');
const num1 = Number(num1Str);
const num2 = Number(num2Str);
// ইনপুট ভ্যালিডেশন
if (isNaN(num1) || isNaN(num2)) {
throw new Error('Invalid numbers in expression');
}
switch (operation.toLowerCase()) {
case 'add':
return num1 + num2;
case 'subtract':
return num1 - num2;
case 'multiply':
return num1 * num2;
case 'divide':
if (num2 === 0) throw new Error('Division by zero');
return num1 / num2;
case 'modulo':
return num1 % num2;
default:
throw new Error(`Unknown operation: ${operation}`);
}
};
// টেস্ট
console.log(calculate("3 add 16")); // 19
console.log(calculate("10 subtract 4")); // 6
console.log(calculate("5 multiply 6")); // 30
console.log(calculate("20 divide 4")); // 5
console.log(calculate("17 modulo 5")); // 2
ব্যাখ্যা
- split(' '): স্পেস দিয়ে স্ট্রিং তিন ভাগে ভাগ করা
- Number(): স্ট্রিং থেকে সংখ্যায় রূপান্তর
- toLowerCase(): কেস-ইনসেনসিটিভ অপারেশন
- Error handling: ভুল ইনপুটের জন্য এক্সেপশন থ্রো
উৎপাদন
19