Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизКак узнать, что одна из переменных не равна треб. значению. Найти похожие ветки
← →
Cigt12 (2004-04-10 16:33) [0]Здравствуйте! Проблема вообщем в следующем:
в переменных i1,i2,i3,i4,i5,i6 должны быть определенные значения. Задача в том, чтобы узнать о том, что значение хотя бы одной переменной не соответсвует необходимому условию.
Т.е на пример:
i1=1
i2=1
i3=1
i4=1
i5=1
i6=1
(1 - это требуемое значение указанных переменных) Так вот! Допустим значение i5 изменилось и теперь равно 0:
i1=1
i2=1
i3=1
i4=1
i5=0
i6=1
Надо программно определить, что одна из переменных не равна требуемому значению (т.е не равна 1) .
Очевидно, что можно было бы использовать if и просматривать каждую переменную, но ведь есть такой наворот как case? Можно ли посредством case (или другим более эффективным способом) как-то определить, что значение одной из указанных переменных изменилось тем более, что не важно какая именно переменная, важен сам факт, что одна из них не соответсвует 1.
Заранее благодарен и просьба указать исходник.
← →
Palladin © (2004-04-10 16:37) [1]Про массивы в курсе?
← →
Alx2 © (2004-04-10 16:38) [2]1. Измениться может только и только одна переменная?
2. "Необходимое условие" - равенство всех переменных одному и тому же известному значению?
Если ответы положительные, то очевидно достаточно смотреть, например, их сумму.
← →
***ghost*** (2004-04-10 16:38) [3]
for i:=1 to 6 do begin n++; if i+n<>1 then begin{что-то там} end; end;
← →
Jack128 © (2004-04-10 16:43) [4]
> for i:=1 to 6 do begin n++; if i+n<>1 then begin{что-то
> там} end; end;
Куш, Сишники, кыш!!! :-)
← →
Cigt12 (2004-04-10 16:47) [5]Значит про массивы не курсе, т.к в программирование жуткий ламос :), но если укажите пример, то разберусь.
> 1. Измениться может только и только одна переменная?
> 2. "Необходимое условие" - равенство всех переменных одному
> и тому же известному значению?
1. Нет, не одна. Измениться могут 1, 2 3 и все одновременно.
2. Необходимое условие - это здоровое значение, которое характеризует цвет (например число типа 1246332). В указанном случае 1 это было примером.
← →
Palladin © (2004-04-10 16:48) [6]Учебники помогут тебе выбрать правильный путь.
← →
Digitman © (2004-04-10 16:48) [7]
> Cigt12
куда ж ты их столько насандалил-то, переменных этих ?) трудно было сразу же предусмотреть массив ?)
ну теперь уж только так (в предположении, что об]явления переменных идут смежным непрерывным var-блоком, именно в таком порядке и переменные не локальные)
var
p: PInteger;
k: Integer;
...
p := @i1;
for k := 1 to 6 do
begin
if p^ <> 1 then
ShowMessage("Изменилась переменная i" + IntToStr(k));
Inc(p);
end;
← →
Palladin © (2004-04-10 16:49) [8]Есть выход в принципе и без массивов. Если конечно контролировать присваивание каждой отслеживаемой переменной самому.
← →
SergP © (2004-04-10 21:41) [9]i1=1
i2=1
i3=1
i4=1
i5=0
i6=1
Надо программно определить, что одна из переменных не равна требуемому значению (т.е не равна 1) .
if i1 xor i2 xor i3 xor i4 xor i6 xor i6 <>0 then ...
Правда правильную работу гарантирую только одна если одна из переменных отличается от всех остальных или все переменные имеют одинаковые значения, причем число переменных должно быть четным.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c