Суммы всех членов в строке и столбце
Категория: Delphi/Pascal
2012-11-09 15:57:09
В поле memo вводим матрицу 5х5. В другом поле memo должна быть выведена таже матрица, но у нее по главной диагонали должны стоять суммы всех членов в данной строке и столбце, т.е. элемент с индексом (1;1) должен быть суммой всех чисел в 1 столбце и 1 строке и т.д.
code: #delphi
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Memo2: TMemo; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Matr : array [1..5,1..5] of integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var i,j: integer; s: string; begin s := ''; Randomize; for i:=1 to 5 do begin for j:=1 to 5 do begin Matr[i,j] := random(10); S := S + IntToStr(Matr[i,j]) + ' '; end; Memo1.Lines.Add(s); Memo2.Lines.Add(s); S := ''; end; end; procedure TForm1.Button1Click(Sender: TObject); var SumX,SumY,i,j: integer; MasSum : array [1..5] of integer; s : string; begin for i:=1 to 5 do MasSum[i] := 0; s := ''; SumX := 0; SumY := 0; Memo1.Clear; Memo2.Clear; for i:=1 to 5 do begin for j:=1 to 5 do begin SumY := SumY + Matr[i,j]; end; MasSum[i] := MasSum[i] + SumY; SumY := 0; end; for j:=1 to 5 do begin for i:=1 to 5 do begin SumX := SumX + Matr[i,j]; end; MasSum[j] := MasSum[j] + SumX; SumX := 0; end; for i:=1 to 5 do begin Matr[i,i] := MasSum[i]; end; for i:=1 to 5 do begin for j:=1 to 5 do S := S + IntToStr(Matr[i,j]) + ' '; Memo1.Lines.Add(s); Memo2.Lines.Add(s); S := ''; end; end; end.
автор: Zylex
Поделиться: