ماشین حسابها ابزارهای سادهای هستند که برای انجام عملیات ریاضی طراحی شدهاند. از جمله عملیاتهای پایهای که معمولاً ماشین حسابها پشتیبانی میکنند میتوان به جمع، تفریق، ضرب و تقسیم اشاره کرد. ماشین حسابها میتوانند بهصورت دستی (در قالب دستگاههای فیزیکی) یا نرمافزاری (در قالب برنامهها و اپلیکیشنها) وجود داشته باشند.
در این پروژه، قصد داریم یک ماشین حساب ساده با استفاده از زبان برنامهنویسی پایتون بسازیم. این ماشین حساب قادر خواهد بود تا عملیاتهای پایهای ریاضی را انجام دهد و خروجی مناسب را به کاربر نمایش دهد. این پروژه برای یادگیری اصول اولیه برنامهنویسی پایتون و درک نحوه تعامل با کاربر از طریق ورودیها و خروجیها بسیار مفید است.
در این راه، با استفاده از دستورات شرطی، توابع و ساختارهای کنترلی پایتون، قادر خواهیم بود یک ماشین حساب با عملکرد ساده ولی کارآمد بسازیم. برای پروژههای بعدی، میتوان قابلیتهای پیشرفتهتری مثل ساخت رابط گرافیکی، مدیریت خطاهای ورودی و اضافه کردن عملیاتهای پیچیدهتر را نیز به آن اضافه کرد.
تعریف عملیاتهای اصلی (جمع، تفریق، ضرب و تقسیم)
در ماشین حسابهای ساده، چهار عملیات ریاضی اصلی که بهطور روزمره در محاسبات استفاده میشوند، عبارتند از: جمع (Addition)، تفریق (Subtraction)، ضرب (Multiplication) و تقسیم (Division). این عملیاتها پایه و اساس هر ماشین حسابی را تشکیل میدهند.
1. جمع (Addition)
عملیات جمع بهطور ساده دو عدد را با هم ترکیب میکند تا حاصل جمع آنها را بدست آورد. علامت آن در ریاضیات معمولاً “+” است.
فرمول:
A+B=CA + B = CA+B=C
مثال:
5+3=85 + 3 = 85+3=8
2. تفریق (Subtraction)
در عملیات تفریق، یک عدد از عدد دیگر کم میشود تا تفاوت آنها محاسبه شود. علامت آن در ریاضیات معمولاً “-” است.
فرمول:
A−B=CA – B = CA−B=C
مثال:
7−2=57 – 2 = 57−2=5
3. ضرب (Multiplication)
عملیات ضرب برای محاسبه حاصلضرب دو عدد است. علامت آن در ریاضیات معمولاً “*” یا “×” است.
فرمول:
A×B=CA \times B = CA×B=C
مثال:
4×6=244 \times 6 = 244×6=24
4. تقسیم (Division)
عملیات تقسیم یک عدد را بر عدد دیگر تقسیم میکند تا حاصل آن بهدست آید. علامت آن در ریاضیات معمولاً “/” است. همچنین در پایتون برای تقسیم، دو نوع عملیات داریم: تقسیم صحیح و تقسیم اعشاری.
فرمول:
A÷B=CA \div B = CA÷B=C
که در آن CCC میتواند یک عدد اعشاری یا صحیح باشد، بسته به نوع تقسیم.
مثال:
8÷2=48 \div 2 = 48÷2=4 (تقسیم صحیح)
7÷3=2.337 \div 3 = 2.337÷3=2.33 (تقسیم اعشاری)
در هنگام طراحی ماشین حساب، این عملیاتها بهطور معمول بهوسیله توابع مختلف پیادهسازی میشوند و سپس از طریق ورودی کاربر انتخاب میگردند تا عملیات مورد نظر انجام شود.
ایجاد رابط کاربری ساده با استفاده از کنسول
در این مرحله از پروژه ماشین حساب، هدف این است که یک رابط کاربری ساده برای ماشین حساب خود ایجاد کنید تا کاربر بتواند از طریق کنسول (خط فرمان) با برنامه تعامل داشته باشد. این رابط کاربری باید به گونهای باشد که کاربر به راحتی بتواند عملیاتی مانند جمع، تفریق، ضرب و تقسیم را انتخاب کرده و ورودیهای مورد نظر خود را وارد کند.
مراحل ایجاد رابط کاربری ساده در کنسول
- نمایش منوی اصلی ماشین حساب:
ابتدا یک منوی ساده نمایش میدهیم که کاربر میتواند یک عملیات را از بین چهار عملیات اصلی انتخاب کند. - دریافت ورودی از کاربر:
پس از انتخاب عملیات، از کاربر میخواهیم که دو عدد وارد کند تا عملیات بر روی آنها انجام شود. - اجرای عملیات انتخابی:
پس از دریافت ورودی، عملیات مربوطه انجام میشود و نتیجه به کاربر نمایش داده میشود. - امکان تکرار عملیات:
به کاربر این امکان داده میشود که بعد از انجام هر عملیات، تصمیم بگیرد که عملیات جدیدی انجام دهد یا برنامه را خاتمه دهد.
کد نمونه برای رابط کاربری ساده:
# تعریف توابع عملیاتهای اصلی
def add(x, y):
return x + y
def subtract(x, y):
return x – y
def multiply(x, y):
return x * y
def divide(x, y):
if y == 0:
return “تقسیم بر صفر مجاز نیست!”
else:
return x / y
# نمایش منوی ماشین حساب
def menu():
print(“ماشین حساب ساده”)
print(“1. جمع”)
print(“2. تفریق”)
print(“3. ضرب”)
print(“4. تقسیم”)
print(“5. خروج”)
# اجرای برنامه
while True:
menu()
choice = input(“لطفاً گزینه مورد نظر را وارد کنید (1/2/3/4/5): “)
if choice in (‘1’, ‘2’, ‘3’, ‘4’):
num1 = float(input(“عدد اول را وارد کنید: “))
num2 = float(input(“عدد دوم را وارد کنید: “))
if choice == ‘1’:
print(f”نتیجه جمع: {add(num1, num2)}”)
elif choice == ‘2’:
print(f”نتیجه تفریق: {subtract(num1, num2)}”)
elif choice == ‘3’:
print(f”نتیجه ضرب: {multiply(num1, num2)}”)
elif choice == ‘4’:
print(f”نتیجه تقسیم: {divide(num1, num2)}”)
elif choice == ‘5’:
print(“برنامه خاتمه یافت.”)
break
else:
print(“لطفاً گزینه صحیح را وارد کنید.”)
توضیحات:
- تعریف توابع برای عملیاتها:
برای هر عملیات یک تابع جداگانه تعریف کردهایم که دو پارامتر ورودی میگیرد و نتیجه آن عملیات را برمیگرداند. - منو و دریافت ورودی از کاربر:
از کاربر خواسته میشود که یک عدد بین 1 تا 4 وارد کند تا یکی از عملیاتها را انتخاب کند. اگر کاربر “5” را وارد کند، برنامه خاتمه مییابد. - دریافت دو عدد از کاربر:
پس از انتخاب عملیات، دو عدد از کاربر گرفته میشود تا عملیات مورد نظر بر روی آنها انجام شود. - اجرا و نمایش نتیجه:
پس از دریافت ورودیها، عملیات انتخابی اجرا شده و نتیجه به کاربر نمایش داده میشود. - حالت خروج:
وقتی کاربر گزینه 5 را وارد میکند، برنامه خاتمه مییابد و پیامی مبنی بر پایان برنامه نمایش داده میشود.
قابلیتهای اضافه:
- مدیریت ورودی نادرست: میتوان به برنامه قابلیت مدیریت ورودیهای نادرست را اضافه کرد (مثلاً وقتی کاربر عدد وارد نکند یا عمل تقسیم بر صفر رخ دهد).
- تکرار عملیاتها: بعد از هر عملیات، از کاربر میتوان درخواست کرد که آیا میخواهد عملیات دیگری انجام دهد یا خیر.
این رابط کاربری ساده، امکان تعامل مستقیم با کاربر را فراهم میکند و در عین حال باعث یادگیری بهتر نحوه کار با ورودیها و دستورات شرطی در پایتون میشود.
استفاده از دستورات شرطی برای انتخاب عملیات
در کد ماشین حساب، بعد از دریافت ورودی عملیات از کاربر، از دستورات شرطی برای انتخاب و اجرای عملیات مناسب استفاده میکنیم. به این صورت که کاربر میتواند یک عدد وارد کند که نشاندهنده عملیاتی مانند جمع، تفریق، ضرب و یا تقسیم است و سپس بر اساس این انتخاب، برنامه عملیات مربوطه را انجام میدهد.
کد نمونه برای استفاده از دستورات شرطی برای انتخاب عملیات:
# تعریف توابع عملیاتهای اصلی
def add(x, y):
return x + y
def subtract(x, y):
return x – y
def multiply(x, y):
return x * y
def divide(x, y):
if y == 0:
return “تقسیم بر صفر مجاز نیست!”
else:
return x / y
# نمایش منوی ماشین حساب
def menu():
print(“ماشین حساب ساده”)
print(“1. جمع”)
print(“2. تفریق”)
print(“3. ضرب”)
print(“4. تقسیم”)
print(“5. خروج”)
# اجرای برنامه
while True:
menu()
choice = input(“لطفاً گزینه مورد نظر را وارد کنید (1/2/3/4/5): “)
# استفاده از دستورات شرطی برای انتخاب عملیات
if choice == ‘1’:
num1 = float(input(“عدد اول را وارد کنید: “))
num2 = float(input(“عدد دوم را وارد کنید: “))
print(f”نتیجه جمع: {add(num1, num2)}”)
elif choice == ‘2’:
num1 = float(input(“عدد اول را وارد کنید: “))
num2 = float(input(“عدد دوم را وارد کنید: “))
print(f”نتیجه تفریق: {subtract(num1, num2)}”)
elif choice == ‘3’:
num1 = float(input(“عدد اول را وارد کنید: “))
num2 = float(input(“عدد دوم را وارد کنید: “))
print(f”نتیجه ضرب: {multiply(num1, num2)}”)
elif choice == ‘4’:
num1 = float(input(“عدد اول را وارد کنید: “))
num2 = float(input(“عدد دوم را وارد کنید: “))
print(f”نتیجه تقسیم: {divide(num1, num2)}”)
elif choice == ‘5’:
print(“برنامه خاتمه یافت.”)
break
else:
print(“لطفاً گزینه صحیح را وارد کنید.”)
توضیحات:
- دریافت ورودی از کاربر:
کاربر یک عدد وارد میکند تا عملیاتی که میخواهد انجام دهد را انتخاب کند (مثلاً 1 برای جمع، 2 برای تفریق و …). - دستورات شرطی
ifوelif:
پس از دریافت ورودی، با استفاده از دستورات شرطی، برنامه تشخیص میدهد که کدام عملیات باید انجام شود. برای هر عملیات (جمع، تفریق، ضرب و تقسیم) یک شرط جداگانه در نظر گرفته شده است. - عملیات و نتیجه:
در هر بخش از دستورات شرطی، دو عدد از کاربر دریافت میشود و نتیجه عملیات مربوطه محاسبه شده و به کاربر نمایش داده میشود. - حالت خروج:
اگر کاربر عدد 5 را وارد کند، برنامه خاتمه مییابد و پیامی مبنی بر پایان اجرای برنامه نمایش داده میشود.
این ساختار به راحتی قابل گسترش است و میتوان عملیاتهای بیشتری به آن اضافه کرد.
