Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Как узнать, что одна из переменных не равна треб. значению.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.048 c
9-1067554824
MrAngel
2003-10-31 02:00
2004.04.25
Написание игры на движке Half-Life 2 - это реальность ?


3-1080034879
TSa
2004-03-23 12:41
2004.04.25
Сохранание данных из БД ф файл


11-1065517049
Yury Sidorov
2003-10-07 12:57
2004.04.25
Неуказанное важное изменение в KOL 1.85


14-1081163956
syte_ser78
2004-04-05 15:19
2004.04.25
Вопрос по Olympus D-380


11-1065480318
Boguslaw
2003-10-07 02:45
2004.04.25
Change focus to the next control in focus