ক্রমের ক্রম, পেমডাস গণিতের একটি প্রাথমিক নিয়ম যা আমাদের জানিয়ে দেয় যে কোন আদেশ ক্রিয়াকলাপ সম্পাদন করা উচিত:
"প্যারেন্টেসিস, এক্সপেনশনস, গুণ এবং বিভাগ এবং সংযোজন এবং বিয়োগ"
সমস্যা হচ্ছে, পেমডাস খুব বহুমুখী নয়! যদি আপনি এটি অন্য ক্রমে করতে চান? আমরা প্রথম বন্ধনীগুলির সাথে গণ্ডগোল করব না, তাই তারা সেগুলিতে রাখি (প্রথম)।
এমন একটি প্রোগ্রাম তৈরি করুন যাতে দুটি আর্গুমেন্ট লাগে:
- একটি স্ট্রিং, ক্রিয়াকলাপগুলি ক্রিয়াকলাপটি অনুসরণ করে telling কিছু উদাহরণ আছে
"DAMES"
,"SAD, ME"
,"ME SAD"
,"MEADS"
। হ্যাঁ, স্পেস এবং কমাগুলি ঠিক আছে, কারণ এটি অর্ডারটিকে মনে রাখা সহজ করে তোলে।- চ্যাটে পরামর্শগুলি অনুসরণ করে: স্পেস এবং কমাগুলি সমর্থন করা এখন alচ্ছিক।
- যদি কোনও একটি অক্ষর অনুপস্থিত থাকে, বা অতিরিক্ত অক্ষর রয়েছে যা সেখানে না থাকা উচিত, আপনি ইনপুটটিকে অবৈধ বিবেচনা করতে পারেন এবং এটি আপনার পছন্দ মতো আচরণ করতে পারেন।
- একটি স্ট্রিং, বা এমন একটি অভিব্যক্তি যা অভিব্যক্তিকে মূল্যায়ন করা উচিত।
দশমিক সংখ্যা বা পূর্ণসংখ্যা হিসাবে অভিব্যক্তির ফলাফলটি প্রত্যাবর্তন করুন। উত্তরটি যদি পূর্ণসংখ্যা না হয় তবে এটি একটি দশমিক সংখ্যা হিসাবে ফিরে আসতে হবে।
নিয়মাবলী:
- আপনার ভাষায় যদি এটি সহজ হয় তবে দুটি ইনপুট আর্গুমেন্টকে একটিতে একত্রিত করা ঠিক আছে।
- এটি একটি স্ট্রিং হতে হবে না, কিন্তু এটি অক্ষর থাকতে হবে। আপনি 1 এর সাথে সংযোজন, 2 দিয়ে বিভাগ ইত্যাদির বিকল্প রাখতে পারবেন না etc.
- আপনি প্রথমে কোন ইনপুটটি চয়ন করতে পারেন।
- এক্সপ্রেশনটি
ডান থেকেবাম থেকে ডানদিকে মূল্যায়ন করা হয়। (নিয়মের পরিবর্তন Any যে কোনও জমা দেওয়া পোস্টার প্রথম 12 ঘন্টা যেমন অন্যভাবে থাকে তা গৃহীত হয়)। - অপারেশন চিহ্ন ব্যবহার করুন:
( ) ^ * / + -
। উদাহরণস্বরূপ, আপনি সংযোজনের¤
পরিবর্তে ব্যবহার করতে পারবেন না+
। - ইনপুট এক্সপ্রেশন স্পেস ইনপুট হিসাবে বৈধ নয়
- Unary +/- ইনপুট হিসাবে বৈধ নয় যদি এটি সরাসরি + বা - অনুসরণ করে।
3+-2
অবৈধ ইনপুট হিসাবে বিবেচনা করুন। আপনার পছন্দ মতো এটি চিকিত্সা করা যেতে পারে (ত্রুটি তৈরি করতে হবে না)। যদি+
বা-
তুলনায় প্লাস বা মাইনাস অন্য কোন অপারেটর অনুসরণ করে, এটা স্বাভাবিক ভাবেই চিকিত্সা আছে:3*-3 = -9
,sin(-2)=-0.909
- প্রোগ্রামটি অবশ্যই অক্ষরগুলি কঠোরভাবে অনুসরণ করবে, তাই
"EMDAS", 1-3+4 => -6
, এবং"EMDSA", 1-3+4 => 2
।
উদাহরণ:
Input: "EMDAS", "3+6*2/4-1" // -> 3+12/4-1 -> 3+3-1 -> 6-1 -> 5
Output: 5
Input: "DAMES", "3+6*2/4-1" // -> 3+6*0.5-1 -> 9*0.5-1 -> 4.5-1 -> 3.5
Output: 3.5
Input: "SAD, ME", "3+6*2/4-1" // -> 3+6*2/3 -> 9*2/3 -> 9*0.66667 -> 6
Output: 6
Input: "ME ADS", "3+5^4/2-3*2 // -> 3+5^4/2-6 -> 3+625/2-6 -> 628/2-6 -> 314-6 -> 308
Output: 308
Input: "AM EDS", "4*3-sin(0.5^2)*3+1" // -> 4*3-sin(0.5^2)*4 -> 12-sin(0.5^2)*4 -> 4*3-(4*sin(0.5^2)) -> 12-(4*sin(0.5^2)) -> 12-(4*sin(0.25)) -> 12-(4*0.24740) -> 12-0.98961 -> 11.01038
Output: 11.01038
Input: "DAMES", "4-5-6" // -> (4-5)-6 -> = -7
Output: -7 // NOT: -> 4-(5-6) -> 4-(-1) -> 5
দ্রষ্টব্য, যেখানে প্রথম বন্ধনগুলি যুক্ত করা হয়েছে তা দেখানোর জন্য যে গুণটি 4*sin(0.5^2)
প্রকাশের পূর্বে গুণফলটি মূল্যায়ন করা হয়।
এটি কোড গল্ফ, তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি।
BODMAS
বা BIDMAS
স্কুলে শেখানো হয়। B
= বন্ধনী, O
বা I
= অর্ডার বা সূচকগুলি।
p
প্রয়োজন? এটি উদাহরণগুলিতে নেই