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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2009, 21:03   #1
pancho
Пользователь
 
Аватар для pancho
 
Регистрация: 25.01.2009
Сообщений: 18
Вопрос Вывод двумерного массива

проблема с выводом двумерного массива в стрингрид..ничего не пойму вроде всё правильно пишу,а она пишет только 0..вот код
PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsGridsStdCtrls;

type
  TForm1 
= class(TForm)
    
StringGrid1TStringGrid;
    
Edit1TEdit;
    
Edit2TEdit;
    
Button1TButton;
    
Button2TButton;
    
procedure Button1Click(SenderTObject);
    
procedure Button2Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation
Type TMas 
= array[1..100,1..100of integer;
 Var    
B:Tmas;
{
$R *.dfm}
Var 
f:textfile;
procedure Vvod(b:TMas;m,n:integer);
Var 
i,j:integer;
begin
Randomize
;
      for 
i:=1 to m do
          for 
j:=1 to n do
          
b[j][i]:=2*Random(5)+1
end
;
procedure Vivod(b:TMas;m,n:integer);
Var 
i,j:integer;
begin
Randomize
;
      for 
i:=1 to m do
          for 
j:=1 to n do
          
Form1.StringGrid1.Cells[i,j]:=IntToStr(b[j][i]);
end;
procedure Vfile(b:Tmas;m,n:integer);
Var 
i,j:integer;
begin
 Assignfile
(f,'f.txt');
    
Rewrite(f);
    for 
i:=1 to m do
    
begin
        
for j:=1 to n do begin
        write
(f,b[j][i]);
        
end;
        
writeln(f,b[j][i]);
        
end;
Closefile(f);
end;
procedure TForm1.Button1Click(SenderTObject);
Var 
m,n:integer;
begin
    m
:=StrToInt(Edit1.text);
    
n:=StrToInt(Edit1.text);
    
StringGrid1.RowCount:=m+1;
    
StringGrid1.ColCount:=n+1;
    
Vvod(B,m,n);
    
Vivod(B,m,n);
end;

procedure TForm1.Button2Click(SenderTObject);
Var 
m,n:integer;
begin
    m
:=StrToInt(Edit1.text);
    
n:=StrToInt(Edit1.text);
    
Vfile(B,m,n);
end;

end
массив он выводит в текстовый файл..выводит нормально..

очень прошу помощи..сижу тут и никак не пойму почему не выводит массив рандомных нечётных чисел..заранее спасибо
учусь по ходу написания программы..кхх)
pancho вне форума Ответить с цитированием
Старый 25.01.2009, 21:37   #2
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию везде

поменяйте
Код:
b[j][i]
на
Код:
b[j,i]
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 25.01.2009, 21:38   #3
pancho
Пользователь
 
Аватар для pancho
 
Регистрация: 25.01.2009
Сообщений: 18
По умолчанию

небольшая поправочка)
m:=StrToInt(Edit1.text);
n:=StrToInt(Edit2.text);
учусь по ходу написания программы..кхх)
pancho вне форума Ответить с цитированием
Старый 25.01.2009, 21:42   #4
pancho
Пользователь
 
Аватар для pancho
 
Регистрация: 25.01.2009
Сообщений: 18
По умолчанию

maladoy
поменял..без изменений..всё так же пишет нули..
учусь по ходу написания программы..кхх)
pancho вне форума Ответить с цитированием
Старый 25.01.2009, 22:17   #5
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... ну во-первых, здесь мне не очень понятно, зачем вы матрицу транспонируете:
Код:
Form1.StringGrid1.Cells[i,j]:=IntToStr(b[j][i]);
тогда уж должно быть
Код:
Form1.StringGrid1.Cells[i,j]:=IntToStr(b[i,j]);
а во-вторых,
Код:
procedure Vvod(b:TMas;m,n:integer);
надо писать так:
Код:
procedure Vvod(var b:TMas;m,n:integer);
тогда всё появляется.
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 25.01.2009, 22:22   #6
pancho
Пользователь
 
Аватар для pancho
 
Регистрация: 25.01.2009
Сообщений: 18
По умолчанию

goblinyara оо)всё заработало))
спасибо большое)
учусь по ходу написания программы..кхх)
pancho вне форума Ответить с цитированием
Старый 25.01.2009, 22:31   #7
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

pancho, а ты понял, почему до этого не работало?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 25.01.2009, 22:40   #8
pancho
Пользователь
 
Аватар для pancho
 
Регистрация: 25.01.2009
Сообщений: 18
По умолчанию

goblinyara да понял)у меня в процедуре было не вар поставлено)
и я ей передавал как бы не существующий массив..я так понял
учусь по ходу написания программы..кхх)
pancho вне форума Ответить с цитированием
Старый 25.01.2009, 22:47   #9
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

нет, вы ей передавали существующий массив, но!!!! он определялся как локальная переменная, а var как раз-таки определяет этот массив как глобальный.
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 25.01.2009, 23:04   #10
pancho
Пользователь
 
Аватар для pancho
 
Регистрация: 25.01.2009
Сообщений: 18
По умолчанию

ааа.то есть это подпрограмма нужна только для того чтобы массив который мы хотим создать стал глобальным?
а глобальный мы записали просто в стринг грид.
понятна)спасибо за обьяснение
учусь по ходу написания программы..кхх)
pancho вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод двумерного массива Kocapb Общие вопросы C/C++ 4 11.10.2012 11:05
Сортировка двумерного массива Makarov Помощь студентам 8 29.10.2011 11:55
Сохранение двумерного массива в файл AngelOfDeath Общие вопросы Delphi 5 04.10.2008 09:37
Поворот двумерного массива Guest_ Общие вопросы C/C++ 6 24.12.2007 23:02
сортировка двумерного массива cornholio Помощь студентам 1 27.11.2007 23:36