Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.26;
Скачать: CL | DM;

Вниз

Помогите с вычислением   Найти похожие ветки 

 
Mahno   (2008-09-18 11:03) [0]

Имеется четыре поля для ввода чисел. все поля умножаются между собой,
пример:
X:=A*B*C*D;
если поле B=0 то результат: X=0
как правильно написать формулу при таком случае.
можно так: if B=0 then X:=A*C*D но если два поля пустые т.е. B=0 и C=0?


 
AlekseyB   (2008-09-18 11:05) [1]

В любом случае, умножение на 0 даст 0, другое дело, если предусмотреть то, если встречается 0, то его игнорировать


 
Vlad Oshin ©   (2008-09-18 11:07) [2]

не понятно..
любое нулевое число не учавствует в умножении что ли?


 
Плохиш ©   (2008-09-18 11:07) [3]


> Mahno   (18.09.08 11:03)  

Я тебе намекну. На X тоже умножать можно, так же как и его на что-то.


 
int64   (2008-09-18 11:08) [4]

Mahno   (18.09.08 11:03)  

Я проведу сеанс телепатии.
Тебе при перемножении надо игнорировать незаполненные поля?


 
Azize ©   (2008-09-18 11:10) [5]

Насколько я понимаю тебе не надо чтобы в случае когда какой-либо компонет был равен нулю он участвовал в перемножении?
Тогда так
mas:array[1..3] of ...;
....
x:=1;
For i:=0 to 3 do
if mas[i]<>0 then x:=x*mas[i];


 
Mahno   (2008-09-18 11:13) [6]

Да совершенно верно


 
DrPass ©   (2008-09-18 11:14) [7]


> if B=0 then X:=A*C*D но если два поля пустые т.е. B=0 и
> C=0?

Тебе чего надо? Игнорировать нулевые множители?
if B = 0 then B:= 1;
if C = 0 then C:= 1;
X:=A*B*C*D;


 
Mahno   (2008-09-18 11:14) [8]


> int64   (18.09.08 11:08) [4]

Да именно


 
Mahno   (2008-09-18 11:20) [9]

понятно


 
Правильный$Вася   (2008-09-18 11:31) [10]


> Игнорировать нулевые множители?if B = 0 then B:= 1;if C
> = 0 then C:= 1;

это фальсификация данных ;)
получается 0=1, а это....


 
Vlad Oshin ©   (2008-09-18 11:50) [11]

привязка массива к окнам ввода

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private     { Private declarations }
 public      { Public declarations }
    Procedure Change(Sender:tObject);
 end;

var
 Form1: TForm1;
 m:array[0..3] of integer;

implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  x:integer;
  i:integer;
begin
 x:=1;
 for I := 0 to 3 do
   if m[i]<>0 then x:=x*m[i];
 ShowMessage(inttostr(x));
end;

procedure TForm1.Change(Sender: tObject);
begin
 Pinteger(tEdit(Sender).Tag)^:=strtoint(tEdit(Sender).Text);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
e:tedit;
i:integer;
begin
for i := 0 to 3 do
begin
  m[i]:=random(10);
  e:=tEdit.Create(form1);
  e.Parent:=form1;
  e.top:=i*30;
  e.Name:="Edit"+inttostr(i);
  e.Text:=inttostr(m[i]);
  e.Tag:=LongInt(@m[i]);
  e.Visible:=true;
  e.OnChange:=Change;
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2008.10.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
2-1221758923
MZG
2008-09-18 21:28
2008.10.26
Как подсчитать в цикле?


2-1221827778
Vlad Oshin
2008-09-19 16:36
2008.10.26
Вот так оптимизатор..


15-1220358822
Interior
2008-09-02 16:33
2008.10.26
Что лучше использовать для управления рабочими столами


2-1221833280
Alexei
2008-09-19 18:08
2008.10.26
Запуск приложения


15-1220209537
Dmitry S
2008-08-31 23:05
2008.10.26
Как выполнить любой метод?