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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2012, 19:49   #1
delegate
 
Регистрация: 25.12.2011
Сообщений: 5
По умолчанию Обработка двумерных массивов

В каждом столбце матрицы найти первый отрицательный элемент и вычислить сумму этих элементов.
P.S. заранее благодарен, просьба писать на более простом языке (использую turbo delphi 2006 )
delegate вне форума Ответить с цитированием
Старый 26.02.2012, 21:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ану покажи код, которым ты матрицу вводишь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.02.2012, 21:21   #3
delegate
 
Регистрация: 25.12.2011
Сообщений: 5
По умолчанию

Код:
var
  Form1: TForm1;
  k,n,m,i,j,S,P:integer;
  x:array[1..5,1..5] of integer;

implementation

{$R *.dfm}

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
 StringGrid1.RowCount:=SpinEdit1.Value;
end;

procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
 StringGrid1.ColCount:=SpinEdit2.Value;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 n:=SpinEdit1.Value;
 m:=SpinEdit2.Value;
With StringGrid1 do
 begin
  For i:=1 to n do
  For j:=1 to m do
  x[i,j]:=StrToInt(StringGrid1.Cells[j-1,i-1]);
  stringgrid1.RowCount:=n;
  stringgrid1.ColCount:=m;
 end;

Последний раз редактировалось Stilet; 26.02.2012 в 21:57.
delegate вне форума Ответить с цитированием
Старый 26.02.2012, 22:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var b:array of integer; sum:integer;
begin
 n:=SpinEdit1.Value;
 m:=SpinEdit2.Value;
With StringGrid1 do
 begin
  SetLength(b,m);sum:=0;
  ZeroMemory(b,m*sizeof(integer));
  For i:=1 to n do
  For j:=1 to m do begin
   x[i,j]:=StrToInt(StringGrid1.Cells[j-1,i-1]);
   if (x[i,j]<0)and(b[j]=0) then begin b[j]:=x[i,j];sum:=sum+b[j];end;
  end;
  stringgrid1.RowCount:=n;
  stringgrid1.ColCount:=m;
  SetLength(b,0);
  ShowMessage(IntToStr(sum));
 end;
Увидел предлагаемый алгоритм?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.02.2012, 22:05   #5
delegate
 
Регистрация: 25.12.2011
Сообщений: 5
По умолчанию

Меня больше всего интересовало как найти первый отрицательный элемент, я так понял эта вот эта строчка
Цитата:
if (x[i,j]<0)and(b[j]=0)
delegate вне форума Ответить с цитированием
Старый 26.02.2012, 22:48   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ога. Она самая. Первый минус фиксируется в особом массиве, и тут же присоединяется к сумме.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка двумерных массивов C++ 803 Помощь студентам 9 18.02.2012 20:15
обработка двумерных массивов desu_desu Помощь студентам 0 17.12.2011 15:21
Обработка двумерных массивов (С++) Day Stiff Помощь студентам 3 14.12.2011 18:22
Обработка двумерных массивов Alexxxxxx Помощь студентам 5 23.10.2011 00:07
Обработка двумерных массивов Kreigen Помощь студентам 3 29.11.2009 10:50