مقدمه
یک ماشینحساب ساده، ماشینحسابی است که تنها چهار عمل اصلی محاسبات ریاضی را در خود شامل شدهاست. این چهار عمل اصلی بهترتیب اولویت عبارتند از: تقسیم، ضرب، تفریق و جمع. یک ماشینحساب ساده، میتواند عملیات ریاضی را تنها بر روی دو مقدار ورودی محاسبه نماید. با پیشرفت علم و فناوری، ماشینحسابها از حالت دیجیتالی معمولی به ماشینحسابهای نوشتاری و مهندسی تبدیل شدند و میتوان چندین متغیر را بهصورت یکباره به ورودی داد و محاسبات انجام خواهد گرفت. این پروژه، تلفیقی از ماشینحسابهای ساده و نوشتاری میباشد. به این منظور که میتوان عملیات اصلی ریاضی را بر روی چندین متغیر در ورودی اعمال نمود.
توضیحات اجمالی
همانطور که گفته شد، عملگرهای ریاضی دارای اولویتهایی میباشد که در ماشینحسابهای پیشرفته استاندارد، این اولویتها همگی لحاظ میشوند. این اولویتها در برخی ماشینحسابهای غیراستاندارد متفاوت است که موجب میشود محاسبات کاربر با مشکل مواجه شود؛ از اینرو، در این پروژه اولویت های عملگرهای ریاضی رعایت شده است.
همانطور که در برنامه و سورس کد مدار مشاهده میشود، برنامه از تابعی دستساز به نام multiCalc تشکیل شدهاست که میتوان با قراردادن مقادیر اعداد ورودی و عملگرهای مربوط به این اعداد (عملگرهای اتصالدهنده مابین آنها) در آرگومانهای این تابع، مقدار نهایی عبارت را محاسبه نمود. اساس کلی این تابع، مبنی بر سادهسازی ریاضی میباشد. بهعبارتی، مقدار نهایی توسط چندین مرحله سادهسازی به تفکیک عملگرهای مختلف بدست میآید. به اینصورت که در ابتدا عملگر با بالاترین اولویت یافت میشود؛ سپس، تنها محاسبات مربوط به این عملگر صورت میگیرد؛ در نتیجه این عملیات، اعداد مشترک در این عملگر، به یک عدد واحد سادهسازی شده و مجددا این اعداد جدید و عملگرهای باقیمانده وارد الگوریتم شده و این روند برای تمامی عملگرها (در صورت وجود) تکرار میگردد. این تکرار توسط خود تابع و به صورت Recursive انجام میگیرد؛ که یک نوع ترفند برنامهنویسی بهحساب آمده و باعث میشود برنامه، بهینه و استانداردسازی شود. جهت درک بهتر به مثال زیر توجه فرمایید:
فرض کنید میخواهیم عملیات ریاضی زیر را انجام دهیم:
2 × 3 — 8 + 6 × 4 × 7
این تابع، در ابتدا تمامی عملگرها را مورد بررسی قرار داده و عملگر با بیشترین اولویت را مییابد (که در اینجا عملگر ضرب موجود بوده و نسبت به عملگرهای دیگر از بالاترین اولویت برخوردار میباشد). محاسبات مبنی بر این عملگر ضرب، یعنی:
2 × 3 , 6 × 4 × 7
انجام میگیرد و مقادیر محاسبهشده آنها، قرار داده شده و عبارت اصلی بهصورت زیر سادهسازی خواهد شد:
6 — 8 + 168
در این قسمت، بهدلیل اینکه تعداد اعداد ورودی 3 بوده و از 1 بیشتر میباشد، به منزله این است که مراحل سادهسازی، هنوز به اتمام نرسیده است. از اینرو، مراحل بالا مجددا انجام میگیرد؛ که در اینجا، عملگر تفریق از بالاترین اولویت برخوردار است و محاسبات منوط به آن، انجام میگیرد:
-2 + 168
و در نهایت حاصل نهایی این عبارات برابر 166 خواهد شد.
تصویری از شبیهسازی مدار
بخش دانلود
شامل موارد زیر:
- فایل پروژه آردوینو
- فایل شبیه سازی پروژه Proteus 8.9
- کد هگز مخصوص پروگرام کردن میکروکنترلر
توجهات: