Тестовые задания

1. kat-22-06 01.07.23 09:20 Сейчас в теме
Добрый день)

Может кто подсказать, с чего начать решение?

Учу 1С с 0, пока сложно понять.
Прикрепленные файлы:
1CdevBase-HomeWork01.pdf
1CdevBase-HomeWork02.pdf
1CdevBase-HomeWork03.pdf
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 01.07.23 09:53 Сейчас в теме
(1)
с чего начать решение
Там же написано.
"Если у вас не установлена платформа, инсталлируйте ее."
4. SlavaKron 01.07.23 11:49 Сейчас в теме
(1)
Но, к сожалению, нет возможности описать исключающее ИЛИ (XOR).
Ага, прям таки к сожалению =)
Функция РазрешенаПродажа(ВидКлиента, СортТовара)
	Возврат (ВидКлиента = "VIP") = (СортТовара = "Высший")
КонецФункции
5. spacecraft 01.07.23 12:37 Сейчас в теме
(4) это не XOR. Это AND.
По условиям задачи, что-то в этом роде:
Функция РазрешенаПродажа(ВидКлиента, СортТовара)
    Возврат ((ВидКлиента = "VIP") И (СортТовара = "Высший")) ИЛИ НЕ ((ВидКлиента = "VIP") ИЛИ (СортТовара = "Высший"));
КонецФункции


PS. в задаче пример не XOR. Там NOT XOR :)
Следовательно можно так:
Функция РазрешенаПродажа(ВидКлиента, СортТовара)
	Возврат НЕ ((ВидКлиента = "VIP") <> (СортТовара = "Высший"));
КонецФункции
user1671936; kat-22-06; +2 Ответить
6. SlavaKron 01.07.23 13:12 Сейчас в теме
(5) А где я утверждал, что это xor?
7. spacecraft 01.07.23 13:16 Сейчас в теме
(6)
Но, к сожалению, нет возможности описать исключающее ИЛИ (XOR).
Ага, прям таки к сожалению =)

и последующий код это что?
Обсуждение на стороннюю тему? :)
8. SlavaKron 01.07.23 13:18 Сейчас в теме
(7) Я вообще не связывал эти подзадания. Там видно, что составитель уж очень хотел, чтобы решили через xor, но по-моему, это только сбивает с толку.
9. spacecraft 01.07.23 13:27 Сейчас в теме
(8) это тестовое задание какого-то учебного курса. Закрепление материала. В данном случае закрепление материала по булевой алгебре и конкретно по XOR. Можно конечно пробовать решить "интригалом", только не в этом цель.
Не говоря уже о том, что решения только половины задачи, это вообще не решение.
10. SlavaKron 01.07.23 13:37 Сейчас в теме
(9) Первую часть я и не брался решать, там всё очевидно. В задании же не сказано, что вторую часть нужно решать xor-ом. Более того, тащить xor в данную задачу, это как раз ваш "интригал".
11. spacecraft 01.07.23 13:40 Сейчас в теме
(10)
Первую часть я и не брался решать, там всё очевидно.

о какой первой части речь?
Вот текст задачи:
Необходимо разработать функцию: РазрешенаПродажа(ВидКлиента, СортТовара). При
этом VIP-клиентам (первый параметр функции строка «VIP») необходимо продавать только
товары высшего сорта (второй параметр функции «Высший»). Для такой пары функция должна
вернуть истину. Другим клиентам можно продавать товары не высшего сорта (любой другой), в
этом случае функция тоже возвращает истину. Во всех остальных случаях нужно вернуть значение
ЛОЖЬ.

Она решена?
Код в (4) это как раз только первая часть.
12. SlavaKron 01.07.23 13:41 Сейчас в теме
13. spacecraft 01.07.23 13:43 Сейчас в теме
(12) ок, что вернет функция:
МожноПродавать = РазрешенаПродажа("Просто клиент", "Второй сорт");


Задача решена?
14. SlavaKron 01.07.23 13:43 Сейчас в теме
15. spacecraft 01.07.23 13:45 Сейчас в теме
(14) а. точно. не проверил :)
Но все же задача не в этом была.
16. SlavaKron 01.07.23 13:46 Сейчас в теме
(15) а в чём? Вы в своё же решение из (5) приглядитесь, скобки то раскройте и сравните с (4).
17. spacecraft 01.07.23 13:51 Сейчас в теме
(16) в 5 пример явного NOT XOR. То что оно может быть приведено к чему-то еще, не означает, что это другое тоже явное NOT XOR.
19. kat-22-06 04.07.23 15:30 Сейчас в теме
(5) Добрый день)
Я думала Возврат НЕ (а=б)

Мозг кипит, хотя понимаю, что они лёгкие.
21. Said-We 05.07.23 00:13 Сейчас в теме
(19)
Я думала Возврат НЕ (а=б)
Мозг кипит, хотя понимаю, что они лёгкие.
Не надо тут думать много. Как эта операция будет называть тем более.
По сути у тебя два условия либо (VIP И товар высшей категории) ИЛИ (НЕ VIP И товар НЕ высшей категории), тогда результат ИСТИНА, иначе ЛОЖЬ.
Прямо так и пиши. Возврат ?(<наше условие выше>, ИСТИНА, ЛОЖЬ)
kat-22-06; +1 Ответить
30. gybson 05.07.23 13:03 Сейчас в теме
(21) а не проще сразу Возврат <Наше условие> ?
31. Said-We 05.07.23 15:17 Сейчас в теме
(30) Проще. Но так понятнее.
20. Said-We 04.07.23 23:46 Сейчас в теме
(5)
Следовательно можно так:
Функция РазрешенаПродажа(ВидКлиента, СортТовара)
    Возврат НЕ ((ВидКлиента = "VIP") <> (СортТовара = "Высший"));
КонецФункции
А можно тогда и так (не проверял правильно или нет):
(ВидКлиента = "VIP") = (СортТовара = "Высший")

Базовые логические операции: И, НЕ, а можно ИЛИ, НЕ. Используют обычно избыточный базис И, ИЛИ, НЕ, так как человеческий мозг легче воспринимает избыточный базис, чем выражение ИЛИ через И НЕ, чем выражение И через ИЛИ НЕ.
XOR тоже используют, например для шифрования. NOT XOR - это эквивалентность.
Через базис выражаются все 16-ть логических операций двух операндов. При этом константа истина и константа ложь не зависят по от значений операндов - по сути остаются 14.

В условии задания 1 написано через одно место.
"То есть результат будет истинным только, если один из операндов соответствует ИСТИНЕ."
XOR проще объяснить по другому принципу. Если значения разные, то результат ИСТИНА, если одинаковые, то ЛОЖЬ.
А если уж объяснять как в условии, то слова чуть переставить.
"То есть результат будет истинным, если только один из операндов равен ИСТИНЕ."
kat-22-06; +1 Ответить
3. dehro 5 01.07.23 11:44 Сейчас в теме
Исключающее ИЛИ

Результат = А <> B


или

Результат = (А и НЕ B) или (НЕ A и B)
kat-22-06; +1 Ответить
18. user1826630 01.07.23 14:36 Сейчас в теме
Мужики, погода на улице хорошая, да и выходной...
22. Said-We 05.07.23 00:43 Сейчас в теме
1. Не запуская программу, проанализируйте, к чему приведет выполнение данного
программного кода:
Счетчик = 0;
М = Новый Массив;
Пока Счетчик < 1000 Цикл
    М.Добавить(Счетчик = Счетчик +1);
КонецЦикла;
Далее с помощью отладчика убедитесь в правильности своей версии.
Мне такой код запускать в отладчике лень.... :-) Тем более, что нормальные люди сначала выполняют арифметическую операцию прирощения итератора, а только потом его куда-то девают. В массив засовывают например. А такая операция над числовой переменной как "Счетчик = Счетчик" вернет логическое ИСТИНА.

"Операция «-» для строк не определена. Тем не менее, результат выражения «55» - «44» будет
равен 11...."
Нормальные люди пишут принудительное преобразование типов. В 1С 77 результат операции сложения 2+"38Попугаев" давало результат 40. В 1С8 даст ошибку. В 1С8.8 вообще не известно что будет и будет ли. Может так же как в 1С77 :-)

"Необходимо написать программный код, который меняет значения переменных. Например,
если «Начислено» равно 1000, «Выплачено» = 2000, то необходимо, чтобы «Начислено» стало
равным 2000, а «Выплачено» = 1000. Предложите два варианте с использованием промежуточной переменной и без ее использования."
На сегодня это Информатика школьный курс до 10-го класса. Не помню в учебнике какого класса у детей видел, но до 10-го точно. Примерно там же даётся алгоритм получения ряда натуральных чисел "решето эратосфена".

a = 1000, b = 2000

С использованием:
c = a;
a = b;
b = c;

Без использования:
a = a + b; // а = 3000
b = a - b; // b = 3000-2000 = 1000
a = a - b; // a = 3000-1000 = 2000
kat-22-06; +1 Ответить
24. Said-We 05.07.23 01:35 Сейчас в теме
(22)
Примерно там же даётся алгоритм получения ряда натуральных чисел "решето эратосфена".

