![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
У меня в компоненте StringGrid матрица 3х3 надо сложить элементы каждой строчки и вывести ответы в label1. как это сделать????
|
|
#2
|
||||
|
||||
|
1. запускаешь дельфи (это самое главное
)2. пишешь пальчиками(можешь даже ногами, это как тебе удобнее ) |
|
#3
|
|||
|
|||
|
не..это я понимаю...
я само условие не знаю как написать... как сложить все элементы какой-нибудь строки???Последний раз редактировалось nblF-nblF*, 11.06.2010 в 00:50. |
|
#4
|
||||
|
||||
|
может быть, перебором?
![]() |
|
#5
|
|||
|
|||
|
блин, ну а как это записать? я че-то ваще не врубаюсь!!!
Последний раз редактировалось nblF-nblF*, 11.06.2010 в 00:57. |
|
#6
|
||||
|
||||
|
1. Цикл for по строчкам
2. Вложенный цикл по элементам в строке 3. переменная, сумма n-ной строки. Полностью за тебя писать не будут, пробуй сам, и спрашивай, что не получается. |
|
#7
|
|||
|
|||
|
в месте выделенном красным что у меня не правильно?
Код:
procedure TForm1.Button1Click(Sender: TObject); const m=3;n=5; type type=array[1..m,1..n] of real; var x:type; i,j:byte; s,q,w:real; begin i:=1; while i<=stringgrid1.ColCount do begin j:=1; while j<=stringgrid1.RowCount do begin x[i,j]:=strtofloat(stringgrid1.Cells[i-1,j-1]); for i:=1 to m do begin s:=0; if i:=1 then s:=s+x[i,j]; q:=0; if i:=2 then q:=q+x[i,j]; w:=0; if i:=3 then w:=w+x[i,j]; label1.Caption:=floattostr(s)+#13+floattostr(q)+#13+floattostr(w); j:=j+1; end; i:=i+1; end; end. |
|
#8
|
||||
|
||||
|
Код:
if i:=1 then s:=s+x[i,j]; |
|
#9
|
|||
|
|||
|
спасибо, это исправил, но программа все равно не работает(((
подскажите что делать? |
|
#10
|
||||
|
||||
|
Так сойдёт? с тебя +.
Код:
s:=0;
q:=0;
w:=0;
for i:=1 to 3 do begin
s:=s+x[i,1];
q:=q+x[i,2];
w:=w+x[i,3];
end;
label1.Caption:=floattostr(s)+#13+floattostr(q)+#13+floattostr(w); |
|
#11
|
|||
|
|||
|
все равно результат вообще не выводит... тект программы у меня верный верный или нет?
Код:
procedure TForm1.Button1Click(Sender: TObject);
const m=3;n=5;
type qwerty=array[1..m,1..n] of real;
var x:qwerty;
i,j:byte;
s,q,w:real;
begin
i:=1;
while i<=stringgrid1.ColCount do
begin
j:=1;
while j<=stringgrid1.RowCount do
begin
x[i,j]:=strtofloat(stringgrid1.Cells[i-1,j-1]);
s:=0;
q:=0;
w:=0;
for i:=1 to 3 do begin
s:=s+x[i,1];
q:=q+x[i,2];
w:=w+x[i,3];
end;
label1.Caption:=floattostr(s)+#13+floattostr(q)+#13+floattostr(w);
end;
end;end;end. |
|
#12
|
||||
|
||||
|
Ты ж сказал, у тебя матрица 3х3...
Нет, не так уж всё и верно... порассуждай логически... что где и как... |
|
#13
|
||||
|
||||
|
чет я вообще не въезжаю как ты это хочешь сделать
как-то так наверн надо: Код:
for i:=1 to 3 do
begin
sum:=0;
for j:=1 to 3 do
sum:=sum+x[i,j];
label1.Caption:=label1.Caption+'_'+floattostr(sum);
end;(хотя удобней вообще без матрицы) Последний раз редактировалось SerginhoLD, 11.06.2010 в 02:02. |
|
#14
|
|||
|
|||
|
а теперь он какие-то левые значения выдает... как все-таки сделать то?
|
|
#15
|
||||
|
||||
|
ну если то что я написал ты просто вставил себе то там значения левее некуда будут
я ж тебе предложил сначала в матрицу все занести такимиже for-ами(ну или твоими while-ами), а потом писать что я написал |