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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2015, 19:56   #1
Vladimir_0
Пользователь
 
Регистрация: 11.03.2014
Сообщений: 10
По умолчанию Вставка строк в двумерный массив

Доброго времени суток! Необходимо вставить после каждой нечетной строки вставить строку, номер которой введен в программе. Собственно подскажите, что не так. Заранее благодарен.
Код:
procedure TForm1.Button6Click(Sender: TObject);
var
b, c: array of array of integer;
i, j, k, t, n1: integer;
j1: integer;
begin
stringgrid2.ColCount:=m;    //столбцы
stringgrid2.RowCount:=n;    //строки
n1:=0;
t:=strtoint(edit6.text);    //кол-во столбцов
setlength(b, m, n);
 setlength(c,m,n1);
If (t>=1) and (t<=m) then     //если (i1>=1) and (i1<=m) то
begin
//------------копирования массива-------------------
   for j:=0 to n-1 do       //цикл копирования массива по строкам
      begin
         for i:=0 to m-1 do //цикл копирования массива по столбцам
            begin
            b[i,j]:=a[i,j]; // копируем a в p
            end;
      end;
//--------------------------------------------------
   begin
   n1:=(n div 2)+n;            //новая длина с нечетными строками
   j1:=0;
   setlength(b,m,n1);
stringgrid2.ColCount:=m;    //столбцы
stringgrid2.RowCount:=n1;    //строки
   for i:=0 to m-1 do //цикл копирования массива по столбцам
      begin
      for j:=0 to n-1 do       //цикл копирования массива по строкам
         begin
         if ((j+1)mod 2=1) then
            begin
            c[i,j1]:=a[i,j];
            stringgrid2.cells[i,j1]:=inttostr(c[i,j]);
            inc(j1);
            c[i,j1]:=a[i,t];
            stringgrid2.cells[i,j1]:=inttostr(c[i,t]);
            inc(j1);
            end
         else
            begin
            c[i,j1]:=a[i,j];
            stringgrid2.cells[i,j1]:=inttostr(c[i,j]);
            inc(j1);
            end;
         end;
      end;
      end;
end
else
showmessage('ошибка');
end;
 
 
end.
Vladimir_0 вне форума Ответить с цитированием
Старый 22.10.2015, 11:28   #2
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Vladimir_0 Посмотреть сообщение
Собственно подскажите, что не так.
Код:

b, c: array of array of integer;

..............
n1:=0;
..........
setlength(c,m,n1); 
............
   n1:=(n div 2)+n;            //новая длина с нечетными строками
 
 ...............
            c[i,j1]:=a[i,j];
            ...................
            c[i,j1]:=a[i,t];
            stringgrid2.cells[i,j1]:=inttostr(c[i,t]);
          .......................
       
            c[i,j1]:=a[i,j];
            stringgrid2.cells[i,j1]:=inttostr(c[i,j]);
            .............
Мне кажется что то не так и этим массивом.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан двумерный массив нужно найти номера строк, элементы которых образуют убывающую с++ yurda Помощь студентам 0 24.05.2015 18:38
Двумерный динамический массив строк Андрей Иванов Общие вопросы C/C++ 8 04.05.2015 17:39
паскаль. двумерный массив. перенос первых K строк. LogrusVTK Помощь студентам 2 21.01.2012 10:48
Си (Двумерный массив строк) RZMTZM Общие вопросы C/C++ 1 27.12.2009 14:43
двумерный динамический массив с запросом к пользователю о кол-ве строк и столбцов? vasyapupkin Общие вопросы C/C++ 2 22.11.2009 17:37