Torbins написав:Тільки я не можу зрозуміти, куди підставлять значення непарного та парного елементу?
Я також, бо ви про це докладно не писали.
Я би написав докладно, що куди, але вчитель дав на індивідуальне опрацювання і більше нічого не пояснив...
В мене є схожий код ,можливо він чимось допоможе, там все показано, але я не можу все це скласти до купи...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DB, ADODB;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
StringGrid2: TStringGrid;
Label4: TLabel;
Button6: TButton;
Button7: TButton;
ADOTable1: TADOTable;
ADOConnection1: TADOConnection;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
SG1 : Array[1..4,1..5] Of Real;
SG2 : Array[1..4] Of Real;
i, j, k, buf : Integer;
max : Real;
f:Text;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
k := 1;
For i:=1 To 4 Do
For j:=1 To 5 Do
Begin
If ((k Mod 2) <> 0) Then
StringGrid1.Cells[j-1,i-1] := FloatToStr(k - 1)
Else
StringGrid1.Cells[j-1,i-1] := FloatToStr(k + 1);
k := k + 1;
End;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Randomize;
For i:=1 To 4 Do
For j:=1 To 5 Do
StringGrid1.Cells[j-1,i-1] := FloatToStr(50 - Random(101));
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i, j, k, p, index : Integer;
res : Real;
begin
for i := 1 to 4 do {столбцы}
for j := 1 to 5 do { строки }
if StringGrid1.Cells[j - 1, i - 1] = '' then { StringGrid1.Cells[строка,столбец]}
SG1[i, j] := 0 { SG1[столбец,строка] }
else
SG1[i, j] := StrToFloat(StringGrid1.Cells[j - 1, i - 1]);
for i := 1 to 4 do {столбцы}
begin
SG2[i] := 1;
for j := 1 to 5 do { строки }
begin
p := -1; { парность неопределена}
index := j; {фиксируем index}
for k := 1 to 5 do
begin
if k <> index then
begin
if SG1[i, k] = SG1[i, index] then
p := 1 {элемент парный}
else
p := 0; {элемент непарный}
end;
end;
if p = 1 then
res := 3.2 + SG1[i, j] { непарный 3.2+i }
else
begin
if p = 0 then
res := 6.4 - SG1[i, j]; { парный 6.4+i }
{ else ошибка}
end;
{ значения элементов одномерного массива StringGrid2.Cells
состоят из произведения положительных значений элементов
столбцов двухмерного массива }
if res > 0 then
begin
SG2[i] := SG2[i] * res;
end;
end;
end;
for i := 1 to 4 do
StringGrid2.Cells[0, i - 1] := FloatToStr(SG2[i]);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
For i:=1 To 4 Do
For j:=1 To 5 Do
StringGrid1.Cells[j-1,i-1] := ' ';
For i:=1 To 4 Do
Begin
StringGrid2.Cells[0,i-1] := ' ';
SG2[i] := 0;
End;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Close
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
AssignFile(f,GetCurrentDir+'\F.txt');
Reset(f);
For i:=1 To 4 Do
For j:=1 To 5 Do
Begin
Read(f,buf);
StringGrid1.Cells[j-1,i-1] := IntToStr(buf);
End;
CloseFile(f);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
With ADOTable1 Do
Begin
Active:=True;
First;
For i:=1 To 4 Do
For j:=1 To 5 Do
begin
StringGrid1.Cells[j-1,i-1] := IntToStr(Integer(FieldValues['chislo']));
Next;
End;
end;
AdoConnection1.Close;
end;
end.