![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() спасибо что поомгли в прошлой теме, но сейчас запутался как выести минимальную строку и ее номер в memo
Код:
begin randomize; n:=random(8)+ 2; n1:=random(8)+ 2; Edit1.Text:=inttostr(n+1); Edit2.Text:=inttostr(n1+1); With StringGrid1 do begin RowCount:=n+1;ColCount:=n1+1; for i:=0 to n do begin sum:=0; for j:=0 to n1 do begin x[i+1,j+1]:= random(10)+2; Cells[j,i]:= FormatFloat('0.00',x[i+1,j+1]); sum:= sum + x[i+1,j+1]; end; Memo1.Lines.Add('Сумма элементов '+inttostr(i+1)+'-ой строки = '+inttostr(sum)); end; end; end; end; |
#2
|
||||
|
||||
![]() Цитата:
![]() Видимо вам нужно получить индекс ячеки грида, содержащий минимальное значение? Попробуйте так: Код:
Var Min: TPoint; ... Min := Point(0, 0); for i:=0 to n do for j:=0 to n1 do if StrToFloat(Cells[j,i]) < StrToFloat(Cells[Min.X,Min.Y]) then Min := Point(i,j); Memo1.Lines.Add('Минимальный элемент = ' + FloatToStr(Cells[Min.X,Min.Y]) + ' расположенный в строке ' + IntToStr(Min.Y)); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
||||
|
||||
![]() Есть подозрение что ТСу нужно такое, вывод чисто по предыдущей теме того же автора
Код:
procedure TForm1.Button1Click(Sender: TObject); var i, j, n, n1: integer; d: double; tmp: array of double; x: array of array of double; begin Randomize; n:= Random(8) + 2; n1:= Random(8) + 2; Edit1.Text:= inttostr(n1); Edit2.Text:= inttostr(n); SetLength(x, n, n1); with StringGrid1 do begin RowCount:= n; ColCount:= n1; end; for i := 0 to n-1 do for j := 0 to n1-1 do begin x[i, j]:= Random; StringGrid1.Cells[j, i]:= FloatToStr(x[i, j]); end; Memo1.Clear; SetLength(tmp, n); for i := 0 to n-1 do begin tmp[i]:= Sum(x[i]); Memo1.Lines.Add('Сумма элементов '+inttostr(i+1)+'-ой строки = '+FloatToStr(tmp[i])); end; d:= MinValue(tmp); Memo1.Lines.Add(''); for i := 0 to n-1 do if tmp[i] = d then Memo1.Lines.Add('Мин. сумма - ' + FloatToStr(tmp[i])+', строка ' + inttostr(i+1)); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#4
|
||||
|
||||
![]() Вполне возможно. Автор уж очень лаконично изложил проблему, вариантов сходу вот два уже придумали, а думаю это далеко не предел. Подождем виновника.
![]() Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
![]() не очень разобрался с вашим кодом
вот мой и я так и не разобрался что мне делать ( Код:
begin randomize; n:=random(8)+ 2; n1:=random(8)+ 2; Edit1.Text:=inttostr(n+1); Edit2.Text:=inttostr(n1+1); With StringGrid1 do begin RowCount:=n+1;ColCount:=n1+1; for i:=0 to n do begin sum:=0; for j:=0 to n1 do begin x[i+1,j+1]:= random(10)+2; Cells[j,i]:= IntToStr(x[i+1,j+1]); sum:= sum + x[i+1,j+1]; end; Memo1.Lines.Add('Сумма элементов '+inttostr(i+1)+'-ой строки = '+inttostr(sum)); end; end; end; |
#6
|
||||
|
||||
![]() Скопируйте да запустите, не забыв про юнит Math, баттон, два эдита, стрингрид и мемо... Что, не работает?
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
|||
|
|||
![]() ох, тему можно закрывать большое спасибо )
просто я сам кое что делал, но в итоге в мемо не то выводилось ... Код:
begin Result := 0; SumOld := 0; Sum := 0; randomize; n:=random(8)+ 2; n1:=random(8)+ 2; Edit1.Text:=inttostr(n+1); Edit2.Text:=inttostr(n1+1); With StringGrid1 do begin RowCount:=n+1;ColCount:=n1+1; for i:=0 to n do begin SumOld := Sum; Sum := 0; for j:=0 to n1 do begin x[i+1,j+1]:= random(10)+2; Cells[j,i]:= IntToStr(x[i+1,j+1]); sum:= sum + x[i+1,j+1]; if Sum < SumOld then Result := i; end; Memo1.Lines.Add('Сумма элементов '+inttostr(i+1)+'-ой строки = '+inttostr(sum)); end; Memo1.Lines.Add('Минимальный элемент в '+inttostr(Result+1) + '-ой строке'); end; end; |