Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.034 c
1-1081417410
_sulent
2004-04-08 13:43
2004.04.25
Работа с реестром


14-1080635255
able
2004-03-30 12:27
2004.04.25
WIndows 2003 server


3-1080548815
gedd
2004-03-29 12:26
2004.04.25
Поле "Счетчик" в MS SQL Server 2000.


11-1064814825
Ал
2003-09-29 09:53
2004.04.25
Как сделать многострочный Hint?


1-1081254208
hgd
2004-04-06 16:23
2004.04.25
Перемещение компонента внутри другого





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский