Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2016, 03:19   #1
anna77777
 
Регистрация: 28.12.2016
Сообщений: 5
Печаль Помогите пожалуйста, как исправить ошибки?:( [Delphi] Массив вывести в StringGrid, вычислить и вывести среднее арифметическое каждой строки

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    OleContainer1: TOleContainer;
    StringGrid1: TStringGrid;
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure StringGrid1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  const n=4; m=6;
  type matrix=array[1..n,1..m] of real;
var
  Form1: TForm1;
  a:matrix; SR:array[1..n] of real;

implementation

{$R *.dfm}

procedure TForm1.N1Click(Sender: TObject);
var i,j:byte;
begin for i:=1 to m do
      for j:=1 to n do if j>2 then
      a[i,j]:=2*(j/2-3.76)*Exp(ln(2)*i) else a[i,j]:=3.2*Exp(ln(2)*j)+i;
For i:=1 to n do begin
For j:=1 to m do begin
StringGrid1.Cells[j-1,i-1]:=IntToStr(a[i,j]);
end;
end;
end;

procedure TForm1.N2Click(Sender: TObject);
  var i,j:byte;
begin{main program}
 for i:=1 to n do begin
 for j:=1 to m do begin
 SR[i]:=SR[i]+a[i,j];
 SR[i]:=SR[i]/m;
 end;
end;
 StringGrid1.Cells[6, i-1]:=IntToStr(SR);
end;


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

end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 28.12.2016 в 09:41.
anna77777 вне форума Ответить с цитированием
Старый 28.12.2016, 09:45   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
   For i:=1 to n do 
      For j:=1 to m do 
           StringGrid1.Cells[j-1,i-1]:=FloatToStr(a[i,j]);
end;

procedure TForm1.N2Click(Sender: TObject);
  var i,j : integer;
begin
   for i:=1 to n do begin
       SR[i]:=0;
       for j:=1 to m do 
           SR[i]:=SR[i]+a[i,j];
       SR[i]:=SR[i]/m;
   end;
   for i:=1 to n do
      StringGrid1.Cells[6, i-1]:=FloatToStr(SR[i]);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.12.2016, 12:59   #3
anna77777
 
Регистрация: 28.12.2016
Сообщений: 5
По умолчанию Благодарю

Спасибо огромное, очень выручили!!!
anna77777 вне форума Ответить с цитированием
Старый 28.12.2016, 13:31   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Пожалуйста.

кстати, строчку
Цитата:
Код:
StringGrid1.Cells[6, i-1]:=FloatToStr(SR[i]);
логичнее заменить на
Код:
StringGrid1.Cells[m, i-1]:=FloatToStr(SR[i]);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.12.2016, 02:18   #5
anna77777
 
Регистрация: 28.12.2016
Сообщений: 5
По умолчанию

Учту
anna77777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив. Найти среднее арифметическое каждой строки и поместить на место наибольшего (Паскаль) Золушка Паскаль, Turbo Pascal, PascalABC.NET 4 13.04.2011 13:33
Вычислить среднее арифметическое каждого столбца матрицы и вывести на экран в порядке возрастания ILMAR95 Паскаль, Turbo Pascal, PascalABC.NET 3 01.04.2011 15:44
Делфи.среднее геометрическое элементов массива.среднее арифметическое каждой строки матрицы Karrina Помощь студентам 0 06.12.2010 18:32