Страница 1 из 1

Сравнение чисел

Добавлено: 20 янв 2012, 08:26
n0where

Код: Выделить всё

var i,c word;
begin
i:=0;
c:=0;
for.. {
i:=i+1;
c:=c+1;
}
// i=>5
// c=>5
if(i<>с)
message('Не равно');//!!!!!
else
message('Равно');
end;
Почему числа не равны?

Re: Сравнение чисел

Добавлено: 20 янв 2012, 09:06
KATZ
Как переменные i и c описаны?

P. S. Это типа задачка с конкурса начинающих программистов?

Re: Сравнение чисел

Добавлено: 20 янв 2012, 09:53
n0where
Как переменные i и c описаны?
Как то делал на double, сейчас проблема и с word
P. S. Это типа задачка с конкурса начинающих программистов?
Ну попробуйте так подумать

Re: Сравнение чисел

Добавлено: 20 янв 2012, 10:21
Алексей
с double проблемы будут, с вордом не должно возникнуть
я 2 дабл сравниваю обычно как разница между ними по модулю и сравниваю с точностю которая мне нужна
if abs(a-b)<0.001 к примеру...

Re: Сравнение чисел

Добавлено: 20 янв 2012, 10:36
edward_K
раскрытие что скрывается под for.. вам поможет.
Обычно там как раз i используют 8)
Более сложный вариант - это когда переменная дважды объявлена в разных областях - глобальной и в локальной. Тогда где то используется глобальный(в message или if например), а где то локальный индетификатор - в этом случае поможет тока правило объявления локальных индетификаторов. Я стараюсь использовать либо ii либо ww_???? для более сложных названий.

Re: Сравнение чисел

Добавлено: 20 янв 2012, 14:07
n0where
раскрытие что скрывается под for.. вам поможет.
Да нет, там обычный цикл при котором увеличивается значение этих переменных.
Более сложный вариант - это когда переменная дважды объявлена в разных областях - глобальной и в локальной.
Нет такого нет. Но обычно я для функций делаю локальные переменные везде одни.

Хотите сказать таких ситуаций не возникало?
У меня уже в 2х проектах такая фигня. приходится переводить в string и сравнивать строки.

Re: Сравнение чисел

Добавлено: 20 янв 2012, 15:31
edward_K
n0where писал(а):У меня уже в 2х проектах такая фигня. приходится переводить в string и сравнивать строки.
это как раз и говорит о пересечении с глобальными переменными. Попробуйте здесь изменить их имена.

Re: Сравнение чисел

Добавлено: 20 янв 2012, 15:34
KATZ
n0where писал(а):Хотите сказать таких ситуаций не возникало?
Таких - нет.

К сообщению "Не равно" добавьте вывод значений. Возможно, когда увидите сравниваемые числа, сразу же причину поймете.

А лучше выложите весь код. В той части, которая опубликована, проблема не видна.