Конечно же ПРОСТЫХ чисел.
23. Said-We 05.07.23 01:29 Сейчас в теме
"Создайте внешнюю обработку «Вычисление рабочих дней»." - тут по мне проще запросом.
Параждающий запрос на примерно 3660.
От даты 1 января следующего года считаем даты для каждой строки этого запроса. Вычисляем дополнительно поле год. Убираем лишние дни.
Добавляем поле 1 или 0. Если день недели суббота или воскресение то 0 ИЛИ день 1 и месяц 1 ИЛИ день 23 и месяц 2 ИЛИ день 8 и месяц 3, тогда 0 иначе 1.
Суммируем это поле и сворачиваем по году. Собственно это и есть результат. Далее его уже помещаем в структуру и выводим.
kat-22-06; +1 Ответить
25. Oldsad 05.07.23 02:16 Сейчас в теме
Такое впечатление, что взяли курс от си/паскаля и заменили язык программирования на 1С
Задачи вообще никак не используют особенности 1С, не показывают в чем преимущество 1С, зачем вообще программировать на 1С.
Еще бы предложили побитовый сдвиг сделать средствами 1С, ведь "к сожалению она это не умеет"
26. booksfill 05.07.23 09:25 Сейчас в теме
(25)
ПобитовоеИ(), ПобитовоеИли(), ПобитовоеНе(), ПобитовоеИНе() и ПобитовоеИсключительноеИли()ПобитовыйСдвигВлево() и ПобитовыйСдвигВправо().
С версии 8.3.11
27. Oldsad 05.07.23 09:43 Сейчас в теме
(26) Другой бы на моем месте придался бы к версии платформы и режимам совместимости, но я не такой :)

Каюсь, неудачный пример с побитовым сдвигом, но сути не меняет: для всех этих задач на большинстве других ЯП решение будет компактнее и намного быстрее
28. booksfill 05.07.23 10:28 Сейчас в теме
(27)
для всех этих задач почти на большинстве других ЯП решение будет компактнее и намного быстрее


Придирка, но НЕ К ВАМ, а к преподаванию.

Просто как пример:
Есть поле HTML документа и возможность исполнять JavaScript - быстро, модно, молодежно.
Не требует глубокого знания JavaScript.
Вообще, можно дать шаблон кода, чтобы не было упреков в чрезмерной сложности и необходимости изучения "чужого языка" - вызвать-то почти готовый метод головы хватит?.

Позволяет продемонстрировать умение работы с возможностями 1С, и даст стимул делать, что-то хотя бы отдаленно полезное, а не невесть что непонятно зачем.
Тут и знакомство с полем HTML и поверхностное понятие про webkit, document и про возможность решения задач на другом ЯП, не прибегая к микросервисам и NativeAPI. Ну и битовые операции в нормальном виде, а не через методы.

Но это же напрячься от преподавателя и ученика требует, а так, да, делаем (похоже просто крадем из другого языка) кучу бесполезных примеров, на выходе получаем бесполезного junior, который вам лихо переставит местами переменные, без использования промежуточной переменной и, как бонус, почистит регистр забыв установить отбор.

На всякий случай, про то, что "он у нас же еще маленький" - еще маленький решает задачки про "выведите в цикле от 1 до 100", а для остальных надо дать что-то такое, чтобы вместо "мозг кипит" и "все понимаю, но сказать не могу" в голове была РЕАЛЬНАЯ ЦЕЛЬ, тогда и вопросы другие будут.
kat-22-06; +1 Ответить
29. user1880116 05.07.23 11:41 Сейчас в теме
(28)
Не требует глубокого знания JavaScript
Где-то вдалеке заплакал Гениальный Серёженька.

в голове была РЕАЛЬНАЯ ЦЕЛЬ
И будет это "зарплата атдвухсотысяч, я же магу ригистр зописать"
32. пользователь 05.07.23 15:25
Сообщение было скрыто модератором.
...
33. user1863362 05.07.23 22:01 Сейчас в теме
(32)
Правильно писать - ригистир!!!
Точно. Это уже будет "атдвухсотпититисяти". Вот мелочь, а как влияет!
35. kat-22-06 06.07.23 19:31 Сейчас в теме
(33) это надо 2-3 спеца платформа/ERP, например.
Опыт от 3-6 лет.
И то, надо в Москву ехать.
36. kat-22-06 06.07.23 19:45 Сейчас в теме
(29) сейчас моя цель - пройти стажировку и не убиться головой о стену
34. kat-22-06 06.07.23 19:25 Сейчас в теме
(28) Не знаю, откуда они их взяли.
Проще было создать внешнюю печатную форму под документ - Расходная накладная.
Там хоть знаешь куда смотреть, что надо.
А это - без контекста - вообще зачем?
Может, если бы это было завязано на чем-то реальном, то я бы не так мучилась.
37. booksfill 07.07.23 09:18 Сейчас в теме
(34)Думаю, что да. Было бы сложней, но интересней.
Типичная проблема плохого преподавателя, когда надо не задачу решить, а понять, что он считает решением.
Это проблема еще с советских школ: ежели следовать "прынцыпам" из методички и написать, что Печорин - лишний человек, а Базаров, напротив, - новый, получишь 5, а если попробуешь свое мнение изложить, то ..., словом лучше не надо.
kat-22-06; +1 Ответить
38. kat-22-06 07.07.23 11:17 Сейчас в теме
(37) Это базовый курс 2011 года Профессиональное программирование в 1С Предприятии 8.2 Гилева Е
Я задания 2 блока посмотрела. Хоть что-то ближе к жизни.
Но курс 2011 в 2023 году?! Кажется я не туда на удалённую стажировку устроилась.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот