![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Задача:
В заданной матрице С записать на место отрицательных элементов нули, а на место положительных - единицы. Исходную и полученную матрицы вывести в общепринятом виде. На форме есть 3 StringGrida и кнопка, не могу вывести измененную матрицу в 3 StringGrid. Помогите. Код:
procedure TForm1.Button2Click(Sender: TObject); var x:array[1..10,1..10] of integer; begin with StringGRid1 do for i:=0 to RowCount do for j:=0 to ColCount do StringGrid2.Cells[i,j]:=StringGrid1.Cells[i,j]; end; Begin for i:=1 to m do for j:=1 to n do begin if x[i,j]<=0 then x[i,j]:=0 else x[i,j]:=1; |
#2
|
||||
|
||||
![]() Матрица X в этой процедуре не инициализирована. Насколько я понял, Вы по ней определяете 0 или 1 поставить. Если я правильно понял, то она должна получать значения из какого-то StringGrid'а, для этого просто забивайте в неё значения во вложенном цикле, который в конструкции With.
Чем больше знаешь, тем сильнее осознаёшь, что знаешь гораздо меньше, чем не знаешь!.. |
#3
|
|||
|
|||
![]() А поподробнее как это написать?
|
#4
|
||||
|
||||
![]() Во первых, ваш код проверки матрицы не соответствует условию задачи.
Во вторых, вы работаете с матрицей, а собственно вывода этой матрицы в грид я не вижу в вашем коде нигде. И вообще вы такой куций код привели, что понять где вы еще наврали у меня не получается. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 28.05.2012 в 21:07. |
#5
|
||||
|
||||
![]() Цитата:
Цитата:
Вот как я увидел решение твоей задачи... Код:
const MatrixSize = 9; var FormGeneral: TFormGeneral; OriginalMatrix: array[0..MatrixSize, 0..MatrixSize] of Integer; implementation {$R *.dfm} //заполнение исходной матрицы случайными числами procedure FillingMatrix; var I, J: Byte; begin for I := 0 to MatrixSize do for J := 0 to MatrixSize do OriginalMatrix[J, I] := Random(100) - 50; end; //преобразование исходной матрицы //замены отрицательных значений на нули, //а положительных на единицы procedure ResultingMatrix; var T, K: Byte; begin for T := 0 to MatrixSize do for K := 0 to MatrixSize do begin if OriginalMatrix[K, T] < 0 then OriginalMatrix[K, T] := 0; if OriginalMatrix[K, T] > 0 then OriginalMatrix[K, T] := 1; end; end; //вывод исходной заполненой матрицы procedure TFormGeneral.FormCreate(Sender: TObject); var c, r: Byte; begin FillingMatrix; for r := 0 to MatrixSize do for c := 0 to MatrixSize do SGOriginalMatrix.Cells[c, r] := IntToStr(OriginalMatrix[c, r]); end; //вывод преобразованной матрицы procedure TFormGeneral.BtnResultMClick(Sender: TObject); var cl, rw: Byte; begin ResultingMatrix; for rw := 0 to MatrixSize do for cl := 0 to MatrixSize do SGResultMatrix.Cells[cl ,rw] := IntToStr(OriginalMatrix[cl, rw]); end; end. Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
Этот пользователь сказал Спасибо Kailon за это полезное сообщение: | ||
YorikBir (29.05.2012)
|