Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать отрицательное число положительным, попрошу не кидать в меня гинилыми пом... 
:(
    Опции темы
YURIC
  Дата 14.12.2004, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 5.8.2003

Репутация: нет
Всего: 1



Подскажите пожалуйста функция которая переводит отрицательное число в положительное, например есть число -954212 мне нужно сделать из него 954212

З.Ы. Не кидайте пож. в меня гнилыми помидорами smile
PM MAIL   Вверх
S.A.P.
Дата 14.12.2004, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



number:=abs(number);
PM MAIL   Вверх
YURIC
Дата 14.12.2004, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 5.8.2003

Репутация: нет
Всего: 1



Perchilla


Спасибо, тема закрыта
PM MAIL   Вверх
Satana
Дата 14.12.2004, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 564
Регистрация: 15.9.2004
Где: Ставрополь, СЗ ра йон

Репутация: 1
Всего: 5



или можно так:
number:=number*(-1);


--------------------
 Работай на себя 
www.abalentsev.com - Сайт портфолио.
www.pokushau.ru - Рецепты со всего мира.
PM MAIL WWW ICQ   Вверх
YURIC
Дата 14.12.2004, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 5.8.2003

Репутация: нет
Всего: 1



Satana

Тоже спасибо smile буду знать
PM MAIL   Вверх
Bes
Дата 14.12.2004, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



number:=-number;
number:=-1*number;
Сдерживаю себя от хорошего броска уже разложившейся большой такой помидориной. %:-)


PM MAIL   Вверх
sergejzr
Дата 14.12.2004, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360



(not -954212)+1


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Guest
Дата 14.12.2004, 18:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











chislo:=chislo*(-1); или
chislo:=0-chislo;
  Вверх
sergejzr
Дата 14.12.2004, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360



0-chislo

получше моего будет smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Vladimir13
Дата 14.12.2004, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



про 0-chislo написал я, Vladimir13, просто не посмотрел что не зарегестрировался.
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
Akina
Дата 14.12.2004, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



x=x*sign(x)


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
sergejzr
Дата 14.12.2004, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360



Цитата(Akina @ 14.12.2004, 17:23)
x=x*sign(x)

Ага, а может sqrt(sqr(x)) ?
Ну , не увлекайтесь smile
0-chislo лучший метод. Выполняется за такт smile Быстрее просто невозможно сделать.




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
S.A.P.
Дата 14.12.2004, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



Цитата(sergej @ 14.12.2004, 18:29)
0-chislo лучший метод
это только в том случае, если число гарантированно отрицательное smile

PM MAIL   Вверх
Vladimir13
Дата 14.12.2004, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



так на это дело можно условие поставить: if a<0 then a:=0-a;

хотя в условии стоит, что число гарантировано отрицательное smile
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
Zero
Дата 14.12.2004, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата(Perchilla @ 14.12.2004, 18:34)
это только в том случае, если число гарантированно отрицательное
Внатуре...
Лучший метол, это который дал Perchilla, ещё в самом начале, через модуль.
И дальше не было необходимости всё кидать, все остальные методы, хуже и бесполезные, т.к. автор уже скорее всего всё сделал что ему было надо, а больше врядли кому понадобится ответ на такой сложный вопрос.
PM MAIL ICQ   Вверх
S.A.P.
Дата 14.12.2004, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



Цитата(Vladimir13 @ 14.12.2004, 18:49)
хотя в условии стоит, что число гарантировано отрицательное smile

В рамках соревнований по скорости можно так
Код

XOR EAX, EAX
SUB EAX, nember
MOV number, EAX

smile

Это сообщение отредактировал(а) Perchilla - 14.12.2004, 18:56
PM MAIL   Вверх
Bes
Дата 14.12.2004, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



2Zero:
Нуу....
мне конечно все равно, но справедливости ради стоит сказать.
Что это ответ на вопрос "Как сделать из ЛЮБОГО числа положительное".
:-)

PM MAIL   Вверх
sergejzr
Дата 14.12.2004, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360



Цитата(Zero @ 14.12.2004, 17:50)
к. автор уже скорее всего всё сделал что ему было надо

Zero, Не говорите за автора, Вы этот вопрос не задавали. Не Вам решать, была ли необходимость "кидать все остальные методы" или нет! А какой хуже, можно поспорить.

И вообще, тут форум люди общаются по теме и выдвигают свои предложения. Не советую затыкать никому рот!
Как раз Ваш пост на фоне остальных рац. предложений выглядит бессмысленно.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Bes
Дата 14.12.2004, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



OffTopic
Эта тема чем-то напоминает совещание Гос.думы. :-)
PM MAIL   Вверх
Vladimir13
Дата 14.12.2004, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



Perchilla сказал же что "0-chislo

получше моего будет " smile
Это я для восстановления справедливости smile .
P.S. Zero, все еще злишься?
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
sergejzr
Дата 14.12.2004, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360



Bes, прекратите оффтоп!

Цитата(Vladimir13 @ 14.12.2004, 17:59)
Perchilla сказал же что "0-chislo

