В матрице 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. Он предназначен для выполнения следующих задач:
- Получение от пользователя размера матрицы (n) в форме TForm1 при нажатии кнопки Button1.
- Создание матрицы a размером n на n.
- Создание и заполнение матрицы b.
- Создание и заполнение матрицы y.
- Нахождение максимального элемента в матрице a и сохранение его в y[i].
- Нахождение минимального элемента в матрице a и сохранение его в b[i].
- Вывод на экран значений max и min. Код выполняется следующим образом:
- При нажатии кнопки Button1 запускается процедура Button1Click, в которой происходит получение от пользователя размера матрицы (n) и обновление размеров метки StringGrid1.
- При нажатии кнопки Button2 запускается процедура Button2Click, в которой создается и заполняется матрица a.
- В цикле перебираются все элементы матрицы a. Если текущий элемент больше максимального значения max, то max обновляется. После завершения цикла значение max сохраняется в элементе y[i].
- В цикле перебираются все элементы матрицы a, начиная с последнего столбца и двигаясь влево. Если текущий элемент меньше минимального значения min, то min обновляется. После завершения цикла значение min сохраняется в элементе b[i].
- Значения max и min выводятся на экран с помощью меток Label2 и Label3.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д