Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Логическая задача. (http://www.flasher.ru/forum/showthread.php?t=101709)

alexcon314 26.09.2007 22:36

Логическая задача.
 
Задача.
Имеется три величины Boolean.
В исходном состоянии одна из них равна 1, две другие 0.
Одна из величин принимает значение 1.
Нужно, чтобы при этом две другие величины были равны 0.
Например: 100->010->100->001->... и т.д.
Кто может решить?

eGanz 26.09.2007 22:45

Я даун :wacko: - до меня не дошел смысл :(, испульзуя логические операторы или как ил где?

KidsKilla 26.09.2007 22:52

var v1 = true;
var v2 = false;
var v3 = false;

v1 = v2 = v3 = false;
v2 = true;

???

etc 26.09.2007 22:53

1 и 0 вообще говоря просто числа, а не булевы значения.
Формулировка задачи несколько странная.

Kikasso 26.09.2007 23:31

Элементарно.
Код:

d = 1;
function get a(){ return d < 0 };
function get b(){ return d == 0};
function get c(){ return d > 0 };

function set a(val){ if(val) d =-1; };
function set b(val){ if(val) d = 0; };
function set c(val){ if(val) d = 1; };


Ostgur 26.09.2007 23:35

Что тус сложного то?
Код:

IF(A==1){B=0;C=0} ELSE IF(B==1){A=0;C=0} ELSE IF(C==1){B=0;A=0}

alexcon314 26.09.2007 23:41

Имеется циклический алгоритм, в одной из частей которого обрабатываются эти три величины.
Допустим, на выходе обработчика в очередном цикле было 100.
Далее, выполняютсе другие инструкции в теле цикла, цикл крутится,
на вход обработчика попадают 100, выдает он 100 ... Но вот по каким-то причинам где-то в цикле значения величин изменились: на вход обработчика попадает 110. Тогда он должен выдать 010. Нельзя ли здесь обойтись без буферизации? И не использовать дополнительных флагов?

lowka 26.09.2007 23:43

Цитата:

Сообщение от Ostgur
Код:

IF....

Это не if-else. Это задачка из дискретной математики. Нужно записать выражение, включающее в себя комбинации a, b и с результат которого равен 1 в случае, если одна из этих величин имеет значение 1 (истина).

udaaff 26.09.2007 23:52

Если значения величин заданы в виде 001, 010, 100, то использовать побитовые операции.

PS: условие задачи не до конца понятно.

Ostgur 26.09.2007 23:53

ВСЁ РАВНО ЕЁ ЧЕРЕЗ if-else можно решить 100%


Часовой пояс GMT +4, время: 07:26.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.