Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.
Доброї ночі панове! 
Потрібна ваша допомога!
Мені потрібно написати функцію для знаходження середньої швидкості.
Формула: vс = L1 + L2 + L3 + ... Ln / t1 + t2 + t3 + ... tn.
Так як кількість Ln - переміщень і tn - проміжків часу невідома я створив два динамічних масиви.
P, T: Array Of Extended;Далі я створив функцію типу: Extended, яка на вхід приймає два динамічні масиви того ж типу:
Function TForm1.PhysicalInstantSpeed(Path_Or_Moving, Time: Array Of Extended):Extended;
Var
  I: Integer;
  Sum_Path_Or_Moving, Sum_Time: Extended;
Begin
  For I := 0 To High(Path_Or_Moving) Do
    Sum_Path_Or_Moving := Sum_Path_Or_Moving + Path_Or_Moving[i];
  For I := 0 To High(Time) Do
    Sum_Time := Sum_Time + Time[i];
  PhysicalInstantSpeed := Sum_Path_Or_Moving / Sum_Time;
{
Тимчасові рядки для перевірки заповненості масиву. Після перевірки функції
рядки потрібно обовязково прибрати з функції
}
  Label3.Caption := 'Час = ' + FloatToStr(Sum_Time);
  Label4.Caption := 'Шлях = ' + FloatToStr(Sum_Path_Or_Moving);
  Label5.Caption := 'Середня швидкість = ' + FloatToStr(Sum_Path_Or_Moving / Sum_Time);
  // Кінець тимчасових рядків
End;В мене прохання. Гляньте будь ласка своїм професійним поглядом чи функція буде працювати.
Іще питання. Для того щоб перевірити функцію я створив форму куди закинув 6 - Edit, пару Label та кнопку. Та щось не можу зрозуміти як мені з 1, 2, 3-го Edit загнати в мій динамічний масив Р числові значення, і з 4-го по 6-й Edit в масив Т, для перевірки функції???
Ось повний код тестової програми.
unit Unit1;
interface
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  Vcl.StdCtrls;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Function PhysicalInstantSpeed(Path_Or_Moving, Time: Array Of Extended):Extended;
  end;
var
  Form1: TForm1;
  P, T: Array Of Extended;
implementation
{$R *.dfm}
Function TForm1.PhysicalInstantSpeed(Path_Or_Moving, Time: Array Of Extended):Extended;
Var
  I: Integer;
  Sum_Path_Or_Moving, Sum_Time: Extended;
Begin
  For I := 0 To High(Path_Or_Moving) Do
    Sum_Path_Or_Moving := Sum_Path_Or_Moving + Path_Or_Moving[i];
  For I := 0 To High(Time) Do
    Sum_Time := Sum_Time + Time[i];
  PhysicalInstantSpeed := Sum_Path_Or_Moving / Sum_Time;
{
Тимчасові рядки для перевірки заповненості масиву. Після перевірки функції
рядки потрібно обовязково прибрати з функції
}
  Label3.Caption := 'Час = ' + FloatToStr(Sum_Time);
  Label4.Caption := 'Шлях = ' + FloatToStr(Sum_Path_Or_Moving);
  Label5.Caption := 'Середня швидкість = ' + FloatToStr(Sum_Path_Or_Moving / Sum_Time);
  // Кінець тимчасових рядків
End;
procedure TForm1.Button1Click(Sender: TObject);
begin         // Як заповнити масиви з Edit????
  SetLength(P, Length(P) + 1);
  P[Length(P)] := StrToFloat(Edit1.Text);
  P[Length(P)] := StrToFloat(Edit2.Text);
  P[Length(P)] := StrToFloat(Edit3.Text);
  SetLength(T, Length(T) + 1);
  T[Length(T)] := StrToFloat(Edit4.Text);
  T[Length(T)] := StrToFloat(Edit5.Text);
  T[Length(T)] := StrToFloat(Edit6.Text);
  Label5.Caption := 'Середня швидкість = ' + FloatToStr(PhysicalInstantSpeed(P,T));
end;
end.



