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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2010, 21:47   #1
Gerard
Новичок
Джуниор
 
Регистрация: 23.05.2010
Сообщений: 2
По умолчанию Заполнение двумерного массива (Delphi 7)

Привет всем.

Возникла запарка с задачей

Есть двумерный массив(StringGrid), при нажатии на кнопку он должен заполнится числами от 0 до n. Размерность массива может быть любая.

Проблема в том что заполнятся он должен по кругу пока не достигнет центра. Я пробовал писать отдельный код для заполнения каждой строки и столбца в отдельности, но это это явно не тот путь, так как при увеличении и уменьшении размера всё сбивается... В общем варианты у меня иссякли даже не знаю что придумать, надеюсь на вас...
Gerard вне форума Ответить с цитированием
Старый 23.05.2010, 22:03   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

поиск по форуму:
заполнение по спирали


просто как вариант (Pascal, из собственных архивов своих программок..)
Код:
var
  a:array[1..100,1..100]of integer;
  i,imax,imin,j,jmax,jmin,k,m,n:integer;
begin
  write('Vvedite 4islo strok: ');
  readln(m);
  write('Vvedite 4islo stolbcov: ');
  readln(n);
  jmin:=1;
  jmax:=n;
  imin:=2;
  imax:=m;
  k:=0;
  repeat
    for j:=jmin to jmax do
    begin
      inc(k);
      a[imin-1,j]:=k;
    end;
    for i:=imin to imax do
    begin
      inc(k);
      a[i,jmax]:=k;
    end;
    dec(jmax);
    for j:=jmax downto jmin do
    begin
      inc(k);
      a[imax,j]:=k;
    end;
    dec(imax);
    for i:=imax downto imin do
    begin
      inc(k);
      a[i,jmin]:=k;
    end;
    inc(imin);
    inc(jmin);
  until k>=m*n;
  for i:=1 to m do
  begin
    writeln;
    for j:=1 to n do write(a[i,j]:3);
  end;
  readln;
end.
Если не справитесь самостоятельно - обращайтесь, помогу на Delphi переложить

Последний раз редактировалось Serge_Bliznykov; 23.05.2010 в 22:06.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.05.2010, 21:09   #3
Gerard
Новичок
Джуниор
 
Регистрация: 23.05.2010
Сообщений: 2
По умолчанию

Честно говоря не понимаю как именно на дельфи это и делать. А на паскале выдает такое, хотя по плану "6" должна идти сразу после 5 в последнем столбце.
Gerard вне форума Ответить с цитированием
Старый 24.05.2010, 22:44   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Gerard Посмотреть сообщение
А на паскале выдает такое, хотя по плану "6" должна идти сразу после 5 в последнем столбце.
не подтверждаю.


программа на Pascal в архиве.
Проверьте...

что же касается Delphi...
Ну почему Вы ничего не хотите сделать самостоятельно?! Ну хотя бы выложите исходники проекта (в архиве, разумеется), который выдаёт StringGrid заданного пользователем размера...
А уж с заполнением я Вам помогу...
Вложения
Тип файла: rar SPIRAL3.rar (2.6 Кб, 22 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal] заполнение двумерного массива Рамик Помощь студентам 13 18.02.2009 20:08
Delphi - обработка двумерного массива dm.os. Помощь студентам 1 30.09.2008 23:32
[Delphi] создание и обработка двумерного массива screep Помощь студентам 5 16.06.2008 19:27
Заполнение двумерного массива прямоугольников случайными изображениями Mischa Помощь студентам 1 11.03.2008 21:58