Цитата
? Вот где здесь, в задании, сказано что-то про какую-то сумму? Процитируй мне это, может у меня что-то с глазами?
Не хочу тебя расстраивать, но...
Цитата
Код для стрингрида и двух кнопок. Первая формирует, вторая сортирует по убыванию
Помогите плиз:
1.сортировка происходит с шагом на одну клетку, как сделать что бы они выстроились в нужную последовательность после 1 нажатия?
2. нужно сосчитать сумму чисел в строке и выстроить строки по возрастанию этого самого числа
ClientСПАСИБОА можно обойтись без массива в этом задании? Все операции сделать в стринггриде? Это ведь тоже массив
Код
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
a=array [1..5] of integer;
m=array [1..5] of a;
const
n=5;
var
Form1: TForm1;
mas:m;
implementation
{$R *.dfm}
procedure refreshtable;
var
i,j:byte;
begin
for i:= 1 to n do
for j:= 1 to n do
Form1.StringGrid1.Cells[j-1,i-1]:=IntToStr(mas[i,j]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:byte;
s:integer;
begin
for i:= 1 to n do
begin
s:=0;
for j:= 1 to n do
begin
mas[i,j]:=Random(50)+1;
s:=s+mas[i,j];
end;
StringGrid1.Cells[5,i-1]:=IntToStr(s);
end;
refreshtable;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i,j:byte;
s:string;
k:a;
begin
for i := 1 to 4 do
for j := 1 to n-i do
if (StrToInt(StringGrid1.Cells[5,j]) < StrToint(StringGrid1.Cells[5,j-1])) then
begin
k:=mas[j];
mas[j]:=mas[j+1];
mas[j+1]:=k;
s:=StringGrid1.Cells[5,j-1];
StringGrid1.Cells[5,j-1]:=StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]:=s;
end;
refreshtable;
end;
procedure TForm1.Button2Click(Sender: TObject);
var temp,i,j:byte;
begin
for i:=1 to n do
for j:=0 to n do
if mas[i,j]>mas[i-1,j] then
begin
temp:=mas[i-1,j];
mas[i-1,j]:=mas[i,j];
mas[i,j]:=temp;
end;
refreshtable;
end;
end.
Что то не так с последней процедурой