Ahoj, potřeboval bych poradit.. Vytvořil jsem program, který mi připraví matici podle zadaných parametrů - počet řádků a počet sloupců. Potom do této matice pomocí generátoru náhodných čísel vygeneruji čísla z intervalu od 1 do 10. Potřeboval bych zajistit aby se mi ve sloupcích sečetly sudá čísla. Něco jsem zkusil, ale to samotné sečtení mi nějak nejde :-/. Přikládám zdrojová kód a prosím vás o radu :-).
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
bt_priprav: TButton;
edtn: TEdit;
edtm: TEdit;
bt_nacti: TButton;
sg: TStringGrid;
lbl_pro_n: TLabel;
lbl_pro_m: TLabel;
bt_soucet: TButton;
bt_konec: TButton;
Label1: TLabel;
procedure bt_pripravClick(Sender: TObject);
procedure bt_nactiClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure bt_konecClick(Sender: TObject);
procedure bt_soucetClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Tmat=array[1..10,1..10] of integer; {určí hodnotu v jaké se má pohybovat
generátor}
var
Form1: TForm1;
a:Tmat;
n,m:integer; {určí proměnnou n a m, konrétně o jaký typ se jedná}
implementation
{$R *.dfm}
procedure TForm1.bt_pripravClick(Sender: TObject);
var sirka,vyska:integer;
begin
n:=StrToInt(Edtn.Text); {načte z edtn hodnotu pro počet sloupců}
m:=StrToInt(Edtm.Text); {načte z edtm hodnotu pro počet řádků}
sg.colcount:=n; {nastavení počtu sloupců pomocí edtn}
sg.rowcount:=m; {nastavení počtu řádků pomocí edtm}
sirka:=sg.DefaultColWidth;
vyska:=sg.DefaultRowHeight;
sg.Width:=n*sirka+n+4; {nastavení šírky buňky}
sg.Height:=m*vyska+m+4; {nastavení výšky buňky}
bt_nacti.Visible:=true; {po nachystání stringridu se zobrazi
tlačítko pro naplnění stringridu}
end;
function soucet(j:integer; var a:Tmat):integer;
var i:integer;
begin
Result:=0;
for i:=1 to m do
if a[i,j] mod 2=0 then
Result:=Result+a[i,j];
end;
procedure TForm1.bt_nactiClick(Sender: TObject);
var i,j:integer;
begin
for i:=1 to m do
for j:=1 to n do
begin
sg.cells[j-1,i-1]:=IntToStr(a[i,j]);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin
for i:=1 to 10 do
for j:=1 to 10 do
a[i,j]:=random(10)+1;
end;
procedure TForm1.bt_konecClick(Sender: TObject);
begin
close;
end;
procedure TForm1.bt_soucetClick(Sender: TObject);
var result:integer;
begin
label1.caption:=IntToStr(result);
end;
end.