Показать сообщение отдельно
  #16  
Старый 06.04.2008, 09:14
AndrYxo AndrYxo вне форума
Начинающий
 
Регистрация: 04.04.2008
Сообщения: 115
Репутация: 10
По умолчанию

Это снова я - слушайте - написал прогу - работает вроде - вот по условию: Наити произведение положительных элементов масива А={a[i]}, удовлетворяющих условию:
с<=a[i]<=d

Но блин - считает произведение - а оно отрицательное иногда получается - плиз - посмотрите прогу и скажите что не так...

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Memo1: TMemo;
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Label2: TLabel;
    Button2: TButton;
    Button3: TButton;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
a:array [0..19] of integer;
P:integer;
i:integer;
c,d:real;
begin
randomize;
for i:=0 to 19 do
begin
a[i]:=random(50--50+1)-50;
StringGrid1.Cells[i,0]:=InttoStr(a[i]);
end;
P:=1;
c:=StrtoInt(Edit1.Text);
d:=StrtoInt(Edit2.Text);
for i:=0 to 19 do
if (a[i]>=c) and (a[i]<=d) and (a[i]>0) then
P:=P*a[i];
Memo1.Lines.Add(FormatFloat('0.00',P));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Clear;
Edit1.Clear;
Edit2.Clear;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Close;
end;

end.