Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:PascalDelphi / Многие готовые лабы за 1&2 сем. от Колесниковой М.Д. / L3Pr5 / Unit1
.pas unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Label5: TLabel;
Edit2: TEdit;
Label6: TLabel;
Edit3: TEdit;
Label7: TLabel;
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
//Функция выделения подстроки из строки
function GetSubStr(st:string;n:integer):string;
var i,p:integer;
begin for i:=1 to n-1 do
begin p:=pos(' ',st); st:=copy(st,p+1,length(st)-p) end;
p:=pos(' ',st);//конец нужной подстроки
if p <> 0 then result:=copy(st,1,p-1)
else result:=st
end;
procedure TForm1.Button1Click(Sender: TObject);
const nn=6;
type size=1..nn;
var a:array[size,size]of integer;
m,n:size;
max:integer;
imax,jmax:size;
i,j,k:integer;
begin
m:=StrToInt(Edit1.text);n:=StrToInt(Edit2.text);
{ Ввод матрицы из Edit3}
k:=1;
for i:=1 to m do
for j:=1 to n do
begin a[i,j]:=StrToInt(GetSubStr(Edit3.text,k));
k:=k+1
end;
{Вывод номеров строк в 0-м столбце и столбцов в 0-й строке}
with StringGrid1 do
begin i:=0; //0-й столбец
for j:=1 to RowCount-1 do //вывести номера строк
Cells[i,j]:=IntToStr(j);
j:=0; //0-я строка
for i:=1 to ColCount-1 do //вывести номера столбцов
Cells[i,j]:=IntToStr(i);
end;
{ Вывод элементов матрицы в таблицу }
with StringGrid1 do
for i:=1 to m do
for j:=1 to n do Cells[j,i]:=IntToStr(a[i,j]);
max:=a[1,1]; imax:=1; jmax:=1;
for i:=1 to m do
for j:=1 to n do
if a[i,j] > max then
begin max:=a[i,j];imax:=i;jmax:=j end;
Label8.Caption:='max='+IntToStr(max);
Label9.Caption:='imax='+IntToStr(imax);
Label10.Caption:='jmax='+IntToStr(jmax);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;
end.
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Label5: TLabel;
Edit2: TEdit;
Label6: TLabel;
Edit3: TEdit;
Label7: TLabel;
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
//Функция выделения подстроки из строки
function GetSubStr(st:string;n:integer):string;
var i,p:integer;
begin for i:=1 to n-1 do
begin p:=pos(' ',st); st:=copy(st,p+1,length(st)-p) end;
p:=pos(' ',st);//конец нужной подстроки
if p <> 0 then result:=copy(st,1,p-1)
else result:=st
end;
procedure TForm1.Button1Click(Sender: TObject);
const nn=6;
type size=1..nn;
var a:array[size,size]of integer;
m,n:size;
max:integer;
imax,jmax:size;
i,j,k:integer;
begin
m:=StrToInt(Edit1.text);n:=StrToInt(Edit2.text);
{ Ввод матрицы из Edit3}
k:=1;
for i:=1 to m do
for j:=1 to n do
begin a[i,j]:=StrToInt(GetSubStr(Edit3.text,k));
k:=k+1
end;
{Вывод номеров строк в 0-м столбце и столбцов в 0-й строке}
with StringGrid1 do
begin i:=0; //0-й столбец
for j:=1 to RowCount-1 do //вывести номера строк
Cells[i,j]:=IntToStr(j);
j:=0; //0-я строка
for i:=1 to ColCount-1 do //вывести номера столбцов
Cells[i,j]:=IntToStr(i);
end;
{ Вывод элементов матрицы в таблицу }
with StringGrid1 do
for i:=1 to m do
for j:=1 to n do Cells[j,i]:=IntToStr(a[i,j]);
max:=a[1,1]; imax:=1; jmax:=1;
for i:=1 to m do
for j:=1 to n do
if a[i,j] > max then
begin max:=a[i,j];imax:=i;jmax:=j end;
Label8.Caption:='max='+IntToStr(max);
Label9.Caption:='imax='+IntToStr(imax);
Label10.Caption:='jmax='+IntToStr(jmax);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;
end.