Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Я не могу понять, почему Делфи не считает куски формулы? [D7, XP]


Страницы:   1 2

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]

Еще не плохо бы выложить исходные данные и ответ который получился на бумаге. :)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо