1. 1C / Говнокод #10938

    −121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    Функция ЧерезНоль(Значность) Экспорт
    	Оборот=10;
    	Если Значность=2 Тогда
    		Оборот=100;
    	ИначеЕсли Значность=3 Тогда
    		Оборот=1000
    	ИначеЕсли Значность=4 Тогда
    		Оборот=10000
    	ИначеЕсли Значность=5 Тогда
    		Оборот=100000
    	ИначеЕсли Значность=6 Тогда
    		Оборот=1000000
    	ИначеЕсли Значность=7 Тогда
    		Оборот=10000000
    	ИначеЕсли Значность=8 Тогда
    		Оборот=100000000
    	ИначеЕсли Значность=9 Тогда
    		Оборот=1000000000
    	ИначеЕсли Значность=10 Тогда
    		Оборот=10000000000
    	ИначеЕсли Значность=11 Тогда
    		Оборот=100000000000
    	ИначеЕсли Значность=12 Тогда
    		Оборот=1000000000000
    	ИначеЕсли Значность=13 Тогда
    		Оборот=10000000000000
    	ИначеЕсли Значность=14 Тогда
    		Оборот=100000000000000
    	ИначеЕсли Значность=15 Тогда
    		Оборот=1000000000000000
    	КонецЕсли;	
     Возврат Оборот		
    КонецФункции

    суровое возведение в степень)

    Запостил: dmurdoc, 13 Июня 2012

    Комментарии (37) RSS

    • Значность... первый раз слышу такое слово. ЧислоЗнаков?
      Ответить
      • не знаю, что имели ввиду. Скопировал "один-в-один")
        Ответить
    • Возведение 10 в степень, очень полезная функция )
      Ответить
      • Да вы что! Это же ЧерезНоль от Значности! Какие еще степени *trollface.png*
        Ответить
      • Однозначно полезная. Жаль ограничена степенями 1 - 15
        :(
        Ответить
        • Я думаю в будущих версиях этот недостаток будет устранен
          Ответить
    • "ЧерезНоль" сделано через жопу.
      Хуже было бы только если бы не ИначеЕсли а тупые независимые Если с лишними пятнадцатью проверками в "лучшем случае"...
      Ответить
    • Возврат Число(Формат(1, "ЧС=-" + Значность + "; ЧГ=0"));

      гы;)
      Ответить
      • Погуглил немного по степеням в 1ске. Найденные решения одно хуже другого. Неужели в 1с и правда нет возведения в степень?! (Ну или не было до 8.0)
        Ответить
        • Думаю их не стали вводить, что бы продукт был легче. Настолько лёгок, что бы даже плавал. И запах, но это уже другой разговор...
          Ответить
        • Да даже если б и было, лучший способ реализации степеней 10 - через switch. Такой в 1С есть?
          Ответить
          • Судя по либам, вычисляющим синусы и степени через ряды - там никакого не было :)
            Ответить
          • лучший способ реализации степеней 10 - через статический массив до максимально поддерживаемого платформой unsigned integer
            Ответить
            • Да. И займет меньше свича, и работать быстрее будет.
              Ответить
            • Да, лол, я со свичом говнанул.
              Ответить
        • Pow(Число, Степень) еще никто не отменял =)
          и можно даже не выносить в отдельную функцию)
          Ответить
          • А оно есть в 7.0? :) (Я не знаток 1ц, просто спрашиваю)
            Ответить
        • С математикой в 1С вообще туго, что 7.7, что 8.х. Приходиться иногда яваскриптовские com-объекты подключать.
          Ответить
          • Только ряды Тейлора, только хардкор!
            Ответить
          • [sarcasm]Можно подумать, в тех задачах, для которых система придумана, математика нужна.[/sarcasm] Вот более удобные средства работы со строками явно не помешали бы.
            Ответить
            • а как же задачи прогнозирования нестационарных временных рядов на нейросетях на 1с с целью повышения эффективности работы предприятия?
              Ответить
              • Помилуйте, оно с учётом-то справляется еле-еле.
                Ответить
    • набираем обороты
      Ответить
    • Это типо аптимизацыя по времени :)))
      Цикл - это коротко, но долго :)
      Мы ж тут реалтайм системный драйвер разрабатываем и 1С для этого самое оно :)
      Ответить
      • Не побоюсь капитанского комментария, но это следствие _беднейшей_ системы из нативных функций. Если в PHP таких функций СЛИШКОМ много, то в этом языке слишком мало. Именно по этой причине в экосистеме изобилие велосипедов, писанных далеко не специалистами в предметной области. Всякие 1-ass-plus-plus, и прочие инструменты формочкоклепания - именно следствие этого вакуума. Я бегло почитал мануал по восьмой платформе, выглядит довольно годно для начала века, скажем.
        Второе, что роднит эту платформу с PHP - отсутствие вменяемых специалистов, да даже людей, банально знакомых с базовыми структурами данных, логикой и алгоритмами. Некоторые из них удивляются, например, теореме де Моргана. Не слышал человек никогда и всё тут.
        Ответить
        • Ну, я бы не сказал, что система встроенных объектов и вообще встроенный функционал совсем слабенький.
          Связь с внешним миром: файлы, почта, XML (как DOM и последовательная запись/чтение), XDTO, FastInfoset, HTML, Web-сервисы, Интернет-соединение (т. е. HTTP GET/POST методы), COM/OLE-объекты (в качестве клиента и сервера), ActiveX, работа с двоичными данными, сжатие ZIP, работа с XBase (DBF-файлы);
          Структуры данных: массивы, структуры, таблицы значений с произвольными индексами;
          Сериализация практически всех объектов;
          Диаграммы, графические схемы, географические схемы;
          Криптография;
          Даже такие фишки из матстатистики, как анализ данных (а именно: кластерный анализ, дерево решений, поиск ассоциаций и др.), которыми, правда, никто не пользуется - во всяком случае, практического применения я не встречал ни разу.
          Неужели это слабенький функционал для специализированной (считай, ERP) системы, ориентированной на учетную деятельность? Поверьте, в бухучете нигде синусы и тензорное исчисление не встречаются :)
          Мне лично кажется, фишки, связанные с окнами, процессами и прочая байда из 1С++ - нетипично для такой системы и неудивительно, что это реализуется как допфункционал через COM-объекты или внешние компоненты.
          Ответить
        • Возможно, вы знакомы были с древней версией типа 7.7.

          А со вторым абзацем согласен, толковых специалистов нет. Хотя я уже не уверен, что это связано именно с 1С.
          В пятницу в нашей группе компаний прошел конкурс профмастерства. Я и наш отдел работаем чисто на 1С, но организаторы решили, что языками будут по выбору C# или Java. Представьте себе парней из других отделов, которые всю жизнь кодят на C# и Java, и меня, который с C# знаком довольно слабенько. Но из 15 участников я почему-то заимел I место. Что я могу сказать об этих "специалистах" на этом фоне? Да ничего хорошего... Не говоря о понятии "связность графа", ребята даже не сообразили отсортировать в нужном месте...
          Ответить
        • > Второе, что роднит эту платформу с PHP - отсутствие вменяемых специалистов

          Их объединяет низкий порог вхождения.

          Чем ниже порог вхождения - тем больше быдлокодеров пытается работать с платформой... Хорошие специалисты есть и в PHP и в 1С и в Delphi и даже в VB, но они, к сожалению, теряются среди толп мартышек, которые считают себя "крутыми программистами".
          Ответить
        • По традиции, дабы не плодить псты, отвечаю всем сразу.

          > XDTO, FastInfoset, HTML, Web-сервисы, Интернет-соединение
          Восьмёрка, не?
          > COM/OLE-объекты
          Невелика радость.
          > Диаграммы, графические схемы, географические схемы;
          Точно восьмёрка. Только вот кто бы на неё ещё переходил.
          > Криптография;
          Сертифицированная ФАПСИ only™? Я просто не в курсе, как оно там.
          > считай, ERP
          Многие сумневаются, считая, что это ни разу не ерп. Так, что-то среднее между автоматизацией склада ларька и гаража. У меня не было опыта работы с восьмёркой, по нулям ваще, но я читал треды в разных форумах. Там эти самые добрые люди пишут, что если на предприятии более десяти-пятнадцати активных пользователей, то оно будет безбжно тупить, а если у кого-то работает, то только за счёт безумных затрат и чёрной магеи. Пруфов не будет, сам я не проверял. Но, почему-то упорно советую для ерп парусы-галактики (наверное, интеграторы-суки, маскируются под честных людей).
          > с древней версией типа 7.7
          Ja, ja. В трезвом уме и здравой памяти никто из моего ближайшего окружения на восьмёрку не перейдёт.
          /* ***************** */
          > Их объединяет низкий порог вхождения.
          Вечно забываю и путаю причину со следствием. C другой стороны, мне кажется, симбиоз "человек-платформа" идеален. Кодеры заслуживают эту платформу, а платформа - кодеров. Anyway, ничего для перелома ситуации не делают, эксперимент "каждая домохозяйка может программировать на бейсике" успешно провален, а переносимости кода меж версиями всё равно нет. Штат "специалистов" вполне можно выкинуть на помойку и начать с нуля, нечто красивое. Жаль, в этой реальности работает иначе.
          Ответить
          • >> а если у кого-то работает, то только за счёт безумных затрат и чёрной магеи
            Я чорный маг!!!! 60 пользователей в базе и без счёта клиентов с сайта через веб сервис.
            Ответить
            • > и без счёта клиентов с сайта через веб сервис.
              Ну это уже не чорный маг, а самый настоящий Чорный Властелин...

              Если не секрет - сколько из этих 60 пользователей активно работают с базой, а не заполняют десяток документов в день?
              Ответить
              • Все пользователи создали 3680 документов за 5 дней. Разблюдовку по пользователям лень делать.
                Ответить
          • > Точно восьмёрка. Только вот кто бы на неё ещё переходил.
            > Ja, ja. В трезвом уме и здравой памяти никто из моего ближайшего окружения на восьмёрку не перейдёт.

            Хуита в кубе. Поцык не в теме абсолютно и высказывает людям своё "мнение".
            Ответить
    • а что циклы умножения на основание отменили?
      для ускорения, можно кмнжоать по степеням 2-ки
      Ответить
      • бля, ещё один говнокодер с любовью к циклам.... если в башке масла нет - можно и рекурсией, чтобы наверняка и хуй разбить, и руки порезать.
        в один оператор же: Число(СтрЗаменить(Формат("1","С"+Значнос ть)," ","0"))
        Ответить
        • > Число(СтрЗаменить(Формат("1","С"+Значнос ть)," ","0"))
          В нормальных языках за такое решение к стенке бы поставили...

          Но в 1с, к сожалению, оно скорее всего будет работать быстрее цикла, а вменяемых альтернатив в духе Степень(10, Значность) все равно нет.
          Ответить

    Добавить комментарий