procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Text:='0,4e4'; //ввод начального значения х Edit2.Text:='-0,875'; //ввод начального значения y Edit3.Text:='-0,475e-3'; //ввод начального значения Z end;
procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Text:='2'; Edit2.Text:='5,6'; Memo1.Clear; end;
procedure TForm1.Button1Click(Sender: TObject); var x,y,f,s : extended; begin Memo1.Clear; x:=StrToFloat(Edit1.Text); y:=StrToFloat(Edit2.Text); case RadioGroup1.ItemIndex of 0 : f:=Cos(x); 1 : f:=Sqr(x); 2 : f:=Sin(x); end; if (f>y) then s:=Power(f,3)+ArcTan(x*y) else if (f<y) then s:=Power(y,3)+ArcTan(x) else s:=Power(y+Sqrt(x),3)+0.5;
type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; StringGrid1: TStringGrid; Button2: TButton; Memo1: TMemo; Label1: TLabel; Label2: TLabel; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; type TMas = array[1..10,1..10] of integer;
var Form1: TForm1; A : TMas; // Объявление двухмерного массива n, m : integer; i, j : integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Clear; n:=4; // Число строк в массиве m:=4; // Число столбцов в массиве Edit1.Text:='4'; Edit2.Text:='4'; StringGrid1.Cells[0,0]:='A'; for i:=1 to n do StringGrid1.Cells[0,i]:='i='+IntToStr(i); for j:=1 to m do StringGrid1.Cells[j,0]:='j='+IntToStr(j);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin n:=StrToInt(Edit1.Text); // Число строк в массиве m:=StrToInt(Edit2.Text); // Число столбцов в массиве {Задание числа строк и столбцов в таблице} StringGrid1.RowCount:=N+1; StringGrid1.ColCount:=M+1; for i:=1 to n do StringGrid1.Cells[0,i]:='i='+IntToStr(i); for j:=1 to m do StringGrid1.Cells[j,0]:='j='+IntToStr(j);
end;
procedure TForm1.Button2Click(Sender: TObject); var p : integer; begin Memo1.Clear; {Заполнение массива А элементами из таблицы StringGrid1} for i:=1 to n do for j:=1 to m do A[i,j]:=StrToInt(StringGrid1.Cells[j,i]); {Расчет}
p:=1; for i:=1 to n do for j:=1 to m do if (i>=-j+n+2) and (j>=-i+m+2) then p:=p*A[i,j]; { Вывод результата }
Memo1.Lines.Add('Произведение элементов расположенных ниже побочной диагонали при условии, что диагональ в расчете не участвует : ' +IntToStr(p));
end;
end.
Лабораторная работа №5 4. Определить, является ли заданная матрица N-го порядка магическим квадратом, т.е. такой, в которой сумма элементов во всех строках и столбцах одинакова.
unit pp;
interface type TMas = array[1..10, 1..10] of integer; Procedure Matric(A : TMas; n,m : integer; var s,cv,ch,v,h : integer); implementation Procedure Matric(A : TMas; n,m : integer; var s,cv,ch,v,h : integer); var i,j : integer; begin h:=0; v:=0; ch:=0; cv:=0;
for i:=1 to n do begin ch:=ch+A[i,1]; end; for j:=1 to m do begin cv:=cv+A[1,j]; end;
j:=1; repeat v:=0; for i:=1 to n do begin v:=v+A[i,j]; if (v=cv) then s:=s+1; end; j:=j+1; until (j>=m);
i:=1; repeat h:=0; for j:=1 to m do begin h:=h+A[i,j]; if (h=ch) then s:=s+1; end; i:=i+1; until (i>=n); end; end.
var Form1: TForm1; A : TMas; n,m : integer; i,j : integer; implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Clear; n:=4; m:=4; Edit1.Text:='4'; Edit2.Text:='4'; StringGrid1.Cells[0,0]:='A'; for i:=1 to n do StringGrid1.Cells[0,i]:='i='+IntToStr(i); for j:=1 to m do StringGrid1.Cells[j,0]:='j='+IntToStr(j);
end;
procedure TForm1.Button1Click(Sender: TObject); begin n:=StrToInt(Edit1.Text); m:=StrToInt(Edit2.Text); {Задание числа строк и столбцов в таблице} StringGrid1.RowCount:=N+1; StringGrid1.ColCount:=M+1; for i:=1 to n do StringGrid1.Cells[0,i]:='i='+IntToStr(i); for j:=1 to m do StringGrid1.Cells[j,0]:='j='+IntToStr(j);
end;
procedure TForm1.Button2Click(Sender: TObject); var h,ch,v,cv,s : integer;
begin Memo1.Clear; {Заполнение массива А элементами из таблицы StringGrid1} for i:=1 to n do for j:=1 to m do A[i,j]:=StrToInt(StringGrid1.Cells[j,i]); {ras4et} Matric(A,n,m,s,cv,ch,v,h);
Memo1.Lines.Add('Количество строк совпавших с основными(cv,ch) = '+IntToStr(s)); Memo1.Lines.Add('Сумма основной строки горизонтали ch = '+IntToStr(ch)); Memo1.Lines.Add('Сумма основной строки вертикали cv = '+IntToStr(cv)); Memo1.Lines.Add('Сумма последней сравниваемой горизонтальной строки v = '+IntToStr(v)); Memo1.Lines.Add('Сумма последней сравнимаемой вертикальной строки h = '+IntToStr(h)); { Вывод результата } if (s=m+n-2)then Memo1.Lines.Add('Результат: Квадрат магический') else Memo1.Lines.Add('Результат: Квадрат не магический'); end;