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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2010, 17:14   #1
GreenPunk
Новичок
Джуниор
 
Регистрация: 24.06.2010
Сообщений: 1
По умолчанию Динамический массив, StringGrid, Сумма элементов (Delphi)

Здравствуйте. Мне нужно в прямоугольном, динамическом массиве определить и вывести на экран сумму элементов в каждой строке.
Определить строку с максимальным значением этой суммы и вывести её на экран.
Все элементы должны вводиться с клавиатуры. Сделал ввод данных через StringGrid.
Проблема в том что не считает. Т.е. выводит вместо суммы одни нули.
Листинг обработчика событий кнопки:
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
m,t,s,max,strk:integer;
Matr: Array of Array of integer;
begin
Begin
Setlength(matr, Sg1.ColCount);
for t:=0 to sg1.RowCount do
SetLength(Matr, t+1);
For m:=0 to High(Matr)-1 do
For t:=0 to High(Matr[m])-1 do
if SG1.Cells[t,m]<>'' then
Matr[m,t]:=StrToInt(SG1.Cells[t,m])
else
Matr[m,t]:=0;
end;
Memo1.Clear;
s:=0;
max:=0;
For m:=0 to High(matr)-1 do
Begin
For t:=0 to High(matr[m])-1 do
S:=s+Matr[m,t];
Memo1.Lines.Add('Cумма элементов строки['+ Inttostr(m+1) + ']:'+IntToStr(s));

if s>max then
begin
Max:=s;
strk:=m+1;
end;
end;
Memo1.Lines.Add('===========');
Memo1.Lines.Add('Максимальная сумма:'+IntToStr(s));
Memo1.Lines.Add('Номер строки:'+IntToStr(strk));
Memo1.Lines.Add('===========');
end;
Пожалуйста, помогите исправить.
GreenPunk вне форума Ответить с цитированием
Старый 26.06.2010, 18:47   #2
Tatusya
Пользователь
 
Аватар для Tatusya
 
Регистрация: 17.06.2010
Сообщений: 11
По умолчанию

Если ещё нужна,то вот готовая:
Код:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    SG1: TStringGrid;
    Memo1: TMemo;

    procedure button1click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;
 Tmatr=array of array of integer;
var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
 Var    m,j,i,max,strk:integer;s:array of integer;
 var a: Tmatr;
 begin
Setlength(a,SG1.Rowcount,SG1.Colcount);
for I:=0 to SG1.Rowcount-1 do
begin
for j:=0 to SG1.Colcount-1 do
a[i,j]:=strtoint(SG1.Cells[j,i]);
end;
setlength(s,SG1.Rowcount);
for I:=0 to SG1.Rowcount-1 do
begin
s[i]:=0;
for j:=0 to SG1.Colcount-1 do
begin
s[i]:=s[i]+a[i,j];
 end;
 Memo1.Lines.Add('Cумма элементов строки['+ Inttostr(i+1) + ']:'+floattostr( s[i])) ;
 end;
 max:=0;
 for i:=0 to SG1.Rowcount-1 do
 begin
 if s[i]>max then
begin
Max:=s[i];
strk:=i+1;
 end;
end;
 Memo1.Lines.Add('===========');
Memo1.Lines.Add('Максимальная сумма:'+floattostr(max));
Memo1.Lines.Add('Номер строки:'+IntToStr(strk));
Memo1.Lines.Add('===========');
end;

end.
Tatusya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив элементов управления в VBA litvin44 Microsoft Office Excel 6 08.01.2022 22:36
Динамический массив. Неверный вывод элементов. sir.andrey Паскаль, Turbo Pascal, PascalABC.NET 7 27.02.2010 05:23
С++ одномерный массив и сумма элементов Blondy Помощь студентам 1 19.11.2009 17:09
Список элементов (Динамический массив) SeverBaP Помощь студентам 7 28.11.2008 15:21