Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2009, 12:21   #1
KARUSHEV
Форумчанин
 
Аватар для KARUSHEV
 
Регистрация: 11.01.2009
Сообщений: 102
Восклицание не получается ограничение

Помогите с такой задачей: есть два числа (могут быть отрицательными и положительными), они должны быть в интервале 0,5 или 5

Например: T1= -0,5, T2 = 0 или T1= 1, T2 = 6, если они не соответствуют интервалу, должна выводиться ошибка:

Вот что у меня получилось, но я весь запутался и не могу доделать до конца (AbsT1 и AbsT2 это я заранее сделал модули значений T1 и T2, может и не нужно было делать по модулю?):

Код:
begin
if (AbsT2 <> AbsT1 + 5) or (AbsT2 <> AbsT1 + 0.5) then
     begin
     if (AbsT2 <> AbsT1 - 5) or (AbsT2 <> AbsT1 + 0.5) then
     end
else
if (AbsT1 <> AbsT2 + 5) or (AbsT1 <> AbsT2 + 0.5) then
     begin
     if (AbsT1 <> AbsT2 - 5) or (AbsT1 <> AbsT2 + 0.5) then
     end
else
     begin
     ShowMessage('Не правильно заданы значения!');
     exit;
     end;
end;
KARUSHEV вне форума Ответить с цитированием
Старый 24.03.2009, 12:30   #2
XuTpbIu
Злобстер
Форумчанин
 
Аватар для XuTpbIu
 
Регистрация: 19.03.2009
Сообщений: 134
По умолчанию

так-то интервал 0,5 лежит в интервале длиною в 5.... или у тебя надо чтобы числа отличались ровно либо на 0,5 либо на 5??
От знаний ещё никто не умирал, но рисковать не стоит.
XuTpbIu вне форума Ответить с цитированием
Старый 24.03.2009, 12:32   #3
KARUSHEV
Форумчанин
 
Аватар для KARUSHEV
 
Регистрация: 11.01.2009
Сообщений: 102
По умолчанию

Да числа могут отличаться ровно либо на 0,5 либо на 5, причем T1 должен быть меньшим
KARUSHEV вне форума Ответить с цитированием
Старый 24.03.2009, 12:35   #4
XuTpbIu
Злобстер
Форумчанин
 
Аватар для XuTpbIu
 
Регистрация: 19.03.2009
Сообщений: 134
По умолчанию

Код:
if T1 < T2 then
begin
  If (abs(T2-T1) <> 0.5) or (abs(T2-T1) <> 5) then
    ShowMessage('Неправильно введены данные');
end
else
  ShowMessage('T1 должно быть меньше T2!');
От знаний ещё никто не умирал, но рисковать не стоит.
XuTpbIu вне форума Ответить с цитированием
Старый 24.03.2009, 12:46   #5
KARUSHEV
Форумчанин
 
Аватар для KARUSHEV
 
Регистрация: 11.01.2009
Сообщений: 102
По умолчанию

Так не работает, ведь T1 может быть отрицательным, а T2 может быть положительным, могут быть оба отрицательные или оба положительные
KARUSHEV вне форума Ответить с цитированием
Старый 24.03.2009, 12:51   #6
XuTpbIu
Злобстер
Форумчанин
 
Аватар для XuTpbIu
 
Регистрация: 19.03.2009
Сообщений: 134
По умолчанию

просто по смотри на числовую ось. ВСЕГДА "расстоянием" между 2 числами будет их разница взятая по модулю
От знаний ещё никто не умирал, но рисковать не стоит.
XuTpbIu вне форума Ответить с цитированием
Старый 24.03.2009, 12:53   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Так не работает
Как проверял?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.03.2009, 13:56   #8
KARUSHEV
Форумчанин
 
Аватар для KARUSHEV
 
Регистрация: 11.01.2009
Сообщений: 102
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Как проверял?
программой, вот выкладываю исходник
Вложения
Тип файла: rar test.rar (5.5 Кб, 11 просмотров)
KARUSHEV вне форума Ответить с цитированием
Старый 24.03.2009, 14:05   #9
XuTpbIu
Злобстер
Форумчанин
 
Аватар для XuTpbIu
 
Регистрация: 19.03.2009
Сообщений: 134
По умолчанию

ой.... мой косяк....
Код:
	  If not ((abs(T2-T1) = 0.5) or (abs(T2-T1) = 5)) then
вот так там поправь
От знаний ещё никто не умирал, но рисковать не стоит.
XuTpbIu вне форума Ответить с цитированием
Старый 24.03.2009, 14:05   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

На каких исходных данных неверно работает?
И я еще не пойму зачем ты проверяеш T1 < T2?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ограничение повторов ТРОЯН=) Помощь студентам 5 06.03.2009 09:11
ограничение по времени bunner Помощь студентам 4 05.02.2009 21:31
Ограничение текста в RichEdit1 Polotenchik Общие вопросы Delphi 4 04.12.2008 20:02
Ограничение запусков программы?? John_chek Общие вопросы Delphi 14 24.11.2008 14:26
Ограничение вертикальной прокрутки valerij Microsoft Office Excel 11 18.06.2008 18:00