|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.06.2011, 10:11 | #1 |
Пользователь
Регистрация: 11.02.2011
Сообщений: 12
|
StringGrid
Помогите исправить ошибку,
Такое задание: Задана квадратная матрица. Поменять местами строку с максимальным элементом на главной диагонали со строкой с заданным номером m. Такой код: unit U_F_1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TF_1 = class(TForm) StringGrid1: TStringGrid; Button1: TButton; E_3: TEdit; L_3: TLabel; L_com_3: TLabel; L_4: TLabel; B_2: TButton; procedure Button1Click(Sender: TObject); procedure B_2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var F_1: TF_1; const n=6; var m:array[1..n,1..n]of integer; i,j,index,k,max,buf:integer; implementation {$R *.dfm} procedure TF_1.Button1Click(Sender: TObject); {const n=6; var m:array[1..n,1..n]of integer; i,j,index,k,max,buf:integer; } begin randomize; for i:=1 to n do begin for j:=1 to n do begin m[i,j]:=random(10); StringGrid1.Cells[i-1,j-1] := FloatToStrF(m[i,j], ffFixed, 2, 0); end; end; max:=m[1,1]; index:=1; for i:=1 to n do if m[i,i]>max then begin max:=m[i,i]; index:=i; end; L_com_3.Caption:='Максимальный элемент'+#13+IntToStr(max); L_4.Caption:='Строка'+#13+IntToStr( index); end; procedure TF_1.B_2Click(Sender: TObject); {const n=6; var m:array[1..n,1..n]of integer; i,j,index,k,max,buf:integer; } begin max:=m[1,1]; index:=1; for i:=1 to n do if m[i,i]>max then begin max:=m[i,i]; index:=i; end; repeat k:=StrToInt(E_3.Text); until k in [1..n]; if index<>k then for i:=1 to n do begin buf:=m[index,i]; m[index,i]:=m[k,i]; m[k,i]:=buf; end; for i:=1 to n do begin for j:=1 to n do StringGrid1.Cells[i-1,j-1] := inttostr(m[j,i]); //StringGrid1.Cells[i-1,j-1] := FloatToStrF(m[i,j], ffFixed, 2, 0); end; end; end. На форме есть StringGrid, Button1(заполняет рандомайзом стрингрид), E_3(Edit) в который вводим номер строки перестановки, и ещё клавиша B_2(котороая заменяет), но проблема в том что заменяет как то криво |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
StringGrid | ВасяСВВ | C++ Builder | 4 | 31.03.2011 23:25 |
stringgrid+колесо мыши=>stringgrid.onclick | aalleexxaa | Общие вопросы Delphi | 5 | 16.02.2011 16:58 |
StringGrid | zmey31313 | Помощь студентам | 1 | 28.03.2010 15:18 |
StringGrid[..]..... | zotox | Помощь студентам | 3 | 24.07.2009 10:49 |
БД и StringGrid | artemavd | БД в Delphi | 1 | 24.08.2008 10:36 |