Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2014, 12:54   #1
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
По умолчанию Получить из Boolean integer

Допустим, нужно что-то типа
var b: boolean; x: integer;
if b then
x:=1 else
x:=-1;
Можно это одним оператором, чтобы без if ?
Дmmm вне форума Ответить с цитированием
Старый 17.09.2014, 12:55   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

У Boolean значения такие: 1 = True и 0 = False.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 17.09.2014, 12:57   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Так, например: Ord(b)-Ord(not b)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.09.2014, 13:01   #4
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

Получить из Boolean integer можно преобразованием
Код:
x := integer(b);
а одним оператором, чтобы без if, вот
Код:
 x := integer(b) * 2 - 1;
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 17.09.2014, 13:03   #5
indexx
Заблокирован
 
Регистрация: 12.09.2014
Сообщений: 544
По умолчанию

Код:
function bool2Int(b: boolean): integer;
begin
  if b then Result := 1 else
    result := 0;
end;

x := bool2Int(b);
indexx вне форума Ответить с цитированием
Старый 17.09.2014, 13:04   #6
StriderX
Форумчанин
 
Регистрация: 21.04.2014
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Дmmm Посмотреть сообщение
Допустим, нужно что-то типа
var b: boolean; x: integer;
if b then
x:=1 else
x:=-1;
Можно это одним оператором, чтобы без if ?
В модуле Math можно откопать IfThen. Однако, следует помнить, что это обычная функция и не залетать на том, что аргументы для функции вычисляются заранее. То есть конструкция вида x := Math.IfThen(a > 0, b div a, a div b) отлетит с делением на ноль =-)
StriderX вне форума Ответить с цитированием
Старый 17.09.2014, 13:27   #7
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

или так
Код:
uses Math;
x:=-1*round(Power(-1,ord(b)));
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 17.09.2014, 13:44   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от indexx Посмотреть сообщение
x := bool2Int(b);
Извращение.
Arigato вне форума Ответить с цитированием
Старый 17.09.2014, 16:07   #9
indexx
Заблокирован
 
Регистрация: 12.09.2014
Сообщений: 544
По умолчанию

Цитата:
Извращение.
Хамство...
indexx вне форума Ответить с цитированием
Старый 17.09.2014, 16:15   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Хамство...
Конечно извращение. Чего придумывать, если есть уже Integer(b), Ord(b), Byte(b)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BOOLEAN Thandem Помощь студентам 12 26.09.2010 08:12
Вычесть из Integer Form2 Integer Form1 Shouldercannon Общие вопросы Delphi 2 30.07.2010 17:47
как выделить память для указателя (pointer), и сюда же, записать : integer, потом через 4 байта, boolean? bigxman Общие вопросы Delphi 1 02.02.2009 21:17
Boolean Air Общие вопросы Delphi 2 16.02.2008 17:15
Boolean... ZhekON Общие вопросы Delphi 2 17.06.2007 00:39