2. Дана действительная квадратная матрица порядка n, найти наименьший и наибольший элементы матрицы, и поменять их местами друг с другом. На делфи
2. Дана действительная квадратная матрица порядка n, найти наименьший и наибольший элементы матрицы, и поменять их местами друг с другом. На делфи
Ответ(ы) на вопрос:
Гость
unit Main;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Memo1: TMemo; Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);var i, j, n: integer; min, max, var_bl: real; a: array of array of real;beginMemo1.Clear;if TryStrToInt(Edit1.Text,n) thenbegin n:=StrToInt(Edit1.Text); if n<1 then begin Application.MessageBox('Ошибка!','',0); Exit; end; SetLength(a,n); for i:= 0 to n-1 do SetLength(a[i],n); Randomize; for i:= 0 to n-1 do for j:=0 to n-1 do a[i,j]:=Random(100)-30; min:= a[0,0]; max:= a[0,0]; for i:= 0 to n-1 do begin for j:=0 to n-1 do begin //Memo1.Text:=Memo1.Text+FloatToStrF(a[i,j],ffFixed,5,3)+' ';//Форматированный вывод Memo1.Text:=Memo1.Text+FloatToStr(a[i,j])+' '; //обычный вывод end; Memo1.Lines.Add(''); end;
for i:= 0 to n-1 do for j:=0 to n-1 do begin if(a[i,j]max) then max:=a[i,j]; end; Memo1.Lines.Add('Min='+FloatToStr(min)+', Max='+FloatToStr(max)); for i:= 0 to n-1 do for j:=0 to n-1 do begin if(a[i,j]=min) then begin a[i,j]:= max; Continue; end; if(a[i,j]=max) then a[i,j]:=min; end; Memo1.Lines.Add(''); Memo1.Lines.Add(''); Memo1.Lines.Add('Были поменяны наименьший и наибольший элемент массива'); Memo1.Lines.Add(''); for i:= 0 to n-1 do begin for j:=0 to n-1 do begin //Memo1.Text:=Memo1.Text+FloatToStrF(a[i,j],ffFixed,5,3)+' ';//Форматированный вывод Memo1.Text:=Memo1.Text+FloatToStr(a[i,j])+' '; //обычный вывод end; Memo1.Lines.Add(''); end; Memo1.Lines.Add(''); Memo1.Lines.Add(''); Memo1.Lines.Add(''); Memo1.Lines.Add('');end else Application.MessageBox('Ошибка!','',0);end;
end.
Не нашли ответ?
Похожие вопросы