Главная страница
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.037 c
14-1080647782
panov
2004-03-30 15:56
2004.04.25
Настройка учетных записей.


14-1080798965
MBo
2004-04-01 09:56
2004.04.25
Тенденции...


1-1081454193
MAXH0
2004-04-08 23:56
2004.04.25
Как изменить цвет выделеной ячейки в StringGrid ?


9-1067445956
X_Michael
2003-10-29 19:45
2004.04.25
Всплывающее окно удаленного соединения


14-1081173877
}|{yk
2004-04-05 18:04
2004.04.25
Дейкстра Структурное програмирование