Показать сообщение отдельно
  #1  
Старый 28.12.2009, 20:13
Kobe_Bryant_24 Kobe_Bryant_24 вне форума
Прохожий
 
Регистрация: 28.12.2009
Сообщения: 8
Репутация: 10
По умолчанию Помогите! возникает ошибка Invalid floating point operation

задание:
Создать функцию, вычисляющую количество заданных элементов в одномерном массиве.
Текст моей программы:

Код:
 unit Unit1;

interface

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

type
    mas=array[1..100] of real;
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
var i,n:integer;
begin
   randomize;
   n:=StrToInt(Edit1.Text)+1;
   StringGrid1.RowCount:=n;
   for i:=1 to n-1 do stringgrid1.Cells[0,i]:=Floattostr(random(10));
end;

function kolvo(b: mas; a: real): real;
var k,n,i: integer;
begin
  k:=0;
  for i:=1 to n-1 do
  begin
    if b[i]=a then k:=k+1;
  end;
  kolvo:=k;
end;

procedure TForm1.Button1Click(Sender: TObject);
var b: mas;
    a: real;
    n,i: integer;
begin
   a:=StrToFloat(Edit2.Text);
   n:=StrToInt(Edit1.Text)+1;
   for i:=1 to n-1 do b[i]:=StrToFloat(stringgrid1.cells[0,i]);
   label1.Caption:=FloatToStr(kolvo(b,a));
end;


end.

lmikle: Пользуемся тегами!
Ответить с цитированием