unit
Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 =
class
(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
StringGrid1: TStringGrid;
Button4: TButton;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Button2: TButton;
procedure
Button1Click(Sender: TObject);
procedure
Button4Click(Sender: TObject);
procedure
Button2Click(Sender: TObject);
private
public
end
;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure
moveleft(
var
A:
array
of
real
; n,k:
integer
);
var
iq, jq,i,j:
integer
;
temp, temp2 :
array
of
real
;
begin
iq := k
mod
n;
jq := n - iq;
setlength(temp,iq);
setlength(temp2,jq);
for
I :=
0
to
iq -
1
do
temp[i] := A[i];
for
I :=
0
to
jq -
1
do
temp2[i] := A[i+iq];
for
I :=
0
to
jq -
1
do
A[i] := temp2[i];
for
I :=
0
to
iq -
1
do
A[i+jq] := temp[i];
end
;
procedure
moveright(
var
A:
array
of
real
; n,k:
integer
);
var
iq, jq,i,j:
integer
;
temp, temp2 :
array
of
real
;
begin
iq := k
mod
n;
jq := n - iq;
setlength(temp,iq);
setlength(temp2,jq);
for
I :=
0
to
iq -
1
do
temp[i] := A[i+jq];
for
I :=
0
to
jq -
1
do
temp2[i] := A[i];
for
I :=
0
to
jq -
1
do
A[i+iq] := temp2[i];
for
I :=
0
to
iq -
1
do
A[i] := temp[i];
end
;
procedure
TForm1
.
Button1Click(Sender: TObject);
var
i:
integer
;
begin
randomize;
StringGrid1
.
ColCount := strtoint(edit1
.
text);
for
I :=
0
to
StringGrid1
.
ColCount -
1
do
StringGrid1
.
Cells[i,
0
] := floattostr(round(random*
255
));
end
;
procedure
TForm1
.
Button2Click(Sender: TObject);
var
a,b,c:
array
of
real
;
a1,b1,c1,i:
integer
;
begin
setlength(a,StringGrid1
.
ColCount);
for
I :=
0
to
StringGrid1
.
ColCount -
1
do
a[i] := strtofloat(StringGrid1
.
cells[i,
0
]);
moveright(a,StringGrid1
.
ColCount, strtoint(edit3
.
text));
for
I :=
0
to
StringGrid1
.
ColCount -
1
do
stringgrid1
.
Cells[i,
0
] := floattostr(a[i]);
end
;
procedure
TForm1
.
Button4Click(Sender: TObject);
var
a,b,c:
array
of
real
;
a1,b1,c1,i:
integer
;
begin
setlength(a,StringGrid1
.
ColCount);
for
I :=
0
to
StringGrid1
.
ColCount -
1
do
a[i] := strtofloat(StringGrid1
.
cells[i,
0
]);
moveleft(a,StringGrid1
.
ColCount, strtoint(edit2
.
text));
for
I :=
0
to
StringGrid1
.
ColCount -
1
do
stringgrid1
.
Cells[i,
0
] := floattostr(a[i]);
end
;
end
.