حساب لاحق محدود
قيّم من رمز واحد إلى 100 رمز لاحق باستخدام أعداد صحيحة محدودة والعوامل + و- و* و//.
def postfix_value(tokens):
tokens = tuple(tokens)
if not 1 <= len(tokens) <= 100:
raise ValueError("tokens.limit")
stack = []
for token in tokens:
if type(token) is int and abs(token) <= 1000000000:
stack.append(token)
continue
if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
raise ValueError("token.invalid")
right, left = stack.pop(), stack.pop()
if token == "//" and right == 0:
raise ValueError("division.zero")
value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
if abs(value) > 10**18:
raise ValueError("result.range")
stack.append(value)
if len(stack) != 1:
raise ValueError("stack.remainder")
return stack[0]- المشروع
- اختبر القسمة السالبة المقربة نحو الأسفل وارفض القسمة على صفر أو المكدس غير المكتمل أو قيمة وسيطة مطلقة فوق 10**18.
- راجع قبل التطبيق
- قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية.
- النماذج
- اضبط نقطة اتصال متوافقة مع OpenAI أو Anthropic باستخدام العنوان الأساسي ومفتاح API عند الحاجة. اختبر الاتصال. يجب أن يعمل خادم النموذج المحلي؛ وقد ترسل الأدوات البعيدة البيانات بشكل منفصل.
def postfix_value(tokens):
tokens = tuple(tokens)
if not 1 <= len(tokens) <= 100:
raise ValueError("tokens.limit")
stack = []
for token in tokens:
if type(token) is int and abs(token) <= 1000000000:
stack.append(token)
continue
if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
raise ValueError("token.invalid")
right, left = stack.pop(), stack.pop()
if token == "//" and right == 0:
raise ValueError("division.zero")
value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
if abs(value) > 10**18:
raise ValueError("result.range")
stack.append(value)
if len(stack) != 1:
raise ValueError("stack.remainder")
return stack[0]حدد ما يسمح للتعبير بفعله قبل تغيير محلله
تحتاج معالجة التعابير إلى حدود واضحة حتى لو كانت اللغة صغيرة. StackSundial مساحة برمجة بالذكاء الاصطناعي على Windows لمناقشة تلك الحدود بجانب ملفات المصدر. افتح مشروعك واطلب من النموذج المتصل فحص الرموز المقبولة وقواعد التقييم ومعالجة المستدعي للأخطاء قبل اقتراح تغيير في التنفيذ.
من المهام الممكنة مراجعة مقيّم للصيغة اللاحقة تستخدمه شاشة حساب داخلية. حدد العوامل المسموحة والحدود العددية والاستجابة للتعابير المشوهة. اطلب من المساعد تحديد مواضع تطبيق هذه المتطلبات واقتراح تعديلات مركزة حيث تغيب. يجعل ذلك المحادثة عن صيانة برنامجك، لا مجرد توليد مقيّم آخر.
راجع مسارات الرفض بالاهتمام نفسه المخصص للحساب الناجح. شغل فحوص المشروع للمعاملات الناقصة والنتائج الزائدة والقسمة على صفر والقيم خارج الحدود المسموحة. افحص ترتيب المعاملات في العمليات غير التبديلية وتأكد من تلقي المستدعي الخطأ المقصود. تجنب قبول حلقة تقييم أقصر إن أضعفت العقد المحيط بها.
يدعم StackSundial الاتصال بنقاط نهاية متوافقة مع OpenAI أو تابعة لـ Anthropic. اختر نموذجا أزيلت منه آليات التقييد حيث يتاح، مع فهم أن القيود وحدود السياق والأدوات تعتمد على الخدمة المختارة. يبقى الكود المقترح نقطة بداية للفحص والتحقق الخاص بك، لا دليلا على جاهزية المفسر.
قبل قبول تعديل للمقيّم
- ما القواعد التي أدرجها في وصف المهمة؟
حدد الرموز المسموحة وأنواع المعاملات والحدود العددية وسلوك الأخطاء. أدرج المستدعي الذي يعرض حالات الفشل للمستخدمين. دون هذه القواعد، قد يحسب المقترح الأمثلة العادية بشكل صحيح ويقبل تعابير كان ينبغي للتطبيق رفضها.
- لماذا أختبر الطرح والقسمة صراحة؟
تعتمد نتائجهما على ترتيب المعاملات، بخلاف الجمع في الحالات المعتادة. استخدم حالات تختلف نتائجها بوضوح عند عكس المعاملات. افحص اصطلاح القسمة الذي يتطلبه مشروعك واستجابته للمقسوم عليه الصفري.
- هل ينبغي أن تعيد التعابير المشوهة صفرا؟
فقط إذا كان ذلك متطلبا صريحا للتطبيق. قد تخفي قيمة عددية احتياطية معقولة مدخلات سيئة. اطلب من المساعد الحفاظ على مسار رفض واضح وافحص تمييز المستدعي بين نتيجة صفرية صحيحة وخطأ.
- هل يكفي حد عدد الرموز وحده لتقييد التقييم؟
راجع كل الحدود التي يتطلبها المشروع، ومنها القيم الوسيطة وبنية المدخل المقبولة. يجيب عدد الرموز عن جزء واحد فقط من العقد. اختبر مسارات الرفض المعنية بعد أي تغيير في حلقة التقييم.
StackSundial · آخر تحديث 2026-10-25