Добрый день)
Может кто подсказать, с чего начать решение?
Учу 1С с 0, пока сложно понять.
Может кто подсказать, с чего начать решение?
Учу 1С с 0, пока сложно понять.
Прикрепленные файлы:
1CdevBase-HomeWork01.pdf
1CdevBase-HomeWork02.pdf
1CdevBase-HomeWork03.pdf
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) это не XOR. Это AND.
По условиям задачи, что-то в этом роде:
PS. в задаче пример не XOR. Там NOT XOR :)
Следовательно можно так:
По условиям задачи, что-то в этом роде:
Функция РазрешенаПродажа(ВидКлиента, СортТовара)
Возврат ((ВидКлиента = "VIP") И (СортТовара = "Высший")) ИЛИ НЕ ((ВидКлиента = "VIP") ИЛИ (СортТовара = "Высший"));
КонецФункции
PS. в задаче пример не XOR. Там NOT XOR :)
Следовательно можно так:
Функция РазрешенаПродажа(ВидКлиента, СортТовара)
Возврат НЕ ((ВидКлиента = "VIP") <> (СортТовара = "Высший"));
КонецФункции
(8) это тестовое задание какого-то учебного курса. Закрепление материала. В данном случае закрепление материала по булевой алгебре и конкретно по XOR. Можно конечно пробовать решить "интригалом", только не в этом цель.
Не говоря уже о том, что решения только половины задачи, это вообще не решение.
Не говоря уже о том, что решения только половины задачи, это вообще не решение.
(10)
о какой первой части речь?
Вот текст задачи:
Она решена?
Код в (4) это как раз только первая часть.
Первую часть я и не брался решать, там всё очевидно.
о какой первой части речь?
Вот текст задачи:
Необходимо разработать функцию: РазрешенаПродажа(ВидКлиента, СортТовара). При
этом VIP-клиентам (первый параметр функции строка «VIP») необходимо продавать только
товары высшего сорта (второй параметр функции «Высший»). Для такой пары функция должна
вернуть истину. Другим клиентам можно продавать товары не высшего сорта (любой другой), в
этом случае функция тоже возвращает истину. Во всех остальных случаях нужно вернуть значение
ЛОЖЬ.
этом VIP-клиентам (первый параметр функции строка «VIP») необходимо продавать только
товары высшего сорта (второй параметр функции «Высший»). Для такой пары функция должна
вернуть истину. Другим клиентам можно продавать товары не высшего сорта (любой другой), в
этом случае функция тоже возвращает истину. Во всех остальных случаях нужно вернуть значение
ЛОЖЬ.
Она решена?
Код в (4) это как раз только первая часть.
(19)
По сути у тебя два условия либо (VIP И товар высшей категории) ИЛИ (НЕ VIP И товар НЕ высшей категории), тогда результат ИСТИНА, иначе ЛОЖЬ.
Прямо так и пиши. Возврат ?(<наше условие выше>, ИСТИНА, ЛОЖЬ)
Я думала Возврат НЕ (а=б)
Мозг кипит, хотя понимаю, что они лёгкие.
Не надо тут думать много. Как эта операция будет называть тем более.
Мозг кипит, хотя понимаю, что они лёгкие.
По сути у тебя два условия либо (VIP И товар высшей категории) ИЛИ (НЕ VIP И товар НЕ высшей категории), тогда результат ИСТИНА, иначе ЛОЖЬ.
Прямо так и пиши. Возврат ?(<наше условие выше>, ИСТИНА, ЛОЖЬ)
(5)
Базовые логические операции: И, НЕ, а можно ИЛИ, НЕ. Используют обычно избыточный базис И, ИЛИ, НЕ, так как человеческий мозг легче воспринимает избыточный базис, чем выражение ИЛИ через И НЕ, чем выражение И через ИЛИ НЕ.
XOR тоже используют, например для шифрования. NOT XOR - это эквивалентность.
Через базис выражаются все 16-ть логических операций двух операндов. При этом константа истина и константа ложь не зависят по от значений операндов - по сути остаются 14.
В условии задания 1 написано через одно место.
"То есть результат будет истинным только, если один из операндов соответствует ИСТИНЕ."
XOR проще объяснить по другому принципу. Если значения разные, то результат ИСТИНА, если одинаковые, то ЛОЖЬ.
А если уж объяснять как в условии, то слова чуть переставить.
"То есть результат будет истинным, если только один из операндов равен ИСТИНЕ."
Следовательно можно так:
А можно тогда и так (не проверял правильно или нет): Функция РазрешенаПродажа(ВидКлиента, СортТовара)
Возврат НЕ ((ВидКлиента = "VIP") <> (СортТовара = "Высший"));
КонецФункции
(ВидКлиента = "VIP") = (СортТовара = "Высший")
Базовые логические операции: И, НЕ, а можно ИЛИ, НЕ. Используют обычно избыточный базис И, ИЛИ, НЕ, так как человеческий мозг легче воспринимает избыточный базис, чем выражение ИЛИ через И НЕ, чем выражение И через ИЛИ НЕ.
XOR тоже используют, например для шифрования. NOT XOR - это эквивалентность.
Через базис выражаются все 16-ть логических операций двух операндов. При этом константа истина и константа ложь не зависят по от значений операндов - по сути остаются 14.
В условии задания 1 написано через одно место.
"То есть результат будет истинным только, если один из операндов соответствует ИСТИНЕ."
XOR проще объяснить по другому принципу. Если значения разные, то результат ИСТИНА, если одинаковые, то ЛОЖЬ.
А если уж объяснять как в условии, то слова чуть переставить.
"То есть результат будет истинным, если только один из операндов равен ИСТИНЕ."
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
программного кода:
Счетчик = 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
"Создайте внешнюю обработку «Вычисление рабочих дней»." - тут по мне проще запросом.
Параждающий запрос на примерно 3660.
От даты 1 января следующего года считаем даты для каждой строки этого запроса. Вычисляем дополнительно поле год. Убираем лишние дни.
Добавляем поле 1 или 0. Если день недели суббота или воскресение то 0 ИЛИ день 1 и месяц 1 ИЛИ день 23 и месяц 2 ИЛИ день 8 и месяц 3, тогда 0 иначе 1.
Суммируем это поле и сворачиваем по году. Собственно это и есть результат. Далее его уже помещаем в структуру и выводим.
Параждающий запрос на примерно 3660.
От даты 1 января следующего года считаем даты для каждой строки этого запроса. Вычисляем дополнительно поле год. Убираем лишние дни.
Добавляем поле 1 или 0. Если день недели суббота или воскресение то 0 ИЛИ день 1 и месяц 1 ИЛИ день 23 и месяц 2 ИЛИ день 8 и месяц 3, тогда 0 иначе 1.
Суммируем это поле и сворачиваем по году. Собственно это и есть результат. Далее его уже помещаем в структуру и выводим.
Такое впечатление, что взяли курс от си/паскаля и заменили язык программирования на 1С
Задачи вообще никак не используют особенности 1С, не показывают в чем преимущество 1С, зачем вообще программировать на 1С.
Еще бы предложили побитовый сдвиг сделать средствами 1С, ведь "к сожалению она это не умеет"
Задачи вообще никак не используют особенности 1С, не показывают в чем преимущество 1С, зачем вообще программировать на 1С.
Еще бы предложили побитовый сдвиг сделать средствами 1С, ведь "к сожалению она это не умеет"
(27)
Придирка, но НЕ К ВАМ, а к преподаванию.
Просто как пример:
Есть поле HTML документа и возможность исполнять JavaScript - быстро, модно, молодежно.
Не требует глубокого знания JavaScript.
Вообще, можно дать шаблон кода, чтобы не было упреков в чрезмерной сложности и необходимости изучения "чужого языка" - вызвать-то почти готовый метод головы хватит?.
Позволяет продемонстрировать умение работы с возможностями 1С, и даст стимул делать, что-то хотя бы отдаленно полезное, а не невесть что непонятно зачем.
Тут и знакомство с полем HTML и поверхностное понятие про webkit, document и про возможность решения задач на другом ЯП, не прибегая к микросервисам и NativeAPI. Ну и битовые операции в нормальном виде, а не через методы.
Но это же напрячься от преподавателя и ученика требует, а так, да, делаем (похоже просто крадем из другого языка) кучу бесполезных примеров, на выходе получаем бесполезного junior, который вам лихо переставит местами переменные, без использования промежуточной переменной и, как бонус, почистит регистр забыв установить отбор.
На всякий случай, про то, что "он у нас же еще маленький" - еще маленький решает задачки про "выведите в цикле от 1 до 100", а для остальных надо дать что-то такое, чтобы вместо "мозг кипит" и "все понимаю, но сказать не могу" в голове была РЕАЛЬНАЯ ЦЕЛЬ, тогда и вопросы другие будут.
для всех этих задач почти на большинстве других ЯП решение будет компактнее и намного быстрее
Придирка, но НЕ К ВАМ, а к преподаванию.
Просто как пример:
Есть поле HTML документа и возможность исполнять JavaScript - быстро, модно, молодежно.
Не требует глубокого знания JavaScript.
Вообще, можно дать шаблон кода, чтобы не было упреков в чрезмерной сложности и необходимости изучения "чужого языка" - вызвать-то почти готовый метод головы хватит?.
Позволяет продемонстрировать умение работы с возможностями 1С, и даст стимул делать, что-то хотя бы отдаленно полезное, а не невесть что непонятно зачем.
Тут и знакомство с полем HTML и поверхностное понятие про webkit, document и про возможность решения задач на другом ЯП, не прибегая к микросервисам и NativeAPI. Ну и битовые операции в нормальном виде, а не через методы.
Но это же напрячься от преподавателя и ученика требует, а так, да, делаем (похоже просто крадем из другого языка) кучу бесполезных примеров, на выходе получаем бесполезного junior, который вам лихо переставит местами переменные, без использования промежуточной переменной и, как бонус, почистит регистр забыв установить отбор.
На всякий случай, про то, что "он у нас же еще маленький" - еще маленький решает задачки про "выведите в цикле от 1 до 100", а для остальных надо дать что-то такое, чтобы вместо "мозг кипит" и "все понимаю, но сказать не могу" в голове была РЕАЛЬНАЯ ЦЕЛЬ, тогда и вопросы другие будут.
(28) Не знаю, откуда они их взяли.
Проще было создать внешнюю печатную форму под документ - Расходная накладная.
Там хоть знаешь куда смотреть, что надо.
А это - без контекста - вообще зачем?
Может, если бы это было завязано на чем-то реальном, то я бы не так мучилась.
Проще было создать внешнюю печатную форму под документ - Расходная накладная.
Там хоть знаешь куда смотреть, что надо.
А это - без контекста - вообще зачем?
Может, если бы это было завязано на чем-то реальном, то я бы не так мучилась.
(34)Думаю, что да. Было бы сложней, но интересней.
Типичная проблема плохого преподавателя, когда надо не задачу решить, а понять, что он считает решением.
Это проблема еще с советских школ: ежели следовать "прынцыпам" из методички и написать, что Печорин - лишний человек, а Базаров, напротив, - новый, получишь 5, а если попробуешь свое мнение изложить, то ..., словом лучше не надо.
Типичная проблема плохого преподавателя, когда надо не задачу решить, а понять, что он считает решением.
Это проблема еще с советских школ: ежели следовать "прынцыпам" из методички и написать, что Печорин - лишний человек, а Базаров, напротив, - новый, получишь 5, а если попробуешь свое мнение изложить, то ..., словом лучше не надо.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот