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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2012, 16:56   #1
Erlotaza
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 37
По умолчанию Где ошибка? Delphi. Вычисление значения по формуле в трёх условиях

Проблема в том, что программа постоянно выполняет условие №3: "в остальных случаях V:=(|a|+|b|)/2". Где ошибка?
Заранее благодарен
Вложения
Тип файла: rar Andrew.rar (167.9 Кб, 11 просмотров)
Erlotaza вне форума Ответить с цитированием
Старый 06.06.2012, 17:21   #2
vova_
Форумчанин
 
Аватар для vova_
 
Регистрация: 07.11.2011
Сообщений: 100
По умолчанию

по моему так надо

Код:
if (a>=c) and (a<=d) and (b>=c) and(b<=d) then
V:=(max+min)/a;
else
begin
if (a<c) and (a>d) and (b<c) and(b>d) then
V:=(max+min)/b;
else
V:=(Abs(a)+Abs(b))/2;
end;
vova_ вне форума Ответить с цитированием
Старый 06.06.2012, 17:34   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Во-первых, как указал vova_, нужно связать элсами.
Во-вторых, правильно задать условия.
Условие (b<c)and(b>d) не означает, что b лежит вне отрезка [c,d].

Приведите само условие задачи.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 06.06.2012, 17:35   #4
@нтошка
Помог? Дави весы!
Пользователь
 
Регистрация: 15.05.2012
Сообщений: 25
По умолчанию

Я попробовал поставить после else showmessageи сообщение не появилось. Значит Программа не всегда туда заходит.
Код:
if (a<c) and (a>d) and (b<c) and(b>d) then
V:=(max+min)/b

else

showmessage('Ну как то так');
Или я Вас не правильно понял
@нтошка вне форума Ответить с цитированием
Старый 06.06.2012, 18:06   #5
Erlotaza
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 37
По умолчанию

Спасибо vova_. Помогло! Но я не понимаю, почему Вроде такая мелочь, я просто не понимаю необходимости else end, что "программно" исправилось?

Цитата:
Сообщение от BDA Посмотреть сообщение
Во-первых, как указал vova_, нужно связать элсами.
Во-вторых, правильно задать условия.
Условие (b<c)and(b>d) не означает, что b лежит вне отрезка [c,d].

Приведите само условие задачи.
Я уже исправил: if (a<c) or (a>d) and (b<c) or (b>d) then. Думаю вы это имели ввиду. Спасибо!
Erlotaza вне форума Ответить с цитированием
Старый 06.06.2012, 18:45   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Во-первых, if ((a<c) or (a>d)) and ((b<c) or (b>d)) then, так как and старше or.
Во-вторых, насчет else:
У вас было "если есть молоко, купить хлеб"
"если есть кефир, купить сахар, иначе купить соль"
Добавим else:
"если есть молоко, купить хлеб, иначе
если есть кефир, купить сахар, иначе купить соль"

Т.е. в вашем случае могло получиться, что купим и хлеб, и сахар (или соль), а нужно купить что-то одно.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 06.06.2012 в 18:48.
BDA на форуме Ответить с цитированием
Старый 06.06.2012, 20:34   #7
vova_
Форумчанин
 
Аватар для vova_
 
Регистрация: 07.11.2011
Сообщений: 100
По умолчанию

Цитата:
Сообщение от Erlotaza Посмотреть сообщение
Помогло! Но я не понимаю, почему Вроде такая мелочь, я просто не понимаю необходимости else end, что "программно" исправилось?
в двух словах:
if (a=true) then
V=1; //даже если V стало равно 1

if (b=true) then //прога проверит b=true? и если нет испол-
V=2; //-нит то что после else
else
V=3;

а в варианте который я предложыл ваша прога не выполнит проверку b=true? при a=true
vova_ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приближённое вычисление определенного интеграла по «формуле прямоугольников» и по «формуле трапеций» Юличк@ Помощь студентам 1 25.04.2012 17:41
Вычислить значение функции Z по формуле и зависящей от содержимого трёх массивов А, F и С [ C++ ] Pycbka Помощь студентам 1 25.04.2012 00:57
Где ошибка в формуле? Kartinochka Microsoft Office Excel 6 11.06.2010 13:59
Вычисление суммы при каких либо условиях. ЮклЯ Microsoft Office Excel 5 15.09.2009 10:16
Си++ Составить программу на вычисление значения по формуле verpl Помощь студентам 3 28.05.2009 11:16