
Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:PascalDelphi / Многие готовые лабы за 1&2 сем. от Колесниковой М.Д. / DvDinMas / Unit1
.pas unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids,UnitPP;
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;
Button3: TButton;
Button4: TButton;
Label8: TLabel;
Edit4: TEdit;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Edit5: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(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);
var i,j,k:integer;
begin
m:=StrToInt(Edit1.text);
n:=StrToInt(Edit2.text);
SetLength(a,m);
for i:=0 to m-1 do SetLength(a[i],n);
{ Ввод матрицы из Edit3}
k:=1;
for i:=0 to m-1 do
for j:=0 to n-1 do
begin a[i,j]:=StrToInt(GetSubStr(Edit3.text,k));
k:=k+1
end
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
begin
{Вывод номеров строк в 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:=0 to m-1 do
for j:=0 to n-1 do Cells[j+1,i+1]:=IntToStr(a[i,j]);
end;
procedure TForm1.Button3Click(Sender: TObject);
var b:vec;
n1,i,j,k:integer;
bmax,bmin,nom:integer;
imax,imin:integer;
begin n1:=m*n;
SetLength(b,n1);
k:=-1;
for i:=0 to m-1 do
for j:=0 to n-1 do
begin k:=k+1; b[k]:=a[i,j] end;
for i:=0 to n1-1 do Edit4.text:=Edit4.text+' '+IntToStr(b[i]);
k:=length(b);
maxel(k,b,bmax,imax); minel(k,b,bmin,imin);
Label9.Caption:='Максимальный элемент вектора='+IntToStr(bmax);
Label10.Caption:='Его номер='+IntToStr(imax);
Label11.Caption:='Минимальный элемент вектора='+IntToStr(bmin);
Label12.Caption:='Его номер='+IntToStr(imin);
if imax>imin then begin nom:=imin+1;k:=imax-imin-1 end
else begin nom:=imax+1;k:=imin-imax-1 end;
b:=copy(b,nom,k);
for i:=0 to k-1 do Edit5.text:=Edit5.text+' '+IntToStr(b[i]);
a:=nil;b:=nil;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
close
end;
end.
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids,UnitPP;
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;
Button3: TButton;
Button4: TButton;
Label8: TLabel;
Edit4: TEdit;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Edit5: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(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);
var i,j,k:integer;
begin
m:=StrToInt(Edit1.text);
n:=StrToInt(Edit2.text);
SetLength(a,m);
for i:=0 to m-1 do SetLength(a[i],n);
{ Ввод матрицы из Edit3}
k:=1;
for i:=0 to m-1 do
for j:=0 to n-1 do
begin a[i,j]:=StrToInt(GetSubStr(Edit3.text,k));
k:=k+1
end
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
begin
{Вывод номеров строк в 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:=0 to m-1 do
for j:=0 to n-1 do Cells[j+1,i+1]:=IntToStr(a[i,j]);
end;
procedure TForm1.Button3Click(Sender: TObject);
var b:vec;
n1,i,j,k:integer;
bmax,bmin,nom:integer;
imax,imin:integer;
begin n1:=m*n;
SetLength(b,n1);
k:=-1;
for i:=0 to m-1 do
for j:=0 to n-1 do
begin k:=k+1; b[k]:=a[i,j] end;
for i:=0 to n1-1 do Edit4.text:=Edit4.text+' '+IntToStr(b[i]);
k:=length(b);
maxel(k,b,bmax,imax); minel(k,b,bmin,imin);
Label9.Caption:='Максимальный элемент вектора='+IntToStr(bmax);
Label10.Caption:='Его номер='+IntToStr(imax);
Label11.Caption:='Минимальный элемент вектора='+IntToStr(bmin);
Label12.Caption:='Его номер='+IntToStr(imin);
if imax>imin then begin nom:=imin+1;k:=imax-imin-1 end
else begin nom:=imax+1;k:=imin-imax-1 end;
b:=copy(b,nom,k);
for i:=0 to k-1 do Edit5.text:=Edit5.text+' '+IntToStr(b[i]);
a:=nil;b:=nil;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
close
end;
end.
Соседние файлы в папке DvDinMas