تابعی بنویسید که نتیجه عملیات ریاضی روی یک کارت آموزشی را محاسبه کند. هر کارت آموزشی یک لیست سهعنصری شامل [عدد اول، عملگر، عدد دوم] است. تابع باید نتیجه ریاضی این عبارت را برگرداند.
عملگرهای مجاز:
+
(جمع)-
(تفریق)x
(ضرب)/
(تقسیم)
شرایط خاص:
- اگر تقسیم بر صفر اتفاق بیفتد (مثلاً [3, “/”, 0])، تابع باید
None
برگرداند. - برای عملیات تقسیم، نتیجه باید تا دو رقم اعشار گرد شود. مثلاً [10, “/”, 3] باید 3.33 برگرداند.
نمونه ورودی و خروجی
Flash([3, "x", 7]) ➞ 21
Flash([5, "+", 7]) ➞ 12
Flash([10, "-", 9]) ➞ 1
نکات مهم
- اعداد در کارتهای آموزشی فقط میتوانند صفر یا اعداد مثبت باشند.
EXPECT_EQ(Flash({3, "x", 7}), 21); EXPECT_EQ(Flash({5, "+", 7}), 12); EXPECT_EQ(Flash({10, "-", 9}), 1); EXPECT_EQ(Flash({10, "/", 0}), std::nullopt); EXPECT_NEAR(std::get(Flash({10, "/", 3})), 3.33, 0.001);
نظرات