Функция возврашаюшая массив, не работает

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
manas_anarov
новенький
Сообщения: 26
Зарегистрирован: 13.12.2013 20:56:59

Функция возврашаюшая массив, не работает

Сообщение manas_anarov »

Ошибки такие

Код: Выделить всё

Параметры были изменены, перекомпиляция с очисткой (ключ -B)
unit1.pas(35,4) Error: Variable identifier expected
unit1.pas(45) Fatal: There were 1 errors compiling module, stopping

в 11-й строке я добавил тип который состоит из 5ти цифр.

Код: Выделить всё

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type
  TDayVisitors = array[0..4] of real;// сюда добавил код из примера

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

function massiv(a1,a2,a3,a4,a5:real) : TDayVisitors ;
begin
   TDayVisitors [0]:=99;//вот тут появляется ошибка
end;

procedure TForm1.Button1Click(Sender: TObject);
begin

end;

end.

Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Нужно обращаться к переменной, а не к ее типу. В данном случае переменная - это результат функции, к ней можно обратиться по имени функции или специальному имени result:

Код: Выделить всё

massiv[0]:=99;
либо
result[0]:=99;
manas_anarov
новенький
Сообщения: 26
Зарегистрирован: 13.12.2013 20:56:59

Сообщение manas_anarov »

Sergei I. Gorelkin Спасибо , заработало, загружаю сюда рабочую программу чтоб было полезно всем кто будет искать.

Код: Выделить всё

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type
  TDayVisitors = array[0..4] of real;
  TDayVisitors_1 = array[0..4] of real;
  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

function massiv(a1,a2,a3,a4,a5:real) : TDayVisitors ;
begin
   massiv[0]:=99;

   result:=massiv;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
a1,a2,a3,a4,a5:real;
massiv_1:TDayVisitors_1;
begin
   massiv_1:=massiv(1,1,1,1,1);
   showMessage(FloatToStr(massiv_1[0]));
end;
end.
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

Еще проще :

Код: Выделить всё

function massiv(a1,a2,a3,a4,a5:real) : TDayVisitors ;
begin
   result[0]:=99;
end;
Ответить