আমার নতুন স্ট্যাক ভিত্তিক ভাষা বাস্তবায়নের জন্য আপনার সময়! একে স্ট্যাকিমাথ বলে। এটি স্ট্যাকের উপর ভিত্তি করে 8 টি অপারেশন এবং স্ট্যাকটিতে সংখ্যা যুক্ত করার উপায়গুলির সাথে স্ট্যাক ভিত্তিক ভাষা হবে।
কার্যক্রমের তালিকা:
/: বিভাগ। স্ট্যাকের শীর্ষ 2 সংখ্যায় পারফর্ম করা। ফলকে স্ট্যাকের দিকে পিছনে ঠেলে দেয়।*: গুণ। স্ট্যাকের শীর্ষ 2 সংখ্যায় পারফর্ম করা। ফলকে স্ট্যাকের দিকে ফিরে ঠেলে দেয়-: বিয়োগ স্ট্যাকের শীর্ষ 2 সংখ্যায় পারফর্ম করা। ফলকে স্ট্যাকের দিকে ফিরে ঠেলে দেয়+: সংযোজন. স্ট্যাকের শীর্ষ 2 সংখ্যায় পারফর্ম করা। ফলকে স্ট্যাকের দিকে ফিরে ঠেলে দেয়^: এক্সপেনশনেশন। স্ট্যাকের শীর্ষ 2 সংখ্যায় পারফর্ম করা। ফলকে স্ট্যাকের দিকে ফিরে ঠেলে দেয়%: মডুলো. স্ট্যাকের শীর্ষ 2 সংখ্যায় পারফর্ম করা। ফলকে স্ট্যাকের দিকে ফিরে ঠেলে দেয়!: কারখানা। স্ট্যাকের শীর্ষ নম্বরে পারফর্ম করা। ফলকে স্ট্যাকের দিকে পিছনে ঠেলে দেয়D: স্ট্যাকের শীর্ষ নম্বরটি নকল করুন
সিউডো কোডে সংজ্ঞায়িত অপারেশন:
/:push(pop divided by pop)*:push(pop times pop)-:push(pop minus pop)+:push(pop plus pop)^:push(pop to the pop)%:push(pop mod pop)!:push(factorial pop)D:t = pop; push(t); push(t)
কীভাবে সংখ্যাগুলিকে স্ট্যাকের দিকে ঠেলাবেন:
স্ট্যাকটিতে সংখ্যা যুক্ত করা সহজ, আপনার প্রোগ্রামে যেখানে প্রয়োজন সেখানে কেবল কাঁচা সংখ্যাটি রাখুন। যদি আপনাকে স্ট্যাকের উপর একাধিক নম্বর লাগাতে হয় তবে আপনি সেগুলি কমা ( ,) দিয়ে আলাদা করতে পারেন । আপনার প্রোগ্রামটির ইনপুটটিতে -নম্বরগুলি প্রক্রিয়া করার প্রয়োজন হবে না , যদি ব্যবহারকারী একটি চায় তবে তাদের যে নম্বরটি উপেক্ষিত, শূন্য এবং তারা চান তা চাপ দিতে হবে -। প্রোগ্রামটির ইনপুটটিতে নম্বরগুলিও ইতিবাচক পূর্ণসংখ্যার জন্য সীমাবদ্ধ।
ইনপুট:
আপনার প্রোগ্রাম এসটিডি থেকে কমান্ড লাইন ইনপুট নিতে হবে, বা। ইনপুট শুধুমাত্র সংখ্যা (কোন বৈজ্ঞানিক স্বরলিপি বা দশমিক) দ্বারা সীমায়িত নিয়ে গঠিত হবে ,হিসাবে প্রয়োজন এবং ক্রিয়াকলাপ উপরে সংজ্ঞায়িত।
আউটপুট:
আপনার প্রোগ্রামটি স্ট্যাকের শীর্ষে নম্বরটি মুদ্রণ করা উচিত।
ত্রুটির ক্ষেত্রে:
- প্রোগ্রামটি যদি স্ট্যাকটিকে ওভার-পপ করার চেষ্টা করে তবে আপনার মুদ্রণ করা উচিত
StackUnderflowException!!!। - আপনার যদি শূন্য দ্বারা বিভাগ থাকে তবে মুদ্রণ করুন
DivisionByZeroException!!! - যদি কোনও সংখ্যা যা -৪-বিট অতিক্রম করে, হয় প্রোগ্রামটি সঞ্চালনের সময় বা ইনপুটটিতে কোনও নম্বর প্রক্রিয়াকরণের সময়, মুদ্রণ করুন
NumberOverflowException!!! - যদি কোনওভাবে আপনি স্ট্যাকের শীর্ষে নেতিবাচক নম্বর পান এবং আপনাকে একটি ফ্যাক্টরিয়াল, মুদ্রণ করতে হবে
NegativeFactorialException!!! - আপনার যদি স্ট্যাকের শীর্ষে একটি ভাসমান পয়েন্ট নম্বর থাকে এবং পরবর্তী ক্রিয়াকলাপটি ফ্যাকটোরিয়াল হয় তবে মুদ্রণ করুন
FloatingFactorialException!!! - প্রোগ্রামটি প্রস্থান করার সময় কোনও সংখ্যা স্ট্যাকের মধ্যে না থাকলে (যেমন প্রোগ্রামটি খালি ছিল) মুদ্রণ
EmptyProgram!!!
মন্তব্য:
- সমস্ত ত্রুটি আউটপুট এর yo স্ট্যান্ড এরর বা নিকটতম সমতুল্য হওয়া উচিত।
- সমস্ত সংখ্যা 64৪-বিট ভাসমান স্থানে সীমাবদ্ধ।
প্রোগ্রামসমূহ উদাহরণ:
50,47* -> 2350
50,47/ -> 0.94
100,8! -> 40320
100D* -> 10000
! -> StackUnderflowException!!!
5,2/! -> FloatingFactorialException!!!
4,3!2*/ -> 3
654,489,48,43/5*7D+-*% -> 77.68749999999909
-> EmptyProgram!!!
(প্রয়োজনে আমি আরও যোগ করতে পারি)
654,489,48,43/5*7D+-*%ফিরে আসা উচিত 77.6875। ( 43/48*5-(7+7)হওয়া উচিত (7+7)-43/48*5)
!করা ব্যতীতF)।