Vladimir13 Вы его со мной перепутали, у нас аватары похожие smile




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Zero
Дата 14.12.2004, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата(Vladimir13 @ 14.12.2004, 18:59)
P.S. Zero, все еще злишься?

Нет, я не накого не злюсь!!!

Цитата(sergej @ 14.12.2004, 18:57)
Zero, Не говорите за автора, Вы этот вопрос не задавали. Не Вам решать, была ли необходимость "кидать все остальные методы" или нет! А какой хуже, можно поспорить.

Я за автора не говорю, он сам за себя сказал.
Цитата(YURIC @ 14.12.2004, 18:11)
Perchilla
Спасибо, тема закрыта

Цитата(Vladimir13 @ 14.12.2004, 18:59)
Perchilla сказал же что "0-chislo

Это он имел ввиду, потому что у тебя используется операция вычитания, а она на много быстрее выполняется чем умножения. (с точки зрения скорости лучше... но потом предложил самый быстрый способ, это на ASM...)
Цитата(Bes @ 14.12.2004, 18:57)
не конечно все равно, но справедливости ради стоит сказать.
Что это ответ на вопрос "Как сделать из ЛЮБОГО числа положительное".

Такой именно вопрос и был...
PM MAIL ICQ   Вверх
<Spawn>
Дата 14.12.2004, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Цитата(Perchilla @ 14.12.2004, 10:56)
Цитата(Vladimir13 @ 14.12.2004, )
хотя в условии стоит, что число гарантировано отрицательное smile

В рамках соревнований по скорости можно так
Код

XOR EAX, EAX
SUB EAX, nember
MOV number, EAX

smile

Ну и тогда в догонку smile :

Код

 number := -100;
 asm
   not number
   inc number
 end;


Это сообщение отредактировал(а) <Spawn> - 14.12.2004, 19:20


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Vladimir13
Дата 14.12.2004, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



Приношу извинения Perchilla за клевету.
А в условии все равно стоит как из ОТРИЦАТНЛЬНОГО сделать ПОЛОЖИТЕЛЬНОЕ smile
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
cardinal
Дата 14.12.2004, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Цитата(Perchilla @ 14.12.2004, 17:34)
это только в том случае, если число гарантированно отрицательное

Другой вариант не рассматривается smile (см. вопрос в начале)


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Гость_Romtek
Дата 14.12.2004, 19:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код
asm
 mov ax, [Number]
 neg ax
end;

  Вверх
S.A.P.
Дата 14.12.2004, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



Еще проще, NEG может работать напрямую с памятью smile
Код

NEG number


Это сообщение отредактировал(а) Perchilla - 14.12.2004, 19:36
PM MAIL   Вверх
Bes
Дата 14.12.2004, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



Можно еще так сделать:
Number:=ABS(SQRT(SQR(ABS(Number))));
Тоже вариант:

2ZERO:
перечитай вопрос
"которая переводит отрицательное (а не любое) число в положительное".

А на счет офтопа к уважаемой Модературе: больше не буду, простите, что нарушил ход творческой мысли. Вам бы на Тер.Физику.
PM MAIL   Вверх
Vladimir13
Дата 14.12.2004, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



прям Формула 1 какая то!

Bes, я там же учусь ( на тер.физике), только что там такого?
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
sergejzr
Дата 14.12.2004, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360



Цитата(Vladimir13 @ 14.12.2004, 18:40)

прям Формула 1 какая то!
Bes, я там же учусь ( на тер.физике), только что там такого?


Плиз в приват smile
Не отходим от темы!


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Vladimir13
Дата 14.12.2004, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



пардон муа.
smile
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
SoWa
Дата 23.12.2004, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Лучший метод- на (-1) умножать...
ВСе вокруг да около, а помидорами... smile


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Akina
Дата 23.12.2004, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Код

RCL EAX
ROR EAX
ADC EAX,0
smile


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Domestic Cat
Дата 26.12.2004, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: нет
Всего: 172



Код

program negate;
#include("stdlib.hhf");
begin negate;
      stdin.geti32();
      stdin.flashInput();
      neg(eax);
      stdout.puti32(eax);
      stdout.put(nl);
end negate;


Код

public class Negate
{
    public static void main(String[] args)
    {
          try
          {
                 int i = Integer.parseInt(args[0]);
          }
           catch (Exception e) { System.exit(1); }
           System.out.println(Math.abs(i));
    }
}



--------------------

PM   Вверх
Vladimir13
Дата 26.12.2004, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



впринципе, загнуть можно по любому, но только есть ли в этом смысл? уже найдено пара-тройка быстрых правильных решений, зачем дальше заморачиваться?!
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
dm9
Дата 26.12.2004, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 6
Всего: 137



Цитата(sergej @ 14.12.2004, 18:29)
0-chislo лучший метод


Нет. Есть короче smile)
result := -chislo;
Добавлено @ 18:39
А, уже предлагали в самом начале smile)
PM MAIL ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1430 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.