IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> StringGrid сортировка, по строкам
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Влад

Репутация: -  0  +


var
Form1: TForm1;
i,j:integer;
implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
with StringGrid1 do
for i:=0 to ColCount -1 do
for j:=0 to RowCount -1 do
cells[i,j]:=inttostr(random(50)+1);
end;

procedure TForm1.Button2Click(Sender: TObject);
var temp:integer;
begin
with StringGrid1 do
for i:=1 to ColCount -1 do
for j:=0 to RowCount -1 do
if StrToInt(cells[i,j])>StrToInt(cells[i-1,j]) then
begin
temp:=StrToInt(cells[i-1,j]);
cells[i-1,j]:=cells[i,j];
cells[i,j]:=IntToStr(temp);
end;
end;

begin
randomize;
end.



Код для стрингрида и двух кнопок. Первая формирует, вторая сортирует по убыванию

Помогите плиз:
1.сортировка происходит с шагом на одну клетку, как сделать что бы они выстроились в нужную последовательность после 1 нажатия?
2. нужно сосчитать сумму чисел в строке и выстроить строки по возрастанию этого самого числа
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Влад

Репутация: -  0  +


Цитата
? Вот где здесь, в задании, сказано что-то про какую-то сумму? Процитируй мне это, может у меня что-то с глазами?

Не хочу тебя расстраивать, но...
Цитата
Код для стрингрида и двух кнопок. Первая формирует, вторая сортирует по убыванию

Помогите плиз:
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.


Что то не так с последней процедурой

Сообщение отредактировано: Alucard -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.05.2024 14:48
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name