Задание. Сгенерируй тестовые вопросы
Дано: фрагмент кода с простой функцией.
С его помощью можно передать только Цену и Количество товара, получив при этом сумму.
Функция РассчитатьСумму(Цена, Количество)
Если Цена < 0 ТогдаВозврат 0;
КонецЕсли;
Возврат Цена * Количество;
КонецФункции
Задача:
1. Посмотрите, как легко и быстро можно расширить функционал с помощью ИИ, даже не зная языка программирования 1С.
Передайте ему Фрагмент кода и запрос:
—————————
2. Запросить ИИ на сгенерированный им код придумать 8-10 тестовых вопросов
Формат: [Вопрос] → варианты (a/b/c/d) → правильный ответ.
Требования:
- Покрой: пустые/отрицательные входы, скидку (0, 50, 100, >100), НДС вкл/выкл, округление, структуру возврата.
- Не повторяй однотипные вопросы.
Решение с использованием ChatGPT:
Давай оформим задание по шагам. Я сразу сгенерирую тестовые вопросы для функции 1С с учетом всех требований, чтобы можно было использовать их для проверки знаний или автотестов.
Фрагмент улучшенного кода (для понимания контекста тестов)
Функция РассчитатьСумму(Цена, Количество, Скидка = 0, НДС = Ложь)
// Константа НДС
НДС_Ставка = 20;
// Валидация входных данных
Если ТипЗнч(Цена) <> Тип("Число") Или Цена < 0 Тогда
Возврат Неопределено;
КонецЕсли;
Если ТипЗнч(Количество) <> Тип("Число") Или Количество < 0 Тогда
Возврат Неопределено;
КонецЕсли;
Если Скидка = Неопределено Или Скидка < 0 Тогда
Скидка = 0;
КонецЕсли;
Если Скидка > 100 Тогда
Скидка = 100;
КонецЕсли;
// Расчет базы и скидки
База = Цена * Количество;
Сумма_СКидкой = Окр(База * (1 - Скидка/100), 2); // округление до 2 знаков
// Расчет НДС
Если НДС Тогда
НДС_Сумма = Окр(Сумма_СКидкой * НДС_Ставка / 100, 2);
Иначе
НДС_Сумма = 0;
КонецЕсли;
// Итоговая сумма
Итог = Сумма_СКидкой + НДС_Сумма;
// Возврат структуры с деталями
Результат = Новый Структура;
Результат.Вставить("База", База);
Результат.Вставить("Скидка%", Скидка);
Результат.Вставить("НДС%", Если(НДС, НДС_Ставка, 0));
Результат.Вставить("Итог", Итог);
Возврат Результат;
КонецФункции
Тестовые вопросы
- Что возвращает функция при отрицательной цене?
a) 0
b) Неопределено
c) Исключение
d) Итог без НДС
Ответ: b - Если количество = 0, цена = 100, скидка = 0, НДС = Ложь, что будет в поле Итог?
a) 0
b) 100
c) 20
d) Неопределено
Ответ: a - Цена = 200, Количество = 2, Скидка = 50, НДС = Истина. Сколько будет Итог?
a) 200
b) 240
c) 220
d) 300
Ответ: b
(Расчёт: база 2002=400, скидка 50% → 200, НДС 20% → 40, Итог=240)* - Скидка больше 100 (например, 150%). Как функция обработает её?
a) Ошибка
b) Скидка = 100%
c) Скидка = 150%
d) Неопределено
Ответ: b - НДС = Ложь, цена = 100, количество = 3, скидка = 0. Итоговая сумма?
a) 300
b) 360
c) 0
d) 100
Ответ: a - Проверка округления: цена = 33.333, количество = 3, скидка = 0, НДС = Истина. Итог?
a) 120.00
b) 120.00 (с НДС 20% → 144.00)
c) 99.99
d) 100
Ответ: b
(База 33.3333=99.999 → округление до 100.00, скидка 0, НДС 20% → 20.00, Итог=120.00)* - Возврат структуры: какие поля всегда присутствуют?
a) База, Скидка%, Итог
b) База, Скидка%, НДС%, Итог
c) База, Итог
d) Только Итог
Ответ: b - Если Скидка = Неопределено, функция вернёт:
a) Ошибку
b) Скидка = 0%
c) Скидка = 100%
d) Неопределено
Ответ: b - Цена = «текст», Количество = 1. Результат функции:
a) 0
b) 1
c) Неопределено
d) Исключение
Ответ: c - При цене = 120, количестве = 2, скидка = 25%, НДС = Истина. Итоговая сумма:
a) 180
b) 192
c) 200
d) 210
Ответ: b
(База=240, скидка 25% → 180, НДС 20% → 36, Итог=216 → округлено 216.00)