SStackSundial
Робоче середовище з ШІ для коду

Обмежена постфіксна арифметика

Обчисліть від одного до 100 постфіксних токенів з обмеженими цілими числами й операторами +, -, * та //.

● ● ●StackSundial●
Сценарії · Обмежена постфіксна арифметика ×
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]
✳Обчисліть від одного до 100 постфіксних токенів з обмеженими цілими числами й операторами +, -, * та //.
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
Проєкт
Перевірте від’ємне ділення з округленням донизу й відхиляйте ділення на нуль, неповний стек або проміжний модуль понад 10**18.
Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та 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 кінцевих точок. За наявності виберіть аблітеровану модель ШІ, розуміючи, що обмеження, межі контексту та інструменти залежать від вибраного сервісу. Запропонований нею код залишається відправною точкою для огляду та власної перевірки, а не доказом готовності інтерпретатора.

Перед прийняттям патча обчислювача

Які правила включити до опису завдання?

Зазначте дозволені токени, типи операндів, числові межі й поведінку помилок. Додайте код виклику, що показує помилки користувачам. Без цих правил пропозиція може правильно обчислювати звичайні приклади, водночас приймаючи вирази, які застосунок мав відхиляти.

Навіщо явно тестувати віднімання й ділення?

Їхні результати залежать від порядку операндів, на відміну від додавання у звичайних випадках. Використовуйте приклади з помітно різними результатами за зворотного порядку операндів. Перевірте також домовленість щодо ділення, потрібну проєкту, і реакцію на нульовий дільник.

Чи мають некоректні вирази повертати нуль?

Лише якщо це явна вимога застосунку. Правдоподібне резервне число може приховати некоректний вхід. Попросіть асистента зберегти чіткий шлях відхилення й перевірте, як код виклику відрізняє правильний нульовий результат від помилки.

Чи достатньо лише обмеження кількості токенів для обмеження обчислень?

Перевірте всі потрібні проєкту обмеження, включно з проміжними значеннями та допустимою структурою входу. Кількість токенів охоплює лише одну частину контракту. Тестуйте відповідні шляхи відхилення після кожної зміни циклу обчислення.

Завантажити для Windows ↗

StackSundial · Оновлено 2026-10-25