Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

Код:

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
Адрес: RF Moscow
Сообщений: 5,376
Репутация: 2468

icq: 438888048
По умолчанию

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

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

Я попробовал поставить после 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
Репутация: 10
По умолчанию

Спасибо 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
Адрес: RF Moscow
Сообщений: 5,376
Репутация: 2468

icq: 438888048
По умолчанию

Во-первых, 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
Адрес: Киев
Сообщений: 99
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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_ вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приближённое вычисление определенного интеграла по «формуле прямоугольников» и по «формуле трапеций» Юличк@ Помощь студентам 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


22:13.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru