Имя: Пароль:
1C
 
Модуль числа
0 SemT
 
11.05.07
16:47
При расчете разницы двух велечин, может получиться отрицательное число.
Как пролучить модуль результата, то есть число без знака "минус".
1 Фокусник
 
11.05.07
16:48
?(число<0,-число,число) (:
2 almar
 
11.05.07
16:48
?(Ч<0,-Ч,Ч)
3 almar
 
11.05.07
16:49
(1) ну ты фокусник :)
4 mun2
 
11.05.07
16:49
Макс(-ч,ч)
5 SemT
 
11.05.07
16:51
Большое спасибо
6 Ненавижу 1С
 
гуру
11.05.07
16:51
Число(СтрЗаменить(Строка(Ч),"-",""))
7 AcaGost
 
11.05.07
17:00
(6) Извращенец :-)
8 1Сергей
 
11.05.07
17:16
(6)+
?(Лев(""+чис,1)="-",Число(Сред(""+Чис,2)),Число(Сред(""+Чис,1))
9 Программист 484
 
11.05.07
17:18
СЗ=СоздатьОбъект("списоксзначений")
СЗ.ДобавитьЗначение(ч)
СЗ.ДобавитьЗначение(-ч)
СЗ.Выбрать(Выберите пожалуйста положительное число")
10 КонецЦикла
 
11.05.07
17:25
Функция Модуль(ТекЧисло)
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("Значение", "Число");
   ТЗ.НоваяСтрока();
   ТЗ.Значение = ТекЧисло;
   ТЗ.НоваяСтрока();
   ТЗ.Значение = -ТекЧисло;
   ТЗ.Сортировать("Значение");
   
   Возврат ТЗ.ПолучитьЗначение(2, "Значение");
КонецФункции
11 1Сельчанин
 
11.05.07
17:32
?(Ч<0,Ч-2*Ч,Ч)
12 McNamara
 
11.05.07
17:35
Addon = СоздатьОбъект("Addon1C.Commands");
модуль_чис=Addon.Sqrt_(чис*чис);
13 1Сергей
 
11.05.07
17:52
Логарифмы так никто и не задействовал?
14 Программист 484
 
11.05.07
17:58
(13)
Попытка
х= е^(ч*10000)
Исключение
//Бесконечость значит ч положительное
Возврат ч;
КонецПопытки
Возврат -ч;//ч отрицательное
15 Волшебник
 
модератор
11.05.07
17:58
есть еще решение через WSH
16 Андрюха
 
11.05.07
18:05
Имхо, самое изящное решение в (4).
17 mun2
 
11.05.07
18:08
Можно и с логарифмами

Попытка
ф=лог10(ч);
возврат ч;
исключение
возврат -ч;
Конецпопытки
18 КонецЦикла
 
11.05.07
18:20
(16) Это понятно
Теперь задача - найти самое нелепое :)
19 sapphire
 
11.05.07
18:23
//Просто стебусь, но такое тоже прокатит
Число(СтрЗаменить(""+ч,"-",""));
20 McNamara
 
11.05.07
18:25
(18)самое нелепое (17), потому что не пашет. лог10(-15)=0. Исключения не возникает
21 FreeFin
 
11.05.07
18:27
ч=(ч*ч)/2;
22 McNamara
 
11.05.07
18:28
(21) ты гониииишь)))) возводишь в квадрат и делишь пополам? см .12
23 FreeFin
 
11.05.07
18:29
(22) гоню))))
24 1 апреля
 
11.05.07
18:42
+(23) пятница
25 Андрюха
 
11.05.07
18:43
Похоже, в (21) - самое нелепое!
26 France
 
11.05.07
18:45
NS-а на вас нет..
он бы вам сказал, "а кто отменил унарную операцию" и показал бы: "-Ч"
27 Андрюха
 
11.05.07
18:47
(26) Если число отрицательное, то прокатит, а если положительное?
28 France
 
11.05.07
18:50
(27) а вам жалко))..
29 mun2
 
11.05.07
18:55
бум извращаться

Функция модуль(ч)
   ТЗ=создатьОбъект("ТаблицаЗначений");
   ТЗ.новаяКолонка();
   ТЗ.НоваяСтрока();
   ТЗ.УстановитьЗначение(1,1,-ч);
   ТЗ.НоваяСтрока();
   ТЗ.УстановитьЗначение(2,1,ч);  
   ТЗ.Сортировать("1-");
   возврат ТЗ.ПолучитьЗначение(1,1);
КонецФункции
30 sapphire
 
11.05.07
18:57
(28) Что вы, нам совсем никого не жалко :)
31 Gosha Sevastopolski
 
11.05.07
19:37
Да, ветка порадовала под конец рабочей недели! Вариант с ТЗ - рулез!
32 kosts
 
16.05.08
09:02
ч = 2 * ч * (ч > 0) - ч
33 zak555
 
16.05.08
11:31
-мин(ч;-ч)
34 Anton9843
 
16.05.08
11:38
ч * (1 - Найти(ч, "-") * 2)
35 Sh1ko
 
16.05.08
11:43
Варианта с циклом не было:

Для н = 1 по -Ч*2 Цикл  
  Ч = Ч +1;
КонецЦикла
36 Ёпрст
 
гуру
16.05.08
11:45
(35) Этот нерабочий
37 Sh1ko
 
