В матрице n-го порядка найти сумму элеметнов, лежащих выше побочной диагонали, и произведение элементов лежащих ниже главной диагонали - Pascal

Узнай цену своей работы

Формулировка задачи:

В матрице n-го порядка найти сумму элеметнов, лежащих выше побочной диагонали, и произведение элементов лежащих ниже главной диагонали. Спасибо!

Решение задачи: «В матрице n-го порядка найти сумму элеметнов, лежащих выше побочной диагонали, и произведение элементов лежащих ниже главной диагонали»

textual
Листинг программы
unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  Grids;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
  const Nmax=10;
type
  Mas2=array[1..Nmax,1..nmax] of extended;
  Mas1=array[1..Nmax-1] of integer;
var
  Form1: TForm1; 
 a:Mas2;
 b,y:Mas1;
 n,i,j:integer;
implementation
 
{$R *.lfm}
 
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
 n:=3;
 Edit1.Text:=FloatToStr(n);
 StringGrid1.ColCount:=n+1;
 StringGrid1.RowCount:=n+1;
 StringGrid1.Cells[0,0]:='Массив А:';
 for i:=1 to n do
 begin
   StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);
   StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);
 end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 n:=StrToInt(Edit1.Text);
 StringGrid1.ColCount:=n+1;
 StringGrid1.RowCount:=n+1;
 for i:=1 to n do
 begin
   StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);
   StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);
 end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var max,min:integer;
 
begin
for i:=1 to n do
for j:=1 to n do
 a[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);
begin
max:=strtoint(StringGrid1.Cells[2,1]);
for i:=2  to  N do
for j:=(N-i+2) to  N do
begin
if
strtoint(StringGrid1.Cells[i,j])> max then max:=strtoint(StringGrid1.Cells[i,j]);
y[i]:=max;
 Label2.Caption:=inttostr(y[i]);
end;
min:=strtoint(StringGrid1.Cells[2,1]);
for i:=2 to  N-1 do
for j:=n downto  (i+1) do
begin
if
strtoint(StringGrid1.Cells[j,i])<min then min:=strtoint(StringGrid1.Cells[j,i]);
b[i]:=min;
Label3.Caption:=IntToStr(b[i]);
end;
end;
end;
end.

Объяснение кода листинга программы

В этом коде используется язык программирования Pascal. Он предназначен для выполнения следующих задач:

  1. Получение от пользователя размера матрицы (n) в форме TForm1 при нажатии кнопки Button1.
  2. Создание матрицы a размером n на n.
  3. Создание и заполнение матрицы b.
  4. Создание и заполнение матрицы y.
  5. Нахождение максимального элемента в матрице a и сохранение его в y[i].
  6. Нахождение минимального элемента в матрице a и сохранение его в b[i].
  7. Вывод на экран значений max и min. Код выполняется следующим образом:
  8. При нажатии кнопки Button1 запускается процедура Button1Click, в которой происходит получение от пользователя размера матрицы (n) и обновление размеров метки StringGrid1.
  9. При нажатии кнопки Button2 запускается процедура Button2Click, в которой создается и заполняется матрица a.
  10. В цикле перебираются все элементы матрицы a. Если текущий элемент больше максимального значения max, то max обновляется. После завершения цикла значение max сохраняется в элементе y[i].
  11. В цикле перебираются все элементы матрицы a, начиная с последнего столбца и двигаясь влево. Если текущий элемент меньше минимального значения min, то min обновляется. После завершения цикла значение min сохраняется в элементе b[i].
  12. Значения max и min выводятся на экран с помощью меток Label2 и Label3.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы