Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
1-1081120749
Broot
2004-04-05 03:19
2004.04.25
Генерация кривой


4-1075871946
Мыш
2004-02-04 08:19
2004.04.25
Клик сквозь окно


14-1080619470
Dmitriy O.
2004-03-30 08:04
2004.04.25
Если ты лежишь больной, если завтра выходной..."


14-1080585174
Piter
2004-03-29 22:32
2004.04.25
А что с fido7.ru.delphi?


1-1081086405
Виталий
2004-04-04 17:46
2004.04.25
Как разбить файл на равные части?




   Наверх