16.05.08
11:46
(36) да ну
38 Маркетолог
 
16.05.08
11:47
(36) Он только для целых чисел, а так вроде рабочий
39 Sh1ko
 
16.05.08
11:47
угу :)
40 Ненавижу 1С
 
гуру
16.05.08
11:48
Функция Модуль(Ч)
 Если Ч>0 Тогда
   Возврат Модуль(Ч-1)+1;
 ИначеЕсли Ч<0 Тогда
   Возврат Модуль(Ч+1)-1;
 Иначе
   Возврат 0;
 КонецЕсли;
КонецФункции;
41 Ненавижу 1С
 
гуру
16.05.08
11:49
(+40) только для целых
42 FreeFin
 
16.05.08
11:50
по мотивам Математических вычислений (которые у меня разок вызвали перезагрузку неслабого сервера)

ЧислДляМодуля=-100;
Apгумeнт=ЧислДляМодуля*ЧислДляМодуля;
    Если Apгумeнт<0 Тогда
         Сообщить("...","!");
    ИначеЕсли Apгумeнт=0 Тогда
         Возврат 0;
    КонецЕсли;
    ПpeдыдущaяИтepaция = Apгумeнт/2;
    ДocтaтoчнaяToчнocть=0.0001;
    КoличecтвoЗнaкoв=4;
    КoличecтвoИтepaций=330;
    Для Cч=1 По КoличecтвoИтepaций Цикл
         Значeниe = 0.5*(ПpeдыдущaяИтepaция+
         Apгумeнт/ПpeдыдущaяИтepaция);
         Если Значeниe<ПpeдыдущaяИтepaция Тогда
              Paзницa = ПpeдыдущaяИтepaция-Значeниe;
         Иначе
              Paзницa = Значeниe-ПpeдыдущaяИтepaция;
         КонецЕсли;
         Если Paзницa<ДocтaтoчнaяToчнocть Тогда
              Прервать;
         КонецЕсли;
         ПpeдыдущaяИтepaция=Значeниe;
    КонецЦикла;
    Значeниe = Окр(Значeниe,Макс(КoличecтвoЗнaкoв-Лог10(Значeниe),0));
    Сообщить(""+Значeниe);
43 Ёпрст
 
гуру
16.05.08
11:54
Ч = -2*Ч*(СтрЧислоВхождений(Ч,"-"))+Ч;
44 fly7
 
16.05.08
12:06
[q]При расчете разницы двух велечин, может получиться отрицательное число.
Как пролучить модуль результата, то есть число без знака "минус".[/q]

все забыли что нужно еще и "разность" запрограммировать :)
45 MaxS
 
16.05.08
12:06
Запрос = Новый Запрос;
 Запрос.Текст = "
 |ВЫБРАТЬ
 |    &МоеЧисло КАК МоеЧисло
 |
 |ОБЪЕДИНИТЬ ВСЕ
 |
 |ВЫБРАТЬ
 |    -&МоеЧисло
 |
 |УПОРЯДОЧИТЬ ПО
 |    МоеЧисло УБЫВ";
 
 Запрос.УстановитьПараметр("МоеЧисло", МоеЧисло );
 
 Результат = Запрос.Выполнить();
 Выборка = Результат.Выбрать();
 
 Если Выборка.Следующий() Тогда
     Сообщить(Выборка.МоеЧисло);
 Иначе
   Сообщить("не удалось вычислить модуль");  
 КонецЕсли;
46 Fragster
 
гуру
16.05.08
12:07
Ч = Число(Прав(Строка(Ч),СтрДлина(Строка(Ч))-СтрЧислоВхождений(Строка(Ч),"-")));
47 Anton9843
 
16.05.08
12:14
-(Число(ч) + 2*число("-" + ч))
48 Fragster
 
гуру
16.05.08
12:20
(47) не будет работать
49 Ёпрст
 
гуру
16.05.08
12:21
(48) ошибаешься
50 Fragster
 
гуру
16.05.08
12:22
-(-2+2*(--2)) = -(4-2) = -2
51 nop
 
16.05.08
12:23
жгучаю тема
52 nop
 
16.05.08
12:23
а как получить факториал числа запросом?
53 Ёпрст
 
гуру
16.05.08
12:24
(50) Ты в Табло лучше напиши .. всё там работает
54 Anton9843
 
16.05.08
12:24
(50) число("--10") = 0
проверь 1Ской :)
55 Fragster
 
гуру
16.05.08
12:25
а вообще в 47 предполагается, что ч - это строка, хотя это число
56 Anton9843
 
16.05.08
12:30
(55) ничего подобного
ч вполене может быть и числом
57 Стокс
 
16.05.08
12:31
Формат(Ч,"ЧП")
58 Fragster
 
гуру
16.05.08
12:31
(54) тогда зачет :)
59 Ёпрст
 
гуру
16.05.08
12:32
(57) Супер!
60 Anton9843
 
16.05.08
12:54
А ещё вот так (Ч - это число)
Число(Прав(Ч, СтрДлина(-Ч)))
61 DenLaDen
 
16.05.08
12:59
ничего себе, спустя год подняли ветку!
62 Chum
 
16.05.08
13:22
(9) шедеврально!
63 DenLaDen
 
16.05.08
13:47
(62) не, в (21) прикольней
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.