Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2009, 13:37   #1
бедный мальчик
Новичок
Джуниор
 
Регистрация: 27.10.2009
Сообщений: 1
По умолчанию Массивы и StrGrid(Нужна помощь)

Задача: Написать программу, которая бы
1.заполняла столбец в StrGrid числами из массива
2.Имелась возможность смены количества строк
3.Меняла первую и последнюю строку в StrGrid местами

Проблема: Всё получилось,кроме замены строк местами.сколько не мучался ничего не выход

Вот код

Код HTML:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, Buttons, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    StringGrid1: TStringGrid;
    Button4: TButton;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
const Nmax=100;
type vek=array[1..Nmax] of integer;

var
  Form1: TForm1;
  a:vek;
  i,r:integer;
  n:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
n:=3;
stringGrid1.rowcount:=n+1;
stringgrid1.Cells[0,0]:='массив а';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
n:=strtoint(edit1.text);
stringgrid1.RowCount:=n+1;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
randomize;
for i:=1 to n do
  StringGrid1.Cells[0,i]:=inttostr(random(100));
for i:=1 to n do
  a[i]:=strtoint(stringgrid1.cells[0,i]);
end;

procedure TForm1.Button4Click(Sender: TObject); // ВОТ ЗДЕСЬ СОБСТВЕННО И ДОЛЖНЫ МЕНЯТЬСЯ МЕСТАМИ СТРОКИ
begin
 for i:=1 to n do
 begin
 r:=a[i]; a[i]:=a[n]; a[n]:=r;
 dec(n);
 end;
 for i:=1 to n do
 stringgrid1.Cells[0,i]:=inttostr(a[i]);
end;

end.
Буду очень признателен за помощь.
бедный мальчик вне форума Ответить с цитированием
Старый 27.10.2009, 13:43   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от бедный мальчик Посмотреть сообщение
3.Меняла первую и последнюю строку в StrGrid местами
Проблема: Всё получилось,кроме замены строк местами.
Задаем массив локальных переменных по числу столбцов, заносим туда в цикле, например, данные из первой строки.
Потом копируем данные из последней строки в первую, а данные из нашего массива - в последнюю... Вуа-ля...
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь в Pascal (Одномерные массивы) JayDe Помощь студентам 16 19.12.2009 15:07
Двумерные массивы (pascal) срочно нужна помощь!!! Mirk Паскаль, Turbo Pascal, PascalABC.NET 1 25.05.2009 18:55
Задача на двумерные массивы в паскале, нужна помощь GaJIbI4 Помощь студентам 3 15.04.2009 09:31
Одномерные массивы. Нужна помощь. rus_rock_no_dead Общие вопросы C/C++ 9 20.01.2009 18:58
Массивы(разные)нужна большая помощь! ser-stereo Паскаль, Turbo Pascal, PascalABC.NET 13 22.10.2008 22:53