|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Тема процедуры и функции. Help!
Подсчитать сумму положительних элементов каждого радка матриц А[1..4,1..5] и В[1..4,1..5].
Вот накатал. Но не работает, уже пол дня мучаюсь. Помогите, исправте. Код:
var Form1: TForm1; implementation type mas=array [1..4,1..5] of integer; mas1=array [1..4] of integer; procedure dod(a:mas;var x1:mas1); var i,j,k:integer; begin for j:=1 to 4 do begin k:=0; for i:=1 to 5 do if a[i,j]>0 then k:=k+a[i,j]; x1[i]:=k; end; end; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var A,b: mas; i,j:integer;l,k:mas1; begin for j:=1 to 4 do begin for i:=1 to 5 do if (strtoint(stringgrid1.Cells[i-1,j-1])<>0) then a[i,j]:=strtoint(stringgrid1.Cells[i-1,0]); if (strtoint(stringgrid2.Cells[i-1,0])<>0) then B[i,j]:=strtoint(stringgrid2.Cells[i-1,j-1]); end; dod(a,l); dod(b,k); label1.caption:=floattostr(l); label2.caption:=floattostr(k); end; procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; begin randomize; for i:=1 to 5 do begin for j:=1 to 4 do begin stringgrid1.Cells[i-1,j-1]:=inttostr(random(100)); stringgrid2.Cells[i-1,j-1]:=inttostr(random(100)); end; end; end; |
#2
|
||||
|
||||
в проседуре dod что то не то там помоему должно быть так
Код:
procedure dod(a:mas;var x1:mas1); var i,j,k:integer; begin for j:=1 to 4 do begin k:=0; for i:=1 to 5 do if a[i,j]>0 then k:=k+a[i,j]; x1[j]:=k; end; end; |
#3
|
|||
|
|||
ну незнаю. так же неработает
|
#4
|
||||
|
||||
Дк а что именно не работает. ошибку выдает или не верно складывает
|
#5
|
||||
|
||||
Код:
procedure dod(a:mas;var x1:mas1); var i,j,k:integer; begin for i:=1 to 4 do begin k:=0; for j:=1 to 5 do if a[i,j]>0 then k:=k+a[i,j]; x1[i]:=k; end; end; вот так попробуй, там еще баг был. Последний раз редактировалось Pilot_Red, 02.03.2011 в 23:35. |
#6
|
|||
|
|||
здесь выдает ошибку [Error] Unit1.pas(61): Incompatible types: 'String' and 'mas1'
Код:
label1.caption:=floattostr(l); label2.caption:=floattostr(k); |
#7
|
||||
|
||||
дк конечно будет выдавать...
ты присваиваешь строке целый массив. вот собственно рабочий вариант label1.caption:=inttostr(l[номер ряда]); label2.caption:=inttostr(k[номер ряда]); почему inttostr а не floattostr, потому что у тебя целочисленный массив а вообще почитай хоть чуть чуть о типах.. |
#8
|
|||
|
|||
все. сделал. спасибо!
|