![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Я не могу понять, почему Делфи не считает куски формулы? [D7, XP]
b.o.n.d.007 © (2006-06-24 16:40:00)Я начинающий пользователь Делфи и плохо её знаю, поетому прошу знающих и хорошо владеющих этой программой мне помочь.
Проблема в следующем: Я написал формулу, Делфи проверил её на правельность записи, ни на что не ругается, но, она не считает отдельные куски этой ф-лы, а конкретно перемножение и, ни как не учитывает перемножаемые числа. НАПРИМЕР: y=(a+b-c*d*e*f)/(g+h*t) .
Он же мне её считает, как: y=(a+b)/g .
Помогите. Что мне делать и почему это происходит?
Заранее спасибо.
b.o.n.d.007 (2006-06-25 20:05:00) [1]Если здесь ещё кто-то есть обратите внимание на другую мою тему.
Жуков Олег (2006-06-25 18:58:00) [2]
> может подскажете, как записать "модуль" (как это в формуле
> будет выглядить)?
uses
Math;
y = Abs(x);
b.o.n.d.007 (2006-06-25 18:47:00) [3]может подскажете, как записать "модуль" (как это в формуле будет выглядить)?
Palladin (2006-06-25 18:33:00) [4]
> b.o.n.d.007 © (25.06.06 18:20) [33]
и все таки заставь себя доверять результатам программных вычислений... уже давно не те времена когда можно было почувствовать себя первоиспытателем и найти в компиляторе ошибку в интерпретации формул...
Palladin (2006-06-25 18:29:00) [5]А вдруг они это еще не проходили... :))
b.o.n.d.007 (2006-06-25 18:20:00) [6]Спасибо что вправили мне мозги!!!
Я считал не "1-С" а сразу "С"
sniknik (2006-06-25 18:13:00) [7]const
A=100000;
B=10000;
C=0.13;
D=20;
E=10000;
F=1;
G=1000;
K=10;
1-C = 1-0.13 = 0.87
(1-C)*D = 0.87*20 = 17.4
K-(1-C)*D = 10 - 17.4 = -7.4
> Как тогда его заставить не раскрывать скобки, они ведь для этого и стоят???
заставь себя, назад за парту и учиться, учится и учиться.
_silver (2006-06-25 18:11:00) [8]b.o.n.d.007 © (25.06.06 18:05) [30]
1-0.13=0.87
0.87*20=17.4
10-17.4= -7.4
b.o.n.d.007 © (25.06.06 18:05) [30]
и уж тат ответ положительный!!!
Где?
b.o.n.d.007 (2006-06-25 18:05:00) [9]Объясняю знаменатель, как он должен делаться:
1) сперва от "1" отнимоется "C" , т.е. 1-C
2) полученный результат умножается на "D" , т.е. (1-C)*D
3) далее, от "K" отнимается сосчитанное ранее в п.2 , т.е. K-(1-C)*D
Вот так оно должно считаться, и уж тат ответ положительный!!!
Как тогда его заставить не раскрывать скобки, они ведь для этого и стоят???
Palladin (2006-06-25 17:55:00) [10]чтд
sniknik (2006-06-25 17:47:00) [11]> Ответ мой: 18243
> Ответ проги: -38243
ну что можно сказать... учись считать в столбик
procedure TForm1.Button1Click(Sender: TObject);
const
A=100000;
B=10000;
C=0.13;
D=20;
E=10000;
F=1;
G=1000;
K=10;
begin
Label1.Caption:= FloatToStr( A+B+(1-C)*D*E*F-G ); //верх
Label2.Caption:= FloatToStr( K-(1-C)*D ); //низ
Label3.Caption:= FloatToStr( (A+B+(1-C)*D*E*F-G) / (K-(1-C)*D) ); //общее
end;
вверху положительное делится на отрицательное (внизу), ну никак общее положительным не будет.
> ка у делфи вообще получился отрицательный товет при делении бвух положительных чисел?!
это во второй класс, там учат правильно раскрывать скобки...
b.o.n.d.007 (2006-06-25 17:38:00) [12]ка у делфи вообще получился отрицательный товет при делении бвух положительных чисел?!
b.o.n.d.007 (2006-06-25 17:33:00) [13]Ответ мой: 18243
Ответ проги: -38243
Palladin (2006-06-25 17:27:00) [14]ну а ответ то где? который ты на бумаге получил
b.o.n.d.007 (2006-06-25 17:27:00) [15]Вот так формула более понятно:
A+B+(1-C)*D*E*F-G
formula3.text:=FloatToStr(-----------------------) ;
K-(1-C)*D
sniknik (2006-06-25 17:26:00) [16]> Вот формула, куда я их подставлял:
а чего хотел от нее? что должна считать то?
как искать ошибку в логике не зная логики по которой она сделана, видя только конечную формулу? это к телепатам.
sniknik (2006-06-25 17:23:00) [17]а теорему "почему 1 + 1 = 2" не доказать?
b.o.n.d.007 (2006-06-25 17:22:00) [18]Вот исходные данные:
A=100000;
B=10000;
C=0.13;
D=20;
E=10000;
F=1;
G=1000;
K=10;
Вот формула, куда я их подставлял:
formula3.Text:=FloatToStr((A+B+((1-C)*D*E*F)-G)/(K-((1-C)*D)));
b.o.n.d.007 (2006-06-25 17:19:00) [19]Я забил все значения в константы, считает по-прежнему не правельно.
Видать действительно ошибка в записи формулы...
Напишите, как правельно писать матеметические знаки (сложить, отнять, умнжить, поделить и т.д.) с примерами записи (простыми и сложными) формул.
Palladin (2006-06-25 09:05:00) [20]Еще не плохо бы выложить исходные данные и ответ который получился на бумаге. :)